seshukm | 613e448 | 2017-10-11 10:17:45 +0530 | [diff] [blame] | 1 | .. This work is licensed under a Creative Commons Attribution 4.0 International License.
|
| 2 | .. http://creativecommons.org/licenses/by/4.0
|
| 3 | .. Copyright 2017 Huawei Technologies Co., Ltd.
|
| 4 |
|
seshukm | 157df46 | 2017-11-16 19:29:55 +0530 | [diff] [blame] | 5 | SO - Architecture
|
| 6 | ===============
|
Seshu-Kumar-M | bf2b9e1 | 2017-10-11 16:33:41 +0800 | [diff] [blame] | 7 |
|
seshukm | e51eccb | 2017-11-09 11:14:47 +0530 | [diff] [blame] | 8 | .. image:: images/SO_Architecture_1.png
|
Seshu-Kumar-M | bf2b9e1 | 2017-10-11 16:33:41 +0800 | [diff] [blame] | 9 |
|
seshukm | e51eccb | 2017-11-09 11:14:47 +0530 | [diff] [blame] | 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 | Third Party and Open Source
|
| 90 | ---------------------------
|
| 91 |
|
| 92 | **BPMN Engine**
|
| 93 | Camunda (open source)
|
| 94 |
|
| 95 | **Other Open Source Components of Note:**
|
| 96 | JBOSS EAP/Wildfly
|
| 97 | MySQL/MariaDB
|
| 98 | Openstack Java SDK (“woorea”)
|
| 99 |
|
| 100 |
|
| 101 |
|
| 102 |
|
| 103 |
|
| 104 |
|
| 105 |
|
| 106 |
|