SOA modernisiert Natural-Anwendungen

16.01.2008
Von Thomas F. Wolf
Mit Hilfe von Generatoren lassen sich Natural- und Adabas-Programme in eine Service-orientierte Architektur überführen.

Geht es um die Modernisierung von Natural/Adabas-Anwendungen und den Aufbau einer SOA, stehen viele Unternehmen vor einer schweren Entscheidung: Bewährtes aufs Abstellgleis schieben und auf der grünen Wiese neu entwickeln oder die Altanwendungen sanft in die Moderne holen. Erstgenanntes ist in der Regel mit hohen Kosten verbunden. Letzteres schützt zwar die getätigten Investitionen, war bisher aber bei Natural/Adabas-Anwendungen aufwändig. Weil Anwender moderne Oberflächen mit einfacher und logischer Bedienung sowie Flexibilität in Bezug auf neue Services wünschen, böte sich eine Oberflächen-orientierte Modernisierung an.

Dieser Ansatz stößt bei immer mehr Nutzern auf breite Skepsis. Er führt nämlich entweder gar nicht oder nur unzureichend zu neuen Services. Ein Einstieg in die viel gepriesene Service-orientierte Architektur ? sie ist der Schlüssel zur Flexibilität und Zukunftsfähigkeit der Anwendung ? droht mit diesem Vorgehen zu scheitern. Die Alternative zur Oberflächen-orientierten Modernisierung von Natural-Anwendungen ist die Service-orientierte Modernisierung ? also von unten nach oben. Dies setzt voraus, dass die vorhandenen Programme in Services zerlegt werden, die wiederum von anderen Systemen aufgerufen werden können.

Inventarisieren

Ein Service-Generator ermöglicht die teilautomatische Transformation von Altanwendungen in Services.
Ein Service-Generator ermöglicht die teilautomatische Transformation von Altanwendungen in Services.

Entscheidend bei der Modernisierung von Natural-Anwendungen sind vor allem zwei Punkte: die vollständige Inventarisierung der Anwendung und die vollständige Definition des Zielsystems (Oberflächentypen, Servicetypen, Middleware). Grundlage für einen erfolgreichen Projektverlauf ist die gründliche Bestandsaufnahme der tatsächlich eingesetzten Programme und eine Isolierung der fachlichen Funktionen (Services) in den Programmen. Das Isolieren in grobe fachliche Funktionen reicht dafür aus. Viele IT-Verantwortliche legen hier die Latte unnötig hoch. Das Bestimmen und Isolieren der fachlichen Funktionen kann nur in enger Abstimmung mit dem Fachbereich und der IT-Abteilung erfolgen.

Die Optimierung von Geschäftsprozessen geschieht nicht innerhalb individueller Anwendungen. Daher müssen Unternehmen bei der Inventarisierung alle intern und extern verwendeten Applikationen berücksichtigen. Durch eine vollständige Transformation der Anwendung in Services sind die Voraussetzungen erfüllt, um mit den neu gewonnen Komponenten Geschäftsprozesse zu optimieren (siehe auch: Modernisieren statt Wegwerfen).

Das Mengenproblem

Die Modernisierung von Natural-Anwendungen beinhaltet immer auch ein Mengenproblem. Die Zahl der verwendeten Programme und Masken liegt häufig bei weit mehr als 10 000. Benötigt man für die Modernisierung eines Programms fünf Projekttage, erreicht man in Summe Aufwendungen, für die in der Regel weder Budget noch Ressourcen vorhanden sind. Ein Servicegenerator ermöglicht in diesen Fällen die vollständige und teilautomatisierte Transformation der Programme in Services. Im Gegensatz zu herkömmlichen Modernisierungsansätzen werden dabei die Transformationen nicht Schritt für Schritt von einem Programmierer ausgeführt: Diese Aufgaben übernimmt der Servicegenerator vollautomatisiert für alle Programme. Dazu gehören mehrere Arbeitsschritte, darunter das vollständige Parsen aller Sourcen und deren Transformation vom Typ "Programm" in den Typ "Subprogramm" (siehe auch: Legacy-Modernisierung auf Knopfdruck?).

Sourcen vom Typ Subprogramm können von anderen Systemen aufgerufen werden und somit zu Services werden. Sie werden ferner unterschieden in Sourcen vom Typ Browse und in Sourcen vom Typ Maintenance. Abhängig vom Typ werden unterschiedliche Transformationsregeln ausgeführt, beispielsweise die Transformation des Datenbereichs GLOBAL in einen Datenbereich PARAMETER, Eliminieren und Transformieren von Bildschirmausgaben, Eliminieren und Transformieren von Bildschirmsteueranweisungen, Generieren einer Logik für das Weiterlesen von Datensätzen bei Browse-Programmen oder Generieren einer Stateless-Logik bei Maintenance-Programmen. Dazu gehört auch das Ermitteln sämtlicher GETTER- (Servicefelder füllen) und SETTER-Anweisungen (GUI-Felder füllen) und das Generieren eines einheitlichen Message Handlings. Diese Transformationsregeln müssen an das jeweilige Natural-Modernisierungsprojekt angepasst werden. Der Aufwand dafür liegt in der Regel bei fünf bis 20 Projekttagen.