This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Cost effectiveness is the key for selecting application server.
In my mind,
Cost = Cost of purchasing license + Cost of maintenance - [expected downtime * penalty of downtime]
WAS Cost of purchasing license - Expensive
Cost of maintenance - Expensive
Expected downtime - rare
JBoss 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.
1. System integrations with other applications (legacy systems, Java systems, NET systems)
2. Clustering and scalability
3. Server administration
4. Integration of development tools
5. 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?
Regards, Alfred Ku
SCJP, SCWCD, SCBCD, SCEA, MCSE, MCSA, MCDBA, OCA
If you run JBoss with some kind of loadbalancer (Apache, or some hardware solution), which WAS also can do, I can't see why you have two different ratings on the two servers.
- WAS more less demands that you use IBM's JRE on connected clients (Sun's JRE can be used, but is not recommended) - JBoss can run on all types of JRE (Sun, IBM, Oracle - you name it.)
About the developer tools:
- WAS uses Rational Application Developer with all plugins installed as standard (Eclipse with IBM plugins) - Eclipse uses the same plugins as on Rational, but you need to install then separately - maybe (depends on which Eclipse version you start out with), and for the best JBoss integration, then you you need the Jboss Tools plugins too.
- WAS is VERY slow on startup - and Rational Application Developer is VERY memory/resource demanding (the developer PCs need to be well configured).
- JBoss is quick on start-up - and is less memory/resource demanding.
In general, a load-balancer can prevent from getting service downtime, if there are two or more application servers. If not, Websphere should be better than JBoss.
Should java runtime be a factor for selecting application server for PRODUCTION use?
The performance problem can be resolved by using a more powerful machine, where the cost is insignificant.
Personally, the startup time of PRODUCTION server is not critical factor for determine which application server should be used.
It is just a matter of using a more powerful machine.
It is just for insurance, and the application server (and its architecture) may indirectly imply the expected downtime. In fact, spending more money on hardware and software is hopefully minimizing the expected downtime.
Regarding to the "insurance", I have heard that IT manager dared not using JBoss or open-source, and it was because he could make complain to IBM/vendor, if the system was down.
WAS should be better for backup, as WAS provides an export feature to backup the configuration. In my case, our IT backup the whole image, including OS and application. Therefore, it is no difference for backing up either WAS or JBoss.
Lastly, I revise the formula as following
Cost = Hardware cost + Software cost - [expected downtime * penalty of downtime], where software cost = cost of purchasing license + cost of maintenance
Should java runtime be a factor for selecting application server for PRODUCTION use?
Not if you only use Applications on WAS (all calls are made inside WAS, or from other WAS) - but if you have clients that need to call services on WAS - say on the other side of the world, in a non-IBM environment - then these clients more less need to use IBMs JRE.
But I don't know what your requirements are, so maybe in your company it is OK to use WAS with you eyes closed
Large companies (e.g. IBM) not necessarily have the best support either - unless you are a VERY large company and pay a lot of $$ for this 24/7 support. On paper IBM (and Oracle) have a very good support setup, because they can send a clients problem around the globe to the next support team in the next open office in another Timezone, but get the full benefit of this kind of support, you need to more less deliver client critical code to the support team. Not all companies with a WAS are hosting there own Applications, and to find a problem IBM/Oracle need to be able to reproduce the problem on there own support location - therefore you maybe need to send the whole WAS setup to them (WAS configuration, deployed Applications, etc.).
JBoss doesn't give the same support options - that it - so if you have the need, and are a large company, with a lot of money that you don't know what to do with - then choose e.g. IBM, and hope for the best.
One more thing about IBM...
If you don't live in a country where the 'experts' for you problem are located, then be aware of a VERY poor support - if you need them on-site (IBM not always send there 'experts' to help there clients).
As far as Gartner or Forester research is concerned, all these products WebSphere, WebLogic, and JBoss appear in the same quadrant. They offer pretty much similar set of features and are all compliant with J2EE specifications. The positions in the quadrant may little higher or lower but they don’t tell you anything significant.
I have used both WebLogic and WebSphere extensively and find them equally capable.
Besides all the other things you have mentioned earlier, one should also consider the appetite of the development team that's going to use these products.
If development team members are open to open source products and are willing to research & contribute to community then JBoss may be a good choice.
If the general culture is to always expect solution from the product vendor then product support becomes very important.
Round the clock support is not a selling point. It is very difficult to get anything out of a single support person over several days. Forget about getting it from 3-4 people who work spread across 3-4 continents.
By the way, why are you not considering Tomcat and Glassfish?
I was watching this thread so felt the need to throwing in my 2 cents.
Joined: Jul 30, 2010
Thanks for your comments again.
In fact, our management team just leave me two options, JBoss or WebSphere.
Personally, I perfer JBoss and I have sufferred from IBM / Oracle consultant, and My Oracle Support (Metalink). I also know that most of those "experts" are just fresh graduates (in Hong Kong).
I am now preparing some information, and hopefully can consolidate Java experts' opinions to make a fair comparison between Websphere and JBoss, and submit it to our management team.
I think the discussion is very useful. Thanks again.