Modular Architecture¶
Unidata system consists of a set of modules, which allows you to create MDM-systems with only the necessary tools and functions. The modular architecture has the following features:
There are frontend and backend modules.
There are free modules and proprietary ones.
A single MDM tool can be contained in a single module or in several modules at once. Thus, it may be necessary to connect several modules to use individual tools.
There are several editions of the system which are ready-made sets of modules.
There is a system set of modules without which the system is not capable of working.
List of Modules¶
Module |
Editions |
Description |
---|---|---|
org.unidata.mdm.system |
CE, EE, SE |
System mandatory module. Contains various services for working with modules, pipelines, platform startup, namespaces, database migration and other. A mandatory module for running an application built on the platform. Contains the minimum necessary to support modular architecture, and modules based on it |
org.unidata.mdm.search |
CE, EE, SE |
Search module. Allows to perform all tasks related to platform searching, such as: management (including creation) of search indexes, execution of search queries, etc. Current implementation is based on ElasticSearch |
org.unidata.mdm.core |
CE, EE, SE |
Module of common platform services. Contains various auxiliary services that provide common and/or auxiliary functionality for other modules. In particular: services of security subsystem, background operations, audit, monitoring, owners, etc. |
org.unidata.mdm.meta |
CE, EE, SE |
Module of abstract data model. Contains generalized types, primitives, and other things needed to implement various data models. Also contains enumerations, units, and source systems |
org.unidata.mdm.data |
CE, EE, SE |
Data module. Contains everything related to data: data model, services to perform operations on records and data, etc. |
org.unidata.mdm.draft |
CE, EE, SE |
Module that contains everything related to drafts. Other modules that use the functionality of drafts depend on this module |
org.unidata.mdm.dq.core |
CE, EE, SE |
Main Data Quality module. Contains the data quality model and common standard functions. Provides the main entry point for applying quality rules |
org.unidata.mdm.dq.data |
CE, EE, SE |
Module that connects data module with the DQ module. Contains segments (pipelines) for applying quality rules as well as standard functions that apply only to data module objects |
org.unidata.mdm.bulk.core |
CE, EE, SE |
Batch operations module. Contains a service for working with batch operations: registration, launching, etc. |
org.unidata.mdm.matching.core |
CE, EE, SE |
Main module of matching (data matching). Contains the matching model. Contains services for performing matching and working with duplicate clusters |
org.unidata.mdm.matching.data |
CE, EE, SE |
Module that connects data module with the matching module. Contains the segments (pipelines) for applying the matching, as well as the matching fractions for the data reindexing operation |
org.unidata.mdm.matching.storage.postgres |
CE, EE, SE |
Module of data storage for matching. Uses the PostgreSQL database to store data and provides an exact match algorithm |
org.unidata.mdm.transform |
CE, EE, SE |
UPath-based data mapping (transformation) module. Contains a mapping model and a service for data transformation |
org.unidata.mdm.job.reindex |
CE, EE, SE |
Module of data reindexing operation |
org.unidata.mdm.rest.system |
CE, EE, SE |
Module of general types and primitives of the REST API platform. Does not contain implementations, used to create REST APIs of other modules |
org.unidata.mdm.rest.core |
CE, EE, SE |
REST API of common platform services. Contains APIs for security subsystem, operations, configuration, pipelines, etc. |
org.unidata.mdm.rest.v1.data |
CE, EE, SE |
REST API v1 of working with data: atomic queries, favorites, records and relations, etc. |
org.unidata.mdm.rest.v1.meta |
CE, EE, SE |
REST API v1 of working with data model: enumerations, source systems, entities/lookup entities/relations, groups, etc. |
org.unidata.mdm.rest.v1.draft |
CE, EE, SE |
REST API v1 of drafts module (org.unidata.mdm.draft). |
org.unidata.mdm.rest.v1.search |
CE, EE, SE |
REST API v1 of check module (org.unidata.mdm.search). |
org.unidata.mdm.rest.v1.dq.core |
CE, EE, SE |
REST API v1 of quality model management (quality functions, rules) |
org.unidata.mdm.rest.v1.dq.data |
CE, EE, SE |
REST API v1 of check result segments (for rendering data operations) and record check services |
org.unidata.mdm.rest.v1.matching.core |
CE, EE, SE |
REST API v1 of matching model management (tables, algorithms, assignments, etc.) |
org.unidata.mdm.rest.v1.matching.data |
CE, EE, SE |
REST API v1 of matching result segments (for rendering data operations) |
org.unidata.mdm.rest.v1.bulk.core |
CE, EE, SE |
REST API v1 of the custom batch operations module |
org.unidata.mdm.rest.v1.transform |
CE, EE, SE |
REST API v1 of record transformation module (record model mapping) |
org.unidata.mdm.rest.v2.data |
CE, EE, SE |
REST API v2 of working with data: atomic queries, favorites, records and relations, etc. |
org.unidata.mdm.rest.v2.meta |
CE, EE, SE |
REST API v2 of working with data model: enumerations, source systems, entities/lookup entities/relations, groups, etc. |
org.unidata.mdm.rest.v2.draft |
CE, EE, SE |
REST API v2 of drafts module (org.unidata.mdm.draft) |
org.unidata.mdm.rest.v2.search |
CE, EE, SE |
REST API v2 of check module (org.unidata.mdm.search) |
org.unidata.mdm.rest.v2.dq.core |
CE, EE, SE |
REST API v2 of quality model management (quality functions, rules) |
org.unidata.mdm.rest.v2.dq.data |
CE, EE, SE |
REST API v2 of check result segments (for rendering data operations) and record check services |
org.unidata.mdm.rest.v2.matching.core |
CE, EE, SE |
REST API v2 of matching model management (tables, algorithms, assignments, etc.) |
org.unidata.mdm.rest.v2.matching.data |
CE, EE, SE |
REST API v2 of the matching result segments (for rendering data operations) |
org.unidata.mdm.rest.v2.bulk.core |
CE, EE, SE |
REST API v2 of the custom batch operations module |
org.unidata.mdm.metadriven.core |
CE, EE, SE |
Main Metadata-driven REST API module. Provides data operations in the “natural” form of REST API. The structure of objects transferred within the API depends on the data model |
org.unidata.mdm.rest.v1.metadriven |
CE, EE, SE |
REST API v1 of Metadata-driven REST API module |
com.unidata.mdm.crawler.postgres |
EE, SE |
Reference implementation of the PostgreSQL data crawler |
com.unidata.mdm.job.migrate |
EE, SE |
Data migration operation from Unidata MDM 5.X to 6.X |
com.unidata.mdm.bulk.remove.records |
EE, SE |
Custom batch operation of deleting records |
com.unidata.mdm.rest.v1.bulk.remove.records |
EE, SE |
REST API v1 of custom batch operation to delete records |
com.unidata.mdm.rest.v2.bulk.remove.records |
EE, SE |
REST API v2 of custom batch operation to delete records |
com.unidata.mdm.job.export.data |
EE, SE |
Background batch operation of data export |
com.unidata.mdm.bulk.export.records.xlsx |
EE, SE |
Custom batch operation to export records to Excel |
com.unidata.mdm.rest.v1.bulk.export.records.xlsx |
EE, SE |
REST API v1 of custom batch operation to export records to Excel |
com.unidata.mdm.rest.v1.workflow.core |
EE, SE |
REST API v1 of workflows management module |
com.unidata.mdm.rest.v2.workflow.core |
EE, SE |
REST API v2 of workflows management module |
com.unidata.mdm.workflow.core |
EE, SE |
Basic workflows management (BPMN) module. Supports the management and execution of arbitrary BPMN processes. Built on Camunda |
com.unidata.mdm.workflow.data |
EE |
Module for connecting workflows management modules and data module. Contains the components required to build interaction between modules when events occur in each of them, and to ensure the transfer of such events between modules |
com.unidata.mdm.license |
EE, SE |
License checking module |
com.unidata.mdm.rest.v1.license |
EE, SE |
REST API v1 of the license validation module |
com.unidata.mdm.system.limits |
EE, SE |
Module for setting various system restrictions. Regulates the availability of workflows, entities, cores, etc. |
com.unidata.mdm.ee |
EE |
Module with unique for EE functionality (initialization of some license fields with standard values for EE, guest mode, etc.) |
com.unidata.mdm.se |
SE |
Module with unique for SE functionality (initialization of some license fields with standard values for SE, etc.) |
Frontend Modules Usage¶
Unidata system contains many extension points, each with its own identifier. Modules contain a set of extensions. Thus, when a module is connected, its extensions are substituted for the application’s extension points. At the same time, it is possible to override an extension through a standard mechanism (UI UserExits). Each extension point provides a contract for interaction between parent and child modules.
Parent module is the module in which the extension is embedded.
Child module is the one that is embedded in the parent.
Interaction between child modules is only possible through a parent intermediary. For example, there can be basic contract-based interactions. To write special interactions, the parent module must be extensible.
A module component can both store data on its own and receive data from the outside through a contract.