This section describes typical Java 2 Platform, Enterprise Edition roles. Although these roles are considered to be typical, an organization could use slightly different roles to match that organization's actual application development and deployment workflow. The following sections describe the roles in greater detail. Subsets of some of these roles are defined in the EJB, JSP, and servlet specifications. J2EE.2.4.1 J2EE Product ProviderA J2EE product provider, typically an operating system vendor, database system vendor, application server vendor, or a web server vendor, implements a J2EE product providing the component containers, J2EE platform APIs, and other features defined in this specification. A J2EE product provider must provide the J2EE APIs to the application components through the containers. A product provider frequently bases an implementation on an existing infrastructure. A J2EE product provider must provide the mapping of the application components to the network protocols as specified by this specification. A J2EE product is free to implement the interfaces that are not specified by this specification in an implementation-specific way. A J2EE product provider must provide application deployment and management tools. Deployment tools enable a deployer (see Section J2EE.2.4.4, "Deployer") to deploy application components on the J2EE product. Management tools allow a system administrator (see Section J2EE.2.4.5, "System Administrator" ) to manage the J2EE product and the applications deployed on the J2EE product. The form of these tools is not prescribed by this specification. J2EE.2.4.2 Application Component ProviderThere are multiple roles for application component providers, including HTML document designers, document programmers, enterprise bean developers, etc. These roles use tools to produce J2EE applications and components. J2EE.2.4.3 Application AssemblerThe application assembler takes a set of components developed by application component providers and assembles them into a complete J2EE application delivered in the form of an enterprise archive (.ear) file. The application assembler will generally use GUI tools provided by either a platform provider or tool provider. The application assembler is responsible for providing assembly instructions describing external dependencies of the application that the deployer must resolve in the deployment process. J2EE.2.4.4 DeployerThe deployer, an expert in a specific operational environment, is responsible for deploying web applications and Enterprise JavaBeans components into that environment. The deployer uses tools supplied by the J2EE product provider to perform the deployment tasks . The deployment process is typically a three-stage process:
In some cases, a qualified deployer may customize the business logic of the application's components at deployment time by using tools provided with a J2EE product to write relatively simple application code that wraps an enterprise bean's business methods , or to customize the appearance of a JSP page, for example. The deployer's output is web applications, enterprise beans, applets, and application clients that have been customized for the target operational environment and are deployed in a specific J2EE container. J2EE.2.4.5 System AdministratorThe system administrator is responsible for the configuration and administration of the enterprise's computing and networking infrastructure. The system administrator is also responsible for overseeing the runtime well-being of the deployed J2EE applications. The system administrator typically uses runtime monitoring and management tools provided by the J2EE product provider to accomplish these tasks. J2EE.2.4.6 Tool ProviderA tool provider provides tools used for the development and packaging of application components. A variety of tools are anticipated, corresponding to the many application component types supported by the J2EE platform. Platform-independent tools can be used for all phases of development up to the deployment of an application. Platform-dependent tools are used for deployment, management, and monitoring of applications. Future versions of this specification may define more interfaces that allow such tools to be platform independent. |