Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
15 Сходство и отличия групп компонентов. Пример....doc
Скачиваний:
4
Добавлен:
04.08.2019
Размер:
69.63 Кб
Скачать

Принципы работы com

Основным понятием, которым оперирует технология COM, является COM-компонент. Программы, построенные на технологии COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Каждый компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться многими программами. Компонент взаимодействует с другими программами через COM-интерфейсы — наборы абстрактных функций и свойств. Каждый COM-компонент должен, как минимум, поддерживать стандартный интерфейс «IUnknown», который предоставляет базовые средства для работы с компонентом.

Windows API предоставляет базовые функции, позволяющие использовать COM-компоненты. Библиотеки MFC и, особенно, ATL/WTL предоставляют гораздо более гибкие и удобные средства для работы с COM. Библиотека ATL от Майкрософт до сих пор остаётся самым популярным средством создания COM-компонентов. Но, зачастую, COM-разработка остаётся ещё довольно сложным делом, программистам приходится вручную выполнять многие рутинные задачи, связанные с COM (особенно это заметно в случае разработки на С++). Впоследствии (в технологиях COM+ и особенно .NET) Майкрософт попыталась упростить задачу разработки COM-компонентов.

CORBA

CORBA (Common Object Request Broker Architecture — общая архитектура брокера объектных запросов) — это технологический стандарт написания распределённых приложений, продвигаемый консорциумом OMG. Задача CORBA — осуществить интеграцию изолированных систем, дать возможность программам, написанным на разных языках, работающим на разных узлах сети, взаимодействовать друг с другом так же просто, как если бы они находились в адресном пространстве одного процесса.

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

CORBA использует язык описания интерфейсов (OMG IDL) для определения интерфейсов взаимодействия объектов с внешним миром. CORBA описывает правила отображения из IDL в язык, используемый разработчиком CORBA-объекта. Стандартизованы отображения для Ada, C, C++, Lisp, Smalltalk, Java, COBOL, PL/I и Python. Также существуют нестандартные отображения на языки Perl, Visual Basic, Ruby и Tcl, реализованные средствами ORB, написанными для этих языков.

Объекты по значению (опз)

Помимо удалённых объектов в CORBA 3.0 определено понятие ОПЗ. Код методов таких объектов по умолчанию выполняется локально. Если ОПЗ был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было возможно, запись, определяющая ОПЗ, содержит поле Code Base — список URL, откуда может быть загружен код. У ОПЗ могут также быть и удалённые методы.

У ОПЗ могут быть поля, которые передаются вместе с самим ОПЗ. Они также могут быть ОПЗ, формируя таким образом списки, деревья или произвольные графы. ОПЗ могут иметь иерархию классов, включая множественное наследование и абстрактные классы.