Virtual hosts and other features in Jigsaw?

Alexandre Rafalovitch writes:
 > I remember a long while ago, Bruce Nelson asked if Virtual Hosts would be
 > supported in Jigsaw. At that time the answer Anselm gave was, it is
 > possible to write and maybe he will do it in next release.
 > 
 > Now the time for the next release is slowly drawing close and I would like
 > to repeat the question.
 > 
 > Is that still feasible to do, how hard it is to do and is it going to be in
 > next release?

I still hope to do it for the next release. The plan is the following:
I will write a root resource (eg w3c.jigsaw.resources.RootResource, or
maybe w3c.jigsaw.resources.VirtualHostResource), that will have a list
of host name mapped to a list of resources. This resource will
implement lookup in the expected way. This means that Jigsaw will
provide virtual hosting *only* based on the Host header (which it is
intended for). Physicall virtual host (the one your are used to these
days), will not be implemented until the appropriate Java support is
available in JDKs.

 > The reason I would like to know is because I describe Jigsaw to different
 > people and they say: "Yeah, it does sound very feature reach and flexible,
 > but what are the downsides?". The major downsides are no virtual hosting,
 > no security(SSL) and relatively slow. Out of those three, SSL is just
 > impossible for the moment, relatively slow will be fixed by JIT compiler,
 > but virtual hosting is a special issue.

Next release improve performances quite a bit, in particular under
heavy load. For those of you of are familiar with
http://www.w3.org/pub/WWW/Jigsaw/User/Introduction/performance.html,
ythe next release of Jigsaw doesn't suffer from the heavy load syndrom
any more. (it roughly does 20req/sec between 1 and 15 simultaneous
connections on my sparc 5). This is equivalent in practice to having
around 400000 hits per day ( as far as I remember). BTW on windowNTs,
Pentium 200 Mhz, Jigsaw handles as much as 50-70 req/sec (sorry for
the rough number), and this is not jitted. Jitted, on a Pentium 90 it
goes up to 35 (again, from memory).

SSL has been announced by some company (search the string-java
archive, I think). This can't be included in Jigsaw, but you can
probably hack it for your own needs into Jigsaw (I haven't  check this
though).

 > If I understood correctly, it is not so hard to implement it. Definitely
 > not as hard as proxy. However, this is the feature many people think a
 > server should be able to do, so when it is not there.... :-{
 > 
 > So, what is the state of it?

I hope the above blurb gave enough infos. The problem that might arise
(the oinly reason for VirtualHostResource not to be included in next
release), is if I don't have time to write the appropriate editor
(editing an association list through HTML forms, any ideas ?)

 > And as a by the way question: Is it possible to have a list of upcoming
 > enhancements and new resources, so people know in which direction they can
 > spend their energy and in which they should not?
 > 
 > As an example, I might be writing huge
 > cookie-tracing-referrer-related-set-of-filters(I am not :-}) and I would be
 > very upset if in the next release of Jigsaw somebody already wrote that and
 > my 4 weeks efforts were duplication of existing code. On another hand, if I
 > knew that, I would spend those 4 weeks on huge
 > java-on-the-fly-parsing-resource or writing HTML generator(I just might :-}
 > )

They are a number of improvements. I might miss some of them below,
but these are the one that are still in my head (probably the one that
took most of my energy). Items marked with a stars, willl probbaly be
flaky in the upcoming release (will need testing as I said the other day):

- HTTP/1.1 full support server-side,
- HTTP/1.1 HTTP client implementation (*), 
- HTTP/1.1 proxy (*),
- New resources:
    . SSIResource (by Anto Ramirez): full and powerfull server side
      includes, extensible in Java
    . MapResource (by Anto Ramirez): image map support
    . ErrorFilter (allows you to redefine error messages to other
      resources, such as a negotiated SSI resource ;-)
  I think that's it for core resources, most of the already available
  resources have been enhanced, I think. BTW: I don't know, but as far
  as I remember, Anto would probably put a (*) near his resources
  (Anto ?)
- New configuration stuff:
    . Enhanced extensions and template support (you can now set
    filters on extensions and templates), and they use the std
    resource editor
    . Property editor rewritten (uses resources now to access
    properties, so that we get the property editors for free :-)
    . Index files are now stored separately from the resource space,
    so you can run several Jigsaw with different config but same space
    directory.
    . Simple but usefull enhancement to the resource editor (link to
    the parent resources, directory display their content first, and you
    can use blanks in auth user names. 
- New index file format
    . More flexible (although a little slower and bigger). Resources
    are now saved (optionally) as an association list
    (attribute-name/attribute-value, so you can ad./remove
    attribuytes, and still reuse old index files).

[I am sure I am missing some parts. Although items 1 and 2 take only
one lines, they are probably the ones that by themselves took 90% of
my time.]

These are the features that I am planning to implementbefore the
release:

a) virrtual hosting
b) cookie support

Anselm.

Received on Thursday, 29 August 1996 21:54:37 UTC