Web_20_03 - a simple web page

Werbung
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, bei dem sich alle Web-Teilnehmer an der Erstellung
des Inhaltes beteiligen können. Abgesehen 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
Zur Anzeige wird der QuickTime™
Dekompressor „TIFF (LZW)“
benötigt.
Abbildung 5: Tag-Cloud zeigt Tags, die
mit einem Begriff in Beziehung stehen.
Die Stärke der Beziehung wird durch die
Zeichensärke
und
die
grafische
Anordnung symbolisiert.
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. Im klassischen WWW beschränkt sich die
Interaktion auf das Anklicken von Links, das entweder ein Sprung zum gewählten
Textanker, meist aber das synchrone Laden einer neuen Seite vom Server auslöst.
Währennd der Ladezeit kann keine Interaktion mit dem Benutzer stattfinden. Die
Forderung noch feinkörniger Interaktivität wie bei typischen ArbeitsplatzrechnerApplikationen bedeutet eine fundamentale Änderung im gesamten System:
 asyncrhone Kommunikation mit dem Server, so daß man den Browser auch
während des Ladens von Dokumenten benutzen kann,
 kleinere zu übertragende Einheiten (dynamisches Nachladen von Komponenten) und
 aktive Komponenten von Seiten, so daß kleinere Veränderung der Anzeige
