收藏 分销(赏)

计算机培训中心体系结构概述.doc

上传人:a199****6536 文档编号:9264932 上传时间:2025-03-19 格式:DOC 页数:26 大小:101.50KB 下载积分:10 金币
下载 相关 举报
计算机培训中心体系结构概述.doc_第1页
第1页 / 共26页
计算机培训中心体系结构概述.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
计算机培训中心体系结构概述 26 2020年4月19日 文档仅供参考 目录 一. 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 Bean 11 3. Message Driven Bean 11 十一、 RMI 支持服务 12 十二、 J2EE客户端 13 1 多台客户端 14 2、 JavaScript、DHTML 和样式 14 J2EE体系结构 中科院计算机培训中心 一. J2EE 体系结构简介 J2EE是针对web服务、业务对象、数据访问和消息传送的一组规范。这组应用编程接口(API)确定了web应用与驻留它们的服务器之间的通信方式。J2EE注重两件事,一是建立标准,使web应用的部署与服务器无关;二是使服务器能控制组件的生命周期和其它资源,以便能够处理扩展、并发、事务处理管理和安全性等问题。 J2EE平台为设计、开发、安装和部署企业应用提供基于组件的方法。这种方法不但能降低成本,还能快速跟踪设计和实施。J2EE平台能提供多层分布式应用模型,重复利用组件,提供统一安全模式,并灵活地控制事务处理。借助J2EE,不但能更快地将客户解决方案推向市场,还能使基于J2EE组件、不依赖于平台的解决方案不被锁定到任何厂商的产品和API上。 J2EE规范定义了以下几种组件: Ÿ 应用客户端组件 Ÿ Enterprise JavaBeans 组件 Ÿ Servlets 和Java Server Pages(JSP) 组件(也称为web组件) Ÿ 小应用程序 (Applet) 多层分布式应用模型意味着应用逻辑将根据功能分成几个部分,用户能够在相同或不同的服务器上安装由不同应用组件组成的J2EE应用。应用组件的安装位置取决于应用组件在多层J2EE环境中属于哪一层。这些层次定义如下,参见Error! Reference source not found.。 1. 客户端层 能够是在客户端层内运行的浏览器、基于Java的程序或者其它web型编程环境——在公司防火墙内部和外部。 2. 应用服务器层 一般情况下,此层包含支持客户端请求的表示逻辑和业务逻辑 。表示层由显示HTML页面的JSP页面和servlets实现。业务逻辑经过RMI对象和EJB实现。EJB依靠Container实现事务处理、生命周期和状态管理、资源池、安全等问题,简言之, Container就是EJB依赖执行的运行环境。 3. 后端层 此层是现有应用和数据仓库的组合,也称为企业信息系统(EIS)层,因为它能够包含企业资源规划(ERP)、大型主机事务处理、数据库系统及其它遗留下来的信 息系统等许多系统。 Figure 41 J2EE 典型体系结构 二.命名和目录服务 由于J2EE应用的组件能够独立运行,而且一般是在不同设备上运行,因此客户端和应用服务器层代码必须以某种方式查找和参考其它代码和资源。客户端和应用代码使用Java命名和目录接口(JNDI)查找用户定义对象(如Enterprise Beans)和环境实体(Environment Entries)(如用于查找后端层中资源如JDBC DataSource对象的位或是用于与Java消息服务通讯的联接)。WLS 6.0版,DataSources能够绑定到JNDI上,并由以后的应用访问。这是JDBC 2.0的特性。 三.安全性和事务处理管理 安全性和事务处理管理等应用行为能够在进行web和EJB组件部署时配置。这个特性 能够将应用逻辑与不同的配置设置分离开来。 3.1 安全性 J2EE安全模型可用于配置web或EJB组件,目的是只允许授权用户访问系统资源。例如,web组件可配置为提示输入用户姓名和口令。EJB组件可配置为只允许某些组内的人请求某些方法。 同样,servlet组件也能够配置为允许所有人访问其方法,或根据HTTP请求方式来进行安全认证。servlet组件还能够为另一环境配置,允许所有人访问所有方法,或者只允许一些人访问所有方法。 WebLogic Server拥有非常强大的访问控制列表(ACL)机制,能够精确控制服务器上运行的组件的使用权限。它允许在Java方法等级确定哪个或哪组用户能够或不能够执行哪些操作。这种ACL机制包含WebLogic上运行的一切,但EJB除外。EJB有自己的访问控制机制,定义在EJB规范中。 安全领域使管理员能将信息从现有授权或认证系统输入到ACL中。 因此,用户能够从NT安全系统、LDAP系统、Unix口令文件或数据库中导入信息,以这些安全领域用户的身份来进行访问。 WebLogic 的安全性相对完整,它包含以下协议的所有等级: Ÿ SSL 版本3 Ÿ RSA加密 Ÿ 支持X.509证书,版本3 与安全性相关的另一功能是防火墙通道。WebLogic能经过HTTP和HTTPS通道穿越防火墙。WebLogic还包括安全审计和登录界面,以便建立自己的安全审计机制,产生审计跟踪,登记安全敏感型系统事件。 四. 事务处理管理 J2EE事务处理模型能够在部署过程中定义组成一个事务处理的方法之间的关系,以便事务处理中的所有方法能够作为一个整体存在。用户一定希望完成这一任务,因为事务处理是一系列步骤,要么全部执行成功,要么全部回滚。 例如,EJB中可能有一系列方法,其作用是将资金从一个帐户转移到另一个帐户,方 法是借记第一个帐户和贷记第二个帐户。用户可能希望将全部操作作为一个整体,这样,如果借记之后、贷记之前出现故障,借记将滚回。 事务处理属性在应用组件的集成过程中上确定。它能够将各种方法组合成应用组件间 的事务处理,即用户能够在J2EE应用中容易地重新分配应用组件的事务处理属性,无需修改代码和重新编译。 Java 事务处理API (JTA) 和Java 事务处理服务(JTS)形成J2EE中事务处理支持的基础,而且更适合EJB和JDBC 2.0。JTS是低级事务处理管理API,主要作用是将Java映射到对象管理组(OMG)的对象事务处理服务。JTA是高级API,包括两个部分: 1. 事务处理接口 允许事务处理定界。完成工作的方式是分布式组件由全局事务处理登记。这种方法能够令多组操作组成一个事务处理。 2. XA 资源接口 基于能处理分布式事务处理的X/Open/XA接口,有时也称为两步提交事务处理,需要多种资源之间的协调,如数据库或序列。WebLogic Server支持多种事务处理,包括EJB、JMS和JDBC操作。分布式事务处理由两步提交协议协调,可跨越用XA兼容的JDBC驱动程序访问的多个数据库,如针对Oracle/XA的BEA WebLogicjDriver。 EJB规范定义了Bean管理的事务处理和Container管理的事务处理。当EJB用Container管理的事务处理部署时,WebLogic Server将自动协调事务处理。如果EJB由Bean管理的事务处理部署,EJB参数必须提供事务处理代码。 基于JMS或JDBC API的应用代码能够启动事务处理,或参与先前启动的事务处理。一个事务处理联系与执行应用的WebLogic Server线程相关,所有事务处理操作都在参与当前事务处理的线程上执行。 多数情况下,用户无需担心用JTA编写明确事务处理的问题,因为此项工作由JDBC完成,EJB API由Container处理,并由应用部署说明符配置。这样,用户就能够将精力集中在事务处理设计而非实施上。 五. Java Servlets Servlet 指能够扩展Web服务器功能的程序。Servlet 从客户端接受请求,动态生成响应 (能够经过查询数据库满足请求),然后将包含HTML或XML文档的请求发送到客户端。 Servlets 类似于CGI,但更易于编写,因为Servlets使用Java类和流。它们的执行速度 也更快,因为Servlets可编译为Java字节代码,在运行时,Servlet例程驻留在内存中――每 个客户端请求都生出一条新线程。Servlets易于以动态形式向HTTP响应流产生数据。 Servlets面临的问题是无状态协议,这就是说,每个请求都作为新连接执行,因而请求 之间无法实现自然的流控制。对话跟踪或对话管理能保持请求间特定客户端的状态。在WebLogic中,Servlets使用HTTP Session对象保持方法请求之间的状态。这种对象能够在集群环境中复制,用于恢复。 六. Java服务器页面 JSP 页面是基于文本的Servlets开发方式。JSP页面提供Servlets的所有优点,如果与JavaBeans类结合在一起,能够容易地将内容和显示逻辑分开。 将内容和显示逻辑分开的优点是无需了解Java代码就能更新页面的外观,更新JavaBeans等级的人也无需深入了解web页面的设计。JSP页面和Servlets都比通用网关接口(CGI)应用广泛,因为CGI依赖于平台,消耗资源更多,而且程序不能容易地访问参数数据。 用户能够使用带JavaBeans的JSP页面定义Web模板,以便建立由外观相似的页面组成的web站点。JavaBeans等级负责呈递数据,因此模板没有Java代码,这意味着Java代码能够由HTML编辑器持有。 如果有使用JSP页面的简单Web应用,能够借助定制标记或脚本将内容与应用逻辑捆绑在一起,而无需再使用JavaBeans。定制标记与输入到JSP页面的标记库捆绑在一起。脚本是一些小Java代码段,直接嵌入在JSP页面中。 七. 数据库访问服务(JDBC) JDBC是关系数据库的必要便携桥接器。它遵守ODBC(开放数据库连接)规范,简单而易于理解。它借助驱动程序将数据库与程序代码分开。 WebLogic的JDBC支持高级数据类型,如Blobs、Clobs和Oracle字符流。它还支持可滚 回结果集和批更新功能。尽管连接池是JDBC 2规范的新特性,但已经得到WebLogic的多年支持。 驱动程序共有四种: 1. 第一种是JDBC-ODBC 桥,与JDK一起配合。它更象一种概念证明,还不能用于正式的生产环境。借助它,能够将应用与任何ODBC源连接在一起。. 2. 第二种驱动程序借助本地库与关系数据库通信,例如在Oracle中是OCI库。这意味着必须在客户端上提供本地库。 3. 第三种驱动程序是多层的,即驱动程序位于客户端和RDBMS中间。它建立与 RDBMS的连接,是所有请求和响应的通道。客户端只需加载纯Java就能与第三种驱动程序通信。 4. 第四种驱动程序与第二种驱动程序相似,但它不使用本地库,而是借助专用协议直接与RDBMS通信。 八. Java 消息传送服务(JMS) JMS 是支持Java程序间消息交换的J2EE机制。这也是Java支持异步通信的方法――发送者和接收者无需相互了解,因而能够独立操作。 JMS 支持两种消息传送模式: 1. 点到点(Point To Point) 基于消息队列。消息产生者将消息发送到队列中。消息消费者能够将自身与队列连接,以倾听消息。当消息到达队列时,客户能够从队列中取走,并给出响应。消息只能发送到一个队列,只能由一位消费者使用。消费者能够过滤消息,以便获得希望获得的消息。 2. 出版和订阅(Publish/Subscribe) 消息生产者将消息发送到一个话题(Topic),注册到此话题的消费者都能接收到这些消息。这种情况下,许多消费者都能接收到同样的消息。 九. Java接口定义语言(IDL) CORBA 对象使用IDL确定接口(怎样与其它对象交互)。借助Java IDL,能够定义Java应用和CORBA应用之间的合同。 为使用Java IDL,应使用能够产生便携客户端树桩(Stub)和服务器树干(Skeleton)的idltojava编译器,此编译器能够与任何CORBA兼容型对象请求代理(ORB)一起使用。从Sun的JDK 1.2开始包含ORB,使Java应用能经过IIOP协议请求远程CORBA对象。 十. Enterprise Java Bean (EJB) EJB组件用于封装业务逻辑,使开发人员无需再担心数据访问、事务处理支持、安全性、高速缓存和并发等琐碎任务的编程。在EJB规范中,它们由EJB Container负责。 EJB包含接口和类。客户端经过EJB的本地接口和远程接口访问EJB方法。本地接口 提供的方法可用于生成、删除和查找EJB,远程接口则提供业务方法。部署时,Container从这些接口生成类,这些类使客户端能够访问、生成、删除、查找EJB和调用EJB上业务方法。EJB类为业务方法、生成方法和查找方法提供实施,如果Bean管理自己的存储,还得提供生命周期方法的实施。 EJB共有三种类型:Entity Bean , Session Bean和Message Driven Bean(随着EJB 2.0规范的出台而提出)。 1. Session Bean Session Bean代表与客户端的短暂对话,能够执行数据库读写。Session Bean能够请求JDBC调用本身,也能够使用Entity Bean执行调用,这时Session Bean是Entity Bean的客户端(参见如下所述的Entity Bean)。Session Bean的字段包含对话的状态,是短暂的。如果服务器或客户端出现故障,Session Bean将消失。这种模式一般用于PL/SQL等数据库编程语言。 Session Bean能够有状态,也能够无状态。有状态Session Bean包含客户端方的对话状态。对话状态是Session Bean实例的字段值加上能够从Session Bean字段阅读的所有对象。有状态的Session Bean不表示持久数据库中的数据,但能够以客户端的名义访问和更新数据。 无状态Session Bean没有客户端的任何状态信息。它们一般提供不保留任何状态的服务器方行为。无状态Session Bean需要的系统资源较少。提供通用服务或表示共享数据视图的业务对象适合作为无状态Session Bean。 2. Entity Bean Entity Bean表示数据库中的数据以及作用于数据的方法。在针对员工信息表的关系数据库中,表中的每一行就是一个Bean的实例。Entity Bean是事务处理型和持久的。只要数据存在于数据库中,Entity Bean就存在。这种模式可容易地用于关系数据库,而且不限于对象 数据库。 用Container管理的持久性访问关系数据库的EJB不需要为数据库访问使用任何JDBC 2.0 API,因为Container能够负责完成这项任务。可是,如果使用Bean管理的持久性或想访问关系数据库以外的企业信息系统,就需要提供相应的代码才能完成。 如果EJB使用由Bean管理的持久性访问数据库,用户必须借助JDBC 2.0 API实施Bean 生命周期方法,这样才能加载和保存数据,并保持运行和持久数据库存储之间的一致性。 Web层使用HTTP或HTTPS在各层之间传输数据,EJB层则使用RMI-IIOP。RMI-IIOP是一种完全可扩展的分布式计算协议,使访问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 Driven Bean在WebLogic Server EJB Container中管理。由于它们不是由用户的应用直接调用的,因此不能借助EJB本地接口从应用访问。可是,用户的应用能够将消息发送到Bean所监听的JMS队列中,以此来实例化Message Driven Bean。 十一、 RMI 支持服务 在WebLogic中,RMI 在三种传输服务之上实施:IIOP、HTTP和T3。如前所述,IIOP上的RMI可用作与CORBA的桥。当需要与WebLogic通信而且之间有防火墙存在时,HTTP上的RMI可用作基于Java的客户端,它能处理经过防火墙过程中出现的所有问题。 T3 也称为丰富套接字,是BEA内部协议,功能丰富,可扩展性好。T3是多工双向和 异步协议,已经过高度优化,只使用一个套接字和一条线程。借助这种方法,基于Java的 客户端能够根据服务器方需求使用多种RMI对象,但仍使用一个套接字和一条线程。 T3是Java对象序列化或RMI的超集合,Java对象序列化和RMI能够执行的一切活动都 能经过T3完成。注意,T3协议是专有协议,目的是用于性能和可扩展性都非常关键的Java客户端。如果不是这样,Java客户端能够使用Java RMI。与T3相同,RMI允许客户端程序操作WebLogic Server端的对象,就好象操作客户端的本地对象一样。 事实上,WebLogic开发T3的原因是它们需要一种可扩展的有效协议,以便借助Java建 立企业级分布式对象系统。 虽然T3是WebLogic专用的,但应用代码不需要对T3有任何了解,因此无需为此担心。用户能够将WebLogic专用字串(如PROVIDER_URL_INITIAL_CONTEXT_FACTORY等)放在属性文件之外(或某个地方),使代码完全能够转移到这样的地方:只需在属性文件中进行 修改就能使代码在另一台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的实际原因是,用户对客户端方没有控制力。 如果HTML不足以捕获和显示应用所需的信息,则应该由客户端执行必要的捕获和显示操作。无论是小应用程序还是独立Java程序,都应该使用Java客户端,因为它们能够提供更丰富的图形用户界面。 在Internet中,小应用程序代表一系列逻辑问题,可能会降低用户对计算机的满意度。因此,我们建议只限在网络带宽较高而且浏览器类型能够控制的公司内部网中使用小应用程序。 某些情况下,HTML和Java都不适合生成GUI。由于Microsoft拥有台式机,因此实际方法能够允许与COM进行某种连接。WebLogic Server COM编译器的最大用途是在Visual Basic中编写ActiveX组件,与Excel电子数据表一起与基于J2EE的应用交互。 1 多台客户端 多层系统的最大优点之一是能够使用上述所有类型的客户端并让它们访问相同的业务 逻辑。如Error! Reference source not found.所示,当客户端是HTML时,ISP/servlet组合将成为能实现业务目标的真正客户端。当客户端是Java程序或基于COM的程序时,它们也能够直接访问业务逻辑。 Data Store Servlet COM Entity Bean Session Bean Java HTML Figure 41 J2EE应用的客户端 2、 JavaScript、DHTML 和样式 HTML内容已得到浏览器和操作系统的广泛支持。与HTML一起,服务器还能够提供JavaScript代码,以便根据要求丰富用户界面。这种内容最适合响应展示产生在服务器方但需传送到浏览器显示的情况。它应该作为标记语言,指导浏览器怎样展示结果。HTML是对静态文档进行编码的好方法。可是,借助HTML很难展示复杂文档。样式页和动态HTML(DHTML)能够显示更复杂的文档。可是,各种常见的浏览器不能处理样式页和DHTML一致性,因此需要设计各种形式的页面或在页面中包含浏览器专用标记。 HTML的优势是已经得到了许多平台上多种应用的广泛支持。在最常见的浏览器上,不 依赖浏览器专用标记的HTML文档应该外观相似。HTTP与HTML的结合能够保证能够在许多平台上查看文档。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服