软件设计与体系结构秦航11_第1页
软件设计与体系结构秦航11_第2页
软件设计与体系结构秦航11_第3页
软件设计与体系结构秦航11_第4页
软件设计与体系结构秦航11_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、清华大学出版社1清华大学出版社2内容提要内容提要p 11.1EJB分步构件框架分步构件框架 11.1.1 EJB技术技术 11.1.2 EJB的规范介绍的规范介绍 11.1.3 EJB的体系结构的体系结构11.2 DCOM分布构件框架分布构件框架l11.2.1 DCOM的使用的使用l11.2.2 DCOM的特点的特点l11.2.3 DCOM的灵活配置与扩展机制的灵活配置与扩展机制 11.2.4 在应用间共享连接管理在应用间共享连接管理 11.2.5 DCOM的安全性设置的安全性设置清华大学出版社311.3COBRA分布构件框架分布构件框架 11.3.1 COBRA基本原理基本原理 11.3.2

2、 CORBA体系结构体系结构 11.3.3 CORBA规范规范 11.3.4 CORBA产品概述产品概述 11.3.5 CORBA为我们带来什么为我们带来什么 11.3.6 未解决的问题未解决的问题11.4本章小结本章小结 在互联网时代,分布式应用越来越普遍与重要,如何高在互联网时代,分布式应用越来越普遍与重要,如何高效地开发这类系统成为我们必须应对的课题。为了将构件效地开发这类系统成为我们必须应对的课题。为了将构件思想应用于分布式系统的开发,业界提出了一些基于分布思想应用于分布式系统的开发,业界提出了一些基于分布构件的解决方案。按照这些方案,整个分布式系统的体系构件的解决方案。按照这些方案,

3、整个分布式系统的体系结构大致如图结构大致如图11-1所示。所示。图图11-1 基于分布构件的系统体系结构基于分布构件的系统体系结构 分布构件与分布构件框架相互之间紧密配合,分布构件与分布构件框架相互之间紧密配合,在上述体系结构中占据主体地位。描述了分布构在上述体系结构中占据主体地位。描述了分布构件框架,实际上也就说清楚了它与分布构件之间件框架,实际上也就说清楚了它与分布构件之间的接口,说清楚了分布构件的外在特征。的接口,说清楚了分布构件的外在特征。 对于上述体系结构,工业界有几个主要的实现对于上述体系结构,工业界有几个主要的实现方案,它们分别是由方案,它们分别是由SUN公司(已被公司(已被Or

4、acle收收购)主导提出的购)主导提出的EJB分布构件框架、由微软公司分布构件框架、由微软公司提出的提出的DCOM分布构件框架和由分布构件框架和由OMG组织提出组织提出的的CORBA分布构件框架,本章将对它们分别进分布构件框架,本章将对它们分别进行系统介绍。行系统介绍。11.1 EJB分布构件框架分布构件框架 11.1.1 EJB技术技术 EJB规范是规范是SUN公司于公司于1997年年12月发布的月发布的JavaBean构件模型。一个构件模型。一个EJB是特定的在服务是特定的在服务器上运行的器上运行的JavaBean,并且,并且EJB能在可视化的能在可视化的工具下装配成新的应用。工具下装配成

5、新的应用。EJB应用程序只能用应用程序只能用Java语言编写,且必须使用语言编写,且必须使用EJB API。编写良。编写良好的好的EJB应用程序无须修改任何源代码就可以在应用程序无须修改任何源代码就可以在J2EE认证的应用服务器之间移植和互操作。认证的应用服务器之间移植和互操作。 EJB是一种基于构件的开发模型,它是是一种基于构件的开发模型,它是Java服务器端服务框架的规范。服务器端服务框架的规范。EJB详细地定义了一详细地定义了一个可以方便部署个可以方便部署Java构件的服务框架模型,用于构件的服务框架模型,用于创建可伸缩、多层次、跨平台、分布式的应用,创建可伸缩、多层次、跨平台、分布式的

