Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции 2005 / Лекции по ИТС для МП-IV / P4 / Реализации трехуровневой архитектуры.doc
Скачиваний:
30
Добавлен:
16.04.2013
Размер:
246.27 Кб
Скачать

Статический случай

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

Адаптер POA поддерживает два типа статических сервантов.

  • Серванты, основанные на наследовании. Класс серванта наследуется от абстрактного класса скелетона.

  • Связанные серванты с использованием делегирования.Этот тип обычно используется, когда наследование невозможно, например, если необходимо множественное наследование, а язык программирования, на котором написано приложение, множественное наследование не поддерживает (Java). Делегирование – передача функциональности другому классу.

Динамический случай

Примером может служить односторонний мост к другим распределенным системам (в частности – СОМ, Сommon Object Model). Клиент СОRВА посылает запрос к объекту, реализованному на СОМ. Когда к системе присоединяются интерфейсы СОМ нового типа, клиенты должны иметь возможность работать с ними без остановки системы и перекомпиляции. Интерфейс Динамических Скелетонов поддерживает такие ситуации и позволяет сервантам в реальном времени определять детали интерфейса и операций, вызывающих конкретный объект. Обычно используется Репозитарий Интерфейсов, который «на лету» предоставляет подробности динамических интерфейсов.

В отличие от Базового Адаптера, в Портируемом Объектном Адаптере предусмотрена многопотоковость. В этой области POA предоставляет следующие возможности.

  • Для каждого запроса создается отдельный поток.

  • Для каждого объекта создается отдельный поток.

  • Для всех запросов создается один общий поток.

  • Создается пул потоков фиксированного размера для обработки всех запросов.

Выбор конкретной потоковой политики зависит от программных приложений распределенной среды.

На более высоком уровне ORB CORBA 3 предоставляет две модели многопоточности.

  • ОRВ управляемая – сам ОRВ выбирает подходящую модель работы с потоками. Обработка запросов ведется параллельно.

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

Выбор той или иной модели POA должен быть сделан только после тщательного анализа создаваемой распределенной среды, целей и функций разрабатываемой системы, доступного оборудования. Но зато сколько новых элементов! Среди них менеджеры сервантов, политики РОА, гибкость присвоения индентификатора объекту, устойчивые и временные объекты, возможность хранения связей сервант-объект в Карте Активных Объектов. Можно воплотить любой воздушный замок.

http://kunegin.narod.ru/ref2/corba/index.htm

http://kunegin.narod.ru/ref2/corba/adapter.htm

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

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

Для реализации CORBAв сетевом окружении клиента должен существовать хотя бы один умный агент. Если обмен данными осуществляется в локальной сети, то умный агент устанавливается на машину сSQL-сервером, а если обмен данными идёт черезInternet, то умный агент устанавливается в один из узлов глобальной сети. При создании сервера осуществляется автоматическая регистрация объектов в одном или нескольких умных агентах. Т.о. умный агент знает, по каким сетевым адресам находятся сервера. Это повышает надежность системы, т.к. при сбое на одном из серверовSmartAgentможет повторить запрос и при повторном сбое переключиться на другой сервер.

Глобальная архитектура системы, построенная по технологии CORBA, восходит к модели, построенной группой управления объектамиOMG(ObjectManagementGroup), содержит 4 вида архитектурных элементов, связанных с брокером объектных запросов.

Прикладные объекты

Горизонтальные средства

Вертикальные средства

Общие объектные службы

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

Кроме прикладных объектов, которые являются частями конкретного приложения, в модель входят т.н. средства CORBA(CORBAfacilities). Это внутренние службыCORBAи делятся они надве группы:

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

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

Основной целью OMGбыло создание совместимости различных платформ в распределенных системах.