Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИТ - 18 вопросов.docx
Скачиваний:
8
Добавлен:
08.11.2019
Размер:
103.77 Кб
Скачать

25 Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.

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

В настоящее время существуют два стандартных объектных адаптера – BOA (Basic Object Adapter) и POA (Portable Object Adapter - переносимый объектный адаптер). Использование BOA признано устаревшим, так как это не позволяет обеспечить переносимость серверных CORBA-приложений

POA хранят ссылки на активные серванты. Под этим термином подразумевается конкретный существующий в памяти код, реализующий один или несколько объектов CORBA

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

Basic Object Adapter (BOA) — это набор интерфейсов для создания ссылок на удаленные объекты, регистрации объектов, авторизации запросов и активизации приложений.

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

ВОА имеет четыре стиля активизации:

• По методу (per method)

• Распределенная активизация

• Нераспределенная активизация

• Постоянная (persistent)

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

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

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

Постоянными называются серверы, не нуждающиеся в активизации и являющиеся активными все время. Они являются доступными до тех пор, пока работает система (или машина).

  1. Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.

Interface Definition Language (IDL) - специальный язык описания интерфейсов взаимодействующих модулей системы. Описание модулей на IDL очень напоминает соответствующие описания языка C++.

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

IDL является чисто декларативным языком, то есть он не содержит никакой реализации.

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

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

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

Комментарии IDL — точная копия комментариев языка Си++. Это значит, что для сокрытия фрагмента исходного текста можно применить пары символов /* и */. Для исключения из компиляции одной строки или ее части удобно пользоваться символами //, как это показано на примере:

Все идентификаторы в IDL-файлах должны начинаться с буквенного символа

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

К регистру букв в ключевых словах компиляторы этого языка весьма чувствительны

Пример интерфейса на IDL:

module testApp {

interface test

{

long count(in string msg);

};

};

Используемые термины:

модуль — блок с заданным именем, объединяющий логически связанные конструкции языка IDL; в целом модуль можно воспринимать как пакет (package) в языке Java или пространство имен (namespace) в языке Си++;

интерфейс — набор атрибутов и операций объекта, с помощью которого потребитель может взаимодействовать с объектом;

атрибут — сущность, описывающая какое-либо свойство объекта; атрибут можно сравнить с внутренней переменной класса;

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

Связь CORBA и RMI

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

Одна из важнейших составляющих спецификации CORBA - это протокол Internet Inter-ORB Protocol (IIOP), являющийся частью уровня ORB. Все основные поставщики CORBA заявили о своей поддержке IIOP, благодаря которому объекты или клиенты одного поставщика ORB могут вызывать методы других поставщиков ORB. Это гарантирует совместимость и взаимодействие различных реализаций CORBA.

CORBA поддерживает многие языки, в том числе C, C++, SmallTalk и объектно-ориентированный COBOL.

JavaSoft планирует выпустить вариант RMI, выполненный на основе упоминавшегося выше протокола IIOP. Это позволит RMI-клиенту взаимодействовать с Corba-объектами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]