Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Neues in Java 7
2 Threads und nebenläufige Programmierung
3 Datenstrukturen und Algorithmen
4 Raum und Zeit
5 Dateien, Verzeichnisse und Dateizugriffe
6 Datenströme
7 Die eXtensible Markup Language (XML)
8 Dateiformate
9 Grafische Oberflächen mit Swing
10 Grafikprogrammierung
11 Netzwerkprogrammierung
12 Verteilte Programmierung mit RMI
13 RESTful und SOAP Web-Services
14 JavaServer Pages und Servlets
15 Applets
16 Datenbankmanagement mit JDBC
17 Technologien für die Infrastruktur
18 Reflection und Annotationen
19 Dynamische Übersetzung und Skriptsprachen
20 Logging und Monitoring
21 Java Native Interface (JNI)
22 Sicherheitskonzepte
23 Dienstprogramme für die Java-Umgebung
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
Java 7 - Mehr als eine Insel von Christian Ullenboom
Das Handbuch zu den Java SE-Bibliotheken
Buch: Java 7 - Mehr als eine Insel

Java 7 - Mehr als eine Insel
Rheinwerk Computing
1433 S., 2012, geb.
49,90 Euro, ISBN 978-3-8362-1507-7
Pfeil 13 RESTful und SOAP Web-Services
Pfeil 13.1 Web-Services
Pfeil 13.2 RESTful Web-Services
Pfeil 13.2.1 Aus Prinzip REST
Pfeil 13.2.2 Jersey
Pfeil 13.2.3 JAX-RS-Annotationen für den ersten REST-Service
Pfeil 13.2.4 Test-Server starten
Pfeil 13.2.5 REST-Services konsumieren
Pfeil 13.2.6 Content-Hander, Marshaller und verschiedene MIME-Typen
Pfeil 13.2.7 REST-Parameter
Pfeil 13.2.8 REST-Services mit Parametern über die Jersey-Client-API aufrufen
Pfeil 13.2.9 PUT-Anforderungen und das Senden von Daten
Pfeil 13.2.10 PUT/POST/DELETE-Sendungen mit der Jersey-Client-API absetzen
Pfeil 13.3 Daily Soap und das SOAP-Protokoll
Pfeil 13.3.1 Die technische Realisierung
Pfeil 13.3.2 Web-Service-APIs und Implementierungen
Pfeil 13.3.3 @WebService in Java 6
Pfeil 13.3.4 Einen Web-Service definieren
Pfeil 13.3.5 Web-Services veröffentlichen
Pfeil 13.3.6 Einen JAX-WS-Client implementieren
Pfeil 13.4 Zum Weiterlesen

13 RESTful und SOAP Web-ServicesZur nächsten Überschrift

»Wenn die Menschen nur über Dinge reden würden, von denen sie etwas verstehen – das Schweigen wäre bedrückend.«
– Robert Lembke (1913–1989)


Rheinwerk Computing - Zum Seitenanfang

13.1 Web-ServicesZur nächsten ÜberschriftZur vorigen Überschrift

Zum Ansprechen entfernter Ressourcen und zum Aufrufen entfernter Methoden gibt es mehrere Ansätze. Ein einfaches Verfahren ist die Anfrage mit Parametern an einen Web-Server, der den Inhalt zurückliefert. Das entspricht im Wesentlichen dem, was auch ein Client zum Ansprechen einer Suchmaschine macht – er schickt den Suchstring zum Server und bekommt eine Antwort zurück. Sind wir in einer Client-Server-Architektur und gilt es, auf einem Server Operationen auszuführen, so gibt es unterschiedliche Standards wie RMI, CORBA, DCOM, RPC, so wie schon im vorangehenden Kapitel aufgeführt.

Plattformübergreife Kommunikation

Doch Lösungen wie RMI oder CORBA sind nicht immer optimal, und idealerweise unterhalten sich Client und Server unter folgenden Voraussetzungen:

  • Ihre Kommunikation erfolgt über einen offenen Port, denn Sicherheitsbeauftragte tolerieren es nicht, wenn irgendwelche neuen Ports zusätzlich aufgemacht werden müssen. Der Weg über HTML ist hier optimal, da das Protokoll HTTP verbreitet ist und der Port zum HTTP-Server in der Regel frei bzw. über einen Proxy unproblematisch ist. RMI und CORBA lassen sich zwar über HTTP tunneln, aber das ist keine ordentliche und performante Lösung.
  • Java ist zwar immer noch die wichtigste Programmiersprache für kritische Geschäftsanwendungen, aber natürlich nicht die einzige. Lösungen sollten plattformübergreifend sein, damit Client und Server auf beliebigen Betriebssystemen und in beliebigen Programmiersprachen entwickelt werden können. Mit RMI lässt sich nicht wirklich ein .NET-Client mit einem Java EE-Server verbinden. Und Byteorder (Big-Endian, Little-Endian) sollen keine Rolle spielen – genauso wie die interne Repräsentation von Fließkommazahlen.
  • Im Optimalfall ist der Zugriff ohne aufwändige Generatoren zu realisieren. Das vereinfacht auch das Testen enorm.

Es ist naheliegend, die Übertragung über HTTP vorzunehmen und ein neutrales Text-Protokoll einzusetzen, um keine Bindung an Rechnersysteme und Programmiersprachen zu erzwingen. Bietet ein Web-Server Dienste für Clients an, nennen wir das Web-Service, wobei wir erst einmal offen lassen, wie genau die Kommunikation zwischen Client und Server aussieht.

REST und SOAP

Da es verschiedene Anforderungen in der Web-Kommunikation gibt, haben sich zwei bekannte Web-Service-Standards herausgebildet:

  • SOAP Web-Services: SOAP ist ein standardisiertes Protokoll, bei dem XML-Nachrichten übertragen werden. SOAP ist ähnlich wie RMI eine Technologie zum entfernten Methodenaufruf, bei der Argumente übergeben und eine Rückgabe eingesammelt wird. Die Parameter und Rückgaben sind exakt in einer WSDL-Datei beschrieben (ebenfalls im XML-Format), und es lassen sich gut Generatoren einsetzen, die mithilfe dieser WSDL-Datei Zugriffsklassen in allen möglichen Programmiersprachen generieren.
  • RESTful Web-Services: Beim REST-Prinzip wird eine Anfrage über HTTP an den Web-Server gestellt. Anstatt entfernte Operationen aufzurufen und Argumente in einem XML-Dokument zu übergeben, kodiert die URL die Ressource, und nur einige wenige Operationen (wie Lesen und Aktualisieren) sind möglich. Im Mittelpunkt steht eine Ressource, die eindeutig adressierbar ist. Die Ressource hat eine Repräsentation, die in jedem Format sein kann, also XML, Text, Bilder oder .mp3-Dateien.

Da SOAP-basierte Web-Services zeitlich vor RESTful Web-Services bekannt wurden, haben sie sozusagen den Begriff »Web-Services« geprägt. RESTful Web-Services kamen später, und so ist der Begriff »Web-Service« eigentlich mehrdeutig. Durch den historischen Vorsprung von SOAP ist der Begriff »Web-Service« in der Öffentlichkeit aber oft noch mit SOAP assoziiert.

Beide Verfahren haben ihre Vorzüge, und es ist nicht so, dass eine Variante immer besser als die andere Variante ist. Wenn es Ressourcen-Zugriffe gibt und es keine entfernten Aufrufe an wirkliche Objekte mit Zuständen und Verhalten gibt, ist ein RESTful Web-Service eine gute Wahl. Stehen entfernte Objekte mit ihren vielfältigen Funktionen im Vordergrund, ist ein SOAP Web-Service in Ordnung. Beide verfolgenden unterschiedliche Philosophien, daher ist die Auswahl »REST oder SOAP?« keine Frage der technischen Realisierung: Web-Services können von einer Variante in die andere überführt werden, doch dann »fühlt« es sich nicht mehr so natürlich an. RESTful ist ein Architekturstil und kein Standard wie SOAP.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Neuauflage: Java SE 8 Standard-Bibliothek
Neuauflage: Java SE 8 Standard-Bibliothek
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Java EE 7






 Professionell
 entwickeln mit
 Java EE 7


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Eclipse






 Einstieg in Eclipse


Zum Katalog: Einstieg in Java






 Einstieg in Java


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de