Middleware - WS 2006/07
Vorlesungsüberblick
Informationen noch vom letzten WS - Aktualisierung in Kürze!
Grundlagen der Objektorientierung, Grundlagen verteilter Systeme, Verteilte Objekte und CORBA, Komponentenmodelle, Web-Service Architekturen, Application Server, Enterprise Java Beans, .NET
Die Vorlesung ist eine Weiterentwicklung der frühereren Vorlesungen
Objektorientierte Konzepte in Verteilten System und Betriebssystemen
bzw.
Object-Oriented Concepts in Distributed Systems.
Die Vorlesung kann entweder als 2-stündige Überblicksveranstaltung (nur
Donnerstags-Termin, Inhalt mit [a] markiert) oder als 4-stündige
Veranstaltung mit Übungen gehört werden (zusätzlicher Inhalt mit [a+b]
markiert).
Zu Beginn der Vorlesung wird eine kurze Einführung in die Grundkonzepte
objektorientierter Programmierung, in objektorientierte Analyse und Design, und in
Design Patterns gegeben. Auch wenn hierbei zum Teil Inhalte aus Grundstudiumsveranstaltungen
wiederholt werden, ergibt die Betrachtung der Themen
aus der Perspektive "Software im Verteilten System" auch viele neue Gesichtspunkte.
Daran anschließend erfolgt ein kurzer Überblick über die Grundkonzepte verteilter
Systeme.[a]
Im Übungsteil erfolgt eine kurze Wiederholung von Java mit ergänzenden Informationen.
Hierbei wird vor
allem auf die Konzepte eingegangen, die im Rahmen der Lehrveranstaltung besonders
benötigt werden und die im Rahmen von Algorithmik nicht im Mittelpunkt standen. [a+b]
Im zweiten Teil werden Middleware-Archiekturen für
verteilte und nebenläufiger Systeme behandelt. Beispiele hierfür sind
der CORBA-Standard (Common Object Request Broker Architecture) oder auch Java-RMI.
CORBA
ermöglicht den Aufbau verteilter Anwendungssysteme durch verteilte CORBA-Objekte,
unabhängig von dem darunter liegenden Betriebssysstem [a].
Komponentenmodelle definieren einen Rahmen für die Strukturierung komplexer
objektorientierter Anwendungen. Als Beispiel für verteilte Komponentenmodelle
wird Jini vorgestellt. [a]
Im Übungsteil wird zunächst der
Aufbau von verteilten Anwendungen mit Hilfe von Java-RMI geübt. Daran anschließend soll
auf der Basis von Jini eine verteilte Anwendung realisiert werden, die mit dynamischen
Änderungen und Ausfällen im verteilten System problemlos umgehen kann.[a+b]
Im Mittelpunkt des dritten Teils der Vorlesung stehen Web-Anwendungen und die
dafür erforderlichen Server-Technologien. Application-Server bilden eine
betriebssystem-ähnliche Ausführungsumgebungen für Objekte auf der Server-Seite.
Enterprise Java Beans ist ein Beispiel für eine sehr weit entwickelte Architektur
hierfür. Microsoft's .NET ist sowohl eine Programmierumgebung für verteilte
Anwendungen (ungefähr im Sinn eines verteilten Komponentenmodells) als auch
eine Ausführungsumgebung für Objekte (im Sinn eines Application Servers). In
der Vorlesung werden die hinter diesen Produkten stehenden Grundkonzepte analysiert
und EJB und .NET kurz vorgestellt. Daneben wird ein Überblick über Entwicklungen
und Standardisierungen in diesem Kontext (XML, SOAP, WSDL, UDDI, ...) gegeben [a].
In den Übungen soll ein Object Request Broker zu einem eigenen Application
Servers ausgebaut werden. Ausserdem wird eine Einführung in C# (im Vergleich zu java)
gegeben und eine einfache verteilte Anwendung in einer .NET-Umgebung realisert [a+b].
In den meisten verteilten Anwendungen stehen die Kommunikationspartner in einer
Client-Server-Beziehung. Im Gegensatz dazu gibt es aber auch gleichberechtigte
Kommunikation wenn kommunizierende Teilsysteme sowohl Dienstanbieter, als auch
Dienstnutzer sein können: Peer-to-Peer-Systeme. Neben einem Überblick über die
Grundkonzepte wird eine kurze Einführung in typische P2P-Systeme wie Napster oder Gnutelle
gegeben, mit JXTA wird eine Java-basierte Infrastriktur für P2P-Systeme vorgestellt.
Ein Überblick über Design-Patterns für verteilte und nebenläufige Systeme rundet
die Vorlesung ab.
Zum Abschluss stellen wir eigene Forschungsprojekte aus dem Bereich "Objektorientierte
Betriebssysteme für Verteilte Systeme" vor.
Ausführliche Literaturhinweise sind jeweils auf der ersten Seite der einzelnen
Kapitel des Vorlesungsskripts zu finden.