Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mesh-Enabled Web Applications


Published on

Come learn how to extend your existing Web applications and get them to live and breathe within Live Mesh. See how Mesh-enabled Web applications can be accessed from anywhere through a Web browser as well as run locally (and offline) on a user's desktop. Also see how Web applications can take full advantage of value-add Mesh services such as a dedicated sandbox, online and offline synchronized storage, automatic application updates, identity, application catalogue, social computing, and more.

Published in: Technology
  • Be the first to like this

Mesh-Enabled Web Applications

  1. 1. Mesh Services extend Web applications into Desktop by providing Access to Live user Social Graph, Synchronized Storage and Offline Access Live Services add Value to various Stages of application Development and Use Lifecycle Live Framework provides Runtimes, API Kits, Resource Model, Tools and Controls to Build, Deploy, Run and Update Mesh-Enabled Web Applications
  2. 2. Synchronized Storage Identity & Analytics Membership Mesh Hosting and Timely News Execution Application Deployment to Catalogue Devices Servicing and Update
  3. 3. Developers Users Analyze Evaluate Uninstall Discover Usage & & Learn Improve Update & Get Develop Evaluate Maintain Updates Share License & Test & License & and Market Debug Acquire Socialize Deploy & Configure Publish & Use
  4. 4. Client Applications Websites Reach Rich Highpoints 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 Challenges Challenges Deployment & Update Discoverability Occasional Connection(offline) Ability to share Rich & Native User Experience Sandboxing & Access control Scalability 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 Mesh-Enabled Web • AtomPub/RSS/XML/HTTP Application  Auto Deployment and Update • Application Mesh Object • Sync Web App Files •Data Feed(s) •Application Data  Socially Aware and Shareable •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 Website Third-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 Client LOE App Host 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. Developer Portal Register your domain and get a App ID & Secret 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 Installed User Private Application User Gives User Installs Access Application Data (Catalogue) User Creates ∞ Data Instance Has ∞ ∞ Synchronized Member User Shares Mesh Object (Live User) (DataFeeds)
  10. 10. Live Framework APIs provide capabilities to: • Manage app News News • Manage app Members • View mapped Devices App can use Live social and Members device context Apps can build their own Devices control/experience Mesh Control is the current default 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 = quot;My Titlequot;;
  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 Apps Web Application Apps • Pre-authenticated • Request for partial • App runs as the • Pre-authorized to access to user data user, with full (Delegated permission only access user • Access to Cloud or Authentication) consented data • Pass requested • Sandboxed to Client Live Services permissions, App ID endpoints browser & Secret • No token • After user management is consent, gets a required token to use against Live Services endpoint
  14. 14. All about putting users in control of their data and apps Application Secure Context • Apps not allowed to access disk, other apps and user private data • User can explicitly grant permission to private data Offers & 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 application Live Desktop Sandbox: Cookies, Iframe and domain isolation
  15. 15. 2) Consent Request 1) Add App to Mesh 5) Del Auth Token Third Party Web Site Live 6) Call with Token Website ________ User Live Services 3) Consent Request UI 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, Own Consent 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 applications Delegation 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- users Mesh Auto update service updates all the instances of a Mesh App upon use Triggered when developer uploads a new version into Application Catalogue Auto update is optional (user decides whether and when to update) App Catalogue stores and renders multiple versions of an application
  18. 18. Global Store for all Mesh-Enabled Web Applications Install From Catalogue Or Website Developer View vs End-user View Application Approval Process Applications are addressable & shareable via URL Accessed via Live Desktop web site
  19. 19. Mesh Service Mesh-enabled Web Apps Synchronizes App Files Extend Websites to run and App Data Offline on Desktop 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%