Web-basierte Anwendungsintegration
Transcription
Web-basierte Anwendungsintegration
Ralph Mietzner Institut für Architektur von Anwendungssystemen Universität Stuttgart Übungen „Web-basierte Anwendungsintegration“ WS 06/07 Übungsblatt Nr. 7 Datum der Übung: 05.02.07 (11:30 – 13:00, Raum 0.363) Allgemeines Thema der Übung: Das Ziel der gesamten Übung „Web-basierte Anwendungsintegration“ ist die Entwicklung eines kleinen Web-Shops anhand dessen einige Konzepte aus der Vorlesung praktisch erklärt werden. Dieses vierte Übungsblatt beschäftigt sich mit Web Services. Aufgabe 7.1 – WSDL: Ihr Web-Shop soll nun eine Web-Service Schnittstelle erhalten. Skizzieren Sie die WSDLDateien für den Shop, die folgende Anforderungen erfüllt: • Folgende Methoden sollen verfügbar sein: 1. Abfrage des Preises eines Artikels anhand des Artikelnamens, und Herstellernamens 2. Abfrage aller Artikel eines Herstellers 3. Abfrage aller Artikel, die in einem bestimmten Preisbereich liegen 4. Abfrage aller Artikel 5. Einstellen eines Artikels • Methoden 1 bis 4 sollen über SOAP über HTTP erreichbar sein. Wobei Methode 1 per rpc Style und Methoden 2 per document Style SOAP Nachrichten aufgerufen werden sollen. Methode 3 soll sowohl per document style als auch per rpc style aufgerufen werden können. • Methode 4 soll über ein ASCII über SMTP Binding aufgerufen werden. Darüberhinaus soll sie auch über SOAP / HTTP erreichbar sein (document style) • Methode 5 soll über ein POJO (Plain old Java Objects) über JMS binding aufgerufen werden. Aufgabe 7.2 – Bottom-Up Erstellen eines Web-Services: Benutzen Sie die articleList Klasse aus Aufgabenblatt 3 als Basis für einen Web-Service. Verwenden Sie den Web-Service Wizard des Eclipse WebToolProjects (WTP) um den WebService zu erzeugen. Testen Sie den WebService mittels der im WTP enthaltenen Tools und schauen Sie sich die SOAP Nachrichten im TCP/IP Monitor (auch im WTP enthalten) an. Wie sieht die generierte WSDL Datei für den Webservice aus? Wie werden Java Methoden und Attribute auf WSDL Operations und Messages gemappt? Eclipse WTP und auch der Geronimo verwenden standardmäßig Apache Axis als Web-Service Umgebung. Wozu wird Apache Axis benötigt? Der Web-Service Wizard generiert standardmäßig einen Web-Service Deployment Descriptor (wsdd-File). Was wird im WSDD-File spezifiziert? (Das wsdd-File finden Sie unter Web-INF/packageName/deploy.wsdd in Ihrem Web-Project) Aufgabe 7.3 – Aufrufen externer Web Services: • • • • Mit den unter http://msdn.microsoft.com/live/gettingstarted/searchstart/default.aspx bereitgestellten Web Services haben Sie die Möglichkeit, verschiedene Dienste von Microsoft als Web Services anzusprechen (Sie können aber auch einen anderen WebService verwenden, wenn Sie möchten, siehe http://www.programmableweb.com/apis . Für die LiveSearch generieren Sie zuerst eine Application ID wie auf der Seite http://dev.live.com/blogs/livesearch/archive/2006/03/23/27.aspx beschrieben. Verwenden Sie WTP zur Generierung geeigneter Klassen, ausgehend von der WSDLDatei, die Sie unter http://soap.search.msn.com/webservices.asmx?wsdl finden. Welche Beziehung haben die erzeugten Klassen zu den einzelnen Elementen der WSDL-Datei (hier von Interesse: Messages, PortTypes, Ports, Services)? Schreiben Sie einen passenden Client zu den generierten Stubs, der eine Suchanfrage an Microsoft durchführt und die Ergebnisse ausgibt. Verwenden Sie erneut den TCPMonitor, um die ausgetauschten Nachrichten zu analysieren.