防止在进程中长期超时的制作方法

文档序号:6413338阅读:175来源:国知局
专利名称:防止在进程中长期超时的制作方法
技术领域
本发明通常涉及计算机和计算机网络领域,并且尤其是涉及用于防止在两个或多个计算机上所运行的进程中长期超时的设备、方法、系统、以及计算机程序产品。
在计算机领域中,为大家所熟知的是一进程运行在一个计算机上,该进程有时必须在另一个计算机上进行某些计算。这类通信通常是以面向客户机-服务器通信的会话形式而提供的。
在这类系统中,客户机利用对数据进行处理的请求来调用服务器。提供这类功能的一类软件是微软公司所提供的分布式组件模型(DCOM)。在DCOM中,利用TCP/IP协议而从客户机至服务器进行远程过程调用(RPC)。因为网络的不稳定性,因此如果服务器或客户机失去其网络连接,那么这些调用在很长一段时间内将被搁置。这是由于这样的事实,即DCOM试图在产生错误信号之前重复调用服务器若干次。这类超时可长达6分钟之久,这在许多应用中是不可接受的。
EP940750描述了其包括有一客户机和一服务器的系统,其中当将一消息从客户机对象发送到服务器对象时,预备了一数据区。如果正确的结束了服务器对象所执行的处理,那么表明处理结果的数据存储在数据区中。如果没有正确的结束服务器对象所执行的处理,那么表明服务器对象状态的数据存储在数据区中。通过读取数据区中的数据,如果已正确的结束了服务器对象的处理,那么客户机对象接收该处理结果的数据。如果没有正确的结束服务器对象的处理,那么客户机对象接收状态数据。然而该文献没有描述如果例如由于网络未连接而造成没有结束处理,那么可避免多长时间的超时。
本发明致力于解决当其难以将计算结果提供给客户机的服务器进行进程调用时所出现的长期超时问题。因此本发明致力于提供一种其可避免长期超时的客户机。
通过其可防止在网络中的至少第一计算设备上所运行的进程中长期超时的方法来解决该问题,所述处理调用对第二计算设备进行处理,并且该方法包括步骤将状态请求发送到第二计算设备,并且如果在第二计算设备未对状态请求做出响应的情况下将对数据进行处理的阻塞请求自动发送到第二计算设备。
该问题还可通过其经由一网络而与其他计算设备相连的计算设备来解决,该计算设备包括一应用单元,该应用单元执行计算任务并且请求对另一个计算设备进行处理;一状态确定单元,该状态确定单元与应用单元相连且将状态请求发送到用于为应用单元执行计算任务的另一个计算设备,并且如果未接收到来自另一个计算机的响应,那么该状态确定单元自动的将对数据进行处理的阻塞请求发送到第二计算设备。
这还可通过一种其包括有一计算机可读介质的程序产品来实现的,该计算机可读介质上具有计算机程序代码装置,当将所述程序加载在计算机上时,该装置可使计算机执行将状态请求发送到另一个计算机,并且在另一个计算机未对状态请求做出响应的情况下,自动的将对数据进行处理的阻塞请求发送到另一个计算机。
根据本发明的另一个方面,提供了一种方法和服务器,该方法和服务器有助于避免客户机中长期超时。
这是通过一种用于确定下述计算设备的状态的方法来实现的,所述计算设备通过一网络来接收来自另一个计算设备的处理调用,该方法包括步骤接收来自另一个计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到另一个计算设备。
这还是通过这样一种计算设备来实现的,该计算设备通过一网络而与其他计算设备相连,该计算设备包括一应用单元,当被其他计算设备请求这样做时,该应用单元为其计算单元执行计算任务;以及一状态响应单元,该状态响应单元接收来自另一个计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到另一个计算设备0。
这还是通过一种其包括有一计算机可读介质的程序产品来实现的,该计算机可读介质上具有计算机程序代码装置,当将所述程序加载在计算机上时,该装置可使计算机执行接收来自另一个计算机的状态请求产生对该请求的至少一个响应;以及将该响应发送到另一个计算机。
根据本发明的又一个方面,提供了一种计算机网络,该计算机网络可避免普通网络中所存在的客户机与服务器之间长期超时。
这是通过这样一种计算设备的系统来实现的,该系统包括其通过一网络而彼此相连的至少第一和第二计算设备。第一计算设备包括一应用单元,该应用单元执行计算任务;一状态确定单元,该状态确定单元与应用单元相连并且将状态请求发送到第二计算设备,所述第二计算设备为应用单元执行某些计算任务,并且如果未接收到来自第二计算设备的响应,那么该状态确定单元自动的将对数据进行处理的阻塞请求发送到第二计算设备,所述处理请求是由应用所引起的。第二计算设备包括一应用单元,该应用单元为第一计算单元执行计算任务;以及一状态响应单元,该状态响应单元接收来自第一计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到第一计算设备。
参考在下文中所描述的实施例,可显而易见的得知这发明的这些及其他方面并对其进行阐明。
参考附图在下文中对本发明进行描述,在附图中

图1图示了通过一网络而彼此相连的两个计算机设备的示意图;图2图示了图1中的两个计算机设备的方框图;图3图示了其与第二计算设备中的状态响应单元相连的第一计算设备中的状态确定单元的方框图;图4图示了根据本发明的在第一计算设备中所执行的第一方法的第一部分的流程图;图5图示了第一方法的第二部分的流程图;图6图示了第一方法的第三部分的流程图;图7图示了根据本发明的在第二计算设备中所执行的第二方法的第一部分的流程图;图8图示了第二方法的第二部分的流程图;以及图9图示了一计算机可读介质,在该计算机可读介质中存储有用于执行第一和/或第二方法的程序代码。
两个计算设备或计算机10,14通过计算机网络12而彼此相连。该网络支持诸如TCP/IP和UDP/IP这样的两类通信协议。为了较容易的理解本发明,图1中仅给出了两个计算机。应该清楚的是,可以有更多的计算机连接在该网络中。
图2图示了通过网络12彼此相连的两个计算机10和14的简单方框图。在这里由一直线来表示网络12。第一计算机10是所谓的客户机,同时第二计算机14是一服务器。第一计算机10具有与客户机DCOM(分布元件模型)单元18相连的一应用单元16,该客户机DCOM单元18与第二计算机14中的相应服务器DCOM单元24进行通信。应用单元16和DCOM单元18还与第一状态确定单元或HPS(宿主轮询服务)客户机20相连,该第一状态确定单元或HPS客户机20还与第二计算机14中的状态响应单元或HPS服务器22进行通信。服务器DCOM单元24与用于执行客户应用的不同计算任务的服务器应用单元26相连。当客户机DCOM单元18调用第二计算机14时,如果第二计算机没有与网络相连,那么可能造成长期超时。这是由于这样的事实,即在产生一错误之前客户机DCOM单元18重试调用第二计算机若干次。这种长期超时是不可接受的,而本发明在第二计算机中的状态响应单元22的帮助下通过使用第一计算机10中的状态确定单元20可解决上述问题。
图3图示了通过网络12与第二计算机的状态响应单元22相连的第一计算机的状态确定单元20的方框图。在这里仍以直线的形式示出了网络12。
状态确定单元20包括一客户机控制单元28,该客户机控制单元28与DCOM单元(向上箭头所表示的)以及应用单元(向左箭头所表示的)相连。客户机控制单元28与客户机发送计时器30以及响应计时器32相连。客户机控制单元28通过网络12与第二计算机的服务器控制单元34进行通信。服务器控制单元34与请求计时器38以及服务器发送计时器36相连。
现在对该设备的功能进行更为详细的描述。应用单元16运行某类应用。该应用单元例如可以是某种电子邮件应用或网络文件系统或顾客特定客户机/服务器应用。当应用需要服务器执行某些处理时,例如取得最新所接收的电子邮件,它与客户机数据通信模块单元18相连并且请求对数据进行处理以便对服务器进行DCOM调用。通常采用TCP/IP协议来执行DCOM调用。同时该应用与状态确定单元或HPS(宿主轮询服务)客户机20的客户机控制单元28相连,并且还将处理请求发送到控制单元。当客户机控制单元28接收到该请求时,它开始执行图4所描述的方法的第一部分。因此在步骤40通过接收应用对DCOM调用的请求而开始该方法。一旦通过应用的第一DCOM调用开始该方法,它则继续监控该应用所进行的任何连续DCOM调用。在步骤42,客户机控制单元28读取其必须轮询的HPS服务器的配置,该配置是开放式配置。如果在步骤44对该配置的检查结果为否,那么在步骤46产生了一错误信息,在步骤48记录该错误并且使终结HPS客户机。在步骤44如果结果为是,那么在步骤50将状态请求或HPS请求从客户机控制单元28发送到服务器控制单元34。将该请求发送到这类轮询所专用的特定端口上并且利用UDP/IP(用户数据报协议网际协议)协议将其作为空请求包来发送。该信息包包括信息源、目的端口号、对包长度的标识、以及校验和以作为包头,并且仅包括一零值以作为数据或负载,其中零值表明一请求消息。在步骤52,客户机控制单元28启动客户机发送计时器或HPS发送计时器30,并且在步骤54启动响应计时器或HPS响应计时器32。此后在步骤56客户机控制单元28输入一状态WaitforResponse。
该WaitforResponse状态如图5所示。在状态WaitforResponse中,在步骤58,客户机控制单元具有其视不同事件而定的两个选项。如果在步骤60控制单元接收到HPS响应,那么在步骤62该控制单元使HPS响应计时器32复位并启动该HPS响应计时器32,并且此后在步骤64与DCOM单元18相连,所述DCOM单元18通过发送一信号EnaOut_Enabled可进行DCOM通信,并且此后在步骤66控制单元进入被激活状态。随后就HPS服务器而言对HPS响应的格式进行描述。在与请求所发送的端口号相同的特定端口号上接收该响应。
客户机控制单元28对HPS发送计时器30的状态进行连续检查。如果在步骤68发送计时器30已超时,在步骤70客户机控制单元28决定发送另一请求,并且在步骤72对发送计时器30进行复位并使其启动。此后在步骤74控制单元结束并且在步骤58回到初始状态WaitforResponse。
图6给出了在状态Enabled下所发生的。在被激活状态中,在步骤76,客户机控制单元具有其视不同事件而定的三个选项。如果在步骤78它接收到一HPS响应,那么它对HPS响应计时器32进行复位并使其启动,此后在步骤82结束,并且此后在步骤76回到初始的被激活状态。
客户机控制单元28对发送计时器30进行检查,并且在步骤84如果客户机HPS发送计时器已出现发送计时器超时,那么在步骤86客户机控制单元发送一HPS请求,并且此后在步骤88对发送计时器30进行复位并使其启动。当这样做时,在步骤90控制单元28结束,并且在步骤76回到初始的被激活状态。
客户机控制单元还对响应计时器32进行检查并且在步骤92如果HPS响应计时器已达到响应计时器超时,那么在步骤94客户机控制单元28通过将一信号EnaOut_Disabled发送到客户机DCOM单元来禁止DCOM通信,此后在步骤96控制单元28回到WaitForResponse状态,该状态就图5已在前面进行了描述。如果在响应计时器超时之前未接收到HPS响应,那么禁止DCOM调用。
现在结合图7和图8的流程图来对第二计算机中的服务器控制单元34的工作进行描述。首先转到图7,在步骤98,将服务器控制单元34初始化为状态WaitforRequest,在该状态下服务器控制单元34等待,直到在步骤100它接收到来自客户机的一HPS请求。在它接收到该请求之后,在步骤102服务器控制单元34对HPS请求计时器38进行复位并使其启动,并且此后在步骤104发送一HPS响应。该HPS响应具有与所接收到的请求类型完全相同的包头。唯一的差别在于该负载或数据是值1而不是值0。值1表明对该请求的响应。此外利用UDP/IP来发送该消息。将该请求以及该响应发送到其与HPS客户机所使用的端口号相同的特定端口上并且在该相同的特定端口上接收该请求以及该响应。此后在步骤106服务器控制单元34还使服务器HPS发送计时器36复位并使其启动,因此在步骤108它进入被激活状态。
在图8中对该被激活状态进行了描述。在该被激活状态中,在步骤110,服务器控制单元34具有其视不同事件而定的三个选项。如果在步骤112接收到HPS请求,那么在步骤114服务器控制单元34对HPS请求计时器38进行复位并使其启动,因此在步骤116服务器控制单元34结束,并且在步骤110回到初始的使能状态。该服务器控制单元34连续的对服务器发送计时器36进行检查,并且如果在步骤118出现了很小的发送超时,那么在步骤120发送一HPS响应,在步骤122再次对HPS发送计时器进行复位并使其启动,因此在步骤124控制单元结束并且回到初始的被激活状态110。控制单元34此外对请求计时器38进行监控,并且如果在步骤126出现了HPS请求超计时器时,那么在步骤128控制单元34使发送计时器36停止并且在步骤130进入状态WaitforRequest,就图7已对该状态进行了描述。
按照下述方法来对超时进行处理。在相应控制单元中对定时器值与所设定的超时值进行比较,并且如果计时器到达了设定值,那么由所述控制单元来执行相应动作。
定时器值应当与所设定的标准相匹配,以便在故障超时时所出现的故障进行检测。
必须将客户机HPS响应计时器设置为是HPS发送计时器的2.5倍。这可使HPS客户机错过一个HPS响应包。
必须将服务器HPS请求计时器设置为是客户机HPS发送计时器的1.5倍以便在停止可能的独立传输之前可发送两个响应。下面给出了其略述了优选计时器设置的表格。
DCOM单元18最终按照下述方法来进行工作。当它接收到应用对DCOM调用的请求时,它检测在进行调用之前是否已接收到来自客户机控制单元的EnaOut_enabled信号。如果未接收到,它则将一失败消息立刻返回到该应用。这例如可以利用如下的一小段代码来实现If(HostEnabled){HRESULT DCOMFunctl(par1,par2,par3);}else{HRESULT=B_FAIL;}在控制单元和计时器单元的情况下对本发明进行了描述。这些最好是以一个或多个处理器以及适当程序存储器的形式而提供的,所述程序存储器包含有可执行该方法的软件。该软件还可以提供于诸如CD-ROM盘片这样的其可载入计算机中的计算机可读介质上。图9给出了其包含有用于客户机、或服务器、或这两者的程序代码的一盘片132。该盘片当然还包含用于DCOM单元的上述程序代码。
所描述的发明具有若干优点。通过使用简单协议来检查服务器的状态,在网络故障的情况下可使响应更快。按照这种方法,当网络未连接时,可阻塞对服务器的调用处理。应用会更快的返回并且看起来并未“挂起”。
虽然该协议不是标准的请求/响应协议,但是更像是请求/响应触发协议,因此可使巡回延迟减少了标准请求/响应协议下的值的一半(即仅是传输延迟减少而并非传输和接收延迟)。当网络负载很重时这尤其有利。
通过根据接收请求而具有所适当设置的响应计时器,还可根据客户的兴趣而使对响应的发送保护合理的级别。
类似地,将发送计时器和响应计时器设置成以适度的短间隔来发送状态请求并且可以可靠的方式而更快的闭塞DCOM调用。
在对网络故障进行检查的情况下对本发明进行了描述。然而可使用本发明的原则以检查服务器以及服务器应用的其他类型的状态。在这种情况下,状态请求以及对该请求的响应包含位于数据段中的更多信息或者该消息的负载。
此外在TCP/IP以及UDP/IP的情况下对本发明进行了描述。然而应当认识到,可利用面向计算机协议的任何会话来实现本发明。
仅使用两个计算机已对本发明进行了描述。根据客户机上的不同应用需要向多少计算机请求处理,本发明可用于更多的计算机上。
就DCOM而言,本发明已对其进行了描述。然而本发明可用于这样的其他中间件应用,该中间件应用引导对“用户应用”进行即刻控制之外的其自己的重试机制。
权利要求
1.一种可防止在网络中的至少第一计算设备上所运行的进程中长期超时的方法,所述进程调用对第二计算设备进行处理,该方法包括步骤将状态请求发送到第二计算设备,以及在第二计算设备对状态请求未响应的情况下,将对数据进行处理的阻塞请求自动的发送到第二计算设备。
2.根据权利要求1的方法,包括步骤产生对数据进行处理的请求,这引发了状态请求的发送。
3.根据权利要求1的方法,其中状态请求包括与第二计算设备的网络连接有关的信息请求并且对该状态请求的响应包括来自第二计算设备的与网络连接有关的信息。
4.根据权利要求1的方法,进一步包括对下述时限进行设置的步骤,在所述时限之内接收对状态请求的响应,并且包括这样的步骤,即如果在该时限之内未接收到响应则执行处理的阻塞请求。
5.根据权利要求4的方法,其中第二计算设备具有一时限,在该时限之内将响应发送到第一计算设备,接收响应的时限位于比第二计算设备的发送时限要长两倍与三倍之间。
6.根据权利要求1的方法,进一步包括步骤对下述时限进行设置,在所述时限之内发送状态请求并且当该时限到期时执行对状态请求进行发送。
7.根据权利要求1的方法,其中使用简单的第一协议来发送状态请求并且利用第二标准协议来发送处理请求。
8.一种用于确定计算机设备的状态的方法,该计算机用于通过网络来接收来自另一个计算设备的处理调用,该方法包括步骤接收来自另一个计算设备的状态请求;产生对该请求的至少一个响应;并且将该响应发送到另一个计算设备。
9.根据权利要求8的方法,其中利用第一简单协议来接收和发送状态请求以及对这些请求的响应。
10.根据权利要求8的方法,其中产生步骤包括无需等待下一个请求即可在请求时限之内产生多于一个的请求。
11.根据权利要求10的方法,其中一旦接收到状态请求时,就对请求进行响应的时间进行复位。
12.根据权利要求10的方法,其中另一个计算机具有发送时限,该发送时限用于确定何时发送状态请求,并且所述请求时限位于比该发送时限要长一倍与两倍之间。
13.根据权利要求8的方法,进一步包括对用于发送响应的时限进行设置的步骤,并且当所述时限到期时发送该响应。
14.一种通过一网络而与其他计算机设备的计算设备,该计算设备包括一应用单元,该应用单元执行计算任务并且请求对另一个计算设备进行处理;一状态确定单元,该状态确定单元与应用单元相连且将状态请求发送到另一个计算机,该另一个计算机为应用单元执行计算任务,并且如果未接收到来自另一个计算机的响应,那么该状态确定单元自动的将对数据处理的阻塞请求发送到另一个计算机。
15.一种通过一网络而与其他计算设备相连的计算设备,该计算设备包括一应用单元,当请求另一个计算机这样做时,该应用单元为另一个应用单元执行计算任务;以及一状态响应单元,该状态响应单元接收来自另一个计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到另一个计算设备。
16.一种计算设备的系统,该系统包括通过一网络而彼此相连的至少第一和第二计算设备,第一计算设备包括一应用单元,该应用单元执行计算任务;一状态确定单元,该状态确定单元与应用单元相连并且将状态请求发送到第二计算设备,所述第二计算设备为应用单元执行某些计算任务,并且如果未接收到来自第二计算设备的响应,那么该状态确定单元自动的将对数据处理的阻塞请求发送到第二计算设备,所述处理请求是由应用所引起的,第二计算设备包括一应用单元,该应用单元为第一应用单元执行计算任务;以及一状态响应单元,该状态响应单元接收来自第一计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到第一计算设备。
17.一种其包括有一计算机可读介质的程序产品,该计算机可读介质上具有计算机程序代码装置,当将所述程序加载在计算机上时,该装置可使计算机执行将状态请求发送到另一个计算机;并且在另一个计算机未对状态请求做出响应的情况下,自动的将对数据处理的阻塞请求发送到另一个计算机。
18.一种其包括有一计算机可读介质的程序产品来实现的,该计算机可读介质上具有计算机程序代码装置,当将所述程序加载在计算机上时,该装置可使计算机执行接收来自另一个计算机的对状态的请求产生对该请求的至少一个响应;以及将该响应发送到另一个计算机。
全文摘要
本发明涉及用于防止在两个或多个计算机上所运行的处理中长期超时的设备、方法、系统、以及计算机程序产品。第一计算机(10)包括一应用单元(16),该应用单元执行计算任务;以及一状态确定单元(20),该状态确定单元与应用单元相连。该状态确定单元将状态请求发送到第二计算机(14),所述第二计算机为应用单元执行某些计算任务,并且如果未接收到来自第二计算机的响应,那么该状态确定单元自动的将对数据进行处理的阻塞请求发送到第二计算设备,其中所述处理请求是由该应用所引起的。第二计算机包括一应用单元(26),该应用单元执行计算任务;以及一状态响应单元(22),该状态响应单元接收来自第一计算设备的状态请求、产生对该请求的至少一个响应、并且将该响应发送到第一计算设备。
文档编号G06F9/46GK1672381SQ03817442
公开日2005年9月21日 申请日期2003年6月25日 优先权日2002年7月24日
发明者A·维斯塞 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1