Добавлен: 28.03.2023
Просмотров: 139
Скачиваний: 2
ВВЕДЕНИЕ
На сегодняшний день технологии COM нашли достаточно широкое применение в процессе разработки различных программных продуктов и прочих элементов программного обеспечения. Кроме того, данная технология используется для обеспечения интеграции разнообразных программных оболочек и продуктов в единые системы.
Разработчики технологии COM целью разработки ставили интеграцию программного обеспечения посредством стандартизации механизмов и операций взаимодействия программных модулей друг с другом.
Технология COM явилась основой огромного чилса дочерних технологий, которые в свое время преобразовались в стандарты в самых разных сферах применения информационных технологий, начиная управлением технологическими процессами в промышленности и заканчивая домашними персональными компьютерами.
Широкое использование технологии COM можно связать с массовостью, масштабностью и мощью самого ее разработчика, а именно, - фирмы Microsoft. Данная компания давно уже завоевала достаточную репутацию и престиж, с которыми приходится считаться. Так, любая программа, выпущенная на платформу Windows, должна быть соответственной новшествам и инновациям Microsoft, что обеспечит коммерческий успех и экономическую эффективность разработки.
Для более подробного изучения вопроса необходимо выполнить следующую цель работы –изучение технологии COM.
Для достижения данной цели необходимо выполнить следующие задачи:
- Изучить понятие технологии COM;
- Рассмотреть историю развития технологии COM;
- Разобрать терминологию технологии COM;
- Проанализировать состав объектов технологии COM;
- Подвести итоги по проделанной работе.
Объектом изучения предметной области являются технологии обработки информации, а предметом – технология COM.
Структура работы включает в себя несколько элементов, среди них – введение, заключение и список использованной литературы, а также две главы, каждая из которых содержит по два параграфа.
Технология COM. Понятие и история развития
Понятие технологии COM
Технология COM (Component Object Technology) является объектно-ориентированной программной спецификацией, которая была предложена фирмой Microsoft. Изначально замысел разработчиков видел предназначением технологии COM повышение надежности взаимодействия программных продуктов между собой[1]. Вопреки расхожему мнению, технология COM не является определяющей для структуры программного продукта, языка программирования и прочих деталей реализации.
В то же время, COM представляет собой стандарт, регламентирующий модель программного объекта, и который соответствует требованиям COM-технологии. Таким образом, программный продукт или любой малейший объект, который был создан соответственно стандарту и технологии COM, носит название «COM-объект». Так, технология COM способствует определению механизма взаимодействия COM-объектов друг с другом. Как стандарт, COM можно отнести к так называемым двоичным стандартам, так как он является прилагаемым к оттранслированному в двоичный код программному объекту[2].
Механизмы воздействия COM-объектов друг на друга обеспечиваются набором предопределенных подпрограмм, которые носят название «интерфейсы». Доступ к интерфейсам может быть обеспечен посредством уникальных идентификаторов интерфейсов GUID (Global Unique Interface Identifyer), а уникальность этих самых идентификаторов обеспечивается операционной системой. Такой механизм напоминает применение указателей при получении доступа к объектам в объектно-ориентированных языках программирования, что, в свою очередь, предоставляет ценную возможность прозрачного управления объектами, т.к. доступ к ним обеспечивается именно через указатели. Несмотря на схожесть, COM-технология в некотором роде масштабирует этот механизм, так как переносит использование указателей (в виде GUID) для доступа к объектам на уровень операционной системы. Благодаря этому COM-объекты могут быть друг для друга прозрачно модифицированы, так как доступ к объектам получается именно посредством идентификаторов GUID.
Помимо вышеуказанного, COM технология включает в себя библиотеку, которая, в свою очередь, содержит в себе определенный набор стандартных интерфейсов, определяющих ядро функциональности COM и небольшой набор API функций, которые были разработаны для создания COM-объектов и управления ими.
Технология COM обладает расширяемой архитектурой, и, благодаря этому, на ней базируются многие другие технологии Microsoft, среди основных – OLE и ActiveX. На сегодняшний день данные технологии представляют собой расширения операционной системы, посредством чего могут определять свои собственные правила функционирования и предлагать собственные библиотеки при создании объектов и при управлении объектами на основе названных технологий.
Применяя технологию COM как основу, разработчики программного обеспечения обретают ценную возможность проектировать новые расширения так, что программные продукты, которые были созданы по правилам COM-технологии, могут успешно функционировать с другими COM-объектами посредством унифицированного механизма взаимодействия, предлагаемым COM[3].
В технологии COM распространено такое понятие как «класс», обозначающее по смыслу то же, что означает и в объектно-ориентированных средствах разработки. Кроме того, как было указано выше, технология СОМ работает с СОМ-объектами. СОМ-объекты, в свою очередь, схожи со стандартными объектами, входящими в визуальную библиотеку компонентов Delphi. Но, несмотря на сходства, в отличие от объектов VCL Delphi, СОМ-объекты сами включают в себя свойства, методы и интерфейсы. COM-объект в некотором роде представляет собой составляющий элемент COM-класса (COM class). Для того, чтобы отличать COM-классы от классов объектно-ориентированных языков, COM-классы обычно называются соклассами (CoClass).
Помимо вышеперечисленного, технология СОМ используется при описании API и двоичного стандарта для связи объектов различных языков и сред программирования. СОМ также предоставляет модель взаимодействия между компонентами и приложениями[4].
История развития технологии COM
Как было указано в предыдущем параграфе, наиболее значимой хадачей, которая стояла перед разработчиком исследуемой технологии, а именно – перед компанией Microsoft, стояло обеспечение максимально эффективного механизма взаимодействия различных программных продуктов, работающих в одной системе Windows.
Для решения названной задачи в первую очередь были разработаны такие объекты, как буфер обмена, разделяемые файлы и технология динамического обмена данными, сегодня более распространенная под аббревиатурой DDE (Dynamic Data Exchange).
Уже после разработки перечисленных объектов было положено начало и успешное внедрение технологии связывания и внедрения объектов, известной как OLE (Object Linking and Embedding). Первая версия OLE – OLE 1 по замыслу и реализации обеспечивала создание составных документов. Но, со временем первоначальная версия дала слабину и ее признали недостаточно совершенной, после чего разработки продолжились и появилась вторая версия – OLE 2. Данная версия предоставляла возможность решения вопроса передачи различными программами друг другу собственных функций. И вторая версия технологии была довольно успешна и масштабно применялась вплоть до 1996 года, который ознаменовался появлением в массовом распространении технологии ActiveX. Данная технология включила в себя автоматизацию (OLE-автоматизацию), контейнеры, управляющие элементы, Web-технологию и т. д[5].
Но еще в 1993 компанией Microsoft была предпринята попытка модернизации технологии OLE, в рамках которой был разработан стандарт COM. К тому времени технология OLE 1.0 уже позволяла создавать так называемые «составные документы». Наглядным примером составного документа является включение диаграмм Microsoft Excel в документы Microsoft Word.
После выхода в 1996 году технологии ActiveX началась путаница в названиях технологий, которая не исчезла и на сегодняшний день. Все началось с того, что в 1996 году компания Microsoft предприняла попытку переименовать технологию OLE в ActiveX, но это удалось лишь частично. Рассмотрим процесс переименования подробнее – так, технология OLE предоставляла возможность проектировать своеобразные элементы управления OLE, которые являлись повторно используемыми элементами пользовательского интерфейса, построенными согласно положениям стандарта COM. Эти элементы управления OLE были переименованы в элементы управления ActiveX, несмотря на то, что сохранили расширение «.ocx». После этого технология ActiveX стала широко внедряться и распространятся, вследствие чего, как было указано ранее, «выместила» технологию OLE. Наиболее активное распространение технологии ActiveX осуществлялось в сети Интернет благодаря включению элементов технологии в браузер Internet Explorer. Как следствие, наименование OLE осталось только за технологией составных документов и локальных внедряемых объектов. А сетевые OLE-объекты стали называть согласно нововведениям – ActiveX.
Следовательно, несмотря на то, что путаница в некоторой степени сохраняется и до сих пор, речь идет об одних и тех же COM-технологиях. Бывает даже, что в источниках происходит путаница между понятиями OLE и COM. Например, внедряемы OLE-объекты иногда называют COM-объектами, а OLE-контейнеры – COM-контейнерами, и т. п.
Из первой главы становится очевидно, что технология СОМ имеет два явных плюса:
- Независимость от языка и среды программирования создания СОМ-объектов. Благодаря этому СОМ-объекты могут быть написаны на самых разнообразных языках программирования;
- Возможность использования СОМ-объектов в любой среде программирования под Windows. Сюда можно включить такие среды, как Delphi, Visual C++, C++Builder, Visual Basic, и многие другие.
Но, несмотря на данные существенные преимущества технологии, она обладает и некоторыми отрицательными сторонами, основная из которых – это зависимость от платформы. Иначе говоря, технология СОМ может быть применена исключительно в операционной системе Windows и на платформе Intel[6].
2 Терминология и состав технологии COM
2.1 Терминология технологии COM
Всякая новая технология приносит с собой новые термины для ее описания. Технология COM не является исключением. В данном параграфе будут рассмотрены наиболее значительные термины, обозначающие составные части исследуемой технологии.
СОМ-объект
СОМ-объект представляет собой двоичный код, который выполняет какую-либо функцию и имеет один или более интерфейс.
СОМ-объект содержит методы, которые позволяют приложению пользоваться СОМ-объектом. Эти методы доступны благодаря СОМ-интерфейсам. Клиенту достаточно знать несколько базовых интерфейсов СОМ-объекта, чтобы получить полную информацию о составе свойств и методов объекта. СОМ-объект может содержать один или несколько интерфейсов. Для программиста СОМ-объект работает так же, как и класс в Object Pascal[7].
СОМ-интерфейсы
СОМ-интерфейс применяется для объединения методов СОМ-объекта. Интерфейс позволяет клиенту правильно обратиться к СОМ-объекту, а объекту – правильно ответить клиенту. Названия СОМ-интерфейсов начинаются с буквы I. Клиент может не знать, какие интерфейсы имеются у СОМ-объекта. Для того чтобы получить их список, клиент использует базовый интерфейс lunknown, который есть у каждого СОМ-объекта[8].
Пользователь СОМ-объекта
Пользователем СОМ-объекта называется приложение или часть приложения, которое использует СОМ-объект и его интерфейсы в своих собственных целях. Как правило, СОМ-объект находится в другом приложении[9].
СОМ-классы
СОМ со-классы (coclass) – это классы, которые содержат один или более СОМ-интерфейс. Вы можете не обращаться к СОМ-интерфейсу непосредственно, а получать доступ к СОМ-интерфейсу через со-класс. Со-классы идентифицируются при помощи идентификаторов класса (CLSID)[10].
Библиотеки типов
СОМ-объекты часто используют библиотеки типов. Библиотека типов – это специальный файл, который содержит информацию о СОМ-объекте. Данная информация содержит список свойств, методов, интерфейсов, структур и других элементов, которые содержатся в СОМ-объекте. Библиотека типов содержит также информацию о типах данных каждого свойства и Типах данных, возвращаемых методами СОМ-объекта. Файлы библиотеки типов имеют расширение TLB[11].