Разработка распределенных приложений в Microsoft.NET Framework

       

Введение в промежуточную среду 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).

Рис. 6.1.  Архитектура среды COM+
Каталог COM+ каждого компьютера содержит список зарегистрированных на компьютере локальных приложений COM+, а также список установленных посредников для связи с приложениями удаленных компьютеров. Каталог устроен иерархически, в виде дерева. Например, узел с описанием приложения COM+ содержит узел со списком входящих в него компонент COM+ и узел со списком ролей приложений. Управление каталогом COM+ происходит при помощи оснастки comexp.msc или программно, используя классы библиотеки comadmin.dll. Подробнее состав каталога описан в приложении I.
Поскольку среда COM+ реализует свое собственное управлением исполняемым внутри нее кодом, то существует понятие контекста COM+, который представляет собой окружение объекта COM+. Контекст закрепляется за объектом в момент его активации и сохраняется до его деактивации. При создании контекста учитываются атрибуты необходимости транзакции и синхронизации, установленные в активируемой компоненте COM+, а так же текущий контекст в момент активации объекта.

Содержание раздела