Mehr als ein Hype
Beim Begriff „Web 2.0“ greift mancher Zeitgenosse reflexartig zum Bullshit-Bingo-Zettel. Natürlich kann man Blogs, Tagging, Ajax und Co. als Hype abtun, aber weit cleverer ist es, die neuen Webtechniken vor den eigenen Karren zu spannen - der Weg zur besseren Website war noch nie einfacher.
- Herbert Braun
- Volker Weber
Als zur Jahrtausendwende die große Internetblase platzte, blieben nicht nur wertlose Aktien übrig. Für einige Große wie Amazon und eBay setzte der große Geldsegen erst nach der Jahrtausendwende ein. Anderswo besann man sich neu auf die Grundlagen des Web, das in seinen Anfängen von Peer-to-Peer-Kommunikation und Communities getragen wurde. Mit neu entwickelten Web-Standards wie CSS, XML, SOAP und Ajax und einer besseren Hard- und Softwareausstattung bei immer mehr Anwendern wurde daraus das, was Tim O’Reilly treffend „Web 2.0“ taufte.
Web 2.0 gründet auf der Idee des Mitmachens. Das gilt nicht nur für die vielen Blog- und Wiki-Beiträger, die fremde Websites mit oft hochwertigen Inhalten bereichern, sondern auch für Entwickler, Hobbyprogrammierer und ambitionierte Website-Betreiber.
Eigene Anwendungen mit Web-2.0-Techniken zu schreiben, ist aus mehreren Gründen dankbar. Zum einen stehen zahlreiche Bibliotheken bereit, die komplexere Funktionen kapseln, zum anderen gibt es hochwertige Datenquellen, aus denen sich der Programmierer kostenlos bedienen darf. Und schließlich ist das Ergebnis in jedem aktuellen Webbrowser benutzbar und lässt sich bequem wie installierte Software bedienen.
Schnell und einfach
Ajax ist das Technikpaket, das die Grenzen zwischen Webanwendung und PC-Software verwischt. Während die Seite bereits geladen ist, tauscht eine JavaScript-Anwendung mit dem Server die Daten asynchron im Hintergrund aus. Bei diesen nachgeladenen Daten handelt es sich in der Regel um XML, das mittels JavaScript geparst und in den XHTML-Quelltext integriert wird.
Diese ursprĂĽnglich von Microsoft fĂĽr den Internet Explorer 5 erfundene Technik ist inzwischen nicht mehr aus dem Web wegzudenken. FĂĽr den Durchbruch sorgte Google mit GMail, das mittels Ajax ein ausgewachsenes Mailprogramm im Browserfenster nachbaute.
Um eigene Ajax-Anwendungen in die Website zu integrieren, braucht es im Prinzip nichts weiter als einen Texteditor für den JavaScript-Quelltext. Ajax-Anwendungen unterliegen jedoch einer Sicherheitseinschränkung: Sie dürfen nur Datenquellen vom eigenen Server verwenden. Für den Programmierer heißt das, dass er externe Informationen erst durch serverseitige Skripte als vertrauenswürdig kennzeichnen muss.
Der Kern der Ajax-Technik, das XMLHttpRequest-Objekt, lässt sich ohne lange Einarbeitung benutzen. Mehr Probleme bereitet die Interaktion mit dem XHTML-Dokument, also das Einbauen der nachgeladenen Daten und schon zuvor die Abfrage der Ereignisse, die das Nachladen auslösen [1]. Besonders lästig fallen die kleineren und größeren Inkompatibilitäten der aktuellen Webbrowser.
Klauen und lernen
Der typische Web-2.0-Programmierer ist wenig geneigt, das Rad neu zu erfinden, sondern er will schnell und effektiv Anwendungen umsetzen. Daher sind innerhalb weniger Monate mehrere Dutzend kostenloser Frameworks zur Ajax-Programmierung auf den Markt gekommen [2] - einige davon finden sich auf der beiliegenden Heft-CD.
Unter diesen Hilfestellungen sind manche, die mit serverseitigen Programmiersprachen wie Java oder PHP zusammenarbeiten und dem Entwickler vom Einlesen eines Webservices bis zur Ausgabe im Browser-Fenster zur Hand gehen. Das umfassendste Paket ist dabei wohl Ruby on Rails, das sich neben PHP, ASP.NET und Java als Webanwendungsumgebung etabliert hat [3].
Manche Frameworks haben den Charakter von Baukästen, aus denen sich ohne große Vorkenntnisse ganze Anwendungen zusammensetzen lassen. Der Dienst ning.com treibt dieses Baukastenprinzip auf die Spitze - hier kann man völlig unbeleckt von Programmierfähigkeiten online eine simple Web-2.0-Anwendung zusammenklicken.
Anspruchsvollere Entwickler verwenden gern reine JavaScript-Bibliotheken. Deren Hauptaufgabe ist es, häufig benötigte Abläufe in handliche Objekte und Funktionen zu kapseln und dabei die lästigen Browserprobleme auszuräumen. Frameworks wie Dojo oder Prototype (ergänzt durch Sammlungen von GUI-Effekten wie Scriptaculous oder Rico) erschließen den mittlerweile beachtlichen Funktionsumfang von JavaScript und bringen Bedienkomfort für die Oberfläche.
Seifen-RESTe
Die andere Seite der Web-2.0-Entwicklung sind offene Schnittstellen, Formate und Protokolle, mit denen sich die Anwendungen untereinander verständigen. Die Benutzerseite profitiert insbesondere von den Syndizierungsformaten RSS und Atom. Solche Newsfeeds lassen sich jedoch nicht nur abonnieren, sondern auch einlesen und weiterverarbeiten, wie das etwa Newsgator.com oder Bloglines.com tun. Dynamische Sites wie Flickr.com bieten Feeds für jede beliebige Auswahl von Bildern an. Nutzer der Geschäftskontakt-Plattform openBC.com können mit RSS überwachen, wer das eigene Profil anschaut.
Als wichtigste Datenquelle stehen dem Anwendungsentwickler jedoch offen gelegte Web-APIs zur Verfügung. Mit wenig Aufwand (und völlig legal) können sie fremde Dienste in eigene Anwendungen einbauen. Zum Beispiel genügen einige Zeilen Code, um eine Landkarte von Google Maps in die eigene Webseite zu integrieren und mit eigenen Overlays zu versehen - Anregungen dazu gibt der Artikel auf Seite 96.
Als beliebtestes Format, in dem Online-Dienste wie Google, Amazon, eBay und hunderte kleinerer Dienstanbieter ihre Webservices zugänglich machen, gilt SOAP [4]. Das ursprünglich „Simple Object Access Protocol“ genannte XML-Datenformat ist keineswegs simpel, ermöglicht aber eine recht genaue Beschreibung der transportierten Daten.
Deutlich schlichter gestrickt ist XML-RPC (RPC steht für „Remote Procedure Call“), ein früher Ableger der SOAP-Entwicklung. Doch es muss nicht immer XML sein: JSON und das verwandte YAML orientieren sich an der Notation von JavaScript-Objekten und eignen sich damit gut für die Weitergabe der Daten an Ajax-Skripte.
Ein Gegenentwurf zu diesen entfernten Funktionsaufrufen per SOAP, XML-RPC oder JSON ist REST (Representational State Transfer), das versucht, ganz ohne Abstraktion auszukommen. Statt dessen arbeiten REST-Anwendungen mit gut strukturierten URLs und reizen die Fähigkeiten von HTTP aus, das auch Methoden zum Upload (PUT) oder Löschen (DELETE) vorsieht.
Für SOAP und XML-RPC stehen in gängigen Programmiersprachen wie Java oder PHP leistungsfähige Module bereit, die dem Entwickler viel Arbeit beim Absetzen und Dechiffrieren der XML-Botschaften abnehmen. Beispiele dafür liefert der Artikel auf Seite 102.
API-Eintopf
Neben der Dokumentation, die der Dienstanbieter für den Entwickler bereitstellt, erleichtert auch deren maschinenlesbare Variante das Programmieren: Üblicherweise steht von Webservices eine Beschreibung in der XML-Sprache WSDL (Web Services Description Language) bereit, welche von SOAP-Clients verarbeitet werden kann. So erfahren die Skripte, welche Anfragen der Dienst erwartet und welche Funktionen und Objekte er anbietet. Mit diesen Informationen können SOAP-Clients automatisch Programmgerüste erzeugen.
Durch die Öffnung der riesigen Webservice-Wissensquellen stehen originellen Programmierideen Tür und Tor offen. Per Ajax lassen sich diese externen Daten dynamisch nachladen, während die übrige Seite längst angezeigt wird - das verhindert auch, dass wegen eines lahmenden Dienstanbieters das Browser-Fenster des Anwenders viele Sekunden lang leer bleibt.
Besonders beliebt sind Kombinationen von mehreren Online-Datensammlungen, so genannte Mashups. Typische Beispiele sind Geodaten, die mit einem Landkartendienst kombiniert werden. Der Artikel auf Seite 102 stellt einen Beitrag für den c't-Mashup-Wettbewerb vor, der per Ajax verschiedene Datenquellen zu einem gesuchten Musiker zusammenstellt. Neben Hilfestellungen für die Programmierung eigener Mashups wird dort auch die Verknüpfung des eBay-API mit einem Synonymwörterbuch besprochen.
Die wichtigste Datenquelle für einen erfolgreichen Web-2.0-Dienst sind jedoch nicht externe Dienstleister, sondern die eigenen Besucher. Angetrieben von natürlichem Schaffensdrang und dem Streben nach Aufmerksamkeit steuern diese gern wertvolle Inhalte bei - vorausgesetzt, es gibt auf der Site genügend Leser für ihre Beiträge. Vor allem Blogs [5] und Wikis [6] stellen den dafür geeigneten Rahmen.
Dieser Netzwerkeffekt ist der entscheidende Erfolgsfaktor bei Web-2.0-Anwendungen: Ein Service wird umso attraktiver, je mehr daran mitwirken. Die große Zahl von Benutzern bildet im Idealfall eine Community, die mehr gewinnt, als sie hineinsteckt. In diesem Fall greift das „LOW-Prinzip“: Let others work [7].
Rollende Rubel
Mit der Kombination aus richtigen Ideen, sauberer Programmierung und effizienter Selbstvermarktung, um eine kritische Community-Masse zu gewinnen, lässt sich anscheinend noch immer ein Vermögen machen. So berichtet der Kanadier Mark Frink, dass er bei weniger als 10 000 Euro monatlichen Hosting-Kosten mit seinem Dating-Service PlentyOfFish.com in zwei Monaten umgerechnet 640 000 Euro verdient hat. Die Nutzer seines Dienstes zahlen nichts, die Klickraten für Werbung sind lausig schlecht, aber durch den immensen Traffic auf seiner Site kommen ausreichend Klicks zusammen, um diesen Gewinn zu erzielen.
Mit einer genügend großen und engagierten Community ist sogar ein klassischer Premiumdienst möglich - wie bei openBC, das mit einem kostenlosen Lockangebot binnen weniger Jahre im deutschen Markt eine monopolartige Stellung aufgebaut hat. Gelegentlich bringen solche Dienste auch Erlöse, ohne dass sich die Betreiber darum bemüht hätten - wenn sie einen größeren Anbieter finden, von dem sie aufgekauft werden. Das klappt freilich nur in spektakulären Einzelfällen wie Writely.com (Google), Flickr oder Del.icio.us (Yahoo).
FĂĽr die Vielzahl kleiner Blogs und Hobby-Projekte ist es bereits ein Erfolg, die Hosting-Kosten zu erwirtschaften. Beliebteste Einnahmemodelle sind Googles Werbeprogramm AdSense und das Amazon-Partnerprogramm - beides erfolgreiche Netzwerk-Modelle, die ihren Erfindern mit Web-2.0-Methoden Millionen von Dollar in die Kassen spĂĽlen.
Ansonsten haben Webaktivisten viele Wege gefunden, um ihre Bekanntheit und die von der Szene beglaubigte Fachkenntnis zu Geld zu machen - von klassischer Bannerwerbung über bezahlte Vorträge bis hin zur Annahme umstrittener Sponsorenvergünstigungen [8].
Die Transformation der Währung Aufmerksamkeit, die sich im Web 2.0 verdienen lässt, in die Geldwirtschaft, mit der die Miete bezahlt wird, bleibt die größte Herausforderung für neue Internetdienste. Aber hier zeigt sich wieder die Kontinuität zur Internetbranche der 90er-Jahre: Dieses Problem hatten auch schon die Startups des Web 1.0.
Literatur
[1] Herbert Braun, Ajax zu FuĂź, Dynamische Webseiten mit externen Datenquellen selbst programmieren, c't 5/06, S. 152
[2] Herbert Braun, Instant-Ajax, Bibliotheken und Frameworks fĂĽr die Entwicklung von Ajax-Anwendungen, c't 5/06, S. 160
[3] Ralf Wirdemann, Thomas Baustert, Hochgeschwindigkeitszug, Web-Entwicklung mit Ruby on Rails, c't 21/05, S. 216
[4] Hajo Schulz, Weltweites Werkeln, Das bringen Web Services fĂĽr Anwender und Entwickler, c't 6/02, S. 236
[5] Volker Weber, Blogomat, Installation eines eigenen Weblogs mit Movable Type, c't 19/05, S. 166
[6] Erik Möller, Schreibwerkstätten, Fünf Wiki-Engines im Vergleich, c't 25/03, S. 202
[7] Herbert Braun, Ich-Netze, Die deutsche Web-2.0-Szene debattiert ĂĽber die Online-Zukunft
[8] Jörg Auf dem Hövel, Lass das doch die Community machen
| "Homepage 2.0" | |
| Weitere Artikel zum Thema "Homepage 2.0" finden Sie in der c't 14/2006: | |
| Ajax und Webservices kreativ nutzen | S. 92 |
| Bessere Homepages mit Web 2.0 | S. 96 |
| Ideen, Kniffe und Beispiele | S. 102 |
| Surf- und Server-Tools | S. 130 |
| ac'tivAid: Pfiffige Skripte fĂĽr den Windows-Desktop | S. 198 |
(heb)