Web-Service-Provider und gemeinsame Nutzung der Richtlinienkonfiguration

Ein Service-Provider in WebSphere Application Server kann seine aktuelle Richtlinienkonfiguration über seine WSDL (Web Service Description Language) zur gemeinsamen Nutzung bereitstellen. Die Richtlinienkonfiguration verwendet das WS-PolicyAttachment-Standardformat von WSDL, sodass die Konfiguration gemeinsam mit anderen Clients, Serviceregistrys oder Services, die die Spezifikation "Web Services Policy (WS-Policy)" unterstützen, genutzt werden kann.

Die Richtlinienkonfiguration eines JAX-WS-Serviceendpunkts (Java™ API for XML-Based Web Services) kann auf die folgenden Arten für die gemeinsame Nutzung verfügbar gemacht werden:
  • Nehmen Sie die Richtlinienkonfiguration des Service-Providers in die WSDL auf. Die WSDL kann anschließend veröffentlicht oder über eine HTTP-Get-Anforderung abgerufen werden.
  • Aktivieren Sie das Protokoll "Web Services Metadata Exchange (WS-MetadataExchange)", sodass die Richtlinienkonfiguration des Service-Providers in die WSDL aufgenommen und für eine WS-MetadataExchange-GetMetadata-Anforderung verfügbar ist. Wenn Sie das Protokoll "WS-MetadataExchange" verwenden, hat dies den Vorteil, dass Sie für WS-MetadataExchange-GetMetadata-Anforderungen die Sicherheit auf Nachrichtenebene festlegen können, indem Sie einen geeigneten Systemrichtliniensatz verwenden.

Systemadministratoren können auch die Administrationskonsole oder Verwaltungsbefehle nutzen, um über eine veröffentlichte komprimierte Datei mit der Dateierweiterung .zip auf ein WSDL-Dokument zuzugreifen. Ein auf diese Weise angefordertes WSDL-Dokument kann sich jedoch von einem WSDL-Dokument unterscheiden, das mit einer Anforderung HTTP GET oder über das Protokoll WS-MetadataExchange angefordert wurde, denn das in der komprimierten Datei veröffentliche statische WSDL-Dokument kann keine Web-Service-Features, Annotationen oder Implementierungsdeskriptorelemente berücksichtigen, die möglicherweise im Anwendungscode vorhanden sind, z. B. WS-Addressing-Annotationen.

Die gemeinsame Richtliniennutzung ist standardmäßig inaktiviert. Verwenden Sie die Administrationskonsole oder wsadmin-Befehle, um die Richtlinienkonfiguration des Service-Providers in die WSDL aufzunehmen und die Art der gemeinsamen Nutzung anzugeben.

Wenn die gemeinsame Richtliniennutzung aktiviert ist, werden alle in der WSDL enthaltenen WS-Policy-Zuordnungen entfernt. Beachten Sie, dass die Konfigurationsdaten in der zu veröffentlichenden WSDL verfügbar werden, dass sie jedoch nicht verfügbar sind, wenn Sie das WSDL-Dokument direkt in der Administrationskonsole anzeigen oder einen Verwaltungsagenten verwenden, um die WSDL fern zu veröffentlichen.

Wenn die Service-Provider-Anwendung eine WSDL mit mehreren Teilen verwendet, müssen alle WSDL-Teile für die Web-Service-Anwendung lokal sein. Weitere Informationen zu WSDLs mit mehreren Teilen finden Sie im Artikel zu WSDL.

Ein Service-Provider, der für die Verwendung von Security Assertion Markup Language (SAML) konfiguriert ist, kann dieselbe Richtlinie verwenden, die von einem Client oder einer Serviceregistry von WebSphere Application Server verwendet wird. Beachten Sie, dass die SAML-Token in einem proprietären Format veröffentlicht werden.

Beim Generieren eines Web-Service können Anwendungsentwickler mit Tools von Rational Application Developer angeben, dass ein Service-Provider seine Richtlinienkonfiguration zur gemeinsamen Nutzung bereitstellen soll und wie diese Nutzung erfolgen soll. Weitere Informationen finden Sie in der Dokumentation zu Rational Application Developer.

Transportrichtlinieninformationen werden nicht in die Richtlinienkonfiguration aufgenommen, weil Transportrichtlinien wie HTTP, SSL und JMS nicht im WS-PolicyAttachment-Format ausgedrückt werden können.

Bootstraprichtlinieninformationen, z. B. die Richtlinie für den Zugriff auf einen WS-Trust-Service, können in die Richtlinienkonfiguration aufgenommen werden, falls die Bootstraprichtlinie im WS-PolicyAttachment-Standardformat, das für die Veröffentlichung geeignet ist, ausgedrückt wird.

Sie können einen Service-Provider definieren, der seine Richtlinienkonfiguration auf Anwendungs- oder Serviceebene zur gemeinsamen Nutzung bereitstellt. Die Richtlinienkonfiguration, die durch die Richtliniensätze dargestellt wird, die niedrigeren Ebenen zugeordnet sind, wird ebenfalls gemeinsam genutzt. Richtliniensätze, die auf niedrigeren Ebenen zugeordnet sind, setzen die Konfiguration der Richtliniensätze, die auf einer höheren Ebene zugeordnet sind, außer Kraft.

Richtlinieninformationen können auf verschiedene Weise definiert werden. Nachfolgend sind die Optionen nach ihrem Vorrang in absteigender Reihenfolge aufgelistet. Die Methode mit dem Implementierungsdeskriptor im Anwendungscode überschreibt beispielsweise die Verwendung von Annotationen oder Features, wird aber selbst durch die Verwendung von Richtliniensätzen überschrieben.
  • Die Richtlinie wird definiert, indem der Anwendung ein Richtliniensatz zugeordnet wird.
  • Die Richtlinie wird mit Implementierungsdeskriptorelementen in einem Element port-component-ref definiert.
  • Die Richtlinie wird mit Annotationen oder Features im Anwendungscode definiert.
  • Die Richtlinie wird mit WS-Policy-Zuordnungen in dem zur Anwendung gehörenden WSDL-Dokument definiert.

Wenn eine Anwendung in einer Zelle implementiert wird und Sie die WSDL über die Administrationskonsole veröffentlichen, enthält die WSDL die Richtliniensatzkonfiguration des Deployment Manager der Zelle. Wenn Sie Richtliniensätze ändern, haben die Änderungen erst dann Auswirkung auf die Konfiguration des Deployment Manager, wenn diese Konfiguration aktualisiert wird, z. B. beim Neustart des Deployment Manager oder bei der Aktualisierung der Richtliniensatzkonfiguration des Deployment Manager mit einem Scripting-Befehl.

Nachfolgend ist erläutert, welche Regeln die Veröffentlichung der Richtlinienkonfiguration steuern:
  • Wenn die gemeinsame Richtliniennutzung aktiviert ist, beschreiben die WS-Policy-Zuordnungen in der WSDL die Richtlinienkonfiguration des Service.
  • Wenn die gemeinsame Richtliniennutzung nicht aktiviert ist, gilt Folgendes:
    • Die von einer Anforderung HTTP zurückgegebene WSDL ist die zu einer Anwendung gehörende WSDL.
      Anmerkung: Diese WSDL wird ungeändert zurückgegeben und kann daher zuvor vorhandene WS-Policy-Zuordnungen enthalten, die nicht zur Konfiguration des Service passen.
    • Falls dem Service kein bestimmtes WSDL-Dokument zugeordnet ist, generiert die Serverlaufzeit automatisch ein WSDL-Dokument und ordnet dieses dem Service zu. In dem Fall enthält die WSDL keine WS-Policy-Zuordnungen, solange keine Annotation @Addressing für die Serviceimplementierung vorhanden ist. Bei vorhandener Annotation @Addressing wird die Annotationskonfiguration in der generierten WSDL in Form von WS-Policy-Zuordnungen ausgedrückt.

Fehlerbehebung bei der gemeinsamen Nutzung der Richtlinienkonfiguration

Möglicherweise kann ein Service-Provider seine Richtlinienkonfiguration nicht zur gemeinsamen Nutzung bereitstellen, weil die Konfiguration nicht im WS-PolicyAttachments-Standardformat ausgedrückt werden kann. Ein möglicher Grund dafür ist der, dass für einen bestimmten Zuordnungspunkt mehrere inkompatible Richtlinien definiert sind. Ein weiterer Grund kann darin liegen, dass nicht genügend Bindungsinformationen vorhanden sind, um die Standardrichtlinie zu generieren. Die Richtlinienkonfiguration kann beispielsweise die Bootstraprichtlinie enthalten, das ist die Richtlinie für den Zugriff auf einen WS-Trust-Service, daher muss die Bootstraprichtlinie ebenfalls im WS-PolicyAttachments-Format ausgedrückt werden.

Wenn die Richtlinienkonfiguration nicht gemeinsam genutzt werden kann, wird ein Fehler, der das Problem beschreibt, in das Fehlerprotokoll des Service-Providers geschrieben, und die folgende Richtlinie wird der WSDL des Service-Providers zugeordnet.
<wsp:Policy>
<wsp:ExactlyOne>
</wsp:ExactlyOne>
</wsp:Policy>
Diese Richtlinie benachrichtigt den Client darüber, dass keine akzeptable Richtlinienkonfiguration für den Service vorhanden ist. Andere Aspekte der WSDL bleiben davon unberührt.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsp_server_share
Dateiname:cwbs_wsp_server_share.html