Der sicherste Weg, Mainframe Assembler abzulösen

Bis Ende der 1980er Jahre hatten Versicherungen, Banken, Behörden und Fluglinien keine andere Wahl, als ihre Kernanwendungen mit dem Mainframe Wahl, Assembler zu realisieren. Ständig verändert und erweitert, ging das Wissen über ihre innere Logik mehr und mehr verloren. Die alten Programmierer verschwanden, aber Tausende dieser Anwendungen sind immer noch im Einsatz – schwierig zu pflegen und ein Hemmnis für die strategische Weiterentwicklung.
Vorteile
Das Beziehungsgeflecht zwischen Programmen, Makros, Feldern, Datenstrukturen und Dateien
kann direkt aus den Metadaten heraus visualisiert werden (siehe Abbildung oben).
Kundenmakros werden durch maßgeschneiderte Regeln abgelöst.
Das erzeugte Programm enthält ausschließlich nativen Code. Laufzeitroutinen werden nicht
benötigt.
Die Entwicklung einer maßgeschneiderten TRANSFORMATION ENGINE berührt die reguläre
Entwicklung und Wartung nicht.
Continuous Code Monitoring stellt sicher, dass der zu transformierende Code stets auf dem
neuesten, d.h. produktiven Stand ist.
Konvertierungsfehler werden niemals im COBOL Code korrigiert, sondern nur in den
Transformationsregeln.
Sobald die Tests abgeschlossen sind, stellt ein Integrationstest sicher, dass der COBOL Code
produktionstauglich ist.
Das erzeugte COBOL ist gut strukturiert und leicht lesbar. Somit kann es unmittelbar der regulären
Programmwartung übergeben werden.
Versprechen
Wie oft haben Sie von Assembler Projekten gehört, die gescheitert sind, weil man Behauptungen geglaubt hat, wie z.B. “wir werden 70 % automatisch konvertieren” oder “unsere Offshore Assembler Experten werden das Problem lösen”.
Seien wir fair: Die fehlerfreie Konvertierung von Assembler Code in eine “richtige” Computersprache ist eine der schwierigsten Aufgaben in der IT. Niemand weiß das besser als ITM. Sie hat in jahrelanger Entwicklungsarbeit ihr Kernprodukt Njema um eine Komponente erweitert, die Mainframe Assembler Anwendungssysteme vollautomatisch in gutes, sauber strukturiertes COBOL transformiert.
Njema transformiert Assembler nach COBOL
- Bringt Planbarkeit und Ruhe in das Projekt
- Verringert das Projektrisiko drastisch
- Macht Kosten und Aufwand vorhersehbar
- Verkürzt die Projektlaufzeit signifikant
- Läuft ohne Beeinträchtigung von Produktion und Programmwartung
- Eliminiert menschliche Fehler, die bei jedem manuellen oder halbautomatischen Ansatz unvermeidbar sind
- Erlaubt es, die Transformation ohne Zeitverlust beliebig oft zu wiederholen, z.B. wenn eine Transformationsregel im Fehlerfall angepasst werden musste
- Ermöglicht die Produktivsetzung innerhalb von wenigen Stunden oder Tagen
Methodik
Für den Projekterfolg ist es unerlässlich, im Voraus alle Details jeder einzelnen Zeile des Anwendungscodes zu kennen. Deshalb untersucht Njema aufgerufene System- und Benutzermakros, Kodierkonventionen, sowie Tricks und Angewohnheiten der Programmierer. Es analysiert die Registernutzung, erkennt selbst-modifizierenden Code und speichert alles in das Njema Metadata Repository. Njema erstellt und nutzt ein vollständiges Inventar aller Datenfelder, ihrer Eigenschaften und ihrer Beziehung zueinander. Die generierte große Datenmenge ermöglicht es, KI Algorithmen für die Transformation und das abschließende programmübergreifende Reengineering einzusetzen. Das bedeutet, dass die Transformationsregeln ihre Arbeit stets mit Blick auf alle anderen Statements in allen Programmen der gesamten Anwendung verrichten. Auf diesem Wissen basierend wird eine projektspezifische TRANSFORMATION ENGINE aufgebaut, indem Hunderte von Transformationsregeln aus dem NJEMA RULE REPOSITORY ausgewählt werden. Diese ENGINE transformiert alle Assembler Programme in einem einzigen Durchlauf. In jedem Lauf werden neue Möglichkeiten zur Erhöhung des Automationsgrads aufgezeigt, die unmittelbar im Anschluss zum RULE REPOSITORY hinzugefügt werden. Situationen, die selten oder nur ein einziges Mal auftreten, werden durch spezielle SINGULÄRE REGELN behandelt. Nach dem ersten zu 100 % erfolgreichen Integrationstest hat die TRANSFORMATION ENGINE gelernt, wie sie die gesamte Assembleranwendung in funktional identisches COBOL umwandeln kann: vollkommen automatisch.
Graphische Ausgabe des Njema Assembler Assessments

