Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

27.09.1996

Einwickeln statt verschrotten oder migrieren

Der Vortrag von Harry Sneed* über die Kapselung von Host-Software gehörte zu den Highlights der Devcon. Ein "Verschrotten" und Neuentwickeln von Altanwendungen käme eben in den meisten Fällen nicht in Frage. Sie ermögliche vorhandene Software weiter- und wiederzuverwenden.

Die Ummantelung vollzieht sich mit Hilfe eines Wrappers, einer Art Middleware zwischen einem Client- und einem Server-Objekt. Dabei ist die Altsoftware das Server-Objekt. Die Funktionen der Komponente stellen die Objektoperationen dar. Das Client-Objekt invokiert die Funktionen des Server-Objekts über ein genormtes Programm zur Schnittstelle. In einer Corba-konformen Umgebung wäre diese Schnittstelle in der Interface Definition Language (IDL) spezifiziert. Das Client-Programm muß nur wissen, wie die Schnittstellen aufzubauen, die Parameter versorgt sind und die Ereignisse interpretiert werden müssen. Dabei läßt sich Host-Software auf sechs verschiedenen Ebenen kapseln: auf der Job-, Transaktions-, Programm-, Modul-, Prozedur- und Dateiebene.

Auf der Jobebene wird ein Batch-Job auf dem Mainframe gestartet, nachdem die Eingabe- und Bewegungsdateien bereitgestellt wurden. Im Ergebnis übergibt der Host eine oder mehrere Ausgabedateien, etwa Listenfiles.

CICS- oder IMS-Transaktionen verlangen als Eingabe Masken und liefern auch Masken zurück. Beim Wrapping müssen sie durch Datenströme ersetzt werden. Für Batch- oder Online-Programme sind die entsprechenden Eingabedaten bereitzustellen. Die Ausgabedaten werden abgefangen über ein "Datenrohr" und an das entsprechende Client-Programm weitergeleitet. Auf der Modulebene muß das aufgerufene Unterprogramm mit den nötigen Eingangsparametern versorgt werden. Es kommen Ausgangsparameter oder Fehlercode zurück.

Laut Sneed ist das Kapseln von Prozeduren die eleganteste Methode. Allerdings führt sie zu einem vergleichsweise tiefen Eingriff in den Legacy-Code. Sind Zielprozeduren etwa mit "Go-to"-Verzweigungen verbunden, muß der Code erst so strukturiert werden, daß jede Prozedur nur einen Ein- und einen Ausgang besitzt. Danach ist es möglich, mit "Entry" und "Return" zu klammern. Zusätzlich müssen Linkage-Bereiche für jede Zielprozedur geschaffen werden.