SlideShare ist ein Scribd-Unternehmen logo
Ajax, Comet & Co.
Roman Roelofsen
Managing Director (aka Alpha Geek)
Weigle Wilczek GmbH
Twitter: romanroe

W-JAX, 8. November 2011
Architekturen
Mainframe
Die gesamte Logik l¨uft auf dem Server
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Clients dienen lediglich zur Darstellung und zur Eingabe
Tastatur + Monitor
Mainframe
Die gesamte Logik l¨uft auf dem Server
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Clients dienen lediglich zur Darstellung und zur Eingabe
Tastatur + Monitor

Vorteile
Wenig Schichten & wenig Systemgrenzen
Single source
Nur ein Kontrollfluss
Klassische Input/Output-Architektur
Sicher, da relativ geschlossen
Mainframe
Die gesamte Logik l¨uft auf dem Server
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Clients dienen lediglich zur Darstellung und zur Eingabe
Tastatur + Monitor

Vorteile
Wenig Schichten & wenig Systemgrenzen
Single source
Nur ein Kontrollfluss
Klassische Input/Output-Architektur
Sicher, da relativ geschlossen

Nachteile
Sehr einfache UI
Eventuell langsam
Mehr Datentransfer
2-tier
Die gesamte Logik l¨uft auf dem Client
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Server dient lediglich zur Persistenz, ohne fachliches Wissen
Datenbankmanagementsystem
Ausnahme: Stored procedures, ...

Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
technische Schnittstelle
"select * from foo"
2-tier
Die gesamte Logik l¨uft auf dem Client
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Server dient lediglich zur Persistenz, ohne fachliches Wissen
Datenbankmanagementsystem
Ausnahme: Stored procedures, ...

Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
technische Schnittstelle
"select * from foo"

Vorteile
Komplexe UIs sind m¨glich
o
Wenig Schichten & klar definierte Systemgrenzen
Schnelle UI
Nur ein Kontrollfluss
Fast single source
2-tier
Die gesamte Logik l¨uft auf dem Client
a
Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ...
a

Server dient lediglich zur Persistenz, ohne fachliches Wissen
Datenbankmanagementsystem
Ausnahme: Stored procedures, ...

Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
technische Schnittstelle
"select * from foo"

Vorteile
Komplexe UIs sind m¨glich
o
Wenig Schichten & klar definierte Systemgrenzen
Schnelle UI
Nur ein Kontrollfluss
Fast single source

Nachteile
Client-Deployment n¨tig
o
Nicht sicher
3-tier (mit Rich-Client)
Fachlogik verteilt auf Server & Client
Ablauflogik verteilt auf Server & Client
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
fachliche Schnittstelle
personWebService.loadPerson(3)
3-tier (mit Rich-Client)
Fachlogik verteilt auf Server & Client
Ablauflogik verteilt auf Server & Client
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
fachliche Schnittstelle
personWebService.loadPerson(3)

Vorteile
Komplexe UIs sind m¨glich
o
Klar definierte Systemgrenzen
Schnelle UI
Client ist unabh¨ngig von z.B. der Persistenztechnologie
a
3-tier (mit Rich-Client)
Fachlogik verteilt auf Server & Client
Ablauflogik verteilt auf Server & Client
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber eine
a
¨
fachliche Schnittstelle
personWebService.loadPerson(3)

Vorteile
Komplexe UIs sind m¨glich
o
Klar definierte Systemgrenzen
Schnelle UI
Client ist unabh¨ngig von z.B. der Persistenztechnologie
a

Nachteile
Erheblich mehr Technologievielfalt
3-tier (mit Web-Client)
Fachlogik gr¨ßtenteils auf dem Server
o
Ablauflogik gr¨ßtenteils auf dem Server
o
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber ...
a
¨
a) ... HTML-Seiten request/response
b) ... eine fachliche Schnittstelle
personWebService.loadPerson(3)
3-tier (mit Web-Client)
Fachlogik gr¨ßtenteils auf dem Server
o
Ablauflogik gr¨ßtenteils auf dem Server
o
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber ...
a
¨
a) ... HTML-Seiten request/response
b) ... eine fachliche Schnittstelle
personWebService.loadPerson(3)

Vorteile
Komplexe UIs sind m¨glich
o
Klar definierte Systemgrenzen
Schnelle UI
Client ist unabh¨ngig von z.B. der Persistenztechnologie
a
3-tier (mit Web-Client)
Fachlogik gr¨ßtenteils auf dem Server
o
Ablauflogik gr¨ßtenteils auf dem Server
o
UI-Logik im Client
Persistenzlogik im Server
Kommunikation zwischen Server & Client l¨uft uber ...
a
¨
a) ... HTML-Seiten request/response
b) ... eine fachliche Schnittstelle
personWebService.loadPerson(3)

Vorteile
Komplexe UIs sind m¨glich
o
Klar definierte Systemgrenzen
Schnelle UI
Client ist unabh¨ngig von z.B. der Persistenztechnologie
a

Nachteile
Erheblich mehr Technologievielfalt
Web-Anwendungen Web 1.0

Wie eine 3-tier-Architektur ...
die nur aus HTML-Seiten request/response besteht

Die gesamte Logik liegt im Server
Clients dienen lediglich zur Darstellung und zur Eingabe
Web-Anwendungen Web 2.0

Wie eine 3-tier-Architektur ...
... die das HTML-Seiten request/response Modell f¨rs
u
Provisioning nutzt
... die zur prim¨re Kommunikation fachliche Schnittstellen
a
nutzt
personWebService.loadPerson(3)

Fachlogik verteilt auf Server & Client
Ablauflogik verteilt auf Server & Client
Technologien
AJAX

Hat angefangen als ”pimp my web page”
Input-Validierung
Mehr Interaktivit¨t f¨r UI Dialoge
a u

Mittlerweile prim¨res Kommunikationskonzept um fachlichen
a
Daten vom Server zum Browser zu ubertragen
¨
Erm¨glicht durch ...
o
JavaScript im Browser
XMLHttpRequest

XML → JSON
JSON.parse(...)
JSON.stringify(...)
REST

Hat angefangen als besseres SOAP
Server-Entit¨ten werden als Resourcen betrachtet
a
Zugriff erfolgt uber HTTP Operationen
¨
GET, POST, DELETE, ...

IDs werden uber die URL kodiert
¨
http://server/resource/1

Wichtigster Unterschied zu SOAP/Corba/etc:
Fachliche Entit¨t 1:1 REST Resource
a
Feste Anzahl Operationen
REST

Hat angefangen als besseres SOAP
Server-Entit¨ten werden als Resourcen betrachtet
a
Zugriff erfolgt uber HTTP Operationen
¨
GET, POST, DELETE, ...

IDs werden uber die URL kodiert
¨
http://server/resource/1

Wichtigster Unterschied zu SOAP/Corba/etc:
Fachliche Entit¨t 1:1 REST Resource
a
Feste Anzahl Operationen
→ SQL
Comet

Wie kann der Server dem Client Informationen mitteilen?
a.k.a. Server-push
Der Begriff Comet fasst verschiedenen Techniken zusammen,
um Server-push zu erm¨glichen
o
Streaming
iFrame
XmlHttpRequest

Long Polling
XmlHttpRequest
Script tag

Eigentlich alles ”Hacks”, das Ergebnis ist aber i.d.R.
ausreichend
Architekturen + Technologien
Architekturen + Technologien
Architekturen + Technologien im Web 3.0
Code
Plain Ajax
Apache Wicket
Direct Web Remoting
Atmosphere
Lift Web
Leon
WebSockets

Ajax und Comet ”missbrauchen” HTTP um eine
RCP/REST-Kommunikation abzubilden
Ajax: Jeder Aufruf startet einen neuen HTTP request inkl.
Header
Comet: Server weiß nicht, dass der Request zur
Comet-Kommunikation dient

WebSockets definieren ein Protokoll (zwischen Server und
Browser) um sich von HTTP zu entfernen
HTTP Request → TCP/IP Socket
WebSocket kann bi-direktional genutzt werden
Comet & WebSockets aus Server-Sicht

Beim Comet & WebSockets startet der Browser eine
Verbindung zum Server und h¨lt diese offen
a
Problem f¨r Servlet Container
u
Jeder HTTP Request wird auf einen Thread gemappt
Wenn der HTTP Request offen bleibt, gibt es entweder zuviele
Threads oder neue Anfragen werden nicht beantwortet

L¨sung
o
Servlets 3.0
Nativer Support im Web-Container (z.B. Jetty)
Wir stellen ein!

Wir suchen f¨hige Java/Scala/JavaScript/Clojure/RCP/...
a
Entwickler
Wir bieten eine gesunde Mischung aus
Programmierer
Berater
Kicker-Profi

Bitte bei mir melden!
roelofsen@weiglewilczek.com
Vielen Dank f¨r Ihre Aufmerksamkeit!
u
Fragen?

Weitere ähnliche Inhalte

