Schnittstellen-Standards
Transcription
Schnittstellen-Standards
Heutiges Thema: Schnittstellen-Standards zum elektronischen Datenaustausch zwischen Applikationen (EDI) Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Literatur Krüger, Reschke: Lehr- und Übungsbuch Telematik, Fachbuchverlag Leipzig 2002 Müller, Eymann, Kreutzer: Telematik- und Kommunikationssysteme in der vernetzten Wirtschaft, Oldenbourg 2003 Levi, Rembold: Einführung in die Informatik für Ingenieure ... Diverse VDA-Richtlinien Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Definitionen EDI: Electronic Data Interchange (elektronischer Datenaustausch), jede Form des Datenaustausches auf elektronischem Wege zwischen Anwendungs-Systemen über Systemgrenzen. DFÜ: Daten-Fern-Übertragung (im Prinzip dasselbe wie EDI, nur wird EDI meistens mit „EDIFACT“ gleichgesetzt, was falsch ist. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Anforderungen Korrektheit (fehlerfrei, selbstkorrigierend, autom. Fehlererkennung) Vollständigkeit, Wiederholungsfreiheit, Transaktionsfähigkeit, Pufferung Einfachheit (geringe Komplexität, einfache Bedienung und Überwachung) Gute Automatisierbarkeit Transparenz (alle Datenformate, binär und zeichenorientert, Transport-Mechanismen für Programmierer unsichtbar) Zuverlässigkeit, Verfügbarkeit Sicherheit gegen Mithören und Manipulation Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Schnittstellen-Kategorien Datei-Übertragungs-Verfahren Programm-zu-Programm-Kommunikation Datenbank-Integration Messages Transfer Systeme Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Datei-Übertragung (Transfer) Punkt-zu-Punkt offline = Datenträger-Austausch Punkt-zu-Punkt online seriell (Modem usw.) File Transfer in Netzwerken (Inter/Intra/Extranet) Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Punkt-zu-Punkt Transfer Punkt-zu-Punkt offline Datenträger-Austausch: CD-Rom, Diskette, Band, Memory-Stick, Barcode-Label mit voller Information, ... Punkt-Zu-Punkt seriell Ascii-Zeichen ungesichert zmodem, xmodem, ymodem kermit uucp Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 File Transfer in Netzwerken ftp: File Transfer Protocol (Port 21/20) rcp: Remote Copy scp, sftp: Secure Copy, Secure FTP nfs: Network File System smb, samba: MS Windows Netzwerks-Funktionen für verteilte Filesysteme, Druck, Messageing. E-Mail (allgemein): smtp, imap, pop „Mailbox“-Verfahren (X.400): Standard-MHS Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Programm-zu-ProgrammKommunikation Direkte TCP/IP- bzw. ISO/OSI-Kommunikation Middleware-Systeme Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Direkte TCP/IP-Schnittstellen Client/Server-Modell Peer-to-Peer Modell Nutzung der jeweils vom Betriebssystem bereitgestellten API's Verbindungsaufbau, Kommunikation, Abbau, Fehlerhandling liegen in der Verantwortung der Applikationen Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Ablauf Socket-API C/S Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Middleware Unter "Middleware" werden Software-Schichten in netzwerkfähigen Rechnern verstanden, die Dienste für verteilte Anwendungen liefern. Sie verdecken dabei, dass die darunter liegenden Schichten evtl. sehr verschieden und "nicht kompatibel" sind. Middleware ist die "Infrastruktur" für verteilte Anwendungen. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Schema Middleware im Netz Verteilte Anwendung Middleware Betriebssystem Netzwerk-Hardware Netzwerk Netzwerk-Hardware Netzwerk-Hardware Netzwerk-Hardware Betriebssystem Betriebssystem Betriebssystem Middleware Middleware Middleware Verteilte Anwendung Verteilte Anwendung Verteilte Anwendung Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Middleware-Systeme RPC (remote procedure call) DCE (distributed computing environment) RMI (remote method invocation) CORBA (common object request broker arch.) COM (component object model) DCOM (distributed COM) Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Datenbank-Integration Beide Applikationen teilen eine Datenbank Bestimmte Tabellen werden gemeinsam genutzt Rechteabgrenzung wichtig bei externen Partnern Nativer Zugriff: Embedded SQL (z.B. in "C") ODBC: Open DataBase Connectivity JDBC: JAVA DataBase Connectivity Performant, aber Sicherheits-Risiken! Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Message Transport Systeme Garantie der Zustellung Was man absendet, geht nicht verloren Wenn Transport zum Empfänger scheitert, wird ein Operator alarmiert (siehe Netzwerks-Informations-Management bei SCM) Aufwändig und teuer durch Clearing-Server Meist bei Dienstleistern angesiedelt (IBM) Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Was die Zukunft bringt... XML-RPC: Per http werden in XML codierte remote procedure calls an einen Server gesendet Die Antwort ist eine http-response mit einer AntwortDatenstruktur SOAP: Nachrichtenformat, Codierungsregeln, RPC und Transport-Bindungen. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Organisation von Datenaustausch-Schnittstellen hostcom: Beispiel einer einfachen Organisation für Batch-Schnittstellen. SAP R/3 RFC: Beispiel für Online-Kopplung (RPC-artig, aber mit anderen Mechanismen). Storagement Packplatz: Beispiel für Client-Server mit wenig Organisation außer Wiederaufsetzen nach einem Crash. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Datenformate CSV (comma separated values) Satzarten-Dateien mit festem Satzaufbau (gen_ls) Message-Dateien mit variablem Satzaufbau (EDIFACT, SAP IDoc): Hauptsegment, variable optionale Zusatzsegmente. Auszeichnungs-Sprachen: html, XML, ... Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Datenformat-Standards (1) EDIFACT: Electronic Data Interchange For Administration, Commerce and Transport. EDIFICE: Electronic Data Interchange für die ElektronikIndustrie. CEFICE: Electronic Data Interchange für die ChemieIndustrie. ODETTE: Organisation for Data Exchange by Teletransmission in Europe, http://www.odette.org VDA xxxx: Electronic Data Interchange für die (deutsche) Automobil-Industrie, wird ersetzt durch ODETTE-Standards. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Datenformat-Standards (2) TRADACOM: Trading Data Communication Standard. SWIFT: Society of Worldwide Interbank Financial Telecommunication. SEDAS: Standard-Regelungen einheitlicher Datenaustausch-Systeme. IDoc: Datenaustausch-Standard von SAP R/3. gen_ls: Generische Lieferauftrags-Schnittstelle, Beispiel für ein „Inhouse-Format“. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 VDA-Empfehlungen Schnittstellen und Belege VDA 4905: Lieferabrufe VDA 4913: Lieferschein- und Transportdaten VDA 4920: Speditionsauftragsdaten Lieferant an Spediteur VDA 4921: Transportverfolgungsdaten Spediteur an Kunde VDA 4930: Lagerbestands- und Bewegungsdaten VDA 4902: Warenanhänger (barcodefähig) VDA 4912: DFÜ-Warenbegleitschein Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Beispiel: VDA-Label (4913) Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 VDA Nachrichten und Belege im Zusammenhang Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Szenario mit EDL Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 SAP Idoc-Struktur Control-Records Data-Records Parent Segment Child Segment Type 1 Child Segment Type 2 Child Segment Type 3 Administrative Part Data Segment Status-Records Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Konverter, Mapping Die Formate können durch Konverter ineinander umgewandelt werden, z.B.: gen_ls (Inhouse Flat File) Konverter mit Inhouse->EDIFACT-Mappings EDIFACT-Messages X.400-Mailbox Konverter mit EDIFACT->Inhouse-Mappings Kunden-Inhouse-Format, z.B. SAP R/3 IDoc Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Was ist XML? eXtensible Markup Language (Metasprache) Mit Hilfe von XML lassen sich alle DokumentenTypen beschreiben Dokumenttypdefinitionen (DTD) werden zur Festlegung benutzt Man kann beliebige Strukturen definieren Dokumenteninhalt, Formatierungsdaten und Struktur werden getrennt beschrieben Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 XML-Komponenten DTD: Document Type Description beschreibt die Struktur XML-Schema ist eine Fortentwicklung von DTD CSS (Cascading Style Sheets) beschreiben das Layout von html-Seiten XSL (eXtensible Style Language) beschreibt das Layout von XML-Dokumenten Dadurch können Inhalte beliebig dargestellt werden. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Trennung von Struktur-, Inhaltsund Formatierungsdaten Formatierung Struktur DTD ●XML – Schema XSL ●CSS ●DSSSL ● ● Inhalt XML ●SGML ● Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 DTD-Beispiel <!ELEMENT personen_tabelle (person)*> <!ELEMENT person (name, vorname, telefon?)> <!ATTLIST person person_nr ID #REQUIRED geschlecht (m|w) #REQUIRED> <!ELEMENT name #PCDATA> <!ELEMENT vorname #PCDATA> <!ELEMENT telefon #PCDATA> Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 XML-Beispiel <?xml version=“1.0“?> <!DOCTYPE personen_tabelle SYSTEM „personen_tab.dtd“> <personen_tabelle> <person person_nr=“10“ geschlecht=“m“> <name> Schmidt </name> <vorname> Peter </vorname> <telefon> 030/12345678 </telefon> </person> <person person_nr=“11“ geschlecht=“w“> <name> Schmidt </name> <vorname> Ursula </vorname> </person> <person person_nr=“12“ geschlecht=“m“> <name> Schmitt </name> <vorname> Hans </vorname> <telefon> 030/12344444 </telefon> </person> </personen_tabelle> Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 oder eher „Nokia 8810“? Schnittstellen-Inhalte Durch Formate und Strukturen wird keine Aussage zu den tatsächlich zu übertragenden Inhalten gemacht. Man benötigt daher auf XML aufsetzende Standards, die (analog EDIFACT) die Inhalte vorgeben. Beispiele: BizTalk (Initiative von Microsoft) ebXML (Initiative von UN und OASIS), siehe www.ebxml.org Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Aufgabe Machen Sie einen Lösungsvorschlag für eine auf Anwendungsebene sichere EDI-Lösung: Partner 1 sendet einen Auftrag an Partner 2. Partner 2 empfängt den Auftrag und verarbeitet ihn GENAU EIN MAL. Partner 2 meldet Partner 1 die Bearbeitung des Auftrages GENAU EIN MAL. Partner 1 reagiert angemessen: Wiederholung bei Verlust, Abhaken bei erfolgreicher Bearbeitung. Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005 Details zur Aufgabe Wie sieht ein „Auftrag“ in der Schnittstelle aus? Wie erfolgt die Übertragung physisch? Woran wird erkannt, dass die Übertragung erfolgreich war? Woran erkennt man, dass der Auftrag auch verarbeitet wurde? Wie wird wiederholt, und wie wird sichergestellt, dass der Auftrag nur einmal bearbeitet wird? Prof. Dr.-Ing. Stefan Brunthaler, TFH Wildau, 2003-2005