udmi

UDMI / Docs / Specs / Mapping

Mapping

The overall “mapping” flow consists of a number of separate subflows stitched together for a complete end-to-end process to take an “unknown” device and ensure that it’s properly integrated with backend services.

At a high-level, the process involves different message subgroups that handle slightly different scopes of device data:

Sequence Diagram

The overall mapping sequence involves multiple components that work together to provide the overall flow:

sequenceDiagram
  %%{wrap}%%
  participant Devices as Devices<br/>(w/ Spotter)
  participant Provisioning Engine
  participant UDMIS
  participant Mapping Service
  participant Source Repo 
  participant Modeling Phase
  Devices->>Provisioning Engine: Incremental Results<br/>(Discovery Events)
  Provisioning Engine->>UDMIS: Incremental Results
  Devices->>Mapping Service: Discovery Complete Event
  Source Repo->>Mapping Service: Base Model Import
  UDMIS->>Mapping Service: All Results
  Note over Mapping Service: Map Results
  Mapping Service->>Source Repo: 'discovery' branch
  Source Repo-->>Modeling Phase: Notify branch updated

The Mapping Service subscribes to the udmi_target topic. When it receives a Discovery Complete event, it initiates the mapping process.

Key Workflow Steps

Example Test Setup

A standalone test-setup can be used to emulate all the requisite parts of the system.

Cloud PubSub subscriptions (the defaults) on the udmi_target topic (need to be manually added):

Local environment setup (e.g.):

Mock Device and Spotter

The pubber reference provides for both the device and spotter bits of functionality (AHU-1 in this case).

$ bin/pubber sites/udmi_site_model/ $project_id AHU-1 832172
...
INFO daq.pubber.Pubber - 2022-08-30T01:46:29Z Discovery scan starting virtual as 2022-08-30T01:46:29Z
...
INFO daq.pubber.Pubber - 2022-08-30T01:45:57Z Sent 1 discovery events from virtual for Mon Aug 29 18:45:43 PDT 2022
...

Mapping Agent

The mapping agent configures the on-prem discovery node (AHU-1) to perform periodic discovery runs.

$ validator/bin/mapping agent sites/udmi_site_model/ $project_id AHU-1
...
Received new family virtual generation Mon Aug 29 18:47:43 PDT 2022
...

Mapping Service

The mapping service receives discovery complete and mapping events to perform the mapping process.

$ services/bin/mapping_service //pubsub/bos-platform-dev/namespace //gbos/bos-platform-dev/namespace tmp/udmi/sites/ --local
...
Received discovery event for generation Mon Aug 29 18:48:43 PDT 2022
...