[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
world.
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>
http://www.red-bean.com/~craig
"Indifference is the dead weight of history." -- Antonio Gramsci
More information about the lispweb
mailing list