ELM-Sync Overview
CDCM can be used to for example organize parts in a Bill of Materials (BOM). Each part could be a configuration, or contribution to a configuration representing the resources represented by the part in a storage location.
Some of the configuration items in a CDCM configuration could have storage locations of type OSLC Configuration Provider, such as:
Engineering Requirements Management DOORS Next
Engineering Test Management
Engineering Workflow Management
These configuration items represent requirements, test plans, or development plans that are parts of the CDCM Unit.
CDCM users will navigate the Units, Configurations and Configuration Items in a Configuration Area to access the parts used in their projects. When accessing a Configuration Item show Storage Location is an ELM OSLC Configuration Provider, the users will be able to navigate to the local configuration that contains the correct versions of the ELM resources.
A CDCM configuration could have configuration items for local configurations of DOORS Next, ETM, RMM, EWM, etc. that all need to resolve to the correct versions when accessing and navigating these resources in ELM. An ELM Global Configuration is used to organize the contribution in ELM into a hierarchy that selects the version resources across the ELM servers.
The elm-sync application creates ELM GCM, project areas, component, configurations and contributions that mirror the configurations in CDCM so users can access the correct versions of resources across CDCM, ELM and the ELM servers.
See CDCM ELM Sync Requirements for a summary of the ELM Sync requirements and its overall architecture as agreed with Bosch.
elm-sync is implemented as a Spring Boot web application that uses its application.yml file to configure the CDCM spaces and configuration areas that should be synchronized. The initial synchronization maps CDCM resources to ELM resources according to the following table.
CDCM | ELM | OSLC | Notes |
---|
CDCM | ELM | OSLC | Notes |
---|---|---|---|
Space | GC Server | OSLC Config Server | The unit of connectivity, authentication, API access |
Configuration Area | GC Project Area | ServiceProvider | Contains global configurations and contribution with the leaf nodes being contributed local configurations that provide the selection resources |
Unit | Component | Component | A container of VersionResources for types and instances |
Configuration | Configuration | Configuration | Baseline or Stream in a Component that organizes specific versions of related resources, a PLM Part in a BOM |
Configuration Item | Contribution | Contribution | Contribution of a Configuration to another to create a hierarchy of configurations across different servers, a PLM PartUsage in a BOM |
Once elm-sync completes an initial synchronization, it uses a scheduler to periodically access CDCM TRS change events and updates the ELM GCM resources to correspond to the changes in CDCM.
elm-sync uses a local SQLite database to save configuration information from the application.yml file, and to store the mappings between CDCM and ELM GCM resources, including the last seen trs:change trs:order number to know what CDCM change events to process on the next scheduled scan. \