E.41 E Überblick einer WSDL-Beschreibung. 4.2 Typdefinitionen. Komponenten von WSDL (Version 1.x) Definition des SOAP-Rumpfs und -Kopfs

Ähnliche Dokumente
E.42 E.41 E Typdefinitionen. 4.1 Überblick einer WSDL-Beschreibung. 4.3 Nachrichtendefinition. 4.4 Abstrakte Schnittstellen

6 Zusammenschaltung von Web-Services

Abbildungsregeln für Body- und Header-Daten in ein XML-Dokument

F.21 F.22 F SOAP-Umschlag (7) 3.2 SOAP-Umschlag (6) 3.2 SOAP-Umschlag (8) 3.2 SOAP-Umschlag (9) Beispielnachricht.

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Verteilte Systeme: Übung 4

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Verteilte Systeme: Übung 4

K Webservices, Verteilte Anwendungen, Grid-Architekturen

Verteilte Anwendungen. Teil 10: UDDI und WSDL

WSDL und UDDI. Praxisprojekt Modellgetriebene Entwicklung von Web Applikationen. Werner Gaulke. 4 Dezember 2006

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

H Webservices & Verteilte Anwendungen. H.2 Problematik. 2 Enterprise Application Integration EAI. H.1 Überblick

UDDI Service-Verzeichnisse mit Universal Description Discovery and Integration

Seminar E-Services WS 02/03 BPEL4WS. Business Process Execution Language for Web Services. Mirwais Turjalei SES 02 BPEL4WS

Java Web Services mit

Norm 410 Security Token Service

Serviceorientierte Architektur / Web Service

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

H.2 Problematik. 2 Enterprise Application Integration EAI. H.1 Überblick. 2 Enterprise Application Integration (2)

Evgenia Rosa ORACLE Deutschland GmbH BU Application Server

Wiederholung: Beginn

WebServices Moritz Goeb 1

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2008

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Web Services: Inhalt

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

1 Web Service Techniken (2)

Netzwerk. A. Eberhart, S. Fischer: Web Services. München: Hanser Verschiedene Definitionen Web Service

Web Services mit Java

Vortragsausarbeitung. WSDL und UDDI. Werner Gaulke. Wintersemester 2006/07

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

WSDL. Web Services Description Language. André Vorbach. André Vorbach

1 Web Service Techniken (2)

Java und XML 2. Java und XML

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Persistenz. Ralf Gitzel

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

WebServices Zwischen Buzzword und Nutzen

XML Web Services - UDDI

Web Services. Standards und Realisierung in Java

Grundlagen der Web-Entwicklung INF3172

Vorlesung "SOA Entwicklung verteilter Systeme auf Basis serviceorientierter Architekturen" 5. Suche und Bindung von Diensten

Techniken von Web Services

Projekt Entwicklung verteilter Softwaresysteme mit Web Services SoSe Java API for XML Web Service (JAX-WS) April 2008

DOAG SIG Day. E-Business Suite und SOA: Was ist heute schon möglich? Thomas Karle PROMATIS software GmbH. Frankfurt 26. April 2007

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

DB-Aspekte des E-Commerce, Schwerpunkt: Techniken

20. DOAG-Konferenz. Wohlstrukturierte Prozesse auf SOA-Basis. mit der Oracle E-Business Suite. Thomas Karle PROMATIS software GmbH

SOAP. SOAP: Envelope

UDDI. TU Chemnitz Fakultät für Informatik SS 2003 Seminar Web und Service Engineering

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am

Techniken von Web Services

WSDL. Heutige Vorlesung. Wozu WSDL? Wie wird WSDL verwendet? Language. Services. Description. Web. Abstrakte vs. konkrete Syntax

Agenda. Web Services unter Lotus Notes/Domino

Themen. Web Service - Clients. Kommunikation zw. Web Services

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Kapitel WT:VI (Fortsetzung)

Webservices. Entwicklercamp Denny Sternberg

Workflow, Business Process Management, 4.Teil

Telecooperation. Telekooperation 1 Chapter 2, Part II a (Mainstream Paradigms) Web Services. Technische Universität Darmstadt

Masterkurs Verteilte betriebliche Informationssysteme

Norm 410 Security Token Service

Norm 225 Service Definition mit WSDL

Webtechnologien. Webtechnologien. Webtechnologien. Webtechnologien. 5. Web-Services 5.1. Warum Web Services? 5. Web-Services 5.1. Warum Web Services?

Kapitel 6: Workflows im Internet. Jutta Mülle, IPD WfMS - WS 2007/08 Kapitel 6-1

Architektur von REST basierten Webservices

H Webservices & Verteilte Anwendungen

Architektur von SOAP basierten Web Services

Web Service Entwicklung mit Java. Sven Lindow

Service Oriented Architecture. Hanno Wunderlich SWT-Projekt WS07/08

Web-Services Grundlagen

Axis2, CXF und JAX-WS RI im Vergleich

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

Softwareentwicklung in verteilten Umgebungen, Teil 6 Web Services (Coulouris et al., Kapitel 19) Dieter Schmalstieg

Kapitel 6: Workflows im Internet

Die Technik hinter Web Services. Wie baut man einen Web Service? Was sind die technischen Details von WSDL, SOAP und UDDI?

Service-orientierte Architektur. mit Web Services

Inhaltsverzeichnis Seite 1. Inhaltsverzeichnis. Ein I.T.P.-Fachbuch

Programmieren mit UDDI

Web-Services Implementierung mit Java

<Insert Picture Here> Einführung in SOA

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

Java Web Services. Seminarunterlage. Version 4.03 vom

WSDL K. Schild, 2006 / M. Mochol

E-Services mit der Web-Service-Architektur

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Enterprise JavaBeans Überblick: 12. Session Facade Einleitung 12.2 Problem 12.3 Lösung. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 460

Java API for XML-based RPC

Definition Web Service

Netzprogrammierung Web-Dienste

Transkript:

4.1 Überblick einer WSDL-Beschreibung Komponenten von WSDL (Version 1.x) <wsdl:definitions name= Account xmlns:wsdl= http://schemas.xmlsoap.org/wsdl/...> <wsdl:types>... </wsdl:types> <wsdl:message name= withdraw >... </wsdl:message>... <wsdl:porttype name= AccountPort >... </wsdl:porttype>... <wsdl:binding name= AccountSoapBinding >...</wsdl:binding>... <wsdl:service name= Account > <wsdl:port name= AccountPort binding= AccountSoapBinding >... </wsdl:port> </wsdl:service> </wsdl:definitions> E.41 4.2 Typdefinitionen Definition des SOAP-Rumpfs und -Kopfs Typisierung durch XML-Schema-Definitionen in der types-sektion der WSDL- Beschreibung <wsdl:types> <xsd:schema xmlns:xsd= http://www.w3.org/2001/xmlschema > <xsd:complextype name= withdrawdepositparm > <xsd:sequence> <xsd:element name= amount type= xsd:double > </xsd:sequence> </xsd:complextype> <xsd:element name= withdraw type= withdrawdepositparm /> <xsd:element name= deposit type= withdrawdepositparm />... </xsd:schema>... </wsdl:types> E.42

4.3 Nachrichtendefinition Definition der SOAP-Nachrichten Aufführen der einzelnen Nachrichtentypen <wsdl:message name= WithdrawRequest > <wsdl:part name= Withdraw element= withdraw /> </wsdl:message> <wsdl:message name= WithdrawReply > <wsdl:part name= WithdrawResponse element= withdrawresponse /> </wsdl:message>... Hinweis auf die in den Nachrichten enthaltenen Elementtypen E.43 4.4 Abstrakte Schnittstellen Definition der Schnittstellen (Port Types) Aufführen der einzelnen Operationen und der dazugehörigen Nachrichten <wsdl:porttype name= AccountPort > <wsdl:operation name= withdraw > <wsdl:input message= WithdrawRequest /> <wsdl:output message= WithdrawReply /> </wsdl:operation> <wsdl:operation name= deposit > <wsdl:input message= DepositRequest /> <wsdl:output message= DepositReply /> </wsdl:operation> </wsdl:porttype> E.44

4.5 Bindung an das Übertragungsprotokoll Beispiel: Bindung an SOAP über HTTP <wsdl:binding name= AccountSoapBinding type= AccountPort > <soap:binding style= document transport= http://schemas.xmlsoap.org/http / xmlns:soap= http://schemas.xmlsoap.org/wsdl/soap > <wsdl:operation> <wsdl:input><soap:body use= literal /> </wsdl:input> <wsdl:output><soap:body use= literal /> </wsdl:output> </wsdl:operation>... </wsdl:binding> E.45 4.5 Bindung an das Übertragungsprotokoll (2) Bedeutung des use-attributs Codierung gemäß XML-Schema bei literal eigene Codierung bei encoded Bedeutung des style-attributs Einfügen der Elemente gemäß XML-Schema bei document Nachricht wird als XML-Dokument zusammengesetzt Einfügen mit automatisch generiertem Element bei rpc Nachricht wird als Request-Reply-Interaktion codiert E.46

4.6 Dienstbeschreibung Beschreibung einer konkreten Dienstinstanz <wsdl:service name= Account > <wsdl:port name= AccountPort binding= AccountSoapBinding > <soap:address location= http://www.treasurebank.com/ws/account.jsp /> </wsdl:port> </wsdl:service> E.47 4.7 WSDL 2.0 Schnittstellenbeschreibung interface-element fasst message- und porttype-elemente zusammen Nachrichtenaustausch-Muster pro interface-element Attribut pattern Definition der Nachrichten pro Operation Rückgriff auf die Typen aus den types-elementen Definition der Fehlernachrichten E.48

5 UDDI Universal Service Description, Discovery and Integration Description Beschreibung von Geschäftseinheiten (Firmen, Organisationen etc.) Beschreibung von Web-Services inklusive Zugangsmöglichkeiten Beschreibung von Geschäftsverbindungen, Kategorien und Spezifikationen Discovery Abfragemöglichkeit nach allen gespeicherten Daten Integration Abfragemöglichkeit der Schnittstellenbeschreibung und -spezifikation zur Integration eines Service in eine Anwendung E.49 5 UDDI (2) Dienstleistung des UDDI-Services White Pages liefert Angaben zu Unternehmen (Adresse, Name etc.) Yellow Pages liefert Unternehmen und Services bestimmter Klassifikation (z.b. alle Klemptner in Ulm) Green Pages liefert technische Details zum Dienstzugang (z.b. WSDL-Beschreibungen zu Web-Services) E.50

5.1 UDDI-Datenmodell Beschreibung aller Daten in XML (bzw. XML-Schema) Geschäftseinheiten Element businessentity beschreibt Firmen, Organisationen etc. mögliche Daten Kontaktadressen, Telefonnummern Firmenbeschreibungen Kategorisierungen (Einteilungen bzgl. einer Taxonomie, z.b. für Yellow-Pages-Suche) Identifikatoren (Aufzählung eindeutiger Benennungen, z.b. USt.-ID, Steuernummer) E.51 5.1 UDDI-Datenmodell (2) Geschäftseinheiten (fortges.) businessentity name description contacts 0..1 0..1 identifierbag categorybag identifierbag nimmt Liste der Bezeichner auf categorybag nimmt Liste der Kategorisierungen auf E.52

5.1 UDDI-Datenmodell (3) Dienstgruppen Element businessservice mehrere Dienste beschreiben je eine Menge zusammengehöriger Web-Services direkt einer Geschäfteinheit zugeordnet weitere Kategorisierung Beispiel: Dienstgruppe Bezahldienste E.53 5.1 UDDI-Datenmodell (4) Dienstgruppen (fortges.) businessentity 0..n businessservice name description 0..1 categorybag E.54

