Technische Details

OpenSAGA basiert auf den folgenden Standards und Libraries:
- Java Servlet API 2.4+
- Spring
- Spring Faces / Webflow / JSF
- Hibernate / JDBC
- XHTML 1.0 transitional, CSS, JavaScript
- jQuery
Progressive Enhancement
OpenSAGA setzt nicht nur auf die oben erwähnten Webstandards, sondern implementiert durchgehend komponenten-basiertes Progressive Enhancement mit einem Model-unterstützten Widget-System.
Progressive Verbesserung (engl. progressive enhancement) beschreibt eine Methode im Webdesign, die Barrierefreiheit, semantische Auszeichnung und Trennung von Information und Präsentation beinhaltet, um eine Website auch für Endgeräte benutzbar zu machen, die nur über eingeschränkte Funktionen (JavaScript-/CSS-/Flash Unterstützung) verfügen. Die Philosophie dahinter ist, dass Webseiten grundsätzlich mit jedem Webbrowser und jeder Art Internetverbindung in ihrer grundlegendsten Form – der Bereitstellung von Information – zugänglich sein sollte und Benutzern mit besserer Bandbreite und fortgeschritteneren Browsern mit erweiterter Funktionalität eine verbesserte Version der Seite dargestellt wird.
-- Progressive Verbesserung auf Wikipedia
Dank Progressive Enhancement haben wir prinzipiell immer eine ohne JavaScript und CSS funktionierende Applikation, deren Benutzerfreundlichkeit und Aussehen dann mit CSS verbessert wird. Anschliessend können wir, auch fein-granular, das vorhandene XHTML mit JavaScript zu einer vollständigen, modernen Web 2.0-Anwendung erweitern.
Performanz
OpenSAGA basiert auf der Java Servlet API und damit auf einer, von vielen Herstellern unterstützten Plattform mit sehr guten Performanz-Eigenschaften. Darüber hinaus nutzen wir die Vorteile des Modell-basierten Ansatzes zur Optimierung der Performanz auf der Client-Seite. Dies geschieht einmal durch eine Datenmengen-Reduktion durch Komprinierung, zum anderen durch Http-Request-Vermeidung durch Kombination gleichartiger Ressourcen.
OpenSAGA-Komponenten bestehen aus einem JSF-Meta-Template, dass aus einem entsprechenden UI-Modell ein JSF-Schnipsel generiert. Die Komponenten können ausserdem CSS und JavaScript Abhängigkeiten definieren, die im laufenden System optimiert kombiniert und komprimiert werden, um möglichst wenige HTTP-Requests zu benötigen und damit maximale Client-Side Performance zu erreichen.
Auch auf der JavaScript Seite ist uns das OpenSAGA-Modell eine grosse Hilfe. So besitzt jeder View einen Meta-Data-Block, der ihm zum Beispiel sagt, welche Widgets auf der Seite benutzt werden, damit auch nur diese Widgets gefunden und progressiv verbessert werden müssen.


