Posted by Carsten Bormann
Sat, 22 Oct 2005 18:46:00 GMT
Schlußfolgerungen aus Web-basierten Umfragen sind stets mit besonderer
Vorsicht zu behandeln. Nichtsdestoweniger finde ich die Ergebnisse
einer Web-Umfrage eines Burton-Group-Mitarbeiters unter
AJAX-Entwicklern (angekündigt vor ein paar Tagen im Ajaxian
Blog) beeindruckend.
Knapp ein Drittel der Teilnehmer berichten, sie hätten
AJAX-Anwendungen bereits im Produktionsbetrieb. Ein weiteres Drittel
entwickelt schon; ein weiteres Viertel probiert offenbar noch
(und ein paar denken noch nach).
Was sind nun die Serverumgebungen, mit denen AJAX-Techniken umgesetzt
werden? Die größte Gruppe benutzt PHP (über 40 %), dicht gefolgt von
Java (35 %). Wer gedacht hätte, AJAX würde nur in hypermodernen
Entwicklungs-Umgebungen wie Ruby on Rails eingesetzt (15 %), wird
überrascht, selbst die .NET-Gruppe hatte mit 18 % mehr Antworten.
Schließlich war noch die Frage nach dem Client-seitigen Toolkit von
Interesse. Die größte Gruppe (40 %) tinkert direkt mit
XMLHttpRequest, eine Vorgehensweise, die wir im AJAX-Buch
nicht empfehlen. Die zweitgrößte Gruppe (23 %) benutzt
prototype, was gegenwärtig auch unsere Empfehlung ist, nicht
zuletzt wegen script.aculo.us, der wunderbaren Zusatzbibliothek
von Thomas Fuchs, die 18 % weitere Nennungen bekommen hat (ebenso
wie Rails mit 10 %, was aber ja auch nichts anderes als prototype und script.aculo.us
heißt). Auf über 10 % kamen auch noch die beiden Toolkits DWR
(Java-Umgebung) und Dojo. Einen Ehrenpreis bekommt mit 8 %
schließlich die deutsche Entwicklung Ajax.NET; danach kommt der long tail der anderen Toolkits.
Gibt es, wie im Buch vorhergesagt, schon so etwas wie eine Konsolidierung der Toolkits?
Posted in AJAX | 3 comments | 432 trackbacks
Posted by Olaf Bergmann
Fri, 21 Oct 2005 02:31:00 GMT
Anfang Oktober fand in San Francisco zum zweiten Mal die
internationale Konferenz zum Web 2.0 statt. Wie bei
Konferenzen zu aktuellen Modethemen üblich, waren unter den
Ausstellern auch viele neu gegründete Unternehmen, die den Markt mit
frischen Ansätzen bereichern. Beispiele für Startups, die auf
AJAX-Technologie auf der Clientseite webbasierter Anwendungen setzen,
sind Meebo und Zimbra. Beide Unternehmen haben sich
im weitesten Sinne auf Messaging-Anwendungen mit Web-Interface
spezialisiert, ein Feld, das auch Google Talk
besetzen möchte.
Mit Instant Messaging (IM) wird ein Modethema der vergangenen
Jahre aufgegriffen und ajaxifiziert. Ein wesentliches Merkmal von
klassischen IM-Anwendungen ist der eingebaute Presence-Dienst, der
Auskunft über die Verfügbarkeit von eingetragenen Nutzern
erteilt. Für jeden Kontakt im Adreßbuch der IM-Anwendung
(oft Roster oder Buddy-List genannt) kann man sofort sehen, ob
diejenige Person gerade erreichbar ist oder nicht gestört werden
möchte.
Klassische IM-Protokolle wie Jabber/XMPP oder SIMPLE
unterscheiden sich von webbasierten Ansätzen durch ihre push-basierte
Architektur; da jeder Teilnehmer einen eigenen Serverprozeß aufsetzt,
können Nachrichten bei Bedarf an den betreffenden Teilnehmer gesendet
werden. In einer Client/Server-Architektur hingegen müssen die Clients
regelmäßig Anfragen stellen, um neue Informationen zu erhalten.
Dies ist auch der Ansatz, der im AJAX-Buch angedeutet
wird. Mit dem Ajax.PeriodicalUpdater aus der Bibliothek
Prototype lässt sich eine Buddy-List sehr einfach
aktualisieren. Alternativ ließe sich auch der PeriodicalExecuter
dafür einsetzen, allerdings lässt sich dieser nicht so ohne weiteres
stoppen, wenn er erst einmal läuft – der Browser wird dann sehr
schnell zum Speicherfresser.
Auf den ersten Blick erscheint das Polling gegenüber den
push-basierten Lösungen nicht sehr attraktiv. Doch die
Ende-zu-Ende-Kommunikation hat einen großen Nachteil: Sie harmoniert
nicht gut mit Middleboxes, also Geräten, die sich zwischen Sender
und Empfänger einer Kommunikationsbeziehung befinden und den normalen
Protokollablauf beeinflussen können. Die bekanntesten Vertreter dieser
Art sind NATs und Firewalls. Beide haben ihre Berechtigung, machen
eine reibungslose Kommunikation aber sehr schwer. Das Ergebnis
sind Keep-Alive-Mechanismen und Verrenkungen wie STUN, um von
außerhalb erreichbar zu sein.
Webbasierte Anwendungen können dieses Problem getrost
vernachlässigen: Sobald Web-Traffic durch die Firewall gelassen wird,
was selbst in den meisten Unternehmen heutzutage übliche Praxis ist,
kann die bidirektionale Kommunikation über TCP beginnen. Bereits vor
einigen Jahren haben Web-Services diese asymmetrische
Kommunkationsbeziehung genutzt, um Schwierigkeiten mit Firewalls und
NATs zu umgehen. Und das ist auch der Grund, warum SOAP fast
ausschließlich über HTTP transportiert wird…
Keine Frage, Polling über HTTP gibt es schon lange und wird es immer
geben. Das XMLHttpRequest-Objekt wird diesen Aspekt aber wieder
stärker in den Vordergrund rücken. Mit welchen Lasten muss ein
Server-Betreiber nun plötzlich rechnen? Wie viele Filedeskriptoren
sind gleichzeitig offen zu halten? Welche Bandbreite erfordern die
Antworten? Wie unterscheidet man das erwünschte Polling von einer
DOS-Attacke?
Posted in AJAX | Tags AJAX, InstantMessaging, Presence | no comments | 434 trackbacks
Posted by Carsten Bormann
Tue, 18 Oct 2005 07:05:00 GMT
Wer kennt das Problem nicht: Man telefoniert mit jemandem (oder gleich
mit einer ganzen Telefonkonferenz) und möchte seine Ausführungen mit
ein paar Folien untermalen. Wie bekommt man es hin, daß die
Gesprächspartner im Laufe der Präsentation immer jeweils dieselbe
Folie sehen wie man selbst?
Einsatz für AJAX.
Man nehme:
- S5, die Web-Präsentationslösung von Eric Meyer
(ja, der bekannte CSS-Guru);
- etwas AJAX-Code (natürlich unter Benutzung einer
AJAX-Bibliothek wie prototype), und
- 75 Zeilen Ruby als Server für die Synchronisation.
Ergebnis: S6, Synchronized Simple Standards-based Slide Show System.
Die Benutzungsschnittstelle folgt der bewährten Alternative:
Führe (Lead)
Der Browser des Vortragenden teilt dem Synchronisationsserver jeden
Folienwechsel mit.
Folge (Follow)
Browser von Zuhörern werden vom Synchronisationsserver sofort
benachrichtigt, sobald der Vortragende auf eine andere Folie schaut
als sie selbst, und schalten dann ebenfalls auf diese Folie um.
Geh aus dem Weg (Get out of the way)
Will man unabhängig vom Vortragenden blättern, kann man „aus dem
Weg gehen“ — die Aktionen des Vortragenden haben dann keinen
Einfluß mehr auf den Browser.
Lädt man eine S6-Präsentation in den Browser, ist man zunächst in
letzterem Modus (das ist aber mit einer Zeile JavaScript
konfigurierbar).
Tippt man ein „L“, dann betritt man den Führungsmodus, mit „F“ kommt
man in den Folgemodus (meine Folien haben diese Information als
Hilfetext auf der ersten Seite). Mit „G“ geht man (wieder) aus dem
Weg.
(Das ganze probiert man am besten vor der Telefonkonferenz mit ein
paar Browserfenstern aus. Getestet in IE6, Firefox, Safari. Opera hat
seinen eigenen merkwürdigen Slideshow-Modus, mit dem ich noch nicht
ganz klar komme.)
Der Synchronisationsserver kann mehrere Folienpräsentationen
gleichzeitig synchronisieren — der URI der Präsentation dient als
eindeutiger Bezeichner einer Gruppe (notfalls kann man mit
unterschiedlichen Fragmentbezeichnern, die von S5 im allgemeinen
ignoriert werden, mehrere Sitzungen mit demselben Foliensatz
voneinander trennen).
Die Idee, S5 um Synchronisation zu erweitern, ist übrigens so gut, daß
auch jemand anders sie inzwischen gehabt hat. Im Vergleich
zu S6 fehlt der Echtzeitaspekt (der Server wird einfach alle 2.5
Sekunden angefragt), das Multiplexing über den URI, und die klare
Trennung der verschiedenen Betriebsarten. Dafür hat Teemu
Arina auch den inkrementellen Aufbau der Folien in S5
adressiert, wozu ich noch nicht gekommen bin, und seine Version läuft
auch in einem normalen Web-Server wie Apache.
Eric, Teemu und ich sind jetzt dabei, das alles zu sortieren.
Vielleicht kann ich demnächst über eine Release berichten…
(Update: Die Links auf den experimentellen Web-Server stimmen jetzt. Danke, Oliver. Mental note: Niemals 10 Minuten vor einer Vorlesung bloggen :-)
Posted in AJAX | Tags AJAX | 9 comments | 498 trackbacks
Posted by Olaf Bergmann
Fri, 14 Oct 2005 23:51:00 GMT
AJAX schwimmt gerade auf einer Hype-Welle, wie wir sie in vielen Bereichen der Informationstechnologie in den letzten Jahren häufig gesehen haben (von verteilten Datenbanken über Mbone-Konferenzen zu DHTML, Web-Services, usw). Bei diesem natürlichen Prozess wird ein Schlagwort gern stellvertretend für eine ganze Klasse von Konzepten, Technologien oder neuen Denkansätzen verwendet. Der Begriff selbst beschreibt dann nicht immer
genau das, was damit gemeint ist. So entbrannte im Blog von Simon Willison im April eine längere Diskussion darüber, ob der Begriff AJAX zweckdienlich sei — zwei Monate nach dem Essay von Jesse James Garrett. Matthew Haughey spricht dann auch ziemlich deutlich aus, was technologiezentrierte Entwickler häufig verdrängen: Die Marketing-Abteilung weiß am besten, wie sich Technologie verkaufen läßt — selbst wenn es sich um altbekannte Technologien handelt, die die Entwicklergemeinde für sich neu entdeckt hat.
Was AJAX angeht, zeigt sich gerade das “X” nur als bedingt belastbar. Vielfach setzen AJAX-basierte Anwendungen asynchrone Kommunikation und JavaScript ein, aber es wird weit und breit kein XML verwendet. Der Grund dafür sind die Anforderungen an die Plattformunabhängigkeit: Auch im Jahr 2005 kann XML-Unterstützung nur bei sehr wenigen Browsern vorausgesetzt werden. Mit HTML (nicht XHTML) oder auch einfach zu parsierenden Legacy-Formaten ist man immer auf der sicheren Seite und muß sich nicht in die Abhängigkeit bestimmter Browser-Eigenschaften begeben, die wiederum Feature-Sniffing voraussetzen würden.
Posted in AJAX | Tags AJAX, Kritik | no comments | 434 trackbacks
Posted by Carsten Bormann
Fri, 14 Oct 2005 20:14:00 GMT
An einem Artikel aus dem Online-Auftritt der österreichischen
Zeitung „Der Standard“ hat sich eine heiße Diskussion über den Sinn
und Unsinn von AJAX entzündet. Hier meine kurze Zusammenfassung der
Standpunkte der AJAX-Kritiker:
Flash konnte das schon immer
Ja. Allerdings eben nicht mit dem standardisierten Web zusammen,
sondern immer in der schönen bunten Flash-Welt isoliert.
Meine Reaktion, wenn ich mich auf einer Site im Flash-Käfig wiederfinde:
Ich will meinen Browser wieder haben!
Der Versuch, die Flash-Welt mit AJAX unter dem Begriff „Rich
Internet Applications“ über einen Kamm zu scheren, demonstriert
schon ein wenig den Bedarf, diesen Nachteil durch geeignete
Wortschöpfungen zu verschleiern.
Im AJAX-Buch diskutieren wir aber auch durchaus eine
Flash-basierte Alternative zur reinen AJAX-Lehre.
Beispielcode dafür, daß sich AJAX und Flash sogar hervorragend
vertragen können, findet sich hier, mit einer Demo dazu.
Andererseits wird dieser Rückgriff auf eine proprietäre Technologie
durch die zunehmende Verbreitung von SVG,
z.B. in Firefox und
Safari, in Zukunft vielleicht seltener erforderlich
sein. Für die Interaktion mit Ton und Video in Webseiten ist
Flash allerdings noch Stand der Technik; auch hier hilft AJAX
drumherum dabei, eine Web-Anwendung zu behalten.
Browser konnten das schon lange, es hieß nur DHTML etc.
Ja. Allerdings haben wir in den letzten 12 Monaten viel darüber
dazugelernt, wie man mit AJAX eigentlich sinnvoll arbeitet. Es
gibt jetzt design patterns (Entwurfsmuster), an
die vor einem Jahr niemand gedacht hat. Sehr schöne Bibliotheken
wie Prototype und Scriptaculous sind entstanden und haben
eine erstaunliche Reife entwickelt. Neue Anwendungen, die sich so
gänzlich anders anfühlen als das „alte Web“, sprießen wie Pilze aus
dem Boden.
Es lohnt sich auch für ausgefuchste Web-Entwickler, zu verfolgen,
was in AJAX-Land passiert.
AJAX ist kein Allheilmittel, bringt auch Nachteile, …
Ja. Vor allem ist eine Überdosierung schädlich (wie damals bei
Flash). Auch dazu mehr im Buch.
Und nein, man braucht keine neuen Browser (oder Plugins), man muß
(trotz des irreführenden Namens) durchaus nicht mit XML AJAXen, etc.
Auch das erklärt natürlich alles das Buch.
(Kann es sein, daß ich mich wiederhole?)
Posted in AJAX | Tags AJAX, Kritik | no comments | 764 trackbacks
Posted by Carsten Bormann
Wed, 12 Oct 2005 14:56:00 GMT
Vielen Dank für die Blumen :-)
Um den Kaufrausch weiter zu befördern, hier ein paar Links
zu weiteren lieferbaren Büchern, die in nicht unwesentlichem Umfang
das Thema AJAX behandeln:
DHTML Utopia: Modern Web Design Using JavaScript & DOM
Eine sehr gut lesbare Einführung in DHTML (JavaScript/DOM +
HTML/CSS). Kapitel 8 und 9 beschreiben auf 90 Seiten unter dem
Namen „Remote Scripting“ AJAX-Techniken. Aber auch die JavaScript-
und DOM-Grundlagen drum herum sind für Ajaxianer nützlich.
Agile Web Development with Rails
Eine lebensnahe Einführung in das zur Zeit
buzzwordkompatibelste neue Framework für die Web-Entwicklung,
Ruby on Rails.
Allein schon lesenswert als Benchmark dafür, wie gut ein Buch zu
einem Informatik-Thema überhaupt sein kann.
Kapitel 18, „The Web, V2.0“ widmet sich auf 26 Seiten der
Benutzung der AJAX-Funktionen von Rails.
Das Kapitel ist von Thomas Fuchs, dem
Scriptaculous-Meister höchstselbst.
Es ist allerdings zur Zeit nichts auf Deutsch dabei, nichts in einem
zum AJAX-Buch vergleichbaren Preisbereich, und
auch keine etwas ausführlichere Abhandlung. (Irgendeinen Grund mußte
es ja geben, unser Buch zu schreiben.)
Ich werde den Markt sicher weiter aufmerksam verfolgen; es sind viele
neue (englischsprachige) Bücher angekündigt.
Posted in AJAX | Tags Bücher | 3 comments | 367 trackbacks
Posted by Carsten Bormann
Mon, 10 Oct 2005 21:08:00 GMT
Darf man als informiertes Mitglied der Web-Gemeinde im Oktober 2005 überhaupt noch einen Blog anfangen?
Hätte man sich nicht schon seit Jahren die Seele aus dem Leib bloggen müssen?
Fragen über Fragen.
Dieser Blog entstand aus dem Anlaß, ein spezifisches Problem zu lösen:
Buchinhalte sind statisch, die Welt aber sehr dynamisch (und das gilt
allemal für die Welt des AJAX-Buches). Vielleicht
gelingt es uns, für unsere Leser in diesem Blog einen kleinen Mehrwert
zu schaffen (und, wenn wir Glück haben, das nächste Buchprojekt
vorzubereiten).
Ich bin jedenfalls gespannt auf dieses Experiment — ein Buch mit
kleinen Updates und Feedback-Funktion.
Die noch etwas nervenden Fehler der Plattform bitte ich zu
entschuldigen; ich habe mich für ein Cutting-Edge-System entschieden
(Typo in der SVN-Version) — Kommentare
erwünscht. Die fehlende Barrierefreiheit bei der (AJAX-unterstützten)
Eingabe von Kommentaren ist vielleicht strenggenommen inakzeptabel,
aber gleichzeitig ein nützlicher Beitrag zur Abwehr von
Kommentar-Spam.
Ich hoffe, es macht trotzdem Spaß.
Posted in self | Tags bugs | no comments | 742 trackbacks
Posted by Carsten Bormann
Mon, 10 Oct 2005 20:43:00 GMT
Am 14.10.2005 ist es soweit: Das erste deutschsprachige Buch zum Thema AJAX wird ausgeliefert.
Warum AJAX? Das Web wird sich in den nächsten Monaten und Jahren ändern („Web 2.0“). AJAX spielt eine wichtige Rolle dabei, das Interaktionsdesign vom Hypertext-Paradigma zur Web-basierten Anwendung weiterzuentwickeln.
Warum ein Buch? Es gibt natürlich viel Information im Web. Das gute alte Medium Buch ist aber zum Einarbeiten in neue Themen immer noch schwer zu schlagen.
Warum auf deutsch? Das ist in einer Web-Welt, die fast nur noch auf englisch arbeitet, schon schwerer zu beantworten. Ich selbst arbeite gerne in beiden Sprachen. Für die Lehre (und das ist eben eine meiner Aufgaben) ist die Muttersprache der Lernenden aber immer noch am besten geeignet. Englischsprachige Bücher zu AJAX kommen gerade auf den Markt, warum also nicht ein deutschsprachiges schreiben?
Posted in AJAX, self | Tags AJAX, Buch, deutsch | 2 comments | 3852 trackbacks