SlideShare ist ein Scribd-Unternehmen logo
Workflow Repair aspects and algorithms Privatissimum Vladimir Ivanchenko 04-12-2006
What is repair? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Types of repair for composed WSs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Our dimension ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Repair of composite WS ,[object Object],[object Object],[object Object]
Simple example partners workflow objects Goal objects :  plane_ticket, hote_res, restaurant_res Get  Security status Determine  trip dates Book flight Book hotel [duration>1] Get  weather report Employee Travel  agency1 Hotels.com Weather  service project_name, duration, city_name, arrival_date project_name security_status duration, city_name, arrival_date plane_ticket city_name, arrival_date, duration, security_status hote_res city_name, arrival_date weather_report a0 a2 a3 a4 a5 a7 Get  pers. preferences isvegeterian Reserve dinner isvegeterian, city_name  restaurant_res a6 a1 Travel  agency2 Travel  agency3 employee_id  Org. dept. Secretary Org. dept.
General repair algorithm ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Goal dependencies and choosing blocks Goal object: hote_res Case 1: duration = 0 a2 is  not  goal dependent Case 2: duration > 1 a2  is  goal dependent Is goal dependent? abnormal infected Solution: 1. Repair  a0 2. a4: Which case we have? 3. Repair a2 or not We don’t have to repair not goal dependent activities Get  Security status Book flight a2 a3 Get  pers. preferences a1 Get  weather report Reserve dinner a7 a6 Book hotel [ duration >1] a4 a5 project_name security_status security_status hote_res Determine  trip dates duration ,  project_name a0 (1) (2) Goal depends on a4
Conditional repair plan Determine  trip dates Get  Security status Book flight Book hotel Get  weather report Get  pers. preferences Reserve dinner a0 a2 a3 a4 a5 a7 a6 a1 (1) (2) COMP a0 REDO a0 REDO a4 COMP a6 COMP a5 COMP a2 REDO a2 COMP a5 REDO a5 COMP a3 REDO a3 DO a7 (1) (2) ok abnormal possibly infected not  executed COMP a6 REDO a6 May be removed during the repair execution (shown in example) plane_ticket hote_res restaurant_res [duration>1]
Choosing blocks in conditional plan comp(a0) redo(a0) comp(a7) redo(a8) redo(a10) redo(a3) enter(w1) enter(w2) comp(a1) redo(a1) redo(a4) leave(w1) leave(w2) new_value(x2)=old_value(x2) ? yes no
Assumptions ,[object Object],[object Object],[object Object],[object Object],[object Object]
DLV-K and MBP(NuPDDL) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Advanced with ways and concurrency 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). branchwastaken(w1). -branchwastaken(w2). comp a2 comp a5 comp a1 redo a2 redo a1 redo a3 a4 redo a5 redo a5 way2 way1 Plan is correct but not optimal
Rules /1 a1 x1_2 Activity with only output. aa1. compa1. redoa1. executable aa1 if -executed(a1), -compensated (a1). executable redoa1 if -executed(a1), compensated(a1).  executable compa1 if actuell(x1_2), executed(a1), -oka(a1). caused -okv(x1_2) if -oka(a1). caused executed(a1) after aa1. caused okv(x1_2) after aa1. caused actuell(x1_2) after aa1. caused -actuell(x1_1) after aa1. caused -executed(a1) after compa1. caused oka(a1) after compa1. caused compensated(a1) after compa1. caused -okv(x1_2) after compa1. caused actuell(x1_1) after compa1. caused executed(a1) after redoa1. caused -compensated(a1) after redoa1. caused okv(x1_2) after redoa1. caused actuell(x1_2) after redoa1. caused -actuell(x1_1) after redoa1.
Rules /2 a4 a3 x1_3 way2 Activity under condition. executable aa4 if -executed(a4), -compensated(a4), branchwillbetaken(w2), branchactivated(w2).  executable redoa4 if -executed(a4), compensated(a4), branchwillbetaken(w2),  branchactivated(w2).  executable compa4 if actuell(x1_3), executed(a4), -oka(a4). executable compa4 if actuell(x1_3), executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if -oka(a3). caused -okv(x1_3) if -oka(a4). caused executed(a4) after aa4. caused okv(x1_3) after aa4. caused actuell(x1_3) after aa4. caused -actuell(x1_2) after aa4. caused -executed(a4) after compa4. caused oka(a4) after compa4. caused compensated(a4) after compa4. caused -okv(x1_3) after compa4. caused actuell(x1_2) after compa4. caused executed(a4) after redoa4. caused -compensated(a4) after redoa4. caused okv(x1_3) after redoa4. caused actuell(x1_3) after redoa4. caused -actuell(x1_2) after redoa4.
Rules /3 a3 x2_2 aa3. redoa3.  executable aa3 if -executed(a3), okv(x2_2). executable redoa3 if executed(a3), okv(x2_2). caused -oka(a3) if -okv(x2_2), executed (a3). caused executed(a3) after aa3. caused branchactivated(w2) after aa3, branchwillbetaken(w2). caused branchactivated(w1) after aa3, branchwillbetaken(w1). caused branchactivated(w2) after redoa3, branchwillbetaken(w2). caused branchactivated(w1) after redoa3, branchwillbetaken(w1). Conditional block.
Rules /4 a5 g_2 x1_2;x1_3 Activity reads, two alternatives,  after conditional block executable aa5 if branchactivated(W), -executed(a5), -compensated (a5),  okv(x1_2), actuell(x1_2), branchwillbetaken(w1).  executable aa5 if branchactivated(W), -executed(a5), -compensated (a5),  okv(x1_3), actuell(x1_3), branchwillbetaken(w2). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5),  okv(x1_2), actuell(x1_2),branchwillbetaken(w1). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5),  okv(x1_3), actuell(x1_3),branchwillbetaken(w2). executable compa5 if actuell(g_2), executed(a5), -oka(a5). caused -oka(a5) if -okv(x1_2), branchwastaken(w1), executed (a5). caused -oka(a5) if -okv(x1_3), branchwastaken(w2), executed (a5). caused executed(a5) after aa5.  %nothing new, same as a1 a2 a4 caused okv(g_2) after aa5. caused actuell(g_2) after aa5. caused -actuell(g_1) after aa5. caused -executed(a5) after compa5. caused oka(a5) after compa5. caused compensated(a5) after compa5. caused -okv(g_2) after compa5. caused actuell(g_1) after compa5. caused executed(a5) after redoa5. caused -compensated(a5) after redoa5. caused okv(g_2) after redoa5. caused actuell(g_2) after redoa5. caused -actuell(g_1) after redoa5.
Case: all executed, ab, other way a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w2 was taken: w1 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 √
Case: all executed, ab, same way w1 a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w1 was taken: w1 Correct solution: comp(a5), comp(a2),comp(a1), redo(a1), redo(a2),redo(a3), 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(w1). -branchwillbetaken(w2). branchwastaken(w1). -branchwastaken(w2). Initially: ab ab √
Analysis of 2 alternative ways a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab COMP(a2), REDO(a2), REDO(a3), ……………
Complex example 13 activities, inclusive choosing blocks, parallel Goal:  branchtoprocess(w1,a5), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time:  51 sec. No ways, just “branchwillbetaken”  - w1, w3 Execution time:  0,47 sec. Goal:  branchtoprocess(w1,a5), branchtoprocess(w3,a8), -branchactivated(w3), branchtoprocess(w4,a8), -branchactivated(w4), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time:  26 sec. Goal must be formulated in other way ?
Repair Reasoner WS ,[object Object],[object Object],[object Object],[object Object]
Propagations a4 a5 a0 a1 a2 a3 x1 x1 x2 x3 x6 x3 x4 x2 x5,x6 x6 x7 way2 way1 a10 a11 a12 y3 y1 y2 x5 y6 x5 a13 a14 a15 x2 y2,y7 y2 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 Tomcat Axis Model, log, diagnose, [repair action, i/g obj] nuPDDL / k-lang Invoke  external  application plan BPEL BPEL GPT/MBP: Linux, K-lang:Windows ? ? ? Include IDs of session for low-level workflows ask/inform other sessions  about goal/infected objects, repair actions Also set of goal dependent/infected objects
Repair Reasoner WS : operation  “check plan” Repair  Reasoner  Web Service Tomcat Axis Plan, log, diagnose, SessionID Ok / new needed Compare old/new values Check dependencies Eliminate non-goal/non-infected
Repair Reasoner WS : operation “new goal dep/infect” Repair  Reasoner  Web Service Tomcat Axis SessionID, new set of goaldep/infect BPEL Restore model a) Model Already exists regenerate repair plan b) Model Not yet exists fix data (be ready for the future)
Thank you.

Weitere ähnliche Inhalte

Ähnlich wie Workflow repair

Report of the Implementation of DAE Integrators for MBSim
Report of the Implementation of DAE Integrators for MBSimReport of the Implementation of DAE Integrators for MBSim
Report of the Implementation of DAE Integrators for MBSimZhan Wang
 
Scilab presentation
Scilab presentation Scilab presentation
Scilab presentation Nasir Ansari
 
Numerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsNumerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsAmos Tsai
 
Beauty and the beast - Haskell on JVM
Beauty and the beast  - Haskell on JVMBeauty and the beast  - Haskell on JVM
Beauty and the beast - Haskell on JVMJarek Ratajski
 
05 release document_8.9.1
05 release document_8.9.105 release document_8.9.1
05 release document_8.9.1struds
 
ITS World Congress :: Vienna, Oct 2012
ITS World Congress :: Vienna, Oct 2012ITS World Congress :: Vienna, Oct 2012
ITS World Congress :: Vienna, Oct 2012László Nádai
 
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...SMART Infrastructure Facility
 
Idea for ineractive programming language
Idea for ineractive programming languageIdea for ineractive programming language
Idea for ineractive programming languageLincoln Hannah
 
The Nuts and Bolts of Kafka Streams---An Architectural Deep Dive
The Nuts and Bolts of Kafka Streams---An Architectural Deep DiveThe Nuts and Bolts of Kafka Streams---An Architectural Deep Dive
The Nuts and Bolts of Kafka Streams---An Architectural Deep DiveHostedbyConfluent
 
DynamicProgramming.ppt
DynamicProgramming.pptDynamicProgramming.ppt
DynamicProgramming.pptDavidMaina47
 
Being functional in PHP
Being functional in PHPBeing functional in PHP
Being functional in PHPDavid de Boer
 
Hermes2D FEM Library
Hermes2D FEM LibraryHermes2D FEM Library
Hermes2D FEM LibraryLukas Korous
 
Being functional in PHP (DPC 2016)
Being functional in PHP (DPC 2016)Being functional in PHP (DPC 2016)
Being functional in PHP (DPC 2016)David de Boer
 
2.1 ### uVision Project, (C) Keil Software .docx
2.1   ### uVision Project, (C) Keil Software    .docx2.1   ### uVision Project, (C) Keil Software    .docx
2.1 ### uVision Project, (C) Keil Software .docxtarifarmarie
 
DynamicProgramming.pdf
DynamicProgramming.pdfDynamicProgramming.pdf
DynamicProgramming.pdfssuser3a8f33
 

Ähnlich wie Workflow repair (20)

Node js
Node jsNode js
Node js
 
Report of the Implementation of DAE Integrators for MBSim
Report of the Implementation of DAE Integrators for MBSimReport of the Implementation of DAE Integrators for MBSim
Report of the Implementation of DAE Integrators for MBSim
 
Eta
EtaEta
Eta
 
