Модульная архитектура¶
Система Юниверс MDM состоит из набора модулей, что создают MDM-системы, обладающие только необходимыми инструментами и функциями. Модульная архитектура имеет следующие особенности:
Различаются frontend и backend модули.
Различаются свободные модули и проприетарные.
Отдельный инструмент MDM может содержаться как в одном модуле, так и сразу в нескольких. Таким образом, для использования отдельных инструментов может потребоваться подключить несколько модулей.
Существует системный набор модулей, без которых система не способна работать.
Примечание
В различных проектах может быть свой состав модулей.
Каждый модуль отвечает за определенные возможности системы. Обмен данными между модулями системы осуществляется с помощью REST API, основная документация по работе с которым хранится в Swagger.
Актуальный список REST-методов доступен по ссылке http://<хост>:<порт>/universe-backend/api. См. подрообнее о работе в Swagger.
Модули с приставкой "rest" в имени - это модули, отвечающие за предоставление API и endpoint-ы. При обращении к ним они проверяют корректность запроса и, если все верно, отдают инструкции другим модулям. В одной операции может быть задействовано несколько модулей.
Перечень модулей системы¶
Модуль |
Системное имя модуля |
Описание модуля |
---|---|---|
Пакетный экспорт записей в XLSX |
com.unidata.mdm.bulk.export.records.xlsx |
Пользовательская пакетная операция экспорта записей в Excel. |
Пакетное удаление записей |
com.unidata.mdm.bulk.remove.records |
Пользовательская пакетная операция удаления записей. |
Параметрические классификаторы |
com.unidata.mdm.classifiers |
Модуль управления классификаторами. |
Краулер для PostgreSQL |
com.unidata.mdm.crawler.postgres |
Референсная реализация краулера данных PostgreSQL. |
Модуль EE |
com.unidata.mdm.ee |
Модуль с уникальным для EE редакции функционалом (инициализация некоторых полей лицензии со стандартными значениями для EE редакции, гостевой режим и т.п.). |
Операция экспорта данных |
com.unidata.mdm.job.export.data |
Фоновая пакетная операция экспорта данных. |
Операция миграции |
com.unidata.mdm.job.migrate |
Операция миграции данных с Юниверс MDM 5.X на 6.X. |
Лицензия |
com.unidata.mdm.license |
Модуль проверки лицензий. |
Пакетная операция экспорта записей XLSX REST |
com.unidata.mdm.rest.v1.bulk.export.records.xlsx |
REST API v1 пользовательской пакетной операции экспорта записей в Excel. |
Классификаторы REST |
com.unidata.mdm.rest.v1.classifiers |
REST API V1 модуля классификаторов. |
Лицензия REST |
com.unidata.mdm.rest.v1.license |
REST API v1 модуля проверки лицензий. |
Операция пакетного удаления записей REST |
com.unidata.mdm.rest.v2.bulk.remove.records |
REST API v2 пользовательской пакетной операции удаления записей. |
Модуль бизнес-процессов REST |
com.unidata.mdm.rest.v2.workflow.core |
REST API v2 модуля управления бизнес-процессами. |
Модуль системных ограничений |
com.unidata.mdm.system.limits |
Модуль для задания тех или иных ограничений в системе. Регулирует доступность бизнес-процессов, реестров, ядер и т.д. |
Модуль управления бизнес-процессами |
com.unidata.mdm.workflow.core |
Основной модуль управления бизнес-процессами (BPMN). Поддерживает управление и выполнение произвольных BPMN процессов. Построен на основе Camunda. |
Данные бизнес-процессов |
com.unidata.mdm.workflow.data |
Модуль соединения модулей управления бизнес-процессами и модуля данных. Содержит компоненты, необходимые для построения взаимодействия между модулями при наступлении событий в каждом из них, и обеспечивающие передачу таких событий между модулями. |
Модуль экспорта классификации XLSX |
com.universe.mdm.bulk.export.classification.data.xlsx |
Модуль, отвечающий за экспорт данных классификации в формате XLSX. |
Модуль импорта классификации XLSX |
com.universe.mdm.bulk.imprt.classification.data.xlsx |
Модуль, отвечающий за иимпорт данных классификации в формате XLSX. |
Пакетная модификация записей классификации |
com.universe.mdm.bulk.modify.classifications |
Модуль пакетной операции модификации записей классификации. |
Пакетная операция модификации записей |
com.universe.mdm.bulk.modify.records |
Модуль пакетной операции модификации записей. |
Основной коммерческий модуль |
com.universe.mdm.core |
Коммерческий модуль, отвечающий за замещения, группы пользователей и пр. |
Импорт данных из очередей |
com.universe.mdm.data.recipient |
Модуль подключения к очереди, в которую поступают данные. |
Модуль качества данных классификации |
com.universe.mdm.dq.classifiers |
Модуль качества данных классификации. |
Данные + Качество + Процессы интеграция |
com.universe.mdm.dqw |
Интеграционный модуль, реализующий видимость одновременно данных, качества и процессов. |
Модуль интеграции LDAP |
com.universe.mdm.ldap.integration |
Модуль интеграции с Active Directory, который включает в себя: импорт профилей и групп из AD по расписанию; аутентификацию (проверку подлинности); авторизацию (предоставление доступа к какому-либо ресурсу) с учетом групп AD; sso (работа с UniverseMDM после авторизации в AD). Текущая функциональность позволяет настроить параметры синхронизации пользователей и групп и провести их синхронизацию. |
Поддержка классификации в модуле metadriven |
com.universe.mdm.metadriven.classifier |
Metadriven компоненты для работы с моделью доменного классификатора. |
Основной модуль Metadata-driven REST API |
com.universe.mdm.metadriven.core |
Основной модуль Metadata-driven REST API. Предоставляет операции над данными в "естественном" виде REST API. Структура объектов передаваемых в рамках API зависят от модели данных. |
Модуль MetaDrivenDQ |
com.universe.mdm.metadriven.dq |
Модуль MetaDrivenDQ. |
Smart ETL. Нотификации |
com.universe.mdm.notifications |
Модуль отправки событий в сервис ETL. |
Пакетная операция экспорта классификации XLSX REST V1 |
com.universe.mdm.rest.v1.bulk.export.classifications.xlsx |
REST API v1 операции пакетного экспорта классификации - модуль фрагмента классификаций. |
Пакетная модификация записей REST V1 - классификация |
com.universe.mdm.rest.v1.bulk.modify.classifications |
REST API v1 операции пакетной модификации записей классификации - модуль фрагмента классификаций. |
Пакетная модификация записей REST |
com.universe.mdm.rest.v1.bulk.modify.records |
REST API v1 операции пакетной модификация записей. |
Основной коммерческий модуль REST |
com.universe.mdm.rest.v1.core |
REST API v1 коммерческого модуля. |
LDAP REST API V1 |
com.universe.mdm.rest.v1.ldap.integration |
REST API v1 модуля интеграции LDAP. |
Metadata-driven REST API V1 |
com.universe.mdm.rest.v1.metadriven |
REST API v1 модуля Metadata-driven. |
Пакетные операции |
org.unidata.mdm.bulk.core |
Модуль массовых операций. Содержит сервис для работы с массовыми операциями: регистрация, запуск и т.п. |
Основной модуль UniData |
org.unidata.mdm.core |
Модуль общих сервисов системы. Содержит различные вспомогательные сервисы, предоставляющие общий и/или вспомогательный функционал для прочих модулей. В частности: сервисы подсистемы безопасности, фоновых операций, аудита, мониторинга, владельцев и т.д. |
Модуль данных |
org.unidata.mdm.data |
Модуль данных. Содержит все связанное с данными: модель данных, сервисы для выполнения операций на записях и данных и т.п. |
Качество данных (DQ) |
org.unidata.mdm.dq.core |
Основной модуль Data Quality. Содержит модель качества данных и общие стандартные функции. Предоставляет главную точку входа для применения правил качества. |
Данные в DQ |
org.unidata.mdm.dq.data |
Модуль, связывающий модуль данных с модулем DQ. Содержит сегменты (потоков выполнения) для применения правил качества, а также стандартные функции, применимые только к объектам модуля данных. |
Модуль черновиков |
org.unidata.mdm.draft |
Модуль, который содержит все связанное с черновиками. Другие модули, которые используют функционал черновиков, зависят от этого модуля. |
Операция переиндексации |
org.unidata.mdm.job.reindex |
Модуль операции переиндексации данных. |
Основной модуль сопоставления |
org.unidata.mdm.matching.core |
Основной модуль матчинга (сопоставления данных). Содержит модель матчинга. Содержит сервисы для выполнения матчинга и работы с кластерами дубликатов. |
Данные матчинга (сопоставления данных) |
org.unidata.mdm.matching.data |
Модуль, связывающий модуль данных с модулем матчинга. Содержит сегменты (потоков выполнения) для применения матчинга, а также фракции матчинга для операции переиндексации данных. |
Postgres хранилище данных матчинга (сопоставления) |
org.unidata.mdm.matching.storage.postgres |
Модуль хранилища данных для сопоставления. Использует для хранения данных БД PostgreSQL и предоставляет алгоритм сопоставления п |
UniData Meta модуль |
org.unidata.mdm.meta |
Модуль абстрактной модели данных. Содержит обобщенные типы, примитивы и прочее, необходимое для реализации различных моделей данных Также содержит сервисы перечислений, единиц измерений и систем-источников. |
REST модуль System |
org.unidata.mdm.rest.system |
Модуль общих типов и примитивов REST API системы. Не содержит реализаций, используется для создания REST API прочих модулей. |
Пакетные операции REST |
org.unidata.mdm.rest.v2.bulk.core |
REST API v2 модуля пользовательских пакетных операций. |
Основной REST модуль |
org.unidata.mdm.rest.v2.core |
REST API v2 модуля общих сервисов системы. |
REST Модуль данных V2 |
org.unidata.mdm.rest.v2.data |
REST API v2 работы с данными: атомарные запросы, избранное, записи и связи и т.д. |
REST модуль качества данных (DQ) |
org.unidata.mdm.rest.v2.dq.core |
REST API v2 управления моделью качества (функции качества, правила). |
REST DQ данных |
org.unidata.mdm.rest.v2.dq.data |
REST API v2 сегментов результата проверки (для рендеринга операций над данными) и сервисы проверки записей. |
REST модуль черновиков |
org.unidata.mdm.rest.v2.draft |
REST API v2 модуля черновиков (org.unidata.mdm.draft). |
REST сопоставления |
org.unidata.mdm.rest.v2.matching.core |
REST API v2 управления моделью сопоставления (таблицы, алгоритмы, назначения и т.д). |
REST сопоставления данных |
org.unidata.mdm.rest.v2.matching.data |
REST API v2 сегментов результата сопоставления (для рендеринга операций над данными). |
UniData V2 REST Meta |
org.unidata.mdm.rest.v2.meta |
REST API v2 работы с моделью данных: перечисления, системы источники, реестры/справочники/связи, группы и т.д. |
REST поиска V2 |
org.unidata.mdm.rest.v2.search |
REST API v2 модуля поиска (org.unidata.mdm.search). |
Модуль поиска UniData |
org.unidata.mdm.search |
Модуль поиска. Выполняет все задачи, связанные с поисками в системе, а именно: управление (включая создание) поисковыми индексами, выполнение поисковых запросов и т.д. Реализовано на базе Opensearch. |
Модуль System |
org.unidata.mdm.system |
Системный обязательный модуль. Содержит различные сервисы по работе с модулями, потоками выполнения, запуска системы, пространств имен, миграции БД и прочее. Обязательный модуль для работы приложения, построенного на базе системы, и содержит необходимый минимум для поддержки модульной архитектуры, и модулей на ее базе. |
Операция консолидации данных |
org.universe.mdm.job.duplicate |
Модуль пакетной операции консолидации. |
Операция матчинга (сопоставления) |
org.universe.mdm.job.matching |
Модуль пакетной операции сопоставления. |
Операция переприменения данных |
org.universe.mdm.job.reapply |
Модуль пакетной операции переприменения данных. |
Маркирование |
org.universe.mdm.marks |
Модуль маркирования различных объектов платформы (например, оценки и комментарии). |
REST Оценок V1 |
org.universe.mdm.rest.v1.marks |
REST API v1 модуля маркирования объектов. |
Использование Frontend-модулей¶
Система Юниверс MDM содержит множество точек расширения, каждая из которых имеет свой идентификатор.
Модули содержат в себе набор расширений. Таким образом, при подключении модуля, его расширения подставляются в точки расширения приложения. При этом имеется возможность переопределить какое-то расширение через стандартный механизм (UI UserExits).
Каждая точка расширения предоставляет контракт по взаимодействию родительского и дочернего модулей. Родительским модулем считается модуль, в который встраивается расширение, а дочерним тот, который встраивается в родительский.
Взаимодействие между дочерними модулями возможно только через родителя-посредника. Например, могут быть базовые взаимодействия на базе контрактов. Для написания особых взаимодействий родительский модуль должен быть расширяемым.
Компонент модуля может как хранить данные самостоятельно, так и принимать их снаружи через контракт.