PDF
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
PPTX
Übersicht über Tubewarder | Template-basiertes Message Gateway
ODP
Php Tutorium
PPT
Übersicht Skriptsprachen
ODP
Job-Scheduling mit PHP
PPT
Web 2.0 Mit Der Yahoo User Interface Library
PPTX
Pablo neruda pawer point
PPTX
Prenstacion de sistemas gn
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
Übersicht über Tubewarder | Template-basiertes Message Gateway
Php Tutorium
Übersicht Skriptsprachen
Job-Scheduling mit PHP
Web 2.0 Mit Der Yahoo User Interface Library
Pablo neruda pawer point
Prenstacion de sistemas gn

Andere mochten auch (20)

PDF
Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
PPTX
Dn 12 u3_act30_sgaa
PPTX
Dn11 3 era_eval_presentacion_omph
PDF
Propuesta- Nuevas tecnologías en educación
PPTX
Ihre Zielgruppen mit Mobile Marketing
PDF
PARA QUÉ SIRVE UNA HERMANA
PPT
Anàlisi de xarxes socials al Raval
PPT
02glovis practica
PPTX
Dn12 u3 a25_lvo
PPTX
Dn 12 u3_act23_sgaa
PPT
Tarea 5
ODP
Tema 4 impress
PPTX
Habilidades comunicativas
PDF
Informationsblatt BI 2
PPS
Freundschaftsbilder
PPTX
Galapagos
PPTX
Diapositivas nuevas
PDF
Pppppppppppppppppppp
PPT
AGIT 2010: Adressierung von Gebietskörperschaften in der Frühwarnung
PPSX
Recuerdo de asturias
Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
Dn 12 u3_act30_sgaa
Dn11 3 era_eval_presentacion_omph
Propuesta- Nuevas tecnologías en educación
Ihre Zielgruppen mit Mobile Marketing
PARA QUÉ SIRVE UNA HERMANA
Anàlisi de xarxes socials al Raval
02glovis practica
Dn12 u3 a25_lvo
Dn 12 u3_act23_sgaa
Tarea 5
Tema 4 impress
Habilidades comunicativas
Informationsblatt BI 2
Freundschaftsbilder
Galapagos
Diapositivas nuevas
Pppppppppppppppppppp
AGIT 2010: Adressierung von Gebietskörperschaften in der Frühwarnung
Recuerdo de asturias
Anzeige

Ähnlich wie Ajax, Comet & Co. (18)

PPT
2006 - Basta!: Web 2.0 mit asp.net 2.0
PPT
Moderne Java Web-Technologien
PDF
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
PDF
Server Push Comet
PDF
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
PDF
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
PDF
Ueberlegungen Projektmanagement Web Applications
KEY
Good by Server... Hello Client!
PDF
Java oberflächlich betrachtet - Welche GUI ist die richtige?
PPT
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
PPTX
Ganz Huxley, Schöne neue SOA-Welt - Jax 2010 - OPITZ CONSULTING - Niko Köbler
PDF
HTML5 und node.js Grundlagen
PDF
User Interface Trends für Geschäftsanwendungen
PDF
Restful Frontend-Architecture
PDF
Zühlke Whitepaper Client Technologien
PPT
Web 2.0 - Überblick
PPT
Ice 2007
PPTX
Oracle Open World 2009 Review V1.6
2006 - Basta!: Web 2.0 mit asp.net 2.0
Moderne Java Web-Technologien
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Server Push Comet
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
Ueberlegungen Projektmanagement Web Applications
Good by Server... Hello Client!
Java oberflächlich betrachtet - Welche GUI ist die richtige?
Thin, Rich und RIA Clients entwirrt -- und Faktoren, die Sie zum geeigneten C...
Ganz Huxley, Schöne neue SOA-Welt - Jax 2010 - OPITZ CONSULTING - Niko Köbler
HTML5 und node.js Grundlagen
User Interface Trends für Geschäftsanwendungen
Restful Frontend-Architecture
Zühlke Whitepaper Client Technologien
Web 2.0 - Überblick
Ice 2007
Oracle Open World 2009 Review V1.6
Anzeige

Mehr von Roman Roelofsen (6)

PDF
Agile specifications on agile projects
PDF
Concurrency Paradigmen
PDF
Webanwendungen mit Apache HBase entwickeln
PPT
Pro Syst Enterprise OSGi
PDF
OSGi Release 4.2 - Was ist neu?
PDF
VIB - Very Important Bundles
Agile specifications on agile projects
Concurrency Paradigmen
Webanwendungen mit Apache HBase entwickeln
Pro Syst Enterprise OSGi
OSGi Release 4.2 - Was ist neu?
VIB - Very Important Bundles

