262 lines
13 KiB
HTML
262 lines
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<!-- saved from url=(0042) -->
|
|
<HTML><HEAD><TITLE>Account AutoDiscovery</TITLE>
|
|
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
|
|
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
|
|
|
|
<LINK href="nepstyles.css" rel=stylesheet type=text/css>
|
|
<STYLE type=text/css></STYLE>
|
|
|
|
<meta name="Microsoft Border" content="none">
|
|
</HEAD>
|
|
<BODY bgColor=#ffffff link=#4e8ff1><!--webbot bot="Include" U-Include="../../commonpages/header.htm" TAG="BODY" startspan --><strong>[../../commonpages/header.htm]</strong><!--webbot bot="Include" endspan i-checksum="53214" -->
|
|
|
|
<P align=left> </P>
|
|
<TABLE border=0 width=640>
|
|
<TBODY>
|
|
<TR>
|
|
<TD vAlign=top width=110>
|
|
<H3></H3></TD>
|
|
<TD vAlign=top width=530>
|
|
<P class=header-page>E-mail AutoDiscovery Service Business Proposal</P>
|
|
</TD></TR>
|
|
<TR>
|
|
<TD vAlign=top width=110></TD>
|
|
<TD vAlign=top width=530> </TD></TR>
|
|
<TR>
|
|
<TD vAlign=top width=110>
|
|
<DIV></DIV></TD>
|
|
<TD vAlign=top width=530>
|
|
<P class=header>Overview:</P>
|
|
<HR SIZE=1>
|
|
|
|
<P><b>NOTE:</b> <font color="#4E8FF1">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. </font>
|
|
|
|
<P>
|
|
|
|
<P>Getting Email is one of the top user scenarios. Getting an email account
|
|
<i> configured</i> 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:
|
|
<ul>
|
|
<li>Protocol: POP3/SMTP</li>
|
|
<li>POP Server: pop.mail.msn.com</li>
|
|
<li>SMTPServer: smtp.mail.msn.com</li>
|
|
<li>POP SPA: on</li>
|
|
<li>SMTP SPA: on</li>
|
|
<li>LoginName: "MSN\<username>"</li>
|
|
</ul>
|
|
|
|
<P>
|
|
|
|
<P>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.
|
|
|
|
<P>
|
|
|
|
<P>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.
|
|
|
|
<P>
|
|
|
|
<P>The microsoft.com team would be responsible for:
|
|
<ul>
|
|
<li>Setting up 3 web servers (Win2k + IIS) behind a Round Robin type DNS
|
|
server.</li>
|
|
<li>Maintain the servers (backup, restore, and hardware failure
|
|
recovery).</li>
|
|
</ul>
|
|
<p> </p>
|
|
<p>The Windows User Experience team or Office will be responsible for:</p>
|
|
|
|
<ul>
|
|
<li>Paying for the servers</li>
|
|
<li>Providing the content (ASP & xml files)</li>
|
|
<li>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.</li>
|
|
</ul>
|
|
|
|
<P>
|
|
<P class=header><b>How AutoDiscovery Works:</b></P>
|
|
<HR SIZE=1>
|
|
|
|
<p> AutoDiscovery will first contact the owner of the email account.
|
|
If the user enters "<a href="mailto:JoeUser@yahoo.com">JoeUser@yahoo.com</a>",
|
|
we first contact <a href="http://_AutoDiscover.yahoo.com/_AutoDiscover/default.asp">http://_AutoDiscover.yahoo.com/_AutoDiscover/default.asp</a>.
|
|
If that doesn't return any results, we contact <a href="http://_AutoDiscover.yahoo.com/_AutoDiscover/default.asp">http://yahoo.com/_AutoDiscover/default.asp</a>.
|
|
If that doesn't return any results, we contact <a href="http://_AutoDiscover.yahoo.com/_AutoDiscover/default.asp">http://adservice.microsoft.com/default.asp</a>.
|
|
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.</p>
|
|
<P> </P>
|
|
<P> </P>
|
|
<P> </P>
|
|
<P><A href="#top"><IMG border=0 height=26 src="top.gif" width=23></A>
|
|
<P>
|
|
|
|
<P class=header><b>Setting up the Server:</b></P>
|
|
<HR SIZE=1>
|
|
|
|
<P>The server is easy to setup because it is a stock web server.
|
|
Setup instructions:</P>
|
|
|
|
<ul>
|
|
<li>Install Windows 2000 server with IIS.</li>
|
|
<li>Copy everything under \\bryanst6\nt\inetcore\outlookexpress\autodiscovery\msservice\wwwroot\ to %SystemRoot%\inetpub\wwwroot\.</li>
|
|
<li>Open IIS's Performance Tab. Select "More than 100,000". (For Perf)</li>
|
|
<li>Open IIS's Home Directory Tab. Turn off "Log
|
|
Visits". Make sure that only "Read" is
|
|
selected. Select "Low (IIS Process)". (For Perf)</li>
|
|
<li>Open IIS's Server Extensions Tab. Turn off "Enable
|
|
Authoring". (For Security)</li>
|
|
<li>Open IIS's Web Site Tab. Turn off "Enable Logging".
|
|
(For Perf)</li>
|
|
<li>Since the machine will have 4 processors, the number of theads IIS should use should be increased to about 20. (For Perf)</li>
|
|
</ul>
|
|
<pre>
|
|
<A href="#top"><IMG border=0 height=26 src="top.gif" width=23></A></pre>
|
|
<P>
|
|
|
|
<P class=header><b>Server Performance:</b></P>
|
|
<HR SIZE=1>
|
|
|
|
<p class="MsoNormal">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.</p>
|
|
<p class="MsoNormal"> </p>
|
|
<p class="MsoNormal">To be generous, we will assume the each user will use
|
|
the service 10 times a year. Calculate by:</p>
|
|
<ul style="margin-top:0in" type="disc">
|
|
<li class="MsoNormal" style="mso-list:l3 level1 lfo3;tab-stops:list .5in">Assuming
|
|
users will format their hard drives, reinstall the OS, and want to
|
|
reconfigure their email accounts twice a year.</li>
|
|
<li class="MsoNormal" style="mso-list:l3 level1 lfo3;tab-stops:list .5in">Users
|
|
will reinstall their software both at work and at home.<span style="mso-spacerun: yes">
|
|
</span>(total so far is 4 times yearly)</li>
|
|
<li class="MsoNormal" style="mso-list:l3 level1 lfo3;tab-stops:list .5in">Users
|
|
will roam to other places <span style="mso-spacerun: yes">(Library,
|
|
Airport, Kiosk, visiting family, etc)</span> and have the service
|
|
configure their email.<span style="mso-spacerun: yes"> </span>This
|
|
will happen 6 times per year per user.</li>
|
|
</ul>
|
|
<p class="MsoNormal"> <o:p>
|
|
</o:p>
|
|
</p>
|
|
<p class="MsoNormal"><b>The Server:<o:p>
|
|
</o:p>
|
|
</b></p>
|
|
<p class="MsoNormal">Microsoft.com would host the machines.<span style="mso-spacerun: yes">
|
|
</span>Each machine would have 4 processors and 512 MB of RAM.<span style="mso-spacerun: yes">
|
|
</span>This kind of a machine can easily handle 400 requests/second.</p>
|
|
<ul style="margin-top:0in" type="disc">
|
|
<li class="MsoNormal" style="mso-list:l2 level1 lfo4;tab-stops:list .5in">At
|
|
400 r/s, one server can handle 34.56 million requests a day.</li>
|
|
<li class="MsoNormal" style="mso-list:l2 level1 lfo4;tab-stops:list .5in">That
|
|
is 12.303 billion a year, if the load is evenly balanced</li>
|
|
<li class="MsoNormal" style="mso-list:l2 level1 lfo4;tab-stops:list .5in">That
|
|
is 1.2 billion a year at 10% capacity, which will allow for spikes in
|
|
usage.</li>
|
|
</ul>
|
|
<p class="MsoNormal"> </p>
|
|
<p class="MsoNormal">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 <span style="mso-spacerun: yes">allow for
|
|
growth, hardware failure, or spikes in usages.</span></p>
|
|
<p class="MsoNormal"> </p>
|
|
<p class="MsoNormal"><span style="mso-spacerun: yes">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)</span></p>
|
|
|
|
<P>
|
|
<A href="#top"><IMG border=0 height=26 src="top.gif" width=23></A></P>
|
|
|
|
<P> </P>
|
|
<P class=header><b>Testing:</b>
|
|
</P>
|
|
<HR>
|
|
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.
|
|
<p> </p>
|
|
<p>Usage:</p>
|
|
<p>ADStress.exe -t 10 -s 100000 yahoo.com</p>
|
|
<p>This will create 10 threads to work together to generate 100,000
|
|
requests to the server for the email account for "Yahoo.com".</p>
|
|
<p> </p>
|
|
<p>Specify the server in the registry:</p>
|
|
<p>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\JustWorks\AutoDiscovery\GlobalServices,
|
|
REG_SZ, 100=http://adservice.microsoft.com/default.asp?</p>
|
|
<P><A href="#top"><IMG border=0
|
|
height=26 src="top.gif"
|
|
width=23></A></P>
|
|
<P> </P>
|
|
<P class=header><b>Security:</b>
|
|
</P>
|
|
<HR>
|
|
<b>Content is Public:</b>
|
|
<p>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.</p>
|
|
<p> </p>
|
|
<b>Usage Statistics:</b>
|
|
<p>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. </p>
|
|
<p> </p>
|
|
<b>Maintaining the Content: </b>(XML files)
|
|
<p>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.</p>
|
|
<p> </p>
|
|
<P><A href="#top"><IMG border=0 src="top.gif" width="23" height="26"></A></P>
|
|
<P> </P>
|
|
<P class=header><b>Related Information:</b>
|
|
</P>
|
|
<HR>
|
|
<ul>
|
|
<li>AutoDiscovery <a href="http://bryanst6/JustWorks/AutoDiscovery/AutoDiscovery.htm">Overview</a></li>
|
|
<li><a href="http://bryanst6/JustWorks/AutoDiscovery/rfc.htm">AutoDiscovery
|
|
RFC</a> (Net Protocol)
|
|
</li>
|
|
<li><a href="http://bryanst6/JustWorks/AutoDiscovery/">AutoDiscovery
|
|
Status</a>
|
|
</li>
|
|
</ul>
|
|
<P><A href="#top"><IMG border=0 src="top.gif" width="23" height="26"></A></P></TD></TR>
|
|
<TR>
|
|
<TD vAlign=top width=110></TD>
|
|
<TD vAlign=top width=530> </TD></TR>
|
|
<TR>
|
|
<TD vAlign=top width=110></TD>
|
|
<TD vAlign=top width=530>
|
|
<P class=modified>last updated on <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%y" startspan -->04/11/00<!--webbot bot="Timestamp" endspan i-checksum="12236" -->
|
|
by <a href="mailto:BryanSt@microsoft.com">BryanSt</a> </P></TD></TR></TBODY></TABLE>
|
|
<P class=modified> </P></BODY></HTML>
|