Sixt mixt Linux, Cobol und XUL

02.12.2005
Von Rainer Doh 
Der Autovermieter Sixt hat seine Linux-basierenden Cobol-Applikationen mit einem modernen grafischen Benutzer-Interface ausgestattet. Legacy- und Internet-Techniken wurden mit XUL und PHP verbunden.
Sixt nutzt das Beste aus zwei Technikwelten.
Sixt nutzt das Beste aus zwei Technikwelten.

Nicht nur in Sachen Geschäftspolitik, auch in der IT bewegt sich die Sixt AG gern abseits ausgetretener Pfade: Bereits 1994, als Linux noch als elitäres Universitätsthema galt, führte der erste deutsche Autovermieter im Internet Geschäftsanwendungen auf der Open-Source-Plattform aus. Vor diesem Hintergrund überrascht es zunächst, dass das Unternehmen seit gut 20 Jahren überzeugter Cobol-Anwender ist: Mitte der 80er Jahre wurde ein erstes Reservierungssystem in Cobol für die Hardwareplattform "Nixdorf 8860" entwickelt und dann nach und nach den sich wandelnden Geschäftsanforderungen angepasst.

Hier lesen Sie …

• wie Sixt seine in Cobol entwickelte Geschäftslogik über ein grafisches Interface weltweit nutzbar macht;

• wie die dazu erforderliche Verbindung von Legacy- und Web-Techniken gelang;

• welche Vorteile der Ansatz mit sich bringt.

Die Techniken

• XUL (XML User Interface Language): auf XML aufbauende Beschreibungssprache für grafische Benutzeroberflächen;

• PHP (Hypertext Preprocessor): Server-seitig interpretierte Skriptsprache unter anderem für Windows, Linux, Mac OS X. Die Open-Source-Software hat eine an "C" beziehungsweise "Perl" orientierte Syntax und eignet sich vor allem für das Erstellen dynamischer Web-Seiten;

• Mozilla: Open-Source-Web-Browser mit XUL-basierter Oberfläche und plattformunabhängiger Engine;

• Cobol (Common Business Oriented Language): weit verbreitete, höhere Programmiersprache, die sich insbesondere für kaufmännische Aufgabenstellungen eignet.

Anfang der 90er galt es erst einmal, die wachsende Zahl an Vermietstationen mit leistungsfähiger IT auszustatten. Dem damaligen Stand der Technik entsprechend, erhielt jede Station ein autarkes System mit eigener Datenbank, die Datensynchronisation zwischen den Stationen erfolgte per Batch-Verfahren. "Damals waren die Datenleitungen noch teuer und wenig zuverlässig, so dass wir uns für eine dezentrale Infrastruktur entschieden", erinnert sich Horst Effenberger, IT-Leiter von Sixt in Pullach bei München. Die Entscheidung für Linux hatte also auch finanzielle Gründe, denn angesichts der vielen Server-Installationen ließen sich so beträchtliche Lizenzkosten sparen. Bei mehr als 300 Stationen wurde die Synchronisation der verteilten IT jedoch immer aufwändiger.

Zentralisierung und Konsolidierung der Systeme

In der Zwischenzeit hatten sich auch die technischen Rahmenbedingungen weiterentwickelt: Stabile Leitungen waren nun zu akzeptablen Preisen verfügbar und bildeten die Voraussetzung für eine Zentralisierung und Konsolidierung der Systeme, die 2002 abgeschlossen werden konnte. Heute befinden sich alle Server und Daten im Rechenzentrum der Pullacher Firmenzentrale, alle Vermietstationen greifen auf nur einen Datenbestand zu.

Cobol - das Beste für die Abbildung von Geschäftsprozessen

Parallel zur Entwicklung der Infrastruktur wurden die Kernapplikationen mehrmals in diversen "Groß-Releases" überarbeitet - beispielsweise anlässlich der Übernahme der britischen Niederlassungen, deren etwas anders geartete Geschäftsabläufe in die Anwendungen zu integrieren waren. Neuerdings arbeitet Sixt daran, die Applikation für den Geschäftsbereich "Leasing" europafähig zu machen und mit der Vermietungssoftware zusammenzuführen. Soweit es dabei um Geschäftsprozesse geht, bildet weiterhin Cobol die programmiertechnische Basis. Zahlreiche Cobol-Module wurden von Release zu Release weitergereicht und gehen im Kern noch auf den ursprünglichen Code des Nixdorf-Systems zurück. "Wir haben in den großen Releases meist neue Strukturen geschaffen, aber die Module so weit wie möglich übernommen", erklärt Effenberger die Vorgehensweise. "Es gibt keinen Grund, bereits funktionierende Algorithmen noch einmal neu zu programmieren."

Eine Neuentwicklung der Kernapplikationen in einer anderen Programmiersprache, etwa in C++ oder in Java, hat Sixt nie ernsthaft erwogen. "Wir verwenden die Lösung, die am besten funktioniert und die am wenigsten Aufwand verursacht - für die Abbildung der Geschäftsprozesse ist das nun mal Cobol", schildert Effenberger den pragmatischen Ansatz.

