Asynchronous JavaScript and XML

Bei AJAX handelt es sich um einen Technologie-Mix, mit dem sich besonders interaktive Web-Anwendungen entwickeln lassen. Am besten lassen sich die zugrunde liegenden Technologien verstehen, wenn man betrachtet, wie ein Webbrowser und der Webserver bei einer AJAX-Anwendung miteinander kommunizieren. Es gibt drei Möglichkeiten:

• Klassisch - Der Webbrowser übermittelt dem Webserver eine URL. Daraufhin antwortet der Server mit einer Webseite. Diese Seite zeigt der Browser dann an. Das ist die Art und Weise, in der alle klassischen Web-Anwendungen funktionieren.
• Asynchron - Der Browser sendet, als Reaktion auf eine Aktion des Nutzers, Daten an den Server. Dieser antwortet dem Browser. Die Antwort löst das Ausführen von JavaScript aus, mit dem Teile der angezeigten Seite verändert werden.
• Keine Kommunikation - Als Reaktion auf eine Aktion des Nutzers führt der Browser JavaScript aus, um die angezeigte Seite zu verändern. Es findet keine Kommunikation mit dem Server statt.

Eine AJAX-Anwendung liegt dann vor, wenn die ersten beiden oder alle drei Kommunikationsmuster verwendet werden. Wenn man sich vor Augen führt, dass die asynchrone Kommunikation (und in noch stärkerem Maße keine Kommunikation) dazu führt, dass die Web-Anwendung schneller auf die Aktionen des Nutzers reagieren kann, dann wird die Attraktivität von AJAX-Anwendungen offensichtlich.


Client

Die Entwicklung von AJAX-Anwendungen zieht das Schreiben von JavaScript nach sich, denn ohne JavaScript kann die asynchrone Kommunikation und die komplett Browser-seitige Verarbeitung von Nutzereingaben nicht erfolgen.

Eine Reihe von Toolkits sind entstanden, mit denen die JavaScript-Entwicklung vereinfacht werden soll. Dazu gehören

• das dojo Toolkit http://dojotoolkit.org/
• Prototype http://prototype.conio.net/
• Mochikit http://mochikit.com/
• und die Yahoo! UI Library http://developer.yahoo.com/yui/


Server

Auch wenn ein Teil der Präsentationslogik einer AJAX-Anwendung im Browser ablaufen kann, muss dennoch ein Teil davon und zumindest die Schnittstellen zur Businesslogik auf der Server-Seite realisiert werden. Dort kann die Arbeit ebenfalls durch Frameworks erleichtert werden. Von einem guten Framework muss man erwarten, dass es die bequeme Erstellung von

• Seiten und Seitenfragmenten,
JavaScript,
• Präsentationslogik und
• Schnittstellen zu Datenbanken, Services, ...
 
unterstützt.

Einige klassische Web-Frameworks haben mittlerweile Erweiterungen erfahren, die die Entwicklung von AJAX-Anwendungen ermöglichen.

Ein neu entstandenes Framework ist das Google Web Toolkit. Das Toolkit erlaubt es, eine Rich-Client-Anwendung komplett in Java zu entwickeln. Mittels eines speziellen Compilers wird daraus eine AJAX-Anwendung erzeugt.

Einen anderen Ansatz verwendet das "Do you Lisp?" Framework. Es setzt konsequent auf Domain Specific Languages:

• Seiten und Seitenfragmente werden in HTML formuliert,
• die Entwicklung von JavaScript wird durch das dojo Toolkit erleichtert,
• die Präsentationslogik auf der Server-Seite wird in einem Lisp Dialekt (eine für die Symbolverarbeitung geeignete funktionale Programmiersprache) verfasst,
• Schnittstellen zu Datenbanken verwenden SQL, die gebräuchlichste Domain Specific Language für relationale Datenbanken.


Links

http://de.wikipedia.org/wiki/AJAX_(Programmierung)
http://www.sitepoint.com/print/javascript-library