И нформационные технологии в управлении
УДК 681.3.06
ИНТЕГРАЦИЯ И ГЛОБАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ОБРАБОТКИ ДАННЫХ
М.В. Алексеевский РОСКОСМОС, филиал ФГУП ВНИИЭМ, г. Истра
Предложен эффективный способ решения задачи глобализации и интеграции в единую информационную систему разобщенного корпоративного прикладного программного обеспечения, заключающийся в переходе к трехзвенной сетевой архитектуре доступа «Клиент ^ Провайдер ^ Сервер» с привлечением инструментальных программных средств технологии КОБРА/КОРИНФ.
ВВЕДЕНИЕ
Корпоративные структуры (предприятия) являются активными потребителями современного программного обеспечения автоматизации сбора анализа и обработки компьютерной информации. Успешная деятельность крупных корпоративных структур и вовсе невозможна без программного обеспечения, относящегося к категориям автоматизированных информационных систем планирования и управления ресурсами предприятия и систем управления взаимоотношениями предприятий со своими партнерами и заказчиками.
Важное свойство корпоративного программного обеспечения состоит в его нестационарности, т. е. в процессе эксплуатации оно часто подвергается переработке, необходимой для его адаптации к внутренним корпоративным переменам и изменениям в корпоративном окружении. Например, в случае укрупнения предприятия и добавления к нему новых территориально нелокализованных подразделений возникает задача установки соединений доступа к корпоративным данным в режиме реального времени для пользователей, выпадающих за пределы ближайшего окружения, определяющего принадлежность к локальной компьютерной пользовательской сети, в которой соединение с источником данных гарантируется прямым кабельным подключением. Решение подобной за-
дачи путем преобразования существующего корпоративного программного обеспечения к состоянию, допускающему пользовательские обращения в реальном времени к удаленному источнику данных посредством подключений к глобальным сетевым ресурсам Интернета, будем условно называть глобализацией.
Под интеграцией будем понимать преобразование технологически неоднородного программного обеспечения, производящего пользовательские данные в строго разделенных интерактивных сеансах, к состоянию, допускающему синтезированную информационную отдачу в едином пользовательском сеансе соединения со множеством возможных источников корпоративных данных.
Вопросы глобализации и интеграции корпоративного программного материала исследуются крупнейшими мировыми производителями программного обеспечения, такими, как Microsoft, IBM, Sun Microsystems, Oracle и другими в концепции программной архитектуры SOA (Service oriented architecture) [1—5], рекомендуемой консорциумом стандартизации web-технологий W3C (см. http:/www.w3c.org).
1. ГЛОБАЛИЗАЦИЯ И ИНТЕГРАЦИЯ ПО ТЕХНОЛОГИИ SOA
В концепции архитектуры SOA глобализация и интеграция корпоративного программного обеспечения может быть осуществлена путем преобра-
зования его в web-службы (сервисы). Тело web-сервиса представляет собой готовый программный модуль, загружаемый на выполнение и возвращающий полезные данные в ответ на пользовательский запрос через установленное HTTP соединение [6]. Полученные при этом данные моделируются в соответствии с запросом и XML инструкциями и укладываются в web-контейнер для передачи на сторону клиента, в общем случае через Интернет, для анализа и обработки в окне стандартного web-браузера. Тело web-сервиса обеспечивается специальным файлом WSD (Web Service Definition), составленным на XML подобном языке WSDL (Web Service Description Language) и содержащим необходимую информацию по конечному развертыванию пользовательского интерфейса для доступа к удаленным сервисным процедурам [1—5].
Итак, если исходить из того, что корпоративное программное обеспечение является множеством готовых программных модулей, способных производить полезные данные в режиме выполнения, то каждый такой модуль может быть преобразован в web-сервис с гарантированным для него файлом WSD, независимо от того, какими инструментальными программными средствами он был получен. Следовательно, в соответствии с концепцией SOA, можно избежать необходимости полной переработки неоднородного семейства корпоративных программ в целях обеспечить к нему широкий пользовательский доступ в масштабе Интернета и обобщенную, интегрированную функциональность.
В рамках концепции SOA глобализация и интеграция достигаются встраиванием в зону звена провайдера трехзвенной глобальной сетевой архитектуры доступа (Клиент ^ Провайдер ^ Сервер) готовых программных модулей, с заданной функциональностью. Проблема решается путем размещения готового программного материала в контейнерах сервера приложений, установленных на провайдере, с подключением контейнеров присоединенных внешних модулей режима гипертекстовой обработки данных перед их перемещением на сторону клиента. Целесообразность такого подхода обосновывается открывающейся возможностью повторного использования готового программного кода в зарезервированных позициях адекватного проблеме технологического шаблона.
Общая схема реализации условий глобализации и интеграции прикладного корпоративного программного обеспечения, согласно концепции SOA, показана на рис. 1. Программные модули, определяющие проектную функциональность и установленные на провайдере, представляют готовую часть информационной системы и обеспечивают производство полезных данных путем соединения со звеном сервера трехзвенной архитектуры дос-
Рис. 1. Глобализация и интеграция в концепции 8СЛ:
МПП — модуль пользовательского приложения, БД — база данных, ПД — полезные данные
тупа. Гипертекстовая обработка данных (XML, HTML) является предметом дополнительного программирования и преследует две цели:
• обеспечение сообщения между клиентом и провайдером по эффективному протоколу HTTP передачи данных в масштабе Интернета;
• обеспечение при помощи стандартных инструментальных программных средств — web-браузеров — представления, анализа и обработки полезных данных.
Однако вполне очевидна неэкономичность такого решения проблем глобализации и интеграции, определяющего высокие темпы расходования оперативных ресурсов провайдера. Действительно, процедурные коды, интегрируемые в зону провайдера, выполняют подключения к базам данных, пользовательские запросы по выделению и моделированию данных в режиме параллельной обработки клиентских обращений, непрогнозируемая частота которых может стать причиной чрезмерности запрашиваемых провайдером ресурсов. В концепции SOA никакие меры по сдерживанию темпов расходования провайдером системных ресурсов не предусматриваются.
Встраиваемые модули воспринимаются в общем смысле готовности к загрузке и выполнению и обеспечиваются экспресс-механизмом реализации такой готовности в ответ на пользовательские обращения. Повышение экономичности режима выполнения параллельных пользовательских транзакций путем переработки процедурного кода может быть ощутимым разве что благодаря сужению суммарной функциональности интегрированных программных модулей, а привлекательность SOA-технологии при этом заметно снизится, ибо процедурное (алгоритмическое) программирование весьма трудоемко и требует подробного тестирования измененного кода, включая компиляцию и компоновку.
Следовательно, тактика встраивания набора готового процедурного кода в рамки одной компью-
терной операционной системы для выполнения в режиме параллельных пользовательских транзакций не вполне оправдана. Очевидно, что при таком подходе, из-за нехватки ресурсов, допустимая интенсивность клиентских обращений к провайдеру может оказаться недостаточной для удовлетворения корпоративных потребностей в информационном обеспечении.
2. ГЛОБАЛИЗАЦИЯ И ИНТЕГРАЦИЯ ПО ТЕХНОЛОГИИ КОБРА/КОРИНФ
При самых общих предположениях о составе корпоративного программного обеспечения рассматриваемого как произвольный набор приготовленных к загрузке и выполнению программных модулей, с заданной функциональностью по производству полезных данных, технология SOA решает вопрос о его глобализации и интеграции однозначно и безальтернативно. Однако, как показано в § 1, такое решение может оказаться неэффективным в силу того, что отведенные провайдеру ресурсы могут быть исчерпаны задолго до достижения наперед планируемой интенсивности клиентских обращений. В концепции, основу которой составляет технология КОБРА/КОРИНФ [7], глобализация и интеграция корпоративного программного обеспечения решается при дополнительном предположении о структуре модулей из обрабатываемого состава.
Предположение состоит в том, что модули, подлежащие глобализации и интеграции, являются приложениями, использующими соединения с базами данных при помощи стандартных SQL-запросов и инструкций. Исходя из мирового опыта автоматизированного компьютерного информационного строительства, можно утверждать, что работа подавляющего большинства программ управления корпоративными данными основана на взаимодействии с системами управления и обработки сетевых сообщений, удовлетворяющих стандарту SQL [8]. Это подтверждается тем, что первый стандарт языка SQL был принят ANSI (Американским национальным институтом стандартизации) в 1986 г. и ISO (Международной организацией по стандартизации) в 1987 г., а ведущими продуктами самых крупных мировых производителей программного обеспечения — IBM, Microsoft, Oracle — уже много лет являются системы управления базами данных (DB2, MS SQL, ORACLE), работа которых построена на обработке и выполнении SQL-инструкций. Итак, суть сделанного предположения состоит в том, что если не принимать во внимание программную реализацию графического пользовательского интерфейса, то полезная функциональность корпоративных информационных проектов
Рис. 2. Глобализация и интеграция в концепции КОБРА/КОРИНФ:
МПП — модуль пользовательского приложения, ПРМД — проектные метаданные, БД — база данных, ПД — полезные данные
обеспечивается в основном путем выполнения встроенных в процедурный код SQL-запросов и инструкций по обработке данных. Следовательно, не умаляя общности постановки проблемы предположением о том, что можно пренебречь программным обеспечением, не поддерживающим стандарт SQL, представим решение задачи глобализации и интеграции, основанное на использовании технологии непроцедурного программирования КОБРА/КОРИНФ [7].
Общая схема решения поставленной задачи приведена на рис. 2. Введем в рассмотрение набор прикладных программных модулей, каждый из которых в режиме открытого сеанса соединения с источником корпоративных данных в ответ на пользовательский ввод генерирует SQL-сообщения с инструкциями по манипулированию информационными объектами. Каждое встроенное SQL-обращение, в общем случае параметризованное и готовое к выполнению при условии замещения параметров фактическими значениями, может быть приведено к одному из трех видов (фильтры, консоли и отчеты) программируемых объектов языка КОРИНФ и включено в состав проектного дерева [7]. Путем несложного перевода в объекты языка КОРИНФ всех встроенных в преобразуемый программный модуль SQL-обращений и объединением их в общее проектное дерево получим в итоге конвертированный проект КОРИНФ, который с большой точностью воспроизводит функциональность отправного программного модуля. Поступая подобным образом со всеми модулями преобразуемого семейства, получим в результате семейство проектов КОРИНФ, которое в полной мере
способно обеспечить востребованную проектную функциональность. Для конвертированного семейства проектов КОРИНФ адекватных по функциональности исходному семейству программных модулей вопрос о глобализации и интеграции решается автоматически.
Обладая свойством мобильности [7], проекты КОРИНФ могут запоминаться и сохраняться в базе данных сервера, перемещаться в ответ на пользовательский запрос через Интернет и загружаться в браузер КОБРА клиента на выполнение. Следовательно, свойство мобильности, обеспечивая автоматическую загрузку проекта через Интернет на компьютер клиента, создает там же условия для компактного и монопольного режима выполнения проекта, освобождая провайдер от необходимости отрабатывать проектную функциональность в режиме параллельных пользовательских транзакций, как это происходит при использовании архитектуры SOA (см. рис. 1). Провайдер (см. рис. 2) эксплуатируется в режиме простого шлюзового приложения — брокера [7] — единого для проектов КОРИНФ вообще, выполняющего постоянные диспетчерские функции по управлению соединениями между клиентом и сервером и поэтому расходующего предельно малое количество компьютерных ресурсов.
Таким образом, вопрос глобализации и интеграции автоматически решается установкой метаданных конвертированного семейства проектов КОРИНФ в зоне сервера (см. рис. 2) (вместе с полезными данными), которые с помощью браузера КОБРА сразу становятся доступными каждому удаленному в масштабе Интернета привилегированному пользователю. Метаданные проекта, образуя набор программируемых текстовых модулей и управляющих текстовых файлов, как и полезные данные, загружаются на сторону клиента с помощью SQL-запроса, формируемого браузером КОБРА в ответ на выделение пользователем проекта из списка ему доступных в соответствии с заявленными привилегиями. После завершения загрузки метаданные проекта представляются в браузере КОБРА в виде проектного дерева. Выделение узла дерева (мышью или с клавиатуры) приводит соответствующий ему проектный модуль в состояние активности, обеспечивая подготовку SQL-запросов и инструкций и передачу их на сервер для согласованного чтения и обработки данных. В случае возврата данных полученный набор, без использования громоздкого XML моделирования, преобразуется в обычную строку с разделителями по выделению табличных ячеек, передается клиенту по протоколу HTTP [6] и восстанавливается в режиме электронной таблицы для анализа и обработки.
Если установкой метаданных конвертированного семейства проектов КОРИНФ в зоне сервера вопрос глобализации решается полностью, то вопрос интеграции можно считать решенным в первом приближении. Действительно, благодаря структурной однородности проектов КОРИНФ удаленный пользователь, при наличии у него достаточных привилегий, по собственному выбору загружает доступные ему проекты в браузер КОБРА с той же легкостью, с какой web-страница загружается пользователем в стандартный web-браузер. Следовательно, в браузере КОБРА стягивается в единый список разобщенное прежде семейство корпоративных программ, конвертированное в однородное семейство проектов КОРИНФ, представляемых в браузере многоуровневыми древовидными структурами модулей программируемых объектов — консолей, фильтров и отчетов.
Возможно, что первичное распределение модулей по проектам будет неоптимальным по информационной отдаче. Например, некоторый блок корпоративных данных, обеспечиваемый модулями одного из проектов семейства, может быть востребован в контексте другого проекта того же семейства, в общем случае с соблюдением отношений ссылочной целостности. Непроцедурное программирование на языке КОРИНФ, которое существенно проще процедурного (алгоритмического), позволяя полностью автоматизировать процесс составления разработчиком программных кодов [7], обеспечивает также возможность быстрого перераспределения модулей между проектами. Перераспределение может быть обеспечено как путем исключения модулей из одного проекта и перемещения их в другой, так и простым дублированием в разных проектах одной и той же группы востребованных модулей.
Следуя путем целенаправленного вторичного распределения модулей, конвертированное семейство проектов КОРИНФ, благодаря своим прогрессивным эксплуатационным свойствам, может полностью удовлетворить требованию интеграции корпоративного программного обеспечения. Следует также принять во внимание, что браузер КОБРА автоматически управляет ресурсами загруженного на выполнение проекта, а сам проект в объеме (по числу и составу модулей) практически неограничен, поскольку оперативные компьютерные ресурсы расходуются только на обслуживание активных модулей проекта.
Полное описание элементов языка программирования КОРИНФ и инструментальных программных средств разработки и эксплуатации проектов на этом языке содержится в монографии [7].
ЗАКЛЮЧЕНИЕ
Обобщая сделанные выводы, выделим два основных показателя эффективности способов глобализации и интеграции корпоративного программного обеспечения. Этими показателями являются:
• производительность способа глобализации и интеграции корпоративного программного обеспечения;
• производительность конечного продукта в режиме его эксплуатации в зависимости от способа его получения путем глобализации и интеграции.
Получение конечного результата глобализации и интеграции семейства программ, производящих полезные данные для корпоративных клиентов, при проведении мероприятий согласно архитектуре SOA, требует процедурного (алгоритмического) программирования пользовательского интерфейса. Притом, что такое программирование наиболее эффективно и обеспечено средствами автоматизации либо для платформы J2EE (servlets, JSP) [1—3], либо для .NET (ASP.NET) [4, 5] в сочетании с XML, следует признать вхождение в него значительной доли трудоемкого ручного введения программных кодов. Напротив, конечный результат глобализации и интеграции, при использовании технологии КОБРА/КОРИНФ, достигается полностью автоматизированным составлением непроцедурных кодов при помощи рассмотренного в работе [5] дизайнера, с учетом того, что в распоряжении разработчика имеются готовые SQL-запросы и инструкции, извлеченные из отправных программных модулей. Вполне очевидно, что производительность непроцедурного программирования существенно выше процедурного, отягченного необходимостью слежения за правильным выделением и освобождением системных ресурсов, компиляции, компоновки и инсталляции в систему перед вводом в эксплуатацию результирующего кода. Впрочем, управление системными ресурсами для платформ J2EE и .NET выполняется автомати-
чески с помощью менеджеров сопровождения режима выполнения JVM [1—3] или CLR [4, 5], что, однако, снижает производительность информационной системы в целом.
Производительность конечного продукта глобализации и интеграции в архитектуре SOA терпит большие потери в силу того, что эксплуатация интегрированного семейства проектов реализуется в зоне провайдера в режиме параллельных пользовательских транзакций. Полный объем проектных вычислений в рамках одной транзакции может существенно ограничить допустимую интенсивность пользовательских обращений к провайдеру и удерживать её на уровне ниже запланированного. Напротив, в условиях применения технологии КОБРА/КОРИНФ, зона провайдера полностью разгружена от проектной функциональности и минимизирована по уровню потребления компьютерных ресурсов, чем обеспечивается оптимальная производительность конечного продукта в режиме эксплуатации.
ЛИТЕРАТУРА
1. Фанг Дж. Введение в IBM Rational Application Developer (+ CD-ROM). - М.: Кудиц-образ, 2006. - 592 с.
2. Ньюкомер Э. Веб-сервисы. Для профессионалов. — СПб.: Питер, 2003. — 256 с.
3. Хабибуллин И.Ш. Разработка web-служб средствами Java. — СПб.: БХВ-Петербург, 2003. — 400 с.
4. Шорт С. Разработка XML web-сервисов средствами Microsoft. NET (+ CD-ROM). — СПб.: БХВ-Петербург, 2003. — 480 с.
5. Шапошников И.В. Web-сервисы Microsoft .NET. — СПб.: БХВ-Петербург, 2002. — 334 с.
6. Семенов Ю.А. Протоколы Интернет. — М.: Горячая линия — Телеком, 2005. — 1100 с.
7. Алексеевский М.В. Технология программирования КОБРА/КОРИНФ и корпоративная интернет-информатика. — М.: Изд-во МЭИ, 2006. - 169 с.
8. Грабер М. SQL. Описание SQL92, SQL99 и SQLJ. — М.: Лори, 2003. — 752 с.
® (495) 994-54-88, e-mail: alemivabol@istranet.ru
Статья представлена к публикации членом редколлегии
В.Л.Эпштейном. □
Не заІЇцуьіїе подписаться!
Подписку на журнал «Проблемы управления» можно оформить с любого месяца в любом почтовом отделении (подписной индексы 80508 и 81708 в каталоге Роспечати или 38006 в объединенном каталоге «Пресса России»), а также через редакцию. Отдельные номера редакция высылает по первому же требованию.
Подписка через редакцию — выгодное предложение для Вас! Подписаться через редакцию можно с любого месяца, здесь можно приобрести любой номер журнала за прошедшие годы. Позвоните в редакцию по тел. (495) 330-92-00 или пришлите Ваш адрес по электронной почте pu@ipu.ru — и подписка будет оформлена за один рабочий день. Почтовые расходы по пересылке журнала редакция берет на себя.
Оформить подписку можно и через группу компаний «Урал-Пресс» (см. http://www.ural-press.ru/) и агентство «Коммерсант-Курьер» (см. www.komcur.ru), которые проводят подписку на наш журнал во многих городах России.
q