lect3

advertisement
Распределенные
системы
(CORBA)
CORBA (Common Object Request Broker Architecture)
(обобщенная архитектура брокера объектных запросов)
- технология построения распределенных объектных
приложений, разработана группой по управлению
объектами (OMG) для стандартизации услуг, которые
брокеры объектных запросов (ORB) должны
предоставлять пользователям.
Глобальная архитектура CORBA
Брокер объектных запросов (ORB)
Система времени исполнения, отвечающая за базовые
функции связи между клиентом и сервером.
Обеспечивает маршрутизацию запросов и ответов,
обработку объектных ссылок и поиск доступных
сервисов.
Глобальная архитектура CORBA
Application objects - прикладные объекты. Являются
частью приложений.
Vertical facilities – службы предназначенные для
конкретных предметных областей (средства обработки
изображений, финансовых коммуникаций,
информатизации в газовой и нефтяной промышленности)
Horizontal facilities – высокоуровневые службы общего
назначения (управление задачами, пользовательский
интерфейс, управление системой, …)
Common object services – являются основными
системными сервисами, используемыми разработчиками
для создания приложений
Общая организация системы CORBA
Dynamic Invocation Interface (DII)
Интерфейс динамических вызовов позволяет
приложениям клиентов формировать произвольные
запросы к объектам-серверам, интерфейсы которых
неизвестны на стадии компиляции клиентского
приложения.
Информация о структуре интерфейса, к которому
обращается клиент для вызова соответствующей
операции, может быть получена во время работы
программы, если известны имя операции и список
параметров и имеется ссылка на соответствующий
объект-сервер.
Сервисы CORBA
Service
Description
Collection
Группирование объектов в списки очереди, множества и т.д.
Query
Декларирование запросов к наборам объектов
Concurrency
Обеспечение парал. Доступа к совместно используемым объектам
Transaction
Простые и вложенные транзакции для вызова методов различных объектов
Event
Асинхронное взаимодействие на основе механизма событий
Notification
Расширенные средства асинхронного взаимодействие на основе механизма
событий
Externalization
Средства маршалинга/демаршалинга объектов
Life cycle
Создание/удаление/перемещение объектов
Licensing
Средства присоединения к объекту лицензии
Naming
Средства именования в пределах системы
Property
Присоединение к объекту пар аттрибут-значение
Trading
Публикация и поиск служб нужных объекту
Persistence
Средства длительного хранения объектов
Relationship
Выражение отношений между объектами
Security
Создание защищенных каналов авторизации
Time
Предоставление текущего времени с заданной ошибкой
Portable Object Adapter (POA)
Компонент, отвечающий за то, чтобы серверный код
представлялся клиенту объектом CORBA
Отображение идентификаторов CORBA
на серванты
Пример структуры системы
терминология
•долгоживущий объект (persistent object) - объект CORBA,
способный существовать за пределами процесса, в котором он
был порожден;
•временный объект (transient object) - объект CORBA, живущий
только внутри процесса, в котором он был порожден;
•сервант (servant) - физический программный код, реализующий
абстрактный CORBA-объект;
•менеджер сервантов (servant manager) - объект, отвечающий за
управление ассоциациями между объектами и их сервантами, а
также за проверку существования объектов;
•менеджер POA (POA manager) - объект, который управляет
состоянием POA, например, может ли последний обслуживать
входящие запросы или нет;
•активатор адаптеров (adapter activator) - объект, создающий POA в
ответ на запросы, полученные в адрес POA, который в тот момент
не существует;
терминология
•идентификатор объекта (object ID) - идентификатор, который
ассоциирует объекты CORBA и их серванты и служит для
идентификации объекта в объектном адаптере POA, куда он
помещен;
•таблица активных объектов (active object map) - таблица, которая
хранит соответствия между объектами CORBA и их сервантами с
помощью идентификаторов объектов;
•инкарнация (incarnation) - процесс установления ассоциации
между объектами CORBA и их сервантами;
•эфиризация (etherialization) - процесс расторжения связи между
CORBA-объектами и их сервантами.
Политики POA
ThreadPolicy
ORB_CONTROL_MODEL - брокер объектных запросов заботится о
распределении конкурирующих запросов по различным потокам
SINGLE_THREAD_MODEL - все запросы от клиентов
обслуживаются по очереди одним главным потоком.
LifespanPolicy
TRANSIENT - объекты существуют короткое время и «погибают»
вместе с POA, где они были зарегистрированы;
PERSISTENT - объекты «долгоживущие» и могут пережить процесс,
в котором они были созданы.
Политики POA
IdUniquenessPolicy
UNIQUE_ID - сервант может иметь только один объектный
идентификатор;
MULTIPLE_ID - сервант может иметь один или несколько
идентификаторов.
IdAssignmentPolicy
USER_ID - идентификатор для объекта задается программой;
SYSTEM_ID - адаптер объектов POA сам генерирует
идентификатор и следит за его уникальностью.
ServantRetentionPolicy
RETAIN - POA сохраняет активные серванты в таблице активных
объектов;
NON_RETAIN - активные серванты в таблице активных объектов
не удерживаются.
Политика обработки запросов
RequestProcessingPolicy
USE_ACTIVE_OBJECT_MAP - в таблице активных объектов ищется
идентификатор объекта, и если он не найден, то возникает
исключительная ситуация отсутствия объекта OBJECT_NOT_EXIST
(должна быть установлена политика RETAIN);
USE_DEFAULT_SERVANT - если идентификатор объектов в таблице
не найден или действует политика NON_RETAIN, то запрос
перенаправляется серванту по умолчанию; в этом случае при
отсутствии такого серванта возникает исключение OBJ_ADAPTER
(должна быть установлена политика MULTIPLE_ID.);
USE_SERVANT_MANAGER - если в таблице активных объектов нет
искомого идентификатора или установлена политика NON_RETAIN,
то к поиску подходящего серванта подключается менеджер
сервантов
Политики POA
ImplicitActivationPolicy
IMPLICIT_ACTIVATION - POA может активировать серванты
неявным способом; кроме того, требует установки политик
SYSTEM_ID и RETAIN;
NO_IMPLICIT_ACTIVATION - скрытая активация не
поддерживается.
События (Push модель)
События (Pull модель)
Download