SO - Architecture

SO Functional View

../_images/SO_Architecture_1.png

SO Deployment View

../_images/SO_Architecture_Internal.png ../_images/so-architecture.png

SO Sub-Components

API Handler

RESTful interface to northbound clients

  • Handle service-level and infrastructure (VNF & network) requests

    Service-agnostic APIs
    • “Service Instantiation API”

    Model-driven recipe selection
    • Use SO Catalog to map input requests to BPMN flows

    • Dynamic lookup based on service-model + action

    • Input data forwarded to BPMN flow

    Track open and completed requests via SO Request DB

    Multiple API-H modules may support different APIs

BPMN Execution Engine

Open-source Camunda platform
  • Support BPMN 2.0 service recipes

Expose RESTful interface to API-H (unique path per recipe)

Make use of common “building block” sub-flows

Sequence orchestration steps for each Resource in the recipe
  • Request and configure network resources via SDN-C

  • Manage cloud resources via PO (OpenStack)

  • Update inventory via A&AI

Perform error handling/rollback

Resource Adapters

Interfaces to lower level controllers and other ONAP components
  • Platform Orchestrator, SDN-Controller, APP-Controller, VFC-Controllers, Multi-Cloud

  • Hides the details of complex interfaces (e.g. OpenStack APIs)

  • Expose interfaces to BPMN flows as SOAP or REST APIs

  • Support synchronous and asynchronous operations

Provided as part of SO platform for use by all BPMN flows

Use SO Catalog to map resource requests to a recipe/template

Data-driven design
  • Catalog templates may be updated via self-service (outside of release cycles)

  • Merge input parameters with templates at run-time

Data Stores

Request DB
  • Tracks open and completed requests

SO Catalog
  • SO view of the SDC Catalog
    • service and resource models, recipes, and templates

  • Populated via SDC distribution service from TOSCA models

Camunda DB
  • Maintain state for BPMN flows

  • Supports multiple active engines

SDC Distribution Client

Receive updated service models from SDC
  • Event-bus notifications when new models available

  • HTTP retrieval of models (TOSCA) and artifacts (Heat)

Receive distributions as TOSCA models

Populate SO Catalog

Support self-service updates to models and artifacts

SO Monitoring

Monitor BPMN Workflow execution by providing
  • Service list search based on search criteria

  • Service statistic

  • Service Process Instance Rendering and Detail

SO VNFM Adapter

Support external SVNFMs through SOL003 APIs
  • Create, Instantiate, Terminate and Delete VNF, including Granting, Subscription and Lifecycle Notifications

  • Tracking capability which VNFM instance has handled with which VNF instance

  • BPMN Building Block workflows and Java-based recipes for VNF LCM

  • VNFM Simulator for validating SO VNFM Adapter NBI and SBI for integration testing

  • The SO ETSI CSIT Tests and running them, https://wiki.onap.org/display/DW/SO+ETSI+CSIT

  • Testing the SO ETSI Alignment manually (Instantiate VNF using SVNFM), https://wiki.onap.org/pages/viewpage.action?pageId=68524128

Third Party and Open Source

BPMN Engine

Camunda (open source)

Other Open Source Components of Note:

Tomcat MySQL/MariaDB Openstack Java SDK (“woorea”)