Mainframes in der modernen IT: Mit Open Source die alten Silos öffnen​

COBOL-Anwendungen: Genauso skalierbar wie andere Cloud-Applikationen

Inhaltsverzeichnis

COBOL ist internationaler Standard. Daher sind COBOL-Programme grundsätzlich auch einfacher als andere Programme auf eine neue Plattform migrierbar. Wie hoch ist dieser Aufwand dennoch?

Da COBOL eine standardisierte Sprache ist und auf den meisten Plattformen (Linux, Windows) ebenso lauffähig ist, wie auf gängigen Managed-Systems wie JVM oder .NET, stellt die Migration des reinen COBOL-Teils keine große Hürde dar. Der Grund, warum Migrationsprojekte dennoch eher in Monaten bis Jahren zu sehen sind, ist, dass die gesamte genutzte Mainframe-Infrastruktur ersetzt werden muss – sprich Security, Transaktionssysteme, Datenhaltung, Sicherung, Monitoring, Printing etc.

Es geht also weniger um die Komplexität von COBOL, schließlich wurde die Sprache mit der Anforderung entwickelt, einfach zu sein. Die größere Herausforderung ist das Herauslösen der Programme aus der vorhandenen Infrastruktur des Mainframes.

Welche Voraussetzungen muss ein Scale-Out-Cluster beziehungsweise eine Cloud-Plattform mitbringen, damit die Portierung einer Mainframe-Anwendung überhaupt funktionieren kann?

Die technischen Voraussetzungen unterscheiden sich grundsätzlich nicht gegenüber denen üblicher Applikationsserver. Allerdings müssen die bestehenden Mainframe-Anwendungen skalierbar sein oder skalierbar gemacht werden. Dann sind COBOL-Anwendungen ebenso skalierbar wie andere Cloud-Applikationen. Wir haben zumindest mit unseren Lösungen und den gängigen Cloud-Providern noch keine Einschränkungen erlebt.

Mit Blick auf die Anwendung selbst geht es dann um Themen wie „stateful“ versus „stateless“ im Transaktionsbereich, wobei Mainframe-Applikationen häufig stateful sind. Auch die Aufteilung einer Nachtverarbeitung, sprich eines Batchbetriebs, auf parallele Maschinen erfordert häufig eine Änderung der Anwendungsarchitektur.

Wann ergibt eine Umstellung der bewährten COBOL-Programme in eine modernere Programmiersprache wie zum Beispiel Java Sinn? Welche Vorteile bringt das?

Meiner Meinung nach ist das in den seltensten Fällen wirklich sinnvoll. Die Umstellung einer Anwendung auf eine andere Sprache ist mit hohen Risiken behaftet. Dabei kann es sich beispielsweise um den Verlust undokumentierter Funktionen handeln. Hier muss man sich vor Augen führen, dass COBOL-Anwendungen nicht selten eine Lebensdauer von 20 bis 40 Jahren haben. Da kann einiges zusammenkommen.

Weiter bedeutet diese Umstellung meist eine Neuentwicklung, da normalerweise auch eine neue Architektur eingeführt wird. Man muss also auch diesen Aufwand einkalkulieren. Da stellt sich dann schnell die Frage nach dem Mehrwert: Was hat man davon, das Abbild derselben Logik in einer anderen Sprache vorliegen zu haben?

Zuletzt kann man sich auch noch fragen, wie modern Java überhaupt ist, die Sprache ist schließlich auch bereits über 25 Jahre alt. In den allermeisten Fällen würde ich davon abraten, eine gutlaufende COBOL-Anwendung ohne Notwendigkeit in eine andere Sprache zu überführen.