Der Hype war gestern, jetzt wird gearbeitet!

Interoperabilität in der Cloud mit Windows Azure und Java
Kommentare

Cloud Computing war im Jahr 2010 ohne jeden Zweifel das Hypethema schlechthin. Auch 2011 sieht es so aus, als würde sich dieser Trend ungebremst fortsetzen. Was jedoch viele hierbei vergessen, ist die Tatsache, dass neben dem Hype auch Projekte umgesetzt werden müssen. In der Cloud sieht die IT-Landschaft bei Weitem nicht mehr so heterogen aus wie in bisher bekannten Plattformen. Was dies für die Interoperabilität bedeutet, ist klar: eine Menge Arbeit.

Heterogenität ist eine prägende Eigenschaft in der aktuellen IT-Landschaft von Enterprise-Anwendungen. Dies wird durch den aktuell vor sich gehenden Paradigmenwechsel in Richtung Cloud Computing noch verstärkt, da zumindest mittelfristig hybride IT-Lösungen, bei denen On-premise-Systeme mit Cloud Services kommunizieren, vorherrschen werden. Das bedeutet, dass sich der Fokus auf die Interoperabilität richten wird. Interoperabilität nicht nur wie bisher zwischen unterschiedlichen Technologien, sondern auch zwischen Server und Services-Plattformen.

In diesem Artikel soll anhand eines einfachen Szenarios gezeigt werden, wie .NET-basierende Cloud Services mit einer On-premise-Java-Anwendung Daten austauschen und mittels Service-Schnittstellen Transaktionen in hybriden Lösungen bewerkstelligt werden können. Hierfür kommen im Laufe des Artikels Windows Azure, ASP.NET MVC 2, jQuery, Bing Maps, OData, Windows Azure AppFabric MessageBuffer und Java zum Einsatz. Im Artikel wird primär auf die Windows-Azure-Technologien und jene Technologien, die für die Interoperabilität essenziell sind, eingegangen.

Was ist Interoperabilität?

Bevor das Szenario vorgestellt wird, muss man sich überlegen, worum es sich bei Interoperabilität handelt. In Abbildung 1 werden die vier Kernbereiche der Interoperabilität dargestellt: Übertragung der Daten, Standards, Migrationsmöglichkeiten und Entscheidungen, die ein Entwickler treffen kann.

Abb. 1: Die Interoperabilitätsebenen
Abb. 1: Die Interoperabilitätsebenen

Unter „Data portability“ versteht man die Möglichkeit, wie Daten ausgetauscht werden können. Hierbei können verschiedene Probleme auftreten. Stellt man auf ein neues, technologisch unterschiedliches System um, so sollen die Daten einfach von der alten Plattform in die neue überführt werden. Dieser Punkt hängt stark mit den Migrationsmöglichkeiten zusammen. Hierbei handelt es sich um die Möglichkeit, ein System auf einem neuen, technisch unterschiedlichen, System laufen zu lassen. Grundvoraussetzung für beide Techniken ist das Vorhandensein von Standards. Im Anwendungsszenario wurden verschiedenste Standards, wie etwa OData, eingesetzt.

Will man etwas mehr ins Detail gehen, so muss man sich ansehen, welche Interop-Möglichkeiten es zwischen Java und .NET gibt. Hierfür gibt es, wie in Abbildung 3 dargestellt, einige interessante Möglichkeiten. Eine sehr beliebte Möglichkeit sind Laufzeitbrücken, wie etwa JNBridge. Hierbei wird der Java- bzw. .NET-Code direkt aufgerufen. Will man .NET-Klassen und Steuerelemente in Java verwenden, so bietet sich COM und JNI an. Mit der CORBA-Interoperabilität (CORBA steht für Common Object Request Broker Architecture) kann man .NET und Java verbinden, wobei das oft nicht so einfach ist, da in .NET Remoting beziehungsweise WCF stark vertreten ist. Die Alternative, die in unserem Fall verwendet wurde, ist der Einsatz von Messaging. Hierfür wurde der AppFabric Service Bus verwendet. Dieser wird später noch genauer beschrieben.

Abb. 2: Interop-Möglichkeiten zwischen .NET und Java
Abb. 2: Interop-Möglichkeiten zwischen .NET und Java
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -