SO - Architecture
SO Functional View
SO Deployment View
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
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
Third Party and Open Source
- BPMN Engine
Camunda (open source)
- Other Open Source Components of Note:
Tomcat MySQL/MariaDB Openstack Java SDK (“woorea”)