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

More Related Content

PDF
IBM MobileFirst Platform 7.0 POT InApp Feedback V0.1
ODS
Testing Checklist for Mobile Applications-By Anurag Khode
PDF
Testing Mobile Apps
PPTX
Windows 7 mobile
DOCX
General test cases for mobile app
PPTX
Push Notification
PPTX
Windows phone7 subodh
DOCX
Generic test plan
IBM MobileFirst Platform 7.0 POT InApp Feedback V0.1
Testing Checklist for Mobile Applications-By Anurag Khode
Testing Mobile Apps
Windows 7 mobile
General test cases for mobile app
Push Notification
Windows phone7 subodh
Generic test plan

What's hot (20)

PDF
35602787 mobile-application-testing
PPTX
Monetizing Your Windows Phone App
PPT
Cloud based Testing Mobile Apps
PPTX
Building a chat app with windows azure mobile
PPTX
Mobile Application Testing
PDF
Experitest & Hexaware Co-Webinar
DOCX
Bugzilla
DOC
Mobile App Testing Checklist
PPT
iOS Application Testing
PPTX
software testing on whatsapp
PPTX
Mobile applications testing
PDF
Mobile Testing in the Cloud
PDF
The Essentials of Mobile App Testing and Monitoring
DOCX
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
PPTX
Mobile Testing in the Cloud
PDF
Simplex Software helps major dating app to increas 158% its market value
PPTX
Mobile application testing tutorial
ODP
Mobile Apps Security Testing -3
PPTX
Windows Phone 7 Programming Introduction
PPTX
Windows 8 & Phone 8 - an Architectural Battle Plan
35602787 mobile-application-testing
Monetizing Your Windows Phone App
Cloud based Testing Mobile Apps
Building a chat app with windows azure mobile
Mobile Application Testing
Experitest & Hexaware Co-Webinar
Bugzilla
Mobile App Testing Checklist
iOS Application Testing
software testing on whatsapp
Mobile applications testing
Mobile Testing in the Cloud
The Essentials of Mobile App Testing and Monitoring
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...
Mobile Testing in the Cloud
Simplex Software helps major dating app to increas 158% its market value
Mobile application testing tutorial
Mobile Apps Security Testing -3
Windows Phone 7 Programming Introduction
Windows 8 & Phone 8 - an Architectural Battle Plan
Ad

Viewers also liked (8)

PPTX
McGoran -- Keynote
PPTX
Writing for a Web 2.0 World
PPTX
The Value Exchange from Content to Conversion
PPT
Presentación2
DOCX
Intoxicacion
DOC
Hrdc Training Programme Details Booklet
PDF
Effective ui
PPTX
Imagen Institucional
 
McGoran -- Keynote
Writing for a Web 2.0 World
The Value Exchange from Content to Conversion
Presentación2
Intoxicacion
Hrdc Training Programme Details Booklet
Effective ui
Imagen Institucional
 
Ad

Similar to Developing Interactive Applications Using Windows Live Robots, Activities, and Alerts (20)

PPT
The Windows Live Platform: Build Applications That Have Access to 400 Million...
PPTX
Five Killer Scenarios for the Windows Live Messenger Web Toolkit
PPT
Private Public Sector Im
PPTX
Windows Phone Application Platform
PPTX
Wired2Win Webinar: Build Enterprise Apps with Live Tiles & Notifications with...
PPT
321-secure-instant-messaging-slides.ppt
PPTX
Av #2 windows messenger presentation
PPTX
Av #2 windows messenger presentation
PPTX
Developing windows phone 7 application with silverlight
PPTX
Windows phone
PPT
Introduction to the Windows Live Platform
PPTX
Mobile app developers in india |#Mobileappdevelopersinindia
PPT
Internet Message
PPT
Internet messesage
PPT
Internet Messesage
PDF
I phone application_proposal
PPTX
Silverlight and Advertising
PPTX
Consuming Web Services in Microsoft Silverlight 3
PDF
GENBAND GENApps datasheet
PPTX
Developing silverlight applications for windows phone 7 series
The Windows Live Platform: Build Applications That Have Access to 400 Million...
Five Killer Scenarios for the Windows Live Messenger Web Toolkit
Private Public Sector Im
Windows Phone Application Platform
Wired2Win Webinar: Build Enterprise Apps with Live Tiles & Notifications with...
321-secure-instant-messaging-slides.ppt
Av #2 windows messenger presentation
Av #2 windows messenger presentation
Developing windows phone 7 application with silverlight
Windows phone
Introduction to the Windows Live Platform
Mobile app developers in india |#Mobileappdevelopersinindia
Internet Message
Internet messesage
Internet Messesage
I phone application_proposal
Silverlight and Advertising
Consuming Web Services in Microsoft Silverlight 3
GENBAND GENApps datasheet
Developing silverlight applications for windows phone 7 series

More from goodfriday (20)

PPT
Narine Presentations 20051021 134052
PDF
Triunemar05
PDF
09 03 22 easter
PDF
Holy Week Easter 2009
PDF
Holt Park Easter 09 Swim
PDF
Easter Letter
PDF
April2009
PDF
Swarthmore Lentbrochure20092
PDF
Eastercard2009
PDF
Easterservices2009
PDF
Bulletin Current
PDF
Easter2009
PDF
Bulletin
PDF
March 2009 Newsletter
PDF
Mar 29 2009
PDF
Lent Easter 2009
PDF
Easterpowersports09
PDF
Easter Trading 09
PDF
Easter Brochure 2009
PDF
March April 2009 Calendar
Narine Presentations 20051021 134052
Triunemar05
09 03 22 easter
Holy Week Easter 2009
Holt Park Easter 09 Swim
Easter Letter
April2009
Swarthmore Lentbrochure20092
Eastercard2009
Easterservices2009
Bulletin Current
Easter2009
Bulletin
March 2009 Newsletter
Mar 29 2009
Lent Easter 2009
Easterpowersports09
Easter Trading 09
Easter Brochure 2009
March April 2009 Calendar

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Unlocking AI with Model Context Protocol (MCP)
PPT
Teaching material agriculture food technology
PPTX
Machine Learning_overview_presentation.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Review of recent advances in non-invasive hemoglobin estimation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Programs and apps: productivity, graphics, security and other tools
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Spectral efficient network and resource selection model in 5G networks
Network Security Unit 5.pdf for BCA BBA.
Unlocking AI with Model Context Protocol (MCP)
Teaching material agriculture food technology
Machine Learning_overview_presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Weekly Chronicles - August'25-Week II
Review of recent advances in non-invasive hemoglobin estimation

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

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