Komponentenprogrammierung und Middleware, SoSe 2003
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
- Mo. 11:00-12:30, HPI HS 1
- Do. 11:00-12:30, HPI HS 2
Dozenten
- Prof. Dr. Andreas Polze,
- Dipl.-Phys. Michael Dirska
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.03.
Inhalte und Unterlagen
Gliederung:
Unit 1 - Begriffe
Termin: 7.4.:
- Einführung, Überblick
- Beispiel für eine Projektarbeit aus SS 2002
- Das Distributed Control Lab - Ein rekonfigurierbares Komponentensystem am HPI
Termin: 10.4.:
Unit 2 - Java Programmierung
Termin: 14.4.:
- Thinking like a class consumer
- Factorial.java - ein erstes Beispiel
Termin: 17.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: 17.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: 24.4.:- "Hello World" from CORBA – ein erster Überblick
- Beispiele aus der Vorlesung: Examples1.zip
Termin: 28.4.:
- UML-Kurzdarstellung
- Entwurfsmuster (I): Creational Design Patterns
- Entwurfsmuster (II): Structural Design Patterns
Termin: 5.5.:
- CORBA – Static/Dynamic Invocation Interface (SII/DII) - Interface Repository
- gezeigte Beispiele: Example2.zip
- Literaturhinweise und Web-Links zu CORBA
Termin: 8.5.:
- CORBA – Lebensdauer, Transaktionen, Beispiel Benutzerdatenbank
- gezeigte Beispiele: Example3.zip
- Fehlertolerantes verteiltes Rechnen mit CORBA (TOOLS 2000 Präsentation)
- Tutorial zum OMG FT-CORBA-Standard (OMG Workshop 2002)
Termin: 12.5.
- 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: 15.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 26.5.:
- 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 2.6.:
- COM-Multithreading / Apartments
- Aggregation / Containment / dynamisches Laden von Komponenten am Beispiel des Taschenrechner
- Design Patterns und COM
- COM und CORBA im Vergleich
Termin 5.6. Projektvorträge:
- Nico Danneberg, Martin Hammitzsch, Paul Führing, Lars Lindner, "Börsentool, CORBA"
- Mathias Fritzsche, Anja Bog, Aleander Renneberg, Steffen Binas, "Dia-Robot, .NET"
Unit 5 - JavaBeans im Detail
Termin 12.6. Projektvorträge:
- Jens Neubert, Matthias Lendhold, Marcus Roscher, Jürgen Köppel
- Martin Probst, Tobias Rausch, Florian Broderson, Alexander Klimetschik, "Buchungssystem, CORBA"
Termin 16.6.:
- Das JavaBeans-Komponentenmodell
- Ereignisbehandlung: PropertyChangeEvent und ItemEvent
- Beispiele
Termin 19.6. Projektvorträge:
- Benjamin Koppe, Alexis Krepp, W.Pawat, Michael Maciej Olejniczak, "Taschenrechner .NET/COM+"
- Julius Eder, Kai Hammert, Dominnic Tornow, Jonas Lanzendörfer, "Terrarium CORBA/Java"
Termin 23.6.:
- Server-seitige Komponenten: Enterprise Java Beans
- Das CORBA Component Model (CCM Tutorial)
- Hyperlinks zum Thema CCM
Termin 26.6. Projektvorträge:
- Henrik Zellmer, Udo Werner, Martin Huxol, Jan-Henry Ohlert, "Kalender .NET"
- Marc Assmann, Alexander Saar, Martin Herbort, Lars Trieloff, "Auktionssystem .NET"
Termin 27.6. Projektvorträge - Blockveranstaltung von 9:30-15:30
Unit 6 - C# und das .NET-Framework
Termin 30.6.:
Termin 3.7. Projektvorträge:
- René Erfurt, Georg Köster, Oliver Böckmann, Christian Geschke, Roland Brackmann, Watchdog EJB
- Florian Wonneberg, Wilke Briese, Robert Koch, Dennis Kleemann, "Discourse .NET"
Termin 4.7. Projektvorträge - Blockveranstaltung von 9:30-15:30
Termin 7.7.:
- Writing Object Oriented Software with C# - Programmierbeispiele
- Komponentenprogrammierung mit C# und .NET
Termin 10.7. Projektvorträge:
- Eldar Sultanow, Jörn Hartwig, Martin Hoffmann, Dennis Brockhoff, Daniel Kaulbars, "Karthographie"
- Robert Porscha, Michael Isler, Dietmar Bremser, Matthias Berg, "Spiele Server"
Termin 14.7.:
- Sicherheit im .NET Framework (Überblick) - Programmierbeispiele
-
Evidence-based Security in
.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 17.7.:
- Autonomous Computing – Paradigmen für WebServices, EJB, CCM
- Aspektorientierung – nichtfunktionales Komponenteneigenschaften
Projektarbeit
Ein paar Anregungen zur Projektarbeit finden sich hier.
Die aktuelle Planung der studentischen Vorträge finden Sie im Folgenden. Bitte beachten Sie die Termine am 27.6. und am 4.7.2003 - die Veranstaltungen finden an diesen Tagen in der HPI-Bibliothek statt.