Warum monolithische Software an ihre Grenzen kommt
Eine traditionelle monolithische Software-Architektur ist in der Regel als ein einziges großes System konzipiert und basiert auf genau einem Quellcode. Sie ist als eigenständige Software konzipiert und wird als Ganzes ausgeliefert. Die Komponenten des Programms sind miteinander verbunden und voneinander abhängig, was bedeutet, dass bei Änderungen im Detail die gesamte Architektur geändert werden muss. Enthält eine einzelne Funktion oder Komponente des Monolithen einen Fehler, wirkt sich dies negativ auf die gesamte Anwendung aus. Darüber hinaus sind Programme mit einer solchen Architektur in der Regel an bestimmte Hardware und Betriebssysteme gebunden, was in zunehmend volatilen Märkten weitere Einschränkungen bedeutet.
Monolithische Architekturen haben jedoch auch Vorteile: Sie sind in der Regel performanter und einfacher zu testen und zu debuggen, da sie mit weniger Elementen und Variablen auskommen. Für Anwendungen, die einzelne, kompakte Geschäftsprozesse abbilden, ist die monolithische Softwarearchitektur nach wie vor eine gute Lösung. Sie stößt jedoch an ihre Grenzen, wenn mehrere verschiedene funktionale Prozesse mit unterschiedlichen technologischen Anforderungen in einer Anwendung zusammengefasst werden sollen.
Hinzu kommen immer kürzere Produktlebenszyklen, individuelle Kundenwünsche und technologische Entwicklungen, die eine hohe Reaktionsfähigkeit und Flexibilität erfordern.
Auf die Schnelle
Das Wesentliche in 20 Sekunden
● Themen wie Globalisierung, Digitalisierung, Industrie 4.0 und Always Availability erschweren neue Softwareentwicklungen.
● Lösung: Um diesen Anforderungen gerecht zu werden, bieten sich modulare Softwarestrukturen wie SOA (Service Orientierte Architektur) und Microservices an.
● Diese ermöglicht eine parallele Entwicklung von Services durch verschiedene Entwicklungsteams.
● Die optionale Nutzung verteilter Anwendungen über das Internet.
Modulare Architektur orientiert sich an Funktionsprozessen
Um diesen Anforderungen gerecht zu werden, bieten sich modulare Softwarestrukturen wie SOA (Service Oriented Architecture) und Microservices an. Idealerweise orientiert sich eine modulare serviceorientierte Architektur an funktionalen Prozessen, deren einzelne Abstraktionsebenen als Basis für konkrete Service-Implementierungen dienen. Die einzelnen Funktionsprozesse werden als einzelne Module mit der am besten geeigneten Technologie entwickelt und können teilweise auch autark eingesetzt werden.
In serviceorientierten Softwarestrukturen wird über Service-Schnittstellen definiert, wie zwei unabhängige Instanzen oder Anwendungen miteinander interagieren. Dabei führt eine Instanz einen Dienst im Auftrag einer anderen Instanz aus. Diese Service-Schnittstellen bieten eine lose Kopplung, d.h. sie können mit wenig oder gar keinem Wissen darüber aufgerufen werden, wie die funktionale Integration darunter implementiert ist.
Services lassen sich mehrfach verwenden
Die Hauptvorteile einer modularen Softwarearchitektur sind insbesondere die Wiederverwendbarkeit von Services, die Möglichkeit der parallelen Entwicklung von Services durch verschiedene Entwicklungsteams und die höhere Flexibilität, d.h. wenn sich einzelne Funktionsabläufe ändern, kann die Software leichter angepasst oder ergänzt werden. Hinzu kommen die optionale Nutzung verteilter Anwendungen über das Internet, eine langfristige Kostensenkung bei der Anpassung von Systemen und eine vereinfachte Zusammenarbeit über Unternehmensgrenzen hinweg.
Von monolithischer zu modularer Softwarestruktur
Die Planungssoftware Project Complete Planning (ehemals Clip Project Planning) von Phoenix Contact ist als monolithische Software aufgebaut und wird von mehreren zehntausend Kunden weltweit eingesetzt. Aber auch hier haben die oben beschriebenen Nachteile monolithischer Strukturen die Weiterentwicklung der Anwendung gehemmt.
Die neue Planungssoftware Clipx Engineer stellt sich diesen neuen Anforderungen und hebt die Architektur der Software auf ein neues Niveau, da die Software auf einer modularen Softwarestruktur und einer neuen Technologie basiert. Durch die modulare Softwarestruktur können einzelne Funktionsprozesse als einzelne Module parallel und von verschiedenen Entwicklungsteams entwickelt und anschließend in die Software integriert werden.
Funktionales Engineering als besonderes Modul
Ein Modul ist hier besonders hervorzuheben: das Funktionale Engineering. Das Funktionale Engineering ermöglicht es dem Anwender, durch Eingabe weniger Parameter eine Teillösung für sein Projekt zu erhalten. Wird beispielsweise eine Stromversorgung für eine Maschine benötigt, unterstützt das Funktionale Engineering bei der Auswahl der richtigen Artikel - nach Eingabe der Anzahl der benötigten Stromkreise, der maximalen Stromstärke pro Stromkreis und der Art der Absicherung erstellt das Funktionale Engineering eine Artikelkombination, die die geforderte Funktion abdeckt. Anschließend muss der Anwender die einzelnen Artikel nur noch auf eine oder mehrere Tragschienen in seinem Projekt platzieren.
Zusätzlich sind die von Phoenix Contact zur Verfügung gestellten Online-Konfiguratoren wie Ptfix, Caparoc und weitere angebunden. Dadurch kann der Anwender neben den Standardartikeln auch kundenspezifisch konfigurierte Artikel verwenden. Durch die umfangreichen Funktionen, wie z.B. die virtuelle Bestückung von Montageplatten und Tragschienen, die implementierten Funktionsbausteine, wie z.B. das Funktionale Engineering und die integrierten Konfiguratoren, wird die Software zur Projektierungsplattform, mit der alle schaltschrankrelevanten Komponenten von Phoenix Contact verarbeitet werden können.
Kurz erklärt: Monolithische Software-Architektur
Eine monolithische Softwarestruktur folgt nicht dem Ansatz einer expliziten Gliederung in Teilsysteme oder Komponenten. Dadurch sind diese Systeme häufig stark an Ressourcen wie Hardware, bestimmte Datenformate und proprietäre Schnittstellen gebunden. Im Gegensatz zu diesen streng gekoppelten monolithischen Architekturen stehen Client-Server-Architekturen oder allgemein verteilte Systeme. Ältere Mainframe-Programme oder auch viele DOS- und Windows 3.x-Anwendungen basieren häufig auf monolithischen Software-Architekturen.
Software-Architekturen unterliegen im Allgemeinen einer großen Gestaltungsfreiheit. Dies führte insbesondere in der Vergangenheit zu Softwaresystemen, die in der Regel nicht in Teilsysteme zerlegt oder auf Basis einzelner, zusammenwirkender Komponenten erstellt wurden. Diese monolithischen Strukturen sind auch heute noch bei entsprechend älteren Systemen anzutreffen und können eine Reihe von Nachteilen mit sich bringen: So sind Softwaresysteme weder wartbar noch erweiterbar, da die Teile dieses Systems nur mit erheblichem Aufwand modifiziert und an neue Bedingungen angepasst werden können. Ab einer bestimmten Größe sind Softwaresysteme aufgrund fehlender Modularisierung nicht mehr beherrschbar, bei Änderungen treten nicht vorhersehbare Nebeneffekte auf. Teile des Softwaresystems können nicht wiederverwendet werden. Aufgrund der starren Kopplung von Softwareteilen können diese nicht parallel z.B. zur Lastverteilung auf verteilten Systemen laufen.
Verfügbar auf unterschiedlichen Plattformen
Ein weiterer Vorteil von Clipx Engineer ist die Verfügbarkeit auf unterschiedlichen Plattformen, nämlich als Cloud-, Desktop- und On-Premise-Version. Dabei kann jeder Anwender frei entscheiden, welche Installationsart er verwenden möchte, denn jede hat ihre Vorteile. So entfallen bei der Cloud-Version die Aufwände für Installation sowie Updates - der Nutzer kann von jedem Rechner mit Internetzugang zugreifen und arbeitet immer mit der aktuellen Version. Die Desktop-Version wird auf einem lokalen Rechner installiert und kann unabhängig vom Internetzugang verwendet werden. Die On-Premise Version wird einmal im eigenen Netzwerk eines Unternehmens installiert und von dort auf die Arbeitsplätze verteilt. Auf diese Weise lassen sich die Vorteile von zentraler Wartung und Minimierung der Schnittstellen ins Internet – was unter Security-Aspekten gewünscht sein kann – miteinander verbinden.
Weltweiter Zugriff durch die Proficloud
Ein weiteres Highlight ist die Projektverwaltung. Der Anwender kann die Projekte wahlweise lokal auf seinem Rechner, in einem lokalen Netzwerk oder in der Proficloud speichern. Die Speicherung in der Proficloud ermöglicht einen weltweiten Zugriff auf die Projekte. Über die Zugriffs- und Rechteverwaltung können Lese- oder Bearbeitungsrechte für Projekte mit Partnern geteilt werden. Darüber hinaus besteht die Möglichkeit, Projekte durch das Versenden eines entsprechenden Links temporär mit Partnern zu teilen.
Durch die gewählte modulare Softwarestruktur und die zukunftsorientierte Technologie ist Clipx Engineer die Antwort auf die aktuellen Anforderungen des schnell wachsenden und flexiblen Marktes rund um den Schaltschrankbau. Der Anwender kann sowohl mit Standardprodukten als auch mit individuell konfigurierten Schaltschrankkomponenten seine optimale Lösung aufbauen.
Autor
Peter Isaak,
Senior Project Manager Planning & Engineering, Business Unit Industrial Cabinet Solutions, Phoenix Contact GmbH & Co. KG, Blomberg