Technology

Technologie

Performant und skalierend

Durch die hohe Effizienz des OLAT Entwicklungsframeworks wird ein kleiner Memorybedarf erreicht und die generierten HTML Seiten erreichen den Benutzer durchschnittlich nach nur 30 Millisekunden. Dies wurde mehrfach in grösseren Installationen (>500 concurrent user) unter Beweis gestellt.

Sicher und stabil

Das komponentenbasierte Entwicklungsframework macht es unmöglich, durch Manipulation von URLs in nicht autorisierte Bereiche zu gelangen. Ebensowenig ist es möglich durch SQL Code Injection direkt auf die Datenbank zuzugreifen, denn die Eingabedaten der Benutzer und die Datenbankabfragen werden strikte getrennt. Eine automatische Prüfung alle Eingabefelder auf eingeschleustes HTML verhindert zudem Cross-Site Scripting Attacken.

Mächtige Infrastruktur

Das OLAT Entwicklungsframework bietet Entwicklern eine umfassende Infrastruktur an. Ein Event Bus für GUI- und Multiuserevents stellt die Kommunikation zwischen Framework, Komponenten und Kontrollern sicher. Das Filesystem ist komplett abstrahiert durch eine leistungsfähiges virtuelles Filesystem, das auch über WebDAV angesprochen werden kann.

MVC Entwicklung

Viele Webapplikationen kodieren Businessidentifikatoren in URL's und dekodieren diese innerhalb ihrer Komponenten. Nicht so bei OLAT. Das Entwicklungsframework implementiert beispielhaft das Model-View-Controller (MVC) Designpattern mit Komponenten, Containern, Controllern und Events. Es ist, als würden Sie eine Desktopapplikation mit Swing programmieren, alle Unannehmlichkeiten des HTTP-Protokolls sind abstrahiert. Das GUI Framework stellt dabei diverse mächtige Komponenten pfannenfertig bereit: Formulare mit Validierung, Tabellen mit Sortier- und Pagingfunktion, ein hierarchischer Menutree, Selektionslisten und viele weitere mehr. Über einen Velocity-Container werden die Komponenten zu einer View assembliert, ohne sich mit XML und XSLT herumschlagen zu müssen. Selbstverständlich unterstützt das Framework durchgängig UTF-8 und Mehrsprachigkeit und kann optisch über CSS angepasst werden. Ein optional und dynamisch hinzuschaltbarer AJAX Modus verkürzt zusätzlich die Ladezeiten und erlaubt ein hohes Mass an interaktiven Schnittstellenelementen.

Datenbankunabhängigkeit

Zur Persistierung von Objekten wird auf den Object-Relational Mapper Hibernate zurückgegriffen. Anstelle von Hibernate kann aber auch eine beliebige andere Technologie verwendet werden.