Merge "fixed sonar issue in MsoTenantAdapter.java"
[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 .. image:: ../images/SO_Architecture_1.png
9
10 SO Sub-Components
11 ------------------
12
13 **API Handler**
14
15   RESTful interface to northbound clients
16       
17         * Handle service-level and infrastructure (VNF & network) requests
18         
19   Service-agnostic APIs
20     * “Service Instantiation API”
21
22   Model-driven recipe selection
23     * Use SO Catalog to map input requests to BPMN flows
24     * Dynamic lookup based on service-model + action
25     * Input data forwarded to BPMN flow
26         
27   Track open and completed requests via SO Request DB
28
29   Multiple API-H modules may support different APIs
30
31 **BPMN Execution Engine**
32
33   Open-source Camunda platform
34     * Support BPMN 2.0 service recipes
35
36   Expose RESTful interface to API-H (unique path per recipe)
37
38   Make use of common “building block” sub-flows
39
40   Sequence orchestration steps for each Resource in the recipe
41     * Request and configure network resources via SDN-C
42     * Manage cloud resources via PO (OpenStack)
43     * Update inventory via A&AI
44   
45   Perform error handling/rollback
46
47 **Resource Adapters**
48
49   Interfaces to lower level controllers and other ONAP components
50    * Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers
51    * Hides the details of complex interfaces (e.g. OpenStack APIs)
52    * Expose interfaces to BPMN flows as SOAP or REST APIs
53    * Support synchronous and asynchronous operations
54    
55   Provided as part of SO platform for use by all BPMN flows
56
57   Use SO Catalog to map resource requests to a recipe/template
58
59   Data-driven design
60    * Catalog templates may be updated via self-service (outside of release cycles)
61    * Merge input parameters with templates at run-time
62
63 **Data Stores**
64    
65   Request DB
66    * Tracks open and completed requests
67   
68   SO Catalog
69    * SO view of the SDC Catalog
70       * service and resource models, recipes, and templates
71    * Populated via SDC distribution service from TOSCA models
72
73   Camunda DB
74    * Maintain state for BPMN flows
75    * Supports multiple active engines
76    
77 **SDC Distribution Client**
78
79   Receive updated service models from SDC
80    * Event-bus notifications when new models available
81    * HTTP retrieval of models (TOSCA) and artifacts (Heat)
82    
83   Receive distributions as TOSCA models
84
85   Populate SO Catalog
86
87   Support self-service updates to models and artifacts
88
89 **SO Monitoring**
90
91   Monitor BPMN Workflow execution by providing
92   * Service list search based on search criteria
93   * Service statistic
94   * Service Process Instance Rendering and Detail
95   
96 Third Party and Open Source
97 ---------------------------
98
99 **BPMN Engine**
100   Camunda (open source)
101
102 **Other Open Source Components of Note:**
103   Tomcat
104   MySQL/MariaDB
105   Openstack Java SDK (“woorea”)
106
107
108
109
110
111   
112  
113