购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.1 J2EE平台简介

J2EE(Java 2 Platform Enterprise Edition)为设计、开发、装配和部署企业级应用程序提供了一个基于组件的解决方案。使用J2EE可以有效地减少费用,快速设计和开发企业级的应用程序。J2EE平台提供了一个多层结构的分布式的应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(XML)的数据交换、统一的安全模式和灵活的事务控制。使用J2EE不仅可以更快地发布新的解决方案,而且独立于平台的特性让使用J2EE的解决方案不受任何提供商的产品和应用程序编程界面(API)的限制。用户可以选择最适合自己的业务系统所需技术的产品和组件。

5.1.1 分布式的多层应用程序

J2EE平台采用了多层分布式应用程序模型。实现不同逻辑功能的应用程序被封装到不同的组件中,处于不同层次的组件被分别部署到不同的机器中。图5-1表示了两个多层的J2EE应用程序根据下面的描述被分为不同的层。其中涉及的J2EE应用程序的各个部分将在J2EE组件中给出详细描述。

图5-1 多层结构的应用程序

(1)运行在客户端机器的客户层组件。

(2)运行在J2EE服务器中的Web层组件。

(3)运行在J2EE服务器中的业务层组件。

(4)运行在EIS服务器中的企业信息系统(EIS)层软件。

从图5-1中可以看到J2EE应用程序既可以是三层结构,也可以是四层结构。一般来说,J2EE应用程序经常分布于三个不同的位置,我们通常将J2EE应用程序的多层结构考虑为三层结构。这三个位置分别是:客户端机器、J2EE服务器和在后端数据存储服务器。三层结构的应用程序可以理解为在标准的两层结构中的客户端程序和后端服务中间增加了应用服务器。

5.1.2 J2EE组件

J2EE应用程序由一系列的组件组合而成。一个J2EE组件就是一个软件单元,它随同它相关的类和文件被装配到J2EE应用中,并与其他组件通信。J2EE组件由Java编程语言写成,并和用该语言写成的其他程序一样进行编译。J2EE组件和“标准的”Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages(JSP)是运行在服务器端的Web组件;Enterprise Java Bean(EJB)组件是运行在服务器端的业务组件。

1.J2EE客户端

图5-2显示了客户层组成的多种方式。客户端可以直接和运行在J2EE服务器中的业务层通信,也可以通过运行在Web层中的JSP页面和Servlet同业务层组件进行通信。J2EE客户端可以分为Web客户端、Applets和Java应用程序。

图5-2 服务器通信

(1)Web客户端。 一个Web客户端也被称为瘦客户端,也就是显示由JSP或Servlet动态产生的Web页面的程序。瘦客户端一般不做像数据库查询、执行复杂的业务逻辑及连接传统应用程序这样的操作。当使用一个瘦客户端时,重量级的操作都被交给在J2EE服务器执行的EJB。这样可以充分发挥J2EE服务器端技术在安全性、速度、耐用性和可靠性方面的优势。

(2)Applets。 Applets也可以用于连接J2EE应用。一个Applet是一个用Java编程语言编写的小的客户端应用程序,它使用安装在Web浏览器的Java虚拟机运行。然而,为了在Web浏览器中成功地运行Applet,客户端系统很可能需要Java插件和安全策略文件。

(3)应用程序客户端。 一个J2EE应用程序客户端运行在客户端机器上,它使用户可以处理需要比标记语言所能提供的更丰富的用户界面的任务。具有代表性的是用Swing或抽象窗口工具包(AWT)API建立的图形用户界面(GUI),当然也可能是一个命令行的界面。

应用程序客户端可以直接访问运行在业务层的EJB。当然一个J2EE应用程序客户端也可以打开一个HTTP连接来与一个运行在Web层的Servlet建立通信。

2.J2EE中间层

J2EE中间层的内容极为丰富,也是J2EE平台中最重要的内容,EJB(Enterprise Java Beans)是J2EE规范中重要的组件。图5-3显示了一个EJB如何从客户端接受数据,对它进行处理,并将其发送到企业信息系统层以做存储。一个EJB也可以从存储器获取数据,对它进行处理(如果需要),并将其发送到客户端应用程序。

