Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция по ТРПО последняя.docx
Скачиваний:
46
Добавлен:
27.09.2019
Размер:
174.48 Кб
Скачать

Com, Active X технология

СОМ – это component object model (компонентная объектная модель). Сутью данной технологии является то, что программы строятся из компонент, которые состоят из объектов компонентами и объектами является непосредственно исполняемый двоичный код. Это непосредственно исполняемые файлы, которые никак не надо связывать со своим проектом. Их достаточно зарегистрировать в операционной системе, и они будут доступны любой программе, исполняющейся на данной машине.

Данная технология называется Динамическая загрузка. А модули, которые позволяют загружать себя таким образом, называются dll. Но dll – это не компонента, а только “место обитания” компонент, используемых в программе. Ведь из программы вызываются вполне конкретные процедуры и функции, которые только расположены в dll. Вызов процедуры из своего модуля и из dll не одинаковое действие. Вызов процедуры, которая располагается внутри своего модуля, требует знания только имени этой процедуры. А если процедура располагается в dll, то необходимо знать еще и имя самой dll-библиотеки.

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

СОМ – это модель компонентных объектов Microsoft. Это стандартный механизм, включающий интерфейсы, с помощью которых одни объекты предоставляют свои сервисы другим. Данная технология является основой многих объектных технологий, в том числе и OLE, Active X. Distributed Component Object Model – расширенная модель Майкрософт, ориентированная на поддержку и интеграцию распределенных приложений, функционирующих в сети. СОМ является платформонезависимой технологией, позволяющей создавать бинарные компоненты. Эти компоненты можно использовать как локально, так и в распределенном сетевом окружении.

В СОМ присутствует понятие класса. Класс в СОМ носит название CoClass. CoClass – класс, поддерживающий набор методов и свойств с помощью которых можно взаимодействовать с объектами этого класса. Такой набор методов и свойств называется интерфейсом. Каждый СоСlass имеет два идентификатора, один из них текстовый, называется ProgID и предназначен для человека. А второй бинарный – ClsID, является глобально локальным идентификатором (GUID)имеет размер 128 бит. Его уникальность достигается путем внедрения в него информации об уникальных частях компьютера, на котором он был создан.

Программист никогда не взаимодействует с объектом и его данными напрямую. Для этого используется интерфейсы объектов. В понимании СОМ интерфейс – это контракт, состоящий из списка связанных прототипов функций, чье назначение определено, а реализации нет. Напрямую с интерфейсом не ассоциировано никакой реализации. Реализация интерфейса – это код, который программист создает для выполнения действий, оговоренных в определении интерфейса. Интерфейсы ассоциируются с CoClassами. Чтобы воспользоваться реализацией функциональности интерфейсов, нужно создать экземпляр объекта соответствующего класса и запросить у этого объекта ссылку на соответствующий интерфейс.

При разработке приложений использующих технологию СОМ, используются структурные элементы:

  1. СОМ interface – средство, с помощью которого объект СОМ предоставляет свои функциональные возможности (службы) для внешних компонентов. Объект СОМ снабжает интерфейсом каждый набор методов и свойств. Любой объект СОМ имеет один или более интерфейсов.

  2. СОМ Server – это некоторый модуль (ехе, dll), который содержит код для объекта СОМ.

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

  4. Type library – библиотека типов, которая содержит описание СОМ объектов, его интерфейсов и методов, а так же их вид, идентификаторы. Информация из библиотеки записывается в системный реестр и используется клиентским приложением.

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

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