General info

Common

Unidata CE use:

  • PostgreSQL for persisting data (12.x and above)

  • Hazelcast (4.2) for distributed computations and caching support

  • Spring (5.2.x) for managing the application

  • Apache Tomcat (7.x) for running the application

  • Apache Camel (3.3) for integration with customer messaging systems

  • Apache POI (3.17) for generation of OOXML output

  • Elasticsearch (7.6.x) for indexing and searching

  • Many other open source libraries

Based on Java and requires at least Java 11 to compile.

Gitlab projects

Unidata CE is hosted in Gitlab as a group containing several projects:

  • unidata-platform: Main project that contains the Unidata CE runtime template. With this project you can run Unidata CE through the Docker (Quick start). You can also make your own environment with the necessary settings, such as database parameters, number of nodes, etc. The template is assembled from projects unidata-platform-backend and unidata-platform-ui.

  • unidata-platform-backend: Backend development project for Unidata CE. It can be used for building your own distribution, interacting with the UI (including custom), or as a starting point for your own MDM system implementation.

  • unidata-platform-ui: Frontend development project for Unidata CE. It can be used for building your own distribution, interacting with the backend (including custom), or as a starting point for your own MDM system implementation.

  • unidata-platform-ui-cli: Tools for building unidata-platform-ui.

  • unidata-ui-template: UI application template. Allows to create your own application based on the unidata-platform-ui project.

  • juni: Contains the UI testing framework and ready-made tests.

Current state

Currently, our open source part consists of the following modules:

  1. org.unidata.mdm.system - contains base types and interfaces
    • ModuleService - the module metadata and discovery service

    • PipelineService - the service, managing execution pipelines

    • ExecutionService - pipeline execution and processing service

    • RuntimePropertiesService - runtime properties, which can be read and modyfied cluster wide

  2. org.unidata.mdm.core - contains security and utility services
    • SecurityService - login, logout, token (in)validation support service

    • EventService - a service for cluster wide event sending and subscription

    • AuditService - audit service

    • UPathService - a simple “UPath notation on DataRecord” interpreter

  3. org.unidata.mdm.search - contains search services and interfaces
    • SearchService - search services facade with access to mapping, indexing and search

  4. org.unidata.mdm.meta - contains meta model creation, modification, query and management services
    • MetaModelService - a service responsible for persisting and query of meta model entities

    • MetaDraftService - a service, allowing one to save a metamodel draft and to apply it to current metamodel after a number of modifications

  5. org.unidata.mdm.data - contains services around data and relations between data records
    • DataRecordService - data management facade service

    • DataStorageService - storage metadata management service

    • RecordValidationService - checks a DataRecord for validity