SO - Architecture

SO Functional View

../_images/SO_Architecture_2.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

  • 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

../_images/SO-SOL003-Adapter-Architecture-1.png

SO ETSI NFVO

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

../_images/SO-NFVO-Architecture-1.png

Third Party and Open Source

BPMN Engine

Camunda (open source)

Other Open Source Components of Note:

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