J2EE_体系结构_第1页
J2EE_体系结构_第2页
J2EE_体系结构_第3页
J2EE_体系结构_第4页
J2EE_体系结构_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、J2EE 体系结构简介 Page 1 of 15 目录目录 一一 J2EE 体系结构简介体系结构简介.3 二命名和目录服务二命名和目录服务.5 三安全性和事务处理管理三安全性和事务处理管理.5 四四 事务处理管理事务处理管理.6 五五 JAVA SERVLETS .8 六六 JAVA 服务器页面服务器页面 .8 七七 数据库访问服务数据库访问服务(JDBC).9 八八 JAVA 消息传送服务消息传送服务(JMS).9 九九 JAVA 接口定义语言接口定义语言(IDL).10 十十 ENTERPRISE JAVA BEAN (EJB).10 1 Session Bean.10 2 Entity

2、Bean.11 3 Message Driven Bean.11 十一、十一、 RMI 支持服务支持服务.12 十二、十二、 J2EE 客户端客户端.13 1 多台客户端.14 2、 JavaScript、DHTML 和样式.14 J2EE 体系结构简介 Page 2 of 15 J2EE 体系结构体系结构 中科院计算机培训中心中科院计算机培训中心 J2EE 体系结构简介 Page 3 of 15 一一 J2EE 体系结构简介体系结构简介 J2EE 是针对 web 服务、业务对象、数据访问和消息传送的一组规范。这组应用编程接 口(API)确定了 web 应用与驻留它们的服务器之间的通信方式。J

3、2EE 注重两件事,一是建 立标准,使 web 应用的部署与服务器无关;二是使服务器能控制组件的生命周期和其它资 源,以便能够处理扩展、并发、事务处理管理和安全性等问题。 J2EE 平台为设计、开发、安装和部署企业应用提供基于组件的方法。这种方法不但能 降低成本,还能快速跟踪设计和实施。J2EE 平台能提供多层分布式应用模型,重复利用组 件,提供统一安全模式,并灵活地控制事务处理。借助 J2EE,不但能更快地将客户解决方 案推向市场,还能使基于 J2EE 组件、不依赖于平台的解决方案不被锁定到任何厂商的产品 和 API 上。 J2EE 规范定义了以下几种组件: 应用客户端组件 Enterpri

4、se JavaBeans 组件 Servlets 和 Java Server Pages(JSP) 组件(也称为 web 组件) 小应用程序 (Applet) 多层分布式应用模型意味着应用逻辑将根据功能分成几个部分,用户可以在相同或不同的 服务器上安装由不同应用组件组成的 J2EE 应用。应用组件的安装位置取决于应用组件在多 层 J2EE 环境中属于哪一层。这些层次定义如下,参见 Figure 4-1。 1.客户端层客户端层 可以是在客户端层内运行的浏览器、基于 Java 的程序或者其它 web 型编程环境 在公司防火墙内部和外部。 2.应用服务器层应用服务器层 一般情况下,此层包含支持客户端

5、请求的表示逻辑和业务逻辑 。表示层由显示 HTML 页面的 JSP 页面和 servlets 实现。业务逻辑通过 RMI 对象和 EJB 实现。EJB 依 靠 Container 实现事务处理、生命周期和状态管理、资源池、安全等问题,简言之, Container 就是 EJB 依赖执行的运行环境。 J2EE 体系结构简介 Page 4 of 15 3.后端层后端层 此层是现有应用和数据仓库的组合,也称为企业信息系统(EIS)层,因为它可以 包含企业资源规划(ERP) 、大型主机事务处理、数据库系统及其它遗留下来的信 息系统等许多系统。 Enterprise Bean Client Client

6、 Tier Firewall Enterprise Bean EJB Container JNDI, JMS Presentation Container (Servlets, JSP Pages, HTML,XML) Enterprise Information Systems (RDBMS, ERP, Legacy Applications) Application Server Tier Backend Tier Client Client Enterprise Bean Client Figure 4-1 J2EE 典型体系结构典型体系结构 二命名和目录服务二命名和目录服务 由于 J2

7、EE 应用的组件可以独立运行,而且通常是在不同设备上运行,因此客户端和应 用服务器层代码必须以某种方式查找和参考其它代码和资源。客户端和应用代码使用 Java 命名和目录接口(JNDI)查找用户定义对象(如 Enterprise Beans)和环境实体(Environment Entries)(如用于查找后端层中资源如 JDBC DataSource 对象的位或是用于与 Java 消息服务 通讯的联接)。WLS 6.0 版,DataSources 可以绑定到 JNDI 上,并由以后的应用访问。这是 JDBC 2.0 的特性。 三安全性和事务处理管理三安全性和事务处理管理 J2EE 体系结构简介

8、 Page 5 of 15 安全性和事务处理管理等应用行为可以在进行 web 和 EJB 组件部署时配置。这个特性 可以将应用逻辑与不同的配置设置分离开来。 3.1 安全性安全性 J2EE 安全模型可用于配置 web 或 EJB 组件,目的是只允许授权用户访问系统资源。例 如,web 组件可配置为提示输入用户姓名和口令。EJB 组件可配置为只允许某些组内的人请 求某些方法。 同样,servlet 组件也可以配置为允许所有人访问其方法,或根据 HTTP 请求方式来进行 安全认证。servlet 组件还可以为另一环境配置,允许所有人访问所有方法,或者只允许一些 人访问所有方法。 WebLogic

9、Server 拥有非常强大的访问控制列表(ACL)机制,可以精确控制服务器上运 行的组件的使用权限。它允许在 Java 方法等级确定哪个或哪组用户可以或不可以执行哪些 操作。这种 ACL 机制包含 WebLogic 上运行的一切,但 EJB 除外。EJB 有自己的访问控制机 制,定义在 EJB 规范中。 安全领域使管理员能将信息从现有授权或认证系统输入到 ACL 中。 因此,用户可以从 NT 安全系统、LDAP 系统、Unix 口令文件或数据库中导入信息,以这些安全领域用户的身份 来进行访问。 WebLogic 的安全性相对完整,它包含以下协议的所有等级: SSL 版本 3 RSA 加密 支持

10、 X.509 证书,版本 3 与安全性相关的另一功能是防火墙通道。WebLogic 能通过 HTTP 和 HTTPS 通道穿越防 火墙。WebLogic 还包括安全审计和登录界面,以便建立自己的安全审计机制,产生审计跟 踪,登记安全敏感型系统事件。 J2EE 体系结构简介 Page 6 of 15 四四 事务处理管理事务处理管理 J2EE 事务处理模型可以在部署过程中定义组成一个事务处理的方法之间的关系,以便 事务处理中的所有方法可以作为一个整体存在。用户一定希望完成这一任务,因为事务处 理是一系列步骤,要么全部执行成功,要么全部回滚。 例如,EJB 中可能有一系列方法,其作用是将资金从一个帐

11、户转移到另一个帐户,方 法是借记第一个帐户和贷记第二个帐户。用户可能希望将全部操作作为一个整体,这样, 如果借记之后、贷记之前出现故障,借记将滚回。 事务处理属性在应用组件的集成过程中上确定。它可以将各种方法组合成应用组件间 的事务处理,即用户可以在 J2EE 应用中容易地重新分配应用组件的事务处理属性,无需修 改代码和重新编译。 Java 事务处理 API (JTA) 和 Java 事务处理服务(JTS)形成 J2EE 中事务处理支持的基础, 而且更适合 EJB 和 JDBC 2.0。JTS 是低级事务处理管理 API,主要作用是将 Java 映射到对象 管理组(OMG)的对象事务处理服务。

12、JTA 是高级 API,包括两个部分: 1.事务处理接口事务处理接口 允许事务处理定界。完成工作的方式是分布式组件由全局事务处理登记。这种方 法可以令多组操作组成一个事务处理。 2.XA 资源接口资源接口 基于能处理分布式事务处理的 X/Open/XA 接口,有时也称为两步提交事务处理,需 要多种资源之间的协调,如数据库或序列。WebLogic Server 支持多种事务处理,包 括 EJB、JMS 和 JDBC 操作。分布式事务处理由两步提交协议协调,可跨越用 XA 兼容的 JDBC 驱动程序访问的多个数据库,如针对 Oracle/XA 的 BEA WebLogicjDriver。 EJB

