Contenu connexe
Similaire à Ode Instance Migration (20)
Ode Instance Migration
- 1. ODE Instance Migration
Hanna Eberle, Tammo van Lessen, Tobias Unger
University of Stuttgart
Institute of Architecture of Application Systems (IAAS)
© IAAS 1
- 2. Outline
1 Introduction
2 BPEL Related Stuff
3 ODE Related Stuff
© IAAS 2
- 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. 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. 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. 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. Outline
1 Introduction
2 BPEL Related Stuff
3 ODE Related Stuff
© IAAS 7
- 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. 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. 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. Models to be defined
State model for BPEL
Model for representing instances
© IAAS 11
- 12. Outline
1 Introduction
2 BPEL Related Stuff
3 ODE Related Stuff
© IAAS 12
- 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. 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. 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. 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. ODE Scope Instance States
org.apache.ode.bpel.dao.ScopeStateEnum
ACTIVE
FAULTED
FAULTHANDLER
COMPLETED
COMPENSATING
COMPENSATED
© IAAS 17
- 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. 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. 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