Distributed Component Object Model

COMPUTERWORLD РОССИЯ #24/99
Фрэнк Хэйес

Определение

Distributed Component Object Model (DCOM) - программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) к компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента.

Для того чтобы различные фрагменты сложного приложения могли работать вместе через Internet, необходимо обеспечить между ними надежные и защищенные соединения, а также создать специальную систему, которая направляет программный трафик. С начала 1990-х годов над решением этой задачи трудятся две конкурирующие группы разработчиков.

Одну из них - консорциум Object Management Group (OMG) - поддерживают компании IBM, Sun Microsystems и ряд других производителей. В 1991 году OMG предложил архитектуру распределенных вычислений, получившую название Common Object Request Broker Architecture (CORBA). Сегодня она применяется многими крупными организациями для развертывания распределенных вычислений в масштабах предприятия на базе Unix-серверов и мэйнфреймов.

Другое технологическое направление представляет Microsoft, создавшая распределенную компонентную объектную модель Distributed Component Object Model (DCOM), которая встраивается в операционные системы Windows NT 4.0 и Windows 98.

Преимуществом DCOM является, по мнению Карен Буше, аналитика The Standish Group, значительная простота использования. Если программисты пишут свои Windows-приложения с помощью ActiveX (предлагаемого Microsoft способа организации программных компонентов), то операционная система будет автоматически устанавливать необходимые соединения и перенаправлять трафик между компонентами, независимо от того, размещаются ли компоненты на той же машине или нет.

Способность DCOM связывать компоненты позволила Microsoft наделить Windows рядом важных дополнительных возможностей, в частности, реализовать сервер Microsoft Transaction Server, отвечающий за выполнения транзакций баз данных через Internet. Новая же версия COM+ еще больше упростит программирование распределенных приложений, в частности, благодаря таким компонентам, как базы данных, размещаемые в оперативной памяти.

Однако у DCOM есть и ряд недостатков. "На самом деле это решение до сих пор ориентировано исключительно на системы Microsoft", - считает Буше. Изначально DCOM создавалась под Windows. Хорошо известно, что Microsoft заключила соглашение с компанией Software AG, предмет которого - перенос DCOM на другие платформы. Впрочем, по мнению Буше, значение этой работы достаточно ограниченно, поскольку Microsoft уже успела внести ряд существенных изменений в Windows-версию DCOM.

В числе недостатков и то, что архитектура предусматривает использование для поиска компонентов в сети разработанной Microsoft сетевой службы каталогов Active Directory. Но эта служба каталогов появится только в версии Windows 2000. Пока же DCOM должна использовать локальные списки компонентов, что совершенно неприемлемо для приложений большего масштаба, нежели рабочая группа, поскольку информация об изменении местонахождения компонента должна вручную заноситься в каждый работающий в сети компьютер.

Тем не менее аналитики Forrester Research уверены, что после появления Windows 2000 70% крупных организаций в конечном счете предпочтут ее в качестве основной платформы для развертывания стратегических бизнес-приложений.

DCOM против CORBA

И DCOM компании Microsoft, и CORBA консорциума Object Management Group поддерживают распределенные вычисления. Однако, похоже, две эти технологии развиваются в разных направлениях.
DCOMCORBA
Microsoft расширила DCOM, добавив службы обработки транзакций, упростив программирование распределенных приложений и усовершенствовав поддержку Unix и других платформ. OMG расширяет свою компонентную модель за счет служб, ориентированных на конкретные отрасли, то есть телекоммуникации, производство, электронную коммерцию, финансы, медицину, транспорт и коммунальные услуги.

Терминология

Компонент. Составная часть распределенного приложения.

Active Directory. Сетевая служба каталогов Microsoft, которую корпорация предполагает включить в состав Windows 2000.

ActiveX. Предлагаемый Microsoft способ разработки программных компонентов.

Common Object Model (COM). Программная архитектура Microsoft, поддерживающая компонентный подход к разработке приложений.

COM+. Модернизация COM и Microsoft Transaction Server, который упрощает разработку сложных распределенных приложений.

Common Object Request Broker Architecture (CORBA). Основной конкурент DCOM в области построения распределенных программных систем.

Распределенные вычисления. Парадигма организации приложений, в которой различные части программы могут исполняться на разных компьютерах в сети.

Microsoft Transaction Server (MTS). Усовершенствование в составе COM, которое реализует поддержку транзакций баз данных.

Remote Procedure Call (RPC). Удаленный вызов процедуры - сообщение, посылаемое по сети, которое позволяет программе, установленной на одном компьютере, инициировать выполнение необходимой операции на другом.