Suchen und Finden
Service
Infos und Kontakt
7 JAX-RPC (S. 161-162)
JAX-RPC ist wohl das wichtigste API für die Web-Service-Entwicklung auf der Java-Plattform. Mit JAX-RPC kann das Implementieren und Aufrufen von Web-Services wesentlich einfacher und transparenter gestaltet werden. Daher ist dieses Kapitel komplett dem Thema JAX-RPC gewidmet. Neben der Vorstellung der Programmiermodelle und des JAX-RPC-API bildet die Beschreibung von Java-WSDL-Mapping den Schwerpunkt dieses Kapitels. Abgerundet wird es mit der Erläutung des Message-Handler-Konzepts. Einige Facetten von JAX-RPC wie Security oder erweiterbares Typmapping durch benutzerdefinierte Serializer haben keinen Platz in diesem Kapitel gefunden – jedoch nicht, weil sie zu ignorieren sind. Ganz im Gegenteil werden die beiden Themen aufgrund ihrer Wichtigkeit in Zusammenhang mit der Axis-Implementierung in jeweils einem separaten Kapitel behandelt. Für dieses Kapitel wird ein grundlegendes Verständnis von SOAP, WSDL sowie XML-Schema vorausgesetzt.
7.1 Einführung
Das RPC (Remote Procedure Call)-Konzept existiert schon seit langer Zeit. Mit RPC können Clients eine Funktion, eine Methode oder einen Service, der auf einem anderen Rechner zur Verfügung steht, aus der Ferne („remote") aufrufen. Verschiedene Technologien wie RMI (Remote Method Invocation), CORBA (Common Object Request Broker Architecture) oder RFC (Remote Function Call) unterstützen das RPC-Konzept, wobei jede Technologie ein eigenes Kommunikationsprotokoll und damit auch ein eigenes Nachrichtenformat verwendet. Bei Web Services wird SOAP als Kommunikationsprotokoll eingesetzt, das wiederum XML als Datenformat benutzt. Beide Technologien sind plattform- und programmiersprachenunabhängig und garantieren damit höchste Interoperabilität. Java als eine plattformunabhängige Programmiersprache kann die beiden Technologien hervorragend ergänzen, indem es für die Implementierung von Service und Service-Client genutzt wird. Um Java und Web Services zusammenzubringen, wurde JAX-RPC im Rahmen des JCP eingeführt.
JAX-RPC definiert ein High-Level-API und ein Programmiermodell, die zusammen die Komplexität der Entwicklung einer Web-Service-Anwendung verstecken. Es ist sehr wichtig zu verstehen, dass JAX-RPC im Wesentlichen nur Interfaces und abstrakte Klassen sowie Mappings zwischen Java und XML spezifiziert. Um JAX-RPC zu benutzen, wird zusätzlich eine Implementierung der JAX-RPC-Spezifikation benötigt. Eine solche Implementierung wird als eine JAX-RPC-Runtime bezeichnet, weil sie die notwendige Umgebung für die auf JAX-RPC basierenden Anwendungen bereitstellt. Axis stellt eine solche Implementierung dar, während eine andere Implementierung z.B. die Referenzimplementierung von Sun ist, die zusammen mit dem JWSDP (Java Web Services Developer Pack) ausgeliefert wird. Weiterhin bieten verschiedene kommerzielle Anbieter Implementierungen von JAXRPC in Form von lizenzierungspflichtigen Produkten an.
Ein zentrales Konzept in JAX-RPC ist das Service Endpoint Interface, das sämtliche Operationen enthält, die von Service-Clients aus der Ferne aufgerufen werden können. Dieses Interface definiert den Vertrag zwischen Service und Service Client und ist vergleichbar mit einem IDL-Interface in CORBA oder einem Remote-Interface in RMI. Das Service Endpoint Interface ist die Java-Abbildung eines WSDL Port Type.
Ein Service Endpoint Interface wird von einer konkreten Klasse implementiert, und auf diese Serviceimplementierung kann unter einem Service Endpoint von Service Clients zugegriffen werden. Die Voraussetzung für die Zugriffe ist aber, dass eine JAX-RPC-Runtime vorhanden ist, in der die Serviceimplementierung läuft.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion


















