Understanding EJB Roles
Every EJB developer assumes the role of enterprise bean provider, as defined in the EJB specifications. This entails the responsibility for not only developing the specific EJB components or beans, but also packaging them in a Java archive file (.jar) together with the deployment descriptor. Because EJBs are reusable discrete components, they can be supplied by third-party vendors just like resource adapters. Domain experts can develop and sell EJBs that can be used by application assemblers to assemble specific business applications. Figure 3.1 shows the different roles specified in the EJB specifications and the overlap with the roles specified in the JCA specification.
Figure 3.1 Roles specified in EJB specifications.
An application assembler is responsible for packaging all the necessary EJB jar files and any other jar files, including resource adapter .rar files, into an assembled business application. Note that assembling does not mean installing and deploying the application; it means bringing together the various application components necessary for the application, and changing the individual components deployment descriptors as necessary.
The deployer takes the assembled application, and deploys it in a specific run-time operational environment consisting of an EJB server and EJB containers. Although it is not necessary that the EJB server and EJB container be provided by the same vendor, in most cases it is (especially because the current specifications assume that the EJB container provider also supplies the EJB server). Any configurations required by the components are also handled by the deployer, who uses a deployment tool to install all external software that the application components depend on.
The EJB container provider is responsible for supplying a server and container that conform to the EJB 2.0 architecture specifications. The EJB container is a hosting environment for EJB instances. The container also has a deployment management tool that enables the deployer to manage J2EE applications.
The system administrator's role is much broader than just maintaining the J2EE environments. A system administrator is also responsible for managing the EIS environment and monitoring the distributed environment. No specific system administration and monitoring contracts are specified in the EJB specifications. Neither are any similar contracts defined in the JCA specifications. Thus, for the most part, the system administration and monitoring function is customized to match the specific enterprise's requirements.