J2EE概述

/ns/wz/otherwz/data/20020806022737.htm

转帖
  

  今天,越来越多的开发者想要编写企业级的分布式的事务处理应用程序,而这些应用程序必须可以发挥速度、安全性和服务器端技术的可靠性。如果你已经在这一领域从事工作,你应该了解在现在这个高速发展、要求苛刻的电子商务和信息技术的世界中,企业级的应用程序必须具有以下特点:花费更少的金钱、具有更快的速度、占用更少的资源。

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

  1、分布式的多层应用程序

  J2EE平台使用了一个多层的分布式的应用程序模型。应用程序的逻辑根据其实现的不同功能被封装到组件中,组成J2EE应用程序的大量应用程序组件根据在其所属的多层的J2EE的环境中所处的层被安装到不同的机器中。图1-1表示了两个多层的J2EE应用程序根据下面的描述被分为不同的层。在图1-1中涉及的J2EE应用程序的各个部分将在J2EE组件中给出详细描述。

  1、运行在客户端机器的客户层组件。
  2、运行在J2EE服务器中的Web层组件。
  3、运行在J2EE服务器中的商业层组件。
  4、运行在EIS服务器中的企业信息系统(EIS)层软件。

  尽管从图1-1中可以看到J2EE应用程序既可以是三层结构,也可以是四层结构,但是我们通常将J2EE应用程序的多层结构考虑为三层结构。这是因为它们分布在三个不同的位置:客户端机器、J2EE服务器机器和在后端的传统的机器。三层结构的应用程序可以理解为在标准的两层结构的客户端/服务器模式的客户端应用程序和后端存储资源中间增加了一个多线程的应用程序服务器。


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

  2、J2EE组件

  J2EE应用程序由组件组成。一个J2EE组件就是一个自带功能的软件单元,它随同它相关的类和文件被装配到J2EE应用程序中,并实现与其它组件的通信。J2EE规范是这样定义J2EE组件的:
  客户端应用程序和applet是运行在客户端的组件。
  Java Servlet和JavaServer Pages (JSP)是运行在服务器端的Web组件。
  Enterprise JavaBean(EJB)组件(enterprise bean)是运行在服务器端的商业软件。
  J2EE组件由Java编程语言写成,并和用该语言写成的其它程序一样进行编译。J2EE组件和"标准的"Java类的不同点在于:它被装配在一个J2EE应用程序中,具有固定的格式并遵守J2EE规范,它被部署在产品中,由J2EE服务器对其进行管理。

  3、J2EE客户端

  一个J2EE客户端既可以是一个Web客户端,也可以是一个应用程序客户端。

  3.1 Web客户端
  一个Web客户端由两部分组成:由运行在Web层的Web组件生成的包含各种标记语言(HTML、XML等等) 的动态Web页面和接受从服务器传送来的页面并将它显示出来的Web页面。
  一个Web客户端有时被称之为瘦客户端。瘦客户端一般不做象数据库查询、执行复杂的商业规则及连接传统应用程序这样的操作。当你使用一个瘦客户端时,象这样的重量级的操作被交给了在J2EE服务器执行的enterprise bean。这样就可以充分发挥J2EE服务器端技术在安全性、速度、耐用性和可靠性方面的优势。

  3.2 Applets
  从Web层接收的一个Web页面可以包含内嵌的applet。一个applet是一个用Java编程语言编写的小的客户端应用程序,它在安装在Web浏览器中的Java虚拟机中运行。然而,为了在Web浏览器中成功地运行applet,客户端系统很可能需要Java插作和安全策略文件。
  Web组件是用来建立一个Web客户端程序的首选的API,因为这样在客户端系统中就不需要插件和安全策略文件。同样的,使用Web组件可以有效地改善应用程序设计,因为它们提供了一个将应用程序设计和Web页面设计有效分离的途径。Web页面的设计者可以不必关心Java编程语言的语法就能很好地完成自己的工作。