13、规范定义了 Bean 管理的事务处理和 Container 管理的事务处理。当 EJB 用 Container 管理的事务处理部署时,WebLogic Server 将自动协调事务处理。如果 EJB 由 Bean 管理的事 务处理部署,EJB 参数必须提供事务处理代码。 基于 JMS 或 JDBC API 的应用代码可以启动事务处理,或参与先前启动的事务处理。一 个事务处理联系与执行应用的 WebLogic Server 线程相关,所有事务处理操作都在参与当前 J2EE 体系结构简介 Page 7 of 15 事务处理的线程上执行。 多数情况下,用户无需担心用 JTA 编写明确事务处理的问题,

14、因为此项工作由 JDBC 完 成,EJB API 由 Container 处理,并由应用部署说明符配置。这样,用户就可以将精力集中在 事务处理设计而非实施上。 五五 Java Servlets Servlet 指可以扩展 Web 服务器功能的程序。Servlet 从客户端接受请求,动态生成响应 (可以通过查询数据库满足请求),然后将包含 HTML 或 XML 文档的请求发送到客户端。 Servlets 类似于 CGI,但更易于编写,因为 Servlets 使用 Java 类和流。它们的执行速度 也更快,因为 Servlets 可编译为 Java 字节代码,在运行时,Servlet 例程驻留在内

15、存中每 个客户端请求都生出一条新线程。Servlets 易于以动态形式向 HTTP 响应流产生数据。 Servlets 面临的问题是无状态协议,这就是说,每个请求都作为新连接执行,因而请求 之间无法实现自然的流控制。对话跟踪或对话管理能保持请求间特定客户端的状态。在 WebLogic 中,Servlets 使用 HTTP Session 对象保持方法请求之间的状态。这种对象可以在集 群环境中复制,用于恢复。 六六 Java 服务器页面服务器页面 JSP 页面是基于文本的 Servlets 开发方式。JSP 页面提供 Servlets 的所有优点,如果与 JavaBeans 类结合在一起,可以容

16、易地将内容和显示逻辑分开。 将内容和显示逻辑分开的优点是无需了解 Java 代码就能更新页面的外观,更新 JavaBeans 等级的人也无需深入了解 web 页面的设计。JSP 页面和 Servlets 都比通用网关接口 (CGI)应用广泛,因为 CGI 依赖于平台,消耗资源更多,而且程序不能容易地访问参数数 据。 用户可以使用带 JavaBeans 的 JSP 页面定义 Web 模板,以便建立由外观相似的页面组 成的 web 站点。JavaBeans 等级负责呈递数据,因此模板没有 Java 代码,这意味着 Java 代 码可以由 HTML 编辑器持有。 J2EE 体系结构简介 Page 8

17、 of 15 如果有使用 JSP 页面的简单 Web 应用,可以借助定制标记或脚本将内容与应用逻辑捆 绑在一起,而无需再使用 JavaBeans。定制标记与输入到 JSP 页面的标记库捆绑在一起。脚 本是一些小 Java 代码段,直接嵌入在 JSP 页面中。 七七 数据库访问服务数据库访问服务(JDBC) JDBC 是关系数据库的必要便携桥接器。它遵守 ODBC(开放数据库连接)规范,简单 而易于理解。它借助驱动程序将数据库与程序代码分开。 WebLogic 的 JDBC 支持高级数据类型,如 Blobs、Clobs 和 Oracle 字符流。它还支持可滚 回结果集和批更新功能。尽管连接池是

18、JDBC 2 规范的新特性,但已经得到 WebLogic 的多年 支持。 驱动程序共有四种: 1.第一种是 JDBC-ODBC 桥,与 JDK 一起配合。它更象一种概念证明,还不能用于正 式的生产环境。借助它,可以将应用与任何 ODBC 源连接在一起。. 2.第二种驱动程序借助本地库与关系数据库通信,例如在 Oracle 中是 OCI 库。这意 味着必须在客户端上提供本地库。 3.第三种驱动程序是多层的,即驱动程序位于客户端和 RDBMS 中间。它建立与 RDBMS 的连接,是所有请求和响应的通道。客户端只需加载纯 Java 就能与第三种 驱动程序通信。 4.第四种驱动程序与第二种驱动程序相似

