2、打包角色
在建立、实施和使用EJB、Web应用程序或者其他组件时,不同的人将扮演不同的角色。J2EE技术规范定义了一个宽泛的系统平台角色 (platform role),这是开发者在生成企业应用程序时扮演的。尽管在开发和实施过程中人们会想到有多种角色,但实际上这些角色只不过是一些逻辑上的概念,目的是使得人们可以更好地规划和执行一个应用程序。一个人或者机构很可能(而且希望是)具有多重角色。EAR文件的建立、实施或者使用中的普通角色包括:
- J2EE产品提供者
J2EE产品提供者提供了J2EE系统平台的一个实现,其中包括所有适当的J2EE API及此技术规范中定义的其他特性。J2EE产品提供者典型情况下是一个应用程序服务器,Web服务器或者数据库系统厂商,它通过把技术规范和组件映射到网络协议而提供了一个适当的实现。
- 应用程序组件提供者
应用程序组件提供者提供了一个J2EE组件,例如一个EJB应用程序或者一个Web应用程序。在J2EE技术规范中还有许多角色可以具有应用程序组件提供者的特点。这些包括文档开发者、JSP作者、企业bean开发者和资源适配器开发者。
- 应用程序组装者
应用程序组装者负责把一个或者多个J2EE组件结合到一个EAR文件中以生成一个J2EE应用程序。应用程序组装者还负责生成 J2EE应用程序实施描述符,并且标识出此应用程序可能需要的任何外部资源。其中包括类库、安全性角色和命名环境。应用程序组装者一般将使用J2EE产品提供者和工具提供者提供的工具。
- 工具提供者
工具提供者提供相关的实用程序来自动实现J2EE应用程序的生成、打包和实施。工具提供者可以提供相关的工具来自动为一个 EAR文件生成实施描述符、生成EAR文件以及把EAR文件实施到应用程序服务器。工具提供者提供的实用程序既可以是独立于系统平台的(适用于不论任何环境下的所有EAR文件),也可以是与系统平台相关的(适用于一种特定环境下的本机功能)。
- 实施者
实施者负责把Web应用程序和EJB应用程序实施到服务器环境中。实施者并不负责实施资源适配器档案文件或者应用程序--客户档案文件,但也可能会负责这些组件的相关配置。这些组件即使是作为J2EE EAR文件的一部分打包,在企业应用程序实施的时候也不会被考虑。它们是J2EE应用程序的组成部分,但并不通过一个运行时的“激活过程 (activation)”而组合,而Web应用程序和EJB容器在实施过程中要经过这个激活过程。资源适配器档案文件就是一个合法JCA实现的库。尽管它们被打包成一个J2EE EAR文件的组成部分,但它们并不在J2EE容器的上下文环境中运行。因此,由于资源适配器档案文件并没有J2EE容器,它们在激活过程中也不需要有 J2EE实施者。
应用程序客户程序确实是在J2EE容器的上下文环境中运行,但是它们并不实施在应用程序服务器中。应用程序客户程序独立运行,实施者并不负责为这些程序配置容器环境。
实施者生成准备好供容器使用的Web应用程序、EJB应用程序,applet和已经针对应用程序服务器的目标环境定制的应用程序客户。
- 系统管理员
系统管理员负责配置网络和运行环境供应用程序服务器和J2EE应用程序在其中运行。系统管理员还负责监视和维护J2EE应用程序。
3、打包的限制
EAR文件满足了打包应用程序的基本要求, 因为大多数基于Web的J2EE应用程序完全由Web和EJB应用程序组成。但是EAR文件缺乏打包复杂的J2EE应用程序的能力。例如,下列组件不能在一个EAR文件中被声明,但经常用于一个J2EE应用程序:
- JDBC DataSource对象;
- JMS ConnectionFactory和Destination对象;
- JMX Mbeans;
- 在应用程序服务器中运行的一些JMS消费者,如MessageConsumer作为SeverSession的一部分运行;
- 当应用程序被实施和卸出(un-deployed)时触发的类。(这些类是由厂商提供的专门扩展,不是J2EE技术规范的规定。但是,所有的厂商一般都提供它们。)
目前这些组件都需要被手工配置以及通过实施厂商提供的管理接口配置和实施,并且这也是系统管理员的责任。随着时间的推移,这些项目的使用将会增加,因而EAR文件支持这些组件的打包也是很重要的,以便使应用程序的移植成为可能。