3.3 应用程序客户端
  一个J2EE应用程序客户端运行在客户端机器上,它使得用户可以处理需要比标记语言所能提供的更丰富的用户界面的任务。具有代表性的是用Swing或抽象窗口工具包(AWT)API建立的图形用户界面(GUI),但是一个命令行界面也是当然可能的。
  应用程序客户端直接访问运行在商业层的enterprise bean。然而,如果应用程序需要授权, 一个J2EE应用程序客户端可以打开一个HTTP连接来与一个运行在Web层的servlet建立通信。

  4、JavaBeans组件体系结构

  服务器层和客户层也可以包含以JavaBean组件体系结构(JavaBeans组件)为基础的组件来管理在一个应用程序客户端或applet与运行在J2EE服务器上的组件之间的数据流动以及服务器端组件与数据库之间的数据流动。在J2EE规范中JavaBeans组件不被认为是J2EE组件。

  JavaBeans组件具有实例变量以及用来访问实例变量中的数据的get方法和set方法。作这种用途的JavaBeans组件在设计和执行时相当简单,但是它必须遵守JavaBeans组件体系结构的命令和设计惯例。

  5、J2EE服务器通信

  图1-2显示了客户层组成的多种方式。客户端可以直接和运行在J2EE服务器中的商业层进行通信。如果是一个运行在浏览器中的客户端,也可以通过运行在Web层中的JSP页面和Servlet进行这种通信。
你的J2EE应用程序是采用瘦客户端还是胖客户端。要作出这样的决定,你应该明白将胖客户端是将功能留在客户端,使它与用户更接近,而瘦客户端是将功能的实现尽可能地交给服务器。由服务器处理更多的功能,就更容易分发、部署和管理应用程序;而将更多的功能留在客户端对于有经验的用户也许是个明智的选择。



图1-2 服务器通信

  5.1 Web组件
  J2EE的Web组件既可以是servlet也可以是JSP页面。Servlets是一个Java编程语言类,它可以动态地处理请求并作出响应。JSP页面是一个基于文本的文档,它以servlet的方式执行,但是它可以更方便建立静态内容。
  在装配应用程序时,静态的HTML页面和applet被绑定到Web组件中,但是它们并不被J2EE规范视为Web组件。服务器端的功能类也可以被绑定到Web组件中,与HTML页面一样,它们也不被J2EE规范视为Web组件。
正如图1-3中所示,和客户层一样,Web层也可以包含一个JavaBeans组件以管理用户的输入并将输入发送到运行在商业层的enterprise bean进行处理。



图1-3 Web层和J2EE应用程序

  5.2 商业组件
  商业代码,表示了例如银行、零售和财政这样的特定的商业领域的相适应的逻辑。它由运行在商业层的enterprise bean处理。图1-4显示了一个enterprise bean如何从客户端接受数据,对它进行处理(如果需要),并将其发送到企业信息系统层以作存储。一个enterprise bean也可以从存储器获取数据,对它进行处理(如果需要),并将其发送到客户端应用程序。



图1-4 商业层和EIS层

有三种类型的enterprise beans:session beans、entity beans和message-driven beans。一个session bean描述了与客户端的一个短暂的会话。当客户端的执行完成后,session bean和它的数据都将消失。与些相对应的是一个entity bean描述了存储在数据库的表中的一行的持久稳固的数据。如果客户端终止或者服务结束,底层的服务会负责entity bean数据的存储。
  一个message-driven bean结合了一个session bean和一个Java信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。这份指南只介绍entity bean和session bean。有关message-driven bean的介绍,请参看Java消息服务指南:
http://java.sun.com/products/jms/tutorial/index.html

  6、企业信息系统层

  企业信息系统层处理企业信息系统软件并包含诸如企业资源计划(ERP)、主机事务处理、数据库系统和其它传统系统这样的底层系统。J2EE应用程序组件可能需要访问企业信息系统,例如是获得一个数据库连接。

  6.1 J2EE容器
  通常,瘦客户端的多层应用程序是很难编写的,这是因为这得包括许多行复杂的代码以处理事务、状态管理、多线程、资源池和其它复杂的底层详细资料。基于组件并与平台无关的J2EE体系结构使得J2EE应用程序易于编写,这是因为商业逻辑被封装到可重用的组件中,此外,J2EE服务器以容器的形式为每一个组件类型提供底层服务。因为我们不需要自己开发这些服务,这使我们可以全力以赴地着手处理商业问题。

  6.2 容器服务
  容器是一个组件和支持组件的底层平台特定功能之间的接口,在一个Web组件、enterprise bean或者是一个应用程序客户端组件可以被执行前,它们必须被装配到一个J2EE应用程序中,并且部署到它们的容器。
装配的过程包括为J2EE应用程序中的每一个组件以及J2EE应用程序本身指定容器的设置。容器设置定制了由J2EE服务器提供的底层支持,这将包括诸如安全性、事务管理、Java命名目录接口(JNDI)搜寻以及远程序连接。下面是其中的主要部分:

  1、J2EE的安全性模式可以让你对一个Web组件或enterprise bean进行配置以使得只有授权用户访问系统资源。
  2、J2EE的事务模式可以让你指定方法之间的关系以组成一个单个的事务,这样在一个事务中的所有方法将被视为一个单一的整体。
  3、JNDI搜寻服务为企业中的多种命名目录服务提供一个统一的接口,这使得应用程序组件可以访问命名目录服务。
  4、J2EE远程连接模式管理客户端和enterprise bean之间的底层通信。在一个enterprise bean被建立后,客户端在调用其中的方法时就象这个enterprise bean就运行在同一个虚拟机上一样。

  实际上,J2EE体系结构提供了可配置的服务意味着在相同的J2EE应用程序中的应用程序组件根据其被部署在什么在地方在实际运行时会有所不同。例如,一个enterprise bean可能在一个产品环境中拥有包含访问数据库数据的某种级别的安全性设置,而在另一个产品环境中是另一个访问数据库的级别。
  容器还管理诸如一个enterprise bean和servlet的生存周期、数据库连接资源池以及访问在J2EE APIs中介绍的J2EE平台API这样不能配置的服务。尽管数据持久化是一个不能配置的服务,但是J2EE体系统结构允许你在你想要获得比默认的容器管理持久化所能提供更多的控制时,通过在你的enterprise bean执行中包含适当的代码以重载容器管理持久化。例如,你可以使用bean管理持久化以实现你自己的finder(查找)方法或者是建立一个定制的数据库缓冲区。

  6.3容器类型
  部署时会将J2EE应用程序组件安装到J2EE容器中,就象图1-5中所示那样。

  1、J2EE服务器:是J2EE产品的运行部分。一个J2EE服务器提供EJB容器和Web容器。Enterprise JavaBeans(EJB)容器:管理J2EE应用程序的enterprise bean的执行。Enterprise bean和它的容器运行在J2EE服务器中。
  2、Web容器:管理J2EE应用程序的JSP页面和servlet组件的执行。Web组件和它的容器也运行在J2EE服务器中。
  3、客户端应用程序容器:管理应用程序客户端组件的运行。应用程序客户端和它的容器运行在客户端中。
  4、Applet容器:管理applet的执行。由运行在客户端的一个Web浏览器和Java插件一同组成。



图1-5 J2EE服务器和容器

7、封装

  J2EE组件被分别打包并绑定到一个J2EE应用程序中以供部署。每一个组件、它的诸如GIF、HTML文件和服务器端功能类这样的相关文件以及一个部署说明组成了一个模块并被添加到J2EE应用程序中。一个J2EE应用由一个或几个enterprise bean组件模块、Web组件模块或应用程序客户端组件模块组成。根据不同的设计需求,最终的企业解决方案可以是一个J2EE应用程序,也可以由两个或更多的J2EE应用程序组成。
  一个J2EE应用程序以及它的每一个模块有它自己的部署说明。一个部署说明就是一个具有.xml扩展名的XML文件,它描述了一个组件的部署设置。例如,一个enterprise bean模块的部署说明,描述了一个enterprise bean的事务属性和安全性授权。因为部署说明信息是公开的,因此它可以被改变而不必修改bean的源代码。在运行时,J2EE服务器将读取这个部署说明并遵照执行。
  一个J2EE应用以及它的所有模块被提交到一个Enterprise ARchive (EAR)文件中。 一个EAR文件就是一个具有.ear扩展名的标准的Java Archive (JAR)文件。在J2EE SDK应用程序部署工具的GUI版本中,你首先建立一个EAR文件,并在其中添加JAR文件和Web Archive(WAR)文件。然而,如果你使用的是命令行的打包工具,你必须首先建立JAR和WAR文件,然而才是建立EAR文件。有关J2EE SDK工具的详细介绍请参看工具。

  1、每一个EJB JAR文件包含一个部署说明、enterprise bean文件以及相关的文件。
  2、每一个应用程序客户端JAR文件包含一个部署说明、应用程序客户端的类文件以及相关的文件。
  3、每一个WAR文件包含一个部署说明、Web组件文件以及相关的资源。

  使用模块和EAR文件使得运用同一组件以装配许多不同的J2EE应用程序成为可能。不需要额外的编程工作,你唯一要做的是在J2EE EAR文件中添加各种J2EE模块。

  8、开发角色

  可重用的模块使得将应用程序的开发过程和部署过程分成不同的角色成为可能。这样,不同的人或公司可以在这一过程的各个部分承担不同的任务。
  最先的两个角色承担购买和安装J2EE产品和工具的任务。在购买和安装好软件之后,应用程序组件提供商就开始开发J2EE组件,应用程序装配者负责装配,而应用程序部署者负责部署。在一个大的组织中,每个这样的角色可能对应于不同的个人和小组。作这样的分工是因为前一个角色将会输出一个可移植的文件,而这将是后一个角色的输入。例如,在应用程序组件提供商阶段,一个enterprise bean软件开发者提交EJB JAR文件。而在应用程序装配者阶段,另一些开发者将这些EJB JAR文件组合到一个J2EE应用程序中并将其保存为一个EAR文件。在应用程序部署者阶段,消费者站点的系统管理员使用EAR文件将J2EE应用程序安装到J2EE服务器中。
  不同的角色不一定总得由不同的人来执行。例如,你是在一个小公司工作或者你是从事一个样本程序的原型开发,你也可能需要执行每一个阶段的任务。

  9、J2EE产品提供者

  J2EE产品提供者是设计并提供实现J2EE规范所定义的J2EE平台、API和其它功能的公司。这一般是指操作系统、数据库系统、应用程序服务器或Web服务器的卖主,它们依照J2EE的规范实现J2EE平台。

  9.1工具提供者
  工具提供者是指建立组件提供者、装配者和部署者所使用的开发、装配和打包的工具的公司或个人。有关J2EE SDK 1.3可用工具的详细信息参见工具。

  9.2 应用程序组件提供者
  应用程序组件提供者是指建立J2EE应用程序所使用的Web组件、enterprise bean、applet或应用程序客户端的公司或个人。

  9.3 Enterprise Bean开发者
  一个enterprise bean开发者执行下面的任务并递交一个包含enterprise bean的EJB JAR文件:

  1、编写并编译源代码
  2、详细说明部署描述
  3、将.class文件和部署描述绑定到一个EJB JAR文件中

  9.4 Web组件开发者
  一个Web组件开发者执行下面的任务并提交一个包含Web组的WAR文件:

  1、编写并编译servlet源代码
  2、编写JSP和HTML文件
  3、详细说明Web组件的部署描述
  4、将.class、.jsp、.html和部署描述绑定到WAR文件中

  9.5 J2EE应用程序客户端开发者
  一个应用程序客户端开发者执行下面的任务并提交一个包含J2EE应用程序客户端的JAR文件:

  1、编写并编译源代码
  2、详细说明客户端的部署描述
  3、将.class文件和部署描述绑定到JAR文件中

  9.6 应用程序装配者
  应用程序装配者是从组件提供者接受应用程序组件JAR文件并将其装配到一个J2EE应用程序EAR文件中的公司或个人。装配者或部署者可以直接编辑部署说明或者使用可以根据交互式的正确地添加XML标志的工具。一个软件开发者执行下列任务并递交一个包含J2EE应用程序的EAR文件:

  1、将上一阶段建立的EJB JAR文件和WAR文件装配到一个J2EE应用程序(EAR)文件中。
  2、详细说明有关J2EE应用程序的部署说明。
  3、检验EAR文件中的组件是否遵守J2EE规范。