5.1 UDDI-Datenmodell (5) Bindungsvorlagen Element bindingtemplate mehrere Vorlagen beschreiben den Zugang zu einem Web-Service (z.b. in WSDL) direkt einer Dienstgruppe zugeordnet businessservice 0..n bindingtemplate description E.55 5.2 Beschreibung von Semantik Identifikation (Identifier) generische Angabe von Identifikatoren Beispiele: Steuernummer und ähnliche eindeutige Identifikatoren zugeordnet z.b. an Geschäftseinheiten generische Implementierung enthält Verweis auf ein so genanntes tmodel über UUID (weltweit eindeutige ID) einen Identifikator, z.b. Steuernummer E.56

5.2 Beschreibung von Semantik (2) Ein tmodel ist Teil des Datenmodells und beschreibt eine Art Spezifikation (technisches Modell) Element tmodel Attribut tmodelkey enthält weltweit eindeutigen Namen (UUID) enthält Beschreibungstext enthält URIs zu Spezifikationen Beispiel: tmodel beschreibt deutsche Steuernummern enthält Identifier und Kategorisierungsdaten beziehen sich auf das tmodel bzw. seine Spezifikation E.57 5.2 Beschreibung von Semantik (3) tmodel (fortges.) tmodel name description overviewdoc 0..1 0..1 identifierbag categorybag overviewdoc enthält URIs zu Spezifikationsdokumenten E.58

5.2 Beschreibung von Semantik (4) Kategorien, Taxonomien generische Angaben zur Einordnung gemäß einer Menge von Kategorien bzw. einer Taxonomie Beispiel: Einordnung einer Geschäftseinheit nach Geschäftsbereich zugeordnet einer Geschäftseinheit, Dienstgruppe oder einem tmodel generische Implementierung enthält Verweis auf das beschreibende tmodel eine Angabe zur Einordnung in die Kategorie oder Taxonomie (Name-Wert-Paar) E.59 5.2 Beschreibung von Semantik (5) Verknüpfung von Identifikatoren und Kategorien mit tmodels tmodel 0..1 0..1 identifierbag categorybag 1..n 1..n keyedreference tmodelkey keyvalue keyname tmodelkey: Verweis auf eindeutige UUID des tmodels keyvalue: Bezeichner innerhalb der tmodel-spezifikation keyname: beschreibender Name E.60

5.2 Beschreibung von Semantik (6) Spezifikation von Bindungsvorlagen Angabe von Bindungsinformationen (URI des Web-Service) generische Spezifikation der Schnittstelle generische Spezifikation enthält Angaben zu einem tmodel pro Schnittstellenspezifikation muss ein tmodel existieren z.b. eines, das sich auf eine bestimmte WSDL-Beschreibung bezieht andere Beschreibungstechniken neben WSDL möglich E.61 5.3 Datenmodell im Überblick businessentity tmodel 0..1 0..n 0..1 0..1 0..1 businessservice identifierbag 0..n bindingtemplate 0..1 0..n categorybag 1..n 1..n keyedreference tmodelinstanceinfo E.62

5.4 Beschreibung in XML Beispiel: tmodel für bestimmte WSDL-Beschreibung <tmodel xmlns="urn:uddi-org:api" tmodelkey="uuid:12345-1234-234-234-234"> <name>treasurebank-com:creditcheck</name> <description xml:lang="en">check limit reporter </description> <overviewdoc> <overviewurl>http://treasurebank.com/creditcheck.wsdl </overviewurl> </overviewdoc>... tmodel wird mit eindeutiger ID versehen (Attribut tmodelkey) Name, Beschreibung, URL der Spezifikation E.63 5.4 Beschreibung in XML (2) Beispiel: tmodel für bestimmte WSDL-Beschreibung (fortges.) Kategorieeinordnung Kategorie als Typ... <categorybag> <keyedreference tmodelkey="uuid:cd153257-086a-4237-b336-6bdcbdcc6635" keyname="consumer credit gathering or reporting services" keyvalue="84.14.16.01.00"/> <keyedreference tmodelkey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyname="types" keyvalue="wsdlspec"/> </categorybag> </tmodel> beachte: keyname-atribute spielen keine semantische Rolle, fungieren eher als Kommentar Bedeutung bereits durch tmodel festgelegt E.64

