25.01.2015 Views

Cost-Based Optimization of Integration Flows - Datenbanken ...

Cost-Based Optimization of Integration Flows - Datenbanken ...

Cost-Based Optimization of Integration Flows - Datenbanken ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.1 <strong>Integration</strong> <strong>Flows</strong><br />

execution. During execution <strong>of</strong> these flows, the outbound adapters are used as services<br />

(gateways) in order to actively invoke external systems, where they transform the internal<br />

format back to the proprietary message representations. The inbound and outbound<br />

adapters hide syntactic heterogeneities <strong>of</strong> external systems, while structural heterogeneities<br />

are addressed by schema transformation as part <strong>of</strong> the plan execution within the process<br />

engine. Note that each supported proprietary application, data format or standard protocol<br />

requires such specific inbound and outbound adapters. This concept <strong>of</strong> inbound and<br />

outbound adapters in combination with the common internal message format (in terms<br />

<strong>of</strong> XML or other tree-structured data representations) is crucial in order to reduce the<br />

complexity <strong>of</strong> such an execution component for two reasons. First, for n incoming formats<br />

and m outgoing formats, we reduced the number <strong>of</strong> required transformation services (e.g.,<br />

for transforming an XML message to a binary EDIFACT message) from n · m to n + m<br />

because we only need individual mappings (transformations) between the internal format<br />

and the sets <strong>of</strong> incoming and outgoing formats. Second, using the common format, all<br />

operators <strong>of</strong> the process engine need only to be realized once, according to this internal<br />

format, and the specific characteristics <strong>of</strong> external systems are hidden from the process<br />

engine by a generic outbound adapter interface.<br />

The deployment <strong>of</strong> integration flows finally combines both the modeling and execution<br />

components. Typically, an XML representation <strong>of</strong> the modeled integration flow is used<br />

in order to transfer the flow specification to the execution component, where the flow<br />

parser is used in order to create an internal plan <strong>of</strong> the integration flow. All analysis<br />

and optimization procedures then work on this plan representation. Finally, the plan<br />

is compiled into an executable form. In this context, we distinguish several different<br />

execution models and approaches that we will discuss in detail in Subsection 2.1.4.<br />

As already mentioned, there are plenty <strong>of</strong> application examples for imperative integration<br />

flows [BH08, CHX08, GGH00, SAP03, MS09, ACG + 08, CEB + 09]. Due to (1) the<br />

high number <strong>of</strong> heterogeneous systems and applications and (2) the continuous change<br />

<strong>of</strong> technology that reasons heterogeneity, the need for efficient integration will constantly<br />

remain in the future.<br />

2.1.3 Modeling <strong>Integration</strong> <strong>Flows</strong><br />

With regard to the overall system architecture, one important aspect is how to model integration<br />

flows. Essentially, we classify existing approaches <strong>of</strong> specification models using the<br />

two criteria (1) flow structure and (2) flow semantics. Figure 2.3 illustrates the resulting<br />

classification <strong>of</strong> integration flow modeling approaches. In contrast to declarative queries<br />

that are specified with descriptive languages, imperative integration flows are typically<br />

specified using prescriptive languages.<br />

Modeling <strong>Integration</strong> <strong>Flows</strong><br />

Structure<br />

Directed<br />

Graph<br />

Hierarchy <strong>of</strong><br />

Sequences<br />

Source<br />

Code<br />

Fixed<br />

Flow<br />

Semantics<br />

data flow control flow data flow control flow control flow control flow<br />

Figure 2.3: Classification <strong>of</strong> Modeling Approaches for <strong>Integration</strong> <strong>Flows</strong><br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!