<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards Self-Optimization of Message Transformation Processes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matthias B¨ohm</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dirk Habich</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uwe Wloka</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ju¨rgen Bittner</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wolfgang Lehner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dresden University of Technology, Database Technology Group</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>SQL GmbH Dresden</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Applied Sciences Dresden, Database Group</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2007</year>
      </pub-date>
      <fpage>116</fpage>
      <lpage>125</lpage>
      <abstract>
        <p>The Message Transformation Model (MTM), for modeling complex message transformation processes in data centric application scenarios, provides strong capabilities for describing the data and control flow, transactional behavior and even the interaction with external systems. Thus, this general model could be used for different integration platforms like EAI-Servers, Message-Brokers and Subscription-Systems, as well as for ETL-Tools. In this paper, we describe self-optimization strategies for MTM processes to determine an optimal executable process. Our proposed strategies can be distinguished into rule-based and workload-based techniques. Aside from theoretical consideration, we describe implementation aspects within the integration platform TransConnect R . Furthermore, we present some first evaluation results.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The number of heterogeneous information systems within business processes is
continuously increasing. This offers the problem of many different data
representations and data schemes. A widespread integration approach of such information
system is the horizontal integration by message based communication. The
advantage of this strategy is to ensure an adequate loosely coupling of participating
systems and applications.</p>
      <p>
        As described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], the conceptual modeling of such complex message
transformation processes (also called integration processes), could only be realized
adequately as a set of control flow, data flow, transactional, and even
interaction oriented process steps. Because of the absence of a generally accepted
model, we defined the Message Transformation Model (MTM) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This MTM
includes a conceptual message model with the intent of a conceptual data
independence and a conceptual process model. The proposed approach realizes the
independence of concrete process description languages.
      </p>
      <p>In this paper, we focus on self-optimization of MTM processes caused by
several facts: (1) suboptimal modeled processes by the process designer resulting
from missing knowledge about internal processing concepts, (2) missing
information about the dynamic workload characteristics of incoming messages
during modeling time and (3) total costs of ownership to maintain an integration
system. Therefore, self-optimization of message transformation processes is an
interesting and complex field for itself. The contribution of this paper is a first
step towards self-optimization of processes. Fundamentally, our proposed
strategies can be distinguished into rule-based and workload-based techniques. These
strategies are implemented within the integration platform TransConnect R .</p>
      <p>
        For the sake of a
better description, the
specification of the techniques
are illustrated on a
complex example process.
Figure 1 shows this
suboptimal modeled integration
process. A SAP IDOC [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
“ORDERS05“ document
is received by a SAP
Inbound Adapter and will
be translated into an
internal XML representation.
      </p>
      <p>This internal message is
passed to a SWITCH node.</p>
      <p>Within this part, the
message is translated to a
specific schema of a CRM
database and in two cases
enriched with additional data.</p>
      <p>
        Afterwards, the message
is transformed to the
TPCH [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] schema. The next
steps are schema
validation and the construction
of a savepoint. After this
steps, the current message Fig. 1. Unoptimized Example Process
is passed to a subprocess synchronously. This subprocess distributes the message
to multiple systems by starting three concurrent flows. The presented process is
suboptimal with regard to the evaluation of the SWITCH conditions, redundant
query preparations, redundant control flows, worse modeled data translations,
redundant validations and also the subprocess invocation. However, such
situations are found in real-world modeled processes.
      </p>
      <p>Therefore, this paper makes a clear contribution towards self-optimization
of message-based application integration processes. Before we describe our
optimization strategies in more detail in Section 4, related work and the integration
platform TransConnect R are presented in Section 2 and 3. The benefit of our
proposed strategies are demonstrated based on performance measurements
comparing not optimized and optimized process executions in Section 5. The paper
closes with an conclusion and further research aspects.</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Basically, functional oriented process description languages, like WSBPEL [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
and their deficits concerning the modeling of the data flow, but also the absence
of a fully accepted conceptual model for data intensive integration processes, are
the main motivation for the previous definition of the Message Transformation
Model (MTM) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This model have strong capabilities describing the control
flow as well as the data flow and thus contributes to the systematic modeling for
complex message transformation. However, their are other work, like the BPEL
extension II4BPEL [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the Enterprise Integration Patterns [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and the IBM ESB
Mediation Patterns [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which are also contribute to this topic, but on an other
level of abstraction. As previously mentioned, there are also plenty publications
concerning data streaming operator optimization [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], workflow optimization
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and optimization of webservice composition/invocation in datacentric
processes [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Furthermore, the approach of self*-techniques are currently discussed
widely. Representative for these works, the “IBM MAPE concept“ [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and the
“soft index creation“ [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] should be mentioned.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Integration Platform TransConnect R</title>
      <p>The mentioned real-life integration platform TransConnect R comprises several
subprojects, including the Server. It offers a set of Inbound Adapter, which
listen passively for incoming messages, translates them into the internal
format and forwards them to the Dispatcher. In case of asynchronous processing,
the message stream pass the MessagePool. The Dispatcher routes the incoming
messages, asynchronous to MessageQueues, respectively synchronous, directly to
the WorkflowProcessEngine (WFPE). Beside the event model of incoming
messages, also time-based events, initiated by the Scheduler, could be applied. The</p>
      <p>WFPE allows the translation of process descriptions into an executable form and
manages its processing. The translation is realized by the ProcessParser, which
is stratified into the four logical layers: External Mapping (1), Internal Analysis
and Optimization (2), ProcessPlan Generation (3) and ProcessPlan
Instantiation (4). The processing includes the invocation of services in form of Outbound
Adapters, local services and other process types. The Outbound Adapters
allow for active reading interactions (pull) as well as writing interactions (push)
with external systems. Furthermore, the global TP-Monitor should mentioned
as a component for persistence, caching, configuration, resource management,
transactional behavior and even system auditing.</p>
      <p>The workload-based process optimization, realized within the mentioned
ProcessParser, is generally based on the following universal cost model. In this
context, costs are used as an expression for the CPU-usage, the
Main-Memoryusage and especially the normalized processing time. Thereby, we focus a cost
segmentation into three cost categories.</p>
      <p>Definition 1. Let C(p) be the costs of a process p, we define, that this costs
are composed with C (p) = a ∗ b ∗ (Cc (p) + Cp (p) + Cm (p)) of the
communication costs Cc (p), the processing cost Cp (p) and the internal management costs
Cm (p), depending on the message size with a = sizeof (m) and the hierarchical
deepness of the message with b = dim (m).</p>
      <p>Definition 2. Let Cc (p) be the communication costs, we define, that these are
composed with Cc (p) = ΣC (inok) + ΣC (sl) of the costs for all
interactionoriented operators ino and of the execution costs for the external systems s.
Definition 3. Let Cp (p) be the processing costs, we define, that these are
composed with Cp (p) = ΣCcnoia ()+ΣCdnoib ()+ΣCtnoic () of the costs for
controlfloworiented operators cno, dataflow-oriented operators dno and transaction-oriented
operators tno.</p>
      <p>Definition 4. Let Cm (p) be the internal management cost, we define, that
these are composed with Cm (p) = Cq (m, count (M )) + Cpi (p, count (M )) +
Ctx (undo, redo, tid) of the costs for transactional message queuing Cq, for
process instances management Cpi and for the transactional recoverability Ctx.</p>
      <p>Statistics are required for an adequate workload-based cost estimation. These
are collected using the following monitoring concepts. First, for implicit
performance propagation, the approach of monitor events is used. Thus, an abstract
node comprises the publishing of these monitor events to the SystemMonitor.
Second, a transparent monitor selection between the MONITOR LEVELS
“EmptyMonitor“, “TransientMonitor“ and “PersistentMonitor“ is supported. Third,
in case of the mentioned “PersistentMonitor“, prepared analysis queries are
available to efficiently join the monitor statistics with the metadata repository.
Fourth, the Self-Optimization trigger mechanism, similar to control loops, should
be mentioned. It is realized in accordance to the IBM MAPE-concept (Monitor,
Analysis, Plan, Execute). After the ANALYSIS INTERVALL is reached an
asynchronous background analysis and recompilation is started. Thereby, the runtime
environment is only locked during the exchange of processplans.</p>
    </sec>
    <sec id="sec-4">
      <title>Process Optimization Techniques</title>
      <p>Having introduced the integration platform TransConnect R and its execution
concept in short, we now want to illustrate several optimization techniques and
explain selected ones in detail. Thereby, these techniques could be distinguished
into rule-based and workload-based approaches.
4.1</p>
      <sec id="sec-4-1">
        <title>Rule-Based Process Optimization</title>
        <p>The rule-based optimization of MTM-processes was designed in analogy to the
static analysis of procedural language compilers. Thus, some techniques could
be adopted and others are quite specific to transformation processes.</p>
      </sec>
      <sec id="sec-4-2">
        <title>Controlflow Optimizations: The identification of Redundant Control Flows,</title>
        <p>which occurs mainly in concurrent subgraphs, is realized with a simple pattern
matching. So all concurrent subgraphs following a FORK operator, are compared,
whether they have particular the same parameterization. As shown in Figure 3,
the TRANSLATION operators of the first two subgraphs are redundant, cause of the
same input message and the same XSLT stylesheet, and thus could be optimized.
If not all forklanes could be optimized symmetric, a further FORK operator has to
be inserted, in order to ensure the semantic correctness after process rewriting.
Finally, some parameters of the following operators, like the input message of
the INVOKE operators, have to be updated.</p>
        <p>The identification of Unreachable Subgraphs is much more complex. Basically,
there are two groups of such unreachable subgraphs. The first group is identified
by searching for operators following terminating operators, like the SIGNAL or
REPLY operator. In contrast to that, the second group comprises unreachable
SWITCH-paths and operators following an endless iteration. In order to determine
anomalies of the second group the given XPath-conditions have to be evaluated.
For example, in order to identify an unreachable SWITCH-path, conditions have
to be found, which are impossible by itself or already be included in a previous
condition. Finally, an algorithm is executed, deleting all identified subgraphs.</p>
        <p>Although, the Local Subprocess Invocation is necessary, it would be more
efficient to realize an inline compilation. The performance overhead is caused
by additional internal management costs, invoking the subprocess. Also, there
are additional processing cost, caused by the used RECEIVE and REPLY operators.</p>
        <p>Fig. 3. Optimizing Redundant Concurrent Control Flows</p>
        <p>During the recursive process of inline compilation all operators of the subprocess,
except for leading RECEIVE and ending REPLY operators, are inserted in the main
process.</p>
        <p>Dataflow Optimizations Also the dataflow optimization uses a pattern
matching concept. The following enumeration shows the main dataflow anomalies,
which should be identified.</p>
        <p>– Double Variable Assignments: If a message gets an assignment to the same
part multiple times, the first assignment could be removed.
– Unnecessary Variable Assignment: All assignments, which are never used in
the following processing could also be removed.
– Unnecessary Variable Declaration: If a variable is never used, the whole
declaration for this variable could be removed.
– Two sibling TRANSLATION operators: Two sibling TRANSLATION operators
(type XSLT) could be aggregated to one operator, processing a
Two-PhaseTransformation.
– Unnecessary SWITCH-paths: If a SWITCH operator, comprises disjoint
SWITCHpaths, each path containing less than one operator could be removed.
– Two sibling Validations: VALIDATE operators following TRANSLATION or other
VALIDATE operators should be removed.</p>
        <p>The whole rule-based optimization-process has to be executed, until no more
process type changes could be determined, cause one optimization rule could
produce further anomalies. Although, the rule-based optimization lead to a high
performance improvement, there are open issues. For example the determination
of unnecessary TRANSLATION operators, as well as the fine-grained optimization
of transformation stylesheets within the process context is a big challenge.
4.2</p>
      </sec>
      <sec id="sec-4-3">
        <title>Workload-Based Process Optimization</title>
        <p>The monitored processing statistics are used to determine several workload
characteristics. Basically there are two groups of workload-based optimizations. First,
implicit optimizations, like the message indexing, are realized. Second also
explicit optimizations, whereby the processplan is rewritten, are focused.
Message Indexing: The message indexing taking place in an implicit
manner, in order to make the processplans most robust, by preventing processplan
rewriting. Furthermore, we only use transient indexes. Thus, after server restart
the indexes are empty.</p>
        <p>Access to extracted single values: Because of the dynamic data aspect, it is
not useful to manage messages in a fine-grained and attribute-oriented manner.
Thus, accessing single values of one message, e.g. within the ASSIGN or SWITCH
operator, results in cost-intensive message scans. We prevent this, using more
efficient index scans. Single values, identified by the message ID and a XPath
expression, are extracted at the Inbound Adapter side. These values are put into
the 2-layer-hash-index. After a message was successfully processed, the whole
index subtree for this message could be removed. The optimizer determines,
whether the single value extraction is optimal for a specific usecase.</p>
        <p>Reuse of static messages: The ASSIGN operator could be used for assignment
of static value expressions to messages. If all copy elements in one ASSIGN
operator are such static value expressions, the produced message could be reused
across instances of one process type. This is realized by an index structure for
complete message objects, identified by the process type ID, the node ID of the
ASSIGN operator and the message name. This index is never cleaned during server
runtime. Furthermore, the ASSIGN operator often uses both, static value
assignments, as well as message value assignments. Figure 4 shows an optimization
approach of splitting such an operator into two operators, separating message
reuse and value assignments. Our process optimizer realize this at every possible
position.</p>
        <p>Controlflow Optimizations The workload-based controlflow optimization is
reached by explicit rewriting of processplans. As an example for such
optimizations, the FORK operator optimization will be discussed. By definition, the FORK
operator starts several subprocesses in sequence, execute them concurrently, and
finishes, when all subprocesses were executed. Because of the sequenced start of
these subprocesses, the first forklane starts earlier than the second. Thus, it is
most optimal to start the subprocess, with the highest processing time, first, in
order to prevent waiting time of subprocesses. Therefore, the average normalized
processing time of all subprocesses is evaluated and the subprocesses are ordered
ascending by its average. The performance impact, reached by this control flow
optimization, depends on the platform-specific costs for thread management.
Dataflow Optimizations The workload-based dataflow optimization
comprises the optimization of the dataflow-oriented operators of the MTM.
Furthermore, also the controlflow-oriented operator SWITCH, which evaluates XPath
expressions over messages, is under observation. Following, only this SWITCH
operator will be discussed, in order to explain one operator optimization in depth.</p>
        <p>This operator comprises a set of SWITCH-paths, where each contains a
condition and optionally also an ending SWITCH-path, which does not contains a</p>
        <p>Fig. 5. Example SWITCH Operator Optimization
condition. By definition one or none, of these paths is executed. Thus, the
problem is the evaluation of the conditions, which are in fact XPath expressions over
messages. Because of the sequenced evaluation of these conditions it is
suggesting, that the path with the lowest relative costs (costs relative to likelihood)
should be executed first, in order to prevent unnecessary evaluations.</p>
        <p>Figure 5 illustrates a subgraph of the introduced example, assuming costs
and likelihoods. Imagine, the first three SWITCH-paths contains disjoint and
notdisjoint conditions, while the fourth SWITCH-path contains none. With the aim of
performance improvement, first the relative costs for each condition is computed.
Thereby, end-paths without a condition get an theoretical maximum value M.
Second, the paths are ordered ascending by these relative costs.</p>
        <p>In order to rearrange the sequence of switch-conditions, the modeled semantic
have to be maintained. Basically BooleanExpressions are used as
SWITCH-pathconditions. These expressions contain one operator and two operands, which
are represented by ValueExpressions or absolute values. Coming back to the
maintenance of the process semantic, all disjoint expressions could be rearranged.
Thereby, two expressions are disjoint, if they use the “equals“ or “not equals“
operator or if they use different ValueExpressions.</p>
        <p>Definition 5. In order to formalize that problem, we define the disjoint SWITCH
operator is optimal in terms, where C(coPnd(sitpiaotnhsip)athi ) ≤ C(coPnd(sitpiaotnhsip+a1t)hi+1 ) with
i = 1, . . . , k and k . . . number of switch paths. Thereby, the performance
improvement ΔC = Cunopt −Copt reached by rearrangement could be computed with
C = Pik=1 P (spathi) ∗ Pij=1 C conditionspathj . Furthermore, the
determination of the relative costs requires the computation of execution likelihoods.
They are computed with P(spathi) = ccoouunntt((pp∈∈nnnniidd sswpiattchh)) .</p>
        <p>Additionally, also the optimization of the not-disjoint SWITCH operator should
be mentioned. As Figure 5 illustrates, there is the requirement, that the sequence
of not-disjoint expressions have to be excluded from the rearrangement.
Furthermore, the characteristic of the non-disjoint expressions is, that they use the
same ValueExpression in their BooleanExpressions. Thus, it is suggestible to
reuse this value for both BooleanExpressions. In consequence the not-disjoint
expressions are used as a compound SWITCH-path in order to rearrange this
compound-path with other SWITCH-paths, which are disjoint to the compound
one. Thus, the sum of all subpaths are used to determine the likelihood and costs
for this compound-path.
4.3</p>
      </sec>
      <sec id="sec-4-4">
        <title>Performance Measurements</title>
        <p>The performance of the
introduced example process was
measured using no optimization, only
rule-based optimizations, only
workload-based optimizations, but also
full optimization. Actually, the
performance measurements do not
comprise all optimization aspects
introduced in this paper, cause there
are plenty of side effects needed
by a full-fledged implementation
of these concepts. However,
especially the implementation of rule- Fig. 6. Measured Performance Values
based optimization is almost realized. Figure 6 shows the average performance
values, depending on the number of executed processes and the optimization
approaches. This performance values were measured on a desktop pc (Athlon64
1800+, 1GB RAM, Java 1.5 [JVM -Xms300m -Xmx700m]). As Figure 6 shows,
especially the rule-based optimization reached an enormous performance
improvement. The small impact of the workload-based optimization is cause by
the small message size of 7 KB. Thus, the impact of message indexing and of
SWITCH-path condition evaluation optimizations is small, relative to the overall
processing costs. However, there are some incisive results, which should further
be discussed. So firstly the difference between the first and second phase should
be mentioned, in which performance optimizations of the integrations system
as well as of the grounding DBMS and environment taking place. Furthermore,
especially on using the message indexing, performance values with a low
standard deviation should be noticed. Also the scale factor in form of the number of
executed processes should be mentioned. Here, no performance deficit could be
measured. Finally, also the fault treatment should taking place. The processing
performance was measured, by using the introduced “PersistentMonitor“. Thus,
the monitoring of performance events, as well as the whole TransConnect Server
maintenance has influenced the performance results. Further side effects like the
index maintenance, which is monitored for the internal management costs and
also the communication costs of the external systems, were excluded and thus
not analysed.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Summary and Conclusion</title>
      <p>Basically, this paper has illustrated optimization techniques of message
transformation processes, using a self-optimization approach, comprising rule-based
optimizations, as well as workload-based optimizations. Furthermore, the
theoretical suggestions and the practical performance measurements proved the high
optimization potential of such integration processes. Because of the complexity
of integration processes, this paper could not claim to discuss all optimization
aspects of such processes, but it could give some ideas about the approach of
self-optimization in such environments.</p>
      <p>Furthermore, some readers would see the similarities to DBMS and DSMS.
Thus, there are lots of further research items along with the optimization of
MTM processes. These items for instance include, the adoption of adaptivity
concepts from the field of data integration.</p>
      <p>Finally, it could be stated, that similar to the well-known distributed databases
and the currently discussed mash-ups the horizontal integration of systems by
integration platforms is also a diffusive way of application design. Thus, also the
research of optimization techniques will be displaced from the grounding systems
to the integration processes, to which this paper tries to contribute to.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. B¨ohm,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Wloka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            ,
            <surname>Habich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Bittner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Lehner</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.:</surname>
          </string-name>
          <article-title>A message transformation model for data centric integration processes</article-title>
          .
          <source>Technical report</source>
          , University of Applied Sciences Dresden (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>2. SAP: SAP Interface Repository</article-title>
          .
          <article-title>(</article-title>
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Transaction</given-names>
            <surname>Processing Performance Council: TPC-H -</surname>
          </string-name>
          ad
          <article-title>-hoc, decision support benchmark</article-title>
          ,
          <source>Revision 2.3.0</source>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <source>OASIS: Web Services Business Process Execution Language Version</source>
          <volume>2</volume>
          .
          <fpage>0</fpage>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. IBM:
          <article-title>Information Integration for BPEL on WebSphere Process Server</article-title>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Hohpe</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woolf</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Enterprise Integration Patterns : Designing, Building, and Deploying Messaging Solutions</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hutchison</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolfson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stockton</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Soa programming model for implementing web services, part 4: An introduction to the ibm enterprise service bus</article-title>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Viglas</surname>
            ,
            <given-names>S.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naughton</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          :
          <article-title>Rate-based query optimization for streaming information sources</article-title>
          . In: SIGMOD'
          <fpage>02</fpage>
          . (
          <year>2002</year>
          )
          <fpage>37</fpage>
          -
          <lpage>48</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Kr¨amer,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Cammert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Seeger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Papadias</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Dynamic plan migration for snapshot-equivalent continuous queries in data stream systems</article-title>
          . In: ICSNW'
          <fpage>07</fpage>
          . (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Workflow timed critical path optimization</article-title>
          .
          <source>Nature and Science</source>
          <volume>3</volume>
          (
          <issue>2</issue>
          ) (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Myerson</surname>
          </string-name>
          , J.:
          <article-title>Work with web services in enterprise-wide soas, part 5: Optimize web service applications with websphere business integration tools</article-title>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kailing</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>L A.</surname>
          </string-name>
          :
          <article-title>(Challenges and trends in information management)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Lu¨hring,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Sattler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Schallehn</surname>
          </string-name>
          , E.:
          <article-title>Autonomous tuning with soft indexes</article-title>
          . In: SMDB'
          <fpage>07</fpage>
          . (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>