Many people have read this subject. Please give your opinions.
My personnal experience so I might be biased and/or wrong :
If you need to expose services through RMI, JMS and SOAP, if you need transactions, security, connection pooling, POJO/Entity caching, clustering (and more) you can indeed do just fine using Tomcat + a few frameworks. But enventually you will end up with a homemade application server and yYou will have to code custom tools for tasks such as deployment and management.
Developping EJBs is not that hard, really, especially since EJB3, give it a try !
As my experience in J2EE App Server is limited, I am agreed with you about JMS, but for Soap or RMI we can use Web services for any distributed environment and the Web services can be deployed in Tomcat.
For the homemade app server: For example when I use hibernate, I have to add hibernate.jar to the lib of my application during developpment process and when deployment, I have to take off hibernate.jar from lib and use hibernate.jar inside .har of Jboss? I don't think that is practical of all
And why Hibernate inside an app server which mainly run CMP? Hibernate and CMP are complementary or opposed? If oppoed, then why they are together an how is about the strategy of JBoss?
Is EJB3 a kind of Hibernate???
I am really confused in the IT world today? How software architects can have right choices in the IT ocean?
Thank you for your discussion.