Hasso-Plattner-Institut Potsdam Operating Systems and Middleware Group at HPI University of Potsdam, Germany
Operating Systems and Middleware Group at HPI

Vorlesung: Komponentenprogrammierung und Middleware

Wintersemester 2005/06

Mo / Do 11:00 - 12:30

Prof. Dr. Andreas Polze
Dipl.-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.

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  
  Vogel, Tobias  Autovermietung  

12. Jan

 

 

1 Baar, Marco  Autovermietung
  Fahle, Andreas Autovermietung
  Böttner, Sebastian Autovermietung
  Patrick Brünn Taschenrechner  

12. Jan

 

 

2 Hans Hasselberg Taschenrechner
  Nicolas Peters Taschenrechner
  Willi Tscheschner Taschenrechner
  Jan Schütze pluginbasierten Texteditor  

12. Jan

 
3 Martin Czuchra pluginbasierten Texteditor
  Christoph Barth pluginbasierten Texteditor
  Daniel Richter pluginbasierten Texteditor
  David Sonnabend  Autovermietung  

19. Jan

 
4 Michael Leben Autovermietung
  Kerstin Knebel Autovermietung
  Dennis Krischok Taschenrechner  

19. Jan

 
5 Jörn Schlegel Taschenrechner
  Frank Fischer Taschenrechner
  Jan Klimke Taschenrechner  

19. Jan

 

 

6 Juri Engel  Taschenrechner
  Martin Beck Taschenrechner
  Thomas Kowark  Taschenrechner
  David Tibbe  Autovermietung  

26. Jan

 

 

7 Andreas Meyer  Autovermietung
  Matthias Kunze  Autovermietung
  Stefan Marr  Autovermietung
  Thomas Janda  Plugin fähiger Editor  

26. Jan

 
8 Sebastian Voigt  Plugin fähiger Editor
  Dominic Letz  Plugin fähiger Editor
  Sebastian Pasewaldt  Autovermietung  

26. Jan

 
9  Robert Reicherdt  Autovermietung
  Martin Koeleman  Autovermietung
  Holger Just Programmierbarer Taschenrechner  

30. Jan

 

 

10 Murat Knecht Programmierbarer Taschenrechner
  Dustin Lange Programmierbarer Taschenrechner
  Christian Schwarz Programmierbarer Taschenrechner
  Victor Saar Autovermietung  

30. Jan

 

 

11 Ingmar Rötzler Autovermietung
  Mircea Craculea Autovermietung
  Daniel Rinser Autovermietung
  Christine Lehmann Taschenrechner  

30. Jan

 

 

12 Conrad Poepke Taschenrechner
  Christian Beesk Taschenrechner
  Robert Wierschke Taschenrechner
  Kai Spichale         Autovermietung  

02. Feb

 

 

13 Maik Taubert            Autovermietung
  Steffen Ryll             Autovermietung
  Sebastian Roschke      Autovermietung
  Tilman Giese  Verteiltes Rechnen  

02. Feb

 

 

14 Frank Feinbube  Verteiltes Rechnen
  Frank Huxol   Verteiltes Rechnen
  Alexander Hold  Verteiltes Rechnen
  Robert Kunze  Taschenrechner  

02. Feb

 

 

15 Stefan Mühle  Taschenrechner
  Jan-Arne Sobania  Taschenrechner
  Oliver Wonneberg  Taschenrechner
  Gabrysiak, Gregor Taschenrechner 06. Feb

 

 

 

16 Lindenthal, Wieland Taschenrechner
  Menge, Falko  Taschenrechner
  Schumann, Janek Taschenrechner
  Steffen Kühn  Plug-In-fähiger Editor  

06. Feb

 

 

17 Nico Naumann Plug-In-fähiger Editor
  Jonas Trümper Plug-In-fähiger Editor
  David Rieck Plug-In-fähiger Editor
  Martin Sprengel  Autovermietung  

06. Feb

 

 

18 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