blob: d59429a3665e407d307892907f33d66dc99438d1 [file] [log] [blame]
seshukm9c58cdd2018-08-21 18:48:29 +08001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3.. Copyright 2018 Huawei Technologies Co., Ltd.
LF Jenkins CIc00b2c12020-04-08 20:25:19 +00004.. _architecture:
seshukm9c58cdd2018-08-21 18:48:29 +08005
6SO - Architecture
k.kazaka1131ac2019-07-24 14:28:09 +02007=================
seshukm9c58cdd2018-08-21 18:48:29 +08008
seshukm7a286512018-11-30 13:21:36 +08009SO Functional View
k.kazaka1131ac2019-07-24 14:28:09 +020010------------------
seshukm7a286512018-11-30 13:21:36 +080011
seshukm9c58cdd2018-08-21 18:48:29 +080012.. image:: ../images/SO_Architecture_1.png
13
seshukm7a286512018-11-30 13:21:36 +080014SO Deployment View
15--------------------
16
17.. image:: ../images/SO_Architecture_Internal.png
18
seshukm25c4a842020-04-15 13:44:29 +053019.. image:: ../images/so-architecture.png
20
seshukm9c58cdd2018-08-21 18:48:29 +080021SO Sub-Components
22------------------
23
24**API Handler**
25
26 RESTful interface to northbound clients
k.kazaka1131ac2019-07-24 14:28:09 +020027
28* Handle service-level and infrastructure (VNF & network) requests
29
seshukm9c58cdd2018-08-21 18:48:29 +080030 Service-agnostic APIs
LF Jenkins CIc00b2c12020-04-08 20:25:19 +000031 * "Service Instantiation API"
seshukm9c58cdd2018-08-21 18:48:29 +080032
33 Model-driven recipe selection
34 * Use SO Catalog to map input requests to BPMN flows
35 * Dynamic lookup based on service-model + action
36 * Input data forwarded to BPMN flow
k.kazaka1131ac2019-07-24 14:28:09 +020037
seshukm9c58cdd2018-08-21 18:48:29 +080038 Track open and completed requests via SO Request DB
39
40 Multiple API-H modules may support different APIs
41
42**BPMN Execution Engine**
43
44 Open-source Camunda platform
45 * Support BPMN 2.0 service recipes
46
47 Expose RESTful interface to API-H (unique path per recipe)
48
LF Jenkins CIc00b2c12020-04-08 20:25:19 +000049 Make use of common "building block" sub-flows
seshukm9c58cdd2018-08-21 18:48:29 +080050
51 Sequence orchestration steps for each Resource in the recipe
52 * Request and configure network resources via SDN-C
53 * Manage cloud resources via PO (OpenStack)
54 * Update inventory via A&AI
k.kazaka1131ac2019-07-24 14:28:09 +020055
seshukm9c58cdd2018-08-21 18:48:29 +080056 Perform error handling/rollback
57
58**Resource Adapters**
59
60 Interfaces to lower level controllers and other ONAP components
seshukm7a286512018-11-30 13:21:36 +080061 * Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers, Multi-Cloud
seshukm9c58cdd2018-08-21 18:48:29 +080062 * Hides the details of complex interfaces (e.g. OpenStack APIs)
63 * Expose interfaces to BPMN flows as SOAP or REST APIs
64 * Support synchronous and asynchronous operations
k.kazaka1131ac2019-07-24 14:28:09 +020065
seshukm9c58cdd2018-08-21 18:48:29 +080066 Provided as part of SO platform for use by all BPMN flows
67
68 Use SO Catalog to map resource requests to a recipe/template
69
70 Data-driven design
71 * Catalog templates may be updated via self-service (outside of release cycles)
72 * Merge input parameters with templates at run-time
73
74**Data Stores**
k.kazaka1131ac2019-07-24 14:28:09 +020075
seshukm9c58cdd2018-08-21 18:48:29 +080076 Request DB
77 * Tracks open and completed requests
k.kazaka1131ac2019-07-24 14:28:09 +020078
seshukm9c58cdd2018-08-21 18:48:29 +080079 SO Catalog
80 * SO view of the SDC Catalog
81 * service and resource models, recipes, and templates
82 * Populated via SDC distribution service from TOSCA models
83
84 Camunda DB
85 * Maintain state for BPMN flows
86 * Supports multiple active engines
k.kazaka1131ac2019-07-24 14:28:09 +020087
seshukm9c58cdd2018-08-21 18:48:29 +080088**SDC Distribution Client**
89
90 Receive updated service models from SDC
91 * Event-bus notifications when new models available
92 * HTTP retrieval of models (TOSCA) and artifacts (Heat)
k.kazaka1131ac2019-07-24 14:28:09 +020093
seshukm9c58cdd2018-08-21 18:48:29 +080094 Receive distributions as TOSCA models
95
96 Populate SO Catalog
97
98 Support self-service updates to models and artifacts
seshukmcb4f8702018-08-21 20:49:19 +080099
seshukmb3b1c9f2018-08-31 21:33:51 +0800100**SO Monitoring**
101
seshukmcb4f8702018-08-21 20:49:19 +0800102 Monitor BPMN Workflow execution by providing
seshukm1a5001e2018-09-22 18:30:47 +0800103 * Service list search based on search criteria
104 * Service statistic
105 * Service Process Instance Rendering and Detail
106
Byung-Woo Jun872172d2019-04-17 12:51:30 -0400107**SO VNFM Adapter**
108
109 Support external SVNFMs through SOL003 APIs
110 * Create, Instantiate, Terminate and Delete VNF, including Granting, Subscription and Lifecycle Notifications
111 * Tracking capability which VNFM instance has handled with which VNF instance
112 * BPMN Building Block workflows and Java-based recipes for VNF LCM
113 * VNFM Simulator for validating SO VNFM Adapter NBI and SBI for integration testing
rope2526df62b22019-10-16 13:37:35 +0100114 * The SO ETSI CSIT Tests and running them, https://wiki.onap.org/display/DW/SO+ETSI+CSIT
115 * Testing the SO ETSI Alignment manually (Instantiate VNF using SVNFM), https://wiki.onap.org/pages/viewpage.action?pageId=68524128
Byung-Woo Jun872172d2019-04-17 12:51:30 -0400116
seshukm9c58cdd2018-08-21 18:48:29 +0800117Third Party and Open Source
118---------------------------
119
120**BPMN Engine**
121 Camunda (open source)
122
123**Other Open Source Components of Note:**
seshukmcb4f8702018-08-21 20:49:19 +0800124 Tomcat
seshukm9c58cdd2018-08-21 18:48:29 +0800125 MySQL/MariaDB
LF Jenkins CIc00b2c12020-04-08 20:25:19 +0000126 Openstack Java SDK ("woorea")