Was ist der Unterschied zwischen Windows Azure und Live Mesh?

Aufgrund der Fülle an Veröffentlichungen zu Microsofts Cloud Computing Strategie auf der diesjährigen PDC in Los Angeles gibt es leider nun durchaus Verwirrung bezüglich der verschiedenen Technologien, die bekannt gegeben wurden, und wie diese Technologien miteinander in Beziehung stehen. So werde ich erstaunlich oft gefragt, wie sich Windows Azure und Live Mesh zueinander verhalten. Ist das das gleiche? Ist das eine im anderen vollständig enthalten? Ist das eine Grundlage für das Andere? Ich will versuchen, hier ein wenig Licht ins Dunkel zu bringen.

Zunächst Windows Azure...

Wie bereits in meinem letzten Blog beschrieben (dort findet sich auch ein Überblicksbild), ist Windows Azure Basis für die Azure Services Plattform. Microsoft positioniert Windows Azure als das "Betriebssystem für die Cloud". Wenngleich diese Forumulierung vielleicht etwas hoch gegriffen klingt, so ist sie doch berechtigt. Windows Azure bietet vergleichbare Funktionalitäten, die typischerweise auch Desktop- oder Server-Betriebssystemen zugeschrieben werden (nur eben auf einer Menge vernetzter Server, was Voraussetzung für die massive Skalierbarkeit ist):

  • Ausführungsumgebung für Anwendungen
  • Dateisystem, das sich mehrere Anwendungen teilen
  • Ressourcenzuordnung
  • Programmierumgebung

Darüber hinaus aber auch Funktionalitäten für das in Cloud Umgebungen vorliegende Utility Computing:

  • 24 x 7 Betrieb
  • “Pay for what you use”
  • Einfache, intuitive Administration

Die Funktionalitäten sind in folgender Abbildung sichtbar.

image 
Abbildung 1: Funktionsbausteine von Windows Azure

Diese Funktionalitäten lassen sich zu den drei Hauptbestandteilen

  • Management von Service (Service Management)
  • Ausführung von Services (Virtualized Compute)
  • Speicher für Services (Blobs, Tables, Queues, Locks)

zusammenfassen. Jeder Service, der ausgeführt wird, hat entweder die Rolle "Web Role" oder "Worker Role". Ein Service der ersten Kategorie "Web Role" ist ein Dienst, der von außen über Web-Protokolle angesprochen werden kann, also sozusagen ein ASP.NET-Dienst in der Cloud. Ein Service der zweiten Kategorie "Worker Role" ist ein Dienst, der - in .NET implementiert - in der Cloud ausgeführt wird, von außen nicht direkt angesprochen werden kann. Er erhält seine Arbeitsaufträge beispielsweise über Windows Azure Queues. Über Queues sind Web Role-Services von Worker Role-Services entkoppelt. Erstere nehmen Aufträge von außen über Web-Schnittstellen entgegen und stellen Arbeitsaufträge für letztere in Queues ein.

Windows Azure stellt somit recht generische Konzepte zur Entwicklung Services-basierter Cloud Applications zur Verfügung.

...nun zu Live Services...

In der Azure Services Plattform stellen die Live Services einen Services-Block dar, der direkt auf Windows Azure aufsetzt. Sieher hierzu die folgende Abbildung:

image
Abbildung 2: Live Services in der Azure Services Plattform

Live Services stellen - verglichen mit denen von Windows Azure - Services auf einer höheren Abstraktionsebene bereit. Diese Dienste dienen der Identifikation, Authentifizierung, Zusammenarbeit und Informationsverarbeitung von Anwendern zur Verfügung:

  • Identity - zur Identifikation (Authentifizierung) von Anwendern (Live ID)
  • Directory - zur Verwaltung von Basis-User-Daten
  • Communication & Presence - zum Austausch von Informationen und Verwaltung von Präsenzinformation (Live Messenger)
  • Search & Geospacial - zur Informationssuche und für ortsbezogene Dienste (Live Search und Virtual Earth)

Über den Basis-Diensten der Live Services liegt die Gruppe der sogenannten Mesh Services. Diese bieten erweiterte Funktionalitäten für Dienste, die Anwender, deren genutzte Anwendungen und Endgeräte unterstützen.

  • Users - für erweiterte Anwenderinformationen (die frei definiert werden können)
  • Devices - zur Verwaltung verschiedener Endgeräte im Mesh eines Anwenders
  • Apps - zur Verwaltung von Anwendungen, die ein Anwender in seinem Mesh einsetzt
  • Sync - zur Synchronisation von Daten über die im Mesh des Anwenders vorhandenen Anwendungen und Geräte hinweg