6、应用,并可创建具有动态扩展性的服务器端的应用。并可创建具有动态扩展性的服务器端的应用。 清华大学出版社711.1.2EJB的规范介绍的规范介绍图图11-2 EJB容器示意图容器示意图清华大学出版社8p EJB编程模块向编程模块向bean开发人员和开发人员和EJB服务器供应服务器供应商提供了一组契约,这组契约,约定了开发的公共平台。商提供了一组契约,这组契约,约定了开发的公共平台。这些契约的目标是在支持一组丰富功能性的同时能够确这些契约的目标是在支持一组丰富功能性的同时能够确保供应商之间的可移植性。保供应商之间的可移植性。p 容器不允许客户机应用程序直接访问容器不允许客户机应用程序直接访问Ent

7、erprise Bean。当客户机应用程序调用。当客户机应用程序调用Enterprise Bean上上的远程方法时,容器首先拦截调用,以确保持续、事务的远程方法时,容器首先拦截调用,以确保持续、事务和安全性都正确应用于客户机对和安全性都正确应用于客户机对bean执行的每一个操执行的每一个操作。容器自动为作。容器自动为bean管理安全性、事务和持续,于是管理安全性、事务和持续,于是bean开发人员不必将这种类型的逻辑写入开发人员不必将这种类型的逻辑写入bean代码本代码本身中。身中。Enterprise Bean开发人员可以将精力集中于开发人员可以将精力集中于封装商业规则,而容器处理其他一切。封

8、装商业规则,而容器处理其他一切。清华大学出版社9p Enterprise Bean依赖容器来获取它的依赖容器来获取它的需求。如果需求。如果Enterprise Bean需要访问需要访问JDBC连接或另一个连接或另一个Enterprise Bean,那么它需要,那么它需要利用容器来完成此项操作。如果利用容器来完成此项操作。如果Enterprise Bean需要访问调用者的身份、获取它自身的引需要访问调用者的身份、获取它自身的引用或访问特性,那么它需要利用容器来完成这些用或访问特性,那么它需要利用容器来完成这些操作。操作。Enterprise Bean通过以下三种机制之通过以下三种机制之一与容器交

9、互:一与容器交互:p (1)回调方法、)回调方法、p (2)EJBContext接口或接口或p (3)JNDI清华大学出版社1011.1.3EJB的体系结构的体系结构p1. EJB的软构件模型的软构件模型p 软构件模型的思想,是创建可重用的构件并将其组合软构件模型的思想,是创建可重用的构件并将其组合到容器中,以得到新的应用系统。构件模型定义了构件的到容器中,以得到新的应用系统。构件模型定义了构件的基本体系结构、构件界面的结构与其他构件及容器相互作基本体系结构、构件界面的结构与其他构件及容器相互作用的机制等。利用构件模型规范说明,构件开发人员开发用的机制等。利用构件模型规范说明,构件开发人员开发

10、那些实现了应用系统逻辑的构件,而应用系统开发人员则那些实现了应用系统逻辑的构件,而应用系统开发人员则将这些预先开发好的构件组合成应用系统;这些应用系统将这些预先开发好的构件组合成应用系统;这些应用系统也可以作为新的构件。软构件模型思想已经在软件开发界也可以作为新的构件。软构件模型思想已经在软件开发界迅速流行,因为它可以达到以下这些目的:重用、高层开迅速流行,因为它可以达到以下这些目的:重用、高层开发、通过工具进行自动化开发、简化开发过程等。发、通过工具进行自动化开发、简化开发过程等。JavaBeans、EJB、COM/DCOM等都是软构件模型等都是软构件模型的例子。的例子。清华大学出版社111

11、4.2云计算服务模型云计算服务模型有两种类型的软构件模型:有两种类型的软构件模型:l客户端构件模型l服务器端构件模型。 图图11-3 EJB构建模型构建模型清华大学出版社13 EJB构件与构件与Container之间有统一的之间有统一的界面,每一个界面,每一个EJB构件都可以运行在所有构件都可以运行在所有的运行环境中。在的运行环境中。在EJB构件模型中有两种构件模型中有两种类型的类型的bean:session bean和和entity bean。这两种类型的。这两种类型的EJB代表了两种不代表了两种不同类型的事务逻辑的抽象。同类型的事务逻辑的抽象。3.EJB的体系结构的体系结构 EJB的上层分

12、布式应用程序是基于对象组件模型的,的上层分布式应用程序是基于对象组件模型的,低层的事务服务用了低层的事务服务用了API技术。技术。EJB技术简化了用技术简化了用Java语言编写的企业应用系统的开发、配置与执行。语言编写的企业应用系统的开发、配置与执行。EJB的的体系结构的规范由体系结构的规范由Sun Microsystems公司制定。公司制定。EJB技术定义了一组可重用的组件:技术定义了一组可重用的组件:Enterprise Bean。你可以利用这些组件像搭积木一样地建立你的。你可以利用这些组件像搭积木一样地建立你的分布式应用程序。当你把代码写好之后,这些组件就被分布式应用程序。当你把代码写好

13、之后,这些组件就被组合到特定的文件中去。每个文件有一个或多个组合到特定的文件中去。每个文件有一个或多个Enterprise Beans,再加上一些配置参数。最后,这,再加上一些配置参数。最后,这些些Enterprise Beans被配置到一个装有被配置到一个装有EJB容器的平容器的平台上。客户能够通过这些台上。客户能够通过这些beans的的home接口定位到某接口定位到某个个beans,并产生这个,并产生这个bean的一个实例。这样,客户的一个实例。这样,客户就能够调用就能够调用Beans的应用方法与远程接口。的应用方法与远程接口。清华大学出版社15p 通常来说,通常来说,EJB容器掌握了以下

14、容器掌握了以下的系统级分配:的系统级分配:p (1)Security-配置描述器(配置描述器(The Deployment descriptor)。)。 p ( 2 )Remote Connectivity-容器。容器。 p ( 3 )Life Cycle management-客户。客户。 p ( 4 )Transaction management配配置描述器。置描述器。 清华大学出版社16p这六个角色分别是这六个角色分别是:p (1)Enterprise Bean Provider:EJB组件开发者。组件开发者。p (2)Application Assembler:应用组:应用组合者。合者

15、。p (3)Deployer:部署者。:部署者。p (4)EJB Server Provider:EJB服务服务器提供者。器提供者。p (5)EJB Container Provider:EJB容器提供者。容器提供者。p (6)System Administrator:系统管:系统管理员。理员。4.EJB结构中的角色结构中的角色清华大学出版社1711.2DCOM分布构件框架分布构件框架p DCOM是一系列微软的概念和与程是一系列微软的概念和与程序接口,利用这个接口,客户端程序对象序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服能够请求来自网络中另一台计算机上的服务器程序

16、对象;务器程序对象;DCOM基于组件对象模型基于组件对象模型COM,COM提供了一套允许同一台计算提供了一套允许同一台计算机上的客户端与服务器之间进行通信的接机上的客户端与服务器之间进行通信的接口。口。清华大学出版社1811.2.1DCOM的使用的使用p DCOM是是COM的扩展,它支持不同的两台的扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是局域网、广域网、还是Internet上。借助上。借助DCOM,应用程序将能够任意进行空间分布。,应用程序将能够任意进行空间分布。使用使用DCOM,应用程序就可以在位置上达到分

17、,应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。布性,从而满足客户和应用的需求。p p 在提供一系列分布式范围方面,在提供一系列分布式范围方面,DCOM通通常与通用对象请求代理体系结构(常与通用对象请求代理体系结构(CORBA)相)相提并论。提并论。DCOM是微软给程序和数据对象传输是微软给程序和数据对象传输的网络范围的环境,的网络范围的环境,CORBA则是在对象管理组则是在对象管理组织(织(OMG)的帮助下,由信息技术行业的其他)的帮助下,由信息技术行业的其他商家提供赞助的。商家提供赞助的。清华大学出版社1911.2.2DCOM的特点的特点p(1)组件和复用)组件和复用p(2)

18、位置独立性)位置独立性p(3)语言无关性)语言无关性p(4)连接管理)连接管理p(5)可扩展性)可扩展性p(6)对称的多进程处理()对称的多进程处理(SMP)清华大学出版社2011.2.3DCOM的灵活配置与扩展机制的灵活配置与扩展机制p 当负载增加时,即使买一台最快的多当负载增加时,即使买一台最快的多处理机,它也有可能不能适应需求。处理机,它也有可能不能适应需求。DCOM的位置独立性提供了一个简单而低的位置独立性提供了一个简单而低成本的方法来提高扩展性,那就是将分布成本的方法来提高扩展性,那就是将分布性的组件放到其他的机器上。性的组件放到其他的机器上。p (1)一般组件的配置)一般组件的配置

