Архитектура Microsoft Windows для разработчиков




Занятие 1. Архитектура СОМ - часть 6


Первые три члена VTBL — из состава интерфейса I Unknown, а последующие относятся к другим поддерживаемым интерфейсам — например, ряд полезных интерфейсов предоставляет OLE (их имена обычно начинаются с 101е). Любой человек, например Вы, вправе определить свои интерфейсы по мере разработки компонентов приложения.

Глобально-уникальные идентификаторы

Для идентификации интерфейсов и классов компонентов СОМ использует уникальные идентификаторы (Global Unique Identifier, GU1D) — 128-разрядные целые числа, которые гарантированно неповторимы. Имена интерфейсам и классам присваиваются только для удобства, и они достоверны лишь на компьютере, где хранится компонент. Применение уникальных идентификаторов обезопасит Вас от случайного вызова не того элемента, интерфейса или метода даже в сети с миллионами компонентов (рис. 5.4).

CLSID и IID

Каждый созданный Вами компонент должен иметь уникальный GUID-иденти-фикатор, называемый идентификатором класса (Class Identifier, CLSID); он позволяет ссылаться на компонент. Точно так же каждому интерфейсу Вашего компонента необходимо присвоить персональный GUID-идентификатор — идентификатор интерфейса (Interface Identifier, IID).

5-6.jpg

Рис. 5.4 Идентификация компонентов

Строка идентификатора класса хранится в ключе реестра

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID

DСOM

Распределенная модель многокомпонентных объектов (Distributed Component Object Model, DCOM) — это протокол, обеспечивающий гибкое, защищенное и эффективное взаимодействие программных компонентов в сетевой среде (рис. 5.5).

5-7.jpg

Рис. 5.5 Границы процессов в распределенной модели СОМ

Прежнее название DCOM — Network OLE. Эта спецификация разработана для применения поверх самых разных сетевых транспортов. DCOM основана на спецификации DCE-RPC фонда открытого программного обеспечения (Open Software Foundation, OSF) и, благодаря использованию технологии СОМ, поддерживает Java-апплеты и ActiveX-компоненты. Например, можно средствами Java создать апплет, который вычисляет стоимость портфеля ценных бумаг на основе текущих котировок, отслеживаемых в режиме реального времени через Интернет средствами DCOM.

Когда клиент и компонент хранятся на разных машинах, DCOM просто заменяет локальный механизм взаимодействия процессов сетевым протоколом.


Содержание  Назад  Вперед