Live Services setzen also auf Windows Azure auf und erweitern dessen Funktionalitäten um höherwertige anwenderbezogene Funktionalitäten bereitzustellen. Mesh Services sind eine Untergruppe der Live Services, die Dienste zur Unterstützung von Live Mesh bereitstellen.

...und schließlich Live Mesh

Live Mesh ist eine Software-plus-Services Lösung, die aus Client- und Services-Komponenten besteht, und es Anwendern erlaubt, Anwendungen und Daten auf all ihren Endgeräten, die sie in ihr persönliches "Mesh" aufgenommen haben, hinweg zu nutzen und zu synchronisieren.

image
Abbildung 3: Live Mesh

Um ein Gerät (PC, SmartPhone, Mac) in das persönliche Mesh aufzunehmen, muss auf dem betreffenden Gerät eine Mesh Client-Software installiert werden. Diese integriert sich in die Oberfläche des Geräts und nimmt Verbindung zum Mesh-Service auf, um sich über Änderungen im Mesh zu informieren (und ggf. auf das Gerät zu holen) oder dem Mesh lokale Änderungen mitzuteilen (damit sich andere Geräte diese Änderungen holen können). Nach Synchronisation kann der Anwender auch "offline" mit seinen Mesh-Daten und -Anwendungen arbeiten. Änderungen werden synchronisiert, sobald der Anwender wieder "online" ist. Dies geschieht, dank des Mesh-Clients, automatisch, also ohne Zutun des Anwenders.

Ganz entscheidend: Eine Neuerung, und man kann diese nicht deutlich genug hervor heben, die im Rahmen der PDC veröffentlicht wurde, ist, dass es tatsächlich möglich ist, Web-Anwendungen, die im Mesh installiert sind, auch offline zu betrieben. Ja, richtig gelesen: Web-Anwendungen können offline betrieben werden. Dies gilt nicht nur für einfache HTML-Seiten, sondern sogar für Silverlight-Anwendungen. Wow: Silverlight auch offline!!!

Alternativer Zugang zum Mesh ist der sogenannte Live Desktop. Dies ist eine Web-Anwendung, die permanent mit dem Mesh verbunden ist (hier ist also keine Synchronisation erforderlich, der Live Desktop hat Zugriff auf den Online-Content des Anwenders).

Wie verhalten sich Windows Azure, Live Mesh und die Mesh Services nun zueinander?

Um es also auf den Punkt (bzw. vier Punkte ;-) zu bringen:

  • Windows Azure ist das Fundament für Azure Services.
  • Live Services sind eine Kategorie von Azure Services.
  • Mesh Services sind vier Services aus den Live Services.
  • Live Mesh ist eine Software-plus-Services Lösung, die Client-Komponenten umfasst und sich der Mesh Services bedient, um es Anwendern zu erlauben, Anwendungen und Daten auf all ihren Endgeräten, die sie in ihr persönliches "Mesh" aufgenommen haben, hinweg zu nutzen und zu synchronisieren.

Wann eignet sich für Anwendungsentwicklung Windows Azure? Wann Live Mesh?

Für eigene Anwendungsentwicklung kann also sowohl Windows Azure als auch Live Mesh verwendet werden.

Wann eignet sich Windows Azure?

  • Wenn allgemeine Web-Dienste implementiert werden sollen, also Services, die über Web-Protokolle (HTTP, SOAP etc.) angesprochen werden sollen.
  • Wenn eine sehr generische Plattform benötigt wird.

Wann eignet sich Live Mesh?

  • Wenn die Informationsverarbeitung eines Anwenders über verschiedene Endgeräte hinweg im Vordergrund steht.
  • Wenn Offline-Szenarien (mit Daten- und Anwendungssynchronisation bei wiederhergestellter Online-Verbindung) erforderlich ist)
  • Wenn alle einzusetzenden Endgeräte von Live Mesh unterstützt werden (derzeit: Vista-PC, XP-PC, SmartPhone mit Windows Mobile 6.x, Mac).

Weitere Informationen