Норенков И.П. - Основы автоматизированного проектирования (1060628), страница 65
Текст из файла (страница 65)
В 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. С их помощью компонентыJavaBeans могут быть встроены в Java-аплеты, приложения или другие болеекрупные компоненты.
В качестве Java-аплетов компоненты JavaBeans поддерживаются большинством имеющихся WWW-браузеров.Развитие CBD-систем возможно в направлении дальнейшего упрощенияпрограммирования и, следовательно, сокращения сроков разработки ПО, однако это происходит за счет снижения степени универсальности соответствующих инструментальных средств. Такие более специализированные средствапредставляют собой группу компонентов, взаимосвязанных некоторым зависящим от приложения образом, и входят в системные среды САПР.В общем случае компоненты системной среды объединены в несколькосценариев (потоков процедур или маршрутов), в которых выделяются точкивхода для вставки специфичных пользовательских фрагментов и расширений.Имеются возможности не только вставки новых фрагментов, но и замены исходных компонентов в потоках процедур на оригинальные с сохранением интерфейса. Собственно многие системы, основанные на применении языков четвертого поколения (4GL), относятся именно к таким системным средам, вкоторых последовательности инкапсулированных модулей образуются с помощью операторов 4GL.Пример реализации компонентно-ориентированнойтехнологии в САПРОсновные идеи компонентно-ориентированной (объектной) технологии ссозданием расширенных специализированных библиотек компонентов реализованы в системе CAS.CADE (Computer Aided Software / Computer Aided DesignEngineering) фирмы Matra Datavision.2685.5.
Инструментальные средства концептуального проектированияСистема CAS.CADE состоит из нескольких частей. Основными частямиявляются библиотеки классов и инструментальная среда для создания ПОтехнических и научных приложений.Библиотеки (Object Libraries) в CAS.CADE представляют собой специализированные наборы заранее разработанных компонентов на языке C++. Совокупность библиотек имеет иерархическую структуру. Базовые компонентысоответствуют классам объектной методологии.