Die 10 Regeln der Modernisierung - JAXenter

Die 10 Regeln der Modernisierung

Whitebox-Modernisierung erfordert eine Analyse des Systems, um die Funktionsweise zu verstehen. Die verschiedenen Komponenten eines Systems und deren Abhängigkeiten werden identifiziert, eine abstrakte Repräsentation wird erstellt. Diese Programmanalyse umfasst eine Modellierung der entsprechenden Domaine, also die Extraktion von Informationen aus dem Sourcecode, um die entsprechenden Abstraktionen zu erzeugen, die helfen, ein System im Detail zu verstehen. Ist der Sourcecode eines Legacy-Systems einmal analysiert, kann eine Restrukturierung durchgeführt werden, um die Anwendung an die Bedürfnisse der Modernisierung anzupassen. So werden z. B. Module isoliert, zusätzliche Schnittstellen eingeführt oder überflüssiger Code entfernt. Whitebox-Modernisierung eignet sich vor allem für bestehende Systeme, die mit modereren Technologien realisiert wurden (Tabelle 2).

Tabelle 2: Vor- und Nachteile der Whitebox-Modernisierung

Modernisierung Einsatzgebiet Vorteile Nachteile
Plan-based Vollständige Überarbeitung einer bestehenden Anwendung; für weit verbreitete Programmiersprachen geeignet (COBOL, Ada, PL/1, C, C++, Java, C#) Universell,
flexibel,
Beseitigung von Mängeln
Aufwand,
Kosten
Refactoring bestehende Anwendungen, die mit Java oder C# realisiert wurden; sollten in Kombination mit Plan-based eingesetzt werden Qualitätsverbesserung,
Toolunterstützung
Kosten,
punktuell auf einzelne Codebereiche beschränkt
Parsing-based bestehende Anwendung, die mit gängigen Programmiersprachen realisiert wurde, sollte in Kombination mit Plan-based eingesetzt werden Toolunterstützung,
Nachvollziehbarkeit,
alle Codebereiche abgedeckt
Aufwand,
Kosten
Transformation Anpassung an neue Versionen einer Programmiersprache, Schnittstelle etc. Automatisiert,
einfache Restrukturierung ganzer Codebereiche
Beschränkter Einsatz
Translation Ablösung nicht mehr unterstützter Programmiersprachen Automatisiert Ergebnis schwer nachvollziehbar

Während für ältere Systeme vorwiegend Blackbox-Modernisierungen geeignet sind, lohnt sich für Systeme, die in den letzten 5 Jahren gebaut worden sind, die Prüfung von Whitebox-Modernisierungstechniken. Die Entscheidung, welche Technik oder welche Kombination von Techniken eingesetzt werden soll, hängt von der Struktur des bestehenden Systems sowie von der Umgebung und auch vom Zeithorizont der Modernisierung ab.

Oft Unterschätzt: Batch-Call und DB Gateway

Ein sehr einfaches Verfahren, um ein bestehendes System weiter zu verwenden, ist die Kapselung der Funktionalität dieses Systems über Batch Calls. Im Prinzip wird das Command Line Interface (CLI) einer bestehenden Anwendung benutzt, um die Funktionalität der Anwendung als Service darzustellen. Die Serviceimplementation ist lediglich ein direkter Aufruf des Command Line Interface oder des Batch Calls. Daten werden über die Standard-Input- und Outputmöglichkeiten des Command Line Interface oder des Batch-Prozesses ausgetauscht. Der Vorteil der Batch-Call-Technik für eine Modernisierung ist seine Einfachheit und sein breites Anwendungsgebiet. Viele Anwendungen verfügen entweder über ein CLI oder werden über Batch-Prozesse gesteuert oder stellen bestimmte Funktionen als Batch-Prozesse zur Verfügung. Oder aber sie reagieren auf das Vorhandensein bestimmter Dateien in einem bestimmten Verzeichnis. Der Charakter dieser Schnittstellen – das EVA-Prinzip – entspricht dem grundlegenden Charakter eines standardisierten Service. Zudem nutzt CLI standardisierte Kommunikationskanäle (z. B. stdin/stdout/stderr unter UNIX). Die Umsetzung ist also sehr einfach: Es muss lediglich der Service Request in einen Command-Line-Aufruf umgesetzt oder eine Datei in einem bestimmten Format an der richtigen Stelle im File-System abgelegt werden. Der Nachteil dieser Modernisierung ist seine mangelnde Flexibilität. Die funktionale Schneidung des bestehenden Systems ist gegeben. Es kann lediglich eine Obermenge aus der bestehenden funktionalen Struktur gebildet werden. Das bedeutet, dass ein Service immer eine 1:1-Abbildung der bestehenden Anwendung respektive des von außen zugänglichen Moduls oder des Batch-Prozesses darstellt.

Der Einsatz von Database Gateways als Service wird heute praktisch von allen Herstellern von RDBMS (Relational Database Management Systems) unterstützt. Der Einsatz solcher Gateways ist nicht nur für den reinen Zugriff auf Daten nützlich, sondern vor allem auch für den Zugriff auf die Funktionalität der Stored Procedures. Der Vorteil der Modernisierung mit Database Gateways besteht in der Vielzahl datennaher Funktionen, die sehr einfach als Service zur Verfügung gestellt werden können. Jeder Hersteller von Datenbanksystemen hat die entsprechenden Tools in seinem Portfolio. Ein weiterer wichtiger Vorteil ist die Performance. Der Zugriff auf Daten erfolgt sehr schnell, wenn die Zugriffslogik in der Datenbank abläuft. Die Kombination von Web Services mit der Möglichkeit, über XML-APIs Meldungen direkt in der Datenbank zu verwalten, macht jede bestehende Datenbank zu einem zentralen Baustein.

Das Vorgehen: Gute Analyse hilft

Auch wenn praktisch jede Modernisierung aufgrund der Natur des bestehenden Systems etwas unterschiedlich durchgeführt werden muss, so gelten doch drei Prinzipien:

  • Separating the Bad from the Ugly: Prozesse und Geschäftsregeln werden getrennt von der kodierten Logik modelliert.
  • Plastic Surgery: Die Kapselung von funktionalen Blöcken durch standardisierte Schnittstellen.
  • Beauty Farm: User Interfaces werden als Portal, OBA, RIA oder als Rich Client realisiert.

Jede Modernisierung steht und fällt mit einer guten Planung. Der weitaus größere Schritt in dieser Planung ist die Analyse des bestehenden Systems. Diese Analyse muss in jedem Fall von erfahrenen Experten durchgeführt werden. Dabei ist eine Tätigkeit nicht zu vernachlässigen; die Interviews mit den Know-how-Trägern. Das Studium der Dokumente – falls vorhanden – sowie die Analyse durch Tools ist nur ein Teil der Analyse. Sehr viel wichtiger sind diejenigen Informationen, die in den Köpfen derjenigen Personen stecken, die seit Jahren mit den System arbeiten, es betreuen oder es gebaut und erweitert haben. Mit strukturierten Interviews sind da oft mehr wichtige Informationen zu holen als mit Analysetools und mit Dokumentenstudium.

Abb. 4: Das Vorgehen für eine Modernisierung
Vorgehen für die Modernisierung

Eine Modernisierung eines bestehenden Systems wird in den sechs Schritten Zielformulierung, Analyse des bestehenden Systems, Auswahl der Modernisierungstechniken, Toolauswahl, Durchführung und Zielsystem durchgeführt (Abb. 4):

  • Evaluating Business Aim (Zielformulierung): Die Ziele der Modernisierung eines bestehenden Systems werden erfasst und in einem Anforderungskatalog (Target System Requirement Catalog) dokumentiert. Alle Kriterien müssen definiert, gewichtet und abgenommen werden.
  • Existing System Analysis (Analyse des bestehenden Systems): Das bestehende System wird bezüglich seines Mengengerüsts, seiner Grundfunktionalität und seinen Schnittstellen grob analysiert. Dabei werden z. B. die Anzahl Copybooks, Subprograms, Main Programms eines PL/1 oder eines COBOL-Systems gezählt oder die Klassen- und Package-Struktur eines Java-Systems analysiert und allfällig vorhandene Dokumentation wird erfasst.
  • Selection of Modernization Strategy (Auswahl der Modernisierungstechniken): Die geeigneten Modernisierungstechniken werden aufgrund des Anforderungskatalogs und der Grobanalyse ausgewählt. Die Wahl muss geprüft werden.
  • Tool Selection (Toolauswahl): Eine Modernisierung kommt ohne Process Engine und ohne Rule Engine nicht aus und wird oft durch den Einsatz anderer typischer Komponenten einer modernen Architektur wie einem Servicemanager oder einem ESB vereinfacht. Diese Tools sind auszuwählen und zu beschaffen.
  • Modernization Subprocess (Durchführung): Die eigentliche Modernisierung des Systems findet in diesem Prozessschritt statt.
  • State of the Art System (Zielsystem): Der Modernisierungsprozess ist abgeschlossen und das bestehende System wird als Sammlung verschiedener Services weiterbetrieben.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.