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. |
nsScaleStatus | 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. |
**************************************************************Note: this section above will be move into the clear page.***********************************************************************************************
Current Service Information Model UML Documentation: ONAP Service 2017-11-08.docx
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. One Service is a E2E service. Network Service, or WAN service can be the service components in the E2E service.
ServiceComponents are made up of ServiceComponents or resources.
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.
...
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 | maopeng zhang 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”. | 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 | maopeng zhang 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 | maopeng zhangServiceCatalogItem-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. maopeng zhang: ServiceEcompNaming and ecompGeneratedNaming are two flags to indentify whether the ONAP service name auto-generated. For the user, there are too many parameters to be inputted if using this feature. could it be possible that if namingPolicy is provided and serviceName is empty, the ONAP will auto-generate service name? | ||||
ecompGeneratedNaming | |||||
namingPolicy | |||||
service_naming | |||||
service-version | Version | serviceVersion | The service version in SDC catalog | ||
resource-version | maopeng zhang ServiceCatalogItem-Q4: What's the resource-version meaning here? The version of resource are related to the resource. Why is it as a service attribute? | resource-version for concurrency | |||
AT&TContact | maopeng zhang 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 | maopeng zhang ServiceCatalogItem-Q6: Please clarify how to use the attribute in the run-time? | Obtain from vendor if available; tester can add additional information | |||
Constraints | maopeng zhang ServiceCatalogItem-Q7: ECOMP IM: From the TOSCA model. Multiple fields. Could include thresholds and policies. Vendor upgrade requirements should also be included here. TOSCA: A constraint clause defines an operation along with one or more compatible values that can be used to define a constraint on a property or parameter’s allowed values when it is defined in a TOSCA Service Template or one of its entities. The constraints is not a attribute. | From the TOSCA model. Multiple fields. Could include thresholds and policies. Vendor upgrade requirements should also be included here. | |||
Cost | maopeng zhang ServiceCatalogItem-Q8: What's the Cost used for in the use cases and how does it effect the run-time components? | 2015: will be blank and not mandatory. 2016 may be accessed by role (TBD) and will be a mandatory field. | |||
D2RequirementsChecklist | maopeng zhang 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 | maopeng zhang ServiceCatalogItem-Q10: What's the EntitlementId, UnitNumber, and unitType used for in the use cases and how does it effect the run-time components? In the latest document there is no entitlement. is it removed? | Composite ID of contract and entitlement number from myprocurement | |||
EntitlementUnitNumber | From contract/entitlement | ||||
EntitlementUnitType | From contract/entitlement | ||||
FaultRequirements | maopeng zhang ServiceCatalogItem-Q11: It is an document from vendor. Should it be moved from design time? | Obtain from vendor | |||
Features | maopeng zhang ServiceCatalogItem-Q12: It is an document from vendor. Should it be moved from design time? | Obtain from vendor | |||
History | maopeng zhang ServiceCatalogItem-Q13: History is used for Keeping all major events, i.e., creation date, any modification, check in and check out with ATT UID. The type is only char. Suggest to be specified. | 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 | maopeng zhang ServiceCatalogItem-Q14: Do the Service support license? | Multiple fields. Categories of licenses planned; type, unit. | |||
Performance | maopeng zhang ServiceCatalogItem-Q15: It is an document from vendor. Should it be moved from design time? | Obtain from vendor if available; tester can add additional information | |||
Requirements | maopeng zhang ServiceCatalogItem-Q16: What are the Requirements used for in the use cases and how does it effect the run-time components? | Multiple fields. Includes connectivity | |||
ServiceSystemName | 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 | 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 | maopeng zhang: It is an document from vendor. Should it be moved from design time? | ||||
VF-SpecificPolicies | maopeng zhang: 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 | 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 | maopeng zhang: ServiceInstance-Q1 Where the workload-Context is got and format? | This field will store the environment context assigned to the service-instance | ||
workload-Context | maopeng zhang: ServiceInstance-Q2 Where the workload-Context is got and format? | 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 | maopeng zhang : ServiceInstance-Q3 what's the difference between them? Which is the Service UUID? | 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 | maopeng zhang : ServiceInstance-Q4 what's the widget-model-id & version? | 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 | maopeng zhang : 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 | maopeng zhang: What's "vhn-portal-url"? | URL customers will use to access the vHN Portal. | ||
service-instance-location-id | maopeng zhang: 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 | maopeng zhang: 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 | 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 | ||||
ServiceComponentCatalogItem | nestedNsdId | ServiceComponentCatalogItem-Q1 suggest these parameters to the service component(NS). Put the ServiceComponent as an abstract definition, and some specific domain service components can inherit from it and add their own attributes, such as NS or WAN, or others. | References the NSD of a constituent nested NS. | |||
ResourceCatalogItem | vnfdid | References the VNFD of a constituent VNF. | ||||
ResourceCatalogItem | pnfdId | References the PNFD of a constituent PNF. | ||||
sapd | Provides the descriptor of a service access point of the network service. | |||||
ResourceCatalogItem | virtualLinkDesc | Provides the constituent VLDs. | ||||
vnffgd | Provides the descriptors of the | |||||
monitoredInfo | Identifies either a virtualised resourcerelated | |||||
autoScalingRule | Specifies a rule to trigger a scaling action on a NS instantiated according to the NSD. | |||||
lifeCycleManagementScript | Provides a life cycle management | |||||
nsDf | Identifies a DF within the scope of an NSD. | |||||
security | Provides a signature to prevent |
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 | |||
flavourId | same with the ServiceComponentCatalogItem-Q1 | Reference to the flavour of the NSD used to instantiate this NS. | |||
vnfInfoId | Reference to information on constituent VNFs of this NS. | ||||
pnfInfo | Information on the PNF(s) that are part of this NS. | ||||
virtualLinkInfo | Information on the VLs of thisNS. | ||||
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. |
...