Software-Migration und Innovation – eine Case Study

Trotz regelmäßiger Wartung und Updates altert auch Software. Es stellt sich irgendwann unweigerlich die Frage, ob man ein bestehendes System umfassend sanieren kann, um es für künftige Anforderungen wieder fit zu machen. Betriebliche Anwendungssysteme der letzten beiden Dekaden waren oft Desktop-Anwendungen. Das Ziel sind moderne Web-Applikationen, am besten cloudbasiert mit moderner User Experience.
Viele Unternehmen sind auf Legacy-Anwendungen angewiesen. Diese Systeme sind häufig seit vielen Jahren oder sogar Jahrzehnten im Einsatz und wurden ursprünglich für spezifische Anforderungen und Technologien entwickelt, die heute veraltet sein können und es oft auch sind. Solche Anwendungen bringen i. d. R. zahlreiche Herausforderungen mit sich. Sie sind meist schwer wartbar, da sie in älteren Programmiersprachen geschrieben wurden oder auf veralteter Hardware laufen. Auch das gesamte Anwendungssystem kann dabei nicht mehr zeitgemäß sein. Investitionen für funktionelle Erweiterungen in diese Altsysteme erscheinen wenig nachhaltig. Zudem wird es ggf. zunehmend schwierig, qualifiziertes Personal für diese Technologien zu finden, was die Wartung und Weiterentwicklung zusätzlich erschwert. Unternehmen müssen daher strategisch entscheiden, wie sie mit ihren Legacy-Systemen umgehen. Diese Entscheidung hängt von verschiedenen Faktoren ab, darunter die strategische Bedeutung der Anwendung, das Budget und die Anforderungen an Sicherheit und Skalierbarkeit. Für wichtige Software-Systeme kann diese Entscheidung nur bedingt aufgeschoben werden, da ansonsten die entstehende technologische Lücke zu einem wettbewerbsgefährdenden Problem wird (Abb. 1).
Ein Ansatz, diese technologische Lücke zu schließen, kann Software-Migration sein, sofern diese in der Lage ist, die Beschränkungen des Altsystems zu überwinden und gleichzeitig die Basis für neue funktionelle Anforderungen (Innovationen) bietet.
Umgang mit Legacy-Anwendungen
Legacy-Anwendungen sind im Business-Bereich kein seltenes Phänomen. Unterschiedlich sind die Strategien, wie die Unternehmen mit solchen Applikationen umgehen. Nur wenige Unternehmen entscheiden sich dafür, veraltete Systeme vollständig durch neue Lösungen zu ersetzen. Zwar bietet dieser Ansatz die Möglichkeit, Geschäftsprozesse zu optimieren und innovative Funktionen einzuführen, die mit der alten Technologie nicht umsetzbar sind, dennoch ist der vollständige Ersatz ein aufwändiger Prozess und birgt ein höheres Risiko. Das gilt insbesondere dann, wenn die bestehenden Anwendungen stark in die Unternehmensprozesse integriert sind. Um sicherzustellen, dass alle Anforderungen erfüllt und Daten reibungslos übertragen werden, müssen Unternehmen viel Zeit und Ressourcen in die Auswahl und Implementierung eines neuen Systems investieren.
Auch eine umfassende Wartung der Legacy-Systeme kann eine vorübergehende Lösung darstellen. Auf diese Weise kann der Betrieb kurz- und ggf. mittelfristig sichergestellt werden. Bekannte Fehler werden behoben, die Systeme werden an gesetzliche Vorgaben angepasst und es werden gegebenenfalls geringfügige Funktionserweiterungen vorgenommen. In diesem Fall arbeiten Unternehmen häufig mit spezialisierten IT-Teams oder externen Dienstleistern. Diese Lösung ist oft die kostengünstigste und benötigt weniger Ressourcen als eine Neuentwicklung. Dabei darf jedoch nicht vergessen werden, dass der Kern der Applikation erhalten bleibt und o. g. Probleme nicht nachhaltig beseitigt werden.
Ein zunehmend genutzter Ansatz ist die schrittweise Modernisierung. Hierbei werden alte Anwendungen gezielt in neue Technologien überführt. Man versucht, funktionierende Bestandteile in eine neue Form des Anwendungssystems zu überführen. Beispielsweise kann es sinnvoll sein, eine mühevoll und über die Jahre integrierte Geschäftslogik zu erhalten und den zugehörigen Quellcode in einem neuen Anwendungssystem weiter zu nutzen. Ein typisches Beispiel ist die Transformation einer bestehenden Desktop-Applikation, ursprünglich beispielsweise für ältere Windows-Betriebssysteme erstellt und auf der Basis einer traditionellen Client-Server-Technologie. Das Ziel wäre in diesem Fall eine geräte- und plattformunabhängige Web-Applikation, welche auf Wunsch auch in der Cloud gehostet wird und damit alle aktuellen Anforderungen an User Experience, Skalierbarkeit und moderne Software-Architektur erfüllt.
Um ein solches Ziel zu erreichen, kann man ggf. nach Prüfung den Weg einer toolgestützten Software-Migration gehen. Neben der Überführung bestehender Anwendungsteile geht es in der Praxis stets darum, auch die Zukunftsfähigkeit des Softwaresystems sicherzustellen. Es handelt sich daher i. d. R. um komplexe Vorhaben mit einer Kombination aus Migrations- und Innovationsaufgaben.
Software-Migration
In der Regel sollen größere, historisch gewachsene Anwendungen migriert werden, die bereits über einen langen Zeitraum im Einsatz sind und eine hohe Komplexität aufweisen. Diese Anwendungen bestehen oft aus zahlreichen Komponenten, Modulen, Schnittstellen zu Datenbanken und externen Abhängigkeiten, die sorgfältig in die neue Plattform oder Infrastruktur übertragen und dort rekonfiguriert werden müssen. Darüber hinaus hängen bestehende Anwendungen oft von bestimmten Betriebssystemen, Bibliotheken, Frameworks oder anderen Softwarekomponenten ab. Diese Abhängigkeiten müssen während der Migration berücksichtigt und gegebenenfalls aktualisiert oder angepasst werden.
Dieser Artikel betrachtet beispielhaft die Software-Migration einer Desktop-Anwendung (Windows) zu einer Web-Applikation. Web-Anwendungen erfreuen sich in zahlreichen Bereichen wachsender Beliebtheit, da ihre Vorteile klar und überzeugend sind. Sie sind plattformunabhängig und erfordern keine Installation, da sie direkt in jedem Browser und auf nahezu jedem Gerät genutzt werden können. Die Installation sowie die laufende Wartung erfolgen zentral auf einem Server oder über einen Cloud-Dienst. Clients greifen einfach über das Netzwerk mit einem Browser auf die Anwendung zu, was die Aktualisierung erleichtert, da Updates direkt auf dem Server vorgenommen werden, ohne dass Eingriffe auf den Clients erforderlich sind. Um eine bestehende Desktop-Anwendung in eine Web-Applikation umzuwandeln, ist eine gründliche Analyse der vorhandenen Legacy-Anwendung der erste und entscheidende Schritt. Dabei müssen zentrale Faktoren wie die verwendete Programmiersprache, das Framework, die Entwicklungsumgebung sowie eingesetzte Bibliotheken berücksichtigt werden. Viele Desktop-Anwendungen wurden ursprünglich speziell für das Betriebssystem Windows entwickelt, wobei häufig die Grafikschnittstelle Windows Forms oder Windows Presentation Foundation zum Einsatz kam. Diese ermöglichte die Gestaltung der Benutzeroberfläche mithilfe des grafischen Designers in Visual Studio. Die Programmierung erfolgte oft in Visual Basic, .NET oder C#, basierend auf dem .NET-Framework als zentrale Klassenbibliothek. Aus heutiger Sicht sind solche Anwendungen jedoch technologisch veraltet, insbesondere in Bezug auf User Experience und Software-Architektur. Ein Vorteil von Web-Applikationen ist der integrierte Mehrbenutzerbetrieb, der eine präzise Verwaltung von Benutzerkonten und Daten ermöglicht. Sie können außerdem auf weniger leistungsfähiger Hardware ausgeführt werden, da die eigentliche Verarbeitung auf dem Server stattfindet und lediglich die Ergebnisse an den Browser übertragen werden. Dies macht sie ressourcenschonend und breit einsetzbar. Zudem sind die Kosten für Wartung und Bereitstellung von Web-Anwendungen in der Regel erheblich geringer als die von Desktop-Anwendungen. Ein entscheidender Erfolgsfaktor für eine effiziente Migration ist die Verfügbarkeit geeigneter Werkzeugunterstützung (Tooling), um Prozesse zu automatisieren und zu vereinfachen.
Praxisbeispiel
Im Folgenden wird von den Herausforderungen eines Software-Migrationsprojektes aus der Praxis berichtet. Der beschriebene Sachverhalt ist typisch und kann auch auf andere Projekte in ähnlicher Form übertragen werden. Die CMC Network GmbH wurde 1997 gegründet und bietet eine spezialisierte Software-Suite, die auf die Anforderungen großer Unternehmen in der Logistik-, Transport- und Versicherungsbranche ausgerichtet ist. Die Software von CMC Network unterstützt Unternehmen bei der Verwaltung und Abwicklung von Schadensfällen. Dies umfasst die Bearbeitung, Nachverfolgung und Dokumentation von Schadensmeldungen sowie die Kommunikation mit Versicherern. Das strategische Ziel des Unternehmens war es, die ursprünglich für die Windows-Plattform entwickelten Anwendungen kontinuierlich zu modernisieren und später endgültig auf eine cloudbasierte Lösung umzustellen. Im Zuge der Analyse wurden unterschiedliche technologische Ansätze zur Entwicklung einer Web-Applikation auf ihre Eignung in Bezug auf den vorliegenden Sachverhalt analysiert. Die Zielkriterien waren primär: Zeit bis zur Markteinführung, Erweiterbarkeit (Innovationsfähigkeit) und die Umsetzung einer zeitgemäßen, den Geschäftsanforderungen entsprechenden Benutzererfahrung. Gesucht wurde eine Lösung, welche es erlaubt, bestehende Codestrukturen – primär in der Geschäftslogik – zu übernehmen und die beispielsweise einen effizienten Ansatz bietet, um komplexe Benutzeroberflächen mit einer Vielzahl von Eingabe- und Interaktionselementen zu gestalten. Fündig wurde man bei Framework Wisej.NET[1].
Web-Applikationen mit Wisej.NET (Technologie)
Wisej.NET erlaubt die Entwicklung von Web-Anwendungen mit einem Ansatz, welcher dem bei Windows-Forms-Anwendungen ähnlich ist. Auch hier erfolgt die Programmierung mithilfe von C# oder optional mit Visual Basic .NET. Das Framework ist ebenfalls geeignet, Anwendungen, welche mit ähnlichen Technologien, beispielsweise Visual Basic 6 oder Gupta erstellt wurden, zu einer modernen Web-Applikation unter Beibehaltung großer Teile der Softwarestrukturen zu migrieren. Ein zentrales Merkmal dieses Frameworks ist seine umfangreiche Komponentenbibliothek, die eine breite Palette von Steuerelementen zur Verfügung stellt. Die Gestaltung der Benutzeroberfläche erfolgt während der Entwicklungsphase mithilfe eines grafischen Designers, der in Visual Studio integriert ist. Dies beschleunigt und vereinfacht die Erstellung von Web-Anwendungen erheblich. Für alle relevanten grafischen Steuerelemente einer bestehenden Windows-Forms-Applikation gibt es eine modernisierte und neu gestaltete Entsprechung mit einem fast identischen Funktionsumfang, gleichen Eigenschaften, Methoden und Ereignissen. Diese Analogie vereinfacht den Migrationsprozess und führt dazu, dass einfache Dialogfelder ohne weitere Anpassungen direkt übernommen werden können. Anpassungen der Funktion und des Designs können über neue leistungsfähige Steuerelemente erreicht werden.
Ein Feature ist das Konzept des Echtzeit-Updates, das eine schnelle Aktualisierung der Benutzeroberfläche ermöglicht, ohne dass die gesamte Seite neu geladen werden muss. Die Anwendungslogik wird bei der Software-Migration vom Client auf den Server verlagert. Das Framework sorgt dann dafür, dass die ursprüngliche .NET-Anwendung auf dem Server ausgeführt wird und die Clients über den Browser diese aufrufen können. Die Unterscheidung zwischen der Server- und der Clientseite gestaltet sich folgendermaßen:
- Serverseite: Im Wisej.NET-Framework übernimmt der Server die zentrale Rolle, indem er die Kommunikation zwischen dem Client (dem Browser) und der Anwendung steuert. Der Server empfängt Anfragen vom Client, führt den entsprechenden Code aus und schickt die aktualisierte Benutzeroberfläche zurück zum Client. Außerdem verwaltet der Server den Anwendungszustand und speichert Informationen über die aktuelle Benutzersitzung. Die Ausführung der .NET-Anwendung erfolgt auf dem Server.
- Clientseite: Der Client bezieht sich hier auf den Webbrowser. Er repräsentiert die Benutzeroberfläche, verarbeitet Nutzerinteraktionen und sendet Anfragen an den Server. In dieser Sphäre werden hauptsächlich HTML, CSS und JavaScript verarbeitet. Die Verbindung zwischen Client und Server wird über Websocket- oder HTTP-Verbindungen hergestellt, um Echtzeitaktualisierungen zu ermöglichen. Daraus ergibt sich eine moderne Software-Architektur (Abb. 2).
Die Transformation einer .NET-Anwendung zu einer JavaScript-Anwendung wird vollständig durch das Framework bewerkstelligt. Für jede Komponente der Benutzeroberfläche, die während der Entwicklungsphase mittels des grafischen Designers in die Anwendung integriert wird, erfolgt eine entsprechende Darstellung als JavaScript-Komponente im Browser. Mithilfe dieses Ansatzes können bestehende .NET-Desktop-Anwendungen mit angemessenem Aufwand in Web-Anwendungen umgewandelt werden. Wisej.NET ist sowohl mit dem älteren .NET-Framework bis zur Version 4.8 als auch mit .NET 6 bis aktuell .NET 9 (früher bekannt als .NET Core) kompatibel. Diese Vielseitigkeit ermöglicht die Ausführung sowohl auf Windows- als auch auf Linux-Betriebssystemen auf dem Server. Dabei hat sich in der Praxis gezeigt, dass die neu erstellten Web-Applikationen auf der Basis von Wisej.NET in der Lage sind, eine Vielzahl gleichzeitiger Verbindungen adäquat zu handhaben und dabei keine Probleme bei höherer Last auftreten. Bei der Umstellung von der Desktop-Applikation zur Web-Applikation sind die folgenden Vorgaben zu beachten:
- Programmiersprache: Die verwendete Programmiersprache bleibt unverändert. Sowohl Visual Basic .NET als auch C# können weiterhin eingesetzt werden.
- Entwicklungsumgebung: Die Entwicklung sowohl der Desktop-Applikation als auch der Web-Applikation erfolgt in Visual Studio.
- Architektur: Die Architektur erfährt eine vollständige Veränderung, da aus einer Desktop-Applikation eine Web-Applikation wird. Die Geschäftslogik wird nun auf den Server verschoben. Die Darstellung erfolgt geräteunabhängig über den Browser.
- Anwendungsmodell: Das bestehende Anwendungsmodell bleibt weitgehend erhalten. Die Benutzeroberfläche wird im Designer erstellt und die Verbindung zur Logik kann weiterhin über Events hergestellt werden. In beiden Fällen wird auf Basis des umfassenden .NET-Frameworks entwickelt. Allerdings wird ein Großteil der Software-Funktionalität vom Client auf den Server verlagert.
Einige mögliche Erweiterungsoptionen (Innovationen) sind im Architekturdiagramm ebenso angedeutet. Das sind beispielsweise:
- Wisej.NET Hybrid: Im Zusammenspiel mit dem Framework .NET MAUI besteht die Option, die Web-Applikation in einem nativen Container auf einem mobilen Device unter Android und iOS auszuführen [2]. Auf Wunsch – und wenn sinnvoll – kann eine Offline-Funktion durch eine eingebettete Serverkomponente erreicht werden.
- Wisej.NET Theme Builder: Es können auf einfache Art und Weise farblich und designtechnisch ansprechende Themen für eine Wisej.NET-Applikation definiert und angewendet werden, ohne aufwändig manuell CSS-Klassen zu definieren.
- Vielfältige Deployment-Optionen: Neben der Ausführung auf einem unternehmenseigenen .NET Server (Windows, Linux) gibt es die Option, die Web-App über einen Cloud-Dienstleister (Azure, AWS) oder als Standalone-Anwendung zur Verfügung zu stellen.
- AI-Smart Components: Es wird die Option geben, künftig leichtgewichtige Features auf der Basis von Künstlicher Intelligenz in eine Wisej.NET-Anwendung einzubinden.
Fazit: Das Migrations- und Innovationsvorhaben (Ergebnis)
Mit Hilfe von Wisej.NET konnte die CMC Network GmbH die bestehende Software in eine Web-Applikation überführen und zugleich neue Funktionen und Kundenanforderungen effizient und schnell implementieren. Durch die modulare Architektur der Plattform war es möglich, die Software problemlos an individuelle Kundenanforderungen anzupassen. Die entwickelten Benutzeroberflächen sind anwenderfreundlich und erfüllen die Anforderungen an eine Business-Applikation.
Das Fallbeispiel hat die vielfältigen Herausforderungen an eine Software-Migration in der Praxis beleuchtet. Dabei handelt es sich stets um einen Einzelfall. Mit passenden Migrationstools kann es gelingen, brauchbare Bestandteile des Altsystems zu transformieren und gleichzeitig die Basis für neue Funktionen (Produktinnovationen) zu schaffen. Hinweis: Für umfassende Experimente und nicht kommerzielle Projekte gibt es vom Web-Framework Wisej.NET eine Community-Edition.
Neuen Kommentar schreiben