19、p (2)关键组件的配置)关键组件的配置p (3)DCOM的扩展机制的扩展机制清华大学出版社2111.2.4在应用间共享连接管理在应用间共享连接管理p DCOM对每台机器使用一个对每台机器使用一个keep-alive消息。消息。即使一台客户机使用了某一台服务器上的即使一台客户机使用了某一台服务器上的100个组个组件,仅仅只要一条件,仅仅只要一条ping消息就能使所有这些客户连消息就能使所有这些客户连接保持活跃状态。为了将所有的接保持活跃状态。为了将所有的ping消息组合起来,消息组合起来,DCOM使用使用delta pinging机制来将这些机制来将这些ping消消息的数量最小化。对于这息的数

20、量最小化。对于这100个连接,它并不是发个连接,它并不是发送送100个客户的标识符,而是创造了一个可变标识个客户的标识符,而是创造了一个可变标识符来重复代表这符来重复代表这100个引用。当引用集改变时,仅个引用。当引用集改变时,仅仅只是两套引用的相交部分被互相交换。最终,仅只是两套引用的相交部分被互相交换。最终,DCOM将所有将所有ping消息转化为正常消息。对于服务消息转化为正常消息。对于服务器来说,当某台客户机完全是空闲的时候,它才定器来说,当某台客户机完全是空闲的时候,它才定时发送时发送ping消息(每隔两分钟一次)。消息(每隔两分钟一次)。清华大学出版社22p1. 优化网络的来回旋程优

21、化网络的来回旋程p2. 安全性安全性清华大学出版社2311.2.5DCOM的安全性设置的安全性设置p DCOM无须在客户端和组件上进行任何专门为安全无须在客户端和组件上进行任何专门为安全性而做的编码和设计工作,就可以为分布式应用系统提供性而做的编码和设计工作,就可以为分布式应用系统提供安全性保障。就像安全性保障。就像DCOM编程模型屏蔽了组件的位置一编程模型屏蔽了组件的位置一样,它也屏蔽了组件的安全性需求。在无须考虑安全性的样,它也屏蔽了组件的安全性需求。在无须考虑安全性的单机环境下工作的二进制代码能够在分布式环境下以一种单机环境下工作的二进制代码能够在分布式环境下以一种安全的方式工作。安全的

22、方式工作。DCOM通过让开发者与管理员为每个通过让开发者与管理员为每个组件设置安全性环境而使安全性透明。就像组件设置安全性环境而使安全性透明。就像Windows NT允许管理员为文件和目录设置访问控制列表一样,允许管理员为文件和目录设置访问控制列表一样,DCOM将组件的访问控制列表存储起来。这些列表清楚将组件的访问控制列表存储起来。这些列表清楚地指出了哪些用户或用户组有权访问某一类的组件。使用地指出了哪些用户或用户组有权访问某一类的组件。使用DCOM的设置工具、或者在编程中使用的设置工具、或者在编程中使用Windows NT的的registry,以及,以及Win32的安全函数可以很简单地设置这

23、的安全函数可以很简单地设置这些列表。些列表。清华大学出版社24p1. 对安全性的编程控制对安全性的编程控制p2. Internet上的安全性上的安全性p3. 负载平衡负载平衡p (1)静态负载平衡)静态负载平衡p (2)动态负载平衡)动态负载平衡p4. 容错性容错性清华大学出版社2511.3COBRA分布构件框架分布构件框架p11.3.1 COBRA基本原理基本原理p 对象管理组织对象管理组织OMG(Object Management Group)负责制订与发布)负责制订与发布CORBA规范。由规范。由OMG发布的对象管理体系结发布的对象管理体系结构构OMA(Object Management

24、 Architecture)是包括)是包括CORBA规范在内的所规范在内的所有有OMG规范的概念模型基础。规范的概念模型基础。清华大学出版社26p1. 对象管理组织对象管理组织p2. 对象管理体系结构对象管理体系结构p3. 对象请求代理对象请求代理p4. 对象服务对象服务p5. 公共设施公共设施p6. 领域接口领域接口p7. 应用程序接口应用程序接口清华大学出版社2711.3.2CORBA体系结构体系结构p CORBA建立在建立在OMG的对象模型基础之上,的对象模型基础之上,主要有三个关键部分:接口定义语言主要有三个关键部分:接口定义语言IDL、对象、对象请求代理请求代理ORB和标准通信协议和

25、标准通信协议IIOP。p 1.OMG的对象模型的对象模型p 2.对象请求代理的结构对象请求代理的结构p 3.对象接口定义对象接口定义p 4.客户程序发送请求客户程序发送请求p 5.对象实现接收请求对象实现接收请求p 6.对象的可互操作性对象的可互操作性p 7.ORB域和桥接域和桥接p 8.GIOP、IIOP与与ESIOPp 9.CORBA对可互操作性的支持对可互操作性的支持清华大学出版社2811.3.3CORBA规范规范p OMG本身不生产任何软件或实现任本身不生产任何软件或实现任何规范,它只是将何规范,它只是将OMG成员的信息需求成员的信息需求(RFI)与建议需求()与建议需求(RFP)汇集

26、为规范。)汇集为规范。CORBA规范是一套开放式的规范,规范是一套开放式的规范, p OMG的成员或非成员公司均可免费的成员或非成员公司均可免费实现符合实现符合CORBA规范的规范的ORB产品。产品。清华大学出版社29p(1)1991年年12月正式发布月正式发布CORBA 1.1p(2)1995年年7月正式发布月正式发布CORBA 2.0p(3)2010年正式发布年正式发布CORBA 3.0清华大学出版社3011.3.4CORBA产品概述产品概述p 尽管尽管OMG不断改进与完善不断改进与完善CORBA规范,但每一版本保持了较好的向后兼容规范,但每一版本保持了较好的向后兼容性,因而性,因而COR

27、BA规范相当成熟与稳定,规范相当成熟与稳定,并且拥有大量产品,在企业计算与因特网并且拥有大量产品,在企业计算与因特网计算领域拥有庞大的市场。基于计算领域拥有庞大的市场。基于CORBA的软件适用于因特网应用与企业计算,特的软件适用于因特网应用与企业计算,特殊版本的殊版本的CORBA还可运行在实时系统、还可运行在实时系统、嵌入式系统与容错系统。嵌入式系统与容错系统。清华大学出版社311.商品化商品化CORBA产品产品p(1)Orbixp(2)VisiBrokerp(3)WebLogicp(4)Component Brokerp(5)其他)其他清华大学出版社32部分商品化部分商品化CORBA产品及其

28、站点产品及其站点pIONA Orbixhttp:/Inprise VisiBrokerhttp:/BEA Sysetms WebLogichttp:/IBM Component Brokerhttp:/Critical Path InJoin BROKERhttp:/GemStone GemORBhttp:/Objective Interface Systems ORBexpresshttp:/Bionic Buffalo Tatankahttp:/Silverstream Jbrokerhttp:/Vertel e*ORBhttp:/清华大学出版社332.免费免费CORBA产品产品p(1)O

29、mniORBp(2)TAOp(3)ORBit清华大学出版社34部分免费部分免费CORBA产品及其站点产品及其站点pAT&T Laboratory omniORBhttp:/Washington University TAO/schmidtObject-Oriented Concepts ORBacushttp:/ObjectSpace Voyager ORB Prohttp:/RHAD Labs ORBithttp:/ Objects Group JavaORBhttp:/MICOADABrokerhttp

30、:/清华大学出版社3511.3.5CORBA为我们带来什么为我们带来什么p OMG致力于解决分布式应用程序的复杂致力于解决分布式应用程序的复杂性与高成本问题。性与高成本问题。CORBA顺应软件技术发展的顺应软件技术发展的潮流,成功地融合了两种技术:一是基于消息传潮流,成功地融合了两种技术:一是基于消息传递的分布式客户机递的分布式客户机/服务器技术,一是面向对象服务器技术,一是面向对象软件开发技术。软件开发技术。CORBA采用面向对象方法创建采用面向对象方法创建在应用程序之间可重用与可共享的软件组件,每在应用程序之间可重用与可共享的软件组件,每一个对象对外隐藏了它内部工作的细节,并提供一个对象对外隐藏了它内部工作的细节,并提供一个定义良好的外部接口,从而降低应用程序的一个定义良好的外部接口,从而降低应用程序的复杂性。一旦实现并测试一个对象后,它可以在复杂性。一旦实现并测试一个对象后,它可以在新应用环境中多次被重用,因而减少了

温馨提示

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

评论

0/150

提交评论