CONTENTS | PREV | NEXT | INDEX Designing Enterprise Applications
with the J2EETM Platform, Second Edition



2.2 Platform Roles

The J2EE platform defines several distinct roles in the application development and deployment life cycle: J2EE product provider, application component provider, application assembler, deployer, system administrator, and tool provider. In general, the roles are defined to aid in identifying the tasks performed by various parties during the development, deployment, and running of a J2EE application. However, while some of these roles, such as system administrator and tool provider, perform tasks that are common to non-J2EE platforms, other roles have a meaning specific to the J2EE platform, because the tasks those roles perform are specific to J2EE technology. In particular, application component providers, application assemblers, and deployers must configure J2EE components and applications to use J2EE platform services (described in Section 2.3 on page 35).

The roles can be fulfilled by whatever personnel match an organization's actual application development and deployment workflow. Thus, each J2EE role may be performed by a different party or a single party may perform several roles. For example, a programmer may perform the roles of application component provider and application assembler.

The following sections define the J2EE platform roles. Subsets of some of these roles are defined in the EJB specification, including enterprise bean provider, EJB container provider, and EJB server provider. The JavaServer Pages specification defines the JSP container provider role, and the Java Servlet specification defines the roles of application developer, servlet container provider, Web container provider, and Web server provider.


2.2.1 J2EE Product Provider

A 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 the J2EE specification. A J2EE product is free to implement interfaces not specified by the J2EE specification in an implementation-specific way.

A J2EE product provider provides application deployment and management tools. Deployment tools enable a deployer to deploy components on the J2EE product. The deployer role is described in Section 2.2.4 on page 34. Management tools allow a system administrator to manage the J2EE product and the applications deployed on the J2EE product. The form of these tools is not prescribed by the J2EE specification. The system administrator role is described in Section 2.2.5 on page 34.


2.2.2 Application Component Provider

Application component providers produce the building blocks of a J2EE application. They typically have expertise in developing reusable components as well as sufficient business domain knowledge. Application component providers need not know anything about the operational environment in which their components will be used. There are multiple roles for application component providers, including HTML page authors, document programmers, enterprise bean developers, and so on. These roles use tools provided by a tool provider to produce J2EE components and applications. The tool provider role is described in Section 2.2.6 on page 34.


2.2.3 Application Assembler

An application assembler takes a set of components developed by application component providers and assembles them into a complete J2EE application. Their expertise lies in providing solutions for a specific problem domain, for example, the financial industry. Application assemblers may not be familiar with the source code of the components that they use, but they use declarative descriptors for the components in order to know how to build applications from them. Like application component providers, they need not know anything about the operational environment in which their applications will be used. An application assembler will generally use GUI tools provided by either an application component provider or tool provider. An application assembler is responsible for providing assembly instructions describing external dependencies of the application that the deployer must resolve in the deployment process.


2.2.4 Deployer

A deployer, an expert in a specific operational environment, is responsible for deploying J2EE components and applications into that environment. A deployer uses tools supplied by the J2EE product provider to perform deployment tasks. A deployer installs components and applications into a J2EE server and configures components and applications to resolve all the external dependencies declared by the application component provider and application assembler.


2.2.5 System Administrator

A system administrator is responsible for configuring and administering an enterprise's computing and networking infrastructure. A 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.


2.2.6 Tool Provider

A tool provider provides tools used for the development and packaging of application components. A variety of tools for use with the J2EE platform are possible, corresponding to the many component types supported by the J2EE platform as well as the various roles defined for the J2EE development and deployment process. 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 the J2EE specification may define more interfaces that allow such tools to be platform independent. For example, JSR 77 defines a tool API for application development, and JSR 88 defines an API for application management. These APIs are likely to be supported in the next version of the J2EE specification.



CONTENTS | PREV | NEXT | INDEX
Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved.