Mittwoch, 23. Mai 2012


Artikel

September 2009 | Artikel

Going Live!

(Link zum Artikel: http://www.entwickler.de/dotnet//002552)

Einführung in die Live Services und das Live Framework

Text: Matthias Jauernig
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Microsofts Live Mesh ist eine kostenlose Applikation, die es Endanwendern erlaubt, Daten über ihre Geräte zu synchronisieren. Doch was steckt unter der Haube? Was hat Windows Azure damit zu tun? Und was für einen Nutzen hat dies für Endanwender und Entwickler?
Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

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.

Generell stellen sie den Benutzer in den Mittelpunkt, indem sie Dienste für personalisierte Funktionalitäten (z.B. auf Basis einer Windows Live ID) anbieten. Hierzu zählen auch die Windows-Live-Dienste, und Microsoft ist derzeit bemüht, alle diese Dienste auf die Live Services zu portieren und somit einheitlich zugänglich zu machen. Abbildung 3 schlüsselt die Live Services in ihre Bestandteile auf.
Vor allem die Mesh Services sollen dabei von weiterem Interesse sein, auf denen auch die Live-Mesh-Applikation aufbaut, und die einen wesentlichen Part der Live Services darstellen. Das große Ziel der Mesh Services besteht darin, Barrieren zwischen Daten, Geräten, Applikationen und Personen zu überwinden. Das bedeutet für Endanwender, dass sie z.B. ihre Daten und Applikationen mit ihren unterschiedlichen Geräten sowie mit denen anderer Personen abgleichen können. Auf der anderen Seite wird es Entwicklern ermöglicht, sich auf die Kernfunktionalität ihrer Anwendung zu konzentrieren und notwendige (in unserer mobilen Welt immer wichtiger werdende) Randfunktionalität wie Synchronisation oder Datenfreigabe den Mesh Services bzw. deren Komponenten zu überlassen. Wie auch Live Mesh setzen die Mesh Services ein konfigurierbares Mesh voraus, in welches sich Geräte und Daten integrieren lassen. Als spezielles Gerät im Mesh wird auch der Live Desktop selbst angeboten, über welchen Daten synchronisiert werden können. Welche Bestandteile noch eine wesentliche Rolle spielen, zeigen die folgenden Abschnitte.

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.

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Kommentare