第14章流行软件体系结构_第1页
第14章流行软件体系结构_第2页
第14章流行软件体系结构_第3页
第14章流行软件体系结构_第4页
第14章流行软件体系结构_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

1、第第14章流行软件体系结构章流行软件体系结构 流行的软件体系结构流行的软件体系结构 第第14章流行软件体系结构章流行软件体系结构 概述概述 随着计算机硬件技术和网络通信技术的发展,随着计算机硬件技术和网络通信技术的发展, 网络计算经历了从集中式计算到分布式计算的网络计算经历了从集中式计算到分布式计算的 重大演变,新的分布式网络计算要求软件实现重大演变,新的分布式网络计算要求软件实现 跨空间、跨时间、跨设备、跨用户的共享,导跨空间、跨时间、跨设备、跨用户的共享,导 致软件在规模、复杂度、功能上的极大增长,致软件在规模、复杂度、功能上的极大增长, 迫使软件向异构协同工作、各层次上集成、可迫使软件向

2、异构协同工作、各层次上集成、可 反复重用的工业化道路上前进。反复重用的工业化道路上前进。 新的软件开发模式必须支持分布式计算、浏览新的软件开发模式必须支持分布式计算、浏览 器器/服务器结构、模块化和构件化集成,可用不服务器结构、模块化和构件化集成,可用不 同的标准构件组装而成。同的标准构件组装而成。 第第14章流行软件体系结构章流行软件体系结构 概述概述 提供一种手段,使应用软件可用预先编好的、提供一种手段,使应用软件可用预先编好的、 功能明确的产品部件定制而成,并可用不同版功能明确的产品部件定制而成,并可用不同版 本的部件实现应用的扩展和更新。本的部件实现应用的扩展和更新。 利用模块化方法,

3、将复杂的难以维护的系统分利用模块化方法,将复杂的难以维护的系统分 解为互相独立、协同工作的部件,并努力使这解为互相独立、协同工作的部件,并努力使这 些部件可反复重用。些部件可反复重用。 突破时间、空间及不同硬件设备的限制,利用突破时间、空间及不同硬件设备的限制,利用 客户和软件之间统一的接口实现跨平台的互操客户和软件之间统一的接口实现跨平台的互操 作。作。 第第14章流行软件体系结构章流行软件体系结构 构件技术构件技术 为满足上述要求,构件技术应运而生为满足上述要求,构件技术应运而生 构件技术被认为是未来几年软件发展的基构件技术被认为是未来几年软件发展的基 础。础。 目标是达到需求、体系结构、

4、设计、实现目标是达到需求、体系结构、设计、实现 的重用,并使系统具有更好的适应性、伸的重用,并使系统具有更好的适应性、伸 缩性和可维护性。缩性和可维护性。 借鉴汽车制造业和建筑业的思想,采用流借鉴汽车制造业和建筑业的思想,采用流 水线生产方式的预制件装配方式水线生产方式的预制件装配方式 预制件要求并不苛刻,只要能重用就可以预制件要求并不苛刻,只要能重用就可以 第第14章流行软件体系结构章流行软件体系结构 构件技术构件技术 通过使用购买或定制构件这一新的解决方通过使用购买或定制构件这一新的解决方 案可以有效地提高产品的质量,加快产品案可以有效地提高产品的质量,加快产品 开发速度,这种开发技术称为

5、开发速度,这种开发技术称为“基于构件基于构件 的开发技术的开发技术” 第第14章流行软件体系结构章流行软件体系结构 软件复用软件复用 软件产品的复用软件产品的复用 软件过程的复用:基于构件的复用软件过程的复用:基于构件的复用 第第14章流行软件体系结构章流行软件体系结构 基于构件的复用基于构件的复用 构件的开发构件的开发 构件的管理构件的管理 基于构件组装的系统开发基于构件组装的系统开发 构件必须遵循某一特定的构建模型,并且针构件必须遵循某一特定的构建模型,并且针 对某一特定的构件平台对某一特定的构件平台 第第14章流行软件体系结构章流行软件体系结构 抽象抽象 面向对象技术已达到类级重用(代码

6、重用),面向对象技术已达到类级重用(代码重用), 以类为封装的单位。以类为封装的单位。 重用粒度太小,不足以解决异构互操作和效率更高重用粒度太小,不足以解决异构互操作和效率更高 的重用。的重用。 构件更推广了对象封装的内涵,对一组类的组构件更推广了对象封装的内涵,对一组类的组 合进行封装(也可以不包括类,比如包括传统合进行封装(也可以不包括类,比如包括传统 的过程),并代表完成一个或多个功能的特定的过程),并代表完成一个或多个功能的特定 服务,也为用户提供了多个接口。服务,也为用户提供了多个接口。 在不同层次上,构件均可以将底层的多个逻辑组合在不同层次上,构件均可以将底层的多个逻辑组合 成高层

7、次上的粒度更大的新构件,甚至直接封装到成高层次上的粒度更大的新构件,甚至直接封装到 一个系统,使模块的重用从代码级、对象级、架构一个系统,使模块的重用从代码级、对象级、架构 级到系统级都可能实现。级到系统级都可能实现。 第第14章流行软件体系结构章流行软件体系结构 构件的属性构件的属性 是可独立配置的单元是可独立配置的单元 构件必须具有原子性,本身不可拆分;构件必须具有原子性,本身不可拆分; 必须与其所部属的环境以及其他构件很好地分离必须与其所部属的环境以及其他构件很好地分离 必须很好地封装自己的构成部件必须很好地封装自己的构成部件 可以作为第三方的组装单元被复合使用可以作为第三方的组装单元被

