Ständig dieser Spam im Postfach, permanent Viren und Trojaner als Anhang -- es ist höchste Zeit, ein absolut sicheres E-Mail-System zu entwickeln, nicht wahr? Während Sie dies noch so denken, finden Sie diese Übungsaufgabe im Netz, die sich diesmal mit ``LOMS'' (The Light Oberon Mail System) befasst ;-)
Das große Ziel dieser Aufgabe ist das Erstellen eines Messaging-Systems, mit dem sich verschiedene Benutzer auf dem lokalen Rechner kurze Textnachrichten senden können. Um sich einen Eindruck davon zu verschaffen, wie dieses Programm aussehen könnte, stellen wir Ihnen in dieser Woche wieder ein Binary (für Solaris und Linux) zur Verfügung.
Und so funktioniert das Programm:
Als ersten Schritt ist es wichtig, sich über den Aufbau des Programms, insbesondere die zu verwendenen Datenstrukturen Gedanken zu machen.
Eine Nachricht enthält die Information über den Sender der Nachricht sowie einen beliebigen Inhalt (z.B. 255 Zeichen)
Eine Mailbox ist eine Sammlung von Nachrichten eines bestimmten Benutzers. Dieser Benutzer ist eindeutig über seinen Namen zu identifizieren. Die Nachrichten sollten hierbei in Form einer doppelt verketteten linearen Liste abgelegt werden (Hinweise hierzu folgen in den Übungen).
Das Mailsystem verwaltet alle Mailboxen und führt die Interaktion mit dem jeweils angemeldeten Benutzer durch. Die Verwaltung der Mailboxen soll hier in Form eines (nach dem Benutzernamen) sortierten Binärbaumes erfolgen.
Damit ergibt sich der modulare Aufbau dieses Programms, denn wir benötigen für die
jeweils eigene Module. Während wir erstere bereits aus dem Vorlesungs- bzw. Übungsbeispiel SortedBinaryTrees kennen und dies ohne Änderung übernehmen können, müssen die Module für doppelt verkettete Listen und die Programmlogik (``Hauptprogramm'') noch implementiert werden. Und dies stellt uns vor
Auch in diesem Blatt brauchen Sie nur eines der beiden Module zu implementieren. Sie haben also die Wahl, welches Sie gerne bearbeiten möchten.
Wenn Sie sich für diese Teilaufgabe entscheiden, dann finden Sie im FTP-Verzeichnis die DEFINITION-Datei (nebst Spezifikation), die Sie implementieren müssen.
Für dieses Modul geben wir keine DEFINITION-Datei vor -- Sie können es unter der Bedingung daß
nach Ihren Vorlieben gestalten.
des jeweils anderen Moduls werden wir Ihnen zur Verfügung stellen, damit Sie Ihre Lösung testen können. Auf welche Weise wir dies genau machen, wird in den Übungen bzw. auf der Homepage noch beschrieben werden.
Viel Erfolg!