PDC 2008: Live Services Mesh Services Architecture and Concepts

(Presenter: Abolade Gbadegesin)

What they said:

You've heard how Live Mesh combines the world of the web and the world of digital devices. But what does it mean for you? Take a look under the hood at how the mesh works on the client and in the massively scalable cloud, and learn insights about how to light-up your own solutions for the mesh world. Go deep on FeedSync-based synchronization, authentication and policy, peer connectivity, and more.

What I said:

Mesh services link together users, devices, and storage across a pervasive and highly-scalable communications fabric. Items are represented in the REST style with resources and collections of resources. Both resources and collections can represent themselves as feeds over RSS or Atom, or through JSON and POX representations. A consumer can subscribe to notifications from a collection to track changes to the feed. For example, a distributed file system using FeedSync projects to a feed and performs sharing and synchronization of folders. The mesh attaches metadata to the mesh objects, such as the permissions for sharing access to an object.

The mesh services architecture scales out to support large numbers of users, devices, and mesh objects, with the workload of the mesh most directly scaling in proportion to the number of devices. The mesh services use soft state and HTTP caching to reduce load. When replicating content, the storage service initially uses a notification service to replicate the notification among interested clients. The notification service increases locality of the distribution. Live Framework clients also maintain a local replication store for user data reflected into the mesh. Synchronization of data can be done either from the mesh storage or by contacting and replicating together with local client peers. Each resource has both a stable identifier to give it a uniform name across clients and a home datacenter that is preferred for storage. A client can look up the home datacenter for a resource from a distributed database. When the wrong datacenter is queried for the object, the mesh returns an HTTP redirect to send the client to the correct datacenter.

The Live Mesh is built primarily using commodity hardware. The mesh is partitioned to assign objects to machines, monitor the health of the system, and recover from failures. The mesh performs self-monitoring and healing to deal with most errors, using a fail fast and recover policy to simplify operations. The Live Services team additionally has extensive tooling and operations support for centrally monitoring the health of the mesh. Individual machines are provisioned using xcopy deployment.

The Live Services mesh is a highly-scalable resource-oriented fabric that links together users, devices, and storage. The mesh services architectures scales to support large numbers of devices and objects using commodity hardware and a self-monitoring services backend. Although users currently think of the mesh as a singular entity, the Live Services operations team actually runs a number of mesh instances. In the future, it is planned to be possible to federate authentication credentials with foreign domain systems to a mesh instance and to run on-premises instances of the mesh in addition to the one in the cloud. Finally, connectivity and synchronization with the mesh will improve, for example to integrate with large scale web services hosted by non-Microsoft vendors.