Discussion Contributions:
CSARs:
NOTE: Details of ParameterGroup and related structure, you can find here: Dynamic Parameters
1.1 Classes
1.1.1 ServiceAtomicDescriptor
Parent class: ServiceDescriptor
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
_serviceAtomicInstance | ServiceAtomicInstance | 0..* | OpenModelAttribute
| An implementation of atomic Service corresponding to a ServicecAtomicDescriptor. |
_resourceDesc (resourcespecification) | ResourceDesc (ResourceSpecification) | 0..* | OpenModelAttribute
| Resource components of constituting a serivce descriptor. |
serviceInvariantId | Identifier | 1 | OpenModelAttribute
Preliminary | Constant identifier of the service model. |
serviceId | Identifier | 1 | OpenModelAttribute
Preliminary | Versioned identifier of the service model (this id is changed for every major version of the service) |
name | String | 1 | OpenModelAttribute
Preliminary | The name of the service model designed. |
description | String | 1 | OpenModelAttribute
Preliminary | The description of the service model designed. |
category | String | 1..* | OpenModelAttribute
Preliminary | A predefined list which identifies the construct's category. There is a predefined list of service categories. |
version | String | 1 | OpenModelAttribute
Preliminary | The service descriptor version. |
serviceType | String | 0...1 | OpenModelAttribute
Preliminary | 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 | String | 0..1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
icon | String | 1 | OpenModelAttribute
Preliminary | The icon path of the service. |
_serviceInstance | ServiceInstance | 0..* | OpenModelAttribute
| An instance of Service deployment. |
isShared | Boolean | 1 | OpenModelAttribute
preliminary | Describe whether this service descriptor is shared or not in the service design. "True" means this service can be shared by other services, orchestrator in runtime will first search an existed instance to see if it can satisfy the demands; "False" means can't be shared by other services, orchestrator will directly instantiate a new instance.
|
lifecycleManagementScript | ServiceLifecycleManagementScript | 0..* | OpenModelAttribute
preliminary | Includes a list of events and corresponding management scripts performed for the Service.
|
1.1.2 ServiceCompositeDescriptor
ServcieCompositeDescriptor is used to model the design time representation of a service component or network service.
Parent class: ServiceDescriptor
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
serviceInvariantId | Identifier | 1 | OpenModelAttribute
| Constant identifier of the Service Component model. |
serviceId | Identifier | 1 | OpenModelAttribute
| Versioned identifier of the Service Component model (this id is changed for every major version of the service component). |
name | String | 1 | OpenModelAttribute
| The name of the service component. |
description | String | 1 | OpenModelAttribute
| The description of service component. |
category | String | 1..* | OpenModelAttribute
Preliminary | A predefined list which identifies the construct's category. There is a predefined list of service categories. |
version | String | 1 | OpenModelAttribute
| The version of service component. |
_serviceDescriptor | ServiceDescriptor | 1..* | OpenModelAttribute
| Describe the nested relationship between multiple Serive Descriptors. |
_serviceCompositeInstance | ServiceCompositeInstance | 0..* | OpenModelAttribute
| An implementation of composite Service corresponding to a ServiceCompositeDescriptor. |
_resourceDesc (resourcespecification) | ResourceDesc (ResourceSpecification) | 0..* | OpenModelAttribute
| Resource components of constituting a serivce descriptor. |
serviceType | String | 0...1 | OpenModelAttribute
Preliminary | 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 | String | 0..1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
icon | String | 1 | OpenModelAttribute
Preliminary | The icon path of the service. |
_serviceInstance | ServiceInstance | 0..* | OpenModelAttribute
| An instance of Service deployment. |
isShared | Boolean | 1 | OpenModelAttribute
preliminary | Describe whether this service descriptor is shared or not in the service design. "True" means this service can be shared by other services, orchestrator in runtime will first search an existed instance to see if it can satisfy the demands; "False" means can't be shared by other services, orchestrator will directly instantiate a new instance. |
lifecycleManagementScript | ServiceLifecycleManagementScript | 0..* | OpenModelAttribute
preliminary | Includes a list of events and corresponding management scripts performed for the Service. |
1.1.3 ServiceDescriptor
ServiceDescriptor is used to model the design time representation of a service.
Parent class: DesignEntity
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
serviceInvariantId | Identifier | 1 | OpenModelAttribute
Preliminary | Constant identifier of the service model. |
serviceId | Identifier | 1 | OpenModelAttribute
Preliminary | Versioned identifier of the service model (this id is changed for every major version of the service) |
name | String | 1 | OpenModelAttribute
Preliminary | The name of the service model designed. |
description | String | 1 | OpenModelAttribute
Preliminary | The description of the service model designed. |
category | String | 1..* | OpenModelAttribute
Preliminary | A predefined list which identifies the construct's category. There is a predefined list of service categories. |
version | String | 1 | OpenModelAttribute
Preliminary | The service descriptor version. |
serviceType | String | 0...1 | OpenModelAttribute
Preliminary | 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 | String | 0..1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
icon | String | 1 | OpenModelAttribute
Preliminary | The icon path of the service. |
isShared | Boolean | 1 | OpenModelAttribute
preliminary | Describe whether this service descriptor is shared or not in the service design. "True" means this service can be shared by other services, orchestrator in runtime will first search an existed instance to see if it can satisfy the demands; "False" means can't be shared by other services, orchestrator will directly instantiate a new instance. |
lifecycleManagementScript | ServiceLifecycleManagementScript | 0..* | OpenModelAttribute
preliminary | Includes a list of events and corresponding management scripts performed for the Service. |
1.1.4 ServiceAtomicInstance
Parent class: ServiceInstance
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
_resourceInstance | ResourceInstance | 0..* | OpenModelAttribute
| Resource instance components of constituting a serivce instance. |
serviceInstanceId | Identifier | 1 | OpenModelAttribute
Preliminary | Uniquely identifies this instance of a service. |
serviceInstanceName | String | 0...1 | OpenModelAttribute
Preliminary | The name assigned to the service-instance. |
serviceType | String | 0..1 | OpenModelAttribute
Preliminary | 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 | String | 1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
selfLink | Uri | 1 | OpenModelAttribute
Preliminary | URL to endpoint where more details can be gotten. |
orchestrationStatus | String | 1 | OpenModelAttribute
Preliminary | Orchestration status of the service instance. |
nsStatus | String | 1 | preliminary OpenModelAttribute
| Describe NS instance staus: instantiating(creating the Networek Service instance), active(the existed Network Service instance is under using), terminating(the existed Network Service instance stops using) or etc(healing and other possible status). |
instanceSharingNumber | Integer | 0...1 | OpenModelAttribute
preliminary | Record the number of services that are using this service instance. Note: This attribute can be used when a service instance is prepared to be deleted, the detected number will help to find how many services are using this instance. If number is greater than 1, it shows this instance is used by other service(s), otherwise it can be deleted. |
1.1.5 ServiceCompositeInstance
Parent class: ServiceInstance
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
_resourceInstance | ResourceInstance | 0..* | OpenModelAttribute
| Resource instance components of constituting a serivce instance. |
serviceInstanceId | Identifier | 1 | OpenModelAttribute
Preliminary | Uniquely identifies this instance of a service. |
serviceInstanceName | String | 0...1 | OpenModelAttribute
Preliminary | The name assigned to the service-instance. |
serviceType | String | 0..1 | OpenModelAttribute
Preliminary | 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 | String | 1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
selfLink | Uri | 1 | OpenModelAttribute
Preliminary | URL to endpoint where more details can be gotten. |
orchestrationStatus | String | 1 | OpenModelAttribute
Preliminary | Orchestration status of the service instance. |
nsStatus | String | 1 | preliminary OpenModelAttribute
| Describe NS instance staus: instantiating(creating the Networek Service instance), active(the existed Network Service instance is under using), terminating(the existed Network Service instance stops using) or etc(healing and other possible status). |
InstanceSharingNumber | Integer | 0...1 | OpenModelAttribute
preliminary | Record the number of services that are using this service instance. Note: This attribute can be used when a service instance is prepared to be deleted, the detected number will help to find how many services are using this instance. If number is greater than 1, it shows this instance is used by other service(s), otherwise it can be deleted. |
1.1.6 ServiceInstance
ServiceInstance is used to model the run time representation of a service.
Applied stereotypes:
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
serviceInstanceId | Identifier | 1 | OpenModelAttribute
Preliminary | Uniquely identifies this instance of a service. |
serviceInstanceName | String | 0...1 | OpenModelAttribute
Preliminary | The name assigned to the service-instance. |
serviceType | String | 0..1 | OpenModelAttribute
Preliminary | 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 | String | 1 | OpenModelAttribute
Preliminary | An optional string field for shortcode that defines the function that the service is providing. E.g. "MISVPN" or "AIM". |
selfLink | Uri | 1 | OpenModelAttribute
Preliminary | URL to endpoint where more details can be gotten. |
orchestrationStatus | String | 1 | OpenModelAttribute
Preliminary | Orchestration status of the service instance. |
nsStatus | String | 1 | preliminary OpenModelAttribute
| Describe NS instance staus: instantiating(creating the Networek Service instance), active(the existed Network Service instance is under using), terminating(the existed Network Service instance stops using) or etc(healing and other possible status). |
instanceSharingNumber | Integer | 0...1 | OpenModelAttribute
preliminary | Record the number of services that are using this service instance. Note: This attribute can be used when a service instance is prepared to be deleted, the detected number will help to find how many services are using this instance. If number is greater than 1, it shows this instance is used by other service(s), otherwise it can be deleted. |
1.1.7 SelectionCriteria
SelectionCriteria finds descriptors and instances according to specific properties of those entities.
Applied stereotypes:
- preliminary
- OpenModelClass
- support: OPTIONAL
Attribute Name | Type | Mult. | Stereotypes | Description |
selectionCriteriaId | Identifier | 1 | OpenModelAttribute
preliminary | Unique indentifier of this SelectionCriteria. |
1.1.8 SelectionCriteriaAtomic
A simple (atomic) selection criteria that holds a specific attribute comparision expression.
Parent class: SelectionCriteria
Applied stereotypes:
- preliminary
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
metricName | String | 1 | OpenModelAttribute
preliminary | Name of compared parameter or attribute. |
operator | Operator | 1 | OpenModelAttribute
preliminary | Comparison operator, e.g. equal, less than, greater or etc. |
value | String | 1 | OpenModelAttribute
preliminary | Compared value (can be a name of a parameter in referenced class).
|
valueType | String | 1 | OpenModelAttribute
preliminary | The type of the value property (String, Integer, Real, ...). |
selectionCriteriaId | Identifier | 1 | OpenModelAttribute
preliminary | Unique indentifier of this SelectionCriteria. |
1.1.9 SelectionCriteriaComposite
A SelectionCriteriaComposite is an aggregation of multiple SelectionCriterias. Aggregation can be for example AND, OR or XOR logical operations.
Parent class: SelectionCriteriaComposite
Applied stereotypes:
- preliminary
- OpenModelClass
- support: MANDATORY
Attribute Name | Type | Mult. | Stereotypes | Description |
compositeOperator | CompositeOperator | 1 | OpenModelAttribute
preliminary |
Logical operation for SelectionCriterias composition, e.g. logical AND, OR or XOR. |
selectionCriteriaId | Identifier | 1 | OpenModelAttribute
preliminary | Unique indentifier of this SelectionCriteria. |
2.1 Data Types
2.1.1 ServiceLifecycleManagementScript
The LifeCycleManagementScript information element specifies a script for the service.
Attribute Name | Type | Mult. | Access | Stereotypes | Description |
event | ServiceLcmEvent | 0..* | RW | OpenModelAttribute
preliminary | Describes Service lifecycle event(s) or an external stimulus detected on an orchestrator reference point.
|
lcmTransitionEvent | String | 0..* | RW | OpenModelAttribute
preliminary | Describes the transition Service lifecycle event(s) that cannot be mapped to any of the enumerated values defined for the event attribute. |
script | String | 1 | RW | OpenModelAttribute
preliminary | Includes a Service LCM script (e.g. written in a DSL) triggered to react to one of the events listed in the event attribute. |
scriptDsl | String | 1 | RW | OpenModelAttribute
preliminary | Defines the domain specific language (i.e. the type) of script that is provided. Types of scripts could include bash, python, etc. |
scriptInput | KeyValuePair | 0..* | RW | OpenModelAttribute
preliminary | Array of KVP requirements with the key as the parameter name and the value as the parameter that need to be passed as an input to the script. Note: The scriptInput values are passed to the scripts in addition to the parameters received in the operation invocation request or indicator value change. |
3.1 Enumerations
3.1.1 CompositeOperator
Contains Enumeration Literals:
- AND
- OR
- XOR
3.1.2 Operator
Contains Enumeration Literals:
- MORETHAN
- LESSTHAN
- EQUAL
3.1.3 ServiceLcmEvent
Contains Enumeration Literals:
- EVENT_START_DEPLOYMENT
- EVENT_END_DEPLOYMENT
- EVENT_START_CONFIGURATION
- EVENT_END_CONFIGURATION
- EVENT_START_TERMINATION
- EVENT_END_TERMINATION
21 Comments
Kevin Scaggs
A few comments as mentioned on calls follow:
Chuyi Guo
Hello Kevin,
1a. I think ServiceProfile is used to tell the SLA, it is a general term. Maybe I made a bad explanation of it. For 1b I will change the description.
For 2, 3 and 4, ServiceConfigurableProperties is to tell the Configuration information of the service, and profile is about SLA, as you said, they should be seperated. As for the question of "class" or "datatype", I think both are OK from my side. Since 3GPP has the "profile" of datatype, maybe change ServiceProfile into datatype?
5. I think Borislav has already give one in his slides, page 16-18, and 24 is for data model.
6. Maybe this is a good idea, it is better for next release?
Gil Bullard
Borislav, based on our calls and your email exchange with Fei ("In order to share that DU, I would wrap it in a service, including the relevant properties and model operations and workflows for configuration, sharing etc. This service can be shared between network slice subnets."), I understand that your proposal does not propose a modeling solution sufficient to drive ONAP model-driven support for “DUaaS”. Rather, I understand your proposal assumes that DUaaS is supported through “custom” (i.e., Service Provider and Vendor specific) SO workflows, A&AI models, Controller Directed Graphs. Given that, I don’t think that we can really consider your proposal a “Network Slice Information Model”. I believe that we must change the name of your proposal. Maybe “Nested Service Information Model”? I think it would be reasonable to state on the wiki page that such a “nested service information model” could prove useful and even necessary for many service types, including perhaps Network Slicing. However, though it may be necessary to support Network Slicing, it is not sufficient.
If you want to instead keep the name of the proposal, then we need to get into the modeling of the Resources that comprise DUaaS and their associations with that Service, to ensure that that model captures the information content needed to drive ONAP’s model-driven support thereof.
Borislav Glozman
I do not mind to rename Network Slice Information Model to Nested and Shared Services information model, it is actually a more accurate and generic representation.
Hopefully based on this model we will provide a demo/mock network slicing service model in ONAP.
To support Network Slicing, there will need to be available (at least) RAN xNFDs.
I will be glad to participate in modeling of resources that comprise DUaaS, when such resources will be available.
Chuyi Guo
I think this name is a little confused, since we have the nested service model, and this name cann't tell the core we are doing, so maybe change to "Service Information Model for Network Slice"?
John Quilty
I think the point (which I agree with) is that this update is more generic than just network slice. It is a case of updates/extensions required to the Nested Service Model to support the Dublin Release's 5G Network Slice use case.
Andrei Kojukhov
I agree that the common design approach is Nested Service model that can be used in 5G Network Slice use case for Dublin.
Thinh Nguyenphu
It is not clear to me what is Nested Service and Shared Service? is there consensus on defintion for both terms?
Borislav Glozman
Nested service is the opposite of Composite service. If Service A contains Service B, then Service A is the Composite service and Service B is the Nested one.
Shared service is the opposite of Dedicated service. If a Nested service is Shared, it is not instantiated upon instantiation of the Composite service, but an existing instance of it is located and "handled" - reallocated / reconfigured as needed. Dedicated Nested service is instantiated.
Borislav Glozman
Also, please take a look at NFV-IFA012 Annex A - NS Nesting.
Thinh Nguyenphu
so, is nested NS is same as nested service?
Borislav Glozman
I am not sure what you refer to by NS (there can be several options in this context)
Kevin Scaggs
Per today's ONAP Service Information Modeling call, following are a few thoughts.
Filters
ConfigurableProperties and Profiles
Following is a diagram depicting what is described above.
Michela Bevilacqua
Hi,
Some comments:
1) Please remove SelectionCriteria classes and section 117,118,119 from this page. The SelectionCriteria proposal is available in a separate page Selection Criteria.
2) ScriptInput attribute shouldn´t be defined in relation with ParameterGroup class ?
Chuyi Guo
Hi Michela,
for 1) SelectionCriteria classes originally comes from slice service model requirements, and has been used in nested service scene and being generalized to all the design entities. This part has been supported in SDC service design. SelectionCriteriathe is a necessary part in this enhanced nested service information model, you can see the SelectionCriteria is optional in this proposal which means you can choose to have SelectionCriteria in your service model or not.
for 2) ScriptInput comes from ETSI IFA 011, you can find the definition in the specification. This attribute is used to tell the script related information, not the service itself.
ParameterGroup is used for all the dynamic parameters(which means not every service will have this, and different services have different ParameterGroups) to tell the specific properties for this service, like 3GPP Service Profie, this is strongly related to THE service.
Parshad Patel
Hi,
Not able to extract CSAR files(service-5gRanNss-csar.csar, service-Duaas-csar.csar etc) embedded within ONAP Network Slicing Model Presentation.
Could you please upload proper CSAR files or from where we can get working CSAR files?
Chuyi Guo
Hi Parshad,
I just have a try, I can download the CSAR files from the presentation well, would you like to try again, or try with another zip software?
Parshad Patel
Hi Chuyi Guo,
I tried again with 7-zip and other unzip softwares but its not working for me. Could you please upload working csar files as one zip file separated from presenration or any other better way?
Arindam Mondal
Chuyi Guo I'm also not able to download those CSAR archives. It will be good if you could directly upload to wiki/jira.
Chuyi Guo
Hi Borislav, would you like to help on this? Borislav Glozman
Borislav Glozman
I uploaded the CSARs at the top of the page after the presentation.
Note those are demo CSARs, with dummy resources.