Posted By: Dan Fernandez | Jul 11th, 2008 @ 1:14 AM | 79,389 Views | 25 Comments
Live Mesh is built around a relationship directory to let the machines in your mesh communicate with one another on your behalf.  Any two devices can use the directory and the mesh communication services to set up an encrypted channel for sharing data or synchronizing. 

In this interview, we’ll whiteboard out exactly how a Live Mesh peer-to-peer session is established, along with the newly added support for synching files with only your device, and not with the Live Desktop cloud storage service.
Rating:
5
0

From my testing here with the new bits, it is not sending directly over the LAN yet.

aL_
aL_
Rx ftw
ok Smiley

are there any plans to expose apis for people to make their own mesh clients? (although that does seem hard given security and stuff, but it would be cool)

Live Mesh's pub/sub model is conceptually a push model -- each device has a notification queue, the device can create subscriptions, and when a subscription generates an event (or another device or part of the Mesh needs to reach the device), that event is posted to the queue and the device gets it.

Because Live Mesh is designed to work across any network topology, we can't always ensure that the cloud will be able to push a notification down to an arbitrary client -- it might be behind a firewall, or NAT, or who knows what.  So instead, we have each client open up a single long-lived HTTP connection to the server.  If there are no new notifications, the request times out after 60 seconds, and then the client opens a new one.  When a new notification comes in, the cloud sends down in response to that open request from the client.  You might have heard this technique referred to as Comet or full-duplex AJAX.

I think David mentioned this in the video...we use the cloud to store all the metadata about a Live Folder (the filenames, change history, etc).  Each client synchs metadata with the cloud, which produces a list of files that are out of date on the client.  Then the client can fetch those files from anyone else who has them.  In your case, if the cloud doesn't have the files, we will fetch them from another client.  For now, we don't have a lot of client location and optimization in place, so the client is equally happy to fetch the file from the cloud (if it's there), from a client somewhere outside your LAN, or a client on the LAN.  We are working on putting more intelligence in here.
we are certainly thinking about this, yes.  There are a lot of scenario in which the easiest path is for client developers to write against the APIs that our platform will provide (see http://channel9.msdn.com/posts/Dan/Ori-Amiga-Programming-the-Mesh/ ). 
Upload to the live mesh folder, or syncronize with other users and other systems.   When I added the file to the folder that is synced with Live Mesh I see a status of uploading and see very very little progress over the course of 3 days it only got through 25% before I deleted the upload and synced it via USB or a UNC share on this which was way faster
Microsoft Communities