I’m sitting in the Web 2.0 Expo session on Microsoft Live Mesh where Ori Amiga of Microsoft is doing a demonstration of the current solution. I’m slowly getting a better idea of what they are doing, and how this all works.
Ori started off by logging into his Live Mesh account on-line. He showed where he manages his “ring” of devices … the devices that are to be included in his synchronization cloud. He had PCs, Media PCs, an Ultra Mobile PC, his cell phone … and his Macbook. He was able to navigate the “ring” and view the status and information about the devices and their connectivity.
The other core part – to me – that he demonstrated was the “Live Desktop”. In the Mesh.com portal, you actually get a “Live Desktop” that is like a basic desktop in the cloud. There, you have a variety of tools and applications that you can use to interact with your Mesh, and your shared/sync’d resources. He showed where he could create a shared folder on the Live Desktop. He could also see various event streams in a small desktop client application showing updates and changes to the various shared resources. What was cool was that he then flipped to looking at his desktop, and had all of the same capabilities … the shared folders were on his desktop of his laptop, and he had the same client application that allowed him to see the event streams and contents of the mesh resources.
Ori then went through a full demonstration of photos being shared, through the mesh, across his laptop, a Media PC, his phone, and his Macbook. He took a photo with the Macbook that sync’d everywhere … and photo with his cell phone that sync’d everywhere. This is a very simply demo, but what was impressive was the underlying protocols and engine being used to provide this capability. The “shared folder” is actually also “feed” that can be subscribed to, and that has enclosures that link to the associated file objects. Updates to the local “folder” on one machine cause POST updates to the others in the cloud … and then synchronization occurs by the other remote devices pulling from the feeds on the local device.
The presentation then went into a little more depth on the “feeds” and the models that are being used to define the architecture. I’ve added some note below on this portion … but to me I am thoroughly impressed as where Microsoft has taken the concepts of “feeds” … then have created a complete Resource Model around feeds … and an engine to leverage this model and provide the core mechanisms. The pluggable architecture of the Moe (Mesh Operating Environment) allow for the feeds to be rendered in a wide – and completely extensible – range of formats … RSS / ATOM / XML … and anything to come.
In a later demo, Ori showed where a web property can have an “Add to my Live Mesh” button, and so a web user can then add that site/application to their Live Mesh. The demonstration was shown using a SilverLight and he was able to then run the application locally and have all of the same capabilities of the hosted application. He even made a comment about a photo on the local application, and the comment than appeared on that same photo on the hosted application. The idea here is that the usage can become very transparent to average users.
Ori also showed a very specific client application that was written to use the Mesh APIs, and provide even more real-time data synchronization capabilities to keep two different complex data sets in sync. The demonstration was a “family tree” application, and as he updated photos and names, the other “remote” application reflected the updates in real-time. I know that here he was no doubt showing that there can be tight integration with the local Moe to subscribe to events of mesh resource updates.
Upon leaving the session, I immediately went and complained to the Microsoft folks about the problems I was having with my preview account sign-up. They jumped to action and sent me down to the Microsoft booth … where I could again reproduce the same problem. I was really getting bummed … I wanted to experiment with all of this.
For the lunch break I sat down on the 3rd floor, and was about to eat when I noticed some friends from Microsoft at a nearby table. I went over and again told them about the problems I was having … it turns out that Amit Mital was standing behind me! As the Mesh General Manager, he immediately asked me for my Live User ID, and sent off an e-mail … as I finished my lunch he came back over and told me it was fixed! Sure enough … I logged and am now Meshed!
Here are a couple of other thoughts …
Key Elements of Live Mesh:
- Resource Model
- The entire resource model was reduced to the idea of a “feed”. This is identical to an RSS or ATOM feed. It can contain DateEntries and those can have Enclosures.
- There are DataFeeds, NewsFeeds, DeviceFeeds, MembersFeeds … it is extensible.
- A Mesh Object can then contain one or more feeds.
- Mesh Objects can be viewed … in a feed … of course!
- Moe – the Mesh Operating Environment – can then render the feeds in any format … and can also be extended with new renderers.
- The local client can be directly accessed to get all of these feeds in the mesh! e.g. http://localhost:2048/Mesh … so feeds are automatically – and symmetrically – replicated to all devices in the ring.
- Cloud Services
- Ori didn’t spend a lot of time on the Cloud Services …
- Client Runtime
- Upon adding my laptop to my “ring” there was a 1.5MB downloaded client. This appears to be the Moe, and has added a new icon to my tray. Through this little tray icon I can open the Mesh Notifier which shows me my device “ring” and recent activity. I didn’t have to reboot to get this going … woohoo!
- Although he mentioned this, he didn’t spend a lot of time talking about it.
The breif discussion about the Mesh Developer Stack really came down to his Core Tenets of their efforts.
- Core Tenets:
- Open (Protocol Based)
- Resource Oriented
- Consistent S+S Programming Model
I have to admit that I am impressed with what I am seeing so far … it’s really a cool direction for Microsoft to go, and I can only image all of the applications that might begin to appear. I’m disappointed right now that the developer info is most likely going to be out at PDC – the Microsoft Developer Conference – in the fall … I want it now! I’m going to ask around and see what I can find out … I’ll be blogging about this … 🙂