Architektur des CORBA-KomponentenmodellsTerminänderung Termine der mündl. Prüfung: 20. 7., 24.9.(neu), 28.9.(war 29. 9.), 1.10.(war 30. 9.), Aufbauend 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:
Literatur
CORBA-Implementierungen für C++Vorlesungen
ÜbungsaufgabenAufgabe 1: Java-Sprach-AbbildungAbgabetermin: 6. MaiHö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: 21. Mai Höchstpunktzahl: 10P Gegeben sei die IDL-Datei aufgabe2.idl sowie die Objektreferenz, die durch den IOR IOR:000000000000001849444C3A41756667616265322F5365727665723A312E30 00000000010000000000000060000102000000001C63636D312E63636D2E687069 2E756E692D706F747364616D2E646500162E000000000008617566676162653200 000001000000010000002000000000000100200000000100010001000101090000 00020501000100010100 definiert wird (corbaloc::141.89.225.148:5678/aufgabe2). Implementieren Sie einen Klienten in C++. Aufgabe 3: Serverimplementierung in C++Abgabetermin: 3. Juni Hö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. Im CORBA-Labor können Sie als Namensdienst corbaloc::ccm1/NameService verwenden. Aufgabe 4: Komponentenimplementierung in C++Abgabetermin: 17. Juni Höchstpunktzahl: 10P Implementieren Sie eine Komponente eines Auktionshauses, wie sie in auktion.idl definiert ist. Wählen Sie dabei eine der folgenden Teilaufgaben:
Ein möglicher Ablauf dieser Anwendung ist in einem Ablaufdiagramm dargestellt. Bitte geben Sie die gewählte Teilaufgabe bis zum 10.6. 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:
Obige Binaries wurden für Mico 2.3.10 übersetzt. Für Mico 2.3.11 stehen separate Binaries zur Verfügung. Zum Debugging empfiehlt es sich, die Komponenten separat zu starten, da sie auf ihre Standardausgabe Diagnosemeldungen ausgeben. Der Bieter überbietet jedes eingehende Gebot, und das Auktionshaus gibt einem zufälligen Bieter den Zuschlag. Aufgabe 5: KomponententestAbgabetermin: 24. Juni Höchstpunktzahl: 5P Testen Sie Ihre Komponente, und liefern Sie eine eventuell überarbeitete Komponente ab. Falls beim Test die Mico-Komponenten einzufrieren scheinen, so liegt das u.U. an der Größe der Thread-Pools. Diese Probleme kann man vermeiden, wenn man in .micorc -ORBThreadPerRequest einfügt. Aufgabe 6: WahlaufgabeAbgabetermin: 8. Juli Höchstpunktzahl: 10P Lösen Sie eine der folgenden Teilaufgaben:
| |