Merge "Add missing lines for CCVPN"
[so.git] / docs / architecture / architecture.rst
1 .. 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
5 SO - Architecture
6 ===============
7
8 SO Functional View
9 --------------------
10
11 .. image:: ../images/SO_Architecture_1.png
12
13 SO Deployment View
14 --------------------
15
16 .. image:: ../images/SO_Architecture_Internal.png
17
18 SO Sub-Components
19 ------------------
20
21 **API Handler**
22
23   RESTful interface to northbound clients
24       
25         * Handle service-level and infrastructure (VNF & network) requests
26         
27   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
34         
35   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
52   
53   Perform error handling/rollback
54
55 **Resource Adapters**
56
57   Interfaces to lower level controllers and other ONAP components
58    * Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers, Multi-Cloud
59    * 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
62    
63   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**
72    
73   Request DB
74    * Tracks open and completed requests
75   
76   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
84    
85 **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)
90    
91   Receive distributions as TOSCA models
92
93   Populate SO Catalog
94
95   Support self-service updates to models and artifacts
96
97 **SO Monitoring**
98
99   Monitor BPMN Workflow execution by providing
100    * Service list search based on search criteria
101    * Service statistic
102    * Service Process Instance Rendering and Detail
103
104 **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
112 Third Party and Open Source
113 ---------------------------
114
115 **BPMN Engine**
116   Camunda (open source)
117
118 **Other Open Source Components of Note:**
119   Tomcat
120   MySQL/MariaDB
121   Openstack Java SDK (“woorea”)
122
123
124
125
126
127   
128  
129