Eine explizite Untergliederung eines IT-Systems in Systemkomponenten führt zu einem verteilten System. Verteilte IT-Systeme werden in Abhängigkeit von vorliegenden Anforderungen in vielfältiger Form realisiert.
Grundlagen
Ein verteiltes IT-System umfasst Teilsysteme (Komponenten im weitesten Sinne), die im Rahmen einer bestimmten Architektur miteinander gekoppelt sind und Aufgaben kooperativ abwickeln. Im Gegensatz hierzu sind in einem monolithischen IT-System die Funktionen eines Systems gebündelt (zentralisiert) realisiert. Die logische Verteilung von Systemfunktionen auf Komponenten kann mit einer hierauf abgestimmten physischen Dezentralisierung in einem Rechnernetzwerk einhergehen.
Die Softwarearchitektur bestimmt die grundsätzliche Organisation von Softwaresystemen auf der Grundlage von Komponenten und ihren Beziehungen. Verteilte Komponenten setzen softwaretechnische Kopplungsmechanismen voraus. Eine ausgeprägte Realisierung dieser Mechanismen bezeichnet man auch als Middleware. Je nachdem wie stark Komponenten in ihrer logischen Gestaltung oder technischen Realisierung voneinander abhängig sind, spricht man von enger vs. loser Kopplung.
Anwendungssystemarchitekturen
Im Weiteren werden IT-Systeme im Sinne von Anwendungssystemen betrachtet. In betrieblichen Anwendungssystemen werden bestimmte Funktionsbündel in der Regel durch abgegrenzte Teilsysteme realisiert, die häufig auf der Grundlage von Client-Server-Architekturen miteinander interagieren. In einer geschichteten Client-Server-Architektur erbringen untergeordnete Teilsysteme (Schichten in der Rolle eines Servers) gemäß bestimmter Schnittstellen auf nachrichtenorientierte Anforderung hin Dienste für direkt übergeordnete Teilsysteme (Schichten in der Rolle eines Clients) [Vogel et al. 2009, S. 216-252].
Betriebliche Anwendungssysteme beinhalten grundsätzlich Funktionen zur Datenhaltung, zur Verarbeitung (Anwendungslogik) sowie zur Präsentation (bei dialogorientierten Anwendungen mit Benutzerinteraktion). Die Abbildung 1 veranschaulicht die grundsätzlichen Optionen für eine Gestaltung eines Anwendungssystems als zweistufiges Client-Server-System hinsichtlich einer Verteilung von Datenhaltung, Verarbeitung und Präsentation. Beispielsweise kann auf dem Client nur die Präsentation oder die Präsentation in Verbindung mit der Verarbeitung realisiert sein (bezeichnet als „entfernte Benutzeroberfläche“ bzw. „entfernte Datenhaltung“). Außerdem gibt es Zwischenformen, bei denen die Datenhaltung, die Verarbeitung oder die Präsentation komplementär zwischen Client und Server aufgeteilt sind. Beispielsweise wird beim so genannten Thin-Client-Ansatz („verteilte Benutzeroberfläche“) die Benutzerinteraktion teilweise auf einem Server realisiert, während der eigentliche Client beim Benutzer nur eine einfache Präsentation unterstützt (im Gegensatz zum Rich-Client-Ansatz mit einem leistungsfähigen PC als Frontend beim Benutzer).
Abb. 1: Optionen für eine zweistufige Client-Server-Architektur
Die klassische dreistufige Client-Server-Architektur verteilt die drei grundsätzlichen Funktionen auf dedizierte Systeme, die im Allgemeinen mehrfach ausgeprägt sein können. Beispielsweise umfassen ERP-Systeme im praktischen Einsatz je Benutzer entsprechende Frontends (Präsentation), einen oder mehrere Applikationsserver (Verarbeitung) sowie einen oder mehrere Datenbankserver (Datenhaltung). Im Allgemeinen sind auch Architekturen mit mehr als drei Schichten möglich (z.B. im Rahmen von Web-Architekturen mit einer zusätzlichen Schicht für die Abwicklung der webbasierten Präsentation).
Alternativ zur vorausgehend beschriebenen Schichtung von Datenhaltung, Verarbeitung und Präsentation sind auch andere Verteilungen von Funktionen auf Komponenten möglich. Hierzu zählt eine sequentielle Kopplung von Komponenten orientiert an dem Datenfluss; entsprechende Komponenten transformieren Daten schrittweise (z.B. eine Abfolge von Dokumenterzeugung, verschlüsselung und -versand).
Neuere Ansätze für eine Aufteilung von Anwendungssystemen auf feinkörnige Komponenten, die bestimmte Dienste erbringen und im Zusammenspiel betriebliche Funktionen und Prozesse realisieren, werden unter dem Begriff serviceorientierte Architekturen (SOA) gefasst [Reussner, Hasselbring 2009, S. 123-150].
Vorteile
In Abhängigkeit von vorliegenden Anforderungen kann eine zweckmäßige verteilte Systemarchitektur Vorteile mit sich bringen:
-
Die Modularisierung trägt zur Beherrschung von Komplexität bei.
-
Systemteile können gegebenenfalls mit relativ geringem Aufwand angepasst oder ausgetauscht werden, um veränderten Anforderungen gerecht zu werden (Wartbarkeit, Erweiterbarkeit).
-
Eine Wiederverwendung von Teilen des Anwendungssystems wird unterstützt.
-
Die Ausführung bestimmter Aufgaben kann auf redundanter Hardware nebenläufig erfolgen, um bei hohen bzw. wachsenden Anforderungen eine effiziente, lastverteilende Abwicklung zu ermöglichen (Performanz, Skalierung), die auch zur Ausfallsicherheit beitragen kann.
Literatur
Reussner, Ralf; Hasselbring, Wilhelm (Hrsg.): Handbuch der Software-Architektur. 2. Auflage. Heidelberg : dpunkt.verlag, 2009.
Vogel, Oliver; Arnold, Ingo; Chughtai, Arif; Ihler, Edmund; Kehrer, Timo; Mehlig, Uwe; Zdun, Uwe: Software-Architektur: Grundlagen – Konzepte – Praxis. 2. Auflage. Heidelberg : Spektrum Akademischer Verlag, 2009.