Научная статья на тему 'Реализация Web-сервиса для решения задач нелинейной оптимизации на основе унаследованного программного комплекса'

Реализация Web-сервиса для решения задач нелинейной оптимизации на основе унаследованного программного комплекса Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
63
15
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Массель Л.В., Черноусов А.В., Фартышев Д.А., Массель А.Г.

Бұл мақалада дәстүрлі Web-cepвucmi бағдарламаны таратуда қамтамасыз ету жолдары қарастырылады

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Массель Л.В., Черноусов А.В., Фартышев Д.А., Массель А.Г.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The approach to realization a Web-service on the base of inherited software support is considered in this article. The author’s technique is the base of its realization.

Текст научной работы на тему «Реализация Web-сервиса для решения задач нелинейной оптимизации на основе унаследованного программного комплекса»

УДК 004.738.5:621.31

РЕАЛИЗАЦИЯ WEB-CEPBHCA ДЛЯ РЕШЕНИЯ ЗАДАЧ НЕЛИНЕЙНОЙ ОПТИМИЗАЦИИ НА ОСНОВЕ УНАСЛЕДОВАННОГО ПРОГРАММНОГО КОМПЛЕКСА

Л.В. Массель, A.B. Черноусое, Д.А. Фартышев, А.Г. Массель

Институт систем энергетики им. Л.А. Мелентьева СО РАН, Иркутск

Введшие. Коллективом лаборатории информационных технологий Института систем эшргетики им. Л.А. Мелентьева СО РАН на протяжшии последних пяти лет ведутся работы по созданию ИТ-инфраструктуры научных исследований на примере системных исследований энергетики [1-3]. Под ИТ-инфраструктурой понимается совокупность: технических и программных средств, телекоммуникаций и информационной базы научных исследований; технологий их разработки и использования; стандартов, как внутренних, так и внешних, для разработки информационных и программных продуктов в области исследований в энергетике, обмена ими и их представления на информационный рынок. В составе ИТ-инфраструктуры выделяются информационная, вычислительная и телекоммуникационная инфраструктуры. Базовой для реализации выбрана концепция сервис-ориентированной архитектуры (Servise-Oriented Architecture - SO А), согласно которой на основе использ>емых для проведения системных исследований в энергетике программных комплексов (ПК) реализуются Web-сервисы, доступные через Internet, интегрируемые в рамках вычислительной инфраструктуры [4-5].

В статье рассматривается одна из реализаций: разработка Web-сервиса для решали задач нелинейной оптимизации, вычислительным ядром которого является программный комплекс (ПК), разработанный сотрудниками ИСЭМ СО РАН О.В. Хамисовым и И.В. Мокрым. Существующий ПК относился к категории унаследованного программного обеспечшия, в связи с тем, что он ж разрабатывался в соответствии с требованиями совремшных открытых систем, и требовал адаптации для использования в совремошсй ИТ-инфраструктуре. Такая адаптация была выполнгна авторами статьи'. Залогом успеха выполненной адаптации явилась доступность авторов - разработчиков ПК, а также использование ими достаточно совремашого языка программирования.

Этапы разработки Web-сервера. Для создания Web-сервиса на базе унаследованного программного обеспечения одним из авторов (A.B. Черноусовым) предложена методика построения Web-сервисов для интеграции унаследованных программных комплексов в современную ИТ-инфраструктуру. Суть методики сводится к выполнению ряда комплексных этапов:

1 Реализация выполнена под руководством Л.В. Массель Черноусовым A.B., Фартышевым ДА., Масселем А.Г., во взаимодействии с И В Мокрым.

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

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

3. Приведение форматов данных к современному виду, основанному на XML спецификации, и оптимизация кода.

4. Выделение вычислительного ядра комплекса. Отделение графического (псевдографического) пользовательского интерфейса (GUI) и выделение вычислительного ядра комплекса - один из самых трудоемких этапов данной методики. Трудность заключается в том, что часто GUI и вычислительное ядро программного комплекса «переплетены» друг с другом. Результатом выполнения этапа является консольное приложение, где все use cases (случаи использования) реализуются посредством командной строки (в идеале - с помощью ключей при запуске приложения).

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

