Чем семантические технологии интеграции лучше выгрузки в XML и других проверенных практик?
Стандартные способы интеграции информационных систем
Известные технологические подходы к интеграции информационных систем в основном сводятся к следующим способам:
- "Точка-точка". Может быть реализована разными техническими средствами, но суть метода сводится к прямой передаче информации из одной системы в другую. Например, организация периодической выгрузки данных из одной ИС в какой-либо файл, и загрузка этого файла в другие ИС. Операции загрузки и выгрузки выполняются специально написанными программными модулями, или специализированными приложениями для обмена данными. Другой вариант - организация прямого доступа базы данных одной ИС к базе других ИС, копирование данных на уровне базы данных. В этом случае преобразование структуры переносимых данных осуществляется программными процедурами, созданными при помощи инструментальных средств самой базы данных.
- SOA, или сервисно-ориентированная архитектура. При таком варианте интеграции каждая информационная система предлагает другим определенный набор сервисов, связанных со спецификой хранящихся в ней данных. Каждый сервис позволяет выполнить какую-то определенную операцию: например, узнать реквизиты клиента, добавить контактную персону, и т.д.
Недостатки существующих технологий обмена данными
Перечисленные технологические подходы не стандартизированы каким-либо образом, и используются в широком круге информационных систем. Недостатки этих подходов состоят в следующем:
- Все они зависят от структуры, в которой данные представлены в одной из ИС. Например, если в какой-либо ИС сведения о медицинских диагнозах хранятся в виде таблицы, имеющей определенный набор столбцов, то она будет выгружать их в файл, структура которого повторяет структуру этой таблицы (или, по крайней мере, зависит от нее). Если в другой ИС сведения о диагнозах хранятся в другой форме, их придется преобразовывать при импорте; для этого создается программный код, который выполняет преобразование. Если же в одной из ИС структура данных изменится (например, будет удалено какое-либо поле, свойство диагноза), то процедура обмена перестанет работать, и в нее придется вносить изменения программисту. В течение какого-то периода времени интеграция не будет работать, потребуются затраты рабочего времени разработчика. Этот недостаток свойственен и веб-сервисам, т.к. их набор параметров зависит от структуры информации в той ИС, со стороны которой реализован веб-сервис.
- Если две ИС хранят одну и ту же информацию, и пользователь имеет возможность изменять эту информацию в обеих системах – может возникнуть конфликт, или ошибочная ситуация, связанная с невозможностью определить, в какой системе конкретная единица информации более актуальна. Например, клиент забронировал отель через Интернет-сервис; сведения о бронировании были переданы в информационную систему отеля. Затем клиент позвонил в отель и попросил изменить дату заезда; дата была изменена в системе отеля, но осталась неизменной в системе Интернет-бронирования. Если затем клиент войдет в систему Интернет-бронирования и попытается изменить дату в ней, с большой вероятностью возникнет ошибочная ситуация, т.к. система Интернет-бронирования попытается передать сведения об изменении ИС отеля, а та, в свою очередь, будет считать имеющиеся у нее (уже измененные пользователем) сведения более актуальными. На практике такие проблемы решаются (если решаются вообще) написанием большого объема программного кода, призванного разрешать конфликты в каждом подобном случае (чаще всего – путем ручного разрешения конфликта пользователем). При этом код, предназначенный для решения конфликта, также зависит от структуры информации, с которой он работает, что приводит к актуализации недостатка, описанного выше в п. 1.
- Если две ИС хранят сведения об одном и том же объекте (например, физическом лице), при их интеграции необходимо создавать процедуру установления соответствия между записями в обеих ИС. В любой ИС каждой записи присвоен определенный уникальный код. Например, в системе А объект, характеризуемый признаками «ФИО = Иванов Иван Иванович, дата рождения = 01.01.1980» имеет код 28, а в системе B он имеет код 95. Когда при интеграции двух систем будет установлено соответствие между этими объектами (путем сравнения ФИО и даты рождения), система B должна будет сохранить в какой-либо ячейке код этого объекта в системе А, и/или система А должна будет сохранить в себе код этого объекта в системе B. В случае объединения двух систем это не является проблемой. При интеграции трех и более систем возникает необходимость хранить в каждой системе коды объектов во всех остальных системах, что приводит к существенному усложнению программы, повышению риска возникновения конфликтных ситуаций, описанных в пункте 2, и возрастанию вероятности ошибок при передаче данных. Кроме того, в некоторых системах объекты могут вообще не иметь уникальных кодов, что приводит к еще большим трудностям. Например, в некой системе D хранятся сведения о лицах, посетивших какой-либо образовательный семинар; список лиц хранится в свойствах конкретного семинара. При этом лица не хранятся в отдельном справочнике, а значит – не имеют кодов, либо одно и то же лицо может иметь разные коды в контексте разных семинаров.
- Периодичность. Как правило, обмен информацией происходит не в режиме реального времени, а с какой-либо периодичностью. То есть, одна ИС накапливает список изменений, а затем передает его в виде пакета другой ИС. Это приводит к риску возникновения ситуаций, описанных выше в п. 2, и несет риск того, что пользователь будет работать с устаревшими данными.
Преимущества семантических технологий для обмена данными
Семантическая интеграция подразумевает, что информационные системы обмениваются данными в такой форме, которая полностью абстрагирована от внутренней структуры каждой из них. Информация записывается в виде "высказываний" при помощи определенного "словаря"; системы отправляют и получают эти сообщения по различным правилам. При этом технически информация может передаваться путем записи в файлы, или через веб-сервисы.
Некоторые реализации семантических технологий не реализуют в полной мере предоставляемых ими преимуществ и возможностей; мы, в продукте "Бизнес Семантика", постарались максимально раскрыть их потенциал. Наш продукт обеспечивает связь между информационными системами в онлайн-режиме, передача информации происходит в соответствии с правилами доступа, определенными администратором. Сервер обеспечивает отказоустойчивость передачи, управляет присвоением идентификаторов передаваемым информационным элементам. В результате, наш продукт имеет следующие основные преимущества по сравнению с "традиционными" способами интеграции:
- Легко построить обмен между несколькими (более чем двумя) информационными системами.
- Обмен не нарушается при изменении структуры информации в одной из систем.
- Программисты со стороны каждой информационной системы настраивают обмен, не заботясь о том, в какой структуре и в каком формате представлены данные в других системах.
- Становится возможным объединение информационных систем, где информация об одних и тех же объектах представлена в виде принципиально разных структур, без необходимости написания громоздкого программного кода.
- Легко формировать обобщенные аналитические срезы данных, формирующиеся на основании объединения информации из нескольких систем.
Все перечисленные преимущества существенно снижают трудовые и материальные затраты на внедрение и поддержку средств интеграции данных, позволяют обеспечить высокую оперативность передачи информации между системами.