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.