Architektur des CORBA-KomponentenmodellsAufbauend auf einer Einführung der Common Object Request Broker Architecture (CORBA) und des C++-Mappings für IDL wird das CORBA-Komponenten-Modell (CCM) vorgestellt. Dazu werden die relevantent technischen Standards studiert und mit den tatsächlich verfügbaren Implementierungen verglichen. Als aktuelle Entwicklung auf dem Gebiet von Softwarekomponenten wird ebenfalls Microsofts Shared Source Common Language Infrastructure (SSCLI) und die Integration der Programmiersprache C# in diese Plattform untersucht. Auch hier werden die relevanten ECMA-Standards mit den Implementierungen verglichen. Schwerpunkte der Vorlesung sind:
PrüfungsterminMündliche Prüfungen finden am 28.7., 29.7. und 30.9.2003 statt. Voraussetzung zur Prüfungszulassung ist die erfolgreiche Absolvierung des Praktikums (Lösung der Übungsaufgaben). Prüfungstermine werden von Frau Wagner vergeben.Literatur
CORBA-Implementierungen für C++Vorlesungen
ÜbungsaufgabenAufgabe 1: Java-Sprach-AbbildungAbgabetermin: 21. AprilHöchstpunktzahl: 10P Gegeben sei die IDL-Datei time.idl. Vergleichen Sie die Ausgabe des IDL-zu-Java-Compilers mit der Mapping-Spezifikation ( formal/02-08-05)
Aufgabe 2: Klientenimplementierung in C++Abgabetermin: 12. MaiHöchstpunktzahl: 10P Gegeben sei die IDL-Datei aufgabe2.idl sowie die Objektreferenz, die durch den IOR IOR:000000000000001849444C3A41756667616265322F5365727665723A312E30000000000100000000000000 28000100000000000F3134312E38392E3232342E3133310000162E0000000000086175666761626532definiert wird (corbaloc::141.89.224.131:5678/aufgabe2). Aufgabe 3: Serverimplementierung in C++Abgabetermin: 21. MaiHöchstpunktzahl: 10P Implementieren Sie einen Server für die Schnittstelle aus Augabe 2. Beim Start des Servers soll sich dieser in den Namensdienst unter /<id> eintragen, wobei <id> Ihre Unix-Account-Kennung ist. Passen Sie Ihren Klienten derart an, den Server an dieser Stelle zu finden. Implementieren Sie einen Klienten in C++, der die Operation reverse am gegebenen Objekt durchführt. Aufgabe 4: Komponentenimplementierung in C++Abgabetermin: 4. JuniHöchstpunktzahl: 10P Implementieren Sie eine Komponente eines Auktionshauses, wie sie in auktion.idl definiert ist. Wählen Sie dabei eine der folgenden Teilaufgaben:
Bitte geben Sie die gewählte Teilaufgabe bis zum 26.5. per Email bekannt. Alle Komponenten sollten mit Mico im CCM-Pool abgearbeitet werden können. Zur Ablaufverfolgung reicht es, wenn die Komponenten-Homes als separate Serverprozesse laufen und den Ablauf auf der Standardausgabe protokollieren. Folgende Test-Dienste stehen im CCM-Pool zur Verfügung:
Aufgabe 5: KomponententestAbgabetermin: 11. JuniHöchstpunktzahl: 5P Testen Sie Ihre Komponente, und liefern Sie eine eventuell überarbeitete Komponente ab. Aufgabe 6: Mico-KonformitätAbgabetermin: 25. JuniHöchstpunktzahl: 10P Lösen Sie eine der folgenden Teilaufgaben:
Aufgabe 7: Remoting in .NETAbgabetermin: 9. JuliHöchstpunktzahl: 10P Implementieren Sie mittels .NET oder Rotor Klienten und Server für folgende Schnittstelle:
namespace ReverseAPI
{
public interface Reverser
{
string reverse(string arg);
}
}
Verwenden Sie dabei einen TCP-Kanal, und richten Sie den Dienst auf Port 8421 ein. | |