This page is used for the ONAP R2+ Service IM drafting and discussion.
****************************this section below will be move into the clear page ***********************************
ONAP R2+ Service IM start from ECOMP Service IM model as below class diagram:
- 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.
Last Questions:
1. why does serviceComponentInstance and ResourceInstances use reference, but the ServiceInstance uses ComposedOf?
2. Could we unify term among the catalogItem, specification and description in the left blocks of the diagram?
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.
ServiceCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceCatalogItem) | Confirmed Attributes | Description |
invariantUUID | serviceInvariantUUID | Constant identifier of the service model | ||
UUID | service-id | ServiceUUID | serviceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) |
name | ServiceDisplayName | serviceName | The name of the service | |
description | service-description | ServiceDescription | serviceDescription | The description of the service Visible when the user hovers over this service in the design studio UI. |
Category | Category | category | A predefined list which identifies the construct's category. There is a predefined list of service categories and resource categories. Designer cannot define new Category. Process required to add/change/delete | |
service-version | Version | serviceVersion | The service version in SDC catalog | |
Icon | icon | The icon path of the service Process required to add new icon. | ||
serviceComponentUUID | The service component UUID that the service includes |
ServiceInstance
AAI (ServiceInstance) | Confirmed Attributes | Description |
service-Instance-Id | serviceInstanceId | Uniquely identifies this instance of a service |
service-instance-name | serviceInstanceName | The name assigned to the service-instance |
model-invariant-id | serviceInvariantUUID | Constant identifier of the service model |
model-version-id | ServiceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) |
persona-Model-Version | ServiceVersion | The service version in SDC catalog |
selflink | selfLink | URL to endpoint where more details can be gotten |
orchestration-status | status | Orchestration status of the service instance |
serviceComponentInstanceId | The service component instance ID that the service instance includes |
ServiceComponentCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceComponentCatalogItem) | ETSI IFA014 (NetworkService) | Confirmed Attributes | Description |
invariantUUID | nsdInvariantId | invariantUUID | Constant identifier of the Service Component model | ||
UUID | service-id | ServiceComponentCatalogItem | nsdIdentifier | UUID | Versioned identifier of the Service Component model (this uuid is changed for every major version of the service component) |
name | nsdName | name | The name of the service component | ||
description | service-description | description | The description of service component | ||
service-version | version | version | The version of service component | ||
designer | designer | The designer of service component |
Network Service Descriptor
Inherit from ServiceComponentCatalogItem
ETSI IFA014 (NetworkService) | Confirmed Attributes | Description |
vnfdid | vnfdid | References the VNFD of a constituent VNF. |
pnfdId | pnfdId | References the PNFD of a constituent PNF. |
virtualLinkDesc | virtualLinkDesc | Provides the constituent VLDs. |
ServiceComponentInstance
AAI (ServiceInstance) | ETSI IFA013 (NS) | Confirmed Attributes | Descripion |
service-Instance-Id | nsInstanceId | instanceId | Uniquely identifies this instance of a service component |
service-instance-name | nsName | instanceName | The name assigned to the service component instance |
model-invariant-id | nsdId | invariantUUID | Constant identifier of the service component model |
model-version-id | UUID | Versioned identifier of the service component model (this uuid is changed for every major version of the service component) | |
persona-Model-Version | version | The service version in SDC catalog | |
selflink | selfLink | URL to endpoint where more details can be gotten | |
orchestration-status | nsState | status | Orchestration status of the service component instance |
description | description | The description of service component instance |
Network Service Instance
Inherit from ServiceComponentInstance
ETSI IFA013 (NS) | Confirmed | Descripion |
vnfInfoId | vnfInfoId | Reference to information on constituent VNFs of this NS. |
pnfInfo | pnfInfo | Information on the PNF(s) that are part of this NS. |
virtualLinkInfo | virtualLinkInfo | Information on the VLs of thisNS. |
**************************************Note: this section above will be move into the clear page.************************************************
Current Service Information Model UML Documentation: ONAP Service 2017-11-08.docx
1. @ James Forsyth David Shadmi is the AAI and SDC align to the diagram above?
2. @Andy Mayer ServiceDesc's attributes are directly definited, not using the method above. Please confirm it.
3. @ Andy Mayer in the diagram above, there is no ServiceCatalogItemType, but in the document it exits.
ServiceNetworkAssociation and serviceRecipe are the same question.
Please confirm them and update the diagram if needed.
the comparision table among ECOMP IM, SDC IM, ETSI NFV IFA, A&AI as below:
ServiceCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceCatalogItem) | Comments | Confirmed | Description |
invariantUUID | serviceInvariantUUID | Constant identifier of the service model | |||
UUID | service-id | ServiceUUID | serviceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) | |
name | ServiceDisplayName | serviceName | The name of the service | ||
description | service-description | ServiceDescription | serviceDescription | The description of the service Visible when the user hovers over this service in the design studio UI. | |
type | ServiceCatalogItem-Q1: what‘s the difference of type and serviceType or category?’ Type - A predefined list which identifies the construct (i.e., service, VF, VFC, CP, VL, etc.). serviceType - An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. @David Shadmi From Chesla Wechsler's comments, Service-type is deprecated. Please confirm it. | A predefined list which identifies the construct (i.e., service, VF, VFC, CP, VL, etc.). | |||
Category | Category | A predefined list which identifies the construct's category. There is a predefined list of service categories and resource categories. Designer cannot define new Category. Process required to add/change/delete | |||
serviceType | serviceType | An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. | |||
serviceRole | serviceRole | ServiceCatalogItem-Q2: What's the ServiceRole used for in the use cases and how does it effect the run-time components? serviceRole - An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | ||
serviceEcompNaming | ServiceCatalogItem-Q3: What's the naming used for in the use cases and how does it effect the run-time components? The naming fields are used to define if the service instance name is auto-generated by the runtime components (SO and SDNC). Need to refer to the use case owners to understand if and how these fields are used. | ||||
ecompGeneratedNaming | |||||
namingPolicy | |||||
service_naming | |||||
service-version | Version | serviceVersion | The service version in SDC catalog | ||
resource-version | @ James Forsyth: ServiceCatalogItem-Q4: The version of resource are related to the resource. One service may is composed of many resources, which may have different versions. Which version of the resources are set in the service? | resource-version for concurrency | |||
AT&TContact | @Andy Mayer : ServiceCatalogItem-Q5: Is it the service designer? If consider multi-designers, the attributes should be array type. | This is the technology owner. ATT UID. Future click on UID and launch mail client. Multiple contacts should be supported. | |||
Capacity | @Andy Mayer : ServiceCatalogItem-Q6: Please clarify what it is. How is it effects the design time and run-time? From Chesla Wechsler's comments, it is deprecated. Please confirm it. | Obtain from vendor if available; tester can add additional information | |||
Constraints | @Andy Mayer : ServiceCatalogItem-Q7: The constraints is not an independent attribute, and is a constraint within the attribute definition. right? | From the TOSCA model. Multiple fields. Could include thresholds and policies. Vendor upgrade requirements should also be included here. | |||
Cost | @ Andy Mayer : ServiceCatalogItem-Q8: Please clarify what it is. How is it effects the design time and run-time? | 2015: will be blank and not mandatory. 2016 may be accessed by role (TBD) and will be a mandatory field. | |||
D2RequirementsChecklist | @Andy Mayer ServiceCatalogItem-Q9: What's the Cost used for in the use cases and how does it effect the run-time components? | Spreadsheet with input constraints, entries will be searchable | |||
EntitlementID | @Andy Mayer ServiceCatalogItem-Q10: In the latest document there is no entitlement. is it obsoleted? | Composite ID of contract and entitlement number from myprocurement | |||
EntitlementUnitNumber | From contract/entitlement | ||||
EntitlementUnitType | From contract/entitlement | ||||
FaultRequirements | @Andy Mayer ServiceCatalogItem-Q11: It is an document from vendor. Should it be managed in the ONAP? | Obtain from vendor | |||
Features | @Andy Mayer ServiceCatalogItem-Q11: It is an document from vendor. Should it be managed in the ONAP? | Obtain from vendor | |||
History | @Andy Mayer ServiceCatalogItem-Q13: the type is only char. It is not enough to support the function as described. | Keeping all major events, i.e., creation date, any modification, check in and check out with ATT UID. | |||
Icon | icon | The icon path of the service Process required to add new icon. | |||
LicensingModel | @Andy Mayer ServiceCatalogItem-Q14: Do the Service support license? Could you give some details about it? | Multiple fields. Categories of licenses planned; type, unit. | |||
Performance | @Andy Mayer ServiceCatalogItem-Q11: It is an document from vendor. Should it be managed in the ONAP? | Obtain from vendor if available; tester can add additional information | |||
Requirements | @Andy Mayer ServiceCatalogItem-Q11: It is an document from vendor. Should it be managed in the ONAP? | Multiple fields. Includes connectivity | |||
ServiceSystemName | @Andy Mayer It is not like an service attribute. Please clarify why displayed in the design studio. | This field will be used in URLs and not exposed in create service UI; will be displayed in design studio. Meaningful service name used in API. The system name is used in the distribution studio (distribution notification and distribution API). - Max length of 25 characters - Allowed characters: alphanumeric, underscore, dash, dot. - Autocreated based upon the Service Display Name: spaces are trimmed, each word starts with a capital letter, on the first letter of abbreviation and acronyms are capitalized. - If the Service Display name changes, the Service System name will automatically be updated. - Service System name is not editable by the designer. - Name must be unique and is searchable. | |||
Subcategory | Flat list in 1507. In 1510, UI will be separated to different field from Category. | ||||
Tags/Keywords | Must accept multiple keywords | ||||
Template | @Andy Mayer is it the service Templates? | Need to define a list of templates. Tied to Category. Designer cannot create new template (must be created by development team). Process required to add/change/delete. Could consider designer ability to create / modify template in 1602. | |||
TestScripts | |||||
VendorTestResults | @Andy Mayer It is an document from vendor. Should it be managed in the ONAP? | ||||
VF-SpecificPolicies | @Andy Mayer should be those VF related attributes moved to VNF, not in the service? | Part of the lifecycle management of the artifact. | |||
VFArtifacts | Artifact name stored in Swift. Artifacts are searchable / indexable. | ||||
VFConfigParameters | Scripts are an artifact, this may be redundant | ||||
VFImage | URL to file stored in Glance or Swift, depending upon image vs. binary |
ServiceInstance
AAI (ServiceInstance) | ECOMP IM (service-instance) | Comments | Confirmed | Description |
service-Instance-Id | serviceInstanceId | Uniquely identifies this instance of a service | ||
service-instance-name | serviceInstanceName | The name assigned to the service-instance | ||
service-type | same with the ServiceCatalogItem-Q1 same with the ServiceCatalogItem-Q2 | An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. | ||
service-role | An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | |||
environment-Context | @James Forsyth ServiceInstance-Q1 Please clarify it's format and how to use it | This field will store the environment context assigned to the service-instance | ||
workload-Context | @James Forsyth ServiceInstance-Q2 Please clarify it's format and how to use it | This field will store the workload context assigned to the service-instance. | ||
model-invariant-id | serviceInvariantUUID | Constant identifier of the service model | ||
model-version-id | @James Forsyth ServiceInstance-Q3 what's the difference between them? Which one is same with Service UUID of SDC? | ServiceUUID | Versioned identifier of the service model (this uuid is changed for every major version of the service) | |
persona-Model-Version | ServiceVersion | The service version in SDC catalog | ||
widget-Model-Id | @James Forsyth ServiceInstance-Q4 Please clarify it and how to use it | the ASDC data dictionary widget model. This maps directly to the A&AI widget. | ||
widget-Model-Version | the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget. | |||
bandwidth-total | @James Forsyth ServiceInstance-Q5 If the service is an general service, why only define these bandwidth attributes? | Indicates the total bandwidth to be used for this service. | ||
bandwidth-up-wan1 | indicates the upstream bandwidth this service will use on the WAN1 port of the physical device. | |||
bandwidth-down-wan1 | indicates the downstream bandwidth this service will use on the WAN1 port of the physical device. | |||
bandwidth-up-wan2 | indicates the upstream bandwidth this service will use on the WAN2 port of the physical device. | |||
bandwidth-down-wan2 | indicates the downstream bandwidth this service will use on the WAN2 port of the physical device. | |||
vhn-portal-url | @James Forsyth What's "vhn-portal-url"? | URL customers will use to access the vHN Portal. | ||
service-instance-location-id | @James Forsyth Where the locationId is got? and How to use it? | An identifier that customers assign to the location where this service is being used. | ||
resource-version | @James Forsyth Same with ServiceCatalogItem-Q4 | Used for optimistic concurrency. Must be empty on create, valid on update and delete. | ||
selflink | selfLink | URL to endpoint where more details can be gotten | ||
orchestration-status | status | Orchestration status of the service instance |
ServiceComponentCatalogItem
SDC (Service) | AAI (service) | ECOMP IM (ServiceComponentCatalogItem) | ETSI IFA014 (NetworkService) | Comments | Confirmed | Description |
invariantUUID | nsdInvariantId | invariantUUID | Constant identifier of the Service Component model | |||
UUID | service-id | ServiceComponentCatalogItem | nsdIdentifier | UUID | Versioned identifier of the Service Component model (this uuid is changed for every major version of the service component) | |
name | nsdName | name | The name of the service component | |||
description | service-description | description | The description of service component | |||
type | same with the ServiceCatalogItem-Q1 same with the ServiceCatalogItem-Q2 | A predefined list which identifies the construct (i.e., service, VF, VFC, CP, VL, etc.). | ||||
Category | A predefined list which identifies the construct's category. There is a predefined list of service categories and resource categories. Designer cannot define new Category. Process required to add/change/delete | |||||
serviceType | serviceType | An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. | ||||
serviceRole | serviceRole | An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | ||||
serviceEcompNaming | same with the ServiceCatalogItem-Q3 | |||||
ecompGeneratedNaming | ||||||
namingPolicy | ||||||
service_naming | ||||||
service-version | version | version | The version of service component | |||
resource-version | same with the ServiceCatalogItem-Q4 | resource-version for concurrency | ||||
designer | designer | The designer of service component |
Network Service Descriptor
Inherit from ServiceComponentCatalogItem
ETSI IFA014 (NetworkService) | Confirmed Attributes | Description |
vnfdid | vnfdid | References the VNFD of a constituent VNF. |
pnfdId | pnfdId | References the PNFD of a constituent PNF. |
virtualLinkDesc | virtualLinkDesc | Provides the constituent VLDs. |
nestedNsdId | References the NSD of a constituent nested NS. | |
sapd | Provides the descriptor of a service access point of the network service. | |
vnffgd | Provides the descriptors of the applicable forwarding graphs. | |
monitoredInfo | Identifies either a virtualised resourcerelated performance metric or a VNF Indicator. | |
autoScalingRule | Specifies a rule to trigger a scaling action on a NS instantiated according to the NSD. | |
lifeCycleManagementScript | Provides a life cycle management script written in a Domain Specific Language (DSL). | |
nsDf | Identifies a DF within the scope of an NSD. | |
security | Provides a signature to prevent tampering. |
WAN Service Descriptor
TBD
ServiceComponentInstance
AAI (ServiceInstance) | ECOMP IM (service component) | ETSI IFA013 (NS) | Comments | Confirmed | Descripion |
service-Instance-Id | nsInstanceId | componentInstanceId | Uniquely identifies this instance of a service component | ||
service-instance-name | nsName | componentInstanceName | The name assigned to the service component instance | ||
service-type | An optional string field defining a generic type (like category) of the service. E.g. this field can be used for defining the service as “TRANSPORT”. | ||||
service-role | An optional string field for shortcode that defines the function that the service is providing. E.g. “MISVPN” or “AIM”. | ||||
environment-Context | same with the ServiceInstance-Q1 | This field will store the environment context assigned to the service-instance | |||
workload-Context | same with the ServiceInstance-Q2 | This field will store the workload context assigned to the service-instance. | |||
model-invariant-id | nsdId | invariantUUID | Constant identifier of the service component model | ||
model-version-id | same with the ServiceInstance-Q3 | Versioned identifier of the service component model (this uuid is changed for every major version of the service component) | |||
persona-Model-Version | The service version in SDC catalog | ||||
widget-Model-Id | the ASDC data dictionary widget model. This maps directly to the A&AI widget. | ||||
widget-Model-Version | the ASDC data dictionary version of the widget model.This maps directly to the A&AI version of the widget. | ||||
bandwidth-total | Indicates the total bandwidth to be used for this service. | ||||
bandwidth-up-wan1 | indicates the upstream bandwidth this service will use on the WAN1 port of the physical device. | ||||
bandwidth-down-wan1 | indicates the downstream bandwidth this service will use on the WAN1 port of the physical device. | ||||
bandwidth-up-wan2 | indicates the upstream bandwidth this service will use on the WAN2 port of the physical device. | ||||
bandwidth-down-wan2 | indicates the downstream bandwidth this service will use on the WAN2 port of the physical device. | ||||
vhn-portal-url | URL customers will use to access the vHN Portal. | ||||
service-instance-location-id | An identifier that customers assign to the location where this service is being used. | ||||
resource-version | resource-version for concurrenc | ||||
selflink | selfLink | URL to endpoint where more details can be gotten | |||
orchestration-status | nsState | status | Orchestration status of the service component instance | ||
description | description | The description of service component instance |
Network Service Instance
Inherit from ServiceComponentInstance
ETSI IFA013 (NS) | Confirmed | Descripion |
vnfInfoId | vnfInfoId | Reference to information on constituent VNFs of this NS. |
pnfInfo | pnfInfo | Information on the PNF(s) that are part of this NS. |
virtualLinkInfo | virtualLinkInfo | Information on the VLs of thisNS. |
flavourId | Reference to the flavour of the NSD used to instantiate this NS. | |
vnffgInfo | Information on the VNFFGs of this NS. | |
sapInfo | Information on the SAPs of this NS. | |
nestedNsInfoId | Reference to information on nested NSs of this NS. | |
nsScaleStatus | Represents for each NS scaling aspect declared in the applicable DF, how "big" the NS instance has been scaled w.r.t. that aspect. | |
additionalAffinityOrAntiAffinityRule | Information on the additional affinity or anti-affinity rule from NS instantiation operation. Shall not conflict with rules already specified in the NSD. |
- ServiceComponent Instance - WAN Service
TBD