<!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> </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. The higher end ones
usually require IT resources to configure. But from what I
understand, setting up session affinity on a load balancer is not that
difficult if you already know how to set it up to do basic
(round-robin) load balancing. So if you already have an external 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> </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. This allows simultaneous access to both the load balanced cluster
and the individual machines. 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> </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. Installing "local" web extensions on all of the server
machines gives direct access to those machines for Admin and the
Studios. "Remote" web extensions on dedicated
machines could then be set up to round robin against the already
installed servers. 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> </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. Personally, I think it makes sense to
implement them both in the same place. If we are implementing session
affinity, then I think we should also include round-robin load balancing.
Otherwise, we are forcing the MapGuide use base to invest time and/or money
implementing other 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> </DIV>
<DIV dir=ltr align=left><SPAN class=565445719-20112006><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </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> </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’t think that it poses a security risk – you can only connect
to a server if the session you need exists on it. So you wouldn’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> </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’t think anyone
would want to operate Studio (or Web Studio) through a load-balanced
environment. You’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> </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> </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> </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"> <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"> <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. 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. 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 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 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 session comes in, the Web Tier uses the IP embedded in the session ID to
route the request. 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. 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. 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"> <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"> <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> </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 “Session Affinity” 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> </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> </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> </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> </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>