/
CPS Data Notifications Overview

CPS Data Notifications Overview

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

Issue

Notes

Decision

Topic names

Jan 27, 2025

  • for now, between [#13b, #2 and #12] only #12 is/can be changed that won’t impact clients

Jan 27, 2025

  • #12 is a starting point to be changed as part of ‘inventory-events’ topic as it was requested and not used by any client at the moment

  • ‘inventory-events’ relates to all events that is related to the meta-data of a cm handle

Topic env naming convention

Jan 27, 2025

  • Current topic envs cannot be change and needs agreement with topic

Jan 27, 2025

  • from here on, spring default naming convention will be used based on the application.yaml hierarchy structure

Schema names

Jan 27, 2025

  • to be proposed and agreed with stakeholders

 

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
Event

Notes

#

Description

Source

Topic

Destination

Trigger

Cloud
Event

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 CM-Handle LCM (LifeCycle Management) events

NCMP

ncmp-events

External (NCMP) Clients

NCMP CM-Handle State Change
(registration use-case)

N/A

No*

  1. See also CM-Handle State Changes and Notifications Overview

  2. On by default, can be disabled using notification.enabled

  3. AlternateId has been added (Spring 2024)

  4. *Cloud Version Pending (blocked by Ericsson as it is backward incompatible) see https://gerrit.onap.org/r/c/cps/+/137080

3

CPS-Core Data AVC

CPS-Core

  • determined by cps-core-subscription(s) 

  • 0-n topics possible*

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

  1. Open issue: how to translate an ONAP device ID to a CM Handle ID?!

In-Progress

7(a)

Subscription Notification Event

DME
(Data Mgmt and Exposure)

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:

  • href → can be mapped to cm-handle by plugin (without additional information from other fields)

  • path → can be mapped to xpath by plugin 

In-Progress

11

TrustLevel Changes

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-CM Event

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)

Cm Data Change

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.

 

BatchOperation

NCMP

Client Provided Topic

External Clients





Yes

 

Jan 29, 2025
previously #10 (see old diagram)

 

