[Lispweb] Mod_lisp 2.0 released

Craig Brozefsky craig at red-bean.com
Sun Jun 17 20:32:26 CDT 2001

"Andrew K. Wolven" <awolven at redfernlane.org> writes:

> Dear Marc,

> I really appreciate your work on mod_lisp in that it helps give unix
> jockeys one less excuse for not using the highest quality standards
> in software engineering, namely ANSI Common Lisp and relatives.
> However, I think that the design reasons that you have described
> above are full of hot air and that's why you have to add steel
> cables to keep your balloon from floating off.

Well, it's such a common process model that you're going to have to
give a little meatier critique.

The model has some concrete advantages:

1. It's a relatively lightweight shim that takes advantage of existing
   code to handle high-volume HTTP requests and all the idiosyncracies
   of the various browsers and clients.

2. Co-exists with existing server environments, translating the
   application into the common namespace of the server listening on
   the standard port.  This is not unique to mod_lisp type shims, as
   you can use normal http proxy modules to do similiar things.

3. Shields the app server from handling HTTP requests and otherwise
   being directly exposed to client input, which is a security
   concern.  Comparatively well-tested, widely-used and reviewed code
   provides the front-line interface to user input and the outside

4. Such shims can dole requests out to multiple application servers.
   This implies both load-balancing, as well as having multiple
   applications under the same server namespace (similiar to point 2).

5. Writing an interface to a shim (an existing one, or a new one) like
   this is easier than writing a full HTTP 1.1 implementation.  No
   dealing with chunking, header parsing is often easier,
   content-sizing and outgoing header creation is often automated.

6. SSL can be layered on top transparently, integrating the app into
   the SSL certificate namespace of the server.

7. Compared having Apache or another server handling static content,
   the shim has just one port listening, one port to get clients to
   open to the outside world thru the firewall.

Craig Brozefsky                             <craig at red-bean.com>
"Indifference is the dead weight of history." -- Antonio Gramsci

More information about the lispweb mailing list