Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2222222222222222.docx
Скачиваний:
4
Добавлен:
24.09.2019
Размер:
20.39 Mб
Скачать
  1. Понятие о технологии com.

COM (англ. Component Object Model — объектная модель компонентов; произносится как [ком]) — это технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов, каждый из которых может использоваться во многих программах одновременно. Стандарт воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. На основе COM были реализованы технологии: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX, а также XPCOM. Основным понятием, которым оперирует стандарт COM, является COM-компонент. Программы, построенные на стандарте COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через COM-интерфейсы — наборы абстрактных функций и свойств. Ключевым аспектом СОМ является то, что эта технология обеспечивает связь между клиентами и серверами по средствам интерфейсов. Интерфейс предоставляет возможность клиенту узнать какую функцию поддерживает сервер непосредственно в процессе выполнения. Для расширения возможностей сервера необходимо просто добавить новый интерфейс. СОМ является одновременно и спецификацией и реализацией. Спецификация определяет правила создания объекта и способ связи между объектами. В соответствии со спецификацией объекты СОМ могут быть написаны на разных языках, выполняться в адресном пространстве различных процессов и на разнообразных платформах. До тех пор, пока объекты полностью соответствуют спецификации, они могут взаимодействовать. СОМ как реализация представляет собой библиотеку в случае WINDOWS OLE32.DLL, которая предоставляет ряд основных служб, поддерживающих описанные спецификации.

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

Type Library содержит описание СОМ объектов, его интерфейсов, методов и так же его GUID идентификаторов.

Class Factory – экземпляр объекта, который создает СОМ объект. Создается СОМ сервером при запросе клиентским приложением 1 интерфейса.

СОМ интерфейс-средство, с помощью которого объект СОМ предоставляет свои функциональные возможности для внешних клиентов. Будучи однажды опубликованным, интерфейс не меняется ни при каких обстоятельствах. Расширение функциональности возможно только с помощью добавления другого интерфейса. Имя интерфейса всегда начинается с заглавной буква I. Интерфейс имеет уникальный идетнификатор – GUID. Для реализации интерфейса может быть использован любой язык программирования, который поддерживает указатели, структуры. Сам по себе интерфейс объектом не является, а представляет собой способ получить доступ к объекту.Любой интерфейс является наследником базового класса IUnknown.

Каждый COM-компонент должен, как минимум, поддерживать стандартный интерфейс «IUnknown», который предоставляет базовые средства для работы с компонентом. Интерфейс «IUnknown» включает в себя три метода: QueryInterface, AddRef, Release. QueryInterface возвращает клиенту указатель на запрошенный им интерфейс по его IDD (тип класса интерфейса). AddRef, Release используются для того, чтобы объект СОМ мог самостоятельно отслеживать продолжительность своего существования. Эти методы просто изменяют число ссылок на объект. Число ссылок =0 объект удаляется, AddRef +1 ссылка, , Release -1 ссылка.

СОМ сервер - некоторый модуль, который содержит исполняемый код для объекта СОМ. Включает в себя хотя бы 1 объект СОМ, который в свою очередь представляет собой совокупность методов и свойств. Когда клиент запрашивает сервер объекта СОМ, он обязан передать идентификатор класса CLSID, который создается на основе GUID интерфейса объекта СОМ. По нему СОМ определяет соответствующий сервер и создает экземпляр объекта СОМ.

Существует 3 вида серверов СОМ:

In-Process-Server – библиотека DLL, которая выполняется в адресном пространстве процессора клиента

Локальный сервер – другое приложение, которое выполняется в другом адресном пространстве, но на том же компьютере, что и клиентское приложение.

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

Применяется расширение DСОМ.

DCOM – расширение СОМ , ориентированное на поддержку и интерпретацию распределенных объектных приложений, функционирующих в сети.

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

Соседние файлы в предмете Программирование