CN1902590B - 用于在通信对象之间发送结果的异步和自动设备和方法 - Google Patents
用于在通信对象之间发送结果的异步和自动设备和方法 Download PDFInfo
- Publication number
- CN1902590B CN1902590B CN2004800392021A CN200480039202A CN1902590B CN 1902590 B CN1902590 B CN 1902590B CN 2004800392021 A CN2004800392021 A CN 2004800392021A CN 200480039202 A CN200480039202 A CN 200480039202A CN 1902590 B CN1902590 B CN 1902590B
- Authority
- CN
- China
- Prior art keywords
- identifier
- content
- sky
- request
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种通过一个站的本地进程和另一个站的远程进程之间的异步通信管理面向对象的语言中的远程方法调用的方法,所述调用包括来自进程之一的请求并且跟着来自另一个进程的回答。该方法包括:a)在从本地进程向远程进程传输之前检测充当请求或回答的参数的空对象的传输(710),在已对专家进程请求下计算所述空对象的内容;b)处理所述空对象以使所述对象的内容对该远程进程可得到;以及c)在适当处理条件下进行所述请求或者所述回答的传输。
Description
技术领域
本发明涉及本地进程和远地进程之间通过远程过程调用(RPC)的通信领域。
背景技术
这些RPC式通信可以以面向对象的语言使用对象。在RPC式通信领域中,称为调用者的进程向被调用的进程发送请求,在它接收到被调进程对它的请求的结果之前调用者进程阻止它的执行。
在本发明范围内,进程之间建立的通信是异步RPC式,即,源进程在发送(或提出)请求(称为调用消息)后着手执行。由此,在请求的情况下,目标进程首先完成它的当前任务的执行,接着和进行源进程并行地进行远程过程并且在进行该远程过程的结束时使得可得到响应参数。这样源进程可以得到它的响应参数。
但是,这种类型的异步RPC通信不对进程之间的结果提供通信管理,这可能在执行操作时或者发送要求这些结果的消息时导致阻塞。
发明内容
本发明目的在于改进这种情况。
本发明涉及一种通过异步通信、在一个站的本地进程和另一个站的远程进程之间的以面向对象的语言的远程过程的调用管理方法,这种调用包括来自一个进程的请求并且跟着来自另一个进程的响应,该方法包括:
a.在从本地进程向远程进程发送空对象之前检测充当请求或响应的参数的空对象的传输,请求认识进程计算该空对象的内容并使它可得到,
b.为使该对象的内容可由远程进程得到,处理该空对象,
c.在适当的处理条件下进行所述请求或响应的发送。
本发明还涉及一种计算机站,包括:
能以面向对象的语言进行一个或多个本地进程的环境,
协议模块,其能通过异步通信处理本地进程和远程进程之间的远程过程调用,这种调用包括对一个进程的请求并且跟着另一个进程的响应。
依据本发明的一个特征,该计算机站包括:
一个监控器,其能:一旦检测出现充当本地进程发送到远程进程的请求或者响应的参数的空对象的事件,请求认识过程计算该空对象的内容并使它可得到,
-为使该对象的内容可由远程进程得到,处理该空对象,
-在适当的处理条件下进行该请求或该响应的发送。
依据本发明的计算机设备可以包括若干可以独立的和/或相组合的其它特征,这些特征在下面的详细说明中解释。
附图说明
通过研究下面的详细说明以及附图会清楚本发明的其它特征和优点,附图中:
图1示出通过异步远程过程调用(RPC)通信的站网络,
图2示出利用异步远程过程调用(RPC)的图1的两个站之间的通信,
图3-1示出采用依据本发明的带有结果回送的异步远程过程调用(RPC)的站网,
图3-2是依据本发明的站的详细组成,
图4是发送用于异步RPC通信的请求或结果的方法的流程图,
图5的流程图详细说明和图4的发送关联和在步骤702调用的方法的第一实施例,
图6的流程图详细说明和图5方法的第一实施例关联的自动延续结果方法的第一实施例,
图7的流程图详细说明和图4的发送关联和在步骤702调用的方法的第二和第三实施例图,
图8的流程图详细说明和图7方法的第二实施例关联的自动延续结果方法的第二实施例,
图9的流程图详细说明和图7方法的第三实施例关联的自动延续结果方法的第三实施例,
图10的流程图详细说明依据本发明由于需要等待的方法,
图11示出图10的步骤708发送消息后的接收消息的方法,以及
图12的流程图详细说明和图10及11的方法关联的自动延续结果的方法的第四实施例。
这些附图本质上含有确定字符组。从而它们不仅辅助理解本发明,并且需要时还定义本发明。
具体实施方式
图1示出互相通信的站的网络。“计算机站”意味着任何能交换数据的IT元件。这样,该元件可以是移动通信终端例如移动电话或便携计算机,或者相反是固定通信终端,例如PC式计算机。每个站ST1、ST2、ST0包括用户***ST1-2、ST2-2、ST0-2,非共享存储器ST1-4、ST2-4、ST0-4,在面向对象的语言下操作的P1、P2、P0,以及通过RPC式(远程过程调用)异步远程过程调用而通信的通信协议模块ST1-6、ST2-6、ST0-6,这些模块能利用面向对象的语言对对象操作。这种协议模块能通过异步通信处理本地进程和另一个站的远程进程之间的RPC远程过程调用。该协议模块包括由用于远程过程调用的方法或函数构成的对象库。术语“进程”表示指令程序,其例如可能包括过程调用或操作。由用户***ST1-2,非可享存储器ST1-4和通信协议模块ST1-6形成的环境能进行本地进程,例如以面向对象的语言的P1。
每个站通过链路和其它的站连接,链路可以是物理的或虚拟的例如电缆、光纤或无线电波。更具体地,并且作为例子,每个站可以通过链路10-ST1、10-ST2、10-ST0和网络10连接,这些站是互连的。
如图2中所示,异步RPC式协议模块能使称为客户的进程P1调用远程位于站ST2中的称为服务器的进程P2的过程。该调用A还称为请求并且包括参数Pa。在面向对象的语言中,请求是代表过程调用的对象并且包含该过程和调用参数。为了使该过程的调用类似本地过程的调用,客户进程P1包括一个使本地过程的名称和被调用的远程过程的名称相同的对象。站ST1的该本地过程调用协议模块的对象库,例如Java式库中的某些过程。这些过程考虑网络连接、参数Pa的传送以及也称为RES响应的结果的回送,在异步RPC式调用下,客户进程P1利用站ST2中的调用参数提出请求,接着继续它的执行。在站ST2侧,服务器进程P2在利用调用参数调用站ST2的本地过程并且回送响应R-A即对站ST1的结果之前结束它的当前任务的执行。
这样,客户进程P1不调用本地进程只是在站ST2提出请求,接着继续它的执行。在并行方式下,服务器过程P2在提出该请求的时刻继续它的当前的执行,然后通过向客户进程P1发送响应对该请求响应。
很清楚,该网络的任何进程利用异步RPC式协议模块的库通过远程过程调用建立通信。通常,任何进程可以是客户和服务器,即发送请求和接收请求。从而,当进程发送请求或响应时称它为源或本地进程,而当进程接收请求或响应时称它为目标或远程进程。
进程之间建立的通信为异步式,即源进程在发送(或提出)请求(调用消息)后进行它的执行。这样,在请求的情况下,目标进程首先完成它的当前任务的执行,接着和源进程的执行并行地进行该远程过程并且一旦完成该远程过程的执行使响应的参数变成可得到的。这样源进程可以得到它的响应参数。
在利用面向对象的语言中的对象的异步RPC式通信的范围内,当进程发送请求时,响应可能是延迟的,这可能阻塞该进程的执行。进程不能等待对请求的响应并且不能使用尚未确定的响应的表示。通常,对象是用标识符标识的并且由空的或者具有内容(参数值、过程)的结构构成。这样,尚未确定的响应的表示可能是一个指示空或部分空的对象标识符。该对象和一个指示该对象为空或为部分空的标志连接。该对象可能是完全空的,即一个其内容尚不知道的对象,或者是部分空的,即一个只部分知道其内容的对象。这种空对象标识符命名一个其内容或者至少内容的一部分会是某给定请求的响应的对象。
本地进程向远程进程发送的请求或响应可能包括由一个或多个空对象标识符构成的参数。更具体地,客户进程向服务器进程发送的请求可能具有由一个或多个空对象标识符构成的参数。在同样方式下,服务器进程向客户进程发送的响应可能包括由一个或多个空对象标识符构成的参数。在这些情况中,重要的是,远程进程可以在一旦能得到这些空对象的内容时得到内容。
在一些情况中,例如某个进程使用空对象标识符时,必需学习空对象的内容。通过“使用”空对象标识符,某操作意味着它必须确定该对象的内容。某种操作称为是严格的并且在非限定的例子中如果该对象的标识符命名一个代表数字的对象该操作可能是加、减、除或乘。在该使用情况下,为了进行该操作该进程必须可以得到该空对象的内容。
看来需要用来管理向需要空对象的内容的进程传输空对象的内容的机制。
图3-1示出图1的站的网络。和图1相同的参照标记表示相同的元件。
现在说明的进程P1和P0间的异步RPC通信用虚线箭头示出。
当做出异步RPC式调用RPC0-a时,源进程P1建立一个代表对该请求RPC0-a的响应的空对象标识符ID-01、如下面说明按图4示出那样串行化该请求、利用它的调用参数(其包含该空对象标识符ID-01)在站ST0提交该请求RPC0-a并且接着继续它的执行。在站ST0,接收该请求、去串行化并且保持在要由目标进程P0处理的请求文件中,由此,要求也称为认识进程的目标进程计算该空对象的内容并且使该内容可得到,尤其一旦产生请求RPC0-a时。当通过目标进程P0得到该空对象的内容时,使得能得到包括内容CONT-01和该空对象的标识符ID-01的结果对CRES。目标进程P0通过计算得到该空对象的内容CONT-01并称为认识进程。
为了通过响应R0把该结果回送给进程P1,进程P0还可以存储和该空对象标识符关联的进程P1的标识符。
内容CONT-01本身可能含有另一个其内容由另一进程计算的空对象的标识符。
一旦在进程P1中建立该空对象,如图3-1中所示,该对象的标识符可以由进程P1使用或者作为参数置入对目标进程P2的请求RPC1-a中。
当通过进程P1认识该空对象的内容时,通过把该内容集成到该空对象的结构中更新该空对象。
图3-2更详细地示出能对进程P1操作的模块。
该站包括以下进程:
检测器例如串行器ST1-20,其和进程P1接触并且能检测作为本地进程P1发送到另一个远程进程P2的请求或响应的参数出现空对象标识符的事件,
更新模块ST1-16,其能从空对象的标识符和从该空对象的确定内容把该内容集成到该空对象的结构中并且由此更新该空对象,
监控器ST1-12,其和检测器ST1-20以及本地进程P1链接并且能响应该检测器的检测拦截发送、为使远程进程可得到该对象的内容处理该空对象并且在适当的处理条件下进行该请求或响应的发送。
后面会进一步讨论的对空对象的处理包括以下之一:
等待内容并且在该等待时间期间暂停该事件的执行,该适当的处理条件对应接收该内容或者通过一旦接收集成其内容则更新该空对象。
存储标识该空对象以及该空对象的内容必须引入到的进程的数据,接着在不知道该空对象的内容下进行该事件的执行。
继续该事件的执行。
在进程P1使用该空对象标识符的情况下,由于对象语言的语法阻止访问该空对象,自动实现该使用的检测。后面会进一步讨论检测这种使用后保留的处理。
该监控器包括装配称为干预进程的进程,干预进程是根据进程为源进程还是为认识进程进行的,其中认识进程是计算空对象的内容的进程。该监控器包括称为由于必须而等待的进程,称为和发送请求/结果关联的进程以及称为自动延续的进程。最后一个进程的执行可以并行于或独立于其它进程实现。该自动延续进程具有把空对象的确定内容转送所有可能需要它的进程的用途。
该监控器还和至少一个称为要重传内容表TCR的表一起操作,该表指示空对象的标识符和进程的标识符。利用该表向标识的进程发送空对象的内容。如后面进一步讨论那样,依据本发明的实施例,在认识进程中或者所有发送过空对象标识符的进程中使用这种表。
例如,在图3-1的请求RPC0-a的情况下,进程P0向它的要重传内容表TCR0添加包括该空对象的标识符ID-01和必须对其发送该空对象的内容的源进程的标识符ID-P1的对上。
在下面给出的图4到12的流程图中详细说明各个组成部分的功能。在和图3-1并行下给出说明。
图4-9的实施例处于图3-1的情况下,其中进程P1已对认识进程P0发送请求RPC0-a并且试图向进程P2发送包含该空对象的标识符ID-01的请求RPC1-a或者其中进程P1已经接收由该网络的另一个进程建立的空对象标识符ID-01。
图4示出在发送前串行化请求或响应。在步骤702,串行化来自要发送的请求或响应的参数的第一对象。这种能在拷贝后发送请求或响应的串行化机制尤其包括检测空对象。凭借着调用一个发送例如依据图5或图7的消息相关联的进程,对这种检测添加空对象的管理。如果在步骤704该请求或响应的参数包括其它对象,通过在发送该请求或响应之前循环调用图5或图7的进程也串行化这些对象。
图5和6示出依据本发明的监控器的第一实施例。一旦源进程通过请求或响应的参数发送空对象,则应用该实施例。该模式可称为“等待试图发送”。
一旦根据图4串行化请求或响应,图5提出依据第一实施例的和发送消息(请求或响应)关联的进程。例如,该消息可能是图3-1的以空对象标识符ID-01为参数的消息RPC1-a并且由进程P1发送到进程P2。在该消息中,第一对象的结构通过步骤206。如果在步骤208该对象的结构包括已知的内容,继续图4步骤704的串行化机制。如果该对象的结构不具有全部知道的内容,例如该对象含有指示该对象例如如RPC1-a情况那样是空的标志,在步骤210把该对象检测为空对象。从而在步骤212只要未在步骤214于源进程P1里更新该空对象则暂停该请求或响应的发送。该进程返回到图4的步骤704以串行化该请求或响应的另一个对象。一旦该请求或响应的所有对象都串行化了,进行该消息的发送,例如向进程P2发送进程P1的消息RPC1-a。
在该实施例中,进程P1的监控器能等待接收认识进程发送的消息,该消息包含该空对象的内容和标识符,所述接收是适当的处理条件。
图6示出依据本发明的第一实施例的自动延续进程。在图3-1中,这处于源进程P1已向认识进程P0发送请求RPC0-a以找到空对象标识符ID-01的内容的场合。当认识进程P0处理该请求时,它检查是否能得到ID-01标识的空对象的内容。一旦在步骤220这是可得到的,从认识进程P0的表TCR0搜索和该空对象的标识符ID-01关联的源进程的标识符。由此,向源进程P1发送该空对象的内容和标识符。当向该表中列出的进程发送空对象的内容时逐步删除表TCR0的数据。
一旦进程P1接收该结果,如图4和5的方法所示,在向进程P2发送请求RPC1-a之前它的更新模块通过把该内容集成到该对象的结构中更新该空对象。
对于请求或响应的每个对象,图7提出和发送消息(请求或响应)关联的方法的第二和第三实现。第二实现可以称为“通过空对象发送器进程传输结果”而第三实现可称为“通过空对象发送器进程传送重传命令”。这处于消息RPC1-a包含空对象标识符ID-01并且从进程P1发送到进程P2的场合。通过进程P1的串行器该消息的一个对象的结构经过步骤706。如果在步骤708该对象的结构具有已知的内容,继续图7的步骤704的串行化机制。如果该对象的结构具有未知的内容或者具有部分知道的内容,例如该对象含有指示该对象为空的标志,在步骤710把该对象检测为空对象。这称为在发送请求或响应的情况中拦截发送。接着在步骤712通过监控器ST1-12处理该空对象。根据该方法的实现该处理包括多种选择:
在步骤712-2中,在称为要重传内容表TCR的本地表或列表中,例如和进程P1链接的TRC1中,存储空对象标识符以及该对象的内容必须发送到的目的地进程的标识符例如ID-P2,
或者,在步骤712-3中,从该空对象标识符例如ID-01开始,提取能计算该空对象的内容的认识进程例如P0(称为认识)的标识符,并且对该认识进程表TCR,例如进程P0的TCR0,添加该空对象标识符以及该对象的内容必须发送到的目的地进程的标识符。可以在从源进程向认识进程,例如从进程P1向进程P0,发送消息后要求该认识进程向目的地进程例如P2发送该对象的内容,来实现该添加。
在步骤712-2的情况下,源进程P1的重传内容表TCR包含和目标进程(对其必须重传至少一个的空对象的内容)标识符ID-P关联的空对象标识符ID-OBJ-VID对。监控器ST1-12把该对(ID-P2,ID-01)添加到源进程P1的表TCR1上。该添加对应一个适当的处理条件,其触发把请求RPC1发送到目标进程P2。
在步骤712-3的情况下,从空对象标识符ID-01提取认识进程P0的标识符。该对(ID-01,ID-P2)添加到该认识进程P0的重传内容表TCR0上。至此,源进程P1可以向认识进程P0发送一条消息,以请求对目标进程P2重传由该标识符和该空对象的内容构成的结果。在适当的处理条件下,这可能是为给定空目标提取该认识进程的标识符、发送请求重传的消息或者对表TCR0添加对(ID-01,ID-P2),源进程P1向目标进程P2发送请求RPC1。
在提取认识进程P0的标识符的时刻,如果不存在提取方法,源进程P1可以对目标进程P2通知认识进程的标识符。这样,如果进程P2把空对象标识符用作为请求的参数,进程P2可以要求该认识进程把空对象内容的传输引导到下个目标进程上。
图8示出和实现图7的步骤712-2的处理的发送消息关联的方法相链接的自动延续方法的第二实施例。
对每个进程Px进行该方法,x是一个整数,其可以代表认识进程P0以及任何重传过空对象ID-01的进程即进程P1、P2。
在步骤412,进程Px的监控器处于等待可得到由标识符以及该空对象的内容组成的结果(ID-01,CONT-01)的状态。一旦在进程Px中可得到该结果,它的更新模块通过把该内容集成到该对象的结构中更新该对象并且通过一条消息(例如图3-1中进程P1和进程P2之间的消息R1)在步骤414把该更新的对象发送到所有的目标进程,即所有的它们在表TCRx中的标识符ID-P和空对象标识符IO-01相关联的进程。这样,在步骤416,该结果变成可在所有目标进程中得到。
在迭代方式下,重传过该空对象的目标进程在步骤412等待结果即更新的空对象。一旦这些目标进程接收结果,通过进行步骤414它们变成源进程,即它们通过一条消息向它的表TCR中的所有带有空对象标识符ID-01关联的标识符ID-P的目标进程重传该更新的空对象。进行该迭代直至所有重传过该空对象的所有进程接收该更新的对象。
该处理首先由认识进程进行,然后在迭代方式下由重传过该空对象的并且接收该更新对象的任何进程进行。
这样,该实施例能在源进程一旦可得到该内容并且由该源进程更新了该空对象情况下立即由该源进程向目标进程重传该空对象的内容。可以在迭代方式下并且通过同步RPC式通信进行这种重传。
图9示出和实现图7的步骤712-3的处理的发送消息关联的方法相链接的自动延续方法的第三实施例。
图9中,在步骤612,认识进程P0的监控器处于等待请求RPC0-a的结果变成可得到的状态。该结果包括空对象的标识符和内容(ID-01,CONT-01)。一旦在认识进程P0中可得到该结果,它的更新模块通过把该内容集成到该对象的结构中更新该空对象,并且该监控器在步骤614通过消息R2向所有的目标进程,即表TRC0中所有它们的标识符ID-P和空对象标识符ID-01相关联的进程,发送该更新的对象。这样,在步骤616,该更新的对象在所有目标进程中变成本地可得到的。
在本发明的该实施例中,本地进程的计算机站的监控器能在执行请求或响应的发送并且一旦在该本地进程中可得到该空对象的内容之后向该表中那些标识符和该空对象标识符相关联的进程发送该空对象标识符以及它的关联内容。
图10、11和12说明本发明的第四实施例,其用于检测例如进程P1对空对象的使用。在该实施例中,和发送消息(请求或响应)关联的方法不要求特别处理并且在存在检测到的空对象或其它情况下进行发送。
图10说明依据本发明的第四实施例的由于需要而等待的方法。在步骤702,检测进程P1使用ID-01标识的空对象。在步骤704,暂停进程P1的执行。在步骤706,进程P1的监控器从该空对象的标识符ID-01提取能计算该空对象的内容并使该内容可得到的认识进程的标识符ID-P0。在步骤708,进程P1的监控器向该认识进程P0发送带有该空对象的标识符ID-01以及进程P1的标识符ID-P1的第一消息Transmit(ID-01,ID-P1)。该消息要求,一旦可得到该空对象的内容进程P0向进程P1发送带有该空对象的标识符和内容的第二消息(ID-01,CONT-01)。在步骤710,进程P1的监控器等待由进程P1的更新模块更新该空对象。该空对象的更新对应于该监控器检测的适当处理条件以在步骤712进行对该标识的对象的使用的执行。
图11说明认识进程接收步骤708的第一消息的方法。在步骤716,进程P0的监控器检查接收到的第一消息中的所标识的对象ID-01的内容CONT-01是否如图12中所示由认识进程P0保持在计算的内容表TCC中。如果是这种情况,该监控器从表TCC恢复从空对象的内容以及它的标识符,并且在步骤718利用该对象向进程P1发送包括该空对象的标识符和内容的第二消息(ID-01,CONT-01)。
若不是这种情况,在步骤717,进程P0的监控器对它的要重传内容表TCR0添加已转化成该第一消息参数的数据对(ID-P1,ID-01)。
图12说明依据本发明的第四实施例的自动延续方法。在步骤720,认识进程P0的监控器等待由该空对象的标识符和内容组成的结果(ID-01,CONT-01)变成可得到的。一旦该结果可得到,在步骤722把它添加到认识进程P0的表TCC中并且接着把它发送到P0的表TCR0中它们的标识符都和该空对象标识符关联的所有进程。换言之,进程P0计算该空对象的内容并且接着借助认识进程P0在存储器中保持的表TCC和TCR0向等待该结果的所有进程发送该空对象的标识符-内容对。
这样,认识进程的计算机站能利用由包括把空对象标识符和进程标识符关联起来的数据对的第一表TCR0以及包括把空对象标识符和空对象内容关联起来的数据对的第二表TCC操作。认识进程的计算机站的监控器一旦对该第二表添加空对象的标识符和它的计算出的内容,还能把含有该空对象的标识符和内容的消息:
在检查该空对象标识位于第二表后,发送到本地进程,以及
发送到它们的标识符在第一表中和该空对象标识符关联的各进程,这些标识符已根据进程P1的消息添加到该第一表。
本发明的该使用表TCC和TCR的监控器的实施例能整体管理为了使用该对象等待相同标识的空对象内容的各个进程。
尽管引用了数据表,术语“表”也可以表示相互关联数据的列表并且术语“列表”也可以表示数据表。
这样这些实现能在一旦认识进程计算出和某空对象关联的内容后把该内容重传到所有具有该空对象的标识符的进程上。
本发明的第一、第二和第三实施例的介入进程伴有一个当某个站中的进程P使用某个空对象的标识符时保证自动更新该空对象的内容的一致性的进程,即一个等待必需品的进程,其暂停正在进行的当前任务并且仅当知道该空对象的内容时才恢复该任务。
每个计算机站包括一个本地进程、一个协议模块和一个监控器,从而每个本地进程可能是本地进程、对另一个站的另一个进程的远程进程或者是用来计算空对象的内容的认识进程。每个计算机器可包括一个或更多的本地进程,每个进程具有一个协议模块和一个监控器。
本发明不受上面说明的实施例的限制,而是可扩展成其它实施例。从而,根据期望的性能可以交替地或者组合地使用这些开发的方法。
Claims (17)
1.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的方法,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该方法特征在于包括:
在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710),
所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
为使空对象的内容可由远程进程得到,所述监控器处理该空对象(212,712),该处理包括:
从包含标识符的空对象提取所述认识进程的标识符(706),
向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息(708),以及
等待接收该认识进程发送的消息(212),该消息包括所述空对象的内容和标识符;以及
所述监控器在接收到该认识进程发送的消息后利用更新的空对象进行所述请求或响应的发送(108)。
2.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的方法,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该方法的特征在于包括:
本地进程的检测器检测空对象必须由本地进程使用的事件(702)并且暂停执行该本地进程对该空对象的使用(704),
为使空对象的内容可由远程进程得到,本地进程的监控器处理该空对象(212,712),该处理包括:
从包含标识符的空对象提取认识进程(P0)的标识符(706),所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到,
向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息(708);以及
所述监控器等待该本地进程接收该第二消息,以及一旦接收该第二消息则更新该空对象并且继续其使用的执行。
3.根据权利要求2的方法,特征在于“向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息(708)”的步骤还包括:
一旦该认识进程接收该第一消息,检查该空对象标识符是否在由关联着空对象标识符和对象内容的数据对构成的第二表中(716),
肯定情况下,向该本地进程发送该第二消息(718),
否定情况下,向由关联着空对象标识符和进程标识符的数据对构成的第一表添加第一数据(717)。
4.根据权利要求3的方法,特征在于“否定情况下,向由关联着空对象标识符和进程标识符的数据对构成的第一表添加第一数据(717)”的步骤一旦该空对象的内容可得到(720)则包括:
对第二表添加第二数据(722),以及
向第一表中的那些标识符和该空对象标识符关联的进程发送第二消息(724)。
5.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的方法,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该方法的特征在于包括:
在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710),
所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
为使空对象的内容可由远程进程得到,所述监控器处理该空对象(212,712),该处理包括:
从包含标识符的空对象提取所述认识进程(P0)的标识符(706),
向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息(708);以及
当所述监控器向包括关联着空对象标识符和进程标识符的数据对的表添加与远程进程的标识符关联的该空对象标识符(712-2)时,所述监控器进行所述请求或响应的发送(108)。
6.根据权利要求5的方法,其特征在于,一旦执行发送,“当所述监控器向包括关联着空对象标识符和进程标识符的数据对的表添加与远程进程的标识符关联的该空对象标识符(712-2)时,所述监控器进行所述请求或响应的发送(108)”的步骤包括:
在本地进程中等待该空对象的内容变成可得到(412),以及
一旦该内容可得到,向所述表中那些标识符和该空对象标识符相关联的进程发送该空对象的内容和标识符(414)。
7.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的方法,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该方法的特征在于包括:
在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710),
所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
为使空对象的内容可由远程进程得到,所述监控器处理该空对象(212,712),该处理包括:
从包含标识符的空对象提取所述认识进程的标识符,和
向该认识进程发送具有包括与远程进程的标识符关联的该空对象标识符的第一数据的第一消息,该第一消息请求该认识进程向该远程进程发送具有包括与其内容关联的该空对象标识符的第二数据的第二消息(712-3);以及
所述监控器在发送第一消息后进行所述请求或响应的发送(108)。
8.根据权利要求7的方法,其特征在于,一旦该认识进程接收该第一消息,“所述监控器在发送第一消息后进行所述请求或响应的发送(108)”的步骤还包括:
向包括关联着空对象标识符和进程标识符的数据对的表添加第一数据(712-3)。
9.根据权利要求7或8的方法,其特征在于,一旦本地进程完成发送,“所述监控器在发送第一消息后进行所述请求或响应的发送(108)”的步骤还包括:
等待在该本地进程可得到该空对象的内容(612),以及
一旦该内容可得到,向该表中那些标识符和该空对象标识符相关联的进程发送和其内容关联的该空对象标识符(614)。
10.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的***,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该***特征在于包括:
用于在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710)的装置,
用于所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到的装置,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
用于为使空对象的内容可由远程进程得到,所述监控器处理该空对象的装置,该装置包括:
用于从包含标识符的空对象提取所述认识进程的标识符(706)的装置,
用于向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息(708)的装置;以及
用于等待接收由所述认识进程发送的消息(212)的装置,该消息包括该空对象的内容和标识符;以及
用于所述监控器在接收到该认识进程发送的消息后利用更新的空对象进行所述请求或响应的发送(108)的装置。
11.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的***,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该***的特征在于包括:
用于本地进程的检测器检测空对象必须由本地进程使用的事件(702)并且暂停执行该本地进程对该空对象的使用(704)的装置;
用于为使空对象的内容可由远程进程得到,本地进程的监控器处理该空对象(212,712)的装置,该装置包括:
用于从包含标识符的空对象提取认识进程(P0)的标识符(706)的装置,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到,
用于向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息的装置;以及
用于所述监控器等待该本地进程接收该第二消息,以及一旦接收该第二消息则更新该空对象并且继续其使用的执行的装置。
12.根据权利要求11的***,其特征在于,所述用于向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息的装置还包括:
一旦该认识进程接收该第一消息,检查该空对象标识符是否在由关联着空对象标识符和对象内容的数据对构成的第二表中(716)的装置,
肯定情况下,向该本地进程发送该第二消息(718)的装置,
否定情况下,向由关联着空对象标识符和进程标识符的数据对构成的第一表添加第一数据(717)的装置。
13.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的***,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该***的特征在于包括:
用于在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710)的装置,
用于所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到的装置,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
用于为使空对象的内容可由远程进程得到,所述监控器处理该空对象(212,712)的装置,该装置包括:
用于从包含标识符的空对象提取所述认识进程(P0)的标识符(706)的装置,以及
用于向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息的装置;以及
用于当所述监控器向包括关联着空对象标识符和进程标识符的数据对的表添加与远程进程的标识符关联的该空对象标识符(712-2)时,所述监控器进行所述请求或响应的发送(108)的装置。
14.根据权利要求13的***,其特征在于,一旦执行发送,用于当所述监控器向包括关联着空对象标识符和进程标识符的数据对的表添加与远程进程的标识符关联的该空对象标识符(712-2)时,所述监控器进行所述请求或响应的发送的装置还包括:
在本地进程中等待该空对象的内容变成可得到(412)的装置,以及
一旦该内容可得到,向所述表中那些标识符和该空对象标识符相关联的进程发送该空对象的内容和标识符(414)的装置。
15.一种通过异步通信在一个站的本地进程和另一个站的远程进程之间对面向对象的语言的远程过程进行调用管理的***,这种调用包括来自进程(P1,P2)之一的请求(RPC)并且跟着来自另一个进程(P2,P1)的响应(R-A),该***的特征在于包括:
用于在从本地进程向远程进程发送空对象之前由所述本地进程的检测器检测充当请求或响应的参数的空对象的传输(210,710)的装置,
用于所述本地进程的监控器已请求认识进程(P0)计算该空对象的内容并使该内容可得到的装置,所述认识进程(P0)不属于所述一个站或所述另一个站,其能够响应于来自所述本地进程的请求计算空对象的内容并使该内容可得到;
用于为使空对象的内容可由远程进程得到,所述监控器处理该空对象(212,712)的装置,该装置包括:
用于包含标识符的空对象提取所述认识进程的标识符的装置,以及
用于向该认识进程发送具有包括该空对象的标识符以及该本地进程的标识符的第一数据的第一消息,并且请求向该本地进程发送具有包括该空对象的内容和标识符的第二数据的第二消息的装置;以及
用于所述监控器在发送第一消息后进行所述请求或响应的发送(108)的装置。
16.根据权利要求15的***,其特征在于,用于所述监控器在发送第一消息后进行所述请求或响应的发送的装置还包括:一旦该认识进程接收该第一消息,
向包括关联着空对象标识符和进程标识符的数据对的表添加第一数据(712-3)的装置。
17.根据权利要求15或16的***,其特征在于,用于所述监控器在发送第一消息后进行所述请求或响应的发送的装置还包括:一旦本地进程完成发送,
等待在该本地进程可得到该空对象的内容(612)的装置;以及
一旦该内容可得到,向该表中那些标识符和该空对象标识符相关联的进程发送和其内容关联的该空对象标识符(614)的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0313876 | 2003-11-26 | ||
FR0313876A FR2862830B1 (fr) | 2003-11-26 | 2003-11-26 | Dispositif et procede asynchrones et automatiques de transmission de resultats entre objets communicants. |
PCT/FR2004/003005 WO2005055060A1 (fr) | 2003-11-26 | 2004-11-24 | Dispositif et procede asynchrones et automatiques de transmission de resultats entre objets communicants |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1902590A CN1902590A (zh) | 2007-01-24 |
CN1902590B true CN1902590B (zh) | 2010-09-15 |
Family
ID=34531294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004800392021A Active CN1902590B (zh) | 2003-11-26 | 2004-11-24 | 用于在通信对象之间发送结果的异步和自动设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070147277A1 (zh) |
EP (1) | EP1687719A1 (zh) |
JP (1) | JP2007517279A (zh) |
CN (1) | CN1902590B (zh) |
CA (1) | CA2546888C (zh) |
FR (1) | FR2862830B1 (zh) |
WO (1) | WO2005055060A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8855036B2 (en) * | 2007-12-21 | 2014-10-07 | Powerwave Technologies S.A.R.L. | Digital distributed antenna system |
US8549094B2 (en) * | 2011-06-30 | 2013-10-01 | International Business Machines Corporation | Facilitating communication between isolated memory spaces of a communications environment |
CN103095785B (zh) * | 2011-11-08 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 远程过程调用方法和***、客户端及服务器 |
JP5389210B2 (ja) * | 2012-03-21 | 2014-01-15 | 株式会社東芝 | 通信管理プログラム及びクライアント装置 |
US11170067B2 (en) * | 2017-12-13 | 2021-11-09 | Google Llc | Methods, systems, and media for updating a webpage rendered with cached content |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694598A (en) * | 1994-10-12 | 1997-12-02 | U S West Technologies, Inc. | Method for mapping data between a relational format and an object-oriented format |
US20030115379A1 (en) * | 2001-12-14 | 2003-06-19 | Burton David Alan | Method, system, and program for implementing a remote method call |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05290003A (ja) * | 1992-04-13 | 1993-11-05 | Matsushita Electric Ind Co Ltd | 非同期型遠隔手続き呼び出し装置 |
CA2115464C (en) * | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
JPH0916417A (ja) * | 1995-06-27 | 1997-01-17 | Hitachi Ltd | メッセージ通信方法およびメッセージ通信システム |
US6920636B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US6868447B1 (en) * | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US7150004B2 (en) * | 2002-08-21 | 2006-12-12 | International Business Machines Corporation | Programmatically serializing complex objects using self-healing techniques |
-
2003
- 2003-11-26 FR FR0313876A patent/FR2862830B1/fr not_active Expired - Lifetime
-
2004
- 2004-11-24 CN CN2004800392021A patent/CN1902590B/zh active Active
- 2004-11-24 JP JP2006540532A patent/JP2007517279A/ja active Pending
- 2004-11-24 EP EP04805534A patent/EP1687719A1/fr not_active Ceased
- 2004-11-24 WO PCT/FR2004/003005 patent/WO2005055060A1/fr active Application Filing
- 2004-11-24 CA CA2546888A patent/CA2546888C/fr active Active
- 2004-11-24 US US10/580,256 patent/US20070147277A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5694598A (en) * | 1994-10-12 | 1997-12-02 | U S West Technologies, Inc. | Method for mapping data between a relational format and an object-oriented format |
US20030115379A1 (en) * | 2001-12-14 | 2003-06-19 | Burton David Alan | Method, system, and program for implementing a remote method call |
Non-Patent Citations (3)
Title |
---|
ENNIO GRASSO.PASSING OBJECTS BY VALUE IN CORBA.OMG DOC.N.ORBOS.1996,9-11. * |
李霞峰,盛焕烨.分布式计算环境中的事务管理.计算机工程27 4.2001,27(4),182-184. |
李霞峰,盛焕烨.分布式计算环境中的事务管理.计算机工程27 4.2001,27(4),182-184. * |
Also Published As
Publication number | Publication date |
---|---|
CA2546888C (fr) | 2011-07-12 |
FR2862830B1 (fr) | 2006-02-24 |
WO2005055060A1 (fr) | 2005-06-16 |
JP2007517279A (ja) | 2007-06-28 |
US20070147277A1 (en) | 2007-06-28 |
EP1687719A1 (fr) | 2006-08-09 |
CN1902590A (zh) | 2007-01-24 |
CA2546888A1 (fr) | 2005-06-16 |
FR2862830A1 (fr) | 2005-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756559B (zh) | 面向嵌入式机载***分布式数据分发服务的构建及使用方法 | |
US6999997B2 (en) | Method and apparatus for communication of message data using shared queues | |
CN1939035B (zh) | 用于在计算机设备之间传送数据的方法和设备 | |
US7373424B2 (en) | Exactly once protocol for message-based collaboration | |
CN111258723B (zh) | 分布式***的事务处理方法、装置、***、介质及设备 | |
CN103440142A (zh) | 基于gprs远程升级及动态加载方法 | |
CN106970843B (zh) | 远程调用方法和装置 | |
CN104834534A (zh) | 扩展应用程序功能的方法、装置及*** | |
CN111858083B (zh) | 一种远程服务的调用方法、装置、电子设备及存储介质 | |
CN1902590B (zh) | 用于在通信对象之间发送结果的异步和自动设备和方法 | |
CN101272523A (zh) | 一种移动查询***及其查询方法 | |
CN109144919B (zh) | 一种接口转接方法及装置 | |
CN101594592B (zh) | 基于不同软件平台的消息发送方法及装置 | |
CN113992740B (zh) | 一种基于自主可控的中间件及数据传输方法 | |
CN112395104B (zh) | 一种分布式事务上下文在路由层传递的实现方法与装置 | |
CN104243358A (zh) | Vcf***中pe设备软件加载的方法以及装置 | |
CN116800736A (zh) | 跨云数据处理方法、装置、公有云设备、介质及程序产品 | |
CN113973135A (zh) | 数据缓存处理方法、装置、缓存网格平台和存储介质 | |
CN116095081A (zh) | 基于区块链***的事件处理方法及装置、设备、介质 | |
CN103019867B (zh) | 进程间的脚本执行方法、***及浏览器 | |
CN103297455B (zh) | 浏览器间的连接共享方法和装置 | |
CN112053150A (zh) | 一种数据处理方法、装置及存储介质 | |
KR100298208B1 (ko) | 교환시스템에서의원격프로그램수행인터페이싱방법 | |
CN108804910A (zh) | 账号管理*** | |
CN109254853A (zh) | 数据共享方法、数据共享***及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |