КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Технологии CORBA
Архитектура распределенной системы CORBA. Технология удаленного доступа к базам данных CORBA (Common Object Regust Broker Architecture — общая архитектура объектных заявок) представляет собой промежуточное программное обеспечение, устанавливающее отношения клиент—сервер между объектами в распределенной компьютерной среде. На рис. 6.6 представлена типовая архитектура распределенной системы CORBA, которая включает в себя следующие компоненты: • ORB (Object Request Broker) — брокер объектных запросов (заявок), включающий в себя язык IDL; • IDL (Interface Definition Language) — язык определения интерфейсов; • РОА (Portable Object Adapter) — адаптер объектов; • Stub — заглушка; • Skeleton — основа; • Smart Agent — «умный» агент. Брокер объектных запросов. ORB устанавливает отношения клиент—сервер между объектами. В данной технологии роли клиента и сервера не постоянно приписаны компонентам, а устанавливаются только на один запрос.
Рис. 6.6. Архитектура распределенной системы CORBA Схему работы ORB можно представить следующим образом: • клиент (объект-отправитель) вызывает операцию (метод) на адресате, идентифицируемом ссылкой, и передает запрос ORB; • посредник по ссылке находит сервер, содержащий объект-адресат (в терминологии CORBA этот сервер иногда называют object implementation — реализация объекта), и активизирует его. Затем доставляет запрос к объекту-адресату, передает адресату параметры, вызывает соответствующую операцию и возвращает результат клиенту после выполнения операции. В одном запросе могут быть указаны несколько адресатов, которые могут располагаться как на одном, так и на разных серверах. Система CORBA позволяет организовывать различные архитектурные схемы ORB, однако каждая из них должна реализовывать три категории операций: • одинаковые для всех реализаций ORB; • специфичные для конкретного объектного типа; • специфичные для отдельных видов реализаций объектов. Возможны следующие схемы брокера объектных запросов: • ORB, включаемый в клиентское и серверное приложения; • ORB, выполненный в виде сервера; • ORB, реализованный как часть операционной системы; • ORB, основанный на библиотеках. • ORB, включаемый в клиентское и серверное приложения, формируется в виде набора подпрограмм, выполняемых как на стороне клиента, так и на стороне сервера. ORB, выполненный в виде сервера, реализуется в виде отдельного приложения, что позволяет обеспечить централизованную обработку информации. На рис. 6.7 показана схема такой реализации системы CORBA.
На практике схему реализации ORB в виде сервера применяют для размещения на нем нереляционных баз данных. Так, для примера на рис. 6.8 показана комбинированная схема организации удаленного доступа к данным в геоинформационной картографической системе. На сервере базы данных MS SQL хранится информация в виде реляционных таблиц — дискретных (параметрических) характеристик карт местности (поверхностей). Доступ к информации, хранящейся на этом сервере, осуществляется по технологии ADO. На сервере базы данных CORBA-сервер хранятся карты местности в виде отдельных графических файлов, доступ к которым осуществляется по технологии CORBA. ORB, реализованный как часть операционной системы, используется для повышения надежности, защиты данных и достижения лучшей производительности. В этом случае возможно применение различных методов оптимизации обработки данных, например отмены кодирования и декодирования данных, если клиентская и серверная части находятся на одном компьютере. ORB, основанный на библиотеках, используется, если код объекта занимает небольшой объем и не требует никаких дополнительных средств. Язык определения интерфейсов. IDL — это специальный язык для описания ORB и других компонентов системы CORBA, который не содержит присваиваний, операторов if или while, функций и логических переходов. IDL представляет собой процедуры описания, декларации, пассивные определения атрибутов, родительских классов, типов поддерживаемых событий, методов (включая входные и выходные данные), основные и составнце типы данных, исключительные ситуации для обработки ошибок.
Рис. 6.8. Комбинированная схема организации удаленного доступа к данным с использованием CORBA IDL описывает интерфейсы аналогично классам в С++ или в Smalltalk, интерфейсы в Java, пакеты в Ada95. Каждый интерфейс определяет операции, которые могут быть вызваны клиентами. Синтаксически IDL является подмножеством С++ с дополнительными ключевыми словами. Существуют компиляторы IDL в С++, Java, Ada, Smalltalk, COBOL, OLE (Visual Basic, PowerBuilder, Delphi). Одна из задач IDL — обеспечение взаимодействия через ORB всех приложений клиент—сервер. В связи с этим систему CORBA называют стандартом для разработки промежуточного программного обеспечения, которое поддерживает работу с удаленными базами данных. Адаптер объектов. РОА (в первых версиях CORBA — BOA — Basic Object Adapter) — это первичный путь для обеспечения сервиса конкретной реализацией объекта. Предполагается, что имеется несколько адаптеров объектов, каждый из которых обеспечивает доступ к объектам определенного вида. Сервисы, которые обеспечиваются ORB посредством адаптеров объектов, часто включают в себя: генерацию и интерпретацию ссылок на объекты, вызов методов, активацию и деактивацию реализаций объектов, а также регистрацию конкретных реализаций и отображение объектных ссылок и реализаций. Интерфейс должен быть либо определен в хранилище описаний, либо иметь соответствующее IDL-описание, на основании которого компилятор создает исходный код для объекта-заглушки, находящегося у клиента, и для основы реализации объекта. Информация, которая находится в каждом из хранилищ, может быть произвольно изменена в любой момент времени с помощью методов, обеспечиваемых реализацией ORB. Однако неосторожное изменение, сделанное во время работы, может привести к нарушению целостности информации, находящейся в каждом из хранилищ, и сделать невозможным дальнейшее функционирование ORB. Заглушка. Stub связывает клиентские приложения с ORB. Написанные на языке IDL сервисы после компиляции на язык программирования клиентского приложения и компоновки с ним становятся абсолютно прозрачны для клиента и выполняют функции обращения к удаленному объекту — серверу. Заглушка осуществляет передачу запроса и обычно оптимизирована для выполнения конкретного ORB. Если клиентам доступно более одного ORB, то у них может быть различное внутреннее представление заглушек. Основа. Skeleton аналогично Stub связывает ORB и серверные приложения. Создается после компиляции языка IDL. Интерфейс динамического вызова — DII (Dynamic Invocation Interface) — позволяет объекту создавать запрос в реальном времени. Структура запроса, его параметры и атрибуты и даже сама ссылка на объект-адресат генерируются в DII либо на основе запроса к объекту и анализа отклика. «Умный» агент» — это динамический сервис, моделирующий сетевой каталог, в котором зарегистрированы известные ему серверы объектов как в локальной сети, так и в сети Интернет. Он отыскивает требуемый сетевой адрес сервера и передает ему запрос ORB.
Дата добавления: 2014-01-07; Просмотров: 1012; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |