SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
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?

Más contenido relacionado

Destacado

Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
Payro, Roberto J.-  Divertidas aventuras del nieto de Juan MoreiraPayro, Roberto J.-  Divertidas aventuras del nieto de Juan Moreira
Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
Adriana Sasali
 
Dn11 3 era_eval_presentacion_omph
Dn11 3 era_eval_presentacion_omphDn11 3 era_eval_presentacion_omph
Dn11 3 era_eval_presentacion_omph
mauricioph13
 
Propuesta- Nuevas tecnologías en educación
Propuesta- Nuevas tecnologías en educaciónPropuesta- Nuevas tecnologías en educación
Propuesta- Nuevas tecnologías en educación
Brenda Vc
 
Ihre Zielgruppen mit Mobile Marketing
Ihre Zielgruppen mit Mobile MarketingIhre Zielgruppen mit Mobile Marketing
Ihre Zielgruppen mit Mobile Marketing
servtag GmbH
 
PARA QUÉ SIRVE UNA HERMANA
PARA QUÉ SIRVE UNA HERMANAPARA QUÉ SIRVE UNA HERMANA
PARA QUÉ SIRVE UNA HERMANA
Sara Macias
 
Anàlisi de xarxes socials al Raval
Anàlisi de xarxes socials al RavalAnàlisi de xarxes socials al Raval
Anàlisi de xarxes socials al Raval
Socialaxon
 
Dn12 u3 a25_lvo
Dn12 u3 a25_lvoDn12 u3 a25_lvo
Dn12 u3 a25_lvo
yizeth3111
 
Habilidades comunicativas
Habilidades comunicativasHabilidades comunicativas
Habilidades comunicativas
Harold Vargas
 
Informationsblatt BI 2
Informationsblatt BI 2Informationsblatt BI 2
Informationsblatt BI 2
WandelBarCamp
 
Freundschaftsbilder
FreundschaftsbilderFreundschaftsbilder
Freundschaftsbilder
Sylvi O.
 

Destacado (20)

Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
Payro, Roberto J.-  Divertidas aventuras del nieto de Juan MoreiraPayro, Roberto J.-  Divertidas aventuras del nieto de Juan Moreira
Payro, Roberto J.- Divertidas aventuras del nieto de Juan Moreira
 
Dn 12 u3_act30_sgaa
Dn 12 u3_act30_sgaaDn 12 u3_act30_sgaa
Dn 12 u3_act30_sgaa
 
Dn11 3 era_eval_presentacion_omph
Dn11 3 era_eval_presentacion_omphDn11 3 era_eval_presentacion_omph
Dn11 3 era_eval_presentacion_omph
 
Propuesta- Nuevas tecnologías en educación
Propuesta- Nuevas tecnologías en educaciónPropuesta- Nuevas tecnologías en educación
Propuesta- Nuevas tecnologías en educación
 
Ihre Zielgruppen mit Mobile Marketing
Ihre Zielgruppen mit Mobile MarketingIhre Zielgruppen mit Mobile Marketing
Ihre Zielgruppen mit Mobile Marketing
 
PARA QUÉ SIRVE UNA HERMANA
PARA QUÉ SIRVE UNA HERMANAPARA QUÉ SIRVE UNA HERMANA
PARA QUÉ SIRVE UNA HERMANA
 
Anàlisi de xarxes socials al Raval
Anàlisi de xarxes socials al RavalAnàlisi de xarxes socials al Raval
Anàlisi de xarxes socials al Raval
 
02glovis practica
02glovis practica02glovis practica
02glovis practica
 
Dn12 u3 a25_lvo
Dn12 u3 a25_lvoDn12 u3 a25_lvo
Dn12 u3 a25_lvo
 
Dn 12 u3_act23_sgaa
Dn 12 u3_act23_sgaaDn 12 u3_act23_sgaa
Dn 12 u3_act23_sgaa
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Tema 4 impress
Tema 4 impressTema 4 impress
Tema 4 impress
 
Habilidades comunicativas
Habilidades comunicativasHabilidades comunicativas
Habilidades comunicativas
 
Informationsblatt BI 2
Informationsblatt BI 2Informationsblatt BI 2
Informationsblatt BI 2
 
Freundschaftsbilder
FreundschaftsbilderFreundschaftsbilder
Freundschaftsbilder
 
Galapagos
GalapagosGalapagos
Galapagos
 
Diapositivas nuevas
Diapositivas nuevasDiapositivas nuevas
Diapositivas nuevas
 
Pppppppppppppppppppp
PpppppppppppppppppppPppppppppppppppppppp
Pppppppppppppppppppp
 
AGIT 2010: Adressierung von Gebietskörperschaften in der Frühwarnung
AGIT 2010: Adressierung von Gebietskörperschaften in der FrühwarnungAGIT 2010: Adressierung von Gebietskörperschaften in der Frühwarnung
AGIT 2010: Adressierung von Gebietskörperschaften in der Frühwarnung
 
Recuerdo de asturias
Recuerdo de asturiasRecuerdo de asturias
Recuerdo de asturias
 

Similar a Ajax, Comet & Co.

Good by Server... Hello Client!
Good by Server... Hello Client!Good by Server... Hello Client!
Good by Server... Hello Client!
Sandro Sonntag
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)
soreco
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)
Eric Eggert
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Andreas Schreiber
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Udo Ornik
 

Similar a Ajax, Comet & Co. (20)

Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
 
MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Ajax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google SuggestAjax hands on - Refactoring Google Suggest
Ajax hands on - Refactoring Google Suggest
 
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
Wozu Portlets – reichen HTML5 und Rest nicht aus für moderne Portale?
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
Good by Server... Hello Client!
Good by Server... Hello Client!Good by Server... Hello Client!
Good by Server... Hello Client!
 
Ec2009 Templates
Ec2009 TemplatesEc2009 Templates
Ec2009 Templates
 
Top 10 Internet Trends 2006
Top 10 Internet Trends 2006Top 10 Internet Trends 2006
Top 10 Internet Trends 2006
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)07 06 Xpertivy (Office 2003)
07 06 Xpertivy (Office 2003)
 
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer ServicesCloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
 
OSMC 2009 | Verteilte Monitoring-Umgebungen unter Verwendung eines ESBs by Be...
OSMC 2009 | Verteilte Monitoring-Umgebungen unter Verwendung eines ESBs by Be...OSMC 2009 | Verteilte Monitoring-Umgebungen unter Verwendung eines ESBs by Be...
OSMC 2009 | Verteilte Monitoring-Umgebungen unter Verwendung eines ESBs by Be...
 
Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)Internet und Webdesign (Historisches Dokument)
Internet und Webdesign (Historisches Dokument)
 
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web RahmenwerkeWebtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
Webtechnologien Grundlagen und Auswahl geeigneter Web Rahmenwerke
 
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher SoftwareEinsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
Einsatz von Subversion bei der Entwicklung technisch-wissenschaftlicher Software
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
 
B3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite ApplicationsB3 Lotus Expeditor Und Composite Applications
B3 Lotus Expeditor Und Composite Applications
 
Thomas' Tech Talk 3 - Exchange Server Hybrid
Thomas' Tech Talk 3 - Exchange Server HybridThomas' Tech Talk 3 - Exchange Server Hybrid
Thomas' Tech Talk 3 - Exchange Server Hybrid
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
 

Más de Roman Roelofsen (6)

Agile specifications on agile projects
Agile specifications on agile projectsAgile specifications on agile projects
Agile specifications on agile projects
 
Concurrency Paradigmen
Concurrency ParadigmenConcurrency Paradigmen
Concurrency Paradigmen
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickeln
 
Pro Syst Enterprise OSGi
Pro Syst Enterprise OSGiPro Syst Enterprise OSGi
Pro Syst Enterprise OSGi
 
OSGi Release 4.2 - Was ist neu?
OSGi Release 4.2 - Was ist neu?OSGi Release 4.2 - Was ist neu?
OSGi Release 4.2 - Was ist neu?
 
VIB - Very Important Bundles
VIB - Very Important BundlesVIB - Very Important Bundles
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?