Softwaremigration für klassische Applikationen

Autor / Redakteur: Dr. Veikko Krypczyk & Elena Bochkor / Stephan Augsten

Der Begriff der Systemmigration oder Portierung impliziert in der IT die Anpassung einer bestehenden Technologie an den aktuellen Stand. Diese erfolgt meist schrittweise und kann sowohl Hard- als auch Software umfassen. In diesem Artikel betrachten wir verschiedene Szenarien der Softwaremigration.

Anbieter zum Thema

Es muss nicht immer eine Neuentwicklung sein, mögliche Migrationspfade zeigt die detaillierte Illustration weiter unten.
Es muss nicht immer eine Neuentwicklung sein, mögliche Migrationspfade zeigt die detaillierte Illustration weiter unten.
(Bild: Sneed, H. u.a.: Softwaremigration in der Praxis, dpunkt Verlag, 2010)

Da die Aktualität jeglicher Technologien begrenzt ist, altert auch Software. Die Ablösung von Altsystemen – bei Software spricht man dann von Legacy-Applikationen – durch aktuelle Anwendungssysteme wird als Softwaremigration bezeichnet. Besondere Beachtung und Brisanz werden der Softwaremigration immer dann zugesprochen, wenn Umbrüche in den Technologien, größere Veränderungen in allen Bereichen nach sich ziehen.

Genau das ist momentan der Fall: Die umfassende Vernetzung und der anhaltende Trend zur Auslagerung jeglicher Infrastruktur in die Cloud erfordern andere Herangehensweisen beim Aufbau moderner Softwarelandschaften. Aktuelle, damit verbundene Technologieansätze wie Docker, Microservices, responsive User Interface Design usw. betreffen alle Bereiche eines modernen Softwaresystems.

Demgegenüber steht der Status quo: Viele Business Applikationen existieren bereits seit Jahren. Sie haben sich in der Praxis bewährt und sind akzeptiert. Oft sind es noch klassische Desktop Anwendungen, welche über eine Client-Server-Struktur miteinander verbunden sind. Die initiale Entwicklung liegt i.d.R. schon einige Jahre zurück. Die Wartung und Funktionserweiterung bereiten zunehmend einen größeren Aufwand, wird immer fehleranfälliger und damit kostenintensiver.

Unter rein technologischen Gesichtspunkten müssten derartige Applikationen vollständig neu entwickelt werden. Gegen diesen radikalen Schritt sprechen der immens große Aufwand und die damit einhergehenden Kosten. Alternativ zur Neuentwicklung werden in der Softwareentwicklung gängige Szenarien der Softwaremigration geprüft.

Arten der Softwaremigration

Je nachdem, in welchem Bereich der Schwerpunkt einer Migration liegt, unterscheidet man folgende Arten der Softwaremigration:

  • Migration der Daten: Hier bleiben die Programme in der bisherigen Form erhalten. Es werden lediglich die Daten in ein neues System übertragen. Typisch ist diese Art der Migration zum Beispiel bei einem Wechsel des Datenbanksystems.
  • Migration der Programme: Die Daten bleiben unverändert im vorhandenen Datenhaltungssystem. Es erfolgt dagegen eine Migration der Programme.
  • Migration des User Interface: Bei dieser Migrationsart bleiben die Programme und die Daten unverändert. Ausgetauscht werden sollen die Programmteile, welche für die Benutzerinteraktion zuständig sind, d.h. das User Interface. Diese Art der Migration ist für den Endanwender am meisten wahrnehmbar. Im Sinne eines umfassenden „Faceliftings“ kann eine Auffrischung der Applikation erreicht werden. Voraussetzung für eine Beschränkung der Migration auf das User Interface ist es, dass die restlichen Programmteile noch in einem akzeptablen technischen Zustand sind.
  • Migration der Systemschnittstellen: Diese Form der Migration findet immer dann Anwendung, wenn ein bestehendes System oder Teile eines Systems mit neuen Systemen zusammenarbeiten müssen. Man muss jetzt die Schnittstellen des bisherigen Systems, zum Beispiel an einen aktuellen Standard, anpassen.