9.7 应用程序部署者和系统管理员
  应用程序部署者和系统管理员可以是公司或个人,他们配置和部署J2EE应用程序,管理J2EE应用程序在其中运行的计算机和网络这些低层结构,并对运行环境进行监控。他们的任务可能包括这样的一些事:设置事务控制、安全属性并指定数据库连接。

  在配置时,部署者按照由应用程序组件提供者提供的指示以解决外部的支持、指定安全设置并定义事务属性。在安装时,部署者将应用程序组件装入服务器中并生成特定容器的类和接口。

  一个部署者/系统管理员执行下列任务以安装和配置一个J2EE应用程序:

  1、将上一阶段生成的J2EE应用程序(EAR)文件添加到J2EE服务器中
  2、根据运行环境通过修改J2EE应用程序的部署说明对J2EE应用程序进行配置。
  3、检验EAR文件的内容是否遵守J2EE规范
  4、部署(安装)J2EE应用程序EAR文件到J2EE服务器中

  10、相关执行软件

  J2EE SDK是非经营的J2EE平台的操作定义,它由Sun公司提供可以免费用于示范、试验和教育用途。它包含了J2EE应用程序服务器、Web服务器、关系型数据库、J2EE API和一整套开发和部署工具。你可以从这里下载J2EE SDK:
  http://java.sun.com/j2ee/download.html#sdk

  J2EE SDK的目的是为了允许产品提供者用来测试它们的执行是否需要一系列特定的条件,并可以运行J2EE兼容性测试以确定他们的J2EE产品是否完全遵守J2EE规范。J2EE SDK还可以由应用程序组件开发者用来运行他们的J2EE应用程序以检验它们是否完全适合所有的J2EE产品和工具。

  10.1数据库访问
  关系型数据库为应用程序数据提供了持久稳固的存储。一个J2EE执行并不需要支持特定类型的数据库,这意味着不同的J2EE产品所支持的数据库可以改变。参看下载的J2EE SDK所包含的版本说明可以了解目前所支持的数据库。

  10.2 J2EE API
  J2SE SDK对于J2EE SDK的运行是必需的,它可以为编写J2EE组件提供核心的API、核心的开发工具和Java虚拟机。J2EE SDK为J2EE应用程序提供下面的API以供使用。

  10.3 Enterprise JavaBeans技术2.0
  一个enterprise bean是一个用来执行商业逻辑的模块的具有字段和方法的代码实体。你可以将一个enterprise bean想象成一块积木,它可以在J2EE服务器上单独使用也可以与其它enterprise bean协同工作以执行商业逻辑。
  有三种类型的enterprise bean:session bean、entity bean和message-driven bean。Enterprise bean经常与数据库有一个交互的关系。使用entity bean的一个好处是你不需要编写任何SQL代码或使用JDBC API以直接执行数据库访问操作;EJB容器会为你处理这些事。然而,如果因为某种原因,你重载了默认的容器管理持续化,你需要使用JDBC API。同样的,如果你选择一个session bean来访问database,你也必须使用JDBC API。

  10.4 JDBC API 2.0
  JDBC API让你可以从Java编程语言的方法中调用SQL命令。在一个enterprise bean中,当你重载了默认的容器管理持续化或是在一个session bean中访问数据库时,你必须使用JDBC API。当使用容器管理持续化时,数据库访问的操作是由容器来处理的,你的enterprise bean执行不包含任何JDBC代码或SQL命令。你也可以使用JDBC API从一个servlet或JSP页面中直接访问数据库,而不通过一个enterprise bean来完成。