8、复合使用 不但具备良好的内聚性,还必须具有清晰的规格说明来描不但具备良好的内聚性,还必须具有清晰的规格说明来描 述其依赖条件和所提供的服务。这样,第三方厂商能够将述其依赖条件和所提供的服务。这样,第三方厂商能够将 一个构件与其他构件组装在一起。即构件只通过定义良好一个构件与其他构件组装在一起。即构件只通过定义良好 的接口与外部环境交互。的接口与外部环境交互。 没有外部可见的状态没有外部可见的状态 不应当与自身备份有所区别,在任何环境中,最多仅有特不应当与自身备份有所区别,在任何环境中,最多仅有特 定构件的一个备份定构件的一个备份 第第14章流行软件体系结构章流行软件体系结构 构件技术构件技术

9、分布式构件技术分布式构件技术 CORBA规范规范 Sun的的Java平台平台 Microsoft的的.NET平台平台 分布式构件体系结构分布式构件体系结构 J2EE .NET 提供事物完整性、消息传递、目录服务、安全、提供事物完整性、消息传递、目录服务、安全、 异常处理、远程访问等。异常处理、远程访问等。 第第14章流行软件体系结构章流行软件体系结构 基于基于CORBA的分布式构件技术的分布式构件技术 OMG(对象管理学会)是一个由业界(对象管理学会)是一个由业界760多个公司多个公司 组成的工业协会,目的是为了共同制定一个大家都组成的工业协会,目的是为了共同制定一个大家都 遵循的分布式对象计

10、算标准,将对象和分布式系统遵循的分布式对象计算标准,将对象和分布式系统 技术集成为一个可相互操作的统一结构,既支持现技术集成为一个可相互操作的统一结构,既支持现 有的平台也将支持未来的平台集成。有的平台也将支持未来的平台集成。 OMA(对象管理体系),基础是(对象管理体系),基础是ORB(对象请求(对象请求 中介)标准,不仅提供了中介)标准,不仅提供了CORBA基础架构说明,基础架构说明, 还提供了一系列服务,如安全、交易和消息传递等。还提供了一系列服务,如安全、交易和消息传递等。 针对针对ORB,OMG制定了制定了CORBA规范。规范。 第第14章流行软件体系结构章流行软件体系结构 OMA对

11、象管理体系结构对象管理体系结构 对象请求代理对象请求代理 (Object Request BrokerObject Request Broker) CORBACORBA服务服务 (CORBA ServiceCORBA Service) 应用对象应用对象 ( (Applicatio n Object) ) 水平水平CORBACORBA设备设备 ( (Horizontal CORBA Facility) ) 垂直垂直CORBACORBA设备设备 ( (Vertical CORBA Facility) ) 第第14章流行软件体系结构章流行软件体系结构 CORBA服务服务 提供适用于实现对象的一些基本

12、功能,如对提供适用于实现对象的一些基本功能,如对 象的命名服务、对象交易服务(对象并行、象的命名服务、对象交易服务(对象并行、 对象存储、对象产生和消亡、事件消息响应对象存储、对象产生和消亡、事件消息响应 以及事务交易的一致性保证)和持久状态服以及事务交易的一致性保证)和持久状态服 务(务(Persistent State Service, PPS)等。)等。 是发布对象系统必不可少的公共服务,是底是发布对象系统必不可少的公共服务,是底 层支持的必需服务。层支持的必需服务。 第第14章流行软件体系结构章流行软件体系结构 CORBA设备设备 水平水平CORBA设备:在各种工业部门中针对所设备:在

13、各种工业部门中针对所 有类型有类型CORBA应用的元素应用的元素 包括用户接口和系统管理设备包括用户接口和系统管理设备 针对大多数类型的应用,不考虑设备被使用的领针对大多数类型的应用,不考虑设备被使用的领 域域 垂直垂直CORBA设备:只在特殊垂直市场和工业设备:只在特殊垂直市场和工业 中针对某些应用的功能,也称领域中针对某些应用的功能,也称领域CORBA设设 备备 包括某些特殊领域的应用,比如在会计业中的总包括某些特殊领域的应用,比如在会计业中的总 账和分期偿付,制造业的自动化店层控制设备。账和分期偿付,制造业的自动化店层控制设备。 第第14章流行软件体系结构章流行软件体系结构 应用对象应用

14、对象 位于位于OMA层次结构的最顶层,可以是分布系层次结构的最顶层,可以是分布系 统中的任何成分,如程序、进程、类实例。统中的任何成分,如程序、进程、类实例。 通常会根据独立的应用被定制,并不需要标通常会根据独立的应用被定制,并不需要标 准化,所以这一类的对象并不受准化,所以这一类的对象并不受OMG标准的标准的 影响。影响。 必须符合必须符合OMA的标准接口。的标准接口。 OMA中的对象作为服务者被动态地引用,并中的对象作为服务者被动态地引用,并 且以唯一的标识提供服务。且以唯一的标识提供服务。 对象间的交互通过对象间的交互通过ORB实现实现 第第14章流行软件体系结构章流行软件体系结构 对象

15、请求代理对象请求代理 是是OMA的核心部分的核心部分 当应用对象在分布对象系统中请求服务时,当应用对象在分布对象系统中请求服务时, 就是以系统客户的身份,通过就是以系统客户的身份,通过ORB与系统中与系统中 其他对象完成交互其他对象完成交互 OMG进一步给出了进一步给出了OMA对象管理体系结构对象管理体系结构 的的ORB开放标准开放标准 第第14章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 CORBA规范包括规范包括ORB、接口定义语言、接口定义语言(IDL)、 存根存根(Stub)、框架、框架(Skeleton)、对象适配器、对象适配器、 动态调用接口动态调用接口 第第1

16、4章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 接口库接口库 Interface Repository 实现库实现库 Implementation Repository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态 调用调用 客户客户 StubStub ORBORB 接口接口 对象适配器对象适配器 静态服务静态服务 Skeleton 动态服务动态服务 Skeleton 客户程序客户程序( (Client) )对象实现对象实现( (Server) ) ORBORB的任务就是把客户发出的请求传送给目标对象,的任务就是把客户发出的请求传送给

17、目标对象, 并把目标对象的执行结果返回给请求客户。它屏蔽并把目标对象的执行结果返回给请求客户。它屏蔽 了了对象位置、对象实现、对象执行状态、对象通了了对象位置、对象实现、对象执行状态、对象通 信机制和数据表示。信机制和数据表示。 第第14章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 IDL:IDL:客户目标对象发送请求必须知道目标对象所具备的操作。客户目标对象发送请求必须知道目标对象所具备的操作。 IDLIDL提供了对象定义的手段,使得请求对象了解服务对象。提供了对象定义的手段,使得请求对象了解服务对象。 IDLIDL是说明性语言,只对对象接口定义,不提供任何实现细节是说明

18、性语言,只对对象接口定义,不提供任何实现细节 的描述。的描述。IDLIDL把编译后的代码映射到具体的编程语言,并且产把编译后的代码映射到具体的编程语言,并且产 生客户生客户StubStub和服务和服务SkeletonSkeleton。 对象请求代理(对象请求代理(Object Request BrokerObject Request Broker) 客户程序客户程序 ( (Client) ) 对象实现对象实现 ( (Object implementation) ) 请求请求(Request)(Request) IDLIDL StubStub IDLIDL StubStub 第第14章流行软件体

19、系结构章流行软件体系结构 CORBA体系结构体系结构 接口库接口库 Interface Repository 实现库实现库 Implementation Repository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态 调用调用 客户客户 StubStub ORBORB 接口接口 对象适配器对象适配器 静态服务静态服务 Skeleton 动态服务动态服务 Skeleton 客户程序客户程序( (Client) )对象实现对象实现( (Server) ) 存根(存根(StubStub)是客户端的代码,客户应用程序通过存根向)是客户端的代码,客户应用程序通

20、过存根向 服务器应用程序发送请求,服务器应用程序发送请求, 第第14章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 接口库接口库 Interface Repository 实现库实现库 Implementation Repository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态 调用调用 客户客户 StubStub ORBORB 接口接口 对象适配器对象适配器 静态服务静态服务 Skeleton 动态服务动态服务 Skeleton 客户程序客户程序( (Client) )对象实现对象实现( (Server) ) 框架(框架(Skel

21、etonSkeleton)是服务器端的代码,提供对象适配器转发)是服务器端的代码,提供对象适配器转发 的请求调度到对象实现上的适当操作的代码。的请求调度到对象实现上的适当操作的代码。 第第14章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 接口库接口库 Interface Repository 实现库实现库 Implementation Repository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态 调用调用 客户客户 StubStub ORBORB 接口接口 对象适配器对象适配器 静态服务静态服务 Skeleton 动态服务动态服

22、务 Skeleton 客户程序客户程序( (Client) )对象实现对象实现( (Server) ) 对象适配器(对象适配器(Object AdapterObject Adapter)是)是ORBORB核心的上层机制。它负责核心的上层机制。它负责 接受服务请求,完成实例化服务对象,向对象传送请求,为服接受服务请求,完成实例化服务对象,向对象传送请求,为服 务指定对象引用和提供运行环境。务指定对象引用和提供运行环境。 第第14章流行软件体系结构章流行软件体系结构 CORBA体系结构体系结构 接口库接口库 Interface Repository 实现库实现库 Implementation Re

23、pository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态 调用调用 客户客户 StubStub ORBORB 接口接口 对象适配器对象适配器 静态服务静态服务 Skeleton 动态服务动态服务 Skeleton 客户程序客户程序( (Client) )对象实现对象实现( (Server) ) 通过对象适配器,通过对象适配器,ORBORB服务方给客户应用提供了一个假象(虚拟服务方给客户应用提供了一个假象(虚拟 环境),即服务对象都是活动着的,随时等待客户应用发来请环境),即服务对象都是活动着的,随时等待客户应用发来请 求。求。ORBORB通过适配器

24、将目的对象分成组,每组通过特定的对象适通过适配器将目的对象分成组,每组通过特定的对象适 配器来满足特定的需求。配器来满足特定的需求。 第第14章流行软件体系结构章流行软件体系结构 基于基于Java的分布式构件技术的分布式构件技术 1996年年1月,月,Sun公司正式发布了公司正式发布了Java1.0 1998年夏末又推出了年夏末又推出了Java2.0 1999年年Sun公司推出三个版本的公司推出三个版本的Java2平台:平台: J2ME:是:是Java 2 Platform Micro Edition的缩写,即的缩写,即 Java2平台微型版,适用于开发小型设备和智能卡上的平台微型版,适用于开

25、发小型设备和智能卡上的 应用系统,如手机和掌上电脑的操作系统等应用系统,如手机和掌上电脑的操作系统等 J2SE:是:是Java 2 Platform Standard Edition的缩写,的缩写, 即即Java2平台标准版,适用于创建普通台式电脑上的应平台标准版,适用于创建普通台式电脑上的应 用系统,如用系统,如PC机、小型工作站的应用软件等机、小型工作站的应用软件等 J2EE:是:是Java 2 Platform Enterprise Edition的缩写,的缩写, 即即Java2平台企业版,适用于创建服务器端的大型应用平台企业版,适用于创建服务器端的大型应用 软件和服务系统。软件和服务系

26、统。 第第14章流行软件体系结构章流行软件体系结构 J2EE平台平台 使用多层分布式应用模型,根据功能划分成各个构使用多层分布式应用模型,根据功能划分成各个构 件,这些构件根据其在多层件,这些构件根据其在多层J2EE环境中所处的层环境中所处的层 被安装在不同的机器上。下图是三个被安装在不同的机器上。下图是三个J2EE应用。应用。 J2EEJ2EE应用应用1 1J2EEJ2EE应用应用2 2J2EEJ2EE应用应用3 3 客户端客户端 应用程序应用程序 动态动态HTMLHTML 页面页面 动态动态HTMLHTML 页面页面 客户层客户层 WebWeb层层 业务层业务层 EISEIS层层 客户端机

27、器客户端机器 J2EEJ2EE服务器服务器 机器机器 数据库服务器数据库服务器 机器机器 JSPJSP页面页面 JSPJSP页面页面 EJBEJBEJBEJB 数据库数据库数据库数据库数据库数据库 第第14章流行软件体系结构章流行软件体系结构 J2EE平台平台 最基本的最基本的Java构件是在构件是在J2ME中的中的JavaBean,它,它 是按照特定格式编写的是按照特定格式编写的Java类类 JavaBean包括实例变量(包括实例变量(Instance Variable)和)和 get()、set()方法来访问实例变量的数据。方法来访问实例变量的数据。 这种格式大大简化了程序设计。这种格式大

28、大简化了程序设计。 J2EE的构件在的构件在JavaBeans基础上进行了拓展。基础上进行了拓展。 第第14章流行软件体系结构章流行软件体系结构 J2EE构件构件 客户端构件:客户端构件:Java应用程序和应用程序和Applet Web构件:构件:JavaServer Pages ( JSP ) 和和 Java Servlet 业务逻辑构件:业务逻辑构件:Enterprise JavaBeans ( EJB ) 这些构件在开发完成后,部署到相应的容器中。这些构件在开发完成后,部署到相应的容器中。 第第14章流行软件体系结构章流行软件体系结构 客户端构件客户端构件 Java应用程序是运行在应用客

29、户容器内部的单个程应用程序是运行在应用客户容器内部的单个程 序,应用客户容器提供了支持消息、远程调用、数序,应用客户容器提供了支持消息、远程调用、数 据库连接和查询服务的据库连接和查询服务的API,容器所需的,容器所需的API主要主要 有:有:J2SE、JME、JNDI、RMI-IIOP和和JDBC,这,这 些容器由应用服务器供货商提供。些容器由应用服务器供货商提供。 Applet运行在运行在Applet容器中,这种容器是支持容器中,这种容器是支持 Java技术的基本浏览器。作为一个技术的基本浏览器。作为一个Java构件模型,构件模型, 目标是创建可下载的轻量级构件,来丰富客户端网目标是创建可

30、下载的轻量级构件,来丰富客户端网 页的视觉效果。页的视觉效果。Applet需要需要J2SE API的支持。的支持。 第第14章流行软件体系结构章流行软件体系结构 Web构件构件 JSP和和Servlet是运行在是运行在Web容器中基于容器中基于Web的构的构 件。件。Web容器由容器由Web服务器所支持。是服务器所支持。是JSP和和 Servlet在运行时的执行环境,容器所需的在运行时的执行环境,容器所需的API主要主要 有:有: J2SE、JMS、JNDI、JTA、JavaMail、JAF、 RMI-IIOP和和JDBC。JSP和和Servlet提供了动态内容提供了动态内容 显示、处理以及与

31、显示相关的格式的机制。显示、处理以及与显示相关的格式的机制。 第第14章流行软件体系结构章流行软件体系结构 JSP技术技术 为为Web客户端产生动态内容提供了一种可扩展的方客户端产生动态内容提供了一种可扩展的方 式。目的在于生成能够处理动态内容的式。目的在于生成能够处理动态内容的Web页面,页面, 这些页面处理的数据会发生变化,因此业务处理逻这些页面处理的数据会发生变化,因此业务处理逻 辑也会相应发生变化。辑也会相应发生变化。 一个一个JSP页面是一个基于文本的文档,它的写法很页面是一个基于文本的文档,它的写法很 像网页,用来描述怎样处理像网页,用来描述怎样处理Request和产生和产生 Re

32、sponse. 通常由通常由JSP标记、标记、HTML标记和嵌入其中的标记和嵌入其中的Java代代 码组成。服务器在页面被客户端请求后对这些码组成。服务器在页面被客户端请求后对这些Java 代码进行处理,然后生成代码进行处理,然后生成HTML页面返回给客户端页面返回给客户端 浏览器。浏览器。 第第14章流行软件体系结构章流行软件体系结构 JSP技术技术 随着随着JSP技术的发展,技术的发展,JSP页面中嵌入的页面中嵌入的Java代码代码 已经越来越少了,取代这些代码的是一些用户自定已经越来越少了,取代这些代码的是一些用户自定 义的标记和义的标记和JSP的标准标记(的标准标记(JSTL,JSP标

33、准标签标准标签 库)。扩展标记的使用令库)。扩展标记的使用令JSP页面变得越来越清晰,页面变得越来越清晰, 结构越来越完整。结构越来越完整。 第第14章流行软件体系结构章流行软件体系结构 Servlet 是运行在服务器上的小程序,可被看作是服务器端是运行在服务器上的小程序,可被看作是服务器端 的的Applet,实际上一个,实际上一个Servlet就是扩展就是扩展Web服务服务 器功能的一个器功能的一个Java类。类。 是作为是作为CGI(Common Gateway Interface,通用网通用网 关接口)的替代物发展起来的关接口)的替代物发展起来的,具有可移植性、灵具有可移植性、灵 活性以

34、及易编写等优点。活性以及易编写等优点。 接受客户端发来的请求并对它们进行处理,然后生接受客户端发来的请求并对它们进行处理,然后生 成响应,并将它们发送给客户端。成响应,并将它们发送给客户端。 Servlet技术是技术是JSP的基础,的基础,JSP页面在运行前都必页面在运行前都必 须转化及编译成须转化及编译成Servlet形式。形式。 是是Web构件,所以必须要运行在构件,所以必须要运行在Web服务器上。服务器上。 第第14章流行软件体系结构章流行软件体系结构 业务逻辑构件业务逻辑构件 EJB构件是构件是J2EE的核心,是实现企业级应用中业的核心,是实现企业级应用中业 务逻辑的务逻辑的Java构

35、件。构件。 EJB构件驻留在构件驻留在EJB容器中。容器中。EJB容器为容器为EJB构件构件 提供了一组标准的系统服务,其中包括事务管理、提供了一组标准的系统服务,其中包括事务管理、 持久性、安全性和并发控制等。通过持久性、安全性和并发控制等。通过EJB容器以及容器以及 使用使用XML对构件的部署进行说明,构件开发者便可对构件的部署进行说明,构件开发者便可 以从实现上述系统服务中解脱出来。以从实现上述系统服务中解脱出来。 EJB容器降低了容器降低了EJB构件开发的复杂程度,提高了构件开发的复杂程度,提高了 构件开发的效率,保证了构件的可移植性。构件开发的效率,保证了构件的可移植性。 EJB规范

36、定义了规范定义了EJB构件与构件与EJB容器之间的交互机容器之间的交互机 制。制。 第第14章流行软件体系结构章流行软件体系结构 业务逻辑构件业务逻辑构件 EJB是运行在独立服务器上的构件,客户端通过网是运行在独立服务器上的构件,客户端通过网 络对络对EJB对象进行调用。对象进行调用。 通过通过RMI技术,技术,J2EE将将EJB构件创建为远程对象,构件创建为远程对象, 客户端通过网络调用客户端通过网络调用EJB对象。客户端进行调用时,对象。客户端进行调用时, 不是采用不是采用RMI注册表提供的命名服务进行查找,而注册表提供的命名服务进行查找,而 是使用是使用JNDI技术查找技术查找EJB对象

37、。对象。JNDI屏蔽掉了屏蔽掉了 RMI命名服务的实现细节,使客户端程序更具通用命名服务的实现细节,使客户端程序更具通用 性。性。 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 实体实体Bean(Entity Bean) 提供了对持久数据(如数据库中存储的数据)进提供了对持久数据(如数据库中存储的数据)进 行操作的接口行操作的接口 对应持久数据的对象视图对应持久数据的对象视图 通过与某个持久数据相关联的实体通过与某个持久数据相关联的实体bean,客户,客户 可对该数据进行查询、更新等操作。可对该数据进行查询、更新等操作。 通过两种机制来持久保存对象:通过两种机制来持久保存对象:

