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

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

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

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

Добавлен: 14.03.2024

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

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

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

Содержание:

Введение

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

В данной работе рассматривается одна из ведущих технологий создания распре­делённых систем - CORBA, предложенная крупнейшим в мире консорци­умом разработчиков программного обеспечения Object Management Group (OMG). Представлено описание распределённой программной системы – машины удалённых запросов, разработанной на основе стандарта CORBA, в виде набора взаимодействующих объектных сервисов CORBA (CORBA Object Services).

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

Целью работы является — рассмотреть некоторые вопросы разработки программного обеспечения на основе объектных моделей, необходимого для предварительного анализа и исправления ошибок в сочетании с CORBA.

Основными задачами данной работы являются:

  • рассмотреть основные понятия и функции технологии CORBA;
  • перечислить и охарактеризовать принципы и общую схему технологии CORBA.

1. Основные понятия технологии CORBA

1.1. Основные функции и задачи технологии CORBA

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


CORBA - это стандарт создания распределенных систем, предложенный кон­сорциумом разработчиков программного обеспечения Object Management Group (OMG), который затрагивает все вопросы, имеющие отношение к этой пробле­ме[1].

Слово CORBA, является, аббревиатурой от Common Object Request Broker Architecture (стандартная архитектура брокера объектных запросов), что, по словам самих разработчиков OMG, обозначает «открытую, не зависимую от поставщика ар­хитектуру и инфраструктуру, позволяющую использовать различные приложения для совместной работы в сетях. Используя стандартный протокол IIOP, CORBA - приложения, разработанные любым производителем программного обеспечения, ра­ботающие практически на любой аппаратной платформе, операционной системе или сети, могут взаимодействовать с другими CORBA-приложениями того же или дру­гого поставщика также на практически любой платформе, операционной системе или сети, созданными с использованием самых различных языков программирова­ния».

Стандарт CORBA исчерпывающе описывает взаимодействие между приложени­ями на основе объектных интерфейсов. Основой совместимости CORBA-приложений является ORB (Object Request Broker - брокер объектных запросов). Приложе­ние с помощью ORB может предоставлять во внешний мир объектный интерфейс, структура которого описана с помощью языка описания интерфейса IDL (Interface Definition Language), а также обращаться к другим приложениям, совместимым с CORBA, через предоставленный этими приложениями объектный интерфейс. Таким образом, приложение может служить как сервером (в традиционном смысле этого слова), и как клиентом, как одновременно, так и по отдельности[2].

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

На основе данного описания ин­терфейса, ORB первого приложения, строит необходимую инфраструктуру, позволя­ющую обращаться к объектам других приложений, как будто эти объекты являются объектами данного приложения. При этом, если ORB взаимодействующих приложе­ний стандартны и поддерживают общий протокол обмена, их взаимодействие не зависимо от языка программирования, на котором приложения написаны[3].

Именно протокол обмена диктует, насколько далеко могут быть разнесены об­щающиеся между собой приложения, совместимые с CORBA. Приложения могут выполняться в одном адресном пространстве (в виде, например, подключаемых би­блиотек), либо на одном компьютере, в многозадачной среде, либо на разных ком­пьютерах, общаясь через сеть[4].


Стандарт определяет протоколы GIOP (General Inter- ORB Protocol), который описывает пакетный способ общения и является основой других пакетных протоколов, IIOP (Internet Inter-ORB Protocol) -'пакетный про­токол, основывающийся на GIOP и предназначенный для использования в сетях на основе протокола TCP/IP, и другие протоколы. Кроме определения правил взаимо­действия приложений и структуры самого ORB, стандарт' CORBA описывает на­бор стандартных сервисов (Object Services), то есть приложений, предоставляющих стандартный интерфейс, с помощью которого совместимое с CORBA приложение может выполнять те или иные задачи. Стандарт CORBA не требует обязательного наличия всех стандартных сервисов в том или ином воплощении ORB, но однознач­но определяет структуру и способ использования сервиса, если таковой имеется в конкретной реализации ORB[5].

