Konzept: Web-Services für J2EE
Diese Richtlinie enthält einen Überblick über die J2EE-Web-Services.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

Was ist ein J2EE-Web-Service?

Ein Web-Service enthält eine Architektur, die aus drei Hauptelementen besteht: der Service-Registry, dem Serviceprovider und dem Serviceanforderer. Abbildung 1 enthält einen Überblick über die Beziehungen zwischen diesen verschiedenen Elementen.

Web-Service-Architektur
Abbildung 1 - Web-Service-Architektur

Der Serviceprovider definiert die Serviceschnittstelle (Service Interface) über ein abstraktes Servicebeschreibungsdokument unter Verwendung der Web Services Description Language (WSDL). Diese abstrakte Beschreibung ist Transport- und Codierungsbindungen zugeordnet sowie einer Adresse in einer konkreten Servicebeschreibung, die eine konkrete Serviceinstanz, auch Serviceendpunkt oder Port genannt, definiert. Diese konkrete Beschreibung kann dann in einer Service-Registry, wie z. B. Universal Description, Discovery and Integration (UDDI), publiziert werden, damit jeder Serviceanforderer darauf zugreifen kann. Ein Serviceanforderer verwendet diese Service-Registry, um eine konkrete Serviceimplementierung für den Web-Service auszuwählen und zu verwenden.

Ein J2EE-Web-Service besteht aus einer Gruppe von Ports, die innerhalb eines Containers arbeiten. Der Container vermittelt den Zugriff auf den Service und stellt die Laufzeitumgebung bereit.

Der Client eines Web-Services kann ein anderer Web-Service, eine J2EE-Komponente oder eine beliebige Java-Anwendung sein. Selbst Nicht-Java- oder Nicht-Web-Anwendungen können Web-Services verwenden.

Die Sicht des Web-Service-Clients

Die Sicht des Web-Service-Clients wird vom Portprovider (Serviceprovider) und vom Container bereitgestellt. Wie in der folgenden Abbildung 2 gezeigt (grau dargestellt), enthält die Clientsicht eine Serviceschnittstelle (Service Interface) und eine Serviceendpunktschnittstelle (Service Endpoint Interface).

Sicht des Web-Service-Clients
Abbildung 2: - Sicht des Web-Service-Clients

Um auf den Port eines Web-Services zuzugreifen, lokalisiert der Client zunächst die Serviceschnittstelle mit Hilfe der JNDI APIs. Über die Serviceschnittstelle ermittelt der Client die Methoden für den Zugriff auf einen Port und die Methoden für den Zugriff auf die Web-Service-Implementierung über die Serviceendpunktschnittstelle. In der Clientsicht gilt ein Port als statusunabhängiges Objekt.

Die Service- und Serviceendpunktschnittstellen werden durch die JAX-RPC-Spezifikation definiert. Das Verhalten der Serviceschnittstelle wird jedoch von dem WSDL-Servicebeschreibungsdokument definiert, das vom Web-Service-Provider bereitgestellt wird.

Die Sicht des Web-Service-Servers

Die Serversicht eines Web-Services ist zuständig für die Implementierung der Geschäftslogik des Services. Wie in J2EE 1.4, definiert, kann der Web-Service-Endpunkt (Web Service Endpoint) mit einer der folgenden Methoden implementiert werden:

  • über eine Session-Bean ohne Statusaufzeichnung (Stateless-Session-Bean) wie in den Spezifikationen JSR 109 und EJB 2.1 festgelegt
  • über ein Servlet wie in JAX-RPC festgelegt.

Nähere Informationen zu diesen beiden Methoden finden Sie im Abschnitt Richtlinie: Session-Beans festlegen für einen Session-Bean-basierten Endpunkt und im Abschnitt Richtlinie: Servlets festlegen für einen Servlet-basierten Endpunkt.

Referenz

Die Hauptreferenz für diese Seite ist die Spezifikation "Web Services for J2EE" (JSR 109).