Application Server Technology Strategy Position Paper

Prepared by Technology Strategy Committee, ITSS

Background

In an effort to stem the diversification of application server technologies and product implementations at StanfordUniversity, this paper will give some guidelines for their current and future use by ITSS. Application Servers are a class of server platforms that allow remotely initiated invocation of program/application execution.

Some examples of technologies in this area are:

-J2EE servers

-CORBA servers

-Microsoft COM servers

Scope

Of these technologies, only Java J2EE technology servers are being considered for this position paper due to the fact that only this framework is broadly deployed at StanfordUniversity. Supplemental position papers will be created Currently, the following J2EE compliant application servers are being used at StanfordUniversity (with ITSS support):

Product / Manufacturer
OAS / Oracle
JRun / Macromedia
Tomcat / Apache
JBoss / JBoss
WebLogic / BEA

Unsustainable Diversity and Excellent Use of Technology

If programming and protocol standards are supported by all the above products, then the fundamental basis for choosing one product over another seems somewhat arbitrary. However, there are differentiating characteristics: both good and bad. Some technologies have been implemented simply because of ERP product implementation (vendor choice). Some were simply the favorite of a developer involved on a project. Others were selected because they were freely available from an opensource project or use a free license from a manufacturer. None of these motivations should constitute the basis for a standard for application server strategy.

Technology Drivers for Selection of Application Server

The following are the high-level characteristics that should be part of the standard product selection criteriafor application servers.

-Open standards (adherence to and at pace with)

-Ease of deployment and management

-Scalability

-Fault tolerance

-Remote monitoring

-Platform support

-Security

-Performance

On the basis of the above criteria, not all J2EE compliant application servers are equally appropriate for enterprise service deployment at StanfordUniversity. For example, to achieve the scalability and fault tolerance of application servers, product specific capabilities are needed. This is because there is no standard execution state management protocol within J2EE. Each vendor product that does scalability and fault-tolerance (clustering), does so differently. Some do not have these capabilities at all but could be adapted/extended to perform in this way.

Non-technology Drivers for Selection of Application Server

-Purchase and licensing costs

-Support costs

-Viability of company or OSS project

-Adoption by vendors

Open Standards, Open Source and “Free” Software

The motivation for open standards in the development of application server programs is the portability of the code. For example, a JSP (Java Server Page) program written for one J2EE compliant server will be directly executable on another such server. This is true as long as no product specific features are called. For the

Just because a product is open source does not mean that it was written to open standards or is well architected. By open standards, we mean a non-proprietary, consortia contributed, peer reviewed and documented technology or protocol standard. However, there is certainly a trend for ITSS to consider and adopt OSS when it’s as good as the competition.

No software is free. OSS or vendor donated software must be integrated, deployed and maintained. All these factors will be considered in the consideration by ITSS of any software for enterprise use at StanfordUniversity.

Implementations and Products

Stick to Servlet API

TomCat for only servlet platform (JSP)

If EJB then WebLogic

Use of EJB’s or similarly complex designs to be reviewed by this group

Only maintain state info for info you can afford to lose.

LB discussions…very useful for web apps and for sticky sessions.