
572 Глава 9. Распределенные системы объектов
9.2.
DCOM
Вторая распределенная система объектов, которую мы рассмотрим,
— это
распре-
деленная модель СОМ (Distributed
СОМ,
DCOM) корпорации Microsoft. Как мож-
но понять
PI3
ее названия, модель DCOM выросла из
модели компонентных
объек-
тов (Component
Object
Model,
COM). COM
—
это технология, лежащая в основе
различных версий операционных систем Windows от Microsoft, начиная с Win-
dows 95. В противоположность CORBA, DCOM не является результатом дея-
тельности комитета. Это, в частности, видно из того факта, что существует всего
лишь 300-страничное черновое описание СОМ, датированное октябрем 1995 года
[292].
К сожалению, то, что модель DCOM избежала обсуждения в комитете, по-
влекло за собой отсутствие хорошо спроектированной архитектуры с минималь-
ным набором базовых элементов, из которых строятся компоненты и службы.
Наоборот, в настоящее время DCOM
—
крайне запутанная система, в которой
множество сходных действий выполняются множеством разных способов, и по-
добное сосуществование различных решений временами кажется невозможным.
Критиковать модель DCOM нетрудно. Однако сравнивая ее с CORBA, мож-
но обоснованно утверждать, что DCOM
—
это технология, которая в значитель-
ной степени доказала свое право на существование. Десятки миллионов человек
каждый день используют Windows в сетевой среде, а значит, DCOM
—
широко
распространенная система. В этом смысле CORBA или любым другим распреде-
ленным системам до нее еще идти и рщти.
Далее мы рассмотрим наиболее важные части DCOM, следуя тому же поряд-
ку изложения материала, которого мы придерживались при изучении CORBA.
Чтобы понять, что такое DCOM, лучше всего обратиться к одной из книг для
программистов, такой как [357] или
[386].
Хорошее введение в различные техни-
ческие аспекты DCOM имеется в
[132].
Обзор DCOM с точки зрения распреде-
ленной модели Windows 2000 можно найти в [92].
9.2.1.
Обзор
Как уже упоминалось, модель DCOM базируется на модели СОМ. Целью созда-
ния СОМ была поддержка разработки компонентов, которые могли бы динамиче-
ски активизироваться и взаимодействовать друг с другом. Компонент в СОМ
—
это исполняемый код, содержащийся в динамически компонуемой библиотеке
(DLL) или исполняемой программе.
Сама по себе модель СОМ существует в виде библиотек, компонуемых с про-
цессом. Изначально она разрабатывалась для поддержки так называемых со-
ставных
документов
(compound
documents).
Как мы говорили в главе 3, состав-
ные документы
—
это документы, построенные из разнородных частей, таких как
текст (форматированный), изображения, электронные таблицы и т. п. Каждая из
этих частей может быть отредактирована при помощи ассоциированного с ней
приложения.
Для поддержки бесчисленного множества составных документов Microsoft
нужен был обобщенный метод для разделения отдельных частей и объединения