Интеграция унаследованных программных комплексов в ИТ-инфраструктуру научных исследований

А.В.Черноусов, Л.В.Масседь

Интеграция унаследованных программных комплексов в ИТ-инфраструктуру научных исследований _

Введение. Современное состояние информационных технологий (ИТ) позволяет решить многие проблемы, связанные с ведением территориально распределенных проектов, предполагающих тесное взаимодействие различных элементов одной виртуальной организации, Под виртуальной организацией можно понимать как совокупность нескольких филиалов одной реальной корпорации, так и коллектив ученых, работающих в различных институтах над одной проблемой или в рамках одного проекта, Последнее носит в основном междисциплинарный характер или связано с консолидации усилий нескольких научных институтов для решения поставленной задачи.

Относительно недавно на смену разработки монолитных, поставляемых заказчику продуктов пришли продукты, разрабатываемые в режиме ИТ-аутсорсинг1, Современные тенденции развития программного обеспечения (ПО) связаны с переходом к удаленному использованию вычислительных, информационных и других ресурсов. Доступ посредством ,Л'еЬ-приложений к вновь создаваемому ПО сейчас является основным направлением развития корпоративных приложений,

Использование в рамках \^/еЬ-приложений уже разработанных программных комплексов позволяет в значительной степени ускорить процесс разработки, К сожалению, существующие программные комплексы в большинстве практически не позволяют интегрировать свою функциональность в другие системы (под функциональностью понимается конкретная реализация алгоритмов и методов обработки данных). Такая ситуация существует, как правило, вследствие использования морально устаревших технологий и методов программирования.

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

1 ИТ-аутсорсинг (IT Outsourcing) — передача специализированной компании функций, связанных с информационными технологиями._

и вычислительных ресурсов проекта для всех его участников [1, 2].

Уже существующие программные комплексы (ПК) и другие ресурсы благодаря сервис-ориентированной архитектуре могут быть в большинстве случаев адаптированы к современным условиям. Сервис-ориентированная архитектура ($ОА) - это парадигма, предназначенная для проектирования, разработки и управления дискретных единиц логики (сервисов) в вычислительной среде [3]. Благодаря БОА отдельные сервисы могут быть быстро интегрированы в распределенную вычислительную инфраструктуру.

В статье предлагается методика интеграции унаследованных программных комплексов в современную ИТ-инфраструктуру с использованием УУеЬ-сервисов,

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

1. Проблема интеграции по данным - трудности при обмене данными с другими программами, связанные с применением различных кодировок, типов данных и различных форматов их хранения.

2. Проблема доступности. Часто разработчики даже не знают, какие функции уже реализованы даже в одном учреждении, Использование различных языков программирования и платформ также является значительным препятствием для интеграции по функциям.

3. Отсутствие документации. При утрате технической документации в отсутствие разработчика функции практически нереально интегрировать ее в другой ПК.

4. Административный барьер. В случае если группы разработчиков относятся к разным организационным подразделениям, личные отношения и амбиции руководства этих подразделений могут осложнить их взаимодействие [1].

Решение этих проблем при использовании старых подходов к созданию программных комплексов крайне проблематично, а иногда просто непреодолимо.

Технологии интеграции приложений. Для интеграции программных комплексов в единую ИТ-инфраструктуру следует опираться на мировые тенденции в разработке программного обеспечения [1]. Признанными лидерами среди технологии по интеграции программного обеспечения являются SOA (сервис-ориентированная архитектура) [4] и GRID [2. 5].

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

Технология SOA предоставляет функциональность приложений в виде независимых сервисов и позволяет обеспечить доступ к ним независимо от используемых ОС и языков программирования. SOA — это прикладная архитектура, в которой все функции определены как независимые сервисы с вызываемыми интерфейсами. Обращение к этим сервисам в определенной последовательности позволяет реализовать тот или иной бизнес-процесс [6]. Другими словами, SOA — это компонентная модель, в которой разные функциональные единицы приложений, называемые сервисами, взаимодействуют по сети посредством интерфейсов. SOA является более предпочтительной при реализации распределенной системы, так как в целом является более простой в реализации и исключает недостатки GRID технологии.

При реализации полной SOA необходимо реализовать три основных компонента: реестр; провайдер сервисов; потребитель сервисов, При этом реализация реестра носит необязательный характер при несложном взаимодействии компонентов ИС. На рис. 1 пред-

ставлена концептуальная модель взаимодействия компонентов SOA [7].

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

Для реализации SOA предлагается использовать технологии и стандарты Web-сервисов, так как, по сути, в настоящее время эти стандарты и технологии позволяют наиболее полно реализовать SOA.

Разработка клиента Web-сервиса в качестве Web-приложения позволяет решить еще ряд второстепенных задач [8]:

обновление ПО может быть оперативно реализовано для всех пользователей системы одновременно;

• клиентское приложение, т.е. браузер, не требует установки, так как включено в поставку всех современных desktop-ориентированных операционных систем;

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

SOA-ориентированный подход идеально подходит для организации взаимодействия между различными программными комплексами. Исходя из этого, предлагаемая методика опирается на SOA, Для решения проблем доступности и интеграции по данным в методике предлагается использование SOA совместно с применением XML как формата хранения данных.

Методика интеграции унаследованных программных комплексов в современную ИТ-инфраструктуру. Для интеграции унаследованного ПО в современную ИТ-инфраструктуру необходимо, чтобы оно было написано на современном языке программирования (например, Java) и имело специальный

USE

REALIZE

ServiceConsumer

ServiceDescription

CONTAINS Л

<н

Serviceprovider

j + invokeServiceQ j + bindService

DESCRIBED IN

ServiceBroker

j + findServiceQ

Рис.1. Концептуальная модель взаимодействия компонентов SOA

интерфейс, с помощью которого можно было бы вызвать функции вычислительного ядра. Так как большинство унаследованных систем написано на устаревших языках программирования и не имеют такого интерфейса, то сопряжение их с другими элементами ИТ-инфраструктуры предлагается посредством: командной строки, чтения-записи и анализа данных из файлов, используемых программным комплексом (ПК), стандартного интерфейса ввода-вывода.

Исходя из вышесказанного, предлагаемая методика состоит из следующих комплексных, последовательно выполняемых этапов:

1. Рефакторинг исходного кода унаследованного комплекса,

2. Реинжиниринг программного комплекса.

3. Создание промежуточного программного обеспечения.

4. Разработка Web-сервиса.

5. Разработка Web-приложения.

6. Внедрение.

При выполнении первого комплексного этапа методики ставятся задачи выполнить:

Инвентаризацию унаследованного программного вычислительного комплекса (включающую получение исходных кодов ПК, поиск спецификаций форматов данных, поиск документации, составление текущих вариантов использования ПК (use cases), разработка блока тестов (test collection)),

* Анализ исходного кода (включает поиск потоков данных, поиск логических структур и мест их обработки, а также идентификации алгоритмов и методов обработки данных).

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

Результатами этого комплексного этапа являются: полное понимание группой разработчиков функциональности программного комплекса, вариантов (режимов) его использования и набор тестов для проверки производительности и корректности ПО, а также форматы входных, выходных и промежуточных данных. Группа разработчиков должна иметь полное понимание внутренней структуры программного комплекса. Одним из важных результатов является документация, восстановленная в ходе выполнения этапа,

Реинжиниринг не затрагивает уникальных методов, реализованных в программном комплексе, он проводится исключительно для выполнения следующих целей:

Приведение форматов данных к современному

виду.

Выделение вычислительного ядра комплекса.

Приведение форматов данных к современному

виду вызвано необходимостью интеграции с другими частями ИТ-инфраструктуры. Трудности при обмене данными с другими программами в основном связаны с применением различных кодировок, типов данных и

различных форматов их хранения. Решить эту проблему, по мнению автора, можно благодаря приведению входных/выходных данных к единому стандарту XML,

Единый стандарт бизнес-документов - очень важный аспект интеграции, так как, однажды преобразовав документ в представление XML, можно беспрепятственно работать с ним дальше или конвертировать в любой необходимый внешний формат. Не менее 50% успеха интеграции ПО заключается в выборе правильного формата XML сообщений.

Отделение графического (псевдографического) пользовательского интерфейса (GUI) и выделение вычислительного ядра комплекса - один из самых трудоемких процессов в данной методике. Трудность заключается в том, что часто GUI и вычислительное ядро программного комплекса значительно переплетены друг с другом.

Результатом выполнения данного этапа является консольное приложение, готовое к интеграции, где все use cases реализуются посредством командной строки (в идеале - с помощью ключей при запуске приложения), а формат входных,/выходных данных основан на XML.

Разработка ПО промежуточного уровня (middleware) вызвана необходимостью реализовать предложенную в [1] архитектуру распределенного программного комплекса. Основная суть middleware заключается в облегчении доступа приложений к ресурсам. Такая функциональность важна, прежде всего, для разработчиков информационных систем, поскольку позволяет им большую часть времени уделять созданию бизнес-логики, а не разработке механизмов доступа к ресурсам.

Результатом выполнения этапа является такое приложение на современном языке программирования (например, Java), которое, с одной стороны, работает с вычислительным ядром комплекса, а с другой стороны, предоставляет современный интерфейс для интеграции в ИТ-инфраструктуру.

На этапе разработки Web-сервиса создается серверное ПО, которое должно выполнять следующие функции:

Сохранение переданных на обработку данных.

Обеспечение взаимодействия с middleware (его локальный вызов, обработка исключительных ситуаций).

Постановка задач в очередь.

Уведомление о текущем состоянии выполнения задачи (если вычислительное ядро программного комплекса это позволяет).

Подготовка результата в требуемом формате и отправка его клиенту.

Прежде чем приступать к созданию Web-сервиса, создается интерфейс, в соответствии с которым происходит взаимодействие сервиса и его потребителя. Согласно SOA, Web-сервис должен работать по протоколу SOAP.

МОДЕЛЬ

Инкапсулирует состояние приложения Отвечает на запросы о состоянии модели Реализует функциональность приложения Уведомляет вид(ы) об изменении состояния

вид

Обеспечивает визуальное представление модели Запрашивает у модели информацию об обновлениях ! Уведомляет контроллер о действиях пользователя ! Позволяет контроллеру выбирать тип визуального | представления

КОНТРОЛЛЕР

Определяет поведение приложения

Транслирует действия пользователя в изменения в модели Определяет вид представления результатов Один для каждой выполняемой функции

Рис. 2. Отношения между компонентами архитектуры MVC

В случае, если принято решение о создании «Реестра сервисов», необходимо предусмотреть реализацию функции регистрирования ШеЬ-сервиса в нем. Следует четко понимать, что \А/еЬ-сервис, рассмотренный ранее, занимается только вычислениями, а доступ конечного пользователя к системе осуществляется через УУеЬ-приложение. Пользователь для работы с \Л/еЬ-приложением применяет Web-бpаyзep,

Web-бpayзep отвечает за передачу данных от клиента и обратно, за безопасность и за представление данных. Это полноценный настраиваемый клиент. Настройка заключается в написании кода страницы, по которому браузер генерирует представление данных, обрабатывает интерактивность- страницы и отсылает обратно данные по безопасному соединению. Его не надо устанавливать на каждом компьютере, с которого нужен доступ к разработанной системе.

Так как ^/еЬ-браузер берет на себя все действия по отображению результатов, работа \УеЬ-приложения заключается в генерации кода страниц, Для этого предпочтительно использовать паттерн «Модель - Вид -Контроллер» (МУС) представленный на рис. 2,

Паттерн МУС означает четкое отделение пользовательского интерфейса (представления - вида) от бизнес-логики (модели). Контроллер управляет вводом и

выводом. К общеизвестным преимуществам этой модели относятся простота сопровождения, улучшенная гибкость и более понятный код [9].

В качестве контроллера выступает ряд сервлетов, управляющих поведением Web-приложения. Вид представляет собой набор JSP страниц, концептуально связанных друг с другом. JSP генерируют конечный код, который интерпретирует Web-браузер. Совокупность набора JavaBean и ряда некоторых классов, хранящих состояние системы и отвечающих за взаимодействие с Web-сервисом, является Моделью.

Предложенная методика завершается всесторонним тестированием развернутого распределенного приложения, реализованного в архитектуре SOA, С помощью предложенной методики возможно решение двух основных проблем:

адаптация унаследованных программных комплексов и последующая интеграция их в ИТ инфраструктуру,

разработка Web-сервисов на основе программ- вычислителей.

Применение методики. В настоящее время предложенная методика успешно проходит тестирование в рамках проекта создания вычислительного сервера для

Рис 3. Диаграмма развертывания IУеЬ-сервера для решения задач нелинейной оптимизации.

BrowserClient

Web-browser

HTTP

J

Web-container

NotLineClient.war

SOAP

Application Server

notlineopt.exe i

MiddleWareNLopt

NotLineService

MiddieWareGateway

MiddleWareNotLine

XMLStore

Locator

решения задач нелинейной оптимизации2. Положительными факторами, способствовавшими успешной адаптации, явились доступность разработчиков базового комплекса программ, а также применение ими достаточно современного языка программирования.

На рис. 3 представлена схема развертывания компонентов распределенной системы.

В качества потребителя сервиса будет выступать Web-приложение, так как предполагается интеграция вычислительного сервера в ИТ-инфраструктуру системных исследований в энергетике.

Библиографический список

1. Болдырев Е.А, Вычислительная инфраструктура научных исследований и подход к ее реализации// Информационные и математические технологии в науке, технике и образовании. - 2005, - 4.1. - С,65 - 72.

2, The Anatomy of the Grid: Enabling Scalable Virtual Organizations, I, Foster, C, Kesselman, S. Tuecke. International J. Supercomputer Applications, 15(3), 2001,

2 Вычислительным ядром сервера является комплекс программ, разработанный И.В.Мокрым под руководством О.В.Хамисова._

3. Jeremy Westerman SOA Today: Introduction 1o Service-Oriented Architecture,/ DM Review Online, 2004 http://www,dmrevievv',com/editorial/dmreview/print action,cfm? articleld—7992

4. Eric Pulier, Hugh Taylor Understanding enterprise SOA, -Greenwich,: Manning Publications Co, 2006, - 242c.

5. Ворожцова T.H, Скрипкин С.К, Черноусов А.В, GRID-проекты: обзор состояния и перспективы I Под ред. Массель ЛВ, - ИСЭМ СО РАН препринт № 2006. - 42с.

6. К, Channabasavaiah, К, Holey, Е.М, Tuggle, Migrating to а service-oriented architecture, IBM, 2003,

7. Ali Arsanjani Sen/ice-oriented modeling and architecture, IBM, 2004,

8. Черноусов А,В, Обеспечение безопасного доступа к WEB-приложениям,// Информационные и математические технологии в науке, технике и образовании, - 2005. -4,1, - С,126 - 130,

9. Тейт Б, Горький вкус Java: Библиотека программиста, -СП.: Питер, 2003, - 333 с,