JDBC API有两个部分:一个由应用程序组件用来访问数据库的应用程序级的接口,一个用来将JDBC驱动整合到J2EE平台中的服务提供商接口。

  10.5 Java Servlet技术2.3
  Java Servlet技术允许你定义一个特定的HTTP的servlet类。一个servlet类为服务器扩展了这样一个性能:可以通过请求-响应这样的程序模式访问主机应用程序。尽管servlet可以响应任何形式的请求,但是它们通常用于Web服务器上的应用程序。

  10.6 JavaServer Pages技术1.2
  JavaServer Pages技术使得你可以将servlet代码嵌入到基于文本的文档中。一个JSP页面就是一个基于文本的文档,它包含两个类型的文本:静态模板的数据,它可以表示为任何基于文本的格式,例如HTML、WML和XML;JSP单元,它决定页面如何建立动态的内容。

  10.7 Java消息服务(JMS)1.0
  JMS是一个消息标准,它允许J2EE应用程序建立、发送、接受和阅读消息。它使得建立连接简单的、可靠的和异步的公布式通信成为可能。有关JMS的更多的介绍,请参看Java消息服务指南:
  http://java.sun.com/products/jms/tutorial/index.html

  10.8 Java命名目录接口(JNDI)1.2
  JNDI提供命名的目录功能。它为应用程序提供标准的目录操作的方法,例如获得对象的关联属性、根据它们的属性搜寻对象等。使用JNDI,一个J2EE应用程序可以存储和重新得到任何类型的命名Java对象。
因为JNDI不依赖于任何特定的执行,应用程序可以使用JNDI访问各种命名目录服务,包括现有的各种诸如LDAP、NDS、DNS和NIS这样的命名目录服务。这使得J2EE应用程序可以和传统的应用程序和系统共存。有关JNDI的更多的信息,请参看JNDI指南:
  http://java.sun.com/products/jndi/tutorial/index.html

  10.9 Java事务API 1.0
  Java事务API(JTA)提供了划分事务的标准接口。J2EE体系结构提供了一个默认的自动提交以处理事务提交和回滚。一个自动提交意味着在每一个数据库读写操作之后任何其它应用程序显示数据时都会看到更新了的数据。然而,如果你的应用程序执行两部分相互依赖的数据库访问操作,你可能会想要用JTA API去确定整个事务,这个事务将包含两个操作的开始、回滚和提交。

  10.10JavaMail API 1.2
  J2EE应用程序可以使用JavaMail API来发送e-mail告示。JavaMail API包含两部分: 一个由应用程序组件用来发送mail的应用程序级的接口和一个服务提供接口。J2EE平台包含作为服务提供的JavaMail,使得应用程序组件可以发送Internet mail。

  10.11 JavaBeans激活架构1.0
  之所以要包含JavaBeans激活架构(JAF)是因为JavaMail要使用到它。它提供标准的服务以确定任意数据段的类型、如何对它访问、找出在其上可应用的操作并建立适当的JavaBeans组件以执行那些操作。
