Freigeben über


Live Mesh as a Platform

I've been undercover for two years. After helping to get XNA off the ground, I took an opportunity to learn some new things from some very good people. The pain of working on version 1s fades after a few years, so I decided to try another one. The pain is again fresh in my mind. But that’s not what this post is about – it’s about the excitement of launching version 1.

This project requires deep domain experts on distributed systems, scale data centers, web, Windows, Mac, mobile, networking, app protocols, file systems, databases, synchronization, peer to peer, security and more. We not only had to find these people and convince them that it would be cool to pull heavy Gs on a version 1 “for a year”, we had to establish a common vocabulary and then all agree on some things. One of the very cool things about Live Mesh is that is has a broad scope, but is at the same time respectful of the specialization needed to succeed on the web, Windows, Mac and mobile. We couldn’t have achieved this without a team with deep but different experience, knowledge, practices, jargon and opinions – and that still managed to cooperate even when it got hard.

We introduced Live Mesh at the Web 2.0 conference in San Francisco this evening. We are shipping working code to a community size that we think we can support while still working on the product. I look forward to the feedback.

We operate at such a scale at Microsoft that we have developed an instinct to specialize and focus. One of the typical early conversations in a new project is the target audience: consumers or enterprise? Large or small organizations? Web, Windows, Mac or mobile? What mobile targets? We rejected this early and focused us on adding value to individuals: people who may work in enterprises and belong to multiple organizations, but who also make choices as consumers, and use multiple technologies (and who are probably frustrated with the productivity barriers that exist as a side effect of the seams the industry imposes on them). We’ve thought a lot about adding value to enterprises too, primarily by empowering individuals while keeping in mind the confidentiality expected by organizations.

Our goal was to build a platform that spanned individuals, organizations and technologies. But we didn’t want to fall into the trap of assuming that we could get it right without using and proving it ourselves. And we also believed that the easiest way to express the fundamental potential of a platform is with an experience that delights and generates even more ideas.

To that end, we built both a platform and a set of basic horizontal experiences on multiple endpoints in parallel. As someone primarily concerned with the platform, the opportunity to “see it in action” as we build it has been very valuable and made the process more fun. I like them because they blend the web, Windows and other computing endpoints in a way that preserves the “it just works” feel of the web with seamless integration into my common workflows.  The coolest thing about Live Mesh is how it smashes the abrupt mental switch that I have to make today as I move between being “on the web” and “in an application”.

This post is about the Live Mesh platform. We are not yet ready to release the Live Mesh platform, but I would like to share some of the core metaphors and building blocks we’ve been working on.

The focus for Live Mesh version 1 is to establish a Software + Services platform and ecosystem that enables unique new customer value, is unexpected by our competitors and will support broad innovation across multiple future releases. The core philosophy is to make it easy to manage information in a world where people have multiple computing experiences (i.e. PCs and applications, web sites, phones, video games, music and video devices) that they use in the context of different communities (i.e. myself, family, work, organizations).

My favorite example of a Software + Services application is Live Messenger (iTunes is another good example). The customer experience combines the best of local applications: always running, integrated with the shell and other applications, able to do background work and access local peripherals with the easy access to information that the web provides. Mesh is a Software + Services platform.

At the core of Mesh is concept of a customer’s mesh, or collection of devices, applications and data that an individual owns or regularly uses. The Mesh Account Service persists the relationship among these resources and authorizes access to them. The mesh is the foundation for a model where customers will ultimately license applications to their mesh, as opposed to an instantiation of Windows, Mac or a mobile account or a web site.  Such applications will be seamlessly installed and run from their mesh and application settings persisted across their mesh. The device ring inside of the Live Desktop is a simple visualization of the mesh, and provides a view of all devices and current device availability. The Live Mesh platform provides the ability for applications to connect to any other device, regardless of network topology (network transparency), within the mesh. This infrastructure enables the Live Mesh Remote Desktop experience today.

A key design goal of the Live Mesh data synchronization platform is to allow customers to retain the ownership of their data that is implicit with local storage while improving on the anywhere access appeal of the web. The evolution of the web as a combined experience and storage platform is increasingly forcing customers to choose between the advantages of local storage (privacy, price, performance and applications) and the browser’s implicit promise of data durability, anywhere access and in many cases, easy sharing. A side effect of the competition to store customer data in the cloud and display it in a web browser is the fragmentation of that data and subsequent loss of ownership. Individual sites like Spaces, Flickr and Facebook make sharing easy, provided the people you are sharing with also use the same site. It is in fact very difficult to share across sites and equally difficult to work on the same data across the PC, mobile and web tiers.

