This page is used for the deposition of clean version ONAP R2+ Servcie IM.
Class Diagram
Based on the input from ECOMP Service IM input, ONAP R2+ Service IM is designed as below class diagram:
In this diagram, both design time and run time service related objects are depicted.
For the design time section on the left side,
ServiceCatalogItem is used to model the design time representation of a service.
Nested Service Design is supported by the association "ServiceComprisedOf", as a ServiceCatalogItem can be composed of other ServiceCatalogItem(s).
Complicated Service Design is supported by the association "ServiceComposedOf", as a ServiceCatalogItem can be composed of at least 1 or more ServiceComponentCatalogItem(s).
- Hybrid Service Design is also supported, as a part of a ServiceCatalogItem can be composed of ServiceComponentCatalogItem(s) and part of it can be composed of other ServiceCatalogItem(s).
- ServcieComponentItem is used to model the design time represenation of a service component or network service.
Nested Service Component Design is supported by the association "ServiceComponentComprisedOf", as a ServiceComponentCatalogItem can be composed of other ServiceComponentCatalogItem(s).
Complicated Service Component Design is supported by the association "ServiceComponentComposedOf", as a ServiceComponentCatalogItem can be composed of at least 1 or more ResourceCatalogItem(s).
Hybrid Service Component Design is also supported, as a part of a ServiceComponenetCatalogItem can be composed of ServiceComponentCatalogItem(s) and part of it can be composed of other ResourceCatalogItem(s).
ResourceCatalogItem is used to model the design time representation of a resource.
Cross reference in resource design is supported via the association "ResourceCatalogReferences".
For the run time section on the right side, similiar layering from top to bottom of instance items and relationship between is modeled, as the result of the model-driven instantiation process from a given ServiceCatalogItem. In particular,
- Based on 1 ServiceCatalogItem, 0 or more ServiceInstance(s) can be instantiated, which also instantiate the association "ServiceCatalogItemMadeAvailableAs". A ServiceInstance can comprise other ServiceInstance(s) or ServiceComponentInstance(s), as modeled by the associations "ServiceComprisedOf" and "ServiceComposedOf".
- Based on 1 ServiceComponentCatalogItem, 0 or more ServiceComponentInstance(s) can be instantiated, which also instantiate the association "ServiceComponentCatalogItemMadeAvailableAs". A ServiceComponentInstance can comprise other ServiceComponentInstance(s) or ResourceInstance(s), as modeled by the associations "ServiceComponentComprisedOf" and "ServiceComponentComposedOf".
- Based on 1 ResourceCatalogItem, 0 or more ResourceInstance(s) can be instantiated, which also instantiates the association "ResourceCatalogItemMadeAvailableAs". A ResourceInstance can reference other ResourceInstance(s).
Use Case Example
From the very high level, in summary,
- Products are made up of services (ServiceCatalogItems on the design side, ServiceInstances on the runtime side).
- Services are made up of service components. A service component is not seen or known to products like SID ResourceFacingServices are not seen by products. Services can be composed of other Services and may be referred to as complex services. Network Service, or WAN service are as the service components in the service.
- ServiceComponents are made up of ServiceComponents or resources. The resources include VNF, PNF, VL, etc.
VoLTE
Take the ONAP R1 VoLTE use case as an example. The E2E VoLTE service can be designed as the service; The IMS, EPC, and WAN can be designed as the service components. The HSS, CSCF, TAS, SBC, MME, and SPGW etc, and the link between them can be design as the resources.
Attributes
ServiceCatalogItem (Note from Chesla: A&AI has a model/model-ver concept which captures the descriptor from ASDC.
The model vertex type contains the model-invariant-id and the model-type (e.g., service or resource). The model-ver vertex type contains the model-version-id, the model-version, the model-name, and a model-description.In short, A&AI split the invariant part of the model away from the version-dependent pieces. In this manner, you can relate ALL versions of a model to something by using the model-invariant-id (e.g., get me all the resources for this model) or you can relate a specific version of a model (e.g., get me all resources for this version of the model) by using the model-version-id in combination with the model-invariant-id. Recall that A&AI stores the model/model-ver elements as "JOIN" keys to the SDC descriptor world. A&AI does not try to capture all the details of the models.
It's not clear whether you can equate model-name to service-name or model-description to service-description. The model-name really names the MODEL, not necessarily the service. The same applies to the service-description.)
R2+ Attributes | Description | Producer | Consumer | SDC(Service) | AAI(service) | ECOMP IM(ServiceCatalogItem) |
serviceInvariantUUID | Constant identifier of the service model | SDC | SDC/SO/UUI/VID | invariantUUID | ||
serviceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) | SDC | SDC/SO/UUI/VID | UUID | service-id | ServiceUUID |
serviceName | The name of the service designed | SDC | SDC/SO/UUI/VID | name | ServiceDisplayName | |
serviceDescription | The description of the service designed | SDC | SDC/SO/UUI/VID | description | service-description | ServiceDescription |
category | A predefined list which identifies the construct's category. There is a predefined list of service categories | SDC | SDC/SO/UUI/VID | Category | Category | |
serviceVersion | The service version | SDC | SDC/SO/UUI/VID | service-version | Version | |
icon | The icon path of the service | SDC | SDC/SO/UUI/VID | Icon | ||
serviceComponentUUID | The service component UUIDs that the service includes | SDC | SDC/SO/UUI/VID |
ServiceInstance
R2+ Attributes | Description | Producer | Consumer | AAI(ServiceInstance) |
serviceInstanceId | Uniquely identifies this instance of a service | SO | AAI/UUI/VID/SO/Policy/Holmes | service-Instance-Id |
serviceInstanceName | The name assigned to the service-instance | UUI/VID/SO | AAI/UUI/VID/SO | service-instance-name |
serviceInvariantUUID | Constant identifier of the service model | SDC/SO | AAI/UUI/VID/SO | model-invariant-id |
ServiceUUID | Versioned identifier of the service model | SDC/SO | AAI/UUI/VID/SO | model-version-id |
ServiceVersion | The service version in SDC catalog | SDC/SO | AAI/UUI/VID/SO | persona-Model-Version |
selfLink | URL to endpoint where more details can be gotten | SO | AAI/UUI/VID/SO | selflink |
status | Orchestration status of the service instance | SO | AAI/UUI/VID/SO/Policy/Holmes | orchestration-status |
serviceComponentInstanceId | The service component instance ID that the service instance includes | VFC/... | AAI/UUI/VID/SO/Policy/Holmes |
ServiceComponentCatalogItem
R2+ Attributes | Description | Producer | Consumer | SDC(Service) | ECOMP (ServiceComponent) | ETSIIFA014 (NetworkService) |
invariantUUID | Constant identifier of the Service Component model | SDC | SDC/UUI/VFC | invariantUUID | nsdInvariantId | |
UUID | Versioned identifier of the Service Component model (this uuid is changed for every major version of the service component) | SDC | SDC/UUI/VFC | UUID | ServiceComponent CatalogItem | nsdIdentifier |
name | The name of the service component | SDC | SDC/UUI/VFC | name | nsdName | |
description | The description of service component | SDC | SDC/UUI/VFC | description | ||
version | The version of service component | SDC | SDC/UUI/VFC | version | ||
designer | The designer of service component | SDC | SDC/UUI/VFC | designer |
Network Service Descriptor
Inherit from ServiceComponentCatalogItem
R2+ Attributes | Description | Producer | Consumer | ETSI IFA014(NetworkService) |
vnfdid | References the VNFD of a constituent VNF. | SDC | SDC/UUI/VFC | vnfdid |
pnfdId | References the PNFD of a constituent PNF. | SDC | SDC/UUI/VFC | pnfdId |
virtualLinkDesc | Provides the constituent VLDs. | SDC | SDC/UUI/VFC | virtualLinkDesc |
ServiceComponentInstance
R2+ Attributes | Descripion | Producer | Consumer | AAI(ServiceInstance) | ETSI IFA013(NS) |
instanceId | Uniquely identifies this instance of a service component | VFC | AAI/UUI/VFC/Policy/Holmes | service-Instance-Id | nsInstanceId |
instanceName | The name assigned to the service component instance | UUI/VFC | AAI/UUI/VFC/Policy/Holmes | service-instance-name | nsName |
invariantUUID | Constant identifier of the service component model | SDC/VFC | AAI/UUI/VFC | model-invariant-id | nsdId |
UUID | Versioned identifier of the service component model (this uuid is changed for every major version of the service component) | SDC/VFC | AAI/UUI/VFC | model-version-id | |
version | The service version in SDC catalog | VFC | AAI/UUI/VFC | persona-Model-Version | |
selfLink | URL to endpoint where more details can be gotten | VFC | AAI/UUI/VFC | selflink | |
status | Orchestration status of the service component instance | VFC | AAI/UUI/VFC/Policy/Holmes | orchestration-status | nsState |
description | The description of service component instance | VFC | AAI/UUI/VFC | description |
Network Service Instance
Inherit from ServiceComponentInstance
R2+ Attributes | Description | Producer | Consumer | ETSI IFA013(NS) |
vnfInfoId | Reference to information on constituent VNFs of this NS. | VFC | AAI/UUI/VFC | vnfInfoId |
pnfInfo | Information on the PNF(s) that are part of this NS. | VFC | AAI/UUI/VFC | pnfInfo |
virtualLinkInfo | Information on the VLs of thisNS. | VFC | AAI/UUI/VFC | virtualLinkInfo |