Developing Interactive Applications Using Windows Live Robots, Activities, And Alerts Campbell Gunn Program Manager Micros...
Agenda <ul><li>Introduction </li></ul><ul><li>Activity Applications </li></ul><ul><li>Alerts </li></ul><ul><li>Building an...
Windows Live™ Messenger Platform <ul><li>Build interactive multi-user applications </li></ul><ul><li>Potential audience of...
Windows Live™ Messenger Applications <ul><li>Its all about user interaction  and engagement! </li></ul>Activities, Bots, A...
Windows Live™ Messenger Applications <ul><li>Client to Client data xfer </li></ul><ul><li>Conversation interaction </li></...
Windows Live™ Messenger Applications <ul><li>Interact via the conversation, user tile, psm </li></ul><ul><li>Broad, or dom...
Windows Live™ Messenger Applications <ul><li>Published via RSS feeds </li></ul><ul><li>Draw users back into Messenger </li...
What Are MSN Alerts? <ul><li>A great new way to deliver information to consumers </li></ul><ul><li>Up to 10x more effectiv...
Windows Live Safety Scanner Activity Application ESPBilly Bot And Activity Application
 
Activity Applications
Activity Applications <ul><li>How to Create a Messenger Activity </li></ul><ul><ul><li>Multi User Activity </li></ul></ul>...
What Are Activity Apps? <ul><li>One or two user apps built on the Windows Live ™  Messenger communication infrastructure <...
Messenger Activity Platform <ul><li>Apps can be built using DHTML or ActiveX </li></ul><ul><li>Development options </li></...
Design Considerations <ul><li>IE 5.01 or greater required </li></ul><ul><li>Max window size 500 x 500 pixels </li></ul><ul...
Messenger Activity Objects <ul><li>External – Parent object </li></ul><ul><li>Channel – Client to client communication </l...
Activities Architecture Multi (Two) User Activity Activity  Application Activity  Application Servers
Required Definitions Apps must sync these events function Channel_OnRemoteAppLoaded() { // The remote application is loade...
Provisioning Restricted Functionality <ul><li>SendIM </li></ul><ul><ul><li>Exposes EnterIM & SendIM methods in the Channel...
Channel Object <ul><li>Properties </li></ul><ul><li>Data </li></ul><ul><ul><li>A variant containing the data received from...
Use Of XMLHTTP <ul><li>Given to you with IE 7.0 </li></ul><ul><ul><li>Windows.External.XMLHTTP </li></ul></ul><ul><li>Allo...
Building An Activity Application
What Is Provisioning? <ul><li>Two step process </li></ul><ul><ul><li>Enabling you to test your application </li></ul></ul>...
Provisioning Settings Creating the msgrp2p.xml file <ul><li>Enables Messenger to load an un - provisioned application for ...
Creating msgrp2p.xml Important values to set <ul><li>EntryID = ‘7’ for test apps </li></ul><ul><li>Category = ’50’ for tes...
Launching An Activity App <ul><li>Launch from Actions menu </li></ul><ul><ul><li>Start (App Name) </li></ul></ul><ul><ul><...
Debugging Setup <ul><li>Enable debugging in IE Advanced Tab </li></ul><ul><ul><li>Uncheck “Disable script debugging (IE)” ...
Debugging Tips And Tricks <ul><li>Use VisualStudio 2005.net </li></ul><ul><li>Have the debugger break post the point where...
Provisioning, Debugging And running Application
Alerts
What Are MSN Alerts?   FREE Real-Time Info Delivery A Killer Communications Platform   ! Any Kind of   RSS-Triggered   Inf...
How Do Users Sign Up?
100% User Opt-In Delivery to: Desktop Email SMS
Using PRESENCE, Our Alerts Platform Automatically  Finds  User With  RSS-Triggered  Information
…  Which DRIVES Traffic To  Your Platform
…  And Offers Stunning Click-Thru PERFORMANCE To Almost 200 Million Messenger Users <ul><li>L’Oreal  24%   and   35%   (Be...
MSN Alerts Manager Online App To Manage It All Customize Create Report
MSN Alerts Platform Partners Include… <ul><li>Windows Live Expo </li></ul><ul><li>MSNBC </li></ul><ul><li>FOX Sports </li>...
Best Part  ZERO deployment time Please visit   http:// SignUp.Alerts.MSN.com or  [email_address]   for more information MS...
Building And Deploying Windows Live Robots  John Kim Pierre Berkaloff
IM Robots Are Not Web Sites <ul><ul><li>Conversational nature </li></ul></ul><ul><ul><li>Rate of growth </li></ul></ul><ul...
Case Study Smarter Child <ul><li>Launched 4 months ago on MSN </li></ul><ul><ul><li>300 million+ queries per month </li></...
What You Need To Build Bots <ul><li>Natural Language Engine </li></ul><ul><li>Conversational System </li></ul><ul><li>User...
What You Need Natural language <ul><li>Comprehensive natural language processing engine </li></ul><ul><ul><li>Highly optim...
What You Need Conversational Centric platform <ul><li>Adaptive output  </li></ul><ul><li>IM centric User Profile Managemen...
What You Need Messenger Features Support <ul><li>Display Pictures </li></ul><ul><li>Emoticons </li></ul><ul><li>Dynamic Di...
Building An Agent <ul><li>Adding Basic Natural Language </li></ul><ul><li>Starting the Agent </li></ul><ul><li>Data Feed B...
Adding Basic Natural Language  And Conversation Structure <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li>...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Hel...
Data Binding <ul><li>5 Line binding to a RSS feed: </li></ul><ul><li>datasource GetMSNMusicFeed() => Title,Description,Lin...
In Action (Data Feed) <ul><li>? Show me the top 10 </li></ul><ul><li>TITLE, DESCRIPTION,LINK  = GetMSNMusicFeed() show 10 ...
In Action (Data Feed) <ul><li>? Show me the top 10 </li></ul><ul><li>TITLE, DESCRIPTION,LINK  = GetMSNMusicFeed() show 10 ...
User Input Binding <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? ...
In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></u...
In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></u...
In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></u...
In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></u...
In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></u...
In Action (User Input Binding) subpattern anArtist + eminem + shakira ? Downloads for ARTIST=anArtist - Here are the downl...
Adding Conversational Structure Dialogs <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li...
In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do y...
In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do y...
In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do y...
In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do y...
Adding Activity Support <ul><li>Defining which activity to use </li></ul><ul><li>function overrides MSNSLPGetAgentMainP4Ap...
In Action (Activity)
In Action (Activity)
In Action (Activity)
In Action (Activity)
In Action (Activity)
Live Bot Content Management <ul><li>Natural language and conversation structure we have built can be edited/approved and p...
Live Editing Reference questions and content
Deployment Develop for free - pay to deploy model <ul><li>Develop and Test on your Developer edition </li></ul><ul><li>Whe...
Final Thoughts <ul><li>SDK Freely available </li></ul><ul><li>6 months up to 50,000 sessions a month </li></ul><ul><li>Dow...
Developer Resources <ul><li>Windows Live™ Messenger Dev Center on MSDN </li></ul><ul><ul><li>http://msdn.microsoft.com/msn...
© 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes n...
Upcoming SlideShare
Loading in …5
×

Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

1,551 views
1,465 views

Published on

Learn how to create rich and deeply integrated applications leveraging the 200 million worldwide Windows Live Messenger users. Windows Live Messenger offers a unique platform for building applications that provide a shared experience, such as joint shopping, multi-user gaming, customer support, and more. Windows Live Messenger applications can use a combination of features including BOTS, Alerts, and Activities (which is the application window within Messenger), as well as social networking. Learn about the business opportunities exposed by the Windows Live Messenger platform and details on how to build applications that capitalize on these opportunities.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,551
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts

  1. 1. Developing Interactive Applications Using Windows Live Robots, Activities, And Alerts Campbell Gunn Program Manager Microsoft Corporation John Kim Pierre Berkaloff BTB025
  2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>Activity Applications </li></ul><ul><li>Alerts </li></ul><ul><li>Building and Deploying ‘Bots’ </li></ul>
  3. 3. Windows Live™ Messenger Platform <ul><li>Build interactive multi-user applications </li></ul><ul><li>Potential audience of 200 million users </li></ul><ul><li>Opportunities for business and hobbyist </li></ul><ul><ul><li>API access free upon accepting TOU </li></ul></ul><ul><ul><li>Serve ads and share revenue </li></ul></ul><ul><ul><li>Purchase advertising </li></ul></ul><ul><ul><li>Pay for placement </li></ul></ul><ul><li>A new twist on Mash-ups </li></ul><ul><ul><li>DHTML and AJAX style development </li></ul></ul><ul><ul><li>Multi-user apps without the pain </li></ul></ul>
  4. 4. Windows Live™ Messenger Applications <ul><li>Its all about user interaction and engagement! </li></ul>Activities, Bots, Alerts
  5. 5. Windows Live™ Messenger Applications <ul><li>Client to Client data xfer </li></ul><ul><li>Conversation interaction </li></ul><ul><li>HTTPS for secure data exchange </li></ul><ul><li>Mashup style applications (DHTML & AJAX) </li></ul>Activities , Bots, Alerts Activity Window
  6. 6. Windows Live™ Messenger Applications <ul><li>Interact via the conversation, user tile, psm </li></ul><ul><li>Broad, or domain specific interaction </li></ul><ul><li>Can be combined with Activity apps </li></ul><ul><li>Built on 3rd party hosting platforms </li></ul>Activities, Bots , Alerts Bot Conversation
  7. 7. Windows Live™ Messenger Applications <ul><li>Published via RSS feeds </li></ul><ul><li>Draw users back into Messenger </li></ul><ul><li>Launch Activities and Bots from toast </li></ul>Activities, Bots, Alerts
  8. 8. What Are MSN Alerts? <ul><li>A great new way to deliver information to consumers </li></ul><ul><li>Up to 10x more effective than simple e-mail * </li></ul><ul><ul><li>Find where customers are on network, then deliver by </li></ul></ul><ul><ul><ul><li>MSN Messenger (Desktop Alert and Tab) </li></ul></ul></ul><ul><ul><ul><li>MSN Hotmail </li></ul></ul></ul><ul><ul><ul><li>MSN Mobile* </li></ul></ul></ul><ul><ul><li>A great new way to partner with MSN </li></ul></ul><ul><ul><ul><li>Drive traffic </li></ul></ul></ul><ul><ul><ul><li>Reinforce brand </li></ul></ul></ul><ul><ul><li>Generate revenues </li></ul></ul>* Based on 1% average simple email response ** Mobile available in US and Canada only
  9. 9. Windows Live Safety Scanner Activity Application ESPBilly Bot And Activity Application
  10. 11. Activity Applications
  11. 12. Activity Applications <ul><li>How to Create a Messenger Activity </li></ul><ul><ul><li>Multi User Activity </li></ul></ul><ul><ul><ul><li>Sample Code </li></ul></ul></ul><ul><ul><li>Single User Activity </li></ul></ul><ul><ul><ul><li>Sample Code </li></ul></ul></ul><ul><li>Debugging an Activity App </li></ul><ul><li>Demo-Walk through </li></ul>
  12. 13. What Are Activity Apps? <ul><li>One or two user apps built on the Windows Live ™ Messenger communication infrastructure </li></ul><ul><ul><li>Connect Peer to Peer or through the Windows Live Cloud </li></ul></ul><ul><ul><li>Work across firewalls and proxies </li></ul></ul><ul><ul><li>Run in an IE window attached to the Messenger Conversation window </li></ul></ul><ul><li>Can be hosted on the Internet or intranet </li></ul><ul><li>Interact with </li></ul><ul><ul><li>Messenger conversation stream </li></ul></ul><ul><ul><li>Messenger user Info </li></ul></ul><ul><li>Launchable from inside or outside Messenger </li></ul><ul><ul><li>Contact based invitation model </li></ul></ul><ul><ul><li>Launch ability provisioned by Windows Live ™ </li></ul></ul>
  13. 14. Messenger Activity Platform <ul><li>Apps can be built using DHTML or ActiveX </li></ul><ul><li>Development options </li></ul><ul><ul><li>ASP.NET, C/C++, C#, Visual Basic, VBScript, JScript, HTML, DHTML, XML, and more… </li></ul></ul><ul><li>Great international support! </li></ul><ul><ul><li>Windows Live ™ Messenger Worldwide Support </li></ul></ul><ul><ul><ul><li>25+ languages </li></ul></ul></ul><ul><ul><ul><li>45+ Markets </li></ul></ul></ul><ul><li>Can be market and/or language specific </li></ul>
  14. 15. Design Considerations <ul><li>IE 5.01 or greater required </li></ul><ul><li>Max window size 500 x 500 pixels </li></ul><ul><ul><li>Recommended, but now limited </li></ul></ul><ul><li>Connection Types </li></ul><ul><ul><li>Indirect – via Messenger cloud </li></ul></ul><ul><ul><ul><li>195k per minute </li></ul></ul></ul><ul><ul><li>Direct – Peer to Peer </li></ul></ul><ul><ul><ul><li>Limited by connection bandwidth </li></ul></ul></ul><ul><li>Security considerations require that ActiveX apps be certified by Windows Live </li></ul><ul><li>No adult, gambling or hateful content </li></ul><ul><li>Application should include a Help link </li></ul>
  15. 16. Messenger Activity Objects <ul><li>External – Parent object </li></ul><ul><li>Channel – Client to client communication </li></ul><ul><li>Error – Error code and data </li></ul><ul><li>FileInfo – File transfer operations </li></ul><ul><li>Messenger – Dialer and Options dialogs </li></ul><ul><li>User – User properties </li></ul><ul><li>Users Collection – Enumerates user list </li></ul>Access restricted
  16. 17. Activities Architecture Multi (Two) User Activity Activity Application Activity Application Servers
  17. 18. Required Definitions Apps must sync these events function Channel_OnRemoteAppLoaded() { // The remote application is loaded and ready; start multiplayer } function Channel_OnRemoteAppClosed() { // Remote application is shutting down; game over } function Channel_OnDataReceived() { // Data received from remote app, inspect value of Channel.Data } function Channel_OnDataError() { // Error during SendData, may need to retry. } function Channel_OnTypeChanged() { // Inspect Channel.Type for the state of the connection (Direct, Indirect, Disconnected) } function Channel_OnAppClose() { // Messenger is shutting down, clean up application }
  18. 19. Provisioning Restricted Functionality <ul><li>SendIM </li></ul><ul><ul><li>Exposes EnterIM & SendIM methods in the Channel object </li></ul></ul><ul><li>ReceiveIM </li></ul><ul><ul><li>Exposes OnIMReceived event and IM property (ro) </li></ul></ul><ul><li>ActiveX </li></ul><ul><ul><li>load ActiveX controls in local user security context </li></ul></ul><ul><li>EnableIP </li></ul><ul><ul><li>Allows access to local & global IP addresses </li></ul></ul><ul><li>ReplaceIM </li></ul><ul><ul><li>Exposes OnIMReceived event and IM property (rw) </li></ul></ul><ul><li>SendFile </li></ul><ul><ul><li>Exposes file xfer PEMs in the Channel object </li></ul></ul><ul><li>UserProperties </li></ul><ul><ul><li>Exposes E-mail and Name in User object </li></ul></ul>
  19. 20. Channel Object <ul><li>Properties </li></ul><ul><li>Data </li></ul><ul><ul><li>A variant containing the data received from the remote application </li></ul></ul><ul><li>Error </li></ul><ul><ul><li>An Error object containing data that could not be delivered </li></ul></ul><ul><li>FileInfo </li></ul><ul><ul><li>A FileInfo object that represents a file being sent or received. Requires SendFile permission </li></ul></ul><ul><li>Type </li></ul><ul><ul><li>A ConnectionType value representing the type of connection between peers </li></ul></ul><ul><li>IM (read-only) </li></ul><ul><ul><li>String containing the instant message that was received and displayed. Requires ReceiveIM permission </li></ul></ul><ul><li>IM (read-write) </li></ul><ul><ul><li>String containing the instant message that was received. The message can be changed before it is displayed. Requires ReplaceIM permission </li></ul></ul>
  20. 21. Use Of XMLHTTP <ul><li>Given to you with IE 7.0 </li></ul><ul><ul><li>Windows.External.XMLHTTP </li></ul></ul><ul><li>Allowed with IE 6.0 </li></ul><ul><ul><li>ActiveX control allowed to load </li></ul></ul><ul><ul><li>CreateObject(XMLHTTP); </li></ul></ul><ul><li>Pull in dynamic AJAX content into your Application without IFrame manipulation </li></ul><ul><li>Support for XMLHTTP </li></ul><ul><ul><li>Get it with Windows Live Messenger Version 8.0 </li></ul></ul><ul><ul><li>MSN Messenger 7.5 and lower needs IE 7.0 </li></ul></ul>
  21. 22. Building An Activity Application
  22. 23. What Is Provisioning? <ul><li>Two step process </li></ul><ul><ul><li>Enabling you to test your application </li></ul></ul><ul><ul><li>Making your app available to Windows Live Messenger users </li></ul></ul><ul><li>Why is provisioning required for Windows Live Messenger Activities. </li></ul><ul><ul><li>Verify apps use the Activity API properly </li></ul></ul><ul><ul><li>Verify app compliance with Terms of Use </li></ul></ul><ul><ul><li>Give Messenger users a great experience </li></ul></ul>
  23. 24. Provisioning Settings Creating the msgrp2p.xml file <ul><li>Enables Messenger to load an un - provisioned application for testing </li></ul><ul><li>Same XML as used by Windows Live Servers </li></ul><ul><li>Adds item to the “Actions” menu </li></ul><ul><ul><li>Start (Name) </li></ul></ul><ul><ul><li>(Name) defined by the Name element </li></ul></ul><ul><li>Needed on both machines for testing </li></ul>
  24. 25. Creating msgrp2p.xml Important values to set <ul><li>EntryID = ‘7’ for test apps </li></ul><ul><li>Category = ’50’ for test apps </li></ul><ul><li>Sequence = ’10’ for testing </li></ul><ul><li>Name = String displayed in Actions menu </li></ul><ul><li>URL = HTTP address of Activity web page </li></ul><ul><li>Type </li></ul><ul><ul><li>App=application </li></ul></ul><ul><ul><li>Dir=game </li></ul></ul><ul><li>Height </li></ul><ul><ul><li>max=500 </li></ul></ul><ul><li>Width </li></ul><ul><ul><li>max=500 </li></ul></ul>
  25. 26. Launching An Activity App <ul><li>Launch from Actions menu </li></ul><ul><ul><li>Start (App Name) </li></ul></ul><ul><ul><li>Works prior to provisioning </li></ul></ul><ul><li>Launching From a Web Page </li></ul><ul><ul><li>Only works after provisioning </li></ul></ul><ul><ul><li>Invoke Windows Live ™ Messenger by calling: </li></ul></ul><ul><ul><ul><li>http:// messenger.msn.com/Resource/games.aspx?appID =APPID </li></ul></ul></ul><ul><ul><li>The APPID value </li></ul></ul><ul><ul><ul><li>Uniquely represents your Activity app </li></ul></ul></ul><ul><ul><ul><li>Assigned by Windows Live ™ during provisioning </li></ul></ul></ul>
  26. 27. Debugging Setup <ul><li>Enable debugging in IE Advanced Tab </li></ul><ul><ul><li>Uncheck “Disable script debugging (IE)” </li></ul></ul><ul><ul><li>Uncheck “Disable script debugging (Other)” </li></ul></ul><ul><li>Place app and resources on web server </li></ul><ul><ul><li>Multi-user apps require 2 machines to have 2 Messenger logins </li></ul></ul><ul><ul><li>Edit msgrp2p.xml to reference web server </li></ul></ul><ul><li>Place msgrp2p.xml on test machines </li></ul><ul><ul><li>C:Program FilesMSN Messenger </li></ul></ul>
  27. 28. Debugging Tips And Tricks <ul><li>Use VisualStudio 2005.net </li></ul><ul><li>Have the debugger break post the point where you want to check variables and walk backwards </li></ul><ul><li>Check the P2P channel occasionally in application </li></ul><ul><li>JavaScript: Use the “debugger” keyword to start script debugging </li></ul><ul><li>Place “debugger” keyword at top of page </li></ul><ul><ul><li>Enables vars in Immediate window, Enables setting breakpoints </li></ul></ul><ul><li>Use Alerts often </li></ul><ul><li>Use Channel.SendIM to output debugging text to conversation window </li></ul><ul><li>Reopen conversation to reload msgrp2p.xml </li></ul><ul><li>App is reloaded on every invocation </li></ul>
  28. 29. Provisioning, Debugging And running Application
  29. 30. Alerts
  30. 31. What Are MSN Alerts? FREE Real-Time Info Delivery A Killer Communications Platform ! Any Kind of RSS-Triggered Information News Sports Blogs Job hunting Travel Products
  31. 32. How Do Users Sign Up?
  32. 33. 100% User Opt-In Delivery to: Desktop Email SMS
  33. 34. Using PRESENCE, Our Alerts Platform Automatically Finds User With RSS-Triggered Information
  34. 35. … Which DRIVES Traffic To Your Platform
  35. 36. … And Offers Stunning Click-Thru PERFORMANCE To Almost 200 Million Messenger Users <ul><li>L’Oreal 24% and 35% (Beauty Alerts) </li></ul><ul><li>MSN Autos 18% (Detroit Auto Show) </li></ul><ul><li>ILoveMessenger 23% (Contest) </li></ul><ul><li>Messenger Beta 37% (Upgrade info) </li></ul>
  36. 37. MSN Alerts Manager Online App To Manage It All Customize Create Report
  37. 38. MSN Alerts Platform Partners Include… <ul><li>Windows Live Expo </li></ul><ul><li>MSNBC </li></ul><ul><li>FOX Sports </li></ul><ul><li>MSN Spaces (Australia) </li></ul><ul><li>Feedburner </li></ul><ul><li>MSN Travel </li></ul><ul><li>Money Central </li></ul><ul><li>Etc. </li></ul>
  38. 39. Best Part ZERO deployment time Please visit http:// SignUp.Alerts.MSN.com or [email_address] for more information MSN Alerts Platform is Free to Developers and Users (Ad Supported)
  39. 40. Building And Deploying Windows Live Robots John Kim Pierre Berkaloff
  40. 41. IM Robots Are Not Web Sites <ul><ul><li>Conversational nature </li></ul></ul><ul><ul><li>Rate of growth </li></ul></ul><ul><ul><li>Traffic patterns </li></ul></ul><ul><ul><ul><li>Incoming users ramp-up rates at peak times </li></ul></ul></ul><ul><ul><li>Responsiveness expectations from users </li></ul></ul><ul><li>Off the shelf Web serving technology is not practical in this environment. </li></ul><ul><ul><li>Web serving bandwidth constrained </li></ul></ul><ul><ul><li>IM Bots are CPU constrained/OS limitations constrained </li></ul></ul>
  41. 42. Case Study Smarter Child <ul><li>Launched 4 months ago on MSN </li></ul><ul><ul><li>300 million+ queries per month </li></ul></ul><ul><ul><li>3 million + unique messenger users </li></ul></ul><ul><ul><li>Traffic at peak times 300 queries per sec </li></ul></ul><ul><li>never promoted or advertised anywhere </li></ul><ul><li>viral growth (entirely word of mouth) </li></ul>[email_address]
  42. 43. What You Need To Build Bots <ul><li>Natural Language Engine </li></ul><ul><li>Conversational System </li></ul><ul><li>User Profile </li></ul><ul><li>Messenger network faceless client supporting latest large range of features </li></ul><ul><li>All these should be highly scalable and cost effective </li></ul>
  43. 44. What You Need Natural language <ul><li>Comprehensive natural language processing engine </li></ul><ul><ul><li>Highly optimized for IM scale traffic </li></ul></ul><ul><ul><li>Efficient natural language definition syntax </li></ul></ul><ul><ul><li>Support for both Static , dynamic (data-driven) and procedural lexical items </li></ul></ul><ul><li>Automatic binding of user input data to variables </li></ul><ul><li>Dialog handling </li></ul><ul><ul><li>Ability to handle complex conversational dialogs </li></ul></ul><ul><li>Context awareness </li></ul><ul><ul><li>Giving preference to the current conversation subject </li></ul></ul><ul><ul><li>Anaphora ( Ex: Can you show it to me ?} </li></ul></ul><ul><li>Ambiguity resolution </li></ul><ul><ul><li>recognizes ambiguous queries </li></ul></ul><ul><ul><li>Prompts user to clarify intent </li></ul></ul><ul><li>Language Libraries </li></ul><ul><ul><li>Language Parsing Rules </li></ul></ul><ul><ul><li>Lexicons </li></ul></ul><ul><ul><li>Industry specific Extensions </li></ul></ul><ul><li>Spell Correction </li></ul>
  44. 45. What You Need Conversational Centric platform <ul><li>Adaptive output </li></ul><ul><li>IM centric User Profile Management </li></ul><ul><li>Logging </li></ul><ul><li>Usage Reporting </li></ul><ul><li>Quality Analysis </li></ul>
  45. 46. What You Need Messenger Features Support <ul><li>Display Pictures </li></ul><ul><li>Emoticons </li></ul><ul><li>Dynamic Display Pictures </li></ul><ul><li>Pretty Name </li></ul><ul><li>Personal Messages </li></ul><ul><li>Backgrounds </li></ul><ul><li>MSN Activities </li></ul><ul><ul><li>Ability to invite </li></ul></ul><ul><ul><li>Accept invitation </li></ul></ul><ul><ul><li>Transfer information between the bot and the user </li></ul></ul><ul><ul><li>Page driving </li></ul></ul>
  46. 47. Building An Agent <ul><li>Adding Basic Natural Language </li></ul><ul><li>Starting the Agent </li></ul><ul><li>Data Feed Binding </li></ul><ul><li>User Input Binding </li></ul><ul><li>Adding Conversational Structure </li></ul><ul><li>Adding Activity Support </li></ul>
  47. 48. Adding Basic Natural Language And Conversation Structure <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  48. 49. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  49. 50. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music </li></ul>
  50. 51. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  51. 52. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  52. 53. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  53. 54. In Action <ul><li>? Hello. </li></ul><ul><li>- Hi ! Nice to see you. </li></ul><ul><li>? I am lost </li></ul><ul><li>? Help </li></ul><ul><li>- I am here to get you to discover MSN Music. </li></ul>
  54. 55. Data Binding <ul><li>5 Line binding to a RSS feed: </li></ul><ul><li>datasource GetMSNMusicFeed() => Title,Description,Link </li></ul><ul><li>http {timeout=&quot;20&quot;} </li></ul><ul><li>http://music.msn.com/services/rss.aspx?uid=00000002-0000-0000-0000-000000000000 </li></ul><ul><li>simple xml </li></ul><ul><li>rss </li></ul><ul><li>channel {loop=content} </li></ul><ul><li>item {loop=content} </li></ul><ul><li>title </li></ul><ul><li>description </li></ul><ul><li>link </li></ul><ul><li>Hooking it up to a reference request </li></ul><ul><li>? Show me the top 10 </li></ul><ul><li>TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10 </li></ul><ul><li>* Here is the Top 10: </li></ul><ul><li>- TITLE </li></ul><ul><li>* more to see more items. </li></ul>
  55. 56. In Action (Data Feed) <ul><li>? Show me the top 10 </li></ul><ul><li>TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10 </li></ul><ul><li>* Here is the Top 10: </li></ul><ul><li>- TITLE </li></ul><ul><li>* more to see more items. </li></ul>
  56. 57. In Action (Data Feed) <ul><li>? Show me the top 10 </li></ul><ul><li>TITLE, DESCRIPTION,LINK = GetMSNMusicFeed() show 10 </li></ul><ul><li>* Here is the Top 10: </li></ul><ul><li>- TITLE </li></ul><ul><li>* more to see more items. </li></ul>
  57. 58. User Input Binding <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  58. 59. In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  59. 60. In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  60. 61. In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  61. 62. In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  62. 63. In Action (User Input Binding) <ul><li>subpattern anArtist </li></ul><ul><li>+ eminem </li></ul><ul><li>+ shakira </li></ul><ul><li>? Downloads for ARTIST=anArtist </li></ul><ul><li>- Here are the downloads available for ARTIST </li></ul>
  63. 64. In Action (User Input Binding) subpattern anArtist + eminem + shakira ? Downloads for ARTIST=anArtist - Here are the downloads available for ARTIST
  64. 65. Adding Conversational Structure Dialogs <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do you want me to play it for you? </li></ul><ul><li> ? Yes </li></ul><ul><ul><li>- call DoPlayMusic(1) </li></ul></ul><ul><li>? No </li></ul><ul><li>- Ok. What would you like to do then? </li></ul>
  65. 66. In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do you want me to play it for you? </li></ul><ul><li> ? Yes </li></ul><ul><ul><li>- call DoPlayMusic(1) </li></ul></ul><ul><li>? No </li></ul><ul><li>- Ok. What would you like to do then? </li></ul>
  66. 67. In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do you want me to play it for you? </li></ul><ul><li> ? Yes </li></ul><ul><ul><li>- call DoPlayMusic(1) </li></ul></ul><ul><li>? No </li></ul><ul><li>- Ok. What would you like to do then? </li></ul>
  67. 68. In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do you want me to play it for you? </li></ul><ul><li> ? Yes </li></ul><ul><ul><li>- call DoPlayMusic(1) </li></ul></ul><ul><li>? No </li></ul><ul><li>- Ok. What would you like to do then? </li></ul>
  68. 69. In Action (Dialogs) <ul><li>? What is the number 1 song? </li></ul><ul><li>call ShowNumber1Song() </li></ul><ul><li>- Do you want me to play it for you? </li></ul><ul><li> ? Yes </li></ul><ul><ul><li>- call DoPlayMusic(1) </li></ul></ul><ul><li>? No </li></ul><ul><li>- Ok. What would you like to do then? </li></ul>
  69. 70. Adding Activity Support <ul><li>Defining which activity to use </li></ul><ul><li>function overrides MSNSLPGetAgentMainP4ApplicationName() </li></ul><ul><li>return “ MSNMusic&quot; </li></ul><ul><li>function overrides MSNSLPGetAgentMainP4ApplicationId() </li></ul><ul><li>return &quot;99991046&quot; // Application ID </li></ul><ul><li>Inviting the user </li></ul><ul><li>? Invite me again. </li></ul><ul><li>? Can you reopen the window? </li></ul><ul><li>? Invite me! </li></ul><ul><li>call MSNSLPSendInvitationToOpenMainP4Application() </li></ul><ul><li>Sending Data to the Activity </li></ul><ul><li>Procedure ShowMusicLink(LINK) </li></ul><ul><li>REQUEST = StringConcat(REQUEST, &quot;url=&quot;, LINK) </li></ul><ul><li>call MSNSLPSendData(REQUEST) </li></ul>
  70. 71. In Action (Activity)
  71. 72. In Action (Activity)
  72. 73. In Action (Activity)
  73. 74. In Action (Activity)
  74. 75. In Action (Activity)
  75. 76. Live Bot Content Management <ul><li>Natural language and conversation structure we have built can be edited/approved and published live </li></ul>
  76. 77. Live Editing Reference questions and content
  77. 78. Deployment Develop for free - pay to deploy model <ul><li>Develop and Test on your Developer edition </li></ul><ul><li>When you want to deploy at scale </li></ul><ul><ul><li>Buy a Server license </li></ul></ul><ul><li>Or </li></ul><ul><ul><li>Use Conversagent hosting services </li></ul></ul>
  78. 79. Final Thoughts <ul><li>SDK Freely available </li></ul><ul><li>6 months up to 50,000 sessions a month </li></ul><ul><li>Download available at: </li></ul><ul><ul><li>http:// buddyscript.conversagent.com </li></ul></ul><ul><li>Contact us at: </li></ul><ul><ul><li>[email_address] </li></ul></ul>
  79. 80. Developer Resources <ul><li>Windows Live™ Messenger Dev Center on MSDN </li></ul><ul><ul><li>http://msdn.microsoft.com/msn/msnmessenger/ </li></ul></ul><ul><ul><li>Activity API Download </li></ul></ul><ul><li>Windows Live™ Messenger Discussion Forum on MSDN </li></ul><ul><ul><li>http://forums.microsoft.com/msdn/showforum.aspx?forumid=112&siteid=1 </li></ul></ul><ul><li>Windows Live™ Messenger Team Space </li></ul><ul><ul><li>http://spaces.msn.com/messengersays/PersonalSpace.aspx </li></ul></ul><ul><li>Windows Live™ Alerts Signup </li></ul><ul><ul><li>http://signup.alerts.msn.com </li></ul></ul><ul><li>Windows Live™ Business Questions? </li></ul><ul><ul><li>E-mail: [email_address] </li></ul></ul>
  80. 81. © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

×