<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 4, 2010, at 10:17 AM, Michael Gundlach wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Wed, Aug 4, 2010 at 9:29 AM, Jorge Williams <span dir="ltr"><<a href="mailto:jorge.williams@rackspace.com">jorge.williams@rackspace.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div><div></div><div class="h5">Can you configure WSGI  to split things up as needed for a particular deployment(?)</div></div></blockquote><div> </div><div>WSGI itself doesn't provide that (it just defines an interface for dispatching/receiving requests) but we can build that if it hasn't already been built by someone solving the same problem (which I'd bet dollars to donuts someone has.)</div></div></blockquote><div><br></div><div>K. Cool.</div><br><blockquote type="cite"><div class="gmail_quote">

<div><br></div><div>Perhaps a deployment configuration file could specify which layers go in which order and which ones get stacked in a single server.  Then to start a server the command would be something like</div><div>

<br></div><div>proxyserver --wsgi-layers-top-down=some.wsgi.app,another.wsgi.app,yet.another.wsgi.app</div><div><br></div></div></blockquote><div><br></div><div>I used to work on a project back-in-the-day that had very similar requirements.</div><div><br></div><div>Configuration was itself written in a python script:</div><div><br></div><div><br></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">proxy1 = Proxy1()</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">proxy2 = Proxy2()</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">proxy1.Conf(.....)</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">proxy2.Conf(.....)</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">app = App()</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">app.AddNode(proxy1)</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">app.AddNode(proxy2)</span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></b></div><div><b><font class="Apple-style-span" face="'Courier New'" size="3"><span class="Apple-style-span" style="font-size: 11px;">app.go()</span></font></b></div><div><br></div><div>You executed the configurations script to start the application. The app came bundled with a whole bunch of scripts that people could customize.  There was a network protocol involved  in transmitting configuration options to other nodes. Will this work?</div><div><br></div><div>FYI:  The project I'm referring to is the Chromium project (<a href="http://chromium.sourceforge.net/doc/index.html">http://chromium.sourceforge.net/doc/index.html</a>).  It's a cluster based rendering system.  See the section on configuration scripts.   The app was written in C, but all configuration was done in python as described above. Eventually somebody developed a graphic tool where you can point and click things together and it would spit out python configuration code :-)</div><div><br></div><div>-jOrGe W.</div></div><br></body></html>