Deutsch English

Übersicht über das Aviantes-Business-Application-Framework für Java

Zweck des Aviantes-Business-Application-Frameworks ist es, Java-Entwickler bei der Implementierung von professionellen Business-Applikationen zu unterstützen. Dabei stellt das Framework eine komplett lauffähige Basis-Applikation mit Client, Server und Datenbank-Anbindung zur Verfügung. Die Entwickler können sich somit ganz auf die Erstellung der fachspezifischen Details der Anwendung konzentrieren. Dazu werden Module sowohl auf der Client- als auch auf der Serverseite erstellt und in das Framework integriert. Bei der Erstellung der Module werden Entwickler ebenfalls unterstützt. Standard-CRUD-Module können sehr einfach und vor allem sehr schnell erstellt werden (basierend auf XML-Dateien, mehr dazu weiter unten). Das Framework selbst kann ebenfalls sehr einfach an eigene Wünsche und Gegebenheiten angepasst bzw. erweitert werden. Darauf wurde bei der Entwicklung des Frameworks sehr viel Wert gelegt.

Das Aviantes-Framework wurde komplett in Java implementiert und ist somit auf allen Plattformen lauffähig auf denen auch Java läuft. Vorausgesetzt wird dabei mindestens Java 5. Abgebildet wird das klassische Three-Tier-Model, bestehend aus Swing-Rich-Clients, einer Server-Komponente und einer oder mehrerer externer Datenbanken.

Three-Tier-Model bestehend aus Clients, Server und Datenbanken

Als Datenbank kann dabei im Moment Microsoft SQL-Server, Oracle, MySQL oder PostgreSQL verwendet werden. Weitere Datenbank-Anbindungen können sehr einfach in das Framework integriert werden.

Server

Der Server dient als Container für die fachspezifischen Module (Business-Logik). Er übernimmt die vollautomatische Einrichtung der Datenbank(en). Dabei wird für jeden Mandanten eine Datenbank verwendet. Der Server wird vorzugsweise in einem J2EE Container wie z.B. dem Tomcat eingesetzt. Es ist aber auch möglich, ihn in ganz anderen Umgebungen zu verwenden. Dazu muss nur eine geeignete Wrapper-Klasse erzeugt werden. Auch ein Standalone-Betrieb wäre so denkbar. Eine Wrapper-Klasse zur Verwendung des Frameworks in J2EE-Containern wird dabei mitgeliefert, so dass eine sofortige Einbindung z.B. in den Tomcat möglich ist.

Datenübertragung zwischen Client und Server

Die Datenübertragung zwischen den Clients und dem Server geschieht über Standard-Java-Streams. Dabei müssen keine besonderen Voraussetzungen erfüllt sein. Wird die Standard-Implementation verwendet, so wird die Kommunikation direkt über den Port des J2EE-Containers abgewickelt (z.B. Port 80). Die Clients können somit überall dort eingesetzt werden, wo auch ein normaler Browser lauffähig ist. Es müssen keine besonderen Firewall-Einstellungen vorgenommen werden. Es ist auch sehr einfach möglich, in die Datenübertragung einzugreifen, um so z.B. spezielle Kommunikations-Modelle abzubilden oder um eine Datenverschlüsselung zwischen Client und Server zu implementieren.

Client

Der Client basiert auf Swing und kann z.B. über Java-Webstart direkt aus einem Browser gestartet werden. In den Client werden fachspezifische Module gehängt. Das Framework implementiert schon Module zur Benutzer-, Rollen-, Modul-/Menü- und Mandantenverwaltung, die natürlich auch durch eigene Varianten ausgetauscht werden können, wenn das gewünscht ist. Die Darstellung der einzelnen Module kann in folgenden Varianten geschehen:

Weitere Varianten können selbst implementiert werden. Standard-Module zur Abbildung von CRUD-Funktionalitäten - also zum anlegen, einsehen, verändern und löschen von Datensätzen können sehr einfach durch XML-Dateien definiert werden. Diese Module - im Aviantes-Framework als XML-Module bezeichnet - sind dann, ohne eine einzige Java-Zeile programmiert zu haben, sofort komplett lauffähig. Dadurch wird es möglich, innerhalb weniger Stunden schon sehr komplexe Standard-Module zu erzeugen. Fachspezifische Anpassungen werden durch Ableitung bestimmter Klassen an diesen Modulen vorgenommen. Selbstverständlich ist es auch möglich, spezielle Module komplett selbst zu entwickeln. Das XML-Modul-Framework selbst kann durch eigene Panels und Widgets (Komponenten auf den Panels) erweitert werden. Dadurch wird dieses Framework sehr mächtig und ermöglicht eine sehr effiziente Erstellung von professionellen Applikationen. Die Texte im Framework sind lokalisierbar (auch in den XML-Modulen und -Panels). Vorhandene Icons und Grafiken können durch eigene Varianten ausgetauscht werden. Über den Java-UIManager können Farben und Fonts des gesamten Clients angepasst werden.

Jedes Modul besteht aus einem oder mehrerer Panel, die in Form von Karteireitern (Tabbed-Pane) innerhalb des Moduls angeordnet werden. Bei XML-Modulen können Abhängigkeiten zwischen den Panels definiert werden, um Master-Detail-Beziehungen abzubilden. Selbst programmierte Panels können mit XML-Panels innerhalb eines Moduls gemischt werden.

Das Aviantes-Framework verwendet eine rollenbasierte Benutzerverwaltung. Jedem Benutzer werden eine oder mehrere Rollen zugeordnet, wobei jede Rolle bestimmte Rechte an bzw. in den Modulen zugeteilt bekommt. Anhand dieser eingestellten Rechte bekommt dann jede Rolle nur die Module zu sehen, die sie auch benutzen darf. Darüber hinaus kann für jedes Modul auch konkret festgelegt werden, welche Aktionen die Rolle in diesem Modul durchführen darf, z.B. nur Datensätze einsehen aber nicht verändern oder Datensätze einsehen und verändern aber nicht löschen usw. Auch dieses Verhalten in anpassbar und jedes selbst implementierte Modul kann selbst festlegen, welche Rechte es zur Verfügung stellt.

Bei der Implementierung des Frameworks wurde sehr darauf geachtet, dass dieses sehr flexibel an eigene Bedürfnisse angepasst werden kann. So bietet es neben der schon beschriebenen Modularität auch die Möglichkeit, Kern-Bestandteile des Frameworks durch eigene Funktionalitäten auszutauschen bzw. zu erweitern.