[EMAIL PROTECTED] wrote:
> 
> If you can clarify your concerns - do you disagree with Coyote
> entirely ( and why ), is it something missing that you want
> added or something that is there and you feel shouldn't ?
> 

 Fair enough. I think part of the problem is that one
of the primary goals of the proposal appears to be to 
find common ground between the Tomcat 3 and Tomcat 4 
camps. I have the sneaking suspicion that the code should
be the primary concern.

 A straw-man proposal might help to clarify my worries.
(it's not a real proposal, I'm looking to be told what
my incorrect assumptions are)

 From the standpoint of supporting the 2.4 spec (totally
ignoring the 3/4 thing), it seems like this might make
more sense:

 - A represenative set of benchmarks is agreed upon,
   in advance, and tests are run to determine what
   Tomcat 4 performance is like now, where the
   bottlenecks are (based on profiling, not intuition),
   and performance goals are set for Tomcat 5. What
   needs to be faster? Static file serving? HelloWorld?
   JSP's? How much faster? Exactly? etc, etc.

 - The most ugly bits of Tomcat 4 are listed, and a
   subset of them is set aside to be fixed. I've chosen
   the startup code and tomcat events/listeners as my
   biggest concerns for this straw-man, but I'm sure
   there are others. It's mainly the process of choosing
   actual, concrete problems (instead of generalities)
   that I think it important.

 - Tomcat 5 is Tomcat 4 with lots of cleanup work and
   modifications for whatever the 2.4 spec comes up
   with. There are no major architectural changes. OTOH,
   the 2.4 spec could be bizarre, in which case all bets
   are off :-)

 - Coyote is not part of Tomcat 5. Instead, Tomcat 5
   moves to having 2 (and only 2) connectors that are
   single-purpose no-compromise performance demons:

     - A special-purpose HTTP connector built to take
       full advantage of Tomcat 4, with a few layers
       of abstraction as possible, using the existing
       o.a.c.Connector API. This results in the smallest,
       fasted code possible. 

     - A special-purpose AJP connector. Again, single
       purpose, build for Tomcat 5 only, using the 
       existing o.a.c.Connector API, and again,this
       results in the least possible amount of code.

 - Other connectors can be implement in j-t-c as 
   needed, maybe as Coyote. Experiments like JNI, etc
   shouldn't be a consideration for the core Tomcat 5
   design. There should probably also be some work
   with the NIO api's non-blocking stuff, ala what
   Greg Wilkins has done with Jetty, but again this
   is non-core.

 - Tomcat 5 cleans up the current startup spaghetti
   by going through each and every Tomcat event listener
   and deciding if it needs to be made into a real,
   explicitly called API. Listeners should be hooks
   for extensions, making them them implement core
   functionality makes for a tangled mass of pointers
   and a very confusing startup sequence. Pretty much
   everything but the management listeners need to go.

   After most of the listeners are removed, the set
   of Tomcat events is rationalized and documented.
   This is a big deal. This code is an undocumented
   mess.

 - There are places where the Standard* classes make
   ugly assumptions about one another. This needs to
   be examined on a case-by-case basis, and most of
   the really ugly stuff needs to be removed, or the
   assumptions need to be made into real method calls
   in the top-level interfaces.

 - Other stuff, but since this is a straw man only,
   I think you get the idea.


-- 
Christopher St. John [EMAIL PROTECTED]
DistribuTopia http://www.distributopia.com

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to