blob: 7636792c41eb02062b3bceb32a7265cb023aac37 [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.
4
5SO - Architecture
k.kazaka1131ac2019-07-24 14:28:09 +02006=================
seshukm9c58cdd2018-08-21 18:48:29 +08007
seshukm7a286512018-11-30 13:21:36 +08008SO Functional View
k.kazaka1131ac2019-07-24 14:28:09 +02009------------------
seshukm7a286512018-11-30 13:21:36 +080010
seshukm9c58cdd2018-08-21 18:48:29 +080011.. image:: ../images/SO_Architecture_1.png
12
seshukm7a286512018-11-30 13:21:36 +080013SO Deployment View
14--------------------
15
16.. image:: ../images/SO_Architecture_Internal.png
17
seshukm9c58cdd2018-08-21 18:48:29 +080018SO Sub-Components
19------------------
20
21**API Handler**
22
23 RESTful interface to northbound clients
k.kazaka1131ac2019-07-24 14:28:09 +020024
25* Handle service-level and infrastructure (VNF & network) requests
26
seshukm9c58cdd2018-08-21 18:48:29 +080027 Service-agnostic APIs
28 * Service Instantiation API
29
30 Model-driven recipe selection
31 * Use SO Catalog to map input requests to BPMN flows
32 * Dynamic lookup based on service-model + action
33 * Input data forwarded to BPMN flow
k.kazaka1131ac2019-07-24 14:28:09 +020034
seshukm9c58cdd2018-08-21 18:48:29 +080035 Track open and completed requests via SO Request DB
36
37 Multiple API-H modules may support different APIs
38
39**BPMN Execution Engine**
40
41 Open-source Camunda platform
42 * Support BPMN 2.0 service recipes
43
44 Expose RESTful interface to API-H (unique path per recipe)
45
46 Make use of common building block sub-flows
47
48 Sequence orchestration steps for each Resource in the recipe
49 * Request and configure network resources via SDN-C
50 * Manage cloud resources via PO (OpenStack)
51 * Update inventory via A&AI
k.kazaka1131ac2019-07-24 14:28:09 +020052
seshukm9c58cdd2018-08-21 18:48:29 +080053 Perform error handling/rollback
54
55**Resource Adapters**
56
57 Interfaces to lower level controllers and other ONAP components
seshukm7a286512018-11-30 13:21:36 +080058 * Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers, Multi-Cloud
seshukm9c58cdd2018-08-21 18:48:29 +080059 * Hides the details of complex interfaces (e.g. OpenStack APIs)
60 * Expose interfaces to BPMN flows as SOAP or REST APIs
61 * Support synchronous and asynchronous operations
k.kazaka1131ac2019-07-24 14:28:09 +020062
seshukm9c58cdd2018-08-21 18:48:29 +080063 Provided as part of SO platform for use by all BPMN flows
64
65 Use SO Catalog to map resource requests to a recipe/template
66
67 Data-driven design
68 * Catalog templates may be updated via self-service (outside of release cycles)
69 * Merge input parameters with templates at run-time
70
71**Data Stores**
k.kazaka1131ac2019-07-24 14:28:09 +020072
seshukm9c58cdd2018-08-21 18:48:29 +080073 Request DB
74 * Tracks open and completed requests
k.kazaka1131ac2019-07-24 14:28:09 +020075
seshukm9c58cdd2018-08-21 18:48:29 +080076 SO Catalog
77 * SO view of the SDC Catalog
78 * service and resource models, recipes, and templates
79 * Populated via SDC distribution service from TOSCA models
80
81 Camunda DB
82 * Maintain state for BPMN flows
83 * Supports multiple active engines
k.kazaka1131ac2019-07-24 14:28:09 +020084
seshukm9c58cdd2018-08-21 18:48:29 +080085**SDC Distribution Client**
86
87 Receive updated service models from SDC
88 * Event-bus notifications when new models available
89 * HTTP retrieval of models (TOSCA) and artifacts (Heat)
k.kazaka1131ac2019-07-24 14:28:09 +020090
seshukm9c58cdd2018-08-21 18:48:29 +080091 Receive distributions as TOSCA models
92
93 Populate SO Catalog
94
95 Support self-service updates to models and artifacts
seshukmcb4f8702018-08-21 20:49:19 +080096
seshukmb3b1c9f2018-08-31 21:33:51 +080097**SO Monitoring**
98
seshukmcb4f8702018-08-21 20:49:19 +080099 Monitor BPMN Workflow execution by providing
seshukm1a5001e2018-09-22 18:30:47 +0800100 * Service list search based on search criteria
101 * Service statistic
102 * Service Process Instance Rendering and Detail
103
Byung-Woo Jun872172d2019-04-17 12:51:30 -0400104**SO VNFM Adapter**
105
106 Support external SVNFMs through SOL003 APIs
107 * Create, Instantiate, Terminate and Delete VNF, including Granting, Subscription and Lifecycle Notifications
108 * Tracking capability which VNFM instance has handled with which VNF instance
109 * BPMN Building Block workflows and Java-based recipes for VNF LCM
110 * VNFM Simulator for validating SO VNFM Adapter NBI and SBI for integration testing
111
seshukm9c58cdd2018-08-21 18:48:29 +0800112Third Party and Open Source
113---------------------------
114
115**BPMN Engine**
116 Camunda (open source)
117
118**Other Open Source Components of Note:**
seshukmcb4f8702018-08-21 20:49:19 +0800119 Tomcat
seshukm9c58cdd2018-08-21 18:48:29 +0800120 MySQL/MariaDB
121 Openstack Java SDK (“woorea”)