Was die Abbildung von Geschäftslogik angeht, hätten sich andere Techniken nicht bewährt: "Unser Java-Projekt haben wir bald wieder eingestellt, weil wir hier ständig Probleme lösen mussten, die in der IT anderweitig schon lange gelöst waren." So sei zum Beispiel auf einmal wieder die Rede von Transaktionen gewesen - ein Thema, das unter Cobol längst ad acta gelegt worden sei.

Für grafische Oberflächen nicht geeignet

Aber auch das Bekenntnis zu Cobol ist pragmatischer Natur. So würde Sixt umgekehrt nie grafische Oberflächen oder Internet-Anwendungen in Cobol schreiben. "Da unsere Software ohnehin in Schichten aufgebaut ist, bietet sich an, für jede das geeignete Werkzeug zu verwenden", so Effenberger. Die Sixt-Applikationen bilden einheitlich die Layers Datenbank, Geschäftslogik und Benutzer-Interface.

Der Zugriff auf die Tabellen der Informix-Datenbank erfolgt über ein Data Dictionary, in dem Felder und Tabellen definiert werden; die Zugriffsmodule werden aus dem Dictionary in Cobol generiert. Die Geschäftslogik besteht aus einer Vielzahl von Methoden, die vom gefilterten Zugriff auf Tabellen - "zeige alle per Internet buchbaren Stationen" - bis zur Kalkulation eines kompletten Leasingvertrags reicht. Der hierarchisch strukturierte Komplex ist ganz in Cobol geschrieben und wird mit "Server Express", der Cobol-Entwicklungsumgebung von Micro Focus, für die Linux-Plattform kompiliert.

Im Unterschied zur bisher auf Zeichen basierenden Vermietungssoftware verfügte die Leasing-Applikation schon seit einiger Zeit über ein mit Powerbuilder realisiertes grafisches Benutzer-Interface. Powerbuilder war allerdings durch seine enge Bindung an Windows nicht für den Web-Einsatz geeignet, so dass Sixt beim Ausbau des grafischen Interface für alle Anwendungen auf andere Techniken zurückgreifen musste. "Die Internet-Fähigkeit der Clients ist für uns sehr wichtig, weil ein wachsendes Netz von Usern auf unsere Software zugreift", erklärt Effenberger. "Per Internet können wir den Benutzern ohne Aufwand, ohne Installation und ohne hohe Lizenzkosten Zugang zu den Applikationen bieten." Mittlerweile greifen weltweit mehr als 1500 Benutzer in den Sixt-Stationen sowie den Partnerunternehmen auf die Anwendungen zu.

Drei Techniken für grafische Clients

Das neue Release basiert hinsichtlich der Oberflächenprogrammierung nur noch auf Javascript, PHP (Hypertext Preprocessor) und XUL (XML User Interface Language), der Beschreibungssprache für Windows-ähnliche Oberflächen. Damit benötigt Sixt für die Anwendungsentwicklung einschließlich Web-Applikationen lediglich drei Techniken: Cobol für die Abbildung der Geschäftslogik, PHP für Web-Server-Logik und jegliche Internet-Software sowie XUL und Javascript für die Darstellung des Interface.

Windows-Optik kombiniert mit Web-fähigkeit

"Wir hätten die Oberfläche auch nur mit PHP schreiben können", räumt Effenberger ein. Damit hätte man sich aber auf die grafischen Möglichkeiten von HTML beschränken müssen. Mit XUL sehe die Oberfläche aus wie bei Windows, und dennoch blieben die Frontends voll Internet-fähig. Die Client-Applikation läuft dabei nicht im Browser, sondern auf der Mozilla-Engine; sie ist in Javascript geschrieben und verwendet dabei die von XUL vorgegebenen Definitionen. Sobald die Software Daten oder Geschäftsmethoden benötigt, kommuniziert sie mit einem PHP-(Web-)Server, der wiederum auf ein paar tausend Geschäftsmethoden in Cobol zugreift. Für den Austausch zwischen Cobol und PHP wurde ein spezielles Interface geschrieben.

Voraussetzung für dieses Verfahren ist die modulare Struktur der Cobol-Software, so dass sich mit eindeutigen Interfaces auf die jeweils benötigte Geschäftslogik zugreifen lässt. Laut Effenberger waren 70 bis 80 Prozent der Cobol-Programme bei Sixt für diese Technik von Anfang an geeignet. Die übrigen werden nun schrittweise angepasst. Dabei entstehen mit Hilfe von Server Express nach wie vor viele neue Cobol-Programme - wenn auch ausschließlich für die Geschäftslogik.

Zwei Technikwelten erfolgreich verbunden

"Für das User Interface werden keine Cobol-Statements mehr geschrieben", betont Effenberger. Batch-Anwendungen, die bei Sixt etwa zwei Drittel der Anwendung ausmachen, verbleiben demnach ganz in der Cobol-Welt. Da die Oberfläche unabhängig von der Geschäftslogik ist, spielt es für die Softwareentwicklung zunächst keine Rolle, ob ein Modul für Batch- oder Online-Betrieb geschrieben wird.

Sixt hat auf diese Weise zwei grundverschiedene Techniken erfolgreich verbunden: Eine klassische, in Cobol entwickelte und vielfach bewährte Geschäftslogik ist nun über ein grafisches Interface weltweit nutzbar. (kf)