CPS Data Notifications Overview
- 2 #
Introduction
This page given an high level overview of Notifications used by CPS/NCMP for communication wit system outside CPS/NCMP about data changes.
There are also notifications used for asynchronous method calls but there are kept out this overview for the sake of simplicity.
Issues and Decisions
Issue | Notes | Decision |
---|---|---|
Topic names | Jan 27, 2025
| Jan 27, 2025
|
Topic env naming convention | Jan 27, 2025
| Jan 27, 2025
|
Schema names | Jan 27, 2025
|
|
Schema folder structure |
| Jan 27, 2025
|
See also: CPS-1489: Overview of Kafka Topics in CPS Components
Component Diagram
Event Descriptions
# | Description | Source | Topic | Destination | Trigger | Cloud | Notes | |
---|---|---|---|---|---|---|---|---|
1(a) | DmiAsyncRequestResponseEvent (NCMP-Async Event) | DMI | ncmp-async-m2m | NCMP | DMI async request response |
| No |
|
1(b) | NcmpAsyncRequestResponseEvent (NCMP-Async Event) | NCMP | Client target topic | External (NCMP) Clients | DMI async request response |
| No |
|
1(c) | DataOperationEvent (NCMP-Async Event) | DMI | ncmp-async-m2m | NCMP | Batch data operation |
| Yes |
|
1(d) | DataOperationEvent (NCMP-Async Event) | NCMP | Client target topic | External (NCMP) Clients |
|
| Yes |
|
2 | NCMP | ncmp-events | External (NCMP) Clients | NCMP CM-Handle State Change | N/A | No* |
| |
3 | CPS-Core Data AVC | CPS-Core |
| External Clients | Data Change & CPS-Core Subscription | #7 | No | Any client can subscribe to CPS-Core for any data subscription. The subscription wil include the topic to be used |
6 | VES Event | ONAP Devices | ONAP DMI Plugin | Change on Device | #7 | No |
In-Progress | |
7(a) | DME | subscription | NCMP | User driven? CRUD operation Notification Subscriptions | #6b | Yes | See also
The source can be anything that is authorized and knows the subscription event schema. It will be up to the encapsulating 'product' e.g. ONAP to decide if applications should use this interface directly. From NCMP perspective this is an access control challenge – If you are authorized to write to the cm-avc-subscription topic, NCMP will react | |
7(b) | NCMP | ncmp-dmi-cm-avc-subscription | DMI |
|
|
|
| |
7(c) | DMI | dmi-ncmp-cm-avc-subscription | NCMP |
|
|
|
| |
7(d) | NCMP | subscription-response | DME |
|
|
|
| |
8 | Proprietary AVC | Proprietary Devices | N/A | Proprietary DMI Plugin | Change on Device | N/A | No | Irrelevant to ONAP Solution might not even by an 'event'. As long as it can be converted into a DMI Data AVC (#5) |
9 | VES Event | ORAN Devices | Proprietary DMI Plugin | Change on Device | No | Similar to #6 above. Main fields:
In-Progress | ||
11 | DMI | dmi-device-heartbeat | NCMP | Yes | ||||
12 | Inventory Event | NCMP | ncmp-inventory-events | External Clients | Yes | April 2024,: Only used to forward TrustLevel Changes | ||
13(a) | DMI/Devices | dmi-cm-events | NCMP | Any change in the configuration in the devices | Yes | This is to notify NCMP about any CM change that happened in the network. This event is also supposed to be used together with the Cm Subscriptions( to route to the defined topic - future work ) | ||
13(b) | NCMP | cm-events | External Clients | Any change in the configuration in the devices and NCMP forwards to this topic | Yes | Whatever event is received from 13a is been forwarded by NCMP to external clients. | ||
| NCMP | Client Provided Topic | External Clients | Yes |
Jan 29, 2025 | |||
| NCMP |
| External (NCMP) Clients | DMI Data AVC on passthrough datastore & NCMP Subscription | #6a | No | The notifications should be on the set of topics specified by the union of all relevant subscriptions. This is why there is a difference between the subscription model (visible to a client/subscriber) and the subscription model used internally – The notification should not need to calculate, only look up the set of topics to emit on.
Jan 29, 2025 previously #3 (see old diagram) | |
| DMI Data AVC (Attribute Value Change) | DMI-Plugin | TBD | NCMP | Depends on DMI-Plugin
| #6a | Yes |
Jan 29, 2025 previoulsy #5 (see old diagram) |
NCMP → Client Apps |
| |||||
---|---|---|---|---|---|---|
event # | 1(b) | 1(d) | 2 | 12 | 13(b) | 7(d) |
topic name | client provided topic | client provided topic |
|
|
|
|
topic env | - | - |
|
|
|
|
topic yaml | - | - |
| app.ncmp.avc.inventory-events-topic |
|
|
event name | NCMP-Async Event NcmpAsyncRequestResponseEvent | NCMP-Async Event DataOperationEvent | CM handle LCM Event | Inventory Event | CM Data Change | Subscription Notification Event? |
schema id |
|
|
|
|
|
|
schema folder | schemas/ | schemas/async/ |
| schemas/ncmp/avc/ | /schemas/dmi/cm-events/ | schemas/ncmp/avc/ |
schema file name | ncmp-async-request-response-event-schema-v1.json | data-operation-event-schema-1.0.0.json | lcm/lcm-event-schema-v1.json | inventory-event-schema-1.0.0.json | avc-event-schema-1.0.0.json | ncmp-out-event-schema-1.0.0.json |
Producer |
|
|
|
|
|
|
CPS → Client Apps | |
---|---|
event # | 3 |
topic name |
|
topic env |
|
topic yaml |
|
event name | CPS Data AVC (Other DS) |
schema id |
|
schema folder | /schemas/cps.dataupdated/ |
schema file name | cps-data-updated-event-schema-1.0.0.json |
Producer |
|
DME → NCMP | |
---|---|
event # | 7 |
topic name | subscription |
topic env |
|
topic yaml |
|
event name | Subscription Notification |
schema id |
|
schema folder | schemas/ncmp/avc/ |
schema file name | ncmp-in-event-schema-1.0.0.json |
Consumer |
|
NCMP → DMI(s) |
|
---|---|
event # | 7(b) |
topic name |
|
topic env |
|
topic yaml |
|
event name | Subscription Notification Event? |
schema id |
|
schema folder | schemas/ncmp/avc/ |
schema file name | dmi-in-event-schema-1.0.0.json |
Consumer |
|
DMI(s) → NCMP |
|
|
|
|
|
---|---|---|---|---|---|
event # | 1(a) | 1(c) | 7(c) | 11 | 13(a) |
topic name |
|
|
|
|
|
topic env |
|
|
|
|
|
topic yaml |
|
|
|
|
|
event name | NCMP-Async Event DmiAsyncRequestResponseEvent | NCMP-Async Event DataOperationEvent | Subscription Notification Event? | TrustLevel | CM Data Change |
schema id |
|
|
|
|
|
schema folder | schemas/ | schemas/async/ | schemas/ncmp/avc/ | schemas/dmi/device-heartbeat/ | /schemas/dmi/cm-events/ |
schema file name | dmi-async-request-response-event-schema-v1.json | data-operation-event-schema-1.0.0.json | dmi-out-event-schema-1.0.0.json | device-trust-level-event-schema-1.0.0.json | avc-event-schema-1.0.0.json *event is consumed as is |
Consumer |
|
|
|
|
|
**Old diagram