Файл: Технология построения распределенных информационных систем (Основные понятия, классификация и структура АИС).pdf

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

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

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

Добавлен: 13.03.2024

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

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

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

COM - это не язык программирования, а подход (спецификация) к созданию программ, обеспечивающий взаимодействие программ любых типов. Компоненты COM объединяются друг с другом для создания приложений или систем компонентов. Компоненты можно менять во время выполнения, без перекомпиляции или перекомпоновки приложения. COM - это основа, на которой построены такие технологии Microsoft, как ActiveX, DirectX и OLE [30].

Технологии, основанные на COM представлены на рисунке 3.1 [31].

Рисунок 3.1 - Технологии, основанные на COM

Таким образом, ключевое слово при использовании COM - компонент. К компонентам обычно предъявляются следующие требования [31]:

1. Компонент должен скрывать используемый язык программирования.

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

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

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

Преимущества использования компонентов

COM обеспечивает создание распределенных модульных систем в архитектуре «клиент-сервер». COM имеет следующие преимущества по сравнению с традиционной архитектурой программных систем[25]:

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

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

3. COM реализует модель вычислений "клиент-сервер", что обеспечивает преимущества распределенной обработки данных.

4. COM обеспечивает вызов сервисов в сетевом окружении, независимо от расположения COM-сервера.

Использование программных компонентов, разработанных на основе технологии COM, значительно расширяет возможности разработчиков приложений, конечных пользователей и предприятий [30]:

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


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

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

Кроме очевидных способности приложения эволюционировать с течением времени, удобства и гибкости при модернизации существующих приложений, создание программ из компонентов имеет другие достоинства [25, 33].

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

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

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

СОМ и объектно-ориентированный подход [30]:

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

Понятие OLE и ActiveX

OLE (Object Linking and Embedding) - технология создания составных документов связыванием и внедрением. Документ сервера может быть либо связан, либо внедрен в документ контейнера. Методы создания составных документов: копирование и вставка через буфер обмена либо метод drag-and-drop [25].


Контейнер составных документов должен поддерживать интерфейсы: IOleClientSite (позволяет серверу обращаться к своему контейнеру) и IAdviseSink (сервер использует для того, чтобы информировать контейнер о том, что происходит с ним) [31].

ActiveX - технология создания приложений на основе СОМ. Спецификация управляющих элементов ActiveX определяет четыре основных аспекта их функционирования: обеспечение пользовательского интерфейса, обеспечение вызова методов управляющего элемента контейнером, посылка событий контейнеру, получение информации о свойствах среды контейнера и обеспечение доступа к свойствам управляющего элемента и их модификации [31].

3.2. Технология CORBA

CORBA — технологический стандарт написания распределённых приложений, продвигаемый консорциумом (рабочей группой) OMG и соответствующая ему информационная технология [7].

Технология CORBA создана для поддержки разработки и развёртывания сложных объектно-ориентированных прикладных систем [14].

CORBA является механизмом в программном обеспечении для осуществления интеграции изолированных систем, которое даёт возможность программам, написанным на разных языках программирования, работающим в разных узлах сети, взаимодействовать друг с другом так же просто, как если бы они находились в адресном пространстве одного процесса [14].

Спецификация CORBA предписывает объединение программного кода в объект, который должен содержать информацию о функциональности кода и интерфейсах доступа. Готовые объекты могут вызываться из других программ (или объектов спецификации CORBA), расположенных в сети [14].

Спецификация CORBA использует язык описания интерфейсов (OMG IDL) для определения интерфейсов взаимодействия объектов с внешним миром, она описывает правила отображения из IDL в язык, используемый разработчиком CORBA-объекта [14].

Стандартизованы отображения для Ада, Си, C++, Lisp, Smalltalk, Java, Кобол, Object Pascal, ПЛ/1 и Python. Также существуют нестандартные отображения на языки Perl, Visual Basic, Ruby и Tcl, реализованные средствами ORB, написанными для этих языков.

Архитектура CORBA основана на трех ключевых блоках [32]:

1. OMG Interface Definition Language (IDL) – язык описания интерфейсов.

2. Object Request Broker (ORB) – брокер объектных запросов.

3. Internet Inter-ORB Protocol (IIOP) – стандартный протокол обмена данными для CORBA, реализованный на базе TCP/IP.

На рисунке 3.2 представлено взаимодействие объектов в архитектуре CORBA [32].


Рисунок 3.2 - Взаимодействие объектов в архитектуре CORBA

