Getty Images/iStockphoto
Techniken für die Modernisierung von COBOL-Anwendungen
Die Möglichkeiten der COBOL-Codemodernisierung reichen vom einfachen, aber teuren Neuschreiben der Anwendung bis hin zu Tools, die den Code automatischen konvertieren.
Aufgrund des Mangels an COBOL-Entwicklern modernisieren viele Unternehmen ihre Mainframe-Anwendungen, um auf einen größeren Pool von Softwareentwicklern zugreifen zu können.
„Es gibt zwar viele Ansätze für COBOL-Codekonvertierungen, aber eine zeilenweise Konvertierung ist nie eine gute Idee“, sagt Jason Bloomberg, Gründer und Präsident des Analystenhauses Intellyx. „Java folgt anderen Mustern und anderen Best Practices als COBOL, so dass man es nicht Zeile für Zeile übersetzen sollte.“
Neben der zeilenweisen COBOL-Konvertierung haben Entwickler die Möglichkeit, eine Anwendung von Grund auf neu zu schreiben oder ein automatisiertes Codekonvertierungs-Tool zu verwenden, wobei beide Möglichkeiten Vor- und Nachteile haben. Welcher Weg zur COBOL-Codemodernisierung eingeschlagen werden soll, hängt von Faktoren wie dem verfügbaren Know-how, den Budgetbeschränkungen und der Eignung eines Standardprodukts ab.
Von Grund auf neu beginnen
„Eine der besten Optionen ist, die Anwendung für den modernen Stack neu zu schreiben“, sagt Chris Riley, Senior Manager of Developer Relations beim Marketing-Unternehmen HubSpot. Das Neuschreiben einer Legacy-Anwendung ist oft die Methode der Wahl, wenn die Anwendung umgewidmet werden muss oder wenn die Geschäftslogik veraltet ist und keine Standardalternative verfügbar ist.
„Es vermeidet technische Schulden und ermöglicht es Ihnen, die Vorteile des neuen Stacks voll auszuschöpfen“, sagt er.
Aber dieser Ansatz kann teuer werden. Eine komplette Neufassung der Anwendung ist zeitaufwendig und erfordert viele Monate oder Jahre an Entwicklungszeit. Außerdem müssen die Entwickler für eine vollständige Neufassung in der Regel COBOL in eine andere Programmiersprache übersetzen, was aufgrund des Mangels an Entwicklern eine weitere Herausforderung darstellt.
Automatisierte COBOL-Codekonvertierung
Manchmal ist das komplette Neuschreiben unvermeidlich, wie im Fall einer Anwendung mit nicht mehr funktionierender Geschäftslogik. Wenn das nicht der Fall ist, sind automatisierte Tools laut Bloomberg der richtige Weg.
Es gibt zwei verschiedene Wege, um die Modernisierung von COBOL-Anwendungen zu automatisieren: die Codekonvertierung von altem in modernen Code mit Tools wie CloudFrame oder Synchrony Systems oder die Extraktion von Geschäftsregeln mit Intellisys von EvolveWare.
CloudFrame ist vollständig automatisiert und nutzt maschinelles Lernen, um Cloud-nativen Java-Code zu generieren. Synchrony Systems ist teilweise automatisiert, was bedeutet, dass die Modernisierung von Menschen unterstützt werden muss.
Eine weitere Option ist Intellisys, ein Tool, das nicht nur Legacy-Code in modernen Code konvertiert, sondern auch Geschäftsregeln aus dem Quellcode extrahiert. Die Extraktion von Geschäftsregeln macht Intellisys einzigartig auf dem Markt, aber Unternehmen müssen mehr als nur die Migration von Geschäftsregeln berücksichtigen.
Bloomberg nennt hierfür folgendes Beispiel: „Eine COBOL-Anwendung hat wahrscheinlich eine Mainframe-Benutzeroberfläche, und das ist nicht das, was man in der modernisierten Anwendung replizieren möchte.“
Extrahierte Geschäftsregeln fassen zwar den Zweck einer Anwendung zusammen, enthalten aber nicht alles, was eine Anwendung zum Laufen braucht. Um Funktionalität zu erhalten, wie zum Beispiel eine Benutzeroberfläche, müssen die Regeln entweder in ein modernes Standardprodukt übernommen oder verwendet werden, um eine Anwendung von Grund auf in einer modernen Sprache zu schreiben.
Der einfachste und schnellste Weg zur Modernisierung mit Unterstützung der Extraktion von Geschäftsregeln besteht darin, ein Standardprodukt zu finden, das die Funktionen der alten COBOL-Anwendung nachbildet, einschließlich einer modernen Schnittstelle, so Miten Marfatia, CEO von EvolveWare. Die extrahierten Geschäftsregeln können dann in diese Standardplattform exportiert werden.
Aber Automatisierung ist kein Allheilmittel. Selbst wenn die automatisierte Codekonvertierung erfolgreich ist, wird das Ergebnis keine perfekte neue Anwendung sein. Auch wenn es möglich ist, mit automatisierten Codekonvertierungen eine praktisch identische, lauffähige Anwendung zu erstellen, ist diese nicht für die jeweilige Sprache und ihre Laufzeitumgebung optimiert.
„Die moderne Sprache wird neue Tricks haben, und es gibt keine Möglichkeit, alten Code in diese neuen Tricks zu übersetzen“, sagt Marfatia.
Um die Fähigkeiten der Sprache voll auszunutzen, müssen Entwickler daher in die Übersetzung eingreifen. „Das Problem ist, dass eine Kleinigkeit, wie zum Beispiel eine bessere Garbage Collection, dazu führen kann, dass man jede Funktion ein klein wenig umgestalten muss“, sagt Riley.
Modularer oder phasenweiser Ansatz
Ein modularer oder phasenweiser Ansatz, der mit oder ohne Automatisierung angewandt werden kann, kann die gewaltige Herausforderung der COBOL-Codemodernisierung erträglicher machen.
Wenn die alte Anwendung modular ist, können Unternehmen Teile davon modernisieren und die alten Teile mit den neuen Teilen über APIs integrieren, um die Anwendung während des Modernisierungsprozesses funktionsfähig zu halten.
Ein guter Kandidat für den modularen Ansatz ist die Mainframe-Anwendung eines Versicherungsunternehmens für die Schadenbearbeitung. Diese besteht aus mehreren Teilen, wie zum Beispiel der Schadenbearbeitung, der Schadensregulierung oder dem Underwriting, die nach und nach modernisiert werden können.
Miten schlägt einen stufenweisen Ansatz vor, der eher als Sprungbrett zur Modernisierung dient, denn als vollständiger Weg. „Wenn Sie das Ganze in kleine Module aufteilen, verstehen Sie, was Sie haben, und entscheiden dann, welchen Weg Sie in Bezug auf die Modernisierung einschlagen wollen, und dann implementieren“, sagt er.