J2EE Project Types

Tailor Criteria to Your Needs

Your project will have specific needs and multiple priorities. Agree on these issues before beginning your search for an application server. The sections in this article discuss what I consider to be the most (and least) important criteria for different project types. The following are the five types of projects I address:

Once you have established your criteria, you will have various types of app servers from which to choose. I will discuss the following app server categories:

Learning Environment

This category encompasses academic exploration, including university and personal or professional development. The learning environment's priorities and criteria often are significantly different than those of large e-sites.

Top Priorities

Low Priorities

Recommended Option

If a school can afford the resources and negotiate educational discounts on a high-end application server, then it should. However, my suggestion is to aim for Entry J2EE app servers. You should be able to find an option that is free for non-commercial use, provides good coverage of the J2EE specification, and is an efficient implementation that does not require high-end hardware.

Small Intranet

A small corporate intranet needs to keep costs and maintenance at a minimum. In some organizations, maintaining the corporate intranet is a part-time task that just a few individuals can handle. Consequently, the system cannot be overly complex, and performance is certainly a lower priority given the small number of concurrent users hitting the intranet site.

Top Priorities

Low Priorities

Recommended Option

A small corporate intranet will need a stable, working solution. Choosing the cheap Entry JSP/servlet solution may be tempting, but I think that this would be a mistake. Not only does an intranet probably require stronger support, but also legacy interfaces to external systems (financials, admin, mail, etc.) are better handled with the advanced capabilities of a full-blown J2EE system. Furthermore, a small office may have to double up on its site to offer some educational services and would benefit from full-blown ORB, EJBs, transaction support, etc. I recommend the Midrange J2EE option as a good compromise. (At least one Entry JSP/servlet solution (Weblogic) can be purchased in an "express" configuration, which for a fee can be upgraded to a full J2EE application server with minimal disruption.)

Enterprise Intranet

The enterprise intranet is an internal site that handles frequent hits throughout the day. It is likely a critical part of the company's operations. This system might support configuration management, data/document management, financials, employee admin and more. Downtime hampers productivity, so an intranet site solution usually receives a larger portion of the overhead budget.

As the sites become larger and more critical, more and more of the selection criteria become high priorities.

Top Priorities

Low Priorities

Recommended Option

An enterprise intranet is perfect for the Advanced J2EE configuration. This option is very safe (widely adopted), stable, and well regarded. Most of the functionality that your site would need likely will be included in the configuration, including SSL, transactional support, efficient EJB architecture, excellent admin tools, broad platform support, and more. At this level, training and support are generally top notch and the on-line community is quite active in exchanging ideas and fixes.

Small Internet Site

Admins for an Internet site that gets less than 250,000 hits a day generally try to keep hosting costs down and look for good performance under normal conditions. They don't expect large peak surges that can overload the system. A small Internet site might alternatively be developed in PHP/MySQL, ASP, Cold Fusion, or even CGI. I am also assuming that most small Internet sites are remotely hosted.

Top Priorities

Low Priorities

Recommended Option

The best option for a small Internet site certainly is the Entry JSP/Servlet application server. You can find free app server implementations that support JSP and servlets, run on a number of platforms, have excellent on-line support, and are available via low-cost hosting plans.

Large Internet Site

A large Internet site will have to plan for heavy traffic and massive peaks, depending on the market of the site. It also needs to have a very high quality-of-service measure to ensure that it runs 24 hours a day. This site likely will consist of at least one physical machine that provides redundancy, scalability, and perhaps distribution of the architecture for performance and/or security reasons.

Priorities

For this configuration, I personally feel that all criteria are important, none can be deferred. Loading of the site is difficult to predict, and performance must be scaled quickly and with minimal disruption. The system must work as advertised, provide superb support, fully maximize development efficiency, and come from a stable and known vendor.

Recommended Option

Thoroughly evaluate high-end servers to deliver the requirements of your large Internet server. Underestimating issues such as scalability and support can be very costly to the entire company, if not catastrophic—if your server can't grow with the company, you made the wrong choice and cost the company lots of money. The obvious considerations in the high-end server market are the high costs and on-line support. Also, because of their elite status and high prices, these high-end solutions often do not enjoy the large on-line developer communities that the less costly solutions do. However, you do generally get what you pay for with these systems, but you still should do your homework first.