5.4 Beschreibung in XML (2) Beispiel: Definition einer Bindungsvorlage <bindingtemplate servicekey="cccccccc-cccc-cccc-cccc-cccccccccccc" bindingkey="dddddddd-dddd-dddd-dddd-dddddddddddd"> <accesspoint URLType="https"> https://treasurebank.com/creditcheck</accesspoint> <tmodelinstancedetails> <tmodelinstanceinfo tmodelkey="uuid:12345-1234-234-234-234"/> </tmodelinstancedetails> </bindingtemplate> Verweis auf das entsprechende tmodel, das die Schnittstelle beschreibt Referenzen generell als UUID-URIs mit eindeutigen IDs E.65 5.5 Beispiele für tmodels tmodel für Typen im vorherigen Beispiel: types=wsdlspec andere mögliche Typen: identifier: markiert ein tmodel als Spezifikation für Identifikatoren categorization: markiert ein tmodel als Spezifikation einer Taxonomie specification: markiert ein tmodel als Spezifikation für Web-Services- Interaktionen wsdlspec: markiert ein tmodel als Spezifikation für Web-Services- Interaktionen mit Hilfe von WSDL-Beschreibungen E.66

5.5 Beispiele für tmodels (2) tmodel für geografische Information Benutzung der zweibuchstabigen Länderangaben nach ISO 3155 Beispiel für Eintrag im Category-Bag <keyedreference keyname="iso-ch:3155-1999:california, USA" keyvalue="us-ca" tmodelkey="uuid:4e49a8d6-d5a2-4fc2-93a0-0411d8d19e88"/> tmodel für Geschäftsfelder United Nations Standard Products and Services Code (UNSPSC) eindeutiger Code zu Bezeichnung von Produkt- und Dienstleistungskategorien North American Industry Classification System (NAICS) E.67 5.5 Beispiele für tmodels (3) tmodel für generelle Kategorien festgelegtes tmodel um generelle Kategorien und Taxonomien zu erfassen keyname wird semantisch bedeutsam muss Taxonomie und Kategoriefeld eindeutig bestimmen keyvalue enthält Einteilung bzgl. dieser Kategorie Vorteil: alle Kategorien können erfasst werden (auch ohne, dass spezielles tmodel vorliegt) Nachteil: Klassifikation kann nicht von jedem ermittelt werden (keyname muss bekannt sein) E.68

5.6 UDDI-Architektur Mehrere Verzeichnisserver IBM, Microsoft... täglicher Datenaustausch Mehrere Abfragemöglichkeiten White pages Informationen über individuelle Geschäftseinheiten Suche im Namen, Beschreibungstext, Kontaktdaten, Identifier Yellow Pages Informationen über Geschäftseinheiten mit gleichen Eigenschaften Suche nach Kategorien (z.b. Tätigkeitsfeld, Ortskategorie etc.) Green Pages Informationen über Spezifikationen Suche in tmodels E.69 5.6 UDDI-Architektur (2) Zugang über Web-Services SOAP über HTTP bzw. HTTPS Abfrageschnittstellen (Inquire API) frei zugänglich alternativ zu Web-Service auch Web-Schnittstelle unter http://www.soapclient.com/uddisearch.html Durchsuchen der Verzeichnisse und Anzeige der Informationen als Webseiten Eintragungsschnittstellen (Publication API) Registrierung bei den Verzeichnisanbietern Zugangscodes müssen in SOAP-Nachricht integriert werden E.70

5.7 Abfrageschnittstelle Inquiry-API Suchmethoden find_xxx-methoden suchen von Geschäftseinheiten, Dienstgruppen, Bindungsvorlagen und tmodels Angabe von Parametern zur Eingrenzung der Suche (z.b. notwendige Kategorien, Identifikatoren oder tmodels) Menge der Antworten eingrenzbar findqualifiers bestimmen Suchmodus z.b. find_business suche nach Geschäftseinheiten E.71 5.7 Abfrageschnittstelle (2) FindQualifiers Parametrierung der Suche und Antwortrückgabe Überschreiben der Default-Kombinationsregel für Suchparameter AND für alle Parameter OR für alle Parameter exakte Suche oder Ähnlichkeitssuche Sortierung der Antworten nach Namen, Modifikationsdatum aufsteigend, absteigend E.72

5.7 Abfrageschnittstelle (3) Abfragemethoden get_xxx-methoden ermitteln von Daten, die per UUID bekannt sind z.b. get_businessdetail ermittelt alle Daten zu einer Geschäftseinheit E.73 5.8 Eintragungsschnittstelle Publisher-API Aktualisierungs- bzw. Eintragungsmethodenen save_xxx-methoden speichern der Daten von Geschäftseinheiten, Dienstgruppen, Bindungsvorlagen und tmodels z.b. save_business falls noch keine UUID angegeben ist, wird neue erzeugt Rückgabe ist eingetragenes Datum E.74

5.8 Eintragungsschnittstelle (2) Löschmethoden delete_xxx-methoden löscht Daten von Geschäftseinheiten, Dienstgruppen, Bindungsvorlagen und tmodels z.b. delete_business Daten einer Geschäftseinheit werden gelöscht E.75 5.9 Beziehungen zwischen Geschäftseinheiten Geschäftseinheiten können beliebige Beziehungen untereinander besitzen z.b. Tochterunternehmen, Handelspartner, Strategische Partnerschaft etc. Datenmodell Element publisherassertion Unterelemente fromkey, tokey: bezeichnen jeweils eine Geschäftseinheit keyedreference: referenzieren ein tmodel vom Typ relationship keyname und keyvalue werden beide genutzt businessentity tmodel businessentity publisherassertion publisherassertion E.76

5.9 Beziehungen zwischen Geschäftseinheiten (2) Anlegen der Beziehungen Methode add_publisherassertion beide Geschäftseinheiten legen Beziehungsstruktur an erst dann wird Beziehung für die Öffentlichkeit sichtbar zuständiger Administrator kann abfragen, welche offenen Beziehungsstrukturen von anderen angelegt wurden (Methode get_assertionstatusreport) E.77 5.10 Beispiel Geschäftseinheit (businessentity) eine Geschäftseinheit: Übungsbetrieb Vorlesung AvID eine Geschäftseinheit pro Studierendem Dienstgruppe (businessservice) eine Dienstgruppe pro Übungsaufgabe Bindungsvorlage (bindingtemplate) eine pro Web-Service in der Übungsaufgabe E.78

5.10 Beispiel (2) Identifikator Matrikelnummer der Studierenden im identifierbag der jeweiligen Geschäftseinheit <keyedreference tmodelkey="uuid:1" keyname="matrikelnummern Univ. Ulm" keyvalue="481234"/> Verweis auf ein tmodel, das Matrikelnummern definiert Wert (keyvalue) entspricht Matrikelnummer der Geschäftseinheit des Studierenden Kategorie Nummer der Übungsaufgabe bei Dienstgruppe im categorybag Verweis auf tmodel für Übungsaufgabeneinteilung Wert (keyvalue) entspricht Übungsaufgabennummer E.79 5.10 Beispiel (3) tmodel für Übungsaufgabeneinteilung categorybag des tmodels enthält Kategorien für das tmodel Einordnung als categorization vom tmodel für tmodel-typen Verweis auf tmodel für Typen Wert entspricht categorization Einordnung als unchecked tmodel (keine Validierung der Zuordnung) Verweis auf tmodel für Typen Wert entspricht unchecked tmodel für Typen categorybag enthält: Einordnung als categorization (zum tmodel für Typen) Einordnung als checked (zum tmodel für Typen) E.80

