Condividi tramite


Behind Live Mesh: What is MOE?

Howdy!  This is Richard Chung, a client developer for Live Mesh. You can find me blogging sporadically as DevDuck over on red hot place.  I was one of the first developers on the Live Mesh team—I’ve been working on this stuff for over 2 years now and have been itching to talk about it!

By now, you’ve read all about Live Mesh.  Hopefully, some of it makes sense to you—you might even be able to envision how it can dramatically change the way you manage data across your devices, share and interact with your friends and family, and collaborate with peers or partners!  If not, that’s ok.  The whole concept of Live Mesh will become clearer in the months ahead, especially as more  applications and experiences are created on top of the platform.

Software + Services

When you were first introduced to Live Mesh, you probably played with the Live Desktop.  It’s pretty snazzy.  Maybe you even uploaded a few files too.  Hey, it’s a cool service!  You can store stuff in a cloud somewhere and access it anywhere using a webpage.  Great!

As I look at the statistics on the service though, I notice that a significant portion of our users have stopped here.  This pains me, as there’s a whole lot more you can do with Live Mesh.  Didn’t you hear all the hoopla about Software + Services?  Ever wonder, “Where’s the software?”

You might have noticed that on the device ring there’s a big orange button with a white ‘+’ sign.  The magic happens when you click that big orange button and opt to “add a device” to your mesh.  Click “Install” and you’ll download and install a very small program onto your machine.  Once set up, you may notice a process called MOE.exe running on your computer.  What exactly is MOE?

MOE: Mesh Operating Environment

MOE is an acronym for the “Mesh Operating Environment.”  MOE is a service composition runtime that provides a unified view of all Live Mesh services and a simple way for applications to interact with Live Mesh.  MOE is everywhere—it’s on all devices in your mesh (as “client MOE”), and it’s in the cloud (“cloud MOE”).  The two are quite similar; they provide a symmetrical and consistent programming model between client and cloud.  If you’re a developer, you’ll be able to take advantage of these flexible points of entry  to Live Mesh in the way that’s most natural for you.

That’s a lot to digest.  I won’t go into the developer story today; you’ll see more of that in the months ahead.  For the purposes of this post, I’ll only focus on client MOE.  Client MOE is at the heart of every device connected to your mesh, be it your PC or Mac or mobile.

The goals for client MOE are simple.  Here are some of them:

· To allow seamless access to a user’s mesh and all the data in it;

· To abstract away common functionality, like synchronization protocols;

· To allow existing applications to participate in a user’s mesh, by optionally leveraging the local file system;

· To provide a seamless online/offline experience (also known as “occasionally connected”) by synchronizing and caching metadata from the cloud;

· To update seamlessly, providing new features and fixes in the platform; and

· To use minimal system resources, running in the background all the time.

You’ll notice that the idea of “seamlessness” really runs through these tenets.  Obviously, since what we just released is a “Tech Preview,” we have only just started towards achieving these goals today.  Rest assured that we will get better!

Let me elaborate on a couple of these points.

Online vs. Offline

In today’s world, many applications just don’t work if they’re not connected to the Internet.  It’s much easier to write programs that assume connectivity to a service, than not.  But why should it be so hard?  MOE abstracts all this behavior for you.  It caches the metadata that’s in your mesh and automatically synchronizes it, so that talking to MOE is essentially like talking to the cloud.  And talking to MOE will always work, regardless of whether or not you have Internet connectivity.  MOE will do the heavy lifting for you by synchronizing changes you’ve made locally, whether you are online or offline, with your mesh (when you have internet connectivity).

Today’s Applications

As high as our hopes are for Live Mesh, we realize that there isn’t anything today that fully showcases the true power and potential of the mesh yet.  This is one of the reasons we’ve built simple file synchronization capability as a rich experience on top of MOE.  This way, any existing application that writes files to disk (virtually all applications) will suddenly be able to leverage Live Mesh, without *any* changes to the application.

For example, say you use Windows Live Writer to collaboratively write blog posts, but it often takes several iterations before posting.  You can now save your blog drafts into a Live Mesh folder, and suddenly those drafts are everywhere—on each of your devices and those with whom you share the folder.  An idea for a post pops into your head on the bus ride to work?  Start a post on the bus, add content to it at work, have others read it over and revise it on their own devices, add your final touches, and post at home that very evening!  All without even thinking about e-mailing attachments back and forth.

Working on Live Mesh

I’ve been working on Live Mesh for over two years now.  Prior to this I was a developer on the Windows Live Messenger service.  When I first started on Live Mesh, I thought it would be a piece of cake.  After working on huge scalable services that support millions of users, how hard could writing a little lightweight client be?  It turns out that it’s quite hard.  Synchronization may appear to be an easy problem (and in fact, there are a ton of apps out there that do simple file sync already), but it’s actually really tough to solve it in a *generic* fashion so that other applications can be built on top of it.  That’s what we’ve strived for.  (We’ll have a future post on how Live Mesh uses FeedSync underneath the covers, and what types of extensibility and other advantages that provides.  Stay tuned!)

Here, There, Everywhere

Live Mesh is about to become your new best friend.  The one you can’t live without and is always in the background to take care of things for you.

So what are you waiting for?  Download and install Live Mesh on all your devices today!  You’re missing out if you don’t.  And be sure to give us feedback and report any issues you see!

 

Technorati Tags: LiveMesh

Comments

  • Anonymous
    May 09, 2008
    I'm waiting for you to release Live Mesh to more than 10,000 in the US :) Seriously though, Live Mesh sounds clever. Here's to hoping it takes off!

  • Anonymous
    May 09, 2008
    Any word yet on when MOE will install/run without requiring UAC on Vista?  I'm very excited to try this out once I can actually install it.

  • Anonymous
    May 09, 2008
    I would love to download and try it but I need an invite! http://www.sharemesh.com/share2.php?id=542 (It says someone has sent me on, but they haven't)

  • Anonymous
    May 09, 2008
    The comment has been removed

  • Anonymous
    May 09, 2008
    Sounds really great. I'ld love to see the mobile client available. That would make Mesh so much better. Any news when we'll see the mobile client? Greets!

  • Anonymous
    May 09, 2008
    I installed MOE on my Vista notebook and on my XP old desktop. Now I have my files perfecly sync'ed. I'd like to have some web application in Live Mesh desktop just to play with my files also when I'm not on my PCs. Another cool stuff would be RSS feeds sync. I think it could be trivial 'Meshing' the folder that contains feeds on my PCs, isn't it?

  • Anonymous
    May 10, 2008
    Any thought on providing true user profile roaming across any computer on the Internet with Mesh? Currently profile roam on Windows works only in a corporate environment. Imagine being able to have the same user profile, i.e. synchronize not only my folders but also my registry and all my user settings on multiple computers, like what .MAC does now for the Mac.

  • Anonymous
    May 10, 2008
    I'm not sure if any developer API information has been released yet, but will differerent devices be able to sync content in different ways?  I'm thinking that content or resources on a laptop might be stored differently on a mobile device or some other device.  Anyway looking forward to getting access to play with live mesh.

  • Anonymous
    May 11, 2008
    If someone can send me an invite i will be happy XD ! Max_h_91 =AT= live.ca


When the next beta?

  • Anonymous
    May 11, 2008
    open standards? since solid technical details are only accessible behind microsoft firewalls, i'm going to give you msftrs a tip: open standards. if -mesh- doesn't use them, it's doomed. If msft is designing yet another technology for use in a 100% msft world, you're wasting your life away by writing software that no one will care about.

  • Anonymous
    May 12, 2008
    The comment has been removed

  • Anonymous
    May 12, 2008
    Is there a way for me to recieve an email notification everytiime one of my shared folders on the mesh is updated.

  • Anonymous
    May 12, 2008
    The comment has been removed

  • Anonymous
    May 12, 2008
    I'd love to see Mesh hooked up with Live Workspace.  I suggested this on their forum, but I'll suggest it here as well.  One of the weakest points of live workspace is the fact that there is no local copy, but saving it to the "mesh" would solve that problem... Thanks!  

  • Anonymous
    May 12, 2008
    The comment has been removed

  • Anonymous
    May 12, 2008
    So once I fill my 5GB quota how do you determine which 5GB of data to keep on the desktop?

  • Anonymous
    May 13, 2008
    @Brad Once you fill your 5GB quota, the first 5GB of data uploaded to the Live Desktop stays there, and everything else will synchronize P2P.  If you remove something from your Live Desktop, Live Mesh will push data to the cloud on a first-come, first-served basis until the quota is full again. Please note, however, that this is Tech Preview behavior.  Ultimately you will have control over what data goes to the cloud, and what data only synchronizes P2P.

  • Anonymous
    May 15, 2008
    I absolutely LOVE mesh. I have it running between my 3 work laptops and my home computer. Knowing that my "my documents" are always up to date and with me online and offline is very exiting. The remote desktop fuction, also a great feature that I use often. Like others said, intergration with the live suite will make it complete. Keep up the great work!! Fred

  • Anonymous
    June 04, 2008
    The comment has been removed

  • Anonymous
    October 08, 2008
    Hey there! I’m Viraj Mody , a developer on the Live Mesh services team. I bet some of you are curious