Skip to content
Snippets Groups Projects
Commit 707baf6f authored by Christos Tranoris's avatar Christos Tranoris
Browse files

update #9

parent d2c66e63
No related branches found
No related tags found
1 merge request!11Merging "develop" documentation into "main" to tag it as 2024Q2
Pipeline #7086 passed
# Lifecycle Management (LCM) Rules # LCM Rules introduction
Lifecycle Management Rules: Defining complex conditions and actions during the lifecycle of a service and any necessary modifications throughout the service lifecycle.
## Intended Audience: Service Designers
In [Naas LCM Introduction](../../naas/lcm_intro.md) it was presented briefly the LCM Rules concept.
This section goes deeply on how Service Designers can use them.
* NOTE: This is a prototype/experimental feature. So issues might raise during operation
LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are four types of rules defined: LCM Rules are used for defining complex conditions and actions during the lifecycle of a service. In Openslice there are four types of rules defined:
...@@ -43,7 +53,7 @@ Rules are transformed automatically to executable code (currently is Java). If a ...@@ -43,7 +53,7 @@ Rules are transformed automatically to executable code (currently is Java). If a
OSOM is the responsible service for executing the rules on a specific phase. The following image explains the design in the BPMN phases: OSOM is the responsible service for executing the rules on a specific phase. The following image explains the design in the BPMN phases:
[![Rules](../images/lcm/lcmfig1_osom.png)](../images/lcm/lcmfig1_osom.png) [![Rules](./images/lcm/lcmfig1_osom.png)](./images/lcm/lcmfig1_osom.png)
...@@ -52,7 +62,7 @@ OSOM is the responsible service for executing the rules on a specific phase. The ...@@ -52,7 +62,7 @@ OSOM is the responsible service for executing the rules on a specific phase. The
Rules are defined when designing a Service Spec. Here is an example of a list of rules: Rules are defined when designing a Service Spec. Here is an example of a list of rules:
[![lcmrules](../images/lcm/lcmfig2.png)](../images/lcm/lcmfig2.png) [![lcmrules](./images/lcm/lcmfig2.png)](./images/lcm/lcmfig2.png)
Execution order of rules on a specific phase is random Execution order of rules on a specific phase is random
...@@ -66,7 +76,7 @@ Execution order of rules on a specific phase is random ...@@ -66,7 +76,7 @@ Execution order of rules on a specific phase is random
The following figure is an example of such a rule design. The rule for example will run in PRE_PROVISION phase: The following figure is an example of such a rule design. The rule for example will run in PRE_PROVISION phase:
[![lcmrules](../images/lcm/lcmfig3.png)](../images/lcm/lcmfig3.png) [![lcmrules](./images/lcm/lcmfig3.png)](./images/lcm/lcmfig3.png)
* The goal of the above rule is to properly define a variable AreaCodes given the chosen AreaOfService from a Service Order. * The goal of the above rule is to properly define a variable AreaCodes given the chosen AreaOfService from a Service Order.
* On the right side the user can define some rule properties or observe the underlying generated java code. * On the right side the user can define some rule properties or observe the underlying generated java code.
...@@ -80,11 +90,11 @@ Blockly has syntax rules. It helps with colours to define them. ...@@ -80,11 +90,11 @@ Blockly has syntax rules. It helps with colours to define them.
So for example a parameter that is a Number cannot be "glued" with a String. Will need some conversion first So for example a parameter that is a Number cannot be "glued" with a String. Will need some conversion first
[![lcmrules](../images/lcm/lcmfig4.png)](../images/lcm/lcmfig4.png) [![lcmrules](./images/lcm/lcmfig4.png)](./images/lcm/lcmfig4.png)
[![lcmrules](../images/lcm/lcmfig5.png)](../images/lcm/lcmfig5.png) [![lcmrules](./images/lcm/lcmfig5.png)](./images/lcm/lcmfig5.png)
[![lcmrules](../images/lcm/lcmfig6.png)](../images/lcm/lcmfig6.png) [![lcmrules](./images/lcm/lcmfig6.png)](./images/lcm/lcmfig6.png)
[![lcmrules](../images/lcm/lcmfig7.png)](../images/lcm/lcmfig7.png) [![lcmrules](./images/lcm/lcmfig7.png)](./images/lcm/lcmfig7.png)
[![lcmrules](../images/lcm/lcmfig8.png)](../images/lcm/lcmfig8.png) [![lcmrules](./images/lcm/lcmfig8.png)](./images/lcm/lcmfig8.png)
## Examples of Rules ## Examples of Rules
...@@ -103,7 +113,7 @@ In the following example we : ...@@ -103,7 +113,7 @@ In the following example we :
The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells. The strAreaCodes could be passed then e.g. to NFVO for instantiation of services to these cells.
[![lcmrules](../images/lcm/lcmfig9.png)](../images/lcm/lcmfig9.png) [![lcmrules](./images/lcm/lcmfig9.png)](./images/lcm/lcmfig9.png)
...@@ -119,7 +129,7 @@ The following displays some complex examples for defining the parameters to pass ...@@ -119,7 +129,7 @@ The following displays some complex examples for defining the parameters to pass
* if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later * if the Video quality requested is 1, again we use a simpler OSM Config block to configure the parameter OSM_CONFIG. We use as injected json text a variable constructed later
[![lcmrules](../images/lcm/lcmfig10.png)](../images/lcm/lcmfig10.png) [![lcmrules](./images/lcm/lcmfig10.png)](./images/lcm/lcmfig10.png)
### Define and instantiate different services according to Service Order request ### Define and instantiate different services according to Service Order request
...@@ -134,7 +144,7 @@ There are different ways to accomplish this: ...@@ -134,7 +144,7 @@ There are different ways to accomplish this:
The following image displays for example the latter case. The following image displays for example the latter case.
[![lcmrules](../images/lcm/lcmfig11.png)](../images/lcm/lcmfig11.png) [![lcmrules](./images/lcm/lcmfig11.png)](./images/lcm/lcmfig11.png)
### Call an external RESTful service ### Call an external RESTful service
...@@ -142,16 +152,22 @@ The following image displays for example the latter case. ...@@ -142,16 +152,22 @@ The following image displays for example the latter case.
This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service) This is useful in cases for example of alarms , external logging, calling other services e.g. email or even a complex algorithm written in other language e.g. call an external service and get a result. (service e.g. a Python service)
[![lcmrules](../images/lcm/lcmfig12.png)](../images/lcm/lcmfig12.png) [![lcmrules](./images/lcm/lcmfig12.png)](./images/lcm/lcmfig12.png)
[![lcmrules](../images/lcm/lcmfig13.png)](../images/lcm/lcmfig13.png) [![lcmrules](./images/lcm/lcmfig13.png)](./images/lcm/lcmfig13.png)
### Create New Service Orders ### Create New Service Orders
The following example calls to Order a New Service Specification with specific Parameter Values The following example calls to Order a New Service Specification with specific Parameter Values
[![lcmrules](../images/lcm/lcmfig14.png)](../images/lcm/lcmfig14.png) [![lcmrules](./images/lcm/lcmfig14.png)](./images/lcm/lcmfig14.png)
## Probe further
* Check our [examples](../examples/intro.md) for more usages
* See next the complete [specification](./specification.md)
......
File moved
# Service Inventory
After a Service Order completion, active services with their additional characteristics are found:
* From the Order Items of a selected Service order
* from the menu of Service inventory and then selecting details of each service
* through the Service Inventory API (TMF 638 - Service Inventory Management )
Openslice creates a Service for the requested CFS. Customers make Service Orders and Openslice instantiates the requested Service Specifications for each Service Order Item of a Service Order. Running Services instantiated by Openslice, reside in Openslice Service Inventory. The following picture displays how Service Specifications are related to Running Services and how Running Services relate with instantiated running Network Services.
[![Openslice Service Specification instantiation](./images/service_specification_instantiation.png)](./images/service_specification_instantiation.png)
There is a hierarchy of services. Usually an Instantiated CFS has Supporting Services some Instantiated RFSs. Then an Instantiated RFS is related to some running NS managed by NFVO
## Interacting with an Active Service (Day 2 config)
In some cases, if the underlying service is configured with actions (for example in OSM Day 2 primitive actions), there are characteristics that can be modified. Usually they are named like : <servicename>::Primitive::<action>
The user can edit the characteristic with a new value. The value is propagated through the OSOM and NFVO down to the related VNF.
## Terminating/Inactivating a service
You can terminate the service with one of the following processes:
* Select the related Service Order and terminate the Order Item. This will delete all the underlying related active services. The Order goes to ACKNOWLEDGED->INPROGRESS->COMPLETE
* To terminate or inactivate a service, select the specific service from the inventory, press Edit and set the State either to Inactive or Terminated
<b>Warning: if you terminate or inactivate a service the action cannot be undone.</b>
## uml: sequence diagram
Here I will embed PlantUML markup to generate a sequence diagram.
I can include as many plantuml segments as I want in my Markdown, and the diagrams can be of any type supported by PlantUML.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment