Komponentenprogrammierung und Middleware (2005)
Wintersemester 2005/06
Prof. Dr. Andreas Polze
Dipl.-Inf. Bernhard Rabe
Dipl.-Inf. Andreas Rasche
Dipl.-Inf. Peter Tröger
Vorlesung: Mo / Do 11:00 - 12:30Dipl.-Inf. Bernhard Rabe
Dipl.-Inf. Andreas Rasche
Dipl.-Inf. Peter Tröger
Konsultation: Donnerstags 15-16 Uhr
Abgabe Projektausarbeitung: bis 24.3.2006 12.00 Uhr
Details zur Abgabe:
- 1 ausgedruckte Version der Projektausarbeitung
- 1 digitale Version der Projektausarbeitung auf beigelegter CD oder per E-Mail
- 1 digitale Version des Vortrags auf beigelegter CD oder per E-Mail
- Quelltext in digitaler Form auf beigelegter CD oder per E-Mail
Inhaltsübersicht:
Softwarekomponenten sind Bausteine mit wohldefinierten Schnittstellen, die sich in binärer Form wiederverwenden lassen. Sie sind Software-Module die auf Ereignisse reagieren können und ihre Eigenschaften nach außen hin sichtbar machen.Die Vorlesung gibt eine Überblick über die bedeutenden Komponentenarchitekturen. Anhand von Beispielen werden Namenskonventionen und Verpackungsregeln für Komponenten sowie die Unterstützung der Komponentenintegration durch Werkzeuge diskutiert.
Im Rahmen des Projektes sollen sich die Hörer mit jeweils einer Komponentenumgebung intensiv auseinandersetzen und ihre Erfahrungen in der Vorlesung vorstellen.
Themenblöcke:
- Einführung, Überblick, Projektarbeit - Beispiele Distributed Control Lab (1 VL am 17.10.)
- Was ist Middleware ? - Beispiele, Schwerpunkte ,Objektorientierung vs. Komponentenprogrammierung (1 VL am 20.10.)
- Entwurfsmuster (2 VL ab 24.10.)
- Java - Zusammenfassung (1 VL am 3.11.)
- CORBA IDL, Architektur, Language Mapping, DII (3 VL ab 7.11.)
- Microsoft .NET - C#, Sicherheit, Remoting, Compact Framework (3 VL ab 17.11.)
- Java Beans Komponentenmodell , J2EE (4 VL, ab 28.11.)
- COM+ - COM IDL, Interfaces, DCOM, Transaktionen, Security (2 VL ab 12.12.)
- .NET Integration - Enterprise Services und COM Interop (1 VL am 19.12.)
- Webservices SOAP, WSDL, WS-* (1 VL am 9.1.)
- Projektpräsentation (1 VL am 12.1.)
- J2ME Einführung, Blackberry (1 VL am 16.1.)
- Projektpräsentation (1 VL am 19.1.)
- Aktuelle Forschungsthemen (1 VL am 23.1.)
- Projektpräsentation (4 VL am 26.1.)
Leistungserfassungsprozeß:
Die Leistungserfassung erfolgt in den Präsentationen und vorangehenden Konsultationen zur Projektarbeit. Im Einzelnen gelten folgende Regeln:- Im Rahmen der Projektarbeit sollen Teilnehmer auf einer Auswahl
von vier Middleware-Plattformen (CORBA, COM, J2EE/J2ME, .NET/Compact
Framework) eine verteilte Anwendung entwerfen, implementieren und
dokumentieren. Das Projekt sollte im gewählten Komponentenframework
mindestens folgende Funktionalitäten demonstrieren:
- Verwendung von zwei verschiedenen Middlewareplattformen ODER zwei verschiedenen Programmiersprachen
- Nachladen von Komponenten ohne Neu-Übersetzung der Anwendung
- Nutzung von Komponenten über Rechnergrenzen hinweg (Verteilungstransparenz)
- Von den Teilnehmern wird in der zweiten Semesterhälfte ein 20-25 minütiger Vortrag mit Präsentation der verteilten Anwendung, anschließender Diskussion und Auswertung (5-10 Minuten) erwartet. Zwei Wochen vor dem Vortragstermin sollten in einer Vorbesprechung die Vortragsunterlagen (draft-Ausgabe der Folien) bei einem Betreuer vorgestellt werden.
- Am Ende des Semesters ist eine Projektdokumentation in
schriftlicher Form abzugeben (mindestens 10 Seiten). Die
Dokumentation sollte minimal folgende Punkte diskutieren:
- Auswahl der Komponenten-Frameworks
- Anforderungsspezifikation
- Grobentwurf (UML, Spikes (FMC))
- Identifizierung und Anwendung von Entwurfsmustern
- Details zu Implementierung und Test
- Verwandte Arbeiten:
- Wie hätte sich Ihre Lösung in einer anderen Komponentenumgebung realisieren lassen?
- Was sind die größten Schwachstellen des verwendeten Frameworks?
- Ausblick, Erweiterungsmöglichkeiten
- In die Bewertung der Lehrveranstaltung (6 benotete Leistungspunkte) gehen Vortrag, Diskussion und schriftliche Ausarbeitung ein.
- Die Einschreibefrist endet am 11.11.2005.
Vorlesungsunterlagen:
17.10.
- Einführung und Semesterplanung
- Projektarbeit
- Das Distributed Control Lab - Eine komponetenbasierte Anwendung
- Film: Distributed Control Lab
- Film: Hau den Lukas
20.10.
24.10.
27.10.
03.11.
07.11.
10.11.
- CORBA NameService
- Java Language Mapping
- C++ Basic Types Language Mapping
- C++ Client Language Mapping
- C++ Server Language Mapping
- Examples
14.11
17.11
21.11
- Vergleich Java & C# (Vortrag von Hans-Peter Mössenböck)
- Reflection in .NET
- Beispielcode "Die dynamische Hundezucht"
24.11
1.12. / 5.12.
8.12
12.12. / 15.12
19.12.
16.01.
Projektpräsentationen:
Gruppe | Name | Thema | |
1 | Vogel, Tobias | Autovermietung | 12. Jan |
Baar, Marco | Autovermietung | ||
Fahle, Andreas | Autovermietung | ||
Böttner, Sebastian | Autovermietung | ||
2 | Patrick Brünn | Taschenrechner |
12. Jan |
Hans Hasselberg | Taschenrechner | ||
Nicolas Peters | Taschenrechner | ||
Willi Tscheschner | Taschenrechner | ||
3 | Jan Schütze | pluginbasierten Texteditor |
12. Jan |
Martin Czuchra | pluginbasierten Texteditor | ||
Christoph Barth | pluginbasierten Texteditor | ||
Daniel Richter | pluginbasierten Texteditor | ||
4 | David Sonnabend | Autovermietung |
19. Jan |
Michael Leben | Autovermietung | ||
Kerstin Knebel | Autovermietung | ||
5 | Dennis Krischok | Taschenrechner | 19. Jan |
Jörn Schlegel | Taschenrechner | ||
Frank Fischer | Taschenrechner | ||
6 | Jan Klimke | Taschenrechner |
19. Jan |
Juri Engel | Taschenrechner | ||
Martin Beck | Taschenrechner | ||
Thomas Kowark | Taschenrechner | ||
7 | David Tibbe | Autovermietung |
26. Jan |
Andreas Meyer | Autovermietung | ||
Matthias Kunze | Autovermietung | ||
Stefan Marr | Autovermietung | ||
8 | Thomas Janda | Plugin fähiger Editor |
26. Jan |
Sebastian Voigt | Plugin fähiger Editor | ||
Dominic Letz | Plugin fähiger Editor | ||
9 | Sebastian Pasewaldt | Autovermietung |
26. Jan |
Robert Reicherdt | Autovermietung | ||
Martin Koeleman | Autovermietung | ||
10 | Holger Just | Programmierbarer Taschenrechner |
30. Jan |
Murat Knecht | Programmierbarer Taschenrechner | ||
Dustin Lange | Programmierbarer Taschenrechner | ||
Christian Schwarz | Programmierbarer Taschenrechner | ||
11 | Victor Saar | Autovermietung |
30. Jan |
Ingmar Rötzler | Autovermietung | ||
Mircea Craculea | Autovermietung | ||
Daniel Rinser | Autovermietung | ||
12 | Christine Lehmann | Taschenrechner |
30. Jan |
Conrad Poepke | Taschenrechner | ||
Christian Beesk | Taschenrechner | ||
Robert Wierschke | Taschenrechner | ||
13 | Kai Spichale | Autovermietung |
02. Feb |
Maik Taubert | Autovermietung | ||
Steffen Ryll | Autovermietung | ||
Sebastian Roschke | Autovermietung | ||
14 | Tilman Giese | Verteiltes Rechnen |
02. Feb |
Frank Feinbube | Verteiltes Rechnen | ||
Frank Huxol | Verteiltes Rechnen | ||
Alexander Hold | Verteiltes Rechnen | ||
15 | Robert Kunze | Taschenrechner |
02. Feb |
Stefan Mühle | Taschenrechner | ||
Jan-Arne Sobania | Taschenrechner | ||
Oliver Wonneberg | Taschenrechner | ||
16 | Gabrysiak, Gregor | Taschenrechner | 06. Feb |
Lindenthal, Wieland | Taschenrechner | ||
Menge, Falko | Taschenrechner | ||
Schumann, Janek | Taschenrechner | ||
17 | Steffen Kühn | Plug-In-fähiger Editor |
06. Feb |
Nico Naumann | Plug-In-fähiger Editor | ||
Jonas Trümper | Plug-In-fähiger Editor | ||
David Rieck | Plug-In-fähiger Editor | ||
18 | Martin Sprengel | Autovermietung |
06. Feb |
Christoph Hartmann | Autovermietung | ||
Lars Blumenberg | Autovermietung | ||
Michael Perscheid | Autovermietung |
Literatur:
- Java in a Nutshell by David Flanagan, 3rd Edition, O'Reilly, 1999, ISBN 1-56592-487-8
- Component Software - Beyond Object-Oriented Programming by Clemens Szyperski, Addison-Wesley, 1999, ISBN 0-201-17888-5
- Design Patterns - Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,Addison-Wesley, 1995, ISBN 0-201-63361-2
- Objektorientierte Softwareentwicklung - Analyse und Design mit der Unified Modeling Language by Bernd Oesterreich, 5-te Auflage, Oldenbourg Verlag, 2001, ISBN 3-486-25573-8
- CORBA 3 - Fundamentals and Programming by Jon Siegel, Second Edition, Wiley Computer Publishing, 2002, ISBN 0-471-29518-3 Java Programming with CORBA by Gerald Brose, Andreas Vogel, Keith Duddy, Third Edition, Wiley Computer Publishing, ISBN 0-471-37681-7