19、,但它不使用本地库,而是借助专用协议 直接与 RDBMS 通信。 八八 Java 消息传送服务消息传送服务(JMS) JMS 是支持 Java 程序间消息交换的 J2EE 机制。这也是 Java 支持异步通信的方法 发送者和接收者无需相互了解,因而可以独立操作。 JMS 支持两种消息传送模式: 1.点到点(Point To Point) J2EE 体系结构简介 Page 9 of 15 基于消息队列。消息产生者将消息发送到队列中。消息消费者可以将自身与队列 连接,以倾听消息。当消息到达队列时,客户可以从队列中取走,并给出响应。 消息只能发送到一个队列,只能由一位消费者使用。消费者可以过滤消息,

20、以便 获得希望获得的消息。 2.出版和订阅(Publish/Subscribe) 消息生产者将消息发送到一个话题(Topic),注册到此话题的消费者都能接收到这些 消息。这种情况下,许多消费者都能接收到同样的消息。 九九 Java 接口定义语言接口定义语言(IDL) CORBA 对象使用 IDL 确定接口(怎样与其它对象交互)。借助 Java IDL,可以定义 Java 应用和 CORBA 应用之间的合同。 为使用 Java IDL,应使用可以产生便携客户端树桩(Stub)和服务器树干(Skeleton)的 idltojava 编译器,此编译器可以与任何 CORBA 兼容型对象请求代理(ORB

21、)一起使用。从 Sun 的 JDK 1.2 开始包含 ORB,使 Java 应用能通过 IIOP 协议请求远程 CORBA 对象。 十十 Enterprise Java Bean (EJB) EJB 组件用于封装业务逻辑,使开发人员无需再担心数据访问、事务处理支持、安全 性、高速缓存和并发等琐碎任务的编程。在 EJB 规范中,它们由 EJB Container 负责。 EJB 包含接口和类。客户端通过 EJB 的本地接口和远程接口访问 EJB 方法。本地接口 提供的方法可用于生成、删除和查找 EJB,远程接口则提供业务方法。部署时,Container 从 这些接口生成类,这些类使客户端可以访问

22、、生成、删除、查找 EJB 和调用 EJB 上业务方 法。EJB 类为业务方法、生成方法和查找方法提供实施,如果 Bean 管理自己的存储,还得 提供生命周期方法的实施。 EJB 共有三种类型:Entity Bean , Session Bean 和 Message Driven Bean(随着 EJB 2.0 规范的 出台而提出) 。 J2EE 体系结构简介 Page 10 of 15 1Session Bean Session Bean 代表与客户端的短暂对话,可以执行数据库读写。Session Bean 可以请求 JDBC 调用本身,也可以使用 Entity Bean 执行调用,这时 S

23、ession Bean 是 Entity Bean 的客户端 (参见如下所述的 Entity Bean)。Session Bean 的字段包含对话的状态,是短暂的。如果服 务器或客户端出现故障,Session Bean 将消失。这种模式一般用于 PL/SQL 等数据库编程语言。 Session Bean 可以有状态,也可以无状态。有状态 Session Bean 包含客户端方的对话状 态。对话状态是 Session Bean 实例的字段值加上可以从 Session Bean 字段阅读的所有对象。 有状态的 Session Bean 不表示持久数据库中的数据,但能够以客户端的名义访问和更新数据。

24、 无状态 Session Bean 没有客户端的任何状态信息。它们一般提供不保留任何状态的服务 器方行为。无状态 Session Bean 需要的系统资源较少。提供通用服务或表示共享数据视图的 业务对象适合作为无状态 Session Bean。 2 Entity Bean Entity Bean 表示数据库中的数据以及作用于数据的方法。在针对员工信息表的关系数据 库中,表中的每一行就是一个 Bean 的实例。Entity Bean 是事务处理型和持久的。只要数据 存在于数据库中,Entity Bean 就存在。这种模式可容易地用于关系数据库,而且不限于对象 数据库。 用 Container 管

25、理的持久性访问关系数据库的 EJB 不需要为数据库访问使用任何 JDBC 2.0 API,因为 Container 可以负责完成这项任务。但是,如果使用 Bean 管理的持久性或想访问 关系数据库以外的企业信息系统,就需要提供相应的代码才能完成。 如果 EJB 使用由 Bean 管理的持久性访问数据库,用户必须借助 JDBC 2.0 API 实施 Bean 生命周期方法,这样才能加载和保存数据,并保持运行和持久数据库存储之间的一致性。 J2EE 体系结构简介 Page 11 of 15 Web 层使用 HTTP 或 HTTPS 在各层之间传输数据,EJB 层则使用 RMI-IIOP。RMI-I

26、IOP 是 一种完全可扩展的分布式计算协议,使访问 EJB 的任何客户端或 web 层程序能直接访问 EJB 层中的服务。这些服务包括用于查阅和参考 EJB 的 JNDI、用于发送和接收异步消息的 Java 消息服务(JMS),以及用于关系数据库访问的 JDBC。 3 Message Driven Bean EJB 2.0 规范中的 Message Driven Bean 也是 EJB,能处理从 JMS 消息队列接收到的异步消 息。JMS 将消息路由到 Message Driven Bean,由 Message Driven Bean 从池中选出某个实例处 理消息。 Message Drive

27、n Bean 在 WebLogic Server EJB Container 中管理。由于它们不是由用户的应用 直接调用的,因此不能借助 EJB 本地接口从应用访问。但是,用户的应用可以将消息发送 到 Bean 所监听的 JMS 队列中,以此来实例化 Message Driven Bean。 十一、十一、 RMI 支持服务支持服务 在 WebLogic 中,RMI 在三种传输服务之上实施:IIOP、HTTP 和 T3。如前所述,IIOP 上 的 RMI 可用作与 CORBA 的桥。当需要与 WebLogic 通信而且之间有防火墙存在时,HTTP 上 的 RMI 可用作基于 Java 的客户端,

28、它能处理通过防火墙过程中出现的所有问题。 T3 也称为丰富套接字,是 BEA 内部协议,功能丰富,可扩展性好。T3 是多工双向和 异步协议,已经过高度优化,只使用一个套接字和一条线程。借助这种方法,基于 Java 的 客户端可以根据服务器方需求使用多种 RMI 对象,但仍使用一个套接字和一条线程。 T3 是 Java 对象序列化或 RMI 的超集合,Java 对象序列化和 RMI 可以执行的一切活动都 能通过 T3 完成。注意,T3 协议是专有协议,目的是用于性能和可扩展性都非常关键的 Java 客户端。如果不是这样,Java 客户端可以使用 Java RMI。与 T3 相同,RMI 允许客户

29、端程序 J2EE 体系结构简介 Page 12 of 15 操作 WebLogic Server 端的对象,就好象操作客户端的本地对象一样。 事实上,WebLogic 开发 T3 的原因是它们需要一种可扩展的有效协议,以便借助 Java 建 立企业级分布式对象系统。 虽然 T3 是 WebLogic 专用的,但应用代码不需要对 T3 有任何了解,因此无需为此担心。 用户可以将 WebLogic 专用字串(如 PROVIDER_URL_INITIAL_CONTEXT_FACTORY 等)放在属 性文件之外(或某个地方),使代码完全可以转移到这样的地方:只需在属性文件中进行 修改就能使代码在另一台

30、 J2EE 应用服务器上运行。 用户可以将 PROVIDER_URL 中定义的协议修改为 HTTP 或 HTTPS,但只意识到是通过 HTTP/HTTPS 开通 T3。这样做会降低性能,因此只有确实需要时才能使用通道(如需要通过 防火墙)。 十二、十二、 J2EE 客户端客户端 J2EE 客户端可以基于 web(如客户端将 HTTP 作为协议访问 WLS 服务),也可以基于 Java。基于 Java 的客户端使用 Java RMI 或 WebLogic 专用 T3 协议访问服务。这种情况下, Java 客户端应该是 Servlet 或 EJB。总之,分布式企业应用可能同时包含两种客户端。 在 JavaScript 等技术的帮助下,Web 浏览器可以支持强大、快速的用户界面。其它功能 可以由小应用程序(Applet)提供。借助 HTTP 上的 HTML 或 XML,Java 小应用程序可以与浏 览器一起使用,以便获得进一步增强。Java 小应用程序还可以与中层通信,以便进一步加 强控制和提高灵活性。Web 浏览器是真正的通用 Web 客户端,对简单用户界面和 Internet 应 用来讲,它是理想的客户端。 最重要的规律是,如果 HTML 足以捕获和显示应用所需的信息,则 HTML 为首选。使用 HTML 的实际原因是,用户对客户端方没有控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论