Россия, г. Москва |
Промежуточная среда COM+ и служба Enterprise Services
6.1. Введение в промежуточную среду COM+
COM+ – промежуточная среда для создания распределенных систем, действующих в локальной сети. Она разрабатывается фирмой Microsoft с конца 90-х годов и впервые появилась в составе операционной системы Microsoft Windows 2000. Основной целью разработки среды COM+ было создание инфраструктуры для разработки распределенных систем автоматизации предприятия. Основные достоинства среды COM+:
- поддержка как синхронного, так и асинхронного взаимодействия программных компонент;
- совместная работа с координатором распределенных транзакций ( distributed transactions coordinator, DTC );
- поддержка метода доступа единственного вызова с пулом объектов;
- использование для ограничения доступа к компоненте ролей ( roles ), связываемых администратором системы с учетными записями пользователей.
Среда COM+ управляет ходом выполнения объектов COM+, являющимися экземплярами так называемых компонент COM+. Набор связанных компонент COM+, находящихся в одной динамической библиотеке, называется приложением COM+. Приложение COM+ состоит из набора компонент и ролей для доступа к ним. Сведения о зарегистрированных приложениях хранятся в каталоге COM+.
Приложения COM+ бывают двух видов: библиотечные и серверные. Экземпляры компонент библиотечных приложений выполняются в том же процессе, что и использующий их клиент, компоненты серверного – в отдельном потоке сервера, возможно выполняющимся на удаленном компьютере. Только серверные приложения могут использоваться удаленно путем регистрации в каталоге COM+ на компьютере клиента посредника приложения COM+. После установки посредников использование удаленных серверных компонент COM+ не отличается от использования локальных серверных компонент. Понятие посредник ( proxy ) используется в COM+ в двух различных смыслах – запись в каталоге COM+, связанная с некоторым приложением COM+ на удаленном компьютере, и в том же смысле, что и посредник при удаленном вызове.
Поскольку библиотечные приложения COM+ не используют механизм удаленных вызовов и могут использоваться только в адресном пространстве клиента, то их рассмотрение не относится к данному курсу, и далее речь пойдет исключительно о серверных приложениях COM+.
На рис. 6.1 показана архитектура среды COM+ при использовании серверных приложений. Объекты COM+ являются экземплярами компонент COM+, зарегистрированных в каталоге. Заглушка на стороне серверного процесса называется в COM+ перехватчиком ( interceptor ).
Каталог COM+ каждого компьютера содержит список зарегистрированных на компьютере локальных приложений COM+, а также список установленных посредников для связи с приложениями удаленных компьютеров. Каталог устроен иерархически, в виде дерева. Например, узел с описанием приложения COM+ содержит узел со списком входящих в него компонент COM+ и узел со списком ролей приложений. Управление каталогом COM+ происходит при помощи оснастки comexp.msc или программно, используя классы библиотеки comadmin.dll. Подробнее состав каталога описан в "Лабораторная работа. Расширение промежуточных сред" .
Поскольку среда COM+ реализует свое собственное управлением исполняемым внутри нее кодом, то существует понятие контекста COM+, который представляет собой окружение объекта COM+. Контекст закрепляется за объектом в момент его активации и сохраняется до его деактивации. При создании контекста учитываются атрибуты необходимости транзакции и синхронизации, установленные в активируемой компоненте COM+, а так же текущий контекст в момент активации объекта.