Das dynamische Duo

Rich Internet Applications mit ExtJS und Jersey
Kommentare

Rich Internet Applications (RIAs) lassen sich wie native Anwendungen bedienen und geben dem Anwender ein direktes, interaktives Benutzungserlebnis. Da RIAs per AJAX mit dem Backend kommunizieren, werden nach dem Start nur noch Nutzdaten ausgetauscht, weshalb sie nicht nur gefühlt schneller sind, sondern tatsächlich weniger Netzlast erzeugen. JavaScript ist eine sinnvolle Wahl, um RIAs zu implementieren, denn es ist in allen Browsern eingebaut und daher gibt es keine Plug-ins, die Installationsprobleme oder Sicherheitslücken verursachen können. Dieser Artikel beschreibt die Architektur einer RIA für das Gesundheitswesen auf Basis von ExtJS und Jersey und geht auf die in der praktischen Umsetzung aufgetretenen Herausforderungen ein.

Entwickler Magazin

Der Artikel „Rich Internet Applications mit ExtJS und Jersey“ ist zuerst erschienen im Entwickler Magazin 3.2011

Unsere Geschichte beginnt mit der Bestellung einer Webanwendung für die „integrierte Versorgung“ im Gesundheitswesen. Krankenkassen erfassen damit die Daten ihrer Versicherten. Diese Versichertendaten sind für die zuständigen Pflegeheime und Krankenkassen jederzeit einsehbar und (je nach Rolle) editierbar. Fehlerträchtige Doppelerfassungen entfallen und die Datenqualität steigt. Zusätzlich stellen die beteiligten Institute ihre Kostendaten ein. Daraus erstellt die Anwendung Controllingberichte und Abrechnungen für auszuzahlende Boni. Die Teilnehmer greifen dann in einem integrierten Prozess über die Webanwendung auf die Dokumente zu. Für die angeforderte Webanwendung musste eine neue, zeitgemäße und zukunftsfähige Architektur gefunden werden. Aufgrund des Zeitdrucks war es wichtig, die Lernkurve überschaubar zu halten und dann effizient und mit hoher Qualität entwickeln zu können. Hinzu kamen intensive Anforderungen an die Usability der Anwendung. Also waren weder Struts (veraltet) noch JSF (zu schwergewichtig) eine Option. Nach einer kurzen Evaluierungsphase mit Ausflügen in Richtung Flex und Silverlight entschieden wir uns für ExtJS.

Eine neue Hoffnung

ExtJS ist ein in JavaScript geschriebenes, objektorientiertes Client Framework für Rich Internet Applications (RIA). Die Entwickler [1] vertreiben das Framework unter einem dualen Lizenzmodell mit GPL und kommerzieller Lizenz. ExtJS basiert intern auf ExtCore [2], das u.a. alle notwendigen Funktionen zur Manipulation und Verwaltung des DOM (ähnlich jQuery) mitbringt, wie folgende Beispiele zeigen:

Ext.get("id").setStyle("background","blue");  // access
Ext.get(Ext.query("#id, .class, div")).setStyle("background", "blue");

ExtJS geht darüber aber weit hinaus und bringt z. B. viele Widgets direkt mit, darunter Tree, Toolbar und TabPanel [3]. Die Widgets sind in ein vollständiges Window-Management (u. a. mit Drag und Drop) eingebettet, sodass sich komplette Desktops im Browser realisieren lassen. ExtJS verwendet ein durchdachtes und sehr eingängiges Komponentenmodell und bietet ein ausführlich dokumentiertes und leicht zu verwendendes API [4]. Vor allem aber hilft ExtJS bei der Cross-Browser-Entwicklung, da alle gängigen Browser direkt unterstützt werden.

Das Framework enthält Komponenten zur Kommunikation mit dem Server, wobei keine bestimmte Technologie oder Programmiersprache vorausgesetzt wird. So ist es kein Wunder, dass man im Internet Beispiele für viele unterschiedliche Backend-Technologien findet (PHP, Java, Ruby, Python [5], .NET, Cold Fusion und Persevere [6]). Zudem enthält ExtJS native Unterstützung für AJAX und XML sowie REST.

ExtJS nutzt die dynamischen und objektorientierten Merkmale von JavaScript [7] intensiv. Das Framework verwendet viele objektorientierte Design Patterns, wie Model View Controller (MVC), Singleton, Template Method, Observer und weitere. Das Buch „Head First Design Patterns“ [8] war eine der konzeptionellen Grundlagen bei der Entwicklung von ExtJS, und das sieht man dem Framework – im positiven Sinne – auch an. Alle Komponenten können durch Vererbung erweitert oder durch Überschreiben einzelner Methoden modifiziert werden, was man für die Erstellung eigener Widgets sinnvoll einsetzen kann. Für diesen Zweck bietet ExtJS eigene Funktionen, z. B. Ext.extend für die Erstellung abgeleiteter Klassen durch Vererbung. Dennoch muss man kein ausgewiesener JavaScript-Experte sein, um das Framework verwenden zu können. Das Programmiermodell ist nämlich in weiten Teilen deklarativ und ExtJS bringt bereits so viel Funktionalität mit, dass man oft auch ohne eigene Modifikationen auskommt.


Auf den folgenden Seiten erwarten Euch folgenden Themen:

  • Erster Kontakt
  • JSON und die Annotations
  • Odyssee im GUI-Raum
  • Rücksturz zur Wirklichkeit
  • Babylon A.D.
  • http 204 antwortet nicht
  • Das unentdeckte Land
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -