CLICK TO EDIT MASTER TITLE STYLE AUTOMATISCHE ERZEUGUNG VON BENUTZEROBERFLÄCHEN UND DATENHALTUNG FÜR DIE KONFIGURATION VON FELDGERÄTEN Diplomverteidigung Betreuer (Firma ubigrate): Dipl.-Inform. Falk Hartmann Betreuer (TU Dresden): Dipl.-Inf. Uwe Ryssel Johannes Koch 23. April 2009
CLICK ÜBERSICHT TO EDIT MASTER TITLE STYLE Vorbemerkung: XML und XML Schema Motivation und Aufgabenstellung Geräteintegration mit Java Gerätekonfiguration UI für Gerätekonfigurationen Technologieauswahl Lösung: Mapping XML Schema MXML Sprachvergleich Mappingalgorithmus Implementierung Zusammenfassung und Ausblick Demo 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 2 / 33
CLICK AUFFRISCHFOLIE: TO EDIT MASTER XML UND TITLEXML STYLE SCHEMA erfüllt XML-Dokument - Baum aus Elementen - Elemente haben öffnende und schließende Tags Schema Definiert, welche Form die Elemente in einem XML-Dokument haben können (z.b. Datentypen) Begriffsklärung: XML Schema ist die Sprache, in der XML-Schemata formuliert werden. Ein XML-Schema ist ein konkretes Schema-Dokument (eine Instanz von XML Schema). Eine Schema-Instanz oder Instanz eines Schemas ist ein XML-Dokument, das laut einem bestimmten Schema valide ist. 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 3 / 33
CLICK DIE UBIGRATE-PLATTFORM TO EDIT MASTER TITLE STYLE 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 4 / 33
CLICK GERÄTEKONFIGURATIONEN TO EDIT MASTER TITLE STYLE Multimeter mit RS-232-Schnittstelle GPS-Empfänger mit RS-232-Schnittstelle 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 5 / 33
CLICK GERÄTEKONFIGURATIONEN TO EDIT MASTER TITLE STYLE Ein Konfigurationsschema je Schnittstelle RS 232 TCP Socket 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 6 / 33
CLICK GERÄTEKONFIGURATIONEN: TO EDIT MASTER TITLEUIS STYLE Eine Konfiguration je Gerätetyp, ein UI je Schnittstelle RS-232-Konfigurations-UI Multimeter mit RS-232-Schnittstelle GPS-Empfänger mit RS-232-Schnittstelle 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 7 / 33
CLICK GERÄTEKONFIGURATIONEN: TO EDIT MASTER TITLEUIS STYLE Bei ubigrate eingesetzte UI-Technologie: Adobe Flex Deklarative UI-Beschreibungssprache: MXML Flex-Compiler MXML-Datei (.mxml) Flash-Datei (.swf) 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 8 / 33
CLICK AUFGABENSTELLUNG TO EDIT MASTER - UI TITLE STYLE XML-Schema (.xsd) Zu Erstellen: Mapping und Compiler von XML Schema nach MXML Flex-Compiler MXML-Datei (.mxml) Flash-Datei (.swf) 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 9 / 33
CLICK AUFGABENSTELLUNG TO EDIT MASTER - PERSISTENZ TITLE STYLE Konfiguration (.xml) Marshalling/Unmarshalling Java-Objekte Instanziierung Persistierung Konfigurationsschema (.xsd) Hibernate- Mapping (.hbm) Zu Erstellen: Mapping und Compiler von XML Schema nach HBM RDBMS 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 10 / 33
CLICK TO EDIT MASTER TITLE STYLE Technologieauswahl 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 11 / 33
JAXB: JAVA ARCHITECTURE FOR XML BINDING CLICK TO EDIT MASTER TITLE STYLE XML Schema XML Document marshal Binding Compiler Application JAXB API unmarshal Schema- Derived Classes & Interfaces Content Objects Java-Schnittstelle Abbildung zw. XML- Schema(ta) und Java- Klassen Marshalling von Java- Objekten in XML-Dokumente JAXB Reference Implementation (RI) von Sun 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 12 / 33
CLICK XJC TO EDIT MASTER TITLE STYLE XML Schema XML Document marshal Binding Compiler Application JAXB API unmarshal Marshalling der Instanzen dieser Klassen mit JAXB- Marshaller Schema- Derived Classes & Interfaces Content Objects Teil von JAXB RI Erzeugt Klassen aus Schema(ta) Plugin-Mechanismus 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 13 / 33
CLICK XJC-PLUGIN TO EDIT MASTER TITLE STYLE MXML-Bibliothek (Java) XJC MXML- Generator-Plugin Parser XSOM-Modell Java-Objekte Mapping-Programm Java RS-232- Konfiguration.xsd Flex-Applikation Java-Objekte Marshaller RS-232- Konfiguration.mxml 13.11.2008 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 15 / 33
CLICK TO EDIT MASTER TITLE STYLE Mapping von XML Schema nach MXML 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 16 / 33
CLICK SPRACHVERGLEICH TO EDIT MASTER TITLE STYLE XML Schema MXML logische Gruppierung z.b. <sequence> visuelle Gruppierung z.b. <Group> Element 1 Element 2 Control 1 z.b. Control 2 <TextBox> z.b. <ComboBox> Datentyp 1 Datentyp 2 z.b. int Restriktion z.b. string Facette z.b. <pattern> Wert 1 Wert 2 z.b. <Object> Legende: Zusammenfassung von Konfigurationsparametern Eltern-Kind-Beziehung (von oben nach unten) Validator Werte- z.b. <Array- Collection> sammlung z.b. <NumberValidator> Konfigurationsparameter- Darstellung Objektreferenz Datentypbeschreibung 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 17 / 33
CLICK MAPPINGALGORITHMUS TO EDIT MASTER TITLE STYLE Elementdeklaration mit komplexem Datentyp Visuelle Gruppierung durch Grid oder Form Elementdeklaration mit einfachem Datentyp Gruppierungselement mit Label und Eingabe-Control Art des Eingabe-Controls wird bestimmt durch Datentyp des Schemaelements: Boolean ComboBox Date DateChooser Time 2x ComboBox String oder Zahltyp TextInput oder ComboBox (bei Schwellwertunterschreitung) Eingabe-Controls müssen ggf. durch Validatoren überprüft werden. 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 18 / 33
CLICK MAPPING-BEISPIEL TO EDIT MASTER TITLE STYLE 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 19 / 33
CLICK KOMPLEXE TO EDIT ABHÄNGIGKEITEN MASTER TITLE STYLE XML Schema Element Datentyp z.b. string Restriktion Facette z.b. <pattern> Facette z.b. <length> Validator MXML Control 1 z.b. <RegExValidator> z.b. <TextBox> Validator z.b. <StringValidator> 1. Control-ID-Generierung nutzt Elementnamen 2. Controltyp abhängig von Wertebereichsgröße: vollständige Auswertung der Datentypinformationen nötig 3. Validatorgenerierung benötigt vollständige Auswertung der Datentypinformationen 4. Validatoren benötigen Control-ID zur Referenz Legende: Eltern-Kind-Beziehung (von oben nach unten) Objektreferenz Abhängigkeit 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 20 / 33
AUFLÖSUNG DER ABHÄNGIGKEITEN: CLICK TO EDIT MASTER TITLE STYLE MXMLGENERATOR UND MXMLFACTORY MXMLGenerator MXMLFactory Fertigungsbefehle Zwischenmodell aus Info-Objekten traversiert Marshalling Sch em a MXML-Datei MXMLFactory enthält Modell des zu generierenden MXML-Dokuments Controls und Validatoren werden im Modell durch Info-Objekte (Platzhalter) repräsentiert MXMLGenerator traversiert XML-Schema und verändert Modell in MXMLFactory durch Hinzufügen oder Verändern von Komponenten Nach vollständigem Durchlaufen des Schemas: Marshalling des Modells aus MXMLFactory 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 21 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(1) STYLE MXMLFactory Methodenaufruf: begincontrolcreation Controls in Fertigung Fertige Controls Validations 1 Control 1 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 22 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(2) STYLE Methodenaufrufe: putstringvalidation putstringvalidation- Attribute putpattern MXMLFactory Controls in Fertigung Fertige Controls Validations 1 Control 1 Control 1 StringValidation 1 PatternValidation 1 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 23 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(3) STYLE Methodenaufruf: finishcontrolcreation MXMLFactory Controls in Fertigung Fertige Controls 1 Control 1 Validations Control 1 PatternValidation 1 StringValidation 1 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 24 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(4) STYLE Methodenaufruf: begincontrolcreation MXMLFactory Controls in Fertigung Fertige Controls Validations 1 Control 2 1 Control 1 Control 1 PatternValidation 1 StringValidation 1 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 25 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(5) STYLE MXMLFactory Methodenaufruf: begincontrolcreation Controls in Fertigung 1 Control 2 Fertige Controls 1 Control 1 Validations Control 1 PatternValidation 1 2 Control 3 StringValidation 1 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 26 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(6) STYLE MXMLFactory Methodenaufrufe: putnumbervalidation setnumbervalidation- Attribute setnumbervalidation- Attribute Controls in Fertigung 1 Control 2 2 Control 3 Fertige Controls 1 Control 1 Validations Control 1 Control 2 PatternValidation 1 StringValidation 1 NumberValidation 1 Control 3 NumberValidation 2 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 27 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(7) STYLE MXMLFactory Methodenaufruf: marshal preparemarshalling Controls in Fertigung 1 Control 2 Fertige Controls 1 Control 1 Validations Control 1 PatternValidation 1 2 Control 3 StringValidation 1 Control 2 NumberValidation 1 Control 3 NumberValidation 2 MXML-Modell Form 1 ComboBox 1 ComboBox 2 Validator 1 TextInput 1 Eltern-Kind-Beziehung ArrayCollection1 ArrayCollection2 Validator2 Referenz zwecks Validation Validator 3 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 28 / 33
CLICK MXMLFACTORY EDIT MASTER BEISPIEL TITLE(8) STYLE MXMLFactory Methodenaufruf: marshal Controls in Fertigung Fertige Controls Validations 1 Control 2 1 Control 1 Control 1 PatternValidation 1 2 Control 3 StringValidation 1 Control 2 NumberValidation 1 Control 3 NumberValidation 2 MXML-Modell 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 29 / 33
CLICK TO EDIT MASTER TITLE STYLE Zusammenfassung und Ausblick 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 30 / 33
CLICK ZUSAMMENFASSUNG TO EDIT MASTER TITLE STYLE Sprachanalyse: XML Schema und MXML/HBM strukturell ähnlich, Mapping prinzipiell möglich und sinnvoll, aber im Detail komplexe Abhängigkeiten Mappings für MXML und HBM definiert Compiler für MXML als XJC-Plugin implementiert Auflösung der komplexen Abhängigkeiten durch zweistufige Generierung (MXMLGenerator und MXMLFactory) Compiler für HBM und MXML getestet Lösung wird im Buildprozess der Firma ubigrate eingesetzt 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 31 / 33
CLICK AUSBLICK TO EDIT MASTER TITLE STYLE Erweiterung der Input-Möglichkeiten: Konfiguration von Software-Komponenten (Beispiel: Logger) Konfiguration von??? Erweiterung der Output-Möglichkeiten: Weitere UI-Elemente, z.b. VSlider Andere Oberflächentypen, z.b. HTML Anpassung an neue Versionen von MXML 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 32 / 33
CLICK TO EDIT MASTER TITLE STYLE Vielen Dank für Ihre Aufmerksamkeit! 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 33 / 33
CLICK TO EDIT MASTER TITLE STYLE Demo 23.4.2009 Generierung von Oberflächen und Datenhaltung zur Gerätekonfiguration 34