Komponentenprogrammierung und Middleware, SoSe 2004
Themenkomplex Softwarebasissysteme oder Softwarekonstruktion
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.
Ablauf
- Vorlesung + Projekt
- 4 SWS mit Praktikum (6 benotete Leistungspunkte)
- Studentische Vorträge in der 2-ten Semesterhälfte
- Themenkomplex: Softwarebasissysteme oder Softwarekonstruktion
Termine
- Mi. 09:15-10:45, HPI HS 2
- Do. 11:00-12:30, HPI HS 2
Dozenten
- Prof. Dr. Andreas Polze,
Konsultationen:
- Dipl.-Inf. Peter Tröger
- Dipl.-Inf. Andreas Rasche
Leistungserfassung
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 von vier Middleware-Plattformen (CORBA, COM, (Enterprise) JavaBeans, C# und .NET (Compact Framework)) eine verteilte Anwendung entwerfen, implementieren und dokumentieren.
- Von den Teilnehmern wird in der zweiten Semesterhälfte ein 45-50 minütiger Vortrag mit Präsentation der verteilten Anwendung, anschließender Diskussion und Auswertung (25-30 Minuten) erwartet. Zwei Wochen vor dem Vortragstermin sollten in einer Vorbesprechung die Vortragsunterlagen (draft-Ausgabe der Folien) bei einem Betreuer vorgestellt werden.
- Am Ende der Lehrveranstaltung sollen Ausarbeitungen zu allen Projektthemen in einem technischen Report zusammengefaßt werden. In die Bewertung der Lehrveranstaltung (6 benotete Leistungspunkte) gehen Vortrag, Diskussion und Ausarbeitung ein.
- Die Belegungsfrist endet am 24.04.04.
Inhalte und Unterlagen
Hier finden Sie Vorlesungsunterlagen im Portable Document Format (pdf). Die Unterlagen werden im Laufe des Semesters ergänzt.
Unit 1 – Begriffe
Termin: 14.4.
- Einführung, Überblick
- Beispiel für eine Projektarbeit aus SS 2002
- Das Distributed Control Lab – Ein rekonfigurierbares Komponentensystem am HPI
- Adaptive.NET – Werkzeuge für die automatische Rekonfiguration von Komponentensystemen
Termin: 15.4.
- Was ist Middleware
- Objektorientierung vs. Komponentenprogrammierung
- Ein Vergleich von Komponentensystemen
Unit 2 – Java Programmierung
Termin: 21.4.
- Thinking like a class consumer
- Factorial.java – ein erstes Beispiel
Termin: 22.4.
- Thinking like a class producer
- Objektorientierung mit Java - Circle-Klasse und PlaneCircle-Klasse; CTest.java; Ein kleiner Vergleich mit C++
- Ein erstes AWT-Beispiel; Version 2 des Beispiels mit innerer Klasse; Beispiel mit Checkboxen als Radiobuttons
Termin: 22.4./28.4.
- Exceptions (alle drei Teile im pdf-Format)
- Celsius-nach-Fahrenheit: Converter.java
- Ein paar Sätze zum Umgang mit Paketen
- Model-View-Controller: Strukturierung einer Applikation – AWT_Conversion und conversion-package
Unit 3 – The Common Object Request Broker Architecture (CORBA)
Termin: 29.4./5.5./6.5.
- Entwurfsmuster – Überblick
- UML-Kurzdarstellung
- Entwurfsmuster (I): Creational Design Patterns
- Entwurfsmuster (II): Structural Design Patterns
- Entwurfsmuster (III): Behavioral Design Patterns
- Ausblick: Folien zu Pattern-Oriented Software Architecture von Dr. Douglas Schmidt
- Entwicklungsprozesse: Extremes Programmieren
- Java-IDL: CORBA in Java
- "Hello World" from CORBA – ein erster Überblick
- Beispiele aus der Vorlesung: Examples.zip
- CORBA Services
- CORBA – Lebensdauer von Objekten, Transaktionen
- CORBA – Static/Dynamic Invocation Interface (SII/DII) – Interface Repository
- gezeigte Beispiele: Examples2.zip
- Literaturhinweise und Web-Links zu CORBA
- Fehlertolerantes verteiltes Rechnen mit CORBA (TOOLS 2000 Präsentation)
- Tutorial zum OMG FT-CORBA-Standard (OMG Workshop 2002)
- Echtzeitrechnen mit CORBA – Composite Objects (ISORC 99 Präsentation)
- RT-CORBA diskutiert am Beispiel des TAO ORB
Unit 4 – The Component Object Model (COM+)
Termin: 26.5.- COM – Einführung, Motivation, Geschichte, Ideen
- COM Fundamentals (Teil 1) (Präsentation von Don Box auf TechEd 99)
- Smart Pointers – ein kleines C++-Beispiel
- COM in Aktion, Calculator, CalcFront, EasyClient, MinCalc - Beispiele mit Visual Studio und ATL
- COM Fundamentals (Teil 2) (Präsentation von Don Box auf TechEd 99)
- Type Libraries and Smart Pointers – Tutorial zum Programmieren mit COM
Termin 2.6.:
- StackComponent2002 und StackFront02 – die Beispiele aus der Vorlesung
- Überblick über die COM Interface Definition Language (IDL)
- Asynchrone Schnittstellen
- MSDN-Artikel zur COM-Programmierung mit der Active Template Library und Smart Pointers
Termin 3.6.:
- COM-Multithreading / Apartments
- Aggregation / Containment / dynamisches Laden von Komponenten am Beispiel des Taschenrechner
- Basisdienste
- Design Patterns und COM
- COM und CORBA im Vergleich
Unit 5 – JavaBeans im Detail
Termin 9.6/16.6.:
- Middleware and Mobile Devices (Blackberry 1) – Synchronisation, Kommunikation
- Blackberry Programming in Practice (Blackberry 2) – J2ME
Termin 10.6. Projektvorträge:
- "Ein
Komponentenbasierter Taschenrechner im .NET Framework"
Rami-Habib Eid-Sabbagh, Ingmar Lemke, Stephan Müller und Christian Tinnefeld
Termin 17.6. Projektvorträge:
- "Ein Kontomanagementsystem mit
CORBA"
Roman Brunnemann, Stephan Müller, Sven Widmer, Xiao Tai Yu - "Realisierung einer
verteilten Sprite-Umwelt mit Java und C# unter Verwendung von
.NET-Remoting und CORBA"
Alexander Großkopf, Alexander Küchler, Robert Schuppenies, Sebastian Steinhauer - "Komponentenbasierter
Taschenrechner mit CORBA"
Balamuhunthan Balarajah, Olaf Märker, Jan Zimmermann
Termin 23.6.:
- Das JavaBeans-Komponentenmodell und dessen Grundlagen
- Ereignisbehandlung: PropertyChangeEvent und ItemEvent
- Alle Beispiele aus der Vorlesung
Termin 24.6. Projektvorträge:
- "Cassey: Common Answer
Set Evaluation sYstem"
Jean Gressmann, Benjamin Kaufmann, Robert Lenk - "Die Erasm-Plattform – eine Bild-
und Galerieverwaltung"
Lukas Neitsch, Silvan Golega, Gero Decker, Uwe Kylau -
"Realisierung einer Ampelsteuerung in Java & C via CORBA
Negraszus, Schapranow, Schmidt
Termin 30.6.:
- Server-seitige Komponenten: Enterprise Java Beans
- Das CORBA Component Model (CCM Tutorial)
- Hyperlinks zum Thema CCM
Unit 6 – C# und das .NET-Framework
Termin 1.7. Projektvorträge:
- "CRM.NET – Customer Relationship
Management System"
Christian Kochs, Jan Schaffner, Jan Schulz-Hofen, Gaurav Singh
Termin 7.7.:
- A Programmer's View on .NET
- Vergleich von Java und C# (Präsentation von Prof. Mössenböck auf der iX-Konferenz, Nov. 2003)
- Learning C# – Programmierbeispiele 1, Programmierbeispiele 2
- Writing Object Oriented Software with C# – Programmierbeispiele
- Komponentenprogrammierung mit C# und .NET
Termin 8.7. Projektvorträge:
- "Who
needs Outlook"
Claudia Vogel, Steffen Hüttenrauch, Tobias Queck
Termin 14.7.:
- Sicherheit im .NET Framework (Überblick) – Programmierbeispiele
- Evidence-based Security im
.NET Framework
(Vortrag von Brad Merrill at VS.NET conference, Copenhagen, March 2001) - Distributed Components – .NET Remoting
- Shared Components – the global assembly cache
Unit 7 – Aspektorientiertes Programmieren/Paradigmen für Web-Computing
Termin 15.7.
- Autonomous Computing – Paradigmen für WebServices, EJB, CCM
- Aspektorientierung – nichtfunktionales Komponenteneigenschaften
Projektarbeit
Ein paar Anregungen zur Projektarbeit finden Sie hier.
Die aktuelle Planung der studentischen Vorträge finden Sie hier.
Nachdem nun fast alle Vorträge zur allgemeinen Zufriedenheit gelaufen sind, steht die Abgabe der schriftlichen Ausarbeitungen - im Sekretariat bei Frau Wagner – zum 01.09.2004 an. Bitte geben Sie Ihre Ausarbeitungen in Papier-Form (!) ab.
Literatur
- Java in a Nutshell von David Flanagan, 3rd Edition, O'Reilly, 1999, ISBN 1-56592-487-8
- Component Software – Beyond Object-Oriented Programming von Clemens Szyperski, Addison-Wesley, 1999, ISBN 0-201-17888-5
- Design Patterns – Elements of Reusable Object-Oriented Software von 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 von Bernd Oesterreich, 5-te Auflage, Oldenbourg Verlag, 2001, ISBN 3-486-25573-8
- CORBA 3 – Fundamentals and Programming von Jon Siegel, Second Edition, Wiley Computer Publishing, 2002, ISBN 0-471-29518-3
- Java Programming with CORBA von Gerald Brose, Andreas Vogel, Keith Duddy, Third Edition, Wiley Computer Publishing, ISBN 0-471-37681-7