Upload
nigel-mason
View
220
Download
0
Embed Size (px)
Citation preview
Repair and Planning
UNIKLAGMilano WP3 meeting,
30-11-2006
WS-DIAMOND
TOC Repair as planning task Current approaches Repair Reasoner component Our inputs/outputs Assumptions Applying repair Demonstration (our view)
Our dimension
Cooperation style: Fully orchestrated Choreography
Sustainability: Class repair Instance repair
Level: IT infrastructure Service
Controllability: Interruptible Non interruptible
Design of processes: Correct orchestration Failure in orchestration
Repair of composite
WS
Properties of service provision: Functional Non-Functional properties (QS,
e.g. time, cost, …)
Repair as planning 1 Compute repair plan - all the sets of redo, compensate,
adjustment, skip actions; 2 Select which repair actions shall be deactivated; 3 Make ordering on the repair scheme and select the repair
action to be executed first; 4 Execute this repair action;
MIGRATE to new process (with includes repair actions and the rest of workflow) OR
insert repair actions to paused workflow and resume it 5 Estimate the new state of the workflow instance; 6 Select which repair actions shall be activated; 7 If repair scheme contains no activated repair action - exit; 8 If needed regenerate all repair plan - go to step 1; 9 Go to step 3;
Assumptions Some activities have WF behind Actions: COMP, REDO, DO Repair with concurrency is possible! Each condition in repair plan corresponds
to condition in the workflow model Objects are not shared in parallel blocks
DLV-K and MBP(NuPDDL) DLV-k:
Plans with concurrency (repair actions in parallel) No conditions: need extra stage of business-logic or tricks
MBP: PDDL-dialect based Conditional plans No concurrency Linux-based Works too slow……
Example
a4
a5
a1
a2
a3
x1_3
x2_2
x1_2
g_2
way1 way2
x1_1, x2_1, g_1 are ok
x2_2
x1_2;x1_3
Example plan : DLV-K
a4
a5
a1
a2
a3
x1_3
x2_2
x1_2
g_2
way1 way2
x1_1, x2_1, g_1 are ok
x2_2
x1_2;x1_3
Correct solution:comp(a5), comp(a2), redo(a2), redo(a3), a4, redo(a5).
Generated solution:
executed(a1).executed(a2).executed(a3).-executed(a4).executed(a5).-compensated(a1).-compensated(a2).-compensated(a3).-compensated(a4).-compensated(a5).actuell(x1_2).actuell(x2_2).actuell(g_2).-oka(a1).-oka(a2).okv(x1_1).okv(x2_1).okv(g_1).branchwillbetaken(w2).-branchwillbetaken(w1).branchwastaken(w1).-branchwastaken(w2).
Initially:
ab
ab
√
a4
a5
a1
a2
a3
x1_3
x2_2
x1_2
g_2
way1 way2
x2_2
x1_2;x1_3
ab
ab
a4
a5
a1
a2
a3
x1_3
x2_2
x1_2
g_2
way1 way2
x2_2
x1_2;x1_3
ab
ab
COMP(a2), REDO(a2), REDO(a3), ……………
Out inputs / outputs
Repair Reasoner
Repair plan
BPEL code jPDL code
append
WFMS (ActiveBPEL, JBPM) Global Diagnoser
WF model
Exception infoExecution logexecute
? ?
√
Our inputs WF model:
Diagnostic model as proposed by Torino Which format is still unclear
BPEL code We need an example to try to process
Execution log: Proposal by Milano, OK !
Exception info: From Diagnosis
In which format? We need an example (Torino)
Our outputs Plan:
We can generate: BPEL code (on the base of activities & plan) jBPM code Any other format – which one is expected???
Applying repair To perform this step one of two
possibilities can be used:
stop the paused workflow, generate totally new one, migrate there the state of old workflow and start new one.
somehow tell the WFMS that before resuming the paused workflow the repair plan can be performed.
Repair Reasoner WS RR is a usual web service with has some
operations and as output generates plans in some form
Each session works with one workflow (there are NO general view, privacy guaranteed), there may be used many RR services for different partners’ workflows Information about goal/infected objects is propagated
between sessions as additional parameter Type of repair action to be applied is propagated
between sessions as additional parameter
? : who invokes RR?
Propagations
a4 a5
a0
a1
a2
a3
x1 x1x2 x3
x6
x3
x4x2
x5,x6
x6
x7
way2 way1
a10
a11
a12y3
y1y2
x5
y6
x5
a13
a14
a15 x2
y2,y7y2
x6,y6
y5
y2
inf
ab
inf
inf
inf
gd
gd
gd inf
inf
gd
WF1 WF2
Repair Reasoner WS : operation “generate plan”
Repair Reasoner
Web Service
TomcatAxis
Model, log, diagnose, [repair action, i/g obj]
nuPDDL / k-langInvoke external application
planBPEL
BPEL
GPT/MBP: Linux,K-lang:Windows
?
?
?
Include IDs of session for low-level workflows
ask/informother sessions about goal/infected objects, repair actions
Also set of goal dependent/infected
objects
Repair Reasoner WS : operation “check plan”
Repair Reasoner
Web Service
TomcatAxis
Plan, log, diagnose, SessionID
Ok / new needed
Compare old/new valuesCheck dependenciesEliminate non-goal/non-infected
Repair Reasoner WS : operation “new goal dep/infect”
Repair Reasoner
Web Service
TomcatAxis
SessionID, new set of goaldep/infect
BPEL
Restore modela) Model Already exists regenerate repair planb) Model Not yet exists fix data (be ready for the future)
Demonstration process1. WFengine started (ActiveBPEL/jBPM)2. Detection started3. Abnormal behaviour detected4. Diagnosis provided5. Repair Reasoner WS session invoked (by whom?)6. Repair plan generated7. Somehow(?) applied8. Workflow changed/new created (??)9. Workflow resumed (???)10. ????
We need activity (collaboration) diagram
Thank you.