SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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

Más contenido relacionado

Similar 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
 

Similar 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
 

Más 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
 

Más 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

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Último (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

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