Основу CORBA составляет объектный брокер запросов (Object Request Broker). ORB управляет взаимодействием объектов в распределенной сетевой среде. IIOP (Internet Inter-ORB Protocol) — это специальный протокол взаимодействия между ORB [14].

В адресном пространстве клиента функционирует специальный объект, называемый заглушкой (stub). Поучив запрос от клиента, он упаковывает параметры запроса в специальный формат и передает его серверу, а точнее скелету [14].

Скелет (skeleton) — объект, работающий в адресном пространстве сервера. Получив запрос от клиента, он распаковывает его и передает серверу. Также скелет преобразует ответы сервера и передает их клиенту (заглушке) [7].

Технология работы CORBA-приложения заключается в следующем [7]:

1. Формируется «заглушка» (Stub), которая представляет собой откомпилированное IDL-описание интерфейса клиентской части.

2. Формируется «скелет» (Skeleton) - откомпилированное IDL-описание интерфейса серверного объекта.

3. Выполняется реализация серверного объекта (Object Implementation) и клиентской части к нему (Client).

4. Для каждого экземпляра CORBA-объекта формируется своя уникальная объектная ссылка.

5. Клиент, применяя объектную ссылку, передает ORB данные о том, какой именно экземпляр объекта должен быть задействован. При этом клиент действует так, как будто оперирует напрямую с экземпляром объекта, однако в действительности происходит обращение к методам заглушки, которая затем и передает через ORB запрос на выполнение и код скелета серверного объекта.

Для описываемой схемы взаимодействия частей приложения характерны следующие черты [32]:

1. Клиент с самого начала знает о типе исполняемого объекта, поскольку как клиентская заглушка, так и скелет серверного объекта, генерируются из одного и того же IDL-описания.

2. ORB клиента и ORB серверного объекта базируются на общем протоколе IIOP.

Помимо удалённых объектов в CORBA 3.0 определено понятие объект по значению. Код методов таких объектов по умолчанию выполняется локально. Если объект по значению был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было возможно, запись, определяющая такой объект, содержит поле Code Base — список URL, откуда может быть загружен код [14].

У объекта по значению могут также быть и удалённые методы, поля, которые передаются вместе с самим объектом. Поля, в свою очередь также могут быть такими объектами, формируя таким образом списки, деревья или произвольные графы. Объекты по значению могут иметь иерархию классов, включая абстрактные и множественное наследование [7].


Компонентная модель CORBA (CCM) — недавнее дополнение к семейству определений CORBA [32].

CCM была введена начиная с CORBA 3.0 и описывает стандартный каркас приложения для компонент CORBA. CCM построено под сильным влиянием Enterprise JavaBeans (EJB) и фактически является его независимым от языка расширением. CCM предоставляет абстракцию сущностей, которые могут предоставлять и получать сервисы через чётко определённые именованные интерфейсы, порты [33].

Модель CCM предоставляет контейнер компонентов, в котором могут поставляться программные компоненты. Контейнер предоставляет набор служб, которые может использовать компонент. Эти службы включают (но не ограничены) службу уведомления, авторизации, персистентности и управления транзакциями. Это наиболее часто используемые распределённым приложением службы. Перенося реализацию этих сервисов от необходимости реализации самим приложением в функциональность контейнера приложения, можно значительно снизить сложность реализации собственно компонентов [33].

Выводы

В третьей главе работы рассмотрены технологии разработки информационной системы: COM и CORBA. Несмотря на внешнюю похожесть, что вызвано общностью решаемых задач, между COM и CORBA, пожалуй, больше различий, чем сходства. В большинстве случаев либо нецелесообразно использовать CORBA (для небольших и простых проектов под Windows просто по причине относительно высоких затрат на приобретение программного обеспечения, лицензий и пр.), либо практически невозможно использовать COM (для сложных, масштабируемых, высоконадежных проектов или просто при работе в гетерогенных средах, а не только в Windows). Windows-приложения, ориентированные на взаимодействие с Microsoft Office, всегда будут использовать COM; проекты с использованием Java и любых Java-технологий (кроме Microsoft J++).

ЗАКЛЮЧЕНИЕ

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

Для более полного раскрытия темы курсовой работы, первоначально были рассмотрены теоретические основы разработки информационных систем. Рассмотрена структура и классификация информационных систем по различным признакам. Рассмотрены также основные модели жизненного цикла информационных систем: каскадная, спиральная, итерационная. Проведена характеристика современных методов и технологий проектирования информационных систем. В частности, дана краткая характеристика таких технологий как: MSF, CDM и RUP. Рассмотрены особенности их работы. В результате проведенного исследования получены знания, которое будут использованы при проектировании информационных систем.