High Level Design (PoC)
The purpose of the page is to:
Design the Model Driven CPS PoC
REQ-384: Define and prove the concept of model driven in the context of CPSDone
Start the design of a stand-alone CPS
Engage with the CPS community on the design of the stand-alone CPS
Review with the ARCHCOM to ensure broad ONAP community awareness and agreed direction
- 1 PoC Overview Diagram
- 2 Scope
- 2.1 Base scope
- 2.2 Stretch target
- 2.3 Proof points
- 2.4 Out of scope
- 3 High Level Design
- 4 Logical view of the CPS as a project
- 5 Data lake and access control
- 5.1 Solution
- 5.2 PoC implemetaion
- 6 Model handling
- 7 Detailed design
- 7.1 Key sequences/flows
- 7.2 Interfaces
- 8 Decision reference
PoC Overview Diagram
Topic Areas
Topic Area | Description |
|---|---|
MODEL DRIVEN SCHEMA: Relates to Design time activities. SDC operation. Distribution of the CSAR and the Model-driven Schema coming from Design time | |
UPDATE: Takes incoming Standards Defined VES event from DCAE (PNF) and is published on DMAAP | |
SYNCHRONIZATION: C&PS synchronizes to A&AI, which allows it to get the latest view of what is in A&AI and align it with the C&PS data records. | |
SERVICE PROVIDER INTERFACE: The C&PS interface to the DBMS | |
C&PS API: The API that allows other micro-services and other components to access C&PS DB with CRUD operations. |
Scope
Base scope
Read/write persisted Configuration Management data:
defined by xNF (simple YANG model), published as YANG
Models deployed @ runtime with no ONAP platform impacts or LCM events
Show the benefits in terms of constraint validation, access and upgrade
Stretch target
Adapt behavior of CPS on read/write based on information in the model:
Change notification emissions driven by the model
Interaction with temporal data store, synergize with State Management PoC
Volatile/prolific xNF data read-through (e.g. state data) – may be used to support histogram
Model made available to CPS (Configuration and Persistency Service) using existing onboarding via SDC
Provide some indication of dimension and user access characteristics that will be provided by CPS
Proof points
Demonstrate Create/read operations using YANG fragments against a CPS backed by very simple schema / schema-less repository
Demonstrate ability to deploy / upgrade YANG fragments at run-time
Demonstrate CPS behavior driven by YANG model
Provide architecture vision and roadmap for a target architecture, supported use cases, non-functional requirements towards an ONAP Project
Out of scope
Automating the ingestion of models from SDC or controller (unless we get to it in the stretch target). The model LCM interface will be exercised manually during the PoC.
Syncing with A&AI. The PoC will work on a fixed topology
High Level Design
Context of CPS
Interface Id | Purpose | ||
|---|---|---|---|
AAIE-1 | Read and maintain relevant parts of the topology | ||
SDCE-6 | React to CSAR packages (on-boarded in SDC) that contain models of interest | ||
CPS-E-01 | Model lifecycle (add and remove models) | ||
CPS-E-02 | Data access interface (CRUD) | ||
CPS-E-03 | Notification of data change (configured by model) |
C4 diagram of main components
Logical view of the CPS as a project
Participant Name | Functional purpose | PoC handling |
|---|---|---|
YANG Model parser | Converts YANG models into java objects | Required |
YANG Data parser | Converts data compliant with a YANG model into java primitives, assists the CPS core | Required |
Model store | Keeps a local cache of the structures and relationships (generated from the YANG models) required by the CPS | Required |
SDC Model loader | Subscribes to DMaaP for CSAR publication. Parses and extracts the models from the CSAR and gives them to the xNF Model Data Proxy | Not required |
Topology sync | Does initial sync and maintains an up to date view of the active topology state. Informs the mirror service of any changes | Not required |
xNF Model Data Proxy | Encapsulation of all model and data access that relates to xNF | Not required |
xNF Proxy Data access | REST interface that provides access to xNF data | Not required |
CPS Core | Provides validation of and access to data. Is agnostic to the DB technology and schema | Required |
CPS Data access | Provides REST CRUD access to the data | Required |
CPS notification | Provides a DMaaP notification in the event that (1) data is changed and (2) it has been tagged/marked for notifcation | Required for stretch |
PostgreSQL plugin | Maps the java primitive representation of the YANG data objects to their DB technology (PostgreSQL) and schema specifics (SQL) | Required |
PostgreSQL | Database Management System for current data | Required |
Temporal [Stack] | Placeholder for logical components representing the temporal handling of data | Not required |
Temporal DB | Database Management System for temporal data | Not required |