COM (Component Object Model) – модель многокомпонентных объектов.

Презентация:



Advertisements
Похожие презентации
1 ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ COM- ТЕХНОЛОГИИ ДЛЯ ПОСТРОЕНИЯ РАСПРЕДЕЛЕННЫХ ПРОГРАММНЫХ ПРОДУКТОВ Component Object Model Министерство образования и науки.
Advertisements

1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Реестр (Registry) – это база данных для хранения информации о системной конфигурации аппаратуры, о Windows и о приложениях Windows. Информация хранится.
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Технология модели «клиент-сервер». Роли Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса Компьютер, желающий воспользоваться.
СУБД Microsoft Access 2003 ЗНАКОМСТВО. Что такое Access? Access – Приложение, входящее в состав пакета Microsoft Office (разработано компанией Microsoft).
Троицкий Д.И. Интернет-технологии1 ДИНАМИЧЕСКИЕ WEB-СТРАНИЦЫ СЕРВЕРНЫЕ СЦЕНАРИИ Лекция 9 Кафедра «Автоматизированные станочные системы» Dept. of Automated.
Базы данных База данных – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
Лекция 2. Тема « Новые технологии и тенденции развития Интернет »
Основы объектно-ориентированного программирования (ООП)
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
1 Диаграммы реализации (implementation diagrams).
Выполнили: Шаньшурова Анастасия и Баширова Альфия.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
1. Краткая характеристика MS Access1. Краткая характеристика MS Access 2. Достоинства и недостатки 3. Типы БД 4. Базы данных и системы управления базами.
АИС Аптекарь 8.1 Интеграция программной функции. Ателье Информационных Систем Специализация - разработка систем автоматизации аптек и аптечных сетей.
Служба каталогов Active Directory Дисциплина «Построение Windows-сетей» Сергеев А. Н. Волгоградский государственный социально-педагогический университет.
Технические спецификации и программные комплексы E2EDM Белов С.В., Сухоносов С.В., Булгакова К.В ЦОД ВНИИГМИ-МЦД,2006.
Транксрипт:

COM (Component Object Model) – модель многокомпонентных объектов

Наиболее распространенные схемы повторного применения: библиотеки и объекты. Недостатки динамических библиотек: сложность расширения функциональных возможностей проблема установки в системе более одной реализации одной и той же библиотеки не поддерживают объектно-ориентированный подход Проблемы использования объектов: отсутствие стандартов для компоновки двоичного кода объектов несовместимость языков необходимость перекомпиляции всех приложений, использующих объект при его изменении

История развития СОМ технология СОМ начала развиваться как технология OLE (Object Linking and Embedding – связывание и внедрение объектов). OLE появилась как одно из направлений развития технологии обмена данными (DDE – Dynamic Data Exchange). Первое воплощение OLE представляло собой механизм создания и работы с составными документами. В начале 1996 года Microsoft ввела в оборот новый термин – ActiveX. Развитие технологии СОМ не остановилось, следующим её поколением стала технология СОМ+. Сейчас фирма Microsoft работает над технологией.NET.

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

Различают три типа серверов внутренний сервер (in-process server) реализуется динамическими библиотеками, которые подключаются к приложению-клиента и работают в одном с ним адресном пространстве. локальный сервер (local server) создается отдельным процессом, который работает на одном компьютере с клиентом. удаленный сервер (remote server) создается процессом, который работает на другом компьютере по отношению к клиенту.

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

Схема работы с COM 1.Сначала клиент обращается к библиотеке СОМ, передавая ей имя требуемого класса и необходимого в первую очередь интерфейса 2.Библиотека при помощи диспетчера управления службами (SCM – Service Control Manager) обращается к системному реестру, по идентификатору класса находит информацию о сервере и запускает его 3.Сервер создает экземпляр класса – объект и возвращает библиотеке указатель на запрошенный интерфейс 4.После этого библиотека возвращает клиенту указатели на объект и интерфейс

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

Объект COM Каждый объект представляет собой экземпляр соответствующего класса и содержит один или несколько интерфейсов. Объект имеет три основные характеристики: инкапсуляция наследование полиморфизм

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

Интерфейсы Интерфейс является контрактом между программистом и компилятором: программист обязуется реализовать все методы, описанные в интерфейсе, и следовать требованиям на реализацию некоторых из них; компилятор обязуется создать в программе внутренние структуры, позволяющие обращаться к методам этого интерфейса из любого поддерживающего те же соглашения средства программирования.

