Grundsätzlich ist Live Mesh [1] eine Plattform zur Synchronisation von Daten eines Nutzers, doch es bietet noch mehr. Die Geräte des Anwenders werden in einem Mesh (Netz) zusammengefasst, wobei neben der Synchronisation dieser Geräte auch Remote-Zugriffe konfiguriert werden können und sich Daten mit anderen Nutzern von Live Mesh austauschen lassen. Dabei wird auf jedem Mesh-Gerät eine Client Software (Live Mesh Client) installiert, welche bei einer Änderung von Daten diese automatisch im Hintergrund synchronisiert. Zusätzlich stellt Microsoft (derzeit) 5 GB kostenlosen Online-Storage zur Verfügung. Die Synchronisation von Daten kann entweder über diesen Online-Speicher oder P2P erfolgen, je nach Konfiguration. Weiterhin kann man mit dem Browser auf den Live Desktop zugreifen. Dieser kann als spezielles Gerät im Mesh angesehen werden und stellt eine Weboberfläche bereit (Abbildung 1), über die man auch von fremden Rechnern aus Zugriff auf seine Daten erhält. Für weitere Details zu Live Mesh und zum Ausprobieren der Applikation sei auf die entsprechende Webseite [1] verwiesen.
Die Funktionalität, welche Live Mesh bietet, ist für sich genommen bereits sehr gut und hat beim Autor trotz Beta-Version nie zu Problemen geführt. Auch die Juroren von The Crunchies 2008 waren davon überzeugt und haben Live Mesh im Januar 2009 den Best Technology Innovation Award verliehen [2]. Weiterhin ist geplant, Live Mesh in die nächste Major Release von Windows Live zu integrieren, womit bald alle Live-Nutzer dessen Funktionalität erfahren können. Doch Live Mesh ist nur die Spitze eines gewaltigen Eisbergs. Es ist die erste groß angelegte Endbenutzer-Applikation von Microsoft, welche auf den Live Services aufbaut … und so kommt Windows Azure ins Spiel.
Die Live Services
Die Live Services stellen einen Block der Azure Services Plattform dar, wie es Abbildung 2 verdeutlicht.
Live Framework und Live Operating Environment
Das Ziel des Live Frameworks (LiveFx) [3] besteht darin, die verschiedenen Live Services einheitlich anzusprechen und ein Framework für die uniforme Programmierung gegen die Live Services bereitzustellen. Dazu werden Entwicklern ein SDK und Tools zur Verfügung gestellt. Weiterhin wird darüber eine Umgebung für Clients und eigene Anwendungen angeboten, um Live- und Mesh-Funktionalität nutzen zu können. Die Hauptkomponente des Live Frameworks ist das Live Operating Environment (LOE). Hierbei handelt es sich um eine Agentenkomponente des Live Frameworks, welche auf jedem Gerät im Mesh läuft und eine Ausführungsumgebung bereitstellt. Über die LOE bietet jedes Gerät Daten und weitere Informationen als Ressourcen über eine REST-basierte Schnittstelle an. Die Ressourcen können als Feeds in diversen Formaten (Atom, RSS, JSON, POX) via HTTP abgerufen werden, womit sich meshbasierte Anwendungen grundsätzlich auf Basis beliebiger Programmiersprachen entwickeln lassen und nicht auf .NET beschränkt sind. Dabei ermöglicht die LOE ein plattformagnostisches Client/Cloud-symmetrisches Programmiermodell. Das bedeutet, dass es für einen Programmierer grundsätzlich keine Rolle spielt, ob er auf Ressourcen zugreift, welche der eigene Client, andere Clients im Mesh oder der Live Desktop in der Cloud zur Verfügung stellen, die Programmierung ändert sich nicht. Das Live Framework sorgt dabei für eine Abstraktion von Plattformspezifika wie Dateisystem-Zugriff, konkreten Netzwerk-APIs etc. LOE arbeitet zudem als lokaler Cache und sorgt dafür, dass bei der Änderung von Daten auf einem Client alle anderen Clients benachrichtigt werden und eine Synchronisation der einzelnen Geräte angestoßen wird. Zum Beispiel kann der Benutzer auch offline mit seinen Daten arbeiten, LOE synchronisiert die Daten automatisch auf die anderen Geräte, sobald der Rechner wieder online geht. Die Benachrichtigung über die Änderung von Ressourcen erfolgt dabei auf Basis von FeedSync [4], einem offenen Protokoll von Microsoft, welches auf RSS/Atom aufsetzt und um Funktionalität für zuverlässige Synchronisation von Daten-Collections in Multi-Master-Szenarien erweitert.




