Драйверы ODBC и программная среда CORBA

Технология объектного связывания данных решает задачу обеспе­чения доступа из одной локальной БД, открытой одним пользователем, к данным другой локальной БД, возможно, находящейся на дру­гом компьютере, открытой другим пользователем. Решение этой задачи основывается на поддержке современными настольными СУБД техно­логии объектов доступа к данным — DAO (Data Access Objects). Под объектом понимается интеграция данных и методов их обработки в одно целое, на чем, как известно, основываются технологии объектно-ориентированного программирования.

Технология объектного связывания данных основана на протоколе ODBC (Open Database Connectivity), который является стандартом доступа к данным БД клиент-серверных систем (посредством SQL-запросов), а также к любым данным, находящимся под управлением реляционных СУБД.

CORBA (Common Request Broker Architecture) — архитектура для построения распределенных объектных приложений. Была предложена некоммерческой организацией — консорциумом OMG (Object Management Group). Целью разработчиков CORBA было создание механизмов межплатформенного взаимодействия приложений в распределенных системах

Как и DCOM, CORBA основывается на коммуникации типа клиент-сервер. Технология CORBA изначально проектировалась для создания распределенных систем. В силу этого сервер объектов и клиентские программы, в отличие от COM/DCOM, в технологии CORBA, как правило, располагаются на разных машинах.

Взаимодействие между клиентом и сервером происходит следующим образом. В процессе клиента имеется объект-посредник, именуемый stub (или Client-Side Stab). Он является полномочным представителем сервера и исполняет функции, во многом сходные с функциями объекта Proxy в технологии DCOM. Именно к stub при помощи интерфейса объекта обращается программа-клиент так, как будто stub и являет собой объект. Далее stub перенаправляет запрос клиента к особому объекту, который действует также на машине клиента. Этот объект называется ORB (Object Required Broker, брокер объектных запросов). Получив запрос, ORB формирует широковещательное сообщение во внешнюю сеть. На это сообщение откликается один из объектов Smart Agent, который функционирует на одном из компьютеров сетевого окружения (локальная сеть или Интернет). Smart Agent знает, где расположены соответствующие серверы объектов (фактически это как бы виртуальный сетевой каталог, где зарегистрированы некоторые серверы), и перенаправляет запрос на нужный сервер. На сервере пакет запроса принимает еще один объект ORB, который дешифрует запрос и пересылает его следующему объекту — BOA (Basic Object Adapter, базовый адаптер объектов). Роль объекта BOA заключается в фильтрации, кэшировании запросов и, соответственно, разграничении доступа к объекту сервера. Если запрос пропущен BOA, то он попадает в объект сервера skeleton. При этом в адресном пространстве сервера создается требуемый объект, skeleton помещает аргументы вызова в стек объекта и реализует собственно вызов. Используя объект BOA, skeleton также регистрирует созданный серверный CORBA-объект с помощью Smart Agent, а также сообщает о доступности, факте создания и о готовности объекта принимать запросы клиента. Далее следует обратная связь по описанной цепочке объектов.

Как видно из описания, CORBA реализует собой типичную многозвенную (здесь — трехзвенную) архитектуру. В роли Middleware — программного обеспечения промежуточного слоя — здесь выступает объект Smart Agent.

CORBA значительно более строго и формально подходит к механизмам обмена и передаче данных. Передача данных между компонентами ORB и smart Agent происходит при помощи специального протокола UDP (Ultrawide Data Protocol), который загружает сеть значительно меньше, чем протокол TCP/IP — тем самым происходит некоторая экономия системных ресурсов.

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

Благодаря трехзвенной архитектуре и наличию развитого языка создания интерфейсов IDL, технология CORBA позволяет создавать истинные кросс-платформенные информационные системы. Клиентские программы, программное обеспечение Middleware и серверы могут работать на разных аппаратных платформах под управлением различных операционных систем.

В языке OMG IDL, лежащем в основе CORBA, представлены даже некоторые возможности объектно-ориентированного программирования, такие как: инкапсуляция данных, полиморфизм и наследование

Еще одним важным достоинством CORBA является полностью объектная структура технологии. Понятие "объекта" в CORBA принципиально отличается от своего СОМ-аналога. Объект CORBA не является переменной языка программирования и в общем случае время его существования не связано со временем работы серверных или клиентских приложений.

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

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

Спецификации CORBA не оговаривают использование Интернета в качестве особого случая. Интеграция CORBA и Интернета выполняется естественным образом — за счет использования протокола ПОР (Interner/Intranet Object Protocol), построенного поверх TCP/IP.

Скорость и удобство разработки CORBA-систем сильно зависит от используемой технологии. До недавнего времени традиционным способом создания распределенных систем, основанных на CORBA, являлось использование Java-технологий — Enterprise JavaBeans и так называемых Application Server, например, BEA WebLogic и Inprise Application Server. Использование этих технологий позволяет чрезвычайно быстро создавать высокоэффективные, масштабируемые, транзакционные серверы приложений. Клиентская часть таких систем может быть написана на любом языке программирования, поддерживающим объекты CORBA.

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

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: