

| стрелялки |
| спорт |
| драки |
| стратегии |
| гонки |
| логические |
| азартные |
| аркады |
| эротические |
| фильмы онлайн |
| Многокомпонентная модель объектов (COM) |
|
Одним из ключевых достижений Windows по праву считается многокомпонентная модель объектов (Component Object Model, COM). Модель COM описывает способ взаимодействия программ любого типа. Программа-сервер (сервер COM) предоставляет в распоряжение окружающих собственные службы, а программа-клиент (клиент COM) пользуется услугами доступных служб. Взаимодействующие COM-объекты могут функционировать как в рамках одного и того же процесса, так и в разных процессах, в том числе протекающих на разных машинах под управлением различных операционных систем. COM - это одновременно и спецификация (определяющая порядок создания взаимодействующих между собой приложений), и реализация (в форме стандартного набора функций API). Кроме того, COM - это независимая от платформы, распределенная объектно-ориентированная система, предназначенная для создания взаимодействующих программных компонентов. С точки зрения стороннего наблюдателя создаваемый средствами COM программный компонент представляет собой черный ящик, обладающий следующими характеристиками: 1. Легкость подключения к операционной системе. 2. Автономность. 3. Простота интеграции в состав программного обеспечения. 4. Универсальный способ обращения к методам и свойствам из любого современного языка программирования. Корпорация Microsoft стандартизировала как способ представления COM-объекта в памяти компьютера, так и особенности идентификации методов и свойств этого объекта. Поэтому в официальной документации Microsoft (MSDN) при описании COM неоднократно упоминается о том, что COM-мо-дель соответствует бинарному (другими словами, универсальному) стандарту. На первый взгляд черный ящик COM весьма похож на нашу старую знакомую - библиотеку DLL. Как и COM, DLL позволяет многократно использовать свой код, легко подключаться к ОС и интегрироваться в программное обеспечение. Но динамически подключаемая библиотека не в состоянии гарантировать, что экспортируемые ею функции без каких-либо ограничений могут быть вызваны средствами любого другого языка программирования. Кроме того, при работе c DLL мы сталкиваемся с рядом ограничений, связанных с местом ее размещения: библиотека должна располагаться либо в строгом перечне каталогов, либо обязательно прописываться в системных путях. Еще более сложная задача - загрузка DLL с другого компьютера. В отличие от DLL, модель COM обеспечивает универсальный способ загрузки своих объектов независимо от места их размещения. ОС первых шагов изучения COM важно понять, что это не очередной объектно-ориентированный язык программирования со своим синтаксисом, семантикой и деталями реализации. Правильнее говорить о COM как о стандарте, определяющем модель взаимодействия между объектами. В интересах клиентских и серверных приложений COM-модели активно трудится библиотека COM (COM Library). Физически библиотека COM представляет собой набор исполняемых файлов и динамически подключаемых библиотек. Она способна: • Предоставлять услуги некоторого набора функций API, облегчающих разработку приложений COM. Например, для клиентских приложений предназначены методы, создающие объекты. Для приложений серверов в библиотеке предусмотрены средства демонстрации их COM-объектов. • Генерировать уникальный идентификатор объекта, осуществлять поиск требуемого объекта по его идентификатору. • Производить вызов удаленных процедур, если сервер COM размещен на другом компьютере. • Управлять распределением памяти в интересах взаимодействующих процессов и контролировать освобождение памяти. По существующей договоренности имена всех методов Win32 API библиотеки COM начинаются с префикса «Co», например CoCreateGuid(), CoCreateInstance(), CoUn-initialize() и т. п. |
