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.

Reply via email to