Das Rennen um die Dienste

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.