Сервер

Сервер СОМ представляет собой исполняемый файл или динамическую библиотеку, который содержит один или несколько объектов одного или нескольких классов. Различают три типа серверов.

1. Внутренний сервер – реализуются динамическими библиотеками, которые подключаются к клиенту и работают в одном адресном пространстве.

2. Локальный сервер – создается отдельным процессом, который работает на другом компьютере по отношению к клиенту.

3. Удаленный сервер - создается процессом, который работает на другом компьютере по отношению к клиенту.

Локальный сервер.

Получаемый клиентом указатель интерфейса в этом случае ссылается на специальный proxy-объект СОМ, называемым его заместителем, который функционирует внутри клиентского процесса. Заместитель предоставляет клиенту те же интерфейсы, что и вызываемый объект СОМ на локальном сервере. Получив вызов от клиента, заместитель упаковывает его параметры и при помощи служб операционной системы передает вызов в процесс сервера. На локальном сервере вызов передается еще одному специальному объекту – заглушке, который распаковывает вызов и передает его требуемому объекту СОМ. Результат вызова возвращается клиенту в обратном порядке.

Удаленный сервер.

Он функционирует так же, как и локальный сервер. Однако передача вызовов между компьютерами осуществляется средствами DCOM – с помощью механизма вызова удаленных процедур (RPC).

Для обеспечен Ия работы локальных и удаленных серверов используется механизм маршалинга и демаршалинга. Маршалинг реализует единый в рамках СОМ формат упаковки параметров запроса, демаршалинг отвечает за распаковку. В описанных выше реализациях серверов за выполнение этих операций отвечают заместитель и заглушка. Эти типы объектов создаются совместно с основным объектом СОМ. Для этого применяется IDL.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: