Champagne: Champagne: Data Change Propagation for Data Change - - PowerPoint PPT Presentation

champagne champagne
SMART_READER_LITE
LIVE PREVIEW

Champagne: Champagne: Data Change Propagation for Data Change - - PowerPoint PPT Presentation

Champagne: Champagne: Data Change Propagation for Data Change Propagation for Heterogeneous Information Systems Heterogeneous Information Systems Ralf Rantzau Carmen Constantinescu Uwe Heinkel Holger Meinecke University of Stuttgart


slide-1
SLIDE 1

Champagne:

Data Change Propagation for Heterogeneous Information Systems

Champagne:

Data Change Propagation for Heterogeneous Information Systems

Ralf Rantzau Carmen Constantinescu Uwe Heinkel Holger Meinecke University of Stuttgart Germany

slide-2
SLIDE 2

Motivation: Enterprise Application Integration Motivation: Enterprise Application Integration

Heterogeneous IT infrastructures Full enterprise data integration often

too expensive or infeasible

Need to change, establish and adapt

dependencies frequently and easily

Heterogeneous IT infrastructures Full enterprise data integration often

too expensive or infeasible

Need to change, establish and adapt

dependencies frequently and easily ERP ERP Stock Inventory Stock Inventory Legacy System Legacy System SCM SCM Facility Layout Design Facility Layout Design Order Management Order Management

Network of Data Dependencies

Loose coupling of information

systems is enough

Keep IS as autonomous as possible Build bridges between IS by defining

data dependencies

Loose coupling of information

systems is enough

Keep IS as autonomous as possible Build bridges between IS by defining

data dependencies

The Problem Our Approach

slide-3
SLIDE 3

Dependency (Source, Propagation Script, Destinations) Dependency (Source, Propagation Script, Destinations)

XRL+ XSLT XSLT XSLT XML

XML-Based Data Change Propagation XML-Based Data Change Propagation

XML

Input Output

XSLT

Change Propagation

Changed Data (update, insert, delete) Data adapted to each destination Transformation Scripts Propagation Script (XRL+: Exchangeable Routing Language Plus) (XSLT: XML Stylesheet Language Transformations)

XML

Transformation Filtering (Xpath) Routing

XSLT XML XSLT

Dependency (Source, Propagation Script, Destinations)

slide-4
SLIDE 4

Champagne Architecture Champagne Architecture

Filter (XPath)

(XML)

Propagation Manager

Propagation Engine (XRL+)

Input Output 1 Output N

Queue Manager (JMS)

Internal 1 Internal M

Transformer (XSLT)

(XML)

. . . Adaptors

Systems

S1 SN

AN A1 Schema Editor (XML Schema)

Dependency Manager

Graphical User Interface Dependency Editor (XRL+, XSLT)

Systems

  • 1. Dependencies
  • 2. Propagation Scripts (XRL+)
  • 3. Transformation Scripts (XSLT)
  • 4. System Info & Schemas (XML Schema)

Repository (RDBMS)

1 9 2 3 5 6 8

. . . . . . . . .

4 7

Runtime Tool Design-Time Tool

(any) (any)

slide-5
SLIDE 5

Exchangeable Routing Language Plus (XRL+) Exchangeable Routing Language Plus (XRL+)

XRL: XML-Based Workflow Definition Language Introduced by W. v.d. Aaalst and A. Kumar, 2000 Routing Schema Elements:

Branch conditions Loops Sequential Execution Parallel Execution Wait, Event, Timeout

XRL: XML-Based Workflow Definition Language Introduced by W. v.d. Aaalst and A. Kumar, 2000 Routing Schema Elements:

Branch conditions Loops Sequential Execution Parallel Execution Wait, Event, Timeout

XRL+: Extension of XRL for Propagation Process Specification Major new elements:

MESSAGE_EVENT (system, schema, xml_out) PROPAGATE (system, schema, xml) TRANSFORM (xml_in, xml_out, xslt) FILTER (xml_in, xml_out, xpath_expr)

XRL+: Extension of XRL for Propagation Process Specification Major new elements:

MESSAGE_EVENT (system, schema, xml_out) PROPAGATE (system, schema, xml) TRANSFORM (xml_in, xml_out, xslt) FILTER (xml_in, xml_out, xpath_expr)

slide-6
SLIDE 6

Example XRL+ Propagation Script Example XRL+ Propagation Script

<xrl:route id=“1” created_by=“script_designer” creation_date=“2002-08-20” xmlns:xrl=“http://www.uni-stuttgart.de/XRL”> <xrl:sequence> <xrl:wait sync=1> <xrl:message_event system=“OMS” schema=“production_order” xml_out=“PO”/> <xrl:timer_event type=“relative” time=“600”/> </xrl:wait> <xrl:parallel> <xrl:sequence> <xrl:filter xml_in=“PO” xml_out=“f1” expression=“//transport/@start=‘M003’”/> <xrl:transform xml_in=“f1” xslt=“OM2FLD.xsl” xml_out=“fld_out”/> <xrl:propagate xml=“fld_out” system=“FLD” schema=“material_flow”/> </xrl:sequence> <xrl:propagate xml=“PO” system=“Legacy” schema=“production_order” /> </xrl:parallel> </xrl:sequence> </xrl:route> <xrl:route id=“1” created_by=“script_designer” creation_date=“2002-08-20” xmlns:xrl=“http://www.uni-stuttgart.de/XRL”> <xrl:sequence> <xrl:wait sync=1> <xrl:message_event system=“OMS” schema=“production_order” xml_out=“PO”/> <xrl:timer_event type=“relative” time=“600”/> </xrl:wait> <xrl:parallel> <xrl:sequence> <xrl:filter xml_in=“PO” xml_out=“f1” expression=“//transport/@start=‘M003’”/> <xrl:transform xml_in=“f1” xslt=“OM2FLD.xsl” xml_out=“fld_out”/> <xrl:propagate xml=“fld_out” system=“FLD” schema=“material_flow”/> </xrl:sequence> <xrl:propagate xml=“PO” system=“Legacy” schema=“production_order” /> </xrl:parallel> </xrl:sequence> </xrl:route>

Propagate FLD Propagate FLD Filter start = M003 Filter start = M003 Transform OM2FLD.xsl Transform OM2FLD.xsl Wait sync=1 Wait sync=1 Propagate Legacy Propagate Legacy timer_event time = 600 sec timer_event time = 600 sec message_event message_event

FLD Output Queue FLD Output Queue Legacy Output Queue Legacy Output Queue Input Queue Input Queue

slide-7
SLIDE 7

input.xml

<?xml version=”1.0” encoding=”ISO8859-2”?> <production_order> <operation> <transport start=”M002” dest=”M001” qual=”A12”> <part no=”P001” amount=”5000”/> </transport> </operation> <operation> <drilling unit=”M001” cost_center=”DM1”> <part no=”P001” amount=”5000”/> <manufacturing_lead_time days=”0” hours=”3” mins=”40”/> </drilling> </operation> <operation> <transport start=”M001” dest=”M003” qual=”C13”> <part no=”P001” amount=”5000”/> </transport> </operation> <operation> <milling unit=”M003” cost_center=”BM2” > <part no=”P001” amount=”5000”/> <manufacturing_lead_time days=”0” hours=”1” mins=”13”/> </milling> </operation> </production_order>

  • m2fld.xsl
  • rder_management.xrl

XML-Based Data Change Propagation: An Example XML-Based Data Change Propagation: An Example

<?xml version=”1.0” encoding=”ISO8859-2”?> <xslt:transform version=”1.0” xmlns:xslt=”http://www.w3.org/1999/XSL/Transform”> <xslt:output method=”xml” encoding=”ISO8859-2” indent=”yes”/> <xslt:template match=”/production_order”> <material_flow> <xslt:apply-templates select=”.”/> </material_flow> </xslt:template> <xslt:template match=”//transport”> <xslt:element name=”transport”> <xslt:attribute name=”start”> <xslt:value-of select=”@start”/> </xslt:attribute> <xslt:attribute name=”dest” <xslt:value-of select=”@dest”/> </xslt:attribute> . . . <xsl:variable name=”qual” select=”@qual”/> <xslt:element name=”employee”> <xslt:attribute name=”hourly_wage” <xslt:value-of select= ”document(‘http://www.SMS.com/employee.xml’) //employee[qual@q=$qual]h_wage@h_w”/> </xslt:attribute> </xslt:element> </xslt:element> </xslt:template> </xslt:transform> <?xml version=”1.0” encoding=”ISO8859-2”?> <xrl:ROUTE id=”ex” created_by=”script_designer” creation_date=”2002-08-20”> <xrl:SEQUENCE> <xrl:WAIT sync=”1”> <xrl:MESSAGE_EVENT system=”OMS” schema=”production_order” xml_out=”input”/> </xrl:WAIT> <xrl:TRANSFORM xml_in=”om” xslt=”om2fld.xsl” xml_out=”t1”/> <xrl:PROPAGATE xml=”output” system=”FLD” schema=”material_flow”/> </xrl:SEQUENCE> </xrl:ROUTE>

Source Data (XML)

Propagated Data

(XML)

Propagation Script (XRL+) Transformation Script (XSLT)

  • utput.xml

... <material_flow> <transport start=”M002” dest=”M001”> <part no=”P001” amount=”5000”/> <employee qualification=”A12” hourly_wage=”129”/> </transport> <transport start=”M001” dest=”M003”> <part no=”P001” amount=”5000”/> <employee qualification=”C13” hourly_wage=”45”/> </transport> </material_flow> ...

Destination Data (XML)