Servlet API 2.1 Specifications |
|
Since the Java Apache Group actively participated in the
development and definition of the Servlet API 2.1 Specifications, many changes were made
to avoid platform fragmentation and allowing better servlet portability between different
servlet environments. In this direction goes the deprecation of
ServletRequest.getRealPath() which currently does not behave correctly and the
introduction of ServletContext.getResource() to avoid the use of getRealPath() on remote
systems. The implementation of AJPv2.1 is a necessary condition since RequestDispatcher
relies extensively on web server callbacks. |
Apache JServ Protocol Version 2.1 (AJPv21) |
|
This protocol will allow web server callbacks and socket
recycling. This will have a great impact on both performance (sockets are created and
authenticated once and then reused over multiple requests) and flexibility allowing the
implementation of new dispatch facilities such as RequestDispatcher. Even if current draft
is considered valid for implementation, development may lead to new changes and versions
of this protocol that will be stabilized only when implementation is finished. |
Recycle Technology |
|
Even if garbage collection is often a great help, many
Java objects may be recycled instead of being thrown away. Performance
improvements result if the time spent on creating/destroying the object is greater than
the time spent to recycle/reuse it. This idea has been implemented successfully with
Threads and Sockets and will be merged with Apache JServ in the future. |
Security Enhancements |
|
Currently, the authentication algorithm used by Apache
JServ does not prevent "server faking" because trusts the servlet engine side.
Future versions of this authentication scheme will prevent this. Another big issue is servlet sandboxing that will allow servlet zones to act as
private secured servlet environments without requiring multiple JVM to run with different
UID/GID. In the future, will also be possible to specify the UID/GID directly in the
configuration files. |
NSAPI Module |
|
An NSAPI compatible module will be developed to allow
wider usage of Apache JServ. |
Enhanced Mapping |
|
Web server modules will allow complete mapping solutions
without the need for external modules or tools (such as mod_rewrite). |
Load Balancing and Scalability |
|
To allow very loaded sites to use servlets, a very high
degree of scalability is required. Apache JServ will be able to manage load balancing
together with session management and fault tolerance without the need for dedicated
hardware or software. |
Enhanced Logging |
|
A new log engine with pluggable JavaBeans loggers (to
file, to syslog, to mail, to database, etc...) will allow more flexible administration and
integration with administration environments in a highly configurable schema. |
Administration and Installation GUIs |
|
The Java Apache Project is working closely with W3C and the Apache GUI
Project to create a sort of metaconfiguration language for administration toolkits.
This language will allow single tools such as Comanche or Jack (the yet to be started
Java Apache Configuration Kit) to configure everything simply by writing a
metaconfiguration description of its configuration syntax along with default values,
ranges, graphic styles and so on. |
Note: if you are interested
in contributing in one of these areas, you are more than welcome to join the development team and share your knowledge,
ideas and suggestions with us. The more we are, the better Apache JServ becomes. |