38、 容器管理持久性(容器管理持久性(CMP) Bean管理持久性(管理持久性(BMP) 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 会话会话bean(Session Bean) 是一种对连接是一种对连接EJB容器的客户程序的扩展,主要容器的客户程序的扩展,主要 用于实现业务处理逻辑,以及提供对业务层访问用于实现业务处理逻辑,以及提供对业务层访问 的接口。的接口。 分为两种:分为两种: 有状态会话有状态会话bean:提供保存会话状态信息的:提供保存会话状态信息的 功能,每个会话功能,每个会话bean实例都与一个特定的客实例都与一个特定的客 户相关联;户相关联; 无状态会话无状态会

39、话bean:不保存客户的会话状态信:不保存客户的会话状态信 息,每次服务,同一个客户不一定对应同一个息,每次服务,同一个客户不一定对应同一个 会话会话bean实例。实例。 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 消息驱动消息驱动bean(Message-driven Bean) 是是JMS(Java Message Service,Java消息服消息服 务)与务)与EJB集成的结果。集成的结果。 没有向客户端公开接口,消息驱动没有向客户端公开接口,消息驱动EJB构件不能构件不能 由客户直接获得其引用而进行调用,客户只能通由客户直接获得其引用而进行调用,客户只能通 过消息系

40、统进行间接的调用。过消息系统进行间接的调用。 为客户和为客户和EJB构件之间提供了一种异步的通信能构件之间提供了一种异步的通信能 力力 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 大多数大多数EJB构件(不包括消息驱动构件(不包括消息驱动bean)由以下)由以下 远程接口、本地接口和远程接口、本地接口和Bean类组成:类组成: 远程接口(远程接口(remote interface) 声明了相应声明了相应Bean类公开的所有业务方法类公开的所有业务方法 必须遵循必须遵循EJB规范规范 必须由必须由javax.ejb.EJBObject派生派生 本地接口(本地接口(home in

41、terface) 声明了与声明了与EJB构件生命周期有关的方法构件生命周期有关的方法 客户可以使用本地接口中提供的方法创建、查找和删客户可以使用本地接口中提供的方法创建、查找和删 除除EJB构件构件 方法的实现由方法的实现由EJB容器负责,容器负责,EJB开发人员只需要提开发人员只需要提 供方法的原型供方法的原型 必须由必须由javax.ejb.EJBHome派生派生 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 大多数大多数EJB构件(不包括消息驱动构件(不包括消息驱动bean)由以下)由以下 远程接口、本地接口和远程接口、本地接口和Bean类组成:类组成: Bean类类 实

42、现实现EJB构件的业务逻辑方法构件的业务逻辑方法 用户通过远程接口调用这些方法用户通过远程接口调用这些方法 所有所有Bean类都必须实现的最基本的接口是类都必须实现的最基本的接口是 javax.ejb.EnterpriseBean 一般不直接实现一般不直接实现javax.ejb.EnterpriseBean接口,而接口,而 是实现相应的是实现相应的Bean类型的接口类型的接口 消息驱动消息驱动EJB构件没有本地接口和远程接口构件没有本地接口和远程接口 第第14章流行软件体系结构章流行软件体系结构 EJB构件构件 EJB构件运行在构件运行在EJB容器中,容器中,EJB容器为容器为 EJB构件提供

43、事务管理、持久性、安全性和构件提供事务管理、持久性、安全性和 并发控制等系统服务。并发控制等系统服务。 当当EJB构件被装入到容器中时,需要向容器构件被装入到容器中时,需要向容器 说明说明EJB构件将如何部署到容器中去,以及构件将如何部署到容器中去,以及 希望容器提供哪些服务。希望容器提供哪些服务。 通过一个通过一个XML格式的部署描述文件说明。格式的部署描述文件说明。 第第14章流行软件体系结构章流行软件体系结构 部署描述文件部署描述文件 EJB基本信息:指明基本信息:指明EJB的名称、远程接口、的名称、远程接口、 本地接口及本地接口及Bean类类 EJB管理要求:指明管理要求:指明EJB容

44、器应该如何管理容器应该如何管理 Bean EJB持久性要求:指明实体持久性要求:指明实体Bean是由自己管是由自己管 理持久性,还是由容器管理持久性理持久性,还是由容器管理持久性 EJB事务处理要求:指明容器的安全策略事务处理要求:指明容器的安全策略 第第14章流行软件体系结构章流行软件体系结构 J2EE构件构件 包括包括Java应用程序、应用程序、Applet、JSP、 Servlet、EJB 可以打包成模块(可以打包成模块(module)并以)并以Java Archive(JAR)文件的形式发布)文件的形式发布 一个模块通常包含了相关的构件、相关文件一个模块通常包含了相关的构件、相关文件

45、和用来描述怎样部署构件的部署描述文件和用来描述怎样部署构件的部署描述文件 (XML文件)。文件)。 通过模块可以用一些相同构件来组装不同的通过模块可以用一些相同构件来组装不同的 J2EE应用,实现了构件技术的目标应用,实现了构件技术的目标重用重用 第第14章流行软件体系结构章流行软件体系结构 基于基于.NET平台的分布式构件技术平台的分布式构件技术 微软没有提出一整套标准,逐渐引入构件技术,可获微软没有提出一整套标准,逐渐引入构件技术,可获 益于以前的成功技术,如益于以前的成功技术,如Visual Basic控件、对象链控件、对象链 接和嵌入(接和嵌入(OLE)、)、OLE数据库连接(数据库连

46、接(ODBC)、)、 ActiveX、微软事务服务器技术(、微软事务服务器技术(MTS)、)、Active Server Page(ASP)。)。 COM(Component Object Model,组建对象模型),组建对象模型) 是从是从Windows3.1中最初为支持复合文档而使用中最初为支持复合文档而使用OLE 技术发展而来的,经历了技术发展而来的,经历了OLE2/COM、ActiveX、 DCOM和和COM+等几个阶段。等几个阶段。 第第14章流行软件体系结构章流行软件体系结构 COM 为代码的重用提供了一种模块化、面向对象的方式为代码的重用提供了一种模块化、面向对象的方式 定义了定

