Notice: Undefined variable: shm_str in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 57

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50564 Library:50645 in /var/www/u3757017/data/www/business-semantic.ru/core/mysql.ext on line 36

Notice: Undefined index: constants in /var/www/u3757017/data/www/business-semantic.ru/core/constants.ext on line 3

Notice: Undefined index: setlang in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 122

Notice: Undefined index: setlang_data in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 129

Notice: Undefined index: lang in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 136

Notice: Undefined index: lang_data in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 144

Notice: Undefined index: 3_1_1 in /var/www/u3757017/data/www/business-semantic.ru/interfaces/classes/Security.class on line 29

Notice: Undefined index: container in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 167

Notice: Undefined index: fragments in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 168

Notice: Undefined index: subsites in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 63

Notice: Undefined index: business-semantic.ru in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 64

Notice: Undefined index: path in /var/www/u3757017/data/www/business-semantic.ru/core/util.ext on line 57

Notice: Undefined index: /products/bus/howitworks in /var/www/u3757017/data/www/business-semantic.ru/core/util.ext on line 58

Notice: Undefined index: 1_11_1 in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 215

Notice: Undefined index: allparents_1_254 in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 104

Notice: Undefined index: templates in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 116

Notice: Undefined offset: 11 in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 117

Notice: Undefined property: page::$namecontent in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 205

Notice: Undefined property: page::$description in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 206

Notice: Undefined property: page::$keywords in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 207

Notice: Undefined property: page::$script_include in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 236

Notice: Undefined variable: s in /var/www/u3757017/data/www/business-semantic.ru/core/serialize.ext on line 43

Notice: Undefined variable: s in /var/www/u3757017/data/www/business-semantic.ru/core/serialize.ext on line 47

Notice: Undefined index: modules in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 29

Notice: Undefined index: s_top_menu in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 30

Notice: Undefined index: modules_extensions in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 43

Notice: Undefined offset: 160 in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 44

Notice: Undefined index: 2__1 in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 74

Notice: Undefined index: 2_160_1 in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 88

Notice: Undefined property: LangContainer::$pagename in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 102

Notice: Undefined index: getxml in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 75

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined index: s_menu in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 30

Notice: Undefined offset: 161 in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 44

Notice: Undefined index: business-semantic.ru/products in /var/www/u3757017/data/www/business-semantic.ru/core/util.ext on line 58

Notice: Undefined index: business-semantic.ru/products/bus in /var/www/u3757017/data/www/business-semantic.ru/core/util.ext on line 58

Notice: Undefined index: business-semantic.ru/products/bus/howitworks in /var/www/u3757017/data/www/business-semantic.ru/core/util.ext on line 58

Notice: Undefined index: url in /var/www/u3757017/data/www/business-semantic.ru/core/page.ext on line 277

Notice: Undefined index: 2_161_1 in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 88

Notice: Undefined property: LangContainer::$pagename in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 102

Notice: Undefined index: getxml in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 75

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined index: s_top_menu_divs in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 30

Notice: Undefined offset: 166 in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 44

Notice: Undefined index: 2_166_1 in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 88

Notice: Undefined property: LangContainer::$pagename in /var/www/u3757017/data/www/business-semantic.ru/core/module.ext on line 102

Notice: Undefined index: getxml in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 75

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined variable: result in /var/www/u3757017/data/www/business-semantic.ru/core/parser.ext on line 270

Notice: Undefined index: fragments in /var/www/u3757017/data/www/business-semantic.ru/index.php on line 182
Как работает "Бизнес Семантика"?
English version
+7(343) звоните:2 110 256

Как работает "Бизнес Семантика"?

В этой статье мы объясним, как именно работает связь информационных систем посредством сервера "Бизнес Семантика".

Для примера возьмем случай объединения двух информационных систем. Пусть это будут два приложения, использующие базы данных MySQL и Oracle. Они должны обмениваться сведениями о клиентах и контактах (звонках, встречах) с ними. То есть, если клиент создан в одной из этих программ - он должен немедленно появиться в другой; если в свойства клиента в одной из программ будут внесены изменения, или он будет удален - то же самое должно произойти и в другой системе.

Все описываемые ниже действия по настройке обмена в процессе внедрения могут выполнить как специалисты заказчика, так и наши сотрудники! Итак, пройдем все шаги настройки обмена.

1. Составить онтологию

Для начала, необходимо составить онтологию, или описание всех видов объектов, информацией о которых будут обмениваться наши системы, и их свойств. В нашем примере, чтобы не усложнять схему, ограничимся простым набором. Пусть каждый клиент имеет только одно свойство - название. Контакт будет иметь два свойства: дату, когда он произошел, и клиента, с которым мы пообщались. Свойства "название" и "дата" будут представлять собой литералы, то есть некие фиксированные значения (строка, дата). Свойство "клиент" у контакта будет представлять собой ссылку на объект, определенный в этой же онтологии (Клиент). Конечно, на практике свойств у таких информационных объектов было бы намного больше, но все они создаются совершенно одинаковым образом.

Онтологию нужно сохранить в виде файла формата RDFS (OWL). Сделать это можно при помощи любого хорошего редактора онтологий, или даже просто редактора XML. В ходе проекта по внедрению эту работу обычно выполняем мы, однако создавать онтологии или вносить в них изменения не так сложно, как может показаться. Для этого существует большое количество специальных программ. Некоторые из них, такие как TopBraid Composer, позволяют работать с иерархическим представлением онтологий. Другие, например FluentEditor от компании Cognitum, позволяют создавать онтологию путем ввода фраз на естественном языке. Есть и средства визуального моделирования онтологий OWL. Предлагаем вам посмотреть видеоролик, в котором требуемая в нашем примере онтология создается при помощи программы Fluent Editor.

Вы можете также посмотреть ролик о создании той же самой онтологии в TopBraid Composer.

В этом примере мы создали онтологию "с нуля", однако, конечно, можно использовать элементы любых готовых онтологий - например, Dublin Core. Можно работать и с онтологиями ISO 15926.

2. Настроить сервер

Теперь нужно установить и настроить сервер. Устанавливается он, как любое веб-приложение; процесс установки описан в документации. Когда сервер будет запущен - необходимо войти в веб-интерфейс, и загрузить онтологию. Затем нам необходимо создать учетные записи для обеих информационных систем - это также делается через веб-интерфейс управления сервером. Наконец, нужно задать права доступа систем - определить, какие виды объектов и их свойств сможет читать и записывать каждая система. Это делается путем расстановки галочек в веб-интерфейсе сервера.

3. Настроить клиентские модули

Перейдем к настройке клиентов (также они называются коннекторами). Это программные компоненты, которые отвечают за интеграцию, со стороны каждой из информационных систем. Если для наших информационных систем есть готовые коннекторы, особых проблем не возникнет: нужно будет установить их в соответствии с инструкцией, и сообщить им ту же онтологию, которую мы использовали для сервера (или ее части). Нужно установить соответствие между элементами онтологии и полями базы данных нашей информационной системы. Некоторые коннекторы позволяют сделать это при помощи визуального интерфейса, в некоторых - сопоставление прописывается в специальном массиве в программном коде. Для тех объектов и свойств схемы, которым нельзя однозначно сопоставить какие-либо элементы базы данных, придется определить специальные обработчики, и подключить их к коннектору при помощи простого программного интерфейса. Обработчики создаются на языке, естественном для данной программной среды.

 

Интеграция настроена! Как же происходит сам процесс обмена?

4. Передача информации об изменении данных

Как только в какой-либо информационной системе создается, изменяется или удаляется объект, сведения о котором интересны другой информационной системе - автоматически активируется фрагмент программного кода коннектора (это достигается при помощи инструментальных средств, которые предоставляет та программная среда, в которой работает коннектор). Коннектор собирает информацию об изменившемся объекте, возможно - о связанных с ним объектах, которые еще не передавались другой ИС, и отправляет все эти данные серверу. Сервер получает данные, временно размещает их в своей базе данных, и затем сообщает другой информационной системе.

5. Получение информации об изменившихся объектах

С определенной периодичностью (достаточно часто - скажем, каждые 20 секунд) каждая из клиентских  информационных систем опрашивает сервер, с целью узнать, нет ли для нее подготовленных к передаче данных. Если такие данные обнаружены, сервер сообщит их клиенту. Задача клиента состоит в том, чтобы преобразовать полученные сведения в соответствии с имеющимися у него правилами, и поместить информацию в свою базу данных. Передача завершена! Информация достигла точки назначения.

В заключение, приведем схему взаимодействия сервера с двумя клиентами. Пусть один из них встроен в веб-ориентированную CRM-систему, а другой - в конфигурацию 1С.

Конечно, тем, что описано в данной статье, алгоритмы работы "Бизнес Семантики" не исчерпываются: есть еще процессы восстановления целостности данных, механизмы отслеживания и автоматического восстановления после сбоев передачи, и многое другое.