
- •19. Особенности модели распределенных объектов. Модель rpc.
- •20. Архитектура механизмов rmi.
- •21. Разработка rmi-приложений. Примеры. Соглашения о передаче данных.
- •22. Corba, назначение, терминология. Oma. Модель cobra
- •Основные сервисы Corba, модель организация приложений corba, примеры.
- •25 Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.
- •Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.
- •Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис
- •28. Платформа j2ee. Когда следует применять ejb. Типы ejb. Общая структура Beans.
- •29 Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).
- •Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры).
- •Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.
- •Общие принципы развертывания сеансовых компонентов ejb. Пример текста дескриптора поставки.
- •Сущностные (entity) компоненты, жизненный цикл, pool соединений. Общие принципы реализации. Особенности, методы entity компонент их назначение и использование.
- •34. Организация и особенности entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).
- •35. Организация и особенности entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).
- •36. Особенности реализации (home) и (remote) интерфейсов для entity компонентов. Home-интерфейс Entity-Компонента.
- •37. Контейнер ejb, понятие, назначение, основные функции.
- •38. Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
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)
Активизация по методу - это стиль, когда новый сервер запускается каждый раз при обращении к методу объекта. Каждый вызов метода осуществляется на своем сервере.
Серверами с распределенной активизацией являются серверы, поддерживающие множество активных объектов одновременно.
Серверы с нераспределенной активизацией - серверы, поддерживающие только один активный объект. Такой сервер может обслуживать много обращений к методам в том случае, если все они принадлежат одному объекту.
Постоянными называются серверы, не нуждающиеся в активизации и являющиеся активными все время. Они являются доступными до тех пор, пока работает система (или машина).
Язык 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-объектами.