Для написания приложения, совместимого с CORBA, используется одно из стан­дартных отображений CORBA на язык (mapping). Стандарт определяет отображе­ния CORBA на Java, C++, Smalltalk и другие языки. Различные реализации ORB включают в себя отображения на различные языки, различные наборы сервисов и протоколов. Собственные реализации ORB есть у таких известных производителей, как BorlandT, SybaseT, OracleT и других. Имеются также реализации ORB независи­мых производителей, как коммерческие, так и свободно распространяемые. В число последних входят MICO и ТАО, включающие в себя, среди прочего, отображение CORBA на C++. Ниже более подробно рассмотрены основные элементы стандарта CORBA. Всю документацию по стандарту CORBA можно бесплатно получить в электронном виде на сайте www.omg.org[6].

1.2. Архитектурные принципы реализации приложений

Функции CORBA — это функции промежуточного программного обеспечения объектной среды. Для того чтобы обеспечить взаимодействие объектов и их интеграцию в цельную систему, архитектура промежуточного уровня должна реализовать несколько базовых принципов[7].

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

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

CORBA – это клиент-серверные технологии, в которых функциональность объекта предоставляется клиенту посредством обращения к абстрактным интерфейсам.

Интерфейс определяет набор методов, которые реализуют функции, присущие данному классу объектов. Интерфейс дает клиенту возможность только вызывать тот или иной метод, скрывая от него все детали его реализации. Клиент получает доступ к объекту только путем вызова метода, определенного в интерфейсе объекта. Это означает, что реальные действия выполняются в адресном пространстве объекта, возможно, удаленном по отношению к процессу клиента. Сокрытие деталей реализации и позволяет в конечном итоге добиться слаженного взаимодействия компонентов в независимости от того, где и на какой платформе они реализованы и какой язык программирования для этого использовался[8].

В обеих технологиях взаимодействие между клиентским процессом и сервером объекта, то есть процессом, который порождает и обслуживает экземпляры объекта, использует механизм объектный вариант вызова удаленной процедуры (RPC, remote procedure call).

Структура RPC — старейшей механизм из технологий промежуточного программного обеспечения. Механизм RPC реализует схему передачи сообщений, в соответствии с которой в распределенном клиент-серверном приложении процедура - клиент передает специальное сообщение с параметрами вызова по сети в удаленную серверную процедуру, а результаты ее выполнения возвращаются в другом сообщении клиентскому процессу[9].

Для того чтобы реализовать эту схему, на стороне клиента и на стороне сервера поддерживаются специальные компоненты, носящие название клиентский и серверный суррогаты (client stub и server stub). Для того чтобы вызвать ту или иную функцию, клиент обращается к клиентскому суррогату, который упаковывает аргументы в сообщение-запрос и передает их на транспортный уровень соединения. Серверный суррогат распаковывает полученное сообщение и в соответствии с переданными аргументами вызывает нужную функцию, или нужный метод объекта, если речь идет об объектном варианте RPC.

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


Тем самым достигается возможность взаимодействия клиента и сервера на различных платформах[10].

2. Описание распределённой программной системы

2.1. CORBA – это машина удалённых запросов

В данном разделе представлено описание распределённой программной системы - машины удалённых запросов, реализованной с использованием технологии CORBA. Представленная программная система предназначена для реше­ния следующих задач:

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

Машина удалённых запросов функционально состоит из трёх взаимодействую­щих объектных сервисов CORBA:

  • сервис внешнего представления (Externalization Service) - является стандарт­ным сервисом CORBA;
  • транспортный сервис (Transport Service) - не является стандартным сервисом CORBA;
  • сервис удаленных запросов (Remote Query Service) - не является стандартным сервисом CORBA[11].

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

Текущие версии машины удалённых запросов используют свободно распростра­няемые реализации ORB независимых производителей - MICO или ТАО. В каче­стве языка программирования, для реализации сервисов использовался Visual C++ 6.0, обе упомянутые выше реализации CORBA поддерживают отображение на язык C++- Стоит заметить, что все приведённые ниже IDL декларации интерфейсов, схемы взаимодействия сервисов и алгоритмы не зависят от конкретной реализации CORBA и языка программирования.

Сервис внешнего представле­ния (Externalization Service) предназначен для построения образа объекта, взаимо­действующего со стандартными потоками ввода-вывода. Важность его связана глав­ным образом с тем, что потоки ввода-вывода используются в современном програм­мировании повсеместно.