Faster Or-join Enactment for BPMN 2.0

Size: px
Start display at page:

Download "Faster Or-join Enactment for BPMN 2.0"

Transcription

1 Faster Or-join Enactment for BPMN 2.0 Hagen Völzer, IBM Research Zurich Joint work with Beat Gfeller and Gunnar Wilmsmann

2 Contribution: BPMN Diagram Enactment Or-join Tokens define the control state Execution (or simulation) engine needs to determine, for any given control state, what flow elements (activities, gateways, etc.) are enabled Determining enabledness of Or-joins is relatively difficult (compared to other flow elements) Linear time per Or-join for each change of control-state This can be a problem for high-performance execution and simulation We improve that to essentially constant time 2

3 Outline The Or-Join Enactment Problem BPMN 2.0 Or-join semantics Analysis of the current enactment algorithm A New Solution 3

4 Or-Join for Closing Or-Splits (1/3) Or-split provides conditional concurrent branching Any non-empty subset of the available branches may be selected Or-join cannot be enabled before at least one token has arrived 4

5 Or-Join for Closing Or-Splits (2/3) Filled slot of the join Empty slot of the join Red path from token to empty slot indicates that join must wait Or-join should synchronize the active branches (i.e. tokens produced by split) Join should wait for Book car to complete but not for Book flight The semantics is non-local Enabling depends on tokens that are not at the join 5

6 Or-Join for Closing Or-Splits (3/3) Splits and joins may not be exactly paired Synchronize tokens that were produced upstream of the Or-join Again: existence of a path from a token to an empty slot determines waiting 6

7 Or-Join for Closing a Combination of And- and Xor-Splits Similar to Or-splits Synchronize tokens that were produced upstream 7

8 A Cyclic Diagram (1/2) How does this diagram behave? 8

9 A Cyclic Diagram (2/2) In cyclic diagrams, it gets more complicated Meaning of upstream gets problematic The existence of a path from a token to an empty slot is not sufficient To characterize waiting for an Or-join Otherwise j waits for h and h waits for j We want h to execute first in this example 9

10 BPMN 2.0 Semantics: Enabledness of j Starting from filled slots of j Color all backward-reachable edges in blue, stop at j Computes the area that does not need to be searched for tokens Intuition: The slots there are satisfied already Starting from empty slots of j All backward-reachable edges in red, stop at j or any blue edge Computes the area that needs to be searched for tokens If there is a token on a red edge, j needs to wait Otherwise j is enabled 10

11 BPMN 2.0 Semantics: Enabledness of h Or-join h is enabled here (So, indeed h executes first) Search takes linear time in the number of edges Search needs to be repeated upon each state change (anywhere in the graph)! This can be a problem for high-performance execution and simulation 11

12 Outline The Or-Join Enactment Problem A New Solution Main idea Runtime analysis Limitations Further Optimization 12

13 Solution Overview Introduce and maintain data structure for each Or-join Keeps track of the tokens that the Join may need to wait for Update data structure upon each state change Maintain an explicit flag whether Join is enabled 13

14 Preprocessing Enumerate incoming slots of j by j1, j2, Label each edge of the graph with set of slots that can be reached from this edge without going through j The full set {j1,j2,j3} and the empty set { } can be omitted 14

15 New Solution Allocate a counter X L for each distinct label L = { } X L counts the number of tokens that reside at edges labeled with L Incremented whenever such an edge gets a token, decremented whenever such an edge loses a token Counter X L is ignored whenever L contains a filled slot Or-join j is enabled whenever all non-ignored counters are zero 15

16 Correctness If edge e is blue, e has a path to a filled slot j k j k is in label L of e corresponding counter X L is ignored and vice versa If red edge e with Label L = { } has a token, value of counter X L is non-zero counter X L is not ignored (because e is not blue) Enabled flag is false and vice versa 16

17 Analysis Preprocessing: linear in the number of edges: once per process model Initialization of counters: linear in the number of edges: once per process instance Update of the counters: (only for gateway execution): linear in the degree of the gateway If a token is added to an incoming slot, update ignored values (linear in edges) If the Or-join executes, ignored values need to be updated as well The latter two cases can be considered seldom (see paper) Effort of enacting state change is essentially the same whereas checking enabledness gets reduced from linear to constant time 17

18 Limitation Cost of allocation of data structure and its maintenance is for each separate Or-join in the diagram If there are many Or-joins in a diagram, further optimization may pay off 18

19 Further Optimizations Start tracking only when first token arrives at Or-join Decompose diagram into SESE fragments Use Dead Path Elimination for Or-joins inside acyclic fragments Don t track tokens inside a subfragment in the scope of the Or-join 19

20 Conclusion Naïve BPMN 2.0 Or-join enactment requires a linear search in the graph upon each state change This can be optimized to essentially constant time cost per update Further room for improvement when there are many Or-joins per process Experimental validation desirable, e.g. in simulation engine 20

The Difficulty of Replacing an Inclusive OR-Join

The Difficulty of Replacing an Inclusive OR-Join The Difficulty of Replacing an Inclusive OR-Join Cédric Favre and Hagen Völzer Translating an inclusive OR-join Identify customer New customer Existing customer Create customer record Retrieve Customer

More information

Business-Driven Software Engineering Lecture 5 Business Process Model and Notation

Business-Driven Software Engineering Lecture 5 Business Process Model and Notation Business-Driven Software Engineering Lecture 5 Business Process Model and Notation Jochen Küster jku@zurich.ibm.com Agenda BPMN Introduction BPMN Overview BPMN Advanced Concepts Introduction to Syntax

More information

Diagnostic Information for Control-Flow Analysis of Workflow Graphs (aka Free-Choice Workflow Nets)

Diagnostic Information for Control-Flow Analysis of Workflow Graphs (aka Free-Choice Workflow Nets) Diagnostic Information for Control-Flow Analysis of Workflow Graphs (aka Free-Choice Workflow Nets) Cédric Favre(1,2), Hagen Völzer(1), Peter Müller(2) (1) IBM Research - Zurich (2) ETH Zurich 1 Outline

More information

Dynamic Skipping and Blocking, Dead Path Elimination for Cyclic Workflows, and a Local Semantics for Inclusive Gateways

Dynamic Skipping and Blocking, Dead Path Elimination for Cyclic Workflows, and a Local Semantics for Inclusive Gateways Dynamic Skipping and Blocking, Dead Path Elimination for Cyclic Workflows, and a Local Semantics for Inclusive Gateways Dirk Fahland a, Hagen Völzer b a Eindhoven University of Technology, The Netherlands

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

Extending BPEL with transitions that can loop

Extending BPEL with transitions that can loop Extending BPEL with transitions that can loop ActiveVOS linksaretransitions BPEL Extension AN ACTIVE ENDPOINTS PAPER AUTHOR: DR MICHAEL ROWLEY 2009 Active Endpoints Inc. ActiveVOS is a trademark of Active

More information

Path Analysis. Ulrich Scholz TU Darmstadt. November 5th, 2001

Path Analysis. Ulrich Scholz TU Darmstadt. November 5th, 2001 Path Analysis Ulrich Scholz TU Darmstadt November 5th, 2001 Path Analysis Ulrich Scholz TU Darmstadt November 5th, 2001 work in progress Introduction: Preprocessing 1 Transformation of a problem into an

More information

Analysis on Demand: Instantaneous Soundness Checking of Industrial Business Process Models

Analysis on Demand: Instantaneous Soundness Checking of Industrial Business Process Models Analysis on Demand: Instantaneous Soundness Checking of Industrial Business Process Models Dirk Fahland a, Cédric Favre b, Jana Koehler 1c, Niels Lohmann d, Hagen Völzer b, Karsten Wolf d a Humboldt-Universität

More information

Runtime. The optimized program is ready to run What sorts of facilities are available at runtime

Runtime. The optimized program is ready to run What sorts of facilities are available at runtime Runtime The optimized program is ready to run What sorts of facilities are available at runtime Compiler Passes Analysis of input program (front-end) character stream Lexical Analysis token stream Syntactic

More information

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL

CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL CHAPTER 5 GENERATING TEST SCENARIOS AND TEST CASES FROM AN EVENT-FLOW MODEL 5.1 INTRODUCTION The survey presented in Chapter 1 has shown that Model based testing approach for automatic generation of test

More information

Business process modeling and automation IDU0330 Lecture 3 BPMN Enn Õunapuu ICT-643

Business process modeling and automation IDU0330 Lecture 3 BPMN Enn Õunapuu ICT-643 Business process modeling and automation IDU0330 Lecture 3 BPMN Enn Õunapuu enn.ounapuu@ttu.ee ICT-643 Agenda for BPMN BPM reference model BPMN basic elements Modelling methodology BPMN diagramming style

More information

Business Process Modeling. Version /10/2017

Business Process Modeling. Version /10/2017 Business Process Modeling Version 1.2.1-16/10/2017 Maurizio Morisio, Marco Torchiano, 2012-2017 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML

More information

Business Information Systems Lecture 3 BPMN. Enn Õunapuu

Business Information Systems Lecture 3 BPMN. Enn Õunapuu Business Information Systems Lecture 3 BPMN Enn Õunapuu enn@cc.ttu.ee Lecture plan Overall approach BPMN Examples 3 Business process definition The word process is defined in the dictionary as a series

More information

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper.

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. Algebra of Sets Aditya Ghosh April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. 1 The Basics This article is only about the algebra of sets, and does not deal with the foundations

More information

Chapter 13 Topics. Introduction. Introduction

Chapter 13 Topics. Introduction. Introduction Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Java Threads C# Threads Statement-Level Concurrency Copyright 2006 Pearson Addison-Wesley. All rights reserved.

More information

Appendix D: Mapping BPMN to BPD Profile

Appendix D: Mapping BPMN to BPD Profile Appendix D: Mapping BPMN to BPD Profile Members of bpmi.org and the OMG are interested in the unification of the UML 2.0 and BPMN notation for the support of the business user. This draft mapping is in

More information

Business Processes Modelling MPB (6 cfu, 295AA)

Business Processes Modelling MPB (6 cfu, 295AA) Business Processes Modelling MPB (6 cfu, 295AA) Roberto Bruni http://www.di.unipi.it/~bruni 13 - Workflow nets!1 Object We study some special kind of Petri nets, that are suitable models of workflows Ch.4.4

More information

Splitting Algorithms

Splitting Algorithms Splitting Algorithms We have seen that slotted Aloha has maximal throughput 1/e Now we will look at more sophisticated collision resolution techniques which have higher achievable throughput These techniques

More information

7. BPMN by Example. BPMN Working Draft. Figure 121 Voting Process. Copyright 2004, BPMI.org All Rights Reserved 201 / 281.

7. BPMN by Example. BPMN Working Draft. Figure 121  Voting Process. Copyright 2004, BPMI.org All Rights Reserved 201 / 281. BPMN Working Draft 7. BPMN by Example This section will provide an example of a business process modeled with BPMN. The process that will be described is a process that BPMI has been using to develop this

More information

Lezione 14 Model Transformations for BP Analysis and Execution

Lezione 14 Model Transformations for BP Analysis and Execution Lezione 14 Model Transformations for BP Analysis and Execution Ingegneria dei Processi Aziendali Modulo 1 - Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani 1 Università di Milano 1 Business

More information

OSEK/VDX. Communication. Version January 29, 2003

OSEK/VDX. Communication. Version January 29, 2003 Open Systems and the Corresponding Interfaces for Automotive Electronics OSEK/VDX Communication Version 3.0.1 January 29, 2003 This document is an official release and replaces all previously distributed

More information

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 417 Branch & Bound (pt 4) Branch & Bound CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity

More information

Choreography-based Consolidation of Interacting Processes Having Activity-based Loops

Choreography-based Consolidation of Interacting Processes Having Activity-based Loops Choreography-based Consolidation of Interacting Processes Having Activity-based Loops Sebastian Wagner 1, Oliver Kopp 1,2 and Frank Leymann 1 1 IAAS, 2 IPVS, University of Stuttgart, Universitaetsstr.

More information

Workflow : Patterns and Specifications

Workflow : Patterns and Specifications Workflow : Patterns and Specifications Seminar Presentation by Ahana Pradhan Under the guidance of Prof. Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology,

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2003 Vol. 2, No. 6, November-December 2003 UML 2 Activity and Action Models Part 3:

More information

Ideally your algorithms for both parts should run in linear time. You will receive partial credit for a polynomial-time algorithm.

Ideally your algorithms for both parts should run in linear time. You will receive partial credit for a polynomial-time algorithm. HW 7: Extra problems Instructor: Sariel Har-Peled CS/ECE 374: Algorithms & Models of Computation, Fall 2017 Version: 1.0 1 Consider a directed graph G, where each edge is colored either red, white, or

More information

CSE 417 Network Flows (pt 3) Modeling with Min Cuts

CSE 417 Network Flows (pt 3) Modeling with Min Cuts CSE 417 Network Flows (pt 3) Modeling with Min Cuts Reminders > HW6 is due on Friday start early bug fixed on line 33 of OptimalLineup.java: > change true to false Review of last two lectures > Defined

More information

Process groups and message ordering

Process groups and message ordering Process groups and message ordering If processes belong to groups, certain algorithms can be used that depend on group properties membership create ( name ), kill ( name ) join ( name, process ), leave

More information

Chapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level

Chapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Concurrency can occur at four levels: 1. Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Because there are no language issues in instruction- and program-level

More information

On Application of Structural Decomposition for Process Model Abstraction. Artem Polyvyanyy Sergey Smirnov Mathias Weske

On Application of Structural Decomposition for Process Model Abstraction. Artem Polyvyanyy Sergey Smirnov Mathias Weske On Application of Structural Decomposition for Process Model Abstraction Artem Polyvyanyy Sergey Smirnov Mathias Weske BPSC 2009 24 March 2009 Motivation 2 Research project with AOK Brandenburg Goal: detailed

More information

Introduction to Homotopy Type Theory

Introduction to Homotopy Type Theory Introduction to Homotopy Type Theory Lecture notes for a course at EWSCS 2017 Thorsten Altenkirch March 5, 2017 1 What is this course about? To explain what Homotopy Type Theory is, I will first talk about

More information

Dimensioning of Reassembly Buffers at the OLT

Dimensioning of Reassembly Buffers at the OLT Dimensioning of Reassembly Buffers at the OLT Glen Kramer, Broadcom March 017 IEEE P80.3ca Task Force meeting, Vancouver, BC CA 1 Recap of the previous discussion NG EPON For problem statement, see kramer_3ca_1a_0117.pdf

More information

Outline. Graphs. Divide and Conquer.

Outline. Graphs. Divide and Conquer. GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Introduction to Machine-Independent Optimizations - 6

Introduction to Machine-Independent Optimizations - 6 Introduction to Machine-Independent Optimizations - 6 Machine-Independent Optimization Algorithms Department of Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

Bidimensional Process Discovery for Mining BPMN Models

Bidimensional Process Discovery for Mining BPMN Models Bidimensional Process Discovery for Mining BPMN Models DeMiMoP 2014, Haifa Eindhoven Jochen De Weerdt, KU Leuven (@jochendw) Seppe vanden Broucke, KU Leuven (@macuyiko) (presenter) Filip Caron, KU Leuven

More information

Topic 9: Control Flow

Topic 9: Control Flow Topic 9: Control Flow COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 The Front End The Back End (Intel-HP codename for Itanium ; uses compiler to identify parallelism)

More information

Chapter 13. Concurrency ISBN

Chapter 13. Concurrency ISBN Chapter 13 Concurrency ISBN 0-321-49362-1 Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Ada Support for Concurrency Java Threads C# Threads

More information

SysML Activity Diagram Some Basic Semantics

SysML Activity Diagram Some Basic Semantics SysML Activity Diagram Some Basic Semantics theodore.kahn@engility.com 1. Does this diagram follow all SysML rules, is it semantically correct? 2. If it is correct, is it good SysML, is the modeler s intent

More information

Business Process Modeling. Version 25/10/2012

Business Process Modeling. Version 25/10/2012 Business Process Modeling Version 25/10/2012 Maurizio Morisio, Marco Torchiano, 2012, 2013 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML Class

More information

CS 310 Advanced Data Structures and Algorithms

CS 310 Advanced Data Structures and Algorithms CS 31 Advanced Data Structures and Algorithms Graphs July 18, 17 Tong Wang UMass Boston CS 31 July 18, 17 1 / 4 Graph Definitions Graph a mathematical construction that describes objects and relations

More information

Graph Algorithms. Imran Rashid. Jan 16, University of Washington

Graph Algorithms. Imran Rashid. Jan 16, University of Washington Graph Algorithms Imran Rashid University of Washington Jan 16, 2008 1 / 26 Lecture Outline 1 BFS Bipartite Graphs 2 DAGs & Topological Ordering 3 DFS 2 / 26 Lecture Outline 1 BFS Bipartite Graphs 2 DAGs

More information

Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN. Enn Õunapuu

Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN. Enn Õunapuu Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN Enn Õunapuu enn@cc.ttu.ee Kava Üldine lähenemisviis BPMN Näited 3 Mudelitel põhinev tarkvara arendus Protsessitundlik

More information

Compiler Construction

Compiler Construction Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: Static Data Structures Outline of Lecture 18 Recap:

More information

OUTLINE. Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems

OUTLINE. Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems Chapter 5 Synchronization OUTLINE Introduction Clock synchronization Logical clocks Global state Mutual exclusion Election algorithms Deadlocks in distributed systems Concurrent Processes Cooperating processes

More information

CS 125 Section #4 RAMs and TMs 9/27/16

CS 125 Section #4 RAMs and TMs 9/27/16 CS 125 Section #4 RAMs and TMs 9/27/16 1 RAM A word-ram consists of: A fixed set of instructions P 1,..., P q. Allowed instructions are: Modular arithmetic and integer division on registers; the standard

More information

Increment and the While. Class 15

Increment and the While. Class 15 Increment and the While Class 15 Increment and Decrement Operators Increment and Decrement Increase or decrease a value by one, respectively. the most common operation in all of programming is to increment

More information

Portland State University ECE 588/688. Dataflow Architectures

Portland State University ECE 588/688. Dataflow Architectures Portland State University ECE 588/688 Dataflow Architectures Copyright by Alaa Alameldeen and Haitham Akkary 2018 Hazards in von Neumann Architectures Pipeline hazards limit performance Structural hazards

More information

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes Graphs Graphs A graph is a data structure consisting of nodes (or vertices) and edges An edge is a connection between two nodes A D B E C Nodes: A, B, C, D, E Edges: (A, B), (A, D), (D, E), (E, C) Nodes

More information

Operating system Dr. Shroouq J.

Operating system Dr. Shroouq J. 2.2.2 DMA Structure In a simple terminal-input driver, when a line is to be read from the terminal, the first character typed is sent to the computer. When that character is received, the asynchronous-communication

More information

Concurrent Systems Modeling using Petri Nets Part II

Concurrent Systems Modeling using Petri Nets Part II Concurrent Systems Modeling using Petri Nets Part II Marlon Dumas (Based on lecture material by Wil van der Aalst Eindhoven University of Technology, The Netherlands http://www.workflowcourse.com) PN-1

More information

4.1 Review - the DPLL procedure

4.1 Review - the DPLL procedure Applied Logic Lecture 4: Efficient SAT solving CS 4860 Spring 2009 Thursday, January 29, 2009 The main purpose of these notes is to help me organize the material that I used to teach today s lecture. They

More information

JENAER SCHRIFTEN MATHEMATIK UND INFORMATIK

JENAER SCHRIFTEN MATHEMATIK UND INFORMATIK FRIEDRICH-SCHILLER- UNIVERSITÄT JENA JENAER SCHRIFTEN ZUR MATHEMATIK UND INFORMATIK Eingang: 10.04.2014 Math/Inf/02/2014 Als Manuskript gedruckt Determination of a Correct Execution Semantics for Inclusive

More information

CSCI-1200 Data Structures Fall 2011 Lecture 24 Garbage Collection & Smart Pointers

CSCI-1200 Data Structures Fall 2011 Lecture 24 Garbage Collection & Smart Pointers CSCI-1200 Data Structures Fall 2011 Lecture 24 Garbage Collection & Smart Pointers Review from Lecture 23 Basic exception mechanisms: try/throw/catch Functions & exceptions, constructors & exceptions Today

More information

CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable)

CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) CSL373: Lecture 5 Deadlocks (no process runnable) + Scheduling (> 1 process runnable) Past & Present Have looked at two constraints: Mutual exclusion constraint between two events is a requirement that

More information

Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN. Enn Õunapuu

Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN. Enn Õunapuu Äriprotsesside modelleerimine ja automatiseerimine Loeng 5 Äriprotsesside modelleerimine BPMN Enn Õunapuu enn@cc.ttu.ee Kava Üldine lähenemisviis BPMN Näited 3 Mudelitel põhinev tarkvara arendus Protsessitundlik

More information

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.)

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.) CHAPTER 5 Functions The main ideas in this chapter are: first-class functions: functions are values that can be passed as arguments to other functions, returned from functions, stored in lists and dictionaries,

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 18: Code Generation V (Implementation of Dynamic Data Structures) Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ss-14/cc14/

More information

BPEL Business Process Execution Language

BPEL Business Process Execution Language BPEL Business Process Execution Language Michal Havey: Essential Business Process Modeling Chapter 5 1 BPEL process definition In XML Book describe version 1 Consist of two type of files BPEL files including

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

Arm Assembly Language programming. 2. Inside the ARM

Arm Assembly Language programming. 2. Inside the ARM 2. Inside the ARM In the previous chapter, we started by considering instructions executed by a mythical processor with mnemonics like ON and OFF. Then we went on to describe some of the features of an

More information

Conditional Elimination through Code Duplication

Conditional Elimination through Code Duplication Conditional Elimination through Code Duplication Joachim Breitner May 27, 2011 We propose an optimizing transformation which reduces program runtime at the expense of program size by eliminating conditional

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Strongly Connected Components Ulf Leser Content of this Lecture Graph Traversals Strongly Connected Components Ulf Leser: Algorithms and Data Structures, Summer Semester

More information

Today s Outline. CS 561, Lecture 18. Potential Method. Pseudocode. Dynamic Tables. Jared Saia University of New Mexico

Today s Outline. CS 561, Lecture 18. Potential Method. Pseudocode. Dynamic Tables. Jared Saia University of New Mexico Today s Outline CS 561, Lecture 18 Jared Saia University of New Mexico Dynamic Tables 1 Pseudocode Potential Method Table-Insert(T,x){ if (T.size == 0){allocate T with 1 slot;t.size=1} if (T.num == T.size){

More information

COMPILER DESIGN - CODE OPTIMIZATION

COMPILER DESIGN - CODE OPTIMIZATION COMPILER DESIGN - CODE OPTIMIZATION http://www.tutorialspoint.com/compiler_design/compiler_design_code_optimization.htm Copyright tutorialspoint.com Optimization is a program transformation technique,

More information

Lecture Notes on Static Semantics

Lecture Notes on Static Semantics Lecture Notes on Static Semantics 15-411: Compiler Design Frank Pfenning Lecture 12 October 8, 2015 1 Introduction After lexing and parsing, a compiler will usually apply elaboration to translate the parse

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

Limitations of Current Implementation of Object Oriented Programming in LabVIEW 8.20 and a Proposal for an Alternative Implementation. v. 1.

Limitations of Current Implementation of Object Oriented Programming in LabVIEW 8.20 and a Proposal for an Alternative Implementation. v. 1. Limitations of Current Implementation of Object Oriented Programming in LabVIEW 8.20 and a Proposal for an Alternative Implementation v. 1.2 Tomi Maila Tomi.Maila@helsinki.fi University of Helsinki August

More information

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination Hassan Gomaa, Koji Hashimoto Department of Computer Science George Mason University Fairfax, VA, USA hgomaa@gmu.edu,

More information

Lecture 6: The Declarative Kernel Language Machine. September 13th, 2011

Lecture 6: The Declarative Kernel Language Machine. September 13th, 2011 Lecture 6: The Declarative Kernel Language Machine September 13th, 2011 Lecture Outline Computations contd Execution of Non-Freezable Statements on the Abstract Machine The skip Statement The Sequential

More information

CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation

CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation CPEG 852 Advanced Topics in Computing Systems The Dataflow Model of Computation Dynamic Dataflow Stéphane Zuckerman Computer Architecture & Parallel Systems Laboratory Electrical & Computer Engineering

More information

FMA901F: Machine Learning Lecture 6: Graphical Models. Cristian Sminchisescu

FMA901F: Machine Learning Lecture 6: Graphical Models. Cristian Sminchisescu FMA901F: Machine Learning Lecture 6: Graphical Models Cristian Sminchisescu Graphical Models Provide a simple way to visualize the structure of a probabilistic model and can be used to design and motivate

More information

COL351: Analysis and Design of Algorithms (CSE, IITD, Semester-I ) Name: Entry number:

COL351: Analysis and Design of Algorithms (CSE, IITD, Semester-I ) Name: Entry number: Name: Entry number: There are 6 questions for a total of 75 points. 1. Consider functions f(n) = 10n2 n + 3 n and g(n) = n3 n. Answer the following: (a) ( 1 / 2 point) State true or false: f(n) is O(g(n)).

More information

Package understandbpmn

Package understandbpmn Type Package Package understandbpmn June 8, 2018 Title Calculator of Understandability Metrics for BPMN Version 1.1.0 Author Jonas Lieben Maintainer Jonas Lieben Calculate several

More information

Engineering program development. Edited by Péter Vass

Engineering program development. Edited by Péter Vass Engineering program development Edited by Péter Vass Introduction Question: Why engineering program development may be useful for a PhD student in Earth Sciences? Counter-argument: In these days a wide

More information

Data and Process Modelling

Data and Process Modelling Data and Process Modelling 8a. BPMN - Basic Modelling Marco Montali KRDB Research Centre for Knowledge and Data Faculty of Computer Science Free University of Bozen-Bolzano A.Y. 2014/2015 Marco Montali

More information

Quiz 1: Functions and Procedures

Quiz 1: Functions and Procedures Quiz 1: Functions and Procedures Outline Basics Control Flow While Loops Expressions and Statements Functions Primitive Data Types 3 simple data types: number, string, boolean Numbers store numerical data

More information

Let the dynamic table support the operations TABLE-INSERT and TABLE-DELETE It is convenient to use the load factor ( )

Let the dynamic table support the operations TABLE-INSERT and TABLE-DELETE It is convenient to use the load factor ( ) 17.4 Dynamic tables Let us now study the problem of dynamically expanding and contracting a table We show that the amortized cost of insertion/ deletion is only (1) Though the actual cost of an operation

More information

Notes on Minimum Spanning Trees. Red Rule: Given a cycle containing no red edges, select a maximum uncolored edge on the cycle, and color it red.

Notes on Minimum Spanning Trees. Red Rule: Given a cycle containing no red edges, select a maximum uncolored edge on the cycle, and color it red. COS 521 Fall 2009 Notes on Minimum Spanning Trees 1. The Generic Greedy Algorithm The generic greedy algorithm finds a minimum spanning tree (MST) by an edge-coloring process. Initially all edges are uncolored.

More information

Performance Optimization for Informatica Data Services ( Hotfix 3)

Performance Optimization for Informatica Data Services ( Hotfix 3) Performance Optimization for Informatica Data Services (9.5.0-9.6.1 Hotfix 3) 1993-2015 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic,

More information

Lecture 5: Suffix Trees

Lecture 5: Suffix Trees Longest Common Substring Problem Lecture 5: Suffix Trees Given a text T = GGAGCTTAGAACT and a string P = ATTCGCTTAGCCTA, how do we find the longest common substring between them? Here the longest common

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Process Modelling. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics

Process Modelling. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics Process Modelling Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest University of Technology and Economics Department of Measurement and Information Systems

More information

Compiler Construction 2009/2010 SSA Static Single Assignment Form

Compiler Construction 2009/2010 SSA Static Single Assignment Form Compiler Construction 2009/2010 SSA Static Single Assignment Form Peter Thiemann March 15, 2010 Outline 1 Static Single-Assignment Form 2 Converting to SSA Form 3 Optimization Algorithms Using SSA 4 Dependencies

More information

How to integrate the BPMConverter

How to integrate the BPMConverter How to integrate the BPMConverter BP2014w1-Team July 9, 2015 This How-To describes possibilities to integrate the BPMConverter into a project. We will motivate why conversion is useful and afterwards introduce

More information

Concurrent Systems Modeling using Petri Nets Part II

Concurrent Systems Modeling using Petri Nets Part II Concurrent Systems Modeling using Petri Nets Part II Marlon Dumas (Based on lecture material by Wil van der Aalst Eindhoven University of Technology, The Netherlands http://www.workflowcourse.com) PN-1

More information

Boolean Representations and Combinatorial Equivalence

Boolean Representations and Combinatorial Equivalence Chapter 2 Boolean Representations and Combinatorial Equivalence This chapter introduces different representations of Boolean functions. It then discusses the applications of these representations for proving

More information

Chapter 9: Virtual-Memory

Chapter 9: Virtual-Memory Chapter 9: Virtual-Memory Management Chapter 9: Virtual-Memory Management Background Demand Paging Page Replacement Allocation of Frames Thrashing Other Considerations Silberschatz, Galvin and Gagne 2013

More information

CSE 123B - Spring 2005 Project 3

CSE 123B - Spring 2005 Project 3 CSE 123B - Spring 2005 Project 3 Amin Vahdat Calvin Hubble Brian Lum 1 Introduction For this project you will be implementing a distributed file-sharing protocol loosely resembling the fast-track protocol

More information

What is Business Process Management

What is Business Process Management usiness gility! Who we are Vision Software has excelled for more than fourteen years through its creativity, quality and dedication to client service. We focus on collaborative software development and

More information

Dynamic Skipping and Blocking and Dead Path Elimination for Cyclic Workflows

Dynamic Skipping and Blocking and Dead Path Elimination for Cyclic Workflows Dynamic Skipping and locking and Dead Path Elimination for Cyclic Workflows Dirk Fahland 1 and Hagen Völzer 2 1 Eindhoven University of Technology, The Netherlands 2 IM Research Zurich, Switzerland bstract.

More information

Process Modelling. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics

Process Modelling. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics Process Modelling Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest University of Technology and Economics Department of Measurement and Information Systems

More information

Well-behaved Dataflow Graphs

Well-behaved Dataflow Graphs Well-behaved Dataflow Graphs Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of echnology L21-1 Outline Kahnian networks and dataflow Streams with holes & agged interpretation

More information

LECTURE 8: SETS. Software Engineering Mike Wooldridge

LECTURE 8: SETS. Software Engineering Mike Wooldridge LECTURE 8: SETS Mike Wooldridge 1 What is a Set? The concept of a set is used throughout mathematics; its formal definition matches closely our intuitive understanding of the word. Definition: A set is

More information

IN traditional programming languages it was the responsability

IN traditional programming languages it was the responsability 1 Incremental Garbage Collection: The Train Algorithm Thomas Würthinger Abstract Modern programming languages use an automated way of getting rid of unused objects called garbage collection. This paper

More information

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations

More information

Name: NETID: issuing a write to an I/O device, e.g. the disk, keyboard or the network card

Name: NETID: issuing a write to an I/O device, e.g. the disk, keyboard or the network card CS 4410 Operating Systems Prelim I, Fall 2011 Prof. Sirer Name: NETID: This is a closed book examination. It is 8 pages long. You have 120 minutes. No electronic devices of any kind are allowed. If you

More information

CSCI-1200 Data Structures Spring 2017 Lecture 27 Garbage Collection & Smart Pointers

CSCI-1200 Data Structures Spring 2017 Lecture 27 Garbage Collection & Smart Pointers CSCI-1200 Data Structures Spring 2017 Lecture 27 Garbage Collection & Smart Pointers Announcements Please fill out your course evaluations! Those of you interested in becoming an undergraduate mentor for

More information

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland An Introduction to Heap Analysis Pietro Ferrara Chair of Programming Methodology ETH Zurich, Switzerland Analisi e Verifica di Programmi Universita Ca Foscari, Venice, Italy Outline 1. Recall of numerical

More information