用于使互联网不同计算机中的程序同步的方法

文档序号:6412959阅读:262来源:国知局
专利名称:用于使互联网不同计算机中的程序同步的方法
计算设备日益通过通信设备相互交联在一起。在有些应用领域必须对交联成一个互联网的数据处理设备的同步给予特别的重视。
其中就同步方式而言有各种要求。一方面互联网的计算机要求的同步主要具有时间特性。在此情况时,计算机应尽可能并行工作,即就实在程序的指令的处理而言时间上尽可能总是在相同的处理状态。也就是说在每个瞬间计算机应分别尽可能处理相同的处理序列。
除纯时间并行外,在互联网中的计算机同步时还会产生附加的要求,计算机中的某些处理序列还要尽可能具有相同的数据技术内容。这意味着,在近似同时进行指令处理时,互联网的计算机在尽可能相同的初始值的基础上还应尽可能得出相同的结果值。在这种情况下,在时间同步的范围内对初始值或计算机中各程序的选定的实在处理值进行比较也是有益的。
在实际的技术应用时,由于各种干扰因素的影响并不能实现互联网中相互交联的不同计算机的指令处理在较长的时间内仍保持时间和/或逻辑内容的同步。确切地说,通常为保持或重建计算机中指令处理的同步,必须周期地采取特殊的技术措施。
如果互联网的计算机应构成一所谓的可用度高或故障安全保护的系统,则此点尤为重要。例如所谓的“一比二”或“二比二”系统。
例如在一个“一比二”系统中,两台具有相同程序的交联的计算机将在高计算机系统可用度的边界条件下处理诸如测量值等相同的初始数据。通常必须保证在处理速度仅稍有不同的情况下两台计算机的处理状态在中期期限内不得差异过大。另外通常还必须保证两台计算机必须具有一致的处理结果。此点是如下情况的前提条件,即两台计算机例如被用于控制技术过程,该技术过程要求的可用度很高,并且当两台计算机中的一台失效时,另一台计算机几乎无冲击地继续进行技术过程的控制。在这种“一比二”系统中,两台参与的计算机通过特殊的同步措施必须时间同步。另外通常还必须对其实在处理内容是否相同进行检验。
与“一比二”计算机系统非常类似的是所谓的“二比二”计算机系统中的条件。其中有两台具有相同程序的交联在一起的计算机在高处理安全度的边界条件下处理诸如测量值等相同的初始数据。但当检测到处理结果一突然的、不能消除的不相同性时,即不再存在所需的结果安全度。在进行安全相关的处理时必须将两个计算机中的应用程序置于一安全的状态,例如结束状态。由于不能判定在两台计算机中的哪一台计算机中的哪个程序在突然出现不相同性的瞬间仍具有“正确”的处理结果,故不再可能对安全相关的过程进行其它处理。
甚至在所谓的“二比三”系统中也存在类似的边界条件。在该系统中可以同时满足一方面系统高可用度的要求及另一方面数据的高处理安全性的要求。在这种情况下三台交联的计算机利用相同的程序可以处理相同的初始数据。而且在此,必须保证在正常的时间间隔内,三台计算机的处理状态差异不得过大并且在每台计算机中具有相同的处理结果。如果在对实在处理结果进行比较时检测到不相同性,则可以将一台计算机视为受到干扰,并且如果该计算机的实在处理结果突然地和持续地偏离两台其它计算机的一致的处理结果时,则必须将该计算机从互联网中分离出。在三台计算机中的一台出现故障时,该系统既可以保证处理安全性,又可以保证可用度。该过程也被称做多数判定。根据此情况,原来的“三比二”系统近似变成“二比二”系统或“一比二”系统,此点取决于是否系统中保留下来的两台计算机以高的结果安全性或高的可用度继续对某些程序的数据进行处理。
在上述方式的计算机系统中通过采取通常定期复原的措施必须保证指令的内部处理序列的时间并行或重建此时间并行。其中为实现此方式的同步所需的措施应尽可能少地影响每一参与的计算机的正常工作并且至少应尽可能快地进行。
故本发明的目的在于,提出一种用于使互联的计算机中至少两个程序,尤其是应用程序同步的方法、该方法应尽可能简单、耐用并且尤其占用处理时间很少。
本发明的目的通过权利要求1所述同步方法来实现。在从属权利要求中给出本发明的进一步的有益的实施方式。
下面借助附图所示实施例对本发明作进一步的详细说明,附图中

