What does it mean to write a Live Mesh application?
I’ve been hearing about “Mesh applications” recently, and I’ve been wondering exactly what that means. Is a Mesh app something that runs in the context of the Mesh Operating Environment or your desktop in the cloud? And how do Mesh applications relate to Microsoft’s other cloud services like Live Services and Azure?
The MIX09 session on Live Mesh applications helped me understand. Here are the key points:
- The Live Services SDK, which support things like Live ID and access to users’ social graphs (i.e. their address books), has been renamed as the Live Framework.
- The Live Framework provides programmatic access to data and devices stored in Live Mesh. For example, I can write an app that can query all the files in a user’s Mesh storage.
- Everything is accessible via REST.
- Offline access is supported by allowing you to query Mesh data synched locally.
- Mesh also allows apps to be installed into Mesh. The intent, as I understand it, is that a Mesh app is automatically synched to all your devices.
Basically, the Live Framework exposes Mesh data just like other Live data and services. Thus, a Mesh application is simply a Live Framework app that happens to read and/or write data into Mesh storage.
I’m intrigued about how Microsoft is going rationalize Mesh and Skydrive. As I understand things, there is no similar public API for Skydrive. One thought is that Skydrive could itself be implemented on top of the Mesh API. This would be a great way to bring Mesh and Skydrive together onto a common platform.
App synching is an interesting concept. It suggests a vision that your desktop is totally portable to all your devices. If you install an app on one device, it automatically shows up on your other devices. This is a hybrid online/offline approach that fits well with Microsoft’s obvious goal of keeping local OS (e.g. Windows) relevant in a “cloud” world. There are some key benefits to this concept: apps and data are available online if you’re connected and offline if you’re not, and you can create rich client apps that leverage your local device hardware.
This is a pretty brief summary, of course, but these are the key ideas that have helped me understand the concept of what constitutes a “Mesh application.”