10.12 Java XML处理API1.1
  XML是一种描述基于文本的数据的语言,使用XML使得数据可以被任何程序和工具读取和处理。程序和工具可以生成其它程序和工具可以读取和处理的XML文档。Java XML处理API(JAXP)支持使用DOM、SAX和XSLT对XML文档进行处理。JAXP使得应用程序可以不依赖于特殊的XML处理执行来解析和转换XML文档。
  例如,一个J2EE应用程序可以使用XML来生成报表,而不同的公司都可以获得这个报表并使用各自最适宜的方法来处理它。一个公司可能会通过程序将XML数据导入到HTML中以使得其可以在网站中公布,另一个公司可能会通过工具导出XML数据以制定销售预算,而另一个公司可能会将XML数据导入它的J2EE应用程序中对其进行处理。

  10.13 J2EE连接器体系结构1.0
  J2EE工具提供商和系统综合者使用J2EE连接器体系结构建立可以加入到任何J2EE产品的支持访问企业信息系统的资源适配器。一个资源适配器就是一个使得J2EE应用程序组件可以访问底层的资源管理器并与其实现交互的软件组件。因为一个资源适配器是与它的特定的资源管理器相对应的,典型的情况是不同的数据库或企业信息系统会各自有其不同的资源适配器。

  10.14 Java认证和授权服务1.0
  Java认证和授权服务(JAAS)为J2EE应用程序提供了一个方法以为一个特定的用户或一组用户进行认证和授权。
  JAAS是标准的可插入认证模块(PAM)结构的Java版本,它对Java 2平台的安全认证框架进行了扩展以支持基于用户的安全认证。

  11、简单的系统集成

  J2EE平台具有平台无关性,全部的系统集成解决方案建立了一个开放的市场,在这个市场中,每个提供商都可以向所有的用户出售他们的产品。这样的一个市场鼓励提供商进行竞争,不是试图将通过技术困缚用户,而是通过提供比其它提供商更好的产品和服务,例如是更好的性能、更好的工具或更好的用户支持。
J2EE API使得系统和应用程序集成具有下面的这些特点:

  1、enterprise beans所支持的统一的应用程序多层结构
  2、JSP页面和servlet所支持的简单的请求和响应机制
  3、JAAS所支持的可靠的安全模型
  4、JAXP所支持的基于XML的数据交换集成
  5、J2EE连接器体系结构所支持的简单的协同工作能力
  6、JDBC API所支持的方便的数据库连通性
  7、message-driven beans、JMS、JTA和JNDI所支持的其它特性

  要学习更多的有关使用J2EE平台以建立商业综合系统的知识,你可以参阅J2EE技术实践:http://java.sun.com/j2ee/inpractice/aboutthebook.html

  11.1工具
  J2EE实现标准提供了一个应用程序部署工具和一系列命令以装配、校验和部署J2EE应用程序和管理你的部署和产品环境。

  11.2应用程序部署工具
  J2EE实现标准提供了一个应用程序部署工具(deploytool)以装配、校验和部署J2EE应用程序。这个工具有两个版本:命令行和GUI。

  GUI工具包括下列向导

  1、打包、配置和部署J2EE应用程序
  2、打包和配置enterprise bean
  3、打包和配置Web组件
  4、打包和配置应用程序客户端
  5、打包和配置资源适配置器
  6、此外,还可以在tabbed inspector pane中对每个组件和模块类型的配置信息进行设置。

  11.3命令
  表1-1列出了J2EE实现标准中所包含的命令,你可以使用这些命令在命令行执行操作。

表1-1 J2EE命令


j2ee 启动和终止J2EE服务
cloudscape 启动和终止默认的数据库
j2eeadmin 增加JDBC驱动、JMS目的文件以及不同资源的连接factory
keytool 建立公钥和私钥,并生成X509自签署证书。
realmtool 导入证书文件。为一个J2EE应用程序的认证和授权列表中增加或删除J2EE用户
packager 将J2EE应用程序组件打包到EAR、EJB JAR、应用程序客户端JAR或WAR文件中
verifier 校验EAR、EJB JAR、应用程序客户端JAR和WAR文件是否符合并遵守J2EE规范
runclient 运行一个J2EE应用程序客户端
cleanup 从J2EE服务器中删除所有已部署的应用程序