Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com [email protected].
-
Upload
ferdinand-wilson -
Category
Documents
-
view
214 -
download
0
Transcript of Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com [email protected].
![Page 2: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/2.jpg)
the consumer experience
the developer experience
future experiences
What is the mesh?Live Mesh
Live Framework
Wild Speculation
![Page 3: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/3.jpg)
![Page 4: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/4.jpg)
Live Mesh on the Mac
![Page 5: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/5.jpg)
Live Framework the developer experience
•What’s new• The platform• The programming model
![Page 6: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/6.jpg)
![Page 7: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/7.jpg)
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
![Page 8: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/8.jpg)
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
![Page 9: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/9.jpg)
User-centric services
• Contacts• Profiles• Calendar• Mail• Photos• Groups• Favorites• Geospatial• And much more…
![Page 10: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/10.jpg)
Standards-based architecture
• HTTP– REST
• Atom, RSS, JSON, POX• Atom Publishing Protocol (AtomPub)• FeedSync
![Page 11: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/11.jpg)
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
![Page 12: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/12.jpg)
Uses HTTP 1.1 semantics for…
• Caching• Change notification• Incremental state transfer
![Page 13: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/13.jpg)
REST In The MeshResources, collections and links
resource
collection
resource
UriEntityTagSubscriptionUri…
UriLastUpdateTime…
resource
linkUriTitleRelationshipType…
![Page 14: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/14.jpg)
FeedSync• Synchronization via RSS and Atom feeds• Bi-directional sync (multi-master)• Preserves conflicting data• Creative Commons• Microsoft Open Specification Promise
![Page 15: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/15.jpg)
<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>
FeedSync example
![Page 16: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/16.jpg)
It’s feeds all the way down!
NewsContactsFolders and filesCustom app dataAppsDevicesSharingUser presenceChange notifications
![Page 17: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/17.jpg)
Live Framework Resource Model
Devices
Media Resources
Data Entry
Members Mappings Data Feeds News Subscription
Applications News Notification Queue
Mesh Objects
Scripts ProfilesMesh Contacts
Live Operating Environment
Data Entry
![Page 18: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/18.jpg)
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
![Page 19: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/19.jpg)
“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
![Page 20: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/20.jpg)
Live Operating Environment
…
http://<storage>
http://<directory>
http://<contacts>
<peer devices>
[Client|Cloud] Live Operating Environment
![Page 21: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/21.jpg)
WL ServicesWL
ServicesWL ServicesLive
Services
Web Apps
HTTPHTTPHTTP
HTTP
Device
Cloud
Always Online
AJAX/SL/FlashApps
DesktopApps Mobile Apps
Live Operating Environment
(https://user.windows.net)
![Page 22: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/22.jpg)
AJAX/SL/FlashApps
DesktopApps Local
Cache
WL ServicesWL
ServicesWL ServicesLive
Services
Device
Cloud
Occasionally Connected
P2P to another device
Live Operating Environment
(http://localhost:2048)
Live Operating Environment
(https://user.windows.net)
HTTP
HTTP
![Page 23: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/23.jpg)
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
![Page 24: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/24.jpg)
Authentication & AuthorizationMesh 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
![Page 25: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/25.jpg)
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
![Page 26: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/26.jpg)
Mesh-Enabled Web App Packaging
YourApp.zip– index.html– Manifest.xml– Logo.png– [folders, other static content]
![Page 27: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/27.jpg)
![Page 28: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/28.jpg)
Live Framework Programming
• HTTP• AtomPub client• Microsoft SDKs• .NET, Silverlight, JavaScript• Tools for Visual Studio
• PHP library• Roll your own
![Page 29: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/29.jpg)
Coding time:Let’s party on the mesh with .NET!
![Page 30: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/30.jpg)
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); })); } }));
![Page 31: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/31.jpg)
PHP Helpers
<?phprequire_once 'LiveFX.php';
$token = "<delegated authentication token>";$livefx = new LiveFX();$loe = $livefx->connectWithToken($token);$contacts = $livefx-
>getContacts($loe['ContactsLink']);$livefx->printArray($contacts);
?>
![Page 32: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/32.jpg)
“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
![Page 34: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/34.jpg)
Click on Join, Continue, click click click, type type type, pretend to read EULAs, Privacy Policies, Terms of Use, click click click, etc.
![Page 35: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/35.jpg)
![Page 36: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/36.jpg)
This step is the non-obvious one.Tokens are no longer required.
![Page 37: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/37.jpg)
![Page 38: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/38.jpg)
![Page 40: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/40.jpg)
Speculative stuff ahead
Warning
^Unauthorized
![Page 41: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/41.jpg)
New Device Types•Media Center•Ultra Mobile PC•Windows Home Server
![Page 42: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/42.jpg)
New Devices Printers
![Page 43: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/43.jpg)
![Page 44: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/44.jpg)
New Devices Cars, Zunes, XBoxes
![Page 45: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/45.jpg)
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
![Page 46: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/46.jpg)
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
![Page 47: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/47.jpg)
Visual Resource Script Designer
![Page 48: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/48.jpg)
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
![Page 49: Live Mesh and Live Framework Oran Dennison @orand orand.blogspot.com odennison@gmail.com.](https://reader030.fdocuments.us/reader030/viewer/2022032612/56649e8e5503460f94b92387/html5/thumbnails/49.jpg)
Get meshified!As a user (you, your friends & coworkers, your mom)
http://www.mesh.com
As a developerhttp://developer.mesh-ctp.com
Live Framework Forum