By Paul Harmon and Jason Matthews
Let's consider what's so special about [Sun’s] EJB [Enterprise JavaBeans] or MTS components. First, an EJB component sitting inside an EJB container looks almost exactly the same as an MTS component inside its respective MTS container. The EJB components are JavaBeans, and there's nothing new there. It's the EJB container that introduces the difference. When a client component sends a message to an EJB component, it must first pass through the container (a set of components). A container is like an animal cell wall, intercepting and judging anything that wants to pass from the outside to the EJB components within.
In the first article of this series, the evolution of Sun’s Enterprise JavaBean was detailed. In this article, we examine what makes the EJB component unique and how vendors are redesigning them for greater function. This content originally appeared in the September issue of Wiesner Publishing's Software Magazine and appears on TechRepublic under a special arrangement with the publisher.
The EJB container creates a clean separation between the thought that goes into the development of an EJB component, and the design considerations involved in programming the EJB container. In other words, using an EJB or MTS approach, one group of developers can create components without having to consider how they might be fielded. Another group takes the finished EJB components and decides how they are to be managed in a particular system. This creates a situation that provides the basis for a mature market for reusable components.
Sun's EJB specification details the nature and interfaces of EJB components, EJB containers, and EJB application servers. The application server pre-packages lots of details that a system developer would have had to consider. The system developer now places EJB components in containers and then programs the container interface and links the container to external service frameworks provided by the EJB application server environment.
Keep this in mind: Although EJB application servers are products, they are actually frameworks of components. Depending on the vendor, the services provided by the server frameworks are more or less well-hidden. The EJB application server simply substitutes more systematic and manageable EJB component interfaces for the more loosely organized frameworks that make up a typical CORBA OTM implementation.
The real advantage is the degree to which the EJB and MTS component models free business component developers from concerns about how the component will be fielded. The business component developer can focus on the business functionality. All of the runtime considerations can be handled later by the developer who places the component in a container and programs the components that make up the "wall" of the container.
EJB application server vendors
Today, there is quite a bit of variation in EJB application server products, primarily because many vendors are redesigning existing products to function as enterprise application servers. For example, some EJB application servers started life as Internet or HTML servers, while others began as database servers. Still others began as CORBA middleware products, Java development tools, or OO databases. An EJB application server is a combination of all these things, and thus it makes sense for vendors from each of these niches to enhance their products in an effort to enter a hot new market. The result, however, is that each product reflects the strengths it brings from its particular background and needs to work to improve its offerings in other areas.
To complicate matters, transaction or server-side component models are, themselves, new technology, and the standards are changing rapidly. Thus, each vendor can implement the settled features associated with the EJB or CORBA specifications and must wait, or make proprietary extensions, to capture other features that won't be defined until subsequent releases of the specifications.
Paul Harmon is the editor of the Component Development Strategies newsletter and the Director of Technology Information at Genesis Development Corp., in West Chester, PA.
Jason Matthews, CEO of Genesis Development, heads the Genesis Software Evaluation Lab that contracts for the private evaluation of application servers.How would you rate EJB application server products? How should developers and vendors improve these products to better fit your needs? Post a comment below or send us a story idea