SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
35th Euromicro Conference
Software Engineering and Advanced Applications (SEAA 2009)




 A Simplified Script Syntax for WS- BPEL 2.0




      Marc Bischof, Oliver Kopp, Tammo van Lessen, Frank Leymann
                  Institute of Architecture of Application Systems




                                                                     kopp@iaas.uni-stuttgart.de
Overview


            Main Motivation

            Existing Approaches

            BPELscript

            Outlook




Presented by Oliver Kopp          2
Usual MDD Approach

 Graphical Model

 transformation

                            <opaqueActivity>
 Abstract BPEL                <documentation>
                                Set approved to "yes"
     manual                   </documentation>
   refinement               </opaqueActivity>

                            <assign>
 Executable BPEL              <copy>
                                <literal>yes</literal>
   deployment                 </copy>
                              <to variable="approval" part="accept" />
                            </assign>

                            01100111010100100010010001001110110101

Presented by Oliver Kopp   BPEL: WS-Business Process Execution Language  3
Existing Approaches




© Oliver Kopp                         4
Presented by Oliver Kopp   5
Presented by Oliver Kopp   6
Our Idea: BPELscript




© Oliver Kopp                          7
Goals of BPELscript development


            Ease development of executable business
            processes (AKA “workflows”)
                      Syntax close to “usual” programming languages


            Same semantics as WS-BPEL
                      … enables two-way transformation




                                      simPEL


Presented by Oliver Kopp                                              8
Interaction With Partners

                                       loanPartnerLT


                           (nothing)               loanRequest   loanServicePT

                                                                 Loan Approval
                            Client
                                                                    Process



            partnerLink customer =
            (lns::loanPartnerLT, loanService, null)
            Declares a partnerlink customer
            of partner link type lns::loanPartnerLT
            with self-role loanService and no partner role
Presented by Oliver Kopp                                                         9
Receiving a Message
   @createInstance
   request = receive(customer, loanRequest);

            Annotations for optional attributes in BPEL
            Implicit variable declaration
            “customer” is the partner link to use
            “loanRequest” is the operation

            Each statement in BPELscript can be seen as an
            activity in BPEL

Presented by Oliver Kopp                                     10
Invoking a Service Operation
   risk = invoke(assessor, check, request);

            Synchronous service call to risk “assessor”
            Operation “check”
            Input variable “request”
            Result is stored in variable “risk”

            Reuse of existing processes is done by using the
            processes by invokes, receives, …
            BPEL does not allow the definition of new
            “procedures”
Presented by Oliver Kopp                                       11
Aynchronous Variant
   invoke(assessor, check, request,
     {assessorCorrelation});
   risk = receive(assessor, checkResult,
     {assessorCorrelation});

            Optional Parameter lists correlation sets to use
            for correlatoin




Presented by Oliver Kopp                                       12
Variable Assignment
   approval.accept = "yes";

            Default expression language: E4X
                      ECMAScript for XML
                      Translated to assign or kept as E4X
                           T. van Lessen and others: Facilitating Rich Data Manipulation in
                           BPEL using E4X. In ZEUS 2009
            XPath still supported
            var = [bpel:doXslTransform("...", $A)];




Presented by Oliver Kopp                                                                13
Replying to a Synchronous Call
   reply(customer, loanRequest, approval);

            Reply message for the “loanRequest” operation
            No correlation needed




Presented by Oliver Kopp                                    14
Linking Activities Together

            Just as in usual programming languages

   @createInstance
   request = receive(customer, loanRequest);
   risk = invoke(assessor, check, request);
   if (risk.level=="high") {
     approval.accept = "no";
   } else {
     approval.accept = "yes";
   }
   reply(customer, loanRequest, approval);
Presented by Oliver Kopp                             15
What about Graphs?

            Process modeling languages offer
            “graph-oriented programming”
            BPEL also offers graph-oriented programming
            Two alternatives to represent it in BPEL
                      A) Map to matching block-constructs
                      B) Use BPEL’s graph capabilities


            An activity is a node in the graph
            A link representes an edge in the graph


 J. Vanhatalo & H. Völzer & J. Koehler: The Refined Process Structure Tree BPM'08
