1. Общее описание
BLOB-адаптер, программный модуль Витрины данных, предназначен для получения доступа из Витрины данных к BLOB-объектам ведомства.
BLOB-объект - это специальный тип двоичных данных, предназначенный для хранения бинарных файлов: изображений, скан-копий документов, текстовых файлов и т.д.
BLOB-адаптер предоставляет возможность настроить доступ к BLOB-объектам расположенным в Хранилище BLOB-объектов.
Примечание
Хранилище BLOB-объектов располагается на стороне ведомства и не является частью Витрины данных.
BLOB-адаптер предназначен для следующих задач:
настройка доступа в Хранилище BLOB-объектов;
предоставление регламентированного доступа к BLOB-объектам;
получение и отправка запросов на получение BLOB-объектов;
чтение BLOB-объектов;
сохранение BLOB-объектов на FTP-сервере (через СМЭВ3-адаптер).
Взаимодействие с BLOB-объектами возможно через запросы из СМЭВ3 (через СМЭВ3-адаптер) или Агента СМЭВ4.
Доступ к считыванию BLOB-объектов производится методом GET по протоколу HTTP/HTTPS (указывается в конфигурации,
параметр host) .
2. Общая схема взаимодействия через BLOB-адаптер
Рисунок - 2.14 Общая схема взаимодействия через BLOB-адаптер
3. Взаимодействие через СМЭВ-адаптер
3.1. Схема взаимодействия через СМЭВ-адаптер
Общая схема получения BLOB-объектов через СМЭВ-адаптер выглядит следующим образом:
Рисунок - 3.6 Взаимодействие BLOB-адаптера через СМЭВ4-адаптер
3.2. Процесс обработки запроса на получение BLOB-объекта (СМЭВ4-адаптер)
В СМЭВ4 поступает запрос на получение данных из Витрины.
СМЭВ4 отправляет запрос в Витрину.
Витрина данных обрабатывает запрос и отправляет ответ.
СМЭВ4 считывает данные полученные от Витрины. В случае, если в теле запроса содержится ссылка на BLOB-объект (например, изображение), отправляет запрос в BLOB-адаптер на получение этого BLOB-объекта. BLOB-адаптер, считывает ссылку на BLOB-объект и обращается в Хранилище BLOB-объектов на стороне ведомства. После получения BLOB-объекта, возвращает его в СМЭВ4.
4. Взаимодействие через СМЭВ3-адаптер
4.1. Схема взаимодействия через СМЭВ3-адаптер
Рисунок - 4.7 Взаимодействие BLOB-адаптера через СМЭВ4
4.2. Процесс обработки запроса на получение BLOB-объекта (через СМЭВ3-адаптер)
Из внешней ИС в СМЭВ4 поступает запрос на получение данных из Витрины.
СМЭВ3-адаптер получает запрос и отправляет его в Витрину.
Витрина обращается к БД, подготавливает ответ на запрос. Если в запросе есть ссылка на BLOB-объект, BLOB-адаптер обращается к Хранилищу BLOB-объектов, копирует BLOB-объект, выкладывает его на FTP-сервер СМЭВ4 и отправляет ссылку на BLOB-объект в Витрину.
После того как BLOB-объект загружен на FTP-сервер СМЭВ4, Витрина отправляет ответ на запрос в СМЭВ4, в котором содержится ссылка на BLOB-объект (сохраненный на FTP-сервере).
После получения ответа внешняя ИС может обратиться по ссылке и скачать BLOB-объект с FTP-сервера СМЭВ4.
5. Требования к серверу BLOB-адаптера
Cледующие файлы не должны контролироваться системой управления конфигурации (при ее наличии), поскольку они должны быть доступны процессу установки для создания и модификации:
/etc/hosts/etc/selinux/config/etc/sysctl.confфайлы директории
/usr/lib/systemd/system//etc/sysconfig/iptables\*/etc/firewalld/\*/etc/docker/\*
Снаружи сервер должен быть доступен по следующим портам:
22 (SSH).
6. Требования к Хранилищу BLOB-объектов
Хранилище BLOB-объектов должно поддерживать регламентированный витриной интерфейс доступа к BLOB-объектам по запросу.
Для корректной работы с Хранилищем BLOB-объектов, необходимо выполнить следующие условия:
Предоставить доступ:
к таблицам с метаданными по документам, хранилища ведомства;
к ссылкам на BLOB-объекты (изображения, архивы, pdf-файлы и т.д.) в хранилище ведомства, соответствующие метаданным.
Предоставить связь между ссылками и метаданными, если они разнесены по разным хранилищам.
Примечание
Все обновления ссылок на документы происходят только через ETL, т.е. от Поставщика данных (ведомства) к Витрине. Обновление самих BLOB через витрину, с последующей проливкой в ведомства, не предусмотрено.
7. Требования к предоставляемому интерфейсу Хранилища BLOB-объектов (API-интерфейс)
API-интерфейс реализованный соответственно данной спецификации должен предоставляться Хранилищем BLOB-объектов для возможности успешного взаимодействия с Витриной.
API-интерфейс Хранилища BLOB-объектов должен использовать метод GET, который поддерживается Витриной для получения
тела BLOB-объекта из Хранилища BLOB-объектов.
С помощью API-интерфейса отправляется запрос на получение BLOB-объектов.
Считывание BLOB-объекта производится по протоколу HTTP (допустимо HTTPS, указывается в конфигурации файла application.yml,
параметр host (см. раздел Конфигурация BLOB-адаптера (application.yml) в документе «Руководство администратора ПО «Витрина данных НСУД»)).