All diese Varianten sind Teilmigrationen. Von einer Systemmigration spricht man, wenn viele oder sogar alle Ebenen des Anwendungssystems betroffen sind. Das ist die komplexeste Art der Migration. Eine Möglichkeit besteht darin, zuerst die Daten zu migrieren, während die Programme zunächst unverändert weiterverwendet werden. Eine andere Strategie sieht zuerst die Migration der Programme vor. Eine dritte Strategie steht für eine inkrementelle „Paket für Paket“-Migration. Das richtige Vorgehen ist in jedem Einzelfall individuell festzulegen.

Alle genannten Arten der Migration sind eng mit den Bestandteilen einer Anwendungsumgebung verbunden. Eine Softwaresystem besteht meist mindestens aus den Bestandteilen User Interface, der Anwendungslogik und dem System für die Datenhaltung.

In vielen Legacy-Systemen sind die genannten Komponenten sehr eng miteinander verbunden, eine saubere Schichtentrennung ist nicht immer anzutreffen. Aus diesem Grund kann eine kleine Veränderung in nur einem dieser Teile bereits umfangreiche Auswirkungen auf andere Systembestandteile auslösen. Aufwand und sogar die grundsätzliche Machbarkeit einer Softwaremigration werden aus diesem Grund sehr stark durch den Zustand des Altsystems bestimmt.

Migrationsstrategie

Die Auswahl der passenden Migrationsstrategie ist zwar stets individuell vorzunehmen, dennoch lassen sich aus übergeordneter Perspektive folgende alternativen Überführungsstrategien unterscheiden.

Re-Implementierung: Die Architektur bleibt grundsätzlich erhalten, der Quellcode wird neu erstellt, zum Beispiel auch in einer neuen Programmiersprache. Gegenüber der vollständigen Neuentwicklung bleibt also der bisherige Lösungsansatz bestehen.

Konversion: In diesem Fall geht es um eine automatisierte Transformation der Daten bzw. Programme in die für die Zielumgebung notwendige Form. Voraussetzung ist das Verständnis des Altsystems. Dieses wird teilweise mittels Reverse-Engineering-Techniken erreicht. Dabei ist zu beachten: Die Entwicklung von Werkzeugen, welche für eine qualitativ gute Konversion sorgen, erfordert einen großen Aufwand.

Kapselung: Hier bleiben die Daten und Programme des Altsystems in ihrer ursprünglichen Umgebung bestehen. So genannte Wrapper bilden von außen Zugriffsschnittstellen auf das Altsystem. Auf diese Art und Weise kann man über das Neusystem auf die Dienste des Altsystems zugreifen.

Mögliche Migrationspfade.
Mögliche Migrationspfade.
(Bild: Sneed, H. u.a.: Softwaremigration in der Praxis, dpunkt Verlag, 2010)

Die Zusammenhänge haben wir hier noch einmal visualisiert. Dabei wird auch deutlich, dass statt einer Migration auch die Ablösung durch (jetzt) verfügbare Standardsoftware oder letztendlich dennoch eine Neuentwicklung geprüft werden sollte.

Zeitliche Planung

Bei der Entscheidung über die geeignete Migrationsstrategie ist auch die Form der Umstellung festzulegen, dabei ist das Spektrum breit. Grundsätzlich wird zwischen einer schrittweisen und ganzheitlichen Umstellung unterschieden. Die Vorgehensweise ist davon abhängig, ob das migrierte System als Gesamtheit zu einem bestimmten Termin oder schrittweise in den operativen Einsatz übergeben wird.

In der Praxis spricht man dabei auch von Punktumstellung und Paketumstellung: Bei der Punktumstellung wird das Altsystem auf einen Schlag durch das Neusystem abgelöst. Das Risiko ist entsprechend hoch. Dagegen wird bei der Paketumstellung das bisherige System schrittweise abgelöst.

Softwaremigration in der Praxis: Beispiel Windows-Applikation

Windows bildet nach wie vor die am häufigsten eingesetzte Systemumgebung im betrieblichen Umfeld. Auch hier ist der Migrationsdruck u.a. aus den folgenden Gründen groß:

  • Integration neuer Funktionen in die Software.
  • Anpassung des User Interface an den „State of the Art“ moderner Applikationen in Fragen des Designs und der Benutzerinteraktion, zum Beispiel Touch-Bedienung.
  • Herstellen einer geräteunabhängigen Lauffähigkeit auf unterschiedlichsten Devices, zum Beispiel Desktop-Rechner, mobile Geräte usw.
  • Bereitstellen der Software für unterschiedliche Betriebssysteme, u.a. Windows, macOS und mobile Systeme wie iOS und Android.
  • Verlagerung der Businesslogik in universell über das Internet adressierbare, REST-fähige Services (Microservices).
  • Anbindung neuer Formen der Schichten zur Datenhaltung.

