SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 

Kürzlich hochgeladen (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 

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