分享
分享赚钱 收藏 举报 版权申诉 / 14

类型j2ee_体系结构.doc

  • 上传人:精品资料
  • 文档编号:7659173
  • 上传时间:2019-05-23
  • 格式:DOC
  • 页数:14
  • 大小:91.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    j2ee_体系结构.doc
    资源描述:

    1、目录一 J2EE 体系结构简介 3二命名和目录服务 5三安全性和事务处理管理 5四事务处理管理 6五 JAVA SERVLETS8六 JAVA 服务器页面 8七数据库访问服务(JDBC) 9八 JAVA 消息传送服务(JMS)9九 JAVA 接口定义语言(IDL)10十 ENTERPRISE JAVA BEAN (EJB)101Session Bean102 Entity Bean113 Message Driven Bean11十一、 RMI 支持服务 12十二、 J2EE 客户端 131 多台客户端 142、 JavaScript、DHTML 和样式 14J2EE 体系结构中科院计算机培训

    2、中心一 J2EE 体系结构简介J2EE 是针对 web 服务、业务对象、数据访问和消息传送的一组规范。这组应用编程接口(API )确定了 web 应用与驻留它们的服务器之间的通信方式。 J2EE 注重两件事,一是建立标准,使 web 应用的部署与服务器无关;二是使服务器能控制组件的生命周期和其它资源,以便能够处理扩展、并发、事务处理管理和安全性等问题。J2EE 平台为设计、开发、安装和部署企业应用提供基于组件的方法。这种方法不但能降低成本,还能快速跟踪设计和实施。J2EE 平台能提供多层分布式应用模型,重复利用组件,提供统一安全模式,并灵活地控制事务处理。借助 J2EE,不但能更快地将客户解决

    3、方案推向市场,还能使基于 J2EE 组件、不依赖于平台的解决方案不被锁定到任何厂商的产品和 API 上。J2EE 规范定义了以下几种组件: 应用客户端组件 Enterprise JavaBeans 组件 Servlets 和 Java Server Pages(JSP) 组件(也称为 web 组件) 小应用程序(Applet)多层分布式应用模型意味着应用逻辑将根据功能分成几个部分,用户可以在相同或不同的服务器上安装由不同应用组件组成的 J2EE 应用。应用组件的安装位置取决于应用组件在多层 J2EE 环境中属于哪一层。这些层次定义如下,参见Figure 4-1。1. 客户端层可以是在客户端层内

    4、运行的浏览器、基于 Java 的程序或者其它 web 型编程环境在公司防火墙内部和外部。2. 应用服务器层一般情况下,此层包含支持客户端请求的表示逻辑和业务逻辑 。表示层由显示 HTML 页面的 JSP 页面和 servlets 实现。业务逻辑通过 RMI 对象和 EJB实现。EJB 依靠 Container 实现事务处理、生命周期和状态管理、资源池、安全等问题,简言之,Container 就是 EJB 依赖执行的运行环境。3. 后端层此层是现有应用和数据仓库的组合,也称为企业信息系统(EIS)层,因为它可以包含企业资源规划(ERP) 、大型主机事务处理、数据库系统及其它遗留下来的信息系统等许

    5、多系统。EnterpiseBanClientClient TierFirewal EnterpiseBanEJB ContaierJNDI,JMSPresntaionCotier(Servlts,JP ages,HTML,XL)EnterpiseIformationSystes(RDBMS,EP, LegacyAplictions)Aplication Servr Tier Backend TierClientClient EnterpiseBaClientFigure 4-1 J2EE 典型体系结构二命名和目录服务由于 J2EE 应用的组件可以独立运行,而且通常是在不同设备上运行,因此客户端

    6、和应用服务器层代码必须以某种方式查找和参考其它代码和资源。客户端和应用代码使用 Java命名和目录接口(JNDI)查找用户定义对象(如 Enterprise Beans)和环境实体(Environment Entries)(如用于查找后端层中资源如 JDBC DataSource 对象的位或是用于与 Java 消息服务通讯的联接)。WLS 6.0 版,DataSources 可以绑定到 JNDI 上,并由以后的应用访问。这是JDBC 2.0 的特性。三安全性和事务处理管理安全性和事务处理管理等应用行为可以在进行 web 和 EJB 组件部署时配置。这个特性可以将应用逻辑与不同的配置设置分离开来

    7、。3.1 安全性J2EE 安全模型可用于配置 web 或 EJB 组件,目的是只允许授权用户访问系统资源。例如,web 组件可配置为提示输入用户姓名和口令。EJB 组件可配置为只允许某些组内的人请求某些方法。同样,servlet 组件也可以配置为允许所有人访问其方法,或根据 HTTP 请求方式来进行安全认证。servlet 组件还可以为另一环境配置,允许所有人访问所有方法,或者只允许一些人访问所有方法。WebLogic Server 拥有非常强大的访问控制列表(ACL)机制,可以精确控制服务器上运行的组件的使用权限。它允许在 Java 方法等级确定哪个或哪组用户可以或不可以执行哪些操作。这种

    8、ACL 机制包含 WebLogic 上运行的一切,但 EJB 除外。EJB 有自己的访问控制机制,定义在 EJB 规范中。安全领域使管理员能将信息从现有授权或认证系统输入到 ACL 中。因此,用户可以从NT 安全系统、LDAP 系统、Unix 口令文件或数据库中导入信息,以这些安全领域用户的身份来进行访问。WebLogic 的安全性相对完整,它包含以下协议的所有等级: SSL 版本 3 RSA 加密 支持 X.509 证书,版本 3与安全性相关的另一功能是防火墙通道。WebLogic 能通过 HTTP 和 HTTPS 通道穿越防火墙。WebLogic 还包括安全审计和登录界面,以便建立自己的安

    9、全审计机制,产生审计跟踪,登记安全敏感型系统事件。四事务处理管理J2EE 事务处理模型可以在部署过程中定义组成一个事务处理的方法之间的关系,以便事务处理中的所有方法可以作为一个整体存在。用户一定希望完成这一任务,因为事务处理是一系列步骤,要么全部执行成功,要么全部回滚。例如,EJB 中可能有一系列方法,其作用是将资金从一个帐户转移到另一个帐户,方法是借记第一个帐户和贷记第二个帐户。用户可能希望将全部操作作为一个整体,这样,如果借记之后、贷记之前出现故障,借记将滚回。事务处理属性在应用组件的集成过程中上确定。它可以将各种方法组合成应用组件间的事务处理,即用户可以在 J2EE 应用中容易地重新分配

    10、应用组件的事务处理属性,无需修改代码和重新编译。Java 事务处理 API (JTA) 和 Java 事务处理服务(JTS)形成 J2EE 中事务处理支持的基础,而且更适合 EJB 和 JDBC 2.0。 JTS 是低级事务处理管理 API,主要作用是将 Java 映射到对象管理组(OMG )的对象事务处理服务。JTA 是高级 API,包括两个部分:1. 事务处理接口允许事务处理定界。完成工作的方式是分布式组件由全局事务处理登记。这种方法可以令多组操作组成一个事务处理。2. XA 资源接口基于能处理分布式事务处理的 X/Open/XA 接口,有时也称为两步提交事务处理,需要多种资源之间的协调,

    11、如数据库或序列。WebLogic Server 支持多种事务处理,包括 EJB、JMS 和 JDBC 操作。分布式事务处理由两步提交协议协调,可跨越用 XA 兼容的 JDBC 驱动程序访问的多个数据库,如针对 Oracle/XA 的 BEA WebLogicjDriver。EJB 规范定义了 Bean 管理的事务处理和 Container 管理的事务处理。当 EJB 用 Container管理的事务处理部署时,WebLogic Server 将自动协调事务处理。如果 EJB 由 Bean 管理的事务处理部署,EJB 参数必须提供事务处理代码。基于 JMS 或 JDBC API 的应用代码可以启

    12、动事务处理,或参与先前启动的事务处理。一个事务处理联系与执行应用的 WebLogic Server 线程相关,所有事务处理操作都在参与当前事务处理的线程上执行。多数情况下,用户无需担心用 JTA 编写明确事务处理的问题,因为此项工作由 JDBC 完成,EJB API 由 Container 处理,并由应用部署说明符配置。这样,用户就可以将精力集中在事务处理设计而非实施上。五 Java ServletsServlet 指可以扩展 Web 服务器功能的程序。Servlet 从客户端接受请求,动态生成响应(可以通过查询数据库满足请求),然后将包含 HTML 或 XML 文档的请求发送到客户端。Ser

    13、vlets 类似于 CGI,但更易于编写,因为 Servlets 使用 Java 类和流。它们的执行速度也更快,因为 Servlets 可编译为 Java 字节代码,在运行时, Servlet 例程驻留在内存中每个客户端请求都生出一条新线程。Servlets 易于以动态形式向 HTTP 响应流产生数据。Servlets 面临的问题是无状态协议,这就是说,每个请求都作为新连接执行,因而请求之间无法实现自然的流控制。对话跟踪或对话管理能保持请求间特定客户端的状态。在WebLogic 中,Servlets 使用 HTTP Session 对象保持方法请求之间的状态。这种对象可以在集群环境中复制,用于

    14、恢复。六 Java 服务器页面JSP 页面是基于文本的 Servlets 开发方式。JSP 页面提供 Servlets 的所有优点,如果与JavaBeans 类结合在一起,可以容易地将内容和显示逻辑分开。将内容和显示逻辑分开的优点是无需了解 Java 代码就能更新页面的外观,更新JavaBeans 等级的人也无需深入了解 web 页面的设计。JSP 页面和 Servlets 都比通用网关接口(CGI) 应用广泛,因为 CGI 依赖于平台,消耗资源更多,而且程序不能容易地访问参数数据。用户可以使用带 JavaBeans 的 JSP 页面定义 Web 模板,以便建立由外观相似的页面组成的 web

    15、站点。JavaBeans 等级负责呈递数据,因此模板没有 Java 代码,这意味着 Java 代码可以由 HTML 编辑器持有。如果有使用 JSP 页面的简单 Web 应用,可以借助定制标记或脚本将内容与应用逻辑捆绑在一起,而无需再使用 JavaBeans。定制标记与输入到 JSP 页面的标记库捆绑在一起。脚本是一些小 Java 代码段,直接嵌入在 JSP 页面中。七数据库访问服务(JDBC)JDBC 是关系数据库的必要便携桥接器。它遵守 ODBC(开放数据库连接)规范,简单而易于理解。它借助驱动程序将数据库与程序代码分开。WebLogic 的 JDBC 支持高级数据类型,如 Blobs、Cl

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

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

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

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

    20、法。EJB 类为业务方法、生成方法和查找方法提供实施,如果 Bean 管理自己的存储,还得提供生命周期方法的实施。EJB 共有三种类型:Entity Bean , Session Bean 和 Message Driven Bean(随着 EJB 2.0 规范的出台而提出) 。1 Session BeanSession Bean 代表与客户端的短暂对话,可以执行数据库读写。Session Bean 可以请求JDBC 调用本身,也可以使用 Entity Bean 执行调用,这时 Session Bean 是 Entity Bean 的客户端(参见如下所述的 Entity Bean)。Sessio

    21、n Bean 的字段包含对话的状态,是短暂的。如果服务器或客户端出现故障,Session Bean 将消失。这种模式一般用于 PL/SQL 等数据库编程语言。Session Bean 可以有状态,也可以无状态。有状态 Session Bean 包含客户端方的对话状态。对话状态是 Session Bean 实例的字段值加上可以从 Session Bean 字段阅读的所有对象。有状态的 Session Bean 不表示持久数据库中的数据,但能够以客户端的名义访问和更新数据。无状态 Session Bean 没有客户端的任何状态信息。它们一般提供不保留任何状态的服务器方行为。无状态 Session

    22、Bean 需要的系统资源较少。提供通用服务或表示共享数据视图的业务对象适合作为无状态 Session Bean。2 Entity BeanEntity Bean 表示数据库中的数据以及作用于数据的方法。在针对员工信息表的关系数据库中,表中的每一行就是一个 Bean 的实例。Entity Bean 是事务处理型和持久的。只要数据存在于数据库中,Entity Bean 就存在。这种模式可容易地用于关系数据库,而且不限于对象数据库。用 Container 管理的持久性访问关系数据库的 EJB 不需要为数据库访问使用任何 JDBC 2.0 API,因为 Container 可以负责完成这项任务。但是,

    23、如果使用 Bean 管理的持久性或想访问关系数据库以外的企业信息系统,就需要提供相应的代码才能完成。如果 EJB 使用由 Bean 管理的持久性访问数据库,用户必须借助 JDBC 2.0 API 实施 Bean生命周期方法,这样才能加载和保存数据,并保持运行和持久数据库存储之间的一致性。Web 层使用 HTTP 或 HTTPS 在各层之间传输数据,EJB 层则使用 RMI-IIOP。RMI-IIOP 是一种完全可扩展的分布式计算协议,使访问 EJB 的任何客户端或 web 层程序能直接访问EJB 层中的服务。这些服务包括用于查阅和参考 EJB 的 JNDI、用于发送和接收异步消息的Java消息

    24、服务(JMS),以及用于关系数据库访问的 JDBC。3 Message Driven BeanEJB 2.0 规范中的 Message Driven Bean 也是 EJB,能处理从 JMS 消息队列接收到的异步消息。JMS 将消息路由到 Message Driven Bean,由 Message Driven Bean 从池中选出某个实例处理消息。Message Driven Bean 在 WebLogic Server EJB Container 中管理。由于它们不是由用户的应用直接调用的,因此不能借助 EJB 本地接口从应用访问。但是,用户的应用可以将消息发送到 Bean 所监听的 JM

    25、S 队列中,以此来实例化 Message Driven Bean。十一、 RMI 支持服务在 WebLogic 中, RMI 在三种传输服务之上实施: IIOP、HTTP 和 T3。如前所述,IIOP 上的 RMI 可用作与 CORBA 的桥。当需要与 WebLogic 通信而且之间有防火墙存在时,HTTP 上的 RMI 可用作基于 Java 的客户端,它能处理通过防火墙过程中出现的所有问题。T3 也称为丰富套接字,是 BEA 内部协议,功能丰富,可扩展性好。T3 是多工双向和异步协议,已经过高度优化,只使用一个套接字和一条线程。借助这种方法,基于 Java 的客户端可以根据服务器方需求使用多

    26、种 RMI 对象,但仍使用一个套接字和一条线程。T3 是 Java 对象序列化或 RMI 的超集合,Java 对象序列化和 RMI 可以执行的一切活动都能通过 T3 完成。注意, T3 协议是专有协议,目的是用于性能和可扩展性都非常关键的 Java客户端。如果不是这样,Java 客户端可以使用 Java RMI。与 T3 相同,RMI 允许客户端程序操作 WebLogic Server 端的对象,就好象操作客户端的本地对象一样。事实上,WebLogic 开发 T3 的原因是它们需要一种可扩展的有效协议,以便借助 Java 建立企业级分布式对象系统。虽然 T3 是 WebLogic 专用的,但应

    27、用代码不需要对 T3 有任何了解,因此无需为此担心。用户可以将 WebLogic 专用字串(如 PROVIDER_URL_INITIAL_CONTEXT_FACTORY 等)放在属性文件之外(或某个地方),使代码完全可以转移到这样的地方:只需在属性文件中进行修改就能使代码在另一台 J2EE 应用服务器上运行。用户可以将 PROVIDER_URL 中定义的协议修改为 HTTP 或 HTTPS,但只意识到是通过HTTP/HTTPS 开通 T3。这样做会降低性能,因此只有确实需要时才能使用通道(如需要通过防火墙)。十二、 J2EE 客户端J2EE 客户端可以基于 web(如客户端将 HTTP 作为协

    28、议访问 WLS 服务),也可以基于Java。基于 Java 的客户端使用 Java RMI 或 WebLogic 专用 T3 协议访问服务。这种情况下,Java 客户端应该是 Servlet 或 EJB。总之,分布式企业应用可能同时包含两种客户端。在 JavaScript 等技术的帮助下,Web 浏览器可以支持强大、快速的用户界面。其它功能可以由小应用程序(Applet)提供。借助 HTTP 上的 HTML 或 XML,Java 小应用程序可以与浏览器一起使用,以便获得进一步增强。Java 小应用程序还可以与中层通信,以便进一步加强控制和提高灵活性。Web 浏览器是真正的通用 Web 客户端,

    29、对简单用户界面和 Internet 应用来讲,它是理想的客户端。最重要的规律是,如果 HTML 足以捕获和显示应用所需的信息,则 HTML 为首选。使用HTML 的实际原因是,用户对客户端方没有控制力。如果 HTML 不足以捕获和显示应用所需的信息,则应该由客户端执行必要的捕获和显示操作。无论是小应用程序还是独立 Java 程序,都应该使用 Java 客户端,因为它们可以提供更丰富的图形用户界面。在 Internet 中,小应用程序代表一系列逻辑问题,可能会降低用户对计算机的满意度。因此,我们建议只限在网络带宽较高而且浏览器类型可以控制的公司内部网中使用小应用程序。某些情况下,HTML 和 J

    30、ava 都不适合生成 GUI。由于 Microsoft 拥有台式机,因此实际方法可以允许与 COM 进行某种连接。WebLogic Server COM 编译器的最大用途是在 Visual Basic中编写 ActiveX 组件,与 Excel 电子数据表一起与基于 J2EE 的应用交互。1 多台客户端多层系统的最大优点之一是可以使用上述所有类型的客户端并让它们访问相同的业务逻辑。如 Figure 4-1 所示,当客户端是 HTML 时,ISP/servlet 组合将成为能实现业务目标的真正客户端。当客户端是 Java 程序或基于 COM 的程序时,它们也可以直接访问业务逻辑。Figure 4

    31、-1J2EE 应用的客户端HTMLJavaServletSessionBeanCOM Entity BeanDataStore2、 JavaScript、 DHTML 和样式HTML 内容已得到浏览器和操作系统的广泛支持。与 HTML 一起,服务器还可以提供JavaScript 代码,以便根据要求丰富用户界面。这种内容最适合响应展示产生在服务器方但需传送到浏览器显示的情况。它应该作为标记语言,指导浏览器怎样展示结果。HTML 是对静态文档进行编码的好方法。但是,借助 HTML 很难展示复杂文档。样式页和动态HTML( DHTML)可以显示更复杂的文档。但是,各种常用的浏览器不能处理样式页和DHTML 一致性,因此需要设计各种形式的页面或在页面中包含浏览器专用标记。HTML 的优势是已经得到了许多平台上多种应用的广泛支持。在最常用的浏览器上,不依赖浏览器专用标记的 HTML 文档应该外观相似。HTTP 与 HTML 的结合可以保证能够在许多平台上查看文档。

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:j2ee_体系结构.doc
    链接地址:https://www.docduoduo.com/p-7659173.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开