Материалы | 26880 |
---|
Делаем из зоопарка цирк (размышления об интеграции) |
Немного терминов: Событие – элементарное действие, приводящее к изменению данных. Объект события – абстрактное понятие, характеризующее блок информации, части которого распределены в разных системах. Клиент – приложение, создающее события и требующее получения данных по событиям, также может нести функцию хранилища информации (справочников). Сервер – место сбора информации, её агрегирования и структуризации, также точка получения событий и рассылки информации о этих событиях. Как всё это «должно» работать:
Возможные исключения:
Для всех этих исключений идеально подходит механизм отложенного выполнения: собираем все данные в таблицу с данными события и регламентным заданием пытаемся повторить обработку событий. Для ошибок при записи формируем служебные уведомления: e-mail, sms и т.д. Что из технических средств мы имеем для реализации подобного функционала: Для получения данных:
Для отправки:
Сбор и отправка информации: Собираем все данные запросами к необходимым системам, агрегируем все данные в структуру, из структуры выбираем необходимы данные для отправки Клиентам, т.к. у клиентов разная структура, протоколы и т.д. Где может быть сервер? Да хоть где!!! Модуль обработки данных на любом из клиентов или как отдельная система/системы без разницы где всё это будет выполняться, вожен функционал и доступность из любого клиента. Что нужно делать при изменении структуры одного из клиентов? Всё просто, доработать на «сервере» блок получения и отправки информации по этому клиенту, при необходимости добавить поля в загрузчики остальных систем. Теоретический пример использования: создание и актуализация пользователей.
Что происходит:
Что будет если Клиент СКУД будет недоступен? Мы не сможем выполнить полное получение данных, соответственно запишем данные о событии в соответствующий регистр и попробуем обменяться позже по регламенту, допустим через час. P.S. Таких примеров в любой организации очень много. Большинство процессов, автоматизируемых при помощи интеграции практически не автоматизировано, в большинстве компаний где я работал в лучшем случае был обмен между базами, сайтом ну и собственно всё, и эти обмены были мягко говоря не очень стабильны, не отрабатывали изменение отдельных элементов справочников, или были построены перекидыванием файлов между системами (не дошёл файл, и получаем геммор с ручной выгрузкой, загрузкой и т.д.). Если есть готовые решения, позволяющие упростить разработку подобной схемы интеграции между разношёрстными системами, порекомендуйте!!! Буду премного благодарен. |