Norenkov.Osnovy.Avtomatizirovannogo.Proektirovania.2002 (525024), страница 66
Текст из файла (страница 66)
Клиент обращается с запросом на выполнение некоторой процедуры.Запрос направляется к посреднику. В посреднике имеется предварительно сформированный каталог (реестр или репозиторий) интерфейсов процедур с указанием компонентов-исполнителей. Посредник перенаправляет запрос соответствующему исполнителю. Исполнитель может запросить параметры процедуры.После выполнения процедуры полученные результаты возвращаются клиенту.При этом пользователь оперирует удобными для его восприятия идентификаторами компонентов и интерфейсов, а с помощью каталога эти идентификаторы переводятся в указатели (ссылки), используемые аппаратно-программнымисредствами, и которые однозначно определяют интерфейс в распределенной сетииз многих компьютеров.В большинстве случаев реализуется синхронный режим работы, подразумевающий приостановку процесса клиента после выдачи запроса до полученияответа.Наиболее популярными в настоящее время являются следующие CBD-технологии.• CORBA—технология, основанная на спецификациях, разработанных специально созданным консорциумом OMG, в который вошли представители ведущих компьютерных фирм.
В CORBA реализуются распределенные вычисления на базе программ-посредников ORB.• COM (Common Object Model) - технология, развиваемая корпорациейMicrosoft на базе механизма OLE. Сетевой вариант этой технологии (для систем распределенных вычислений) известен под названием DCOM (Distributed2655 Методическое и программное обеспечение автоматизированных системСОМ). Объекты DCOM (в частности, объекты, которые можно вставлять вHTML-документы или к которым можно обращаться из Web-браузеров) известны под названием компонентов ActiveX. В COM/DCOM, как и в CORBA,можно использовать компоненты, написанные на разных объектно-ориентированных языках программирования.
Но в отличие от CORBA в COM/DCOMостается естественная для Microsoft ориентация только на операционные системы Windows. Технология ActiveX (прежнее название OLE Automation) обеспечивает интерфейс для управления объектами одного приложения из другого.В общем плане ActiveX - технология интеграции программного обеспеченияфирмы Microsoft. Например, применяя эту технологию, можно в среде VBAорганизовать доступ к объектам AutoCAD.• JavaBeans - сравнительно новая технология, в которой используются компоненты, написанные на языке Java.Рассмотрим подробнее основные CBD-технологии.Организация связи клиента с серверными компонентами и в CORBA, и вDCOM происходит с помощью разновидностей языка IDL.
Язык IDL в CORBAпозволяет описывать интерфейсы создаваемых компонентов. Описание, называемое метаданными, представляется в виде модуля, состоящего из заголовка, описаний типов данных, интерфейсов и операций. В заголовке указываетсяидентификатор модуля. В части типов данных перечисляются атрибуты, возвращаемые значения, исключительные ситуации.
Примерами типов данныхмогут служить типы базовые (например, float, double, char, boolean, struct), конструируемые пользователем (например, записи и массивы) и объектные ссылки, указывающие на интерфейсы компонентов. Описание интерфейсов начинается с ключевого слова interface, за которым следуют идентификаторы данногоинтерфейса и, возможно, наследуемых интерфейсов.
Далее описываются операции (методы) в виде идентификаторов операций с возможными перечислениями параметров операций и указанием их принадлежности к входным иливыходным данным.Классы объектов (программные модули) должны быть реализованы вCORBA-среде. Для этого компилятор IDL выполняет следующие действия.Во-первых, метаданные для каждого класса объектов помещаются в специальную базу данных, имеющуюся в ORB, - репозиторий интерфейсов.
Во-вторых, компилятор создает для каждого определенного на IDL метода клиентский и серверный стабы - специальные программные модули, обеспечивающиедоступ к компонентам.Основное назначение стабов - выполнение маршалинга и организация передачи данных через сеть. Маршалингом называют упаковку параметров в стандартный формат для пересылки. Маршалинг необходим по той причине, чтопредставление данных в разных компьютерных средах может быть различным (например, различия в кодировке символов, в изображении чисел с плавающей запятой).
Клиентский стаб будет использоваться для передачи вызовови данных от клиента в сеть, а серверный стаб, называемый также скелетоном,будет вызывать метод уже в среде сервера и возвращать результаты.2665.5. Инструментальные средства концептуального проектированияНа серверной стороне данные о каждом новом классе объектов, поддерживаемом конкретным сервером, заносятся в репозитарий реализаций. Этуоперацию выполняет объектный адаптер.
Обычно в ORB имеется несколькообъектных адаптеров, обслуживающих разные группы компонентов (так, возможны объектные адаптеры, ориентированные на библиотеки, на базы данных, на группу отдельных программ и т. п.).Объектные адаптеры выполняют также ряд других функций, например,таких, как интерпретация объектных ссылок, активация и дезактивация компонентов, вызов их методов через скелетоны.
Возможны разные способы активации и дезактивации компонентов. В первом из них для обслуживания каждого клиентского запроса создается своя копия компонента. В других способахкопии не создаются, компонент обслуживает все запросы с разделением илибез разделения во времени.При реализации запроса брокер через объектный адаптер активирует соответствующий компонент. Далее взаимодействие клиент - сервер происходитчерез стабы.Изложенную схему взаимодействия клиент - сервер называют статической.
В CORBA предусмотрены также динамические вызовы. Для их осуще"ствления не требуется предварительного формирования стабов с помощьюкомпилятора языка IDL. Вместо стабов, специфических для каждого вызываемого метода, в CORBA используются специальные программы динамического взаимодействия, инвариантные к вызываемым методам. При этом необходимые данные для обращения к компоненту должны быть представлены вклиентской программе, в частности, они могут быть предварительно полученыиз репозитария интерфейсов. Динамические вызовы обеспечивают большуюгибкость при программировании, но выполняются они значительно медленнее.В CORBA предусмотрен ряд унифицированных сервисов, работающих подуправлением ORB. В частности, это сервисы:• именования - присваивает объектам уникальные имена, в результатепользователь может искать объекты в сети по имени;• жизненного цикла - обеспечивает создание, перемещение, копирование иудаление объектов (документов) в системе, в том числе составных объектоввместе со всеми ссылками и ассоциированными объектами;• обработки транзакций - осуществляет управление транзакциями (блокировка, фиксация и откат транзакций) из приложений или из ОС, что позволяетмногим объектам в сети использовать одни и те же серверы;• событий - обеспечивает асинхронное распространение и обработку сообщений о событиях, происшедших при реализации процессов, что позволяет заинтересованным объектам координировать свои действия;• обеспечения безопасности - поддерживает целостность данных.В технологии COM/DCOM все объекты сгруппированы в классы и каждыйкласс имеет свой идентификатор CLSID, а каждый интерфейс (метод) класса- свой идентификатор.
Для создания объекта (экземпляра класса) клиент обращается к серверу библиотеки СОМ с указанием CLSID и идентификаторов2675. Методическое и программное обеспечение автоматизированных системвсех требуемых интерфейсов. Сервер библиотеки СОМ находит в таблицереестре по CLSID адрес удаленной машины, на которой размещен запрошенный компонент, и передает ей запрос клиента. На серверной стороне создаетсяобъект (копия компонента), он активируется и возвращает клиенту указателиссылки на требуемые интерфейсы. Теперь клиент может многократно обращаться к методам объекта, указывая в своих запросах имена интерфейса, методов и их параметров.
Обычно объект исполняется на той машине, на которойразмещен компонент, но можно выбрать и другую машину, указав в запросе,например, ее IP-адрес.Появление технологии JavaBeans обусловлено успехом языка программирования Java. Технологию JavaBeans отличают от COM/DCOM две особенности. Во-первых, Java - единственный в JavaBeans язык программирования.Единственность языка и притом объектно-ориентированного обусловливаетсравнительную легкость освоения и применения технологии JavaBeans. Во-вторых, технология JavaBeans является платформенно-независимой.Компоненты в JavaBeans являются классами Java. Для их создания, модификации и объединения в прикладные программы имеются специальные средства в составе инструментальной среды JDK.