220 likes | 351 Views
Datenaustausch mit XML und ECMA-Script. Dipl.-Ing. Horst Fiedler. Aufgabenstellung. Datentransfer mit parametrisierbarer Strukturkonvertierung. Erfassungssystem. Q-Sicherungssystem. Universell/kategorisiert. Prüfstandstypspezifisch. XML und Datentransfer.
E N D
Datenaustausch mit XML und ECMA-Script Dipl.-Ing. Horst Fiedler
Aufgabenstellung Datentransfer mit parametrisierbarer Strukturkonvertierung Erfassungssystem Q-Sicherungssystem Universell/kategorisiert Prüfstandstypspezifisch
XML und Datentransfer Warum XML für Datentransfer ? XML ist eine IT-Basistechnologie, hat breite Unterstützung in der IT-Industrie (auch MS scheint XML als Standard zu akzeptieren), und hat die für Austausch relevanten Probleme mit Zeichensätzen, ... gelöst, ohne auf dieses Thema eingeschränkt zu sein Unbegrenzte Einsatzvielfalt Ó ASAM e. V.
Dokumenttypfestlegung • Ergibt sich aus der Struktur der zu transportierenden Daten, und dieist zumindest an einem EndeASAM-ODS strukturiert (ODS 3). Quelle: ODS 2 (d.h. Vorläufer) • Aber: Völlig unterschiedliche Attribute-Entitäten Zuordnung Transformationseignung ist wesentlich Ó ASAM e. V.
DTD Festlegung Wo beginnt ASAM ? 715 715 km/h <value typ=“float“ unit=“km/h“>715</value> Wenn gewisse Eigenschaften vorhanden sind, insbesonders Struktur Ó ASAM e. V.
Minimales Dokument <AOXS> <AE ID="a1" NAME="Messungen"> <AA ID="a11" NAME="Name"/> <AS ID="a12" NAME="Messgrößen" REF="a23"/> <IE ID="i1"><IV>EinWertMessung</IV><IS REFS="i2"/></IE> </AE> <AE ID="a2" NAME="Messunggrößen"> <AA ID="a21" NAME="Name"/> <AA ID="a22" NAME="Einheit"/> <AR ID="a23" NAME="Messungen" REF="a12"/> <IE ID="i2"><IV>vmax</IV><IV>km/h</IV><IR REF="i1"/></IE> </AE> <MI REF="i1"><MS><MC REF="i2"><MV>715</MV></MC></MS></MI> </AOXS>
Dokument entsprechend aktuellem Basismodell <AOXS2> <AE ID="a1" NAME="Messungen"> <AA ID="a11" NAME="Name"/> <AS ID="a12" NAME="Messgrößen" REF="a23"/> <AS ID="a13" NAME="Teilmatrizen" REF="a32"/> <IE ID="i1"><IV>EinWertMessung</IV><IS REFS="i2"/></IE> </AE> <AE ID="a2" NAME="Messunggrößen"> <AA ID="a21" NAME="Name"/> <AA ID="a22" NAME="Einheit"/> <AR ID="a23" NAME="Messungen" REF="a12"/> <AS ID="a24" NAME="Spalten" REF="a42"/> <IE ID="i2"><IV>vmax</IV><IV>km/h</IV><IR REF="i1"/><IS REFS="i4"></IE> </AE> <AE ID="a3" NAME="Submatrizen"> <AA ID="a31" NAME="Name"/> <AR ID="a32" NAME="Messungen" REF="a13"/> <AS ID="a33" NAME="Spalten" REF="a43"/> <IE ID="i3"><IV>1</IV><IR REF="i1"/><IS REFS="i4"/></IE> </AE> <AE ID="a4" NAME="Spalten"> <AA ID="a41" NAME="Name"/> <AR ID="a42" NAME="Messgröße" REF="a24"/> <AR ID="a43" NAME="Submatrix" REF="a33"/> <IE ID="i4"><IV>vmax</IV><IR REF="i2"/><IR REF="i3"/></IE> </AE> <VS REF="i4"><V>715</V></VS> </AOXS2>
Query - Transform - Merge Ideales Konzept ... ASAM-ODS Query XSL Transformation ASAM-ODS Merge
XSL/T ... und unpassende Realität Das Erfassungssystem erlaubt zwar den Zugriff mit ODS-API (-vorläufer) und hat (emuliert) auch eine Applikationsstruktur, die „interessanten“ Daten (diejenigen, die als Applikationsstrukturattribute im Zielserver vorgesehen waren) sind als Meßwerte in Teilmatrizen hinterlegt. XSL/T passt schlecht bis gar nicht
Struktur + Skripts ... führen zu alten Mustern - Skripts zur Ermittlung der benötigten Werte, eingebettet in die gewünschte Struktur: Templates
Query - Merge Transformation bei der Abfrage Template-Prozessor (Exzerpt Generator) ASAM-ODS Merge
Template (Ausschnitt) XML Processing Instructions <AA ID="A2.8" NAME="Epsilon"> <?p1 { return aops.getMDV('!E','EPS',0); }?> </AA>
Skript (Ausschnitt) Ablaufumgebung aox = new Aox('myTemplate.xml'); aops = new Aop(sourceAddr); aox.process("p1", aops, ie); aopt = new Aop(destAddr); aox.relate(aopt, "s"); aox.store(aopt);
Automatisierung Service Interactions: SOAP Universal Data Format: XML Ubiquitous Communications: Internet Ó ASAM e. V.
XML-RPC Start Stop Status Client (GUI) Auto- -mation Transfer Transfer SOAP Change monitor ODS 3.2 API Store Load ODS B ODS A Ó ASAM e. V.
SOAP für WebService-Anbindung • Leichtgewichtigohne zusätzliche Transportprotokolle, keineweiteren Ports, ... • Einstellbarer Scopeerlaubt persistente Services • Plattformunabhängigvon Java, Windows-SDK's, ... • Bindbar an mehrere Implementierungssprachen(auch ohne CLR)
Web-Integration Mit der Bereitstellung von WebServices ist es nicht getan, insbesonders die Verteilung von Services (Deployment) und Zugriffsschutz (Authorization) müssen geregelt sein, wohin man dabei auch tritt: XML findet sich in - Deploymentdeskriptoren - Servicebeschreibungen - Launch-Protokollen, usw.
Konfigurationen Transferanwendung Interzeptoranwendung
Skript (Ausschnitt) Ablaufumgebung aox = new Aox('myView.xml'); aop = new Aop(sourceAddr); aos = new Aos(aox, aop, viewAddr, 180000); aos.run();
View (Ausschnitt) XML Processing Instructions <AA ID=“A2.4“ NAME=“D“ DTYP=“FLOAT“/> <AA ID="A2.91" NAME="DIA" DTYP="DOUBLE"> <?map A2.4?></AA> <AA ID="A2.92" NAME="D/2" DTYP="DOUBLE"> <?map { return aop.getIEValue(id(aid,iid),"D")/2.0; }?></AA>
ASAM-ODS und XML Wie das hier vorgestellte Projekt besteht auch ASAM-ODS aus - Datenformat/struktur (Basismodell, Datentypen, ...) und - Interaktionen (API's) XML kann durchgängig in beiden Bereichen verwendet werden, aber Achtung: Die hier gezeigte Verwendung von XML ist von keiner ASAM-ODS Festlegungen geregelt, und z.Z. Sind auch keine Bestrebungen bekannt, ein leichtgewichtiges Schema (bzw. DTD) festzulegen.
Danke für Ihre Aufmerksamkeit Technische Informatik Fiedler FürstenFeld