=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== https://ceur-ws.org/Vol-993/paper17.pdf
       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