Verwenden Sie diesen Artikel als Einführung in die Verwendung von Web-Services. WebSphere Application Server unterstützt
Web-Services, die basierend auf verschiedenen
Java™-Programmiermodellen
entwickelt und implementiert wurden. Verwenden Sie Web-Services, wenn Sie mit mehreren Plattformen arbeiten, z. B. mit
Java Platform, Enterprise Edition (Java EE) und anderen Plattformen.
Vorbereitende Schritte
Stellen Sie fest, ob eine Web-Service-Implementierung für Ihren Geschäftsprozess von Vorteil ist.
Informationen zu diesem Vorgang
Bewährte Verfahren: IBM®
WebSphere Application Server unterstützt
das Programmiermodell Java API
for XML-Based Web Services (JAX-WS) und das Programmiermodell Java API
for XML-based RPC (JAX-RPC). JAX-WS ist das Web-Service-Programmiermodell der nächsten Generation,
das die vom Programmiermodell JAX-RPC bereitgestellte Grundlage erweitert.
Durch die Verwendung des strategischen Programmiermodells JAX-WS, das ein
auf Standards basierendes Annotationsmodell unterstützt, vereinfacht sich die Entwicklung von Web-Services und -Clients.
Obwohl das Programmiermodell JAX-RPC und JAX-RPC-Anwendungen weiterhin unterstützt werden, sollten Sie das einfach zu
implementierende Programmiermodell JAX-WS für die Entwicklung neuer
Web-Service-Anwendungen und -Clients nutzen.
Eine vollständige Liste der unterstützten Standards und Spezifikationen
finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.
Die Implementierung von Web-Service-Anwendungen ist eine einfache Möglichkeit,
Anwendungssysteme gemeinsam innerhalb oder außerhalb der Infrastruktur eines Geschäfts
zu integrieren, die als eigenständige Systeme arbeiten.
Beispiel: Ihre Kundendatenbank ist eine eigenständige Anwendung ist, aber Ihre Fakturierungsanwendung soll auf die Kundenddaten zugreifen.
Sie können einen Web-Service für die Kundendatenbank erstellen und anschließend
die Fakturierungsanwendung als Client des Web-Service aktivieren.
Danach kann Ihre Fakturierungsanwendung auf die Kundendaten zugreifen.
Durch die Implementierung eines Web-Service können die beiden Anwendungen Informationen effizient gemeinsam nutzen.
Da Web-Services leicht auf vorhandene Anwendungen und IT-Ressourcen
anwendbar sind, können neue Lösungen schnell entwickelt, implementiert und neu strukturiert werden, um
neue Chancen wahrzunehmen. Mit der zunehmenden Verbreitung von Web-Services steigt nicht nur die Zahl der Services.
Gleichzeitig wird die Entwicklung sehr robuster Modelle für Just-in-time-Anwendungen und Geschäftsintegration
über das Internet.
Führen Sie für die Verwendung von Web-Service-Anwendungen mit dem Anwendungsserver
die folgenden Schritte aus:
Vorgehensweise
- Planen Sie die Verwendung von Web-Services. Machen Sie sich mit allen Komponenten
von Web-Services vertraut, um zu lernen, wie Sie Ihre Web-Services leistungsfähiger gestalten können.
- (Optional) Migrieren Sie vorhandene Web-Services.
Da
Kompatibilität in Java-EE-Umgebungen ein wichtiger Aspekt ist, bieten meisten Anwendungsserver, die die neueren
Spezifikationen JAX-WS und JAXB unterstützen, weiterhin Unterstützung für die
ältere Spezifikation JAX-RPC an. Dies hat zur Folge, dass vorhandene Web-Services wahrscheinlich weiterhin JAX-RPC-basiert bleiben, während die neuen
Web-Services mit JAX-WS und JAXB entwickelt werden.
Es empfiehlt sich jedoch, die JAX-RPC-basierten Web-Services
nach und nach auf JAX-WS und JAXB umzustellen, insbesondere wenn Anwendungen überarbeitet und neu programmiert werden müssen.
Hierfür müssen Lieferanten möglicherweise Erweiterungen für die Servicequalitäten bereitstellen, die nur in den
neuen Programmiermodellen verfügbar sind. Die Unterstützung für SOAP 1.2 und
SOAP Message Transmission Optimization Mechanism (MTOM) ist beispielsweise nur in den Programmiermodellen
JAX-WS 2.x und JAXB 2.x, aber nicht in JAX-RPC verfügbar. Machen Sie sich mit den bewährten Verfahren für die Migration
von Web-Services vertraut, um mehr darüber zu erfahren und sich Beispiele für die Migration
von JAX-RPC-Web-Services auf JAX-WS- und JAXB-Web-Services anzusehen.
Anmerkung: Vorhandene
JAX-RPC-Anwendungen, in denen JAX-WS-Features verwendet werden sollen, müssen mit dem JAX-WS-Programmiermodell
erneut geschrieben werden.
Wenn Sie Web-Services verwenden, die auf
Apache SOAP basieren, und jetzt Web-Services für die Spezifikation "Java
EE" entwickeln und implementieren möchten, müssen Sie Clientanwendungen migrieren, die mit allen Versionen
4.0 und 5.0 vor 5.0.2 entwickelt wurden. Weitere Informationen finden Sie im Artikel zur Migration von
Apache-SOAP-Web-Services auf JAX-RPC-Web-Services auf der Basis von
Java-EE-Standards.
- Entwickeln Sie Web-Service-Anwendungen. Sie können Web-Services wie folgt entwickeln:
- Entwickeln Sie Web-Services aus vorhandenen WSDL-Dateien mit JAX-WS.
Sie können einen
JAX-WS-Web-Service aus einer vorhandenen WSDL-Datei (Web Services Description
Language) erstellen, die die Serviceschnittstelle für eine JavaBeans- oder
Enterprise-Bean-Anwendung beschreibt. Gewöhnlich wird die WSDL-Datei im Rahmen des Anwendungsmodellierungsprozesses definiert.
Die Verwendung einer vorhandenen Servicedefinition oder WSDL-Datei zum Generieren einer neuen Anwendung wird
bei der Entwicklung von Web-Services als Top-down-Ansatz bezeichnet.
- Entwickeln Sie Web-Service-Anwendungen mit
JAX-WS.
Sie können das Programmiermodell JAX-WS (Java API for XML-Based Web) verwenden, um Web-Services zu entwickeln.
JAX-WS vereinfacht die Anwendungsentwicklung mit einem standardisierten, annotationsbasierten
Modell für die Entwicklung von Web-Service-Anwendungen und -Clients. Ein allgemeiner Satz von Bindungsregeln für
XML- und Java-Objekte vereinfacht die Einbindung von XML-Daten und die Verarbeitung von Funktionen
in Java-Anwendungen. Ein weiterer Satz mit Erweiterungen unterstützt Sie bei der optimalen Versendung
binärer Anhänge, wie z. B. Bildern oder Dateien,
mit den Web-Service-Anforderungen.
Version 9.0 bietet
Unterstützung für Singleton-Session-Enterprise-Beans als JAX-WS-Endpunkte. Singleton-Session-Beans sind in Situationen
hilfreich, in denen eine einzige Instanz einer Implementierungsbean für einen Web-Service-Endpunkt
erforderlich ist, um alle Anforderungen zu verarbeiten, die für einen bestimmten Web-Service-Endpunkt
empfangen werden.
Möglicherweise muss diese einzige Instanz der Bean Statusinformationen für mehrere Anforderungen nutzen.
Gewöhnlich wird für die Verarbeitung jeder Anforderung eine neue Instanz einer Implementierungsbean für den
Web-Service-Endpunkt erstellt.
Wenn Sie einen JAX-WS-Web-Service aus vorhandenen JavaBeans oder
Stateless- bzw. Singleton-Session-Enterprise-Beans erstellen, können Sie die Bean unter Verwendung von Annotationen als
JAX-WS-Web-Service bereitstellen.
Wenn
Sie der Bean die Annotation "@WebService" oder "@WebServiceProvider" hinzufügen, definieren Sie die Bean damit als JAX-WS-Web-Service. Als JAX-WS-Web-Services bereitgestellte Enterprise-Beans müssen in Modulen der EJB Version 3.0 oder höher gepackt werden.
Die Umsetzung einer vorhandenen Anwendung in Web-Services wird bei der Entwicklung von Web-Services
als Bottom-Up-Ansatz bezeichnet.
Dieser Prozess wird als Bottom-Up-Ansatz bezeichnet, weil Sie mit der Implementierung und nicht mit einem vorhandenen Service oder WSDL-Datei
(Web Services Description Language) beginnen.
- Entwickeln und implementieren Sie JAX-WS-Web-Service-Clients. Web-Service-Clients, die auf
JAX-WS-Web-Services zugreifen und diese aufrufen können, werden
auf der Basis der Spezifikation "Web Services for Java Platform, Enterprise Edition (Java EE)"
entwickelt.
Der Anwendungsserver unterstützt EJB-Clients, Java EE-Anwendungsclients, JSP-Dateien (JavaServer Pages) und Servlets, die auf dem Programmiermodell
JAX-WS basieren.
- Entwickeln Sie Web-Service-Anwendungen aus vorhandenen
WSDL-Dateien mit JAX-RPC.
Sie können einen JAX-RPC-Web-Service unter Verwendung eines Top-down-Ansatzes für die Entwicklung von Web-Services
aus einer vorhandenen WSDL-Datei erstellen, in der die
Serviceschnittstelle einer Enterprise-Bean-Implementierung beschrieben wird.
- Entwickeln Sie Web-Service-Anwendungen mit JAX-RPC.
Sie können das Programmiermodell JAX-RPC (Java API for XML-based RPC) verwenden, um Web-Services zu entwickeln.
Wenn Sie einen JAX-RPC-Web-Service mit vorhandenen
JavaBeans oder Enterprise-Beans als Ausgangspunkt entwickeln,
müssen Sie eine WSDL-Datei entwickeln.
Sie können vorhandene JavaBeans oder Enterprise-Beans verwenden und anschließend die Implementierung für Web-Services aktivieren.
- Entwickeln und implementieren Sie
JAX-RPC-Web-Service-Clients. Sie können Web-Service-Clients auf der Basis der Spezifikation "Web Services for Java Platform, Enterprise Edition
(Java EE)" und der Spezifikation "Java API for XML-based Remote Procedure Call
(JAX-RPC)" entwickeln.
Der Anwendungsserver unterstützt EJB-Clients, Java EE-Anwendungsclients, JSP-Dateien (JavaServer Pages) und Servlets, die auf dem Programmiermodell
JAX-RPC basieren.
- Aktivieren Sie Web-Services über die Serviceintegrationstechnologien.
Mit der Web-Service-Aktivierung
des Service Integration Bus können Sie die folgenden Ziele erreichen:
- Sie können einen an einem Busziel verfügbaren internen Service als Web-Service bereitstellen.
- Sie können einen externen Web-Service an einem Busziel intern bereitstellen.
- Sie können das Web-Service-Gateway verwenden, um einen vorhandenen Service (einen internen
Service oder einen externen Web-Service) einem neuen Web-Service zuzuordnen, der vom Gateway bereitgestellt wird.
Sie können Web-Services entwickeln, um die Vorteile der Unterstützung von Web Services Addressing
(WS-Addressing), Web Services Resource Framework (WSRF) und Web Services
Transaction (WS-Transaction) zu nutzen.
- Verwenden Sie die WS-Addressing SPI, um erweiterte
Web-Services-Addressing-Tasks auszuführen.
Sie können Web-Services entwickeln, um die Unterstützung für Web Services Addressing (WS-Addressing) zu nutzen.
WS-Addressing unterstützt die Interoperabilität zwischen Web-Service über eine Standardmethode für die Adressierung von Web-Services und die Bereitstellung von Adressierungsinformationen
in Nachrichten.
- Erstellen Sie statusabhängige Web-Services mit dem
Web Services Resource Framework.
Mit der Unterstützung
für Web Services Resource Framework (WSRF) im Anwendungsserver
können Sie einen statusabhängigen Web-Service als WS-Ressource implementieren und über eine
WS-Addressing-Endpoint-Referenz auf diese Ressource verweisen.
- Verwenden Sie die WS-Transaction-Richtlinie, um Transaktionen oder Geschäftsaktivitäten für Web-Services zu koordinieren.
WS-Transaction ist
ein Interoperabilitätsstandard, der die Spezifikationen
WS-AtomicTransaction, WS-BusinessActivity und WS-Coordination enthält.
Die Unterstützung für WS-AT (Web Services Atomic Transaction) im Anwendungsserver
stellt transaktionsorientierte Servicequalität
für die Web-Service-Umgebung bereit.
Verteilte Web-Service-Anwendungen und die von ihnen verwendeten Ressourcen können so an verteilten
globalen Transaktionen teilnehmen.
Mit der WS-BA-Unterstützung (Web Services Business Activity) können Web-Services auf unterschiedlichen Systemen Aktivitäten
koordinieren, die loser gekoppelt sind als atomare Transaktionen.
Solche Aktivitäten können möglicherweise nur schwer oder
gar nicht rückgängig gemacht werden und erfordern im Falle
eines Fehlers einen Kompensationsprozess.
- Verwenden Sie WS-Policy, um Richtlinien in einem Standardformat auszutauschen.
WS-Policy ist ein Interoperabilitätsstandard, der verwendet wird, um die Richtlinien eines Web-Service so zu beschreiben
und zu kommunizieren, dass die Service-Provider Richtlinienanforderungen in einem Standardformat exportieren können.
Clients können die Service-Provider-Anforderungen mit ihren eigenen Leistungsmerkmalen
kombinieren, um die für eine bestimmte Interaktion erforderlichen Richtlinien festzulegen.
- Assemblieren Sie Web-Services.
Lesen Sie den Artikel, in dem die Voraussetzungen
und die Reihenfolge für das Assemblieren eines Web-Service zu einer EAR-Datei beschrieben werden.
- Implementieren Sie Web-Services.
Lesen Sie den Artikel, in dem die erforderlichen Schritte für die
Implementierung der EAR-Datei beschrieben werden, die für Web-Services konfiguriert und aktiviert wurde.
- Verwalten Sie die implementierten Web-Services.
Nachdem Sie Ihre Web-Service-Anwendung implementiert haben,
können Sie Sicherheitseinstellungen konfigurieren, Implementierungsdeskriptoren und WSDL-Dokumente anzeigen, den Geltungsbereich
eines Web-Service-Ports festlegen und Richtliniensätze und Service-Provider verwalten.
Diese Tasks können über die Administrationskonsole oder mit Befehlszeilentools ausgeführt werden.
- Sichern Sie Ihre Web-Services.
- Veröffentlichen Sie die WSDL-Datei.
Nach der Installation einer Web-Service-Anwendung und der
Änderung der Endpunktinformationen (optional) benötigen Sie möglicherweise
WSDL-Dateien, die die aktualisierten Endpunktinformationen enthalten. Lesen Sie den Artikel, in dem beschrieben wird, wie Sie
die WSDL-Dateien veröffentlichen, um diese Informationen verfügbar zu machen.
- Überwachen Sie die Leistung der Web-Service-Anwendungen.
Lesen Sie den Artikel, in dem beschrieben wird,
wie Sie mit Performance Monitoring Infrastructure (PMI) die erforderliche Zeit für die Verarbeitung von Web-Service-Anforderungen
messen können.
- Führen Sie die Fehlerbehebung für Web-Services durch.
Machen Sie sich mit der Fehlerbehebung für unterschiedliche Prozesse vertraut, die für die Entwicklung, Implementierung und Nutzung
von Web-Services, einschließlich Befehlszeilentools, verwendet werden.
Die Informationen beziehen sich auf Java-Kompilierfehler,
Clientlaufzeitfehler und -ausnahmen, Serialisierungs- und Entserialisierungsfehler sowie Authentifizierungsanforderungen und -fehler in
Web Services Security.
Beispiel
Das folgende Beispiel veranschaulicht, wie Web-Services in einem Geschäft eingesetzt werden können.
Der Inhaber eines Blumengeschäfts möchte seinen Kunden ermöglichen,
Bestellungen über das Web aufzugeben. Zunächst sucht er nach Großhändlern, erfragt deren Preise und vereinbart
die Abwicklung künftiger Blumenbestellungen.
Die Großhändler kann der Inhaber des Blumengeschäfts
mit einem Web-Service finden. Eine Möglichkeit, neue Lieferanten zu finden, ist die Verwendung einer UDDI-Registry (Universal Description,
Discovery and Integration), um potenzielle Lieferanten zu suchen.
Wenn die Lieferanten ausgewählt werden, sendet die Registry Informationen darüber zurück, wie die Blumenlieferanten
kontaktiert werden können, die den Kriterien des Blumenladenbesitzers entsprechen.
Von jedem der potenziellen
Lieferanten kann der Ladeninhaber Preislisten (in Form einer WSDL-Datei) anfordern.
Jeder Lieferant kann seine WSDL auf seiner Webseite zum Download bereitstellen, per E-Mail verschicken oder über
seinen Eintrag in der UDDI-Registry zur Verfügung stellen.
Die WSDL beschreibt den
Prozeduraufruf. Wenn Sie den Anwendungsserver verwenden, ist der Prozeduraufruf ein JAX-RPC- oder
JAX-WS-Prozeduraufruf. Bei Prozeduraufruftypen rufen die Preisliste ab. Die WSDL-Datei gibt außerdem den URL (Universal
Resource Locator) an, an den die Anforderung zu senden ist.
Jetzt kann der Inhaber des Blumengeschäfts
die von den einzelnen Lieferanten empfangenen Preise vergleichen, sich für bestimmte Lieferanten entscheiden
und Vereinbarungen über künftige Bestellungen treffen. Damit ist der Grundstein dafür gelegt, dass der Blumenladen
Waren über das web verkaufen kann. Preisverhandlungen mit den Lieferanten und die Abwicklung der Bestellung
erfolgen über Web-Services. Nun muss der Ladeninhaber eine Liste seiner Waren mit den zugehörigen Preisen auf seiner Website
veröffentlichen und einen Mechanismus bereitstellen, über den die Kunden Blumen bestellen können.
Die Web-Service-Clients der Blumenlieferanten
werden auf dem Server des Blumengeschäfts implementiert. Wenn ein Kunde eine Transaktion ausführt, um Blumen über das
Web zu kaufen, wird die Bestellung über
den Prozeduraufruf an den Lieferanten gesendet. Der Lieferant sendet eine Bestätigung mit Bestellnummer und Lieferdatum
an den Kunden zurück. Die Lieferanten verwalten den Warenbestand und der Inhaber des Blumengeschäfts
kümmert sich um die Rechnungen und die Verwaltung der Kundenbestellungen.
In ähnlicher Weise kann automatisch ein Katalog
des Blumengeschäfts aus den Katalogen jedes Lieferanten zusammengestellt werden. Wenn der Lieferant die Ware direkt an den Kunden
schickt, kann die Überwachung der Bestellungen direkt an das Bestellüberwachungssystem
des Lieferanten übergeben werden.
Der Lieferant kann Web-Services auch verwenden, um Rechnungen für Bestellungen vom Blumengeschäft
zu senden. Prozesse, für die bisher Formulare ausgefüllt werden mussten, die dann per Telefax oder Post verschickt wurden, können
jetzt automatisch ausgeführt werden. Das spart Arbeitskosten für das Blumengeschäft und den Lieferanten.
Die Nutzung
von Web-Services ist für das Blumengeschäft von Vorteil, da es ein weit größeres Warensortiment anbieten kann. Es müssen keine Warenbestände
vorgehalten werden. Dennoch kann der Inhaber des Blumengeschäfts seinen Kunden Produkte anbieten, die er sonst vielleicht nicht
im Sortiment gehabt hätte. Der Verkauf von Blumen über das web
vermehrt das Kapital des Blumengeschäfts, ohne das Kosten für einen weiteren Laden anfallen oder
Ressourcen in ein zusätzliches Produktsortiment investiert werden müsste.
Ein ausführlicheres Szenario wird im Artikel
"Web-Service-Szenario: Übersicht" beschrieben.
Dieses Szenario erzählt die Geschichte eines fiktiven Onlinegartencenters
mit dem Namen "Plants by WebSphere"
und veranschaulicht das dort integrierte Web-Service-Konzept.
Weitere Beispiele,
JAX-WS- und JAX-RPC-Web-Services demonstrieren, finden Sie im Abschnitt "Beispiele" im Information Center.