SO - Architecture

SO Functional View


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

  • Conformance of SOL001 VNFD and SOL004 VNF package specifications

  • Interfacing with the ETSI Catalog Manager (a.k.a. etsicatalog) for retrieving ETSI VNF descriptors and artifacts

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



Support ETSI NFVO functions which manages Network Service LCM
  • Create, Instantiate, Terminate and Delete NS

  • Decomposing an NS request into associated VNF request(s) and managing VNF LCM (Create, Instantiate, Terminate, Delete VNF) through SO VNFMN Adapter

  • Leveraging SOL005 for its NBI and SOl003 for its SBI

  • Conformance of SOL001 NSD and SOL007 NS package specifications

  • Interfacing with the ETSI Catalog Manager (a.k.a. etsicatalog) for retrieving ETSI NS descriptors and artifacts


Third Party and Open Source

BPMN Engine

Camunda (open source)

Other Open Source Components of Note:

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