BB30  Arash Ghanaie-Sichanie Senior Program Manager Microsoft Corporation Live Services value-add for all types of Apps & their lifecycle Mesh-Enabled Web Apps extend.

Download Report

Transcript BB30  Arash Ghanaie-Sichanie Senior Program Manager Microsoft Corporation Live Services value-add for all types of Apps & their lifecycle Mesh-Enabled Web Apps extend.

BB30
 Arash Ghanaie-Sichanie
Senior Program Manager
Microsoft Corporation
Live Services value-add for all types of Apps & their lifecycle
Mesh-Enabled Web Apps extend Websites to Desktop
Live Framework provides APIs, Resource Model and Tools to
Build, Deploy, Run and Update Mesh-Enabled Web Applications
Synchronized
Storage
Application
Analytics
Hosting and
Execution
Membership
& Identity
Mesh
Application
Application
Catalogue
Timely News
Deployment
to Devices
Servicing and
Update
Developers
Users
Analyze
Usage &
Improve
Uninstall
Evaluate
Update &
Maintain
Develop
Market &
License
Test &
Debug
Publish &
Deploy
Discover
Get
Updates
Evaluate
Share and
Socialize
License &
Acquire
Configure
& Use
Websites
-- Reach --
•HIGH POINTS:
Client Applications
-- Rich --
•HIGH POINTS:
•ACCESS FROM ANYWHERE
•RICHER USER EXPERIENCE
•INSTANT ON UPDATES
•NATIVE USER EXPERIENCE
•SANDBOXED TO BROWSER
•OCCASIONALLY CONNECTED (OFFLINE)
•DEPLOYMENT & UPDATE
•HOSTED ON OS
•DISCOVERABLE
•SHAREABLE
•CHALLENGES:
•CHALLENGES:
•OCCASIONAL CONNECTION(OFFLINE)
•DEPLOYMENT & UPDATE
•RICH USER EXPERIENCE
•DISCOVERABILITY
•NATIVE USER EXPERIENCE
•ABILITY TO SHARE
•MUST BE HOSTED AT SCALE
•SANDBOXING & ACCESS CONTROL
Mesh-Enabled Web Applications
Sync…
Websites
Devices & Social Mesh








 Extends Websites to Desktop, Desktop to Website
 Client-side Web Apps Hosted on Live Mesh Services
 Same App on Website, Live Desktop and Devices
 DHTML, JavaScript/Ajax, Silverlight, etc
 Simple Feed-based Programming APIs
 Auto Deployment and Update
 Socially Aware and Easily Shareable
 Accessed by Originating Website with User Consent
 Runs in a Sandbox
Mesh-Enabled Web
Application
• Application Mesh Object
•Data Feed(s)
•Application Data
•Settings
•User data
•Associated Mesh Objects
•Access to user data
Device
Contoso.com
Mesh-Enabled
Web App
Silverlight/Ajax
Kit & APIs
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
Enclosure
PubSub
Synchronization
Live Services
Identity
Storage
Notification
Communication
Live Desktop App
App Manager
App Host
App Catalogue
Live Services
Store
Mesh Bar
Sandbox
Live Mesh Desktop Host
Mesh Bar
Third-Party
Website
Live Desktop
Get a App ID & Secret key
using Azure Developer
Portal
Download Mesh App
AJAX/Silverlight library and
Visual Studio Tools (Optional)
Upload Application to Azure
Developer Portal
Market and publicize your
app on your web site (or
anywhere else)
1
Application
(Catalogue)
User Installs
Installed
Application
∞
User Gives
Access
User Private
Data
User Creates
∞
Application
Instance
Has
∞
Application
Mesh Object
∞
User Shares
Application
Member
Application Catalogue
Mesh
App 1
User 1’s Mesh
Mesh
App 2
Mesh
App n
User 3’s Mesh
User 2’s Mesh
Shared
App1
App1
Instance A
Instance A
Shared
App2
Instance C
App1
App2
App3
App1
App1
App3
Instance B
Instance A
Instance A
Instance C
Instance C
Instance C





News
Members
Devices
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
Web Apps
Rich Client Apps
• 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
• App runs with specific
permissions
specifically granted by
the user (Delegated
Authorization)
• Authentication
through Domain, App
ID & Secret
• App runs as the user,
with same privilege
• Need Device ID & App
ID
• Access to Cloud or
Client Live Operating
Environment
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 to Mesh
2) Consent Request
5) Auth Token
Third Party
Web Site
6) Call Endpoint
User
3) Consent UI
4) Agree to Consent
Live
Desktop
________
Cloud
Services
Application ID
•Uniquely identifies a Live Mesh Application
Secret
•Used to authenticate a third party website
Resources
Roles & Offers
Consent Request
User Consent
Delegation Token
Refresh Token
•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 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
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
Showcasing the Promise of Live Mesh
MeshLists









Crowd Vote
Corkboard







Mesh-enabled Web Apps
Extend Web Sites to
Desktop
Various Apps can Benefit
From Live Framework
Mesh Synchronizes Apps
and Data
User is in Full Control of
their Apps and Data
Libraries
.NET FX APIs
Silverlight™ APIs
JavaScript APIs
Client Controls
Web Controls
Other
Resource Model
Atom Pub
Operations
FeedSync
CRUD
ATOM
URI-LINQ
JSON
Resource Scripts
Data
Profile
POX
RSS
Binary XML
Triggers
Auth/Z
Introspection
Applications
Tools &
Services
Developer
Portal
Communications
Identity
Groups
Folders
Catalog
Peer-to-Peer
Contacts Calendars
Photos
Application Settings
Notifications
Custom Data Types
Application Management
Presence
User
Geospatial
Mesh
News
System
Search
User Mesh
Cache
Analytics
Resource Script
Engine
Device Mesh
Sync Engine
Auth/Z
:Cloud_
Windows® Azure ™
Provisioning/
Account
Management
Analytics
Application Mesh
Visual Studio®
Tools/ Designers
Synchronization
Live Operating Environment
CRUD
Developer
Sandbox
CRUD
Resource Script
Engine
Windows
Sync Engine
Auth/Z
Files System
Peer-to-Peer
Cash/Local Store
Resource Manager
Peer-to-Cloud
Other
Embedded
:Client_
Windows Mobile


Discover Mesh app on a web site, Live Desktop Catalogue or email, etc
Give the necessary consents
(A) install this app?
(B) allow originating web site to access data in this app?
Create new Instances of the app to share with different groups of users
Use app data on Live Desktop or Device, receive updates from originating website
Delete App instance , Delete App
 Presenter Name
Title
Group
Why Mesh Applications
• Key Scenarios, Vision and Value Proposition
Anatomy of a Mesh Application
• Key Concepts, Components, Supported Technologies & Architecture
Application Lifecycle Deep Dive
• Development and Tooling
• Deployment & Hosting
• Authentication, Authorization & Sandboxing
• Sharing and Invitations
• Social Computing
• Online vs Offline
• Maintenance, Versioning & Update
Next Steps and How to Get Started
• Availability and Access
www.microsoftpdc.com
© 2008 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.