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

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

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

Добавлен: 16.05.2023

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

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

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

Введение

В настоящее время совершается переход от статичной централизованной структуры информационных систем (ИС) к динамичной гибкой структуре, основанной на системах получения и обработки информации, построенных с помощью современных технологий и распределенных в вычислительных сетях компонент. К таким технологиям относятся, например, J2EE, .NET и CORBA.

Многие теоретические и методические вопросы, связанные с технологией CORBA изучены еще недостаточно, а ряд теоретических положений, носит дискуссионный характер.

Актуальность и недостаточная разработанность вышеназванных проблем послужили основанием для рассмотрения данной темы.

Объектом курсовой работы является технология CORBA.

Предметом исследования является назначение и функциональные возможности технологии CORBA.

Целью данной работы ставится рассмотреть технологию CORBA.

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

– рассмотреть историю появления технологии CORBA;

– рассмотреть архитектуру технологии CORBA;

– выделить ключевые моменты языка IDL;

– рассмотреть порядок действий при создании CORBA-системы;

– выделить преимущества и недостатки технологии CORBA.

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

Использование методов позволило обеспечить достоверность и обоснованность выводов.

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

Во введении приводится обоснование актуальности исследуемой темы, определяется цель, а также задачи для реализации данной цели, выделяется объект и предмет исследования.

В первой главе ставятся на рассмотрение основы технологии CORBA.

Во второй главе анализируются особенности создания CORBA-систем.

В заключении приводятся выводы по проведенному исследованию.

Теоретической основой исследования послужили труды ведущих отечественных авторов, которые в основных своих исследованиях акцентировали свое внимание на рассмотрении технологии CORBA.

Основное внимание при написании работы уделялось следующим литературным источникам:

  1. Дирк Слама, Джейсон Гарбис, Перри, Рассел. Корпоративные системы на основе CORBA: Уч.пос. / Пер. с англ. - М.: Издательский дом «Вильямс», 2000. - 368с.
  2. Карпеев Д. О. Технология построения защищенных распределенных приложений: учеб. пособие [Электронный ресурс]. – Электрон. текстовые, граф. данные (1,26 Мб) / Д. О. Карпеев, С. С. Куликов. – Воронеж: ФГБОУ ВПО «Воронежский государственный технический университет», 2015.
  3. Моргунов А. Ф. Информационные технологии в менеджменте: учебник для СПО / А. Ф. Моргунов. – М.: Издательство Юрайт, 2018. – 266 с. – (Серия: Профессиональное образование)
  4. Свистунов А.Н. Построение распределенных систем на Java: учебное пособие / А.Н. Свистунов. — М.: Интернет-Университет Информационных Технологий: БИНОМ. Лаборатория знаний, 2011. – 279 с: ил., табл. – (Основы информационных технологий).
  5. Схиртладзе А. Г. Проектирование единого информационного пространства виртуальных предприятий: учебник / А. Г. Схиртладзе, А. В. Скворцов, Д. А. Чмырь. – Изд. 2-е, стер. – М.; Берлин: Директ-Медиа, 2017. – 616 с.: ил.

Приведенная литература является надежными источниками информации в связи с тем, что она утверждена для использования в ВУЗах.

В данной работе эта литература послужила основным источником сведений по теме работы, так как содержит наиболее полное описание информации по теме исследования, материал авторами подается конкретно по теме.

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

1.1 История появления технологии

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

Для решения данной проблемы в 1989 г. был создан консорциум OMG (Object Management Group), основной задачей которого стала разработка и продвижение объектно-ориентированных технологий и стандартов. Это некоммерческое объединение, разрабатывающее стандарты для создания корпоративных платформо-независимых приложений.

Концептуальной инфраструктурой, на которой базируются все спецификации OMG, является Object Management Architecture (OMA). В состав OMA входят разнообразные стандартизованные или в настоящий момент стандартизируемые OMG службы, сервисы, программные образцы и шаблоны (CORBAservices, horizontal and vertical CORBAfacilities), язык определения интерфейсов распределенных объектов IDL (Interface Definition Language), стандартизованные или стандартизируемые отображения IDL на языки программирования и, наконец, объектная модель CORBA.

Главной особенностью CORBA является использование компонента ORB (Object Resource Broker – брокер ресурсов объектов) для создания экземпляров объектов и вызова их методов. Данный компонент формирует «мост» между приложением и инфраструктурой CORBA (рисунок 1).

Рисунок 1 - Основные понятия технологии CORBA

В 1997 г. консорциум OMG опубликовал спецификацию CORBA 2.0. В ней определялись стандартный протокол и отображение для языка C++, а в 1998 г. было определено отображение для Java. В результате разработчики получили инструментальное средство, позволяющее им относительно легко создавать неоднородные распределенные приложения.

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

Новые возможности официально считаются добавленными в CORBA в момент утверждения соответствующей спецификации. Как правило, в разработке спецификации участвуют крупнейшие специалисты в данной области. Разработка реализации – задача конкретной фирмы. Обычно от утверждения спецификации до появления высококачественной реализации проходит довольно много времени – иногда несколько лет. В настоящий момент стандартизовано отображение языка IDL на шесть языков программирования – Ada, C, C++, Cobol, Java и Smalltalk. Существуют также отображения на Pascal (точнее, Delphi), Perl, Python и еще несколько языков, но они не стандартизованы.


1.2 Архитектура CORBA

