# Choosing a Java Application Server

As you maybe aware of recently Oracle has stopped commerical support for future releases of the Glassfish server. You can read the official announcement here and see a whole range of comments on the Internet here with the usual selection of views ranging from ‘no big deal’ to ‘end of the world’. As a result GlassFish users may be considering moving to different application servers or at least looking at their options.

So I thought this was a good opportunity to share some technical information you may need to know prior to your server selection process. If you have the expertise knowledge on server side technologies, please feel free to skip this article.

1. Number of concurrent users the system should support

This refers to the number of active users (Users interaction until the session has expired) who interact with the application server periodically.

When to move to on demand cloud access or increase the processing power ?

As you know, on demand cloud access is a little more expensive than the usual dedicated cloud/servers; However they can provide a high level of performance throughout the peak times; This point in above chart indicates when optimal performance is reached and beyond which throughput starts to degrade; So this would be the better time to move to an on demand access.

2. Average think time between requests

The average time a user spends for submitting one form to another. Think time may vary based on users for example web service clients have less think time than human users, therefore  the average calculation is recommended to resolve the formula given next paragraph.

3. Average Response Time

The Response time refers to the amount of time an Application Server consumes to return the results of a request to the user.

The calculation for his can be summarized as a formula given below:

Tresponse = n/r – Tthink

n = Number of concurrent users (i.e 10,000)

r = number of requests per second the server receives (i.e 2000)

Tthink = average user think time in seconds (2)

Example: Tresponse = 10000/200 – 20 = 3sec

4. Requests per Minute

Once we know the response time and the thinking time then the request per minute can be revealed easily by working out the formula and multiplying the answer by 60, Requests per minute are inversely proportional to response time after the break even point is reached.

r = n/(Tresponse + Tthink)

so Request per minute = r*60 ;

Other factors

5. Modularization/ componentized server

Good Application servers are expected to ensure that only those features required by the applications actually deployed when the server are initiated.

6. IDE tooling and GUI support

We always prefer visual components over scripts and IDE integration over custom ant tools.

Other Important factors included:

7. Technical support and documentation

8. Parallel developments with Java EE components

9. Security and authentication

For more details on this you can refer to the oracle technical documentation site.

How do you select your java applications server?

If you would like a tutorial on setting up your own PDF to HTML5 Application Server please Click Here.

If you’re a first-time reader, or simply want to be notified when we post new articles and updates, you can keep up to date by social media (TwitterFacebook and Google+) or the  Blog RSS.

The following two tabs change content below.

#### suda

Java EE developer at IDRSolutions
Suda is the Senior Java EE Developer at IDR Solutions, and specialises in XFA, Fonts, True-Type Fonts, application servers and conversions. He is a keen science-fiction fan in his spare time.