ODE Instance Migration


            Hanna Eberle, Tammo van Lessen, Tobias Unger

                          University of...
Outline




         1   Introduction

         2   BPEL Related Stuff

         3   ODE Related Stuff




© IAAS         ...
Motivation
        Migration
            Update to an new ODE version
            In mobile computing people takes thei...
Approach
        Problem
            Each scenario requires sophisticated modifications of the ODE
             engine
 ...
Vision
                                                                                                                   ...
Metamodel View
         Defining a XML-schema based metamodel for process
          instances

                          ...
Outline




         1   Introduction

         2   BPEL Related Stuff

         3   ODE Related Stuff




© IAAS         ...
Example
  Process Model       Process Instance      Process Instance XML
                                    id=1
        ...
Import and Export
                       Export                                 Import
       Trigger
                    ...
Instance Format – Possible Content
        Important content
            Activity instances (state, IDs, etc.)
         ...
Models to be defined
        State model for BPEL
        Model for representing instances




© IAAS                   ...
Outline




         1   Introduction

         2   BPEL Related Stuff

         3   ODE Related Stuff




© IAAS         ...
ODE Implications
        Compiler
            Implicit scopes (E.g. invoke)
        Deployment
            Deployment ...
Where to Collect Information about/within ODE
        Process Management API
            Using test process (long runnin...
ODE Process (Instance) States
        Process States
            org.apache.ode.bpel.iapi.ProcessState
            ACTI...
ODE Activity Instance States
        org.apache.ode.bpel.pmapi.TActivityStatus
            static final Enum ENABLED = E...
ODE Scope Instance States
        org.apache.ode.bpel.dao.ScopeStateEnum
            ACTIVE
            FAULTED
       ...
Management API – Activity Info
        getScopeInfoWithActivity
 <ns:activity-info>
   <ns:name>receiveInput</ns:name>
  ...
Management API – Instance Info
        getInstanceInfo
 <instance-info>
   <ns:iid xmlns:ns=quot;http://www.apache.org/od...
Literature
        Karastoyanova, Dimka; Khalaf, Rania; Schroth, Ralf;
         Paluszek, Michael; Leymann, Frank: BPEL E...
End of Document
Upcoming SlideShare
Loading in...5
×

Ode Instance Migration

589

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
589
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ode Instance Migration

  1. 1. ODE Instance Migration Hanna Eberle, Tammo van Lessen, Tobias Unger University of Stuttgart Institute of Architecture of Application Systems (IAAS) © IAAS 1
  2. 2. Outline 1 Introduction 2 BPEL Related Stuff 3 ODE Related Stuff © IAAS 2
  3. 3. Motivation  Migration  Update to an new ODE version  In mobile computing people takes their instances with them across devices and infrastructures  Modification  Adding additional steps to an already running instance  Adapting running instances to a new version of the process model  Distribution  Dynamic outsourcing of parts of already running instances  Function vs. Data shipping  In distribution and modification scenarios instance modification implies modification of process model © IAAS 3
  4. 4. Approach  Problem  Each scenario requires sophisticated modifications of the ODE engine  Overlapping functionallity  Solutions  Generic instance format based on XML  ODE interface for importing and exporting instances  Components controlling modification, distribution, or migration can be realized separated from the ODE engine  ODE engine has to be modified only once © IAAS 4
  5. 5. Vision Distribution Apache ODE BPEL OModel Compiler Process Instance BPEL Runtime Axis2 Management & JACOB DAOs JBI Events SCA Migration to other Server Hiber Open Scheduler … nate JPA DB Apache ODE Process Instance BPEL Apache ODE OModel Compiler BPEL OModel Compiler Process Instance BPEL Runtime BPEL Runtime Axis2 Axis2 Management & Management & JACOB DAOs JACOB DAOs JBI Events JBI Events SCA Hiber Open SCA Scheduler Hiber Open … nate JPA Scheduler … nate JPA DB DB Process Instance Process Instance Apache ODE BPEL Compiler OModel Modification BPEL Runtime Axis2 Management & JACOB DAOs JBI Events SCA Hiber Open Scheduler … nate JPA DB © IAAS 5
  6. 6. Metamodel View  Defining a XML-schema based metamodel for process instances Activity Link Defined using XML- Process (Modeling) Language (BPEL) Schema Described by A3 e.g. Medication Modeled using XML- A1 A4 Process Model A2 Flow File Currently, instance is stored A3 Described by A1 A4 e.g. Patient = Bill in an engine dependent A2 format (e.g. Java objects Process Instance and/or database) What we want to add… Process Instance XML-File containing a process instance based on a well defined XML-File format (XML-Schema) © IAAS 6
  7. 7. Outline 1 Introduction 2 BPEL Related Stuff 3 ODE Related Stuff © IAAS 7
  8. 8. Example Process Model Process Instance Process Instance XML id=1 <bpelinstance id=quot;2quot;> Sequence Sequence <state>running</state> id=2 … Empty Empty </bpelinstance> id=3 While While id=4 Flow Flow id=5 Invoke1 Invoke1 true id=6 Invoke2 Invoke2 id=7 Flow id=8 Invoke1 © IAAS 8
  9. 9. Import and Export Export Import Trigger Suspending Export Import Resume Instance Activities Instance Instance Instance Suspension  Idea: Import and export of suspended process instances  Problems  Suspending to a save state  Suspension of Wait, Pick (Receive)  Running request-response invocations  Maybe activity cannot be suspended  Event Handler, FCT-Handling  Which activities can be suspended? Which must be continued until completed state? © IAAS 9
  10. 10. Instance Format – Possible Content  Important content  Activity instances (state, IDs, etc.)  Variable data  Message exchanges  Depends on Binding (JMS vs. HTTP)  Correlation sets  Link states  Snapshots  History  Process Model must be integrated optionally  Not sure whether process model is present at target engine © IAAS 10
  11. 11. Models to be defined  State model for BPEL  Model for representing instances © IAAS 11
  12. 12. Outline 1 Introduction 2 BPEL Related Stuff 3 ODE Related Stuff © IAAS 12
  13. 13. ODE Implications  Compiler  Implicit scopes (E.g. invoke)  Deployment  Deployment descriptor  State mapping  Activity and process states  ODE Extensions  REST  External variables  … © IAAS 13
  14. 14. Where to Collect Information about/within ODE  Process Management API  Using test process (long running wait activity)  Code Review  Process (Instance) States  Debugging  Using Management API and test process © IAAS 14
  15. 15. ODE Process (Instance) States  Process States  org.apache.ode.bpel.iapi.ProcessState  ACTIVE  RETIERED  DISABLED  Process Instance States  org.apache.ode.bpel.common.ProcessState  STATE_NEW = 0  STATE_READY = 10  STATE_ACTIVE = 20  STATE_COMPLETED_OK = 30  STATE_COMPLETED_WITH_FAULT = 40  STATE_SUSPENDED = 50  STATE_TERMINATED = 60 © IAAS 15
  16. 16. ODE Activity Instance States  org.apache.ode.bpel.pmapi.TActivityStatus  static final Enum ENABLED = Enum.forString(quot;ENABLEDquot;);  static final Enum STARTED = Enum.forString(quot;STARTEDquot;);  static final Enum COMPLETED = Enum.forString(quot;COMPLETEDquot;);  static final Enum FAILURE = Enum.forString(quot;FAILUREquot;);  static final Enum DEAD = Enum.forString(quot;DEADquot;); © IAAS 16
  17. 17. ODE Scope Instance States  org.apache.ode.bpel.dao.ScopeStateEnum  ACTIVE  FAULTED  FAULTHANDLER  COMPLETED  COMPENSATING  COMPENSATED © IAAS 17
  18. 18. Management API – Activity Info  getScopeInfoWithActivity <ns:activity-info> <ns:name>receiveInput</ns:name> <ns:type>OPickReceive</ns:type> <ns:aiid>3</ns:aiid> <ns:status>COMPLETED</ns:status> <ns:scope modelId=quot;0quot; name=quot;__PROCESS_SCOPE:Waitquot; siid=quot;201quot;/> <ns:dt-enabled>2009-04-08T13:34:01.760+02:00</ns:dt-enabled> <ns:dt-started>2009-04-08T13:34:01.760+02:00</ns:dt-started> <ns:dt-completed>2009-04-08T13:34:01.892+02:00</ns:dt-completed> </ns:activity-info> © IAAS 18
  19. 19. Management API – Instance Info  getInstanceInfo <instance-info> <ns:iid xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;>151</ns:iid> <ns:pid xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;>{http://iaas.de}Wait- 4</ns:pid> <ns:process-name xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot; xmlns:iaas=quot;http://iaas.dequot;>iaas:Wait</ns:process-name> <ns:root-scope siid=quot;201quot; status=quot;ACTIVEquot; name=quot;__PROCESS_SCOPE:Waitquot; modelId=quot;3quot; xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;/> <ns:status xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;>FAILED</ns:status> <ns:dt-started xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;>2009-04- 08T13:34:01.000+02:00</ns:dt-started> <ns:dt-last-active xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;>2009-04- 08T13:44:02.000+02:00</ns:dt-last-active> <ns:event-info xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;/> <ns:fault-info xmlns:ns=quot;http://www.apache.org/ode/pmapi/types/2006/08/02/quot;> <ns:name xmlns:exec=quot;http://docs.oasis- open.org/wsbpel/2.0/process/executablequot;>exec:uninitializedVariable</ns:name> <ns:explanation xsi:nil=quot;truequot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;/> <ns:line-number>65</ns:line-number> <ns:aiid>20</ns:aiid> </ns:fault-info> </instance-info> © IAAS 19
  20. 20. Literature  Karastoyanova, Dimka; Khalaf, Rania; Schroth, Ralf; Paluszek, Michael; Leymann, Frank: BPEL Event Model, Technical Report No. 2006/10 (will be updated soon) © IAAS 20
  21. 21. End of Document

×