Файл: Сетевые технологии (Характеристика технологии COM).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.06.2023

Просмотров: 68

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Актуальность выполнения данной работы обусловлена тем, что в современном мире циркулирует огромное количество информации. Управление этой информацией не может быть выполнено без использования высокоэффективных технологий обработки данных. Так, например, технологии ActiveX охватывают обширные области программного обеспечения.

Корпорация Microsoft применяет их повсеместно в процессе разработки своих прикладных программных продуктов. Они также интенсивно используются в операционных системах. Технология COM лежит в основе стандартов OLE и ActiveX - модель компонентного объекта (Component Object Model - СОМ).

Одной из наиболее важных черт технологии СОМ является ее способность предоставлять двоичный стандарт для программных компонентов.

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

Это является основным достижением создателей технологии СОМ и отвечает современным потребностям сообщества разработчиков прикладных программ.

Объект исследования – сетевые технологии.

Предмет исследования – технология COM.

Целью данной работы является изучение особенностей использования технологии COM.

В соответствии с целью была определена необходимость постановки и решения следующих задач:

– изучить технологии, основанные на стандарте COM;

– описать COM-интерфейс;

– описать COM-серверы;

– описать COM-клиент;

– разработать программную систему.

1. Аналитическая часть

1.1. Характеристика технологии COM

COM (англ. Component Object Model – модель компонентного объекта; произносится как [ком]) представляет собой специализированный технологический стандарт от компании Microsoft, предназначенный для практического создания прикладного программного обеспечения на основе взаимодействующих прикладных компонентов объекта, каждый из которых может использоваться во многих программах одновременно.

Стандарт COM включает в себя идеи современной парадигмы объектно-ориентированного программирования – полиморфизм, инкапсуляция и наследование.


Можно отметить, что стандарт COM мог бы быть универсальным и платформо-независимым, но закрепился в основном на базе использования средств операционных системах семейства Microsoft Windows. В современных версиях операционной системы Windows технология COM используется достаточно широко для решения большого количества различных задач. На основе практического использования технологии COM были реализованы уникальные технологии, среди которых можно отметить следующие: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX, а также XPCOM.

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

Каждый отдельный компонент имеет уникальный идентификатор (GUID) и может одновременно использоваться большим количеством программных систем. Компонент COM взаимодействует с другими программами через COM-интерфейсы ­– наборы абстрактных функций и свойств.

Каждый COM-компонент должен, как минимум, поддерживать стандартный программный интерфейс «IUnknown», который предоставляет базовые средства для обеспечения надежной работы с соответствующим прикладным программным компонентом. Интерфейс «IUnknown» включает в себя несколько специализированных методов, к которым относятся следующие: QueryInterface, AddRef, Release.

Windows API предоставляет разработчику базовые функциональные возможности, позволяющие использовать COM-компоненты. Библиотеки MFC и, особенно, ATL/WTL предоставляют более гибкие и удобные средства для работы с COM.

Библиотека ATL от Microsoft до сих пор остаётся самым популярным средством для практического создания COM-компонентов. Но зачастую COM-разработка остаётся ещё довольно сложным делом, программистам приходится вручную выполнять многие рутинные задачи, связанные с COM. Впоследствии (в технологиях COM+ и особенно .NET) Microsoft попыталась упростить задачу разработки COM-компонентов.

Поддержка операционных систем:

– Windows 7, Windows 8, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 поддерживают COM+;

– Для Windows Server 2012 R2 роль сервера приложений, которая реализует COM+, объявлена устаревшей и подлежащей удалению в будущих версиях.

1.2. Технологии, основанные на стандарте COM

Среди множества технологий, основанных на стандарте COM: DCOM; COM+; OPC; OLE; ADO. Рассмотрим основные возможности перечисленных технологий.


DCOM.

Выпущенная в 1996 году технология DCOM (англ. Distributed COM – распределённая COM) основана на технологии DCE/RPC (разновидности RPC). DCOM позволяет COM-компонентам взаимодействовать друг с другом по сети. Главным конкурентом DCOM является другая известная распределённая технология – CORBA.

Как DCOM, так и CORBA решают задачу вызова метода объекта, расположенного на другой машине, а также передачу ссылки на объект с одной машины на другую.

Сетевой уровень DCOM называется ORPC (Object RPC) и является объектно-ориентированным расширением DCE RPC.

Технология DCOM обеспечивает базовые установки безопасности, позволяя задавать, кто и из каких машин может создавать экземпляры объекта и вызывать его методы.

COM+

Microsoft Transaction Server был включен в Option Pack для Windows NT4 еще в 1997 году.

В составе Windows 2000 была выпущена технология COM+, которая являлась новой версией Microsoft Transaction Server.

Технология позволила расширить имеющиеся возможности разработчиков COM-компонентов, предоставляя им некоторые готовые услуги, среди которых можно отметить следующие:

– автоматический пул потоков, создаваемый стандартным процессом-загрузчиком mtx.exe;

– доступ к соответствующему контексту, в котором выполняется компонент (например, компоненты, используемые в ASP, могут с этой возможностью получить доступ к внутренним объектам той страницы, на которой они выполняются);

– интеграция с специализированными транзакциями монитора MS DTC (контекст COM+ может в автоматическом режиме содержать в себе транзакцию MS DTC).

MTS/COM+ использовался внутри ряда версий веб-сервера MS IIS для загрузки и исполнения веб-приложений, как бинарных по технологии ISAPI, так и скриптовых по технологии ASP (сама asp.dll есть ISAPI-приложение).

COM+ объединяет компоненты в так называемые приложения COM+, что упрощает администрирование и обслуживание компонентов. Безопасность и производительность – основные направления усовершенствований COM+. Некоторые идеи, заложенные в основу COM+, были также реализованы в Microsoft .NET.

OPC.

OPC (OLE for Process Control) – семейство программных технологий, предоставляющих единый интерфейс для управления объектами автоматизации и технологическими процессами. Многие из OPC-протоколов базируются на Windows-технологиях: OLE, ActiveX, COM/DCOM. Такие OPC-протоколы, как OPC XML DA и OPC UA, являются платформо-независимыми.

OLE.

OLE (англ. Object Linking and Embedding, произносится как oh-lay [олэй] – Связывание и встраивание объекта) – технология связывания и внедрения объектов в другие документы и объекты, разработанные корпорацией Майкрософт.


OLE позволяет передавать часть работы от одной прикладной программы редактирования к другой и возвращать результаты назад. Например, установленная на персональном компьютере издательская система может послать некий текст на обработку в текстовый редактор, либо некоторое изображение в редактор изображений с помощью OLE-технологии.

ADO.

Компоненты для работы с Microsoft ActiveX Data Objects (ADO) впервые появились в среде Delphi версии 5.

ADO – это технология стандартного обращения к реляционным структурам данных от Microsoft. Она аналогична BDE по назначению и сродни ему по возможностям.

В основе архитектуры ADO лежит объектная модель компонентов COM (Component Object Model). Все объекты и интерфейсы ADO представляют собой интерфейсы и объекты СОМ.

Модель СОМ является базовой для технологий ActiveX и OLE. Проиллюстрировать это отношение можно на примере объекта TObject, как базового объекта для VC L Delphi.

Технология СОМ работаете так называемыми СОМ-объектами. Во многом СОМ-объекты похожи на обычные объекты визуальной библиотеки компонентов Delphi.

2. Проектная часть

2.1. COM-интерфейс

В процессе создания СОМ-приложений необходимо обеспечить следующее:

– СОМ-интерфейс;

– СОМ-сервер;

– СОМ-клиент.

Рассмотрим перечисленные составляющие СОМ-приложения более подробно.

Клиенты СОМ связываются с объектами при помощи практического использования СОМ-интерфейсов. Интерфейсы – это группы логически или семантически связанных программных процедур, которые обеспечивают необходимую связь между поставщиком услуги (некоторым сервером) и его программным клиентом. На рис. 1 схематично изображен стандартный СОМ-интерфейс.

Рисунок 1 – СОМ-интерфейс

Для примера, каждый отдельный СОМ-объект всегда поддерживает основной СОМ-интерфейс lUnknown, который применяется для непосредственной передачи клиенту соответствующих сведений о поддерживаемых интерфейсах программной системы.

CОМ-объект может иметь несколько программных интерфейсов, каждый из которых обеспечивает какую-либо свою отдельную функциональную возможность.

Среди ключевых аспектов при использовании СОМ-интерфейсов являются следующие:

– однажды определенные, программные интерфейсы не могут быть изменены при последующей работе программной системой. Таким образом, разработчику можно возложить на один конкретный интерфейс определенный набор функциональных возможностей. Дополнительную функциональность можно реализовать при помощи непосредственного использования дополнительных интерфейсов.


– по взаимному соглашению, все имена программных интерфейсов начинаются с буквы I, например IPersist, IMalloc.

– каждый отдельный интерфейс гарантированно имеет свой уникальный идентификатор, который называется глобальный уникальный идентификатор (Globally Unique Identifier, GUID). Уникальные идентификаторы интерфейсов называют идентификаторами интерфейсов (Interface Identifiers, IIDs). Данные идентификаторы обеспечивают устранение конфликтов имен различных версий приложения или разных приложений.

– интерфейсы не зависят от языка программирования. Вы можете воспользоваться любым языком программирования для реализации СОМ-интерфейса. Язык программирования должен поддерживать структуру указателей, а также иметь возможность вызова функции при помощи указателя явно или неявно.

– интерфейсы не являются самостоятельными объектами, они лишь обеспечивают доступ к объектам. Таким образом, клиенты не могут напрямую обращаться к данным, доступ осуществляется при помощи указателей интерфейсов.

– все интерфейсы всегда являются потомками базового интерфейса Iunknown.

Указатель интерфейса представляет собой 32-битный указатель на отдельный экземпляр объекта, который является, в свою очередь, указателем на непосредственную реализацию каждого метода интерфейса программной системы. Реализация программных методов доступна через массив указателей на эти методы, который называется vtable. Использование массива vtable похоже на механизм поддержки виртуальных функций в Object Pascal.

Наглядное представление работы указателей СОМ-интерфейса представлено на рис. 2.

Рисунок 2 – Схема работы указателя СОМ-интерфейса

Таким образом, СОМ-интерфейс представляет собой набор абстрактных функций и свойств, через который программы взаимодействует с COM-компонентом. Состав этого набора объявляется независимо от компонента, и публикуется, как правило, на языке IDL. Компонент реализует работу в соответствии с декларируемыми интерфейсами. В разных языках программирования для описания спецификации интерфейса предусмотрены различные средства. К COM-интерфейсам стандарты предъявляют жёсткие требования по реализации определённых функций, поэтому иногда образно говорят, что интерфейс – это контракт, который обязуется выполнять компонент.

2.2. COM-серверы

СОМ-сервер представляет собой приложение или библиотеку, которая предоставляет услуги приложению-клиенту или библиотеке. СОМ-сервер содержит один или более СОМ-объектов, где СОМ-объекты выступают в качестве наборов свойств, методов и интерфейсов.