图5-3 业务层和EIS层

SUN在EJB2.0规范中对EJB定义如下:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构建体系结构。使用EJB编写的应用程序具有可扩展性、交互性,以及多用户安全的特性。这些应用只需要写一次,就可以发布到任何支持EJB规范的服务器平台上。

3.企业信息系统层

企业信息系统层处理企业信息系统软件并包含诸如企业资源计划(ERP)、主机事务处理、数据库系统和其他传统系统这样的底层系统。J2EE应用程序组件可能需要访问企业信息系统。J2EE1.3支持Connector构架,该构架是将J2EE平台连接到企业信息系统上的一个标准API。

5.1.3 J2EE容器

如果从零开始,多层应用程序是很难编写的,开发者需要花费大量的精力来完成事务处理、状态管理、多线程、资源池和其他底层处理。基于组件并与平台无关的J2EE体系结构使J2EE应用程序易于编写,除了因为业务逻辑被封装到可重用的组件中外,J2EE服务器以容器的形式为每一个组件类型提供底层服务。因此我们不需要自己开发这些服务,而是全力以赴地着手解决业务问题。

在容器中可包含若干组件,并为这些组件提供服务。Web组件、EJB等都必须首先被装配到一个J2EE应用程序中,并且部署到相应的容器,才可以执行。部署时会将J2EE应用程序组件安装到J2EE容器中,如图5-4所示。

(1)J2EE服务器: J2EE服务器是J2EE产品的运行容器。一个J2EE服务器提供EJB容器和Web容器。

(2)EJB容器: EJB容器管理它所包含的EJB,容器负责对象的注册、提供远程接口、创建和清除对象实例、检查对象安全性、管理对象的活动并协调分布式事务处理。

(3)Web容器: Web容器管理JSP页面和Servlet组件的执行。Web组件和Web容器运行在J2EE服务器中。

(4)客户端应用程序容器: 管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户端中。

图5-4 J2EE服务器和容器

5.1.4 J2EE的部署

J2EE组件被分别打包并绑定到一个J2EE应用中以供部署。每一个组件、组件相关资源,例如,GIF、HTML文件和一个部署说明组成一个模块并被添加到J2EE应用程序中。一个J2EE应用由一个或几个EJB组件、Web组件或应用程序客户端组成。根据不同的设计需求,最终的企业解决方案可以是一个J2EE应用程序,也可以由多个J2EE应用程序组成。

一个J2EE应用程序,以及它的每一个模块都有它自己的部署说明。一个部署说明就是一个XML文件,它描述了一个组件的部署设置。例如,它可以描述一个EJB事务属性和安全性授权。部署说明信息是公开的,改变部署说明不必修改源代码。在运行时,J2EE服务器将按照部署说明中的描述执行J2EE应用。

一个J2EE应用及它的所有模块被提交到一个Enterprise Archive(EAR)文件中。一个EAR文件就是一个具有.ear扩展名的标准的Java Archive(JAR)文件。在J2EE SDK中有程序部署工具的GUI版本。通过这个部署工具可以建立EAR文件,并在其中添加JAR文件和Web Archive(WAR)文件。

(1)每一个EJB JAR文件包含一份部署说明、一组EJB,以及相关的文件。

(2)每一个应用程序客户端的JAR文件包含一份部署说明、应用程序客户端的类文件,以及相关的文件。

(3)每一个WAR文件包含一份部署说明、Web组件,以及相关的资源。

使用模块和EAR文件可以很方便地使用同一组件装配出不同的J2EE应用。不需要额外的编程工作,唯一要做的是在J2EE EAR文件中添加各种J2EE模块。 Gc4cidB6AzFX94B4wW1I+Udx/g1oexlOVu0etiIWHDfm0XVN3PYQoD/FGTKrYgJ/

点击中间区域
呼出菜单
上一章
目录
下一章
×