执行与分布式系统中的远程过程调用相关的处理的可下载智能代理技术方案

技术编号:2884706 阅读:217 留言:0更新日期:2012-04-11 18:40
采用智能代理,用作分布式系统中存根周围的卷绕符(wrapper)。调用方不是接收存根作为远程过程调用的结果,而是接收包括作为嵌入对象的存根的智能代理。智能代理执行与远程调用相关的预定处理,该处理可能出现在对调用的响应之前、之间或之后。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种在分布式系统中在机器之间传送对象的系统和方法,尤其涉及远程对象表述的传送,包括用于本地处理的代码。
技术介绍
集中进行点对点数据传输的分布式程序经常可以有效地采用用于远端访问和文件传送的专用协议进行处理。这些协议是特别用于一种程序,并且是不提供建立各种分布式程序(例如,分布式操作系统、电子邮件系统、计算机会议系统等)的基础。尽管传统的传送服务可以用作建立分布式程序的基础,但这些服务有许多组织上的问题,如,在不同的机器中采用不同的数据类型、缺少同步化设施,以及不具备简单的编程规程(paradigm)。分布式系统通常含有集中不同类型的机器,由通信网互联在一起。每一机器有其自己的内部数据类型、其自己的地址对准规则,以及其自己的操作系统。这种不同一性使得在建立分布式系统时出现一些问题。结果,程序开发人员必须在为这种异种机的分布式系统开发的程序中包括一种处理能力,使得能够确保在不同的机器中对信息的处理和并且解释的一致性。然而,可以有一种简化,这是因为注意到,大部分的程序在进程之间采用一个请求和应答的交互作用,启动器(即程序发起通信)受到阻塞直到应答返回,并且因此在该时间里闲置。通过进程之间的过程调用机制,可以使其模型化。一种这样的机制称为远程过程调用(RPC)。RPC是一种在相同机器或不同机器上运行的两个进程(即,程序、applet程序等)之间提供同步化通信的机构。在一种简单情况下,一个过程,如一用户程序,向另一进程发送一条消息,如服务器程序。这时,无论是在发送消息的时候还是在接收消息的时候,进程是不必同步化的。用户程序可以发送该消息,并且随后开始新的活动,或者对于服务器程序环境来说,缓冲输入的消息,直到服务器程序准备处理新的消息为止。然而,RPC对同步化有限制,因为它严密地按照本地过程调用模型,这要求沿一个方向传送参数、在服务器程序的被调用过程完成之前阻断调用进程,并且随后返回一个响应。因此,RPC包含两个消息的传送,以及调用期间两个进程的同步化。RPC机构通常是用本地过程调用无用信号在两个处理部分中实现的,一个部分是在客户机侧,而另一部分是在服务器侧。这两个部分将在下面参照附图说明图1来描述。图1是采用RPC机构的调用信息流的图。如图1所示,客户程序100发出一个调用(步骤102)。RPC机构101随后打包该调用,作为调用包的形式参数(步骤103),随后RPC将其发送到服务器程序109(步骤104)。该调用包还含有识别首先发送该调用的用户程序100的信息。在发送了该调用包(步骤104)以后,RPC机构101进入等待状态,在此期间,等待来自服务器程序109的响应。用于服务器程序109的RPC机构108(当服务器程序109是与客户机程序100处于同一平台上时,它可以是与RPC机构101相同的RPC机构)接收该调用包(步骤110)、解包来自调用包的调用形参(步骤111)、用调用信息识别对调用进行寻址的服务器程序109,并将这些调用形参提供到服务器程序109。服务器程序接收该调用(步骤112)、通过调用合适的过程对调用进行处理(步骤115),并向RPC机构108返回一个响应(应答)(步骤116)。RPC机构108接着将该响应打包到一个响应包内(步骤114),并将其发送到客户程序100(步骤113)。接收响应包(步骤107)启动了RPC机构101,使之退出等待状态,并解包来自响应包的响应(步骤106)。响应于该调用(105),RPC接着将该响应提供到客户程序100。这是根据本地过程调用规程模型的典型RPC机构的处理过程流。由于RPC机构采用的是本地过程调用规程,调用时客户程序100是阻断的,一直到接收到一个响应(应答)为止。所以,客户程序100在发送了调用以后是不再继续其自身的处理的;相反,它等待来自服务器程序109的响应。JavaTM程序语言是一种面向对象的程序语言,它通常是用字节码指令集编译成与平台独立的格式,而字节码指令集是可以在任何一种支持Java虚拟机(JVM)的平台上执行的。这种语言可以参见James Gosling、Bill Joy和Guy Steel、Addison-Wesley,1996的“Java语言技术规范(The Java LanguageSpecification)”,在此引述供参考。JVM的描述见Tim Lindholm和Frank Yellin的“Java虚拟机技术规范(The Java Virtual Machine Specification)”,AddisonWeslsy,1996,在此引述供参考。Java和基于Java的商标是由Sun Microsystems公司在美国和其他国家注册的商标。由于JVM可以在任何一种平台上实施,采用JVM执行分布式程序显著减小了为异种机分布式系统开发程序有关的困难。另外,JVM采用Java远程方法调用系统(RMI),它使得能够在系统的程序间进行通信。RMI的说明见下述文件,该文件在此引述供参考“远程方法调用技术规范”,Sun Mricrosystems,Inc(1997),这可以通过统一资源定位器(URL)http://www.javasoft.com/products/jdk/1.1/docs/guide/rmi/spec/rmiTOC.doc.html得到。图2是面向对象的分布式系统200的对象流的图,该面向对象的分布式系统200包括用于采用JVM的传送和接收方法调用的机器201和202。在系统200中,机器201采用RMI 205,通过将对象转换成字节流207对于对象203的调用作出响应,在字节流207中包括发送对象的类型的标识和组成该对象的数据。在机器201对对象203的调用作出响应时,在系统200中相同或另一机器上运行的进程可以是连续进行的,而不必等待对其请求作出响应。机器202接收字节流207。机器202采用RMI 206自动将其转换成相应的对象204,对象204是对象203的复制,并且它使得该对象可以由在机器202上执行的程序使用。机器202还可以通过首先将对象转换成字节流而将对象发送到另一个机器并随后将其发送到第三个机器,第三个机器自动将该字节流转换成相应的对象。机器之间的通信有时包含如相同信息的重复调用。这些调用形成一种本地代理(local proxy),作为客户地址空间内远程对象的代理(surrogate)而工作。这种代理通过向服务器对象提出网络请求将服务于该调用。通过代理对同一服务器对象的重复请求会产生大量的网络业务,而增加了获得信息的时间和费用。因此,需要一种在这种情况下减少网络通信量的技术。专利技术概述按照本专利技术的方法发送对特定对象的请求。接收对该请求的响应,该响应包括用来构成被请求的对象的表述代码,该构成用该表述产生一个对象(object),用来对该对象的调用进行处理,该对象对请求对象是本地的。按照本专利技术的另一个方法在一机器处接收对特定对象的请求。发送对该请求的响应,该响应包括用来构成对象表述的第一代码,并且包括进行处理的第二代码的指示,使得该构成用该表述产生一个对于请求对象是本地的对该对象进行调用处理的对象。按照本专利技术的装置发送对特定对象的请求。该装置接收对请求的响应,该响应包括用来构成被本文档来自技高网...

【技术保护点】
一种接收由多个机器组成的分布式系统中的对象的方法,其特征在于,它包含: 发送对特定对象的请求;以及 接收对所述请求的响应,所述响应包括用来构造所述请求对象的表述的代码,所述构造用所述表述产生一个对象,用来处理对于请求对象是本地的所述特定对象的调用。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:KCRC阿诺德JH瓦尔多R谢夫勒AM沃尔蕾斯
申请(专利权)人:太阳微系统公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1