auch ohne Nachfrage beim Server möglich ist.
Der Browser erhält vom Server ein html-Dokument als Substrat. In diesem Dokument
sind Multimedia-Komponenten referenziert, die vom Browser separat nachgeladen
Server
request
Browser
Script
Engine
response
Interaktion
Doc
Struktur
Renderer
Abbildung 6: Der Browser enthält nicht nur die Komponenten zum Parsen und Anzeigen der
Dokumente, er enthält auch einen Interpreter zur Ausführung kleiner Programme, der
Scripte,.
werden. Zusätzlich sind in dem Dokument Strukturinformation z.B. als cssStylesheets und aktive Elemente, also Programmfragmente enthalten. Diese
Programmfragemente sind zum Beispiel JavaScript-Stücke. Die Strukturinformation
des Dokumentes wird analysiert und in einer baumartigen Datenstruktur gespeichert.
In der Script-Engine, einem Interpreter werden die aktiven Komponenten ausgeführt
(siehe Abbildung 7). Nach der ersten Anzeige des Dokumentes werden die
Benutzerinteraktionen (Mausklicks, Eingaben) vom Browser analysiert und evtl. in
neue Requests (Hyperlink) formuliert oder als Eingaben an die Script-Engine weitergeleitet. Interaktionen die in der Script-Engine landen lösen typsciherweise die
Ausführung einer oder mehrerer Script-Funktionen aus, die das Dokument
manipulieren (eigentlich den Dokumentenbaum), eigenständig Anzeigen auslösen
oder besondere Request an einen Server senden. Typische Programmiersysteme für
die dynamischen Komponenten sind AJAX/Javascript, Java in Applets oder
Macromedia/Adobe Flash.
In Abblidung 7 ist die Struktur eines modernen Webservers gezeigt. In ihm erkennt
man gut das Management des Datenflusses. Requests bewirken zunächst das Holen
einer Datei, deren Inhalt im weiteren Durchlauf verändert und ergänzt wird mit
dynamischen Inhalten aus Datenbanken, anderen Programmen oder externen
Geräten.Auf der Serverseite ist die Vielfalt an Programmierwewrkzeugen für die
dynamischen Komponenten noch größer, beispiel sind ASP, php, Ruby on Rails,
Javabeans oder .net.
filter module
Browser
Apache
request
core functions
response
file system
module mapping
instrument
module php
IF
…
…
SQL
instrument
database
Abbildung 7: Struktur eines Webservers, Apache nachempfunden. Nach einigen
Vorbereitungen wird eine Datei von der Festplatte geholt, deren Inhalte im Verlauf der
Weiterverarbeitung in den Modulen verändert, ersetzt und ergänzt werden.
2.2 Programmierparadigmen für Web 2.0
Wie oben beschreiben besteht die Infrastruktur von Web 2.0 Applikationen aus einem
Server, typischerweise Apache+php oder JavaBeans, einer Datenbank und er
Kleintensoftware dem Browsere (InternetExplorer, einem Mozilla Browser oder
Safari). Struktur und funktionale Elemente sind in 2.1 knapp präsentiert worden.
Wie bereits beschrieben ist der Datenfluss das zentrale Element einer Webapplikation.
Viele kleinere Komponenten arbeiten seriell an diesem Datenfluss. Die entstehenden
Softwaresysteme besteht deshalb aus kleinen, oft vorgefertigten Codeelementen
(Objekten) und abgeleiteten (erweiterten) Objekten. Man könnte diese Art der
Software auch als abwertens als Krümelware bezeichnen. Insbesondere steht Entwurf
und Implementierung solcher stark fragmentierten Software im krassen Widerspruch
zum Stand der Forschung des Software-Engineering, bei dem Architekturentwurf,
Codieren und Testen/Debuggen im wesentlichen getrennte Phasen sind.
Der Vorteil dieser Implementierungsart ist die Möglichkeit zum inkrementellen
Programmieren - Entworfen werden Systemarchitektur und Datenfluss, nicht die
Softwarearchitektur. Das Programmieren eine solchen Systemes besteht aus Einfügen
und Erweitern statt dem klassischen Programmieren, bei dem monatelang Code
eingebenen wird, bevor zum ersten Mal ein Programm zur Ausführung kommt. WebApplikation kann man schon nach dem Eingeben der Dokumente ausprobieren,
danach werden sie inkrementell und oft im Betrieb verbessert.
Server
3 AJAX
Gegenwärtig werden Web 2.0
Applikationen sehr häufig mit
AJAX entwickelt - Asynchronous
JavaScript And XML. AJAX
Applikationen kann man im Web
vielfältig benutzen, zum Beispiel
bei maps.google.com, Google Docs
oder flickr.com.
JavaScripte sind Programme im
Browser. JavaScripte werden in
html-Dokumente integriert (siehe
Listings 1 und 2), beim Datenfluss
durch den Server aus AJAXLibraries eingefügt, oder dynamisch
vom Klienten nachgeladen.
Der zentrale Unterschied zwischen
JavaScript und AJAX is die
leichtgewichtige Kommunikation,
die durch den XMLHttpRequest
möglich wird. XMLhttpRequests
können synchron und asynchron
verwendet werden. Der asynchrone
Request hat den Vorteil, daß
Browser, Dokument und Script
weiter
mit
dem
Benutzer
interagieren
können,
während
Kompenenten des Dokumentes vom
Server geladen werden. Ein
beispielhafter Ablauf einer AJAXAnwendung is in Abbildung 8
gegeben.
3.1 Javascript
Client
GET-request
html, img, js
js
XMLHttpRequ est
XML
js
XMLHttpRequ est
js
php
html, img
js
XMLHttpRequ est
Abbildung 8: Dynamsciher Ablauf einer AJAXApplikation. Gezeigt ist sowohl die synchrone als auch
die asynchrone Kommunikation mit dem Server. Zum
Beispiel finden während des zweiten - asynchronen XMLHttpRequests Benutzerinteraktionen statt.
<html><head><title>Test</title>
JavaScript
wurde </head><body onload="window.resizeTo(1024, 768)">
schon früh von der </body></html>
Firma Netscape ent- Listing 1: Einfaches Javascript (rot) zum Vergrösseren eines
wickelt. Die Assozia- Fensters. onload ist ein Event, der Text in den Anführungszeichen
tion an Java im Namen der Aufruf einer Javascript-Methode.
ist allerdings irreführend, allenfalls ist die Syntax leicht von Java inspiriert. In der Standardisiereung
heisst JavaScript auch ECMAScript [Ref]. In Listing 1 ist ein bekanntes und
verhasstes Beispiel für ein einfache Script gegeben, die Veränderung der
Windowgröße. Diese Script wird gerne verwendet von Webseiten, die den ganzen
Bildschirm und damit wohl die gesamte Aufmerksamkeit des Benutzers erobern
wollen.
Javascript wurde zunächst Verbesserung von HTML-Seiten verwendet. Dabei können
über Standardobjekte Fenstergröße und -Gestaltung, Menus, grafische Effekte usw
erzielt werden.
Javascript-Funktionen werden mit
dem script-Tag in HTML
eingebettet. Die im script-tag
definierten Funktionen (blau in
den Listings) können allerdings
noch nicht ausgeführt werden. Die
Ausführung
wird
durch
Eventhandler angestossen (siehe
den roten Text in den Listings 1
und 2). Eventhandler sind als
Attribute in html-tags eingebettet.
Sie
spezifizieren
die
Ausführungsbedingung (onclick
wenn der Link vom Benutzer
geklickt wird, onload wenn das
Dokument
geladen
wird,
onMouseover, …) und die
aufgerufene
Fuktion
bzw.
Methode sowie deren Parameter..
<html>
<head>
<title>JavaScript-Test</title>
<script language="JavaScript">
<!-function Quadrat(Zahl)
{ Ergebnis = Zahl * Zahl;
alert("Das Quadrat von " +
Zahl + " = " + Ergebnis); }
//-->
</script> </head>
<body> <form>
<input
type=button value="Quadrat von 6?"
onClick="Quadrat(6)">
</form> </body>
</html>
Listing 2: Webseite mit einem Knopf zur Berechnung
In der von Java inspirierten des Quadrates von 6. Die Berechnung findet einen
Sprache gibt es Anweisungen wie Request zum Server statt. Blau die JavascriptZuweisungen, bedingte Anwei- Funktion, rot der Eventhandler
sungen, Schleifen, Funktionsaufrufe und natürlich die Blockbildung mit den Klammern {}. Siehe Listing 3.
Leider hat Javascript kein ordentliches Typkonzept für Parameter und Variablen, die
mit 'var' vereinbart werden. Der Typ Zahl oder String wird bei der ersten Zuweisung
festgelegt. Die Variablen sind global oder lokal für eine Funktion.
Objekte können vom Programmierer definiert werden. Einige
Objekte zur sind vordefiniert in
Laufzeitumgebung als BrowserAPI bereits vordefiniert, z.B.
window oder document. Sie enthalten die Methoden zur Manipulation von Eigenschaften des Fensters oder des Dokumenteninhalts.
Funktionen und Metoden werden
aus anderen Funktionen und in
Eventhandlern aufgerufen.
zahl = 0; zahl++; zahl+=1;
if (Zahl<0) zahl = 0;
while (idx<100) {…; idx++}
for(i = 1; i <= 100; i++)
alert("Und hier ein kleiner Hinweis");
if (Ergebnis > 100)
{ Ergebnis =0; Neustart();
Listing 3: JavaScript Prgrammkonstrukte
3.2 XMLHTTPRequest
Der XMLhttpRequest wird von Eernisse [ERN] als die geheim Zutat (secret sauce)
von AJAX bezeichnet. Es handelt sich um eine JavaScript Klasse, die erstmals im
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;}
Listing 4: Erzeuigen eines XMLhttprequests für verschiedene Browser
Internet Explorer 5 enthalten war, um Komponenten vom Server nachladen zu
können, ohne eine Seite neu zu laden und aufzubauen. Das ist mit einem klassischen
Hyperlink nicht möglich, alle Aktivitäten und Ströme auf der Seite werden duch einen
Klick auf einen Hyperlink abgebrochen. Durch diesen Request kann also der Benutzer
var xhReq = createXMLHttpRequest();
xhReq.open("get", "sumget.phtml?num1=10&num2=20", true);
xhReq.onreadystatechange = function() {
if (xhReq.readyState != 4)
{ return; }
var serverResponse = xhReq.responseText;
Listing 5: Senden eines XMLhttprequests und warten auf das Resultat
dieselbe Seite
...};weiterverwenden, es werden nur neue Elemente nachgeladen,
hinzugefügt
und evtl. ausgetauscht. Strengenommen handelt es sich um ein
xhReq.send(null);
JavaScript-Interface für http ohne Benutzerinteraktion. Der XMLhttpRequest kann
synchron und asynchron verwendet werden. In den Listings 4 und 5 sind das
Erzeugen und das Senden eines XMLhttprequests beispielhaft wiedergegeben.
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
Syntax für Markup
Semantik in XSL oder CSS
Document Object Model DOM
baumartige Struktur der Dokumente
Zugriff auf Dokumenteninhalt (=Objekte)
Inhalt, Struktur, Stil
AJAX
XML als ein Transfer-Format für Inhalt
Manipuliert DOM-Knoten
<table>
<thead>
<tr>
<th>Vorname</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Donald</td>
<td>Duck</td>
</tr>
</tbody>
</table>
Listing 6: Besipiel Dokumentenstruktur
Einfügen, Löschen, Ändern
Browser 'rendert' Dokument
4 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
[ERN] 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
Herunterladen