\r
SO Architecture\r
----------------\r
-SO architecture and internal details could be found in the below wiki link\r
\r
-https://wiki.onap.org/pages/viewpage.action?pageId=9830754\r
+.. image:: images/SO_Architecture_1.png\r
+\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