Ajax, Comet & Co.

  • 1. Ajax, Comet & Co. Roman Roelofsen Managing Director (aka Alpha Geek) Weigle Wilczek GmbH Twitter: romanroe W-JAX, 8. November 2011
  • 3. Mainframe Die gesamte Logik l¨uft auf dem Server a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Clients dienen lediglich zur Darstellung und zur Eingabe Tastatur + Monitor
  • 4. Mainframe Die gesamte Logik l¨uft auf dem Server a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Clients dienen lediglich zur Darstellung und zur Eingabe Tastatur + Monitor Vorteile Wenig Schichten & wenig Systemgrenzen Single source Nur ein Kontrollfluss Klassische Input/Output-Architektur Sicher, da relativ geschlossen
  • 5. Mainframe Die gesamte Logik l¨uft auf dem Server a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Clients dienen lediglich zur Darstellung und zur Eingabe Tastatur + Monitor Vorteile Wenig Schichten & wenig Systemgrenzen Single source Nur ein Kontrollfluss Klassische Input/Output-Architektur Sicher, da relativ geschlossen Nachteile Sehr einfache UI Eventuell langsam Mehr Datentransfer
  • 6. 2-tier Die gesamte Logik l¨uft auf dem Client a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Server dient lediglich zur Persistenz, ohne fachliches Wissen Datenbankmanagementsystem Ausnahme: Stored procedures, ... Kommunikation zwischen Server & Client l¨uft uber eine a ¨ technische Schnittstelle "select * from foo"
  • 7. 2-tier Die gesamte Logik l¨uft auf dem Client a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Server dient lediglich zur Persistenz, ohne fachliches Wissen Datenbankmanagementsystem Ausnahme: Stored procedures, ... Kommunikation zwischen Server & Client l¨uft uber eine a ¨ technische Schnittstelle "select * from foo" Vorteile Komplexe UIs sind m¨glich o Wenig Schichten & klar definierte Systemgrenzen Schnelle UI Nur ein Kontrollfluss Fast single source
  • 8. 2-tier Die gesamte Logik l¨uft auf dem Client a Gesch¨ftsregeln, Ablaufregeln, UI-Logik, ... a Server dient lediglich zur Persistenz, ohne fachliches Wissen Datenbankmanagementsystem Ausnahme: Stored procedures, ... Kommunikation zwischen Server & Client l¨uft uber eine a ¨ technische Schnittstelle "select * from foo" Vorteile Komplexe UIs sind m¨glich o Wenig Schichten & klar definierte Systemgrenzen Schnelle UI Nur ein Kontrollfluss Fast single source Nachteile Client-Deployment n¨tig o Nicht sicher
  • 9. 3-tier (mit Rich-Client) Fachlogik verteilt auf Server & Client Ablauflogik verteilt auf Server & Client UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber eine a ¨ fachliche Schnittstelle personWebService.loadPerson(3)
  • 10. 3-tier (mit Rich-Client) Fachlogik verteilt auf Server & Client Ablauflogik verteilt auf Server & Client UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber eine a ¨ fachliche Schnittstelle personWebService.loadPerson(3) Vorteile Komplexe UIs sind m¨glich o Klar definierte Systemgrenzen Schnelle UI Client ist unabh¨ngig von z.B. der Persistenztechnologie a
  • 11. 3-tier (mit Rich-Client) Fachlogik verteilt auf Server & Client Ablauflogik verteilt auf Server & Client UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber eine a ¨ fachliche Schnittstelle personWebService.loadPerson(3) Vorteile Komplexe UIs sind m¨glich o Klar definierte Systemgrenzen Schnelle UI Client ist unabh¨ngig von z.B. der Persistenztechnologie a Nachteile Erheblich mehr Technologievielfalt
  • 12. 3-tier (mit Web-Client) Fachlogik gr¨ßtenteils auf dem Server o Ablauflogik gr¨ßtenteils auf dem Server o UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber ... a ¨ a) ... HTML-Seiten request/response b) ... eine fachliche Schnittstelle personWebService.loadPerson(3)
  • 13. 3-tier (mit Web-Client) Fachlogik gr¨ßtenteils auf dem Server o Ablauflogik gr¨ßtenteils auf dem Server o UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber ... a ¨ a) ... HTML-Seiten request/response b) ... eine fachliche Schnittstelle personWebService.loadPerson(3) Vorteile Komplexe UIs sind m¨glich o Klar definierte Systemgrenzen Schnelle UI Client ist unabh¨ngig von z.B. der Persistenztechnologie a
  • 14. 3-tier (mit Web-Client) Fachlogik gr¨ßtenteils auf dem Server o Ablauflogik gr¨ßtenteils auf dem Server o UI-Logik im Client Persistenzlogik im Server Kommunikation zwischen Server & Client l¨uft uber ... a ¨ a) ... HTML-Seiten request/response b) ... eine fachliche Schnittstelle personWebService.loadPerson(3) Vorteile Komplexe UIs sind m¨glich o Klar definierte Systemgrenzen Schnelle UI Client ist unabh¨ngig von z.B. der Persistenztechnologie a Nachteile Erheblich mehr Technologievielfalt
  • 15. Web-Anwendungen Web 1.0 Wie eine 3-tier-Architektur ... die nur aus HTML-Seiten request/response besteht Die gesamte Logik liegt im Server Clients dienen lediglich zur Darstellung und zur Eingabe
  • 16. Web-Anwendungen Web 2.0 Wie eine 3-tier-Architektur ... ... die das HTML-Seiten request/response Modell f¨rs u Provisioning nutzt ... die zur prim¨re Kommunikation fachliche Schnittstellen a nutzt personWebService.loadPerson(3) Fachlogik verteilt auf Server & Client Ablauflogik verteilt auf Server & Client
  • 18. AJAX Hat angefangen als ”pimp my web page” Input-Validierung Mehr Interaktivit¨t f¨r UI Dialoge a u Mittlerweile prim¨res Kommunikationskonzept um fachlichen a Daten vom Server zum Browser zu ubertragen ¨ Erm¨glicht durch ... o JavaScript im Browser XMLHttpRequest XML → JSON JSON.parse(...) JSON.stringify(...)
  • 19. REST Hat angefangen als besseres SOAP Server-Entit¨ten werden als Resourcen betrachtet a Zugriff erfolgt uber HTTP Operationen ¨ GET, POST, DELETE, ... IDs werden uber die URL kodiert ¨ http://server/resource/1 Wichtigster Unterschied zu SOAP/Corba/etc: Fachliche Entit¨t 1:1 REST Resource a Feste Anzahl Operationen
  • 20. REST Hat angefangen als besseres SOAP Server-Entit¨ten werden als Resourcen betrachtet a Zugriff erfolgt uber HTTP Operationen ¨ GET, POST, DELETE, ... IDs werden uber die URL kodiert ¨ http://server/resource/1 Wichtigster Unterschied zu SOAP/Corba/etc: Fachliche Entit¨t 1:1 REST Resource a Feste Anzahl Operationen → SQL
  • 21. Comet Wie kann der Server dem Client Informationen mitteilen? a.k.a. Server-push Der Begriff Comet fasst verschiedenen Techniken zusammen, um Server-push zu erm¨glichen o Streaming iFrame XmlHttpRequest Long Polling XmlHttpRequest Script tag Eigentlich alles ”Hacks”, das Ergebnis ist aber i.d.R. ausreichend
  • 25. Code
  • 31. Leon
  • 32. WebSockets Ajax und Comet ”missbrauchen” HTTP um eine RCP/REST-Kommunikation abzubilden Ajax: Jeder Aufruf startet einen neuen HTTP request inkl. Header Comet: Server weiß nicht, dass der Request zur Comet-Kommunikation dient WebSockets definieren ein Protokoll (zwischen Server und Browser) um sich von HTTP zu entfernen HTTP Request → TCP/IP Socket WebSocket kann bi-direktional genutzt werden
  • 33. Comet & WebSockets aus Server-Sicht Beim Comet & WebSockets startet der Browser eine Verbindung zum Server und h¨lt diese offen a Problem f¨r Servlet Container u Jeder HTTP Request wird auf einen Thread gemappt Wenn der HTTP Request offen bleibt, gibt es entweder zuviele Threads oder neue Anfragen werden nicht beantwortet L¨sung o Servlets 3.0 Nativer Support im Web-Container (z.B. Jetty)
  • 34. Wir stellen ein! Wir suchen f¨hige Java/Scala/JavaScript/Clojure/RCP/... a Entwickler Wir bieten eine gesunde Mischung aus Programmierer Berater Kicker-Profi Bitte bei mir melden! roelofsen@weiglewilczek.com
  • 35. Vielen Dank f¨r Ihre Aufmerksamkeit! u Fragen?