Das Paket besteht aus einem MessageServer (MessageServer.class) und einem MessageClient, wobei es für den MessageClient eine Command Line Version (MessageClient.class) und eine GUI-Version (XMessageClient.class) gibt.
Die Kommunikation zwischen dem Client und dem Server wurde über Java RMI realisiert. Dabei ist das Interface MessageInterface die Kommunikationsschnittstelle, und ist wie folgt definiert:
import java.rmi.Remote; import java.rmi.RemoteException; /** Interface zur Kommunikation mit dem * MessageServer. * @author Bernhard Fiser 0109815 * @version 0.1 2002/10/20 */ public interface MessageInterface extends Remote { /** Methode um Nachrichten an den Server * zu senden. */ public void sendMsg(String user, String[] to, String msg) throws RemoteException; /** Methode um Nachrichten vom Server * empfangen. */ public String[] getMsg(String user) throws RemoteException; }
Der MessageServer implementiert die beiden Methoden sendMsg und getMsg des
Kommunikationsinterfaces. Die Implementation wurde so realisiert, das die Namen der Empfänger
in einer Hashmap aufgelistet sind. Unter dem Namen des entsprechenden Empfängers ist eine
LinkedList mit den einzelnen Nachrichten gespeichert, wobei die Nachrichten selbst nur als String
abgebildet sind. Im String bereits enthalten ist der Name des ursprünglichen Absenders.
Der MessageServer ist so konfiguriert, dass er auf dem Server hanibal.ifs.univie.ac.at läuft,
wobei das RMI-Object unter dem Namen a0109815 registriert wird. Der MessageServer loggt
alle Zugriffe auf der Console mit.
Screenshot von der MessageServer Console:
Die aktuelle Version des MessageClient Pakets steht hier zum Download zur Verfügung: MessageClient.tar.gz (4k). Diese beiden Clients enthalten das Userfrontend um mit dem Server zu kommunizieren.
Der MessageClient ist Command Line Tool welches folgende Aufrufsyntax hat um Nachrichten abzuholen:
java -Djava.security.policy=policy MessageClient get <user>
Für <user> ist dabei der Username einzusetzen, für den die Nachrichten abgeholt werden sollen.
Um Nachrichten zu verschicken ist folgender Aufruf notwendig:
java -Djava.security.policy=policy MessageClient send <user> <to,to,to,....> <message> <message> ...
Für <user> ist der Username des Absenders einzutragen, <to,to,to,....> ist eine mit Beistrichen getrennte Liste von Empfängern, und danach wird einfach der Text der Nachricht geschrieben.
Der XMessageClient ist das Frontend zum MessageServer mit einem graphical user interface. Der Aufruf des Programms muß dabei wie folgt geschehen:
java -Djava.security.policy=policy XMessageClient <user>
Für <user> ist der Username des Absenders einzutragen, alle anderen Einstellungen, das heißt Empfänger und Nachrichten, Senden und Empfangen können von der GUI aus vorgenommen werden.
Screenshot vom XMessageClient: