Prof. Dr. rer. nat. Rainer Oechsle

Fachgebiete

Parallele und verteilte Systeme

Parallelität und Verteilung hängen eng miteinander zusammen: In einem verteilten System laufen auf jedem einzelnen Rechner mehrere Vorgänge parallel (echt parallel oder pseudoparallel) ab. Umgekehrt arbeitet ein Server im Rahmen eines Client-Server-Szenarios auf einem Rechner in der Regel parallel, um mehrere Clients gleichzeitig zu bedienen. Außerdem können verteilte Anwenungen, die für den Ablauf auf unterschiedlichen Rechnern vorgesehen sind, im Spezialfall auf einem einzigen Rechner parallel ausgeführt werden. 

Die Entwicklung paralleler Anwendungen ist in der Regel anspruchsvoll, denn Programmcode, der bei rein sequenzieller Ausführung korrekt ist, kann im Fall einer parallelen Nutzung fehlerbehaftet sein, was für Neulinge oftmals nicht offensichtlich ist. Ein gutes Verständnis von Parallelität wird häufig im Zusammenhang mit Objektorientierung noch problematischer. Man muss begreifen lernen, dass es mehrere Objekte einer Klasse geben kann, dass aber ein einziges Objekt (quasi) gleichzeitig von mehreren Threads verwendet werden kann, d.h., dass dieselbe und unterschiedliche Methoden auf einem Objekt mehrfach parallel ausgeführt werden können. Durch den momentanen Trend im Bereich der Hardware hin zu so genannten Multicore-Architekturen kann man davon ausgehen, dass die Bedeutung der parallelen Anwendungsprogrammierung in Zukunft deutlich an Bedeutung gewinnen wird.

Bei derEntwicklung verteilter Anwendungen geht es um geeignete Kommunikationsprimitive wie synchroner oder asynchroner Nachrichtenaustausch oder verschiedene Varianten des Fern-Methodenaufrufs. Die Architektur verteilter Anwendungen ist heute eine mehrschichtige Architektur, typischer Weise bestehend aus einer grafischen Benutzeroberfläche für den Kunden, eventuell einem Web-Server, einem Anwendungs-Server und einer Datenbank.

Software-Komponenten

Der Begriff Komponente kommt vom lateinischen Wort "componere", was so viel wie "zusammensetzen" heißt. Eine Komponente ist also ein Teil eines zusammengesetzten Ganzen, wobei die Einzelteile nicht nur irgendwie zusammengestellt, sondern in funktional sinnvoller Weise miteinander verbunden worden sind.

Die Vorstellung von Komponenten im Software-Bereich entstand bereits Ende der 60er Jahre im Zusammenhang mit der sogenannten Software-Krise. Man hoffte damals, dass eine Software-Industrie für die Massenproduktion von Komponenten entstehen würde und dass diese Komponenten in den unterschiedlichsten Anwendungen wiederverwendbar wären. So wie Kinder mit denselben Bausteinen Häuser, Schiffe oder Flugzeuge bauen, sollte eine neue Anwendung lediglich durch das "Zusammenstecken" vorproduzierter Software-Komponenten entwickelt werden, wobei man dazu im Idealfall nicht einmal programmieren muss. Diese Hoffnung hat sich zumindest bis jetzt nicht erfüllt. Dennoch ist Komponenten-Software immer noch ein aktuelles Thema. So kann man beispielsweise die momentan weit verbreiteten Software-Plattformen für Enterprise Java Beans oder auch Android als Komponenten-Software sehen. Die Tatsache, dass sich das Thema Komponenten-Software schon so lange hält und kein vorübergehender "Hype" ist, wie manche andere Themen in der Informatik, zeigt, dass es wohl eine gewisse Substanz haben muss.

Analog zum Begriff objektorientierte Programmierung gibt es den Ausdruck komponentenorientierte (manchmal auch komponentenbasierte) Programmierung. Der Komponentenbegriff ist allerdings nicht ganz unproblematisch: Während es einen breiten Konsens gibt, was ein Objekt ist, ist dies für eine Komponente weit weniger klar. Eine Ursache dafür dürfte u.a. sein, dass das, was eine Komponente ist, vom verwendeten Komponenten-Framework abhängt.

Bei der Software-Entwicklung im Umfeld von Komponentensystemen geht es darum, vorhandene Komponentensysteme wie EJB, Spring oder Web-Frameworks zu nutzen oder zu erweitern. Auch das Implementieren neuer Komponentensysteme für spezifische Einsatzgebiete kommt vor.

Zur Person
  • September 2020 - Februar 2021
    Freistellung für besondere Forschungsvorhaben im Bereich Software-Tests und Cloud-Computing-Anwendungen
  • Januar 2014 - Januar 2021
    Dekan des Fachbereichs Informatik
  • März 2012 - August 2012
    Freistellung für besondere Forschungsvorhaben im Bereich Komponenten-Frameworks
  • Juli 2008 - Januar 2014
    Leitung des Informatik-Fernstudiums
  • März 2005 - August 2005
    Freistellung zur Fortbildung in der beruflichen Praxis in der SANTEC-Abteilung am Centre de Recherche Public Henri Tudor, Luxemburg
  • September 1999 - Februar 2000
    Freistellung zur Fortbildung in der beruflichen Praxis bei der Deutschen Post AG, Anwendungsentwicklung Trier
  • seit Januar 1994
    Professor für die Gebiete "Rechnernetze / Verteilte Systeme" in den Informatik-Studiengängen (Bachelor / Master) an der Hochschule Trier
  • 1989 -1993
    Mitarbeiter am Europäischen Zentrum für Netzwerkforschung (European Networking Center, ENC) der IBM in Heidelberg
    davon 1989 - 1992
    Abordnung zum IBM-Forschungslabor in Rüschlikon bei Zürich, Schweiz; in dieser Zeit Arbeiten auf den Gebieten Kopplung lokaler Netze und ATM (Asynchronous Transfer Mode)
  • 1989
    Promotion über ein Thema aus dem Bereich der Betriebssysteme (Titel der Arbeit: Symmetrische und unterbrechende Prozeßkommunikation)
  • 1984 - 1989
    Mitarbeiter am Lehrstuhl für Betriebssysteme (Prof. Wettstein) der Universität Karlsruhe (heute KIT) im Rahmen des Projekts HECTOR (HEterogeneous Computers TOgetheR)
  • 1978 - 1984
    Studium der Informatik an der Universität Stuttgart
  • geb. 1958
    in Ottenbach, Kreis Göppingen, Bundesland Baden-Württemberg
Prof. Dr. Rainer Oechsle
Prof. Dr. Rainer Oechsle
Professor FB Informatik

Kontakt

+49 651 8103-508

Standort

Schneidershof | Gebäude O | Raum 210
back-to-top nach oben