robotron*SAB Simple Application Builder Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms 23.09.2004, Claudia Böhm Agenda robotron*SAB Anwendungsgenerierung vs. Anwendungsentwicklung robotron*eXForms Vorteile und Nachteile von Frameworks Module des Frameworks XML in eXForms Java in eXForms GUI-Spezifikation Generischer GUI-Builder Vorführung robotron*SAB Simple Application Builder: Datenbankwerkzeug – Anlegen von Datenbankobjekten Anwendungsgenerator – Erstellen von Anwendungen zur Bearbeitung der Daten Entwicklungswerkzeug – Unterstützung bei der Entwicklung von eXForms-Anwendungen – GUI-Builder Berichtwerkzeug – Erstellen von Auswertungen und Berichte robotron*SAB und robotron*eXForms robotron*eXForms Java-Framework zur XML-basierten Anwendungsentwicklung robotron*SAB Generierte Anwendun g Werkzeug zur datenbankbasierten, programmierlosen Anwendungsgenerierung Generierung der XML-Masken Anwendungsgenerator Bildet Laufzeitumgebung (Verarbeitung der XML-Masken) Entwickelte Anwendung Unterstützt bei Maskenerstellung, ... Entwicklungsumgebung Swing-Client Web-Client Berichtwerkzeug Access-Schicht Datenbankwerkzeug Anwendungsgenerierung Erstellung von Anwendungen nur durch Spezifikation Anwendung besteht aus Meta-Daten Anwendungsgenerator trägt die Verantwortung für Konsistenz und Korrektheit der Anwendung einfach und schnell – 5-Minuten-Anwendung – Prototyping Geringe Vorkenntnisse erforderlich – „Power User“ innerhalb der Fachabteilung Begrenzter Funktionsumfang Abdeckung von Standardfällen Anwendungsentwicklung Manuelle Implementierung von Anwendungen Anwendungen bestehen aus Oberflächen- (GUI) und Geschäftslogik-Komponenten Entwickler trägt die Verantwortung für Konsistenz und Korrektheit der Anwendung flexibel und problem-angepasst Kenntnisse in der jeweiligen Programmiersprache erforderlich lange Entwicklungszeiten und hohe Kosten Generierung vs. Entwicklung Häufig ist eine Problemlösung durch Anwendungsgenerierung nicht möglich, da die Standardfunktionen nicht alle Wünsche abdecken. Verbesserung der Anwendungentwicklung durch: Unterstützung bei der Entwicklung – Frameworks Validierung / Tests der Ergebnisse Frameworks Bereitstellung von Standardkomponenten Schnittstellen zur Ergänzung von individuellen Komponenten Daten-Persistenz-Frameworks • BC4J, EJB, JDO, TopLink, ... Bussiness-Logik • BC4J, EJB, ... GUI-Frameworks • JFC (Swing), UIX, ... Frameworks Vorteile: – Standardkomponenten – Einheitlichkeit (Strukturierung der Anwendung, Entwicklungsparadigmen) Nachteile: – Einarbeitungsaufwand – Kosten (abhängig von gewähltem Framework) – Abhängigkeit robotron*eXForms eXtensible Forms Framework zur Entwicklung datenbankbasierter Unternehmensanwendungen Klare Trennung von GUI (XML) und Geschäftslogik (Java) Open Source XML JAVA als Beschreibungssprache zur Verarbeitung robotron*eXForms GUI-Änderungen werden beschrieben, nicht programmiert – Beschreibung in XML-File – Masken können ggf. durch Fachbereich gestaltet werden Trennung von Layout und Logik – Verteilung/Parallelisierung der Entwicklung – Einfachere Wartung und unabhängige Änderung des Layouts möglich einmalige Entwicklung für unterschiedliche Clients – Web-Client • Unterstützung von aktuellen Browsern (IEx 5.5+, Netscape 6+, Mozilla 1+) und alter Browser (Netscape 4.7) • automatisierte Konvertierung für unterschiedliche Auflösungen – Swing-Client, .Net-Client, XForms-Client, … robotron*eXForms Module: eXFormsWebclient Projekt- eXFormsGUISwing Editor eXFormsclient monitor spezifsch eXForms-access eXForms-data JDBC Datenbank eXFormstools EJB Datenbank robotron*eXForms XML in eXForms – Warum? XML bietet Vorteile bei: – Verarbeitung • Komponenten zur Verarbeitung in nahezu allen Sprachen verfügbar • Tools zur Verarbeitung (Parsing, Xpath, Transformation, Validierung,...) – Transport • Textbasiert, dadurch Transport über verbreitete und standardisierte Protokolle (HTTP, SMTP, etc.) einfach realisierbar – Speicherung • je nach Anforderung unterschiedliche Medien möglich • breite Unterstützung durch Hersteller von Persistenz-Systemen robotron*eXForms XML in eXForms – Wofür? – GUI-Komponenten • Maskenbeschreibungen • Beschreibung von Bäumen • Menüdefinitionen – Aktionsverknüpfungen (Trigger) – Datenzugriffschicht robotron*eXForms Java in eXForms – Warum? – Plattformunabhängigkeit – Freie Bibliotheken (XML, Mail, Charts, Logging, ...) Java in eXForms – Wofür? – Framework-Runtime – FormHandler, TreeHandler, LoginHandler, Authenticator, ... robotron*eXForms EJB: EntityBeans – Performance-Problem beim Zugriff auf die Daten und beim Deployment direkte Verwendung als der Bean-Klasse oder einer beliebigen anderen Klasse SessionBeans Aufrufende Klasse Ixxx Proxy Klasse „normaler Aufruf“ über Home-Object GUI-Spezifikation GUI-Builder Produkt-/Projektspezifsche Gui-Builder-Bestandteile Renderer Wizards GUI-Builder Drag & Drop, Resize, Move, XML-Text-/Struktur-Editor, Speichern, Öffnen Vorführung