Das Rennen um die Dienste

03.05.2002
Zwei Anwendungsplattformen liefern sich seit einiger Zeit einen erbitterten Kampf um den Markt für Applikationsentwicklung: "Java 2 Platform, Enterprise Edition" (J2EE) und die Microsoft-Plattform ".Net". Bei der Entscheidung für den Einsatz einer der beiden sind sowohl technische Aspekte als auch Geschäftsanforderungen zu berücksichtigen.

Von: Susanne Franke

Die Komplexität heutiger Geschäftsanwendungen lässt sich am besten durch Aufteilung in Komponenten mit festgelegten Aufgaben in den Griff bekommen. "Java 2 Platform, Enterprise Edition" (J2EE) und Microsofts ".Net" treten mit dem Versprechen an, die Anforderungen an die moderne Anwendungsentwicklung mithilfe einer standardbasierten Infrastruktur zu erfüllen. Das Angebot der beiden Plattformen ist vergleichbar. Ein wichtiger Unterschied - mit Vor- aber auch Nachteilen - muss bei der Entscheidung für eine Infrastruktur berücksichtigt werden: J2EE ist eine Spezifikation als Ergebnis einer Initiative unter der Führung von Sun Microsystems, und die Produkte kommen von verschiedenen Herstellern. .Net hingegen ist eine Microsoft-Plattform, also das Produkt eines einzigen Anbieters.

Beide Ansätze stellen eine Weiterentwicklung vorhandener Anwendungsserver-Technik dar, um unternehmensweite, komponentenbasierte Applikationen zu entwickeln. Sie sind ebenfalls darauf ausgerichtet, den Aufbau von Webservices zu ermöglichen. Dabei gehen sie davon aus, dass hinter der Erstellung von Webservices eine Vielzahl von "Klempnerarbeiten" steckt. Dazu gehört XML-Interoperabilität, Load Balancing oder Transaktionsmanagement.

Die konkurrierenden Modelle haben eine gemeinsame Vision: Anwendungen entwickeln zu können, die in einem Container ablaufen, der Dienste wie Sicherheit, Transaktionen oder Persistenz standardmäßig anbietet. Der Entwickler kann sich somit auf die speziellen Anforderungen des Webdienstes, auf die Geschäftslogik, konzentrieren.

J2EE beschreibt die Vereinbarungen zwischen Anwendungen und den Containern, in denen sie ablaufen. J2EE ist selbst eine Java-Anwendung, deren Komponenten in Bytecode umgewandelt werden und in einem Java Runtime Environment (JRE) ablaufen. Damit lassen sich Websites, Softwarekomponenten oder Anwendungen von der Stange entwickeln. Vor kurzem wurde der Standard um die XML-Unterstützung erweitert, die für Webservices unerlässlich ist. Sun bietet außerdem das "XML-Pack" an, das SOAP, WSDL und UDDI unterstützt. Das Pack steht auch anderen Tool-Anbietern zur Verfügung.

Microsoft.Net stellt im Gegensatz zur Java-Plattform eine Produktsuite zur Entwicklung von so genannten "Smart Webservices", aber auch eine Strategie dar. Die Plattform ist weitgehend eine Neuauflage der Entwicklungsumgebung Windows DNA. Deren "Zutaten" wie Transaction Server, COM+, Message Queue und die SQL Server Database wurden durch das .Net Framework ersetzt. Ein Webservice Layer sowie erweiterte Sprachenunterstützung sind hinzugekommen. Die Laufzeitumgebung Common Language Runtime (CLR) funktioniert ähnlich wie JRE. Der wichtigste Unterschied besteht darin, dass CLR Programme in mehreren Sprachen ausführen kann, die sie in eine "gemeinsame" Sprache übersetzt. MS hat zudem die Java-ähnliche eigene Programmiersprache C# entwickelt, die in die Entwicklungsumgebung "Visual Studio .Net" aufgenommen wurde. Das Tool unterstützt jedoch alle Programmiersprachen mit Ausnahme von Java. Der Vorteil der Mehrsprachigkeit könnte darin liegen, dass die Stärken einzelner Programmiersprachen sich nutzen lassen.

Das Funktionsangebot der beiden Konkurrenten ist vergleichbar und erfüllt die Grundanforderungen der meisten Unternehmensanwendungen. Dennoch gibt es einige Dienste, durch die sich die beiden Plattformen unterscheiden. J2EE bietet beispielsweise State Management und Persistence Services. Microsofts ASP.Net soll die Unabhängigkeit vom Client-Device sicherstellen und ein Event-basiertes Programmieren erlauben. Neben den GUI-Vorteilen ist dies für die Analysten der Giga Group ein Grund, weshalb sie die .Net-Plattform für Desktop- beziehungsweise Client-Anwendungen empfehlen.

