Файл: Предпосылки возникновения технологии COM и область её использования.pdf

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

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

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

Добавлен: 27.06.2023

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

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

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

ВВЕДЕНИЕ

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

В то же время применение модуля, скомпилированного из исходного кода, написанного на одном языке, в программном коде на другом языке представляет собой определенные затруднения. Для решения данной задачи компанией Microsoft в 1993 году была предложена технология COM

Component Object Model (COM) – компонентно-ориентированная архитектура, которая позволяет создавать приложения и программные системы, пост­роенные из совокупности компонентов, разработанных различными производителями и на разных платформах. COM является основой, на которой строятся более высо­коуровневые приложения и сервисы. Среди них сервисы OLE, охватывающие различ­ные аспекты компонентных систем, включающие в себя сложные документы, элементы управления, передачу данных между приложениями и многое другое.

Модель COM относится к широко приме­няемым средствам модульного программирования. Созданные на ее основе программы предоставляют большой набор интегрированных служб, легкодоступных инструментов и полезных приложений. Реализация компонент COM не зависит от языка програм­мирования, средства COM имеют бинарно-совместимую архитектуру компонентов.

Предлагаемая курсовая работа посвящена характеристике технологии COM.

Задачами курсовой работы выступают:

- раскрыть предпосылки возникновения технологии COM и указать область её использования;

- охарактеризовать ключевые составляющие технологии COM

- провести сравнительный анализ технологии COM со смежными технологиями;

- выделить достоинства и недостатки технологии COM.

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

1. Предпосылки возникновения технологии COM и область её использования


1.1. История возникновения технологии COM

Технология СОМ является одной из базовых технологий Windows, и для того, чтобы понять ее назначение, необходимо рассмотреть основные предпосылки ее возникновения. Если попытаться кратко сформулировать ее цель – то это способ взаимодействия клиентских приложений и серверов или предоставление сервисов одним приложением другому. Таким образом, «главной предпосылкой возникновения СОМ является именно взаимодействие приложений» [8, с.25].

Проблема взаимодействия приложений Windows имеет две стороны: взаимодействие на одном компьютере и взаимодействие в рамках сети Интернет. Взаимодействие приложений, размещенных на удаленных компьютерах, обеспечивается технологией DCOM (Distributed COM – распределенная модель компонентных объектов), а также и технологией COM+. COM+ является следующим эволюционным шагом в развитии технологии СОМ. Технология COM+ не только включает в себя технологии COM и DCOM, но и имеет свои специфические особенности, облегчающие программирование взаимодействующих приложений Windows в рамках одного компьютера или в сети.

Чтобы яснее представить себе проблему взаимодействия приложений Windows, вспомним следующее. Каждый процесс в 32-разрядной Windows имеет свое адресное пространство размером в 4Гб и, по этой причине, один процесс не имеет никакой возможности получить доступ к данным или функциям другого процесса, так как любой адрес в процессе ссылается на свое адресное пространство.

В логической и хронологической последовательности взаимодействие приложений Windows реализовалось с использованием следующих технологий [12]:

1. Dynamic Link Libraries (DLL) – динамически подключаемые библиотеки.

2. Open DataBase Connectivity (ODBC) – открытый интерфейс доступа к базам данных, встроенный в Windows.

3. Dynamic Data Exchange (DDE) – динамический обмен данными.

4. Object Linking and Embedding (OLE1.0) – внедрение и связывание объектов.

5. OLE2.0 – OLE на базе COM.

6. Distributed COM (DCOM) – распределенная модель компонентных объектов.

7. COM+ – новейшая технология COM.

Может возникнуть вопрос, зачем вообще приложениям необходимо взаимодействовать друг с другом? «Если некоторому приложению необходимо, допустим, использовать электронные таблицы Excel, то почему бы ему не подключить соответствующую библиотеку DLL? Естественно, можно, и это уже было первым подходом к решению обсуждаемой проблемы» [8, с.84]. Однако такой подход имеет свои недостатки, главным из которых является проблема сопровождения. Если разрабатывалась новая версия какой-либо функции DLL, то перестают работать приложения, которые используют старую версию библиотеки. Если новую версию функции снабдить новым именем, то необходимо разрабатывать новую документацию и включать в библиотеку обе версии функции. Несложно себе представить, в какой конгломерат превратится библиотека в течение весьма небольшого промежутка времени и насколько сложно будет ориентироваться в многочисленных версиях функций».


Проиллюстрируем главную идею технологии ODBC можно на примере всё той же Excel. Так как это приложение должно быть способно считывать данные из БД различных форматов, необходимо или разрабатывать различные версии Excel для каждой из БД (Excel для Access, Excel для Oracle и т.д.) или заблаговременно подключать все необходимые библиотеки к Excel. Компанией Microsoft выбрала другой путь, создав промежуточный программный слой, который определяет стандартный интерфейс для приложений. На уровне вызовов этот интерфейс использует язык SQL, а реализация взаимодействия с БД обеспечивается драйверами, поставляемые в форме DLL. Таким образом, ODBC располагается между приложением и источниками данных различных форматов.

Технологию динамического обмена данными DDE можно рассматривать как попытку стандартизации обмена данными между приложениями. Вся идеология Windows основана на обработке сообщений (messages) и любые приложения могут обмениваться друг с другом сообщениями, используя общую очередь сообщений. Проблема, однако, состоит в том, что каждое из приложений должно знать протокол обмена данными, т.е. формат сообщений, и собственно сообщения Windows не позволяют передавать сравнительно большие объемы данных. Технология DDE как раз и предложила такой стандартный протокол, реализованный во многих приложениях. Главными недостатками DDE является сложность программирования, ненадежность и то обстоятельство, что приложения должны знать формат передаваемых данных.

«Технологию внедрения и связывания объектов OLE1.0 фирма Microsoft представила в 1991 г. как попытку реализации объектно-ориентированного механизма взаимодействия приложений. Главной идеей OLE является концепция составного документа, который может содержать объекты других приложений» [1, с.43].

До OLE приложения могли обмениваться статическими снимками данных через буфер обмена Windows. Однако редактирование таких данных должно выполняться тем приложением, которое их породило, а после редактирования они вновь должны быть вставлены в другой документ. Если изменяются исходные данные, то, очевидно, должны изменяться данные и в составном документе. Однако, системный буфер обмена не имеет никаких средств поддержания таких связей. Более того, проблемы возникают и при перемещении исходных данных в новое место.

Внедренный с помощью OLE объект содержит статические данные (рисунок) и данные, необходимые для его редактирования. Для редактирования объекта пользователю приложения-контейнера необходимо щелкнуть по объекту, вследствие чего в отдельном окне запускается исходное приложение, породившее эти данные. По окончании редактирования пользователь может сохранить данные и эти данные будут обновлены и в приложении-контейнере.


Перечислим недостатки технологии OLE [1, с.45]:

1. Так как базовым механизмом OLE является DDE, который по своей природе асинхронен, то после вызова любой функции возврат управления происходит немедленно и требуется ожидать, в цикле, завершения требуемой операции.

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

3. Связи OLE легко разрываются при перемещении файлов.

4. Пользователю неудобно редактировать данные в отдельном окне.

1.2. Применение технологии COM

Технология COM в настоящее время широко применяется при разработке программного обеспечения, интеграции программных продуктов в единые информационные системы. Целью разработки COM-технологии являлось стремление к интеграции программного обеспечения через стандартизацию механизмов взаимодействия программных модулей между собой. На основе данной технологии, которая является масштабируемой, разработано огромное число технологий, которые стали стандартами в разнообразных сферах применения информационных технологий – от управления технологическими процессами в промышленности до домашних персональных компьютеров. Массовое применение COM отчасти связано с мощью ее разработчика, фирмы Microsoft. С этим приходится считаться, и каждый программный продукт, выпущенный под платформу Windows, для достижения коммерческого успеха обязан соответствовать инновациям Microsoft.

Технология COM выступает объектно-ориентированной программной спецификацией, предложенной Microsoft. COM предназначена для повышения надежности взаимодействия программных продуктов между собой. Данная технология не определяет структуру программного продукта, язык программирования и прочие детали реализации. COM является стандартом, который регламентирует модель программного объекта, соответствующий требованиям COM-технологии. Программный объект, созданный согласно спецификации COM называется COM-объектом. Данная технология определяет механизм взаимодействия COM-объектов между собой. COM относится к так называемым двоичным стандартам, т.к. прилагается к оттранслированному в двоичный код программному объекту. Взаимодействие COM-объектов обеспечивается набором предопределенных подпрограмм, называемыми интерфейсами, доступ к которым обеспечивается через уникальные идентификаторы интерфейсов GUID (Global Unique Interface Identifyer), уникальность которых гарантирует операционная система. Такой механизм схож с использованием указателей при доступе к объектам в объектно-ориентированных языках программирования, что дает возможность прозрачного управления объектами, т.к. доступ к ним обеспечивается через указатели. COM-технология расширяет этот механизм, перенося применение указателей (в виде GUID) для доступа к объектам на уровень операционной системы. Таким образом, COM-объекты могут быть прозрачно друг для друга модифицироваться, т.к. доступ к объектам обеспечивается через GUID. COM-технология включает в себя также библиотеку, в которой содержится набор стандартных интерфейсов, которые определяют ядро функциональности COM, и небольшой набор API функций, разработанных для создания COM-объектов и управления ими [1, с.53].


«Архитектура COM является расширяемой, и на ней базируются другие технологии Microsoft, такие как OLE и ActiveX. Эти технологии в настоящее время являются расширениями операционной системы, и определяют свои собственные правила работы и предлагают свои библиотеки для создания объектов и для управления объектами на основе данных технологий»6. Используя COM как основу, разработчики программного обеспечения получают возможность создавать свои собственные расширения таким образом, что программные объекты созданные, по правилам COM-технологии могут работать с другими COM-объектами через унифицированный механизм взаимодействия, который предлагает COM.

COM использует такое понятие как «класс», которое по смыслу означает то же самое, что и в объектно-ориентированных средствах разработки. COM-объект является объектом COM-класса (COM class). COM-классы, для различия с классами в объектно-ориентированных языках, с помощью которых может создаваться приложение, обычно называются соклассами (CoClass) [7].

2. Основы технологии COM

2.1. Основные понятия технологии COM

Как было сказано ранее COM – компонентная объектная модель. Компонент – это независимая часть программного обеспечения, предназначенная для выполнения какой-то определенной работы. Функциональность компонента может быть использована в любой программе. Нет необходимости дублировать код по разным программам, в которых требуется применять одну и ту же функциональность. В то же время компонент можно заменить, отредактировать, исправить. Модель COM представляет собой набор шаблонов и реко­мендацию для создания бинарно- совместимых компонентов программного обеспечения, позволяющая строить компоненты, которые могут обмениваться информацией незави­симо от языка программирования или инструментальных средств, выбранных для их построения.

Программный код компонента (Component code) опи­сывает работу, которую выполняет компонент. Например, если компонент предназначен для вычисления квадратного корня, то описывающий ее код будет называться про­граммным кодом компонента.

Интерфейс (Interface) позволяет программе обращаться к функциональным воз­можностям компонента. Он описывает те функции, которые могут быть вызваны про­граммой.