|
||||||||
Zweck
JUVE als Applikationsframework und Architektur liefert eine einfache und solide Lösung für ein breites Spektrum von Applikationen: von einfachen, Single-Tier-Applikationen bis hin zu den Multi-Tier-Applikationen mit hoher Transaktionslast. JUVE ist ursprunglich implementiert in JAVA, aber es ist stark portabel, verwendet keine JAVA-Besonderheiten. JUVE stellt in den Vordergrund und fordert die konsequente Anwendung von objektorientierten Methoden in dem Entwicklungsprozeß.
Technologie
JUVE basiert auf dem Schichtenarchitekturmodell und fördert dessen konsequente Verwendung in der Applikationsanwendung. Als die Hauptschicht der Anwendung fungiert eine Domänenschicht, die die Business Objekte der Geschäftsdomäne enthält. Die Domänenschicht kann symmetrisch auf dem Client und auf dem Server eingesetzt werden. Das Basisszenario ( Einlesen der Business Objekte aus der Datenbank, Übertragung zum Clientteil, Verarbeitung auf dem Client, Übertragung der Verarbeitungsergebnisse zum Server und Aktualisierung der Änderungen in der Datenbank ) erfordert, daß die Business Objekte ( als Einzelobjekte, Objektlisten, Objektbäume oder Objektgraphen ) zwischen dem Client und Server übertragen werden, mithilfe der JUVE-eigenen, optimierten Mechanismen der Objektserialisierung und -kommunikation. Dieses Konzept unterscheidet sich bewußt von den zumeist in den populären Applikationsframeworks verwendetem Proxy-Designpattern. XML wird bei JUVE als Standardkommunikationsmittel verwendet. Zwecks Optimierung für kritische Anwendungen wird auch eine besonders optimierte eigene Kommunikation angeboten. Durch Verwendung von XML kann beispielsweise ein JAVA-Server mit einem C++-Client direkt kommunizieren. Der Kerncode von JUVE bietet Mechanismen für
Die Datenbankzugriffschicht wird bei JUVE komplett entwickelt durch den Anwendungsentwickler. JUVE liefert einige Grundklassen, die die Schnittstellen und Mechanismen definieren. Aber die Hauptarbeit muß von dem Anwendungsentwickler geleistet werden. Eine Verwendung von OO-RDBMS-Mapping-Tools ist möglich, wird aber nicht bevorzugt. Ein JUVE Code Generator vereinfacht etwas die Entwicklung, aber es bleibt nach wie vor noch viel zu tun. Warum so: wir gehen davon aus, daß die Datenbankzugriffsschicht ein wesentlicher und zentraler Punkt ist für die Gewährleistung einer hohen Performance des Systems und aus diesem Gründe ermöglichen wir die Verwendung von fast allen SQL-Optimierungsmechanismen. In der JUVE-Entwicklungsumgebung gibt es keine Blackbox, alles ist offen, der Entwickler kann mit dem Debugger direkt den Zugriffscode prüfen und nahezu beliebige Optimierungsmaßnahmen treffen. Das Kommunikationskonzept von JUVE ist portabel: es gibt Implementierungen auf der Basis von TCP/IP-Sockets, RMI-Server, EJB-basierende Umgebung, und JUVE-eigenen hochskalierbaren Server. Dank der starken XML-Orientierung und einer WebServices/SOAP-basierenden Kommunikationsvariante, die Zukunft der JUVE-Applikationen ist sicher. JUVE verzichtet bewußt auf die Verwendung von Metamodell-Ansätzen, der Code ist offen sowohl in dem Anwendungsteil als auch in dem Framework selbst. JUVE-Framework ist ziemlich einfach und durchschaubar. Ein durchschnittlicher Entwickler mit OO-Erfahrung kann sehr schnell eine Anwendungsentwicklung mithilfe von JUVE beherrschen.
Wichtigsten Bestandteile / Module JUVE setzt sich aus mehreren Modulen zusammen, die zumeist unabhängig voneinander eingesetzt werden können:
JUVE XML ist ein Basisframework zur Realisierung von der hochperformanten Serialisierung von Objekten und ist Basis zur Realisierung der hochperformanten Datenkommunikation. JUVE XML in der Grundversion implementiert XML basierende Serialisierung. Darüberhinaus enthält JUVE XML weitere Serialisierungsvarianten wie Binärserialisierung, Unterstützung für die komprimierte und verschlüsselte Serialisierung, XML-Compare-Klassen, usw.
JUVE Basic enthält Basisklassen zur Realisierung der Datenverarbeitung. Der wichtigste Klassenbaum beginnt mit der Klasse EntityState. EntityState definiert einen Zustandmechanismus, mit dem die Änderungen des Objekts und der Daten des Objekts festgehalten werden. In der Klasse BasicEntity wird der Grundstein gelegt für die Datenverabeitung und deren Speicherung in relationalen Datenbanken. Die Klasse StandardEntity erweitert seine Basisklassen um Standardattribute, die häufig in der Datenbank gebraucht werden. Die Klasse Term liefert Grundstein für die Verwendung von statischen Daten in der Anwendung ( Daten, die selten geändert werden und somit einfach im Cache festgehalten werden können ). Die Klasse DatedEntity ist Basisklasse für alle datumbezogenen Objekte. Die Klasse PeriodEntity stellt Basis dar für das Periodenhandling in der Anwendung. JUVE Basic enthält Basiccontainerklassen, die dem Anwendungsentwickler das Leben leichter machen, indem sie die Standardklassen um die am häufigsten benötigte Funktionalität im Kontext der Client/Server-Umgebung erweitern.
JUVE People enthält die Definition und Implementierung der grundlegenden Strukturen zur Verwaltung der Personendaten, deren Adressen, Telefonnummern, EMail-Adressen usw. Die Klassen von JUVE People sind leicht erweiterbar. Auf dieser Basis können CRM/ERP/Buchhaltungslösungen und andere gebaut werden, ohne daß man sich mit den Grundlagen beschätfigen muß.
JUVE Appli enthält Strukturen und Funktionalität, die notwendig ist zur Realisierung von komplexeren Anwendungen: - Userverwaltung, Definition der Kommandos, Permissions, Userrollen - Logmanagement, Prozessverwaltung, Application-Definition - Scheduler zur Taskverwaltung
JUVE Resource Management Modul erlaubt das Management von Systemressourcen wie Datenbankverbindungen, Data Stores, File Stores, etc. Die Ressourcen werden je nach Charakter optimal verwaltet: die Datenbanksessions können basierend auf JDBC2 oder anderen Mechanismen gepoolt werden, die statischen Daten bzw. Dateien können im Cache gehalten werden und je nach Änderungsmodalitäten der Anwendung zur Verfügung gestellt werden. Mittels dieses Moduls kann sich die Anwendung auf optimale Art und Weise die Ressourcennutzung zentral und ressourcensparend verwalten.
JUVE Web Services ist eine Grundbibliothek zur Realisierung der Web Services basierenden Kommunikation nach dem SOA-Architekturprinzip. Dabei wird ein JUVE Web Service Provider Konzept zur Basis gelegt, mit dem eine Anwendung die Schnittstellen gruppieren kann und die Implementierung der Serverfunktionalität generisch mittels JUVE Basisklassen als Übergabeparameter definieren kann.
JUVE Client Framework ist ein komplettes Framework zur Realisierung des Clientteils der Anwendung und Implementierung von GUI. Dabei wird ein modifiziertes MVC-Pattern ( MVC+ Architecture Pattern, siehe dazu MVC+ Architektur Pattern.pdf ) angewandt, in dem die Zusammenarbeit der Schichten View und Controller über abstrakte Schnittstellen nach dem Listener Pattern entkoppelt wird. Dadurch wird folgendes Ziel erreicht: die Controller-Schicht ist fast komplett wiederverwendbar, wenn beispielsweise eine neue GUI-Bibliothek mittels einer neuen View-Schicht eingesetzt werden soll. Unter Verwendung des JUVE Web Client Frameworks gilt es auch für die Implementierung eines HTML-Frontends für eine Anwendung ! Als Modell-Schicht wird eine Domänenklassenschicht verwendet, die auf die anderen Teile des JUVE Frameworks sich stützt. JUVE Client Framework enthält neben einigen abstrakten Schnittstellen und Grundklassen auch einige ganz konkrete Klassen, die eine Implementierung in der jeweiligen GUI-Bibliothek erleichtern ( JAVA SWING, JAVA SWT, C# Forms etc. ).
JUVE Web Client Framework ist eine Implementierung nach Muster des JUVE Client Frameworks zur Unterstützung des HTML-Frontends der Anwendung. Beim JUVE Web Client Framework gehen wir eigene Wege: kein JSP, kein ASP, etc. Die HTML-Generierung beim JUVE Web Client Framework stützt sich auf das Template-Filter-Pattern: - der HTML Designer entwickelt HTML-Seitenmuster, in denen er zur Kennzeichnung von Datenfelderinhalten Datentags verwendet ( zB. %%User%%Vorname%% ) - HTML Filterklasse vom JUVE Web Client Framework während der Verarbeitung filtert die HTML-Seiten-Musterdatei ( verwaltet im Cache durch JUVE Resource Manager ) zeichenweise ( dabei wird 1 Zeichen maximal einmal verarbeitet ) und ersetzt "on the fly" die Datentags durch die konkreten Daten In den HTML-Musterdateien wird weder JAVA-Code noch irgendein Pseudocode verwendet, dadurch erzielt man folgenden Vorteil im Entwicklungsprozeß: - beim HTML-Design sind dem HTML-Design fast keine Grenzen gesetzt. - die Applikationsentwicklung ist vom HTML-Design weitgehend entkoppelt JUVE Web Client Framework garantiert eine sehr hohe Performance und Hardwareressourcennutzung.
Neue Möglichkeiten für die Entwicklung
Der Softwareentwicklungsprozeß mit JUVE basiert auf UML-Methode und entspricht in Grundzügen den Prinzipien der Model Driven Architecture.
Weitere Dokumente Juve Architecture Framework ( Power Point Präsentation als PDF ) Juve SQL Layer Framework ( Power Point Präsentation als PDF ) MVC+ Architektur Pattern ( PDF )
Kontakt
|
||||||||