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:30
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.

20.10.

24.10.

27.10.

03.11.

07.11.

10.11.

14.11

17.11

21.11

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