<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:st1 = 
"urn:schemas-microsoft-com:office:smarttags"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2995" name=GENERATOR><!--[if !mso]>
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>
<![endif]--><o:SmartTagType name="PersonName" 
namespaceuri="urn:schemas-microsoft-com:office:smarttags"></o:SmartTagType><!--[if !mso]>
<STYLE>st1\:* {
        BEHAVIOR: url(#default#ieooui)
}
</STYLE>
<![endif]-->
<STYLE>@font-face {
        font-family: Tahoma;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
        COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal
}
SPAN.EmailStyle18 {
        COLOR: navy; FONT-FAMILY: Arial; mso-style-type: personal-reply
}
DIV.Section1 {
        page: Section1
}
</STYLE>
</HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2>Hey guys, here's my 2 bits after doing some research into 
hardware load balancers:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2>Hardware load balancers range in price from $2500 to 
$30000+ depending on features and performance.&nbsp; The higher end ones 
usually&nbsp;require IT resources to configure.&nbsp; But from what I 
understand, setting up session affinity&nbsp;on a load balancer is not that 
difficult if you already know how to set&nbsp;it up to&nbsp;do basic 
(round-robin) load balancing.&nbsp; So if you already have an external&nbsp;load 
balancer doing round robin, then it's not much of a leap to add session 
affinity.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2>Hardware balancers typically expose another load balanced 
IP address in addition to the original IP addresses of the individual web 
servers.&nbsp; This allows simultaneous access to both the load balanced cluster 
and the individual machines.&nbsp; For MapGuide, the load balanced web server IP 
could serve general clients while the original web server IP's could still be 
used with Studio and the Admin.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2>This could easily be replicated by installing multiple Web 
Extensions.&nbsp;&nbsp;Installing "local" web extensions on all of the server 
machines gives direct access to those machines for Admin and the 
Studios.&nbsp;&nbsp;"Remote"&nbsp;web extensions on dedicated 
machines&nbsp;could then be set up to round robin&nbsp;against the already 
installed servers.&nbsp; This gives us all the functionality of the typical load 
balanced setup.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2>Round robin balancing and session affinity are both 
"routing" technologies.&nbsp; Personally, I think it&nbsp;makes sense to 
implement them both in the same place.&nbsp; If we are implementing session 
affinity, then I think we should also include round-robin load balancing.&nbsp; 
Otherwise, we are forcing the MapGuide use base to invest time and/or money 
implementing&nbsp;other&nbsp;solutions for load balancing.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=565445719-20112006>Thanks,</SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><FONT face=Arial><FONT size=2><FONT color=#0000ff><SPAN 
class=565445719-20112006>Trevor</SPAN><SPAN 
class=565445719-20112006></SPAN></FONT></FONT></FONT></DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Chris Claydon <BR><B>Sent:</B> Friday, 
November 17, 2006 2:57 PM<BR><B>To:</B> 
dev@mapguide.osgeo.org<BR><B>Subject:</B> RE: [mapguide-dev] Session Affinity 
RFC<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I like your 
suggestions, Tom. This approach would allow a user to hook up a load balancer 
without changing any configuration at the web tier level. Having the web tier 
connect to a site server that it is not configured to know about seems a little 
strange, but I don&#8217;t think that it poses a security risk &#8211; you can only connect 
to a server if the session you need exists on it. So you wouldn&#8217;t be able to 
make an unauthorized connection.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">I don&#8217;t think anyone 
would want to operate Studio (or Web Studio) through a load-balanced 
environment. You&#8217;d always want to make your changes on a specific site. Imposing 
the same restriction for the admin pages seems fair 
also.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Chris.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=navy size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<DIV>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
<HR tabIndex=-1 align=center width="100%" SIZE=2>
</SPAN></FONT></DIV>
<P class=MsoNormal><B><FONT face=Tahoma size=2><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> Tom 
Fukushima <BR><B><SPAN style="FONT-WEIGHT: bold">Sent:</SPAN></B> November 17, 
2006 1:32 PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 
dev@mapguide.osgeo.org<BR><B><SPAN style="FONT-WEIGHT: bold">Subject:</SPAN></B> 
RE: [mapguide-dev] Session Affinity RFC</SPAN></FONT><o:p></o:p></P></DIV>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">Hi 
Chris,</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">I was reading over this 
with the intent of motioning it for approval, but thought of the 
following.</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">The RFC says that the 
list of available site servers will be listed in the web tier config file so 
that the web tier can do some rudimentary load balancing.&nbsp; But since the 
load balancer is already doing this, I don't think that it is necessary for the 
web tier to do it again.&nbsp; With this in mind, I think that we can simplify 
things a little more:</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">1) Each Web Tier only 
knows about&nbsp;1 site server (as it is today) and if a request that doesn't 
have a session (e.g., request to create a session) comes to it, the request goes 
to the web tier's site&nbsp;server (like it does 
today).</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">2) If a request with 
a&nbsp;session comes in, the Web Tier uses the IP embedded in the session ID to 
route the request.&nbsp; Note that the IP does not have to be registered in the 
config file of that web tier.</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">3) In order to bring up 
the server admin pages, we only support going directly to a particular web 
tier.&nbsp; We do not support going through the load 
balancer.</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">4) In order to author 
using Studio or Web Studio, we only support going directly to a particular web 
tier.&nbsp; We do not support going through the load 
balancer.</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">Points 3 and 4 above 
are to make things easier in case it might be tough to do them. (I don't see 
Studio mentioned in the RFC.)</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt">&nbsp;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">Cheers</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN 
style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial">Tom</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face="Times New Roman" size=3><SPAN 
style="FONT-SIZE: 12pt"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center><FONT 
face="Times New Roman" size=3><SPAN style="FONT-SIZE: 12pt">
<HR tabIndex=-1 align=center width="100%" SIZE=2>
</SPAN></FONT></DIV>
<P class=MsoNormal style="MARGIN-BOTTOM: 12pt"><B><FONT face=Tahoma size=2><SPAN 
style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</SPAN></FONT></B><FONT 
face=Tahoma size=2><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> 
<st1:PersonName w:st="on">Chris Claydon</st1:PersonName> <BR><B><SPAN 
style="FONT-WEIGHT: bold">Sent:</SPAN></B> Wednesday, November 01, 2006 3:47 
PM<BR><B><SPAN style="FONT-WEIGHT: bold">To:</SPAN></B> 
dev@mapguide.osgeo.org<BR><B><SPAN style="FONT-WEIGHT: bold">Subject:</SPAN></B> 
[mapguide-dev] Session Affinity RFC</SPAN></FONT><o:p></o:p></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">I have just posted a draft of the 
RFC for &#8220;Session Affinity&#8221; in MGOS to the following 
location:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><A 
href="http://wiki.osgeo.org/index.php/MG_RFC_3_-_Session_Affinity">http://wiki.osgeo.org/index.php/MG_RFC_3_-_Session_Affinity</A><o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Please take a look, and post any 
feedback to this group.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Thank 
you,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><o:p>&nbsp;</o:p></SPAN></FONT></P>
<P class=MsoNormal><st1:PersonName w:st="on"><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Chris 
Claydon</SPAN></FONT></st1:PersonName><FONT face=Arial size=2><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">.<o:p></o:p></SPAN></FONT></P></DIV></BODY></HTML>