На рисунке 2 изображен запрос, посылаемый клиентом реализации объекта. Клиент — это сущность, которая хочет выполнить операцию с объектом, а Реализация – это совокупность кода и данных, которые в действительности реализуют объект.

Рисунок 2 - Клиент посылает запрос реализации объекта

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

На рисунке 3 изображена структура брокера объектных запросов. Его интерфейсы показаны на рисунке штрихованными прямоугольниками, стрелки обозначают, вызывается ли брокер или сам выполняет вызов.

Рисунок 3 - Интерфейсы брокера объектных запросов

Чтобы сделать запрос, Клиент может использовать Динамический интерфейс вызова (Dynamic Invocation Interface),один и тот же, вне зависимости от интерфейса целевого объекта, или IDL заглушку (stub),специфичную для интерфейса целевого объекта. Клиент также может напрямую взаимодействовать с брокером для получения некоторых функций.

Реализация объекта получает запрос как вызов либо через автоматически сгенерированный IDL скелетон, либо через динамический скелетон. Реализация объекта может вызывать объектный адаптер или ORB во время выполнения запроса или в другое время.

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

Для выполнения запроса клиент должен иметь доступ к объектной ссылке (IOR-Interoperable Object Reference), знать тип объекта и ту операцию, которую он хочет выполнить. Клиент инициирует запрос, вызывая подпрограммы заглушки, специфичные для конкретного объекта, или создавая запрос динамически (рисунок 4).


Рисунок 4 - Клиент выполняет запрос (динамически или через заглушку)

Динамический интерфейс вызова и интерфейс заглушки имеет одинаковую семантику, так что получатель сообщения не может определить, как был послан запрос. ORB находит подходящий код реализации объекта, пересылает ему параметры и отдает управление через IDL скелетон или динамический скелетон (рисунок 5). Скелетоны специфичны для конкретного интерфейса и объектного адаптера. Во время выполнения запроса реализация может пользоваться некоторыми сервисами ORB через объектный адаптер. Когда запрос выполнен, управление и значения результата возвращаются клиенту.

Рисунок 5 - Реализация объекта получает запрос

Реализация объекта может выбрать, какой объектный адаптер использовать, в зависимости от того, в каких сервисах она нуждается. На рисунке 6 показано, как информация об интерфейсе и реализации становится доступной клиентам и реализациям объектов. Интерфейсы описываются на IDL или с помощью репозитория интерфейсов. Их описания используются для генерации клиентских заглушек и скелетонов для реализации.

Рисунок 6 - Репозитории интерфейсов и реализаций

Информация о реализации объекта предоставляется во время инсталляции и хранится в репозитории реализации, а затем используется в процессе доставки запроса.

1.2.1 Брокер объектных запросов (ORB)

Вместе с IDL-компилятором, репозиториями и различными объектными адаптерами, ORB предоставляет полный набор сервисов самым разным клиентам и объектным реализациям. Ядро ORB – это часть брокера, обеспечивающая базовое представление объектов и передачу запросов. Технология CORBA может поддерживать различные объектные механизмы за счет компонентов, надстроенных над ядром и предоставляющих интерфейсы, которые позволяют скрыть различия между разными ядрами.

1.2.2 Клиенты

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

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


1.2.3 Реализации объектов (Object implementation)

Реализация предоставляет семантику объекта, определяя данные, хранимые в экземпляре объекта, и код его методов. Реализация может использовать другие объекты или программное обеспечения для выполнения функций объекта. В некоторых случаях, главное предназначение объекта – иметь побочные эффекты на что-то, не являющееся объектом. ORB может поддерживать множество видов реализаций объектов, включая разделенные серверы, библиотеки, «программа на метод», «инкапсулированное приложение», объектно-ориентированные базы данных и т.д. Используя дополнительные объектные адаптеры можно осуществлять поддержу абсолютно любого стиля реализации объектов. Вообще, реализации объектов не зависят от ORB и от того, как клиент вызывает объект. Реализации могут выбирать интерфейс брокера, меняя объектный адаптер.

1.2.4 Объектные ссылки (IOR)

Объектная ссылка – это информация, необходимая для определения конкретного объекта внутри ORB. Как для клиента, так и для реализации объектная ссылка представляется так, как диктует связывание соответствующего языка программирования, таким образом, они изолированы от конкретного представления ссылки.

Объектная ссылка, переданная клиенту, действительна только на время жизни клиента. Различные брокеры должны предоставлять одно и то же представление объектной ссылки для данного языка программирования (это позволяет одной и той же программе получать доступ к объекту по ссылке независимо от используемого брокера). Кроме того, для удобства брокер может предоставлять другие способы доступа к объекту. Существует особенная объектная ссылка, не указывающая ни на один объект.

1.2.5 Язык описания интерфейсов (IDL)

Язык IDL определяет типы объектов путем спецификации их интерфейсов. Интерфейс состоит из списка операций и их параметров. Несмотря на то, что IDL предоставляет каркас для описания объектов, которыми манипулирует ORB, нет необходимости в том, что брокер имел доступ к исходному коду на IDL. Брокер может работать с эквивалентной информацией в виде заглушек подпрограмм и репозитория интерфейсов.

IDL является средством, с помощью которого реализация объекта сообщает своим потенциальным клиентам, какие операции доступны и как они могут быть вызваны. Из IDL-описания CORBA-объект можно перевести на определенный язык программирования или в другую объектную систему.

1.2.6 Связывание языков программирования с IDL