Das Prädikat „plattformunabhängig“ lässt die Augen vieler IT-Verantwortlicher leuchten. Es verspricht Anwendungen, die unabhängig vom eingesetzten Betriebssystem oder der verwendeten Hardware auf allen Rechnern laufen. Die Realität kann diese Forderung jedoch noch nicht ganz erfüllen, wenngleich die Plattformunabhängigkeit mittlerweile zu einem entscheidenden Wettbewerbsfaktor im hart umkämpften Software-Markt geworden ist. Lange Zeit begnügten sich die Anwender mit einer strategischen Plattform, auf die sämtliche Lösungen abgestimmt waren. Mit den Möglichkeiten der modernen Software-Entwicklung sind jedoch zwangsläufig auch die Anforderungen gestiegen. Das Motto „Drum prüfe, wer sich ewig bindet“ hat nicht nur im richtigen Leben ausgedient. Auch der Kunde will sich nicht mehr in ein fortwährendes Abhängigkeitsverhältnis begeben. Er möchte flexibel entscheiden, welche Hardware am besten zu seinen jeweiligen Anforderungen passt. Ein Wechsel muss dabei jederzeit ohne große Kosten möglich sein, gerade in Zeiten nicht enden wollender Firmenpleiten, Zusammenschlüsse und Verkäufe.

Wirtschaftlichkeit

Auch aus Sicht des Software-Herstellers macht eine plattformunabhängige Entwicklung zwingend Sinn, beendet sie doch die leidige Frage, für welche Plattformen bestimmte Anwendungen entwickelt werden sollen. Denn die Unterstützung einer Plattform ist wirtschaftlich nur dann sinnvoll, wenn genügend Anwender diese einsetzen. Und schon mancher potenzielle Kunde hat sich enttäuscht von einem Anbieter abgewendet, weil dieser keine Anstalten machte, seine Produkte auf die Wunschplattform des Kunden zu portieren. Die Tatsache, dass die Entwicklungskosten für den Software-Hersteller in keinem Verhältnis zu den zu erwartenden Umsätzen stehen, ist für den Anwender dabei nicht von Interesse.

Plattform – Hardware

Ein Hoch also auf die Plattformunabhängigkeit. Sie ermöglicht es den Software-Häusern, ihre Produkte nur einmal zu entwickeln und diese auf jeglicher beim Kunden eingesetzten Hardware und dem von ihm bevorzugten Betriebssystem anzubieten. Die redundante Entwicklung auf unterschiedlichen Plattformen gehört damit der Vergangenheit an. Dies spart nicht nur Entwicklungskosten, sondern bewahrt den Anbieter auch davor, sämtliche Systeme inhouse zu Testzwecken vorzuhalten. Das Ergebnis: Zeit- und Kostenersparnis bei der Software-Entwicklung, was sich in preisgünstigeren Angeboten und einer höheren Flexibilität für den Endverbraucher niederschlägt. So profitieren auch eServer-Anwender von dem aktuellen Trend zur Plattformunabhängigkeit. Den Anhängern der Green Screens eröffnen sich neue Produktwelten, weil neben der überschaubaren Anzahl AS/400-spezifischer Lösungen jetzt auch eine breite Palette an Open-Source-Produkten zur Verfügung steht.

Plattform – Entwicklungsumgebung

Das Zauberwort, welches die Entwicklung plattformunabhängiger Komponenten erst ermöglicht, heißt Java Enterprise (J2EE = Java [Version 2] Enterprise Edition). Diese Programmiersprache hat in den letzten Jahren stark an Bedeutung gewonnen. Analog dazu stieg die Zahl der Anbieter von J2EE-konformen Lösungen. Auch Seeburger hat sich für die Entwicklung plattformunabhängiger Anwendungen auf Basis von J2EE entschieden, um seinen Kunden Lösungen auf ihrer strategischen Wunschplattform anbieten zu können.

Wunsch vs. Wirklichkeit

Doch die vollkommene Plattformunabhängigkeit, die mit J2EE erreicht werden sollte, ist in der Praxis nur mit hohem Aufwand zu realisieren. Wie so oft klaffen Wunsch und Wirklichkeit, Theorie und Praxis auseinander. Zu viele Stolpersteine erschweren noch immer die Portierung auf eine andere Plattform. Der Grund des Übels ist schnell gefunden. Er liegt in der Tatsache, dass die Plattformunabhängigkeit selbst erst durch Software geschaffen wird. Application Server und Java-Laufzeitumgebungen (JRE = Java Runtime Environment) sind Software-Module, die eine Zwischenschicht zwischen plattformabhängiger Hardware und Betriebssystem auf der einen und der eigentlichen plattformunabhängigen Anwendung auf der anderen Seite bilden.

Kommunikationsprobleme

Diese Software-Module werden von verschiedenen Herstellern entwickelt und liegen in unterschiedlichen Versionen vor, wobei sich die Anbieter mehr oder weniger strikt an die Vorgaben des J2EE-Standards halten – von Software-Fehlern, die sich dabei einschleichen, einmal ganz abgesehen. Auch entsteht ein Standard wie J2EE nicht an einem einzigen Tag. Daher gibt es Funktionen, die zwar noch nicht vollständig verabschiedet sind, die aber von dem einen oder anderen Hersteller bereits als „Vorabversion“ implementiert wurden. Die Folge sind Inkompatibilitäten. Daneben existieren Bereiche, die durch den Standard noch nicht erfasst wurden. Bestes Beispiel hierfür ist das so genannte Deployment, sprich die Auslieferung und Installation des Anwendungs-Software-Moduls in der Application-Server-Umgebung. Die fehlende Normierung in diesem Bereich zieht zwangsläufig umfangreiche Tests und zusätzliche Entwicklungsarbeit nach sich.

Testen, testen, testen …

Nüchtern betrachtet reduziert sich das in der Theorie propagierte Motto „Develop once, run everywhere“ auf ein weniger euphorisches, aber dafür ehrliches „Develop once, test everywhere“. Nichtsdestotrotz stellt der J2EE-Ansatz einen bedeutenden Meilenstein in der Software-Entwicklung dar, der dem Anwender mehr Entscheidungsfreiheit bei der Wahl von Hardware und Betriebssystem lässt. Bis zu einer wirklichen Plattformunabhängigkeit „out-of-the-box“ ist es jedoch noch ein langer Weg.

Fachautor: Matthias Feßenbecker info@seeburger.de