1.2 Java EE 6架构

Java EE是J2EE版本的后续版本,是J2EE技术的新生和发展。Java EE技术具有J2SE平台的所有功能,同时还提供对EJB、Servlet、JSP、XML等技术的全面支持。Java EE的最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发、部署和管理等复杂问题。事实上,Java EE已经成为企业级开发的工业标准和首先平台。

根据Java EE规范的定义,Java EE平台是由一系列容器、应用组件和API服务所组成的。这些组件和API服务本身也是由JCP或其他组织所制定的规范而定义的。因为业务逻辑被组织成了可重用的组件,所以基于组件和平台独立的Java EE架构使得Java EE应用程序易于编写。另外,Java EE服务器以容器的形式为每种组件类型都提供了基本的服务。由于不需要自行开发这些服务,使得开发人员能够关注于解决业务问题。Java EE 6平台包含的元素以及它们之间的关系如图1-1所示。

38346-00-011-1

图1-1 Java EE 6平台

从图1-1中可以看出,Java EE架构主要包含4种容器,分别为应用客户端容器(Application Client Container)、Web容器(Web Container)、Applet容器(Applet Container)和EJB容器(EJB Container)。容器是指为各种应用组件提供API服务的Java EE运行时环境,Web组件(如JSP、Servlet)、EJB组件、Applet组件和应用程序客户组件必须组装成Java EE模块并且发布到容器中才能够运行。在应用客户端容器中运行的应用组件主要是指各类桌面Java应用程序;在Applet容器中运行的应用组件主要是指各种浏览器Applet。在Web容器中运行的应用组件包含可响应HTTP请求的Servlet和JSP。EJB容器中运行的是各种EJB组件。

另外容器可提供诸如目录服务、事务管理、安全性、资源缓冲池及容错性等各种可配置的公共服务。Java EE安全模块允许我们配置一个Web组件或EJB组件使得只有授权的用户才可以访问系统资源。Java EE事务模块使得我们可以指定组成一个事务的方法之间的关系,这样一个事务中的所有的方法被作为一个整体处理。JNDI查找服务为企业中的多个命名和目录服务提供了统一的接口,这样应用程序组件可以很容易地访问这些服务。Java EE远程连接模块管理客户和EJB组件之间的底层通信。当一个EJB组件被创建之后,客户端可以像调用同一个JVM中的对象一样调用它。

因为Java EE架构提供了可配置的服务,同一个Java EE应用程序中的不同的应用程序组件可以有不同的行为方式。例如,可以配置一个EJB组件,在一个产品环境中可以拥有某个层次的数据库访问权限,在另外一个产品环境中,可以配置其拥有另外层次的数据库访问权限。

容器同时还管理一些不可配置的服务,如servlet和EJB的生命周期、数据库连接资源池、数据持久化和访问Java EE平台的API等。