[../../commonpages/header.htm]

 

E-mail AutoDiscovery Service Business Proposal

 

Overview:


NOTE: AutoDiscovery is a proposed feature for Whistler.  The feature is contingent upon microsoft.com running the server-side service.  We need microsoft.com to decide if the service will be hosted before we can decide to take this feature. 

 

Getting Email is one of the top user scenarios.  Getting an email account configured is such a difficult task that it is the #1 PSS problem for both Outlook and Outlook Express.  The problem is that email accounts can use one of three categories of email programs: 1) standards based (POP3, IMAP, DAV); 2) proprietary (AOL, MSN, MAPI, Lotus Notes); or 3) web based (juno.com, geocities.com).  Even if the user knows what protocol to use, it's still difficult to find the exact settings.  For example, the following settings are needed for MSN:

  • Protocol: POP3/SMTP
  • POP Server: pop.mail.msn.com
  • SMTPServer: smtp.mail.msn.com
  • POP SPA: on
  • SMTP SPA: on
  • LoginName: "MSN\<username>"

 

AutoDiscovery is half client software and half server-side service.  The client software will take an email address, download the email settings from a server, and then launch the correctly type of email program.  If the email provider doesn't provide the downloadable settings, we want the user to fallback to a microsoft.com server that will contain the settings for the top 30 most commonly used email providers.  Since the top 30 email providers have so much market share (AOL, MSN, Hotmail, etc.), this service will solve the problem for about 85% of our customers.  The settings are returned by a web server via ASP scripts that return an XML file for the email provider.

 

Since we are using a generic web server, one server would be able to support 100 million customers.  We will request 3 servers to allow for growth and so a single hardware failure would not affect the service.

 

The microsoft.com team would be responsible for:

  • Setting up 3 web servers (Win2k + IIS) behind a Round Robin type DNS server.
  • Maintain the servers (backup, restore, and hardware failure recovery).

 

The Windows User Experience team or Office will be responsible for:

  • Paying for the servers
  • Providing the content (ASP & xml files)
  • Any content maintenance.  Updating the content is optional because we are under no obligation to provide this service.  Updating content consists of viewing the most frequently used sites and adding or deleting XML files as needed.

 

How AutoDiscovery Works:


AutoDiscovery will first contact the owner of the email account.  If the user enters "JoeUser@yahoo.com", we first contact http://_AutoDiscover.yahoo.com/_AutoDiscover/default.asp.  If that doesn't return any results, we contact http://yahoo.com/_AutoDiscover/default.asp.  If that doesn't return any results, we contact http://adservice.microsoft.com/default.asp.  Since yahoo.com is likely to be in the top 30 most used email providers, we will return the settings if their web server doesn't.

 

 

 

 

Setting up the Server:


The server is easy to setup because it is a stock web server.  Setup instructions:

  • Install Windows 2000 server with IIS.
  • Copy everything under \\bryanst6\nt\inetcore\outlookexpress\autodiscovery\msservice\wwwroot\ to %SystemRoot%\inetpub\wwwroot\.
  • Open IIS's Performance Tab.  Select "More than 100,000". (For Perf)
  • Open IIS's Home Directory Tab.  Turn off "Log Visits".  Make sure that only "Read" is selected.  Select "Low (IIS Process)". (For Perf)
  • Open IIS's Server Extensions Tab.  Turn off "Enable Authoring". (For Security)
  • Open IIS's Web Site Tab.  Turn off "Enable Logging". (For Perf)
  • Since the machine will have 4 processors, the number of theads IIS should use should be increased to about 20. (For Perf)

 

Server Performance:


The goal is to have the capacity to server 100 million users.  When the user asks to get their email, the information retrieved from the server will be stored locally to minimize the load on the server.  This allows the service to be used only once when the email account is setup.

 

To be generous, we will assume the each user will use the service 10 times a year.  Calculate by:

  • Assuming users will format their hard drives, reinstall the OS, and want to reconfigure their email accounts twice a year.
  • Users will reinstall their software both at work and at home.  (total so far is 4 times yearly)
  • Users will roam to other places (Library, Airport, Kiosk, visiting family, etc) and have the service configure their email.  This will happen 6 times per year per user.

 

The Server:

Microsoft.com would host the machines.  Each machine would have 4 processors and 512 MB of RAM.  This kind of a machine can easily handle 400 requests/second.

  • At 400 r/s, one server can handle 34.56 million requests a day.
  • That is 12.303 billion a year, if the load is evenly balanced
  • That is 1.2 billion a year at 10% capacity, which will allow for spikes in usage.

 

In order to server 100 million users, each using the server 10 times a year, we will need to handle 1 billion requests/year.  At 400 requests/second, one server can handle 100 million users, while it runs at 10% of capacity.  We will want to have 3 servers which will allow for growth, hardware failure, or spikes in usages.

 

Note: The network traffic will vary with the settings being downloaded, but it should remain under 781 bytes per request.  (188 bytes for the HTTP GET Request and 593 bytes for the HTTP Response)

 

Testing:


ADStress.exe is a stress app that will test the server's throughput.  It will create a specified number of threads on a test machine and each thread will flood the server with requests.  It will then generate failure rates and requests per second statistics.

 

Usage:

ADStress.exe -t 10 -s 100000 yahoo.com

This will create 10 threads to work together to generate 100,000 requests to the server for the email account for "Yahoo.com".

 

Specify the server in the registry:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\JustWorks\AutoDiscovery\GlobalServices, REG_SZ, 100=http://adservice.microsoft.com/default.asp?

 

Security:


Content is Public:

The content returned from the server is public information.  This information is normally available on the email service provider's web site.  We will get permission from the service provider before we provide the information.

 

Usage Statistics:

The only information we need to keep private is the statistics of which email provider is used.  When requests are made, we store statistics on which email provider is used (yahoo.com, juno.com, etc.) in ASP Application environment variables.  Login.asp and will admin.asp will allow an administrator to obtain these statistics.  They will be protected with a password login.  This will allow us to gauge the success rate of the service and when we should update the XML files. 

 

Maintaining the Content: (XML files)

We will use which ever mechanism the microsoft.com team recommends to securely add, delete, and replace the .xml files on the server.  This will probably be PubWiz which uses NTLM authentication.

 

 

Related Information:


 

last updated on 04/11/00 by BryanSt