Die Amadeus Germany GmbH ist ein Anbieter von IT-Lösungen für die Reisebranche. Das Unternehmen bietet Leistungen für den Vertrieb touristischer Leistungen für zum Beispiel Reisebüros, Reiseveranstalter, Fluggesellschaften und Flughäfen, Call-Center oder das Internet an.
Es hat wirklich geklappt. Am 30.04.2008, 23.55 Uhr wurde bei Amadeus Germany die letzte BS2000-Anlage abgeschaltet.
Vorausgegangen war ein in seiner Komplexität wohl einmaliges Migrationsprojekt. Während der 3‑jährigen Projektlaufzeit wurden Tausende von SPL-Programmen und SDF-Prozeduren mit mehreren Millionen Lines Of Code (LOC) automatisch nach C++ bzw. Perl unter UNIX konvertiert. Das hochperformante Filehandling-System auf BS2000 migrierte Amadeus werkzeugunterstützt in relationale Oracle-Datenbanken, der DCAM- Monitor wurde durch openUTM auf UNIX-Seite ersetzt. Die Zielsysteme laufen in einem nahezu 7*24-Stunden-Betrieb und bearbeiten in Spitzenzeiten ca. 500 Benutzertransaktionen pro Sekunde (TA/s), dies entspricht rund 1.000 technischen TA/s.
Die Größe des Projektes wird an folgenden Zahlen deutlich: Die Amadeus Germany GmbH ist Deutschlands führender Anbieter von IT-Lösungen für die Reisebranche. In Deutschland arbeiten 85 % aller Reisebüros an rund 45.000 PCs mit dem Amadeus-System. Zu den Kunden von Amadeus Germany zählen u.a. 75.000 Hotels, 500 Fluggesellschaften, 22 Mietwagenfirmen, rund 200 Reise- und Busveranstalter, 74 Verkehrsverbünde, 40 europäische Bahnen, 30 Fähranbieter, sechs Versicherungsanbieter sowie mehrere Event-Ticket-Anbietersysteme.
Alleiniger Gesellschafter von Amadeus Germany ist die Amadeus IT Group SA, ein weltweit führender Anbieter von Technologie- und Vertriebslösungen für die Reise- und Tourismusbranche. Fast 89.000 Reisebüros sowie mehr als 29.000 Airline-Verkaufsbüros in über 217 Märkten weltweit nutzen sein Netz und das leistungsstarke Datenzentrum.
Das Projektteam meisterte logistische Herausforderungen, denn während der mehrere Jahre dauernden Projektlaufzeit musste der aktuelle Betrieb ungestört weiterlaufen. Zusätzlich war es notwendig, monatlich neue Programmversionen herauszubringen, um aktuelle Kundenanforderungen zu erfüllen.
Wir entwickelten die Migrationswerkzeuge. Darüber hinaus waren mehrere Mitarbeiter von uns in das Projekt integriert und brachten ihre Erfahrungen und ihr Know-how auf dem Gebiet der Migration und des Reengineering ein. Speziell für dieses Projekt entstanden die folgenden Tools:
- SPL-to‑C++-Translator (S2C)
- JCL(SDF)-to-Perl-Konvertierer (J2P)
- (BS2000)-Files-to-Oracle-Migrationswerkzeug (FiRe)
Für die Entwicklung der Werkzeuge setzten wir firmeneigene Metatools ein, wie z.B. den selbstentwickelten Parsergenerator BTRACC (Backtracking Compiler Compiler). Die Werkzeuge stehen für weitere Migrationsprojekte zur Verfügung.
Aus dem erfolgreichen Projekt lassen sich folgende Schlussfolgerungen ziehen:
- Ein Migrationsprojekt unter Nutzung von Konvertierungstools ist machbar und eine echte Alternative zur Einführung von Standardsoftware und der Neuentwicklung, insbesondere unter Beachtung von Projektdauer und Budget.
- Konvertierungswerkzeuge erlauben eine fehlerfreie Migration mit hohem Automatisierungsgrad. Entscheidend ist die Qualität der Migrationswerkzeuge, sie müssen auf Basis der Theorien der Compilertechnik entwickelt worden sein.
- Im Projekt ergab sich die Notwendigkeit von Iterationen bei der Konvertierung, wenn z.B. eine weiterentwickelte Source wiederholt konvertiert werden musste. Das ist mit einem Konvertierungstool fehlerfrei in beliebigen Iterationen möglich. Es beinhaltet aber eine klare Absage an eine “Hand”-Übersetzung durch eine große Menge preiswerter Programmierer und ein “Offshoring” von Migrationsprojekten.
- Es wurde erneut der Beweis erbracht, dass eine Konvertierung von antiquierten Programmiersprachen in moderne Sprachen (im vorliegenden Fall SPL nach C++) praktikabel ist, wenn ein geeignetes Tool (Translator) zur Verfügung steht. Die Konvertierung unter Nutzung eines Translators erfolgt fehlerfrei, in beliebigen Iterationen und automatisiert. Der generierte Zielcode ist wartbar.