Tomcat has grown to the state-of-the-art and reference application server.
Tomcat allows very easy deployment of all kinds applications, ranging from static HTML pages (Tomcat is based on Apache) to Web Services
and even server-side implementations of XForms. Furthermore Tomcat is free. In case a very high performant application server is required
(as in the case of e-business), Tomcat might not be the first choice. For demo purposes however, it is an excellent application server.
We have developed all our applications on this server so, that they can easily be ported to other application servers such as
Oracle Application Server, BEA, WebLogic, Silverstream, and many other commercial application servers.
Struts is a web application framework, meaning that this technology enables application developers to develop web applications
very rapidly (RAD) and very robust. Struts is essentially a library of Java classes that can be used to connect web pages
(usually implemented as Java Server Pages - JSP) with forms (keeping the data in JavaBeans) and with sets of classes doing the
Business Logic. Struts implements the Model-View-Controller principle,
meaning that the presentation, navigation and business logic are separated. This has the advantage that large applications remain overviewable,
so that it is always clear which part of the software does what.
On our application server, we have used Struts to build a framework itself (in which other applications can run), to take care
of the user registration and logon, and to take care of the navigation between the different modules available on this application server.
Note that the definitions and flows between all the components in a Struts application are defined in an XML file, making it
very easy to exchange components or to change the flow between the components.
Apache Axis is a very good choice for setting up a set of Web Services. It can be used as well for the server part of the web service, as for the client part. On this server we use Axis for providing the Web Services server. One can say that Axis is the first choice for Web Services Servers on non-.NET servers.
Chiba is a server side implementation of XForms. XForms is the new standard for providing idiot-proof web forms.
One of the advantages of XForms is that the data from the form are send to the server in XML format, making them easily transformable
(using XSLT) and directly storable in native XML databases.
Native XML databases are becoming more common and common. They are the first choice when having to handle large amounts
of XML data. On our application server we will use the eXist native XML database to store a large amounts of electronic
CRFs (Case Report Forms containing clincical data) in CDISC ODM format.
eXist native XML database is a free native XML database, making it ideal for demonstration purposes.
Java Server Faces (JSF) is a relative new, but very interesting technology which has considerable overlap with Struts.
Personally, I find JSFs setup more logical than that one of Struts.
An extra advantage is that with JSF complex forms can be build very easily.
The major disadvantage of JSF is that it is not implemented yet in most of the code development tools (IDEs), due to its youth.
I expect that in future, Struts and JSF will grow into a single framework. It is now already possible to combine both to
a single web application framework.
FormsPlayer is a client side implementation of XForms. It works as a plugin to Internet Explorer 6. As such, it does not have a place on this application server. On our static website however, we give examples of XForms that are used with FormsPlayer at the client side.