A new release of Eloquence means more changes. In the past I have been intentionally vague, as that makes my keepers happy. It is not what I would prefer, but there are numerous reasons for their concern, and I feel it best to honor them.
We have done a lot since the first release of version 2. The primary focus became the removal of EJB's. I can say that they are all gone, now, as we are using POJO's throughout the services. The reason was driven from my dislike of EJB's, based on what their cost-to-return ratio. By that, I mean that I could find no justification for their complexity. To many of you, this is heresy. To others, it is what you have already done, and you are wondering why it took us so long. Well, it took awhile to get away from our fixation with what was viewed as the "proper way" to use WebSphere Application Server (WAS).
We like WAS. We will continue to use WAS. We had been asked to use other applications servers, however, and the use of EJB's was restricting our ability to do so - easily. Not that it wasn't possible, but I come back to that evaluation I spoke of earlier - cost-to-return. Staying with EJB's and also moving out to more than WAS wasn't proving to be practical. POJO's looked much better, both for WAS and others. So there is one of our reasons.
Another, as I have alluded to, was complexity. We have grown to like Spring, and POJO's are a natural extension of that growth. So, after we determined that we could reduce code and code complexity, continue our use of Spring, all while gaining more application servers and keeping WAS, well... It was an easy decision.
So, we now code (almost) for no platform, but run with WAS and with JBoss 5. We have also run with others, but they are not official.
I found it interesting that performance got better in most areas, but not in all areas. There are reasonable explanations for most of what we see, both for better or worse performance. And there are some head-scratchers, again for both better and worse performance. If you take an overall look at the new Eloquence release, it is faster because of the architectural changes we have made. And overall, WAS deals with the new architecture well.
I cannot say the same for JBoss 5. My personal opinion is that the IBM folk have spent more time making their product work with Spring and POJO's and all of the stuff that surrounds our new architecture than have the JBoss folk. I do not know if this is due to the rivalry I have seen between Spring and JBoss, or the JBoss interest in EJB's, or just that WAS is more mature. We have a few things going on in JBoss that make no sense. They work - you get what you want - but the performance differences leave you wondering what is going on.
You need to remember that Eloquence is sold to run on the application server that the customer owns. We do not recommend one, sell one or alter what we find in any way. In fact, we try to make sure we can run with other applications that may be present. We install and configure our application - only our application. We do our best to understand WAS and JBoss 5 so we can recommend optimum tuning of the application server for Eloquence. But these do not extend to anything but Eloquence.
End result, the architectural changes allow Eloquence to be almost neutral, running the same code on WAS and JBoss 5. Giving the same functionality on WAS and JBoss 5. It is up to the customer to decide which to use.
This probably seems boring, but for Eloquence it was a big step. We changed quite a bit of code and were nervous about how it would turn out. It turned out well.
Now, it is common for these types of discussions to do something radical - to make statements that shock and amaze. I do not wish to go against this tradition, so I am going to add a few paragraphs below. If you do not wish to participate, you can stop reading now.
First - We had a lot of trouble with Work Managers. In Spring, in WAS and in JBoss. This has got to be some of the most nonsensical logic I have seen for awhile. Since there seem to be only a few players in this game, I would ask that you all get together and figure out what you want and how you are going to do it. And, please, make it better. I know the whole topic of threads and load and queuing and concurrency create differences of opinion. I am sure there are competing camps, surfaced around grand theories, and that warfare is common. But I do not understand why we had to have unique configurations between WAS and JBoss 5. I do not understand why Spring surfaced these differences to us. I do not understand why the JBoss 5 work manager has been coded as it has. Especially since the same player(s) were involved. And for the record, I prefer the implementation we got with WAS.
Second - there is no such thing as a free JBoss 5 application server. From what we have gone through, you really need to be on the "commercial" release. Or to have paid money to one or more consultants. The documentation possibilities increase dramatically when money has changed hands.