图1举例示出两台通过数据总线利用设置的通信连接构成互联网的计算机;图2举例示出两台通过数据总线利用所谓的广播交换数据的计算机;图3为第一时间流程图,图中以互联网的两台计算机为例对本发明同步方法的过程做了说明,所述两台计算机可以构成一所谓的“一比二”或“二比二”计算机系统;图4为第二时间流程图,图中以互联网的三台计算机为例对本发明同步方法的过程做了说明,所述三台计算机可以构成所谓的“二比三”计算机系统。
在图1中示出两台数据处理设备(以下简称计算机)间通信连接的第一实施例。其中第一台通过键盘和荧光屏4控制的计算机A通过第一连接3和第二台通过键盘和荧光屏7控制的计算机B通过第二连接6与数据总线1连接。在这两台计算机间设置有一固定的通信连接8,在图1中该连接由点线8示出。通过这种固定的、面向连接的通信连接可以在两台计算机间直接、持续地进行数据交换。每台计算机被调整到精确地向另一台计算机发送数据或从另一台计算机接收数据。
图2示出两台数据处理设备A和B间的通信连接的另一实施例。其中在两台计算机间没有设置固定通信连接。确切地说,该通信以所谓的“广播原理”为基础。其中必要时例如计算机A向数据总线1馈送一信息10,即所谓的广播。所有其它的与数据总线1连接的计算机(在图1所示本实施例中为计算机B,可能还有其它在图1中未示出的计算机)处于可以通过数据总线1实现数据接收的工作方式。所有其它的计算机首先接收由计算机A馈送给数据总线的广播并接着检查,广播的数据是否是针对它的或是否具有可利用的内容。
本发明的方法至少不限于两种对照图1、2所示的连接方式,下面将在图3的实施例中对其做详细的说明。
在图3的时间流程图中的左侧段示出带有时间标记T1…T11的通用时间轴14。这些时间点表示两台计算机A和B在实施本发明同步方法过程中出现的处理状态的启动点。对于计算机A在通用时间轴14右侧的时间轴15上并且对于计算机B在图3最右侧的时间轴16上以功能块方式示出这些处理状态。计算机A、B的时间轴15、16基本标志在处理实在程序,尤其是应用程序的指令时的过程及进展,用任务A表示计算机A的程序,用任务B表示计算机B的程序。本发明同步方法所需的处理状态被插入处理任务A和B中指令的自然过程中并分别导致在任务A、B的指令语句的处理序列中出现至少暂时的中断。本发明方法的优点在于,由同步决定的插入各任务过程中的附加的处理状态尽可能地短。即两个在计算机A、B上运行的任务为实现交替同步仅中断绝对必要的时间。
在图3所示实施例中,假定在一台计算机中一任务的运行期间出现处理状态,即在计算机中处理实在应用程序的指令时例如出现一个指令,以此请求两台计算机间同步过程的运行。在计算机A的时间轴15上这些例如是时间点T2=同步点x和T11=同步点x+1。同样在计算机B的时间轴16上分别有启动同步的时间点T6=同步点y和T11=同步点y+1。出于简化对本发明说明的考虑,首先举例附加假定在计算机A和B中运行的任务A和B由相同的指令语句链构成,因而由计算机A、B处理相同的应用程序。这意味着,属于同步时间点和T6=同步点y的处理状态在任务A、B中的内容是相同的。但在图3的实施例中在计算机A和B中这些任务的处理是时间分离运行的,即处理不再近似同时或同步地进行。从图3中可以看出,属于时间点T2的任务A中的同步点x在时间上早于属于时间点T6的任务B中的相应的同步点y出现。
在时间点T2启动的同步过程因而是必需的。按照本发明该过程以如下方式进行启动,互联网中的某台计算机,在图3的实施例中是计算机A,作为在处理相应任务时的第一台计算机首先到达同步点,即在处理指令时到达一个请求与互联网的另一台计算机或其它的计算机同步的指令。其中在时间点T2首先由计算机A中断对实在应用程序指令的继续处理并且将至少面向至少互联网的另一台计算机的一组同步数据馈送给数据接口。在图3实施例中用处理块17表示此点,该方块内标有“发送同步数据x”,并具有由此引出的箭头35。
按照本发明,启动同步的计算机在馈送同步数据组后立刻转换成接收状态,即转换成实现接收互联网另一台计算机中程序的相应数据组的工作方式。这主要是指在馈送发送计算机的程序的同步数据组的时候,不希望通过接收到由互联网中的接收计算机的程序的应答信号来结束馈送过程。而是在馈送同步数据组后立刻转换到数据接收状态并且在互联网另一台计算机的程序的相应的同步数据组到达前中断对实在任务的继续处理。在图3中此点由在计算机A时间轴15上的用“接收等待”标示的处理块19表示。
为减少同步时交换的和比较的数据量,可以通过所谓的作标记大大减少有待传送的数据的规模。在作标记时,通过一种压缩方法将数据组减少成具有明确特征意义的标记,该特征标记与数据组相比其数量级特别小。
在用“接收等待”表示的处理块19期间,该方块也被视作“准备接收的等待状态”,在计算机B上对应用程序“任务B”的指令的处理向前运行并且在时间点T6上到达一相应的、用“同步点y”表示的同步点。按照本发明,这时计算机B也中断对实在应用程序的指令语句的处理并将一个同步数据组馈送给数据总线。此点在图3中用在计算机B时间轴16上的用“发送同步数据y”表示的处理块20和一个由此方块引出的箭头36标示。在馈送同步数据组之后,计算机B最好立刻转换到接收数据的状态。由于在本实施例中互联网中的另一台计算机A在时间点T2上已经馈送了其同步数据组,故在计算机B转换到处理状态“接收”之后不会出现“等待”阶段,而是可以直接接收已经存在的计算机A的同步数据组同步数据x。此点在图3中的时间点T8上用由“接收候收同步数据x”表示的在计算机B时间轴16上的处理块26标示。
另一方面由计算机B发送出的同步数据组在经图3中由箭头36表示的传输时间后被处于工作状态“接收”的计算机A立刻接收,此点由在计算机A时间轴15上的用“接收同步数据y”表示的处理块22标示。并以此结束其“等待”状态。由于在通常同步数据组“同步数据y”的传输时间相对很短,故该接收同样在接近时间点T8处开始。这时在两台计算机A和B之间实现其处理状态的近似同步,并且接着的指令处理近似同时进行,从而实现努力达到的同步目的。
宜由两台计算机分别在时间点T10处对分别接收的同步数据组进行分析。对于计算机A此点在时间轴15上用处理块24“处理同步数据y”,并且对计算机B此点在时间轴16上用处理块28“处理同步数据x”表示。而且这时这两个处理近似同时进行。
对于本发明的同步方法,某个同步数据组的内容不起作用。在最简单的情况下交替传输的同步数据组同步数据x和同步数据y例如可分别由一单个位(Bit)构成。这个位具有时间标记的功能。因此在采用本发明方法的情况下可以实现计算机处理状态的时间同步。另外同步数据组当然还可以含有任意附加的信息,该附加信息例如可以用于平衡两台计算机的处理结果。在图3的实施例中例如可以通过计算机A同步数据组同步数据x与计算机B同步数据组同步数据y在处理块24(“处理同步数据y”)中的比较,根据比较结果,尤其是当确认两个同步数据组一致时,启动对中断的任务A指令语句的继续处理(“复位/…任务A”)。否则尤其是存在不相同时将中断继续处理或不再继续处理(“…/结束任务A”)。同样通过计算机B的同步数据组同步数据y与接收到的计算机A的同步数据组同步数据x在处理块28(“处理同步数据x”)中的比较或者启动中断的任务B的指令语句的继续处理(“复位/…任务B”),或者将完全终断继续处理(“…/结束任务B”)。
本发明方法具有的特殊优点在于,由于向数据接口馈送同步数据的互联网中的计算机并不需要互联网中另一台计算机对按顺序接收该数据发出应答信号并且也不期望获得这样的应答信号。确切地说,似乎是由其本身向数据接口馈送同步数据的互联网中的另一台计算机“应答”。采用此方式并基于附加交换的同步数据组可以最小的时间损耗和对互联网计算机间的数据传输线路的最小附加负载实现非常有效的同步。在图3实施例中该实现的或重建的同步分别通过另一既在时间轴15上的任务A的指令语句的运行中又在时间轴16上的任务B的指令语句的运行中几乎同时在T11时间点上出现的同步时间点“同步点x+1”及“同步点y+1”示出。
按照本发明的另一实施方式宜由一台计算机向至少互联网中另一台计算机馈送至少一组同步数据以后启动一运行时间,并且在直至运行时间结束都没有接收到至少另一台计算机的同步数据的情况下,则由该台计算机执行预定的指令语句,尤其是产生一个信号或继续进行正常的指令处理。该措施用于安全保护,即防止请求同步的一台计算机在互联网中另一台计算机出现错误时不致于持续地并且有时是毫无效果地等待这另一台计算机的同步数据组的到达。当通过馈送一自己的同步数据组请求同步的计算机到达预定的运行时间结束点,而没有收到另一台计算机的同步数据组之时,则可以由请求的计算机启动相应的措施。例如可以中断与互联网其它计算机同步的尝试并继续进行由于同步尝试期间所中断的对实在应用程序指令的处理。
在图3的实施例中对本发明方法的实施已作了说明。一方面由计算机A在紧接馈送同步数据组“发送同步数据x”后的时间点T3上启动处理块18“起动超时A”中的这种运行时间。由于另一同步数据组,在所述实施例中为计算机B的同步数据y,在经一定的等待时间“等待”后的时间点T8上尚能被及时接收到,故随着到达时间点T10在处理块23“超时A复位”中运行时间被复位。同样由计算机B在紧接馈送同步数据组“发送同步数据y”后的时间点T7上启动在处理块25“启动超时B”中的这种运行时间。由于计算机B加上所述在处理块26中可立刻接收来自计算机A的已经存在的同步数据组同步数据x,故紧接此在处理块27“超时B复位”中可对运行时间复位。
在图4中所述的第二时间流程设计的实施例中,对互联网中的三台计算机按照本发明同步的方法过程作了说明。本发明的同步方法也不受限制地适用于交联成互联网的较多数量的计算机。在图4的实施例中在左侧段的计算机A的第一处理块中示出应用程序“任务A”,尤其是按照本发明构成的同步程序“同步程序A”的运行过程,在图4中段的计算机B的第二处理块中示出应用程序“任务B”,尤其是按照本发明构成的同步程序“同步程序B”的运行过程并且在图4右侧段计算机C的第三处理块中示出应用程序“任务C”,尤其是按照本发明构成的同步程序“同步程序C”的运行过程。这些计算机在一互联网中,主要是通过一个数据网相互连接在一起。在某一应用情况下应用程序任务A、任务B和任务C可以由相同的指令语句构成,所以图4所示互联网是一个在上面已做说明的、所谓的“二比三”计算机互联系统。
在正常的指令处理过程中由计算机A、B及C分别到达一程序点,在该程序点请求并启动与互联网中其它计算机同步。在图4的处理块中,这些程序点是“任务A”运行过程中的程序点“同步点x”、“任务B”运行过程中的程序点“同步点y”、“任务C”运行过程中的程序点“同步点z”。在这每个同步点上分别接有一个名称为“写入同步数据x”、“写入同步数据y”或“写入同步数据z”的指令例行程序。在此对某个任务A、任务B及任务C的处理被中断,必要时为以后继续对程序进行处理暂时存储瞬时数据,并为某个同步例行程序及向数据接口馈送产生一个同步数据组“同步数据x”、“同步数据y”及“同步数据z”。
在图4的实施例中,计算机A的同步程序“同步程序A”具有下述指令语句1.发送C,x2.发送B,x3.超时A置位4.接收B,y5.等待6.接收C,z7.等待8.超时A复位9.布尔运算=x eq y eq z在图4的实施例中,计算机B的同步程序“同步程序B”具有下述指令语句10.发送A,y11.发送C,y12.超时B置位13.接收C,z14.等待15.接收A,x16.等待17.超时B复位18.布尔运算=x eq y eq z在图4的实施例中,计算机C的同步程序“同步程序C”最后具有下述指令语句19.发送B,z20.发送A,z21.超时C置位22.接收A,x23.等待24.接收B,y
25.等待27.超时C复位28.布尔运算=x eq y eq z对同步程序的指令语句1至28的意义说明如下1.计算机A向数据接口馈送一个面向互联网计算机C的同步数据组x(参见附图标记为29的点线箭头)。
2.计算机A向数据接口馈送一个面向互联网计算机B的同步数据组x(参见附图标记为32的实线箭头)。
3.计算机A启动一运行时间A,在此运行时间内预期将会接收到互联网的其它计算机B,C的同步电报y,z。
4.计算机A转换到接收状态并且中断对指令的继续处理。
5.计算机A接收一个面向其的、由计算机B馈送的同步数据组y(参见附图标记为31的实线箭头)。
6.计算机A仍保持接收状态并且继续中断对指令的处理。
7.计算机A接收一个面向其的、由计算机C馈送的同步数据组z(参见附图标记为30的点划线箭头)。
8.计算机A在到达预定的运行时间点前将运行时间A复位,这是因为在此期间可以及时地接收到计算机B和C的预期的同步数据组。
9.计算机A对自己的同步数据组x和接收到的同步数据组y,z进行处理运算。尤其是对同步数据组x,y,z的内容是否相同进行检查。如果在处理运算时得出所需要的结果,则将对任务A继续进行处理。否则在计算机A上对任务A的指令处理将保持中断,并将触发取决于应用的故障处理。
10.计算机B将一个面向互联网计算机A的同步数据组y馈送给数据接口(参见附图标记为31的实线箭头)。
11.计算机B将一个面向互联网计算机C的同步数据组y馈送给数据接口(参见附图标记为34的实线箭头)。
12.计算机B启动一运行时间B,在该时间内预期将接收到互联网其它计算机A,C的同步电报。
13.计算机B转换到接收状态并中断对指令的继续处理。
14.计算机B接收到个面向其的、由计算机C馈送的同步数据组z(参见附图标记为33的实线箭头)。
15.计算机B仍保持在接收状态并继续中断对指令的处理。
16.计算机B接收一个面向其的、由计算机A馈送的同步数据组x(参见附图标记为32的实线箭头)。
17.计算机B在到达预定的运行时间点前将运行时间B复位,这是因为在此期间可以及时地接收到预期的计算机A和C的同步数据组。
18.计算机B对自己的同步数据组y和接收到的同步数据组x,z进行处理运算。尤其是对同步数据组x,y,z的内容是否相同进行检查。如果在处理运算时得出所需要的结果,则将对任务B继续进行处理。否则在计算机B上对任务B的指令处理保持中断,并将触发一个取决于应用的故障处理。
19.计算机C将一个面向互联网计算机B的同步数据组z馈送给数据接口(参见附图标记为33的实线箭头)。
20.计算机C将一个面向互联网计算机A的同步数据组z馈送给数据接口(参见附图标记为30的点划线箭头)。
21.计算机C启动一运行时间C,在此时间内预期将接收到互联网其它计算机A,B的同步电B报x,y。
22.计算机C转换到接收状态并中断对指令的继续处理。
23.计算机C接收一个面向其的、由计算机A馈送的同步数据组x(参见附图标记为29的点线箭头)。
24.计算机C仍保持接收状态并继续中断对指令的处理。
25.计算机C接收一面向其的、由计算机B馈送的同步数据组y(参见附图标记为29的点线箭头)。
27.计算机C在到达预定的运行时间点前将运行时间C复位,这是因为在此期间可以及时地收到预期的计算机A和B的同步数据组。
28.计算机C对自己的同步数据组z和接收到的同步数据组x,y进行处理运算。尤其是对同步数据组x,y,z内容的相同性进行检查。如果在处理运算时得到所需的结果,则将对任务C继续进行处理。否则在计算机C上对任务C指令的处理仍保持中断,并且将触发一个取决于应用的故障处理。
在图4中所示的实施例中,按照本发明的另一实施方式已经考虑到,在两台以上计算机通过数据接口连接或可以连接的情况下每台计算机A,B或C分别馈送一个面向互联网中其它计算机的同步数据组,并且该计算机将以与上述的馈送反向的顺序预期接收来自互联网中其它计算机的一相应的同步数据组。这样在图4中例如计算机A分别馈送一个面向互联网中计算机C和面向计算机B的同步数据组x(发送C,x和发送B,x)。以与此发送顺序相反的顺序,由计算机A预期接收计算机B和C的同步数据组y和z(接收B,y和接收C,z)。
当互联的计算机的任务不是由相同的指令语句序列构成,而是其设置仅仅为了在特定的程序点进行数据交换或甚至仅有一台计算机的设置用于接收来自其它计算机的数据时,本发明的同步方法不加改变仍适用。
权利要求
1.一种用于使互联网的至少两台计算机(A,B,C)中程序同步的方法,所述计算机通过一个数据接口(1,3,6)互联或可以相互连接,其中互联网的一台计算机(A)a)当处理时出现一个请求计算机(A)中的程序(任务A)与在互联网中的至少一台其它的计算机(B,C)中的至少一个程序(任务B,任务C)同步的指令(同步点x,…)时,中断对实在程序(任务A)的指令的继续处理,b)将面向互联网中的至少一台其它的计算机(C,B)的至少一组同步数据(同步数据x,…)馈送给数据接口(1,3,6),c)在将至少一组同步数据(同步数据x,…)馈送后转换到接收状态,并且d)中断对实在程序(任务A)的指令的继续处理(等待),直至计算机(A)通过数据接口(1,3,6)接收到来自互联网至少一台其它的计算机(B,C)中的程序(任务B,任务C)的至少一组同步数据。
2.按照权利要求1所述的方法,其中a)在对面向互联网中的至少一台其它的计算机馈送至少一组同步数据(同步数据x,…)之后由一台计算机(A,B,C)启动一内部运行时间(超时A,…),并且b)这一台计算机(A,B,C)在直至运行时间(超时A,超时B)结束时仍未接收到来自至少一台其它的计算机(A,B,C)的同步数据组的情况下,将实施预定的指令语句,尤其是产生一个信号和/或彻底终断对实在程序(任务A)的指令的处理,c)否则由这一台计算机(A,B,C)将内部运行时间(超时A)复位并且继续进行对实在程序(任务A,…)的指令的处理。
3.按照上述任一项权利要求所述的方法,其中在两台以上的计算机通过数据接口连接或可以连接在一起的情况下,a)互联网中的一台计算机(A,…)分别至少馈送一个面向互联网中每台其它的计算机(B,C)的同步数据组(发送3,x,发送2,x…),并且b)该计算机(A,…)将以与上述馈送相反的顺序预期接收来自互联网中其它计算机的一相应的同步数据组(接收2,x,接收3,x,…)。
全文摘要
一种用于使互联网不同计算机中的程序同步的方法,当在一台计算机中处理时出现一个请求与另一台计算机中的程序同步的指令时,这一台计算机将中断对程序的指令的处理。然后由每个参与的程序向数据接口馈送一组面向至少一台其它计算机中的配合程序的同步数据,之后转换到接收状态并中断对程序指令的处理,直至接收到一组来自其它计算机的程序的同步数据为止。
文档编号G06F9/46GK1217798SQ97194435
公开日1999年5月26日 申请日期1997年5月21日 优先权日1996年5月22日
发明者伯恩德·奥普吉诺思 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1