1 / 22

S. Mazanek and M. Hanus

Constructing a Bidirectional Transformation between BPMN and BPEL with a Functional Logic Programming Language. S. Mazanek and M. Hanus Journal of Visual Languages & Computing, Volume 22, Issue 1 , pages 66-89, 2011 報告人 : P0256962 劉民樟. Outlines. Introduction BPMN and BPEL

kieu
Télécharger la présentation

S. Mazanek and M. Hanus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Constructing a Bidirectional Transformation between BPMN and BPEL with a Functional Logic Programming Language S. Mazanek and M. Hanus Journal of Visual Languages & Computing, Volume 22, Issue 1, pages 66-89, 2011 報告人: P0256962 劉民樟

  2. Outlines • Introduction • BPMN and BPEL • Hypergraph Models • Functional Logic Programming and Parser Combinators • Graph Parser Combinators • BPMN and BPEL Transformation • Comments

  3. Introduction • BPMN and BPEL are practically relevant • Why the transformation between BPMN and BPEL is needed • BPMN and BPEL belong to two fundamentally different languages • BPMN is graph-oriented and is used as an abstract representation • BPEL is block-structured • Most approaches hardly met two important criteria • Readability • Reversibility

  4. What is proposed in this paper? • The GRAPPA framework which is proposed by the same author is used to construct graph parsers in a flexible manner • Assumption • A process is well-structured • Single-Entry Single-Exit (SESE) • Pre-required • A process is prec-onstructed as a tree

  5. BPMN and BPEL A BPMN Example The corresponded BPEL

  6. Transformation Challenges • Control Links in BPEL • Four Criteria for The Evaluation of Transformation • Completeness • Correctness • Readability • Reversibility Decide On Shipper must be later than Complete Price Calculation

  7. Hypergraph Models • A hypergraph • Consists of edges and nodes • An edge visits exact two nodes • BPMN and hypergraph • An activity and gateway can be drawn as an edge • An activity has one incoming and one outgoing tentacle • A gateway has four tentacles

  8. Hypergraph Grammars for Language Definition

  9. Functional Logic Programming • A functional programming • Treats computation as the evaluation of mathematical functions and avoids state and mutable data • Produces results that depend only on their inputs and not on the program state • Iteration (looping) in functional languages is usually accomplished via recursion • Higher-order functions are functions that can either take other functions as arguments or return them as results • The form  twice(f, 7) = f(f(7)) = (7 + 3) + 3 def f(x): return x + 3 deftwice(function, x): returnfunction(function(x)) print(twice(f, 7))

  10. Curry • Curry is a declarative multi-paradigm language combining features from both functional and logic programming • A Curry program consists of the definition of data types and operations on these types • In a Curry program, operations are defined by conditional equations with constraints in the conditions • Example • not '(not False)' → 'not True' → False • dataList a = [] | a : List a • [] ++ ys = ys • (x:xs) ++ ys = x : xs++ys • last l |xs++[e] =:= l = e wherexs,e free

  11. Parser Combinators • A parser is a function accepting strings as input and returning some structure as output • In functional programming, a parser combinator is a higher-order function which accepts several parsers as input and returns a new parser as its output • Parser combinator and context-free grammar | Where *> is a sequence and <|> is a choice (or alternative)

  12. Graph Parser Combinator: GRAPPA type Node = Int type Edge t = (t, [Node]) type Graph t = [Edge t] Where t is a type for the edge label type Grappa t res = Graph t  (res, Graph t) Where t is a type for the edge label, res is a semantic value associated to graphs

  13. Basic Graph Parser Combinator

  14. The Corresponding Graph Parser Combinators

  15. Constructing the BPMN to BPEL Transformation

  16. A representation of BPEL in Curry

  17. BPMN Parser that Computes BPEL

  18. Some discussions in this Paper • Identification and Dangling Edge Condition • Graph completion • Keep a process graph completely with correct connection between edges

  19. Performance for Parsing Activities Chains Since a process is constructed as a tree, the parsing time should be exponential

  20. Drawback in the transformation • Non-context-free concepts can not be covered, such as • Message flow • Loop

  21. Comments • The transformation of a process between BPMN and BPEL must be well-structured • The hypergraph models has a limitation. • The transformation proposed in this paper • Focuses on the structure of process • Static analysis and transformation • What about the transformation for execution between BPMN and BPEL? • Imperative vs. functional

  22. Comments (cont.) • The completion only care about the process structure, not the transformation result between BPMN and BPEL • Can not find any discussion about • Correctness • Readability

More Related