Skip to content
index.html 37.4 KiB
Newer Older
    <span class="md-ellipsis">
      Check In Progress orders process
    </span>
  </a>
  
      
        <li class="md-nav__item">
  <a href="#external-service-provider-deployment-request-process" class="md-nav__link">
    <span class="md-ellipsis">
      External Service Provider Deployment Request process
    </span>
  </a>
  
      
        <li class="md-nav__item">
  <a href="#fetch-partner-services-process" class="md-nav__link">
    <span class="md-ellipsis">
      Fetch Partner Services Process
    </span>
  </a>
  
      
        <li class="md-nav__item">
  <a href="#local-service-orchestration-process" class="md-nav__link">
    <span class="md-ellipsis">
      Local Service Orchestration Process
    </span>
  </a>
  
              </div>
            
          
          
            <div class="md-content" data-md-component="content">
              <article class="md-content__inner md-typeset">
                
                  


<h1 id="openslice-service-orchestration-and-order-management-osom">Openslice Service Orchestration and Order Management - OSOM</h1>
<p>OSOM is a service responsible for:</p>
<ul>
<li>Service Order Management (SOM)</li>
<li>Service Orchestration (SO)</li>
</ul>
<p>It uses open source Flowable Business process engine (https://www.flowable.org) .</p>
<p>A Service Order follows the states as defined in TMF641 specification: </p>
<p><a href="../../images/service_order_states.png"><img alt="Service Order state" src="../../images/service_order_states.png" /></a></p>
<h2 id="initial-state">Initial state</h2>
<p>When a new order is created, it goes into the Initial state. It is stored in the repository and triggers an Event.</p>
<p><a href="../../images/service_order_initial_state.png"><img alt="Initial state" src="../../images/service_order_initial_state.png" /></a></p>
<p>Administrators are notified usually from the Ticketing System of a new order. They login to Openslice and change the State of the order either to ACKNOWLEDGED or REJECTED. If ACKNOWLEDGED they can Propose a startDate, add Notes, and add any additional service items</p>
<h2 id="order-scheduler">Order scheduler</h2>
<p>A process checks every 1 minute for ACKNOWLEDGED orders.</p>
<p><a href="../../images/order_scheduler_bpm.png"><img alt="Order scheduler BPM" src="../../images/order_scheduler_bpm.png" /></a></p>
<p><a href="../../images/order_scheduler_diagram.png"><img alt="Order scheduler" src="../../images/order_scheduler_diagram.png" /></a></p>
<p>It retrieves all orders that are in ACKNOWLEDGED state and if the start date is in time it will initialize the process by settingn the order in IN_PROGRESS state. Finally the Start Order Process will start.</p>
<h2 id="start-order-process">Start order process</h2>
<p>This process for now is a draft simple prototype to make a simple orchestration via NFVO. Here the actual Services (TMF638/640 model) are created and attached to Service Order and Service Inventory.</p>
<p><a href="../../images/start_order_process_bpm.png"><img alt="Start Order BPM" src="../../images/start_order_process_bpm.png" /></a></p>
<p><a href="../../images/start_order_process_diagram.png"><img alt="Start Order interactions" src="../../images/start_order_process_diagram.png" /></a></p>
<p>We expect here to check which tasks can be orchestrated by NFVO and which by human. We create the equivalent Services(TMF638/640 model) for this order.</p>
<ol>
<li>During check it should decide to create Service(s) for this service order O1 and send it to ServiceInventory</li>
<li>The Services(TMF638 model) are assigned to the Order O1 In supportService List</li>
<li>Each OrderItem OI1 is related to one serviceSpecification</li>
<li>Each ServiceSpecification has also related serviceSpecRelationships</li>
<li>So if we receive an order O1 for a ServiceSpec A which relates to (a bundle of) 3 specs(2 CFS, 1 RFS) we do the following:<ol>
<li>Create a Service S_A(TMF638 model) for ServiceSpec A for Order O1</li>
<li>We create also 3 Services S_C1, S_C2 and S_R1 equivalent to the serviceSpecRelationships (2 CFS, 1 RFS) </li>
<li>At this point the order will have 1 Local Service Orchestration Process(S_A),  2 supportingServices  refs(S_C1, S_C2) and 1 supportingResource(S_R1)</li>
<li>The 3 supportingServices and 1 supportingResource correspond to total 4 Services in ServiceInventory</li>
<li>Service S_A will have: <ol>
<li>startMode 1: Automatically by the managed environment</li>
<li>State: RESERVED and the Lifecycle will be handled by OSOM</li>
</ol>
</li>
<li>Services S_C1 and S_C2 we decide that cannot be orchestrated then they have <ol>
<li>startMode: 3: Manually by the Provider of the Service</li>
<li>State: RESERVED and the Lifecycle will be handled by OSOM</li>
<li>If the CFS is a bundle spec it is further recursively orchestrated </li>
</ol>
</li>
<li>Service S_R1 will have <ol>
<li>startMode 1: Automatically by the managed environment.</li>
<li>State: RESERVED</li>
<li>IF The Service has the characteristic CharacteristicByName( "NSDID") it will be further processed by the NFVO </li>
</ol>
</li>
</ol>
</li>
</ol>
<p>There will be two instances of task "User Task Manual Complete Service" each for Services S_C1 and S_C2. The task is Transient for now. It displays only the services that are not automated! 
Here is a flow for future:</p>
<ol>
<li>We wait here for human decision.</li>
<li>From API we get a result:
    a. If set to ACTIVE/TERMINATED then we complete the task
    b. In any other state we stay in this task until it is resolved as in step a
    c. The Status of ORDER O1 is also updated to PARTIAL</li>
</ol>
<p>There will be an instance of  NFVODeploymentRequest process  each for Service S_R1. (see later)</p>
<ol>
<li>This process is related with the NFVO orchestration</li>
<li>It will send a msg to NFVO(s?) for a specific deployment request</li>
</ol>
<p>All services in "Order Complete" are in a status:</p>
<ol>
<li>Depending on the result the service S_A is either ACTIVE or INACTIVE or TERMINATED</li>
<li>The Status of ORDER O1 is also updated to COMPLETED  or PARTIAL (in case we have some services running) or FAILED (in cases we have errors)</li>
</ol>
<p>A Service follows the states as defined in TMF638 Service Inventory specification: </p>
<p><a href="../../images/service_states.png"><img alt="Service state" src="../../images/service_states.png" /></a></p>
<h2 id="nfvodeploymentrequest-process">NFVODeploymentRequest process</h2>
<p><a href="../../images/NFVODeploymentReq_process.png"><img alt="NFVODeploymentRequest BPM" src="../../images/NFVODeploymentReq_process.png" /></a></p>
<p>This process is related with the NFVO orchestration
It will send a msg to NFVO(s?) for a specific deployment request
Then it checks the deployment status. It will wait 30 secs each time until the deployment is running (or failed)</p>
<h2 id="check-in-progress-orders-process">Check In Progress orders process</h2>
<p>Every 1 minute the "Check In Progress Orders" process is executed checking if a supported Service changed state (i.e. to ACTIVE) then the whole Order will change state (e.g. go to COMPLETED)</p>
<p><a href="../../images/check_inProgress_orders.png"><img alt="Check In Progress BPM" src="../../images/check_inProgress_orders.png" /></a></p>
<h2 id="external-service-provider-deployment-request-process">External Service Provider Deployment Request process</h2>
<p><a href="../../images/externalSPDeploymentReq.png"><img alt="External Service Provider Deployment Request process BPM" src="../../images/externalSPDeploymentReq.png" /></a></p>
<p>This process contains tasks for submitting order requests to external partners.
- Submit Order To External Service Provider Task: This task creates automatically a Service Order request to a 3rd party provider SO that hosts the Service Specification
- Check external service order fulfillment task: This task Check external partner for Service creations and updates our local inventory of services the service characteristics of remote Service Inventory</p>
<h2 id="fetch-partner-services-process">Fetch Partner Services Process</h2>
<p><a href="../../images/fetchPartnerServices.png"><img alt="Fetch Partner Services Process BPM" src="../../images/fetchPartnerServices.png" /></a></p>
<p>Every 2 minutes the "fetchPartnerServicesProcess" process is executed checking remote Partner Organizations for changes in the published catalogues.
The Fetch and Update External Partner Services Task is executed in paralle l for each Partner Organization </p>
<h2 id="local-service-orchestration-process">Local Service Orchestration Process</h2>
<p><a href="../../images/LocalServiceOrchestrationProcess.png"><img alt="Local Service Orchestration Process BPM" src="../../images/LocalServiceOrchestrationProcess.png" /></a></p>
<p>This process handles automatically services that need to be further orchestrated or processed by OSOM. For example, for a CFS Bundled service we create such automated service instances that just aggregate the underlying services. </p>
          
          
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
        
          <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
  Back to top
</button>
        
      </main>
      
        <footer class="md-footer">
  
    
      
      <nav class="md-footer__inner md-grid" aria-label="Footer" >
        
          
          <a href="../messagebus/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Message bus">
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
            <div class="md-footer__title">
              <span class="md-footer__direction">
                Previous
              </span>
              <div class="md-ellipsis">
                Message bus
              </div>
          </a>
        
        
          
          <a href="../oauth/" class="md-footer__link md-footer__link--next" aria-label="Next: Authentication">
            <div class="md-footer__title">
              <span class="md-footer__direction">
                Next
              </span>
              <div class="md-ellipsis">
                Authentication
              </div>
            <div class="md-footer__button md-icon">
              
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
            </div>
          </a>
        
      </nav>
    
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-copyright">
  
    <div class="md-copyright__highlight">
      Copyright &copy; 2019-2024 Openslice Project
  
  
    Made with
    <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
      Material for MkDocs
    </a>
  
      
        <div class="md-social">
  
    
    
    
    
      
      
    
    <a href="https://osl.etsi.org/" target="_blank" rel="noopener" title="osl.etsi.org" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64h185.4c2.2 20.4 3.3 41.8 3.3 64zm28.8-64h123.1c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6 78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7 10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5 11.6 26 20.9 58.2 27 94.7zm-209 0H18.6c30-74.1 93.6-130.9 172-151.6-25.5 34.2-45.3 87.7-55.3 151.6zM8.1 192h123.1c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zm186.6 254.6c-11.6-26-20.9-58.2-27-94.6h176.6c-6.1 36.4-15.5 68.6-27 94.6-10.5 23.6-22.2 40.7-33.5 51.5-11.2 10.7-20.5 13.9-27.8 13.9s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6-78.4-20.7-142-77.5-172-151.6h116.7zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6 25.5-34.2 45.2-87.7 55.3-151.6h116.6z"/></svg>
    </a>
  
    
    
    
    
      
      
    
    <a href="https://labs.etsi.org/rep/osl" target="_blank" rel="noopener" title="labs.etsi.org" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="m503.5 204.6-.7-1.8-69.7-181.78c-1.4-3.57-3.9-6.59-7.2-8.64-2.4-1.55-5.1-2.515-8-2.81-2.9-.295-5.7.083-8.4 1.11-2.7 1.02-5.1 2.66-7.1 4.78-1.9 2.12-3.3 4.67-4.1 7.44l-47 144H160.8l-47.1-144c-.8-2.77-2.2-5.31-4.1-7.43-2-2.12-4.4-3.75-7.1-4.77a18.1 18.1 0 0 0-8.38-1.113 18.4 18.4 0 0 0-8.04 2.793 18.09 18.09 0 0 0-7.16 8.64L9.267 202.8l-.724 1.8a129.57 129.57 0 0 0-3.52 82c7.747 26.9 24.047 50.7 46.447 67.6l.27.2.59.4 105.97 79.5 52.6 39.7 32 24.2c3.7 1.9 8.3 4.3 13 4.3 4.7 0 9.3-2.4 13-4.3l32-24.2 52.6-39.7 106.7-79.9.3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"/></svg>
    </a>
  
    
    
    
    
      
      
    
    <a href="https://www.linkedin.com/company/openslice/" target="_blank" rel="noopener" title="www.linkedin.com" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg>
    </a>
  
    
    
    
    
      
      
    
    <a href="https://twitter.com/OpensliceOSS" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9L389.2 48zm-24.8 373.8h39.1L151.1 88h-42l255.3 333.8z"/></svg>
    </a>
  
</div>
      
    </div>
  </div>
</footer>
      
    </div>
    <div class="md-dialog" data-md-component="dialog">
      <div class="md-dialog__inner md-typeset"></div>
    </div>
    
      <div class="md-progress" data-md-component="progress" role="progressbar"></div>
    
    
    <script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.instant.progress", "navigation.top", "navigation.footer", "navigation.path", "search", "search.highlight"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
    
    
      <script src="../../assets/javascripts/bundle.8fd75fb4.min.js"></script>
      
    
  </body>
</html>