KONFERENZ Mittwoch, 10. November 2004 13h00, Variohalle 2 Evolution statt Revolution: Von ADABAS C auf Oracle migrieren Mathias Jacobi PKS Software GmbH, Ravensburg Schlüsselworte: Adabas, Oracle, Migration, Re-Engineering, Datenbanken, Gateway, Testkonzept Zusammenfassung Der Konsolidierungs- und Modernisierungsdruck in der IT wächst. Betroffen sind auch bewährte und unternehmenskritische Anwendungen die auf ADABAS C basieren. Mit einem "Transparency-Gateway" lässt sich der "noninvasive Migrationsansatz" verwirklichen: Ohne Änderungen am Source-Code können ADABAS C basierende Anwendungen auf Oracle betrieben werden. Auf Datenebene können Anwendungen im Unternehmen damit interagieren, Wartungs- und Produktionskosten werden gesenkt, der Lebenszyklus von LegacyAnwendungen wird nachhaltig verlängert wie auch die parallele Neuentwicklung von einzelnen Funktionsbausteinen auf der Basis bestehender Daten risikoärmer wird. Bereits mehrere Unternehmen sind diesen Weg gegangen. Anhand einzelner Projektschritte wird gezeigt, wie Anwendungen von ADABAS C auf Oracle migriert werden können, welche Analyse-Schritte vorab notwendig sind, welche Überlegungen im Hinblick auf die Normalisierung anzustellen sind, wie eine gleichbleibende Performance sicher gestellt wird und wie vor allem die Testaufwände gering gehalten werden können. Einleitung Über Jahre hinweg haben Unternehmen und Organisationen ihre unternehmenskritischen Anwendungen erfolgreich mit ADABAS C, mit Natural und Cobol, mit PL/I und Assembler implementiert und mit hoher Performance betrieben. Sie abzulösen oder zu modernisieren ist ein komplexes Unterfangen und will gut überlegt sein. Doch der Konsolidierungs- und Modernisierungsdruck in der IT-Branche steigt. Damit die über Jahre gewachsenen, fortwährend getesteten und stabilen, auf ADABAS C basierenden Anwendungen den neuen internen wie externen Anforderungen besser begegnen können, ist vor allem der Weg der Migration ein äußerst attraktiver Weg. Er verspricht, zwei Fliegen mit einer Klappe zu schlagen: Bewährtes und Bestehendes zu schützen und dennoch auf veränderte Rahmenbedingungen anzupassen. 17. Deutsche ORACLE-Anwenderkonferenz Migrations-Treiber In den meisten Fällen lassen sich drei – zum Teil sich überlappende – Erwartungshaltungen ausmachen die letztlich zu der Entscheidung für eine Migration führen: • Reduktion von Komplexität, • Senkung von Betriebskosten und • Anwendungsmodernisierung und Zukunftssicherung. Technische Komplexität reduzieren Betriebskosten senken Auch hohe Wartungs- und Betriebskosten spielen häufig eine Rolle. Zwei unterschiedliche Datenbanken im Unternehmen belasten doppelt – auch finanziell. Es fallen zweifach Wartungsgebühren an – im Mainframe-Umfeld sind dabei besonders Upgrades auf eine höhere Hardwareklasse finanziell besonders schmerzlich – und es muss zweifach ganz unterschiedlich qualifiziertes Systempersonal vorgehalten werden. Anwendungen modernisieren und Zukunft sichern Zu einer Migration kommt es typischerweise auch dann, wenn etwa die technische Plattform (Hardware, Systemsoftware, Entwicklungswerkzeuge) nicht mehr unterstützt wird oder auf lange Sicht als unsicher betrachtet werden muss. Bei Wechseln auf kostengünstigere Plattformen – etwa vom Mainframe zu Open-Systems Plattformen – werden ggf. auch nicht mehr alle bislang eingesetzten Systemkomponenten unterstützt (z.B. ADABAS SQL, Predict CASE). Doch auch der schrittweise Umstieg von einer Legacy-Anwendung auf eine neu zu entwickelnde Applikation lässt sich durch eine vorherige Migration auf die Zielumgebung wirkungsvoll absichern. Die bestehende Anwendung kann auf der Basis einer neuen Technologie weiter betrieben und die neue Anwendung parallel dazu entwickelt werden. Teilen sich beide Anwendungen die Daten, lassen sich einzelne Geschäftsprozesse ohne Risiko und zeitlichen Druck auf evolutionärem Wege von der Anwendung A auf die Anwendung B überführen. Das Schreckgespenst der "Big-Bang-Ablösung" wird den so geschaffenen Burggraben nicht überschreiten können. IT Experience Die Integration von Anwendungen leistet für den Erfolg von Unternehmen einen entscheidenden Beitrag – unabhängig davon, ob Anwendungen innerhalb des Unternehmens verbunden, Daten über das Internet für die Kunden bereitgestellt oder Informationen mit Geschäftspartnern ausgetauscht werden sollen. Gerade in Unternehmen mit heterogenen Anwendungslandschaften werden enorme Anstrengungen für die mühevolle, zeitträchtige und fehleranfällige Integration von im Unternehmen verstreuten Datenbeständen aufgewendet. Mit einer einheitlichen Datenbank im Unternehmen lässt sich die Integration auf Datenebene einfach und schnell umsetzen. KONFERENZ In der Kombination dieser Motivationen wird der Änderungsdruck in vielen Fällen so groß, dass die Überlegungen für die Ablösung, den Austausch oder der Migration einer Anwendung nunmehr konkreter und dichter werden. Für eine erste Entscheidung sind der Softwaretyp (Individual- oder Standard-Software) sowie die Qualität und Komplexität der Software (Niedrig oder Hoch) zu berücksichtigen. Abb. 1: Entscheidungsmatrix Migration Für Individualanwendungen von hoher Komplexität und Güte sind auf alle Fälle Wert erhaltende Maßnahmen zu prüfen. In diesen Applikationen stecke immense Investitionen, nicht selten mehrere hundert Entwicklungsjahre. Die Nutzungsdauer solcher Anwendungen kann mit einer Migration auf eine standardisierte, zukunftsfähige und preisgünstige Plattform erheblich verlängert und damit betriebswirtschaftlicher Vorteil erzielt werden. Unter diesen Umständen ist die Migration der Königsweg. Ganz nebenbei bleibt auch die Akzeptanz und Effizienz beim Anwender unverändert hoch und wird nicht gefährdet. Technische Migrationswege Im Rahmen von technischen Migrationen – also Änderungen der Systemumgebung – sind grundsätzlich zwei Vorgehensweisen zu unterscheiden: • Migrationen mit Änderung des Source-Codes und • Migrationen ohne Änderung am Source-Code. Im Falle einer Migration von ADABAS C Anwendungen auf Oracle würde bei einer Migration auf der Basis von Manipulationen im Source-Code jedes Zugriffsstatement durch generierte SQL-Statements ersetzt. Dieses Vorgehen zieht erhebliche Nachteile nach sich. Gerade große, stetig gewachsene Applikationen sind nach einer Migration dieser Art nicht mehr überschaubar und nicht mehr wartbar. Im Source-Code der Anwendung finden sich im Anschluß Hunderte bis Tausende von hoch komplexen SQL-Statements. Alle Update, Read, Find, Histogram, Store, Delete und Transaktions-Anweisungen werden 17. Deutsche ORACLE-Anwenderkonferenz Im Gegensatz dazu steht der Ansatz der sog. "Transparency-Gateways". Dieser Migrationsansatz wird von dem Grundgedanken getragen, dass der SourceCode als "heilige Kuh" anzusehen ist, er darf in keinem Fall verändert werden. Ausgehend von dem Quell- und dem Zielsystem wird ein "Abstraction-Layer" unterhalb der Anwendung bzw. der Anwendungen aufgebaut der jedwede Kommunikation mit der Quelldatenbank abfängt und auf das Zielsystem leitet. Etwaig notwendige Umsetzungsregeln – das Mapping – werden in einem internen Repository abgelegt und zur Laufzeit interpretiert. Die Vorteile eines solchen Vorgehens liegen auf der Hand: • Keine Änderung am Source-Code Für die Anwendung bleibt die neue Datenhaltung völlig transparent • Vollständig Sprachneutral Für Anwendungen, die in mehreren Sprachen codiert wurden, sind keine unterschiedlichen Parser, Generatoren oder Vorgehenskonzepte notwendig. Gerade im ADABAS Umfeld trifft man häufig auf Anwendungen deren Dialogteile vollständig in Natural implementiert sind, die Batch-Teile hingegen sich der Technik der ADABAS Direct-Calls z.B. aus COBOL oder PL/I bedienen • Geringe(re) Testaufwände Da der Source-Code unverändert bleibt und lediglich eine Zugrifsschicht auf Systemebene neu implementiert und konfiguriert wurde, ist ausschliesslich der Nachweis der Kongruenz der Ergebnisse von Abfragen und Transaktionen nachzuweisen, die Geschäftsprozess-Logik muss nicht getestet werden. IT Experience durch z.T. seitenlange SQL-Statements ersetzt. Im Falle eines Fehlers gleicht die Suche nach der Ursache der Suche nach der viel zitierten "Nadel im Heuhaufen". Ein darüber hinaus etwaig notwendiges Performance-Tuning der Applikation wird direkt im Source-Code und meist auch an beliebig vielen Stellen der Anwendungssourcen – zum Teil redundant – durchgeführt. Dies gilt umso mehr, als viele Anwendungen die heute übliche Kapselung der Datenzugriffe und ihrer Trennung von der Geschäftslogik nicht implementiert haben. Damit wird dann auch das gewichtigste Argument gegen die Entscheidung für eine Migration mit Änderung des Source-Codes aufgeworfen: Die solcherart generierten Testaufwände sind immens. Es werden durch die mannigfachen Eingriffe in das Coding umfangreiche Tests notwendig, die neben den Datenzugriffen die abgebildeten Geschäftsprozesse vollständig auf Logik, Funktionalität und Integrität überprüfen müssen. Im Bereich der unternehmenskritischen Anwendungen sind die so generierten Testaufwände nicht mehr tragbar, sie würden in Einzelfällen nahezu 50 % der Erst-Entwicklung des Legacy-Systems ausmachen. Von den Kosten und Risiken kaum noch beherrschbar wird die Migration von ADABAS C Anwendungen, die neben Natural-Code noch weitere Programmiersprachen wie COBOL, PL/I oder Assembler umfassen. KONFERENZ • Problemsuche wie auch Performance-Tuning ausschliesslich in der Middleware Statt in Hunderten oder gar Tausenden von Modulen nach eventuellen Auffälligkeiten zu suchen kann dies auf die Middleware beschränkt werden. Abb. 2: Umstellungskosten für unterschiedliche Migrationsansätze differenziert nach Anwendungsgröße Bei einer Umstellung der Datenbank ist ein Verfahren, welches den Quellcode unberührt lässt (non-invasive Strategie), also um Potenzen sicherer und günstiger als ein Verfahren, das die Applikation modifiziert. SmartDCI – das Transparency-Gateway für ADABAS und Oracle Eine ADABAS C basierende Anwendung kommuniziert mit der Datenbank ausnahmslos über das Direct-Call-Interface, den sog. ADALNK. Das gilt für alle Anwendungen mit Zugriff auf ADABAS C – unabhängig von der verwendeten Programmiersprache. Auch Natural verwendet dieses Linkmodul. Alle in Natural verwendeten Zugriffs- und Transaktions-Statements kommen auf der Datenbank-Schnittstelle als Direct-Calls an und werden von ADABAS abgearbeitet. Aus dem Coding des Natural werden automatisch die entsprechenden Buffer (Control-Block, Format-Buffer, Record-Buffer, Search-Buffer, Value-Buffer und ISN-Buffer) für die Kommunikation mit der Datenbank aufgebaut und an den ADALNK weiter geleitet. Auf dieser Ebene kommt das ursprünglich codierte READ-Statement beispielsweise als Command-Code "L3" (Byte 3 und 4 des 80 Byte großen ADABAS Control-Blocks) daher, der DELETE erscheint als "E1", das Update-Statement wird durch den "A1" identifiziert. In anderen Programmiersprachen muß die Datenbank-Schnittstelle des ADABAS direkt (d.h.: manuell) bedient werden. Dann sind die Buffer und der Control-Block vom Entwickler aufzubauen und in einem Call an ADABAS zu richten. Die Datenbank arbeitet basierend auf dem Control-Block und der zugehörigen Buffer den Request ab, füllt die Ergebnisse im Control-Block (z.B. Return-Code, ISN Quantity etc.) und den Buffern und sendet sie an die Applikation zurück. 17. Deutsche ORACLE-Anwenderkonferenz Da jede Anwendung ausschliesslich auf diesem Wege mit ADABAS C kommuniziert, kann ein Transparency-Gateway risikolos eingesetzt werden, es wird lediglich die Schnittstelle zum ADABAS durch ein anderes Datenbank-Kommunikations-Modul ersetzt. Die neue Schnittstelle zu Datenbank, SmartDCI®, übernimmt dann alle Datenbankzugriffe und übersetzt sie zur Laufzeit in korrespondierende SQL-Befehle. Die ADABAS-Spezifika (Multiple Felder, Periodengruppen, Nullwertunterdrückung, Super- und Subdeskriptoren etc.) werden dabei berücksichtigt und auf die relationale Welt übertragen. Das DatenbakGateway besitzt also "nach oben" die gleiche Schnittstelle wie die Anwendungen sie erwarten, "nach unten" aber arbeitet es mit der Oracle-Datenbank zusammen. Abb. 4: Anwendungs-Kommunikation mit Oracle via SmartDCI Für den Migrationsprozess selbst und eine eventuelle Parallebetrieb-Phase in Produktion können beide Datenbanken auch im Dual-Modus betrieben werden: Anhand der Kombination aus Datenbank-ID und File-Nummer werden die Requests der Anwendung entweder auf die eine oder die andere Datenbank oder gegen beide Datenbanken gesendet. IT Experience Abb. 3: Anwendungs-Kommunikation mit Adabas am Beispiel COBOL und Natural KONFERENZ Abb. 5: Parallelbetrieb gegen ADABAS und Oracle Die interne Architektur Die an ADABAS gerichteten Requests der Applikationen werden zunächst auf ihre Anforderung überprüft und in die entsprechende Aktionskategorie eingeordnet (modifizierend, lesend oder transaktionssteuernd). Das passende und optimierte SQL-Statement wird generiert, geparsed, gebunden und an die Oracle-Datenbank übergeben. Gegebenenfalls werden auch entsprechende Optimizier-Hints (meist vom Typ Index) verwendet. Sollte das Statement während der aktiven Datenbank-Session bereits verwendet worden sein wird es ohne Parsing und Binding direkt an die Datenbank weiter geleitet: Das selbe Statement wird nie zweimal generiert. Durch die Nutzung des Oracle-CallInterfaces kann im Vergleich zu einer ODBC-Implementierung ein optimiertes und hoch-performantes Statement aufgebaut und ausgeführt werden. Die Übersetzung der Daten und ihrer Formate zur Laufzeit wird über das interne Repository gesteuert. Das Repository Das Repository wird zum Start geladen und ständig im Speicher gehalten. Hier sind die Definition der Umsetzungsregeln ("Mapping") abgelegt: Das Repository beschreibt die Abbildung des ADABAS-Datenbank-Modells auf das relationale Modell von Oracle und sorgt so für die entsprechenden Grundlagen. Jedem einzelnen Feld aus dem physischen ADABAS-Modell (FDT) wird eine Spalte in der korrespondierenden Tabelle zugeordnet. Dabei werden üblicherweise alphanumerische ADABAS-Felder auf VARCHAR2 gemapped, PACKED und UNPACKED-Felder auf NUMBER. Auch die ADABAS interne Satznummer – die ISN – wird in den resultierenden relationalen Tabellen mitgeführt. Deskriptoren der ADABAS-File werden als Index angelegt, Superdeskriptoren üblicherweise als Function Based Index. Der Repository-Generator erledigt den Großteil dieser Aufgaben automatisch. Zunächst werden die FDTs der betroffenen ADABAS-Files – um Angaben aus den korrespondierenden DDMs ergänzt – 17. Deutsche ORACLE-Anwenderkonferenz Abb.6: Mapping zwischen FDT und Oracle im Überblick Ein typisches Migrationsprojekt Analyse Jedes Migrations-Projekt hat seine eigenen Tücken und Besonderheiten, so wie jede Applikation ihre eigenen Spezifika aufweist. Daher steht am Anfang eines jeden Migrationsprojektes eine genaue Analyse. Vor der eigentlichen Umstellung sind Architektur und Muster der Anwendung detailliert zu betrachten, das zugrunde liegende Datenbank-Modell zu untersuchen und die implementierten Zugriffswege exakt zu analysieren. Für eine ADABAS/Natural-Applikation stehen dafür drei unterschiedliche Quellen zur Verfügung. FDT-Analyse Die Analyse der FDTs der ADABAS-Datenbank gibt bereits erste Hinweise auf die Komplexität der Migration. Besonders betrachtet werden die aus Performance-Gründen relevanten Multiplen Felder und Periodengruppen. Aber auch die Anzahl, Verwendung und der Aufbau von Deskriptoren und Superdeskriptoren läßt Rückschhlüsse auf die Applikation, die wichtigsten Files und ihre überwiegende Verwendung zu. IT Experience eingelesen, woraufhin dann das Standard-Mapping für alle Felder generiert wird. Multiple Felder und Periodengruppen werden dabei besonders behandelt, für sie werden als Default-Regel eigene Tabellen aufgebaut die mit der MasterTabelle über die ISNs verknüpft sind. KONFERENZ Abb. 7: Übersicht FDT-Analyseergebnis In der Analyse des ADABAS Datenbankschemas ist unschwer zu erkennen, dass die Files 4 und 17 mit ihrer überaus hohen Anzahl an Multiplen Feldern und Periodengruppen wie auch Multipler Felder in Periodengruppen besonders betrachtet werden müssen. Auf beiden Files liegt überdies ein phonetischer Deskriptor. Es handelt sich jedoch in beiden Fällen um Predict-Systemfiles die in dem Projekt nicht mit migriert werden mussten. Die hier betrachtete Applikation umfasste 214 Files, für die insgesamt 2.422 Deskriptoren angelegt worden waren. Die meisten Periodengruppen fanden sich in der File 245 (13 Stück). Für den weiteren Projektverlauf stand fest, dass die File 245 im Projektverlauf immer wieder auf Performance und Zugriffe überprüft werden musste. Aber auch die Verteilung der Datensätze auf einzelne Files lässt Rückschlüsse auf ihre (Schreib-)Bedeutung zu und ist ein wichtiger Anhaltspunkt für etwaig notwendige Performance-Maßnahmen. Source-Code-Analyse Mit der Source-Code-Analyse wird die vollständige Applikation – in diesem Fall Natural – auf ihre Datenbank-Statements untersucht. Alle relevanten CodingStellen werden identifiziert und nach unterschiedlichen Kriterien zusammen gestellt. 17. Deutsche ORACLE-Anwenderkonferenz Über die Ergebnisse der Natural-Analyse lassen sich performance-kritische Code-Strecken identifizieren; dabei interessiert besonders, auf welche Files diese ggf. weniger performanten Statements abgesetzt werden. Aber auch "Sünden" in der Entwicklung von ADABAS-Anwendungen werden dabei sehr schnell aufgedeckt, hier: die relativ häufige Verwendung von FIND … SORTED BY – Statements und die Verwendung des Ungleichheits-Operators bei Leseanfragen. CLOG-Analyse Der wichtigste Analyseteil mit dem höchsten Informationsgehalt ist die Analyse der Command-Logs. ADABAS bietet die Möglichkeit, alle an die Datenbank abgesetzten Anfragen und Rückgaben zu protokollieren, das sog. CLOG. Als Analysequelle ist das CLOG von unschätzbarem Wert: Jeder Zugriff jeder Applikationsquelle wird aufgezeichnet. Mit einem Werkzeug zur Aufbereitung der so gewonnen Daten lassen sich schnell die am häufigsten benutzten Files, die häufigsten Befehle auf Datenbank-Ebene und ihre Verteilung aufdecken. Das CLOG bietet damit gleichsam die Datenbank-Sicht auf die Anwendung. Wenn der zu protokollierende Zeitraum gut und repräsentativ gewählt ist lassen sich damit alle für den Start eines Migrationsprojektes erforderlichen Informationen generieren. Häufig ist es daher notwendig, mit unterschiedlichen CLOGs aus mehreren Phasen der Produktion (oder der der Testumgebung) zu arbeiten; nicht immer kann z.B. ein Monats- oder gar ein Jahresabschluss laufen. Doch natürlich sind gerade diese verarbeitungsintensiven Anwendungsteile für eine detaillierte und valide Analyse unverzichtbar. IT Experience Abb. 8: Übersicht Natural-Analyse – lesende Zugriffe KONFERENZ Abb. 9: Übersicht CLOG-Analyse – CommandView Neben der Betrachtung der Calls, ihrer Verteilung und die Schreib-/LeseHäufigkeit auf einzelne Files sind auch Betrachtungen von Lese-Sequenzen, Deskriptoren-Verwendung, ISN-Verarbeitung, Format-Buffern für modifizierende und lesende Zugriffe etc. von Bedeutung. All diese Informationen geben wertvolle Hinweise auf das anzustrebende Daten-Design und auf die anwendungsspezifischen Anforderungen an das Gateway. Weit in die Produktion hinein reichende Design-Entscheidungen für ein konkretes Datenmodell können nur auf der Basis einer solchen umfangreichen Analyse getroffen werden. Design In der Design-Phase steht das Mapping der Daten im Vordergrund. Ausgehend vom ADABAS Datenmodell wird gemeinsam nach dem besten Datenmodell auf relationaler Basis gesucht. Dabei spielen neben der reinen Funktionalität auch Performance-Erwägungen eine erhebliche Rolle. In der Design-Phase werden grundlegende Entscheidungen nicht nur über die Datentypen und ihr Mapping getroffen sondern auch Normalisierungsstrategien für die ADABAS Periodengruppen und Multiplen Felder gewählt. In Periodengruppen und Multiplen Feldern werden in ADABAS-Files Wiederholstrukturen aufgebaut, für die Inhalte in jedem einzelnen Datensatz gespeichert werden. Periodengruppen und Multiple Felder führen zu einer zweiten Dimension innerhalb eines Satzes, mit Multiplen Feldern in Periodengruppen wird gar die dritte Dimension eröffnet. Für die Abbildung dieser ADABAS-Spezialfelder auf einer relationalen Datenbank sind spezielle Maßnahmen erforderlich – auch und insbesondere im Hinblick auf die angestrebte Performance. Dazu stehen für Oracle drei unterschiedliche Modelle zur Verfügung: • Schematyp "Normalisiert" • Schematyp "Verdichtet" und • Schematyp "Objekt". 17. Deutsche ORACLE-Anwenderkonferenz Die grundsätzlich favorisierte Normalisierungsstrategie mündet in die VollNormalisierung mit dem Schematyp "Normalisiert". MU/PE-Felder werden als Detail-Tabelle in einer Master-Detail Beziehung abgebildet. Für jede Ausprägung einer Periodengruppe wird ein eigener Record in einer Detail-Tabelle angelegt der mit der Master-Tabelle über die ISN verknüpft wird. Bei drei Ausprägungen innerhalb einer Periodengruppe oder eines Multiplen Feldes ergeben sich also drei Datensätze in der abhängigen Tabelle. Anders verhält es sich mit dem Schematyp "Verdichtet". Die Inhalte von Periodengruppen und Multiplen Feldern werden in der Stammtabelle in einer Containerspalte abgelegt. Auf den ersten Blick mag dies widersinnig erscheinen und ist es dennoch nicht. Gerade in Multiplen Feldern werden häufig Programmm- oder Datenflags gesetzt, die unkritisch auch verdichtet in einer Containerspalte gespeichert werden können. Als dritter Objekttyp steht für Oracle auch die 1:1 Abbildung von Periodengruppen und Multiplen Feldern zur Verfügung. Doch wenngleich diese Möglichkeit technisch besteht wurde sie bislang noch in keinem Projekt umgesetzt. Gerade die Normalisierung der Datenstrukturen wurde in allen Projekten bislang als echter Mehrwert betrachtet. Implementierung Nachdem das Repository vollständig aufgebaut wurde und die Mapping-Rules angepasst worden sind, werden – aus den Abbildungsregeln abgeleitet – die Oracle-Datenbankobjekte (Tabellen, Indizes etc.) generiert. Die Testdaten werden von der ADABAS Datenbank entladen, dekomprimiert und mit dem Data Loader anhand der im Repository definierten Abbildungsregeln in die neue Datenbank übernommen. Die applikationsspezifische Implementierung kann beginnen. Sie umfasst ggf. notwendige Erweiterungen der Funktionalität und zielt darüber hinaus auf Performance steigernde Maßnahmen ab. Dazu wird insbesondere die Statement-Generierungs-Engine auf die spezifischen Anforderungen der zu migrierenden Applikation angepasst. IT Experience Abb. 10: Normalisierungsmöglichkeiten einer Periodengruppe für Oracle KONFERENZ Test Für die vorigen Projektphasen wie in besonderem Maße auch für die Testphase gilt: Je höher jeder Prozess-Schritt automatisiert ist desto besser. Nur ein hoher Automatisierungsgrad gewährleistet kurze Projektlaufzeiten, überschaubare Tests sowie gleich bleibende und vergleichbare Qualität. Ein hoher manueller Anteil der einzelnen Schritte hingegen treibt Aufwände und Kosten in die Höhe und potenziert zudem etwaige Risiken. Ein großer Vorteil des non-invasiven Migrationsansatzes ist das Versprechen, die Testaufwände in einem Migrationsprojekt signifikant zu reduzieren. Dieses Versprechen begründet sich auf der Tatsache, dass in die Sourcen der Anwendung nicht eingegriffen wird. Im Zusammenhang mit der Analyse einer Anwendung und "ihrer" Datenbank wurden die ADABAS Command-Logs bereits als wichtige Quelle benannt. Sie sind darüber hinaus auch für die Tests in besonderem Maße hilfreich und äußerst nützlich. Da jeder Call und sein individuelles Ergebnis protokolliert wird, kann das Command-Log auch als Eingabequelle für einen automatisierten Test der neuen Schnittstelle verwendet werden. Dazu werden zunächst die involvierten Datenbestände gesichert und das Command-Log aktiviert. Die relevanten Testfälle aus dem Dialog wie auch umfangreiche Batchläufe werden durchgespielt bzw. angestoßen und das resultierende Protokoll wie auch die End-Datenbestände werden wieder gesichert. Später kann die Aufzeichnung aller Calls und aller Buffer über eine Art "Macro-Reader" gegen das neue Datenbank-Gateway laufen und muss das selbe Verhalten und die selben Ergebnisse (Rückgabedaten und Returncodes) zeigen wie der Originallauf in ADABAS. Mit diesem Testverfahren werden Regressionstests ebenso wie Performance-Tests unkompliziert, schnell und automatisiert durchgeführt, die Beteiligung der Fachbenutzer auf ein absolutes Minimum reduziert. Abb. 11: Testkonzept 17. Deutsche ORACLE-Anwenderkonferenz Produktion Sind alle Tests erfolgreich durchgeführt und die Performance der migrierten Applikation auf dem gleichen Niveau wie zuvor kann die Applikation dem Abnahmetest zugeführt werden und in Produktion gehen. Für die Produktion werden die Produktivdaten aus ADABAS entladen, dekomprimiert und mit dem Data Loader anhand der Abbildungsregeln aus dem Repository in die Oracle-Datenbank geladen. Der ADALNK wird durch SmartDCI® ausgetauscht. Aus Sicherheitsgründen empfiehlt es sich, die Produktivumstellung vorher in der Originalumgebung einmal zu "üben" und zu dokumentieren. Gegebenenfalls wird die Anwendung nach der Produktivschaltung für eine definierte Zeitspanne im Parallelmodus gegen beide Datenbanken betrieben. Zum Ende der Parallel-Phase verleiht dann ein automatischer Vergleich der Datenbestände die letzte Sicherheit, die richtige Entscheidung für den evolutionären Weg, die Migration auf der Basis eines Transparency-Gateways, gewählt zu haben. Mathias Jacobi Georgstraße 15 D-88214 Ravensburg Telefon: Fax: E-Mail: Internet: +49(0)751-56140 - 236 +49(0)751-56140 - 500 [email protected] www.pks.de IT Experience Kontaktadresse: