- •Объектно–ориентированное проектирование.
- •Компонентный подход к проектированию
- •Аспектно–ориентированное программирование (аоп).
- •Генерирующее (порождающее) программирование
- •Агентное программирование.
- •Семейство систем Borland alm, дополняющее .Net Framework
- •Ответы на 14/15/16/17
- •Преимущества использования компонентной архитектуры:
- •Структура компонентов com
- •Основные понятия com-технологии
- •Традиционные методы доступа к сервисам приложений
- •Доступ к сервисам приложений с использованием com.
- •Серверы com.
- •Клиенты com
- •Использование технологии com.
- •Библиотека com
- •Расширения com
- •Общие сведения о семействе методологий ideFx
Серверы com.
Любой объект COM существует внутри некоторого сервера, содержащего код, который и реализует методы интерфейса класса объекта и контролирует данные объекта, пока тот активен. Каждый сервер, как правило, может поддерживать несколько объектов одного класса или даже несколько различных классов, каждый из которых может иметь (а может и не иметь) свой CLSID.
Как видно из рис 2.5 , существуют три основных типа серверов COM:
1. Сервер "в процессе" (in-process): реализован в динамически подключаемой библиотеке (DLL) и, таким образом, подгружается и исполняется в том же адресном пространстве (процессе) что и сам клиент (библиотека на рис 2.5).
2.Локальный сервер (local server или out-of-process): реализован в своем адресном пространстве (в параллельном процессе) на той же машине что и клиент (приложение 2 на рис 2.5).
3.Удаленный сервер (remote server): реализован как отдельный процесс или динамически подключаемая библиотека на удаленной, по отношению к клиенту, машине (УДАЛЕННОЕ приложение на рис 2.5). Возможность создания таких серверов обеспечивает распределенная COM (DCOM).
С точки зрения клиента все три сервера выглядят одинаково - как серверы "в процессе", ибо доступ к методам объектов клиентом по-прежнему осуществляется через указатели интерфейсов. Клиент может различать типы серверов, но на практике, обычно, этого не требуется.
Загрузка СОМ-сервера зависит от его типа - внутренний ли это сервер (DLL) или внешний (приложение).
Внутренний СОМ-сервер представляет собой DLL, которая может создавать СОМ-объекты для их использования в главном приложении. Этот тип СОМ-сервера называется "внутренний", потому что, как и DLL, он располагается в том же процессе, что и основное приложение. Внутренний сервер должен экспортировать стандартные функции реализованные в модуле ComServ, поэтому при работе с ним необходимо убедиться, в том, что эти функции добавлены в описания exports проекта.
Внешние СОМ-серверы являются исполняемыми файлами, которые могут создавать СОМ-объекты для использования в других приложениях. Эти типы серверов называются внешними, поскольку они не выполняются внутри клиентных процессов, а работают в контексте их собственного процесса.
Каждый из типов серверов имеет свои преимущества. Главным достоинством внутренних серверов является высокая скорость обмена данными с клиентом, которая достигается за счет того, что DLL-библиотеки работают в одном процессе с клиентом. Кроме того, DLL-серверы обычно более просты в отладке и тестировании, чем серверы-приложения.
С другой стороны, внешние серверы более выгодны с точки зрения изоляции ошибок. В случае использования внешних серверов даже аварийное завершение работы клиента не приведет к сбою в работе сервера.
35/////////////////////////////////////////////////////////////35//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////35
Клиенты com
СОМ-клиенты. Очень важным при разработке СОМ-приложений является создание приложений, называемых СОМ-клиентами, которые могут запрашивать интерфейсы объектов, чтобы определить те услуги, которые может предоставить СОМ-объект. Типичным СОМ-клиентом является диспетчер автоматизации (Automation Controller). Диспетчер автоматизации - это часть приложения, которая знает какой тип информации необходим ему от разных объектов сервера, и она запрашивает данную информацию по мере надобности.
Существуют два способа обращения к методам и свойствам СОМ-объекта: путем ссылки на его библиотеку типов (раннее связывание) и по имени (позднее связывание). Стандарт COM основан на едином для всех поддерживающих его языков формате таблицы, описывающей ссылки на методы объекта, реализующего интерфейс. Однако вызов методов при помощи этой таблицы доступен только для компилирующих языков программирования. Кроме того, базовый язык обращения к серверам Microsoft Office - Visual Basic for Application (VBA) не поддерживает работу с указателями и, следовательно, не может использовать интерфейсы. Специально для такого рода языков (помимо VBA c указателями не работают также языки JavaScript, SmallTalk и некоторые другие) в технологию СОМ введены диспинтерфейсы, позволяющие обращаться к методам и свойствам по имени, а не по адресу. Для поддержки этих языков была разработана технология автоматизации (automation, ранее она называлась OLE Automation), позволяющая приложениям делать свою функциональность доступной для гораздо большего числа клиентов.
Ответы на 32/33/34/35
36///////////////////////////////////////////////////////////////////////////////////////36////////////////////////////////////////////////////////////////////36///////////////////////////////////////////36
