SlideShare une entreprise Scribd logo
1  sur  26
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.

Contenu connexe

Similaire à 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
 

Similaire à 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
 

Dernier

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Dernier (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

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)