Open APIs

 View Only
  • 1.  TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Dec 09, 2019 12:20
    Hi,

    In TMF638, the service follows a lifecycle.
    • If we take a simple example, on the initial order, the Service will go from "Feasibility Checked" to "Designed" to "Reserved" to "Active"
    • Each of those state changed will trigger a ServiceStateChangeNotification event

    Let's imagine, few years later, the customer issues a Change Order which trigger a change in the service (Let's say customer is changing his Internet Speed)
    What is expecting from a Service Inventory LifeCycle perspective?
    • Is the Service Instance of TMF638 supposed to show the pending activities when the Service is already active?
      • Is the state going back from "Active" to "Designed" then "Reserved"... to end "Active" again?
      • Or we don't show the pending States and the Service stays "Active" all a along?
    • If we need to show the Pending states,
      • If an external system triggers a GET Service/{Id}, is the expectation to return the "Active" State, or the "Pending" one?
        • I have seen the concept of ServiceConfiguration or version in the model. Is the assumption that there is always one 1 instance of the Service (the latest one which overwrites the previous one everytime)?
      • How do we handle a cancellation of the Order? State will go back from "Designed" (for example) to "Active"? Our datastore will need to bring back the characteristics of the Service before the modification?
    Regards


    ------------------------------
    Stephane AH-KO
    CGI Info Systems Management Consulting Inc.
    ------------------------------


  • 2.  RE: TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Dec 10, 2019 08:03
    Hi Stephane

    First, I will note that your query applies equally to Product and to Resource.

    One way to handle this would be to add a version to these inventory entities  - we already have versioned entities in the catalog and in other places in the Open API - but inventory entities are not (yet) versioned. In this scheme, the version becomes an (optional) part of the key. The order causes a new tentative version of the inventory entity to be created, state changes and events raised by the order refer to this version of the entity. When the order is complete, this version becomes the current version - operations not explicitly specifying a version apply to the current version.

    Given that we don't have inventory entity versioning, an alternative would be to ensure that events are raised from the order to mark the state changes of the entity contained within the order.

    Adding @Ludovic Robert for his thoughts.

    Hope it helps​​​

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 3.  RE: TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Dec 10, 2019 10:02
    Hello Stephane, Jonathan

    I globally agreed with Jonathan answer and just add another option (alternative).

    From my perspective you could also extend TMF core state (by extending I mean keep TMF core state but defining 'sub.state' within core state). For example in some implementation we kept and use active but also we defined an active.pendingChange state that allow us to distinguish service with a current modification in progress. We could imagine having an active.pendingTerminate in same way.
    About the cancellation for me it is mainly in the serviceOrder API where you will use cancelServiceOrder resource (this operation was introduced for product & resource order and will be also added to service order). The state of the service will depends on {current service state / order action on the state / resolution of the cancel request}.

    Hope it helps,

    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    My answer are my own & don't represent necessarily my company or the TMF
    ------------------------------



  • 4.  RE: TMF638 - Service Inventory - State Life Cycle

    Posted Dec 10, 2019 10:35

    Salut Stéphane!

    The best is to separate the service lifecycle management from its design or configuration lifecycle management. TMF638 only deals with actions on a service, but your Inventory should support both the lifecycle of the service and of its design/configuration separately. The service lifecycle reflects the operational state of the service, while its configuration lifecycle reflects its detailed definition.

    During a service modification, requested via TMF638 on an "Active" service, the service can remain in its current state (for the most part – see further), while you can go through a complete lifecycle for a new configuration version (containing all values of the current version, which you then modify as needed, such as bandwidth, through its configuration Design & Assign logic).

    As you go through the new configuration version lifecycle, it reaches some "Designed" state (meaning, your Design&Assign has completed its job). This may generate an event or you may invoke a process (such as "calculate technical actions") which will ultimately lead to a Service Activation action. It is during the service activation duration that your service may flicker from its Active state.

    As your systems go through Service Activation (which may take seconds to a minute or so), you could decide (I would 😉 ) to use an interm service state (possibly not defined in TMF638) such as "Active_pending" (or "Pending"), as you are really, during this time, in a service disruption situation (which may or may not be service affecting). During this service activation time, if there were a query, you'd get "Active_pending" or "Pending", but anytime before the service activation is triggered, you'd still get an "Active" state.

    Once the Service Activation successfully completes, then you can move your "Designed" configuration state to "Issued" and/or "Completed", make that new configuration version the active one (replacing the previous version), and then push your service state from "Active_pending" or "Pending" back to "Active".

    When you get a cancellation of the order, you simply change the design/configuration state of the new configuration version (which is presumably still undergoing Design&Assign) to "Canceled", effectively never affecting the service state itself which remained "Active". (There is a Point of No Return situation, for order cancellations, once automated Service Activation has been initiated, but that's a longer discussion.)

    Hope this helps!

    Cheers,

    Stéphan



    ------------------------------
    Stephan Pelletier
    STEPHAN PELLETIER CONSULTING INC.
    ------------------------------



  • 5.  RE: TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Dec 11, 2019 07:39
    Thanks all for your answer,

    At the beginning, we were looking at adding new states/sub-states. We realized that it won't be sufficient, for  many reasons (need to return sometimes the Pending view or Active view of the Service, need to revert back to previous version of the service).

    Concept of versions became important like @Jonathan Golder mentionned. Adding Version at the Service level will defeat our idea of a unique {id} for the service (Every new version = new record in our datastore)

    In the same idea @Stephan Pelletier eluded,, the concept of Service and Service Configuration are separate in our mind
    We are looking into adding a new object under Service :
    - Service (contains the id, have static characteristics, have state like "Pending" or "Active")
    - ServiceConfigurations (1-to-many relationship with Service, contain the versions, have to Characteristics that are varies with the Configuration, have states like "Pending-Assign")

    With this in place, we could achieve our goals like:
    • Having a history of all the configurations of the service 
    • Ability to return Pending vs In-Service view to external systems
    • Ability to compare 2 configurations to analyse delta
    • Ability revert back to previous configuration in case of cancel Order
    Regards,
    Stef

    ​​

    ------------------------------
    Stephane AH-KO
    CGI Info Systems Management Consulting Inc.
    ------------------------------



  • 6.  RE: TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Apr 17, 2020 09:50
    Agree with the conclusion.

    Based on this conclusion is the impact on various Open APIs (e.g., TMF638) being assessed? What is the plan for enhanced TMF638 APIs with ServiceConfiguration Object being made available.

    Thank you & Stay Safe

    ------------------------------
    Srinivasa Vellanki
    Amdocs Management Limited
    ------------------------------



  • 7.  RE: TMF638 - Service Inventory - State Life Cycle

    TM Forum Member
    Posted Aug 10, 2021 14:52
    Hi All,

    Is there a plan to add Service Configuration object to TMF638? Or should it be added to TMF640 which is focused on Service Activation and Configuration?

    As Stephan Ah Ko said, we need the ability to address requirements related to Service Configuration. Do we have a direction on how to address these requirements?

    ------------------------------
    Kinshuk Kulshreshtha
    Oracle Corporation

    My views posted on this forum are personal, and do not reflect the position of my employer or TM Forum.
    ------------------------------