Monolithische Anwendung

In der Softwaretechnik beschreibt eine monolithische Anwendung eine einstufige Softwareanwendung, bei der die Benutzeroberfläche und der Datenzugriffscode von einer einzigen Plattform aus zu einem einzigen Programm kombiniert werden.

Eine monolithische Anwendung ist eigenständig und unabhängig von anderen Computeranwendungen. Die Designphilosophie ist, dass die Anwendung nicht nur für eine bestimmte Aufgabe verantwortlich ist, sondern jeden Schritt ausführen kann, der zum Ausführen einer bestimmten Funktion erforderlich ist. Heutzutage sind einige persönliche Finanzanwendungen in dem Sinne monolithisch, dass sie dem Benutzer helfen, eine vollständige Aufgabe durchgängig auszuführen, und private Datensilos sind und nicht Teile eines größeren Systems von Anwendungen, die zusammenarbeiten. Einige Textverarbeitungsprogramme sind monolithische Anwendungen. Diese Anwendungen sind manchmal mit Großrechnern verbunden.

In der Softwaretechnik beschreibt eine monolithische Anwendung eine Softwareanwendung, die ohne Modularität ausgelegt ist. Modularität ist im Allgemeinen wünschenswert, da sie die Wiederverwendung von Teilen der Anwendungslogik unterstützt und auch die Wartung erleichtert, indem sie die Reparatur oder den Austausch von Teilen der Anwendung ermöglicht, ohne dass ein Austausch im Großhandel erforderlich ist.

Modularität wird in unterschiedlichem Maße durch unterschiedliche Modularisierungsansätze erreicht. Code-basierte Modularität ermöglicht es Entwicklern, Teile der Anwendung wiederzuverwenden und zu reparieren, aber Entwicklungstools sind erforderlich, um diese Wartungsfunktionen auszuführen (z. B. muss die Anwendung möglicherweise neu kompiliert werden). Die objektbasierte Modularität stellt die Anwendung als eine Sammlung separater ausführbarer Dateien bereit, die unabhängig verwaltet und ersetzt werden können, ohne die gesamte Anwendung erneut bereitzustellen (z. B. Microsoft „DLL“ -Dateien; Sun / UNIX „Shared Object“ -Dateien). Einige Object Messaging-Funktionen ermöglichen die Verteilung objektbasierter Anwendungen auf mehrere Computer (z. B. Microsoft COM +). Serviceorientierte Architekturen verwenden spezifische Kommunikationsstandards / -protokolle, um zwischen Modulen zu kommunizieren.

In seiner ursprünglichen Verwendung beschrieb der Begriff „monolithisch“ enorme Mainframe-Anwendungen ohne nutzbare Modularität. Dies führte in Kombination mit der raschen Zunahme der Rechenleistung und damit der raschen Zunahme der Komplexität der Probleme, die durch Software gelöst werden konnten, zu nicht wartbaren Systemen und der „Softwarekrise“.