Verteilte Systeme – ¨ Ubungsblatt 8
Prof. Dr. Oliver Haase
In dieser Aufgabe sollen Sie das Forum–Framework um Kommunikation ¨uber CORBA zu einer verteilten Anwendung erg¨anzen. Gehen Sie dazu wie folgt vor:
• Speichern Sie die gegebene IDL–Spezifikationforum.idl, und erzeugen Sie mit Hife des Aufrufs
$idlj -fall forum.idl
sowohl die server- als auch die klientenseitigen CORBA-Generate.
• Schreiben Sie eine Klasse CorbaModelReceiver als CORBA–Server- Implementierung der IDL–Schnittstelle CorbaForumModel. Zu diesem Zweck mussCorbaModelReceiverdie generierte Klasse CorbaForumModelPOAerweitern.
Ein CorbaModelReceiver nimmt Anfragen der Klienten entgegen und leitet sie weiter an das Modell.
Beachten Sie außerdem, dass derCorbaModelReceiverdie SchnittstelleRunnable implementieren muss. Registrieren Sie in der run()-Methode den CorbaModel- Receiver am Naming Service.
• Implementieren Sie eine Klasse CorbaModelForwarder, die die Me- thoden der Schnittstelle IForumModel in entfernte Methodenaufrufe an ein CorbaModelReceiver-Objekt umsetzt. Dazu besorgt sich das CorbaModelForwarder-Objekt im Konstruktor die entfernte Referenz auf dasCorbaModelReceiver-Objekt mit Hilfe des Naming Service.
• Programmieren Sie analog zu den Klassen CorbaModelReceiver und CorbaModelForwarder die beiden Klassen CorbaViewReceiver und CorbaViewForwarder.
• Schreiben Sie eine Klasse CorbaForumServer, in deren main-Methode Sie ei- ne Instanz der Klasse ForumServer erzeugen, der sie im Konstruktor ein CorbaModelReceiver-Objekt mitgeben, und rufen sie anschließend die run- Methode desForumServer-Objekts auf.
1
• Schreiben Sie eine Klasse CorbaForumClient, in deren main–Methode Sie ei- ne Instanz der Klasse ForumClient erzeugen, der sie im Konstruktor ein CorbaModelForwarder-Objekt mitgeben, und rufen sie anschließend dieregister- Methode desForumClient-Objekts auf.
Viel Spass & gutes Gelingen!
2