Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интересности по COM.doc
Скачиваний:
36
Добавлен:
28.06.2014
Размер:
7.48 Mб
Скачать

Тема 9. Распределенный сом

План

1. Создание удаленного объекта

2. Использование моникера в распределенном COM

3 Средства безопасного доступа для удаленных объектов

1. Создание удаленного объекта

• DCOM позволяет объектам быть созданными и использованы на удаленных машинах

• DCOMобеспечивает доступ к распределенным сервисам безопасности

Создание удаленного объекта

- Использование CoCreateInstance

• Клиент может создать удаленный объект, используя CoCreateInstance

• Где созданный объект может быть сконфигурирован в системном реестре

• Как названа удаленная машина зависит от протокола, используемого, чтобы получить доступ к этой машине

• Создание удаленного объекта требует только один пробег вокруг сети

- Используя CoCreateInstanceEx

• Клиент может создать удаленный объект с CoCreateInstanceEx

CoCreateInstanceEx также позволяет клиенту определить где объект должен быть создан

Рис. 9.1. Использование CoCreateInstance, чтобы создать удаленный объект

Рис. 9.2. Использование CoCreateInstanceEx, чтобы использовать удаленный объект и запросить указатели множественного интерфейса

2. Использование моникера в распределенномCom

  • Объединение создания и инициализации

• Клиент обычно инициализирует объект после его создания

• Удаленные объекты могут также потребовать инициализации

• CoGetInstanceFromFile и CoGetInstanccFromIStorage объединяют создание и инициализацию

• Значение ActivateAtStorage является причиной того, чтобы объект был создан там, где имеется его постоянное состояние

Использование Moniker

• Moniker может создать объект на удаленной машине

• Мoniker может создать удаленный объект через вызов CoCreateInstance

• Moniker использует значение ActivateAtStorage

• Мoniker файла может создать объект на машине, где файл , на который он ссылается

• URL moniker может создать объект на машине, определенной URL моникера

Рис. 9.3. Использование файлового moniker. Чтобы создать и инициализировать удаленный объект.

3. Средства безопасного доступа для удаленных объектов

Доступ к удаленному объекту

-Объект вызова удаленной процедуры RPC

• Вызовы удаленных методов основываются на объекте RPC

• Объект RPC включает два различных протокола

• Вызов объекта RPC (ORPC ) требует соединение информации

-OXID и решатели OXID

• OXID идентифицирует экспортера объекта,который может быть процессом или его частью (если многопоточный процесс )

• Каждая машина DCOM запускает решатель объекта

• OXID отображает в информацию соединения для экспортера объекта

-OBJREF: Передача указателей интерфейса

• ORPC использует NDR, чтобы представить параметры вызова в сети

• Указатели объекта используются, чтобы передавать указатели интерфейса между объектами

• Данные OBJREF, ОХID решатель могут установить соединение информации для удаленного указателя интерфейса

Рис. 9.4. OXID решатель запускается на всех машинах, которые поддерживают DCOM

• Один OXID решатель может запросить другой, чтобы получить информацию соединения

• Дизайн DCOM уменьшает перегрузку, которою несет объект

• Объекты делают «ленивую» регистрацию протокола

-Роль SCM

• Создание удаленного объекта основывается на IActivation

-Оптимизация lUnknown

• Интерфейс IRemUnknown позволяет оптимизацию вызовов методов IUnknown

• Клиенты не вызывают IRemUnknown методы прямо

• Интерфейс IMultiQI позволяет клиенту запросить несколько указателей интерфейсов одновременно

-Pinging («свист»)

• Pinging позволяет удаленному объекту узнать о «безвременном отключении» клиента

• Отправляется единичный пакет, чтобы пропинговать несколько интерфейсов на нескольких объектах

Рис. 9.5. Чтобы получить информацию соединения для нового объектаOBJREF, OXID resolver делает запрос машине, на которой объект определен запущен его OBJREF

Рис. 9.6. SCM спрашивает SCM в другой системе, чтобы создать объект через интерфейс IActivation

Рис 9.7. OXID объект управляет удаленными вызовами IUnknown для их объектов

Обеспечение Безопасного Доступа к Отдаленным Объектам

• DCOM обеспечивает безопасность и активизации, и вызова

-Безопасность активизации

• Безопасность активации управляет кто может вызвать сервер удаленно

• Несколько опций существуют для установки основной идентичности нового объекта

-Безопасность вызова

• Безопасность вызова управляет тем, от кого объект может получать вызовы и др.

•Сегодня используются многие механизмы распределенной безопасности

• DCOM позволяет использовать несколько механизмов безопасности

• Автоматическая безопасность использует CoInitializeSecurity, чтобы установить опции безопасности для сего процесса

• Администратор может установить безопасность всей сети по умолчанию

• По-интерфейсная безопасность устанавливает опции безопасности для индивидуальных интерфейсов

• Клиенты используют IClientSecuritv, чтобы установить опции безопасности по-вызовам

• Методы IClientSecurity устанавливают опции безопасности, выполняемые proxy клиента

• Функции помощника облегчают использование методов IclientSecurity

• Объекты должны выполнять решения санкционирования

• Объекты используют IServerSecurity, чтобы узнать клиентам, которые позвонили им

Важность DCOM

• Объектная технология сходится с распределенными вычислениями в DCOM

Новые понятия и термины:

  • Клиент может создать удаленный объект, используя CoCreateInstance

  • Моникер может создать объект на удаленной машине

  • OXID – определяет объект экспортер

  • DCOM (Distributed COM) – распределенный COM

  • SCM – Service Control Manager

Контрольные вопросы:

1. Создание удаленного объекта

2. Использование моникера в распределенном COM

3 Средства доступа для удаленных объектов

Литература:

1.David Chappell “Understanding Active X and OLE”.Microsoft Press, 1996