Umgang mit systemnahem Code
Wir treffen immer wieder auf Codesequenzen, die direkt auf Systembereiche oder interne Kontrollblöcke zugreifen. Die Emulation dieses Codes ist keine Lösung, denn sie würde nur die Abhängigkeit von den jetzigen Systemen oder gar der aktuellen Hardware weiterhin festschreiben! Statt dessen entwickeln wir in Zusammenarbeit mit dem Kunden Veränderungen an den jeweiligen Applikationen, die dem ursprünglichen Zweck Rechnung tragen, aber nur Techniken verwenden, die in eine moderne und offene Welt passen. Im vorbereitenden Assessment erkennen wir die kritischen Sequenzen und bauen die projektspezifischen Regeln zur Anpassung frühzeitig in das RULE REPOSITORY ein, um auch hier die vollautomatische Transformation zu gewährleisten.
COBOL als Zielsprache
Bei der Erstellung der Transformationsregeln wie auch in vielen Kundenprojekten hat sich COBOL als ideale Zielsprache erwiesen: Ursprünglich zur Effizienzsteigerung von Assemblerprogrammierern entwickelt, weist COBOL eine ähnliche innere Architektur auf und ist damit der quasi „natürliche“ Nachfolger von Assembler. COBOL Entwickler sind in fast allen Mainframe Umgebungen verfügbar. Sie können die umgestellten Programme ohne Weiteres übernehmen. Der Übergang, zz.B. nach Java, kann später mit bewährten Produkten wie P3/COBOL erfolgen.
Geht das ohne Dokumentation?
Ja, denn es gibt sie, die zu 100 Prozent verlässliche Programmdokumentation: Es ist der binäre, sog. Objektcode, den Njema als wichtigste Informationsquelle nutzt. Nur der Objektcode bestimmt die Logik und den Ablauf eines Programms. Wenn man wie Njema in der Lage ist, den Binärcode für die Transformation zu nutzen, wird das erzeugte COBOL Programm immer das funktionsidentische Abbild des Assemblerprogramms sein.
Vertragsgestaltung
Die Transformation wird nach Durchführung eines Njema Assessments als Dienstleistung angeboten.
Aufbau der TRANSFORMATION ENGINE

Unterstützte Technologien
Der Njema Assembler Transformator unterstützt eine Vielzahl von Technologien, die auf der Mainframe Hardware Architektur basieren:
- Die Betriebssysteme z/OS, BS2000, z/VSE und z/TPF
- Viele Hundert Makros der jeweiligen Betriebssysteme und Subsysteme
- 64-Bit Instruktionen und 64-Bit-Register
- BS2000-spezifische Instruktionen
- Viele OLTP Monitore wie CICS (inkl. Makro Level), UTM, KDCS und IMS/DC
- Assembler Programmierung für DL/I, IMS/DB, UDS und SESAM
- Strukturmakros wie BS2000 @Makros, Concept-15, TPFDF SPM
- Spezialitäten wie Leasy, LMS, PDS, VSAM, ISAM, DA-Dateien u.v.a.m.
Weitere Njema-Transformatoren können direkt in den Prozess integriert werden, wie die Umformung von Job Control, 3GL- und 4GL-Sprachen, sowie die Konvertierung von Datenhaltungssystemen und Daten.
Ein Njema Assessment über den gesamten Quellcode stellt dessen Konsistenz und Vollständigkeit sicher. Hier werden auch „tote“ Entitäten ermittelt, deren Konvertierung man sich deshalb sparen kann.