Table of Contents |
---|
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 |
|
|
Topic env naming convention |
|
|
Schema names |
| |
Schema File names |
Schema file names will be based on schema names | |
Producer vs Consumer |
Consumer overpowers Producers No use of term Publisher no more - use Producer instead | |
Schema folder structure |
|
See also: CPS-1489: Overview of Kafka Topics in CPS Components
Component Diagram
Gliffy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
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 | Priyank Maheshwari to update | 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 |
|
|
|
|
|
|
|
Not implemented | |
7(a) | Subscription Notification Event Suggestion: ‘subscription maintenance’ | 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 | |||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not implemented | ||
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 *tbd | 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 | | ||||
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. |
- determined by cps-core-subscription(s)
- 0-n topics possible*
Any client can subscribe to CPS-Core for any data subscription. The subscription wil include the topic to be used
previously #3 (see old diagram) | ||||||||
DMI Data AVC (Attribute Value Change) | DMI-Plugin | TBD | NCMP | Depends on DMI-Plugin
| #6a | Yes |
|
- Open issue: how to translate an ONAP device ID to a CM Handle ID?!
(Data Mgmt and Exposure)
See also
- CPS-1065 Spike: CM data notifications from NCMP to applications including subscriptions
- CPS-1393 Define and Onboard YANG model for Subscription Events
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
Similar to #6 above. Main fields:
- href → can be mapped to cm-handle by plugin (without additional information from other fields)
- path → can be mapped to xpath by plugin
April 2024,: Only used to forward TrustLevel Changes
Component Diagram
previoulsy #5 (see old diagram) |
NCMP (Northbound) | ||||||
---|---|---|---|---|---|---|
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 | NcmpAsyncRequestResponseEvent | 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 package | org.onap.cps.ncmp.impl.data.async | org.onap.cps.ncmp.impl.data.async |
|
|
|
|
Producer |
Forwarded by
|
Forwarded by DataOperationEventConsumer |
new: call it producer |
new: call it inventoryEventProducer | Forwarded by
|
<TBD>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