BeijingUniversityofPostsandTelecommunicationsPage1分布计算环境课程总结BeijingUniversityofPostsandTelecommunicationsPage2主要内容t第一章绪论t第二章面向对象的分布计算环境t第三章面向构件的分布计算环境t第四章面向Web的分布计算环境t第五章其他分布计算环境t第六章代理技术BeijingUniversityofPostsandTelecommunicationsPage3绪论t分布式系统n在网络计算平台上开发、部署、管理和维护以资源共享和协同工作为主要应用目标的分布式应用系统t分布计算n简单地说,分布式计算是两个或多个软件共享信息、协同工作。这些软件既可以在同一台计算机上运行,也可在通过网络连起来的几台不同机器上运行。n分布计算技术是构成分布式系统的基础BeijingUniversityofPostsandTelecommunicationsPage4分布计算环境t分布计算环境:n分布计算环境提供了网络环境下不同软、硬件平台资源共享和互操作的有效手段,使得分布式计算可以比较方便地得以实现,从而分布式系统可以比较方便地得以构造è方便分布式系统的构建:设计、实现、部署、维护è分布式计算环境本身实际上也是分布式系统BeijingUniversityofPostsandTelecommunicationsPage5实现分布计算环境的技术路线t现实的技术路线(90年代工业界普遍遵守的路线)t在网络计算平台上部署分布计算环境t提供开发工具和公共服务t支持分布式应用t资源共享和协同工作DistributedComputingEnvironmentBeijingUniversityofPostsandTelecommunicationsPage6分布计算环境的技术基础t分布式计算环境构造技术基础n分布在网络上的程序之间的互操作技术n目录技术、负载平衡技术、容错技术、事务管理技术、安全技术……t面向对象的分布计算环境n简化面向对象的分布式系统的设计与实现t面向构件的分布计算环境n简化基于构件的分布式系统的设计与实现t面向……的分布计算环境BeijingUniversityofPostsandTelecommunicationsPage7主要内容t第一章绪论t第二章面向对象的分布计算环境t第三章面向构件的分布计算环境t第四章面向Web的分布计算环境t第五章其他分布计算环境t第六章代理技术BeijingUniversityofPostsandTelecommunicationsPage8面向对象的分布计算环境t分布式系统中的面向对象技术t分布对封装性、继承性和对象引用的影响t开放分布式处理ODPtODP是为了解决什么问题而提出来的?t主要内容:视点、透明性、功能tCORBA技术tOMA体系结构、IDL、ORBt面向对象的远程方法调用是如何实现的?BeijingUniversityofPostsandTelecommunicationsPage9OpenDistributedProcessingtISO和ITU-T的开放分布处理模型(ODP-RM)n为面向对象的分布式处理提供一个通用的体系结构框架,将开放式思想引入分布式处理,以解决异构系统间各种相关机制的一致性问题nODP-RM能够协调和指导不同应用领域的ODP标准的开发。即它是一种框架,在其上可实现不同的”分布计算环境”。BeijingUniversityofPostsandTelecommunicationsPage10ODP的主要内容t主要包含三部分:n视点:为清晰地描述复杂的系统,把对ODP系统的说明细化为五个视点(即从五个不同的角度来观察),以及用于表达这五个视点的语言。n透明性:开放式分布处理系统应该提供的八个透明性。n功能:定义开放式分布处理平台应该具有的功能。BeijingUniversityofPostsandTelecommunicationsPage11ODP的视点视点解决问题主要内容相关人员企业视点企业对信息系统的需求角色,方针,动作,活动企业管理者,用户,资源提供者信息视点信息、信息流和信息处理信息对象,不变方案,静态方案,动态方案信息分析员,系统分析员,信息工程师计算视点分布式应用的逻辑划分计算对象,计算接口,接口引用,操作,信号,流,联编,联编对象系统分析员,系统设计员工程视点支持应用的分布式基础设施基本工程对象,存根,联编对象,协议对象,核心,簇,容器,节点,拦截器,支撑对象操作系统设计者,通信系统设计者,系统设计者技术视点技术的获得和安装,实现、一致性。技术解决方案系统集成人员,系统提供商BeijingUniversityofPostsandTelecommunicationsPage12ODP的分布透明性tODP的分布透明性n访问透明性、位置透明性、重置透明性、持久透明性、迁移透明性、复制透明性、故障透明性、事务透明性BeijingUniversityofPostsandTelecommunicationsPage13ODP的通用功能tRM-ODP定义了用来支持RM-ODP平台的4组24种通用功能。灵活地利用这些功能可以近于无缝地实现ODP系统的目标。n管理功能n协调功能n仓库功能n安全功能BeijingUniversityofPostsandTelecommunicationsPage14CORBAtCommonObjectRequestBrokerArchitecture:OMG组织制定的一个工业规范,是一个体系结构和一组规范n定义了一系列API、通信协议、组件/服务信息模型,使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。t目的:在分布式环境下实现应用的集成,使基于对象的软件成员,在分布的、异构的环境下可重用、可移植、可互操作。t方法:提供一个框架,如果符合这一框架,就可以在主要的硬件平台和操作系统上建立一个异质的分布式应用。BeijingUniversityofPostsandTelecommunicationsPage15CORBA的OMAt对象管理体系结构OMA:描述了OMG规范所遵循的概念化的基础结构BeijingUniversityofPostsandTelecommunicationsPage16CORBA的IDLt仅定义接口,不定义实现t分隔“对象作什麽(WHAT)”与“如何做(HOW)”ORBCC++AdaIDLIDLIDLIDLIDLIDLClientSideObjectImplementationSideCOBOLCAdaC++SmalltalkJAVAIDLIDLIDLIDLIDLIDLORBCOBOLSmalltalkJAVABeijingUniversityofPostsandTelecommunicationsPage17CORBA的ORBt对象请求代理ORB(ObjectRequestBroker):定义异构环境下对象透明地发送请求和接收响应的基本机制。ORB为客户隐藏:n对象位置n对象实现方式n对象执行状态n对象通信机制t为什么在异构环境下能够透明地发送请求和接收响应?BeijingUniversityofPostsandTelecommunicationsPage18接口库ORB核客户机对象实现动态调用接口ORB接口对象适配器inargsOperation()outargs+returnvalusGIOP/IIOPNETWORK(服务器)实现库动态骨架接口静态IDL骨架静态IDL存根图3-3CORBAORB的体系结构存储允许ORB的定位和激活对象实现的信息,如Server支持的类、实例化对象、这些对象的ID等运行时信息。对象引用的生成、维护,方法调用、对象的激活与终止、对象定位等功能。•BOA:BasicObjectAdapter•POA:PortableObjectAdapterDII在Server方的对应。DSI从进入的消息找出调用的目标对象及相应的方法,并提供运行时的连接机制。允许动态地构造对象调用。客户机可推迟到运行时选择对象的实现接口和操作。静态IDL存根在Server侧的对应。由IDL编译程序自动生成。服务的静态接口。由IDL编译程序自动生成。在客户端,如同一本地调用,是远程SERVER对象的代理。访问某个对象实现所提供的服务的程序。根据其接口了解其逻辑结构,并通过调用掌握对象的行为所定义的IDL接口的真正实现。可用语言:C,C++,Java,Smalltalk,Ada…是ORB最关键的部分,负责请求的通信设施:•对象的定位•编组与解组•启动初始服务•屏蔽底层网络细节•提供接口库和其它的APIORB的组成对象的IDL接口定义的存储、分布和管理。客户对象可以在运行时查阅接口仓库的内容,获得对象实现的IDL接口信息,从而向对象实现发出请求。当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB会截取这个调用(通过客户Stub完成),因为客户和服务器可能在不同的网络、不同的操作系统上甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式(称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),并通过将参数Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向,Redirecting),服务器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。ORB内核提供的服务对象接口,同时为客户方和对象实现方所见,可直接为应用程序所使用。BeijingUniversityofPostsandTelecommunicationsPage19CORBA服务tCORBA服务:系统级的对象框架。这些服务扩展了基本的CORBA体系结构。CORBA服务代表了一组预先实现的,软件开发商通常需要的分布式对象,如:n命名服务n事务服务tOMG为每个服务定义了标准API。实现厂商提供支持这些API的具体产品,它们的实现方法可能不同,但接口是一致的。用户购买、部署需要的服务产品。在程序中使用时,首先获取服务中相应对象的IOR,然后调用它的操作即可。BeijingUniversityofPostsandTelecommunicationsPage20基于CORBA的软件开发IDL定义文件IDLCompilerCLIENTIDLSTUBSERVERIDLSKELETONJavaCompilerC++CompilerCLIENT应用CODESERVER实现代码CLIENTPROGRAMSERVERPROGRAMCORBARUN-TIMELIBRARIES接口库BeijingUniversityofPostsandTelecommunicationsPage21主要内容t第一章绪论t第二章面向对象的分布计算环境t第三章面向构件的分布计算环境t第四章面向Web的分布计算环境t第五章其他分布计算环境t第六章代理技术BeijingUniversityofPostsandTelecommunicationsPage22面向构件的分布计算环境t软件构件结构t框架、构件、对象总线t构件模型tEJB和J2EEt各类EJB及其相应的生命周期函数tEJB容器tJ2EEtEJB3.0BeijingUniversityofPostsandTelecommunicationsPage23软件构件结构t软件构件体系结构n框架—对问题的部分解决,是让用户集成构件的架构n构件(组件)—构件是软件的基本单元,既足够小,以便于维护,又应足够大,以使之具有功能,可以被打包和使用。构件的集成构成软件应用。è与对象的区别?n对象总线—是一种机制,使得构件和框架能够调用分布式环境中的另一构件或框架的服务。BeijingUniversityofPostsandTelec