Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РИС шпоры для печати.docx
Скачиваний:
29
Добавлен:
31.05.2022
Размер:
1.01 Mб
Скачать

12. Технология corba.Спецификация, основы архитектуры, механизмы, основные сервисы, организация запросов в corba. Саша

Под термином "CORBA" понимается именно сложная и развитая концепция, сформулированная на уровне специального языка описаний – IDL

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

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

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

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

Ядром архитектуры CORBA является брокер объектных запросов (Object Request Broker, ORB). Это объектная шина, напоминающая механизм RPC, по которой происходит взаимодействие локальных и удаленных объектов. Помимо самого вызова метода удаленного объекта, ORB отвечает за поиск реализации объекта, его подготовку к получению и обработке запроса, передачу запроса и доставку результатов клиенту.

OMA состоит из четырех частей:

• фундаментальный компонент, называемый Брокер Объектных Запросов (Object Request Broker),

• дополнительные сервисы, используемые разработчиками для управления распределенными объектами;

• общие сервисы, используемые многими различными приложениями, и

• распределенные приложения как таковые.

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

Создание CORBA приложения на Java начинается с написания интерфейса для удаленного объекта, используя язык описания интерфейсов (Interface Definition Language, IDL).

Создадим файл test.idl

module testApp {

interface test

{long count(in string msg);};};

Серверная часть приложения.

ORB orb = ORB.init(args, null);

testServant testRef = new testServant();

orb.connect(testRef);

org.omg.CORBA.Object objRef =orb.resolve_initial_references("NameService");

NamingContext ncRef = NamingContextHelper.narrow(objRef);

Код клиента.

NameComponent nc = new NameComponent("test", "");

NameComponent path[] = {nc};

org.omg.CORBA.Object obj= ncRef.resolve(path);

test testRef=testHelper.narrow(obj);Теперь можно вызывать метод count String msg = "try to count";

int count = testRef.count(msg);

13. Статические и динамические вызовы в CORBA, язык IDL, назначение, структура, синтаксис языка, языковые конструкции на IDL, пример реализации интерфейса на IDL. НАСТЯ

Статические и динамические вызовы методов. CORBA ORB предоставляет возможность либо статически определить вызовы методов прямо во время компиляции, либо находить их динамически, но уже во время работы программы. Таким образом, вам предоставляется выбор: строгий контроль типов на стадии компиляции или максимальная гибкость при отложенном (на этапе выполнения) связывании. Большинство других видов middleware поддерживают только статическое связывание.

Язык OMG IDL (Interface Definition Language -- Язык Описания Интерфейсов) представляет собой технологически независимый синтаксис для описания интерфейсов объектов. При описании программных архитектур, OMG IDL используется в качестве универсальной нотации для очерчивания границ объекта, определяющих его поведение по отношению к другим компонентам информационной системы. OMG IDL позволяет описывать интерфейсы, имеющие различные методы и атрибуты. Язык также поддерживает наследование интерфейсов, что необходимо для повторного использования объектов с возможностью их расширения или конкретизации.

IDL является чисто декларативным языком, то есть он не содержит никакой реализации. IDL-спецификации могут быть откомпилированы (отображены) в заголовочные файлы и специальные прототипы серверов, которые могут использоваться непосредственно программистом. То есть IDL-определенные методы могут быть написаны, а затем выполнены, на любом языке, для которого существует отображение из IDL. К таким языкам относятся C, C++, SmallTalk, Java и Ada.

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

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

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

Слияние RMI и IIOP является ключевым в поддержке CORBA из среды Java (JavaSoft и OMG имеют совместную программу для этого). Используя стандарт отображения Java в IDL, клиенты и серверы Java могут взаимодействовать с CORBA-совместимыми серверами вне зависимости от языка программирования такого сервера. CORBA в соединении с Java позволит достичь еще большей гибкости в создании распределенных систем.

Структура CORBA IDL файла выглядит следующим образом:

module <identifier> {

<type declarations>;

<constant declarations>;

<exception declarations>;

interface <identifier> [:<inheritance>] {

<type declarations>;

<constant declarations>;

<attribute declarations>;

<exception declarations>;

[<op_type>]<identifier>(<parameters>)

[raises exception] [context]

[<op_type>]<identifier>(<parameters>)

[raises exception] [context]

}

interface <identifier> [:<inheritance>]

}

пы. сы. - Object Management Group (OMG) - крупнейшим в мире консорциумом разработки программного обеспечения

Common Object Request Broker Architecture (CORBA - Общая архитектура Брокера Объектных Заявок)

Технология Брокера Объектных Заявок (Object Request Broker - ORB), играющего роль "общей шины" в глобальном пространстве объектов, посредством которой объекты этого пространства могут взаимодействовать друг с другом