Presented by Oliver Kopp                                                        16
Graph-oriented Programming: Alternatives

            Goto-inspired syntax
                      lauto:
                      risk = invoke(…)
                      l1=[$risk = 'high']‐>lhuman,
                      l2=[$risk != 'high']‐>lapp
                      [l1 and l2] lapp: invoke(…);
            Signal and Join Statements
                      risk = invoke(…)
                      signal(l1, [$risk.level == 'low']);
                      signal(l1, [$risk.level != 'low']);
                      join(l1, l2, [$l1 and $l2]);



Presented by Oliver Kopp                                    17
Resulting Process
   parallel {
     @createInstance
     request = receive(customer, loanRequest);
     signal(receive‐to‐assess,
       [$request.amount < 10000]);
     signal(receive‐to‐approval,
       [$request.amount >= 10000]);
   } and {
     join(receive‐to‐assess);
     risk = invoke(assessor, check, request);
     ...
Presented by Oliver Kopp                     18
Fault Handling
   try {
   ...
   } catch(lns::loanProcessFault) { |error|
     @fault unableToHandleRequest
     reply(customer, loanRequest, error);
   }




Presented by Oliver Kopp                      19
Advanced Workflow Constructs
   scope {
   ...
   } onEvents {
     event(partnerLink, operation) {
     ...
      }
     timeOut(...) {
     ...
     }
   } onTermination {
     ...
   } onCompensation {
     ...
   }
Presented by Oliver Kopp               20
Presented by Oliver Kopp   21
Overview on the Transformation




            ANTLR: ANother Tool for Language Recognition
                      Parser Generator
            ANTXR: ANother Tool for Xml Recognition
                      XML Processing for ANTLR
Presented by Oliver Kopp                                   22
Future Work

            IDE for BPELscript

            Enhance the translator to support implicit variable
            declaration

            Compare efficiency of BPEL development and
            BPELscript development



            Follow                     development at
            http://www.bpelscript.org/
Presented by Oliver Kopp                                      23

Mais conteúdo relacionado

Semelhante a A Simplified Script Syntax for WS-BPEL 2.0

Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Rory Preddy
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationDietmar Schmidt
 
Graduation Project: Usable and Adaptable Business Software
Graduation Project: Usable and Adaptable Business SoftwareGraduation Project: Usable and Adaptable Business Software
Graduation Project: Usable and Adaptable Business SoftwareLeon van der Ree
 
DeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsDeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsRevolution Analytics
 
Service Discovery Like a Pro
Service Discovery Like a ProService Discovery Like a Pro
Service Discovery Like a ProEran Harel
 
Toward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra ApproachToward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra Approachijwscjournal
 
Toward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra ApproachToward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra Approachijwscjournal
 
Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsGunnar Wagenknecht
 
Kubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsKubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsSjuul Janssen
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008elliando dias
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and ScalaFilip Krikava
 

Semelhante a A Simplified Script Syntax for WS-BPEL 2.0 (14)

Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5Functional Reactive Endpoints using Spring 5
Functional Reactive Endpoints using Spring 5
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process Orchestration
 
Graduation Project: Usable and Adaptable Business Software
Graduation Project: Usable and Adaptable Business SoftwareGraduation Project: Usable and Adaptable Business Software
Graduation Project: Usable and Adaptable Business Software
 
DeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence ApplicationsDeployR: Revolution R Enterprise with Business Intelligence Applications
DeployR: Revolution R Enterprise with Business Intelligence Applications
 
Service Discovery Like a Pro
Service Discovery Like a ProService Discovery Like a Pro
Service Discovery Like a Pro
 
Confluence
ConfluenceConfluence
Confluence
 
Toward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra ApproachToward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra Approach
 
Toward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra ApproachToward a Formalization of BPEL 2.0 : An Algebra Approach
Toward a Formalization of BPEL 2.0 : An Algebra Approach
 
Elixir and OTP
Elixir and OTPElixir and OTP
Elixir and OTP
 
Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applications
 
Kubernetes workshop -_the_basics
Kubernetes workshop -_the_basicsKubernetes workshop -_the_basics
Kubernetes workshop -_the_basics
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Apache O D E Apache Con E U2008
Apache O D E  Apache Con E U2008Apache O D E  Apache Con E U2008
Apache O D E Apache Con E U2008
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
 

Mais de Oliver Kopp

Fault handling in the web service stack
Fault handling in the web service stackFault handling in the web service stack
Fault handling in the web service stackOliver Kopp
 
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...Oliver Kopp
 
The Subprocess Spectrum
The Subprocess SpectrumThe Subprocess Spectrum
The Subprocess SpectrumOliver Kopp
 
The Influence of an External Transaction on a BPEL Scope
The Influence of an External Transaction on a BPEL ScopeThe Influence of an External Transaction on a BPEL Scope
The Influence of an External Transaction on a BPEL ScopeOliver Kopp
 
External And Internal Events In EPCs: E²EPCs
External And Internal Events In EPCs: E²EPCsExternal And Internal Events In EPCs: E²EPCs
External And Internal Events In EPCs: E²EPCsOliver Kopp
 
Do We Need Internal Behavior in Choreography Models?
Do We Need Internal Behavior in Choreography Models?Do We Need Internal Behavior in Choreography Models?
Do We Need Internal Behavior in Choreography Models?Oliver Kopp
 
On the Choice Between Graph-Based and Block-Structured Business Process Mod...
On the Choice Between  Graph-Based and Block-Structured  Business Process Mod...On the Choice Between  Graph-Based and Block-Structured  Business Process Mod...
On the Choice Between Graph-Based and Block-Structured Business Process Mod...Oliver Kopp
 
Web Service Choreography Configurations for BPMN
Web Service Choreography Configurations for BPMNWeb Service Choreography Configurations for BPMN
Web Service Choreography Configurations for BPMNOliver Kopp
 
Tools4BPEL Abschlusspräsentation
Tools4BPEL AbschlusspräsentationTools4BPEL Abschlusspräsentation
Tools4BPEL AbschlusspräsentationOliver Kopp
 

Mais de Oliver Kopp (9)

Fault handling in the web service stack
Fault handling in the web service stackFault handling in the web service stack
Fault handling in the web service stack
 
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
Interaction Choreography Models in BPEL:Choreographies on the Enterprise Serv...
 
The Subprocess Spectrum
The Subprocess SpectrumThe Subprocess Spectrum
The Subprocess Spectrum
 
The Influence of an External Transaction on a BPEL Scope
The Influence of an External Transaction on a BPEL ScopeThe Influence of an External Transaction on a BPEL Scope
The Influence of an External Transaction on a BPEL Scope
 
External And Internal Events In EPCs: E²EPCs
External And Internal Events In EPCs: E²EPCsExternal And Internal Events In EPCs: E²EPCs
External And Internal Events In EPCs: E²EPCs
 
Do We Need Internal Behavior in Choreography Models?
Do We Need Internal Behavior in Choreography Models?Do We Need Internal Behavior in Choreography Models?
Do We Need Internal Behavior in Choreography Models?
 
On the Choice Between Graph-Based and Block-Structured Business Process Mod...
On the Choice Between  Graph-Based and Block-Structured  Business Process Mod...On the Choice Between  Graph-Based and Block-Structured  Business Process Mod...
On the Choice Between Graph-Based and Block-Structured Business Process Mod...
 
Web Service Choreography Configurations for BPMN
Web Service Choreography Configurations for BPMNWeb Service Choreography Configurations for BPMN
Web Service Choreography Configurations for BPMN
 
Tools4BPEL Abschlusspräsentation
Tools4BPEL AbschlusspräsentationTools4BPEL Abschlusspräsentation
Tools4BPEL Abschlusspräsentation
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

A Simplified Script Syntax for WS-BPEL 2.0

  • 1. 35th Euromicro Conference Software Engineering and Advanced Applications (SEAA 2009) A Simplified Script Syntax for WS- BPEL 2.0 Marc Bischof, Oliver Kopp, Tammo van Lessen, Frank Leymann Institute of Architecture of Application Systems kopp@iaas.uni-stuttgart.de
  • 2. Overview Main Motivation Existing Approaches BPELscript Outlook Presented by Oliver Kopp 2
  • 3. Usual MDD Approach Graphical Model transformation <opaqueActivity> Abstract BPEL <documentation> Set approved to "yes" manual </documentation> refinement </opaqueActivity> <assign> Executable BPEL <copy> <literal>yes</literal> deployment </copy> <to variable="approval" part="accept" /> </assign> 01100111010100100010010001001110110101 Presented by Oliver Kopp BPEL: WS-Business Process Execution Language 3
  • 7. Our Idea: BPELscript © Oliver Kopp 7
  • 8. Goals of BPELscript development Ease development of executable business processes (AKA “workflows”) Syntax close to “usual” programming languages Same semantics as WS-BPEL … enables two-way transformation simPEL Presented by Oliver Kopp 8
  • 9. Interaction With Partners loanPartnerLT (nothing) loanRequest loanServicePT Loan Approval Client Process partnerLink customer = (lns::loanPartnerLT, loanService, null) Declares a partnerlink customer of partner link type lns::loanPartnerLT with self-role loanService and no partner role Presented by Oliver Kopp 9
  • 10. Receiving a Message @createInstance request = receive(customer, loanRequest); Annotations for optional attributes in BPEL Implicit variable declaration “customer” is the partner link to use “loanRequest” is the operation Each statement in BPELscript can be seen as an activity in BPEL Presented by Oliver Kopp 10
  • 11. Invoking a Service Operation risk = invoke(assessor, check, request); Synchronous service call to risk “assessor” Operation “check” Input variable “request” Result is stored in variable “risk” Reuse of existing processes is done by using the processes by invokes, receives, … BPEL does not allow the definition of new “procedures” Presented by Oliver Kopp 11
  • 12. Aynchronous Variant invoke(assessor, check, request, {assessorCorrelation}); risk = receive(assessor, checkResult, {assessorCorrelation}); Optional Parameter lists correlation sets to use for correlatoin Presented by Oliver Kopp 12
  • 13. Variable Assignment approval.accept = "yes"; Default expression language: E4X ECMAScript for XML Translated to assign or kept as E4X T. van Lessen and others: Facilitating Rich Data Manipulation in BPEL using E4X. In ZEUS 2009 XPath still supported var = [bpel:doXslTransform("...", $A)]; Presented by Oliver Kopp 13
  • 14. Replying to a Synchronous Call reply(customer, loanRequest, approval); Reply message for the “loanRequest” operation No correlation needed Presented by Oliver Kopp 14
  • 15. Linking Activities Together Just as in usual programming languages @createInstance request = receive(customer, loanRequest); risk = invoke(assessor, check, request); if (risk.level=="high") { approval.accept = "no"; } else { approval.accept = "yes"; } reply(customer, loanRequest, approval); Presented by Oliver Kopp 15
  • 16. What about Graphs? Process modeling languages offer “graph-oriented programming” BPEL also offers graph-oriented programming Two alternatives to represent it in BPEL A) Map to matching block-constructs B) Use BPEL’s graph capabilities An activity is a node in the graph A link representes an edge in the graph J. Vanhatalo & H. Völzer & J. Koehler: The Refined Process Structure Tree BPM'08 Presented by Oliver Kopp 16
  • 17. Graph-oriented Programming: Alternatives Goto-inspired syntax lauto: risk = invoke(…) l1=[$risk = 'high']‐>lhuman, l2=[$risk != 'high']‐>lapp [l1 and l2] lapp: invoke(…); Signal and Join Statements risk = invoke(…) signal(l1, [$risk.level == 'low']); signal(l1, [$risk.level != 'low']); join(l1, l2, [$l1 and $l2]); Presented by Oliver Kopp 17
  • 18. Resulting Process parallel { @createInstance request = receive(customer, loanRequest); signal(receive‐to‐assess, [$request.amount < 10000]); signal(receive‐to‐approval, [$request.amount >= 10000]); } and { join(receive‐to‐assess); risk = invoke(assessor, check, request); ... Presented by Oliver Kopp 18
  • 19. Fault Handling try { ... } catch(lns::loanProcessFault) { |error| @fault unableToHandleRequest reply(customer, loanRequest, error); } Presented by Oliver Kopp 19
  • 20. Advanced Workflow Constructs scope { ... } onEvents { event(partnerLink, operation) { ... } timeOut(...) { ... } } onTermination { ... } onCompensation { ... } Presented by Oliver Kopp 20
  • 22. Overview on the Transformation ANTLR: ANother Tool for Language Recognition Parser Generator ANTXR: ANother Tool for Xml Recognition XML Processing for ANTLR Presented by Oliver Kopp 22
  • 23. Future Work IDE for BPELscript Enhance the translator to support implicit variable declaration Compare efficiency of BPEL development and BPELscript development Follow development at http://www.bpelscript.org/ Presented by Oliver Kopp 23