Presentation is loading. Please wait.

Presentation is loading. Please wait.

Live Mesh and Live Framework Oran orand.blogspot.com

Similar presentations


Presentation on theme: "Live Mesh and Live Framework Oran orand.blogspot.com"— Presentation transcript:

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

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

3

4 Live Mesh on the Mac

5 Live Framework the developer experience What’s new The platform The programming model

6

7 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

8 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

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

10 Standards-based architecture HTTP – REST Atom, RSS, JSON, POX Atom Publishing Protocol (AtomPub) FeedSync

11 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

12 Uses HTTP 1.1 semantics for… Caching Change notification Incremental state transfer

13 REST In The Mesh Resources, collections and links resource collection resource Uri EntityTag SubscriptionUri … Uri LastUpdateTime … resource link Uri Title RelationshipType …

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

15 To Do List A list of items to do http://example.com/partial.xml Buy groceries Get milk,...... FeedSync example

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

17 Live Framework Resource Model Devices Media Resources Data Entry MembersMappingsData FeedsNewsSubscription ApplicationsNewsNotification Queue Mesh Objects ScriptsProfilesMeshContacts Live Operating Environment Data Entry

18 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

19 “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.” Sync is a big deal. Danny Thorpe – founding member of Google Gears, now at Microsoft working on Live Framework tools

20 Live Operating Environment

21 WL Services Web Apps Device Cloud Always Online Live Operating Environment (https://user.windows.net)

22 WL Services Device Cloud Occasionally Connected P2P to another device Live Operating Environment (https://user.windows.net)

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

24 Authentication & Authorization Mesh Apps Overview Mesh-Enabled Web Application Pre-authenticated Pre-authorized to only access data in its own Mesh Object Pre-authorized to only access user data that it is granted access to Web Apps App runs with specific permissions specifically granted by the user (Delegated Authorization) Authentication through Domain, App ID & Secret Rich Client Apps App runs as the user, with same privilege Need Device ID & App ID Access to Cloud or Client Live Operating Environment

25 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

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

27

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

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

30 JavaScript SDK MeshApp.run = function MeshApp$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 { var meshApplication = meshApplicationContext.resource; meshApplication.get_runtimeEndpoint().get_mesh().loadAsync (Delegate.create(null, function(meshOperationContext) { MeshApp._onLoadMesh(meshOperationContext); })); } }));

31 PHP Helpers <?php require_once 'LiveFX.php'; $token = " "; $livefx = new LiveFX(); $loe = $livefx->connectWithToken($token); $contacts = $livefx->getContacts($loe['ContactsLink']); $livefx->printArray($contacts); ?>

32 “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

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

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

35

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

37

38

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

40 Speculative stuff ahead Warning ^ Unauthorized

41 New Device Types Media Center Ultra Mobile PC Windows Home Server

42 New Devices Printers

43

44 New Devices Cars, Zunes, XBoxes

45 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

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

47 Visual Resource Script Designer

48 SDKs for More languages ActionScript Python Ruby Java Perl New Resource TYpes Calendar Mail Photos Groups Favorites Mapping / geospatial Search Messenger 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

49 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

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


Download ppt "Live Mesh and Live Framework Oran orand.blogspot.com"

Similar presentations


Ads by Google