Anwendungen mit Ajax modernisieren

19.09.2007
Von Patrick Thomas 
Die Web-Entwicklungstechnik hat zu einem Hoch in der Javascript-Programmierung geführt. Ob sie sich für Unternehmensanwendungen lohnt, muss im Einzelfall bewertet werden.

Strategie

Beschreibung

Vorteil

Nachteil

Einsatzbereich

Do it yourself

Vollständige Eigencodierung von Ajax-Scripten.

Kontrolle über komplette Skriptbasis.

Hoher Aufwand und fehleranfällig.

Wenn Sie eine feine Kontrolle über die Ajax-Funktionalität benötigen.

Ajax-Bibliothek

Einsatz einer Javascript-Bibliothek für Ajax wie das Dojo Toolkit oder die Yahoo User Interface Library.

Verringert Javascript-Programmieraufwand.

Eventuell müssen mehrere Javascript-Bibliotheken mit unterschiedlicher Syntax unter einen Hut gebracht werden.

Wenn Sie sich unmittelbar Aufwand sparen wollen, um die ge-wünschte Ajax-Funktionalität zu realisieren.

Ajax-Framework

Verwendung eines Client-Server-Frameworks wie Java Server Faces (JSF).

Ermöglicht die Entwicklung wiederverwendbarer Ajax-Komponenten.

Einfaches Rapid Prototyping verleitet zur Unterschätzung des Aufwands für die Programmierung nichttrivialer Anwendungen.

Wenn Sie von Werkzeugen wie Sun Java Studio Creator profitieren wollen, um Ajax-Web-Anwendungen per Drag-and-Drop zu konzipieren.

Java-Framework

Einsatz von Frameworks wie GWT, um Ajax-Anwendungen in Java zu programmieren.

Keine speziellen Javascript-Kenntnisse erforderlich, reine Java-Programmierung.

Generiert komplexen Javascript-Code, der nur schwer direkt modifizierbar ist.

Wenn Sie ausschließlich in Java programmieren möchten.

Ajax-Funktion

Beschreibung

Single-Page-Anwendungen

Ajax macht Web-Anwendungen möglich, die ähnlich wie manche Desktop-Software in einer einzigen Bildschirmseite ("Single-Page") laufen.

Plausibilitätsprüfung

Formular- und andere Eingabedaten wie Benutzerkennungen, Postleitzahlen oder Seriennummern, die eine Server-seitige Validierung erfordern, können im Hintergrund in Echtzeit überprüft werden.

Auto-Vervollständigen

Die Eingaben in bestimmten Formularfeldern wie bei E-Mail-Adressen oder Städtenamen können automatisch während der Eingabe vervollständigt werden.

Laden nach Bedarf

Eine Web-Seite kann Daten im Hintergrund nachladen, um die Präsentation von Informationen effektiver und schneller zu gestalten.

Komplexe Oberflächen-Controls

Client Controls wie Bäume, Menüs, Datentabellen, Kalender, Rich-Text-Editoren und Fortschrittsanzeigen erhöhen die Interaktivität und Usability von Web-Anwendungen.

Server-Push

Neuere Ansätze wie Comet erlauben echten Server-Push über persistente Verbindungen als Alternative zu Server-Polling.

Partielles Submit

Partielle Formulardaten können ohne Neuladen der Web-Seite an den Server übermittelt werden.

Mashups

Ermöglicht die Integration von Drittanbieterdiensten wie Google Maps in eigene Web-Anwendungen.

Obwohl uns Web-Techniken seit über zehn Jahren begleiten, entspringt die Mehrzahl der Unternehmensanwendungen klassischen Client-Server- und Mainframe-Konzepten. Die Migration zu Web-basierenden Benutzeroberflächen scheiterte bislang an der notwendigen Interaktivität und Funktionalität, die in konventionellen Web-Seiten nicht darstellbar waren.

Zwei Sicherheitsrisiken

Das "next big thing" für Web-Anwender ist in der Regel auch das jeweils neueste Einfallstor für Malware und Hacker. Dasselbe gilt auch für Ajax.

Entblößung von Web-Services

Mit der Zunahme an Ajax-Projekten werden immer mehr Unternehmens-Backend-APIs zu Web-Service-Methoden umfunktioniert. Einige dieser Methoden sind öffentlicher Natur, andere wiederum nur für den Aufruf durch interne Anwendungen gedacht. Durch den Client-seitigen Einsatz von Javascript liegt der aufrufende Code für jedermann sichtbar offen. Es ist daher unerlässlich, den Ursprung von Ajax-Aufrufen Server-seitig zu validieren und eine Ausführung nur unter definierten Bedingungen zuzulassen.

Übermäßiges Vertrauen in Javascript

Zahlreiche Web-Anwendungen verwenden Javascript, um dem Anwender Schranken aufzuerlegen, beispielsweise die Einsicht in den Quellcode-Aufruf zu verhindern, Administrator-Menüs zu verstecken, Eingaben auf Plausibilität zu prüfen sowie Benutzerrechte im Browser zu "speichern". Nichts davon ist sicher und sollte als Grundlage für sicherheitsrelevante Prozesse dienen.

Mittels Ajax-Scripting lassen sich nun Web-Anwendungen realisieren, die einer klassischen Desktop-Anwendung stark ähneln. Autovervollständigung, direkte Validierungen, kontextbezogene Datenaktualisierung sowie Drag-and-Drop-Funktionen erhöhen den Benutzerkomfort, beschleunigen die Bedienung und reduzieren Fehlerquellen. Unternehmen müssen ihre IT-Infrastruktur für Ajax nicht spezifisch anpassen. Im Gegensatz zu Client-Umgebungen wie Flash oder Java ist für Ajax keinerlei Browser-Plug-in oder sonstige Runtime-Engine erforderlich.

