On Fri, May 21, 2004 at 09:58:56AM -0700, Jeff Hobbs wrote: [snip] > > In any case though, I do support AOLServer integration with > other languages, notably Java, PHP, Perl and Python. There is > more to be gained in plurality than lost in focus. > > I think it is important that such an effort be done with a focus > on general language interoperation. Tcl is very good at > interoperating with just about anything, so it should be > possible to have some common integration points. For example, > I've recently done work on a new Perl<>Tcl/Tk bridge that has a > very tight Tcl_Obj<>PerlSV object binding which makes interop > fast and efficient (more so than the original Perl/Tk).
There seems to be (at least) two visions of AOLserver: 1. AOLserver is a complete Web application development environment. You should do all your work with AOLserver tools, for example, Tcl, the AOLserver Tcl API, ADP, etc. 2. AOLserver is "just" a Web server. It should allow and support the use of external Web application development environments frameworks, etc. For these uses AOLserver accepts HTTP requests and delivers responses (from the Web application framework). In this view, AOLserver is just an easy to configure and fast way to deliver content via the HTTP protocol. 3. And, maybe a third vision -- AOLserver is both of the above. It is one for some users and the other for other users and even both for still other users. In an attempt to satisfy vision 2 above, here is a proposal. Proposal -- Implement an AOLserver loadable module that supports an interface to external server used to satisfy requests (that is produce the content to be returned to the client). The interface is SCGI. Information is at: http://www.mems-exchange.org/software/scgi/ There is already a partial implementation of the SCGI protocol for AOLserver. You can find it at: http://www.rexx.com/~dkuhlman/scgi-aol.html http://www.rexx.com/~dkuhlman/scgi-aol-1.0a.zip Discussion -- Benefits, etc: 1. From the AOLserver point of view, scgi-aol provides a way that AOLserver can be used to support Quixote Web applications. 2. From the AOLserver point of view, scgi-aol provides a way to run other Web application frameworks on top of AOLserver through a generic and efficient interface (SCGI). 3. From the Quixote point of view, scgi-aol provides a way to run Quixote on top of AOLserver. Imagine, for example, that a site already runs AOLserver to host other applications; scgi-aol enables the site to be extended to also run a Quixote application. 4. Execution model -- The execution model for SCGI on top of AOLserver is attractive on two levels: (1) AOLserver itself is threaded and, therefore, fast. (2) The Quixote handler and SCGI server forks processes. The way in which the Quixote SCGI handler forks processes is good for these reasons: a. It is efficient -- The handler keeps a collection of processes which are re-used to handle subsequent requests. b. It is safe -- When a process dies, it only affects that process. New processes are created as needed. c. It reduces issues with the Python global interpreter lock (GIL). This is a Python-specific issue. The GIL prevents Python scripts from executing in more than one thread at the same time. Python interpreters in separate processes each have their own GIL. (I'm not actually too sure about this. But, I've read that ... ) Who might be attracted to by this capability? - Someone who wants to run Quixote but wants AOLserver because (1) it is easier to configure and (2) it runs faster. - Someone who wants a loose coupling between the Web server (AOLserver) and the Web application framework (e.g. Quixote). This means that problems in the Web application framework do not bring down the Web server. - Someone who wants to develop AOLserver-style applications, e.g. in Tcl with the Tcl API or with ADP and *also* wants to develop applications with a Web application framework. Perhaps this loose coupling to other Web application frameworks and other languages might satisfy some of the requests expressed in this thread without losing focus on AOLserver's core capabilities. SCGI for AOLserver is only one loadable module, but a generic one for connecting to other languages and development platforms. Dave -- Dave Kuhlman [EMAIL PROTECTED] http://www.rexx.com/~dkuhlman -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.