Enterprise Application Integration mit XML



Ähnliche Dokumente
5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Integrationsserver mit Open Source

Workflow, Business Process Management, 4.Teil

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Wiederholung: Beginn

Java und XML 2. Java und XML

Verteilte Systeme: Übung 4

Enterprise Application Integration Erfahrungen aus der Praxis

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Orientation in Objects GmbH

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

Implementierung von Web Services: Teil I: Einleitung / SOAP

XML und SOAP Einführung und Grundlagen

Seminarvortrag Serviceorientierte Softwarearchitekturen

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Securing SOAP e-services

XML - Extensible Markup Language. Agenda - Oracle XML DB

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

Business Collaboration

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

E-Services mit der Web-Service-Architektur

Zustandsgebundene Webservices

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Auszug aus JAX-WS Folien

SAP NetWeaver Gateway. 2013

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

Organisation und Systeme SOA: Erstellung von Templates für WebService Consumer und Provider in Java

Enterprise Application Integration

Technik der SAP-Anbindung Christian Aigner Team Entwicklung, Kranzberg

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

SAP SharePoint Integration. e1 Business Solutions GmbH

Projektseminar Texttechnologische Informationsmodellierung

SOA mit.net: Vom Geschäftsprozess zur Lösung

Grundlagen der Web-Entwicklung INF3172

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

C O C O O N. Wo ist Cocoon in die Apache Projekte einzureihen?

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

XQuery Implementation in a Relational Database System

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund

XMPP: Extensible Messaging and Presence Protocol

ÖSTERREICH RECHNET MIT UNS. Standard e-rechnungs-webservice (SERWS) - Status DI Philip Helger, BRZ

Architektur von SOAP basierten Web Services

winra-evolution Informa onen für die IT

Übungen zu Softwaretechnik

X-Technologien. Ein Überblick. Ulrike Henny. IDE Summer School 2013, Chemnitz

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Internetanbindung von Datenbanken

Thema: Web Services. Was ist ein Web Service?

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

GI-Services erstellen und bereitstellen

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Stand 04/2014. Standard Installa ons Szenario. Anbindung von weiteren Standorten und Geschä sstellen. Kommunika on mit Externen über den WebPublisher

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

CORBA. Systemprogrammierung WS

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Java Enterprise Architekturen Willkommen in der Realität

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Installation des edu- sharing Plug- Ins für Moodle

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Datenaustauschformate. Datenaustauschformate - FLV

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Optimierung von Ausdrucken im SAP-Umfeld unter Einsatz von MS Office Funktionen

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Systemvoraussetzungen

Integrationsprozesse. cross component BPM - Steuerung systemübergreifender Szenarien. Konrad Lubenow, FHTW Berlin, Juli 2007

WebServices Zwischen Buzzword und Nutzen

VVA Webservice Online Lieferbarkeits-Abfrage

3-schichtige Informationssystem-Architektur

Konvertierung von Geschäftsdokumenten: Probleme und Lösungen mit XML/XSLT

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Workshop 3. Excel, EDIFACT, ebxml- Was ist state. of the art und wo liegt die Zukunft. 16. September 2002

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Microsoft.NET und SunONE

<Insert Picture Here> Oracle Datenbank Einführung Ulrike Schwinn

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Rapide An Event-Based Architecture Definition Language

Man liest sich: POP3/IMAP

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

PL/SQL Web-Services mit Oracle 11g

Java Web Services Metadata JSR-181

Installation des edu-sharing Plug-Ins für Moodle

Bibliothekssysteme / Verbundsysteme / Netze

Web Services Monitoring

inews: XML in der Praxis Konvertierung von Objekten nach XML und zurück Dr. St. Seefeld / INGTES AG

Java RMI, CORBA und Firewalls

Themen. Web Service - Clients. Kommunikation zw. Web Services

Transkript:

Enterprise Application Integration mit XML Thomas Bayer bayer@oio.de Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de 1 Integrator bei der Arbeit 2

Moderne Integration 3 Gemeinsame DB? Fat Clients Application Server Datenbank 4

Integration über Daten? export XML XML import 5 Einführung Einführung Architekturen Integrationsserver mit XML 6

Was is EAI EAI involves sharing information between disparate applications that never were designed to work together Christopher Curry (http://www.diku.dk/teaching/2001e/e01.718/lectures/eaiandxml-1.pdf) 7 Anforderungen für globale Prozesse Kommunikation über Internet standardisiert spontan einfach sicher Web Interface 8

From Enterprise to Economy Integration Kunde Lieferant Hersteller 1.) 2.) 3.) 6.) 5.) 4.) System A System B System C System D 9 Architekturen Einführung Architekturen Integrationsserver mit XML 10

Point to Point I Host ERP B2B DMS CRM CMS Anzahl Schnittstellen = n * ( n - 1) = n² - n 11 Point to Point II Schnittstellen Systeme Kombinatorische Explosion Keine Wiederverwendung Know-How ist auf die einzelnen Schnittstellen verteilt 12

Hub and Spoke Host SAP B2B DMS CRM Middleware XX Konnektoren = Anzahl Systeme Anzahl Schnittstellen = 2n 13 Intregrationsplattform Internet Intranet Kunde Lieferant Integrationsplattform Host CRM DB ERP 14

Gemeinsames Datenmodell? System A System B System C 15 Portale CRM DMS ERP B2B 16

Daten Integration System A System B Daten B Daten Kopie Daten B Daten Daten B Replikation Master/Slave Datenabgleich Userdaten Redundanz Konflikte 17 Funktionale Integration System A Anfrage nach Daten Antwort System B Daten Bitte um Änderung Antwort Daten Daten B Just in Time! 18

Transaktionale Integration System A Anfrage nach Daten Antwort System B Daten Bitte um Änderung Antwort Daten Daten B Transaktions Koordinator 19 Einsatz von Middleware I System A System B? 20

Einsatz von Middleware II System A System B Middleware?? 21 EAI Tools EAI Spezialsoftware Integrationsserver Rein Propriertär Auf Standards basierend Middleware Tools auf Prozeßebene Eigenimplementierung mit XML/Java 22

Integrationsserver mit XML Einführung Architekturen Integrationsserver mit XML 23 Ziel Architektur Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 24

XML <Frage>Do you Speek XML?</Frage> SMTP HTTP XML SNMP Schlager HTML 25 Verständigung XML TCP/IP 26

Bedeutung Bedeutung XML HTTP Netz (TCP/IP) Abstraktion Bits & Bytes 27 Der XML Laden opentrans XForms Namespaces XLink XML 1.0 Schema DTD XSLT XQuery XPath SOAP XSL-FO BMECat XHTML ebxml 28

Kommunikation Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 29 Globaler Objekt Bus Objekt C++ Objekt Java Objekt Smalltalk Objekt XXX Objekt Objekt Zog aus Orfali, Harkey, Edwards: The essential distributed survival guide 30

CORBA über das Internet CORBA Client CORBA Server Lösung: HTTP Tunnel oder IIOP Proxys 31 Kommunikation über Tunnel HTTP Response HTTP Response SOAP Client HTTP Request HTTP Proxy HTTP Request Web Service 32

HTTP als Transport Protokoll Einfach Weit verbreitet Statuslos Wird über Firewalls hinweg transportiert (meistens!) Übertragung kann verschlüsselt werden (SSL) 33 Dump eines SOAP Requests 34

Interoperability Java Clients Apache SOAP SOAPDirect SOAP SOAP Server.NET Clients Apache SOAP.NET Clients MS SOAP Toolkit Visual Basic C# SOAP AXIS MS SOAP Tookit Cape Connect Andere SOAP for Python SOAP PerlEx 35 RPC und Dokument Stil Client Server bestelle( 10, SK-001-SW ) int bestelle( anzahl, artikel) Client Server XML Dokument (Bestellung) 36

Synchrone Kommunikation Client Server Request Response 37 Synchrone Kommunikation Client Server Nachricht 38

Einbindung von Clients Client WSDL Integrationsumgebung WSDL Code Generator WSDL Generator Service Proxy bestelle( 10, SK-001-SW ) Server Objekt int bestelle( anzahl, artikel) 39 Web Service Description Language WSDL Sprache um Dienste zu beschreiben Vergleichbar mit IDL Zugriff über email, Web site oder UDDI Wurde von IBM, MS,... entwickelt Beschreibt Dienste als eine Menge von Endpunkten, die Nachrichten arbeiten Die Nachrichten können entweder Dokument oder Aufruf orientiert sein 40

Registry Internet Intranet Kunde Lieferant bind find Integrationsplattform Kommunikation Sicherheit Validierung Routing Transformation Prozesswissen Backendintegration publish UDDI Service Registry Host CRM DB ERP 41 Sicherheit Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 42

Sicherheit Übertragung SSL ( keine Probleme bei bekannten Kommunikationspartnern) XML Encryption, XML Signature, XML Key Management XML Security Page http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/xml_security.html 43 Validierung Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 44

Validierung DTD Schema 45 Validierung <?xml version="1.0" encoding="iso-8859-1"?> <sap:purchaseorder.createfromdata xmlns:sap="urn:sap-com:document:sap:business" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="urn:sap-com:document:sap:business S:\Drafts\XML\eai-mit-xml\beispiele\sap-purchase-order\query.xml"> <PoHeader></PoHeader> <PoItems></PoItems> <PoItemSchedules></PoItemSchedules> </sap:purchaseorder.createfromdata> query.xml Schema mit 115 KByte! 46

XML Relational Mapping 1 1 1 n XML Parser 1 n 1 n 47 Validierung von BMECat Katalogen <ARTICLE_DETAILS> <DESCRIPTION_SHORT>A4 Standard Kopierfolien (1Pck=100Blt)</DESCRIPTION_SHORT> <DESCRIPTION_LONG>Supplies Team Kopierfolien,A4,(1Pck=100Blt),(Supplies Team-Hausmarke)</DESCRIPTION_LONG> <MANUFACTURER_AID>AA52834</MANUFACTURER_AID> <MANUFACTURER_NAME>Supplies Team</MANUFACTURER_NAME> <ERP_GROUP_BUYER/> <DELIVERY_TIME>2</DELIVERY_TIME> <KEYWORD>52834</KEYWORD> <KEYWORD>Kopierfolien</KEYWORD> <KEYWORD>Kopierfolien</KEYWORD> </ARTICLE_DETAILS> 48

Transformation Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 49 XSLT Prozessor html.xsl csv.xsl news.html txt.xsl docbook.xsl news.xml XSLT Prozessor news.txt (Xalan, Saxon,..) news.csv docbook.xml 50

XSLT Prozessor opentrans2po.xsl opentrans Bestellung XSLT Prozessor (Xalan, Saxon,..) PurchaseOrder.CreateFromData 51 <?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE ORDER SYSTEM "opentrans_order_1_0.dtd"> <ORDER version = "1.0" type = "standard"> <ORDER_HEADER> <ORDER_INFO> <ORDER_ID>PO1001</ORDER_ID> <ORDER_DATE>2002-05-13</ORDER_DATE> <ORDER_PARTIES> <BUYER_PARTY> <PARTY><PARTY_ID type = "buyer_specific">2030</party_id></party> </BUYER_PARTY> <SUPPLIER_PARTY> <PARTY><PARTY_ID type = "buyer_specific">s517</party_id></party> </SUPPLIER_PARTY> </ORDER_PARTIES> </ORDER_INFO> </ORDER_HEADER> <ORDER_ITEM_LIST> <ORDER_ITEM> <LINE_ITEM_ID>1</LINE_ITEM_ID> <ARTICLE_ID><SUPPLIER_AID>SK-500-SW</SUPPLIER_AID></ARTICLE_ID> <QUANTITY>10</QUANTITY> <ORDER_UNIT>C62</ORDER_UNIT> <ARTICLE_PRICE type = "net_list"> <PRICE_AMOUNT>5.80</PRICE_AMOUNT> <PRICE_LINE_AMOUNT>58.00</PRICE_LINE_AMOUNT> </ARTICLE_PRICE> </ORDER_ITEM> </ORDER_ITEM_LIST> <ORDER_SUMMARY> <TOTAL_ITEM_NUM>2</TOTAL_ITEM_NUM> <TOTAL_AMOUNT>378.00</TOTAL_AMOUNT> </ORDER_SUMMARY> </ORDER> 52

<?xml version="1.0" encoding="utf-16"?> <sap:purchaseorder.createfromdata xsi:schemalocation="urn:sap-com:document:sap:business S:\Drafts\XML\eai-mit-xml\beispiele\sap-purc xmlns:sap="urn:sap-com:document:sap:business" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <PoHeader> <DOC_DATE>2002-05-13</DOC_DATE> <PURCH_ORG>2030</PURCH_ORG> <VENDOR>S517</VENDOR> <PO_NUMBER>PO1001</PO_NUMBER> </PoHeader> <PoItems> <item> <PO_ITEM>1</PO_ITEM> <MATERIAL>SK-500-SW</MATERIAL> <UNIT>C62</UNIT> <NET_PRICE>5.80</NET_PRICE> </item> <item> <PO_ITEM>2</PO_ITEM> <MATERIAL>SK-601-RO</MATERIAL> <UNIT>C62</UNIT> <NET_PRICE>320.00</NET_PRICE> </item> </PoItems> <PoItemSchedules> <item> <PO_ITEM>1</PO_ITEM> <QUANTITY>10</QUANTITY> </item> <item> <PO_ITEM>2</PO_ITEM> <QUANTITY>1</QUANTITY> </item> </PoItemSchedules> 53 </sap:purchaseorder.createfromdata> Mapping <ORDER_ITEM> <LINE_ITEM_ID>1</LINE_ITEM_ID> <ARTICLE_ID><SUPPLIER_AID>SK-500-SW</SUPPLIER_AID></ARTICLE_ID> <QUANTITY>10</QUANTITY> <ORDER_UNIT>C62</ORDER_UNIT> <ARTICLE_PRICE type = "net_list"> <PRICE_AMOUNT>5.80</PRICE_AMOUNT> <PRICE_LINE_AMOUNT>58.00</PRICE_LINE_AMOUNT> </ARTICLE_PRICE> </ORDER_ITEM> <PoItems> <item> <PO_ITEM>1</PO_ITEM> <MATERIAL>SK-500-SW</MATERIAL> <UNIT>C62</UNIT> <NET_PRICE>5.80</NET_PRICE> </item> </PoItems> <PoItemSchedules> <item> <PO_ITEM>1</PO_ITEM> <QUANTITY>10</QUANTITY> </item> </PoItemSchedules> 54

Regelbasierte Konvertierung <xsl:template match="order_item_list"> <PoItems> <xsl:apply-templates mode="item"/> </PoItems> <PoItemSchedules> <xsl:apply-templates mode="shedules"/> </PoItemSchedules> </xsl:template> opentrans SAP <xsl:template match="order_item" mode="item"> <item> <PO_ITEM><xsl:value-of select="line_item_id"/></po_item> <MATERIAL><xsl:value-of select="article_id/supplier_aid"/></material> <UNIT><xsl:value-of select="order_unit"/></unit> <xsl:apply-templates/> </item> </xsl:template> <xsl:template match="order_item" mode="shedules"> <item> <PO_ITEM><xsl:value-of select="line_item_id"/></po_item> <QUANTITY><xsl:value-of select="quantity"/></quantity> </item> </xsl:template> <xsl:template match="article_price[@type='net_list']"> <NET_PRICE><xsl:value-of select="price_amount"/></net_price> </xsl:template> 55 Konvertierung aufwendig X XML XML Einfach X 56

Konvertierung nach XML stylesheet Quelle non XML Konverter -> XML (DOM/SAX) generisches XML XSLT Prozessor Zielformat XML 57 Comma Separated Values CSV CSV Export Nr;Bezeichnung;Menge;Preis 1;Dauerlutscher;10;1,99 2;Kaffee;2;3,8 3;Kuli;100;0,8 58

Konverter (XMLSpy) 59 Ergebnis <Import> <Row> <Nr>1</Nr> <Bezeichnung>Dauerlutscher</Bezeichnung> <Menge>10</Menge> <Preis>1,99</Preis> </Row> <Row> <Nr>2</Nr> <Bezeichnung>Kaffee</Bezeichnung> <Menge>2</Menge> <Preis>3,8</Preis> </Row> <Row> <Nr>3</Nr> <Bezeichnung>Kuli</Bezeichnung> <Menge>100</Menge> <Preis>0,8</Preis> </Row> </Import> 60

61 Routing Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 62

Message Router Kunde X RPC Konverter ERP Kunde Y Router CRM Lieferant X System X Lieferant Y 63 Native XML Datenbanken Unterscheidung: native DB XML enabled DB Speziell zum Speichern von XML Dokumenten entworfen (besonders für document-centric XML Dokumente) Unterstützung von: Transaktionen Sicherheit Mehrbenutzerzugriffe APIs für den Zugriff aus einer Programmiersprache Abfragesprachen 64

Aufbau einer nativen XML Datenbank Datenbank Collection Dokument XEinf XML Seminare Java XDB Corba Native XML DB / DB 2 Col01 Col02 Dok01 Dok02... DB 3........ 65 XPath Spezifiziert Adressierung eines XML-Dokumentes Enthält 13 Achsenbezeichner (AxisName) es existieren Kurz- und Langformen zur Adressierung W3C Recommendation seit 16. November 1999 Gemeinsame Syntax für Funktionalitäten, die sich XSLT und Xpointer( www.w3c.org/tr/xptr ) teilen 66

XQuery Language Kleine einfache Abfrage Sprache Abgeleitet von vorherigen Vorschlägen, wie XML-QL,YATL, Lorel und Quilt, aber noch keine recommendation Navigationssyntax wurde von XPath übernommen Kein XML - die XML Version heisst XQueryX Teile der SQL-Syntax (SELECT, FROM, WHERE) und von OQL wurden übernommen 67 Beispiel für eine XQuery Abfrage Alle Bücher, die 1994 erschienen sind document("bib.xml")/bib/book[@year="1994"] Alle Bücher, deren Preis von "www.bn.com" stammt FOR $b IN document("prices.xml")//book WHERE $b/source = "www.bn.com" RETURN $b/title 68

FLWR expressions FOR-LET-WHERE-RESULT Verallgemeinerung der SELECT-FROM-WHERE Anweisung aus SQL Beispiel: FOR $p IN document( bib.xml )//publisher LET $b := document( bib.xml )//book[publisher = $p] WHERE count($b) > 100 RETURN $p 69 Was ist XUpdate? Sprache zum aktualisieren von XML Dokumenten Benutzung unabhängig von Implementation macht intensiven Gebrauch von XPath Ausdrücken rein deskriptive Sprache benutzter Namespace hat URI http://www.xmldb.org/xupdate 70

xupdate:append xupdate:append fügt mittels select Attribut angegebenes Element als child an den Kontext Knoten kann optional child Attribut enthalten, daß Position angibt, ansonsten als letztes child eingefügt kann alle Elemente enthalten... <xupdate:append select="/addresses child=last()"> <xupdate:element name="address"> <town>mannheim</town> </xupdate:element> </xupdate:append> 71 Routing mit XML Datenbank Kunde X / Validieren Routen Transformation a in Verarbeiten archiv Backend System X a fehler bestellung anfrage rechnung bestellung anfrage rechnung 72

Prozesswissen Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 73 74

Prozessbeschreibung in XML <?xml version="1.0"?> <processes> <process dest="de.oio.jax.process.demo.bestellungverarbeitenprocess"> <event src="de.oio.jax.process.demo.bestellungempfangenevent"/> <action src="de.oio.jax.process.demo.holelagerbestandaction"/> <action src="de.oio.jax.process.action.senddebugaction"> <param name="mail-addr" value="bayer@porty"/> </action> <action src="de.oio.jax.process.demo.sendebestandsmeldungaction"/> <action src="de.oio.jax.process.action.generateeventaction"> <param name="event-class" value="de.oio.jax.process.demo.bestellungverarbeite </action> </process> <process dest="de.oio.jax.process.demo.bestellungverbuchenprocess"> <event src="de.oio.jax.process.demo.bestellungverarbeitetevent"/> <action src="de.oio.jax.process.demo.verbuchebestellungimerpaction"/> </process> </processes> 75 Gesamte Anwendung Client processes2initializer.xsl ProcessInitializer processess.xml processes2java.xsl Process ProcessManager generierter Code BestellungVerarbeitenProcess Event Anwendungs Code Framework Code Action BestellungEmpfangenEvent BestellungVerarbeitetEvent SendDebugAction GenerateEvent HoleLagerbestandAction 76

Backendanbindung Internet Intranet Kunde Lieferant Integrationsplattform Kommunikation Sicherheit Entwicklung Validierung Routing Transformation Prozesswissen Backendintegration Management Host CRM DB ERP 77 XSP mit SAP Taglib... <page> <gosap:checklogon> <gosap:executebapi> <BAPIName>BAPI_SFLIGHT_GETLIST</BAPIName> <request><xsp:expr>request</xsp:expr></request> </gosap:executebapi> </gosap:checklogon> </page>... 78

XML Output der XSP <?xml version="1.0" encoding="utf-8"?> <page> <result> <tables> <table name="flightlist"> <row> <field desc="kurzbez. der Fluggesellschaft >LH</field> <field desc="code der Flugverbindung">2407</field> <field desc="flugdatum">2001-10-07</field>... </row>... </table> </tables> <export>... </export> </result> </page> 79 HTML und WML Output 80

Generischer BAPI Aufruf mit Cocoon 81 Generischer BAPI Aufruf mit Cocoon <?xml version="1.0" encoding="utf-8"?> <page xmlns:xsp="http://apache.org/xsp" xmlns:gosap="http://www.gosap.de/taglib" xmlns:log="http://apache.org/xsp/log"> <bapi name="bapi_sflight_getlist"> <tables name="bapi_sflight_getlist"> <table type="table" desc="liste von Flügen" name="flightlist" offset="0" length="10" optional="false"> <field type="char" desc="kurzbezeichnung der Fluggesellschaft" name="carrid" offset="0" length="3" optional="false"/> <field type="num" desc="code der Flugverbindung" name="connid" offset="3" length="4" optional="false">0000</field>... </table> </tables> <import> <param type="char" desc="nachmittags starten (Einschränkung)" name="afternoon" offset="0" length="1" optional="true"/> <param type="char" desc="fluggesellschaft (Einschränkung)" name="airlinecarrier" offset="1" length="3" optional="true"/>... </import> <export> <param type="structure" desc="fehlermeldungen" name="return" offset="0" length="6" optional="false"> <structure name="return"> <param type="char" desc="meldungstyp: S Success, E Error, W Warning, I Info, A Abort" name="type" offset="0" length="1" optional="false"/> <param type="char" desc="nachrichten, Nachrichtenklasse" name="id" offset="1" length="20" optional="false"/>... </structure> </param> </export> </bapi> </page> 82

Generischer BAPI Aufruf mit Cocoon 83 Generischer BAPI Aufruf mit Cocoon 84

85 86

87 Bausteine Parser XSLT Prozessoren XML Datenbanken SOAP Middleware Schema Editoren UML Tools mit XMI Export JAXB XPath Implementierungen 88

Quellen www.oio.de/public EAI Competence Center: www.eai-systeme.de XML Datenbanken xml.apache.org http://xml.apache.org/xindice/ http://exist.sourceforge.net/ http://www.x-hive.com/ http://www.eaiindustry.org/ http://www.eaijournal.com/ SAP Help Portal: http://help.sap.com SAP Interface Repository: http://ifr.sap.com SOAP http://www.w3.org/2002/ws/ XPath Spezifikation http://www.w3.org/tr/xpath XQuery http://www.w3.org/xml/query Cocoon BAPI Lib http://www.oio.de/sap-logicsheet.htm 89 CORBA Internet Intranet Kunde (C++) Lieferant (Java) Integrationsplattform Connector Connector Connector Connector Host CRM DB ERP 90