Nigel Hamilton <[EMAIL PROTECTED]> wrote:
>       Would such a standard (albeit optional) be useful for mod_perl2?

I don't think so.  Let me explain a bit.

<opinion>

Over time, the modules on CPAN have become higher level and more
complex, almost resembling applications in their own right.  Yet they
are moduler and useful in applications.  This even goes for such
modules as HTML::Mason and AxKit.  They seem like applications in
some ways, but they are useful components in others (hmm...
application/component duality).  I'd like to see what we will build
out of the applications we are building today.  

The problem with traditional applications is that they resist being
used as libraries.  This is the beauty of writing modules for CPAN --
it forces a person to think in terms of libraries.  Similarly, it is
natural for us to have several different applications at the top of
the heap that we can choose from and (on CPAN) use them to build new
applications.  Perhaps we can take a couple of frameworks and
duct-tape them together in a new and wonderful way that has never
been done before because no other environment allowed it before.  I
don't know why someone would, but that doesn't mean we should keep
them from doing it.

As soon as we point to something and say `This is the one' we have
just said that we don't think the rest should be encouraged (or are
not as good as The One).  As soon as we are not encouraging, we are
discouraging.  At that point, we have cut off the vitality that makes
the perl (and mod_perl) community so rich.

This is a bit rambling and I'm not sure how to tighten it quickly.

</opinion>

My vote is to let mod_perl do what it does best, interfacing with
Apache, and leave the rest to CPAN.  No telling what will grow
there.

>       Generally standards run contrary to the TMTOWTDI approach of Perl
>but there are some advantages in a 'minimal' mod_perl web application
>standard:
>
>* ISP's could install mod_perl applications in a uniform/consistent way -
>(e.g., the standard should prevent name space collisions etc.)
>
>* A subset of mod_perl methods could be selected as a basis for the
>standard allowing other 'container' servers besides Apache (e.g., like
>http://jetty.mortbay.org - except in Perl not Java)

Not sure I understand this part -- currently mod_perl only runs with
Apache.  imho (and feel free to flame me in private) the only useful
production system such as what you are talking about will be under
mod_perl (assuming it is written in Perl).

>* Software companies (not sure who) could provide
>replication/clustered/load balanced solutions based on this standard

As long as the core is written to withstand running on a web farm,
this will be trivial.  Of course, that means the non-trivial parts
are in the core :/

The best I've been able to come up with (in design at this point) is
a system that is aware it is on a web farm, but does not itself
handle load balancing.  I am letting a switch (from F5) handle some
of that and might be looking at mod_backhand.  Those are the tools
that are built for doing it.  There's even whakamole for making sure
IP addresses are available (a sort of poor man's load balancing
switch if used in conjunction with DNS round robin).

>* Application configuration/management tools could be used to administer
>mod_perl application(s) on the same server(s)

This could be done with a properly written Apache config file and a
few web pages.

>* We could share 'mod_perl' applications on CPAN more easily/quickly
>
>       Ideally, I'd like to download a single mod_perl archive file
>(e.g., application.mod) place it in a 'standard' application directory and
>then point my browser to the new application.

Take a look at Uttu (http://uttu.tamu.edu).  It has (or is supposed
to have) the capability of bundling all the perl modules, pages, and
misc. files into a single tarball that can be installed using the
CPAN shell.  There are probably bugs since it is still pretty much
alpha/pre-beta code.

Uttu also handles name spaces for HTML::Mason applications by
assigning a default package (instead of HTML::Mason::Commands) that
is based on the virtual host and root location.  I'm not sure if this is
the same namespace issue mentioned in the first point above.


I'm in the middle of writing a design document for a framework that
allows arbitrary mapping of urls to files, on-the-fly server
reconfiguration using a front-end proxy and back-end app. server, and
web-based management of views.  It also is built to work in an HA
environment, keeping track of which systems are up and down (and thus
available for it to use, or so it knows which parts of the website to
make unavailable).  It will be scalable since it will work in a web
farm.  Plus quite a bit more.

Almost all of this will be installable via the CPAN shell :)

I'll post a url for that document when it is compeleted (sometime
this summer [or winter for the southern hemisphere]).
-- 
James Smith <[EMAIL PROTECTED]>, 979-862-3725
Texas A&M CIS Operating Systems Group, Unix

Reply via email to