下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 北大计算机系JAVA培训讲义91分布式对象体系

北大计算机系JAVA培训讲义91分布式对象体系.doc

北大计算机系JAVA培训讲义91分布式对象体系

汪自道
2018-04-04 0人阅读 举报 0 0 暂无简介

简介:本文档为《北大计算机系JAVA培训讲义91分布式对象体系doc》,可适用于综合领域

北大计算机系JAVA培训讲义分布式对象体系分布对象技术*北京大学北京大学计算机系代亚非*第九章分布对象技术分布对象技术要解决的基本问题分布对象技术概论分布对象的核心概念分布对象主流技术介绍分布对象处理技术发展趋势分布对象主流技术开发过程*分布对象技术要解决的基本问题以下情况是不是分布式,、浏览、两个及其之间的通信、计算引擎*B机A机就是支持访问异地对象同一地址空间C编译器完成连接CMainProgramCObject分布对象技术要解决的问题分布对象技术要解决的基本问题*两层客户服务器模型(胖客户)三层客户服务器模型(瘦客户)N层客户服务器模型层的概念(TIERS):在客户服务器意义上将,一个层就代表一个具有定义好的特定功能平台,一个平台就是就是一个计算机软件和硬件的组合应用程序对象应用程序对象应用程序对象分布对象技术要解决的基本问题分布式系统的客户服务器模型*分布对象技术要解决的基本问题一个分布式系统的例子(原始的方法)电话订购客户电话订购客户电话订购客户nWEB服务器WEB服务器中心订购服务器WEB服务器mInternet*分布对象技术要解决的基本问题使用多个服务器分割用户电话订购客户WEB服务器Internet电话订购客户中心订购服务器WEB服务器电话订购客户WEB服务器电话订购客户中心订购服务器WEB服务器电话订购客户WEB服务器电话订购客户中心订购服务器WEB服务器*分布对象技术要解决的基本问题订购服务器订购服务器订购服务器nWEB服务器Internet调度程序考虑负载平衡的问题*分布对象技术要解决的基本问题问题案例一:如何综合越来越多的数据库资源以适应不断发展的业务逻辑客户OracleSybaseInformix如何加入综合多个数据库的业务逻辑,如何集成其它非数据库操作的业务逻辑,如何处理“肥客户”应用问题,如何处理用户界面风格多样性,*分布对象技术要解决的基本问题问题案例二,,如何管理不断接入的新应用管理器NNNk*分布对象技术要解决的基本问题汇编语言单机应用开发环境分布式应用开发环境SocketAPIFortran语言OOP语言软构件技术RPC分布对象技术*分布对象技术要解决的基本问题我们都听到了哪些词汇构件模型CORBAIIOPJavaRMI分布对象ActiveXControlsRPCCOMDCOM还有还有…EJB*分布对象技术概论分布计算是近二十年来影响计算机急速发展的最活跃因素之一经历了两种不同的技术路线理想的技术路线(年代学术界普遍追求的目标)试图在互连的计算机硬件上部署全新的分布式操作系统现实的技术路线(年代工业界普遍遵守的路线)在网络计算平台上部署分布计算环境提供开发工具和公共服务支持分布式应用资源共享和协同工作集中式客户服务器*分布对象技术概论分布式系统比想象的要复杂:异构环境下的应用互操作的问题系统管理问题系统安全的问题传统的面向过程的技术在开发大型软件系统的局限性面向对象技术用于分布式(分布对象技术)标志第二代分布式计算技术进入成熟和蓬勃发展时期分布式对象技术始于年代初已经发展成为当今分布异构环境下建立应用系统集成框架和标准构件的核心技术*分布对象技术概论面向的主要问题信息共享智能化的协同工作异构环境下的信息互操作体系结构经典的客户服务器模型面向对象的多层客户服务器模型自主的多agent模型关键技术的特点沿用传统的计算概念和设施(如过程调用和文件设施)将面向对象技术应用到分布计算面向agent的拟人化交互环境成果能够提供丰富的分布式系统服务,良好的分布式系统管理和典型的分布系统应用已经成为建立集成构架和软构件标准的核心技术概念验证系统令人鼓舞,尚未达到广泛应用与协同工作的成熟程度第一代(年代中~年代初)第三代(从现在开始)第二代(年代)*分布对象技术概论分布对象技术的核心概念有那些分布对象的位置对客户透明可以被远程客户应用以方法调用的形式访问分布对象所使用的语言要对客户透明分布对象运行的系统平台对客户透明分布对象具有移动性(允许时间,空间,语言,操作平台的差异性)*分布对象技术概论一个应用逻辑A机对象对象对象对象A机一个应用逻辑对象对象对象对象D机C机B机JavaJavaVBCVB*分布对象技术概论分布式系统,分布对象与软构件是什么关系独立于特定程序设计语言和应用系统,可重用和自包含的软件成分称为软构件分布对象是一种典型的软构件分布式系统是分散在两个或更多地方的计算机上为了实现一个共同的目标而共同工作的软件实体集合分布式应用系统中的成员:创建和维护分布对象的实体的应用称为服务器按照接口访问该对象的应用称为客户服务对象同时可以是其它服务对象的客户*分布对象技术概论软构件模型的开发的目的是什么重用,高层开发,通过工具进行自动化开发,简化开发过程等软构件模型的开发的手段是什么软构件开发者:处理底层的实现细节以及与此相关的类定义构件的基本的体系结构,构件界面的结构,与其它构件及容器相互作用的机制软构件应用者:在可视的开发环境将以存在的构件进行简单的组装。*分布对象技术概论软构件模型的例子OMG的CORBA、Microsoft的COMDCOM和SUN的JavaEJB。*CMainProgramObjectAObjectAObjectAAgentAgent网络计算环境A的代理对象适配器ORB分布对象技术基本工作原理什么是对象请求代理支持客户访问异地分布对象的核心机制称为对象请求代理ORB(ObjectRequestBroker)A机一个应用逻辑对象对象对象对象D机C机B机一个应用逻辑A机对象对象对象对象*分布对象技术基本工作原理客户应用逻辑分布对象代理服务器对象请求分发器分布对象的实现对象请求适配器对象请求感知器网络传输访问ORB服务器构造构架客户构造构架相同的接口相同的接口*分布对象技术基本工作原理ORBORB客户客户客户客户OOOracleOOSybaseOOInformixOROROROROROR虚拟图书馆查询预约服务还书通知通知还借处理如何管理客户应用预约预约*利用这些服务创建一个新的对象而不必知道对象在哪分布对象技术基本工作原理对象服务:支持分布式系统正常工作的各类基本的系统级服务名字管理事件通告对象事务管理对象生命周期*分布对象技术基本工作原理通用功能:支持分布式系统高效开发和有效工作的各类面向领域的常规服务和工具GUI数据库服务电子邮件服务系统管理服务面象应用领域的领域构架*分布对象技术基本工作原理应用对象:涉及各种应用软件,它在对象服务和公共设施帮助下完成相应的应用逻辑ORB是一条软总线,把分布式系统中各类对象和应用连接成相互作用的整体*分布对象主流技术分布对象技术的实质性进步:使面向对象技术能够在异构的网络环境中得以全面,彻底,方便的实施有效地控制系统的开发,管理,维护的复杂性分布对象的主流技术OMG的CORBAMicrosoft的ActiveXDCOMSUN的JavaRMI*分布对象主流技术CORBAOMG是一个非盈利性国际组织,致力于使CORBA成为“无所不在的中间件”年成立,当时仅有家成员,目前有家成员OMG制定的分布对象计算标准规范,按照这些规范设计的开发的分布式计算软件环境可以在几乎所有的主流硬件平台和操作系统上运行CORBA的通信协议是IIOP(InternetInterORBProtocol)CORBA结构集中围绕着两个主要元素:ORB和IDL,CORBA的语言独立性和平台独立性主要来源于这两个方面CORBA*分布对象主流技术CORBAORB负责定位服务器对象IDL是建立接口的基础*分布对象主流技术CORBAIDLStubs、IDLSkeleton是由IDL编译器编译产生的用于静态调用有较好的性能和效率。动态调用接口和动态Skeleton用于动态调用使得即使在编译时不知道可用的服务器和接口消息也能完成客户与服务器的作用CORBA中的说明语言称作OMGIDL用以描述对象的接口。它本身不是一个可编程语言但它为程序员提供了语言的独立性他们不必知道调用者所采用的语言。IDL的词法语法规则遵从C的规定但加入了一些关键词支持分布概念。用接口描述语言(InterfaceDescriptionLanguage)编写的对象接口使得与语言无关的独立性成为可能。*分布对象主流技术CORBACORBA规范的特点:互操作性:CORBA在客户和服务器之间提供了两层可操作性。一方面它将客户与服务器都抽象为对象所有功能都封装在对象内部对外提供简单的接口可被其它对象以动态或静态方式调用。另一方面对象间的通信是通过ORB代理实现对象不必关心细节由ORB定址发送请求。是ORB对象间的“通信总线”。*分布对象主流技术CORBA跨平台性:由于CORBA规范中定义了IDL语言这一与平台无关的语言并引入代理(ORB)概念因此CORBA应用具有较好的跨平台性。提供了软总件机制:所谓软总线是指CORBA规范定义了一组接口规范任何应用程序软件系统或工具只要具有与该接口规范相符合的接口定义就能方便地集成对CORBA系统中而这个接口规范是独立于任何实现语言和环境。。*ORBCLIENTSTUBSSKELETONSSERVERORBIIOPMETHODREQUESTOBJECTREFERENCESERVANT分布对象主流技术CORBACORBA结构一次请求的过程CORBA结构一次请求的过程*分布对象主流技术COMDCOMOLE对象链接和嵌入(ObjectLinkingandEmbedding)从用户角度看OLEOLE文档:以文档为中心,OLE集成数据OLE自动化OLE控件:可以被嵌入应用程序中的自包含的,可重用的组件COM,DCOM,OLE和ActiveX*分布对象主流技术COMDCOM*分布对象主流技术COMDCOM*组件对象模型(COM)结构化存储跟踪器(永久命名)拖放嵌入剪贴板一致数据传输器(UDT)就地激活(可视编程)链接OLE自动化OLE控件为将来而建造分布对象主流技术COMDCOM从程序员的角度看OLEOLE文档属性事件*分布对象主流技术COMDCOM构件对象模型COM(ComponentObjectModel)是一个用于在交互平台上开发客户服务器应用程序开放结构COM是微软的构件对象模型,是构件之间实现互操作的二进制标准COM对象通过接口来显示功能。接口是COM对象与外部世界的一个绑定约定。COM可以用不同语言实现COM只能运行在WINDOWS平台上COM实现了OLE对象的底层通信,其作用类似于CORBAORB*分布对象主流技术COMDCOMActiveX是OLE技术和COM技术在Internet网上的一个扩展但是它的内容更多,它还组成了一系列用来产生丰富的Internet网和多媒体服务ActiveX文档:将OLE文档扩展到internet能够由浏览器打开的wordpowerpoint文件ActiveX控件:将OLE控件扩展到internet。如一个页面包含ActiveX控件该控件可以自动下载到用户端。ActiveX脚本:将OLE自动化带进internet。可以利用VBScriptJavaScriotPerl等语言编写。*分布对象主流技术COMDCOM分布式组件对象模型(DCOM或ActiveXDCOM):被称为网络OLE,是二进制的COM对象在局域,广域网和Internet上的扩展COM能够使客户在本地处理中透明地访问库中的对象DCOM允许在远程处理中透明地访问对象。(DCOM的功能实现使得程序员不必编写网络代码,或仅仅知道如何编写网络代码)DCOM基于(RPCremoteprocedurecall)工作它不是一种编程语言而是一种规范一种服务是一种高级网络协议。DCOM是用COM实现的。*分布对象主流技术COMDCOMActiveX控件通过底层DCOM进行通信允许控件互相访问对方公布了的方法而不必考虑控件是否在一个容器或同一台机器上。ActiveX控件由事件连接在一起,开发环境支持开发者创建方法当任何一个构件出发了一个事件,这些方法都被调用目前有十几家公司提供大量的控件,你可以访问这些公司的WEB站点,下载你需要的ActiveX控件,进行编程:wwwactivexcomWindows和WindowsNT都把DCOM作为操作系统的一部分*分布对象主流技术JavaRMIRMI是分布在网络中的各类Java对象之间的进行方法调用的ORB机制Java语言支持通信的最基本机制是Socket但是Socket要求客户和服务器在应用程序级上对交换信息编码的协议达成一致RPC把通信接口抽象到子程序级,而不是直接与Socket打交道,但由于不涉及对象,在分布式运算中效果不好JavaRMI(RemoteMethodInvocation)是Java特有的分布式计算技术,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法JavaRMI*分布对象主流技术JavaRMIRMI系统的一般结构Stub就是代表远程对象的客户方代理,定义远程对象版本所支持的所有接口Skeletons是与服务器方的RRL接口的服务器方构件RRL负责维护不与具体Stub或Skeleton模型相关的独立引用协议这个灵活性使RRL的改变不会影响另外两层传输层由个抽象构成:端点,通道,连接,传送ClientServerRemoteReferenceLayerStubsTransportSkeletonsApplicationRMISystem*分布对象主流技术JavaRMIRMI系统的一般原理:定位远程对象:RMI的命名工具注册远程对象和远程对象通信:RMI传输层处理通信细节装载被串对象的字节码:RMI提供了传递数据和装载一个对象代码的必要机制WebServerClientServerWebServerregistryURLprotocolRMIRMIURLprotocolURLprotocolRMI*分布对象主流技术EJBEJB(EnterpriseJavaBean)是Java服务器端构件模型构件模型通常有客户端构件和服务器端构件构件客户端构件模型JavaBean专门用于处理程序的表示及用户界面的问题服务器端构件模型EJB,把构件模型的开发和中间件联系起来,面向事务处理的中间件提供基础设施EnterpriseJavaBean容器容器连接EJB服务器客户*分布对象主流技术EJB为什么要有服务器端构件模型EJBEJB将成为用Java语言开发分布式的、面向对象的企业应用系统的标准构件体系结构EJB使得通过组合构件得到分布式应用成为可能EJB不需要应用开发人员了解底层的事务处理细节,状态管理,多线程,资源共享管理,以及其它底层API细节EJB遵循Java的“writeonce,runanywhere”的原则一个EJB可以部署在任何EJB平台上EJB定义了一个协议,使得不同供应商提供的构件能在运行时互操作EJB体系结构和已有的服务器平台,其它的JavaAPIs,CORBA兼容*分布对象主流技术EJBEJB与JavaBean的关系客户端的JavaBeans容器可以根据JavaBeans的属性,方法,事件的定义在设计时或运行时对JavaBeans进行操作一般JavaBeans是可视化的构件一个标准的JavaBeans是一个客户端构件,在运行时不能被其它客户机程序存取或操作EJB没有用户界面,并完全位于服务器端,EJB可以由多个JavaBeans组成EJB可以和远程的客户程序端通信,并提供一定的功能如果不和客户端程序交互,EJB一般不执行具体的功能EJB与JavaBeans的一个重要区别是EJB提供了网络功能*分布对象主流技术EJBEJB与CORBA的关系一个CORBA客户机(用CORBA支持的语言些的程序),可以存取基于CORBA的EJB服务器上的构件一个客户机在一个事务过程中可以同时调用CORBA的EJB服务器对象通过IIOP可以使EJB系统和CORBA系统集成EJB与客户机的关系对于EJB来说,有两种类型的客户机可以使用EJB:EJBCORBA客户机一个使用EJBAPIs的Java客户机纯CORBA客户机用CORBAIDL支持的任何语言些的客户机*EJB的网络计算分布对象主流技术EJB客户端在网络计算环境中利用Java的最好途径是由EJB提供服务器端的构件,而由JavaBeans提供客户端构件*分布对象处理技术几种构件模型的比较组件:CORBA,JavaBean,ActiveX协议:IIOP,RMI,DCOMCORBA最大的特点是语言中性和跨平台可以跨越不同网络,不同机器和不同操作系统,实现分布对象之间的互操作整体功能最强Java提出了一个概念清晰,结构紧凑的分布计算模型和构件互操作方法,为构件应用开发提供了相当的灵活性,使用上比CORBA方便但是没有提供分布对象事物管理等服务微软结合ActiveXDCOM的开发,配套提出了自己的事务服务器(MTS)和消息队列服务器,加之asp的使用,以及wizard的可视化编程环境,倍受业界的欢迎*分布对象处理技术几种构件模型的比较CORBA的优势在技术较之COMDCOM领先至少年COMDCOM的优势在市场能力。目前只有OMG的技术能够支持大型异构分布式应用的开发Microsoft的技术尚不能胜任。CORBA技术与Java技术趋于结合CORBA的互操作性与Java的可移植可移动性将使分布对象技术达到新的高度。*分布对象处理技术几种构件模型的比较支持跨语言操作支持集成性跨平台操作网络通讯公共服务构件可用性事务处理消息服务安全服务目录服务容错性产品成熟性软件开发商的支持度可扩展性CORBAORBActiveXDCOMEJBRMIAADACAAAAEAACCBABDCBBCCBABAAABBABCDAA*分布对象处理技术发展趋势Objectweb人们关注的新热点hypertextwebinteractivewebobjectweb什么是objectWebCORBA和Java结合是objectweb的技术基础和hypertextweb,interactiveweb比较:objectweb给用户的突出感觉是操纵实体不再局限于含有“超链”的文档作用于实体的操作行为不再局限于“下载”一类的文件传输*分布对象处理技术发展趋势Objectweb的体系结构JavaORBWebbrowserJavaAppletJavaORBHTTPJDBCHTTP文档JavaAppletHTTPServerCORBAServerObjectInternet第一层第二层业务服务器IIOP第三层业务服务器CGI*分布对象处理技术发展趋势中间层可以由任何一种服务器来支持中间层主要完成各种业务逻辑*分布对象处理技术发展趋势从应用的角度看objectweb()开发的internetIntranet管理agent能够在internet上公布其管理功能的接口,并接受任何合法的maneger按照标准的运城对象访问协议(corbaiiop)所进行的访问Maneger能够访问任何时刻加入Internet的Agent,只要该agent支持internet上的标准的远程对象访问协议,并在加入internet时按照标准的协议公布其接口()Web文档组合结合组合文档和web文档的双重功能*分布对象处理技术发展趋势从技术的角度看objectweb对象开发技术和对象访问技术对象超文本ObjectwebCOM对象Java对象CORBA对象各类构件DCOMRMICORBAIIOPHTTPCGIHTTPCGI对象访问Hypertextwebinteractiveweb*PC机普遍的全局渗透产生的一个相当重要的效应是她在分布式系统领域的催化效应在过去的十年中意义最深远的分布式系统的革新可能是伴随着客户服务器模式的出现而产生的它的一个很大的优点是充分利用了本地PC机的能力在某些方面GUI的出现加深了客户服务器计算的想法并促进了客户能力的开发利用客户服务器模式的一个更有趣的结果是大型机被变成一个超级服务器第一个客户服务器是使用两层结构的第一层包含运行竹影程序的客户工作站设各客户支配的程序除了系统要求的所有业务逻辑外,由所有的用户接口组成程序上的考虑都可以在客户程序中找到因为客户应用程序负责处理许多核心功能,称为胖客户服务器提供的是数据在三层模型中,客户负责用户接口和一些确认工作大部分业务逻辑和应用程序放在中间层在N层结构中,客户与中间服务器交互,反过来这些中间服务器又与其他的中间服务期交互,如此下去,随意的混合和匹配N层结构是对三层结构的一个概括虽然一些层可以用于数据管理,但大多数层都变成了划分详细的业务逻辑指定容器分布对象技术的核心是位置透明性,*分布对象应用的魅力在于它的可伸缩性可伸缩性指的是系统能够应付高负载而不会引起性能下降的能力******年代中后期,以支持信息共享的应用需求为核心,形成了面向过程的第一代分布计算技术年代初出现了从集中计算模式向客户服务器计算模式转移的热潮在分布式客户服务器计算机系统的建立及其应用系统的开发过程中,人们逐步体会到分布式系统比想象的要复杂的多实际上,OOA和OOD方法可以直接应用于分布式系统的的分析和设计,然而传统的OOP环境(C,SMALLTALK)在直接用于分布式用用系统的程序设计时遇到问题传统的对象与访问该对象的程序只能存在于同一进程中,并且只能用相关程序设计语言的编译器才能创建这些对象并感知这些对象的存在,而外部进程无法了解和访问这些对象这意味着在常规的分布式客户服务器应用中,客户进程不可能直接访问异地服务进程中的常规对像**常规分布式客户服务器存在的问题:对象与访问该对象的程序只能存在与同一进程,并且只有相关的程序设计语言的编译器能够创建这些对象并感知他们的存在外部程序无法了解和访问这些对象这意味着在常规的分布式客户„服务器应用中,客户程序不可能直接访问异地的服务进程中的常规对象基于分布对象技术的分布式应用系统就是分布对象的开法和组装普通的网络应用并不等于分布式**客户和服务器的角色划分是相对的多层次的分布式应用开发就是分布对象的开发和组装*在面向对象的多层客户服务器模型中,分布在网络上的全部资源都成为对象每个对象都有定义明晰的访问接口*IfyouhaveusedvisualcomponentassemblytoolssuchasVisualAge,Delphi,VisualBasic,PARTS,Mojo,orevenPowerBuilder,youarefamiliarwiththenotionofsoftwarecomponentsVisualBasicExtensions(VBX#s)werethefirstwidelyusedsoftwarecomponents*对象请求代理(ObjectRequestBoker):作为对象互通讯的软总线使对象在分布环境中透明地收发请求和响应它是分布式对象应用在不同层次的异构环境下互操作的基础对象服务(ObjectService):定义加入ORB的系统级服务是为使用和实现对象而提供的基本服务集合。如安全性命名和事务处理。公用功能(CommonFacilities):是为许多应用提供的共享服务集合如系统管理等。应用对象:定义现实世界的对象和应用这些数据最终用户应用程序的组件。为了能参与ORB交换它们必须用IDL语言定义。应用程序的构造在对象请求代理、对象服务、公用功能所提供的服务之上。OMG对此不作规定。**名字管理有时也被称为目录管理:这是一种机制,通过这种机制网络或分布式软件系统的管理员能够仔细的组织结构化的信息一个服务对象可以使用某个众所周知的名字放在该目录中,客户可以使用该名字连接到目录并且获得服务对象的接口指针能够按照名字定位网络上的服务事件通告有时称为可联接对象是从服务器到客户的通信当某个对象内有重要事件发生时,通知客户事件从事件源传发到事件接受器,它提供一种PUSH技术,能够实现以下两方面的功能:Server自主监控各种数据的变化当发生重要情况时,主动将信息提交为主动服务提供支持服务器主动提供服务,提供服务的依据是一些出发事件,在一个系统中可以认为定义一些事件,当跳满足时,出发事件对象请求代理机制中最复杂的部分,能将设计多个对象的操作定义为单个事物类似与数据库中的事务管理,处理并发,加锁,失败后的回退等,生命周期服务允许在特定的系统上创建,删除移动对象程序员可以不关心对象在什么地方,但是系统管理员却需要利用这项服务来实现这种位置透明服务进行远程调用时,常见的问题是在进行调用之前,服务器必须运行着,生命周期克服了这个问题,使得你在调用服务器上的方法之前,根据需要创建对象****IIOP是InternetInterORBProtocol的缩写。IIOP是GIOP在TCPIP环境下的实现。GIOP是GeneralInterORBProtocol的缩写。GIOP由三个部分组成:、CDR(CommonDataRepresentation)数据在传输过程中的表示包括基本数据类型的表示聚合类型(struct,union,array等)Valuetype(CORBA对象被当作值传递时称为valuetype)类型信息的表示CORBA对象引用的表示等、消息格式定义了可以在客户与服务器间传递的消息、对传输通道的假设这些假设基本上都是根据TCP提出的如有连接、可靠、字节流方式的传输、如果传输过程出错了可以知道等。*OMA最重要的部分就是ORB。为了创建一个遵从CORBA规范的应用程序ORB是CORBA四大部分中唯一必须提供的。你可以自制(或购买)商用对象但是没有ORBCORBA应用程序决对无法工作。ORB由IDLStubs(存根)动态调用接口ORB内核静态IDLSkeleton动态Skeleton对象适配器组成。其中IDLStubs、动态调用接口、ORB接口可为客户方使用静态IDLSkeleton、动态Skeleton、对象适配器、ORB接口可为对象实现方使用。ORB间互操作机制:CORBA对象的互通信要以对象请求代理(ObjectRequestBroker)为中介这种互通可以在多种流行通信协议之上(如TCPIP或是IPXSPX)实现。在TCPIP上来自于不同开发商的ORB用InternetInterOrb协议(IIOP)进行通讯这是CORBA标准(最新的版本)的一部分。ORB负责代表客户来定位服务,以及保证方法调用的参数正确地翻译到其他结构上CORBA对象和一般程序设计语言的区别在于CORBA对象可以在网络上的任何位置CORBA对象可以和其他平台上的对象交互CORBA对象可以用任何语言编写*静态调用指当在一个CORBA对象上调用方法时依靠工具生成的程序完成参数打包参数传送收结果抛出异常等操作。当这些操作依靠工具生成的程序完成时在客户端的程序看来在异地对象上调用方法如同在本地对象上调用方法一样。动态调用指当要在一个CORBA对象上调用方法时参数打包、参数传递、收结果这些操作都由客户端程序自己完成而不是依靠工具生成的程序来完成这些操作。完成上述操作要依赖动态调用接口提供的方法来。工具生成的程序也是依靠动态调用接口来实现参数打包、传递、收集结果这些操作的。使用静态调用还是动态调用是根据客户端程序的语意来确定的。比如客户端程序需要对几个CORBA对象上的方法进行异步调用就只能用动态调用来完成了因为客户端不能等待在一个对象上调用方法执行完毕再调用另一个对象上的方法。但一般情况下使用静态调用足以完成大部分的要求了。*互操作性:CORBA在客户和服务器之间提供了两层可操作性。一方面它将客户与服务器都抽象为对象所有功能都封装在对象内部对外提供简单的接口可被其它对象以动态或静态方式调用。另一方面对象间的通信是通过ORB代理实现对象不必关心细节由ORB定址发送请求。是ORB对象间的“通信总线”。提供了软总件机制:所谓软总线是指CORBA规范定义了一组接口规范任何应用程序软件系统或工具只要具有与该接口规范相符合的接口定义湍芊奖愕丶啥訡ORBA系统中而这个接口规范是独立于任何实现语言和环境。不同的对象可以跨越网络和操作系统生存在这个总线上而这个总线则为对象之间的通讯和交互提供各种服务。通过这个总线任何被集成到CORBA系统中的成员间都可以使用对方提供的所有服务。(跨平台性:由于CORBA规范中定义了IDL语言这一与平台无关的语言并引入代理(ORB)概念因此CORBA应用具有较好的跨平台性。*不同的对象可以跨越网络和操作系统生存在这个总线上而这个总线则为对象之间的通讯和交互提供各种服务。通过这个总线任何被集成到CORBA系统中的成员间都可以使用对方提供的所有服务*在客户端,应用系统包括远程调用的引用,对引用使用stubs的方法作为远程方法的代理,这个方法事实上在ORB中的,所以调用stubs方法会调用ORB的连结功能,ORB会把对stubs方法的调用传递到服务器端在服务器端,ORB利用骨架代码把远程调用转换成本地对象的方法调用,骨架需要对调用和参数的格式进行转换同时,当方法返回时,骨架对结果进行变换,然后通过ORB把结果返回给客户机不同的ORB之间通过IIOP协议进行通信,IIOP是建立在TCPIP之上的协议*OLE文档的第一个特征是公共用户模型(commonusermodel)简单的说就是访问OLE文件的各个应用程序的用户接口(UI)特征是类似的这些继承数据功能之一就是“链接和嵌入”微软的对象模型最初用于微软的办公软件,目前已经发展成为微软世界的的应用系统继承标准OLE控件的例子:可视化编程中控件,工具栏属性,事件***(例子,通过浏览器访问服务器中的ppt文件)*Althoughdesignedfromthestarttosupportdistribution,theoriginalimplementationofCOMranononlyasinglesystemThisarchitecturalpromisewasfulfilledbythereleaseofDistributedCOM(DCOM)AlthoughitisarelativelysimplesetofextensiontoCOM,DCOMprovideswhatisneededtoachievebasicdistributionofCOMobjectsWithRPC,aclientcanmakewhatappearstobealocalcalltoacomponent,althoughthatcallactuallyexecutesinanobjectacrossthenetworkWithDCOM,aclientcancreateanduseobjectsonothersystemsaswellasobjectsrunninglocally,andneednotawareofthedistinctionbetweenthetwoDCOMalsosupportssecurityservices,controllingwhichclientscanusewhichCOMobjects,andawaytospecifythemachineonwhichanobjectshouldbecreatedTheservicessuppliedbyDCOMcanbeusedtobuildsecure,distributed,COMbasedapplications**RMI应用程序通常由两个独立的应用程序组成:SERVER和CLIENT一个典型的SERVER应用程创建出一些对象,使它们可以被引用,并等待客户端调用这些远程对象的方法一个典型的客户端应用程序得到SERVER上的一个或多个远程对象的远程引用,并调用这些对象的方法RMI提供了SERVER和CLIENT的通信和传递信息的机制这样的应用程序叫做一个分布式对象应用程序Socket很灵活,对一般的通信可以胜任,RPC的方法中由STUS将参数打包传给远方的子程序,然后在负责把结果返回RPC不适用于分布式对象,因为在分布式系统中,在程序级的对象之间的通信就是在不同的地址控件执行*RRL涉及低级传送接口,负责向端头和框架层提供流RRL通过传送层用客户方和服务器方构件通信客户方构件包含远程服务器的特定信息这个信息传递到服务器方构件,因此只依赖于服务器方RRL服务器方RRL负责引用语法和处理这些语法之后再向skeleton发送运程调用方法客户机和服务器方构件之间的通信由传输层处理传送层接到客户RRL的请求时,,它寻找请求的远程对象的RMI服务器,然后传输层寄到这个服务器的接插连结接着,传输层将建立的连结传递到客户机RRL上,并将远程对象的引用加到内部表中这时,客户机即连接到服务器传输层监视连结的„生命期如果经过较长时间连结毫无动静,则传输层负责关掉这个连结*Rmi系统提供一个基于URL的注册,它允许你捆绑像url形式的的远程对象,一旦一个远程对象在服务器上注册了,调用者就能用远程对象名字查找,并能到远程对象的指针,然后用一个指针调用该对象图中描述了使用注册机制获得远程对象引用RMI分布式应用程序Server方调用注册器讲一个远程的对象和一个名字联系起来Client方在注册器中通过名字寻找远程对象并调用其方法该图也显示了RMI系统使用一个现有的WEBSERVER来装载字节码,在需要时在SERVER和CLIENT之间传输字节码RMI的一个重要而独特的特性是它能动态下载一个在接收者的虚拟机中未定义的对象类的字节码一个对象的类型和行为,这些原来只能在单一的虚拟机中可以得到的消息,可以被传递给另一个可能是远程的虚拟机RMI将对象连同其真实的类型一起传递所以当这些对象被传递给另一个虚拟机时,其行为不发生改变这允许将新的类型引入到一个远程的虚拟机,从而动态扩展应用程序的行为*****由Beans构造的应用系统可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相应的构件,并随着用户的新的要求随时下载新的构件,而用户没有用到的其它工能的构件仍主流在服务器上*****典型的分布式系统管理采用agentmanager体系结构,agent运行在被管理的设备(如服务器,路由器和职能交换机)上,Manager通过与agent交互实施分布式管理系统但问题是maneger不能管理采用新标准的设备*Sun公司的jini可以实现这样的应用构想jini实现网络设备的即插即用一系列完成网络功能的java代码开发Sun版本的unixsolaris而闻名的billjoy提出三个建议:开发一种可以在任何平台上运行的语言开发运行这种语言的所必需的虚拟机开发一种全新的网络系统,可以使网络上分布的各个独立的虚拟机想一个系统一样工作*

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/18

北大计算机系JAVA培训讲义91分布式对象体系

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利