CORBA – Обобщенная Архитектура построения Брокеров Объектных Запросов является и архитектурой и спецификацией.
Предназначена для внедрения операционно-независимых, объектно - ориентированных интерфейсов.
Дает возможность приложению пользователя осуществлять запросы к реализации объекта через интерфейс IDL.
Язык описания интерфейсов 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)
Исключения (свидетельствует о том, что операция не была успешно