Ian Bicking [mailto:ianb@...] wrote:
> I would also like to see a standard "container". I don't think it =
> has to be terribly intrusive or conformist -- it just has to create
> request and response objects, and map those to some "resource", which
> would be somewhat more abstract than servlets.
My private experiments suggest that it isn't that hard to make an =
abstraction layer for Webware and mod_python - in these cases, the main =
differences are where one finds certain facilities (eg. request and =
response streams, content type and encoding information) and whether =
those facilities are implemented by separate objects or not. Providing =
an environment for a Webware-style plug-in (which takes responsibility =
for certain resource types) within mod_python isn't an insurmountable =
problem either, and I'm convinced that there's enough common ground in =
Twisted and Zope to cover those frameworks as well. Under the covers, in =
Zope Products, Zope isn't so different after all.
> I was trying to pursue this kind of unification after PyCon, but I'm
> afraid I lost momentum, and actually writing code is much more
> satisfying than trying to organize stuff. I'd still like to pursue =
The "shootout" paper was certainly very interesting, and recent coverage =
of Twisted Web suggests that it wouldn't be absolutely necessary to put =
the whole of Webware on top of Twisted to get a decent application =
environment with a different execution model:
That would be compelling: a common environment which runs on servers =
with completely different underlying "scalability" models (threads, =
processes, asynchronous tasks) - I doubt that there's such diversity =
between the mainstream Java application servers.
> I've been working on a component idea, for adding functionality to
> servlets -- a bit finer grained than plugins. It's in the Webware
> sandbox (webware-sandbox.sf.net), in ianbicking/Component, with a user
> authentication component as an example. I've also used it for (my =
> in heavy development) form processing toolkit, in FormEncode, also in
> the Sandbox.
Perhaps I should get around to looking at this as well.