Upload
andreas-schreiber
View
1.285
Download
0
Embed Size (px)
DESCRIPTION
TechTalk von Doreen Seider (DLR Köln-Porz, 15.01.2009).
Citation preview
Folie 1REST TechTalk > D. Seider > 15.01.2009
RESTTechTalk
Doreen SeiderDLR-SC, Köln, 15.01.2009
REST TechTalk > D. Seider > 15.01.2009
Folie 2
Gliederung
TheorieREST – Was? Was nicht? Woher? Wohin?
PraxisREST-basierte ApplikationenJSR 311 (JAX-RS)Referenzimplementierung Jersey
Zusammenfassung
REST TechTalk > D. Seider > 15.01.2009
Folie 3
REST – TheorieWas ist REST?
REST ist eine Alternative für SOAP Web Services ...?REST ist HTTP-basiert ...?REST ist ein Hype ...?...?
REST ist ein Architekturkonzept.(REST vs. SOAP)
REST TechTalk > D. Seider > 15.01.2009
Folie 4
RESTDefinition
REpresentational State TransferGeprägt 2000 in Dissertation von Roy Fielding
“Architectural Styles and the Design of Network-based Software Architectures”
GrundprinzipienZustandslose Client-Server-KommunikationEindeutig identifizierbare RessourcenEinheitliche SchnittstelleRepräsentation(en) der RessourcenHypermedia
REST TechTalk > D. Seider > 15.01.2009
Folie 5
RESTArchitektur des WWW
Basisstandards: HTTP, URL, HTMLErfüllung der REST-Grundprinzipien
= REST-basiert
Quelle: Wikipedia
REST TechTalk > D. Seider > 15.01.2009
Folie 6
RESTGrundprinzipien am Beispiel WWW
Server
Clients
Zustandslose Client-Server-Kommunikation
REST TechTalk > D. Seider > 15.01.2009
Folie 7
RESTGrundprinzipien am Beispiel WWW
Eindeutig identifizierbare RessourcenUniform Resource Locator (URL)
http://boox.com/sciencefiction/thehitchhikersguidetothegalaxyhttp://boox.com/orders/2009/01http://boox.com/customers/42http://boox.com/sales/2000-2009
REST TechTalk > D. Seider > 15.01.2009
Folie 8
RESTGrundprinzipien am Beispiel WWW
Einheitliche SchnittstelleHTTP-Request-Methoden
GET – Abrufen PUT – Update oder ErstellenPOST – Erstellen oder Hinzufügen DELETE – Löschen(HEAD, TRACE, OPTIONS, CONNECT)
[GET, PUT, POST, DELETE, ...] http://boox.com/orders/2009/01[GET, PUT, POST, DELETE, ...] http://boox.com/customers/42
...
REST TechTalk > D. Seider > 15.01.2009
Folie 9
RESTGrundprinzipien am Beispiel WWW
Quelle: http://www.infoq.com/articles/rest-introduction
Einheitliche Schnittstelle
REST TechTalk > D. Seider > 15.01.2009
Folie 10
RESTGrundprinzipien am Beispiel WWW
Repräsentation(en) von RessourcenFelder Accept und Content-Type im HTTP-HeaderClient-spezifische RepräsentationenZ.B. Browser: HTML
HTTP/1.1 200 OKServer: Apache/1.3.29 (Unix) PHP/4.3.4Content-Length: 483Content-Language: de Content-Type: text/htmlConnection: close
REST TechTalk > D. Seider > 15.01.2009
Folie 11
RESTGrundprinzipien am Beispiel WWW
HypermediaVerknüpfung identifizierbarer Ressourcen (WWWeb)URL von Ressourcen in Repräsentation von anderen RessourcenSiehe HTML
<order ref=http://boox.com/orders/1><customer ref=http://boox.com/customers/42><books>
<book ref=http://boox.com/sciencefiction/thehitchhikers\guidetothegalaxy>
<book ref=http://boox.com/fantasy/thelordoftherings></books>
</order>
REST TechTalk > D. Seider > 15.01.2009
Folie 12
REST – PraxisREST-basierte Applikationen
Erfüllen Grundprinzipien von RESTSind meist HTTP-basiert (auf Grund von WWW-Verbreitung)Sind nicht neu
RealisierungsmöglichkeitenServlet API, JAX-RS,
REST TechTalk > D. Seider > 15.01.2009
Folie 13
RESTJSR 311 oder JAX-RS
The Java API for RESTful Web ServicesZiel: Vereinfachung der Umsetzung von REST-PrinzipienServer-seitigVersion 1.0
Referenzimplementierung: Jersey
REST TechTalk > D. Seider > 15.01.2009
Folie 14
RESTJersey
SituationClient – [GET, PUT, POST, DELETE, ...] URLServer – Applikationslogik (in Java)
ZielVerknüpfen von Client-Anfragen mit Applikationslogik
Umsetzung in JerseyAbbilden von URLs und HTTP-Request-Methoden auf Klassen und Methoden in Java mittels Annotationen
REST TechTalk > D. Seider > 15.01.2009
Folie 15
RESTDemonstration
Jersey und RESTClient
REST TechTalk > D. Seider > 15.01.2009
Folie 16
REST-basierte WS vs. WS mit XMLFakten
WS mit XMLProtokollunabhängig (aber fast immer SOAP mit HTTP)Tunneln über HTTP GET !Fehlercodes, !Caching, ...Explizite Schnittstellenbeschreibung – WSDL (aber bedarf meist Metainformationen)Gewohnter Ansatz
REST-basierte WSNutzen von bewährtem Protokoll HTTP
Fehlercodes, Caching, Content Negotiation,Unabhängiger Client durch einheitliche Schnittstelle Metainformationen notwendigGewöhnungsbedürftiger Ansatz
REST TechTalk > D. Seider > 15.01.2009
Folie 17
Zusammenfassung
REST ist ArchitekturkonzeptWWW liegt diesem Konzept zu Grunde
REST-basierte Applikationen sind nicht neuREST-basierte Applikationen nutzen bewährtes Protokoll (HTTP)
Standards und Implementierungen von REST-APIs
REST TechTalk > D. Seider > 15.01.2009
Folie 18
Quellen und Verweise
QuellenDissertation von Roy FieldingStefan Tilkov: A Brief Introduction to RESTStefan Tilkov: REST Anti-PatternsJava Magazin 01/09JSR 311
ProjekteJerseyRESTClient
REST TechTalk > D. Seider > 15.01.2009
Folie 19
Fragen und Anregungen