A few observations

  • Devices : diversity on the rise and my computer => my mesh
  • Data : are everywhere (in cloud and on devices), and often shared
  • Applications : span devices and are getting social
  • People : an integral part of our digital life

Hard problems

  • Data composition : different localizations, formats, security models
  • Making data available, efficiently and consistently
  • Synchronized consistent cache
  • Writing robust communication code
  • Dealing with async and managing state
  • Dealing with disjoint progamming models
  • Centralized resource management : if every app does its sync, networking, caching, notifications, this requires a lot of resources

Live Operating Environment - LOE

The live framework provides a programmable schema in the cloud (cached reflection on all my devices and provides a unified and consistent programming model (whether you are running locally or against the cloud).

The live framework takes care of the hard problems, it exists in cloud (Cloud OE) and on all devices (Device OE).

The live framework comprises a service composition engine that gives you a starting point to build applications for this digital world.

Demo : if I look at my list of contacts, I can read them from basic HTTP requests. Do it in .Net C# from visual studio. Do it in Python. I can post / update infos.

Live Operating Environment at http://user.windows.net is always online. If your application is running locally on a device, use the local LOE, do not need to go to Windows.Net.

Demo : Cloud and client symetry. You can ask if you are online or not, you can check for consistency, and you have conflict resolution levels.

Inside the LOE

The LOE host is Web or Desktop. It runs a CLR which runs the LOE engine.

LOE engine comprises cache, services proxies, sync engines and a scheduler.

LOE has capabilities : script engine, formatters, resource manager, FS manager, P2P coms, HTTP coms, Device Mngmt, Notifications, Auth/AuthZ, Analytics, API Throttler, App Engine.

2 kind of analytics : technical about your apps, and business about what your uses are doing.

Everything is a resource and URL addressable, based on a simpler infoset, projected onto wire as Atom, JSON, POX…

Resource Scripts

A DSL to do AtomPub and FeedSync. The grammar includes statements for CRUD, sync, control flow and data binding.

Usage patterns : powerful batching model and pre/post triggers associated with resources

Will provide native XAML and DLR bindings in future.

Late binding of execution locality (local versus remote). Execute this part of the script here, this other part there, and mix the results.

Capabilities :

  • It exposes functions and control flow statements : sequence, interleave (threads), conditional (if else, lambda expressions), while. and allow for assigning properties of 2 statements.
  • Basic authoring : build the DOM, compile, execute.
  • A single post can execute a large program.
  • Later, you will be able to persist the scripts.
  • No native silverlight, DLR, JS support, but it is coming.

Demo