СПОСОБ ОБМЕНА ИНФОРМАЦИЕЙ МЕЖДУ ИНФОРМАЦИОННЫМИ СИСТЕМАМИ
METHOD FOR INFORMATION EXCHANGE BETWEEN INFORMATION SYSTEMS

Изобретение относится к способам организации обмена информацией между компьютерными информационными системами и может быть использовано в любых областях промышленности и сферах деятельности, где требуется осуществлять сбор информации и обмен информацией между различными информационными системами.
Известен метод, описанный в патенте ЕР 2365447 (международная заявка №WO 2011110809) «Интеграция данных системы». Предлагаемая в этом патенте архитектура обмена включает сервер, логическая схема которого содержит компоненты, выполняющие логическое преобразование данных: системный контроллер, преобразователь онтологии, транслятор запросов, исполнитель запросов, обработчик семантических сущностей, хранилище алгоритмов. Все эти компоненты осуществляют преобразование данных на сервере. В частности, в данном патенте сервер осуществляет логическое преобразование данных из схемы, используемой одной клиентской информационной системой (ИС), в схему, свойственную другой клиентской информационной системе (ИС), путем трансформации данных сначала в базу данных сервера, а затем из базы данных сервера - в ту, которую использует ИС, которой передаются данные.
Известен Патент CN 101582894 «Семантический шлюз, используемый для интеграции предприятий информатизации гетерогенной системы» (принят в качестве ближайшего аналога). В данном патенте для обмена данными между ИС используется сервер-посредник. Схема сервера, предлагаемого в данном патенте, включает следующие элементы: модуль отслеживания изменений, модуль преобразования интерфейса, модуль обработки входных данных, модуль семантической проверки, модуль отображения семантики, модуль семантической фильтрации, модуль семантической маршрутизации, модуль авторизации и безопасности. В данном патенте сервер реализует собственную логику обработки информации (то есть, наряду с передачей данных от одной системы к другой, производится ее преобразование, возможно - подразумевается использование разными ИС различных онтологий).
Недостатки перечисленных подходов состоят в следующем:
1. Все они предусматривают преобразование информации на сервере, а значит - на сервере требуется реализация программного модуля, который хранит информацию о структуре, в которой данные хранятся в одной из ИС. Например, если в какой-либо ИС сведения хранятся в виде таблицы, имеющей определенный набор столбцов, то она будет передавать эти сведения в том же виде, в каком они хранятся в ИС (или в ином виде, который все равно зависит от исходной структуры данных). Если в другой ИС сведения хранятся в другой форме, программные модули сервера должны будут установить соответствие между типами данных и их свойствами, хранящимися в каждой из ИС, и провести преобразование данных. Если же в одной из ИС структура данных изменится (например, будет удалено какое-либо поле), то процедура обмена перестанет работать, и в нее придется вносить изменения. В течение какого-то периода времени интеграция не будет работать, потребуются затраты рабочего времени разработчика.
2. Если две ИС хранят одну и ту же информацию, и пользователь имеет возможность изменять эту информацию в обеих системах - может возникнуть конфликт, или ошибочная ситуация, связанная с невозможностью определить, в какой системе конкретная единица информации более актуальна. Например, клиент забронировал отель; сведения о бронировании были переданы в информационную систему отеля. Затем клиент позвонил в отель и попросил изменить дату заезда; дата была изменена в системе отеля, но осталась неизменной в системе бронирования. Если затем клиент войдет в систему бронирования и попытается изменить дату в ней, с большой вероятностью возникнет ошибочная ситуация, т.к. система бронирования попытается передать сведения об изменении ИС отеля, а та, в свою очередь, будет считать имеющиеся у нее (уже измененные пользователем) сведения более актуальными.
3. Если две ИС хранят сведения об одном и том же объекте (например, физическом лице), при их интеграции необходимо создавать процедуру установления соответствия между записями в обеих ИС. В любой ИС каждой записи присвоен определенный уникальный код. Например, в ИС 1 объект, характеризуемый признаками «ФИО = Иванов Иван Иванович, дата рождения = 01.01.1980» имеет код 28, а в ИС 2 он имеет код 95. Когда при интеграции двух систем будет установлено соответствие между этими объектами (путем сравнения ФИО и даты рождения), сервер должен будет сохранить в себе идентификаторы данного объекта в обеих системах (или, как вариант, ИС 2 должна будет сохранить в какой-либо ячейке код этого объекта в ИС 1, а ИС 1 должна будет сохранить в себе код этого объекта в ИС 2). В случае объединения двух систем это не является проблемой. При интеграции трех и более систем возникает необходимость хранить на сервере (или в каждой системе) коды объектов во всех остальных системах, что приводит к существенному усложнению способа управления информацией, повышению риска возникновения конфликтных ситуаций, описанных в пункте 2, и возрастанию вероятности ошибок при передаче данных. Кроме того, в некоторых системах объекты могут вообще не иметь уникальных кодов, что приводит к еще большим трудностям. Например, в некой системе ИС 3 хранятся сведения о лицах, посетивших какой-либо образовательный семинар; список лиц хранится в свойствах конкретного семинара. При этом лица не хранятся в отдельном справочнике, а значит - не имеют кодов, либо одно и то же лицо может иметь разные коды в контексте разных семинаров.
4. Периодичность. Как правило, обмен информацией происходит не в режиме реального времени, а с какой-либо периодичностью. То есть, одна ИС накапливает список изменений, а затем передает его в виде пакета другой ИС. Это приводит к риску возникновения ситуаций, описанных выше в п.2, и несет риск того, что пользователь будет работать с устаревшими данными.
Технический результат, достигаемый изобретением, - упрощение способа передачи данных между информационными системами, повышение точности и надежности передачи данных, расширение функциональных возможностей способа.
Заявляемый технический результат достигается тем, что в способе обмена информацией между информационными системами, заключающемся в том, что в каждой информационной системе - клиент (ИС-клиент) обеспечивают хранение информации об индивидуальных сущностях, которая сформирована в соответствии с установленными для конкретной ИС-клиент структурой данных и с типами метаданных о категориях индивидуальных сущностей, категориях дополнительных сведений, относящихся к индивидуальным сущностям, и категориях отношений между индивидуальными сущностями и дополнительными сведениями, хранящуюся в ИС-клиент информацию об индивидуальной сущности перед ее передачей преобразуют в данной ИС-клиент в пакеты данных об индивидуальной сущности, при этом каждый пакет данных формируют из трех записей, первая запись представляет собой идентифицирующую характеристику индивидуальной сущности, третья запись представляет собой дополнительную информацию, относящуюся к индивидуальной сущности, вторая запись представляет собой информацию о категории отношения между первой и третьей записью, каждый пакет данных в отношении индивидуальной сущности в ИС-клиент формируют в соответствии с порядковым номером каждой записи в постоянной последовательности таким образом, что в сформированном пакете данных за первой записью следует вторая, а за второй записью следует третья, при этом порядковый номер каждой записи устанавливают и идентифицируют в соответствии с ее типом метаданных в ИС-клиент, обмен информацией между несколькими ИС-клиент осуществляют путем передачи информации в виде сформированных пакетов данных об индивидуальной сущности от одной ИС-клиент к другой через информационную систему - посредник (ИС-посредник), которая связана с каждой из ИС-клиент, перед первой передачей информации об индивидуальной сущности из одной ИС-клиент в другой ИС-клиент, передающей информацию, или в ИС-посредник формируют уникальный код первой записи об индивидуальной сущности, обеспечивают его хранение и сообщение данного уникального кода другим информационным системам, в ИС-посредник формируют доступный для каждой ИС-клиент модуль хранения содержащихся в каждой ИС-клиент сведений об уникальных кодах, о типах метаданных и структуре данных каждой ИС-клиент, передачу данных от одной ИС-клиент к другой осуществляют по запросу одной из ИС-клиент, который поступает в ИС-посредник в соответствии с настройками ИС-посредник, определяющими типы метаданных, которые ИС-клиент разрешено получать и/или передавать, при этом передачу данных от одной ИС-клиент к другой через ИС-посредник осуществляют в виде сформированных пакетов данных об индивидуальной сущности вместе с уникальным кодом первой записи с соблюдением порядкового номера каждой записи, в ИС-клиент, пославшей запрос на получение информации, осуществляют интерпретацию полученных от ИС-посредник пакетов данных об индивидуальной сущности с использованием модуля преобразования информации ИС-клиент, пославшей запрос, и обеспечивают сохранение полученной информации в соответствии с типами метаданных и структурой данных, установленных в ИС-клиент, пославшей запрос.
Связь между всеми информационными системами может быть осуществлена посредством Интернет-связи.
Уникальный код может быть сформирован в виде буквенного и/или цифрового кода.
В заявляемом способе обмена информацией между информационными системами, каждая из информационных систем (ИС) может быть реализована на самостоятельной программно-аппаратной платформе, возможна также реализации заявляемого способа с реализацией нескольких информационных систем на одной программно-аппаратной платформе. Количество программно-аппаратных платформ, на которых реализуются информационные системы для заявляемого способа, не имеет принципиального значения. Способ является универсальным и позволяет осуществлять обмен информацией между различными информационными системами, реализованными на разных или на одном компьютере.
Для хранения информации в каждой из информационных систем используют стандартные модули (блоки) хранения информации. Вид модулей хранения информации также не является принципиальным для заявляемого способа.
По индивидуальными сущностями в заявляемом способе понимаются любые сущности (объекты недвижимости, движимое имущество, юридические лица и т.п.), в том числе одушевленные (физические лица), имеющие индивидуально-определенные характеристики, идентифицирующие конкретную сущность и отделяющие одну сущность от иных, в том числе однотипных. Например, индивидуальной сущностью является физическое лицо «Иванов Иван Иванович».
Понятие метаданных в заявляемом способе применяется в соответствии с их общеизвестным назначением - структурированные данные, представляющие собой характеристики описываемых сущностей для целей их идентификации, поиска, оценки, управления ими.
Информационные системы, в которых хранится информация об индивидуальных сущностях и которые доступны пользователям для получения той или иной информации об индивидуальных сущностях, в заявляемом способе называются информационные системы - клиент (ИС-клиент).
Информационная система, предназначенная для трансляции (передачи) данных от одной ИС-клиент другой в заявляемом способе называется информационная система - посредник (ИС-посредник). Пользователь непосредственно не имеет доступа к данной информационной системе.
Под категорией индивидуальных объектов в заявляемом способе понимают тип индивидуальной сущности - сотрудник, страхователь, владелец, налогоплательщик и т.п., например: «Иванов Иван Иванович» (индивидуальная сущность) - «налогоплательщик» (категория данной индивидуальной сущности).
Под категорией дополнительной информации (дополнительных сведений), относящихся к индивидуальной сущности, в заявляемом способе понимают любые сведения (информацию), которые имеют отношение к индивидуальной сущности, например: индивидуальная сущность «Иванов Иван Иванович», категория данной индивидуальной сущности - «налогоплательщик», категория дополнительной информации, относящейся к данной индивидуальной сущности, - «ИНН».
По категорией отношений между индивидуальными сущностями и дополнительными сведениями в заявляемом способе понимают тип отношений, связи между ними, например: индивидуальная сущность «Иванов Иван Иванович», категория данной индивидуальной сущности - «налогоплательщик», категория дополнительной информации, относящейся к данной индивидуальной сущности - «ИНН», отношение между индивидуальной сущностью «Иванов Иван Иванович» с категорией «налогоплательщик» и категорией дополнительной информации «ИНН» выражено категорией установленного отношения «зарегистрирован».
Одной индивидуальной сущности присущи множество категорий, например: «Иванов Иван Иванович» является налогоплательщиком и зарегистрирован с ИНН, также «Иванов Иван Иванович» является владельцев квартиры «XXX», также «Иванов Иван Иванович» является владельцем автомашины «YYY» и т.п.
Для осуществления заявляемого способа в каждой из ИС-клиент формируют модуль хранения информации, в котором хранится информация об индивидуальных сущностях, о категориях индивидуальных сущностей, категориях дополнительных сведений, относящихся к индивидуальным сущностям, и категориях отношений между индивидуальными сущностями и дополнительными сведениями.
Хранение информации в каждой ИС-клиент осуществляют в соответствии с ее внутренней структурой (базой данных), поскольку каждая из ИС-клиент может быть предназначена для хранения различных видов информации об индивидуальных сущностях. В каждой ИС-клиент могут быть использованы различные структуры данных (базы данных), поскольку каждая из ИС-клиент может быть предназначена для хранения различных видов информации об индивидуальных сущностях.
Но поскольку в различных информационных системах, хранящих различную информацию, могут быть использованы сведения в отношении одних и тех же индивидуальных сущностей, появляется потребность, как осуществить обмен данными в отношении индивидуальных сущностей между различными информационными системами, избегая конфликтов между системами и «непонимания» информации, которой системы обмениваются.
Особенностью заявляемого способа является то, что обмен информацией между различными ИС-клиент осуществляется через ИС-посредник.
Все преобразования информации в отношении индивидуальной сущности для ее передачи другой ИС-клиент осуществляют непосредственно в ИС-клиент, содержащей информацию о данной индивидуальной сущности.
ИС-посредник имеет дело с пакетами данных в отношении индивидуальной сущности, выраженными в форме триплета («Триплет - набор из трех объектов, система, состоящая из трех частей», Л.П. Крысин, «Толковый словарь иноязычных слов», изд. Эксо, М., 2010, стр.794), и осуществляет лишь их передачу (трансляцию), без какой-либо логической трансформации.
Таким образом, в заявляемом способе ИС-посредник полностью абстрагирован от структуры и логики данных, которыми обмениваются ИС-клиент, и работает только с потоком информации, выраженной в форме триплета, не осуществляя с ним никаких логических преобразований.
Триплет - набор из трех объектов, система, состоящая из трех частей. В заявляемом способе информация об индивидуальной сущности передается в форме триплета, позволяющей по мнению Заявителя представить информацию об индивидуальной сущности в наиболее оптимальной, исчерпывающе содержательной форме.
Каждый триплет состоит из трех записей, имеющих соответствующую категорию, которая идентифицируется соответствующим типом метаданных.
Первая запись в триплете представляет собой идентифицирующую характеристику индивидуальной сущности, третья запись представляет собой информацию о дополнительных сведениях, относящихся к индивидуальной сущности, вторая запись представляет собой информацию о категории отношения между первой и третьей записью
При передаче информации от одной ИС-клиент другой информация об индивидуальной сущности, хранящаяся в ИС-клиент, передающей информацию, преобразуется в пакеты данных об индивидуальной сущности, при этом каждый пакет представлен в виде триплета, образованного из записей, сформированных по вышеуказанному принципу.
Сформированные пакеты данных об индивидуальной сущности передаются сначала в ИС-посредник, а затем - в ИС-клиент, запрашивающую информацию. Согласно заявляемому способу предусмотрен порядок передачи и приема информации только в форме триплетов при неизменной последовательности записей в триплете, т.е. в стандартизованной форме. Это позволяет ускорить процесс распознавания и идентификации информации, позволяет исключить ситуации, когда одна из ИС-клиент «не понимает» информацию, передаваемую из другой ИС-клиент в случаях, когда в ИС-клиент, передающей информацию, и в ИС-клиент, принимающей информацию используются различные структуры данных и различные типы метаданных, т.е. исключается конфликт между ИС-клиент.
Для более точной идентификации передаваемой информации согласно заявляемому способу перед первой передачей информации об индивидуальной сущности первой записи триплета (записи, содержащей идентифицирующую характеристику индивидуальной сущности) присваивается уникальный код. Данный код может быть выражен в виде буквенного или цифрового кода, или же в виде любого символа.
Присвоение первой записи триплета уникального кода может осуществляться в ИС-клиент, передающей информацию. В этом случае при первой передаче информации об индивидуальной сущности ИС-клиент, передающая информацию, передает ИС-посредник пакеты данных об индивидуальной сущности вместе с уникальным кодом первой записи, а ИС-посредник передает в ИС-клиент, которая запрашивала информацию, сведения вместе с уникальным кодом.
Присвоение уникального кода может происходить в ИС-посредник при первом получении информации об индивидуальной сущности из ИС-клиент. В этом случае в ИС-посредник централизовано формируют уникальный код первой записи триплета, затем указанный уникальный код сообщают ИС-клиент, отправившей информацию, а в ИС-клиент, запросившую информацию, сведения об уникальном коде первой записи триплета передаются одновременно с пакетами данных об индивидуальной сущности.
Таким образом обеспечивается единообразие в присвоенных кодах в отношении записи, содержащей идентифицирующую характеристику индивидуальной сущности, во всех ИС-клиент и в ИС-посредник. Это позволит ускорить и упростить процесс идентификации получаемой ИС-клиент информации, а также позволит исключить конфликт нескольких ИС-клиент, содержащих данные об одной и той же индивидуальной сущности, за счет исключения возможности присвоения одной и той же индивидуальной сущности разных уникальных кодов в разных информационных системах.
Использование для обмена информацией ИС-посредник также позволяет оптимизировать процесс обмена информацией. Такая организация обмена информацией позволяет исключить необходимость связи одной ИС-клиент со множеством других, чтобы получать от них необходимую информацию, что значительно упрощает способ обмена информацией.
Для того, чтобы ИС-посредник не могла влиять на передаваемую информацию и искажать информацию при передаче, в ИС-посредник не предусмотрено совершения каких-либо действий в отношении передаваемой информации. Согласно заявляемому способу в ИС-посредник сформирован модуль хранения информации, доступный для каждой ИС-клиент, в котором хранятся содержащиеся в каждой ИС-клиент сведения об уникальных кодах, о типах метаданных и структур данных каждой ИС-клиент. ИС-клиент, получающая информацию, имеет возможность, используя сведения, хранящиеся в ИС-посредник, с помощью модуля преобразования однозначно идентифицировать каждую запись триплета и сохранять полученную информацию согласно заданным правилам, соблюдаемым всеми ИС, в том числе и ИС-посредник при получении и передаче данных.
Для достижения заявленного технического результата не имеет принципиального значения, где формируется уникальный код первой записи передаваемых триплетов - в ИС-клиент, передающей информацию или в ИС-посредник. Главное, чтобы обеспечивалось единообразие уникального кода во всех ИС в отношении одной и той же идентифицирующей характеристики индивидуальной сущности при любом количестве передач информации о данной индивидуальной сущности. Для этого в заявляемом способе не предусмотрено возможности создания уникального кода первой записи триплета в ИС-клиент, получающей информацию. В ИС-клиент, получающей информацию, осуществляется только идентификация полученных данных и сохранение полученных данных в соответствии с типами метаданных и структурой данных, установленных в данной ИС-клиент.
Идентификация получаемых ИС-клиент данных осуществляется в том числе по последовательности записей в триплете (порядковому номеру). Для этого во всех передаваемых пакетах данных (триплетах) обеспечивается постоянство последовательностей записей (соблюдение порядковых номеров записей) - в сформированном пакете данных за первой записью следует вторая, а за второй записью следует третья, при этом порядковый номер каждой записи устанавливают и идентифицируют в соответствии с ее типом метаданных в ИС-клиент.
ИС-посредник, получая сформированные вышеуказанных способом пакеты данных, передает их в неизменном виде в ИС-клиент, которая запрашивала информацию.
ИС-клиент, которая запрашивала информацию, идентифицирует записи, в том числе согласно их последовательности в триплете.
Таким образом согласно заявляемому способу для формирования и передачи пакетов данных во всех ИС установлено общее правило - каждый пакет данных (триплет) об индивидуальной сущности формируется следующим образом: за первой записью следует вторая, а за второй записью следует третья; при этом первая запись представляет собой идентифицирующую характеристику индивидуальной сущности, третья запись представляет собой дополнительную информацию, относящуюся к индивидуальной сущности, вторая запись представляет собой информацию о категории отношения между первой и третьей записью; в каждой ИС-клиент определены типы метаданных о категориях индивидуальных сущностей, категориях дополнительных характеристик индивидуальных сущностей и категориях отношений между индивидуальными сущностями и дополнительными сведениями, относящимися к индивидуальной сущности; первая запись триплета снабжена уникальным кодом.
В процессе осуществления обмена информацией между информационными системами запись, которая имела порядковый номер первый в одном запросе об индивидуальной сущности, может являться третьей записью в другом запросе.
Например:
- первый запрос касается индивидуальной сущности «Иванов Иван Иванович». В ответ на данный запрос будут получены пакеты данных (триплетов), состоящие из записей: «Иванов Иван Иванович» - «владеет» - «квартирой №Х по адресу Y»; «Иванов Иван Иванович» - «владеет» - «автомобилем с государственным номером Q» и т.п.
- второй запрос касается индивидуальной сущности «Квартира №Х по адресу Y». В ответ на данный запрос будут получены пакеты данных (триплетов), состоящие из записей: «Квартира №Х по адресу Y» - «владелец» - «Иванов Иван Иванович», «Квартира №Х по адресу Y» - «владелец» - «Иванова Мария Ивановна» и т.п.
Т.е. та запись, которая была первой в первом запросе, во втором запросе имеет порядковый номер третий.
При первой передаче ответа на первый запрос уникальный код будет присвоен первой записи об индивидуальной сущности «Иванов Иван Иванович»; при первой передаче ответа на второй запрос уникальный код будет присвоен первой записи об индивидуальной сущности «Квартира №Х по адресу Y», которая при передаче ответа на первый запрос была третьей записью и при ответе на первый запрос передавалась без уникального кода.
В итоге, в процессе осуществления заявляемого способа, записи, которые в одних запросах следуют первыми, а в других - третьими и наоборот, будут снабжены уникальными кодами. При этом присвоение уникальных кодов осуществляется только при первой передаче информации об индивидуальной сущности, поэтому исключается ситуация, когда одной и той же индивидуальной сущности возможно присвоение нескольких уникальных кодов.
Если запрос был послан в отношении индивидуальной сущности, которая в другом более раннем запросе, являлась дополнительной информацией к другой индивидуальной сущности, в этом случае при передаче данных уникальными кодами будут снабжены и первая и третья запись и передача данных будет осуществляться вместе со всеми присвоенными уникальными кодами (и первой и третьей записи).
Полученные на запрос данные ИС-клиент, пославшая запрос, интерпретирует (распознает) с использованием своего модуля преобразования информации. При этом интерпретация (распознавание) информации осуществляется, в том числе, с использованием данных, хранящихся в ИС-посредник (об уникальных кодах, типах метаданных ИС-клиент, передающих и принимающих информацию, структурах данных ИС-клиент).
Для того, чтобы исключить запрос и передачу сведений, которые ИС-клиент передающие и принимающие информацию не должны запрашивать и передавать (по различным мотивам, в том числе в связи с соблюдением требований о сохранности персональных данных), ИС-посредник содержит настройки, определяющие типы метаданных в отношении информации, которую каждой ИС-клиент разрешено передавать и/или получать. Кроме того, наличие таких настроек в ИС-посредник позволит исключить передачу в ИС-клиент, которая запросила данные, лишних ненужных сведений об индивидуальной сущности.
В модуле хранения ИС-посредник помимо информации об уникальных кодах, типах метаданных и структурах баз, установленных для ИС-клиент, участвующих в обмене информацией, может быть обеспечено хранение триплетов. Например, если в отношении какой-либо индивидуальной сущности в ИС-клиент, хранящей информацию о данной сущности, произошли изменения, указанная ИС-клиент формирует соответствующие пакеты данных (триплеты) и передает их ИС-посреднику без какого-либо запроса от другой ИС-клиент. ИС-посредник сохраняет изменившуюся информацию об индивидуальной сущности до момента получения запроса от другой ИС-клиент. Т.е. информация, выраженная в виде триплетов, может сохраняться в ИС-посредник до момента, пока информацию об индивидуальной сущности не запросят из другой ИС-клиент. Это позволит ускорить обмен информацией между ИС-клиент.
Связь между информационными системами может быть осуществлена посредством сети Интернет.
Таким образом, согласно заявляемому способу определен оптимальный набор сведений, характеризующих какую-либо индивидуальную сущность. Набор сведений не является технической характеристикой, однако исходя из характера передаваемой информации определена структура информации, подлежащей передаче, в итоге заявляемый способ позволяет значительной расширить функциональные возможности заявляемого способа. Расширение функциональных возможностей связано с тем, что согласно заявляемому способу можно организовать обмен любой информацией, при этом структуры данных, в которых хранятся сведения в каждой из участвующих в обмене данными информационных систем, не являются препятствием для обмена информацией. Каждая ИС может сохранять свою структуру данных. При этом при различных структурах данных в каждой ИС-клиент согласно заявляемому способу осуществляется быстрая, точная и достоверная идентификации передаваемой информации. При осуществлении обмена информацией между информационными системами согласно заявляемому способу исключается «конфликт» и «непонимание» между информационными системами, передающими и принимающими информацию. Использование ИС-посредника для осуществления заявляемого способа, который не осуществляет никаких преобразований в отношении передаваемой через него информации, позволяет упростить всю систему передачи информации, т.к. не требуется организация связей всех участвующих в обмене информации информационных систем между собой, а, кроме того, наличие в ИС-посредник модуля хранения информации с уникальными кодами, типами метаданных и структурами данных, установленных во всех в ИС-клиент, участвующих в обмене информации, позволяет ускорить и оптимизировать процесс интерпретации (распознавания) информации, полученной в ответ на запрос. Существенным фактором, влияющим на точность, надежность и достоверность при передаче данных от одной ИС-клиент другой, является то, что ИС-посредник не осуществляет никаких преобразований тех данных, которые он передает, т.е. ИС-посредник не вмешивается в работу ИС-клиент, не создает ситуаций возможного конфликта между информационными ситемами. Задача ИС-посредник - получить и передать информацию, сформированную согласно установленным правилам, а также контролировать соблюдение данных правил.
Изобретение может применяться для настройки обмена информацией между ИС любого масштаба, используемых в корпоративном секторе, государственных и муниципальных органах.
Ключевые технологические отличия предлагаемого способа от подавляющего большинства других используемых в настоящее время способов обмена данными между ИС состоят в следующем:
- обмен между ИС-клиент происходит с использованием ИС-посредника, управляющего процессом обмена;
- информация между ИС-клиент и ИС-посредник передается только в виде триплетов;
- ИС-посредник обладает модулем хранения информации, в отношении всех используемых в процессе обмена уникальных кодах, типах метаданных и структурах данных, а также связей между ними, при этом каждая из отдельных ИС-клиент обладает подмножеством этих сведений;
- работа ИС-посредник никаким образом не зависит от структуры представления информации в каждой из обменивающихся ИС-клиент;
- ИС-посредник обеспечивает функциональность автоматического разрешения наиболее часто встречающихся видов конфликтов и ошибочных ситуаций в ходе обмена;
- ИС-посредник обеспечивает контроль прав доступа в ходе обмена;
В обобщенном виде основные преимущества заявляемого способа состоят в следующем:
- клиентский модуль со стороны каждой ИС-клиент имеет возможность самостоятельно интерпретировать сообщаемые ему сведения, и изменять хранящиеся в нем данные в соответствии с логикой работы данной ИС-клиент. Таким образом, пользователь, работающий с какой-либо ИС-клиент, абстрагируется от логики работы других ИС и структуры представления данных в них, что существенно облегчает его работу и снижает вероятность возникновения ошибок;
- способ обеспечивает работоспособность информационного обмена при изменении структуры, в которой хранится информация в какой-либо ИС-клиент;
- способ обеспечивает возможность интеграции различных ИС-клиент, где информация об одних и тех же сущностях представлена в виде принципиально разных структур, без необходимости создания дополнительных специальных модулей преобразования в отношении каждой из участвующих в обмене информацией ИС-клиент;
- способ обеспечивает присвоение уникальных кодов всем индивидуальным сущностям, информация о которых передается между информационными системами, снимая, тем самым, необходимость хранить в каждой ИС-клиент коды каждой сущности в других ИС-клиент;
- способ обеспечивает возможность восстановления полноты информационных сообщений за счет наличия механизмов обратного запроса информации;
- способ характеризуется незаметной для пользователя обработкой большинства возникающих ошибочных ситуаций;
- способ позволяет осуществлять обмен информацией в режиме реального времени;
- способ позволяет в любой момент подключать к обмену новые ИС-клиент, или исключать ранее подключенные без вмешательства в работу обменивающихся ИС-клиент.
Предлагаемое техническое решение целесообразно применять в случаях, когда:
- необходимо настроить многосторонний обмен данными между тремя и более ИС одновременно;
- необходимо объединить ИС-клиент, обладающие существенно перекрывающейся информацией об одних и тех же сущностях. Например, несколько систем, хранящих информацию о физических лицах, но в несколько разных разрезах: предположим, одна ИС-клиент хранит паспортные данные и информацию о месте регистрации, другая - паспортные данные и сведения о принадлежащей лицу недвижимости;
- необходимо настроить обмен данными между ИС-клиент, работающими с данными, имеющими одинаковые типы метаданных, но представляющие их в виде принципиально разных структур. Например, в одной ИС-клиент медицинского учреждения хранится ФИО человека и список всех когда-либо поставленных ему диагнозов, в другой - ФИО человека и список всех приемов у врачей, на которых он когда-либо был. С каждым приемом связан список поставленных в ходе приема диагнозов и сделанных назначений (один и тот же диагноз может ставиться на нескольких приемах);
- необходимо сформировать общую базу знаний, содержащую сведения, собранные из нескольких ИС-клиент. Например, в системе управления в банке хранится информация о счетах, открытых клиентам, и о движении средств по ним. В системе документооборота хранятся сведения о заявлениях на предоставление кредитов, поданных клиентами, и результате их рассмотрения. Аналитической службе банка необходимо обладать объединенными сведениями из этих двух систем, чтобы сделать вывод о том, какие сведения, указанные в заявлении, с большей вероятностью приводят в дальнейшем к просрочке платежей по кредиту.
Заявляемый способ может быть осуществлен следующим образом.
Имеются две клиентские информационные системы - ИС1-клиент и ИС2-клиент, а также информационная система - посредник - ИС-посредник.
Информация, которой обмениваются ИС-клиент, записана в одном и вариантов синтаксиса RDF, который используется для записи триплетов. Для записи метаданных используются синтаксисы RDFS и OWL. Передача информации между ИС-клиент через ИС-посредник может осуществляться по протоколу SOAP.
Хранящаяся в каждой ИС-клиент информация об индивидуальной сущности перед ее передачей другой ИС-клиент через ИС-посредник преобразуется (перекодируется) в поток фактов, выраженных в форме триплета - трех записей, например «Иванов Иван Иванович» - «имеет» - «ИНН 66610124578», «Иванов Иван Иванович» - «владеет» - «квартирой такой-то».
Преобразование любой информации в форму триплета позволяет значительно упростить процесс передачи информации от одной ИС-клиент другой за счет использования стандартизованной формы передаваемой информации, обеспечить надежную идентификацию передаваемой информации, при обеспечении оптимальной полноты сведений об индивидуальной сущности.
Каждой индивидуальной сущности, информацией о которой обмениваются ИС-клиент, присваивается уникальный код. Сведения, идентифицирующие индивидуальную сущность, содержатся в первой записи триплета. Индивидуальные сущности идентифицируются такими кодами. Например, если уникальный код сущности «Иванов И.И.» равен «Person59», а уникальный код принадлежащей ему квартиры равен «Flat94359», выражение из предыдущего примера будет записано в виде «Person59 владеет Flat94359». Типы индивидуальных сущностей (физ. лицо, квартира и т.п.) и виды отношений между ними («владеет»), должны быть определены соответствующими типами метаданных, установленных для ИС-клиент, хранящей информацию о данной индивидуальной сущности.
При первоначальном вводе информации об индивидуальной сущности, который осуществлялся в соответствии с типами метаданных и структурой данных, установленных в ИС-клиент, предназначенной для хранения указанной информации.
В каждой ИС-клиент формируется модуль преобразования информации, обеспечивающий логическое преобразование информации в процессе обмена и интерпретацию получаемой информации.
Обмен информацией осуществляется посредством ИС-посредник, выступающей в роли посредника между ИС-клиент. ИС-посредник посредством протокола обмена реализует способ взаимодействия с каждой ИС-клиент. Способ обмена информацией состоит из трех логических уровней: транспортный уровень, функциональный и семантический.
В качестве технологий транспортного уровня используется одно или несколько из известных и общедоступных средств, таких как протоколы ТСР/IР и HTTP.
Функциональный уровень взаимодействия может быть реализован при помощи любой технологии удаленного вызова процедур, например SOAP. На функциональном уровне определены типы запросов (методы), с которыми ИС-клиент могут обращаться к ИС-посреднику, структура входной и выходной информации, передающейся при каждом типе запроса.
Семантический уровень определяет способы инкапсуляции информационных сообщений, представленных в семантической форме - в форме триплета, в параметрах и возвращаемых значениях функционального уровня, а также логику их преобразования.
Для передачи информации об индивидуальных сущностях и их свойствах ИС-клиент и ИС-посредник должны использовать общий словарь (называемый схемой обмена, или онтологией). Словарь может быть выражен, например, в синтаксисе RDFS. Словарь (модуль хранения информации ИС-посредник) содержит метаданные о категориях всех индивидуальных сущностей, о которых передается информация, всех возможных свойств (дополнительных сведениях) этих сущностей, типов значений указанных свойств, всех возможных видов отношений между индивидуальными сущностями и дополнительными сведениями, относящимися к индивидуальным сущностям. Наиболее полная версия словаря используется ИС-посредником; каждый из ИС-клиент обладает неким подмножеством данного словаря (онтологии).
Для однозначного определения экземпляров сущностей, участвующих в информационном обмене, используется система уникальных кодов. Коды присваиваются индивидуальным сущностям той ИС-клиент, которая обладает правами на формирование информации данного типа, и уникальны во всем пространстве информационного обмена (как уже отмечалось ранее уникальный код может быть создан при первой передаче сведений о сущности в ИС-посредник). Код используется во всех последующих информационных сообщениях для идентификации данной сущности и неизменен на протяжении существования сущности. Таким образом, существенными свойствами каждой сущности, известными ИС-посредник и каждой из ИС-клиент, являются его тип (определенный в схеме обмена соответствующим типом метаданных), и уникальный код, который присваивается индивидуальной сущности перед первой передачей сведений о ней.
На семантическом уровне протокола обмена, при вызове функции «Передача сведений», происходит преобразование сведений о сущностях и их свойствах внутри ИС-клиент, передающей информацию, в выражения (называемые триплетами), состоящие из трех записей, сформированных способом, указанным ранее.
Совокупность информационных сообщений (пакеты данных), составленных в виде таких выражений, образует математический граф, вершинами которого являются сущности, а ребрами - их свойства и отношения/связи. Синтаксически она может быть выражена в любой из реализации синтаксиса RDF (XML, Turtle). Полученное таким образом каждое информационное сообщение (пакет данных об индивидуальной сущности), записанное в синтаксисе RDF, передается в качестве параметра функции «Передача сведений».
Аналогичным образом, полученное в результате вызова функции «Чтение информации» RDF-сообщение интерпретируется с использованием модуля преобразования информации в ИС-клиент, которая запрашивала информацию, на основании чего вносятся изменения и/или дополнения в содержащуюся внутри ИС -клиент информацию.
Для обеспечения заявленных преимуществ способа, ИС-клиент должна реализовывать описываемую ниже архитектуру взаимодействия с ИС-посредник. Логическая схема ИС-клиент состоит из двух логических частей: модуля импорта, отвечающего за прием данных, и модуля экспорта, занимающегося отправкой информации.
Задача модуля экспорта состоит в отслеживании наличия новых данных и изменений, происходящих в ранее введенных данных об индивидуальной сущности, которые, в соответствии со схемой обмена и правами доступа, нужно отправлять ИС-посреднику, для передачи другим ИС-клиент. Отслеживание происходит при помощи инструментальных средств ИС-клиент, хранящей соответствующие данные. Обнаружив наличие новых данных или изменение в данных (или удаление данных), модуль экспорта выполняет следующие операции:
- Помещает сформированный согласно установленному правилу пакет данных об индивидуальной сущности - триплет (или пакеты данных) в очередь на отправку, или немедленно отправляет его ИС-посредник в синхронном режиме.
- Находит все созависимые сведения, имеющие отношение к данной индивидуальной сущности, информацию о которых также необходимо передать ИС-посредник. Для этого:
- По структуре базы данных ИС-клиент, хранящей информацию о данной индивидуальной определяются свойства сущности, которые являются адресными ссылками на другие данные.
- Определяются данные, связанные адресными ссылками с индивидуальной сущностью.
- Если у данных, идентифицирующих сущность, отсутствует уникальный код - им присваивается уникальный код, который подлежит передаче вместе с пакетами данных о сущности. Эта последовательность шагов выполняется рекурсивно.
- Формирует по описанному ранее правилу пакеты данных в виде триплетов.
- Авторизуется на ИС-посредник, путем вызова метода «Авторизация».
- Передает информацию в ИС-посредник, путем вызовов методов «Передача» и «Удаление».
Преобразование сведений о сущности в триплеты осуществляется путем формирования пакетов данных, каждый из которых состоит из трех записей, записанных, например, в синтаксисе RDF. Каждый пакет данных затем передается в виде параметра при вызове метода «Передача». В каждом пакете данных содержатся сведения обо всех свойствах сущности, в том числе - о ее отношениях с другими сущностями и объектами, участвующими в схеме обмена информацией. Для выполнения преобразования сведений о сущности, хранящихся в ИС-клиент, необходимо обращение к модулю хранения ИС-посредник, в котором хранятся сведения об уникальных кодах сущностей, типах метаданных, структурах данных ИС-клиент, участвующих в обмене, эти данные могут храниться в виде онтологии или в виде схемы RDFS. Обращение к модулю хранения ИС-посредник необходимо для определения типов отношений между индивидуальной сущностью и другими данными, на которые имеются ссылки. Также необходимо контролировать права доступа данной ИС-клиент для того, чтобы определить, какие сведения в отношении индивидуальной сущности данная ИС-клиент имеет право передать ИС-посреднику.
Модуль импорта представляет собой периодически вызываемую процедуру (регулярность вызова может реализовываться разными инструментальными средствами, зависящими от конкретной аппаратной или программной платформы, на которой реализована ИС-клиент, принимающая данные). Процедура обращается к ИС-посреднику для получения новых или изменившихся данных, принимает их и обрабатывает. Для этого она выполняет следующие действия:
- Авторизуется на ИС-посредник, путем вызова метода «Авторизация».
- Получает информацию о новых, изменившихся или удаленных данных, путем вызова метода «Чтение».
- Начинает транзакцию (может быть отменена, если при обработке возникнет ошибка). Наличие механизма транзакций критически важно для правильной работы механизма, поскольку в противном случае может возникнуть ситуация частичного импорта пришедших данных - до момента возникновения ошибки - что, в свою очередь, является потенциальным источником возникновения следующей ошибочной ситуации.
- Необходимо обеспечить, чтобы при создании или изменении данных в ходе импорта не срабатывали обработчики событий, которые экспортируют данные - в этом случае ИС-посредник получит обратно все те же данные, которые только что отправил. Способ подавления обработчиков зависит от платформы, на которой реализуется ИС-клиент. Подавление обработчиков нужно отменить в конце обработки, независимо от того, закончилась ли она успехом, или возникновением исключения. Также необходимо заблокировать изменение тех фрагментов хранилищ данных, куда будут вноситься новые данные или изменения процедуры импорта, чтобы пользователь не мог внести в них изменения во время обработки.
- Проходит по списку полученных от ИС-посредник пакетов данных, находя по уникальному коду каждую из индивидуальных сущностей.
- Одновременно происходит удаление данных, об удалении которых сообщила ИС-посредник.
- Может быть предусмотрена специальная процедура - определенная ИС-клиент, принимающая информацию, обработчик - который будет вызываться на этой стадии, для выполнения каких-либо дополнительных операций с данными. Эта процедура может быть использована для трансформации структуры получаемой информации.
- На второй стадии обработки полученных данных ИС-клиент, принимающая информацию, проходит по массиву полученных от ИС-посредник пакетов данных, распознавая данные и отношения (свойства) между ними. На этом шаге происходит наполнение сведений об индивидуальной сущности новой информацией.
- Сохранение информации в отношении конкретных данных осуществляется вместе с уникальными кодами.
- Если данные, на которые имеются ссылки, при обработке полученной информации не найдены, в этом случае ИС-клиент, принимающая информацию, дополнительно запрашивает через ИС-посредник недостающие сведения путем вызова метода «Запрос».
- Сообщает ИС-посредник статистику обработки методом «Статистика».
- Завершает транзакцию.
- В случае ошибки на любом предшествующем этапе - отменяет транзакцию, и возвращает ИС-посредник информацию об ошибке методом «Ошибка».
Важное значение имеет обработка ошибок в процессе обработки полученных данных. Особенность реализации ИС-посредник состоит в том, что в момент вызова метода «Чтение» ИС-посредник специальным образом помечает отправленные в ИС-клиент данные. Начатая таким образом транзакция может завершиться успешно - вызовом метода «Статистика», который удаляет успешно переданные данные из буфера отправки ИС-посредник, или вызовом метода «Ошибка». В этом случае данные возвращаются в буфер отправки. Вызову метода «Ошибка» сопутствует вызов метода «Запрос», который сообщает ИС-посредник, каких данных ИС-клиент не хватило для успешной обработки запроса. ИС-посредник запрашивает эти данные у той ИС-клиент, которая является их источником, и при следующем вызове метода «Чтение» сначала сообщит ИС-клиент, принимающей информацию, недостающие данные, а затем повторит попытку передачи той информации, которая в предыдущий раз вызвала ошибку. Таким образом, с большой вероятностью, ошибка будет устранена автоматически. Если этого не произойдет, ИС-посредник отправляет уведомление о неразрешимой ошибочной ситуации администратору.
Для обеспечения оптимальной успешной реализации заявляемого способа к ИС-посредник целесообразно предъявлять следующие требования:
- ИС-посредник должен обладать механизмом настройки и контроля прав доступа каждой из участвующих в обмене информацией ИС-клиент. То есть, администратор обмена должен иметь возможность указать, какие ИС-клиент имеют право на создание, удаление, изменение данных, соответствующих типам метаданных, описанных в онтологии (хранящихся в модуле хранения информации ИС-посредник).
- ИС-посредник должен реализовывать автоматическое разрешение конфликтов, связанных с одновременным изменением одних и тех же данных в нескольких ИС-клиент - например, на основе правила приоритета «свежести». То есть, при одновременном запросе на изменение одних и тех же данных в отношении одной и той же индивидуальной сущности, ИС-посредник должен обработать и считать приоритетным тот запрос, который поступил позже; предыдущие дополнения и изменения данных, которые еще не были распространены другим ИС-клиент, должны быть отменены. Можно избрать и другой алгоритм разрешения конфликтов.
- ИС-посредник должен поддерживать сессию связи с ИС-клиент после операции «Чтение» до тех пор, пока ИС-клиент не сообщит об ее успехе или возникновении ошибки. После этого ИС-клиент должна подтвердить или отменить транзакцию. Если возникла ошибка, но ИС-клиент вызвала метод «Запрос» для получения дополнительных данных - значит ошибка является автоматически разрешимой; ИС-посредник должен отправить запрос дополнительной информации той ИС-клиент, которая является ее источником, и затем (при следующем вызове метода «Чтение») сообщить ответ запросившей ее ИС-клиент, а также повторить неудавшуюся транзакцию. В противном случае ИС-посредник должен сообщить администратору о возникновении ошибочной ситуации, которая может быть разрешена только вручную.