The fundamental unit of synchronization in Live Mesh is a mesh object. Access to mesh objects is via the common web metaphor of a feed. These building blocks provide low barriers to adoption in addition to enabling appropriate customer experience metaphors in different technology, organization and business domains. As an example, one instantiation of a mesh object is as a local (shared, aka Live) folder on a PC. This same mesh object might be instantiated as a slideshow on a web site, and as preview and upload UX on a mobile device with a built-in camera. A Live Folder is but one specialization of a mesh object. A mesh object could also represent a range of cells in Excel or a To Do list that can be accessed from anywhere. You’ll see more on this in an upcoming Channel 9 interview with our storage and synch team.

Live Mesh has been designed with the goal of enabling explicit control over the location and custody of data even in a sharing environment. Mesh objects (i.e. files, lists, etc. and associated information) are physically stored in a Live Mesh Storage Server and exposed as authenticated feeds. The Live Mesh cloud implementation of a storage server is intended to be a peer to large number of Mesh Enterprise Storage Servers that can be offered in subsequent releases. This storage and feed architecture supports a completely enterprise scoped sharing across all tiers: PC, intranet browser, and mobile in addition to home - home and home - work scenarios.

Live Mesh provides the building blocks to support the notion of groups, or communities (member lists) of people associated with a mesh object. These lists are managed via the simple email-web confirmation exchange that is popular on the web. Member lists provide both a simple permission model and a natural scoping for the collaboration features of Mesh. The basic group mechanism can be trivially extended to add entities such as organizations to participate (in an assigned “role”).  Similarly, you might invite a SpellChecker bot into a group.

Every layer of the mesh is built on top of APIs in the form of feeds. These layers enable:

The ability to add / remove devices (and someday applications) to a mesh and manage groups (by initiating invitations).

The ability to open a mutually authenticated raw communications channel, to any device in a group, regardless of current location or network topology. This channel always works, by way of cloud relay if necessary, but will automatically and transparently take the cheapest and fastest possible network path.

The ability to subscribe (“tell me when it has changed”) to resources and publish (“I changed it”) notifications against resources. The pub/sub infrastructure eliminates polling the cloud to become aware of changes. The sync engine itself uses pub/sub for sync change triggering.

An extensible “awareness” infrastructure which is scoped to the group and the information being shared. The first Live Mesh experiences provide a very simple notion of awareness – who is “using” a Live Folder now, but the infrastructure is designed to support much richer notions. The programmer sees a “durable for a login session” extensible XML document (unique per mesh object/group) that can be queried/updated at a very high rate and scale. Like everything in Live Mesh that needs to be queried, the programmer uses the pub/sub engine to signal interest in changes, and waits for notification of such changes.

A durable news event stream. Unlike awareness, which is level triggered against a schema, news is message based. The goal of news and awareness are to create a very real time intimacy around the collaboration experience.

A FeedSync based sync infrastructure that enables any device that is capable of web protocols to participate in bidirectional sync, again in the context of (fully authenticated) groups. One of the “devices” that can participate in this experience is a 3rd party web site. While the version 1 experience is primarily around syncing folders of files, FeedSync and the Live Mesh infrastructure is far more flexible. It could sync lists, tables, photo galleries, playlists, calendars, etc.

A scale blob store that can be referenced (as an enclosure) in the sync feed.

Because this is all built on feeds, all of this functionality is accessible from every endpoint that can run a browser (i.e. darn near everything). The Live Desktop, Windows Live Folders, Mac and mobile experiences are the first examples of the potential of this platform.

It’s just the beginning.

Mike Zintel

Product Unit Manager, Mesh and Storage Platform

Technorati Tags: LiveMesh

Comments

  • Anonymous
    April 22, 2008
    Tonight we introduced Live Mesh go and see www.mesh.com – follow it on TweetScan . Read the blog

  • Anonymous
    April 22, 2008
    Congratulations to the Live Mesh team, who announced their Live Mesh Technology Preview release earlier

  • Anonymous
    April 22, 2008
    Super Congratulation!!!!!!! but why mac compatible?? PLS. Only for Windows!!!!!

  • Anonymous
    April 22, 2008
    why you hatin' on the macs? we're people too

  • Anonymous
    April 23, 2008
    Wow.  Just wow.  The end of the OS as we know it has arrived.  The browser has won.

  • Anonymous
    April 23, 2008
    There have been a lot of rumors around Microsoft coming out with something that is Software + Services. 

  • Anonymous
    April 23, 2008
    On the waiting list but read the features on the initial beta. 5 Gig for the desktop isn't going to cut it. I checked and I have 2 1/4 gig of office data to share with a coworker and 4 gig of pictures to share among household desktops and laptops. I am probably not alone in needing a larger amount of storage. Might I suggest 10 or 20 Gig for the beta. This isn't even taking into consideration 12 gig of family video on the media center pc.

  • Anonymous
    April 23, 2008
    Hopefully there will be a better authentication than just user name and password (like mouse clicks on a randomly positoned screen image + user name + password) or a lot of PC's will be compromised by keyloggers and accessed through Remote Desktop.

  • Anonymous
    April 23, 2008
    I got the following email a while back from Alister Cameron and it's been sitting in my inbox waiting

  • Anonymous
    April 23, 2008
    I went to connect.microsoft.com and logged in and could not even find out how to sign up for the waiting list.

  • Anonymous
    April 23, 2008
    Absolutely fascinating, but one thing that troubled me was the logon mechanism. Will it be limited to .Net accounts or ... how will other identity providers be able to access the Mesh?

  • Anonymous
    April 23, 2008
    Last night @ 9PM Microsoft announced the existence of and first technical preview of Live Mesh ! Both

  • Anonymous
    April 23, 2008
    For great on-going information about Live Mesh follow the Live Mesh group blog . In particular, I'm keen

  • Anonymous
    April 23, 2008
    From the article: "This project requires deep domain experts on distributed systems, scale data centers, web, Windows, Mac, mobile, networking, app protocols, file systems, databases, synchronization, peer to peer, security and more.", suggests that some amount of mac expertise was required suggesting that support may come.

  • Anonymous
    April 23, 2008
    @Michael Letterle: Michael, I see it in a different way.  We think the rich client will continue to thrive, and will be the main way people interact with the Mesh – that’s why we build the client Mesh Operating Environment and the client platform experiences.  But to keep the client relevant in today’s world, it has to deeply understand the Web and your digital relationships.  And likewise, I think the market has proven that users expect their web services to have a client experience. -Jeremy Live Mesh program manager

  • Anonymous
    April 23, 2008
    @Bryan Guidizi: The good news is that Live Mesh works fine beyond 5GB, you just can't store more than 5GB of data in our cloud storage service for now.  Beyond 5GB we'll rely on P2P communications for synch.

  • Anonymous
    April 23, 2008
    Shrinking the 'App Surface' - Microsoft Mesh

  • Anonymous
    April 23, 2008
    @Security:  Two quick points.  First, in the technology preview your Live Mesh credentials are only sufficient to establish the session with the remote machine -- once it's connected, you still have to enter your regular machine account creds.  Second, mult-factor auth is definitely a design point for us, and something we'll support over time.

  • Anonymous
    April 23, 2008
    @Mark Figueredo: https://connect.microsoft.com/SelfNomination.aspx?ProgramID=2001&pageType=1&SiteID=425 should do the trick.

  • Anonymous
    April 23, 2008
    regarding Mac support -- we definitely want our Mac Office customers to be able to participate in the Mesh!  Our Mac client is in progress, we actually provided a demo of it to some bloggers and press earlier this week.  Stay tuned...

  • Anonymous
    April 23, 2008
    Didn't get to the invite page in time. Any invites left? Please!!

  • Anonymous
    April 23, 2008
    since no one has asked, what about Linux support?  20% of phones will be running Linux next year and a lot of desktop/servers run Linux so I view it as an important platform if you're really serious about multi-platform support...

  • Anonymous
    April 23, 2008
    Way to go team! I am super proud... here, there and everywhere. Missing you all!

  • Anonymous
    April 23, 2008
    Microsoft propose - en technical preview limitée - une nouvelle ère de connectivité au travers du Web

  • Anonymous
    April 24, 2008
    For those of you that attended the Canadian Strategic Architect forum a couple of weeks ago, Live Mesh

  • Anonymous
    April 24, 2008
    Looking forward to Mac and (particularly) Windows Mobile support! You should fix your blog template so it includes the RSS/Atom links you know :) http://blogs.msdn.com/livemesh/rss.xml etc:) Oh, also looking forward to an invite! Paul [at] modaco [dt] com

  • Anonymous
    April 25, 2008
    Very nice indeed, I am looking forward to hearing more about using Live Mesh for application development. Also, the security of providing RDP access as someone else mentioned. I was thinking a client certificate for authentication to the boxes themselves?

  • Anonymous
    April 25, 2008
    I'm lovin' this Live Mesh! I hope that when drag-and-drop are added, it'll be tres cool. I also hope that when the Mac is added, digital devices such as iPhone/iPod will be also be included in the mix.

  • Anonymous
    April 25, 2008
    The setup installer does not proceed on Vista if my account is an Administrators member and UAC is off. I need these settings in order to use/debug Visual Studio and MSSQL. What am I supposed to do?

  • Anonymous
    April 25, 2008
    Ray Ozzie a vorbit de Mesh la MIX08 . Săptămâna asta s-a lansat un tech preview limitat. Este/va

  • Anonymous
    April 25, 2008
    CAN NO ONE EXPLAIN WHAT LIVE MESH IS IN FEW WORDS ? UNTIL THEN I SEE NO SUCCESS

  • Anonymous
    April 25, 2008
    @Lou Rainaldi: >>the security of providing RDP access as someone else mentioned. See http://dev.live.com/img/files/LiveMesh1stLook.pdf, which includes: Live Mesh Remote Desktop builds on the Windows Remote Desktop Protocol, enhancing it in four key ways:  End-to-end connectivity that is accomplished through a combination of client logic and hosted relays, enabling you to connect regardless of network topology, firewalls, or network address translation.  Device presence that enables you to see which of your devices are available for a remote connection.  Stronger connection security, in which ports are opened only when authorized requests are routed through the Live Mesh rather than leaving ports open to receive connections—and with only the source of a request able to connect to opened ports. This is a more robust approach to security than simply requiring a user name and password.  End-to-end encryption, in which traffic is encrypted with a key known only to the two devices involved in the session, making it extremely difficult for any other device (including Live Services Platform relays) to snoop on the traffic.

  • Anonymous
    April 25, 2008
    @Paul O'Brien yikes, good catch!  I gues the template we're using hides that info.  I'm adding them now the links section.

  • Anonymous
    April 27, 2008
    There's a new technology verb in town. Google's has 'Google it'. Now I can see the term

  • Anonymous
    April 27, 2008
    is finally out here . Live Mesh is about software + services, and connecting and bringing devices together

  • Anonymous
    April 27, 2008
        Idea brillante, tecnologia tutta nuova... Vederemo le evoluzioni future! Le premesse ci

  • Anonymous
    April 29, 2008
    I just found this post and it made a lot clear about Live Mess and it features! solo-technology.com/blog/2008/04/26/microsoft-mesh-beta-first-look/

  • Anonymous
    April 29, 2008
    @SC >>The setup installer does not proceed on Vista if my account is an Administrators member and UAC is off. I need these settings in order to use/debug Visual Studio and MSSQL. Some details on why need UAC are here, http://blogs.msdn.com/livemesh/archive/2008/04/28/get-mesh-and-why-we-require-uac.aspx . I run Visual Studio on Vista with UAC and can debug just fine -- I just make sure to launch VS elevated.

  • Anonymous
    May 05, 2008
    For several decades after the invention of the computer, the dominant constraint was processor cost.

  • Anonymous
    May 09, 2008
    Syncing NOT on Mesh... I think it would be great to have some folder that are necessarily stored on the mesh but still synced via the system.  If I have some huge files that I want to backup and don't have enough space on the mesh, the mesh could still track the updating and syncing.  Maybe the mesh would store metadata such as filenames, size, modified date, etc and you could even traverse the directory structure.  The files could transfer P-2-P with the mesh facilitating.  I have 60 gigs of photos of my son for instance that I would love to use this for instead of having yet another number for this.

  • Anonymous
    May 09, 2008
    I also wanted to say that I install the Mesh today and it was AWESOME.   I emailed all my developer friends to brag, rant and rave.   I LOVE Microsoft!!

  • Anonymous
    May 12, 2008
    @zadiggle We've seen a similar suggestion in the Wish List sticky thread on the Live Mesh forums. http://forums.community.microsoft.com/en/LiveMesh/threads If you want to add your scenario to the thread that would be great.  We're keeping a tally of oft-requested features.  And thank you for the positive feedback!

  • Anonymous
    May 16, 2008
    I have been having a great time with mesh - thanks guys

  • Anonymous
    May 24, 2008
    There's a new technology verb in town. Google's has 'Google it'. Now I can see the term

  • Anonymous
    July 11, 2008
    We are delighted to announce the release of our next major update, which will be available later today.

  • Anonymous
    July 13, 2008
    We are delighted to announce the release of our next major update, which will be available later today

  • Anonymous
    July 16, 2008
    The Live Mesh product team just announced that it is available for everyone in the US (without the need

  • Anonymous
    July 16, 2008
    digg_url = "http://blogs.msdn.com/pblog/archive/2008/07/16/live-mesh-available-for-everyone-with-a-trick-at-least.aspx";digg_title

  • Anonymous
    July 17, 2008
    The Windows Live Mesh preview was broadened this week so you can get an early peek at the device and

  • Anonymous
    July 20, 2008
    De Windows Live Mesh preview is vorige week uitgebreid zodat je een idee kunt krijgen bij devices en

  • Anonymous
    September 03, 2008
    The comment has been removed

  • Anonymous
    November 17, 2008
    Microsoft Windows Live Services er en kombination af Web Applications og programmer du kan downloade