Интерфейсы COM.

advertisement
Лекция №7. Технологии, основанные на объектной модели
компонентов
Учебные вопросы:
1. Объектная модель компонентов (СОМ)
2. Технология СОМ+
3. .NET компоненты
Вопрос №1
Сущность технологии COM.
Одна часть ПО должна получать доступ к сервисам,
предоставляемым другой частью.
В СОМ любая часть ПО реализует свои сервисы как один или
несколько объектов СОМ.
Каждый такой объект поддерживает один или несколько
интерфейсов, состоящих из методов.
Каждый метод — это процедура или функция, которая
выполняет требуемое действие и может быть вызвана
программным обеспечением, использующим данный объект
(клиентом объекта).
Интерфейсы COM.
Каждый поддерживаемый объектом интерфейс, по сути, —
контракт между этим объектом и его клиентами.
Объект должен поддерживать методы интерфейса в соответствии
со спецификацией, а клиент обязуется корректно вызывать
методы.
Интерфейсы COM.
Интерфейсом является определенная структура в памяти,
содержащая массив указателей на функции. Каждый элемент
массива содержит адрес функции, реализуемой компонентом.
Для клиента компонент представляет собой набор интерфейсов.
У каждого интерфейса СОМ имеется два имени. Одно из них
предназначено для использования человеком, а второе — для
использования ПО.
Серверы объектов СОМ.
Каждый объект СОМ реализуется внутри некоторого сервера.
Выделяются следующие типы серверов:
1. сервер «в процессе», который реализуется в виде
динамической библиотеки (.dll), т.е. исполняется в одном
адресном пространстве с клиентом;
2. локальный сервер, в котором объекты реализованы в
отдельном процессе (.ехе файл), исполняющемся на том же
хосте, что и клиент.
3. удаленный сервер, в котором объекты реализованы в DLL или
в отдельном процессе. Объекты расположены на удаленном
по отношению к клиенту хосте (в этом случае используется
распределенная COM (DCOM)).
Можно выделить четыре основные фазы создания объекта СОМ:
1. клиент вызывает функцию библиотеки COM CoCreateInstance;
2. библиотека СОМ находит в системном реестре запись,
соответствующую классу данного объекта;
3. библиотека СОМ запускает сервер СОМ и возвращает клиенту
указатель на требуемый интерфейс;
4. клиент вызывает требуемый метод.
Вопрос №2
Основной целью создания СОМ+ следует считать разработку
компонентной модели, которая могла эффективно
использоваться в ИС крупного предприятия.
Отличительными особенностями среды СОМ+ являются
следующие:
1. наличие эффективных механизмов работы с транзакциями;
2. возможность реализации асинхронного взаимодействия с
помощью очередей сообщений;
3. наличие механизмов работы с событиями;
4. улучшенные показатели безопасности.
5. возможность работы с пулом объектов.
Технология (платформа) СОМ+ включает в себя следующие
основные элементы:
1. программное обеспечение промежуточного уровня
(middleware), обеспечивающее поддержку транзакций;
2. интерфейсы прикладного программирования;
3. утилиты, предназначенные для управления транзакциями.
Технология (платформа) СОМ+ включает в себя следующие
основные элементы:
1. программное обеспечение промежуточного уровня
(middleware), обеспечивающее поддержку транзакций;
2. интерфейсы прикладного программирования;
3. утилиты, предназначенные для управления транзакциями.
Одним из важных сервисов, предоставляемых СОМ+, является
сервис безопасности. Данная платформа позволяет обеспечивать
доступ к компонентам в зависимости от прав, которыми обладает
клиент.
Вопрос №3
.NET Framework — программная платформа компании Microsoft,
предназначенная для создания обычных программ и вебприложений.
В основу .NET Framework была положена амбициозная идея
сделать платформо независимую универсальную виртуальную
машину, которая могла бы выполнять код, написанный на
произвольном языке программирования в различных ОС без
перекомпиляции кода. Однако со временем Microsoft
ограничилась поддержкой только собственных ОС, предоставив
независимым разработчикам заниматься поддержкой других
платформ.
Основными составными частями .NET Framework являются
инвариантная к языку программирования среда исполнения
(common language runtime, CLR) и библиотека классов Framework
(framework class library, FCL).
CLR — это некоторая обертка для API ОС, которая служит средой
для исполнения управляемых приложений (managed applications).
FCL предоставляет объектно-ориентированный API, к которому
обращаются управляемые приложения.
Инвариантная к языку программирования сфера достигается за
счет того, что среда разработки создает байт-код, который
интерпретируется виртуальной машиной.
В качестве основных языков, поддерживаемых платформой NET,
выступают С#, VB.NET, JScript.NET, C++/CLI, IronPython, IronRuby и
F# (функциональный язык общего назначения).
В качестве входного языка виртуальной машины в .NET
используется Common Intermediate Language (CIL). В более ранних
версиях он назывался Microsoft Intermediate Language (MSIL).
Применение байт-кода позволяет получить
кроссплатформенность на уровне скомпилированного проекта,
который называют сборкой.
Функцию преобразования сборки в исполняемый код целевого
процессора реализует JIТ-компилятор (just in time), который
выполняет компиляцию «на лету».
Стек технологий .NET
Система построения клиентских приложений (Windows
Presentation Foundation, WPF) предназначена для создания как
автономных, так и запускаемых в браузере приложений.
Система обмена данными между приложениями (Windows
Communication Foundation, WCF) представляет собой
программный фреймворк, используемый для обмена данными
между приложениями и входящей в состав .NET Framework.
Система управления рабочими процессами (Windows Workflow
Foundation, WF) — технология для определения, выполнения и
управления рабочими процессами.
Технология единого входа (Windows CardSpace, WCS) — это
система идентификации пользователей при работе с разными
ресурсами без необходимости повторного ввода имен и паролей.
Модель доступа к данным (ADO.NET (ActiveX Data Objects.NET))
— интерфейс программирования приложений для доступа к
данным, основанный на технологии компонентов ActiveX, и
позволяющий представлять данные из разнообразных
источников (реляционных баз данных, текстовых файлов и т.д.), в
объектно-ориентированном виде.
Язык интегрированных запросов (Language Integrated Query,
LINQ) позволяет поддерживать механизм запросов для коллекций
объектов в памяти, реляционных баз данных и данных в формате
XML
Компонент .NET представляет собой перекомпилированный самоописываемый MSIL-модуль, построенный на базе одного или
более классов или модулей, расположенных в DLL-файле сборки
(DLL assembly file)
Сборки представляют собой базовые строительные блоки,
обеспечивающие развертывание и выполнение приложений .NET.
Download