6 Zusammenschaltung von Web-Services Komposition von Web-Services zu neuen Web-Services abstrakte Beschreibung der internen Struktur Workflow-Konzept abstrakte Beschreibung der Zusammenhänge und Interaktionen Zwei Standards Web Service Choreography Interface vom W3C Business Process Execution Language for Web Services (BPEL4WS) von Microsoft, IBM, Siebel, SAP, BEA beide Standards noch nicht ausgereift E.81 6.1 Beispiel: BPEL4WS XML-Dokument zur Beschreibung eines neuen Web-Service Partner (Element <partner>) Web-Services zur Komposition des neuen Service Beschreibung und Verweis Variablen (Element <variable>) Deklaration von Variablen Verweis auf Nachrichtenformate aus WSDL Workflows (Element <sequence>) Beschreibung der Interaktion (Sequenz von Anweisungen) z.b. Aufrufe, Ergebnisextraktion, Rückgabe von Ergebnissen, Verzweigungen, Schleifen... E.82

7 Werkzeugunterstützung Modellierungs-Werkzeuge z.b. UML-Modellierer abstrakte Beschreibung des Anwendungsdesigns meist objektbasierte Modellierung Modellierungs-Werkzeuge und Web-Services Ableitung der WSDL-Schnittstelle aus abstrakten Anwendungsschnittstellen z.b. automatische Generierung von WSDL-Dokumenten Ableitung von (einfachen) Web-Service-Kompositionen z.b. automatische Generierung von BPEL4WS-Dokumenten E.83 7 Werkzeugunterstützung (2) Implementierungswerkzeuge Werkzeuge zur Generierung von Client-Software aus WSDL-Dokument wird entsprechende Client-Software generiert Werkzeuge zur Generierung von Server-Software aus WSDL-Dokument wird entsprechende Web-Service-Implementierung erzeugt Operationen des Web-Service müssen noch ausgefüllt werden (Skeleton- Ansatz) oder Implementierungsklasse muss eingehängt werden (Tie-Ansatz) Werkzeuge zur Generierung von WSDL-Dokumenten aus Server-Software wird automatisch WSDL-Dokument erzeugt E.84

8 Web-Services in Java 8.1 JWSDP JWSDP steht für Java Web-Services Developer Pack Sun Microsystems Java API für XML Message (JAXM) 1.1 Schnittstelle zum Versenden und Empfangen von SOAP-Nachrichten SOAP with Attachments API for Java (SAAJ) 1.1 Schnittstelle zur Erzeugung von SOAP-Nachrichten mit Anhängen Anhänge ähneln den Anhängen von E-Mails Dateien beliebigen Inhalts können angehängt werden E.85 8.1 JWSDP (2) Java API für XML RPC (JAXRPC) 2.0 Umsetzung von Java-Remote-Interfaces auf Web-Services-Schnittstellen Java/WSDL-Mapping Umsetzung von Web-Services-Schnittstellen auf Java WSDL/Java-Mapping Tools zum Umwandeln der Mappings Integration mit EJB, Servlets und JSP E.86

8.2 Apache Axis Apache-Projekt zur Implementierung von SOAP Implementierung in Java und C++ Typabbildung definierte Abbildung von XML-Schema-Typen in die Programmiersprache Werkzeuge automatische Generierung von Client-Software aus WSDL-Dokumenten und umgekehrt WSDD (Web Service Deployment Descriptor) Axis-eigene XML-Anwendung zur Beschreibung von Web-Service-Instanzen Zugangspunkte, Klassen, interne Architektur des Service E.87 8.2 Apache Axis (2) Dynamische SOAP-Aufrufe Schematischer Ablauf Erzeugung eines Call-Objekts Angabe der Ziel-URL Einlagern der Parameter mit Typangabe Aufruf einer invoke-funktion am Call-Objekt Ermitteln der Ergebnisse über Aufrufe am Call-Objekt E.88

