35th Euromicro Conference
Software Engineering and Advanced Applications (SEAA 2009)




 A Simplified Script Syntax for W...
Overview


            Main Motivation

            Existing Approaches

            BPELscript

            Outlook




P...
Usual MDD Approach

 Graphical Model

 transformation

                            <opaqueActivity>
 Abstract BPEL        ...
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 “workflow...
Interaction With Partners

                                       loanPartnerLT


                           (nothing)    ...
Receiving a Message
   @createInstance
   request = receive(customer, loanRequest);

            Annotations for optional ...
Invoking a Service Operation
   risk = invoke(assessor, check, request);

            Synchronous service call to risk “as...
Aynchronous Variant
   invoke(assessor, check, request,
     {assessorCorrelation});
   risk = receive(assessor, checkResu...
Variable Assignment
   approval.accept = "yes";

            Default expression language: E4X
                      ECMASc...
Replying to a Synchronous Call
   reply(customer, loanRequest, approval);

            Reply message for the “loanRequest”...
Linking Activities Together

            Just as in usual programming languages

   @createInstance
   request = receive(c...
What about Graphs?

            Process modeling languages offer
            “graph-oriented programming”
            BPEL...
Graph-oriented Programming: Alternatives

            Goto-inspired syntax
                      lauto:
                  ...
Resulting Process
   parallel {
     @createInstance
     request = receive(customer, loanRequest);
     signal(receive‐to...
Fault Handling
   try {
   ...
   } catch(lns::loanProcessFault) { |error|
     @fault unableToHandleRequest
     reply(cu...
Advanced Workflow Constructs
   scope {
   ...
   } onEvents {
     event(partnerLink, operation) {
     ...
      }
     ...
Presented by Oliver Kopp   21
Overview on the Transformation




            ANTLR: ANother Tool for Language Recognition
                      Parser G...
Future Work

            IDE for BPELscript

            Enhance the translator to support implicit variable
            d...
Upcoming SlideShare
Loading in...5
×

BPELscript

766

Published on

Alternative syntax for WS-BPEL

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
766
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

BPELscript

  1. 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. 2. Overview Main Motivation Existing Approaches BPELscript Outlook Presented by Oliver Kopp 2
  3. 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
  4. 4. Existing Approaches © Oliver Kopp 4
  5. 5. Presented by Oliver Kopp 5
  6. 6. Presented by Oliver Kopp 6
  7. 7. Our Idea: BPELscript © Oliver Kopp 7
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 19. Fault Handling try { ... } catch(lns::loanProcessFault) { |error| @fault unableToHandleRequest reply(customer, loanRequest, error); } Presented by Oliver Kopp 19
  20. 20. Advanced Workflow Constructs scope { ... } onEvents { event(partnerLink, operation) { ... } timeOut(...) { ... } } onTermination { ... } onCompensation { ... } Presented by Oliver Kopp 20
  21. 21. Presented by Oliver Kopp 21
  22. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×