Home | Download | PDF | API | FAQ | Search | Feedback | History

> ## Development Roles

> Reusable modules make it possible to divide the application development and deployment process into distinct roles so that different people or companies can perform different parts of the process.

> The first two roles involve purchasing and installing the Java EE product and tools. After software is purchased and installed, Java EE components can be developed by application component providers, assembled by application assemblers, and deployed by application deployers. In a large organization, each of these roles might be executed by different individuals or teams. This division of labor works because each of the earlier roles outputs a portable file that is the input for a subsequent role. For example, in the application component development phase, an enterprise bean software developer delivers EJB JAR files. In the application assembly role, another developer combines these EJB JAR files into a Java EE application and saves it in an EAR file. In the application deployment role, a system administrator at the customer site uses the EAR file to install the Java EE application into a Java EE server.

> The different roles are not always executed by different people. If you work for a small company, for example, or if you are prototyping a sample application, you might perform the tasks in every phase.

> ### Java EE Product Provider

> The Java EE product provider is the company that designs and makes available for purchase the Java EE platform APIs, and other features defined in the Java EE specification. Product providers are typically application server vendors who implement the Java EE platform according to the Java EE 5 Platform specification.

> ### Tool Provider

> The tool provider is the company or person who creates development, assembly, and packaging tools used by component providers, assemblers, and deployers.

> ### Application Component Provider

> The application component provider is the company or person who creates web components, enterprise beans, applets, or application clients for use in Java EE applications.

> #### Enterprise Bean Developer

> An enterprise bean developer performs the following tasks to deliver an EJB JAR file that contains the enterprise bean(s):

> - Writes and compiles the source code
> - Specifies the deployment descriptor
> - Packages the `.class` files and deployment descriptor into the EJB JAR file

> #### Web Component Developer

> A web component developer performs the following tasks to deliver a WAR file containing the web component(s):

> - Writes and compiles servlet source code
> - Writes JSP, JavaServer Faces, and HTML files
> - Specifies the deployment descriptor
> - Packages the `.class`, `.jsp`, and`.html` files and deployment descriptor into the WAR file

> #### Application Client Developer

> An application client developer performs the following tasks to deliver a JAR file containing the application client:

> - Writes and compiles the source code
> - Specifies the deployment descriptor for the client
> - Packages the `.class` files and deployment descriptor into the JAR file

> ### Application Assembler

> The application assembler is the company or person who receives application modules from component providers and assembles them into a Java EE application EAR file. The assembler or deployer can edit the deployment descriptor directly or can use tools that correctly add XML tags according to interactive selections. A software developer performs the following tasks to deliver an EAR file containing the Java EE application:

> - Assembles EJB JAR and WAR files created in the previous phases into a Java EE application (EAR) file
> - Specifies the deployment descriptor for the Java EE application
> - Verifies that the contents of the EAR file are well formed and comply with the Java EE specification

> ### Application Deployer and Administrator

> The application deployer and administrator is the company or person who configures and deploys the Java EE application, administers the computing and networking infrastructure where Java EE applications run, and oversees the runtime environment. Duties include such things as setting transaction controls and security attributes and specifying connections to databases.

> During configuration, the deployer follows instructions supplied by the application component provider to resolve external dependencies, specify security settings, and assign transaction attributes. During installation, the deployer moves the application components to the server and generates the container-specific classes and interfaces.

> A deployer or system administrator performs the following tasks to install and configure a Java EE application:

> - Adds the Java EE application (EAR) file created in the preceding phase to the Java EE server
> - Configures the Java EE application for the operational environment by modifying the deployment descriptor of the Java EE application
> - Verifies that the contents of the EAR file are well formed and comply with the Java EE specification
> - Deploys (installs) the Java EE application EAR file into the Java EE server