Scilab presentation
Scilab presentation Scilab presentation
Scilab presentation
 
Quiz
QuizQuiz
Quiz
 
Numerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsNumerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special Functions
 
Beauty and the beast - Haskell on JVM
Beauty and the beast  - Haskell on JVMBeauty and the beast  - Haskell on JVM
Beauty and the beast - Haskell on JVM
 
Dynamic programming
Dynamic programmingDynamic programming
Dynamic programming
 
05 release document_8.9.1
05 release document_8.9.105 release document_8.9.1
05 release document_8.9.1
 
ITS World Congress :: Vienna, Oct 2012
ITS World Congress :: Vienna, Oct 2012ITS World Congress :: Vienna, Oct 2012
ITS World Congress :: Vienna, Oct 2012
 
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...
SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated...
 
Idea for ineractive programming language
Idea for ineractive programming languageIdea for ineractive programming language
Idea for ineractive programming language
 
The Nuts and Bolts of Kafka Streams---An Architectural Deep Dive
The Nuts and Bolts of Kafka Streams---An Architectural Deep DiveThe Nuts and Bolts of Kafka Streams---An Architectural Deep Dive
The Nuts and Bolts of Kafka Streams---An Architectural Deep Dive
 
DynamicProgramming.ppt
DynamicProgramming.pptDynamicProgramming.ppt
DynamicProgramming.ppt
 
Being functional in PHP
Being functional in PHPBeing functional in PHP
Being functional in PHP
 
Hermes2D FEM Library
Hermes2D FEM LibraryHermes2D FEM Library
Hermes2D FEM Library
 
CQRS + Event Sourcing in PHP
CQRS + Event Sourcing in PHPCQRS + Event Sourcing in PHP
CQRS + Event Sourcing in PHP
 
Being functional in PHP (DPC 2016)
Being functional in PHP (DPC 2016)Being functional in PHP (DPC 2016)
Being functional in PHP (DPC 2016)
 
2.1 ### uVision Project, (C) Keil Software .docx
2.1   ### uVision Project, (C) Keil Software    .docx2.1   ### uVision Project, (C) Keil Software    .docx
2.1 ### uVision Project, (C) Keil Software .docx
 
DynamicProgramming.pdf
DynamicProgramming.pdfDynamicProgramming.pdf
DynamicProgramming.pdf
 

Kürzlich hochgeladen

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXUXDXConf
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 

Kürzlich hochgeladen (20)

"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 

Workflow repair

  • 1. Workflow Repair aspects and algorithms Privatissimum Vladimir Ivanchenko 04-12-2006
  • 2.
  • 3.
  • 4.
  • 5. Simple example partners workflow objects Goal objects : plane_ticket, hote_res, restaurant_res Get Security status Determine trip dates Book flight Book hotel [duration>1] Get weather report Employee Travel agency1 Hotels.com Weather service project_name, duration, city_name, arrival_date project_name security_status duration, city_name, arrival_date plane_ticket city_name, arrival_date, duration, security_status hote_res city_name, arrival_date weather_report a0 a2 a3 a4 a5 a7 Get pers. preferences isvegeterian Reserve dinner isvegeterian, city_name restaurant_res a6 a1 Travel agency2 Travel agency3 employee_id  Org. dept. Secretary Org. dept.
  • 6.
  • 7. Goal dependencies and choosing blocks Goal object: hote_res Case 1: duration = 0 a2 is not goal dependent Case 2: duration > 1 a2 is goal dependent Is goal dependent? abnormal infected Solution: 1. Repair a0 2. a4: Which case we have? 3. Repair a2 or not We don’t have to repair not goal dependent activities Get Security status Book flight a2 a3 Get pers. preferences a1 Get weather report Reserve dinner a7 a6 Book hotel [ duration >1] a4 a5 project_name security_status security_status hote_res Determine trip dates duration , project_name a0 (1) (2) Goal depends on a4
  • 8. Conditional repair plan Determine trip dates Get Security status Book flight Book hotel Get weather report Get pers. preferences Reserve dinner a0 a2 a3 a4 a5 a7 a6 a1 (1) (2) COMP a0 REDO a0 REDO a4 COMP a6 COMP a5 COMP a2 REDO a2 COMP a5 REDO a5 COMP a3 REDO a3 DO a7 (1) (2) ok abnormal possibly infected not executed COMP a6 REDO a6 May be removed during the repair execution (shown in example) plane_ticket hote_res restaurant_res [duration>1]
  • 9. Choosing blocks in conditional plan comp(a0) redo(a0) comp(a7) redo(a8) redo(a10) redo(a3) enter(w1) enter(w2) comp(a1) redo(a1) redo(a4) leave(w1) leave(w2) new_value(x2)=old_value(x2) ? yes no
  • 10.
  • 11.
  • 12. Advanced with ways and concurrency 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). branchwastaken(w1). -branchwastaken(w2). comp a2 comp a5 comp a1 redo a2 redo a1 redo a3 a4 redo a5 redo a5 way2 way1 Plan is correct but not optimal
  • 13. Rules /1 a1 x1_2 Activity with only output. aa1. compa1. redoa1. executable aa1 if -executed(a1), -compensated (a1). executable redoa1 if -executed(a1), compensated(a1). executable compa1 if actuell(x1_2), executed(a1), -oka(a1). caused -okv(x1_2) if -oka(a1). caused executed(a1) after aa1. caused okv(x1_2) after aa1. caused actuell(x1_2) after aa1. caused -actuell(x1_1) after aa1. caused -executed(a1) after compa1. caused oka(a1) after compa1. caused compensated(a1) after compa1. caused -okv(x1_2) after compa1. caused actuell(x1_1) after compa1. caused executed(a1) after redoa1. caused -compensated(a1) after redoa1. caused okv(x1_2) after redoa1. caused actuell(x1_2) after redoa1. caused -actuell(x1_1) after redoa1.
  • 14. Rules /2 a4 a3 x1_3 way2 Activity under condition. executable aa4 if -executed(a4), -compensated(a4), branchwillbetaken(w2), branchactivated(w2). executable redoa4 if -executed(a4), compensated(a4), branchwillbetaken(w2), branchactivated(w2). executable compa4 if actuell(x1_3), executed(a4), -oka(a4). executable compa4 if actuell(x1_3), executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if executed(a4), branchwastaken(W), branchwillbetaken(V), V<>W. caused -oka(a4) if -oka(a3). caused -okv(x1_3) if -oka(a4). caused executed(a4) after aa4. caused okv(x1_3) after aa4. caused actuell(x1_3) after aa4. caused -actuell(x1_2) after aa4. caused -executed(a4) after compa4. caused oka(a4) after compa4. caused compensated(a4) after compa4. caused -okv(x1_3) after compa4. caused actuell(x1_2) after compa4. caused executed(a4) after redoa4. caused -compensated(a4) after redoa4. caused okv(x1_3) after redoa4. caused actuell(x1_3) after redoa4. caused -actuell(x1_2) after redoa4.
  • 15. Rules /3 a3 x2_2 aa3. redoa3. executable aa3 if -executed(a3), okv(x2_2). executable redoa3 if executed(a3), okv(x2_2). caused -oka(a3) if -okv(x2_2), executed (a3). caused executed(a3) after aa3. caused branchactivated(w2) after aa3, branchwillbetaken(w2). caused branchactivated(w1) after aa3, branchwillbetaken(w1). caused branchactivated(w2) after redoa3, branchwillbetaken(w2). caused branchactivated(w1) after redoa3, branchwillbetaken(w1). Conditional block.
  • 16. Rules /4 a5 g_2 x1_2;x1_3 Activity reads, two alternatives, after conditional block executable aa5 if branchactivated(W), -executed(a5), -compensated (a5), okv(x1_2), actuell(x1_2), branchwillbetaken(w1). executable aa5 if branchactivated(W), -executed(a5), -compensated (a5), okv(x1_3), actuell(x1_3), branchwillbetaken(w2). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5), okv(x1_2), actuell(x1_2),branchwillbetaken(w1). executable redoa5 if branchactivated(W), -executed(a5), compensated(a5), okv(x1_3), actuell(x1_3),branchwillbetaken(w2). executable compa5 if actuell(g_2), executed(a5), -oka(a5). caused -oka(a5) if -okv(x1_2), branchwastaken(w1), executed (a5). caused -oka(a5) if -okv(x1_3), branchwastaken(w2), executed (a5). caused executed(a5) after aa5. %nothing new, same as a1 a2 a4 caused okv(g_2) after aa5. caused actuell(g_2) after aa5. caused -actuell(g_1) after aa5. caused -executed(a5) after compa5. caused oka(a5) after compa5. caused compensated(a5) after compa5. caused -okv(g_2) after compa5. caused actuell(g_1) after compa5. caused executed(a5) after redoa5. caused -compensated(a5) after redoa5. caused okv(g_2) after redoa5. caused actuell(g_2) after redoa5. caused -actuell(g_1) after redoa5.
  • 17. Case: all executed, ab, other way a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w2 was taken: w1 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 √
  • 18. Case: all executed, ab, same way w1 a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x1_1, x2_1, g_1 are ok x2_2 x1_2;x1_3 will be taken: w1 was taken: w1 Correct solution: comp(a5), comp(a2),comp(a1), redo(a1), redo(a2),redo(a3), 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(w1). -branchwillbetaken(w2). branchwastaken(w1). -branchwastaken(w2). Initially: ab ab √
  • 19. Analysis of 2 alternative ways a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab a4 a5 a1 a2 a3 x1_3 x2_2 x3 x4 x1_2 g_2 way1 way2 x2_2 x1_2;x1_3 ab ab COMP(a2), REDO(a2), REDO(a3), ……………
  • 20. Complex example 13 activities, inclusive choosing blocks, parallel Goal: branchtoprocess(w1,a5), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time: 51 sec. No ways, just “branchwillbetaken” - w1, w3 Execution time: 0,47 sec. Goal: branchtoprocess(w1,a5), branchtoprocess(w3,a8), -branchactivated(w3), branchtoprocess(w4,a8), -branchactivated(w4), -branchactivated(w1), branchtoprocess(w2,a5), -branchactivated(w2) ? (21) Execution time: 26 sec. Goal must be formulated in other way ?
  • 21.
  • 22. Propagations a4 a5 a0 a1 a2 a3 x1 x1 x2 x3 x6 x3 x4 x2 x5,x6 x6 x7 way2 way1 a10 a11 a12 y3 y1 y2 x5 y6 x5 a13 a14 a15 x2 y2,y7 y2 x6,y6 y5 y2 inf ab inf inf inf gd gd gd inf inf gd WF1 WF2
  • 23. Repair Reasoner WS : operation “generate plan” Repair Reasoner Web Service Tomcat Axis Model, log, diagnose, [repair action, i/g obj] nuPDDL / k-lang Invoke external application plan BPEL BPEL GPT/MBP: Linux, K-lang:Windows ? ? ? Include IDs of session for low-level workflows ask/inform other sessions about goal/infected objects, repair actions Also set of goal dependent/infected objects
  • 24. Repair Reasoner WS : operation “check plan” Repair Reasoner Web Service Tomcat Axis Plan, log, diagnose, SessionID Ok / new needed Compare old/new values Check dependencies Eliminate non-goal/non-infected
  • 25. Repair Reasoner WS : operation “new goal dep/infect” Repair Reasoner Web Service Tomcat Axis SessionID, new set of goaldep/infect BPEL Restore model a) Model Already exists regenerate repair plan b) Model Not yet exists fix data (be ready for the future)