=Paper=
{{Paper
|id=None
|storemode=property
|title=On the Equivalence of Specific Control Flow and Data Flow Patterns with Use Cases
|pdfUrl=https://ceur-ws.org/Vol-993/paper17.pdf
|volume=Vol-993
|dblpUrl=https://dblp.org/rec/conf/iwsg/BalaskoK13
}}
==On the Equivalence of Specific Control Flow and Data Flow Patterns with Use Cases==
On the equivalence of specific control flow and data flow patterns with use cases Akos Balasko Peter Kacsuk Institute for Computer Science and Control Institute for Computer Science and Control Hungarian Academy of Sciences Hungarian Academy of Sciences Budapest, Kende str. 13-17 Budapest, Kende str. 13-17 Email: balasko@sztaki.hu Email: kacsuk@sztaki.hu Abstract—Although many of workflow languages use work- composition of data patterns, hence in this way the self- flow patterns in various aspects such as control or data, the implementations can be decreased that assists the issue of implementation of these patterns are quite different, which makes language interoperability. the workflow language interoperability really difficult. This paper introduces compositions of specific data and control patterns Then again, all practical workflow can be constructed by a and then proves their equivalence, which benefits that control very limited number of workflow patterns. Workflow manage- structures can be replaced by data patterns and vice versa, ment systems usually do not support all possible patterns but independently from the implementation itself. To confirm the ne- a much smaller subset only. Our work points out that some of cessity of our results we introduce use cases based on community these patterns can be constructed from or converted to each workflows that apply data patterns to trigger control structures. other and hence, opens a way to enrich the functionality of As WS-PGRADE/gUSE workflow management system became a commonly used general framework for workflow development by workflow systems that support a limited set of patterns. various scientific communities, the use cases are created in there, To demonstrate the importance of our results, we introduce to facilitate using our solutions in other workflows. use cases based on community workflows that apply data patterns to trigger control structures hence the conversibility I. I NTRODUCTION of control- and dataflow patterns is a practically relevant issue. For instance we can use these recipes we can make At present workflow management systems are key tools for a data-driven workflow management system to . As WS- scientific communities to be able to do research by defining PGRADE/gUSE workflow management system[1][2] became problems and algorithms on a higher level. Using workflows a commonly used general framework for workflow develop- scientists can connect applications to each other to make ment by various scientific communities, the use cases are cre- them interact automatically. Therefore workflow languages ated using this framework to facilitate adapting our solutions together their syntax and semantics are quite relevant to have in other workflows. a clear view, what can be defined in a particular language and what possibilities are not supported. Unfortunately so The paper is organized as it follows. Section II shows many workflow languages are at service so many difference a brief description about how the patterns has been utilized are within their expression power. For instance a structured for design a workflow language. Section III and section IV loop is supported by BPEL[10] or by Taverna[6], but not investigate two particular control patterns and offer alternative by EPC[8]. Van der Aalst et. al. investigated many exist- compositions of data patterns for replacing them, prove their ing workflow languages and workflow management systems equivalence and give detailed use cases, where the data patterns identifying many general patterns of workflow structures in are used instead of control patterns. We summarize the results various perspectives, such as control flows [4] or data-flow and briefly describe our further work in Conclusion and Future concept [5]. Their results are quite important, in many cases Work. Acknowledgment closes the paper. they specify a pattern in a generic way, but in most cases the investigated workflow languages’ implementation just support II. R ELATED WORK a construct to achieve the behaviour of a pattern, not the pattern itself directly. Of course this is not really confusing till a Workflow Patterns Initiative [3] keeps track of scientific community uses only one workflow language, the scientist can papers citing their work (till 2009 but there are much more) learn the ”dialect” of the patterns implemented. But when they showing that workflow patterns became a widely accepted way would like to use more languages, for instance to be able to for designing and for re-factoring them. Taverna used in [7] create structures that are not supported by the old one, these to investigate solutions for parallelism and pipeline processing, implementation differences make the language interoperability others such as YAWL(Yet Another Workflow Language) or [9] really complicated, if not impossible. are specified directly using workflow patterns. Patterns play roles in [11] to set up a taxonomy for workflow structures, This paper shows that some controls patterns are equiv- while in [14] they were used as reference models to compare alent with a composition of some data patterns. It benefits existing workflow languages. Nevertheless in each case these that although a workflow language implementation does not patterns were used as they are, the relationship between support a control pattern directly, it can support the equivalent particular workflow patterns was not investigated. Van der Aalst et al. in [12] give a unified framework for predict which branches will be interpreted and which will be combined data flow and control flow validation but they are excluded, since the selection is based on the environment, on focusing on correctness and failure aspects, not on equivalence the input data itself and on the user. This aspect must be taken of compositions of control and data patterns account when, after interpreting this pattern, the next node is being evaluated. A pattern called Simple Merge is capable to Based on the fact that data flows and control flows are not deal with disabled branches of previous nodes (by taking into independent a model was introduced in [13] in where one can account which branch is disabled and not waiting for results define a workflow from both aspects. However, it does not take from there), since it enables the next process if and only if into count the patterns. one of the previous nodes is processed correctly. Therefore it To summarize, field of data flows and control flows is a is ideal to represent the interpretation of node C in If-Then- highly relevant and intensively investigated part of distributed Else composition. process management. The relationship of data and control flow from validation point of view has been investigated but the C. Task Precondition - Data Value equivalence of composition of patterns and to achieve language interoperability is still an interesting question. After a throughgoing investigation of the available work- flow languages focusing data-flow concept, N. Russell et. III. C OMPOSING D EFERRED C HOICE PATTERN al[5] identify several data patterns. Among others, ”Task Precondition - Data Value” (hereafter we call it simply Task In this section we introduce the if-then-else structure as Precondition) defines restrictions for task execution depending it is known in programming languages. Then we introduce on the data value. It means that a task can be enabled if and Deferred Choice control pattern composing with Simple Merge only if the precondition is satisfied. to express if-then-else patterns for control-driven workflow systems. After we show Task Preconditioned Data Value data pattern and prove that this pattern can express Deferred Choice, D. Analysis but for data-driven languages. Finally, we construct a mixed pattern from Task Precondition and Simple Merge to express Comparing Deferred Choice and Task Precondition, as it if-then-else structure. is shown in Fig. 2, the difference between them is obvious. A. If-Then-Else structure In programming languages beside of other basic structures such as ’sequence’ and ’loop’, if-then-else is the most common control structure. As is shown in Fig. 1, A can be executed on the spot, then condition Cond is evaluated, and according to its value (true or false) one particular statement (Bt if the evaluation returned true, Bf otherwise ) is executed. Next, after Bt or Bf is finished, statement C is executed independently from the previous statement. Fig. 1. if-then-else structure Fig. 2. Pattern compositions fitting to if-then-else structure During the investigation of workflow patterns, the state- While Deferred Choice has a particular point in where ments are represented by nodes. the interpreter evaluates the condition (denoted by Cond) and enables a node depending to result of the evaluation, B. Deferred Choice Task Precondition pattern evaluates independent conditions right before both subsequent nodes (Bt and Bf ). Hence Task Deferred Choice pattern implements a specific split opera- Precondition pattern does not guarantee that the true-sets of the tion on one execution line to many branches of nodes. Before conditions establish disjunctive sets. This tiny distinction can executing any branches (considering If-Then-Else structure be resolved easily. Let us assume that Cond contains condition it means the statement A has already been executed ), one named C. Then we can construct the same structure for Task particular branch is selected according to an external decision, Precondition as we have in Deferred Choice pattern with the others will be withdrawn (condition Cond is evaluated, one following preconditions: Condt := C and Condf := ¬C. of Bt and Bf can be executed). Therefore using this pattern This solution effects the same structure and conditions with the workflow instance will contain several disabled or ”dead” disjunctive result-set, therefore a Task Precondition pattern branches in interpretation time, and in design time we cannot which is equivalent to a Deferred Choice. E. Use Case - AgroHarvest disabled, is to set the same internal file name for each input port. As the use case detailed below is quite complex, at first we show the pure workflow structure (see Fig. 3) that implements Data Patterns developed in WS-PGRADE/gUSE system. Fig. 5. Configuring Simple Merge pattern Fig. 3. Task Precondition in WS-PGRADE/gUSE Then we need to set collector property on both ports First, node A can be submitted. Depending to its process, (”Waiting” row in the Figure is set to ”All”) to allow to enable it can generate one or more outputs associated its output box node B in the case as well, when it has data dependencies with denoted by 0 (output ports are ). Then, at embranchment disabled nodes only. although both Btrue and Bf alse nodes are enabled, data specific preconditions are set for each input port (input ports The solution is applicable for n generated outputs. In this are represented by lighter grey short boxes). As it is shown in case the quantity of Btrue node’s true-set is x, and n − x for Fig. 4, data preconditions , called ”Port dependent condition” Bf alse. But, because of we set the same internal file name property in WS-PGRADE/gUSE can be set by setting an for both input ports in node B, altogether n input files will be operation (it can be = , 6= and contains) and adding a renamed to this internal name independently from which job particular value or a file. Evaluating a condition means a (which branch) resulted it. To resolve overwriting issues, the comparison of the value (or the file content) and the input file file names will be extended by a unique number respectively. arrived to this port according to the operation. To guarantee disjunction of conditions, we must set the same condition 1) about Agro-Know Harvest application: To confirm that value, but with notequals operation to Bf alse node’s port. it is necessary to support Deferred Choice structures, as a real-life application we selected Ariadne application from According to the evaluation of the conditions, the nodes Agro-Know Technologies, a project partner involved in ag- are set to disabled, or are left in enabled state. Enabled nodes Infra project (see Acknowledgment). Agro-Know is an inno- are submitted then, while disabled ones are labelled with ”No vative, research-oriented enterprise focusing on knowledge- Input” message. intensive technology for agriculture and rural development. Mainly research of knowledge-intensive technology aims to make knowledge, the know-how enable, searchable, reusable independently from location, format or scope. In this sense beside the importance of the information stored as data at least much important the information about the data itself, namely the metadata. In large scale metadata informations are stored in datastores, and, of course so many datastores are available around the world in the field of agriculture. Agro- Know defines workflows to harvest, manage metadata and make it interoperable among different formats. Ariadne process operates on metadata datastores. Once a Fig. 4. Configuring preconditions datastore is validated (there is a step that checks its validity) the stored metadata can be harvested, otherwise the workflow Then we must apply Simple Merge pattern to implement stops and user must be notified about the failure. Harvesting a XOR-join, to enable node B either Btrue or Bf alse was means downloading all metadata stored in the datastore. Then submitted (and the other is disabled). Fig. 5 shows how to all of the metadata is validated one by one against a particular apply this pattern in WS-PGRADE/gUSE using the configu- format (e.q. OAI-LOM), if a metadata is invalid, it must be ration panel of node B. The key point, as we do not know in converted as a next step. All the valid and the converted design-time which branch will be executed and which will be metadata are stored in remote storages in a quickly searchable folder hierarchy. Clearly this workflow contains some points, e.g. validating a metadata, that makes it be ideal to illustrate Deferred Choice pattern. The workflow shown in Fig.6 implements Ariadne process. The following list details the functions of its nodes. • GenT: Splits a list of datastore URIs, and passes with the set of format respectively, in which the metadata of a particular datastore must be stored. • Target: it validates each datastore target against the given schema. • Registrate: registrates the datastore in the remote stor- age, if the target is valid. • GetR: gets the results of the registration. • Harvest: gets all metadata from a particular datastore target, stores them as local files. It runs in as many instances concurrently as many datastores splitted by GenT. • OAIVal: Validates a metadata against OAI LOM for- mat. • ItsValid: Dummy node for valid metadata. • OAITrans: Converts a metadata to the requested for- mat if and only if the validation fails. • Upload: uploads metadata to the remote storage. • Regis: registers each dataset associated to their target registered before. In aspect of Deferred Choice patterns, the interesting parts of the workflow are enclosed by black circles. Within normal lined circle the process is the following. Both nodes ItsV alid and OAIT rans have disjunctive preconditions, hence accord- Fig. 6. Harvester Workflow ing to the validity of a given metadata (this information comes from node OAIV al as output) either ItsV alid or OAIT rans will be submitted, but never both. Nevertheless nodes within pattern is shown in Fig. 7. after processing node A, P S1 , P S2 , the dashed circle do not fit directly to the pattern since the P S3 are going to be created, none the less only one, P S was datastore must be registered and harvested in the same case, defined at design-time. when the datastore is valid. In other words the true-sets of the preconditions adjusted to node Regis and Harvest are not Although it has not been described explicitly in [4], we disjunctive. assume that all nodes contains by patterns can be replaced by an other, or the same pattern. In this scenario we assume to ha IV. C OMPOSING M ULTIPLE I NSTANCES WITH MULTIPLE 2 workflows, both contains 3 nodes, A P S and B, connected INDEXES respectively, and both P S nodes implements MultiInstance A. Multiple instances with a priori Run-Time Knowledge pattern. Let us denote the first workflow by index 0 and the second by index 1, all the nodes are labeled with these This pattern(MultiInstance in short) defines that one node indexes. Then we embed workflow 2 to the first’s middle node created at design-time can generate several node instances at (P S0 ). Fig. 8 illustrates this structure during enactment. After run-time depending on various conditions such as resource processing A0 , the subsequent node is going to be replaced availability or data. Since during the interpretation of the by n copy of it. Then, as this node not a real node, just a workflow these conditions can change and can be evaluated container to an other workflow, the other workflow will be time-by-time, the number of instances created is known only enacted in as many copy as many container nodes we have. right before interpreting the node definitely. All instances are The enactment is done separately and parallel and shown independent and they are submitted and executed concurrently. as A1 , P S11 ...B1 nodes in the Fig. 8. As the embedded Then the branches may be synchronized at completion if it workflow implements MultiInstance pattern as well, processing is necessary. Let us assume a workflow containing 3 nodes, its middle node means processing n copies of it in parallel. A, P S and B connected respectively. Run-time view of this Finally the last node (B0 )is going to be processed. implemented to allow embedding in concept of black-boxes, namely the embedded workflow has one particular entry and exit points, during its interpretation all outputs generated are inaccessible from the external nodes. The concept of this pattern is shown in Fig. 10. Fig. 7. Simple Multiple Instances pattern Fig. 10. Data Interaction - Block Task to Sub-Workflow Decomposition - Explicit Data Passing via Data Channels pattern To summarize we can say that the simple MultiInstance pattern and MultiDataInstance patterns are equivalent (disre- Fig. 8. Recursive Multiple Instances pattern garding that MultiInstance as a Control Pattern can be affected by several circumstances, while process of MultiDataInstance as a Data Pattern is restricted to the availability of the data), B. Multiple Instance Task Data Pattern but as we shown in Fig. 8, MultiInstance pattern can be applied recursively, while MultiDataInstance not. Nevertheless While MultiInstance pattern introduced in the previous in composition with Sub-Workflow Decomposition we can paragraph implements the ability to create more instances from achieve the same functionality. one node, this pattern focuses on the data aspects of this issue. According to how the data can be passed to the multiple instances, this pattern contains three sub-patterns: D. Analysis 1) Instance Specific Data Passed by Value After introducing the control and data pattern components, 2) Instance Specific Data Passed by Reference we prove their equivalence using formal description of graphs. 3) Shared Data Passed by Reference pattern Let us define concept of Double Tree as follows: While the first one passes the data as is to the multiple Definition 1: DT := (D, p) , where A denotes the set of instances, the others just passes the reference of the data. nodes, and p denotes set of pairs or nodes representing arcs. Other difference is while first and second works with instance specific data allowing to pass different data for each instance, D := {s, t, {A0 ...An−1 }} and the third do not allow it, this patterns works with shared data ∀a ∈ A0 :!∃(s, a) ∈ p only. In all case the data passing occurs when the multiple instance task is enabled. Since our work does not take into ∀a ∈ Ai ∧ a0 ∈ Ai+1 :!∃(a, a0 ) ∈ p(i ∈ [0, n − 2]) account these aspects, any of them can be chosen. In the ∀a ∈ An−1 :!∃(a, t) ∈ p followings by mentioning MultiDataInstance pattern will mean the Multiple Instance Task - Instance Specific Data Passed by and ∀i ∈ [1..n] : |Ai | = |An−i | Value pattern. This pattern is illustrated by the following figure. Technically it means that Double Trees have one entry and one exit points, and between them levels are defined (Ai ) according to the arcs among the nodes. The last restriction says that the number of the nodes and their degrees are symmetric to the medial level of nodes. It can be seen clearly that none but those structures satisfy this definition which are applied by Multiple Instance pattern. Then we have a constructive definition in a point of view, which is familiar with the Data Flow constructions. Fig. 9. Data Interaction to Multiple Instance Task - Instance Specific Data Let us define an initial graph with only three nodes con- Passed by Value pattern nected respectively. Then repeat the following function against this graph in any number of times. Every graph constructed in each iteration will be applied by definition. C. Sub-Workflow Decomposition Definition 2: size(G) := |An/2 | Sub-Workflow Decomposition pattern deals with data as- pects of embedding a workflow into a node. It allows that Definition 3: BLOW : (DT × DTN ) → DT , where both any data, that is accessible by the node may be passed to the G and GN denote double trees with n=1, but while size of G workflow embedded and vice versa, all output generated during is not restricted, size of GN is denoted by N in its index. It the interpretation of the embedded workflow can be passed follows that each graphs has only one For simplicity we use back to the upper level of execution. Usually this pattern is their detailed definition in the followings (D,p). Initially A = A1 , p = p1 Tomcat instances. There are web services that prepare the raw n/2 route-data, others analyse the route (different algorithms can be BLOW ((D1 , p1 ), (D2 , p2 )) := {(D, p)|∀ai ∈ A1 : implemented and used) while further ones finalize and display the route. Correlation Systems created a workflow which coor- S D = D D2 \ ai ∧ S S S dinates the route calculation using web services as black-box p = p p2 (s2 , s1 ) (p1 , p2 ) \ (s1 , ai ) \ (ai , p1 )} applications. In the workflow two processing algorithms should Theorem 1: function blow is idempotent in Double Trees. be executed in parallel to analyse the route using different models. Outputs of these algorithms are compared and the Proof: As it is defined, function BLOW replaces nodes in best results are selected. Analysing a complete voyage means the middle level by a complete complete graph(DTN ) given splitting it to different routes, executing these two algorithms as second parameter. Since DTN has only one level beside its to calculate each route and finally collecting and comparing entry and exit points, the result graph will contain odd number routes to merge and create the voyage history. Basically each of the levels. Therefore its middle level can be identified route analysis can be represented as a parameter sweep step. obviously, which means that the function can be applied again. Similarly the analysis of a set of vessels follows the same As DTN trivially symmetric on its middle level. None the less technique but in a larger scale. First, a set of vessels must be |An/2 | nodes are being removed for DT , but the same number identified, next, the voyage analysis must be processed on each of entry and exit points are being included and connected vessel and finally results of all vessels should be collected and accordingly and then, as a new middle level, A0 of DTN , evaluated. Thus, the WWAIS application is a parameter sweep which has N nodes, will be included and connected as well application that contains another parameter sweep application, |An/2 | times, so the new middle level will contain N*|An/2 | which consists of some external web service callings. The use nodes. case is defined in WS-PGRADE/gUSE workflow system. Since As Theorem 1 results that a Double Graph can be derived it must be guaranteed that the routes are assigned to groups from two others by function blow, and the function can be according to their vessel ID, parameter sweep executions must used iteratively. As its process precisely follows the way be implemented in two levels by defining Multiple Instance described by Data Flow patterns, and generates the same set of Task Data Pattern( MITDP in short) and the internal (called Double Graphs, it can be taken cognizance of the equivalence Embedded) and the external (called Master) workflows and between the composition of specified Data Flow patterns and connecting them by Sub-Workflow Decomposition pattern the Multiple Instance Control Flow pattern. (SWD in short). The gUSE workflow on the Fig 11 shows the workflow structure that covers the two parameter sweep E. Use case - Sea Vessel Tracking Application parts: Master and Embedded workflows. The Master workflow coordinates the voyage calculation of all vessels as a high- Correlation Systems provides solutions to process and anal- level MITDP. This workflow contains a generator job (VesGen yse large sets of geospatial data. They focus on the integration job) and collector job (VesCol job) to manage the Embedded of open source and geospatial data analysis and implemen- workflow instances. The generator jobs input is the set of tation of real time resource allocation method. Correlation vessel IDs. The Embedded workflow (represented by the Emb Systems targeted the marine security community developed job in the Master workflow) calculates and analyses the voyage WWAIS Vessel Tracker application. WWAIS first, processes of each vessel as a low-level MITDP. This job is executed in partial event data received from sea vessels Accounting In- parallel by as many instances as many vessel IDs are in the ID formation System (AIS) transmitters. Next, it extrapolates set. In the figure the dashed line represents the mapping of the this data in order to define vessels activities. Finally, this inputs among Master and Embedded workflow, what clearly data is compared to trends of activities along world sea-trade used for define SWD among them. In the Embedded workflow routes to be able to define the vessel route and identify any the first job (VoyGen job) splits the vessels voyage into routes unexpected activity. The extrapolation process is an essential and saves the vessels ID for each route in the configuration file. part of analysing vessels activities and routes at sea since Next, the interpreter creates as many instances of the Corr job AIS receivers are placed in major cities only. As a result, as many routes the VoyGen job generated. The Corr instances sufficient data can be collected, if the vessel runs next to are run in parallel. Finally VoyColl collects and frames all the them, and little or no data when vessels far out at sea. The corrected sub-routes together. extrapolation process is very CPU and time intensive because of three reasons. At first, a large amount of vessel data should be processed. Currently data is available for more than 200.000 vessels. Secondly, the size of the geographical data is huge. V. C ONCLUSION AND F UTURE W ORK In order to accurately map a voyage its route must be plotted In this paper after introducing different data and control based on coastline data. A detailed world coastline map can patterns we created compositions from them and we proved contain many complex polygons consisting of several million their equivalence. Then we showed their interpretation on use coordinate points. Thirdly, a Dijkstras variation compares each case community workflows developed in WS-PGRADE/gUSE ship event to world shipping route data. The matrix of world system. For further work we are planning to investigate more shipping route data contains more than 2 million coordinate data and control pattern compositions and their relationships, points. Considering that each vessel and its voyages can be especially for complex control patterns. Decomposing these processed separately, this application is an ideal candidate for patterns, and finding analogous data patterns for each compo- parallel processing. nent can lead us to new control-inspired complex data patterns. The WWAIS Vessel Tracker application is implemented These complex patterns could extend the opportunities of pure as a number of RESTful web services running on several data flow systems. [14] A. Shiroor Scientific workflow management systems and workflow patterns International Journal of Business Process Integration and Man- agement, 5(1), 63-78.2010 Fig. 11. WWAIS Workflow ACKNOWLEDGMENT The authors would like to thank to Correlation Systems, which delivered WWAIS application for us to have a real-life use case for Deferred Choice pattern. The research leading to these results has received funding from the European Union Seventh Framework Programme (FP7/2007-2013) under grant agreement no 283481 (SCI-BUS) and under grant agreement no 283770(agINFRA). R EFERENCES [1] P. Kacsuk et. al.: WS-PGRADE/gUSE Generic DCI Gateway Framework for a Large Variety of User Communities Journal of Grid Computing, 9, 4, 479-499, 2012 [2] P. Kacsuk et. al.:P-GRADE portal family for Grid infrastructures Concur- rency and Computation: Practice and Experience journal, 23, 3, 235-245, 2011 [3] www.workflowpatterns.com [accessed 27. March 2013 ] [4] N. Russell et. al.:Workflow Control-Flow Patterns: A Revised View. BPM Center Report BPM-06-22 , BPMcenter.org, 2006. [5] N. Russell et. al.: Workflow Data Patterns QUT Technical report, FIT- TR-2004-01, Queensland University of Technology, Brisbane, 2004. [6] Oinn, T. et. al.: Taverna: a tool for the composition and enactment of bioinformatics workflows, Bioinformatics, 20(17), 3045-3054.,2004. [7] P. Missier, et.al. Taverna, reloaded Scientific and Statistical Database Management, 471-481, 2010. [8] J. Mendling, et. al. EPC markup language (EPML): an XML-based interchange format for event-driven process chains (EPC). Information Systems and e-Business Management, 4(3), 245-263. 2006 [9] T. McPhillips et al. Scientific workflow design for mere mortals Future Generation Computer Systems - The International Journal of Grid Computing - Theory Methods and Applications, 25(5): 541-551. 2009 [10] R. Lucchi et. al. A pi-calculus based semantics for WS-BPEL The Journal of logic and algebraic programming, 70(1), 96-118. 2007 [11] Yu, J., Buyya, R. A taxonomy of workflow management systems for grid computing Journal of Grid Computing, 3, 3-4, 171-200. 2005 [12] N. Trcka et. al.: Analyzing control-flow and data-flow in workflow processes in a unified way Computer Science Report, (08-31). 2008 [13] S. Fan Dual workflow nets: Mixed control/data-flow representation for workflow modeling and verification, Advances in Web and Network Technologies, and Information Management,433-444 2007