Você está na página 1de 37

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

Synchronized Storage Analytics Identity & Membership

Hosting and Execution

Mesh Application

Timely News

Catalogue Servicing and Update

Deployment to Devices

Developers

Users

Analyze Usage & Improve

Evaluate & Learn

Uninstall

Discover

Update & Maintain

Develop

Get Updates

Evaluate

License & Market Deploy & Publish

Test & Debug

Share and Socialize Configure & Use

License & Acquire

Websites
Reach Highpoints
Access from Anywhere Instant On Updates Sandboxed to Browser Deployment & Update Discoverable via Search Shareable via URL

Client Applications
Rich Highpoints
Rich and Native User Experience Occasionally Connected (Offline) Hosted on OS

Challenges Challenges
Occasional Connection(offline) Rich & Native User Experience Scalability Deployment & Update Discoverability Ability to share Sandboxing & Access control

Mesh-Enabled Web Applications

Sync

Websites
Sync

Devices & Social Mesh

Client-side Web Apps Hosted on Live Services or Websites DHTML, JavaScript/Ajax, Silverlight, etc Simple Feed-based Programming APIs AtomPub/RSS/XML/HTTP Auto Deployment and Update Sync Web App Files Socially Aware and Shareable Sync Web App data with users and devices Accessed by Originating Website User controlled access of data Runs in a Sandbox Browser sandbox Online & Offline

Mesh-Enabled Web Application Application Mesh Object Data Feed(s)


Application Data Settings User data

Associated Mesh Objects Access to user data

Contoso.com Third-Party Website

Device

Live Website

Desktop Host
Sandbox

Mesh-Enabled Web App


Silverlight/Ajax Kit & APIs

AtomPub/FeedSync/XML/HTTP App Manager App Host

Client LOE

AtomPub/FeedSync/XML/HTTP Cloud Live Operating Envrionment

Mesh Bar

Sandbox

Mesh-Enabled Web App


SilverLight/Ajax Kit & APIs

Mesh Bar

Live Desktop App

Synchronization

Communication

App Catalogue
Live Services Store

App Manager

Notification

Enclosure

App Host

PubSub

Identity

Live Services

Storage

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

User Gives Access

Application
(Catalogue)

User Installs

Installed Application
User Creates

User Private Data

Data Instance
Has

Synchronized Mesh Object


(DataFeeds)

User Shares

Member (Live User)

Live Framework APIs provide capabilities to:


Manage app News Manage app Members View mapped Devices
News

App can use Live social and device context Apps can build their own control/experience

Members

Devices

Mesh Control is the current default implementation

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";

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); })); } }));

Mesh-Enabled Web Application


Pre-authenticated Pre-authorized to only access user consented data Sandboxed to browser No token management is required

Web Apps
Request for partial access to user data (Delegated Authentication) Pass requested permissions, App ID & Secret After user consent, gets a token to use against Live Services endpoint

Rich Client Apps


App runs as the user, with full permission Access to Cloud or Client Live Services endpoints

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

1) Add App to Mesh

2) Consent Request

5) Del Auth Token

Third Party Web Site User


3) Consent Request UI 4) Agree to Consent

6) Call with Token

Live Website ________


Live Services

Application ID Secret Resources Roles & Offers Consent Request User Consent Delegation Token Refresh Token

Uniquely identifies a Live Mesh Application

Used to authenticate a third party website Permissions can be managed at Mesh Object, Profiles, Contacts and Mesh Application level

Privileges requested/given to third party web sites Read, Contribute, Own


A request by a web site to get access to a Mesh resource User explicit permission to an application to access his/her data & applications An encrypted token representing a granted consent

Used to refresh a token for a granted consent

Updating Applications is a pain point for developers and endusers


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

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

Mesh-enabled Web Apps Extend Websites to run Offline on Desktop

Mesh Service Synchronizes App Files and App Data

Live Framework Provides Tools and APIs Kits for Building Live Connected Apps

Users Control Access to their Apps and Data

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.

www.microsoft.com

10% 23%

9% 58%

Você também pode gostar