1 / 50

Live Mesh and Live Framework

Live Mesh and Live Framework. Oran Dennison @ orand orand.blogspot.com odennison@gmail.com. What is the mesh?. the consumer experience. Live Mesh. the developer experience. Live Framework. future experiences. Wild Speculation . Live Mesh on the Mac.

denton
Download Presentation

Live Mesh and Live Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com

  2. What is the mesh? the consumer experience Live Mesh the developer experience Live Framework future experiences Wild Speculation

  3. Live Mesh on the Mac

  4. Live Framework the developer experience • What’s new • The platform • The programming model

  5. Live Framework as a Platform • User-centric data & services • Over 460M users, 30B relationships • Simple standards-based web architecture • Sync, communications, and P2P • Identity, authN, authZ • App management • Analytics

  6. User-centric data • Users own their data • Can grant access to: • Other users • Roles: Full, Writer, Reader • Devices • Apps • Can see who has access to what • Can revoke access • Apps & devices access data on behalf of users

  7. User-centric services • Contacts • Profiles • Calendar • Mail • Photos • Groups • Favorites • Geospatial • And much more…

  8. Standards-based architecture • HTTP • REST • Atom, RSS, JSON, POX • Atom Publishing Protocol (AtomPub) • FeedSync

  9. Verbs • Standard HTTP methods • POST  Create a new resource entity • PUT  Update an existing resource entity • GET  Read a resource entity/collection • DELETE  Delete a resource entity • OPTIONS  Discover the capabilities • HEAD  {GET – entity body} • Consistent across the entire Resource Model • AtomPub for CRUD and FeedSync for sync • URI-LINQ mappings for queries

  10. Uses HTTP 1.1 semantics for… • Caching • Change notification • Incremental state transfer

  11. REST In The MeshResources, collections and links collection Uri EntityTag SubscriptionUri … resource Uri LastUpdateTime … resource link Uri Title RelationshipType … resource

  12. FeedSync • Synchronization via RSS and Atom feeds • Bi-directional sync (multi-master) • Preserves conflicting data • Creative Commons • Microsoft Open Specification Promise

  13. FeedSync example <rss version="2.0"> <channel> <title>To Do List</title> <description>A list of items to do</description> <link> http://example.com/partial.xml </link> <item> <title>Buy groceries</title> <description>Get milk, ... </description> <sx:sync id="item_1_myapp_2005-05-21T11:43:33Z" updates="3"> <sx:history sequence="1" when="2005-05-21T09:43:33Z" by="a9"/> <sx:conflicts ...> <item> ... </item> </sx:conflicts> </sx:sync> </item> </channel> </rss>

  14. It’s feeds all the way down! News Contacts Folders and files Custom app data Apps Devices Sharing User presence Change notifications

  15. Live Operating Environment Live Framework Resource Model Mesh Objects Notification Queue News Applications Devices Contacts Mesh Scripts Profiles Members Mappings Data Feeds News Subscription Data Entry Data Entry Media Resources

  16. Live Operating Environment • Live Framework’s service composition engine • Takes care of the hard problems… • Offline and sync • Communication • Device management, user/device presence, notifications • Exists in cloud and on all devices • All the incarnations look and feel the same • Provides a unified and consistent programming model

  17. Sync is a big deal. “I consider lack of data sync in Gears one of my greatest personal failures. I was not able to convince Google to take on the data sync problem. So I moved on.” “Live Framework imposes a data schema (Atom) on you, but for that price of admission you get free automatic data sync between devices and the cloud, as well as cloud storage and associated services such as authentication.” Danny Thorpe – founding member of Google Gears, now at Microsoft working on Live Framework tools

  18. Live Operating Environment … http://<contacts> [Client|Cloud] Live Operating Environment http://<storage> http://<directory> <peer devices>

  19. Always Online WL Services WL Services WL Services Live Services Live Operating Environment (https://user.windows.net) Web Apps HTTP Cloud Device HTTP HTTP HTTP • AJAX/SL/Flash • Apps Desktop Apps Mobile Apps

  20. Occasionally Connected WL Services WL Services WL Services Live Services Live Operating Environment (https://user.windows.net) HTTP Cloud P2P to another device Device AJAX/SL/Flash Apps Desktop Apps Live Operating Environment (http://localhost:2048) Local Cache HTTP

  21. Mesh Resource Partitioning each resource lives in a ‘home’ datacenter you are here each resource has a stable canonical URI based on its resource identifier mapping a resource identifier to its ‘home’ datacenter requires a lookup in a replicated database https://accounts.mesh.com/Identities/FKEXBSLJR3VUXEXMTPSSOVO6GM/DeviceClaims/CSOW2TEBYUSE5BD3I5QOS724UU https://accounts.clus9.bay.mesh.com/Identities/FKEXBSLJR3VUXEXMTPSSOVO6GM/DeviceClaims/CSOW2TEBYUSE5BD3I5QOS724UU each resource has a location URI that routes requests directly to its ‘home’ datacenter requests to the ‘wrong’ datacenter get redirected, and clients cache the redirect URI for future use

  22. Authentication & AuthorizationMesh Apps Overview

  23. Mesh-Enabled Web Applications • Same app on website, Live Desktop, and devices • HTML/JavaScript, Silverlight, Flash, etc. • Auto deployment and update • Socially aware and easily shareable • Accessed by originating website with user consent • Runs in a sandbox

  24. Mesh-Enabled Web App Packaging YourApp.zip • index.html • Manifest.xml • Logo.png • [folders, other static content]

  25. Live Framework Programming • HTTP • AtomPub client • Microsoft SDKs • .NET, Silverlight, JavaScript • Tools for Visual Studio • PHP library • Roll your own

  26. Coding time: Let’s party on the mesh with .NET!

  27. JavaScript SDK MeshApp.run = functionMeshApp$run() { Microsoft.LiveFX.MeshApplication.loadAsync(windows.location.hostname, Delegate.create(null, function(meshApplicationContext) { if (meshApplicationContext.state !== Microsoft.LiveFX.OperationState.Success) { MeshApp._showError('MeshApplication Load Failed');         } else { varmeshApplication = meshApplicationContext.resource; meshApplication.get_runtimeEndpoint().get_mesh().loadAsync (Delegate.create(null, function(meshOperationContext) { MeshApp._onLoadMesh(meshOperationContext);             }));         }     }));

  28. PHP Helpers • <?php • require_once'LiveFX.php'; • $token="<delegated authentication token>"; • $livefx=newLiveFX(); • $loe=$livefx->connectWithToken($token); • $contacts=$livefx->getContacts($loe['ContactsLink']); • $livefx->printArray($contacts); • ?>

  29. “A whole new world… A new fantastic point of view…” • Data deeply owned by users not apps or devices • Just feeds? I want my RDBMS/filesystem/… back! • Hierarchies • Transactions • Referential integrity • Eventually consistent systems • Conflict resolution: the dark side of sync

  30. Getting Started http://developer.mesh-ctp.com

  31. Click on Join, Continue, click clickclick, type typetype, pretend to read EULAs, Privacy Policies, Terms of Use, click clickclick, etc.

  32. This step is the non-obvious one. Tokens are no longer required.

  33. Sign in at http://developer.mesh-ctp.com

  34. Speculative stuff ahead Warning Unauthorized ^

  35. New Device Types • Media Center • Ultra Mobile PC • Windows Home Server

  36. New Devices Printers

  37. New Devices Cars, Zunes, XBoxes

  38. Even More Speculative Device Stuff • Mesh-enabled picture frames • Mesh-enabled Eye-Fi cards in cameras • Mesh-enabled NAS appliance • Intel Remote Wake Technology • Listens to Mesh Services while the device is asleep

  39. New App Types MSI,CAB, and more Note: this is an early mockup and doesn’t imply actual product plans (but wouldn’t it be cool)

  40. Visual Resource Script Designer

  41. New Resource TYpes • Calendar • Mail • Photos • Groups • Favorites • Mapping / geospatial • Search • Messenger • SDKs for More languages • ActionScript • Python • Ruby • Java • Perl • More Operating Systems • Windows Mobile • Zune • XBox • Embedded • Symbian • Linux • External Data Sources • Custom external service proxies • Facebook • Twitter • Flickr • Photobucket • SmugMug • TripIt • Dopplr • eHome • ETC. • App Marketplace • Office • Enterprise support • Streaming video & P2P • WebDAV

  42. Get meshified! As a user (you, your friends & coworkers, your mom) http://www.mesh.com As a developer http://developer.mesh-ctp.com Live Framework Forum

  43. Thank you. Any questions? Oran Dennison @orand orand.blogspot.com odennison@gmail.com

More Related