Web 2.0?! Struktur und Konzepte moderner Web-Applikationen Konrad Frohitzheim Technische Universität Bergakademie Freiberg [email protected] Nach dem World Wide Web der Wissenschaftler hat die Wirtschaft das Internet und insbesondere das WWW entdeckt. Portale und E-Commerce, also insbesindere Einkaufen im Web und B2B-Appikationen waren der Kern des aus heutiger sicht ersten Web. Nach der Dotcom-Blase blieben einige Dienste erfolgreich und auch profitabel. Bei der Analyses dieser erfolgreichen Web-Applikationen ergeben sich Gemeinsamkeiten, die in diesem Aufsatz diskutiert und extrapoliert werden sollen. Zunächst sollen in einem kurzen historischen Exkurs typische Merkmale von frühen Web-Applikationen beschrieben werden, um die definierenden Gemeinsamkeiten der Web 2.0 Dienste identifizieren zu können. 1 Vom WWW der Wissenschaftler zum Web 1.1 Hypertext Das Hypertextkonzept wurde schon ca. 1969 von Douglas Englebart eingeführt [Ref]. Das Konzept Hypertext wurde in den Jahren bis 1990 besonders von Ted Nelson im Projekt Xanadu vorangetrieben [Ref]. Der Begriff beschreibt nichtlineare Dokumente, deren Konsum nicht dem klassischen Lesefluss vom Anfang zu Ende folgt, sondern in dem der Konsument - der Leser anders als beim Roman die sequentielle Reihenfolge verlässt und im Dokument 'springt'. Diese Art des Lesens triff man z.B. in wissenschaftlichen und technischen Texten, bei denen Referenzen verfolgt werden müssen, z.B. in vertiefende Literatur. Die Struktur Zur Anzeige wird der QuickTime™ Dekompressor „TIFF (LZW)“ benötigt. Abbildung 1: die erste Webseite des WWWProjektes (in einem modernen Browser). solcher Dokumente kann ein - unter Informatikern sehr beliebter - baum oder auch ein allgemeiner Graph - ein Netz - sein. Dazu führt man Verweise (Links) ein, die auf einen anderen Teil desselben Dokumentes (Kapitel, Fußnote, Grafik), auf ein anders Dokument im selben Repositorium oder auf ein entferntes Dokument (Literaturhinweis) zeigen. Diese Verweise sind Kanten, die Dokumente bzw. Dokumentenelemente die Knoten des Graphen. Der sequentielle Konsum entspricht dem Durchlauf einer linearen Liste, der Hypertext-Konsum der freien Bewegung in einem allgemeinen Graphen. Um das ganze Dokument zu lesen, muss der Konsument allerdings im Backtrack-Verfahren [REF] immer wieder an die Verzweigungspunkt zurückkehren. Hauptproblem der frühen Hypertxt Systeme war das Fehlen eienr preiswerten Netzwerkinfrastruktur und guter Hypertext-Browser. 1.2 Web 0.5 - World Wide Web Für das Europäische Hochenergiephysik-Froschungszentrum am CERN haben Tim Berners-Lee und Robert Cailliau ca. 1990 ein Hypertextsystem zur Verwaltung technischer Dokumentation und wissenschaftlicger Veröffentlichungen von Relevanz für die Forschung am CERN entworfen und implementiert. Im Vordergrund des Entwurfes stand dabei die Verteilung des Hypertext-Systemes entsprechend der verteilten Natur der CERN-Forschergemeinde. Die Architektur wird heute gern als Client-Server System bezeichnet, obwohl der Begriff Server - Internet Client kennzeichnender wäre. Kern des World-Wide-Web genannten Systemes von Berners-Lee ist das SessionProtokoll http und das in der Präsentationschicht angesiedelte Dokumentenformat html. Beide zeichnen sich durch besonders einfaches Design aus, Server Client wodurch die Entwicklung vieler Komponenten im Open-Source Ansatz request begünstigt wurde. response http, das HyperText Transfer Protocol basiert auf einem Request-Response Modell. Wichtigste Komponente ist der in Abbildung 2 gezeigte HttpGetRequest, mit dem die Klientensoftware (Browser) den Server um eine Datei bittet. Diese Datei wird vom Server in den Klienten im Sinne eines Filetransfers übertragen, das in der Datei enthaltene Dokument wird vom Klienten nach vollendeter Übertragung angezeigt. request response request response Abbildung 2: http-Interaktionsmodell. Der Client schickt einen Request, der Server antwortet mit einer Response. In der Zwischenzeit ist die Klientenapplikation blockiert. In der transferierten Datei kann Text, ein Bild oder eben ein html-Dokument enthalten sein. Die HyperText Markup Language, eine Document Type Definition (DTD) von SGML [REF] enthielt zunächst Text mit Präsentationsinformation und die sogenannten <a>-Tags, die die Hyperlinks enthalten. Seit dem ersten Entwurf sind viele weitere Tags hinzugekommen, um html-Dokumente mit reicherem Inhalt (Multimedia) und weiteren Layout-Möglichkeiten zu versehen. Für die Zwecke diese Aufsatzes sind aber formatierter Text und die Hyperlinks wichtig. Der eigentliche Siegeszug des WWW fand aber erst mit der Inplementierung des ersten guten Browsers Mosaic durch Andreesen et al [REF] statt. Dieser Browser war auch deshalb erfolgreich, weil er andere - damals populäre - Dienste wie Gopher und ftp integrierte. Aus diesem Browser entstand später die Firma Netscape mit dem gleichnamigen Browser. 1.3 Web 1.0 - Kommerzialisierung des WWW Im WWW der Wissenschaftler trugen fast alle Teilnehmer Inhalte bei- Publikationen, Vorlesungen sowie unveröffentliche und nicht für Tagungen oder Zeitschriften geeignete Arbeiten wie technische Dokumentation. Darüberhinaus war das WWW zusammen mit ftp die erste effiziente Methode, nichtkommerzielle Software kostenlos zu verteilen. Ein wichtiger Beitrag der Teilnehmer waren ihre 'Homepages' mit den Linklisten, ein Peer-Ansatz anderen zu helfen, sich in der entstehenden Informationsvielfalt zurechtzufinden. Bald entstanden auch die ersten kommerziellen Webseiten, sogenannte WWW-Präsenzen von Unternehmen, die zunächst nur Ihre Ansprüche an Namen und Sichtbarkeit absichern wollten. Damit fand aber auch geräuschlos ein entscheidender Wandel statt - die Rollenverteilung im WWW änderte sich: weg vom TeilnehmerModell, in dem fast alle Inhalte beitrugen hin zu einem Produzent-Konsumenten-Modell (siehe Abbildung 3). In diesem der Presse entsprechendem Modell erstellen Wenige ausgefeilte Inhalte und die überwältigenden Mehrheit konsumiert. Abbildung 3: Producer-ConsumerModell. Ein Produzent stellt Inhalte bereit, viele Konsumenten fragen den Inhalt ab. Zeitgleich entstanden kommerzeille MetaSeiten, Web-Sites in denen Information aggregiert wird, um dem Konsumenten beim Auffinden von Information zu helfen. Diese Seiten sind einerseits kommerzielle Linksammmlungen wie etwa der ursprüngliche Yahoo-Dienst, andererseits Suchmaschinen wie in der Anfangsphase Altavista und seine Nachfolger. Die Aggregation besteht aus Link-Listen bzw. Link-Bäume (letzteres bei Yahoo), die Meta-Seiten speichern selten den Inhalt sondern nur Verweise auf die Inhalte. Diese Phase des Webs ist gekennzeichnet von statische Webseiten. Die Dokumente sind in html 'geschrieben', multimediale Inhalte werden mit spezialisierten Tags eingebunden. Solche Seiten sind makro-interaktiv, das heisst die Interaktion des Benutzers, typischerweise ein Mausklick, führt zu einem Seitenwechsel. Während dieses Seitenwechsels kann der Benutzer nur warten. Erst nach dem Laden der neuen Seite wird der Seiteninhalt ausgewechselt (siehe Abbildung 2). Ein weiterer und zwitweise erfolgreicher Typ kommerzieller Webseiten sind die sogenannten Portale, in denen möglichst umfassend Informationen zum einem oder mehreren Sachgebieten präsentiert werden. Online-nachrichtenmagazine verfolgen einen ähnlichen Ansatz - sie präsentieren aber aktuelle Inhalte. Nach einigen erfolglosen Versuchen mit Abonnement-Modellen sind diese Seiten heute fast ausschliesslich werbefinanziert. Durch die aktuelle Natur der präsentierten Information und der vielzahl an Inhalten, sind solche Seiten template-basiert. Die einzelnen Informationsobjekte werden nicht mehr individuell als html-Dokument gestaltet, sie werden in ihrer natürlichen Form als Text in einer Datenbank gespeichert und zur Anzeige in sogenannte Templates eingesetzt. Diese datenbankbasierten Webseiten werden von Content-Management-Systemen verwaltet und präsentiert. man könnte diese Form des WWW auch 'Web 1.5' nennen. Schon früh wurde das WWW als Vertriebsmedium für den Versandhandel entdeckt. Dabei dient das Web als elektronischer katalog und als Bestellsystem, das den Versand von Katalogen und Bestellpostkarten (bzw. Callcenter) ersetzt. Bei der entsprechend fortgeschrittener Integration in Warenwirtschaftssysteme entstehten sehr schlanke Versandhandelsstrukturen. Der Online-Buchhändler Amazon ist nicht nur der Existenzbeweis für E-Commerce-Systeme sondern auch in seiner Fortentwicklung der erste Web 2.0 Dienst. 1.4 Überlebende und erfolgreiche Web-Dienste In diesem Kapitel sollen anhand von Beispielen Merkmale erfolgreicher Web-Dienste herausgearbeitet werden, die im Kapitel 2 zu einer Beschreibung des Web 2.0 führen. Der Online-Buchhändler Amazon hat von Anfang an fremde Daten in seinen Dienst eingebunden: die ISBN-Nummern und Inhaltsbeschreibungen der Bücher wurden von einer der Öffentlichkeit weitgehende unbekannten Firma (R.R. Bowker) zugekauft, Bilder und Rezensionen von den Verlagen integriert. Darüberhinaus hat Amazon seinen Kunden schon früh ermöglicht, eigene Rezensionen zu den Buchtiteln zu schreiben. Diese Kundenrezensionen sind zwar manchmal schlecht, in der Menge helfen sie aber bei der Kaufentscheidung. Dazu kommt die Auswertung des Kuafverhaltens, auf deren Basis Amazon Kaufempfehlungen gibt. Auf diese Weise hat Amazon es verstanden, einzigartigen Inhalt zu aggregieren, ohne selbst in großem Umfang Inhalte erstellen zu müssen. Mittlerweile ist die Amzon-eigene Buchnummer ASIN zu einem wichtigen Buchnummernsystem geworden [TOR]. Auch das Logistik- und Zahlungssystem von Amazon ist nicht beim Buchhandel stehengeblieben, die Firma hat es zu einer Handelsplattform weiterentwicklet. Auf dieser Plattform bietet einerseits Amazon diverse Waren (Elektronik, Spielzeug, …) anbietet, andererseits verkaufen Privatleute, kleine und mittlere Händler ähnliche oder gleiche Produkte, ja sogar Bücher. Diese Anbeiter bieten oft zu günstigeren Preisen als Amazon an, ohne daß das Amazon zu stören scheint.. Die Implementierung der Handelsplattform hat Amazon ebenfalls erweitert zu den Amazon Web Services, die heute einen ECommerce Service, die Elastic Compute Cloud (EC2) und den Simple Storage Service (S3) umfassen. Interessant ist auch der Abbildung 4: Peer-to-Peer-Modell. P2P bedeutet das viele oder alle Teilnehmer am Dienst Inhalte beitragen. Das Wirtschaftsunternehmen aggregiert und kanalisiert die Inhalte. Amazon Mechanical Turk, bei der z.B. einfache Mustererkennungsaufgaben gegen kleine Geldbeträge von Menschen gelöst werden. Das Internet-Auktionshaus Ebay hat von Anfang an darauf verzicht, eigene Inhalte zu erstellen oder eigene Waren zu verkaufen. Ebay verkauft nur die Leitung seines Transaktionssystems. Inhalte, also Waren die auf dem Wege der Auktion oder zum Festpreis verkauft werden sollen, werden von den Kunden beschreiben und beworben. Auch hier wird die eigentliche Arbeit von Privatleuten und Kleingewerbetreibenden geleistet, die die Waren finanzieren, fotografieren und sogar die gesamte Zahlungsabwicklung und Logistik übernehmen. Ebay bietet nur die Handelsplattform, macht Regeln und kassiert Gebühren. Der sehr profitable Web-Dienst Ebay kanalisiert die Arbeit seiner Millionen Benutzer, die sogar dafür bezahlen, Inhalte und Waren bereitstellen zu dürfen. Ein Blog (web-log) ist eine Software, die es erlaubt, Text template-basiert auf einer Webseite bereitzustellen. Im wesentlichen ein stark vereinfachtes Content-management System, das auch für normale Webbenutzer einfach zu verwalten ist. Eine Einzelperson kann in diesem Weblog ein öffentliches Tagebuch verfassen oder Geschehnisse des öffentlichen Lebens (Politik, Kunst, Sport, Wirtschaft, …) häufig kommentieren, ohne daß das html der Webseite geändert werden muss. Dazu kommt eine Kommentar-Funktion, so daß Leser - alle oder nur registrierte - Anmerkungen (Leserzuschriften) oder Kommentare abgeben können. In diesen Blogs kommt es so auch zu angeregten Diskussionen, die häufig den Reiz des Blogs ausmachen. Aus den refolgreichen Blogs entwickelt sich zur Zeit eine echte Konkurrenz zu Zeitungen und Zeitschriften. Die Finanzierung erfolgt ggf. über Werbung. Wikis sind Verwaltungssysteme für lexikonartige Inhalte, die z.B. zur Dokumentation und für Nachschlagwerke benutzt werden können. Ein rollenbasiertes Verwaltungssystem regelt den Zugang zur Erstellung von Inhalten. Ein Sonderfall ist das Internet-Lexikon Wikipedia, QuickTime™ and a bei dem sich alle Web-Teilnehmer an der ErTIFF (LZW) decompressor stellung des Inhaltes beteiligen können. Abgeare needed to see this picture. sehen von der unklaren Qualitätskontrolle und er Empfindlichkeit gegen gezielte Fälschungen ist Wikipedia ein leuchtendes Beispiel für einen immensenen Mehrwert durch die Aggregation von Gemeinscahftswissen. Eine weitere benutzergetragenen Dienstegruppe sind die Sharing-Systeme, sowohl P2P als auch serverbasiert. Allerdings werden diese Dienste häufig von Urheberrechtsproblemen geplagt. Bekannte Systeme sind abgesehen von den Tauschbörsen (Napster, Kazaa, eMule) Flickr für Photos, YouTube für Videos und MySpace für persönliche Profile. Die klassische Linksammlung lebt heute als Tagging oder social bookmarking in Diensten wie del.icio.us weiter. Hier liefern die Benutzer mit Schlagworten (tags) versehene Web-Links (bookmarks)ab. Abgesehen von der Suchfunktion ergeben sich Tag Clouds (siehe Beispiel Abb. 5) die Beziehungen und Relevanz von Begriffen zeigen. Suchdienste wie Google sind auf natürliche Weise Aggregationen von Benutzerdaten. Sie suchen nicht nur im textuellen Informationsraum, sondern auch nach Bildern, in karten usw. Google beitet darüberhinaus eine Prgrammierschnittstelle, mit der andere Diensteersteller Google-Funktionen in ihre Angebote integrieren können, zum Beispiel die klassische Suche, die Landkarten oder die Satellitenbilder von google earth. Das ermöglicht den sogenannten Mash-Up, also die Aggregation mehrerer Dienste, die zu neuen Funktionen führt. Insgesamt zeigen die Beispiele, daß fast alle erfolgreichen modernen Webdienste Infrastruktur für Benutzer bereitstellen, mit denen diese Benutzer erstellen den eigentlichen Inhalt erstellen und so die Werte schaffen. Die Leistung dieser Diensteanbieter ist es, den Benutzer arbeiten lassen, in dem er eine Auktion erstellt, einen Artikel beschreibt, Rezensionen schreibt, bloged und kommentiert. Der Dienst stellt die einfach benutzbare Plattform bereit und kanalisiert Benuterbeiträge, in dem er Regeln erstellt (Gesetze, 'Anstand', …) und durchsetzt Dazu werden Beiträge entweder automatisch oder durch andere Benutzer (Peers) kontrolliert 2 Web 2.0 Der Begriff Web 2.0 wurde in einer Diskussion-Session 2004 geboren und seitdem von John Battelle und dem Verleger Tim O'Reilly popularisiert. In einem im Web veröffentlichten Aufsatz hat O'Reilly seine Thesen zusammengefasst, die hier kurz wiedergegeben werden sollen. These 1: Das Web als Platform nutzen Moderne Webdienste werden nicht mehr von einem Server erbracht, sie bündeln die Lesitung mehrerer interner und externer Webdienste. Pionier in diesem Bereich waren die Werbeprovider, z.B. DoubleClick, die Anzeigen bereitstellen, die von InhaltsSeiten gegen Bezahlung angezeigt werden. Der Vorteil ist, daß Werbekunden nicht mehr vom Inhaltsanbieter, sondern von DoubleClick aquiriert werden und dass die Kunden auf vielen Seiten werben können, ohne viele Vertragspartner zu haben. These 2: Die kollektive Intelligenz kanalisieren Die Inhalte so erfolgreicher Dienste wie Google, Amazon, Ebay, Flickr, die Blogs oder Wikipedia kommen explizit und implizit vom Benutzer. Das WWW selbst war am Anfang ein kollektiv erzeugter Informationsdienst, der durch die Hyperlinks organisiert wurde. Web 2.0 Dienste laden alle Benutzer auf vielfältige Art ein, beizutragen. Auch das tagging fällt in diese Kategorie. These 3: Daten erzeugen den Mehrwert Jede wichtige Internet-Appliaktion hat einzigartige Daten in ihren Datenbanken: Google hat die Ergebnisse seines Webcrawlers, Amazon die Artikeldaten und Kundenkommentare, Ebay die Auktionsbeschreibungen. Viele Daten können bei Providern (R.R. Bowker, NavTeq) bezogen werden. Aber das kann meist auch die Konkurrenz, wie das im Falle der Landkartendaten auch geschieht, was dazu führt, daß Navigationsdienste (mapquest, maps.google.com, map24, etc.) kaum Alleinstellungsmerkmale haben und dadurch wenig Kundenbindung. Gerade bei den Karten zeigt sich übrigens die Leistungsfähigkeit von Mashups. These 4: Das Ende der Software-Releases In These 1 wurde bemerkt, daß im Web 2.0 keine Software-Pakete sondern Dienste verteilt werden. In Web-Plattformen wie Amazon und Google gibt es keine klassischen Releases. Fehlerkorrekturen und neue Funktionen werden im täglichen Betrieb eingefügt. Das bedeutet einerseits, daß keine Pakete mehr verschickt, geladen oder installiert werden müssen. Andererseits kann der Erbringer auch mutiger Änderungen einfügen - wenn sie fehler nethalten, kann die Änderung dynamisch wieder zurückgenommen werden. Das führt zu einem natürlichen Prozess der kontinuierlichen inkrementellen Weiterentwicklung. Ein zweiter Aspekt ist die stärkere Integration des Benutzers in die Entwicklung und das Produkt-Management. Neue Funktionen können den Benutzer früh zum Test vorgesetzt werden, das Benutzerverhalten kann in Form von Clickstreams beobachtet werden, um Benutzbarkeits- und Akzeptanzinformation kurzfristig zu gewinnen. Bei Flickr werden neue Software-Versionen in kleinen Zyklen bis hinunter zu 30 Minuten eingespielt. These 5: Leichtgewichtige Programmiermodelle Die Struktur der verteilten Webappliaktionen mit vielen heterogenen Serverm, Mashups, Browsern und ihren Komponenten verlangt nach einem anderen Progarmmiermodell. Sprachen und Entwicklungssysteme wie C, C++ und IDEs erzeugen im Wesentlichen monolithischen Code, Executables. Wie in Kapitel 2.1 diskutiert bestehen moderne Webdienste aus vielen heterogenen SoftwareKomponenten, in denen Code ausgeführt werden muss. Hier funktiniert der monolithische Code nicht mehr, Webdienste werden zu einer Sammlung von CodeStückchen, die oft in Scriptsprachen erzeugt werden (siehe 2.2 und 3). In gewissem Sinne wird nicht mehr das Zusammenwirken der Software-Funktionen koordinieret, sondern der Datenfluss wird organisiert (daraus enstehen auch die Mashups). These 6: Software ist nicht mehr an Hardware oder Betriebssyseteme gebunden Die Web 2.0 Dienste arbeiten plattformübergreifend, nicht nur bezogen auf Betriebssysteme und PC-Marken, sondern auch auf unterschiedlichen Devices wie PCs, Mobiltelefonen und iPods (podcast). These 7: 'Rich User Experience' im Web Die klassischen html-Dokumente mit den integrierten Multimedia-Komponenten (Bilder, Audioclips) sind statischere Natur. JavaScript, DHTML, Applets und Flash erlauben die dynamische Veränderungen der Seiten, so daß sie immere mehr wie echte Applikationen reagieren. Ein Beispiel sind die AJAX-Applikationen von Google, also Google Maps, Google Docs (Textverarbeitung und Tabellenkalkulation) oder Google Calendar. Wir werden im folgenden und in Kapitel 3 AJAX Werkzeug diskutieren, mit denen solche reichen Web-Appliaktionen geschreiben werden. Diese reichhaltigen Benutzungsschnittstellen tragen dazu bei, einen der letzten wichtigen Vorteile klassischer Softwarepakete einzuholen. 2.1 Struktur von Webapplikationen Web-Applikationen sind heute mikro-interaktiv im Gegensatz zur grobkörnigen Interaktivität der Web 1.x Seiten. Wie in Kapitel 1 erläutert Benutzeroberfläche Browser Server request Browser Script Engine Interaktion Doc Struktur response Renderer html mit Grafiken als Substrat individuelles Verhalten: JavaScript Server Datenbank Geräte Apache und Apache-Module filter module Browser Apache request core functions response file system module mapping instrument module php IF … … SQL Scripting client-side: Javascript, Java Applets server-side: ASP, php, Java und Beans Beispiele rr.informatik.tu-freiberg.de Shopping-Seiten database instrument 2.2 Programmierparadigmen für Web 2.0 Infrastruktur Server:(Apache+php|JavaBeans) Server:Datenbank Client:(InternetExplorer|Firefox|Safari) Krümelware kleine, vorgefertigte Bauteile (-> Objekte) abgeleitete (erweiterte) Objekt inkrementelles Programmieren Einfügen und Erweitern statt Bauen Gesamtkonzept? Architektur? AJAX Asynchronous JavaScript And XML maps.google.com flickr.com - ajaxWrite.com Server Client GET-request html, img, js 3 AJAX js Programm im Browser(Client) JavaScript AJAX-Libraries Server Webserver, Datenbank XMLHttpRequest D B XML Server-side Scripte js Leichtgewichtige Kommunikation XMLHttpRequest XMLHttpRequest synchron und asynchron ph p 3.1 Javascript js html, img Beispiel: Windowgröße verändern js <html><head><title>Test</title> </head><body onload="window.resizeTo(1024, 768)"> </body></html> XMLHttpRequest Programmfragmente in HTML Verbesserung von HTML-Seiten Klienten-Seite von Netscape definiert Fenstergröße und -Gestaltung Menus, Effekte, … Interpreter Browser im <html><head><title>Test</title> <script language="JavaScript"> Eingebettet in <!-HTML <html> alert("Hallo Welt!"); script-Tag <head> //--> <title>JavaScript-Test</title> </script> <script language="JavaScript"> Beispiel </head><body> 'Taschenrechner'<!-function Quadrat(Zahl) </body></html> {Ergebnis = Zahl * Zahl; alert("Das Quadrat von " + Zahl + " = " + Ergebnis); Eventhandler } Attribut in html-Tags //--> </script> </head> Ausführungsbedingung Funktionsaufruf <body> <form> <input type=button value="Quadrat von 6 errechnen" onLoad, onUnLoad, … onClick="Quadrat(6)"> onClick, onMouseover, … </form> </body> Sprache </html> Notation von Java inspiriert Anweisungen Zuweisungen Bedingte Anweisungen, Schleifen Funktionsaufrufe Klammern mit {} zahl = 0; zahl++; zahl+=1; if (Zahl<0) zahl = 0; while (idx<100) {…; idx++} for(i = 1; i <= 100; i++) Variablen kein ordentliches Typenkonzept Vereinbarung mit 'var' Typ Zahl oder String alert("Und hier ein kleiner Hinweis"); if (Ergebnis > 100) { Ergebnis =0; Neustart(); wird bei der ersten Zuweisung festgelegt global oder in Funktion lokal Objekte selbstdefiniert vordefiniert in Umgebung window, document, … Methoden zur Manipulation Funktionen Anweisungsblock mit Variablen Aufruf aus anderen Funktionen und in Eventhandlern 3.2 XMLHTTPRequest JavaScript Klasse erstmals in IE 5 Interface für Http ohne Benutzerinteraktion synchron und asynchron function createXMLHttpRequest() { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {} try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} try { return new XMLHttpRequest(); } catch(e) {} alert("XMLHttpRequest not supported"); return null;} Properties readystate, status onreadystatechange var xhReq = createXMLHttpRequest(); responseText xhReq.open("get", "sumget.phtml?num1=10&num2=20", true); Methoden xhReq.onreadystatechange = function() { open if (xhReq.readyState != 4) send var serverResponse = xhReq.responseText; ...}; xhReq.send(null); { return; } 3.3 DOM und das X in AJAX Markup Markup: Trennung Struktur - Inhalt logische Struktur der Seite Bsp: Überschriften, Absätze, Zitate, … XML: eXtensible Markup Language <table> <thead> <tr> Syntax für Markup <th>Vorname</th> Semantik in XSL oder CSS <th>Name</th> Document Object Model DOM baumartige Struktur der Dokumente Zugriff auf Dokumenteninhalt (=Objekte) Inhalt, Struktur, Stil AJAX </tr> </thead> <tbody> <tr> XML als ein Transfer-Format für Inhalt <td>Donald</td> Manipuliert DOM-Knoten <td>Duck</td> Einfügen, Löschen, Ändern Browser 'rendert' Dokument </tr> </tbody> </table> 4 Social Services Kommunikation Chat, IP-Telephony, iChat Kommunikation einleiten ICQ, AOL-Buddylist Communities Online Games Second Life Virtuelle Präsenz CoBrow, lluna, … www.zweitgeist.com Exchange Blogs Flickr, YouTube, … 5 Ausblick: Web 3.0? Aspiranten bessere Suchmaschinen Semantisches Web, Inhalte Verstehen, KI, … triple play 3D 3D Bilder virtuelle Realität Sozialer Kontakt natürliche Interaktion echte Menschen treffen (-> SL) Avatare und Bilder Web zur Steuerung der Kommunikation Allgegenwärtiges Web 'eingebettet' wie Papier Literatur [TOR] Tim O'Reilly: Web 2.0; 2005. http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html M. Eernisse: Build your own AJAX Web Applications; 2006. M. Mahemoff: Ajax Design Patterns; 2006. http://ajaxpatterns.org http://radar.oreilly.com http://de.selfhtml.org