- •Объектно–ориентированное проектирование.
- •Компонентный подход к проектированию
- •Аспектно–ориентированное программирование (аоп).
- •Генерирующее (порождающее) программирование
- •Агентное программирование.
- •Семейство систем Borland alm, дополняющее .Net Framework
- •Ответы на 14/15/16/17
- •Преимущества использования компонентной архитектуры:
- •Структура компонентов com
- •Основные понятия com-технологии
- •Традиционные методы доступа к сервисам приложений
- •Доступ к сервисам приложений с использованием com.
- •Серверы com.
- •Клиенты com
- •Использование технологии com.
- •Библиотека com
- •Расширения com
- •Общие сведения о семействе методологий ideFx
Расширения com
Технология СОМ изначально разрабатывалась как ядро для осуществления межпрограммного взаимодействия. Уже на этапе разработки предполагалось расширять возможности технологии при помощи так называемых расширений СОМ. СОМ расширяет собственную функциональность, благодаря созданию специализированных наборов интерфейсов для решения конкретных задач.
Примером могут служить ранее упоминавшиеся технология автоматизации (automation) и технология ActiveX. Однако, на этом список возможных расширений СОМ далеко не исчерпывается. Постоянно идет доработка старых и создание новых, более совершенных технологий межпрограммного взаимодействия. В табл. 2.1 представлены некоторые из наиболее часто используемых в настоящее время (но далеко не все!) расширений СОМ.
В табл. 2.2 приведены основные особенности объектов для каждого из вышеприведенных расширений СОМ.
Если не считать простейшего COM-объекта (COM-сервера), содержащего один базовый интерфейс Iunknown и, один или несколько пользовательских интерфейсов, то наиболее простым из указанных в таблице 2.1 расширений СОМ является сервер автоматизации. По сути, он представляет собой простейший COM-сервер, дополненный еще одним интерфейсом – Idispatch.
40///////////////////////////////////40////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////40
Технология автоматизации (OLE Automation) разработана на основе технологии СОМ. Так же как и СОМ, автоматизация позволяет использовать функции одних приложений в других приложениях. Автоматизация - это механизм обмена информацией между процессами в операционной системе Windows, с помощью которого одна прикладная программа может управлять другой. Технология OLE Automation обеспечивает выполнение базовых функций, позволяющих обособленным программным модулям связываться и обмениваться информацией. Многие используемые в технологии автоматизации термины подобны тем, которые применяются при описании технологии СОМ.
Объект автоматизации не имеет принципиальных отличий от объекта СОМ и представляет собой отдельный, самодостаточный объект, разработанный для выполнения специфической задачи или функции. Отличие от объекта СОМ заключается только в том, что доступ к объектам автоматизации осуществляется через специальные интерфейсы, называемые интерфейсами диспетчеризации (dispinterface). Интерфейсы диспетчеризации похожи на обычные интерфейсы СОМ, но позволяют упростить обращение к объекту автоматизации. Приложение, предоставляющее те или иные сервисы и применяющее для этой цели интерфейсы содержащихся внутри него адресного пространства COM-объектов, называется сервером автоматизации. Приложение, использующее эти сервисы, называется контроллером автоматизации и может быть создано с помощью подавляющего большинства современных средств разработки программного обеспечения.
Сервер автоматизации представляет собой исполняемый модуль, который может включать в себя несколько объектов автоматизации.
Контроллером (диспетчером) автоматизации принято называть клиентское приложение, управляющее объектом автоматизации. Контроллер автоматизации для управления объектом автоматизации использует методы интерфейсов этого объекта. Для получения информации об интерфейсах служат библиотеки типов.
41////////////////////////////////////////////////////////////////////41///////////////////////////////////////////////////////////////////////41//////////////////////////////////////////////////////////////////////////////41
Обычно, в состав современных сред разработки включаются т. н. мастера (Wizards) для создания разнообразных объектов СОМ. Они позволяют создавать СОМ-объекты при помощи мастера, а также регистрировать и тестировать созданные объекты.
Мастера СОМ-объектов выполняют следующие действия:
1. Создают новый модуль в текущем проекте.
2. Определяют новый класс, который является прямым потомком класса TCOMObject и устанавливают конструктор фабрики класса.
В общем случае, для разработчика процесс создания нового СОМ-объекта состоит из следующих шагов:
1. Проектирование СОМ-объекта.
2. Создание СОМ-объекта с использованием мастера.
3. Регистрация СОМ-объекта.
4. Тестирование СОМ-объекта.
При проектировании СОМ-объекта необходимо четко представлять, какие СОМ-интерфейсы должны быть реализованы. Обычно, по умолчанию мастера предоставляют интерфейс lunknown. Кроме того, разработчик обязан определить, какой тип сервера он хочет использовать: внутренний, локальный или удаленный. Если проектируется внутренний или локальный СОМ-сервер - то должна быть подключена библиотеку типов. При этом маршалинг будет произведен автоматически.
Для различных COM-объектов необходимы разные наборы интерфейсов. В табл. 2.3 приведен перечень интерфейсов, предоставляемых различными мастерами. Разработчик может выбрать тот мастер, который реализует необходимые для создаваемого СОМ-объекта интерфейсы.
42///////////////////////////////////////////////////////////////////42///////////////////////////////////////////////////////////////////////////////////42//////////////////////////////////////////////////////42
