Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
2
Inhaltsverzeichnis
Teil 1: Was ist ein Web Service?Teil 2: Techniken zur Implementierung eines Web Services
SOAP und RESTTeil 3: REST und SOAP im VergleichTeil 4: Realisierung von RESTful Web Services in JavaTeil 5: Implementierung von RESTful Web Services mit JAX-RS: ServerTeil 6: Implementierung von RESTful Web Services mit JAX-RS: ClientTeil 7: WADL
zurück
3
Was ist ein Web Service?
per Netzwerk bereitgestellte Softwareanwendungzum Abruf eines über das Web verfügbaren Datenangebotsermöglicht automatische Informationsbeschaffung ohne User-Eingriff
AnwendungsbereicheB2B – Abwicklung von Geschäftsprozessen über Unternehmensgrenzen hinwegZugang zu GeodatenBereitstellung externer FunktionenÜbertragung von TÜV-Seminaren zur Certqua
KonsumentClient
AnbieterServer
1. Request
2. Response
4
LinuxWindows
Was ist ein Web Service?
Vorteilenicht an Übertragungsprotokoll gebundenInteroperabilität
NachteilePerformanceSicherheitsaspekteexterne Bibliotheken
KonsumentC#-Client
AnbieterJava-Server
HTTP-Request
HTTP-Response
5
Netzwerkprotokoll zum DatenaustauschXML-Format
Aufbau einer SOAP-NachrichtXML-Element Envelope mit Header und Body
Funktionsweise
Techniken zur Implementierung eines Web Services
SOAP
Konsument Anbieter
Broker
veröffentlichensuchenauf Dienstverweisen
anfragen
antworten
6
<?xml version="1.0"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Body><m:MitarbeiterInDatenbank xmlns:m="http://www.db.de/soap">
1574</m:MitarbeiterInDatenbank>
</s:Body></s:Envelope>
BeispielAnfrage an Datenbank nach Mitarbeiter mit angegebener ID
Auswertung der Nachricht durch den ServerstartElement(„MitarbeiterInDatenbank“, […])
Antwort des Servers mit einer Soap-Nachricht
Techniken zur Implementierung eines Web Services
SOAP
7
fünf Prinzipien für REST-DiensteZustandslosigkeitAdressierbarkeit
RepräsentationenOperationenVerwendung von Hypermedia
Techniken zur Implementierung eines Web Services
REST – Representational State Transfer
http://www.beispiel.de/rest-servicehttp://www.beispiel.de/rest-service/artikel/1http://www.beispiel.de/rest-service/kunde/532
8
REST und SOAP im Vergleich
RESTgenerisches Interface
GET, POST, PUT, DELETEVerwendung von Standards
URI, HTTP, XML, …mehrere Nachrichtenformate
XML, JSON, …WADL zur Beschreibungdirekt adressierbare Ressourcen
SOAPkein generisches Interface
Methoden selbst definierenSchaffen eigener Standards
WSDL, UDDI, …festgelegtes Nachrichtenformat
XMLWSDL zur BeschreibungAdressierung per Dispatcher
9
REST und SOAP im Vergleich
Suche nach Produkt „Web Services“ in Online-ShopURI Web-Anwendung/Web Service (SOAP):
http://www.online-shop.de/angebot
URI REST-Anwendung:http://www.online-shop.de/angebot/artikel/549
Zugriff auf Ressource von verschiedenen Clientsspezielle Anwendung liest aus Ressource für sie relevante Daten und verwertet sieper Browser lässt sich eine HTML-Repräsentation der Ressource zur Einsicht/Überwachung öffnen
Vorteile von REST - Beispiele
10
REST und SOAP im Vergleich
Beispiel: Mitarbeiter-Suche in einer Datenbank
rest
11
Realisierung von RESTful Web Services in Java
Java API for RESTful Web Services
Veröffentlichungen in der Java Platform Enterprise EditionJAX-RS 1.1 in Java EE6JAX-RS 2.0 in Java EE7
Referenzimplementierungen für JAX-RSRestletRESTEasyApache WinkJersey
Implementierung von Spring
JAX-RS
12
Implementierung von RESTful Web Services mit JAX-RS
Tomcat-Server hinzufügendynamisches Web Projekt erstellenWeb Projekt dem Server hinzufügen
Klasse der übergebenen Objekte erzeugenPerson.javaAnnotation zur XML-Ausgabeparameterloser Konstruktor
Ressourcen-Klasse erzeugenRestRessource.javaBibliothek „jsr311-api-1.1.jar“ importierenMethoden implementieren und annotieren
Server
13
Implementierung von RESTful Web Services mit JAX-RS
Annotationen@Path: Pfad, über den auf eine Ressource zugegriffen werden kann@GET, @POST: HTTP-Methoden@Produces: den Media-Typen der Ausgabe festlegen;z.B. XML, HTML, Text@Consumes: den Media-Typen der Eingabe festlegen@PathParam: in der URL übergebene Parameter einlesen@QueryParam: in der URL übergebene Parameter in Form von Name-Wert-Paaren einlesen@FormParam: per Formular übergebene Parameter einlesen
Server
14
<servlet><servlet-name>RESTService</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>restserver</param-value>
</init-param><load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping><servlet-name>RESTService</servlet-name><url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Implementierung von RESTful Web Services mit JAX-RS
Ressourcen registrierenEinbinden der Bibliothek jaxrs-ri (Jersey)Konfiguration von web.xml
Server
15
Implementierung von RESTful Web Services mit JAX-RS
JSPGET-Operationen können durch JavaScript angestoßen werden
@PathParamPOST-Operationen können per Formular angestoßen werden
@FormParamClient muss die Klasse Person nicht kennen
Java-ClientPaket javax.ws.rs.client (seit Java EE7)Einbinden der Bibliothek jaxrs-ri.2.5.1 (Jersey)Client- und WebTarget-Objekt erzeugen
Client
16
Web Application Description Language
automatisch generierte WADL-Dateiim Beispiel: http://localhost:8082/RestServer/rest/application.wadl
Tool wadl2javageneriert aus der WADL-Datei Java-KlassenKonsoleneingabe:
wadl2java –o C:\Users\...\REST –p de.wadl2javahttp://localhost:8082/RestServer/rest/application.wadl
wadl2java
17
Quellen und Verweise
Orientation in Objects: REST Web Serviceshttp://www.oio.de/public/xml/rest-webservices.htm
JAXenter: Rest – Der bessere Web Service?http://jaxenter.de/artikel/REST-bessere-Web-Service-167838
Galileo Computing: RESTful und SOAP Web-Serviceshttp://openbook.galileocomputing.de/java7/1507_13_001.html
Jersey: RESTful Web Services in Javahttp://jersey.java.net/
In Zusammenarbeit mit der Fachhochschule Dortmund bieten wir
zwei Online-Studiengänge B.Sc. Web- und MedieninformatikB.Sc. Wirtschaftsinformatik
und 7 Weiterbildungen im IT-Bereich an.
W3L-AkademieInhouse-Schulungen
Wir bieten Inhouse-Schulungen und Beratung durch unsere IT-Experten und –Berater.
SchulungsthemenSoftwarearchitektur (OOD)
Requirements Engineering (OOA)
Nebenläufige & verteilte
Programmierung
Gerne konzipieren wir auch eine individuelle Schulung zu Ihren Fragestellungen.
Flexibel online lernen und studieren!
Sprechen Sie uns an!Tel. 0231/61 804-0, [email protected]
Besuchen Sie unsere Akademie!http://Akademie.W3L.de