47、位和识别其他组件功能的标准方式,组件可定义了定位和识别其他组件功能的标准方式,组件可 用各种语言编写和使用用各种语言编写和使用 是微软平台上所有构件的基石是微软平台上所有构件的基石 但是。但是。 COM组件不容易编写组件不容易编写 提供的功能取决于编写所用的语言提供的功能取决于编写所用的语言 很难部署很难部署 COM服务器组件的开发人员必须确保组件的新版本与服务器组件的开发人员必须确保组件的新版本与 旧版本兼容,但有时新旧版本不兼容,被称为旧版本兼容,但有时新旧版本不兼容,被称为“DLL Hell” 第第14章流行软件体系结构章流行软件体系结构 .NET框架框架 NET框架和框架和NET组件可

48、以避开组件可以避开COM设计的复杂设计的复杂 性,使程序员更容易得到组件化的体系结构性,使程序员更容易得到组件化的体系结构 是用于构建和运行下一代是用于构建和运行下一代Internet应用程序和应用程序和 XML Web服务的平台服务的平台 提供了一个高效并标准的环境,用于将现有资提供了一个高效并标准的环境,用于将现有资 源与下一代应用程序和服务进行集成,以便灵源与下一代应用程序和服务进行集成,以便灵 活地解决企业级应用程序部署和操作的难题。活地解决企业级应用程序部署和操作的难题。 第第14章流行软件体系结构章流行软件体系结构 .NET框架的体系结构框架的体系结构 通用语言运行时(通用语言运行

49、时(Common Language RuntimeCommon Language Runtime) 类库(类库(Class LibraryClass Library) 数据和数据和XMLXML(ADO.NETADO.NET) WebWeb服务服务 用户界面用户界面 ASP.NETASP.NET VB C+ C# Perl VB C+ C# Perl Visual Studio.NET Visual Studio.NET 第第14章流行软件体系结构章流行软件体系结构 .NET框架框架 主要包括公共语言运行时(主要包括公共语言运行时(CLR)和)和.NET基类基类 库(库(FCL) 在开发技术方面

50、,提供了全新的数据库访问技在开发技术方面,提供了全新的数据库访问技 术术ADO.NET、Web应用开发技术应用开发技术ASP.NET和和 Windows编程技术编程技术Windows Forms 在开发语言方面,提供了对在开发语言方面,提供了对VB、C+、C#等等 多种语言的支持多种语言的支持 Visual Studio.NET为为.NET框架集成了大多数框架集成了大多数 工具工具 第第14章流行软件体系结构章流行软件体系结构 公共语言运行时公共语言运行时 位于操作系统之上,位于操作系统之上,.NET框架的最低一层,是框架的最低一层,是 框架的基础框架的基础 为宿主托管应用程序提供虚拟环境为宿

51、主托管应用程序提供虚拟环境 提供更多的功能和特性提供更多的功能和特性 统一和简化的编程模型,使用户不必迷惑于统一和简化的编程模型,使用户不必迷惑于Win32 API和和COM,避免了,避免了DLL版本和更新问题,简化了版本和更新问题,简化了 应用程序的发布和升级应用程序的发布和升级 多种语言之间的交互多种语言之间的交互 自动的内存和资源管理自动的内存和资源管理 第第14章流行软件体系结构章流行软件体系结构 公共语言运行时公共语言运行时 基于基于CLR的代码称为托管代码(的代码称为托管代码(Managed Code) 当运行托管代码时,通过针对公共语言运行时的编译当运行托管代码时,通过针对公共语

52、言运行时的编译 器生成微软中间语言(器生成微软中间语言(Microsoft Intermediate Language, MSIL),同时生成所需的元数据,在代),同时生成所需的元数据,在代 码运行时再使用即时编译器(码运行时再使用即时编译器(Just in Time Compiler)生成相应的机器代码来执行)生成相应的机器代码来执行 大部分情况下,代码只在第一次被调用时被即时编译,大部分情况下,代码只在第一次被调用时被即时编译, 其后便被缓存在内存中以便下次执行时没有延迟。未其后便被缓存在内存中以便下次执行时没有延迟。未 调用的代码决不会被即时编译。调用的代码决不会被即时编译。 即时编译会

53、影响系统性能,但是即时编译器能优化所即时编译会影响系统性能,但是即时编译器能优化所 产生的本机代码,以适应它所运行的主机处理器,因产生的本机代码,以适应它所运行的主机处理器,因 此即时编译器运行效率优于普通代码。此即时编译器运行效率优于普通代码。 第第14章流行软件体系结构章流行软件体系结构 托管环境中运行代码的好处托管环境中运行代码的好处 即时编译器将通用中间语言指令转换为本机代码,扮即时编译器将通用中间语言指令转换为本机代码,扮 演了代码验证的角色,可以确保代码是类型安全的,演了代码验证的角色,可以确保代码是类型安全的, 避免了不同组件之间可能存在的类型不匹配的问题避免了不同组件之间可能存

54、在的类型不匹配的问题 托管代码占用的资源可以被回收。托管代码占用的资源可以被回收。CLR包含一个复杂包含一个复杂 的垃圾回收器,垃圾回收器自动跟踪代码创建的对象的垃圾回收器,垃圾回收器自动跟踪代码创建的对象 的应用,当别的进程需要使用对象占用的内存时,它的应用,当别的进程需要使用对象占用的内存时,它 可销毁这些对象。可销毁这些对象。 CLR负责处理对象的内存布局、管理对象的应用、自负责处理对象的内存布局、管理对象的应用、自 动垃圾收集,从根本上解决了内存泄露和无效内存应动垃圾收集,从根本上解决了内存泄露和无效内存应 用的问题,大大减轻了开发人员的负担,提高程序的用的问题,大大减轻了开发人员的负

55、担,提高程序的 健壮性。健壮性。 第第14章流行软件体系结构章流行软件体系结构 .NET基类库基类库 系统框架服务系统框架服务 一套在标准语言库中使用的基本类库,如集合、输一套在标准语言库中使用的基本类库,如集合、输 入入/输出、字符串及数据类。输出、字符串及数据类。 提供了访问操作系统和其他服务的类,如网络、线提供了访问操作系统和其他服务的类,如网络、线 程、全球化和加密的类程、全球化和加密的类 包括数据访问类库及开发工具,如调试和剖析服务包括数据访问类库及开发工具,如调试和剖析服务 使用的类使用的类 ADO.NET组件组件 为基于网络的可扩展应用程序和服务提供了数据访为基于网络的可扩展应用

56、程序和服务提供了数据访 问服务问服务 第第14章流行软件体系结构章流行软件体系结构 .NET基类库基类库 XML数据组件数据组件 提供了对提供了对XML数据的操作支持数据的操作支持 支持支持ADO.NET数据与数据与XML数据之间的转换数据之间的转换 Windows表单组件表单组件 提供了强大的提供了强大的Windows应用程序模型和丰富的应用程序模型和丰富的 Windows用户接口,包括传统的用户接口,包括传统的ActiveX控件和控件和 Windows XP界面,如透明的、分层的、浮动的窗界面,如透明的、分层的、浮动的窗 口等口等 第第14章流行软件体系结构章流行软件体系结构 .NET基类

57、库基类库 ASP.NET应用服务应用服务 用于处理基于用于处理基于HTTP的请求,采用编译方式大大提的请求,采用编译方式大大提 高了它的性能高了它的性能 使用基于构件的使用基于构件的Microsoft.NET框架配置模板框架配置模板 支持应用程序的实时更新,提供高速缓存服务支持应用程序的实时更新,提供高速缓存服务 ASP.NET Web表单表单 支持传统的将支持传统的将HTML内容和脚本代码混合的内容和脚本代码混合的ASP方方 式式 提供了一种将应用程序代码和用户接口内容分离的、提供了一种将应用程序代码和用户接口内容分离的、 更加结构化的方法(更加结构化的方法(Code Behind方法)方法

58、) 第第14章流行软件体系结构章流行软件体系结构 .NET基类库基类库 Web服务服务 ASP.NET应用服务体系架构为使用应用服务体系架构为使用ASP.NET建立建立 Web服务提供了一个高级的可编程的模型服务提供了一个高级的可编程的模型 使用这个模型,开发人员不需要理解使用这个模型,开发人员不需要理解HTTP、 SOAP或其他网络服务规范或其他网络服务规范 第第14章流行软件体系结构章流行软件体系结构 面向服务的体系结构面向服务的体系结构 过去过去40年里,软件体系结构用于处理日益增长的软件年里,软件体系结构用于处理日益增长的软件 复杂性,但是复杂性仍在继续增加,传统的体系结构复杂性,但是

59、复杂性仍在继续增加,传统的体系结构 好像已经达到了它们处理此类问题的极限。好像已经达到了它们处理此类问题的极限。 为减少异构性、互操作性和不断变化的需求所带来的为减少异构性、互操作性和不断变化的需求所带来的 问题,需要一种新的、不受技术约束的软件体系结构,问题,需要一种新的、不受技术约束的软件体系结构, 它应该具有松散耦合、位置透明、协议独立的特征。它应该具有松散耦合、位置透明、协议独立的特征。 面向服务的体系结构(面向服务的体系结构(Service-Oriented Architecture, SOA)可解决上述问题)可解决上述问题 第第14章流行软件体系结构章流行软件体系结构 SOA 继面

60、向对象、基于构件的软件架构方法之后被提出的继面向对象、基于构件的软件架构方法之后被提出的 一种新的体系结构一种新的体系结构 来源于早期的基于构件的分布式计算方式,用以解决来源于早期的基于构件的分布式计算方式,用以解决 复杂环境下的分布式应用,即解决复杂环境下的分布式应用,即解决“异构集成异构集成”和和 “系统演化系统演化”两个问题两个问题 所有功能都定义为独立的服务,这些服务带有定义明所有功能都定义为独立的服务,这些服务带有定义明 确的可调用接口,可以以定义好的顺序调用这些服务确的可调用接口,可以以定义好的顺序调用这些服务 来形成业务流程来形成业务流程 第第14章流行软件体系结构章流行软件体系

温馨提示

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

评论

0/150

提交评论