Kaum hat man einen Rechner eingerichtet, so ist er schon fast wieder veraltet. Nach fünf Jahren Betrieb wird er dann möglicherweise ausgemustert. Die vorhandene Software muss auf einen neuen Rechner umziehen, mit wahrscheinlich neuem Betriebssystem. Sie muss also auf ein anderes System migriert werden. Je nach Technologie kann dies ohne Änderungen möglich sein. Oftmals sind für eine solche Migration Anpassungen erforderlich, erst recht, wenn die Software bereits in die Jahre gekommen ist und es keine Compiler etc. für aktuelle Rechner und Betriebssysteme mehr gibt. Des Weiteren verändert sich die IT-Welt ständig. Man denke nur daran, dass vor einigen Jahrzehnten die Batch-Verarbeitung dominierte. Später kam die Client-/Server-Verarbeitung, später die Webtechnologie bis hin zur SOA. Ein aktueller Hype ist Cloud Computing. All das erfordert ständige Anpassung. Softwaremigration ist also etwas Alltägliches.
Laut Sneed et. al. bedeutet Softwaremigration dabei die Überführung einer Anwendung in eine andere Umgebung, verbunden mit Anpassung an neue Technologien. Funktionale Änderungen erfolgen dabei nicht. Nur so ist der unabdingbare exakte Vergleich vorher-nachher möglich. Zur Migration sind diverse Strategien möglich. So kann alte Software reimplementiert, konvertiert oder gekapselt werden. Die Umstellung kann inkrementell oder auf einen Schlag erfolgen.
Die hier kurz skizzierte Motivation mit ihren Strategien bilden die Einleitung in das recht alltägliche Thema. Dass es sich um ein alltägliches Thema handelt, wird oft erst nach einer Lektüre wie dem vorliegenden Buch offensichtlich. Denkt man doch bei Softwaremigration nur allzu oft an Cobol-Dinosaurier, die in moderne Zeiten gerettet werden müssen. Die sehr ausführlich dargestellten Migrationsfallstudien behandeln dann auch überwiegend solche Migrationen. Dort werden auch Ansätze beschrieben, alte Cobol-Programme zu kapseln und mittels JEE im Applikationsserver zu nutzen. Oder sie automatisch nach Java zu konvertieren. Doch bevor es soweit ist, werden im Buch ausführlich Migrationsprozesse, Methoden und Werkzeuge behandelt.
Auch wenn der Titel "Softwaremigration in der Praxis" lautet, so handelt es sich nicht um ein Buch, das eine praktische Anleitung gibt. Vielmehr erhält der Leser eine Menge theoretisches Wissen, das er dann gezielt in der Praxis anwenden kann. Die meisten Leser werden wohl nicht Dinosaurier in die Neuzeit führen müssen. Dennoch bietet das Buch jede Menge Erkenntnisse, die auch bei der Migration purer Java-Programme, z. B. der Überführung in eine SOA helfen. Eine der wichtigsten: Trenne Migration unbedingt von funktionalen Änderungen. Wenn also eine alte Java-Anwendung in eine SOA überführt und funktional erweitert werden muss, dann bitte in jedem (inkrementellen) Teilschritt nur entweder migrieren oder funktional ändern. Die Beachtung dessen war bereits für den Rezensent sehr erfolgreich.




