The Unidata platform consists of a set of modules, allowing you to create MDM systems with only the tools and features you need.
The modular architecture has the following features:
Different frontend and backend modules.
Different free and proprietary modules.
An individual MDM tool can be contained in a single module or in several at once. Thus, you may need to connect several modules in order to use some tools.
There are several versions of the platform, which are ready-made sets of modules.
There is a system set of modules required for the platform to work.
The Unidata platform license contains information about all modules available to the user.
A description of the platform modules can be found below.
System. System module. Collection of all app types.
Search. System module. The utility module is the only way to interact with ElasticSearch. The service provides the following features:
Managing the settings of the entire cluster through the ES settings;
Managing (create/delete/open/close/update settings) the index;
Core. System module. The basic app functions. The module contains:
Access rights service;
User and role management services;
System maintenance service;
Data processing services;
Draft. Provides a single service for working with drafts
DQ core (included in Community Edition). Uses data quality rules. Can work both in streaming mode and with the data subsystem (via the Data module).
Meta. Provides working with data model parts:
Data (included in Community Edition). Works with data model and records.
Access to all the functionality for working with records and relations between them, including data storage in the DBMS;
Data model management layer, includes model validation, model storage, and auxiliary services for navigating the data model;
Reindex Job. Implements an operation that allows data to be reindexed.
See also: Backend Module Schemas
System frontend modules:
Types. General application types.
Core. Basic app functions:
Abstract model (data);
Network interaction (network, operation);
Event mechanism (event);
Module management (userexit);
Core-app. Basic functions related to the application.
Uikit. Library of components.
Frontend Community Edition modules (open source):
All the specified modules are included in the default build of the platform distribution kit. All modules except Meta and Data can be made optional via the MODULES environment variable.
Meta. Required module. Handles everything related to the data model. “Data Model” section.
Data. Required module. Performs record search, works with record card, record history, source records, backlinks, etc.
Draft. Required module. Works with data model, classifier and record drafts.
Security. Setting up access rights.
“Security Labels” section;
System access rights;
Selecting users in the “Audit Logs” and “Operations” sections.
System-config. System configuration.
“System Parameters” section;
Audit. “Audit Logs” section.
Job. “Operations” section.
Frontend Enterprise Edition modules (proprietary):
All modules are optional and are specified in the MODULES environment variable.
Classifier. “Classifiers” section and classifiers usage in the app.
In record card;
In workflow settings;
DQ. Data quality rules.
Configuring quality rules in the data model;
Configuring quality rules in classifiers;
Viewing quality rules in the record card;
Viewing quality rules in search results;
Matching. Duplicate search rules.
Search rule settings screen;
Viewing of duplicate clusters in the record card;
Workflow. Workflow processes.
Task counter in the menu;
Using Frontend Modules¶
The Unidata platform contains many extension points (user exits), each with its own identifier. Modules contain a set of extensions. Thus, when you plug in a module, its extensions are connected to the extension points of the application. At the same time, you can override some extension through a standard mechanism (UI UserExits).
Each extension point provides a contract for interaction between parent and child modules. The parent module is the module in which the extension is embedded, and the child module is the module embedded in the parent module.
Interactions between child modules are possible only through the parent intermediary module. For example, there may be basic interactions based on contracts. To write special interactions, the parent module must be available for extensions.
A module component can either store data itself or receive it externally through a contract.