Merge "Fix resource building logic"
[so.git] / docs / architecture.rst
index ac77400..1e7777f 100644 (file)
 .. http://creativecommons.org/licenses/by/4.0\r
 .. Copyright 2017 Huawei Technologies Co., Ltd.\r
 \r
-SO - Service Orchestration\r
-========================================================\r
+SO - Architecture\r
+===============\r
 \r
-SO Architecture\r
-----------------\r
-SO architecture and internal details could be found in the below wiki link\r
+.. image:: images/SO_Architecture_1.png\r
 \r
-https://wiki.onap.org/pages/viewpage.action?pageId=9830754\r
+SO Sub-Components\r
+------------------\r
+\r
+**API Handler**\r
+\r
+  RESTful interface to northbound clients\r
+      \r
+       * Handle service-level and infrastructure (VNF & network) requests\r
+       \r
+  Service-agnostic APIs\r
+    * “Service Instantiation API”\r
+\r
+  Model-driven recipe selection\r
+    * Use SO Catalog to map input requests to BPMN flows\r
+    * Dynamic lookup based on service-model + action\r
+    * Input data forwarded to BPMN flow\r
+       \r
+  Track open and completed requests via SO Request DB\r
+\r
+  Multiple API-H modules may support different APIs\r
+\r
+**BPMN Execution Engine**\r
+\r
+  Open-source Camunda platform\r
+    * Support BPMN 2.0 service recipes\r
+\r
+  Expose RESTful interface to API-H (unique path per recipe)\r
+\r
+  Make use of common “building block” sub-flows\r
+\r
+  Sequence orchestration steps for each Resource in the recipe\r
+    * Request and configure network resources via SDN-C\r
+    * Manage cloud resources via PO (OpenStack)\r
+    * Update inventory via A&AI\r
+  \r
+  Perform error handling/rollback\r
+\r
+**Resource Adapters**\r
+\r
+  Interfaces to lower level controllers and other ONAP components\r
+   * Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers\r
+   * Hides the details of complex interfaces (e.g. OpenStack APIs)\r
+   * Expose interfaces to BPMN flows as SOAP or REST APIs\r
+   * Support synchronous and asynchronous operations\r
+   \r
+  Provided as part of SO platform for use by all BPMN flows\r
+\r
+  Use SO Catalog to map resource requests to a recipe/template\r
+\r
+  Data-driven design\r
+   * Catalog templates may be updated via self-service (outside of release cycles)\r
+   * Merge input parameters with templates at run-time\r
+\r
+**Data Stores**\r
+   \r
+  Request DB\r
+   * Tracks open and completed requests\r
+  \r
+  SO Catalog\r
+   * SO view of the SDC Catalog\r
+      * service and resource models, recipes, and templates\r
+   * Populated via SDC distribution service from TOSCA models\r
+\r
+  Camunda DB\r
+   * Maintain state for BPMN flows\r
+   * Supports multiple active engines\r
+   \r
+**SDC Distribution Client**\r
+\r
+  Receive updated service models from SDC\r
+   * Event-bus notifications when new models available\r
+   * HTTP retrieval of models (TOSCA) and artifacts (Heat)\r
+   \r
+  Receive distributions as TOSCA models\r
+\r
+  Populate SO Catalog\r
+\r
+  Support self-service updates to models and artifacts\r
+  \r
+Third Party and Open Source\r
+---------------------------\r
+\r
+**BPMN Engine**\r
+  Camunda (open source)\r
+\r
+**Other Open Source Components of Note:**\r
+  JBOSS EAP/Wildfly\r
+  MySQL/MariaDB\r
+  Openstack Java SDK (“woorea”)\r
+\r
+\r
+\r
+\r
+\r
+  \r
\r
 \r
-.. toctree::\r
-   :maxdepth: 1\r
-   
\ No newline at end of file