Category Archives: Web2.0

XAP – extensible ajax platform

Im Apache incubator (der Brutstätte neuer OSS-Projekte) befindet sich seit einiger Zeit das XAP-Projekt. Ziel des Projekts ist eine Plattform für AJAX-Anwendungen zu schaffen, bei der die Oberfläche nicht mit HTML und JavaScript gestaltet wird, sondern per XML (genauer gesagt XAL) definiert wird. In dem XAL können dann auch Eventhandler angelegt werden, die auf JavaScript-Funktionen verweisen.

Aus der XAL-Definition erzeugt XAP dann mithilfe des Dojo-Toolkits eine AJAX-Oberfläche. Ab hier können dann per JavaScript die Dojo-Funktionen benutzt werden und so die Oberfläche verändert werden. Allerdings bietet XAP auch die Möglichkeit während der laufenden Anwendungen das zugrunde liegende XAL (also die Oberflächendefinition) dynamisch mittels XModify zu verändern. So muss man also nicht unübersichtliche JavaScript-Funktionen schreiben sondern kann in der gleichen Sprache wie die Oberfläche definiert wurde diese auch wieder verändern. Der XModify-Code kann dabei von dynamischen Seiten (z.B. PHP, JSP, Struts, …) erzeugt werden.

Im einfachsten Fall besteht ein Eventhandler dann aus nur einem Statement:

service.retrieveAndProcess(‘update.php’);

Die Datei update.php liefert dann folgendes:

<xal xmlns=”http://www.openxal.org/xal”>
<xm:modifications xmlns:xm=”http://www.openxal.org/xmodify”>
<xm:set-attribute select=”/xal/label”><xm:attribute name=”text” value=”Das kommt vom Server!”/></xm:set-attribute>
</xm:modifications>
</xal>


Dabei wird per XPath ein Label selektiert und das Attribut text auf den Wert “Das kommt vom Server!” geändert. Die JavaScript-Lösung dazu würde folgendermaßen aussehen:

var ui = session.getDocumentContainer().getUiDocument()
var el = ui.getElementById ( “label”);
el.setAttribute ( “text”, “Das kommt vom Server!” )

Der Client kann dies dann mit folgenden Statements einbinden:

var result = service.retrieve (‘jsupdate.php’);
eval ( result.responseText );

Die XML-Lösung hat dabei den Vorteil, das mit XPath eine deutlich mächtigere Sprache zur Verfügung steht um Element in der UI zu selektieren als dies JavaScript mit seinem DOM-Tree anbietet. Mit XModify können natürlich nicht nur Attribute geändert werden sondern auch komplett neue Bereiche hinzugefügt werden, und das mit der gleichen Syntax wie die statische Oberfläche definiert wurde. Ein weiter Vorteil ist auch, das man sich bei der Verwendung von XML nicht auf JavaScript festlegt und so später auch die Möglichkeit hat, auf eine andere Client-Plattform wie z.B. Java oder .NET wechseln.

XAP bietet also eine hohe Abstraktion von AJAX- bzw. Web2.0-Anwendungen, lässt aber trotzdem die freie Wahl bei der verwendeten Servertechnologie, im Gegensatz zu GWT, JSF+AJAX. Hinter dem Projekt steht übrigens die Firma Nexaweb, welche mit der Nexaweb Platform eine kostenpflichtige Enterprise Web 2.0 Plattform für Rich Internet Applications (RIA) anbietet. Derzeit kommt hier Java (aRex) als Clienttechnologie zum Einsatz. XAP soll dann als Basis für eine kommerzielle AJAX-Oberfläche (jRex) dienen, sodass also von einer zügigen Weiterentwicklung auszugehen ist.

Informationen zu Nexaweb und zu XAP gibt es übrigens auch bei der W-JAX 2006 auf dem gemeinsamen Messestand von SOFTCON und Nexaweb.

Flock – Der Web 2.0 Browser

Nachdem wir ja jetzt das Web in die Version 2.0 befördert haben wird es natürlich auch höchste Zeit den Browser 2.0 zu erfinden. Und genau den gibt es jetzt: Flock

Flock ist ein Browser auf Firefoxbasis, der unter anderem für Blogs, Shadows, Flickr, Delicious und weitere Web 2.0 Dienste optimiert ist. So können z.B. Bookmarks mit Tags versehen werden und auf Wunsch direkt mit Shadows oder Delicious synchronisiert werden. Bilder können per Drag & Drop in jegliche HTML Textboxen eingefügt werden, dazu wird das Bild dann auf Flickr oder Photobucket hochgeladen und der passende Link in der Textbox eingefügt. Sehr bequem für z.B. Blogeinträge. Weiterhin ist es möglich sich aus RSS-Feeds eine eigene Newsseite zusammenzustellen oder Blog-Einträge direkt über Flock zu erstellen.

Sehr schön ist auch, das schon beim eintippen von Suchbegriffen die Ergebnisse von den lokalen Bookmarks und diversen Suchmaschinen angezeigt werden.