J2EE EJB in Practice
In the last seven articles, we explored a whole host of topics involved with the construction of J2EE-compliant EJBs. We looked at the basic architecture of application servers, the EJB application server infrastructure, EJB development and deployment procedures, stateless session EJBs, stateful session EJBs, bean-managed persistent (BMP) entity EJBs, container-managed persistent (CMP) entity EJBs, message-driven EJBs, and EJB security. All this technology is touted to provide—and truly does provide—an excellent infrastructure upon which you can deploy enterprise applications rapidly for scalability.
But how scalable is scalable, and how rapid is rapid? Such statements can be subjective, by nature. In my experience, a subset of folks out there tout use of EJB and J2EE-compliance for business reasons or for technical exuberance reasons. Granted, you could be thinking that I am one such person. Well, in this article, I take off my technology training hat and offer some advice based on real-world experiences, covering experienced pros, experienced cons, pitfalls, and workarounds with the technology.
Jumping to this article's conclusion here, this technology does enable you to more rapidly construct scalable, reliable, available, maintainable, and secure enterprise applications. But it is not a perfect world, and you will experience pitfalls. Suffice it to say that it, in my opinion and experience (and I've been around the block with previous and current competing technologies), J2EE, EJB, and Java technology is a vastly superior technology to use when building enterprise systems and applications.