Für Business-Windows-Applikationen, die auf der Basis von Delphi und C++-Builder erstellt wurden, gibt es eine effektive Möglichkeit der Migration mit RAD Studio. Das Ziel ist es dabei, einen möglichst großen Teil des bisherigen Programmcodes unmittelbar weiter zu verwenden oder nur geringfügig anpassen zu müssen. RAD Studio bietet in diesem Zusammenhang die in der folgenden Tabelle genannten Features, welche gerade im Zuge einer Softwaremigration genutzt werden können.

Aufgaben der Softwaremigration
Lösungsansatz in RAD Studio
Anpassung des User Interface Verwendung der Komponenten und des User Interface Designers, um Benutzerschnittstellen zu gestalten, die den heutigen Anforderungen an moderne Applikationen entsprechen.
Erstellen von geräte- und plattformübergreifenden Applikationen Erstellung von geräteübergreifenden Applikationen aus einem einheitlichen Quellcode, welche direkt unter den Systemen Windows, macOS, Android und iOS laufen.
Wiederverwendung von Quellcode Bestehender Quellcode in Delphi und C++ kann ohne weitere Anpassungen weiterverwendet werden. Große Teile der Applikation, i.d.R. die Businesslogik können in ein neues System ohne umfassende Änderungen übernommen werden.
Änderung der Softwarearchitektur in Richtung Microservice Nutzung des RAD Servers. Übertragung der Programmlogik aus einer klassischen Applikation in wenigen Schritten als Service in die Cloud. Die Services können dann als RESTful-Service universell genutzt werden.
Anbindung umfassender Datenquellen Einsatz der FireDAC-Komponenten zur universellen Anbindung von Datenbanken.
Schichtentrennung im Architekturdesign Verwendung von LiveBindings, um die Komponenten des User Interface auf dem Wege der Konfiguration an die Businesslogik lose zu koppeln.

Moderne Softwarearchitektur ist auf dem Weg der Migration möglich. Hier ein Beispiel auf der Basis von RAD Studio und RAD Server.
Moderne Softwarearchitektur ist auf dem Weg der Migration möglich. Hier ein Beispiel auf der Basis von RAD Studio und RAD Server.
(Bild: Krypzcyk / Bochkor)

RAD Studio bietet damit gerade für bewährte Legacy Applikationen umfassende Möglichkeiten der Softwaremigration. Im Fokus steht dabei stets die Effektivität der Softwaremigration. Auf diese Weise gelingt es zum Beispiel, eine klassische Client-Server-Applikation in ein zeitgemäßes, RESTfähiges Softwaresystem zu überführen.

Migration von Software ist ein stets aktuelles Thema

Auch neuste Software wird mit der Zeit altern und erneut zu aktualisieren sein. Die Planung der richtigen Migrationsstrategie ist aufwändig und die Vorgehensweise ist sorgfältig festzulegen. Besondere Sorgfalt ist dann gefragt, wenn Systeme im laufenden Produktionsbetrieb migriert werden müssen.

Aus Kostengründen ist eine Migration einer Neuentwicklung immer dann vorzuziehen, wenn umfassende Bestandteile des Quellcodes übernommen werden können. Gerade die komplexen Algorithmen in der Businesslogik wurden oft über viele Jahre gepflegt und sind auf den aktuellen Stand.

Eine komplette Neuentwicklung würde hier sehr viel Aufwand bedeuten. Moderne Entwicklungswerkzeuge können alle Ebenen der Softwaremigration, d.h. die Anpassung des User Interfaces, die Transformation der Programmlogik und die Überarbeitung der Architektur, umfassend unterstützen.

* Dr. Veikko Krypczyk ist begeisterter Entwickler und Fachautor. Elena Bochkor arbeitet primär am Entwurf und Design mobiler Anwendungen und Webseiten. Weitere Informationen zu diesen und anderen Themen der IT unter Larinet.com.

Dieser Beitrag stammt von unserem Partnerportal Dev-Insider.de.

(ID:45998377)