Für unternehmensweite Anwendungen enthält J2EE ein breiteres Spektrum an Funktionen und APIs. MS liefert die Basisfunktionalität für Message Queuing und eine Verzeichnisschnittstelle, während der Sun-Standard darüber hinaus geht und beispielsweise das Publizieren von Message Queuing, Application Naming sowie ein Standardmodell für Anwendungsintegrationsadapter unterstützt. Die J2EE Connector Architecture (JCA) steht jedoch noch am Anfang und ist begrenzt. Microsoft bietet nichts Vergleichbares.

Über beide Plattformen können leistungsfähige, skalierbare Anwendungen erstellt werden. Doch ist der Aufwand, Highend-Lösungen mit .Net zu entwickeln, höher. FürJ2EE spricht nach Ansicht der Giga Group die Tatsache, dass die meisten Anbieter mit ihren J2EE-Servern bessere Optionen für Clustering, Load Balancing und Failover offerieren als die entsprechende Microsoft-Software.

Portabilität beachten bei Drittanbietern

Doch eine Anwendungsarchitektur erfordert mehr als einen Applikationsserver. Um den Entwicklungs- und Verwaltungsaufwand für Anwendungen gering zu halten, entstehen verschiedene Techniken wie Integrationsserver, Workflow, Business Process Management und andere. Die Java-Spezifikation adressiert außer dem schon erwähnten Messaging und der Integration keine weiteren Elemente. Es gibt von Drittanbietern verschiedene zusätzliche Komponenten für die XML-basierte Integration von Legacy-Anwendungen, B-to-B-Collaboration oder das Management von Geschäftsprozessen. Doch diese Vielfalt geht auf Kosten der Portabilität. Der Anwender ist daher gut beraten, sich auf das Angebot eines Herstellers zu konzentrieren. Inzwischen haben auch große Hersteller wie IBM oder BEA vollständige Webservices-Lösungen oder bieten über Partnerschaften kompatible Komponenten.

.Net bietet ebenfalls eine breite Lösung aus einer Hand, wobei naturgemäß der Integrationsaufwand geringer ist. Dem aktuellen Angebot fehlt es jedoch an Tiefe, beispielsweise bezüglich Integrationsmöglichkeiten, Workflow, Portale oder auch Netzwerkmanagement. Theoretisch können .Net-Anwendungen auf jeder anderen Plattform laufen - vorausgesetzt, sie enthält die grundsätzlichen .Net-Dienste und -Bibliotheken. Zur Stunde gibt es jedoch von Seiten von Microsoft noch keine Pläne, Laufzeitfunktionalität auf anderen Plattformen als Windows anzubieten. Die Strategie der Gates-Company, die eigene Produktlinie immer mehr auszuweiten, hält auch die Konkurrenz in Schach. Liegen keine zwingenden Argumente vor, die für eine der beiden Plattformen sprechen, so sollte die Wahl auch nach der bereits existierenden "IT-Welt" ausgerichtet werden.

Die Giga Group hält J2EE für ausgereifter als .Net. Als Beweis führen die Analysten bereits erprobte Plattformen wie "Websphere" von IBM oder BEAs "Weblogic" an. Obwohl die Microsoft-Software einige bewährte Elemente aus früheren Produkten enthält, sind viele neue hinzugekommen wie die .Net-Sprachenarchitektur oder die "Common Language Runtime", die ihre Stabilität erst beweisen müssen.

Des Weiteren sollte die Komplexität der zu entwickelnden Anwendungen in die Überlegungen einbezogen werden. Die MS-Werkzeuge bieten vorgefertigte Designmodelle und unterstützen die Entwicklung auf deren Basis. Doch bei komplexen Anwendungen rät die Giga Group eher zu J2EE. Begründung: Will man sich über die Java-Architektur informieren, so stehen einem gut strukturierte Plattformspezifikationen mit Zusammenfassungen zur Verfügung. Im Gegensatz dazu sind die einzelnen Teile der Microsoft-Architektur jeweils separat definiert und beschrieben, ohne einen Überblick über die Gesamtarchitektur.

Aufgrund der Tatsache, dass die GUI-Bibliotheken von Microsoft ausgereifter sind als die für Java, mehren sich die Stimmen der Unternehmen, die .Net eher für die Entwicklung von Frontend-Anwendungen einsetzen wollen, während sie J2EE im Backend sehen. Die Kommunikation wird durch die XML und SOAP möglich - Unterstützung dafür gibt es in beiden Modellen. Die Meta Group warnt jedoch vor Performance-Einbußen und Schwierigkeiten in der Anwendungsverwaltung. Dennoch wird eine reine J2EE- beziehungsweise .Net-Landschaft in einem Unternehmen eher die Ausnahme sein. Unternehmen wie Iona nehmen bereits ihre Chance wahr und bieten Tools an, die .Net-, Legacy- und J2EE-Anwendungen dort verbinden, wo nicht die Webservices-Standards diese Aufgabe übernehmen.