6. Разработка Web-cepeuca. Результатом выполнения этапа является приложение, работающее в рамках Application Server и обеспечивающее обработку запросов по протоколу SOAP к middleware и его ответов.

7. Разработка Web-приложения. Результатом является приложение, работающее в рамках Web-контейнера, способное работать с Web-сервисом по протоколу SOAP и обеспечивающее интерпретацию и отображение результатов вычислили.

8. Внедрение. Заключительный этап, в рамках которого выполняется полное тестирование распределенного программного комплекса.

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

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

В связи с ориентацией на примежние SOA возникла проблема интеграции по данным - трудности при обмав данными с другими программами, связанные с примак-нием различных кодировок, типов данных и различных форматов их хранения. Решить эту проблему, по мнению авторов, можно благодаря приведению входных/выходных данных к единому стандарту XML. Единый стандарт бизнес-документов - очень важ-ный аспект интеграции, так как, преобразовав документ в представление XML, можно 1 Рефакгоринг представляет собой процесс такого изменения программной системы, при котором не меняется внешнее поведение кода, но улучшается его внутренняя структура [6].

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

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

На основе спецификации XML, разработанной консорциумом W3 [7], авторами был предложен формат XML-файла для адаптируемого ПК, пример которого показан ниже:

<?xml version="1.0" encoding="UTF8"?> <program name="NotLineOpt"/> <data>

<task id="l">

<name>Tecr собственных значений</пате>

<var пате="имя">значение</уаг>

<rows> 10</rows>

<cols>10</cols>

<row id="l">

<col id="l">l/l</col>

<col id="2">l/2</col>

</row>

<row id="2">

<col id="l">l/2</coI>

<col id="2">l/3</col>

</row>

</task>

</data>

Для разбора XML-документа, с целью извлечашя из шш »обходимых исходных данных для решения задач нелинейной оптимизации, авторами было принято решение использовать методологию SAX (Simplified API for XML — упрощошый интерфейс прикладного программирования для XML) [8]. Основным критерием выбора данной методологии является сравнительно малый объем загружаемой оперативней памяти при разборе докумаггов Это огромное преимущество при необходимости обработки докумаггов большого объема. В общем случае SAX также значительно быстрее, чем его альтернатива, DOM [9].

При работе над проектом был реализован модуль для разбора XML-документа на языке Object Pascal, который был интегрирован в вычислительное ядро программного комплекса.

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

В процессе реализации проекта пришлось полностью отказаться от GUI по следующим причинам: во-первых, вся интерпретация результатов происходит в Web-приложв-

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

В консольном приложшии доступ к функциям реализован с помощью ключей, которые задаются при запуске приложения. В процессе создания приложения было создано два типа ключей: «обязательные» - для функций, присутствующих гепосредствешо в GUI и «дополнительные» - созданные для удобства использования программы. Описание ключей приведшо ниже в таблице 1 (обязательные ключи выделвш жирным шрифтом).

Таблица 1. Ключи консольного приложения

№п/п Ключ Описание

1 -f Задает путь до файла с данными

2 -о Задает путь до файла с выходными данными

3 -t Вызывает функцию гасрация матрицы с задаваемыми собственными значениями

4 -I Вызывает функцию решение задачи ЯП F(X) = СТХ -> min Ах üb Нх- р а <х<, ß

5 -U Вызывает функцию решоте системы лижйных уравнэшй А =Ь

6 -к Вызывает функцию нахождение корней системы квадратичных уравнший XTQkX + CTkX + Rk =0 к = \...п, где п - число уравнений и «известных X - вектор неизвестных

7 -g Вызывает функцию гаерации матрицы Гильберта

8 -V Выводится версия программы

9 -h Выводится справка с описанием использ>емых ключей

Консольное приложение, благодаря стандартизации форматов данных, получает и генерирует данные в формате XML.

Создание промежуточного ПО. До недавнего времени общепринятым являлся подход к интеграции приложений, называемый «point-to-point». Данный подход предполагает интеграцию приложший друг с другом напрямую.

Недостатками данного подхода являются следующие:

• «жесткая» схема взаимодействия приложений между собой ш является гибким решением и не позволяет быстро измять существующие процессы;

• изменения в одном месте могут непредсказуемо повлиять на остальные элементы ИТ-инфраструктуры;

• сложность поддержки;

• отсутствие единого протокола взаимодействия между комподаггами ИТ-инфраструк-туры и, как сждсгвие, отсутствие стандарта на разработку интеграционного процесса.

Все вышесказанное приводит к общей низксй надежности интеграционного решшия, реализованного с использованием «point-to-point» подхода к интеграции приложений.

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

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

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

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

Следуя описанной выше методике построения Web-сервисов и опираясь на рекомендуемую в [5] архитектуру распределенного программного комплекса, разработчиками была выполнена реализация Web-сервиса. Для более четкого понимания процессов, протекающих в рассматриваемом Web-сервисе, предлагается диаграмма последовательности3", описывающая идеальный сцшарий (рис. 1).

'" Диаграмма последовательности описывает взаимодействие групп объектов в различных условиях их поведения в рамках одного прецедента (use case) [9].

МОДЕЛЬ

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

вид

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

Т

КОНТРОЛЛЕР

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

Рисунок 1 - Диаграмма последовательности идеального прецедента «Решение задачи»

На рисунке 1 изображены четыре основных класса и их взаимодействие в рамках реализации идеального прецедента «Решение задачи». Базовый класс Middle WareGate-way производит подготовку данных для решения задачи и передает управлмие другому базовому классу Middle WareNotLine, после чего класс MiddleWareNotLine готовит ответ посредством промежуточного ПО (ж изображенного на диаграмме), реализованного на предыдущем этапе. Подготовленные данные передаются инициатору прецедогта.

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

Создание Web-приложшия. Следует подчеркнуть, что вышеописанный Web-сервис только выполняет вычисления, а доступ к нему осуществляется через Web-браузер.

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

Так как Web-браузер выполняет все действия по отображению результатов, то работа Web-приложения заключается в генерации кода страниц. Для этого авторы использовали паттерн «Модель - Вид - Контроллер» (MVC), рисунок 2. Паттерн MVC означает четкое отделение пользовательского интерфейса (представления - вида) от бизнес-логики (модели). Контроллер управляет вводом и выводом. К общеизвестным преимуществам этой модели относятся простота сопровождаю«, улучшенная гибкость и более понятный код [10].

Misan

—¿XULFH еаЛ-fm F J»)

UnkToFU OackXU.

________и

1п»ТоП»5»» 'jj

13

got«*TMIkxM»«n

с----------

i«i<mmw»

iAaín*«w>'|Mr<l,l< : LM>

го

íTZ

IMXMAi (XMLfár ñe»

......¡—-.......-5

ц.-------------------------t.-------------

«MXULFW gwiMum L<*I ;

(шыхми*

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Литература

1.Массель JI.B., Подкаменный Д.В. Создание распределенной вычислительной инфраструктуры исследований в энергетике// Вычислительные технологии, т.8, ч. II,

2003.-С. 214-218.

2.Массель JI.B. Методы и технологии создания ИТ-инфраструктуры научных исследований// Информационные и математические технологии в науке, технике и образовании. - 2005. - ч. 1. - С.57 - 64.

3.Массель JI.B. ИТ-инфраструктура научных исследований и открытая образовательная среда// Вестник ИрГТУ,- 2005,- №4 - С. 9 -15.

4. Массель JI.B. Сервис-ориентированная архитектура (SOA) как основа создания ИТ-инфраструктуры системных исследований в энергетике // Винеровские чтения: Материалы региональной научно-практической конференции, 2005. - Иркутск: ИрГТУ. - С. 26-32.

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

6. Фаулер М. Рефакторинг: улучшение существующего кода. - СПб: Символ-Плюс,

2004. - 432с.

7. http://www.w3.org/TR/2004/REC-xml-20040204

8. http://saxproject.org

9. http://www.w3.org/DOM

10. Фаулер М. UML. Основы, 3-е издание. - СПб: Символ-Плюс, 2004. - 192 с.

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

Тушндеме

Бул мацалада дэстурлi Web-cepeucmi багадарламаны таратуда крмтамасыз ету жолдары кррастырылады.

Resume

The approach to realization a Web-service on the base of inherited software support is considered in this article. The author's technique is the base of its realization.

i Надоели баннеры? Вы всегда можете отключить рекламу.