Übungsblatt Nr. 1

Werbung
Einführung in Verteilte Systeme
Wintersemester 2005 / 2006
Prof. Dr. Odej Kao
Dipl.-Inf. Ulf Rerrer
Übungsblatt Nr. 1
Aufgabe 0: [Entwicklungsumgebung einrichten]
1. Laden Sie zunächst TOMCAT von der Webseite http://tomcat.apache.org herunter
(Version 5.5.12, Core Distribution) und entpacken Sie das Programm in ihrem
Home Verzeichnis.
2. Setzen
Sie
die
Umgebungsvariablen
JAVA_HOME,
JRE_HOME
und
CATALINA_HOME korrekt. Dies ist beispielsweise durch Einfügen folgender Zeilen
in die .cshrc Datei möglich:
...
setenv JAVA_HOME /usr/java/jdk1.5.0_05
setenv JRE_HOME /usr/java/jdk1.5.0_05/jre
setenv CATALINA_HOME ~/apache-tomcat-5.5.12
3. Wechseln Sie in das apache-tomcat-5.5.12/bin Verzeichnis und führen Sie
den Befehl chmod +x *.sh aus.
4. Laden Sie AXIS von der Webseite http://ws.apache.org/axis herunter (Version
1.3) und entpacken Sie das Programm in ihrem Home Verzeichnis.
5. Verschieben Sie den Ordner axis-1_3/webapps/axis in das Verzeichnis
apache-tomcat-5.5.12/webapps.
6. Starten Sie den TOMCAT Server, indem Sie im apache-tomcat-5.5.12/bin
Verzeichnis den Befehl ./startup.sh ausführen. Überprüfen Sie die korrekte
Installation durch Aufrufen der Webseite http://localhost:8080.
7. Rufen Sie die Webseite http://localhost:8080/axis auf und öffnen Sie die
Validierungsseite, um die korrekte Installation von AXIS zu überprüfen.
8. Der TOMCAT Server kann durch ./shutdown.sh im apache-tomcat5.5.12/bin/ Verzeichnis wieder gestoppt werden.
Aufgabe 1: [Magic-8-Ball]
Schreiben Sie einen einfachen AXIS Web Service, der die Funktion eines Magic-8Balls wiedergibt (siehe http://de.wikipedia.org/wiki/Magic_8_Ball).
Programmieren Sie hierzu ein JAVA Client Programm, welches die
axis.client.Call Methode benutzt, um einen Web Service aufzurufen. Diesem
soll eine über die Kommandozeile eingegebene Frage als String übergeben werden
und die Antwort des Web Services (auch ein String) auf der Konsole ausgegeben
werden. Der Web Service liefert dabei zufällig eine der 20 vorgefertigten Antworten
des Magic-8-Balls aus.
Zum "Ausführen" eines AXIS Web Services muss die .java Datei in .jws
umbenannt werden und ins Verzeichnis apache-tomcat-5.5.12/webapps/axis
verschoben werden.
Aufgabe 2: [Eigene SOAP Nachricht]
Implementieren Sie das in der Übung vorgestellte Beispiel eines einfachen AXIS Web
Services zum Addieren zweier Zahlen. Schreiben Sie nun ein JAVA Client Programm,
welches eine SOAP Nachricht erzeugt, die diesen Web Service aufruft. Verwenden Sie
hierfür folgenden Programmrumpf:
import java.net.*;
import java.io.*;
public class SOAPClient {
public String server = "http://localhost:8080/axis/add.jws";
public String SOAP_ACTION = "http://localhost:8080/axis/add.jws";
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Usage: java UlfSOAPClient zahl1 zahl2");
return;
}
int inta = new Integer(args[0]);
int intb = new Integer(args[1]);
try {
URL u = new URL(server);
URLConnection uc = u.openConnection();
HttpURLConnection connection = (HttpURLConnection) uc;
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("SOAPAction", SOAP_ACTION);
OutputStream out = connection.getOutputStream();
Writer wout = new OutputStreamWriter(out);
wout.write("HIER SOAP NACHRICHT EINSETZEN");
wout.flush();
wout.close();
InputStream in = connection.getInputStream();
int length;
byte[] bytearray = new byte[1000];
while ((length = in.read(bytearray)) != -1) {
System.out.write(bytearray, 0, length);
}
in.close();
} catch (IOException e)
{
System.err.println(e);
}
}
An der gekennzeichneten Stelle ist eine vollständige und gültige SOAP Nachricht
einzufügen. Diese soll dem Web Service zwei Zahlen zum Addieren übermitteln und
die empfangene SOAP Antwort ausgeben.
Aufgabe 3: [Urlaubsbuchung]
Schreiben Sie mehrere AXIS Web Services, die beispielhaft das typische
Urlaubsbuchungsbeispiel einer Web Service Komposition implementieren.
Ein FlugAbPB Web Service verwaltet die noch freien Plätze für die Flüge PB<->FRA,
PB<->MUC und PB<->BER. Die Web Services HotelHilton, HotelHolidayInn
und HotelMecure verwalten die noch freien Zimmer der eigenen Hotelkette in einer
oder mehrerer der Städte Frankfurt, München und Berlin. Die Web Services Sixt
und Europcar geben Auskunft über die noch verfügbaren Autos in einer oder
mehrerer der genannten Städte. Ein Web Service HotelAuto kombiniert die
Angebote für freie Autos und Hotels in einer Stadt. Ein Web Service
FlugHotelAuto kombiniert die Angebote von FlugAbPB mit dem Angebot von
HotelAuto für eine Stadt.
Programmieren Sie ein Java Client Programm, welches die folgende Web Service
Kette aufruft:
Client
FlugHotelAuto
HotelAuto
FlugAbPB
HotelHilton
HotelHolidayInn
HotelMercure
Sixt
Europcar
Hierbei rufen Web Services ihrerseits Web Services auf. Das Clientprogramm soll nur
den Web Service FlugHotelAuto aufrufen, etwa durch einen Aufruf wie "java
Urlaubclient Frankfurt", und eine Antwort in der Form "Flug PB-BER,
Hotel Mercure, Auto Sixt" erhalten. Die freien Flüge, Zimmer und Autos
können zum Beispiel durch Einlesen und Schreiben in Textdateien, oder durch festes
Einkodieren in den Sourcecode festgelegt werden.
Hinweise:
• Auf der AXIS Validierungsseite (Axis Happiness Page) werden
nicht gefunden. Diese werden in dieser Übung nicht benötigt.
• Für die fehlerfreie Kompilierung eines AXIS Web Services,
Dateien aus dem axis-1_3/lib Verzeichnis in den
eingebunden werden.
• Methoden in einem Web Service müssen public sein,
aufgerufen werden können.
einige Bibliotheken
müssen die .jar
JAVA CLASSPATH
damit sie korrekt
Übungsablauf und -bewertung:
• Benutzen Sie die auf den Pool-Rechnern installierten JAVA Versionen. Eigene
Laptops sind zugelassen, müssen aber eigenständig konfiguriert werden.
• Die Programme müssen an essentiellen bzw. schwierigen Stellen ausreichend
kommentiert sein.
• Die Programme sollen weitestgehend vor der Übung in Gruppen erstellt werden.
Die Übung dient zum Beantworten von Fragen und zur Vorführung/Abgabe der
Programme.
•
Der Übungszettel gilt als Bestanden, sofern die Aufgaben 1, 2 und 3 in der Übung
erfolgreich vorgeführt und zufrieden stellend erklärt werden konnten.
Herunterladen