版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、流行的软件体系结构流行的软件体系结构概述概述随着计算机硬件技术和网络通信技术的发展,随着计算机硬件技术和网络通信技术的发展,网络计算经历了从集中式计算到分布式计算的网络计算经历了从集中式计算到分布式计算的重大演变,新的分布式网络计算要求软件实现重大演变,新的分布式网络计算要求软件实现跨空间、跨时间、跨设备、跨用户的共享,导跨空间、跨时间、跨设备、跨用户的共享,导致软件在规模、复杂度、功能上的极大增长,致软件在规模、复杂度、功能上的极大增长,迫使软件向迫使软件向异构协同工作异构协同工作、各层次上集成各层次上集成、可可反复重用反复重用的工业化道路上前进。的工业化道路上前进。新的软件开发模式必须支持
2、新的软件开发模式必须支持分布式计算分布式计算、浏览浏览器器/服务器结构服务器结构、模块化模块化和和构件化集成构件化集成,可用不,可用不同的标准构件同的标准构件组装组装而成。而成。概述概述提供一种手段,使应用软件可用预先编好的、提供一种手段,使应用软件可用预先编好的、功能明确的产品部件定制而成,并可用不同版功能明确的产品部件定制而成,并可用不同版本的部件实现应用的扩展和更新。本的部件实现应用的扩展和更新。 利用模块化方法,将复杂的难以维护的系统分利用模块化方法,将复杂的难以维护的系统分解为互相独立、协同工作的部件,并努力使这解为互相独立、协同工作的部件,并努力使这些部件可反复重用。些部件可反复重
3、用。突破时间、空间及不同硬件设备的限制,利用突破时间、空间及不同硬件设备的限制,利用客户和软件之间统一的接口实现跨平台的互操客户和软件之间统一的接口实现跨平台的互操作。作。构件技术构件技术为满足上述要求,构件技术应运而生为满足上述要求,构件技术应运而生构件技术被认为是未来几年软件发展的基构件技术被认为是未来几年软件发展的基础。础。目标是达到需求、体系结构、设计、实现目标是达到需求、体系结构、设计、实现的重用,并使系统具有更好的适应性、伸的重用,并使系统具有更好的适应性、伸缩性和可维护性。缩性和可维护性。借鉴汽车制造业和建筑业的思想,采用流借鉴汽车制造业和建筑业的思想,采用流水线生产方式的预制件
4、装配方式水线生产方式的预制件装配方式预制件要求并不苛刻,只要能重用就可以预制件要求并不苛刻,只要能重用就可以构件技术构件技术通过使用购买或定制构件这一新的解决方通过使用购买或定制构件这一新的解决方案可以有效地提高产品的质量,加快产品案可以有效地提高产品的质量,加快产品开发速度,这种开发技术称为开发速度,这种开发技术称为“基于构件基于构件的开发技术的开发技术”软件复用软件复用软件产品的复用软件产品的复用软件过程的复用:基于构件的复用软件过程的复用:基于构件的复用基于构件的复用基于构件的复用构件的开发构件的开发构件的管理构件的管理基于构件组装的系统开发基于构件组装的系统开发 构件必须遵循某一特定的
5、构建模型,并且针构件必须遵循某一特定的构建模型,并且针对某一特定的构件平台对某一特定的构件平台抽象抽象面向对象技术已达到类级重用(代码重用),面向对象技术已达到类级重用(代码重用),以类为封装的单位。以类为封装的单位。重用粒度太小,不足以解决异构互操作和效率更高重用粒度太小,不足以解决异构互操作和效率更高的重用。的重用。构件更推广了对象封装的内涵,对一组类的组构件更推广了对象封装的内涵,对一组类的组合进行封装(也可以不包括类,比如包括传统合进行封装(也可以不包括类,比如包括传统的过程),并代表完成一个或多个功能的特定的过程),并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。服务,也
6、为用户提供了多个接口。在不同层次上,构件均可以将底层的多个逻辑组合在不同层次上,构件均可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现。级到系统级都可能实现。构件的属性构件的属性是可独立配置的单元是可独立配置的单元构件必须具有原子性,本身不可拆分;构件必须具有原子性,本身不可拆分;必须与其所部属的环境以及其他构件很好地分离必须与其所部属的环境以及其他构件很好地分离必须很好地封装自己的构成部件必须很好地封装自己的构成部件可以作
7、为第三方的组装单元被复合使用可以作为第三方的组装单元被复合使用不但具备良好的内聚性,还必须具有清晰的规格说明来描不但具备良好的内聚性,还必须具有清晰的规格说明来描述其依赖条件和所提供的服务。这样,第三方厂商能够将述其依赖条件和所提供的服务。这样,第三方厂商能够将一个构件与其他构件组装在一起。即构件只通过定义良好一个构件与其他构件组装在一起。即构件只通过定义良好的接口与外部环境交互。的接口与外部环境交互。没有外部可见的状态没有外部可见的状态不应当与自身备份有所区别,在任何环境中,最多仅有特不应当与自身备份有所区别,在任何环境中,最多仅有特定构件的一个备份定构件的一个备份构件技术构件技术分布式构件
8、技术分布式构件技术CORBA规范规范Sun的的Java平台平台Microsoft的的.NET平台平台分布式构件体系结构分布式构件体系结构J2EE.NET提供事物完整性、消息传递、目录服务、安全、提供事物完整性、消息传递、目录服务、安全、异常处理、远程访问等。异常处理、远程访问等。基于基于CORBA的分布式构件技术的分布式构件技术OMG(对象管理学会)是一个由业界(对象管理学会)是一个由业界760多个公司多个公司组成的工业协会,目的是为了共同制定一个大家都组成的工业协会,目的是为了共同制定一个大家都遵循的分布式对象计算标准,将对象和分布式系统遵循的分布式对象计算标准,将对象和分布式系统技术集成为
9、一个可相互操作的统一结构,既支持现技术集成为一个可相互操作的统一结构,既支持现有的平台也将支持未来的平台集成。有的平台也将支持未来的平台集成。OMA(对象管理体系),基础是(对象管理体系),基础是ORB(对象请求(对象请求中介)标准,不仅提供了中介)标准,不仅提供了CORBA基础架构说明,基础架构说明,还提供了一系列服务,如安全、交易和消息传递等。还提供了一系列服务,如安全、交易和消息传递等。针对针对ORB,OMG制定了制定了CORBA规范。规范。OMA对象管理体系结构对象管理体系结构对象请求代理对象请求代理(Object Request BrokerObject Request Broker
10、)CORBACORBA服务服务(CORBA ServiceCORBA Service)应用对象应用对象( (Application Object) )水平水平CORBACORBA设备设备( (Horizontal CORBA Facility) )垂直垂直CORBACORBA设备设备( (Vertical CORBA Facility) )CORBA服务服务提供适用于实现对象的一些基本功能,如对提供适用于实现对象的一些基本功能,如对象的命名服务、对象交易服务(对象并行、象的命名服务、对象交易服务(对象并行、对象存储、对象产生和消亡、事件消息响应对象存储、对象产生和消亡、事件消息响应以及事务交易
11、的一致性保证)和持久状态服以及事务交易的一致性保证)和持久状态服务(务(Persistent State Service, PPS)等。)等。是发布对象系统必不可少的公共服务,是底是发布对象系统必不可少的公共服务,是底层支持的必需服务。层支持的必需服务。CORBA设备设备水平水平CORBA设备:在各种工业部门中针对所设备:在各种工业部门中针对所有类型有类型CORBA应用的元素应用的元素包括用户接口和系统管理设备包括用户接口和系统管理设备针对大多数类型的应用,不考虑设备被使用的领针对大多数类型的应用,不考虑设备被使用的领域域垂直垂直CORBA设备:只在特殊垂直市场和工业设备:只在特殊垂直市场和工
12、业中针对某些应用的功能,也称领域中针对某些应用的功能,也称领域CORBA设设备备包括某些特殊领域的应用,比如在会计业中的总包括某些特殊领域的应用,比如在会计业中的总账和分期偿付,制造业的自动化店层控制设备。账和分期偿付,制造业的自动化店层控制设备。应用对象应用对象位于位于OMA层次结构的最顶层,可以是分布系层次结构的最顶层,可以是分布系统中的任何成分,如程序、进程、类实例。统中的任何成分,如程序、进程、类实例。通常会根据独立的应用被定制,并不需要标通常会根据独立的应用被定制,并不需要标准化,所以这一类的对象并不受准化,所以这一类的对象并不受OMG标准的标准的影响。影响。必须符合必须符合OMA的
13、标准接口。的标准接口。OMA中的对象作为服务者被动态地引用,并中的对象作为服务者被动态地引用,并且以唯一的标识提供服务。且以唯一的标识提供服务。对象间的交互通过对象间的交互通过ORB实现实现对象请求代理对象请求代理是是OMA的核心部分的核心部分当应用对象在分布对象系统中请求服务时,当应用对象在分布对象系统中请求服务时,就是以系统客户的身份,通过就是以系统客户的身份,通过ORB与系统中与系统中其他对象完成交互其他对象完成交互OMG进一步给出了进一步给出了OMA对象管理体系结构对象管理体系结构的的ORB开放标准开放标准CORBA体系结构体系结构CORBA规范包括规范包括ORB、接口定义语言、接口定
14、义语言(IDL)、存根存根(Stub)、框架、框架(Skeleton)、对象适配器、对象适配器、动态调用接口动态调用接口CORBA体系结构体系结构接口库接口库Interface Repository实现库实现库ImplementationRepository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态调用调用客户客户StubStubORBORB接口接口 对象适配器对象适配器 静态服务静态服务Skeleton动态服务动态服务Skeleton客户程序客户程序( (Client) )对象实现对象实现( (Server) )ORBORB的任务就是把客户发出的请
15、求传送给目标对象,的任务就是把客户发出的请求传送给目标对象,并把目标对象的执行结果返回给请求客户。它屏蔽并把目标对象的执行结果返回给请求客户。它屏蔽了了对象位置、对象实现、对象执行状态、对象通了了对象位置、对象实现、对象执行状态、对象通信机制和数据表示。信机制和数据表示。CORBA体系结构体系结构IDL:IDL:客户目标对象发送请求必须知道目标对象所具备的操作。客户目标对象发送请求必须知道目标对象所具备的操作。IDLIDL提供了对象定义的手段,使得请求对象了解服务对象。提供了对象定义的手段,使得请求对象了解服务对象。IDLIDL是说明性语言,只对对象接口定义,不提供任何实现细节是说明性语言,只
16、对对象接口定义,不提供任何实现细节的描述。的描述。IDLIDL把编译后的代码映射到具体的编程语言,并且产把编译后的代码映射到具体的编程语言,并且产生客户生客户StubStub和服务和服务SkeletonSkeleton。 对象请求代理(对象请求代理(Object Request BrokerObject Request Broker) 客户程序客户程序( (Client) )对象实现对象实现( (Object implementation) )请求请求(Request)(Request)IDLIDLStubStubIDLIDLStubStubCORBA体系结构体系结构接口库接口库Interfa
17、ce Repository实现库实现库ImplementationRepository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态调用调用客户客户StubStubORBORB接口接口 对象适配器对象适配器 静态服务静态服务Skeleton动态服务动态服务Skeleton客户程序客户程序( (Client) )对象实现对象实现( (Server) )存根(存根(StubStub)是客户端的代码,客户应用程序通过存根向)是客户端的代码,客户应用程序通过存根向服务器应用程序发送请求,服务器应用程序发送请求,CORBA体系结构体系结构接口库接口库Interfa
18、ce Repository实现库实现库ImplementationRepository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态调用调用客户客户StubStubORBORB接口接口 对象适配器对象适配器 静态服务静态服务Skeleton动态服务动态服务Skeleton客户程序客户程序( (Client) )对象实现对象实现( (Server) )框架(框架(SkeletonSkeleton)是服务器端的代码,提供对象适配器转发)是服务器端的代码,提供对象适配器转发的请求调度到对象实现上的适当操作的代码。的请求调度到对象实现上的适当操作的代码。CORB
19、A体系结构体系结构接口库接口库Interface Repository实现库实现库ImplementationRepository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态调用调用客户客户StubStubORBORB接口接口 对象适配器对象适配器 静态服务静态服务Skeleton动态服务动态服务Skeleton客户程序客户程序( (Client) )对象实现对象实现( (Server) )对象适配器(对象适配器(Object AdapterObject Adapter)是)是ORBORB核心的上层机制。它负责核心的上层机制。它负责接受服务请求,完成实
20、例化服务对象,向对象传送请求,为服接受服务请求,完成实例化服务对象,向对象传送请求,为服务指定对象引用和提供运行环境。务指定对象引用和提供运行环境。CORBA体系结构体系结构接口库接口库Interface Repository实现库实现库ImplementationRepository 对象请求中间件核心(对象请求中间件核心(ORB CoreORB Core) 动态动态调用调用客户客户StubStubORBORB接口接口 对象适配器对象适配器 静态服务静态服务Skeleton动态服务动态服务Skeleton客户程序客户程序( (Client) )对象实现对象实现( (Server) )通过对象
21、适配器,通过对象适配器,ORBORB服务方给客户应用提供了一个假象(虚拟服务方给客户应用提供了一个假象(虚拟环境),即服务对象都是活动着的,随时等待客户应用发来请环境),即服务对象都是活动着的,随时等待客户应用发来请求。求。ORBORB通过适配器将目的对象分成组,每组通过特定的对象适通过适配器将目的对象分成组,每组通过特定的对象适配器来满足特定的需求。配器来满足特定的需求。基于基于Java的分布式构件技术的分布式构件技术1996年年1月,月,Sun公司正式发布了公司正式发布了Java1.01998年夏末又推出了年夏末又推出了Java2.01999年年Sun公司推出三个版本的公司推出三个版本的J
22、ava2平台:平台:J2ME:是:是Java 2 Platform Micro Edition的缩写,即的缩写,即Java2平台微型版,适用于开发小型设备和智能卡上的平台微型版,适用于开发小型设备和智能卡上的应用系统,如手机和掌上电脑的操作系统等应用系统,如手机和掌上电脑的操作系统等J2SE:是:是Java 2 Platform Standard Edition的缩写,的缩写,即即Java2平台标准版,适用于创建普通台式电脑上的应平台标准版,适用于创建普通台式电脑上的应用系统,如用系统,如PC机、小型工作站的应用软件等机、小型工作站的应用软件等J2EE:是:是Java 2 Platform E
23、nterprise Edition的缩写,的缩写,即即Java2平台企业版,适用于创建服务器端的大型应用平台企业版,适用于创建服务器端的大型应用软件和服务系统。软件和服务系统。J2EE平台平台使用使用多层分布式应用模型多层分布式应用模型,根据功能划分成各个构,根据功能划分成各个构件,这些构件根据其在多层件,这些构件根据其在多层J2EE环境中所处的层环境中所处的层被安装在不同的机器上。下图是三个被安装在不同的机器上。下图是三个J2EE应用。应用。J2EEJ2EE应用应用1 1J2EEJ2EE应用应用2 2J2EEJ2EE应用应用3 3客户端客户端应用程序应用程序动态动态HTMLHTML页面页面动
24、态动态HTMLHTML页面页面客户层客户层WebWeb层层业务层业务层EISEIS层层客户端机器客户端机器J2EEJ2EE服务器服务器机器机器数据库服务器数据库服务器机器机器JSPJSP页面页面JSPJSP页面页面EJBEJBEJBEJB数据库数据库数据库数据库数据库数据库J2EE平台平台最基本的最基本的Java构件是在构件是在J2ME中的中的JavaBean,它,它是按照特定格式编写的是按照特定格式编写的Java类类JavaBean包括包括实例变量实例变量(Instance Variable)和)和get()、set()方法来访问实例变量的数据。方法来访问实例变量的数据。这种格式大大简化了程
25、序设计。这种格式大大简化了程序设计。J2EE的构件在的构件在JavaBeans基础上进行了拓展。基础上进行了拓展。J2EE构件构件客户端构件客户端构件:Java应用程序和应用程序和AppletWeb构件构件:JavaServer Pages ( JSP ) 和和 Java Servlet业务逻辑构件业务逻辑构件:Enterprise JavaBeans ( EJB )这些构件在开发完成后,部署到相应的容器中。这些构件在开发完成后,部署到相应的容器中。客户端构件客户端构件Java应用程序是运行在应用客户容器内部的单个应用程序是运行在应用客户容器内部的单个程序,应用客户容器提供了支持消息、远程调用
26、、程序,应用客户容器提供了支持消息、远程调用、数据库连接和查询服务的数据库连接和查询服务的API,容器所需的,容器所需的API主主要有:要有:J2SE、JME、JNDI、RMI-IIOP和和JDBC,这些容器由应用服务器供货商提供。这些容器由应用服务器供货商提供。Applet运行在运行在Applet容器中,这种容器是支持容器中,这种容器是支持Java技术的基本浏览器。作为一个技术的基本浏览器。作为一个Java构件模型,构件模型,目标是创建可下载的轻量级构件,来丰富客户端网目标是创建可下载的轻量级构件,来丰富客户端网页的视觉效果。页的视觉效果。Applet需要需要J2SE API的支持。的支持。
27、Web构件构件 JSP和和Servlet是运行在是运行在Web容器中基于容器中基于Web的构的构件。件。Web容器由容器由Web服务器所支持。是服务器所支持。是JSP和和Servlet在运行时的执行环境,容器所需的在运行时的执行环境,容器所需的API主要主要有:有: J2SE、JMS、JNDI、JTA、JavaMail、JAF、RMI-IIOP和和JDBC。JSP和和Servlet提供了动态内容提供了动态内容显示、处理以及与显示相关的格式的机制。显示、处理以及与显示相关的格式的机制。JSP技术技术 为为Web客户端产生动态内容提供了一种可扩展的方客户端产生动态内容提供了一种可扩展的方式。目的在
28、于生成能够处理动态内容的式。目的在于生成能够处理动态内容的Web页面,页面,这些页面处理的数据会发生变化,因此业务处理逻这些页面处理的数据会发生变化,因此业务处理逻辑也会相应发生变化。辑也会相应发生变化。一个一个JSP页面是一个基于文本的文档,它的写法很页面是一个基于文本的文档,它的写法很像网页,用来描述怎样处理像网页,用来描述怎样处理Request和产生和产生Response.通常由通常由JSP标记、标记、HTML标记和嵌入其中的标记和嵌入其中的Java代代码组成。服务器在页面被客户端请求后对这些码组成。服务器在页面被客户端请求后对这些Java代码进行处理,然后生成代码进行处理,然后生成HT
29、ML页面返回给客页面返回给客户端浏览器。户端浏览器。JSP技术技术 随着随着JSP技术的发展,技术的发展,JSP页面中嵌入的页面中嵌入的Java代码代码已经越来越少了,取代这些代码的是一些用户自定已经越来越少了,取代这些代码的是一些用户自定义的标记和义的标记和JSP的标准标记(的标准标记(JSTL,JSP标准标标准标签库)。扩展标记的使用令签库)。扩展标记的使用令JSP页面变得越来越清页面变得越来越清晰,结构越来越完整。晰,结构越来越完整。Servlet 是运行在服务器上的小程序,可被看作是服务器端是运行在服务器上的小程序,可被看作是服务器端的的Applet,实际上一个,实际上一个Servle
30、t就是扩展就是扩展Web服务服务器功能的一个器功能的一个Java类。类。是作为是作为CGI(Common Gateway Interface,通用网通用网关接口)的替代物发展起来的关接口)的替代物发展起来的,具有可移植性、灵具有可移植性、灵活性以及易编写等优点。活性以及易编写等优点。接受客户端发来的请求并对它们进行处理,然后生接受客户端发来的请求并对它们进行处理,然后生成响应,并将它们发送给客户端。成响应,并将它们发送给客户端。Servlet技术是技术是JSP的基础,的基础,JSP页面在运行前都必页面在运行前都必须转化及编译成须转化及编译成Servlet形式。形式。是是Web构件,所以必须要运
31、行在构件,所以必须要运行在Web服务器上。服务器上。业务逻辑构件业务逻辑构件 EJB构件是构件是J2EE的核心,是实现企业级应用中业的核心,是实现企业级应用中业务逻辑的务逻辑的Java构件。构件。EJB构件驻留在构件驻留在EJB容器中。容器中。EJB容器为容器为EJB构件构件提供了一组标准的系统服务,其中包括事务管理、提供了一组标准的系统服务,其中包括事务管理、持久性、安全性和并发控制等。通过持久性、安全性和并发控制等。通过EJB容器以及容器以及使用使用XML对构件的部署进行说明,构件开发者便可对构件的部署进行说明,构件开发者便可以从实现上述系统服务中解脱出来。以从实现上述系统服务中解脱出来。
32、EJB容器降低了容器降低了EJB构件开发的复杂程度,提高了构件开发的复杂程度,提高了构件开发的效率,保证了构件的可移植性。构件开发的效率,保证了构件的可移植性。EJB规范定义了规范定义了EJB构件与构件与EJB容器之间的交互机容器之间的交互机制。制。业务逻辑构件业务逻辑构件EJB是运行在独立服务器上的构件,客户端通过网是运行在独立服务器上的构件,客户端通过网络对络对EJB对象进行调用。对象进行调用。通过通过RMI技术,技术,J2EE将将EJB构件创建为远程对象,构件创建为远程对象,客户端通过网络调用客户端通过网络调用EJB对象。客户端进行调用时,对象。客户端进行调用时,不是采用不是采用RMI注
33、册表提供的命名服务进行查找,而注册表提供的命名服务进行查找,而是使用是使用JNDI技术查找技术查找EJB对象。对象。JNDI屏蔽掉了屏蔽掉了RMI命名服务的实现细节,使客户端程序更具通用命名服务的实现细节,使客户端程序更具通用性。性。EJB构件构件 实体实体Bean(Entity Bean)提供了对持久数据(如数据库中存储的数据)进提供了对持久数据(如数据库中存储的数据)进行操作的接口行操作的接口对应持久数据的对象视图对应持久数据的对象视图通过与某个持久数据相关联的实体通过与某个持久数据相关联的实体bean,客户,客户可对该数据进行查询、更新等操作。可对该数据进行查询、更新等操作。通过两种机制
34、来持久保存对象:通过两种机制来持久保存对象:容器管理持久性(容器管理持久性(CMP)Bean管理持久性(管理持久性(BMP)EJB构件构件会话会话bean(Session Bean)是一种对连接是一种对连接EJB容器的客户程序的扩展,主要容器的客户程序的扩展,主要用于实现业务处理逻辑,以及提供对业务层访问用于实现业务处理逻辑,以及提供对业务层访问的接口。的接口。分为两种:分为两种:有状态会话有状态会话bean:提供保存会话状态信息的:提供保存会话状态信息的功能,每个会话功能,每个会话bean实例都与一个特定的客实例都与一个特定的客户相关联;户相关联;无状态会话无状态会话bean:不保存客户的会
35、话状态信:不保存客户的会话状态信息,每次服务,同一个客户不一定对应同一息,每次服务,同一个客户不一定对应同一个会话个会话bean实例。实例。EJB构件构件消息驱动消息驱动bean(Message-driven Bean)是是JMS(Java Message Service,Java消息服消息服务)与务)与EJB集成的结果。集成的结果。没有向客户端公开接口,消息驱动没有向客户端公开接口,消息驱动EJB构件不能构件不能由客户直接获得其引用而进行调用,客户只能通由客户直接获得其引用而进行调用,客户只能通过消息系统进行间接的调用。过消息系统进行间接的调用。为客户和为客户和EJB构件之间提供了一种异步的
36、通信能构件之间提供了一种异步的通信能力力EJB构件构件大多数大多数EJB构件(不包括消息驱动构件(不包括消息驱动bean)由以下)由以下远程接口、本地接口和远程接口、本地接口和Bean类组成:类组成:远程接口远程接口(remote interface)声明了相应声明了相应Bean类公开的所有业务方法类公开的所有业务方法必须遵循必须遵循EJB规范规范必须由必须由javax.ejb.EJBObject派生派生本地接口本地接口(home interface)声明了与声明了与EJB构件生命周期有关的方法构件生命周期有关的方法客户可以使用本地接口中提供的方法创建、查找和删客户可以使用本地接口中提供的方法
37、创建、查找和删除除EJB构件构件方法的实现由方法的实现由EJB容器负责,容器负责,EJB开发人员只需要提开发人员只需要提供方法的原型供方法的原型必须由必须由javax.ejb.EJBHome派生派生EJB构件构件大多数大多数EJB构件(不包括消息驱动构件(不包括消息驱动bean)由以下)由以下远程接口、本地接口和远程接口、本地接口和Bean类组成:类组成:Bean类类实现实现EJB构件的业务逻辑方法构件的业务逻辑方法用户通过远程接口调用这些方法用户通过远程接口调用这些方法所有所有Bean类都必须实现的最基本的接口是类都必须实现的最基本的接口是javax.ejb.EnterpriseBean一般
38、不直接实现一般不直接实现javax.ejb.EnterpriseBean接口,而接口,而是实现相应的是实现相应的Bean类型的接口类型的接口消息驱动消息驱动EJB构件没有本地接口和远程接口构件没有本地接口和远程接口EJB构件构件EJB构件运行在构件运行在EJB容器中,容器中,EJB容器为容器为EJB构件提供构件提供事务管理事务管理、持久性持久性、安全性安全性和和并发控制并发控制等系统服务。等系统服务。当当EJB构件被装入到容器中时,需要向容器构件被装入到容器中时,需要向容器说明说明EJB构件将如何部署到容器中去,以及构件将如何部署到容器中去,以及希望容器提供哪些服务。希望容器提供哪些服务。通过
39、一个通过一个XML格式的部署描述文件说明。格式的部署描述文件说明。部署描述文件部署描述文件 EJB基本信息基本信息:指明:指明EJB的名称、远程接口、的名称、远程接口、本地接口及本地接口及Bean类类EJB管理要求管理要求:指明:指明EJB容器应该如何管理容器应该如何管理BeanEJB持久性要求持久性要求:指明实体:指明实体Bean是由自己管是由自己管理持久性,还是由容器管理持久性理持久性,还是由容器管理持久性EJB事务处理要求事务处理要求:指明容器的安全策略:指明容器的安全策略J2EE构件构件 包括包括Java应用程序、应用程序、Applet、JSP、Servlet、EJB可以打包成模块(可
40、以打包成模块(module)并以)并以Java Archive(JAR)文件的形式发布)文件的形式发布一个模块通常包含了相关的构件、相关文件一个模块通常包含了相关的构件、相关文件和用来描述怎样部署构件的和用来描述怎样部署构件的部署描述文件部署描述文件(XML文件)。文件)。通过模块可以用一些相同构件来组装不同的通过模块可以用一些相同构件来组装不同的J2EE应用,实现了构件技术的目标应用,实现了构件技术的目标重用重用基于基于.NET平台的分布式构件技术平台的分布式构件技术 微软没有提出一整套标准,逐渐引入构件技术,可获微软没有提出一整套标准,逐渐引入构件技术,可获益于以前的成功技术,如益于以前的
41、成功技术,如Visual Basic控件、对象链控件、对象链接和嵌入(接和嵌入(OLE)、)、OLE数据库连接(数据库连接(ODBC)、)、ActiveX、微软事务服务器技术(、微软事务服务器技术(MTS)、)、Active Server Page(ASP)。)。COM(Component Object Model,组建对象模型),组建对象模型)是从是从Windows3.1中最初为支持复合文档而使用中最初为支持复合文档而使用OLE技术发展而来的,经历了技术发展而来的,经历了OLE2/COM、ActiveX、DCOM和和COM+等几个阶段。等几个阶段。COM 为代码的重用提供了一种为代码的重用提
42、供了一种模块化、面向对象的方式模块化、面向对象的方式定义了定义了定位和识别其他组件功能的标准方式定位和识别其他组件功能的标准方式,组件可,组件可用各种语言编写和使用用各种语言编写和使用是微软平台上所有构件的是微软平台上所有构件的基石基石但是。但是。COM组件组件不容易编写不容易编写提供的功能提供的功能取决于编写所用的语言取决于编写所用的语言很难部署很难部署COM服务器组件的开发人员必须服务器组件的开发人员必须确保组件的新版本确保组件的新版本与旧版本兼容与旧版本兼容,但有时新旧版本不兼容,被称为,但有时新旧版本不兼容,被称为“DLL Hell”.NET框架框架 NET框架和框架和NET组件可以避
43、开组件可以避开COM设计的复杂设计的复杂性,使程序员更容易得到组件化的体系结构性,使程序员更容易得到组件化的体系结构是用于构建和运行下一代是用于构建和运行下一代Internet应用程序和应用程序和XML Web服务的平台服务的平台提供了一个高效并标准的环境,用于将现有资提供了一个高效并标准的环境,用于将现有资源与下一代应用程序和服务进行集成,以便灵源与下一代应用程序和服务进行集成,以便灵活地解决企业级应用程序部署和操作的难题。活地解决企业级应用程序部署和操作的难题。.NET框架的体系结构框架的体系结构 通用语言运行时(通用语言运行时(Common Language RuntimeCommon
44、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 .NET框架框架 主要包括公共语言运行时(主要包括公共语言运行时(CLR)和)和.NET基类基类库(库(FCL)在开发技术方面,提供了全新的数据库访问技在开发技术方面,提供了全新的数据库访问技术术ADO.NET、Web应用开发技术应用开发技术
45、ASP.NET和和Windows编程技术编程技术Windows Forms在开发语言方面,提供了对在开发语言方面,提供了对VB、C+、C#等等多种语言的支持多种语言的支持Visual Studio.NET为为.NET框架集成了大多数框架集成了大多数工具工具公共语言运行时公共语言运行时 位于操作系统之上,位于操作系统之上,.NET框架的最低一层,是框架的最低一层,是框架的基础框架的基础为宿主托管应用程序提供虚拟环境为宿主托管应用程序提供虚拟环境提供更多的功能和特性提供更多的功能和特性统一和简化的编程模型,使用户不必迷惑于统一和简化的编程模型,使用户不必迷惑于Win32 API和和COM,避免了,
46、避免了DLL版本和更新问题,简化了版本和更新问题,简化了应用程序的发布和升级应用程序的发布和升级多种语言之间的交互多种语言之间的交互自动的内存和资源管理自动的内存和资源管理公共语言运行时公共语言运行时基于基于CLR的代码称为的代码称为托管代码托管代码(Managed Code)当运行托管代码时,通过针对公共语言运行时的编译当运行托管代码时,通过针对公共语言运行时的编译器生成器生成微软中间语言微软中间语言(Microsoft Intermediate Language, MSIL),同时生成所需的),同时生成所需的元数据元数据,在代,在代码运行时再使用即时编译器(码运行时再使用即时编译器(Jus
47、t in Time Compiler)生成相应的)生成相应的机器代码机器代码来执行来执行大部分情况下,代码只在第一次被调用时被即时编译,大部分情况下,代码只在第一次被调用时被即时编译,其后便被缓存在内存中以便下次执行时没有延迟。未其后便被缓存在内存中以便下次执行时没有延迟。未调用的代码决不会被即时编译。调用的代码决不会被即时编译。即时编译会影响系统性能,但是即时编译器能优化所即时编译会影响系统性能,但是即时编译器能优化所产生的本机代码,以适应它所运行的主机处理器,因产生的本机代码,以适应它所运行的主机处理器,因此即时编译器运行效率优于普通代码。此即时编译器运行效率优于普通代码。托管环境中运行代
48、码的好处托管环境中运行代码的好处 即时编译器将通用中间语言指令转换为本机代码,扮即时编译器将通用中间语言指令转换为本机代码,扮演了代码验证的角色,可以确保代码是类型安全的,演了代码验证的角色,可以确保代码是类型安全的,避免了不同组件之间可能存在的类型不匹配的问题避免了不同组件之间可能存在的类型不匹配的问题托管代码占用的资源可以被回收。托管代码占用的资源可以被回收。CLR包含一个复杂包含一个复杂的垃圾回收器,垃圾回收器自动跟踪代码创建的对象的垃圾回收器,垃圾回收器自动跟踪代码创建的对象的应用,当别的进程需要使用对象占用的内存时,它的应用,当别的进程需要使用对象占用的内存时,它可销毁这些对象。可销
49、毁这些对象。CLR负责处理对象的内存布局、管理对象的应用、自负责处理对象的内存布局、管理对象的应用、自动垃圾收集,从根本上解决了内存泄露和无效内存应动垃圾收集,从根本上解决了内存泄露和无效内存应用的问题,大大减轻了开发人员的负担,提高程序的用的问题,大大减轻了开发人员的负担,提高程序的健壮性。健壮性。.NET基类库基类库 系统框架服务系统框架服务一套在标准语言库中使用的基本类库,如集合、输一套在标准语言库中使用的基本类库,如集合、输入入/输出、字符串及数据类。输出、字符串及数据类。提供了访问操作系统和其他服务的类,如网络、线提供了访问操作系统和其他服务的类,如网络、线程、全球化和加密的类程、全
50、球化和加密的类包括数据访问类库及开发工具,如调试和剖析服务包括数据访问类库及开发工具,如调试和剖析服务使用的类使用的类ADO.NET组件组件为基于网络的可扩展应用程序和服务提供了为基于网络的可扩展应用程序和服务提供了数据访数据访问服务问服务.NET基类库基类库 XML数据组件数据组件提供了对提供了对XML数据的操作支持数据的操作支持支持支持ADO.NET数据与数据与XML数据之间的转换数据之间的转换Windows表单组件表单组件提供了强大的提供了强大的Windows应用程序模型和丰富的应用程序模型和丰富的Windows用户接口,包括传统的用户接口,包括传统的ActiveX控件和控件和Windo
51、ws XP界面,如透明的、分层的、浮动的窗界面,如透明的、分层的、浮动的窗口等口等.NET基类库基类库 ASP.NET应用服务应用服务用于处理基于用于处理基于HTTP的请求,采用编译方式大大提的请求,采用编译方式大大提高了它的性能高了它的性能使用基于构件的使用基于构件的Microsoft.NET框架配置模板框架配置模板支持应用程序的实时更新,提供高速缓存服务支持应用程序的实时更新,提供高速缓存服务ASP.NET Web表单表单支持传统的将支持传统的将HTML内容和脚本代码混合的内容和脚本代码混合的ASP方方式式提供了一种将应用程序代码和用户接口内容分离的、提供了一种将应用程序代码和用户接口内容
52、分离的、更加结构化的方法(更加结构化的方法(Code Behind方法)方法).NET基类库基类库 Web服务服务ASP.NET应用服务体系架构为使用应用服务体系架构为使用ASP.NET建立建立Web服务提供了一个高级的可编程的模型服务提供了一个高级的可编程的模型使用这个模型,开发人员不需要理解使用这个模型,开发人员不需要理解HTTP、SOAP或其他网络服务规范或其他网络服务规范面向服务的体系结构面向服务的体系结构 过去过去40年里,软件体系结构用于处理日益增长的软件年里,软件体系结构用于处理日益增长的软件复杂性,但是复杂性仍在继续增加,传统的体系结构复杂性,但是复杂性仍在继续增加,传统的体系
53、结构好像已经达到了它们处理此类问题的极限。好像已经达到了它们处理此类问题的极限。为减少异构性、互操作性和不断变化的需求所带来的为减少异构性、互操作性和不断变化的需求所带来的问题,需要一种新的、不受技术约束的软件体系结构,问题,需要一种新的、不受技术约束的软件体系结构,它应该具有它应该具有松散耦合松散耦合、位置透明位置透明、协议独立协议独立的特征。的特征。面向服务的体系结构(面向服务的体系结构(Service-Oriented Architecture, SOA)可解决上述问题)可解决上述问题SOA 继面向对象、基于构件的软件架构方法之后被提出的继面向对象、基于构件的软件架构方法之后被提出的一种
54、新的体系结构一种新的体系结构来源于早期的基于构件的分布式计算方式,用以解决来源于早期的基于构件的分布式计算方式,用以解决复杂环境下的分布式应用,即解决复杂环境下的分布式应用,即解决“异构集成异构集成”和和“系统演化系统演化”两个问题两个问题所有功能都定义为独立的服务,这些服务带有定义明所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程来形成业务流程服务、对象和构件之间的关系服务、对象和构件之间的关系 服务层服务层构件层构件层面向服务面向服务的设计的设计面向构件面向构件的设计的设计面向对象面向对
55、象的设计的设计类层类层基于基于SOASOA的的系统可使用系统可使用构件组装服构件组装服务,也可使务,也可使用面向对象用面向对象的设计来构的设计来构建单个服务建单个服务SOA 服务是封装成用于业务流程的可重用构件的应用程序服务是封装成用于业务流程的可重用构件的应用程序功能功能服务是细粒度的,也可以是粗粒度的,取决于业务流服务是细粒度的,也可以是粗粒度的,取决于业务流程程每个服务都有良好的接口,通过该接口就可以发现、每个服务都有良好的接口,通过该接口就可以发现、发布和调用服务。发布和调用服务。企业可以选择将自己的服务向外发布到业务合作伙伴,企业可以选择将自己的服务向外发布到业务合作伙伴,也可以选择
56、在组织内部发布服务。也可以选择在组织内部发布服务。服务还可以由其他服务组合而成服务还可以由其他服务组合而成SOA中的角色中的角色 服务消费者服务消费者(Service Consumer):是一个应用程):是一个应用程序、一个软件模块或需要一个服务的另一个服务。它序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心的服务的查询,通过传输绑定服务,发起对注册中心的服务的查询,通过传输绑定服务,并且执行服务功能。服务消费者根据接口契约来执行并且执行服务功能。服务消费者根据接口契约来执行服务。服务。服务提供者服务提供者(Service Provider):是一个可通过网):是一个可通过网络寻址
57、的实体,它接受和执行来自消费者的请求。它络寻址的实体,它接受和执行来自消费者的请求。它将自己的服务和接口契约发布到服务注册中心,以便将自己的服务和接口契约发布到服务注册中心,以便服务消费者可以发现和访问该服务。服务消费者可以发现和访问该服务。SOA中的角色中的角色 服务注册中心服务注册中心(Service Registry):是服务发现的):是服务发现的支持者,包含一个可用服务的存储库,并允许感兴趣支持者,包含一个可用服务的存储库,并允许感兴趣的服务消费者查找服务提供者接口。的服务消费者查找服务提供者接口。SOA中各个角色的协作中各个角色的协作 服务注服务注册册服务消费服务消费者者服务提供服务
58、提供者者发现发现发布发布绑定与调用绑定与调用服务描述服务描述服务服务服务描述服务描述SOA中的操作中的操作 发布:为了使服务可访问,需要发布服务描述以使服发布:为了使服务可访问,需要发布服务描述以使服务消费者可以发现和调用它务消费者可以发现和调用它发现:服务请求者定位服务,方法是查询服务注册中发现:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务心来找到满足其标准的服务绑定和调用:在检索完服务描述之后,服务消费者继绑定和调用:在检索完服务描述之后,服务消费者继续根据服务描述中的信息来调用服务续根据服务描述中的信息来调用服务SOA中的构件中的构件 服务:可以通过已发布接口使用服务
59、,并且允许服务服务:可以通过已发布接口使用服务,并且允许服务消费者调用服务消费者调用服务服务描述:服务描述指定服务消费者与服务提供者交服务描述:服务描述指定服务消费者与服务提供者交互的方式。它指定来自服务的请求和响应的格式。服互的方式。它指定来自服务的请求和响应的格式。服务描述可以指定一组前提条件、后置条件和务描述可以指定一组前提条件、后置条件和/或服务或服务质量(质量(QoS)级别)级别SOA的特征的特征 动态服务发现动态服务发现服务接口契约服务接口契约服务是自包含和模块化的服务是自包含和模块化的服务支持互操作性服务支持互操作性服务是松散耦合的服务是松散耦合的服务是位置透明的服务是位置透明的
60、服务是由组件组成的组合模块服务是由组件组成的组合模块基于基于Web服务的服务的SOA实现实现Web服务建立在开放标准和独立于平台的协议的基础服务建立在开放标准和独立于平台的协议的基础之上,是包括之上,是包括XML、SOAP、WSDL和和UDDI在内的在内的技术集合。技术集合。Web服务通过服务通过HTTP使用使用SOAP(Simple Object Access Protocol ),以便在服务提供者和消费者之,以便在服务提供者和消费者之间进行通信。间进行通信。通过通过WSDL(Web Service Definition Language)定义的接口公布服务,定义的接口公布服务,WSDL的语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢铁厂建设钢筋工施工合同
- 高速公路服务区小青瓦施工协议
- 高铁绿化带改造承包合同
- 酒店建设硬装合同
- 垃圾处理供货施工合同范本
- 股份受让协议三篇
- 股票交易所行纪合同(2篇)
- 外场试验保密协议书
- 公司个人互赔协议书
- 土地出让合同中关于纳税额的约定
- DB32∕T 3690-2019 600MPa热处理、热轧带肋钢筋混凝土结构技术规程
- 风湿病概述及中国风湿病发展情况ppt
- 2021年食品安全监督抽检培训完整版PPT课件
- 外研版(三起)小学英语四年级上册教案(全册)
- 部编二年级下册语文词语表带拼音
- 检测大纲-整车检验、过程检验、零部件入厂检验、关键部位检验、成品入库检验
- 托辊技术规格书
- 踝关节扭伤.ppt
- CRH2型动车组一级检修作业办法081222
- 研究生英语议论文范文模板
- 燃气安全知识测试题(含答案)
评论
0/150
提交评论