NCMP Data AVC (forwarding #5)

NCMP

  • determined by ncmp-subscription(s) 

  • 0-n topics possible*

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.
One cm-handle can have 0-many topics
The 'predicate' information is only to be forwarded to the DMI Plugin does not need to be stored (TBC with @kieran mccarthy )

 

Jan 29, 2025

previously #3 (see old diagram)

 

DMI Data AVC (Attribute Value Change)

DMI-Plugin

TBD

NCMP

Depends on DMI-Plugin

  • ONAP: VES Events from Device

#6a
#7

Yes

  1. Format (schema) of the Event is defined by (in) NCMP

  2. Topic names is defined by NCMP

  3. For passthrough datastore NCMP will emit a NCMP Data AVC (#3). Do we need to check tHE Datastore or just the cache enabled flag?

  4. If data is cached this event should lead to a CPS-Core(Cache) update and a CPS-Core Data AVC (#4)

 

Jan 29, 2025

previoulsy #5 (see old diagram)

 

 

 



NCMP → Client Apps

 

NCMP → Client Apps

 

event #

1(b)

1(d)

2

12

13(b)

7(d)

topic name

client provided topic

client provided topic

ncmp-events

ncmp-inventory-events

cm-events

subscription-response

topic env

-

-

LCM_EVENTS_TOPIC

  • use spring default naming convention

NCMP_CM_EVENTS_TOPIC

CM_SUBSCRIPTION_NCMP_OUT_TOPIC

topic yaml

-

-

app.lcm.events.topic

app.ncmp.avc.inventory-events-topic

app.ncmp.avc.cm-events-topic

app.ncmp.avc.cm-subscription-ncmp-out

event name

NCMP-Async Event

NcmpAsyncRequestResponseEvent

NCMP-Async Event

DataOperationEvent

CM handle LCM Event

Inventory Event

CM Data Change

Subscription Notification Event?

schema id

urn:cps:org.onap.cps.ncmp.events:ncmp-async-request-response-event-schema:v1

urn:cps:org.onap.cps.ncmp.events.async:data-operation-event-schema:1.0.0

urn:cps:org.onap.ncmp.cmhandle.lcm-event:v1

urn:cps:org.onap.cps.ncmp.events:inventory-event-schema:1.0.0

urn:cps:org.onap.cps.ncmp.events:avc-event-schema:1.0.0

urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-ncmp-out-event-schema:1.0.0

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

org.onap.cps.ncmp.impl.data.async.AsyncRestRequestResponseEventConsumer (consumes and forwards)

org.onap.cps.ncmp.impl.data.async.DataOperationEventConsumer (consumes and forwards)

org.onap.cps.ncmp.impl.inventory.sync.lcm.LcmEventsService(calls Events publisher)

org.onap.cps.ncmp.utils.events.CmAvcEventPublisher

org.onap.cps.ncmp.impl.cmnotificationsubscription.cmavc.CmAvcEventConsumer (consumes and forwards)

org.onap.cps.ncmp.impl.cmnotificationsubscription.ncmp.NcmpOutEventProducer

 

CPS → Client Apps

CPS → Client Apps

event #

3

topic name

cps-data-updated-events

topic env

CPS_CHANGE_EVENT_TOPIC

topic yaml

app.cps.data-updated.topic

event name

CPS Data AVC (Other DS)

schema id

urn:cps:org.onap.cps:data-updated-event-schema:1.0.0

schema folder

/schemas/cps.dataupdated/

schema file name

cps-data-updated-event-schema-1.0.0.json

Producer

org.onap.cps.events.CpsDataUpdateEventsService

DME → NCMP

DME → NCMP

event #

7

topic name

subscription

topic env

CM_SUBSCRIPTION_NCMP_IN_TOPIC

topic yaml

app.ncmp.avc.cm-subscription-ncmp-in

event name

Subscription Notification

schema id

urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-ncmp-in-event:1.0.0

schema folder

schemas/ncmp/avc/

schema file name

ncmp-in-event-schema-1.0.0.json

Consumer

org.onap.cps.ncmp.impl.cmnotificationsubscription.ncmp.NcmpInEventConsumer

NCMP → DMI(s)

 

NCMP → DMI(s)

 

event #

7(b)

topic name

ncmp-dmi-cm-avc-subscription

topic env

CM_SUBSCRIPTION_DMI_IN_TOPIC

topic yaml

app.ncmp.avc.cm-subscription-dmi-in

event name

Subscription Notification Event?

schema id

urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-dmi-in-event-schema:1.0.0

schema folder

schemas/ncmp/avc/

schema file name

dmi-in-event-schema-1.0.0.json

Consumer

org.onap.cps.ncmp.impl.cmnotificationsubscription.dmi.DmiInEventProducer

DMI(s) → NCMP

 

 

 

 

 

DMI(s) → NCMP

 

 

 

 

 

event #

1(a)

1(c)

7(c)

11

13(a)

topic name

ncmp-async-m2m

ncmp-async-m2m

dmi-ncmp-cm-avc-subscription

dmi-device-heartbeat

dmi-cm-events

topic env

NCMP_ASYNC_M2M_TOPIC

NCMP_ASYNC_M2M_TOPIC

CM_SUBSCRIPTION_DMI_OUT_TOPIC

DMI_DEVICE_HEARTBEAT_TOPIC

DMI_CM_EVENTS_TOPIC

topic yaml

app.ncmp.async-m2m

app.ncmp.async-m2m

app.ncmp.avc.cm-subscription-dmi-out

app.dmi.device-heartbeat.topic

app.dmi.cm-events.topic

event name

NCMP-Async Event

DmiAsyncRequestResponseEvent

NCMP-Async Event

DataOperationEvent

Subscription Notification Event?

TrustLevel

CM Data Change

schema id

urn:cps:org.onap.cps.ncmp.events:dmi-async-request-response-event-schema:v1

urn:cps:org.onap.cps.ncmp.events.async:data-operation-event-schema:1.0.0

urn:cps:org.onap.cps.ncmp.events:cm-notification-subscription-dmi-out-event-schema:1.0.0

urn:cps:org.onap.cps.ncmp.events:device-trust-level-event-schema:1.0.0

urn:cps:org.onap.cps.ncmp.events:avc-event-schema:1.0.0

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

org.onap.cps.ncmp.impl.data.async.AsyncRestRequestResponseEventConsumer

org.onap.cps.ncmp.impl.data.async.DataOperationEventConsumer (consumes and forwards)

org.onap.cps.ncmp.impl.cmnotificationsubscription.dmi.DmiOutEventConsumer

org.onap.cps.ncmp.impl.inventory.trustlevel.DeviceTrustLevelMessageConsumer

org.onap.cps.ncmp.impl.cmnotificationsubscription.cmavc.CmAvcEventConsumer

 

**Old diagram
Old Component Diagram

 

Related content