Eine fehlende Untergliederung eines IT-Systems in Teilsysteme führt zu einem monolithischen System. Dies kann in Abhängigkeit von vorliegenden Anforderungen Nachteile mit sich bringen.
Grundlagen
Ein monolithisches IT-System ist als untrennbare Einheit gestaltet („großes Ganzes“). Eine monolithische Architektur folgt keiner expliziten Gliederung in Teilsysteme (Komponenten im weitesten Sinne) und steht damit im Gegensatz zu einem verteilten IT-System.
IT-Systeme im Sinne betrieblicher Anwendungssysteme beinhalten grundsätzlich Funktionen zur Datenhaltung, zur Verarbeitung (Anwendungslogik) sowie zur Präsentation (bei dialogorientierten Anwendungen mit Benutzerinteraktion). Bei Anwendungssystemen mit einer monolithischen Softwarearchitektur sind die zu realisierenden Funktionen eng gekoppelt zentralisiert implementiert. Dementgegen folgen heutige betriebliche Anwendungssysteme typischerweise einer geschichteten Client-Server-Architektur, in deren Rahmen Funktionsbündel durch abgegrenzte Teilsysteme mit definierten Schnittstellen realisiert sind [Vogel et al. 2009, S. 216-252]; darüber hinaus werden auch so genannte serviceorientierte Architekturen angestrebt [Reussner, Hasselbring 2009, S. 123-150].
Nachteile
Die weitreichenden Freiheitsgrade bei der Gestaltung von Softwaresystemen (potenzielle Interaktion von „allem mit allem“ im Gegensatz zu physischen Systemen) führten in der Vergangenheit teilweise zu einem Softwareentwurf mit einer nicht oder nur schwach ausgeprägten Untergliederung in Teilsysteme. Dies manifestiert sich heute noch in über viele Jahre gewachsenen Altsystemen (engl. Legacy Systems). Entsprechende monolithische Anwendungssysteme können in Abhängigkeit von vorliegenden Anforderungen mit verschiedenen Nachteilen behaftet sein:
-
Eine mangelnde Modularisierung führt bei Systemen ab einer gewissen Größe zu Kompliziertheit und trägt nicht zur Beherrschung von Komplexität bei.
-
Teile des Anwendungssystems können nur mit erheblichem Aufwand angepasst oder ausgetauscht werden, um veränderten Anforderungen gerecht zu werden (Wartbarkeit, Erweiterbarkeit).
-
Eine Wiederverwendung von Teilen des Anwendungssystems ist in der Regel nicht möglich.
-
Teile des Anwendungssystems können in der Ausführung kaum auf verschiedenen Rechnern nebenläufig ablaufen, um bei hohen bzw. wachsenden Anforderungen eine effiziente, lastverteilende Abwicklung zu ermöglichen (Performanz, Skalierung).
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.