Anwendungsbeispiele für Ajax

Komplexe Desktop-Clients wie in Call-Centern lassen sich mit Ajax umsetzen und deren unterschiedliche PC-Oberflächen in einer einzigen, konsistenten Web-Benutzerschnittstelle konsolidieren. Customer-Relationship-Management-Software (CRM) der neuesten Generation kann im Web-Browser detaillierte Kundendaten darstellen, Web-gestützte GIS-Dienste wie Google Maps einbetten und Telefonnummern direkt via Internet-Telefonie (Voice over IP) anwählen.Intranet-Anwendungen in Unternehmen wie Reisekosten-Abrechnungen, Purchasing-Anwendungen oder Online-Urlaubsanträge lassen sich ebenfalls mit Ajax ums etzen.

Im Internet erfüllen moderne Web-Angebote die Servicebedürfnisse von Kunden und Interessenten im Self-Service-Verfahren. Ajax ermöglicht Banken und Versicherungen, komplexe Produkte und Dienstleistungen im Web-Browser abzubilden und in interaktiven Online-Rechnern simulierbar zu machen.

Vor der Entscheidung für eine Anwendungsmodernisierung oder Neuentwicklung mit Ajax steht ein Blick auf die vorhandene Infrastruktur an. Zentral gesteuerte Unternehmens-IT zeichnet sich in der Regel durch homogene Komponenten auf der Client-Seite aus. Dennoch ist zu prüfen, ob aktuelle Versionen der Browser Internet Explorer oder Firefox installiert sind und eventuell zum Einsatz kommende Ajax-Frameworks diese Browser-Versionsnummern unterstützen. Dies gilt besonders für Browser, wie sie in Handhelds und Smartphones arbeiten. Ein umfassender Einsatz von Ajax-Scripting mit Javascript kann ältere oder hardwareseitig schwächer ausgestattete Endgeräte überfordern. Dem Reiz, mit Hilfe von Ajax mehr Funktionalität in der Client-Programmierung abzubilden, steht das unbefriedigende Angebot an Entwicklungs- und Testwerkzeugen gegenüber.

Schwierige Fehlersuche

Das Debugging findet in der Regel auf der untersten Tool-Ebene mit Javascript-Loggern als Browser-Plug-ins, HTTP-Sniffern und eigenen Statusausgaben statt. Best-Practice-Ansätze und Patterns für Javascript stecken gleichermaßen in den Kinderschuhen. Eine zusätzliche Schwierigkeit bei der Fehlersuche besteht in der engen Verzahnung von Javascript-Code und Server-seitigen Prozessen. Browser-Erweiterungen wie Mozilla Firebug und Ajax-Frameworks wie das Google Web Toolkit unterstützen das Debugging im Wechselspiel zwischen Client und Server.

Trotz ECMA-Standard weisen die Javascript-Implementierungen verschiedener Web-Browser subtile Unterschiede auf. Zu bedenken ist, dass eines der Kernkonstrukte von Ajax, das XMLHttpRequest-Objekt, nicht Teil der Javascript-Spezifikation ist und sich in seiner Ausgestaltung von Browser zu Browser verändern kann. Der Einsatz von Bibliotheken wie Dojo vereinfacht die Ajax-Programmierung ebenso, wie Project jMaki und Java Server Faces (JSF) die Details von Javascript vor Java-Entwicklern abschotten. Microsoft bietet mit ASP.NET Ajax ein ähnliches Komponenten-Framework.

Klassische Softwaremetriken und Entwicklungsprozesse sind auf Ajax-Scripting nur bedingt abbildbar. Tief im Javascript-Code untergebrachte, asynchrone Server-Aufrufe über XMLHttpRequest sind für die meisten Tools unsichtbar. Dasselbe gilt für die Überwachung von Ajax-Anwendungen im Betrieb. Das diesbezügliche System-Management muss mit Bordmitteln realisiert werden.

Single-Page-Anwendungen

Als eigentliche Auslöser für den Einsatz von Ajax verdienen Usability und das Design von Anwenderoberflächen ein besonderes Augenmerk. Zunächst ist zu beachten, dass Single-Page-Anwendungen, wie sie mit Ajax üblich sind, eigentlich keine Browser-Historie und keine Lesezeichen kennen. Das Seite-für-Seite-Navigieren wird durch eine Interaktion und Navigation innerhalb einer einzigen Web-Seite ersetzt, so dass der Back-Button des Web-Browsers ins Leere zeigt. Tatsächlich haben zahlreiche verfügbare Ajax-Frameworks solche Stolpersteine behoben.

Die Qual der Wahl hat man hinsichtlich der zahlreichen denkbaren Funktionen, Darstellungsformen und visuellen Elemente, die Ajax möglich macht. Bereiche einer Web-Seite lassen sich dynamisch nachladen und aktualisieren, verändern, unsichtbar machen, verschieben und verkleinern. Doch nicht alles Machbare ist in der Praxis auch sinnvoll. Es zeigt sich, dass viele Unternehmen ihre Corporate-Design-Guides um ein Kapitel über interaktive Web-Anwendungen erweitern müssen. Agenturen fehlt jedoch in der Regel das technische Know-how, um zu definieren, was von der Infrastruktur her adäquat und in der Praxis sinnvoll ist. Ohne Mitwirkung der Unternehmens-IT ist dies kaum zu meistern. (ue)