Большинство корпоративных информационных систем в процессе своей эксплуатации нуждаются в тех или иных структурных изменениях, диктуемых необходимостью адаптации к изменяющимся условиям и требованиям бизнеса. Зачастую новые требования могут быть удовлетворены при дополнении или замене в бизнес-процессах некоторых процедур другими. Для выполнения новых процедур могут быть приобретены или использованы уже имеющиеся на предприятии прикладные программы, однако они, как правило, предназначены для автономного применения или для исполнения в иной программно-аппартной среде. Для их совместного функционирования необходимы разработка и применение соответствующих интеграционных технологий.
Способы интеграции различают по нескольким признакам.
По степени обособленности взаимосвязей подсистем в интегрируемой системе (иначе по структуре интеграции) различают варианты "точка — точка" и "звезда" (интегрирующая среда).
В варианте "точка-точка" взаимодействие подсистем осуществляется по схеме полного графа, т.е. для каждой пары взаимодействующих подсистем создается специфическая для них интерфейсная связь, например, в виде конверторов данных с языка одной подсистемы на язык другой (такую схему применительно к сетям обычно обозначают peer-to-peer или p2p). Поскольку число таких дуплексных связей может доходить до N(N-1)/2, где N — число подсистем, то вариант "точка-точка" оказывается приемлемым только для малых N. Подключение к системе каждой новой подсистемы оказывается весьма трудоемким.
В варианте "звезда" (рис. 1) число связей уменьшается до N, интеграция осуществляется на основе общего для подсистем языка и/или программного обеспечения, являющегося промежуточной интегрирующей средой. В отличие от способа "точка-точка" теперь достаточно в каждой подсистеме иметь интерфейс только с метасредой. Интегрирующая среда характеризуется наличием центрального компонента, управляющего взаимодействием подсистем в рамках информационной системы в целом. Интегрирующая среда выполняет сценарии транзакций, функции взаимодействия приложений, протоколирование и мониторинг состояния, обмен сообщениями между подсистемами, алгоритмы маршрутизации и доставки сообщений и др.
Рис. 1.  
В зависимости от объема и глубины перестройки интегрируемой информационной системы различают интеграцию инфраструктуры, данных, приложений и процессов.
Интеграция инфраструктуры основана на изменениях и унификации базовых инфраструктурных элементов информационной системы — аппаратной платформы, операционной системы, службы каталогов, сетевых средств а и т.п. Такая интеграция требует больших затрат и фактически приводит к получению новой трудномодифицируемой системы.
Широкое применение имеет интеграция данных. Она не затрагивает основных инфраструктурных аспектов, за исключением средств хранения данных, основными целями подобной интеграции является обеспечение синтаксического, а иногда и семантического единства данных, организация поиска и доступа к данным и т.д. Этот способ сравнительно легко реализуем, однако избежать серьезных изменений в используемых приложениях не удается.
Интеграция данных характерна для традиционных систем клиент-сервер. При этом основным системообразующим фактором при построении информационной системы является единая база данных коллективного доступа. Интегрирующей средой является СУБД со стандартным интерфейсом доступа к данным. Все функции прикладной обработки размещаются в клиентских программах. Связь через единую БД имеет место и в системах с трехзвенной архитектурой, в которых имеется несколько прикладных подсистем и сервер баз данных.
Однако интеграция данных также имеет определенные ограничения по сложности интегрируемой системы и возможностям ее развития. Сложности модификаций снижаются в случаях применения распределенных БД, но появляется проблема синхронизации данных.
Иногда от интеграции данных отличают интеграцию информации EII (Enterprise information integration) в корпоративных системах, осуществляемую из многочисленных систем в унифицированное, согласованное представление и используемую для изучения и обработки данных, необходимых для отчетности и принятия решений. EII является технологией извлечения ("вытягивания") информации (pull) в отличие от проталкивания (push) при интеграции данных.
Интеграция приложений (EAI — Enterprise Application Integration) основана на использовании сервисов — общеупотребительных прикладных и системных функций, реализованных в виде серверных программ со стандартным API. В виде сервисов реализуются разнообразные функции прикладной обработки, контроля безопасности данных, файлового доступа и т.п. Интеграция приложений характеризуется не только наличием конвертации языков, но и более сложным управлением потоками данных.
Интеграция приложений возможна путем удаленного вызова процедур (рис. 2) или обмена сообщениями.
Рис. 2.  
Как и в случае интеграции данных, в технологиях EAI можно выделить варианты взаимодействия по схеме p2p и интеграционной шины.
Для варианта p2p на базе языка XML разработан специальный язык обмена сообщениями WS-CDL (Web Services Choreography Description Language). С его помощью формируются запросы и ответы взаимодействующих приложений. Поскольку вариант p2p является структурой "точка-точка", то он удобен только при малом числе связываемых приложений
Интеграционная шина (называемая также интеграционным сервером) представлет собой общую для связываемых компонентов среду передачи и обработки сообщений (рис. 1). С помощью шины осуществляется асинхронный обмен сообщениями и реализуется интеграция независимых приложений без или с минимальными доработками существующих систем. В отличие от варианта p2p, где за логику взаимодействия отвечала одна из интегрируемых систем, в данном варианте интеграцию обеспечивает интеграционная шина. Такой подход позволяет легче интегрировать новые системы, а также изменять логику интеграции, приводя ее в соответствие с бизнес-логикой процесса.
Примерами интегрирующей среды являются монитор транзакций, брокер ORB в технологии CORBA или другое программное обеспечение промежуточного слоя. Архитектура системы обычно является трехзвенной, n-звенной или компонентно-ориентированной. В интеграционном сервере возможна та или иная обработка данных, например, определение подсистемы-партнера может быть результатом анализа содержательной части сообщений.
Развитие интеграции приложений привело к появлению сервис-ориентированной архитектуры систем. Сервис-ориентированная архитектура SOA (Service Oriented Architecture) – это архитектура программной системы, обеспечивающей обнаружение и вызов сервисов с помощью не зависящего от платформы интерфейса.
Технология SOA, основанная на протоколе SOAP (Simple Object Access Protocol), — объектная технология, в которой объектами являются Web-службы (Web Services), а для представления обращений к Web-службам используется язык разметки XML. Термином "Сетевой сервис" или "Сетевая служба" в общем случае принято обозначать, во-первых, программное обеспечение, предоставляющее определенные услуги по обработке информации и/или доступу к ней и взаимодействующее с распределенными клиентскими приложениями через свой внешний интерфейс, во-вторых, собственно услуги и функции, выполняемые службой. Web-службой (Web-сервисом) называют сетевую службу (программный компонент), предоставляющую определенные услуги по обработке информации, объединяющую приложения, работающие на базе Web-технологий, использующую базовые средства Web, такие как XML и HTTP, и открытые стандарты (SOAP, WSDL и UDDI) в качестве Интернет-протоколов и взаимодействующую с распределенными клиентскими приложениями через свой внешний интерфейс
Интеграция процессов основана на организации сквозных процессов, в которых на отдельных этапах процесса задействованы те или иные приложения. Здесь не подразумевается существенное изменение отдельных приложений. При этом обработка данных на отдельных этапах может производиться в различных приложениях, а функции организации процесса и связи различных подсистем реализует специализированная подсистема. Для реализации этого способа интеграции приложений обычно применяют технологии WorkFlow.
Программное обеспечение интеграции часто объединяют под названием программ промежуточного слоя. Ведущие компании, занимающиеся корпоративными информационными системами, разрабатывают комплексные интегрирующие пакеты. К ним, в частности, относятся IBM WebSphere, Microsoft BizTalk Server, Oracle 10g, SAP Netweaver. Так, в BizTalk Server реализованы функции подготовки и транспортировки документов, документооборота.
К лингвистическому обеспечению интеграции автоматизированных систем относятся инвариантные к приложениям языки. Наиболее известными являются Express (из стандартов STEP), формат EDIFACT и язык разметки XML. Для описания бизнес-процессов разработан язык BPEL, основанный на XML. Для поддержки семантической согласованности данных используют язык описания метаданных RDFS и языки представления онтологий приложений, такие как OWL, также основанные на XML.
Для унификации способов обмена используют транспортные протоколы. В Web-технологиях общепризнанным является протокол HTTP. С его помощью описываются запросы и ответы при клиент-серверном взаимодействии. Для определения нужного сервера и организации связи в компонентно-ориентированной среде используют протоколы SOAP, UDDI и WSDL. При этом HTTP применяют в качестве транспортного средства для сообщений SOAP.
Список литературы
1. Дубина О. Обзор паттернов проектирования. — http://zeus.sai.msu.ru:7000/SE/project/pattern/p_4.shtml#5.2.1, 2005.
2. Understanding BizTalk Server 2004. — http://msdn2.microsoft.com/en-us/library/ms942195.aspx