Windows Live Services
David Chou
david.chou@microsoft.com
blogs.msdn.com/dachou
The Web Has Evolved
Personal Transactional
Relevant Interactive Social
Informational
―Nielsen/NetRatings adds ―total minutes‖ metric as best measure of Online engagement‖
“People keep asking me what I think of Nielsen/NetRatings it's done. Hence it now that ―comScore refines web metrics ―Are done!” my protest: The Web is notsocial computing themes like usersystem to more accurately reflect
how Internet users spend their time online, and not just the number of web pages they view.‖ comScore, Inc.
generated content and communication fundamentally changing the rules of – Tim Berners-Lee Founder, WorldWe think they are—in a big business? Wide Web way.‖ Forrester Research
“Marketers need to…”
Create
Create great experiences that deeply engage users
Optimize investments in infrastructure to exploit opportunities
Optimize
Grow
Grow their business by attracting new audiences
3
Services from Windows Live help marketers to…
Optimize investments in infrastructure to exploit opportunities
Leverage highly scalable “building block” services that grow with the business
Create great experiences that deeply engage users
Provide familiar, useful services that drive “stickiness” and affinity
Create
Optimize
Grow
Grow their business by attracting new audiences
Appeal to new segments and capture network effects
4
Interactions
Memories
Relationships
Locations
me
Real-time interaction with my contacts wherever I am
Interactions
Memories
Store and share my files, photos and video
Relationships
Locations
Bring my contacts with me where I go on the Web
me
Visualize [and store] where I’ve been, where I’m going and where I want to go
Experiences & Communities Secure & Respectable
Affordable & Scalable Support & Commitments
Rich capabilities Open and Accessible
465M Unique Users 2.5B Queries/Month 280M Active Accounts 280M Accounts
42 Markets 21 Languages 5B Docs, 400M Images
7.5B Messages/Day 10M Video Conversations/Day WW Coverage 1.5B Page Views/Month 150K Spaces Created/Month Multi-channel Device-independent
70M+ Spaces 120M Unique Users
85+ Mobile Carriers 32 Markets
Microsoft Services Platform
Services Server Data Services
Streaming
Tools
Microsoft Services Platform
Platform
Rich Media Experiences Service APIs & Controls Store & Share Communicate & Stay Connected Calendar IM & Presence Search LiveI D Expo Find & Locate Identity & Authentication Commerce
PopFly
Live Spaces
Expression
Silverlight Streaming
Live Contacts
Agents Visual Studio
Training & Support
Alerts
Virtual Earth
Terms of Use
Simple & Consistent
Service Level Agreements Flexible Monetization Offerings
SharePoint Designer
Flexible Monetization Options
1MUUs/M Threshold Cost
Usage Free Usage
Explicit Exchange of Value
Services begin free (including commercial usage)
Most services free under 1 million unique users (UU) / year Search up to 750,000 queries / month Virtual Earth up to 3 million tiles / month Silverlight Streaming up to 4GB with unlimited streaming and users
Cost is introduced with volume
Most services will charge $0.25 per UU/year when 1 million UU/year
threshold is reached Services will have advertising revenue sharing alternative options
Services exposed through Live-branded controls Latest details available at http://dev.live.com/terms
Familiar, useful, “sticky” services that are “building blocks” for creating vibrant communities and driving deeper engagement with your users
Comprehensive
Scalable
Predictable
Economical
Examples
Examples
Examples
Authentication Services Messaging Services
Value-Add Services Centralized Process Services Collaboration Services
Hosted Mail Hosted Data Hosted Applications
Data Services
Platform
Streaming Services
A series of APIs that enable 3rd party applications to leverage the
network, assets, and services of Windows Live
Client-side controls are provided for some services
Contacts, Photos, Virtual Earth, etc.
Access methods vary by API HTTP, HTML, SMTP, WebDAV, REST, RSS, XML-RPC, SOAP
Service Live ID Search Expo Virtual Earth Silverlight Streaming Description Authentication Web, image, ad and other searches Online marketplace Mapping and geographical services Application and media hosting Access Methods HTTP, SOAP HTTP, SOAP HTTP SOAP REST, HTML
Messenger
Spaces Photos Contacts Alerts
Real-time communication
Accessing Spaces blogs and feeds Accessing photos from Spaces Importing contact data User notification
HTML, BuddyScript
HTTP, SMTP, RSS, XML-RPC WebDAV REST SOAP
Terms of Use (TOU)
Free up to 3 million map tiles/month
More than 3 million requires additional agreement
The Tools Developers Need
Geo-coding Routing Bird’s Eye Satellite & Aerial Imagery Maps and Imagery Data-binding Non- Authenticated Access
Virtual Earth platform
Visualization
Spatial Services
The Service Enterprise Expects
SLA Support Reporting
Data Management
Rich Data Sources
17 petabytes today (and growing) 26 terabytes update / month
Enterprise Tools and Support
Virtual Earth Control
Incredibly robust control for
mapping and mashups Built-in zooming, panning, etc 3D available with ActiveX install Supports GeoRSS
Ideal for building overlays with hover
windows
John L. Scott Case Study
Integrated Virtual Earth in just three weeks 30% increase in property viewings on website Higher efficiencies for agents; lower capex and opex
The final composition of the data occurs on the client machine Fundamentally different than traditional CGI, ASP or JSP models Decentralizes server architecture, offloading capex, opex, bandwidth, power and heat to the end-user’s machine
Mapping Data Multiple Listing Data
Virtual Earth John L. Scott
Windows Live ID provides digital identity for all Microsoft
online services, and single sign-on (SSO) to other services
Windows Live, MSN, Office Live, Xbox Live, Microsoft.com, etc. Multiple devices: PC, Xbox, mobile phone, TV Multiple credential types: password, 2 factor auth, etc.
Industry Leading Platform
480 million users 1+ billion authentications per day 99.95% availability Hundreds of relying sites & services
Multiple Implementation Options
Client SDK Web SDK Relying Party Suite (RPS) SDK
Client SDK
Easy integration through managed
APIs Single sign on for Windows Live Services Pop up dialog with familiar Windows Live ID UI Enables user access to locally cached credentials Getting started Register for and download the SDK Supported Languages Any .NET language
Server SDK
Easy integration with Live ID in under 1 hr
Single sign on for Windows Live controls Getting started
Get an app ID & secret key, c&p script code, push the app live
Security
User consents through sign in Auth token is encrypted & signed Information card support
Supported platforms
We will support Linux et al. Sample code in ASP.NET, Perl, Python, PHP, Java, Ruby
Web SDK
Breadth integration Web scenario
Easy to set up and configure
No account approval No compliance review
Each account receives a unique ID
for each user upon login
Cannot share data behind the scenes
Provides single sign-on with other
Live services
Relying Party Suite (RPS) SDK
Depth integration Web scenario
Full branding of login.live.com screen
Uses common Live ID CID of user Requires significant development and configuration
Access to SDK requires Microsoft approval
Production deployment requires Microsoft compliance
review
Authentication Process
1) User Requests Web Page 2) Website returns Sign In link 3) User clicks Sign In 4) Windows Live™ ID Sign In Page is returned 5) User enters Credentials 6) User is authenticated by Windows Live™ ID 7) User is redirected to your site 8) Your application displays protected or personalized content.
3rd Party Server
Windows Live ID Authentication Server
How Web Auth Works
1) Register your site at Microsoft Services Manager by providing the URL and a Secret Key for encryption
2) Add Sign In button to site 3) User clicks ‘Sign In’ and requested to enter Windows Live™ ID Credentials on login.live.com
4) User is Redirected to your site with encrypted unique user ID. 5) Capture & store user profile items in your database.
Terms of Use
Controls
Free unlimited usage
APIs
Free up to 1 million unique users per month More than 1 million unique users:
Ad revenue sharing, or $0.25/unique user per year
More services to be added under these terms
Single shared internet-scale address book
Messenger 263 million users Office Live Windows Live Contacts XBOX Live Your Apps
Hotmail 280 million accounts
Spaces 93 million Spaces
500 million address books 30 billion contact associations 1 address book per Windows Live ID
Contacts Control
Provides programmatic access to a user’s
contact list
Client-side browser JavaScript object Can be used by any website in just 10
lines of JavaScript
Enables people to use their existing
Windows Live contact information within 3rd party websites
Authentication managed by the control
"Black box" data transfer between control
and web page
Users have full control over their personal
data
Contacts Control
Contacts API
REST-based: HTTP GET, PUT, POST and DELETE Returns XML Requires Authorization Header
GET http://cumulus.services.live.com/handle/LiveContacts/ itemUri HTTP/1.1 Authorization: DomainAuthentication at="XYZ"
http://cumulus.services.live.com/tatham@oddie.com /LiveContacts/Contacts /Contact(a4b69d14-e3eb-11db-9706-00e08161165f) /Emails/Email(22)/Address
Authentication – Client
Controls
Redirect user to Windows Live ID login page and manage
authentication Single sign-in across all controls in the same browser session
Browser client to Windows Live Service
Windows Live ID Web Authentication
Rich client to Windows Live Service
Can request a token using the WS-TRUST SOAP point
(https://dev.login.live.com/wstlogin.srf) Windows Live Client SDK (Windows clients)
Authentication – Server
Web server to Windows Live Service
Delegated access Server accesses a user’s data on their behalf User may not even be online (e.g. Address book sync)
Very early “alpha” release
Referred to as “Windows Live Data” in the doco PGUX = Permission Granting User Experience
Terms of Use (TOU)
Includes use of Search Control and SOAP API
Free up to 750k queries/month
More than 750k requires additional
agreement
Client-side Controls
Add a search box to your site in HTML
Benefits
Doesn’t require server-side
Server-side Services
SOAP API for searching:
Ads, Images, InlineAnswers,
development Doesn’t impact server performance
News, PhoneBook, QueryLocation, Spelling, Web, WordBreaker
Free access with up to
Drawbacks
Don’t [easily] get insight
25,000 queries per day per IP address
Commercial usage terms
into visitor searches
available
Basic Search Control
Advanced Search Control
Advanced Search Control
Embedding Advanced Search Control
Sample Search API Code
MSNSearchService service = new MSNSearchService(); SearchRequest request = new SearchRequest(); // You can search multiple sources at once and ask for any of the fields. // We search Web only here and ask for just the title and URL of the result. request.Requests = new SourceRequest[1]; request.Requests[0] = new SourceRequest(); request.Requests[0].Source = SourceType.Web; request.Requests[0].ResultFields = ResultFieldMask.Title | ResultFieldMask.Url; request.CultureInfo = "en-US"; request.Query = "QUERY TEXT"; request.AppID = "APP_ID"; // Get from http://search.msn.com/developer foreach (Result result in service.Search(request).Responses[0].Results) { // Process search result... }
Overview
93 million spaces created, and growing 120 million unique users per month
51 markets, 25 languages
Integration hub of Messenger, Hotmail,
Search and Gallery
Spaces Photo Control
Provides easy to use "photo picker" functionality
Client-side browser JavaScript object
Authentication managed by the control "Black box" data transfer between control and web page
Spaces Photo Control
Spaces RSS Feeds
Profile Friends
Updated Spaces
Blog
All Entries, Category Specific Entries, Comments
Photos
All Albums, Individual Albums, Comments
Lists
All Lists, Specific List
Spaces RSS Feeds
Top Level (all blog entries, albums, and lists)
http://
.spaces.live.com/feed.rss http://spaces.live.com/viewrss.aspx?cid= http://.spaces.live.com/minimal/feed.rss http://.spaces.live.com/blog/feed.rss (all entries) http://.spaces.live.com/category//feed.rss (category feed) http://.spaces.live.com/blog//feed.rss (comments feed) http://.spaces.live.com/photos/feed.rss (all albums feed) http://.spaces.live.com/photos/cns!/feed.rss (album feed) http://.spaces.live.com/photos//feed.rss (comments feed) http://.spaces.live.com/profile/feed.rss http://.spaces.live.com/friends/feed.rss http://.spaces.live.com/lists/cns!/feed.rss http://.spaces.live.com/Music/cns!/feed.rss
Minimal Feed (lists available feeds)
Blog Feeds
Photo Feeds
Profile Feed (lists published user data, such as display and contact info)
Friends Feed (lists published friends)
List Feeds (lists published lists)
Spaces API
HTTP URL entry points
http://alias.spaces.live.com/api.aspx? wx_action=addModule&wx_url=moduleUrl
http://spaces.live.com/BlogIt.aspx? Title=myTitle&SourceUrl=url&description=myDescription
MetaWeblog API Standard XML-RPC protocol for creating and managing blog entries
Spaces Blog API
URL
Sends user to Spaces site to perform tasks BlogIt API http://spaces.live.com/BlogIt.aspx?Title=& SourceURL=&description= Social Networking APIs Invite Friend http://spaces.live.com/api.aspx?wx_action=/friends.aspx& name=&cid= Add Friend View Friend View Pending Requests
MetaWeblog
Requires Email Publishing to be enabled on Space
Presence Web IM
Double blind anonymity
Instant Messenger Control
The IM Control allows a Windows Live
Messenger user to show their presence and accept messages from anonymous users The IM Control can be embedded on blogs or other pages; the Presence API (JSON) can query presence User can publish presence & receive messages. Can be embedded on blogs or other pages (Iframe) or Image
Presence API
Same opt in process as Messenger IM Control. JSON API (raises a callback)
Could be queried server-side
Messenger Bots
Automated contacts in Messenger
Easily connect to your customers, 24x7 From simple text to rich activities
Driving traffic to your assets
Extends your reach beyond traditional properties Spreads virally
Messenger Activities API
Rich applications shared between users within Messenger
Natural extensions of the IM conversation Rich multi-user AJAX-based mashups
Driving traffic to your assets and enabling new scenarios
A new way to display content New support and commerce scenarios Deeper user engagement
Available through
Placement in Messenger Launched from any web site SDK available on dev.live.com
IM Control Demo
Demo – Grant permissions (IE)
Demo – IM Control Setup
Code Toggling
Interactive Examples
Code To Copy
Demo – Embedding IM Control
Copy and paste the
code from settings screen
Go to your blog
Blog dashboard
Global Settings
Title, Description &
News
Paste in News section Note: minimum of
300px width
Demo – Using the IM Control
Demo – Select Anonymous or Authenticated
Demo – Set Display Name
Demo – Required HIP/Captcha
HIP is designed
to stop SPIM (Spam over IM) Still required for authenticated users as auth can be programmatically attained Investigating removing for authenticated users
Demo – Send Message
Demo – Message Submission
Demo – Establish Conversation
Demo – Message Exchange
Demo – Message Exchange
Advanced Integration Options
Event handling
Display Pictures Emoticons Pretty Name Personal Messages Voice Clips
MSN Activities
Ability to invite Transfer information
Dynamic Display Pictures Accept invitation
Backgrounds
between the agent and the user Page driving
Overview
always-on conversational Request access via
http://dev.live.com/agents/pilot.aspx
representatives Live Messenger network
Agents answer 10-20M+
interacted with via Windows Use BuddyScript to develop
queries per day
discussion guides Support for SOAP, file data, and other data sources Examples:
Collegefootbal-guru@hotmail.com Encarta@botmetro.net MovieScout@botmetro.net SmarterChild@hotmail.com
Overview
Platform
Natural Language Engine Conversational System User Profile Storage integrated
Development Suite
SDK Visual Studio Integration soon to be
available to public
Test server
with NL and Conversational engines
Messenger network faceless client
supporting latest large range of features
Deployment
Scalable Deployment Architecture
(MSFT)
Full Web Management Suite
Both on IM or through web
interface
SmarterChild Case Study
Launched Nov. 2005:
5 billion queries
20 million+ unique messenger users
Never promoted or advertised anywhere Viral growth (entirely word of mouth)
SmarterChild@hotmail.com
Developing an Agent
BuddyScript: language to easily write
powerful agents Full integration with Visual Studio
Template for rapid development Colorization / IntelliSense
Object browser / Go to definition
Conversation and Comprehension windows for
quick testing and debugging Code analysis tools
Deploying an Agent
Both on IM or through web interface Platform can run on:
Local machine for private testing and development
Windows Live datacenter for production and
iterative development Scalable Deployment Architecture Full Web Management Suite
Overview
Multi channel alerting framework.
Email
Toast in Messenger
(SMS) – North America only
3 modes of access:
RSS feed – 1 minute setup
Zero development Multi Category input SOAP SDK
Sample Alert Signup Process
1. User asks to sign up for Alert on 3rd party site
Browser
4. Site provides configuration URL to user
3rd Party Server
6. User is returned to URL provided by 3rd party site
5. User visits Alerts site to select delivery options
2. Site asks Alerts for URL to register user for Alerts using a site-unique username
3. Alerts provides URL for user to configure Alerts delivery options
Alerts Server
Sample Alert Delivery Process
1. Message invoked by user or other source
Browser
3rd Party Server
2. Site calls SOAP API with message details
3. Alerts delivers messages to userspecified endpoints
Alerts Server
Streaming
Overview
Online service for hosting Silverlight applications Applications served from Microsoft servers
Great scalability and availability
Limitations
4GB total storage (to be removed eventually) Videos cannot exceed 10 minutes in runtime or ~20MB Peak outbound rate is 700 Kbps (if streaming media)
No limitation on media quality or encoding
4 GB free storage 22 MB max per video (approx. 10 minutes
at 300 kbps) Pre-release
Free unlimited streaming up to DVD quality (700
kbps)
Post-release
Free up to 1 million minutes / month
Setup
Administration
Create an account at http://silverlight.live.com to
get an account ID and secret key
Content preparation
Uploads are in ZIP format Using admin browser interface Using REST API
End users
Require the Silverlight runtime Everything else is HTML/JavaScript
Windows Live Tools for Visual Studio 2008
A set of control add-ins to make incorporating Windows
Live services into your Web application easier with Visual Studio 2008 and Visual Web Developer Express 2008 The four controls included in CTP release are:
Contacts Control IDLogin Control IDLoginView Control
SilverlightStreamingMedia Control
Contacts Control
Messenger & Hotmail share contacts backend JavaScript Widget Multiple modes
Display presence of buddy & initiate conversation in Messenger
client. Allow users to securely transfer contacts to a website
Sample ASP.NET code:
Live ID Controls
Returns pair-wise unique id, no PII Zero server-side installation requirements Samples in 6 languages: .NET / Java / Perl / Python / PHP / Ruby
Can add on top of existing ASP.NET Membership implementations
Links Live ID unique identifier to ASP.NET user profile IDLoginView
Extends the ASP.NET LoginView control
Multiple views in different authentication states
Sample ASP.NET code:
IDLogin
Provides wrapper for Live ID authentication URL/Iframe
Silverlight Streaming Media Control
Makes it easy to add Silverlight applications to your Web
App.
Provides selection of stored applications.
Creates instantiation code
Extension to the ASP.NET Futures Media Control. Sample ASP.NET code:
Gadgets are:
• Mini apps that provide a portal into web services and engage customers • Simple for users to install and use • Can run in multiple places or “hosts”
Web
Gadgets run on a lightweight developer platform
• Easy to develop using basic web design technology • Low barrier to deploy based on tiered security model • “Write once, run anywhere”
Client
State and Local Gov
Membership Orgs
Education
Community government keeping residents up to date on civic developments, community events and local news
• Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
Connects membership organizations with the content, information and communities they care about • Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
University sponsored site for students and staff to connect with the university events and social organizations • Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
Capabilities
Scenario
Hospitality
Retail
Customer interaction
Travel and hospitality firm connecting with travelers and the travelers community to enrich pre and post trip experiences • Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
Retail site interacting with customers to creating community connections for easier and better acquisition and retention
Services firm engaging with new customers to answer questions about its product and services as well as follow up appointments • Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
Scenario
Capabilities
• Rich Media Experiences • Sharing & Storage • Communicate & Stay Connected • Find & Locate
Live ID Live Search Live Alerts Live Events Live Spaces Silverlight Streaming Live Data (Contacts API) Virtual Earth
Live Expo
Start experimenting with “Live-in-a-Box” Labs & Quick Apps
Get the latest details: http://dev.live.com/
Join the Windows Live developer forums on MSDN Online
Questions? Feedback?
Please fill out your evaluations
> SoCal Architect Community
http://socalmsft.com http://blogs.msdn.com/socalarchitect (team blog) http://davidcchou.com (my blog)
© 2007 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.