Мельница данных- Интеграция  (раздел целиком)  (31.03.2020)
Интеграция

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

Концептуально реализация интеграции может быть осуществлена двумя способами (рассмотрены более подробно далее):

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

Практически, реализация интеграции может быть осуществлена слежующими способами:

Пути интеграции


1. Интеграция данных

В свою очередь интеграцию данных можно разделить на два типа:


1.1. Репликативная интеграция

Репликативная интеграция - передающая сторона формирует реплику, передает ее принимающей стороне, которая в свою очередь загружает в себя реплику. В этом случае стандартами формата реплики являются двоичный формат и  XML-схема. Платформа Мельница Данных имеет готовые механизмы для реализации обоих форматов. 

Варианты реализации репликационной интеграции:

1. Данные должны быть переданы из сторонней учетной системы и загружены в Платформу Мельница данных:

УС-МД Реплика

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

2. Данные должны быть переданы из Платформы Мельница Данных и загружены в стороннюю учетную систему:

МД-УС Репликация

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

3. Данные должны быть переданы из одной сторонней учетной системы в другую. При этом Платформа Мельница Данных выступает в качестве интеграционной платформы:

МД - интеграционное ядро

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

Подобная интеграция осуществляется простыми готовыми средствами платформы в самые сжатые сроки.


1.2. On-Line доступ

Второй путь интеграции данных - Интеграция с использованием доступа к данным в режиме On-Line.

1. В том случае когда Платформа является серверной стороной, то есть стороной-поставщиком данных для других систем, возможны следующие варианты предоставления данных:

OnLine

- СУБД, то есть база данных, которая хранит все данные Платформы. На данный момент поддерживаются Oracle, Firebird, MS SQL. Возможна реализация поддержки и других систем управления базами данных. Для указанных баз данных доступны стандартные протоколы доступа, с помощью которых осуществляются запросы к данным Платформы непосредственно. Запросы формируются при помощи стандартизированного языка запросов Structured Query Language (SQL).  

- RESTful-сервис используется для реализации более сложной механики предоставления доступа к данным и входит в состав поставки сервера приложений Платформы. С его помощью, в частности, осуществляется удаленный доступ и доступ к данным через SOAP (Simple Object Access Protocol — простой протокол доступа к объектам) с автоматическим формированием по данным Платформы WSDL-документа, описывающего сервисы. Таким образом реализуется продвинутый функционал по отбору объекта по критериям, а также в части доступа ко всем данным Платформы по протоколу SOAP/

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

       

  Практический пример реализации:

Компания "Мельница технологий" в одном из московских ВУЗов осуществяла интеграцию с тестирующей системой по проведению олимпиад. С использованием протокола SOAP в тестирующую систему из Платформы предоставлялась информация о реквизитах олимпиад, которые были выбраны каждым школьником-участником. Был реализован обработчик-"переходник", через который передавалсь информация. 

Для системы LMS (Learning Management System) компании Asteros данные также предоставляются по протоколу SOAP.

2. В случае когда Платформе необходим доступ к данным сторонних систем, используется готовый RESTful-"обработчик". Частными случаями данной ситуции являются взаимодействия Платформы с различными собственными web-приложениями, а также с "Обозревателем данных", работающим через удаленный доступ.

RESTful

Для получения данных в режиме On-Line от сторонних систем используются те же стандартные протоколы. При необходимости создаются "обработчики", которые отображают для конечного пользователя в визуальных формах Платформы данные, полученные из сторонних систем.

3. При использовании Платформы в качестве платформы интеграции различных сторонних систем, данные предварительно загруженные по описанным выше протоколам могут передаваться средствами Платформы. Однако, может быть реализован и механизм прозрачной передачи данных между сторонними системами.

RESTFUL интеграция


2. Интеграция функций
Данный тип развития интеграции в свою очередь можно разделить на 2 пути:

2.1. Взаимные вызовы

В данном случае подразумевается, что какая-либо учетная система открывает возможность вызова своих встроенных функций из сторонних систем.

Доступ к функциям возможен с помощью выполнения хранимых процедур (каждое бизнес-действие, которое производит пользователь, обязательно оформляется в виде хранимой процедуры на уровне СУБД Платформы). Процедуру можно вызывать, получив доступ к СУБД. Аналогично тому, как создаются select-запросы, запросы к данным, можно делать запросы, вызывающие бизнес-функции. Все методы, отчеты, и все, что доступно пользователю, может быть вызвано и через RESTful-сервис. При этом методы будут выполняться, отчеты будут формироваться в виде Excel, Word, PDF, HTML, в соответствии с запросом вызывающей стороны. Данный функционал обеспечивается готовым "обработчиком", входящим в состав поставки Платформы.

С помощью протокола SOAP можно вызывать любой метод любого объекта, получать результаты его выполнения без ограничений. 

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

       

 Пример реализации:

В ВУЗе при формировании приказа о зачислении студента в Платформе, также автоматически создается объект "Приказ" в системе документооборота ВУЗа. В дальнейшем, передвижение приказа по маршруту согласования в решении на Платформе аналогично отображается в системе документооборота. 

Если для сторонней системы существуют какие-либо стандартные протоколы, по которым можно вызывать функцию, то средствами Платформы не составляет труда вызов данной функции.


2.2. Встраивание

Данный путь интеграции функций представляет собой ситуацию, когда сторонняя система непосредственно "встраивается" в решения на Платформе и код сторонней системы исполняется с использованием данных Платформы.

Существуют разные способы реализации данного пути:

- В open-source системах, как правило, слой доступа к данным вынесен в некий отдельный модуль. Характерный пример - это LMS eFront. Это Open-Source разработка, содержащая в себе большой объем php-кода, с развитым web-интерфейсом, и, в том числе, содержащая модуль доступа к данным. В процессе работы создается база MySQL база достаточно примитивной структуры. В этом случае можно изменить модуль доступа, так, чтобы вместо запросов к MySQL-базе механика делала бы запросы к базе данных Платформы. Тогда исполнение php-кода, его интерпретация происходит в рамках сервера приложений Платформы.

       

  Пример реализации:

Так как в базе данных Платформы уже хранятся данные о студентах, преподавателях, курсах и т.д., то при взаимодействии с системой обучения LMS, естественным, удобным и надежным решением является хранение все этих данных в одной базе данных

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

         Прикладные системы на базе СУБД Teradata позволяют использовать PL/SQL-код для каких-либо наборов данных, притом, что сама база гораздо имеет продвинутые возможности автоматического контроля версий, хроникальности, аналитики.