Seit November 2009 steht das imatics Formularframework
*FormEngine der
Öffentlichkeit zur Verfügung. Seitdem wächst das
Interesse an dieser
Basistechnologie zur einfachen Definition und Abarbeitung
komplexer und
hochdynamischer Formulare stetig. Neben der etablierten
Lösung zur Automatisierung von Geschäftsprozessen
imatics *ProcessSuite präsentiert die imatics Software
GmbH die *FormEngine erstmals auf der OOP 2010 vom 26. bis
28. Januar 2010 im ICM in München.
Formulare
gehören zur täglichen Arbeit eines Web-Entwicklers.
Dabei steigen die Anforderungen an moderne, interaktive
Formulare kontinuierlich. Sofortige Validierung der
Eingaben oder die dynamische Aktualisierung von
Auswahllisten sind heute kaum noch wegzudenken.
Verschiedene Java-Frameworks oder auch übergeordnete
Standards wie XForms sollen die Entwicklung solcher
Formulare erleichtern. Bei Projekten mit festen
Datenstrukturen sind diese Frameworks zum Teil hilfreich.
Wird das Modell, auf dem die Formulare arbeiten, erst zur
Laufzeit festgelegt, ist die Sache schon komplizierter –
z.B. bei einem dynamischen CMS.
Die *FormEngine ist ein Java Web-Framework zur einfachen
Definition und Abarbeitung komplexer und dynamischer
Formulare. Dies umfasst die Überprüfung der Eingaben in
den Formularfeldern, die Berechnung von Feldinhalten
abhängig von den Eingaben in anderen Feldern sowie das
dynamische Aktivieren oder Ausblenden von Komponenten
abhängig von anderen Benutzereingaben.
Die Entscheidung für ein Framework zur Entwicklung von
Benutzeroberflächen bedeutet häufig, die gesamte
Anwendung nach dessen Vorgaben auszurichten. Die imatics
*FormEngine ist ein schlankes Framework, das sich zur
Aufgabe gesetzt hat, die Erstellung und Integration von
Formularen auch in bestehende Anwendungen zu vereinfachen.
Dabei steht die Entwicklung der gewünschten
Funktionalität ohne aufwendige Konfiguration im
Vordergrund.
Der Vorteil der *FormEngine gegenüber vielen anderen
Frameworks besteht in der einfachen Integration in jeden
Servlet Container. Es ist nicht notwendig, die gesamte
Anwendung auf das Framework auszurichten. Die Distribution
besteht ausschließlich aus Bibliotheken, die in den
Klassenpfad der Web-Anwendung kopiert werden. Mit der
Registrierung von Filtern in der web.xml ist die
*FormEngine komplett eingebunden und sofort einsetzbar.
Die generierten Formulare können an beliebiger Stelle in
die eigene Anwendung integriert werden.
Alle Bestandteile der *FormEngine sind bei Bedarf mit
eigenen Implementierungen beliebig erweiterbar. Durch die
Kombinationsfähigkeit der Renderer lassen sich aus
bestehenden und eigenen Renderer-Implementierungen
komplexe GUI-Widgets zusammenstellen.
Kalkulatoren ermöglichen dynamische Berechnungen von
Komponentenwerten. Der existierende Satz an vordefinierten
Kalkulatoren kann auch hier beliebig kombiniert und durch
eigene Implementierungen erweitert werden, so dass
innerhalb eines Formulars auch komplexe Berechnungen
ausgeführt werden können.
Die Überprüfung der eingegebenen Inhalte erfolgt
ausschließlich serverseitig anhand von Validierern in
Form von Java-Klassen, deren Zusammenspiel in der XML-
Definition des Formulars oder über die API festgelegt
wird. Die anzuwendenden Regeln sind aus den verfügbaren
Validiererimplementierungen frei kombinierbar.
Die *FormEngine ist getreu den Entwicklungsprinzipien der
imatics Software GmbH pragmatisch, zielorientiert und
effizient implementiert. Die interne Datenhaltung
ermöglicht eine schnelle Auswertung der Abhängigkeiten
der Komponenten untereinander. Zustandsänderungen,
Neuberechnungen und Validierungen werden so via
Client-Server-Kommunikation schnell ausgeführt.
Die Trennung von Formular-Definition und Instanz
ermöglicht eine Minimierung des Speicherbedarfs. Renderer
sind thread-safe implementiert und können so für alle
Formular-Instanzen, die einer Definition zugeordnet sind,
gleichzeitig verwendet werden.
Der Lebenszyklus des Formulars beschränkt sich auf die
Ansicht der HTML-Seite, in die das Formular eingebettet
ist. Jegliche Server-Kommunikation erfolgt per Ajax, so
dass es keine zusätzlichen Request-Zyklen auf diese Seite
gibt. Somit wird die eigentliche Seite ohne Rück- sicht
auf den Lebenszyklus der Formulare aufgebaut.
Auf
www.form-engine.de sind die Funktionsweise sowie
Unterschiede zu
anderen Formulartechnologien dargestellt. Viele Beispiele
zu den
verschiedenen formularspezifischen Themen (Generierung,
Validierung,
Berechnungen, Zustandsänderungen, Lebenszyklus) geben
einen guten
Einblick in diese Technologie.



