Download presentation
Presentation is loading. Please wait.
Published byFerdinand Wilson Modified over 9 years ago
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
4
Live Mesh on the Mac
5
Live Framework the developer experience What’s new The platform The programming model
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]
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.
36
This step is the non-obvious one. Tokens are no longer required.
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.