Primary Targets

By Darryl K. Taft  |  Posted 2008-04-23

Live Mesh: A Developer's Dream?

Microsoft's new Live Mesh offering could be a developer's dream.

The software giant's broad strategy to enable users to sync data and applications from all of their devices in tune with a cloud operating environment could be just the boost developers need, enabling them to write their application once and target it to multiple places.

Meanwhile, as individuals embrace a world of devices and the company's device mesh vision, and as businesses embrace cloud-based services and server-service symmetry, developers will need platforms and tools that span seamlessly from cloud to server on the back end, and from PC to browser to phone on the front end, said Ray Ozzie, chief software architect at Microsoft.

In addition, according to Abhay Parasnis, Microsoft's product unit manager for Live Mesh, from a developer level the Microsoft Sync Framework is a key technology for developers, with its flexible APIs and framework model.

"What mesh does today is it's a model built on protocols," Parasnis said. "We want to make sure developers are not pinned into a choice of writing for the Web or for custom environments."

Microsoft supports the mesh's "whole client support model through FeedSync," he added. The entire synchronization capability is built on FeedSync, which developers can use to talk to the mesh via various APIs.

Joe Wilcox speaks out on Live Mesh. Read what he has to say.

"You can write AJAX [Asynchronous JavaScript and X M L], JavaScript, or take the product features of .Net, including Windows Presentation Foundation, for rich interactive experiences," Parasnis said. At the lowest level, "you can talk to Mesh with REST [Representational State Transfer]."

Yet, for JavaScript developers, Microsoft will provide a JSON (JavaScript Object Notation) representation of mesh. "Or for a .Net developer, we give you a set of managed APIs so you can write applications in managed code. We want to enable any kind of developer-Ruby, Python, Ruby on Rails ... and we'll support ATOM, JSON, RSS FeedSync, whatever," Parasnis said.

He said developers typically are forced to make hard choices, such as whether to write their application for the Web, "where they will have reach," but they might need to give up some experiences, or they can write applications with rich experiences that are device-bound. However, "mesh gives developers a real choice. They don't have to pick one or the other," Parasnis said. "They can program to mesh and deploy to the Web or to devices."

For instance, the Live Folders feature is one of the "platform experiences" Microsoft is providing with the Mesh launch, he said. Essentially, the Live Folders scenario can only be experienced in a rich client environment. "But using the base mesh programming model, we deliver a client-side run-time or 'mesh operating system,'" Parasnis said. On top of that are managed APIs for managed code such as C#, "and through FeedSync we've made it accessible to APIs in the data center," he said. "As a developer, I can write my application and, simply by changing a URL, I can make it be a Web application, or if it's a rich client app we can use local storage."

Live Folders will enable users to take any of their data on a Windows PC and make it part of their Web mesh, "and all that stuff becomes seamlessly available to any device" in your mesh.

Microsoft plans to start with 10,000 early users. "We'll get this tech preview out and then work with the community to define the platform," Parasnis said. "This is the best example of what we talk about with our software-plus-services strategy."

However, to be truly successful with it the initiative, Microsoft has to build a broad ecosystem around it, Parasnis said.

Primary Targets

Who are the primary targets?

"As a platform offering, it's a broad horizontal offering and is applicable to a very large class of applications, such as consumer apps and canonical Web 2.0 apps," Parasnis said. "That's a big class of audience, so we'll be going after people who are writing Web services today. But we also hope to get developers who build rich client apps; they need a seamless connection to Web services in the sky. So the second major developer target area is rich client app developers, to help them extend their stuff to the Web."

In the coming months, the Live Mesh team will be adding more productivity APIs to make it simple for developers to write for the platform.

"We'll start with APIs natural to Web development, and feature stuff like JSON, AJAX, Silverlight, managed code [and] Win32," Parasnis said.

Read more here about Live Mesh. 

In addition, he said there will be many opportunities for Microsoft's developer ecosystem to deliver tools and functionality to enhance mesh. Microsoft itself is introducing no real tooling tailored to the Mesh platform. "More than likely this is going to be a community play," Parasnis said.

However, the tooling story could present an opportunity for Microsoft's Volta, which its leader refers to as the programming model for the Web. Erik Meijer, an architect in the SQL Server group, says Volta is a technology for democratizing the Web, and the Rotunda technology that runs with Volta sounds useful for the Mesh environment.

Although Microsoft officials did not say Volta would have anything to do with the Mesh technology, Volta shares some key concepts with the Mesh strategy. Volta supports tier splitting, or enabling parts of a program to run off different tiers and allowing the developer to make the decision as to which tier later in the deployment process, rather than early on in the development of the application.


Live Mesh's Four Components

Parasnis said the idea for Live Mesh came as Microsoft noticed several key trends, including the Web becoming more pervasive as a hub for applications and becoming increasingly more important for users and developers because of the multitude of devices using the Web as a rich computing platform. However, the devices have boundaries, and getting one's applications to run across their devices and other computing environments has been a hassle.

Live Mesh has four main components: a mesh platform or software-plus-services fabric, known as a "mesh operating environment," that provides a digital blueprint of the overall device mesh; a physical cloud service environment in the data center; a software component of that architecture or client platform that will connect with the cloud services; and a set of platform experiences.

In a memo to Microsoft employees, Ozzie said: "To individuals, the concept of 'My Computer' will give way to the concept of a personal mesh of devices-a means by which all of your devices are brought together, managed through the web, as a seamless whole. After identifying a device as being 'yours,' its configuration and personalization settings, its applications and their own settings, and the data it carries will be seamlessly available and synchronized across your mesh of devices. Whether for media, control or access, scenarios ranging from productivity to media and entertainment will be unified and enhanced by the concept of a device mesh."

Patrick Kerpan, chief technology officer at Cohesive Flexible Technologies, said he has high expectations for the Live Mesh technology. The interesting question about the mesh will be, "What is its deployment form factor?" Kerpan asked "A piece of CLR [Common Language Runtime]?  A Hyper-V virtual machine?  A precompiled code module more like the Google App Engine?  How 'visible' will Windows Server be-if at all-or am I calling services both WS and RESTfully?"

He said that for CohesiveFT, "we built our Elastic Server platform with these eventualities in mind, so we are excited and ready to be 'enmeshed.'"



Rocket Fuel