В.П.Шириков, В.В.Галактионов (2002)

НА ПУТИ К ВНЕДРЕНИЮ НОВЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

В.П.Шириков, В.В.Галактионов

Объединенный Институт Ядерных Исследований, Дубна

В принципе проблеме создания распределенных интероперабельных компьютерных систем больше 40 лет, достаточно вспомнить цели создания ARPA или приемы, применявшиеся разработчиками гетерогенных многомашинных комплексов в физических институтах для нужд приема и обработки экспериментальной информации: в России пик этих работ пришелся на время создания иерархических комплексов на базе БЭСМ-6 и машин класса СМ/М6000/Минск/БЭСМ-4, ответственных за сбор и предварительную обработку данных с аппаратуры экспериментов. Известное с тех времен понятие RPC (Remote Procedure Call) и сейчас звучит как одно из основных при создании современных средств middleware, в том числе в проектах типа GRID, приобретая разные формы в цепочке RPC-RMI/COM-CORBA-Web Services, как и идея и разные способы реализации распределенной пакетной обработки задач (и сейчас опытные образцы GRID-подсистем испытываются на этом режиме). Старые и хорошо освоенные приемы сочетания работы связанных машин при совместной поддержке распределенных информационных и вычислительных систем в каком-то смысле тормозят внедрение их модификаций, тем более что в своей реализации эти модификации не в полной мере унифицированы или доотлажены и их внедрение за рамки отдельных организаций, осложняющееся вдобавок низким качеством линий связи, считается пока проблематичным: это относится и к CORBA. и к Web Services (с их набором средств SOAP, WSDL, WS-Inspection и UDDI), претендующим на роль успешных конкурентов СORBA.

Что касается конкуренции, то в одной из недавних статей можно было прочитать следующее утверждение: " В некотором смысле Web Services представляют собой второй приход CORBA. Но в то время как CORBA была объектно-ориентированной, основанной на использовании коммуникационного протокола IIOP, нагруженной стабами, скелетонами и ORB разных фирм, Web Services оказываются более легкими в использовании, применяющими известный HTTP и XML для коммуникаций, полностью нейтральными по отношению к типу платформ и языков программирования. Где CORBA была 600-фунтовой гориллой, наполовину заключенной в клетку, Web Services - газель, свободно скачущая по безбрежным ресурсам Интернет ". С другой стороны, есть и настораживающие высказывания о сырости реализаций или даже ненужности такой их составляющей, как сервисный набор WSDL (Web Services Description Language), предназначенный для описания средствами XML всей информации, необходимой для обращения к сервисным программам (например, из репозитория UDDI (Universal Description, Discovery and Integration).Критике не подвергается только такой ключевой элемент как SOAP (Simple Object Access Protocol), предназначенный для передачи XML-сообщений как основного средства обращения к компонентам распределенных систем. Что касается XML, то его роль и перспективность никем не оспаривается, есть хорошие реализации его поддержки в браузерах и СУБД (кстати, и такие элементы критикуемой CORBA-архитектуры, как VisiBroker, давно взяты на вооружение поставщиками СУБД (например, для версии Oracle 8i) ). В отношении XML звучат и такие высказывания, что его применение для описания семантики данных делает Интернет интеллектуальным, существенно расширяя возможности поисковых систем в базах данных и знаний. В свою очередь, включение в базы компонент (объектов), доступных через VisiBroker или SOAP и выступающих в качестве посредников между приложениями и СУБД, содействует защите содержимого этих баз.

Возникает вопрос: что же делать разработчикам распределенных систем в отношении к новым (или сравнительно новым) информационным технологиям? Web Services не доработаны, CORBA вроде бы устарела, как быть со сделанными с ее помощью приложениями при их развитии ? В России ее пропагандой во второй половине 90-х годов активно занимался, в частности, Экспертный Совет отдела телекоммуникаций и информационных систем РФФИ, публикуя в "Вестнике РФФИ" (№3 (9), сентябрь 1997 и №4 (14), сентябрь 1998) аналитические обзоры по выполненным при поддержке РФФИ проектам. К этому времени по существу только один проект 94-07-20453 " Объектные технологии для создания интероперабельных информационных и вычислительных систем" (руководитель Л.А.Калиниченко) был посвящен проблемам внедрения новых технологий создания middleware на базе CORBA-архитектуры и ее интеграции с WWW-технологией, поэтому в указанные обзоры включался достаточно подробный методический материал в помощь разработчикам практических приложений с применением рекомендуемых средств. На Западе в среде крупных физических центров (типа ЦЕРН и его коллаборантов) к этому моменту уже был опробован аппарат CORBA при построении программного обеспечения для компьютерного контроля работы ускорительных систем и систем регистрации и накопления экспериментальных данных с детекторных установок : см.например Труды конференции CHEP`97 (Computing for High Energy Physics, 1997). Брокеры (ORB) CORBA типа Orbix и VisiBroker были использованы международными коллаборациями (в которых участвуют и центры физики высоких энергий на территории России) в системах разработки, тестирования и последующей калибровки детекторных элементов установок типа CMS, ATLAS и др., фигурирующих в проекте создания крупнейшего Европейского ускорителя LHC в ЦЕРНе (Женева). Работы по методологии и практике разработки распределенных приложений на базе технологии типа CORBA появились и в таких Российских научных центрах как ИПМ РАН, ИСП РАН, МГУ и др. (см., например, сборник "Вопросы кибернетики", выпуск 3, Москва 1997, ISSN 0134-6388). Появились и прикладные работы, поддержанные грантами РФФИ (см. Труды ИСП РАН, том 2, 2001; Труды конференций "Научный сервис в сети Интернет" и RCDL двух предыдущих лет) и затрагивающие вопросы использования средств CORBA, SOAP и XML.

На первый взгляд, интеграция упомянутых выше приложений в новые структуры и архитектуры типа OGSA (Open Grid Services Architecture) может показаться весьма проблематичной. Решением этой проблемы занимались и разработчики программного обеспечения GRID-ориентированного проекта Globus, и авторы крупных прикладных проектов, уже работавших на основе применения архитектуры CORBA. Так, в статье "The anatomy of the Grid Enabling Scalable Virtual Organizations" Яна Фостера, Карла Кессельмана и Стивена Тюкке (http://www.fylrr.com/archives.php?doc=anatomy.pdf) отмечается, что технология GRID не конкурирует, а скорее дополняет возможности существующих Enterprise-технологий (таких как CORBA, Enterprise Java Beans, DCOM), позволяя им выйти за пределы локальных сетей отдельных организаций, упрощая проблемы динамического использования информационных и вычислительных ресурсов и т.п. : в части CORBA речь может идти о конструировании новых ORB и коррекции ряда служб архитектуры CORBA на основе применения GRID-протоколов доступа к глобальным ресурсам, либо о создании бриджей (gateways) между службами разных архитектур. Достаточно хорошо и конкретно описываются средства сопряжения упомянутых технологий в работе "NPSS on NASA`s IPG (Information Power Grid). Using CORBA and Globus to coordinate Multidisciplinary Aerospace Applications" авторов из Исследовательского Центра NASA и Аргонской Национальной Лаборатории (http://accl.grc.nasa.gov/IPG/CORBA/NPSS_CAS_paper.html). Их задачей было исследование возможностей использования GRID-служб в системе NPSS для численного моделирования силовых установок, построенной на основе применения CORBA-архитектуры.Одной из подзадач стала разработка средств сопряжения двух архитектур: тех самых средств, которые и придали бы службам CORBA новое качество, в том числе возможность использовать специализированные ресурсы, встречающиеся в GRID-окружении (параллельные компьютеры MPPs, высокоскоростные сети связи).

В результате были реализованы и применены бриджи между CORBA и Globus Resource Allocation Manager (GRAM), между CORBA Trader Service и GRID Information Service, обеспечена интеграция CORBA и GRID-механизма защиты ресурсов и т.п. Были использованы программные наработки участников проекта Globus в виде наборов Globus Tool Kit и Commodity Greed Tools. Тем самым, приложение может быть реализовано в рамках знакомых CORBA-концепций и сервисов, в том числе использующих аналогичные, но более развитые специализированные сервисы (Security, Resource Discovery, Event, Naming, Trading-сервисы и т.д.), предоставляемые GRID-окружением. Авторы упомянутой статьи отмечают также, что некоторые элементы GRID-технологии могли бы быть учтены и при развитии WWW-браузеров для того, чтобы расширить возможности типичного для WWW режима "клиент-Web-сервер" (например, для делегирования Web-серверу прав клиента по доступу к внешним ресурсам). Завершая тему проблем совместимости относительно "старых" и новых технологий уровня GRID, отметим, что она рассматривается и в работах Российских авторов (см., например, статью "Единая среда распределенных ресурсов (GRID) и цифровые библиотеки" в Сборнике трудов RCDL`2001).

Путь не только применения, но даже освоения на методическом уровне элементов новых технологий, о которых речь шла выше, не прост : многое недоопределено в существующей на западных серверах документации; сами программные реализации, в принципе открытые для общего пользования или обещанные к открытию (например, в составе пакета Globus Toolkit 3.0) , требуют освоения на тестовых примерах приложений или доработки. С этой целью, в частности, на базовом сервере dbserv.jinr.ru в ОИЯИ, организованном в рамках поддержанного РФФИ проекта БАФИЗ, был в свое время, еще до появления понятий Web Services и GRID/OGSA, открыт раздел "Java Station". Изначально предполагалось, что он будет коллекцией (программ, документации, руководств и учебных пособий) по Интернет-технологиям, тем или иным образом связанных с языком Java : уже первое появление Java принесло ему быструю популярность, и его применение в качестве инструментального средства разработок приложений в различных областях обработки информации, в частности для Интернет-приложений и распределенных систем, явилось мощным стимулом их развития, привнося с собой огромный набор средств, расширяющий сферу применения таких приложений. Надо отметить, что и в настоящее время область применения Java чрезвычайно обширна и развивается. Судя по интервью с Джоном Крупи (SUN Microsystems), опубликованному в PC WEEK/RE №19 (июнь 2002), Java-технология будет активно конкурировать с технологией Microsoft.NET в части реализации средств использования Web Services: в рамках направления, называемого Sun ONE, формируется пакет J2EE (Java Enterprise Edition) версии 1.5, объединяющий пакеты для наборов Java-API JAXR (Java API for XML Registry) для поддержки репозитория и реестра сервисов на базе технологии UDDI и ebXML; JAXM (Java API for XML Messaging); JAX-RPC (Java API for Remote Procedure Call) для SOAP-сообщений, дающий, в частности, возможность осуществлять SOAP RPC-вызовы для получения WSDL-описаний. Отметим и статью в предыдущем выпуске PC WEEK/RE о развитии корпорацией Borland Software пакета средств разработки JBuilder 6 в части расширения поддержки Web Services и таких новых Java-технологий, как Enterprise Java Beans (ESB) 2.0.

Автор раздела (В.В.Галактионов) ставил своей целью, прежде всего, собрание материалов по Java-технологиям, так или иначе являющимся областью своих интересов при исследованиях и практических применениях и включающим такие средства, как:

- графические возможности Java (AWT и Swing);
- средство JDBC для работы с базами данных;
- средство для сопряжения с программами на C++ - JNI (Java Native Interface);
- Интернет-возможности Java : апплеты, сервлеты, signed сервлеты, JSP (Java Server Page) и др.;
- применение Java в XML-технологиях;
- применение Java в распределенных системах (RMI и CORBA);
- применение Java в технологии Web Services (пакет JWSDP компании Sun);
- применение Java-приложений в СУБД Oracle: JSP (Java Stored Procedure) и VisiBroker (CORBA-пакет компании Inprise).

Представленные в Java Station материалы можно разделить на несколько групп :

- стандартные средства самого языка Java, т.е.библиотеки классов, входящие в стандартные инструментальные пакеты разработчика JDK (Java Development Kit): JDK 1.1.8, Java 2 SDK SE 3.1.1, Java 2 SDK EE 1.3;
- свободно распространяемые программные пакеты либо демоверсии для скачивания;
- авторские разработки (публикации и программы);
- инсталлированная в Java Station on-line документация;
- документация в упакованном формате для скачивания.

В силу лицензионных ограничений свободно распространяемые программные продукты и документация к ним доступны лишь (в принципе) для сотрудников ОИЯИ, но они доступны для переписи из сайтов фирм-производителей. В Java Station включены также материалы, не касающиеся непосредственно Java-технологий, такие как Web Counter (CGI-программы для сбора статистики использования Web-страниц), документация к HTML, XML, CSS, PHP, VML, MathML, JavaScript, tidy. В настояшее время Java Station содержит 8 тематических разделов c названиями:

- Java. Раздел содержит: описания и спецификации языка Java, учебные пособия и руководства; on-line документацию к пакету Java 2 SDK SE; руководства для работs с JDBC и сервлетами; демонстрационные программы.
- JavaScript. Раздел содержит авторское описание языка JavaScript "Программирование в WWW. Язык JavaScript".
- CORBA. Раздел содержит документацию и руководства к программным пакетам для распределенных систем: RMI, RMI IIOP, Java IDL, VisiBroker, OrbixWeb, ILU. Сюда также включены описания авторских исследований "Java-технология в распределенных системах с CORBA-архитектурой" и "Потоки данных в распределенных системах с CORBA-архитектурой".
- XML. Раздел содержит ряд публикаций по языку XML, описания программных реализаций по технологии XML (MathML, VML, XHTML, tidy) и результатов авторских исследований "Расширяемый язык разметки XML (Extensible Mark-up Language): промышленный стандарт, определяющий архитектуру программных средств Интернет следующего поколения ". В разделе размещены также ссылки на публикации по использованию XML в CERNе.
- Web Services. Новый раздел для размещения информации по новой технологии для распределенных систем.
- WWW. Раздел посвящен средствам программирования в WWW (HTML, CSS, PHP).
- Web Counter. Раздел содержит описание и инструкции для использования счетчика и статистики обращений к Web-страницам сотрудников ОИЯИ.
- Downloads. Раздел содержит программы и документацию для скачивания. Сюда включены свободно распространяемые программные продукты внешних организаций и авторские разработки на языке Java:
- XML-конвертер xcvt,
- графический SQL/JDBC клиент jsql,
- пакет Web-разрабочика wdk 1.1,
- графический AWT-конструктор guic.
Установлены паролевые ограничения к разделу для внешних пользователей.
(Для пользователей ОИЯИ надо ввести фиктивный код).

Java Station постоянно обновляется, по мере доступности пополняется программами и документацией по вышеуказанной тематике, дополняется новыми разделами, как например, разделом по новой технологии Web Services. Есть намерение ввести в каждом разделе рубрику типа "Это просто!" ("That's simple!"), в которой будет в популярной и доступной для неспециалистов форме излагаться тематика раздела.