.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

============
Architecture
============

SDC As Part of ONAP
===================

.. image:: images/SDC_In_ONAP.png


High Level Architecture
=======================

The following diagram shows the high-level relationship between the system components:

.. image:: images/High_Level_Architecture_SDC.png

The SDC architecture uses the Jetty server as an application server.

- The **Jetty front end**:
   - supplies the static content of web pages, and all resources that required by the GUI
   - serves as a proxy for the REST API requests coming from the GUI
   
  Every request originating from the GUI is passed to the Jetty front-end server before it is executed.

- The **Jetty back end** containes all the logic for the SDC.

SDC uses two storage components: Elastic Search(ES) and Cassandra

- **Elastic Search** is used to index the auditing data received from different operations in the SDC.

  This information can then be analyzed with Kibana. The **Kibana server** enables statistical analysis of the operations done, according to the business logic.
  
- **Cassandra** is used to store auditing data, artifacts and data model objects.