8.2 Apache Axis (3) Interne Service-Architektur von Axis (Serverseite) Transport Global Service Provider Target Service Handler in der Transportkette Manipulationen von SOAP-Nachrichten Handler in der Global -Kette z.b. Anpassungen von SOAP-Header-Elementen Handler in der Service-Kette service-spezifische Anpassungen z.b. Decodierungen etc. E.89 8.3 EJB und Web-Services Adaptersoftware Umwandlung von SOAP-Nachrichten in EJB-Aufrufe (und zurück) Beispiel: Axis Transport Global Service EJB-Provider EJB- Bean spezielles Provider-Element für Containerzugang E.90

8.3 EJB und Web-Services (2) Beispiel: JBoss.Net JBoss: Open-Source EJB-Container Integration von Axis spezieller Provider Stateless SessionBeans Statefull Session Beans bei SSL-basierten SOAP-Verbindungen (mehrere Anfragen der Session über eine Verbindung) mit Cookies im HTTP-Transport automatische WSDL-Generierung spezielle Methode des Provider-Objekts Reflection über Home- und Bean-Interfaces E.91 8.3 EJB und Web-Services (3) Service Endpoint Neuerung im EJB-Standard Version 2.1 RMI-fähige Schnittstelle für Stateless Session Beans kein Home-Interface zum Zugriff notwendig z.b. Zugriff über Namensdienstanfrage direkt auf Endpoint wg. Zustandslosigkeit leicht realisierbar automatische Bean-Erzeugung bei Zugriff bzw. Pooling Implementierung Endpoint-Interface enthält RMI-fähige Beanmethoden Eintrag des Endpoint-Interface im Deployment-Descriptor z.b. <service-endpoint>example.accountws </service-endpoint> E.92

8.3 EJB und Web-Services (4) WSDL-Mapping für Endpoint-Interfaces Umsetzung des Java-Interface auf WSDL durch Werkzeugunterstützung Adaptersoftware im Container Umsetzung von SOAP-Nachrichten auf Endpoint-Aufrufe E.93 9 Zusammenfassung 9.1 Vorteile von Web-Services weitgehend akzeptierte Technologie zur Interaktion in heterogenen Systemen XML-Anwendungen viele andere Standards starkes Industrieengagement E.94

9.2 Nachteile von Web-Services Web-Services kennen Referenzen auf Web-Services jedoch noch keine transparente Kommunikation von Referenzen vgl. Parameterübergabe bei Java RMI Komplexes Programmiermodell viele beteiligte XML-Dokumente mit komplexer Struktur aber: Werkzeugunterstützung automatische Erzeugung Gefahr von Inkompatibilitäten Standards sind noch nicht ausgereift herstellerspezifische Feinheiten bei Implementierungen Standards sind offen für Alternativen z.b. CORBA-Abbildung nach WSDL, Nutzung einer Alternative zu SOAP, Nutzung einer WSDL-Alternative in UDDI Gefahr von Inkompatibilität durch partielle Implementierungen E.95 10 Literatur W3C / OASIS / WS-I http://www.w3c.org http://www.oasis.org http://www.ws-i.org SOAP SOAP Version 1.2 Part 0: Primer. W3C, 2003. SOAP Version 1.2 Part 1: Messaging Framework. W3C, 2003. SOAP Version 1.2 Part 2: Adjuncts. W3C, 2003. Web-basierter Zugriff http://www.mindreef.net WSDL WSDL Version 2.0 Part 1: Core Language. W3C, 2004. WSDL Version 2.0 Part 2: Message Exchange Patterns. W3C, 2004. WSDL Version 1.2 Part 3: Bindings. W3C, 2003. E.96

10 Literatur (2) UDDI UDDI Version 2.04 API. OASIS, 2002. UDDI Version 2.03, Data Structure Reference. OASIS, 2002. Web-basierter Zugriff http://www.soapclient.com/uddisearch.html JWSDP JAXM http://java.sun.com/xml/downloads/jaxm.html JAXR http://java.sun.com/xml/jaxrpc/index.jsp Apache Axis http://www.apache.org/axis/ E.97