БОД. Описание для разработчиков.

БОД - База обмена данными

Так мы ее называем между собой. Но можно назвать как-то иначе, предложения принимаются.


Предыстория

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

Когда эта задача встала в полный рост, решено было взяться а нее по взрослому.

Рассматривалось два варианта:

  1. Обмен через сервисы (каждый с каждым), см. Рис.1,
  2. Обмен через центральную точку обмена, см. Рис.2.

Мы выбрали второй вариант из следующих соображений:

Сервисы вообще-то не оптимальный вариант. Но в случае, если количество ИС превышает какой-то порог, скажем 500 или 1000, а совокупный размер всех данных из всех ИС подлежащий обмену таков, что не имеется возможности хранить их в одном месте, сервисам альтернативы нет.

Однако, если организация не супер-корпорация типа Газпрома, а например, как у нас - компактный ВУЗ (студенты+преподаватели+сотрудники < 10 тыс. чел.) преимуществами центральной точки обмена данными нет причин пренебрегать.

Преимущества эти таковы:

  • снижение трафика/нагрузки на сеть - каждый донор передает свои данные только один раз;
  • экономия вычислительных ресурсов по той же причине;
  • оптимизация производительности передачи данных в одном месте, а не в каждой ИС;
  • на БОД можно возложить некоторый общий функционал, например генерацию экаунтов юзеров;
  • размер базы БОД при подключению к ней большей части ИС, достигнет размера пригодного для извлечения знаний.

Картинки ниже - это просто картинки - на самом деле реальная картина гораздо сложнее: систем десятки, связей наверное тысячи. Сейчас мы готовим версию 3.0 БОД и подключаем к сентябрю порядка 10 новых клиентов, доноров и реципиентов (первые обозначены красным цветом, вторые синим).

Для версии 4.0 открыт лист предложений и идей - милости просим.

Рис.1. Обмен данными через сервисы (показаны не все связи)

 

Рис.2. Обмен данными через центральную базу обмена

 

Реализация

Рис.3. Принципиальная схема обмена данными между донорами и реципиентами через БОД

На Рис.3. с некоторым упрощением показаны доноры (красные) и получатель данных (синий). Доноры сбрасывают данные в БОД, откуда их забирает ИС-клиент.

Рис.4. Деталь получения данных БОДом из Деканата через базу-буфер

Рис.5. Деталь получения данных из БОД конечным потребителем - Личным кабинетом студента

На Рис.4. и Рис.5. представлены детали цепочки передачи данных на примере ФИО студента из ИС Деканат в ЛКС через БОД. Видно, что запись в БОД происходит через промежуточный буфер, а чтение из нее идет напрямую. При этом ключевым звеном чтения являются функции (хранимые процедуры).

Информационные системы - настоящий зоопарк:

  • Деканат - Классический клиент-серверный продукт на Delphi и MS SQL - собственная разработка;
  • Электронный журнал - web-сайт на Drupal - PHP, MySQL;
  • 1C - понятно на чем - MS SQL, 1С;
  • Moodle - PHP, MySQL;
  • Расписание/СУОП - заказная разработка;

Список, далеко неполон, однако, благодаря БОД - все прекрасно сосуществуют.

Параметры БОД на 01.06.2017:

  • размер дампа 2 Гб
  • пиковый трафик от одного донора 500 Мб

 

Приложения:

Этот документ в формате DOC
Этот документ в формате PDF
Исходники рисунков в формате dia