Сергей Бобровский

 

Возможность повторного использования программного кода, один из основополагающих принципов объектной идеологии, остается несбыточной мечтой разработчиков на протяжении уже двух десятков лет  -  с тех пор, как на рынке появились хорошие коммерческие версии объектно-ориентированных языков программирования. Особенно большие надежды возлагались на Си++. Казалось, что компании выпустят на его основе множество типовых объектов и программы можно будет собирать из готовых блоков. Однако неосуществленная идея повторного использования объектов оказалась одним из самых больших разочарований ООП. Случилось это потому, что во всем мире распространено большое число несовместимых между собой платформ, и разработчикам крупных информационных систем требуются кирпичики, способные функционировать на разных ОС. Но подходящей объектной кросс-платформной технологии не нашлось. Язык Java пока не оправдывает надежд  -  он сложен, Java-приложения работают слишком медленно, программисты опасаются, что из-за отсутствия независимого стандарта, как в случае с Microsoft Windows, развитие Java будет зависеть только от Sun. Кроме того, существует огромное число старых, но активно эксплуатируемых приложений для Unix и мэйнфреймов, а переписывать их заново очень дорого.

В начале 90-х годов стала очевидной потребность в новой технологии создания распределенных приложений любого масштаба, независимых от платформы, способных работать в связке со старым ПО и легко наращиваемых путем добавления строительных блоков по простому принципу “подключи и работай”. Такие блоки должны представлять собой небольшие, легко стыкующиеся друг с другом и допускающие интеграцию с Интернет программные модули, которые могли бы выпускать разные компании. При этом желательно, чтобы работа этих модулей не зависела от конфигурации сети и конкретной клиент-серверной архитектуры. Не слишком ли фантастично?    

Для чего нужна EntireX

10 октября 1995 г. американская корпорация Microsoft и немецкая фирма Software AG заключили соглашение о переносе Microsoft DCOM (распределенной объектной COM-модели) на мэйнфреймовские платформы и Unix. В течение двух лет специалисты Software AG сотрудничали с группой разработчиков Windows NT и осенью 1997 г. выпустили коммерческую версию технологии EntireX, объединяющей Microsoft DCOM и Software AG Entire (создание распределенных компонентных приложений). С помощью EntireX теперь можно интегрировать самые разные информационные системы в одно целое и неограниченно расширять их возможности.

EntireX ориентирована прежде всего на корпоративный рынок, на организации, которые используют гетерогенные сети, состоящие из ПК, серверов и мэйнфреймов. EntireX поддерживает DCOM-модель Microsoft на платформе Unix (Sun Solaris, Digital Unix, HP-UX, AIX, Linux) и мэйнфреймовских ОС  -  OS/390 (MVS Open Edition), BS2000 и VSE. На все эти системы перенесена, конечно, только базовая функциональность COM/OLE-технологии без интерфейсных частей.

EntireX основана на использовании ActiveX-объектов, которые сегодня применяются для создания Windows-приложений. Теперь, благодаря EntireX, ActiveX-объекты могут работать в распределенной клиент-серверной архитектуре, запускаясь на выполнение удаленными вызовами. В качестве протоколов обмена информацией в EntireX выступают TCP/IP и HTTP.

В EntireX имеется стандартный интерфейс совместной работы компонентов, независимый от ОС и языков программирования, на которых компоненты написаны. На его основе создан брокер обработки запросов, устанавливаемый на серверах в сети. Чтобы быстро строить масштабируемые системы без переписывания старых приложений, эти приложения “оборачиваются” специальным программным кодом, превращаясь в EntireX-компоненты. Для обновления системы достаточно просто заменить компоненты с устаревшей функциональностью.

В EntireX включена поддержка Интернет. Разработчики могут создавать Web-компоненты  -  Java-аплеты, CGI-модули, которые будут общаться с другими компонентами по стандартному протоколу. Это очень удобно, например, используя старые мэйнфреймовские Кобол-приложения, можно, не прибегая к программированию, быстро организовать заказ товаров непосредственно из браузера, послав запрос к удаленной Кобол-программе, работающей с базой данных в OS/390.    

Корни EntireX

EntireX во многом базируется на распределенной компонентной модели DCOM, которая появилась на свет в результате следующих этапов развития Microsoft Windows.

1982 г. Dynamic Link Library, DLL. Динамически подключаемые к программам библиотеки функций для Windows 1.0 и OS/2 1.0.

1990 г. Dynamic Data Exchange, DDE. Динамический обмен данными между приложениями для Windows 3.0. Используется во многих продуктах по сей день.

1991г. Oblect Linking and Embedding, OLE 1.0. Стандартные способы обработки электронных документов (Word-файлы, Excel-таблицы, картинки и т. д.).

Visual Basic eXtension, VBX. Компонентная модель пользовательского интерфейса для разработчиков на Visual Basic.

1993 г. OLE 2.0. Развитие OLE. Component Object Model, COM. Компонентная модель полнофункциональных объектов, содержащих в себе не только данные, но и методы их обработки.

1994 г. OCX. Улучшенная модель VBX на базе OLE 2.0 и COM.

1996 г. ActiveX. OCX-компоненты с поддержкой Интернет.

Distributed COM (DCOM) для Windows NT 4.0. (распределенные ActiveX-объекты для однородных Windows-сетей). DCOM поддерживает обмен синхронными сообщениями между компонентами, функционирующими на разных компьютерах, по схеме “точка  -  точка” (технология RPC, Remote Procedure Call  -  вызов удаленной процедуры). При этом клиент и сервер могут общаться друг с другом только в том случае, если они оба активны и между ними установлено соединение. Однако в корпоративной системе необходимо обеспечить несколько одновременных соединений между компонентами, т. е. устанавливать многоточечные соединения.

Microsoft Transaction Server, MTS. Сервер транзакций для поддержки DCOM.

1997 г. Microsoft Message Queue Server, MSMQ. Сервер обработки сообщений для организации асинхронных связей. Если компонентный сервер не является активным в момент обращения к нему клиента, копия запроса на соединение сохраняется в буфере и передается серверному компоненту в тот момент, когда этот компонент готов реагировать на запрос.

1998 г. Windows Distributed interNetworking Architecture, DNA. Интеграция Internet-, клиент-серверных, настольных приложений и СУБД в рамках единой распределенной модели на базе DCOM.

1999 г. (планируется). COM+. Визуальное программирование в COM-модели.

Единственный недостаток подходов Microsoft в том, что все ее технологии работают только на Windows-платформах. Если же в компании гетерогенные сети, то ей поможет EntireX. Для организации соединений между компонентами EntireX по умолчанию использует протокол TCP/IP. В смешанных сетях, не поддерживающих TCP/IP, применяется продукт ENTIRE NET-WORK, который абстрагирован от конкретных протоколов и позволяет организовать обмен сообщениями в любых ОС и серверных архитектурах, не требуя перенастройки ПО и аппаратной части.    

Состав EntireX

В EntireX входят следующие утилиты и наборы компонентов.

- DCOM Wrapper  -  программа, работающая под управлением Windows 95/NT. Предназначается для превращения разнородных приложений гетерогенной сети в стандартные компоненты EntireX. Функции преобразуемой программы описываются с помощью языка определения интерфейса IDL. На основе этого описания DCOM Wrapper делает из обычного приложения DCOM-объект (объект OLE Automation), в котором старые функции программы превращены в методы (функции EntireX RPC).

- EntireX Message Broker  -  брокер обработки сообщений. Брокер устанавливается на серверных платформах. Он поддерживает разные модели управления и обмена сообщениями  -  асинхронную, клиент-серверную и др. В него включена поддержка транзакций для восстановления всей компонентной среды в случае сбоя. Логически связанные сообщения группируются в рабочие модули (Units of Work). При отказе отдельных частей системы брокер может целиком переслать такой модуль на другой сервер.

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

