I am annoyed about selecting application servers (WAS and JBoss) in production environment. I have listed out my considerations, and I am looking for your professional feedback and comments.
Cost effectiveness is the key for selecting application server.
Cost = Cost of purchasing license + Cost of maintenance - [expected downtime * penalty of downtime]
- Cost of purchasing license - Expensive
- Cost of maintenance – Expensive
- Expected downtime – rare
- Cost of purchasing license – Less expensive
- Cost of maintenance - Less expensive
- Expected downtime – not frequent
The penalty of downtime is determined by the business nature of the deployed applications. For example, if a bank system is down or unstable, it will damage a company’s reputation. This explains why the market of application server in financial section is dominant by IBM(WAS).
It should consider at least five areas.
- System integrations with other applications (legacy systems, Java systems, NET systems)
- Clustering and scalability
- Server administration
- Integration of development tools
- Integration of testing tools
It is highlighting that system reliability and technical support (from IBM/Redhat) are not considered, and it is because it is treated as a factor of expected downtime. Moreover, I am not agreed about using certain Java framework would affect the decision of selecting application server. For example, it is true that Hibernate should work better in JBoss. However, it is not a point for using JBoss. Personally, the selection of application server is more important the selection of Java framework. It is because we may switch to another Java framework relatively easier.
- For system integration, it depends on the overall system architectures in your company. In general, WAS provides better supports for connecting to legacy system.
- For clustering and scalability, WAS is definitely better than JBoss.
- For system administration, WAS is definitely better than JBoss. It is because WAS provide more documentations and a better UI for performing system configuration. However, in my personal experience, JBoss provides a more flexible way for configuration, provided that you should have more expert knowledge and take the risk! Moreover, it is seldom to do the administration if the application runs smoothly.
- For development tools, WAS is a little better than JBoss, provided that you are willing to pay for WSAD.
- For testing tools, if you are using Rational tools, you will have better experience for testing the system. I have a good experience for using RFT and RPT, which is also based on Eclipse platform, and is easy to use. However, they are many alternative testing solutions in the market, and it should be no difference if we do not use IBM products for performing testing.
In short, IBM spends lots of investment on WAS, such as documentation, integrated development tool and testing platform. WAS is more powerful than JBoss, and IBM let us work more efficient if we are using WAS and IBM products. However, are those “effectiveness” adding value to your business? Are you or your boss willing to pay for it? Is it cost effective?