А.А. Вичугова,
ассист., anya@aics.ru,
В.Н. Вичугов,
доц., к.т.н., vlad@aics.ru,
С.Г. Цапко,
доц., к.т.н., serg@aics.ru,
Е.А. Дмитриева,
доц., к.т.н., dmitrieva@aics.ru,
ФГБОУ ВПО НИ ТПУ, г. Томск
Рассмотрено понятие единого информационного пространства с точки зрения
проблем интеграции приложений. Выполнен анализ методов и средств интеграции
информационных систем. Описаны некоторые особенности технической реализации
взаимодействия программных средств. Предложен способ интеграции информационных
систем на основе API- и COM-технологий, а также унифицированных форматов
представления данных.
The paper considers the term of the common
information environment through the problem of applications integration.
Methods for integration of information systems are analyzed. Some features of
technical implementation of interaction of software tools are described. An
approach to integrate information systems based on the API-and COM-technologies
and standardized reporting formats is proposed.
Введение
Одним из наиболее ярко выраженных направлений развития современных
корпоративных информационных систем (ИС) является тенденция к их интеграции
между собой путем формирования единого информационного пространства (ЕИП)
предприятия (рис. 1).
рис. 1. Различные
категории ИС как компоненты ЕИП предприятия
С точки зрения практической значимости, ЕИП предназначено для сохранения
целостности данных и возможности их использования во множестве информационных
систем различными пользователями согласно их профилю деятельности [1].
Использование ЕИП позволяет внедрить процессный подход к управлению, который
направлен на устранение фрагментарности в работе, в том числе с помощью сокращения
организационных и информационных разрывов. Непосредственно сама идея
организации ЕИП исследуется на протяжении практически 10 лет российскими и
зарубежными учеными, однако основная сложность состоит не только в выборе и
разработке технологий интеграции ИС, а заключается в построении целостного
представления данных. Таким образом, научную новизну направлений исследований,
связанных с ЕИП, главным образом, составляют методы структуризации информации,
получаемой из различных ИС. Для разработки этой
концептуальной основы ЕИП используют положения теории множеств, графов,
управления проектами и т.д.
Практическая реализация ЕИП основана на интеграции информационных систем
между собой с целью синхронизации данных, устранения расхождений и дублирования
информации, поскольку в настоящее время на любом предприятии существует набор
программно-информационных ресурсов, объединить которые в единую среду с
сохранением однозначности представления данных является достаточно сложной
задачей. Для решения данной проблемы следует проанализировать существующие
методы и средства интеграции ИС.
Методы
интеграции ИС в рамках ЕИП
Согласно
[2], ключевые различия ИС определяются тремя их архитектурными компонентами:
·
схема или модель данных, которая лежит в их основе;
·
технологический стек, на котором реализовано
приложение (базовое программное обеспечение — среда времени исполнения, т.е.
СУБД, сервер приложений и т.д.);
·
модель бизнес-процессов. Различие в моделях
бизнес-процессов и в механизмах их реализации является главным препятствием для
того, чтобы приложения стали частью единой области деятельности.
·
Кроме концептуальной стороны вопроса о сопряжении
ИС, следует также определить технические средства для решения данной задачи. На
основании анализа работ [2, 3, 4], можно выделить несколько наиболее популярных
на сегодня методов интеграции приложений:
·
обмен файлами, в которые помещаются общие данные;
·
общая база данных (БД), в которой сохраняется общая
информация;
·
удалённый вызов процедур в рамках систем обмена
сообщениями для выполнения действий или обмена данными.
Выбор определенного метода и технологии из данного списка зависит от
специфики связываемых ИС. Интеграция ИС с помощью
методов «общей базы данных» и «обмена файлами» является достаточно просто
технически реализуемой. Однако недостаток данных решений заключается в том, что
осуществляется лишь фактический перенос данных из одной ИС в другой и не
поддерживается процессная связь между функциями разных приложений. Это
обусловлена различным назначением сопрягаемых систем: например, в случае
интеграции системы автоматического проектирования (САПР) и системы управления
ресурсами предприятия.
Таким образом, можно сделать вывод, что обмен файлами и общая БД также
не уместны из-за различных схем данных и модели бизнес-процессов сопрягаемых
ИС. Рассматривая задачи интеграции различных ИС, связанные с импортом/экспортом
информации, а также передачей параметров из одной системы в другую, можно
сделать вывод, что вышеуказанные действия фактически представляют собой вызов
интерфейсных функций сопрягаемых программных компонент ЕИП.
Под термином «удаленный вызов процедур» понимают класс технологий,
которые позволяют компьютерным программам
вызывать функции или процедуры в другом адресном
пространстве. Поэтому данный метод целесообразно использовать
для интеграции различных ИС.
Согласно [3, 4], наибольшая эффективность использования метода удалённого
вызова процедур достигается в тех приложениях, в которых существует
интерактивная связь между удалёнными компонентами с небольшим временем ответов
и относительно малым количеством передаваемых данных.
Распределённые системы доступа к объектам и удалённого вызова процедур
называют системами обмена сообщениями. Сообщение реализуется путём посылки
пакетов информации получателю (приложению, процессу, потоку, сокету и т. д.). При этом передаваемой
информацией могут являться сигналы, данные, а также удаленные вызовы процедур.
В настоящее время выделяют следующие наиболее распространенные
технологии реализации метода удаленного вызова процедур в рамках систем обмена
сообщениями:
·
компонентная объектная модель Component
Object Model (COM),
разработанная корпорацией Microsoft;
·
общая архитектура брокеров объектных запросов Common Object Request Broker Architecture (CORBA);
·
веб-сервисы, в том
числе, ESB и SOAP.
Выбор конкретной архитектуры зависит от специфики
связываемых ИС, например, в случае веб-приложений
наиболее эффективным будет последний вариант. Однако
если сопрягаемые ИС функционируют как настольные приложения, что часто
распространено среди корпоративных информационных систем, наиболее уместным
будет их интеграция на основе взаимодействующих компонент, каждая из которых
может использоваться во многих ИС одновременно. Поскольку большинство ИС
типового российского предприятия, которые необходимо интегрировать между собой
в рамках ЕИП, функционируют на базе операционной системы (ОС) MS Windows, для их программного сопряжения целесообразно
использовать методологию и средства COM-технологии. Данный вывод обусловлен
тем, что технология CORBA, главным образом, предназначена для сопряжения ИС в
гетерогенных средах, когда сопрягаемые приложения функционируют на базе
различных ОС (Linux, Windows,
Mac OS и т.д.)
Интеграция
ИС в рамках ЕИП средствами COM-технологии
Главное достоинство COM – это независимость от языка программирования и
исполняющей среды. Фактически, COM-объекты – это набор готовых классов,
процедур, функций, структур и констант, предоставляемых приложением для
использования во внешних программных продуктах. Такое определение соответствует
термину интерфейса программирования приложений, называемого API (от англ. Application Programming Interface) [5].
Представить API приложения в виде набора COM-объектов позволяют
специальные инструменты: встроенные внутрь приложения редакторы программного
кода или внешние среды разработки IDE (от англ. Integrated
Development Environment).
Кроме того, что COM-объект должен быть помещен в файл одного из специальных
форматов (DLL, EXE, OCX), он должен быть особым образом зарегистрирован на
компьютере, где его предполагается использовать. Для ОС Windows
регистрация COM-объекта заключается в его занесении в системный реестр,
иерархическую древовидную базу данных параметров и настроек [6]. Некоторые
приложения автоматически регистрируют свои API в виде COM-объектов в системном
реестре. При отсутствии автоматической регистрации COM-объектов приложения ее
можно выполнить самостоятельно с помощью внутренних или внешних IDE. API
системы Microsoft Windows
предоставляет базовые функции, позволяющие использовать COM-объекты. Также
возможно выполнять регистрацию COM-объектов с помощью системных утилит,
например, таких, как regasm.exe, которая является частью программной платформы Microsoft .Net.
По умолчанию файл, в который помещен COM-объект, регистрируется как внутрипроцессный сервер. Это приводит к тому, что файл
будет загружаться внутрь каждого процесса, который попытается создать
находящийся в нем объект. Чтобы с объектами из этого файла можно было работать
по сети, необходимо зарегистрировать его в мониторе транзакций MTS. Таким
образом, с помощью обращений к функциям ИС, зарегистрированным в виде COM-объектов,
может быть реализована интеграция приложений в рамках ОС Windows.
Однако зачастую действия по вызову функций сопрягаемых приложений
являются вспомогательными в решении проблем интеграции ИС и не обеспечивают
одну из ее главных задач: передачу данных из одной системы в другую, согласно
их функциональному назначению. Для этого необходимо передать в COM-объект
информацию в виде массива данных унифицированного формата. В таком случае
возникает задача выбора универсального формата представления данных, независящего
от особенностей конкретных языков программирования.
В настоящее время универсальными форматами данных принято считать языки
разметки, например, XML. Но для использования преимуществ объектно-компонентной
технологии COM рационально выбрать формат разметки, поддерживающий
объектно-ориентированный подход. Одним из таких форматов является JSON (JavaScript Object Notation), который основан на подмножестве языка
программирования JavaScript, но считается языконезависимым и может использоваться практически с любым
языком программирования.
Для многих языков существуют функции для создания и
обработки данных в формате JSON, который представляет собой правила для
описания универсальных структур данных, называемых в разных языках программирования
по-разному (например, объект, запись, структура, словарь, хэш,
именованный список или ассоциативный массив; массив, вектор, список или
последовательность; и т.д.) с помощью простого синтаксиса разметки, подобно
XML. За счёт своей лаконичности по сравнению с XML, формат
JSON может быть более подходящим для сериализации сложных
структур.
Следовательно, JSON подходит для описания сложных структур в силу
удобочитаемости и лаконичности, а также меньшим размером файла по сравнению с
XML. Это позволяет представлять
информацию об объектах в рамках одной ИС в виде текстового файла формата JSON в
виде параметра функций COM-объектов для другой, интегрируемой с ней ИС.
Получить представление объектов файла в виде текстового структурированного
файла можно с использованием стандартных интерфейсных команд ИС: (экспорт,
сохранение и т.д.) или программным способом, документируя внутреннюю структуру
выходного файла, с помощью встроенного редактора программного кода или внешней
IDE.
Рассмотрим случай интеграции двух ИС (ИС_1 и ИС_2), при этом у одной из
систем (ИС_2) API является закрытым, т.е. требуется дополнительная регистрация
COM-объектов с описанием необходимых функций этого приложения. API другой
системы – ИС_1 – является открытым, т.е.
программное обеспечение интеграции ИС может напрямую вызывать функции ИС_1
методом удаленного вызова процедур.
Анализируя
методы и средства интеграции ИС с помощью COM-технологии, можно определить
следующие компоненты рассматриваемой системы ЕИП:
·
интегрируемые ИС (ИС_1 и ИС_2);
·
встроенные в интегрируемые ИС редакторы
программного кода или внешние IDE, которые позволят создать описание
необходимых функций ИС в виде DLL;
·
программное обеспечение, обеспечивающее вызов необходимых
COM-объектов, в которых описаны функции ИС;
·
реестр операционной системы Windows,
который является хранилищем зарегистрированных COM-объектов.
Связи между данными компонентами реализуется с помощью зависимостей их
интерфейсов API. На рисунке 2 показана UML-диаграмма компонентов,
иллюстрирующая модель интеграции ИС средствами COM-технологии. Для
представления объектов, отображающих группу данных, таких как, COM-объекты,
JSON-файлы, динамически подключаемые библиотеки DLL с содержанием необходимых функций
ИС, использованы графические сущности типа «пакет».
рис. 2. UML-диаграмма компонентов, иллюстрирующая
модель интеграции ИС средствами COM-технологии
Представленная на рисунке 2 UML-диаграмма компонентов является общей
схемой программной архитектуры ЕИП, которая включает интеграцию ИС средствами
COM-технологии. С использованием данного метода в 2012 г. с участием авторов
данной статьи было разработано программное обеспечение интеграции системы
автоматизированного проектирования электронных устройств на базе печатных плат Altium Designer R9 и системы
управления жизненным циклом продукции Enovia SmarTeam V5R19 с целью организации ЕИП проектирования
бортовой радиоэлектронной аппаратуры (РЭА) космических аппаратов.
Данная
работа выполнялась в рамках следующих научно-исследовательских и
опытно-конструкторских работ (НИР и ОКР соответственно):
·
НИР по разработке методологических принципов
построения и создания прототипа интегрированной информационной среды
проектирования и испытаний бортовой РЭА КА на базе современных технологий
поддержки и сопровождения жизненного цикла изделий (Федеральная целевая
программа);
·
ОКР по разработке ЕИП проектирования и испытаний
унифицированных электронных модулей систем управления и электропитания
космического аппарата на основе технологий управления жизненным циклом
наукоемких изделий (Постановление 218 Правительства РФ).
В настоящее время результаты вышеуказанных работ внедрены в эксплуатацию
в одном из предприятий Роскосмоса, ОАО
«Информационные спутниковые системы» (г. Железногорск,
Красноярский край). В связи с отсутствием готовых решений по интеграции
указанных ИС между собой, для оптимизации процесса проектирования с целью
сокращения временных затрат за счет организации единого структурированного
хранилища проектных данных, задача программного сопряжения Altium
Designer и Enovia SmarTeam имеет высокий уровень актуальности и практической
значимости для ОАО «Информационные спутниковые системы».
Кроме того, задача построения ЕИП с помощью интеграции ИС актуальна не
только для приборостроительных предприятий позаказного типа ракетно-космической
и авиационной промышленности, к которым, в первую очередь, относятся предприятия Роскосмоса.
Множество коммерческих организаций, специализирующихся в проектировании и
производстве высокотехнологичных изделий, также заинтересованы в наличии ЕИП
для сокращения временных и материальных затрат в ходе осуществления своей
профильной деятельности.
Описанный в статье метод интеграции ИС является, фактически,
универсальным, и может быть использован при построении ЕИП предприятия, в
котором взаимодействием с ИС осуществляется по клиент-серверной технологии с
применением локальных сетей. Обязательным условием является гомогенная среда,
например, операционная система MS Windows.
Выводы
Итак, сегодня организация ЕИП является одной из самых важных задач
любого предприятия, в развитии которого ключевую роль играют информационные
технологии. Существует множество методов и технологий интеграции информационных
систем в рамках ЕИП, выбор которых определяется спецификой сопрягаемых
приложений. В случае интеграции автономных ИС,
функционирующих на базе операционной системы MS Windows,
целесообразно использовать средства COM-технологии. Представленная модель
интеграции ИС с помощью COM-технологии может быть использована в качестве
программной архитектуры ЕИП.
1. Вичугова А. А. , Вичугов В. Н. ,
Дмитриева Е. А. , Цапко Г. П. Информационные технологии: Учебное пособие. –
Томск : Томский политехнический университет,
2011 - 84 c.
2. Ладыженский Г. Интеграция приложений такая, как она есть. URL:
http://citforum.ru/gazeta/50/ (дата
обращения: 05.05.2012)
3. В. Боркус. Методы и инструменты интеграции корпоративных
приложений. М.: RC Group, 2005. – 215 c.
4. Г. Хоп, Б.
Вульф. Шаблоны интеграции корпоративных приложений. Издательство: Вильямс,
2007. – 672 с.
5. http://ru.wikipedia.org/wiki/API
- cite_note-0.
6. http://ru.wikipedia.org/wiki/Реестр_Windows.