Studienarbeit STUD-2175

Bischof, Marc: Translating WS-BPEL 2.0 to BPELscript and Vice Versa.
Universität Stuttgart, Fakultät Informatik, Elektrotechnik und Informationstechnik, Studienarbeit Nr. 2175 (2008).
109 Seiten, englisch.
CR-Klassif.D.1.1 (Applicative (Functional) Programming)
D.2.11 (Software Engineering Software Architectures)
D.3.4 (Programming Languages Processors)
H.4.1 (Office Automation)
K.1 (The Computer Industry)
KeywordsWS-BPEL 2.0; BPEL; BPELscript; SimPEL; SimBPEL; Translator

The Business Process Execution Language (BPEL) is an XML-based language to specify business processes with the intention to act as the central controller of the business process". It provides a standardized way for programming in the large in a service oriented world. BPEL is not a programming language at all and does not have a graphical representation. Mappings from graphical languages such as the Business Process Modeling Notation (BPMN) to BPEL are available, but programmers familiar to syntax like Java, C, ... are disregarded. Therefore, especially for prototyping or teaching, it would be nice to have a programming language which omits the XML-overhead of BPEL but offers the same features as BPEL. One option is to force the programmers to learn a completely new syntax. The other option is to introduce a new syntax to BPEL.

Therefore, the "BPEL Simplified Syntax" called SimPEL was recommended by the Apache ODE Group, referring to the a mix of both options. However, SimPEL is not equivalent to BPEL and its aims of specifying business processes. In order to come up with an easy scripting syntax, this work introduce BPELscript, referring to the second option. BPELscript forks directly from SimPEL aiming on big closeness to BPEL. In contrast to SimPEL, BPELscript supports all of BPELs constructs including the correlation.

To gain in importance, a 1:1 mapping from BPEL to BPELscript and vice versa is required. Therefore this work provides a translator using the ANTLR v3 (ANother Tool for Language Recognition) parser generator which is based on a predicated-LL(*) parsing strategy. This solution uses the implicit tree structure behind the input sentences to construct an abstract syntax tree (AST) which is a highly processed and condensed version of the input. The translator maps each input sentence of the source language to an output sentence by embedding actions (e.g. code) within the grammar or tree. This actions will be executed according to its position within the grammar or tree. To support an easy handling of implicit declarations the translation is broken down into multiple passes.

This work describes how BPELscript achieves its 1:1 mapping using automated tools to provide extensibility, maintainability and of course usability. Therefore the work is split into five chapters: * Chapter 2 - "Introduction to Computer Language Translation and the Main Tools" describes basics of language translation and introduces the main tools. * Chapter 3 - "BPELscript" introduces the BPELscript syntax and discuss modeling alternatives and the mapping to BPEL. * Chapter 4 - "Project Description of bosto - The BPEL to BPELscript Translator" provides a technical description of a prototypical translator named bosto. * Chapter 5 - "Summary and Outlook" concludes the work Finally, the appendix shows language basics of BPELscript which are not mentioned in the text and the complete BPELscript grammar. Thereby, the grammar presents an overview of the correlation between SimPEL and BPELscript. Furthermore, it provides several overviews about expressions, annotations and keywords. For completeness and as it seems to be an emerging standard way when talking on BPEL, the appendix shows also a complete Loan Approval Process in BPELscript.

Volltext und
andere Links
PDF (1046230 Bytes)
BPELscript Homepage
Zugriff auf studentische Arbeiten aufgrund vorherrschender Datenschutzbestimmungen nur innerhalb der Fakultät möglich
Abteilung(en)Universität Stuttgart, Institut für Architektur von Anwendungssystemen
BetreuerKopp, Oliver; van Lessen, Tammo
Eingabedatum30. Oktober 2008
   Publ. Institut   Publ. Informatik