- EntireX Broker Services  -  набор компонентов для расширения возможностей управления мощными серверами. В его состав входят два модуля для связи с мэйнфреймами: APPC Adapter, поддерживающий протокол LU6.2, и MQSeries Adapter. Для динамической репликации и запуска новых серверов (если в данный момент некому обработать поступивший запрос) используется Attach Service. Алгоритмы управления конкретными серверами определяются с помощью команд языка Server Definition Language.

- Advanced Communication Interface (ACI)  -  высокоуровневый платформно-независимый коммуникационный интерфейс. Используется при работе брокера сообщений. На основе ACI могут общаться программы, написанные на языках программирования третьего поколения, NATURAL-приложения, компоненты, содержащиеся в DCOM-контейнерах, Java-аплеты и ПО для мэйнфреймов. Для облегчения работы с ACI поставляется специальный объект EntireX ActiveX Control. Стандартные утилиты работы с ActiveX-объектами позволяют без программирования задавать полям EntireX ActiveX Control значения, характеризующие конкретное ACI-соединение. Программисты могут также работать со свойствами этого объекта как с методами.

- EntireX Security  -  система централизованного контроля за всеми компонентами сети и управления ресурсами в распределенной среде. Главный компонент EntireX Security устанавливается на мэйнфрейме, интерфейсные компоненты пристыковываются к требующим защиты программным модулям, например к ACI-блокам на ПК. Авторизация пользователя происходит каждый раз при его обращении к брокеру. Поддерживается шифрование паролей с возможностью их удаленной смены, ведется полный протокол работы. Не допускается одновременное подключение к сети двух человек с одним паролем. EntireX Security для пользователей полностью прозрачна  -  можно использовать любые имеющиеся в компании программные и аппаратные продукты сетевой защиты. В будущем EntireX Security будет интегрирована с механизмами безопасности DCOM.

- EntireX SDK  -  библиотека разработчика. В ее состав дополнительно включена библиотека шаблонов Microsoft ActiveX Template Library 2.1. При создании EntireX-компонентов используется техника RPC, позволяющая абстрагироваться от деталей низкоуровневого управления серверами, преобразования данных разного формата и т. д. В многоплатформную реализацию EntireX DCOM  -  Mutant  -  включено подмножество Win32 API для поддержки бизнес-логики приложения в разных средах. В это подмножество входят функции ввода-вывода и работы с процессами и из него удалено все, имеющее отношение к ГИП.

- EntireX Runtime  -  библиотека времени выполнения. Содержит набор DLL для Windows и дополнительные компоненты для других ОС. В EntireX Runtime имеется множество системных утилит, позволяющих сопровождать DCOM-технологию на отличных от Windows платформах.    

Где используется EntireX

В России технологии Software AG активно использует концерн РАО Газпром. На основе Entire Broker построена одна из важнейших систем Газпрома  -  комплекс территориально-распределенного мониторинга и сбора данных о добыче и транспортировке газа. Накапливаемые в регионах данные с помощью ПО NATURAL Lightstorm, работающего на ПК под управлением Windows 95, передаются на центральный мэйнфрейм (ОС MVS) для обработки и последующего использования.

Entire Broker применяется в Главном управлении информационных ресурсов ФАПСИ. С рабочих мест, где установлены Windows 95, а также через Web-интерфейс осуществляется доступ к центральным информационным ресурсам, размещенным на мэйнфреймах и хранящимся в СУБД ADABAS. При этом клиенты могут взаимодействовать с серверами как в синхронном, так и в асинхронном режиме.

EntireX для ПК поставляется на CD, для мэйнфреймов  -  на специальных картриджах, версии для Unix можно загрузить с Web-узла www.softwareag.com.

Телефон московского представительства Software AG: (095) 158-9930.

Версия для печати