Successfully reported this slideshow.



Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this


  1. 1. Mesh Services extend Web applications into Desktop by providingAccess to Live user Social Graph, Synchronized Storage andOffline AccessLive Services add Value to various Stages of applicationDevelopment and Use LifecycleLive Framework provides Runtimes, API Kits, Resource Model, Toolsand Controls to Build, Deploy, Run and Update Mesh-Enabled WebApplications
  2. 2. Synchronized Storage Identity & Analytics MembershipHosting and Mesh Timely News Execution Application Deployment to Catalogue Devices Servicing and Update
  3. 3. Developers Users Analyze Evaluate Usage & Uninstall Discover & Learn ImproveUpdate & Get Develop EvaluateMaintain Updates Share License & Test & License & and Market Debug Acquire Socialize Deploy & Configure Publish & Use
  4. 4. Websites Client Applications Reach RichHighpoints Highpoints Access from Anywhere Rich and Native User Experience Instant On Updates Occasionally Connected (Offline) Sandboxed to Browser Hosted on OS Deployment & Update Discoverable via Search Shareable via URL ChallengesChallenges Deployment & Update Occasional Connection(offline) Discoverability Rich & Native User Experience Ability to share Scalability Sandboxing & Access control Mesh-Enabled Web Applications
  5. 5. Sync…Websites Sync… Devices & Social Mesh
  6. 6.  Client-side Web Apps Hosted on Live Services or Websites • DHTML, JavaScript/Ajax, Silverlight, etc Simple Feed-based Programming APIs • AtomPub/RSS/XML/HTTP Mesh-Enabled Web Application Auto Deployment and Update • Sync Web App Files • Application Mesh Object •Data Feed(s) Socially Aware and Shareable •Application Data •Settings • Sync Web App data with users and devices •User data •Associated Mesh Objects Accessed by Originating Website •Access to user data • User controlled access of data Runs in a Sandbox • Browser sandbox Online & Offline
  7. 7. Device Live WebsiteThird-Party Desktop Host Website Sandbox Mesh-Enabled Mesh Bar Sandbox Web App Mesh-Enabled Mesh Bar Silverlight/Ajax Web App Kit & APIs SilverLight/Ajax Kit & APIs AtomPub/FeedSync/XML/HTTP App Manager App Host Client LOE AtomPub/FeedSync/XML/HTTP Cloud Live Operating Envrionment Live Desktop App Synchronization Communication App Catalogue App Manager Notification Enclosure App Host PubSub Identity Storage Live Services Store Live Services
  8. 8. Register your domain and get a App ID & Secret Developer Portal Download Live Framework SDK and VS Tools Build and debug application using Visual Studio (or preferred tool)Upload Application to Azure Developer Portal (Optional) Market and publicize your app on your web site (or anywhere else)! Get user consent and access their data
  9. 9. 1 ∞Application User Installs Installed User Gives User Private Access(Catalogue) Application Data User Creates ∞ Data Instance Has ∞ ∞ Synchronized Member Mesh Object User Shares (Live User) (DataFeeds)
  10. 10. Live Framework APIs providecapabilities to:• Manage app News• Manage app Members News• View mapped DevicesApp can use Live social anddevice context MembersApps can build their own Devicescontrol/experienceMesh Control is the currentdefault implementation
  11. 11. public Page(){ InitializeComponent(); MeshApplicationService meshApp = Application.Current.GetMeshApplicationService(); meshApp.LoadCompleted += new EventHandler(app_Load); meshApp.Load();}void app_Load(object sender, EventArgs e){ MeshApplicationService meshApp = Application.Current.GetMeshApplicationService(); RenderContent(meshApp);}void RenderContent(MeshApplicationService meshApp){ //Accessing Mesh myMesh = meshApp.LiveOperatingEnvironment.Mesh; //Accessing the Application Mesh Object meshApp.Resources.Title = "My Title";
  12. 12. = 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); })); } }));
  13. 13. Mesh-Enabled Rich Client Web AppsWeb Application Apps• Pre-authenticated • Request for partial • App runs as the• Pre-authorized to access to user data user, with full only access user (Delegated permission consented data Authentication) • Access to Cloud or• Sandboxed to • Pass requested Client Live Services browser permissions, App ID endpoints• No token & Secret management is • After user consent, required gets a token to use against Live Services endpoint
  14. 14. All about putting users in control of their data and appsApplication Secure Context • Apps not allowed to access disk, other apps and user private data • User can explicitly grant permission to private dataOffers & Roles (Read, Write, Full) • Standard: Contacts, Profiles, News, LiveMeshFolder • Custom Offers: <Custom Type> of Mesh Objects (promotes app type sharing)Client Sandbox: Shared secret and cookies isolate each applicationLive Desktop Sandbox: Cookies, Iframe and domain isolation
  15. 15. 1) Add App to Mesh 2) Consent Request 5) Del Auth Token Third Party Web Site 6) Call with Token Live Website ________User Live 3) Consent Request UI Services 4) Agree to Consent
  16. 16. Application ID • Uniquely identifies a Live Mesh Application Secret • Used to authenticate a third party website • Permissions can be managed at Mesh Object, Profiles, Contacts and Resources Mesh Application level • Privileges requested/given to third party web sites Roles & Offers • Read, Contribute, OwnConsent Request • A request by a web site to get access to a Mesh resource • User explicit permission to an application to access his/her data & User Consent applicationsDelegation Token • An encrypted token representing a granted consent Refresh Token • Used to refresh a token for a granted consent
  17. 17. Updating Applications is a pain point for developers and end-usersMesh Auto update service updates all the instances of aMesh App upon useTriggered when developer uploads a new version intoApplication CatalogueAuto update is optional (user decides whether and when toupdate)App Catalogue stores and renders multiple versions of anapplication
  18. 18. Global Store for all Mesh-Enabled Web ApplicationsInstall From Catalogue Or WebsiteDeveloper View vs End-user ViewApplication Approval ProcessApplications are addressable & shareable via URLAccessed via Live Desktop web site
  19. 19. Mesh-enabled Web Apps Mesh Service Extend Websites to run Synchronizes App Files Offline on Desktop and App Data Live Framework Provides Tools and APIs Kits for Users Control Access to Building Live Connected their Apps and Data Apps
  20. 20. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  21. 21.
  22. 22. 10% 9%23% 58%