Автор работы: Пользователь скрыл имя, 01 Февраля 2013 в 19:48, реферат
Архитектура COM является расширяемой, и на ней базируются другие технологии Microsoft, такие как OLEи ActiveX. Эти технологии в настоящее время являются расширениями операционной системы, и определяют свои собственные правила работы и предлагают свои библиотеки для создания объектов и для управления объектами на основе данных технологий. Используя COM как основу, разработчики программного обеспечения получают возможность создавать свои собственные расширения таким образом, что программные объекты созданные, по правилам COM-технологии могут работать с другими COM-объектами через унифицированный механизм взаимодействия, который предлагает COM.
1. COM-технологии …………………………………………………………………………3
1.1. Состав COM-объекта …………………………………………………………………...4
1.2. Интерфейсы ……………………………………………………………………………..4
1.3. Свойства COM-объектов ……………………………………………………………….7
1.4. COM-серверы …………………………………………………………………………...7
1.5. Механизм маршаллинга ………………………………………………………………..8
1.6. Фабрики классов ………………………………………………………………………..9
1.7. Библиотеки типов …………………………………………………………………......10
1.8. Диспетчерский интерфейс …………………………………………………………….11
1.9. Привязка идентификаторов …………………………………………………………...12
1.10. Пользовательские интерфейсы ……………………………………………………...12
1.11. Двойные интерфейсы ………………………………………………………………...13
2. DCOM-технологии ………………………………………………………………………15
2.1 Архитектура DCOM ……………………………………………………………………15
2.2 Компоненты и их повторное использование …………………………………………17
2.3 Независимость от местоположения …………………………………………………...17
2.4 Независимость от языка ………………………………………………………………..19
2.5 Управление соединением ……………………………………………………………...19
Список используемых источников………………………………………………………...20
Фабрики или производители классов (class factories) - специальный тип COM-объектов, используемый для создания и регистрации COM-объектов. Производители классов реализуют стандартный механизм создания объектов COM-классов. Классы без идентификаторов класса (CLSID) и фабрики классов могут быть созданы посредством вызова конструктора. Использование фабрики классов для создания объектов означает, что для клиентского приложения, которому необходимо создать объект класса, не нужно знать об этом классе ничего, кроме его идентификатора CLSID. Фабрика классов возьмет вызов конструктора на себя, включая передачу аргументов в конструктор и остальные специфичные действия. Класс фабрики классов может быть объединен со многими COM-классами, для каждого из которых могут создаваться объекты. При создании же объекта фабрики классов, в конструктор передается идентификатор CLSID класса, для создания объектов которого предназначается фабрика. Этот идентификатор определяет, объекты какого класса могут быть созданы с помощью данной фабрики классов. Таким образом, каждый экземпляр фабрики классов в системе может быть использован для создания объектов только одного определенного класса.
Создание объекта класса производится посредством следующих действий:
Альтернативой рассмотренному методу может служить вызов глобальной API-функции CoCreateInstance, которая выполняет перечисленный выше действия и создает объект класса с идентификатором CLSID, но таким образом можно создать только один объект данного класса, т.к. функция не возвращает указатель на интерфейс производителя классов.
Библиотека типов (type library) предоставляет информацию об используемых типах объектов и интерфейсах, которые предоставляются ActiveX-серевером. Библиотека типов по смыслу аналогична, например, заголовочному файлу (header) для разработок на языке C и любому другому модулю, содержащему информацию об используемых типах данных и объектах. Большинство информации подобного рода может быть записано в библиотеку типов. Получить информацию из библиотеки типов можно путем опроса запущенного объекта или же посредством загрузки непосредственно библиотеки типов. После создания библиотеки типов, к ней обеспечивается доступ через специальный тип интерфейсов: ITypeLib, ITypeInfo и ITypeComp. Интерфейс ITypeLib обеспечивает доступ к информации о типах в библиотеке типов, а также к описаниям конкретных объектов, которые, в свою очередь, могут быть получены через интерфейс ITypeInfo.
Библиотека типов содержит информацию о том, какой интерфейс, в каком COM-объекте содержится, количество и тип методов интерфейсов и их параметров. Эти описания включают в себя уникальные идентификаторы классов (CLSID) и их интерфейсов (IID), через которые осуществляется корректный доступ к объектам. В библиотеке типов также может содержаться следующая информация:
Использование библиотеки типов очень важно для объектов, которые предназначены для распространения и последующего использования многими пользователями. Также существует еще ряд причин использования библиотек типов:
Диспетчерский интерфейс (dispatch interface)
– стандартная специальная
Основным недостатком
COM предлагает возможность
Основным недостатком является отсутствие возможности проверки имени ресурса, если он вдруг изменился. В клиентском объекте все вызовы будут осуществляться через однажды связанные на этапе компиляции интерфейсные идентификаторы.
Vtable-интерфейсы (vtable interfaces) или пользовательские интерфейсы - определяются пользователем, и допускают вызывать методы интерфейса, пользуясь ссылками из vtable, при условии, если известен порядок записи ссылок на методы, число и тип передаваемых аргументов. Первые три записи в vtable соответствуют трем методам интерфейса IUnkown, за которыми следуют ссылки на остальные поддерживаемые интерфейсы. Если объект не реализует диспетчерский интерфейс, то следом за IUnkown непосредственно следуют ссылки на методы пользовательских интерфейсов, то есть, становится возможно обращение к методам и свойствам объектов непосредственно через ссылки из vtable.
В случае если сервер имеет библиотеку
типов и реализует
Несмотря на то, что COM предоставляет
возможность обращения к
Преимущества использования
Существует набор ограничений
по использованию двойных
Выпущенная в 1996 году технология DCOM (англ. Distributed COM — распределённая COM) основана на технологии DCE/RPC (разновидности RPC). DCOM позволяет COM-компонентам взаимодействовать друг с другом по сети. Главным конкурентом DCOM является другая известная распределённая технология — CORBA. Сетевой уровень DCOM называется ORPC (Object RPC) и является объектно-ориентированным расширением DCE RPC. Технология DCOM обеспечивает базовые установки безопасности, позволяя задавать, кто и как может создавать экземпляры объекта и вызывать его методы.
2.1 Архитектура DCOM
Выпущенная в 1996 году технология DCOM (англ. Di
Как DCOM, так и CORBA решают задачу вызова метода объекта, расположенного на другой машине, а также передачу ссылки на объект с одной машины на другую.
Сетевой уровень DCOM называется ORPC (Object RPC) и является объектно-ориентированным расширением DCE RPC.
Технология DCOM обеспечивает базовые установки безопасности, позволяя задавать, кто и из каких машин (источник про фразу «из каких машин»?) может создавать экземпляры объекта и вызывать его методы.
DCOM является развитием
Рисунок 4 – COM-компоненты в одном процессе
В сегодняшних операционных системах процессы изолированы друг от друга. Клиент, которому нужно связаться с компонентом другого объекта, не может вызвать компонент напрямую, а должен использовать некоторую форму связи между процессами, предусмотренную операционной системой. СОМ организует подобное соединение в полностью прозрачной манере: он перехватывает вызовы со стороны клиента и адресует их компоненту другого процесса. Рис. 6 показывает, как run-time библиотеки COM/DCOM организуют соединение между клиентом и компонентом.