Wettbewerbs- und Innovationsfähigkeit erhalten

Software ist ein immaterielles Gut, welches für Unternehmen eine zunehmende Bedeutung erlangt, um die Wettbewerbs- und Innovationsfähigkeit zu erhalten. Da die Entwicklung von Software zeit- und kostenintensiv ist, stehen Anpassungs- und Migrationsstrategien im Fokus. Technologische Meilensteine, wie zum Beispiel die Nutzung von Web- und Cloudservices erhöhen den Anpassungsdruck.
Wie in kaum einem anderen Bereich der Wirtschaft ist die Folge sich abwechselnder und aufeinanderfolgender Technologien in der Informationstechnik (IT) sehr dicht. Traditionell stellt Software ein Werkzeug dar, um Aufgaben und Herausforderungen, welche bei der Bewältigung aktueller Geschäftsprozesse zu erledigen sind, zu lösen. Dieses Bild der IT unterliegt seit geraumer Zeit einem stetigen Wandel. IT wird in diesem Sinne zunehmend zu einem Wettbewerbsfaktor und Innovationstreiber. Damit die IT dieser Aufgabe gerecht werden kann, muss diese in den Kernbereichen des betreffenden Geschäftsfeldes stets aktuell und möglichst technisch innovativ sein. Gelingt das nicht, so werden die Auswirkungen nicht sofort sichtbar. Für eine bestimmte Zeit können die Aufgaben erfüllt werden, aber das Potenzial, das die IT zu eigenen Innovationsfähigkeit beiträgt, wird schwinden (Abbildung 1).

Softwaremigration
Die Art und Weise der Nutzung von Software ändert sich stetig. Mobile- und Cloud-Computing, eine weiter zunehmende Vernetzung von allen Geräten (IoT), der Einsatz von künstlicher Intelligenz und neue Formen der Nutzerinteraktion (Multiexperience) sind nur einige wichtige Trends. Damit Unternehmen die sich daraus ergebenen Vorteile auch auf wirtschaftlicher Basis nutzen können, ist eine stetige Anpassung der IT – u. a. auch der Software – notwendig. Aus wirtschaftlichen Gründen stehen Szenarien der Softwaremigration im Mittelpunkt, d. h. es geht um eine möglichst ökonomische Überführung der bestehenden Systeme (Legacy Applikationen) in zeitgemäße Technologien. Solche Vorhaben sind komplex und bedürfen einer systematischen Planung und Durchführung (Abbildung 2).

In den nachfolgenden Textabschnitten beschreiben wir aktuelle Anforderungen der Softwaremigration (Programmmigration), wie diese vielfach in betrieblichen Anwendungssystemen vorkommen. Wichtig ist es dabei festzustellen:
Die Entscheidung über eine Softwaremigration bzw. die Auswahl der richtigen Strategie darf nicht nur auf technischen Prämissen beruhen. Zu früh würde dann häufig gegen eine Migration entschieden und der neuen Technologie der Vorzug gegeben. Das ist aus Gründen des Kapital- und Investitionsschutzes nicht optimal. Die Beispiele zeigen, dass mit modernen Ansätzen und Werkzeugen heutige Softwaresysteme auch vielfach in die nächste technische Generation erfolgreich überführt werden können.
Wechsel der Softwarearchitektur
Nachfolgend wird ein Beispiel für eine Softwaremigration beschrieben, wie diese bei einem Wechsel einer Softwarearchitektur typisch ist. Viele betriebliche Anwendungssysteme arbeiten mit einer Client-Server-Architektur. Dabei agiert i.d.R. eine Desktopanwendung als Client. Diese repräsentiert die Geschäftslogik und die Benutzeroberfläche. Bei modernen Anwendungssystemen wählt man heute oft eine deutlich flexiblere Mikroservice-Architektur. Dabei werden die Funktionen der Geschäftslogik über das Netzwerk mittels einer REST-fähigen Infrastruktur zur Verfügung gestellt. Diese Services stehen einer beliebigen Anzahl von Clients zur Verfügung und können geräte- und betriebssystemunabhängig eingesetzt werden.
Die Implementierung von REST-fähigen Services basiert auf anderen technischen Voraussetzungen als Desktop-Applikationen. Es müsste die Geschäftslogik vollständig neu implementiert werden. Eine effiziente Softwaremigration sollte diesen Weg vereinfachen und idealerweise eine Übertragung von großen Bestandteilen an Quellcode ermöglichen. Liegt die Legacy-Applikation in Form von Delphi- und/ oder C++-Quellcode vor, kann der Einsatz des RAD Servers [2] eine effiziente Möglichkeit der Migration bieten. Dabei erfolgen alle Arbeiten in der Entwicklungsumgebung RAD Studio [3] unter dem Einsatz fertiger Komponenten. Bestehender Delphi- und/ oder C++-Code kann auf den RAD Server transformiert werden. Oft sind dazu keine oder nur minimale Codeanpassungen notwendig, um Backend-Code für Clients über verwaltete REST Schnittstellen bereitzustellen. Den RAD Server kann man alternativ auf einem lokalen Server hosten oder für das Hosting Cloud-Dienste wie Amazon oder Azure in Anspruch nehmen. Eine Mikroservice-Architektur erfordert darüber hinaus weitere Funktionen, welche man auf diesem Wege ebenfalls problemlos integrieren kann. Dazu gehören u.a.: Verbindungen zu Datenbankservern, eine Integration von Cloud-Diensten aus sozialen Plattformen wie Google, Amazon und Facebook, eine Nutzung einer Benutzer- und Gruppenverwaltung, das Versenden von Push-Nachrichten an die Nutzer von mobilen Apps und das Einbinden von IoT-Geräten.
Das eben beschriebene Vorgehen führt zu einer Anpassung der Systemarchitektur (Abbildung 3).