Объявление интерфейса включает в себя описание методов и их параметров, но не включает реализации методов. Для идентификации каждый интерфейс имеет два атрибута: имя глобальный уникальный идентификатор (GUID)

Интерфейс IUnknown Каждый объект СОМ обязательно имеет интерфейс IUnknown. Он содержит три метода: QueryInterface AddRef Release

Метод QueryInterface возвращает указатель на интерфейс объекта, идентификатор IID которого передаётся в параметре метода. Если такого интерфейса объект не имеет, метод возвращает Null. AddRef и Release – механизм учёта ссылок.

Виртуальные таблицы Адреса методов хранятся в так называемой виртуальной таблице (VTBL), создаваемой в адресном пространстве СОМ- сервера для каждого интерфейса Первые три члена VTBL – из состава интерфейса IUnknown, а последующие относятся к другим поддерживаемым интерфейсам VTBL содержит список адресов всех свойств и методов, включенных в объект При компиляции вместо имени метода в код клиента подставляется не адрес, а порядковый номер метода в VTBL. Получение ссылки на интерфейс означает получение соответствующего адреса VTBL Проблема доступа к интерфейсам объекта, находящимся в чужом адресном пространстве, решается с помощью маршаллинга При доступе с помощью VTBL клиентской программе необходима библиотека типов

Иногда встречаются ситуации, когда связывание с помощью VTBL затруднительно или не представляется возможным у пользователя компонента может отсутствовать библиотека типов с описанием интерфейсов вызов СОМ-объектов часто осуществляется из программ, написанных на языках интерпретируемого типа или на скриптовых языках Для решения этой проблемы Microsoft был разработан специальный интерфейс IDispatch

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

Методы IDispatch GetIDsOfNames – отображает имя одного члена класса и, по желанию, набор имен аргументов в соответствующий набор целых идентификаторов связи, которые затем можно использовать в вызовах метода Invoke GetTypeInfo – извлекает информацию о типах объекта GetTypeInfoCount – извлекает информацию о типах, предоставляемых объектом (возвращает 0, если информации о типах нет, и 1 – если есть) Invoke – предоставляет доступ к свойствам и методам объекта

Во время выполнения клиент передает строку с именем свойства (метода), которое он хочет вызвать, методу IDispatch.GetIDsOfNames Если данное свойство (метод) объекта существует, клиент получает идентификатор соответствующей функции Затем его можно использовать для фактического вызова свойства (метода) средствами метода IDispatch.Invoke Методы GetTypeInfoCount и GetTypeInfo позволяют получать из библиотеки типов компонента информацию об интерфейсах, методах и свойствах, которые он поддерживает

Распределенная модель многокомпонентных объектов Распределённая модель многокомпонентных объектов (Distributed Component Object Model, DCOM) – это протокол, обеспечивающий гибкое, защищённое и эффективное взаимодействие программных компонентов в сетевой среде Когда клиент и компонент хранятся на разных машинах, DCOM просто заменяет локальный механизм взаимодействия процессов сетевым протоколом. Ни клиент, ни компонент не знают о том, что соединение между ними стало гораздо длиннее

Технологии ActiveX ActiveX – это основанная на СОМ технология, предоставляющая в распоряжение разработчика базовые строительные блоки для создания Windows-приложений ActiveX применяют для создания элементов управления, документов и компонентов, предназначенных как для рабочего стола, так и для работы в Интернете Компоненты ActiveX можно реализовать на многих языках программирования

Элементы управления ActiveX – это объекты, допускающие повторное использование и содержащие визуальные элементы и код Они применяются в контейнерах и служат для организации или обогащения средств взаимодействия пользователя с приложением Элементы управления ActiveX можно встраивать в Web-страницы, но область их применения не ограничена Интернетом

Элементы управления ActiveX и Интернет Инфраструктура ActiveX допускает встраивание элементов управления в Web- страницы для интерактивной реакции на происходящие события Элементы управления ActiveX для Интернета оптимизированы по размеру и скорости и поддерживают асинхронные соединения

Преимущества элементов управления ActiveX для Интернета 1.упрощают и автоматизируют создание страниц 2.обогащают средства отображения данных 3.расширяют функциональные возможности страниц

Подпись кода ActiveX Microsoft и другие компании-производители программного обеспечения разработали безопасный и надежный способ распространения программ по Интернету, основанный на цифровой подписи кода элементов управления ActiveX Цифровой сертификат гарантирует лишь, что полученный код: разработан квалифицированным разработчиком, подписавшим его не был случайно поврежден или преднамеренно изменен