There are 6 roles defined :
The Bean Provider is the producer of enterprise beans. His or her output is an ejb-jar file that contains one or more enterprise beans. The Bean Provider is responsible for the Java classes that implement the enterprise bean's business methods; the definition of the bean's home and component interfaces; and the bean's deployment descriptor. The deployment descriptor (DD) includes the STRUCTURAL information (e.g. the name of the enterprise bean class) of the enterprise bean and declares all the enterprise bean's external dependencies (e.g. the names and types of resources that the enterprise bean uses).
Bean Provider is responsible for packaging the enterprise beans in an ejb-jar file.
The deployment descriptor must include the structural information. Structural information describes the structure of an enterprise bean and declares an enterprise bean's external dependencies. The structural information cannot be changed because doing so could break the enterprise bean's function.
MUST USE the enterprise-beans element to list all the enterprise beans in the ejb-jar file.
The Application Assembler combines enterprise beans into larger deployable application units. The input to the Application Assembler is one or more ejb-jar files produced by the Bean Provider. The Application Assembler outputs one or more ejb-jar files that contain the enterprise beans along with their application assembly instructions. The Application Assembler inserts the application assembly instructions into the deployment descriptors.
The deployment descriptor must include the application assembly information. Application assembly information describes how the enterprise bean (or beans) in the ejb-jar file is composed into a larger application deployment unit. Assembly level information can be changed without breaking the enterprise bean's function, although doing so may alter the behavior of an assembled application.
The Deployer takes one or more ejb-jar files produced by a Bean Provider or Application Assembler and deploys the enterprise beans contained in the ejb-jar files in a specific operational environment. The operational environment includes a specific EJB Server and Container.
The Deployer must resolve all the external dependencies declared by the Bean Provider (e.g. the Deployer must ensure that all resource manager connection factories used by the enterprise beans are present in the operational environment, and he or she must bind them to the resource manager connection factory references declared in the deployment descriptor), and must follow the application assembly instructions defined by the Application Assembler. To perform his or her role, the Deployer uses tools provided by the EJB Container Provider.
Uses the deployment tools provided by the EJB Container provider to deploy ejb-jar files produced by the Bean Providers and Application Assemblers.
EJB Server Provider
The EJB server provider is a specialist in the area of distributed transaction management, distributed objects, and other lower-level system services. A typical EJB server provider is an operating system vendor, middleware vendor, or database vendor.
The job of the server provider is to provide a runtime EJB server environment that is compliant with the EJB specification. IBM is a server provider of the WebSphere Application Server.
EJB Container Provider
From the perspective of the enterprise beans, the Container is a part of the target operational environment. The Container runtime provides the deployed enterprise beans with transaction and security management, network distribution of remote clients, scalable management of resources, and other services that are generally required as part of a manageable server platform.
Responsible for providing the DEPLOYMENT TOOLS used by the Deployer to deploy enterprise beans packaged in the ejb-jar file.
Responsible for providing all the runtime services for the deployed enterprise bean instances.
The focus of a Container Provider is on the development of a scalable, secure, transaction-enabled container that is integrated with an EJB Server. The Container Provider insulates the enterprise Bean from the specifics of an underlying EJB Server by providing a simple, standard API between the enterprise Bean and the container. This API is the Enterprise JavaBeans component contract.
The Container Provider also manages the persistence issues for its entity beans that use container-managed persistence (CMP). The Container Provider's tools generate code that moves data between the enterprise bean's container-managed fields and a database or an existing application. This code generation typically takes place at deployment time (vendor-specific).
The System Administrator is responsible for the configuration and administration of the enterprise's computing and networking infrastructure that includes the EJB Server and Container. The System Administrator is also responsible for overseeing the well-being of the deployed enterprise beans applications at runtime.
Responsible for configuring the EJB Container and server, setting up security management, integrating resource managers with the EJB Container.