CORBA
Лекция 14
CORBA – Common object request broker architecture
CORBA – Обобщенная Архитектура построения Брокеров Объектных Запросов является и архитектурой и спецификацией.
Предназначена для внедрения операционно-независимых, объектно - ориентированных интерфейсов.
Дает возможность приложению пользователя осуществлять запросы к реализации объекта через интерфейс IDL.
Архитектура CORBA
-
Ключевые блоки:
-
Брокер объектных запросов (Object Request Broker, ORB)
-
Стандартный протокол GIOP (General Inter-Orb Protocol)
-
Язык описания интерфейсов OMG (OMG Interface Definition Language, IDL)
-
Процесс связи клиент/сервер в значительной степени скрыт от клиента.
-
Целевой объект – объект, к которому необходимо доставить запрос от клиента.
-
Чаще всего скрывают следующие элементы взаимодействия:
-
Местоположение объекта
-
Реализация объекта
-
Состояние объекта
-
Механизм связи с объектом
Модель CORBA
Компоненты модели CORBA
-
Ядро шины ORB;
-
Язык описания интерфейса (IDL – Interface definition language);
-
Хранилище интерфейсов (IR – Interface repository);
-
Отображения для языков программирования (Language mappings);
-
Концепции входных и выходных блоков IDL (Stubs и skeletons);
-
Динамический вызов и диспетчеризация (Dynamic invocation and dispatch);
-
Адаптеры объектов (Object adapters);
-
Протоколы взаимодействия ORB-компонентов.
Брокер объектных запросов
-
ORB (Object request broker) – Брокер объектных запросов – центральный компонент CORBA – отвечает за обеспечение связи между клиентами и объектами. Т.обр. ORB является распределенной программной шиной (совокупностью связанных через транспортную среду ORB-компонентов), обеспечивающей взаимодействие между удаленными объектами.
-
Задачи ORB:
-
Определение реализации объекта;
-
Подготовка объекта к приему запроса клиента;
-
Сопоставление данных в запросе с реализацией объекта.
Реализации ORB
-
ORB, включаемый в клиентское и серверное приложение. ORB реализуется в виде набора подпрограмм как со стороны клиента, так и со стороны реализации объекта.
-
ORB, выполненный в виде сервера. С целью обеспечения централизованного сбора и управления всевозможной информацией, ORB может быть реализован в виде отдельного приложения.
Реализации ORB
-
ORB как часть системы. Для повышения надежности, защиты данных и достижения лучшей производительности ORB может быть реализован как часть ОС.
-
ORB, основанный на библиотеках. Если код объекта занимает небольшой объем и не требует никаких дополнительных средств, то он может быть выполнен в виде библиотеки. При этом все заглушки на самом деле будут являться настоящими методами
-
Хранилище интерфейсов содержит объекты, которые представлены IDL во время исполнения запроса.
-
Заглушки (stub) обеспечивают пользователю доступ к IDL и вызовы ORB.
-
Скелеты программы представляют услуги, зависящие от характеристик интерфейсов и языка программирования.
-
Хранилище информации позволяет ORB находить и активизировать реализации объектов.
-
Ядро ORB (оперативная память) обеспечивает основные представления объекта в совокупности со связью запроса.
-
Адаптеры объекта предназначены для оказания специальных услуг при реализации объекта, н-р, генерация и интерпретация ссылок на объекты, вызов методов, активация и деактивация реализаций объектов.
-
Реализация объекта обеспечивает само понятие объекта, обычно задавая данные для конкретного экземпляра объекта и код для выполнения методов объекта.
-
Запрос - это событие, то есть действие, происходящее в конкретный момент. Форма запроса определяется отображением для конкретного языка программирования. Альтернативной формой запроса является использование Интерфейса Динамических Вызовов, который позволяет создать запрос, добавить аргументы и выполнить запрос. Под значением понимается допустимый параметр запроса. Значение которое определяет объект, называется ссылкой на объект. Выполнение запроса вызывает выполнение соответствующего сервиса.
Параметры запроса
-
По режиму передачи:
-
от клиента к серверу (in);
-
от сервера к клиенту (out);
-
в обоих направлениях (in/out)
-
По типу:
-
Возвращаемое значение (out)
-
Исключения (свидетельствует о том, что операция не была успешно