Aus einem klassischen Client-Server-Ansatz wird eine moderne Microservice-Architektur. Im Ergebnis können die ursprünglich nur für Desktopanwendungen verfügbaren Funktionen der Geschäftslogik durch alle angebundenen Clients genutzt werden. Es besteht keine Bindung mehr an Betriebssysteme und Geräte. Die digitale Geschäftslogik wurde ohne größere Anpassungen auf dem Server verlagert. Eine aufwändige und auch oft fehleranfällige Neuimplementierung wurde damit vermieden.
Wechsel der Systemarchitektur
Ein Wechsel der Systemarchitektur findet gewissermaßen unter der „Haube“ des Anwendungssystems statt. Für den Anwender ergeben sich keine sichtbaren Anpassungen. Es kann zum Beispiel bei einer Desktop Applikation bleiben. Für die Möglichkeit einer weiteren Wartung und Pflege des Anwendungssystems kann eine solche Migration dennoch von entscheidender Bedeutung sein.
Seit vielen Jahren gelten Windows Forms (WinForms) und Windows Präsentation Foundation (WPF) als Standard für die Entwicklung von Desktop Anwendungen unter Microsoft Windows Betriebssystemen. Dabei basiert WinForms auf der älteren GDI+-Grafikbibliothek des Betriebssystems und erlaubt eine sehr effiziente Umsetzung des User Interface durch den Einsatz eines grafischen Designers. Ein Nachbearbeiten des entstehenden Quellcodes ist nicht vorgesehen. Der modernere Ansatz WPF erlaubt deutlich mehr Möglichkeiten. Das User Interface wird dabei mit Hilfe der Beschreibungssprache XAML entworfen. Auch hier gibt es eine Designerunterstützung. Beiden Ansätzen gemeinsam ist, dass diese auf dem .NET-Framework beruhen. Im Zuge der Weiterentwicklung der zugrundeliegenden Technologie des .NET-Frameworks hat Microsoft nun entschieden, dass das .NET-Framework mit Version 4.8 einen finalen Status erreicht. Künftig werden derartige Applikationen auf der Basis .NET-Core basieren (.NET 5.0), welche eine deutlichere Trennung von Bibliotheken des User Interface und der anderen Programmschichten beinhaltet.
Neue Projekte für den Windows Desktop können unmittelbar auf der Basis der aktuellen Architektur aufgesetzt werden. Für die sehr vielen bestehenden Projekte stellt sich die Frage nach der weiteren Vorgehensweise. Zwar wird die bisherige Systemarchitektur auch weiterhin in aktuellen Windows Versionen unterstützt, neue Features können auf diesem Weg jedoch nicht genutzt werden. Es empfiehlt sich daher für bestehende Software auf der Basis von WinForms bzw. WPF eine Prüfung der Migration, wenn die Applikationen noch für einen längeren Zeitraum genutzt und vor allem auch mit funktionalen Updates versorgt werden müssen. Microsoft bietet im Vorfeld einer geplanten Migration daher das Tool The Portability Analyzer, um den Aufwand und den Erfolg der Migration abschätzen zu können (Abbildung 4) [4].
Vom Sanierungsfall zur modernen Single Page Web Applikation
Sehr häufig ist es das Ziel, künftig mit Web-Applikationen statt mit Desktop Anwendungen zu arbeiten. Die Vorteile liegen klar auf der Hand: Keine Installation auf dem Client, stets aktuell für den Nutzer durch serverseitige Wartung, direkter Mehrbenutzerbetrieb und geringere Kosten durch einfachere zentrale Wartung. Viele Desktopanwendungen wurden mit Visual Basic, C# oder VB .NET und Windows Forms erstellt. Diese umfassen oft komplexe Benutzeroberflächen mit einer Vielzahl von Dialogen und Steuerelementen. Derartige bestehende Applikationen neu zu erstellen wäre sehr aufwändig. Auch für diese Form einer Anwendungsmigration (Desktop zu Web Applikation) kann man mit einem ausgewählten Werkzeugeinsatz sehr umfassend unterstützen. Dieses gelingt für den beschrieben Technologie Stack (WinForms, VB.Net) mit Hilfe des Framework Wisej [5]. Die Komponenten von Wisej sind weitgehend zu Windows Forms-Komponenten kompatibel. Das ist ideal für umfassende Migrationsvorhaben. Oft muss dazu das bestehende Projekt lediglich in der Entwicklungsumgebung Visual Studio geöffnet und einige Anpassungen an der zentralen Projektdatei vorgenommen werden. Ist Wisej in Visual Studio installiert, genügt dann ein neues Erstellen (Build) des Projektes, um daraus eine Web-Applikation zu generieren. Auf Serverseite basiert die Oberfläche weiterhin auf den Komponenten der bestehenden Desktop Anwendung, zum Beispiel den vielzähligen Steuerelementen für die grafischen Benutzeroberflächen. Auf Seiten des Clients (Browser) bildet Wisej die serverseitigen Komponenten 1:1 mit Hilfe von JavaScript-Klassen ab. Das User Interface wird durch das entsprechende JavaScript-Widget gerendert. Da dieser Prozess vollständig im Browser ausgeführt wird, ist er entsprechend performant. Mit anderen Worten: Die bisherige Desktop Anwendung auf der Basis .NET bleibt bestehen, wird jedoch auf den Server ausgelagert. Diese sorgt dafür, dass angebundene Clients über das Netzwerk eine funktional gleichwertige Web Applikation zur Verfügung gestellt wird (Abbildung 5).
Für den Anwender ergeben sich gegenüber einer auf herkömmliche Weise entwickelten Web Applikation keine Unterschiede. Alle o. g. Vorteile sind verfügbar. Die Aufgabe der Softwaremigration vereinfacht sich in einem erheblichen Umfang, da Änderungen am Quellcode nicht oder nur in einem sehr geringen Umfang notwendig sind. Ein wichtiger Vorteil besteht darin, dass man sich keine Gedanken über das Zusammenspiel der Web Technologien machen muss, d.h. man kann sich vollständig auf die Umsetzung des Geschäftsmodells konzentrieren. Selbst eine umfassende Migration von Desktopanwendungen mit komplexen Oberflächen und einer umfassenden Businesslogik gelingt in vertretbarer Zeit.
Für Übergangsszenarien der Migration ist es über ein zusätzliches Modul möglich, dass die neu migrierten Web-Anwendung ohne technische Eingriffe weiterhin als Desktopanwendung ausgeführt werden. Damit ist ein so genanntes Dual Deployment (Web, Desktop) möglich.
Fazit
Softwaremigration ist ein stetig aktuelles Thema, da auch heutige Technologien mit der Zeit altern. Das Ziel eines wirksamen Investitionsschutzes kann durch den Einsatz von „intelligenten“ Werkzeugen erreicht werden. Werden Softwaremigrationen eine zu lange Zeit vernachlässigt, dann drohen Nachteile in der Leistungsfähigkeit des IT-Systems.
Autorin
Elena Bochkor
Wirtschaftsinformatikerin, LARInet
Elena Bochkor beschäftigt sich als Wirtschaftsinformatikerin mit den Fragen eines ökonomischen Einsatzes der IT. Mit Ihrem Unternehmen LARInet begleitet sie ihre Kunden auf dem Weg der Digitalen Transformation.
e.bochkor(at)larinet.com
larinet.com