BPELscript

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    BPELscript - Presentation Transcript

    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
    4. Existing Approaches © Oliver Kopp 4
    5. Presented by Oliver Kopp 5
    6. Presented by Oliver Kopp 6
    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
    21. Presented by Oliver Kopp 21
    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
    SlideShare Zeitgeist 2009

    + kopporkoppor Nominate

    custom

    188 views, 0 favs, 1 embeds more stats

    Alternative syntax for WS-BPEL

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 188
      • 184 on SlideShare
      • 4 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds
    • 4 views on http://www.iaas.uni-stuttgart.de

    more

    All embeds
    • 4 views on http://www.iaas.uni-stuttgart.de

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories