Arbeitsgruppe Informationsintegration
Aufgabenblatt Projektphase 3
Datum: Montag, 14.6.2004
Abgabe: Freitag, 25.6.2004 und Freitag, 9.7.2004
Ziele:
Nachdem wir nun ausreichend vorbereitet sind, werden wir alle zusammenarbeiten
und Spass haben ;-)
In dieser Phase wird Ihre Firma richtige Geschäfte tätigen. Sie werden Gewinne
erwirtschaften! Sie werden lernen, wie man einen komplexen Web-Service mit
der Hilfe von Java erstellt und wie man einen bestehenden Web-Service
nutzt.
Zum Abschluß des Projektes werden Sie in einem kleinen Dokument ihre Arbeit des
Semesters dokumentieren.
Übersicht:
Diese Phase besteht aus drei Teilen:
- Stellen Sie bis Freitag, 25.6. die Web-Services zur Verfügung. Zu
diesem Zeitpunkt müssen sie noch keine Funktionalität erfüllen, ein leerer
Web-Service ist in Ordnung. Wir können Ihren Web-Service dann in die
Test-Skripte mit aufnehmen. Schicken Sie desweiteren eine email an uns, mit
dem Gruppennamen und dem Gruppenpasswort für das Transaktions-Protokoll.
- Stellen Sie die voll funktionsfähigen Web-Services bis Freitag,
9.7. zur Verfügung.
- Erstellen Sie den Abschlussbericht und schicken Sie ihn bis Freitag,
9.7. per email an uns.
Details:
Web-Services zum Kaufen und Verkaufen
Bevor wir die zu erstellenden Web-Services beschreiben, ein erster Überblick
über ihren Sinn und Zweck. Ihre Firmen werden in Konkurrenz zueinander
stehen, um einen möglichst grossen Gewinn zu erwirtschaften. Der Wettbewerb
wird einen (imaginären) Tag lang dauern. Zu Beginn des Tages werden wir
Ihr Lager räumen und Ihnen daraufhin die Möglichkeit geben Ihr Lager zu
befüllen. Zu diesem Zweck stellen wir Ihnen ein Budget und einen Service
zur Verfügung, bei dem Sie Produkte kaufen können. Danach werden wir die
Rolle von Kunden übernehmen, die Produkte von ihrer Firma kaufen
wollen. Ihre Firma wird versuchen uns diese Produkte zu verkaufen. Sollten
sie die gewünschten Produkte nicht auf Lager haben, besteht die Möglichkeit
diese bei einer anderen Firma einzukaufen und an uns weiterzuverkaufen,
abhängig von der Verfügbarkeit und dem Preis des Produktes bei dieser
anderen Firma. Am Ende des Tages werden Sie den Gewinn ihrer Firma an uns
übermitteln, der dazu genutzt wird, den Gewinner zu bestimmen. Bitte
beachten Sie, dass die Bewertung der Aufgabe nicht vom erzielten Gewinn
abhängt, sondern von der Korrektheit ihrer Web-Services.
Bitte erstellen Sie als erstes die Rumpf-Web-Services in ihrem Arbeitsverzeichnis. Benennen Sie ihn wie folgt: [Firmenname]_webservice
Im Folgenden werden die 5 Funktionen beschrieben, die ihr Web-Service erfüllen
muss. Erstellen Sie sie bitte mit genau den angegebenen Signaturen.
- Lager räumen:
- Signatur: void lagerLeeren()
- Funktionalität: Wenn diese Funktion aufgerufen wird, müssen alle
Produkte aus dem Inventar gelöscht werden, mitsamt den Mengen, die ihre
Lager davon auf Lager haben. Setzen Sie den bisher erzielten Gewinn auf
null. Achten Sie darauf ein Backup Ihrer Testdaten zu behalten falls sie
diese nochmal benötigen.
- Lager füllen:
- Signatur: void produkteKaufen(long budget)
- Funktionalität: Wenn diese Funktion aufgerufen wird, können Sie
Produkte (Bücher und CD's) im Wert von budget Eurocent aus
unserem eigenen Zentrallager einkaufen. Wir stellen Ihnen hierzu eine
Liste der angebotenen Produkte mit ihren Einkaufs- und Endpreisen zur
Verfügung. Die Schnittstelle, sowie die URL des Web-Services des
Zentrallagers geben wir Ihnen noch bekannt. Der Einkaufspreis ist der
Preis, zu dem Sie ein Exemplar des Produktes einkaufen können, der
Endpreis ist der maximale Preis, zu dem wir es später zurückkaufen werden. Die
Buchpreisbindung ist in unserem Beispielszenario aufgehoben. Beachten
Sie bitte, dass Sie einen Verlust erleiden, wenn Sie Ihren
Verkaufspreis des Produktes zu niedrig setzen.
- Verfügbarkeit und Preis:
- Bestellung annehmen/ablehen:
- Signatur: long bestellung(String produktName, int preis, int anzahl, String firmenName)
- Funktionalität: Wenn die Firma firmenName
anzahl Stück von produktName zu einem Preis von
preis Eurocents bei Ihnen bestellt, können Sie entscheiden,
ob Sie die Bestellung annehmen und erfüllen oder ablehnen
wollen. Geben Sie bitte entsprechend -1 (Ablehnung) oder eine
Rechnungsnummer zurück und aktualisieren Sie ihre Daten
entsprechend. Kommt die Bestellung von uns, können Sie natürlich auch
als Zwischenhändler agieren und die Produkte zuerst bei einer anderen
Firma einkaufen und an uns weiterverkaufen.
- Ertrag berichten:
- Signatur: long gewinn()
- Funktionalität: Die Funktion gibt den bisher angefallenen
Gewinn durch Verkäufe in Eurocents zurück.
Protokollieren der Transaktionen:
Immer wenn eine Bestellung getätigt wird, also immer, wenn Sie etwas verkaufen
oder bei einer anderen Firma einkaufen, müssen Sie dem Finanzamt berichten. Das
Finanzamt verfügt über einen Web-Service, der im Folgenden beschrieben wird. Er
erfüllt zwei Funktionen: Immer wenn Sie eine Bestellung erhalten und erfüllen,
müssen Sie einen Eintrag im Verkaufsprotokoll hinterlassen. Kaufen Sie bei einer
anderen Firma müssen Sie einen Eintrag im Einkaufsprotokoll hinterlassen.
- Verkaufsprotokoll:
- Signatur: void verkauf(String verkaufsFirmenName, String verkaufsPasswort, String einkaufsFirmenName, String produktName, int anzahl, int einzelpreis)
- Funktionalität: Die Firma mit dem Namen einkaufsFirmenName kauft
anzahl Stück des Produktes produktName zu einem Preis
von einzelpreis pro Stück von der Firma mit dem Namen
verkaufsFirmenenName und dem Passwort verkaufsPasswort.
- Einkaufsprotokoll:
- Signatur: void einkauf(String einkaufsFirmenName, String einkaufsPasswort, String verkaufsFirmenName, String produktName, int anzahl, int einzelpreis)
- Funktionalität: Die Firma mit dem Namen einkaufsFirmenName
mit dem Passwort einkaufsPasswort kauft anzahl Stück
des Produktes produktName zu einem Preis von
einzelpreis pro Stück von der Firma mit dem Namen verkaufsFirmenName.
Diese beiden Web-Services werden auf paprika zur Verfügung gestellt. (Sie
stehen erst dann zur Verfügung, nachdem Sie alle ihre Gruppenpasswörter abgegeben haben.)
Zur Verfügung stehende Web-Services ihrer Firmen
Eine Liste der Gruppen und der Web-Service-Adressen gibt es hier.
Dokumentation der Firmengründung
Erstellen Sie bitte noch einen ca. 5 seitigen Abschlussbericht über ihr Projekt, in dem Sie
dokumentieren...
- ...auf welche Probleme Sie bei der Integration der drei Schemata in
Phase 2 gestossen sind und wie sie diese gelöst haben.
- ...auf welche Probleme Sie bei der Benutzung anderer WebServices in Phase 3
gestossen sind und wie sie diese gelöst haben.
- ...was für Besonderheiten ihre erstellten Webseiten und Webservices
enthalten und in welchen Punkten sie sich (höchstwahrscheinlich) von anderen unterscheiden.
- ...auf was sie besonders Wert gelegt haben.
- ...auf was sie beim nächsten Mal von Anfang an achten werden ;-)
Erstellen Sie den Bericht mit Latex und schicken Sie ihn an uns. Bitte teilen
Sie uns mit, falls, Sie mit der Veröffentlichung des Berichtes auf den WWW-Seiten zur Übung nicht einverstanden sind.
(Stand: 23.6.2004)