Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Middleware
 
  Vorlesung
  Literatur
  Skript
  Übungen
  Scheine, Prüfungen
Aufgaben:
 Aufgabe 1
 Aufgabe 2
 Aufgabe 3
 Aufgabe 4
 Aufgabe 5
 Aufgabe 6
 Aufgabe 7
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2003/04  >  Middleware  >  Übung  >  Aufgabe6

Übungsaufgabe 7: Library - .NET

In dieser Aufgabe soll eine vereinfachte Client/Server-Anwendung ähnlich Aufgabe 2 in C# für die .NET-Architektur implementiert werden.

Teilaufgabe a)

Als erster Schritt soll die Klasse Library.LibraryDB implementiert und als Bibliothek erstellt werden (LibraryDB.dll):

> mcs -target:library ILibrary.cs LibraryDB.cs

Zur Vereinfachung werden Items nur durch einen string (ihr Titel) repräsentiert (eine eigene Klasse Item ist nicht notwendig). Die Klasse LibraryDB soll das Interface ILibraryDB (in /proj/i4mw/pub/aufgabe7) implementieren. Die Methoden sollen jeweils true zurückgeben, wenn die Operation erfolgreich war, und im Fehlerfall false. Getestet werden kann die Bibliothek mit der Klasse LibraryDBTest (ebenfalls im pub-Verzeichnis):

> mcs -r:LibraryDB.dll LibraryDBTest.cs

Teilaufgabe b)

Nun soll die Klasse LibraryFrontend implementiert werden, mit der man ähnlich wie in Aufgabe 1 über ein einfaches Benutzerinterface auf die Bibliotheksfunktionen zugreifen kann. Insbesondere soll es möglich sein, neue Items zu registrieren, auszuleihen und zurückzugeben und sich alle Items anzeigen zu lassen.

Teilaufgabe c)

In dieser Teilaufgabe soll die Bibliothek nun in einen Client und einen Server aufgespalten werden. Schreiben sie die Klasse LibraryServer, die einen TCP- oder HTTP-Channel erzeugt. Als Port können sie ihre User-Id verwenden (Befehl id). Die Klasse Library.LibraryDB soll als "well-known" Serverobjekt (mit beliebigen Namen) registriert werden. Achten sie darauf, dass der Server sich nicht sofort beendet (z.B. durch Warten auf eine Tastatureingabe). Sorgen sie auch dafür, dass die Klasse LibraryDB als Remote-Objekt verwendet werden kann. Da im Interface ILibraryDB keine expliziten lock/unlock-Operationen vorgesehen sind, muss die Datenbank intern für gegenseitigen Ausschluss beim Ausleihen und Zurückgeben von Items sorgen.
Die Klasse LibraryFrontend (der Client) muss noch um die Aktivierung der serverseitigen LibraryDB ergänzt werden. Erzeugt werden können Client und Server mit den Befehlen:

> mcs -r:LibraryDB.dll,/local/mono/lib/System.Runtime.Remoting.dll LibraryFrontend.cs
> mcs -r:LibraryDB.dll,/local/mono/lib/System.Runtime.Remoting.dll LibraryServer.cs

Bearbeitung: bis zum 12.02.2004/18:00 Uhr

Alle Dateien sollen im Verzeichnis /proj/i4mw/loginname/aufgabe7/ abgelegt und mit dem abgabe-Programm abgegeben werden.
Die Bearbeitung in 2er Gruppen möglich.