CN1647482A - 多层网络通信***的重试技术 - Google Patents
多层网络通信***的重试技术 Download PDFInfo
- Publication number
- CN1647482A CN1647482A CNA038078554A CN03807855A CN1647482A CN 1647482 A CN1647482 A CN 1647482A CN A038078554 A CNA038078554 A CN A038078554A CN 03807855 A CN03807855 A CN 03807855A CN 1647482 A CN1647482 A CN 1647482A
- Authority
- CN
- China
- Prior art keywords
- transmit leg
- retry
- communication
- intended receiver
- parts
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种对客户和数据源之间的重试通信进行管理的***。所述***包括多个逻辑部件,其按顺序结合以构成用于客户通信的通信路径。在所述通信路径中的所述部件中的至少一个被指定为重试部件。所述重试部件为所述通信路径中的所有部件重试失败的客户通信。
Description
技术领域
本发明涉及对通过网络的通信进行管理。特别地,本发明的实施例属于多层网络通信***的重试技术。
背景技术
处理客户-服务器型通信的网络应用变得越来越复杂。一种典型的客户-服务器通信涉及客户向服务器发送请求、以及服务器返回响应给客户。服务器通常由多个处理客户请求的逻辑部件组成。在响应于客户请求产生响应之前,通常由服务器的多个逻辑部件以某种方式对客户请求进行处理。
在典型的应用中,服务器访问数据源,以响应于客户请求检索客户所需信息。在将客户请求发送到指定数据源或另一部件之前,服务器的每一个逻辑部件都针对客户请求行使职能。例如,服务器部件之一可能为JAVA程序,其执行某些运算、为选定数据查询数据源、执行更多运算,然后将结果返回给客户。服务器的其他部件可能按顺序对通信进行处理,以执行附加的运算或进行更多的数据库查询。
一些服务器部件还可处理对客户请求的响应。例如,除了将客户请求发送到数据源以外,服务器部件还可将来自数据源的响应发回给客户。该部件还可执行运算,和/或响应于接收针对客户请求的响应而进行附加的查询。
在一些结构中,处理客户通信的设备包括负载平衡设备和服务器。该服务器由负载平衡设备从一组服务器中选出。选定的服务器和负载平衡器被用来在客户和诸如数据库的数据源之间交换信息。服务器将客户通信从负载平衡设备发送到指定数据库。该数据库可相当于网络服务器或其他机器,其提供对关于客户通信的信息的访问。
对客户通信进行处理的多个设备相结合提供了多个逻辑部件,其在客户通信被发送到数据库之前对该客户通信进行处理。例如,可以在服务器内把逻辑部件分层,以便对用于处理客户通信的过程进行分配。这些分层的部件以顺序的方式对客户通信进行处理。其结果是,该客户通信在被指定数据库接收之前,由位于不同服务器上的多个部件按顺序对其进行处理。
客户通信经常不能到达其目的地。其不能到达的原因可能是因为,在将客户通信发信号通知给目的地时,目的地无法访问。其原因还可能是因为,对客户通信进行处理的部件之一发生故障。
许多客户-服务器***中的部件被配置成在检测到失败的地方重试失败的客户通信。在多层结构中,失败检测传播到单独处理客户通信的所有逻辑部件。其结果是,在同一服务器中的多个部件分别尝试重试失败的客户通信。而且,在失败被报告回客户之前,这种多层结构使得一些部件多次重试发送失败的客户通信。大部分这些额外的重试失败的客户通信的尝试都是没有用处的。
例如,如图8所示,假设服务器800提供一个通信路径,其包括第一应用程序830、第二应用程序840、和服务器应用程序820。该通信路径用于将客户810与目的地连接。在这个实例中,目的地为数据源850。传统的不具有指定重试部件的***将使用第二应用程序840、第一应用程序830、和服务器应用程序820来反复重试失败的客户通信。例如,如果在第二应用程序840试图联系数据源850时发生失败,那么传统的***将使第二应用程序840重试客户通信,然后将失败指示给第一应用程序830。然后,该第一应用程序重试失败的客户通信。如果数据源850对第二应用程序840仍然不可用,那么在第一应用程序830进行重试之后由第二应用程序840进行另一次重试。在第二应用程序840重试两次、第一应用程序830重试一次之后,将失败通知给服务器部件820。如果服务器部件820进行了重试,那么第二应用程序840可重试两次,并且第一应用程序830可再次重试。其结果是,在通知客户810失败的客户通信之前,该客户将等待较长的时间。
在一些现有***中,当在具有冗余部件的环境中发生失败,则该环境将对自身重新配置,使得后续请求被发送到另一未失败的环境。这样,重试请求通常将取得成功,但需要另一机器和附加的资源。例如,如果数据库服务器崩溃,该环境将对自身重新配置,使得后续请求到达另一个服务器上。可由负载平衡器来选择另一个服务器,这通常在初始服务器的内部部件失败之后进行。
综上所述,无疑需要提供用于处理通信失败的技术,而避免了由通信路径中的多个部件为响应在通信路径中发生的失败进行重试操作而造成的浪费。
发明内容
本发明提供了用于对客户和数据源之间的失败通信进行重试的技术。在一个实施例中,服务器构成了客户和数据源之间的通信路径的一部分,其被配置成包括位于单个内部逻辑部件上的重试逻辑。服务器内的其他逻辑部件将失败的客户通信报告给指定用来尝试重试的部件。
根据一个实施例,重试通信可由重试逻辑所驻留的部件进行管理。该重试逻辑可被配置成选择性地确定某些通信为可以重试,并确定其他通信为不可重试。该重试逻辑还可与为失败的客户通信选择新的通信路径的逻辑相结合。
其他实施例包括重试技术和对来自客户通信路径中的另一设备的重试通信的管理。例如,可以用负载平衡设备或客户来实施重试技术。
附图说明
本发明以举例的方式、而不是以限定的方式,通过附图中的图来进行说明,其中,相同的附图标记指代相同的元件,其中:
图1示出了一种包括用于在客户和数据源之间传送通信的指定重试部件的***;
图2所示的方框图示出了被配置成包括有重试逻辑的服务器的操作;
图3示出了在客户和数据源之间的通信路径中实施重试逻辑的流程图;
图4示出了一种实施服务器的重试逻辑的方法,其中所述服务器用来将客户与数据源相连接;
图5示出了一种用于在将客户与数据源相连的***上实施重试逻辑的方法;
图6示出了一种数据结构,其能以重试逻辑来实施,以确定某种失败通信是否可以重试;
图7所示的方框图示出了一种通过其实施本发明实施例的计算机***;以及
图8示出了一种用于重试针对服务器的失败的客户通信的现有技术***。
具体实施方式
本发明描述了一种用于访问数据源的方法和装置。在以下的描述中,为了进行说明,为提供对本发明的详尽理解而列出了许多具体细节。然而,可以知道,本发明无需这些具体细节也可得以实施。在其他情况下,为了避免对本发明的不必要的混淆,以方框图的形式示出了众所周知的结构和设备。
A.总述
根据一个实施例,为构成客户和数据源之间的通信路径的顺序部件指定一个重试点。该指定的重试部件被设置在通信路径中的多个部件中的一个上。如果从客户到数据源的通信没能到达其目的地,那么该指定的重试部件就是重试把客户通信发送到目的地的惟一部件。其他的部件不重试把通信发送到目的地,而是将通信未能到达目的地通知给重试部件。
当客户通信在通信路径中的一个部件上失败时,需要重试部件。此外,当通信路径中的一个部件漏掉、或未能处理客户通信时,也需要重试部件。
目的地可以是数据源。数据源的例子包括数据库和目录。在一个实施例中,包括数据库服务器和数据库的数据库***可包含数据源。
数据源可包括网络服务器、诸如目录和数据库设备的数据存储器以及其他存储设备。在互联网应用中,数据源50通常为网络服务器、或网络激活数据存储器。
逻辑部件包括程序、应用程序、软件、编码的固件或硬件,其被配置成处理客户通信以便执行特定任务。重试部件是被配置成向数据源重试发送客户通信的逻辑部件。重试部件通过把通信发送给构成到数据源的通信路径的一部分的中间部件,来向数据源发送通信。该重试部件可使用初始通信路径、或类似通信路径来重试发送客户通信。作为选择,该重试部件可被配备成选择由在重试部件外部的设备上的不同中间部件构成的另一通信路径。如果初始数据源在通信路径中失败,该重试部件还可尝试访问另一数据源。
重试部件的一个具体实例为位于服务器上的逻辑服务器部件,其为服务器服务并分派输入请求。用作服务器接口的其他部件同样可适于实施重试逻辑。
在一个实施例中,将多个逻辑部件按顺序连接,以将通信从客户发送到数据源。这些部件中的一个被指定为用于通信路径部件的重试部件。如果客户通信被检测为未能访问数据源,则该重试部件向数据源重试发送第一通信。通信路径中的其他部件被指定向重试部件发送通信失败的指示。当通信路径中的一个部件失败,前一个部件(亦即,将请求发送到失败部件的部件)向重试部件发送指示。任何不是重试部件但却位于通信路径中的部件接收指示,并且必须同样地将向重试部件发送指示。这样,每一个其他部件都将指示通知给重试部件,而不需要向数据源重新发送第一通信。
通信路径包括逻辑部件,其按顺序结合以将客户通信发送到数据源。通信路径的逻辑部件可位于不同的设备上。重试点为沿通信路径的一个位置,逻辑位于该重试点处,以重试发送失败的客户通信。
在尝试重新向数据源发送客户通信之前,重试逻辑可确定失败的客户通信是否可以重试。某些类型的通信或特定请求可被指定为不可重试。这些指定可结合到重试逻辑中。
在重新发送失败客户通信之前,重试逻辑还可确定替换的通信路径。该替换的通信路径可位于前一通信路径的部件所在的设备之外。重试部件可沿任一路径发送请求,以绕过失败的通信。例如,重试逻辑可考虑是否需要将通信发送到发生失败的设备之外。在进行该决定的过程中,重试部件还可确定一个特殊请求是否可以重试。
在另一实施例中,在客户和数据源之间的第一通信路径上指定重试点。该第一通信路径包括多个逻辑部件,其顺序地接收并发送客户通信到数据源。该重试点构成通信路径的一部分。如果客户通信路径中的一个部件失败,或者不能到达其目的地,则向该重试部件发出失败通知。
例如,在一个实施例中,如果客户通信不能沿位于重试点和数据源之间的通信路径部分访问数据源,则通过该通信路径中的其它部件中的一个或多个来通知重试点,指示客户通信未能访问数据源。
根据一个实施例,重试逻辑可确定客户通信是否可以重试。只有在客户请求被确定为可以重试的情况下,重试逻辑才可重新发送客户通信。
利用本文中描述的技术,***可使用单个的指定重试部件来执行最优次数的重试。在很多情况下,一次重试就足以确定数据源是否可以访问。与此相反,传统的***无法被设定成执行最优次数的重试,尤其是仅一次重试,因为一旦检测到失败,通常每个部件将自动重试客户通信。因此,即使各个部件都被设置为执行一次重试,实际执行的重试次数可能至少与执行重试的部件的数目一样多。
更进一步,本发明的实施例允许重试逻辑被配置成做出其他确定和决定。具体来说,重试部件可被配置成确定一个特殊的客户通信是否可以重试,以及如果需要的话确定一条新的通信路径。传统的***包括太多的重试失败的客户通信的部件,使得对重试逻辑进行配置变得困难,而且效率低。
在另一个实施例中,重试部件在重试发送客户通信之前进行确定。该确定可与之前试图重试发送客户通信的次数相对应。如果之前尝试的次数小于最大重试阈值,则重试部件可重试发送客户通信。
B.重试技术的***描述
图1示出了一种包括用于在客户和数据源之间传送通信的指定重试部件的***100。***100的选定部件按顺序结合,以构成在客户10和数据源50之间的一个或多个通信路径。重试部件在选定的通信路径上标示出指定位置,在这个位置处,可重新发送失败客户通信以访问数据源50。
为了进行说明,在客户10向数据源50请求信息的环境下说明***100。然而,***100可用在更广泛的环境中,可对通信进行处理并将其从源计算机发送到目的计算机,以及对响应进行处理并将其从目的计算机发送到源计算机。因此,参照作为客户通信目的地的数据源50对一个应用进行说明,其中,目的地为例如数据库***。
***100可在客户10和数据源50之间提供多个通信路径。每一个通信路径仅包括一个部件作为重试部件,或者作为选择,仅包括任一服务器上的构成通信路径一部分的选定部件作为重试部件,该重试部件被配置成重试把失败客户通信发回给数据源。各个通信路径的其他部件被配置成将失败的客户通信提交到重试部件。
在其他的优点中,本发明的实施例避免了失败的客户通信的无用重试次数的增加。通过选定一个用于进行重试的部件,使***100进行重试的次数得以减少。其结果是,与其他不是特别地使用重试逻辑的***相比,尤其在与这些其他***的最坏情况,即多个部件停止发出重试请求相比较时,将失败报告回客户10的延迟可显著减少。
由一个实施例所提供的另一优点在于,重试逻辑可通过较容易且很少的支持在***中得以实施。例如,重试逻辑可在服务器的单个逻辑部件中得以实施。在重试逻辑已经处于适当位置的情况下,可将附加部件加入到环境中,而无需对环境进行实质性的配置。
此外,将重试逻辑集中到一个部件中将使对通信重试的管理变得容易。重试逻辑可被配置成防止对先前已被指定为不可重试的某些客户通信进行重试。例如,安全的通信先前可被指定为不可重试。可以基于请求类型来确定请求是否可以重试。例如,那些无论什么时候都返回同样的答复的请求是可以重试的。
与此相反,其他传统的***允许通信路径的各个部件都能重新发送失败客户通信。这通常导致延迟延长,因为在客户被最终通知先前的通信已经失败之前,一个失败部件可使得在通信路径的上行的多个部件重试发送客户通信。
在图1所示的结构中,***100包括负载平衡设备25、第一服务器20、第二服务器30和第三服务器40。这些服务器的组合可相当于一个服务器场(farm),其用来在将客户通信发送到目的地之前对客户通信进行处理。负载平衡设备25选定这些服务器中的一个,以形成客户10和数据源50之间的通信路径。
网络15可相当于一个广域网,例如互联网。客户10可为一个终端,其被配置成通过网络15进行通信。客户10和网络15的一个典型实例包括一个带有访问互联网的网络浏览器的台式计算机。
负载平衡设备25截取从客户10发送到数据源50的客户通信。客户通信可相当于一个数据请求。客户通信可选择性地请求在数据源50内写入数据、修改已有数据、或删除已有数据。响应于接收客户通信,负载平衡设备25根据各个服务器的可用资源来选定一个服务器以访问数据源50。每个服务器20、30、40都包括多个逻辑部件,其按顺序对客户通信进行处理。在图1提供的实例中,负载平衡设备25选定第一服务器20,从而形成一个由客户10、负载平衡设备25、第一服务器20和数据源50组成的通信路径12。在第一服务器20中的多个逻辑部件(参见图2)按顺序结合,从而形成通信路径12的一部分。
根据一个实施例,服务器20、30、40中的每一个都配置有重试逻辑,其用于在该服务器内从指定逻辑部件重新发送失败客户通信。图1示出了第一服务器20,其被配置成包括重试部件22。在一个实施例中,重试部件22直接与负载平衡设备25通信。例如,重试部件22可在直接从平衡负载设备25分派客户通信的逻辑服务器部件上得以实施。第一服务器20的多个其他部件24沿通信路径12被设置在重试部件22之后。
在该结构中,对顺序结合以形成通信路径12的第一服务器20的各个部件进行分布,使得序列中的第一部件成为重试失败客户通信的惟一部件。对于失败客户通信而言,第一服务器20中的其他部件24向重试部件22返回一个客户通信失败的指示。部件24不尝试重新发送失败客户通信。
在其他的实施例中,重试逻辑可被设置在沿客户10和数据源50之间的通信路径之一的其它位置。在一个实施例中,负载平衡设备25包括用作重试部件22的逻辑。在另一个实施例中,客户10包括用作重试部件22的逻辑。通过将重试部件22从数据源50中除去,减少了在通信路径上可以重试向数据源50发回失败客户通信的部件的数目。
图2所示的方框图示出了被配置成包括重试逻辑的服务器的操作。该服务器包括多个逻辑部件,其以顺序的方式对发送到服务器的通信进行处理。
在一个实施例中,第一服务器120包括使用多重的分层的部件处理客户通信112。该部件按照顺序114排列,以处理客户通信112。顺序114中的至少一个部件被指定为重试点122。
在一个实施例中,重试部件122对应于在序列114中最先接收客户通信112的部件。在序列114中使用的其它部件包括第一应用程序124和第二应用程序126。第一应用程序124从重试点122接收客户通信112。第二应用程序126从第一部件124接收客户通信112。第二应用程序126把客户通信112发送给数据源150。只有在重试点122,服务器120才试图把失败客户通信112重新发回给数据源150。
在一个实施例中,重试部件122对应于被配置成包括重试逻辑的第一服务器120的服务器部件。第一应用程序124可相当于一个表示层,其用于表示从数据源150到客户110的信息。第二应用程序126可相当于特殊类型网络通信的业务逻辑或其他应用程序。例如,在JAVA环境中,第一应用程序124为JAVA Servlet Engine(JSERVE)应用程序,以表示来自数据源150的JAVA激活数据。第二应用程序126可相当于EJB服务器应用程序,其传送用于完成商业应用程序的逻辑。每一个应用程序都可独立地对客户通信112进行处理和修改。
数据源150可利用相反的顺序116将响应132传回给客户。通过该相反的顺序116,响应132被数据源15传回给第二应用程序126,然后,第二应用程序126将该响应发送到第一应用程序124,然后发送到重试点122。接下来,响应132被发回给客户110。
有时,处理客户通信112的部件中的一个失败。该失败可由序列114中的任意部件引起,或者作为选择,可由数据源150引起。例如,数据源150可变得不可用或太过拥堵,而不能处理客户通信112。然后,当第二应用程序126尝试传送客户通信112到数据源150时,将产生失败。位于失败客户通信点处的部件可利用相反的顺序116发送一个客户通信112失败的指示。重试点122响应于接收到客户通信112失败的指示,可重试将客户通信112发回给数据源150。
当重新发送失败客户通信112时,重试点122实施一个重试序列。在一个实施例中,第一重试序列118包括与序列114相同的部件和排列。在另一个实施例中,第二重试序列119包括另一服务器130的部件。例如,第二重试序列119可使得重试点122将客户通信112发送到第二服务器130的第一应用程序134上。第一应用程序134可将客户通信112发送到该服务器上的第二应用程序136上。第二服务器130的第一和第二部件134和136可执行与第一服务器120的第一和第二应用程序124和126相似的或相同的功能。
更进一步,如果服务器120包括多个用于处理和发送客户通信的过程,其他的实施例可使得重试点122选定同一服务器120上的另一过程。
在一个实施例中,每一个部件都在其后续层中保存部件的拓扑图。然后,每个部件都可选定可用的部件。重试点122可利用拓扑图来确定其他服务器、或相同服务器上的部件的状态。重试点122可配备有智能信息,以利用来自拓扑图的信息选择合适的路径来发送重试请求。
此外,其他的实施例可提供其他的重试序列。例如,如果序列114中的一个部件被检测为已经失败,则当位于重试点122处的部件重试发送失败客户通信112时,可选择绕过该部件。
服务器部件122可包括用以选定重试序列的逻辑。例如,如果客户通信112是安全的,服务器部件122可只使用第一服务器120内部的重试序列。作为选择,服务器部件122可根据性能选定重试部件。例如,服务器部件122可确定应该将重试保持在同一服务器上,以便使用具有用于特殊客户请求的有用数据集的高速缓存。
图3示出了在客户310和数据源350之间的通信路径中实施重试逻辑的流程图。该通信路径包括负载平衡设备315、服务器部件320、第一应用程序330、第二应用程序340和数据源350。图3中假定服务器部件320包括重试逻辑。此外,图3中假定重试逻辑不选择一个新的通信路径来重新发送失败客户通信。
如上所述,如果图3所示的***使用传统的重试技术,那么将导致无用重试次数的增加。现在,将使用图3来说明一个***的操作过程,该***被配置成从指定部件重试失败客户通信,由此减小由传统的***所产生的延迟。通过仅仅使用指定重试部件320,本发明的实施例可将重试次数减少至一次尝试。
利用在此所述的技术,客户通过网络把发出的客户通信213传送到负载平衡设备315。该负载平衡设备315将客户通信312发送到服务器部件320。该服务器部件320可位于由负载平衡设备315选定的服务器上。客户通信312由服务器部件320、第一应用程序330、和第二应用程序340发送到数据源350。
例如,如果第二应用程序340不能访问数据源350,那么第二应用程序340可将失败通知322发送到第一应用程序330。该第一应用程序330将通知322发送到服务器部件320。
响应于接收来自第一应用程序330的通知322,服务器部件320可将重试332发回给第一应用程序330。重试332包括客户通信312的内容。该重试332被发送到第一应用程序330、第二应用程序340,然后被发送到数据源350。
如果重试332成功,来自数据源350的响应342被返回到客户310。可以利用第二应用程序340、第一应用程序330、服务器部件320、负载平衡设备315和客户310这样的顺序,把响应342发送到客户310。
C.实施重试技术的方法
图4示出了一种实施相对于服务器的重试逻辑的方法,其中该服务器用于使客户与数据源连接。如图4所描述的方法可在如图2所描述的部件和***上得以实施。
在步骤410中,对失败客户通信进行检测。该失败客户通信可在失败点处被检测到。例如,如果第二应用程序126(图2中示出)不能访问数据源150,则检测点在第二应用程序126处。
在步骤420中,将失败客户通信报告给重试点。检测到失败的部件可按照通信路径的顺序,将失败报告回给相邻的部件。一个或多个中间部件相结合,以按顺序将客户通信从检测到失败的部件发送到重试点。作为选择,检测到失败客户通信的部件可直接将失败报告给重试点,从而绕过通信路径上的中间部件。
在步骤430中,将失败客户通信从重试点重新发送到数据源。可响应于重试点接收到客户通信失败的报告而自动执行该步骤。
在步骤440中,确定重试是否成功。根据一个实施例,如果重试失败,则将失败报告给步骤450中的客户。因此,重试点可被配置成只尝试一次重试。
如果重试成功,则步骤460将来自于数据源的响应报告回客户。例如,如果客户通信相当于一个读取操作,则发回给客户的响应包括数据和其他信息,使得客户的浏览器能够显示对应于客户请求的信息。
与其他的重试技术相对比,如图4所描述的实施例所提供的一个优点在于,对失败客户通信进行检测并采取行动的点被定位在客户通信路径中的一个选定部件上。发生重试行为的点没有被客户通信的通信路径上的多个部件毫无区别地共享。当多个逻辑部件相结合而形成客户通信的通信路径时,一个实施例使得仅有一个部件对失败采取行动。这种方法保护了其中有数百或数千个客户通信同时被处理的***的资源。
此外,重试部件可以是通信路径中对失败进行检测的惟一位置。作为选择,可在客户通信路径中的另一个部件上中检测失败点。更进一步地,重试部件可对外部监视器检测到的失败客户通信进行重试。
而且,被配置成实施如图4所描述的方法的***还可被配置成实施带有重试逻辑的其它特征。图5描述了另一种重试技术的实例。
图5示出了一种用于在把客户与数据源相连的***上实施重试逻辑的方法。图2中的附图标记用于说明一个实施例所用的示例性部件。如图5所描述的方法可在形成客户110和数据源150之间的通信路径的一个或多个逻辑部件上被实施。
在步骤510中,由传送客户通信到数据源的逻辑部件之一对失败客户通信进行检测。该逻辑部件可相当于序列114中重试点122后的一个部件。如果逻辑部件之一不能访问序列114中的下一个中间部件,则可将客户通信检测为失败。如果序列114中的最后一个逻辑部件不能访问数据源150,同样可将客户通信检测为失败。
在步骤520中,将客户通信失败的指示传送到重试点。该指示可沿相反的顺序被发回给重试部件122。作为选择,检测到失败客户通信的部件可将指示直接发送到重试点122,从而绕过在客户通信最初从重试点122发送时对客户通信进行处理的中间部件。
在步骤530中,确定失败客户通信是否可以重试。在一个实施例中,在重试点122处进行确定。例如,重试点122可相当于服务器120的服务器部件,其配置有包括用以确定失败客户通信是否可以重试的智能信息的重试逻辑。
为了确定客户通信是否可以重试,重试点122可确定与客户通信有关的信息。该信息可以在表或其他数据结构中被参考,以便指示出失败客户通信是否应该重试。重试点122可确定某些类型的通信是不可重试的。例如,安全通信可被确定为不可重试。或者,通信的类型可指示请求是否可以重试。例如,静态数据请求可被预先确定为可以重试。更进一步地,重试点122可被配置成将客户通信的某些源和/或目的地确定为不可重试。
如果步骤530中的确定结果为失败客户通信是不可重试的,则步骤540中通知客户该客户通信失败。重试点122可将客户通信失败的指示发送给客户110。
在一个实施例中,如果步骤530中的确定结果为失败客户通信是可以重试的,则在步骤550中,重试点122选定一个通信路径以重试发送失败客户通信。例如,重试点122可访问另一服务器,并使用一个新的结合有其他服务器的部件的通信路径。或者,如果,例如确定在数据源150处发生故障,则重试点122可确定使用先前的通信路径。
一旦选定了通信路径,重试点122就将失败客户通信重新发回给数据源150。重试点122通过将客户通信发送到所选定的通信路径的序列中的下一个后续部件,来发送客户通信。
在例如基于网络的通信的应用中,请求的内容可指出请求是否可以重试。例如,URL(统一资源定位符)可包含一个变量或其他用语,以指示请求是否可以重试。
图6示出了一种数据结构600,其能以重试逻辑来实施,以确定某些失败客户通信是否可以重试。该数据结构500使从客户通信确定的一个或多个参数与相应值进行匹配,以确定客户通信是否可以重试。所述从客户通信确定的一个或多个参数属于一组参数特征610。各个参数的相应值属于一组参数值620。
在所提供的实例中,参数特征610包括:安全参数612,用以确定客户通信是否安全;操作参数614,用以确定客户通信指定的为何种操作(读、写、删除等);一个或多个用户定义参数616;和/或一个或多个厂家定义参数618。用户定义参数可由客户端的用户进行定义或配置。厂家定义参数可由服务器供应商进行定义或配置。例如,在服务器场中,厂家在服务器上提供或配置一个或多个逻辑应用程序。
参数值620包括以下值。安全参数值622可要求对非安全通信进行失败客户通信重试,但不对安全通信进行失败客户通信重试。操作参数值624可指定对指定了读操作的客户通信进行重试,但不对指定了写或删除操作的客户通信进行重试。值626可被配置成与用户定义参数616匹配。举例来说,如果客户通信的目的地为特定的网络地址IP(a),那么值626可排除重试失败客户通信。值628可被配置成与厂家定义参数618匹配。例如,对于某些具有ID(a)的客户端用户,厂家定义参数可排除重试失败客户通信。
用于确定可以重试的客户通信的更为复杂的数据结构和技术也是可能的。在一个实施例中,可对数据结构600进行修改,以确定可以利用位于重试点外部的新的通信路径重试客户通信。例如,安全客户通信可以是可以重试的,但只有当其利用相同服务器的部件进行传送时才可以重试。
在一个特定应用中,表600可相当于统一资源定位符(URL)的模式。例如,如果从网络浏览器发送的超文本传输协议(HTTP)请求中的URL模式包含特殊的模式,那么该模式可与特定的重试功能或指示相匹配。例如,指定或包括诸如http://website/documents/reads/*的模式的请求可被确定为可以重试。但指定诸如http://website/documents/updates/*的模式的请求可被确定为不可重试。在后一种情况下,该请求不得是可重试的,因为请求更新数据在本质上意味着,被访问的数据是动态的,而不是静态的。
D.替换的配置
虽然本文中描述的实施例仅仅描述了客户10和数据源50之间的通信路径的单个重试部件,但其他的实施例可提供多个重试部件。具体来说,多个重试部件可以位于客户10和数据源50之间的通信路径上的关键位置。例如,一个实施方案中可使服务器20和负载平衡设备25各自包括一个重试部件。服务器20上的部件被配置成,如果客户通信在服务器和数据源之间失败,则服务器20上的部件从服务器的重试部件重试发送失败客户通信。同样地,负载平衡设备25上的部件被配置成,如果客户通信在负载平衡设备的逻辑部件中的一个上失败,则负载平衡设备25上的部件从负载平衡设备的重试部件重试发送客户通信。
本文中描述的实施例集中在从客户到数据源的通信上。然而,本文中所描述的技术并不局限于此。相反,这些技术可应用于发送方发送信息到指定接受方的任意情况中,其中信息必须通过多个中间部件。例如,该信息可为由数据源响应于来自客户的请求而发送到客户的响应。请求还可从客户被发送到提供服务但不是被客户检索的数据源的服务器。
E.硬件描述
图7所述的方框图示出了一种通过其实施本发明实施例的计算机***700。计算机***700包括总线720或其他的用于传递信息的通信机构,以及与总线720相连接并用于处理信息的处理器704。计算机***700还包括一个主存储器706,例如随机存取存储器(RAM)或其他的动态存储器,其与总线702相连,用于存储信息和要被处理器704执行的指令。在要被处理器704执行的指令的执行过程中,主存储器706还可用来存储临时变量或其他的中间信息。计算机***700还包括只读存储器(ROM)708或其他的静态存储器,其与总线702相连,用于存储静态信息和用于处理器704的指令。提供了诸如磁盘或光盘的存储设备710,其与总线702相连,用于存储信息和指令。
计算机***700可通过总线702与诸如阴极射线管(CRT)的显示器712相连,该显示器用于显示信息给计算机用户。包括字母数字和其他键的输入设备714与总线702相连,用于向处理器704传送信息和指令选择。另一种类型的用户输入设备为光标控制器716,例如鼠标、跟踪球、或用于向处理器704传送方向信息和指令选择以及控制显示器712上的光标移动的光标方向键。这种输入设备通常在两个轴,即第一轴(例如X)和第二轴(例如Y)上具有两个自由度,这使得该设备可在平面内进行定位。
本发明涉及用于实施本文所述技术的计算机***700的使用。根据本发明的一个实施例,响应处理器704执行在主存储器706中包含的一个或多个指令的一个或多个序列,计算机***700执行这些技术。这种指令可从诸如存储设备710的另一计算机可读介质被读入到主存储器706中。主存储器706中包含的指令序列的执行使得处理器704执行本文中所描述的过程步骤。在替换实施例中,硬件电路可用于替代软件指令或与软件指令结合使用,来实施本发明。因此,本发明的实施例不局限于任何具体的硬件电路和软件的结合。
本文中使用的术语“计算机可读介质”指的是参与向处理器704提供要执行的指令的所有介质。这种介质可采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。例如,非易失性介质包括诸如存储设备710的光盘或磁盘。易失性介质包括如主存储器706的动态存储器。传输介质包括同轴电缆、铜线和光纤,其包括构成总线702的线。传输介质同样可采取声波或光波的形式,例如在无线电波和红外数据通信过程中产生的波。
通常形式的计算机可读介质包括,例如,软盘、软磁盘、硬盘、磁带、或其他任何磁介质、CD-ROM、其他任何光介质、穿孔卡、纸带、具有孔图案的其它任何物理介质、RAM、PROM、和EPROM、FLASH-EPROM、其它任何存储器芯片或磁带、下文所述的载波、或计算机可读的其它任何介质。
各种形式的计算机可读介质可涉及用于向处理器704传送一个或多个指令的一个或多个序列以用于处理。例如,这些指令开始时可存储在远程计算机的磁盘上。该远程计算机可将这些指令加载到其动态存储器中,并使用调制解调器通过电话线发送这些指令。计算机***700的本地调制解调器可通过电话线接收数据,并使用红外发送器将该数据转换为红外信号。红外检测器可接收在红外信号中携带的数据,并且合适的电路可将数据放置在总线702上。总线702将数据传送到主存储器706,处理器704从该主存储器706检索并执行这些指令。在被处理器704执行之前或之后,主存储器706收到的指令可选择性地存储到存储设备710上。
计算机***700还包括与总线702相连的通信接口718。通信接口718提供了一个双向的数据通信,其与连接到本地网络722的网络链路720相连。例如,通信接口718可为综合服务数字网(ISDN)卡或调制解调器,以提供到相应类型电话线的数据通信连接。另举例来说,通信接口718可为局域网(LAN)卡,以提供到兼容的LAN的数据通信连接。无线链路同样可以实施。在任意这样的实施例中,通信接口718发送和接收电信号、电磁信号或光信号,这些信号传载表征不同类型信息的数字数据流。
网络链路720通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路720可通过本地网络722向主机724提供连接,或向由互联网服务供应商(ISP)726操作的数据设备提供连接。ISP 726又通过目前通常被称为“互联网”728的全球分组数据通信网络提供数据通信服务。本地网络722和互联网728都使用传载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号和在网络链路720上并通过通信接口718的信号是传输信息的载波的典型形式,其中,这些信号从计算机***700传送数字数据,并向计算机***700传送数字数据。
计算机***700可通过网络、网络链路720和通信接口718发送信息并接收包括程序代码的数据。在互联网情况下,服务器730可通过互联网728、ISP 726、本地网络722和通信接口718传输用于应用程序的请求代码。
处理器704接收到代码后,可执行收到的代码,并/或将收到的代码存储在存储设备710、或其他的非易失性存储器中,以用于日后的执行。通过这种方式,计算机700可获得载波形式的应用程序代码。
在前面的说明中,参照本发明的具体实施例对其进行了描述。然而,很明显,在不脱离本发明的精神和范围的情况下,可对本发明进行各种修改和改变。因此,说明书及附图应视作说明性的,而不是进行限定。
Claims (76)
1.一种用于对发送方和指定接收方之间的通信进行管理的***,
所述***包括:
多个逻辑部件,其相互连接,以将发送方通信从所述发送方按顺序发送到所述指定接收方;
重试部件,为所述多个部件中的一个,如果所述发送方通信不能到达所述指定接收方,则所述重试部件被指定向所述指定接收方重试发送所述发送方通信;以及
多重部件,其在所述多个逻辑部件中,通过将所述发送方通信失败的指示发送到所述重试部件,来对所述发送方通信失败作出响应,而无需它们自身向所述指定接收方重试发送所述发送方通信。
2.根据权利要求1所述的方法,其中,所述发送方为客户,所述接收方为数据源,以及所述发送方通信为对由所述数据源管理的数据的请求。
3.根据权利要求1所述的***,其中,所述重试部件在从所述发送方到所述指定接收方的通信路径上,位于所述多重部件之前。
4.根据权利要求1所述的***,其中,所述重试部件被设置在服务器的接口上,所述接口被配置成对从其他设备到所述服务器的请求进行处理。
5.根据权利要求1所述的***,其中,所述重试部件为服务器的逻辑服务器部件,其服务并分派请求到所述指定接收方。
6.根据权利要求1所述的***,其中,所述重试部件位于负载平衡设备上,所述负载平衡设备从所述发送方接收所述发送方通信,并将所述发送方通信发送到服务器,所述服务器包括所述多个逻辑部件中的其他部件。
7.根据权利要求1所述的***,其中,所述多个部件中的至少多重部件位于第一服务器上,以及,其中所述重试部件被配置成使用第二服务器的部件,来重试将所述第一通信发送到所述指定接收方。
8.根据权利要求1所述的***,其中,所述重试部件访问拓扑图,以确定哪个所述多重部件正确地运行。
9.根据权利要求1所述的***,还包括监视器,其位于所述多个逻辑部件的外部,所述外部监视器被配置成检测所述发送方通信是否没能到达所述指定接收方,并且当所述发送方通信未能到达所述指定接收方时,与所述重试部件通信。
10.根据权利要求1所述的***,其中,所述重试部件在重新发送所述第一通信之前,确定所述第一通信是否可以重试。
11.根据权利要求1所述的***,其中,如果所述多重逻辑部件中的一个或多个指出所述第一通信未能访问所述指定接收方,所述重试部件为用于重试将所述第一通信发送到所述指定接收方的惟一部件。
12.根据权利要求10所述的***,其中,所述重试部件至少部分地基于所述发送方通信的特征,确定所述发送方通信是否可以重试。
13.根据权利要求10所述的***,其中,所述单个重试部件和所述多重部件位于服务器上,以及其中,所述重试部件被配置成,如果任意所述多重部件指示所述第一通信未能访问所述指定接收方,就与其他服务器联络以重新发送所述第一通信。
14.根据权利要求1所述的***,其中,所述重试部件位于所述发送方上,并通过广域网与所述多重部件通信。
15.根据权利要求10所述的***,其中,所述单个重试部件在确定所述发送方通信是否可以重试时,确定所述第一通信是否安全。
16.根据权利要求10所述的***,其中,所述单个重试部件在确定所述发送方通信是否可以重试时,对所述发送方的标识进行确认。
17.根据权利要求10所述的***,其中,所述单个重试部件在确定所述发送方通信是否可以重试时,对所述接收方的标识进行确认。
18.根据权利要求1所述的***,其中,所述单个重试部件位于服务器内,以及其中,所述单个重试部件确定所述服务器中的至少一个其他的可选部件,并通过将所述第一通信发送到所述至少一个其他的可选部件,来重试将所述发送方通信发送到所述指定接收方。
19.根据权利要求1所述的***,其中,在重试发送所述发送方通信之前,所述重试部件确定所述发送方通信之前试图重试的次数,然后仅当所确定次数小于最大重试阈值时,才重试发送所述发送方通信。
20.一种用于对网络通信进行管理的计算机实施方法,所述方法包括:
在发送方和指定接收方之间的第一通信路径上指定一个重试点,所述第一通信路径包括多个逻辑部件,其顺序地接收并将通信从所述发送方发送到所述指定接收方,所述重试点构成所述通信路径的一部分;
如果所述发送方通信不能沿所述重试点之外的所述通信路径部分访问所述指定接收方,则向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示;然后
只从所述重试点重新发送所述发送方通信,以访问所述指定接收方。
21.根据权利要求20所述的方法,其中,响应于检测到所述发送方通信未能访问所述指定接收方,而向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示。
22.根据权利要求20所述的方法,其中,所述重试点的指定包括指定逻辑服务器部件以执行重试逻辑。
23.根据权利要求20所述的方法,其中,检测发送方请求未能检索数据包括,检测到所述指定接收方是不可用的。
24.根据权利要求20所述的方法,其中,检测发送方请求未能检索数据包括,检测到所述通信路径中的逻辑部件失败。
25.根据权利要求20所述的方法,还包括在检测到所述发送方请求失败后,选择新的发送方请求通信路径。
26.根据权利要求20所述的方法,其中,选择新的通信路径包括,使用所述重试点处的逻辑来确定可用的通信路径,以访问所述指定接收方。
27.根据权利要求20所述的方法,其中,指定重试点包括,选择构成所述通信路径的所述逻辑部件的一部分作为所述重试点,所述逻辑部件部分包括至少两个逻辑部件。
28.根据权利要求27所述的方法,其中,选择所述逻辑部件的一部分包括,从负载平衡设备选择所述逻辑部件部分,所述负载平衡设备在多个服务器之间分配负荷量,所述逻辑部件部分位于所述多个服务器中的一个上。
29.根据权利要求20所述的方法,还包括在重新发送所述发送方通信之前,确定所述发送方通信是否可以重试。
30.根据权利要求29所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述发送方的标识,以及如果所述发送方的标识被指定为允许重新发送所述发送方通信,则重新发送所述发送方通信。
31.根据权利要求29所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述指定接收方的标识,以及如果所述指定接收方的标识被指定为允许重新发送所述发送方通信,则重新发送所述发送方通信。
32.根据权利要求29所述的方法,其中,确定所述发送方通信是否可以重试包括,如果所述发送方通信是安全的,则确定所述发送方通信为不可重试。
33.根据权利要求29所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述发送方通信之前试图重试的次数,然后,仅当所确定次数小于最大重试阈值时,才重试发送所述发送方通信。
34.一种用于对网络通信进行处理的计算机实施方法,所述方法包括:
在发送方和指定接收方之间的第一通信路径上指定重试点,所述第一通信路径包括多个逻辑部件,其顺序地接收并将通信从所述发送方发送到所述指定接收方,所述重试点构成所述通信路径的一部分;
如果所述发送方通信不能沿所述重试点和所述指定接收方之间的所述通信路径部分访问所述指定接收方,则向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示;
确定所述发送方通信是否可以重试;以及
如果所述发送方请求可以重试,则从所述重试点重新发送所述发送方通信以访问所述指定接收方。
35.根据权利要求34所述的方法,其中,确定所述发送方通信是否可以重试包括,将所述发送方通信的特征与指示所述发送方通信是否可以重试的相应指示进行参考。
36.根据权利要求34所述的方法,其中,在发送方和指定接收方之间的第一通信路径上指定重试点包括,为所述发送方选定逻辑服务器部件作为所述重试点。
37.根据权利要求34所述的方法,其中,重新发送所述发送方请求以访问所述指定接收方包括,使用不同的通信路径将所述发送方请求重新发送到所述指定接收方。
38.根据权利要求37所述的方法,其中,使用不同的通信路径包括,访问位于所述通信路径之外的通信设备,以将所述发送方通信发送到所述指定接收方。
39.根据权利要求34所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述发送方通信是否是安全的。
40.根据权利要求34所述的方法,其中,向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示包括,在所述重试点和所述指定接收方之间的多个部件中的一个上,检测所述发送方通信是否未能访问所述指定接收方。
41.根据权利要求34所述的方法,其中,仅从所述重试点重新发送所述发送方通信以访问所述指定接收方包括,选择一个新的通信路径,其至少部分地位于在所述重试点的对应设备之外的设备之上。
42.根据权利要求41所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述新的通信路径是否要被使用。
43.根据权利要求42所述的方法,还包括确定所述发送方通信是否安全,然后,如果所述新的通信路径要被用来重新发送所述发送方通信,则确定所述发送方通信是不可重试的。
44.根据权利要求34所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述发送方通信是否安全,并且,确定是否重新发送所述发送方通信以访问所述指定接收方包括,使用在所述通信路径外部的通信设备。
45.根据权利要求34所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述发送方的标识,以及其中,重新发送所述发送方通信以访问所述指定接收方包括,如果所述发送方的标识允许重新发送所述发送方通信,则重新发送所述发送方通信。
46.根据权利要求34所述的方法,其中,确定所述发送方通信是否可以重试包括,确定所述指定接收方的标识,以及其中,重新发送所述发送方通信以访问所述指定接收方包括,如果所述指定接收方的标识允许重新发送所述发送方通信,则重新发送所述发送方通信。
47.一种用于对发送方和指定接收方之间的通信进行管理的***,所述***在包括多个逻辑部件的设备上得以实施,所述多个逻辑部件按顺序结合以将发送方通信发送到所述指定接收方,所述***包括:
存储器,其存储数据,所述数据确定一个或多个特征,并指出具有所述一个或多个特征的通信是否可以重试;以及
重试部件,其是所述多个逻辑部件中的一个,对所述发送方通信的特征进行确定,以及如果所述发送方通信未能访问所述指定接收方,其访问所述存储器,以确定是否重试发送所述发送方通信。
48.根据权利要求47所述的***,其中,所述存储在存储器中的数据通过将指示所述发送方通信是否安全的特征与指示所述发送方通信是否可以重试的相应指示进行参考,来指示所述发送方通信是否可以重试。
49.根据权利要求47所述的***,其中,所述存储在存储器中的数据通过将所述发送方通信的操作与指示所述发送方通信是否可以重试的相应指示进行参考,来指示所述发送方通信是否可以重试。
50.根据权利要求47所述的***,其中,所述重试部件被配置成为所述服务器唯一地重试选择未能访问所述指定接收方的发送方通信。
51.根据权利要求50所述的***,其中,所述重试部件被配置成从一组部件中选择部件组合,所述一组部件包括所述设备的多个逻辑部件,其中,所述一组部件中的至少一些部件位于所述设备外部。
52.一种带有用于管理网络通信的一个或多个指令序列的计算机可读介质,其中,由一个或多个处理器对所述一个或多个指令序列进行的执行使得所述一个或多个处理器执行以下步骤:
在发送方和指定接收方之间的第一通信路径上指定重试点,所述第一通信路径包括多个逻辑部件,其顺序地接收并将通信从所述发送方发送到所述指定接收方,所述重试点构成所述通信路径的一部分;
如果所述发送方通信不能沿所述重试点之外的所述通信路径部分访问所述指定接收方,则向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示;以及
仅仅从所述重试点重新发送所述发送方通信,以访问所述指定接收方。
53.根据权利要求52所述的计算机可读介质,其中,所述用于向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示的指令包括,用于检测所述发送方通信未能访问所述指定接收方的指令。
54.根据权利要求52所述的计算机可读介质,其中,所述用于指定重试点的指令包括,使用逻辑服务器部件以执行所述重试逻辑的指令。
55.根据权利要求52所述的计算机可读介质,其中,所述用于检测发送方请求未能检索数据的指令包括,用于检测所述指定接收方是不可用的指令。
56.根据权利要求52所述的计算机可读介质,其中,所述用于检测发送方通信未能检索数据的指令包括,用于检测所述通信路径中的逻辑部件失败的指令。
57.根据权利要求52所述的计算机可读介质,还包括在检测到所述发送方请求失败之后,为所述发送方请求选择新的通信路径的指令。
58.根据权利要求52所述的计算机可读介质,其中,所述用于选择新的通信路径的指令包括,使用所述重试点处的逻辑以确定用于访问所述指定接收方的可用通信路径的指令。
59.根据权利要求52所述的计算机可读介质,其中,所述用于指定重试点的指令包括,用于选择构成所述通信路径的所述逻辑部件部分作为所述重试点的指令。
60.根据权利要求52所述的计算机可读介质,其中,所述用于选择所述逻辑部件部分的指令包括,为多个服务器选择负载平衡设备的指令,所述多个服务器至少包括所述重试点所在的第一服务器,以及另一服务器,所述重试点可访问所述另一服务器,以将所述发送方通信发送到所述指定接收方。
61.根据权利要求60所述的计算机可读介质,还包括用于在重新发送所述发送方通信之前,确定所述发送方通信是否可以重试的指令。
62.根据权利要求61所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述发送方的标识的指令,以及用于如果所述发送方的标识被指定为允许重新发送所述发送方通信、重新发送所述发送方通信的指令。
63.根据权利要求61所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述指定接收方的标识的指令,以及用于如果所述指定接收方的标识被指定为允许重新发送所述发送方通信、重新发送所述发送方通信的指令。
64.根据权利要求61所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于如果所述发送方通信是安全的、则确定所述发送方通信是不可重试的指令。
65.一种带有用于管理网络通信的一个或多个指令序列的计算机可读介质,其中,由一个或多个处理器对所述一个或多个指令序列进行的执行使得所述一个或多个处理器执行以下步骤:
在发送方和指定接收方之间的第一通信路径上指定重试点,所述第一通信路径包括多个逻辑部件,其顺序地接收并将通信从所述发送方发送到所述指定接收方,所述重试点构成所述通信路径的一部分;
如果所述发送方通信不能沿所述重试点和所述指定接收方之间的所述通信路径部分访问所述指定接收方,则向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示;
确定所述发送方通信是否可以重试;以及
仅从所述重试点,并仅当所述发送方请求可以重试时,重新发送所述发送方通信以访问所述指定接收方。
66.根据权利要求65所述的计算机可读介质,其中,用于在发送方和指定接收方之间的第一通信路径上确定重试点的指令包括,用于为所述发送方选择逻辑服务器部件作为所述重试点的指令。
67.根据权利要求65所述的计算机可读介质,其中,用于重新发送所述发送方请求以访问所述指定接收方的指令包括,使用不同的通信路径将所述发送方请求重新发送到所述指定接收方的指令。
68.根据权利要求67所述的计算机可读介质,其中,使用不同的通信路径的指令包括,用于访问在所述通信路径外部的通信设备以将所述发送方通信发送到所述指定接收方的指令。
69.根据权利要求65所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述发送方通信是否安全的指令。
70.根据权利要求65所述的计算机可读介质,其中,用于向所述重试点发送关于所述发送方通信未能访问所述指定接收方的指示的指令包括,用于在位于所述重试点和所述指定接收方之间的所述多个部件上,检测所述发送方通信是否未能访问所述指定接收方的指令。
71.根据权利要求65所述的计算机可读介质,其中,用于仅从所述重试点重新发送所述发送方通信以访问所述指定接收方的指令包括,用于选择新的通信路径的指令,所述新的通信路径至少部分地位于所述重试点所在的设备之外的设备之上。
72.根据权利要求71所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述新的通信路径是否要被使用的指令。
73.根据权利要求72所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述发送方通信是否安全的指令,以及用于如果所述新的通信路径要被用来重新发送所述发送方通信,确定所述发送方通信不可重试的指令。
74.根据权利要求73所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述发送方通信是否安全的指令,以及用于确定是否重新发送所述发送方通信以访问所述指定接收方的指令包括,使用通信路径之外的通信设备。
75.根据权利要求73所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述发送方的标识的指令,以及其中,用于重新发送所述发送方通信以访问所述指定接收方的指令包括,用于如果所述发送方的标识允许重新发送所述发送方通信、则重新发送所述发送方通信的指令。
76.根据权利要求73所述的计算机可读介质,其中,用于确定所述发送方通信是否可以重试的指令包括,用于确定所述指定接收方的标识的指令,以及其中,用于重新发送所述发送方通信以访问所述指定接收方的通信包括,用于如果所述指定接收方的标识允许重新发送所述发送方通信、则重新发送所述发送方通信的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/118,203 US7337234B2 (en) | 2002-04-05 | 2002-04-05 | Retry technique for multi-tier network communication systems |
US10/118,203 | 2002-04-05 | ||
PCT/US2003/009134 WO2003088621A2 (en) | 2002-04-05 | 2003-03-21 | Retry technique for multi-tier network communication systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1647482A true CN1647482A (zh) | 2005-07-27 |
CN1647482B CN1647482B (zh) | 2010-08-25 |
Family
ID=28674380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038078554A Expired - Lifetime CN1647482B (zh) | 2002-04-05 | 2003-03-21 | 用于网络通信管理的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7337234B2 (zh) |
EP (1) | EP1493261A2 (zh) |
JP (1) | JP4495977B2 (zh) |
CN (1) | CN1647482B (zh) |
AU (1) | AU2003225991B2 (zh) |
CA (1) | CA2481326C (zh) |
WO (1) | WO2003088621A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010121535A1 (en) * | 2009-04-20 | 2010-10-28 | Huawei Technologies Co., Ltd. | System and method for tunneling system error handling between communications systems |
CN103873549A (zh) * | 2012-12-07 | 2014-06-18 | 株式会社捷太格特 | Plc通信*** |
CN105897781A (zh) * | 2016-06-30 | 2016-08-24 | 北京奇虎科技有限公司 | 移动终端与服务器之间数据传输的控制方法及装置 |
CN111611057A (zh) * | 2020-04-23 | 2020-09-01 | 瑞庭网络技术(上海)有限公司 | 分布式重试方法、装置、电子设备和存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0324597D0 (en) * | 2003-10-21 | 2003-11-26 | Nokia Corp | A communication system |
US7421695B2 (en) * | 2003-11-12 | 2008-09-02 | Cisco Tech Inc | System and methodology for adaptive load balancing with behavior modification hints |
JP4939102B2 (ja) * | 2006-04-21 | 2012-05-23 | 株式会社日立製作所 | ネットワークブート計算機システムの高信頼化方法 |
US8254271B1 (en) * | 2006-06-16 | 2012-08-28 | Cisco Technology, Inc. | Point-to-multipoint connectivity verification |
JP2008061091A (ja) * | 2006-09-01 | 2008-03-13 | Hitachi Communication Technologies Ltd | パス設定方法およびノード装置 |
US8656058B2 (en) * | 2008-09-05 | 2014-02-18 | Lsi Corporation | Back-off retry with priority routing |
US8880668B2 (en) * | 2011-02-28 | 2014-11-04 | Verizon Patent And Licensing Inc. | Method and system for integrating data from multiple sources |
EP2579546B1 (en) * | 2011-09-27 | 2016-05-25 | Alcatel Lucent | Method of failure detection in an operating system |
US9660919B2 (en) * | 2013-01-28 | 2017-05-23 | Apple Inc. | Adaptive data connection retry by a wireless communication device |
JP6204058B2 (ja) * | 2013-05-07 | 2017-09-27 | 株式会社ジェイテクト | Plc通信システム |
US10996891B2 (en) | 2019-02-28 | 2021-05-04 | International Business Machines Corporation | Token management for write commands transmitted by a host over a plurality of interfaces to a storage controller |
US11010248B2 (en) * | 2019-02-28 | 2021-05-18 | International Business Machines Corporation | Reuse of resources in a storage controller for executing write commands over a plurality of interfaces |
US11509619B2 (en) * | 2020-01-14 | 2022-11-22 | Capital One Services, Llc | Techniques to provide streaming data resiliency utilizing a distributed message queue system |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5235599A (en) * | 1989-07-26 | 1993-08-10 | Nec Corporation | Self-healing network with distributed failure restoration capabilities |
EP0598969B1 (en) * | 1992-11-27 | 1999-02-10 | International Business Machines Corporation | Inter-domain multicast routing |
US6185619B1 (en) | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US5737543A (en) * | 1995-02-23 | 1998-04-07 | International Business Machines Corporation | High performance communications path |
US5862125A (en) * | 1995-06-07 | 1999-01-19 | Mci Communication Corporation | Automated restoration of unrestored link and nodal failures |
US5983090A (en) * | 1996-04-02 | 1999-11-09 | Kabushiki Kaisha Toshiba | Mobile communication system with access function to computer network |
US5905872A (en) * | 1996-11-05 | 1999-05-18 | At&T Corp. | Method of transferring connection management information in world wideweb requests and responses |
US6445704B1 (en) * | 1997-05-02 | 2002-09-03 | Cisco Technology, Inc. | Method and apparatus for virtualizing a locally initiated outbound connection from a connection manager |
US6343067B1 (en) * | 1997-08-29 | 2002-01-29 | Intel Corporation | Method and apparatus for failure and recovery in a computer network |
US6181704B1 (en) * | 1997-08-29 | 2001-01-30 | Intel Corporation | Method and apparatus for input/output link retry, failure and recovery in a computer network |
US6367018B1 (en) * | 1998-02-05 | 2002-04-02 | 3Com Corporation | Method for detecting dedicated link between an end station and a network device |
US6163856A (en) * | 1998-05-29 | 2000-12-19 | Sun Microsystems, Inc. | Method and apparatus for file system disaster recovery |
US6122363A (en) * | 1998-07-24 | 2000-09-19 | Mci Communications Corp. | Multi-protocol interface apparatus at a service control point |
US6327243B1 (en) * | 1998-08-03 | 2001-12-04 | Samsung Electronics Co., Ltd. | System and method for performing a seamless switchover from a primary packet router to a secondary packet router |
US6854007B1 (en) * | 1998-09-17 | 2005-02-08 | Micron Technology, Inc. | Method and system for enhancing reliability of communication with electronic messages |
US6256641B1 (en) * | 1998-12-15 | 2001-07-03 | Hewlett-Packard Company | Client transparency system and method therefor |
US6836470B1 (en) * | 1999-01-29 | 2004-12-28 | International Business Machines Corporation | Method for reliable message delivery in a network of mobile computers |
US6651103B1 (en) * | 1999-04-20 | 2003-11-18 | At&T Corp. | Proxy apparatus and method for streaming media information and for increasing the quality of stored media information |
US6335933B1 (en) * | 1999-05-21 | 2002-01-01 | Broadcom Homenetworking, Inc. | Limited automatic repeat request protocol for frame-based communication channels |
US6813240B1 (en) * | 1999-06-11 | 2004-11-02 | Mci, Inc. | Method of identifying low quality links in a telecommunications network |
US6859834B1 (en) * | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
US6910024B2 (en) * | 2000-02-04 | 2005-06-21 | Hrl Laboratories, Llc | System for pricing-based quality of service (PQoS) control in networks |
JP3790658B2 (ja) * | 2000-03-27 | 2006-06-28 | 富士通株式会社 | ネットワークにおけるルーティング情報マッピング装置、その方法及び記録媒体 |
US7814208B2 (en) * | 2000-04-11 | 2010-10-12 | Science Applications International Corporation | System and method for projecting content beyond firewalls |
JP2001339431A (ja) * | 2000-05-26 | 2001-12-07 | Fujitsu Ltd | 通信方式、中継装置、エンドシステム及び通信方法 |
US6862430B1 (en) * | 2000-07-05 | 2005-03-01 | Echelon Corporation | System and method for selecting repeaters |
US6977908B2 (en) * | 2000-08-25 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for discovering computer systems in a distributed multi-system cluster |
US20020035631A1 (en) * | 2000-09-21 | 2002-03-21 | Kevin Chung | Method and system for establishing communication link between host computer provided with multiple communication tools and communication network |
US20020152293A1 (en) * | 2001-01-31 | 2002-10-17 | Hahn Terry G. | Dynamic server directory for distributed computing system |
JP3966711B2 (ja) * | 2001-11-06 | 2007-08-29 | 富士通株式会社 | 代理応答方法 |
US6954877B2 (en) * | 2001-11-29 | 2005-10-11 | Agami Systems, Inc. | Fault tolerance using logical checkpointing in computing systems |
US20030145108A1 (en) * | 2002-01-31 | 2003-07-31 | 3Com Corporation | System and method for network using redundancy scheme |
US20030177259A1 (en) * | 2002-02-04 | 2003-09-18 | Wookey Michael J. | Remote services systems data delivery mechanism |
US20030149771A1 (en) * | 2002-02-04 | 2003-08-07 | Wookey Michael J. | Remote services system back-channel multicasting |
-
2002
- 2002-04-05 US US10/118,203 patent/US7337234B2/en not_active Expired - Lifetime
-
2003
- 2003-03-21 EP EP03746553A patent/EP1493261A2/en not_active Withdrawn
- 2003-03-21 WO PCT/US2003/009134 patent/WO2003088621A2/en active Application Filing
- 2003-03-21 JP JP2003585401A patent/JP4495977B2/ja not_active Expired - Lifetime
- 2003-03-21 CA CA2481326A patent/CA2481326C/en not_active Expired - Lifetime
- 2003-03-21 CN CN038078554A patent/CN1647482B/zh not_active Expired - Lifetime
- 2003-03-21 AU AU2003225991A patent/AU2003225991B2/en not_active Expired
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010121535A1 (en) * | 2009-04-20 | 2010-10-28 | Huawei Technologies Co., Ltd. | System and method for tunneling system error handling between communications systems |
CN103430517A (zh) * | 2009-04-20 | 2013-12-04 | 华为技术有限公司 | 用于在无线通信***之间进行隧道***错误处理的***和方法 |
CN103430517B (zh) * | 2009-04-20 | 2016-12-07 | 华为技术有限公司 | 用于在无线通信***之间进行隧道***错误处理的***和方法 |
CN103873549A (zh) * | 2012-12-07 | 2014-06-18 | 株式会社捷太格特 | Plc通信*** |
CN103873549B (zh) * | 2012-12-07 | 2019-03-08 | 株式会社捷太格特 | Plc通信*** |
CN105897781A (zh) * | 2016-06-30 | 2016-08-24 | 北京奇虎科技有限公司 | 移动终端与服务器之间数据传输的控制方法及装置 |
CN105897781B (zh) * | 2016-06-30 | 2019-05-31 | 北京奇虎科技有限公司 | 移动终端与服务器之间数据传输的控制方法及装置 |
CN111611057A (zh) * | 2020-04-23 | 2020-09-01 | 瑞庭网络技术(上海)有限公司 | 分布式重试方法、装置、电子设备和存储介质 |
CN111611057B (zh) * | 2020-04-23 | 2024-02-02 | 瑞庭网络技术(上海)有限公司 | 分布式重试方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2005527899A (ja) | 2005-09-15 |
EP1493261A2 (en) | 2005-01-05 |
WO2003088621A3 (en) | 2004-01-08 |
CA2481326A1 (en) | 2003-10-23 |
AU2003225991B2 (en) | 2008-05-08 |
CA2481326C (en) | 2012-08-21 |
JP4495977B2 (ja) | 2010-07-07 |
US20030191831A1 (en) | 2003-10-09 |
AU2003225991A1 (en) | 2003-10-27 |
WO2003088621A2 (en) | 2003-10-23 |
US7337234B2 (en) | 2008-02-26 |
CN1647482B (zh) | 2010-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1647482A (zh) | 多层网络通信***的重试技术 | |
CN1151448C (zh) | 可扩缩的超高速缓存检索方法 | |
CN1150469C (zh) | 分发电子邮件附件的方法和服务器 | |
RU2409846C2 (ru) | Организация ресурсов в коллекции, способствующая более эффективному и надежному доступу к ресурсам | |
US20160088118A1 (en) | Client side cache management | |
CN1806242A (zh) | 用于警报传递体系结构的方法和*** | |
CN1609873A (zh) | 用于管理电子邮件和报警消息的方法,装置,以及用户界面 | |
CN1146803C (zh) | 应用计算机网络的信息通信***中的更新通报设备和方法 | |
US20080177755A1 (en) | Creation and persistence of action metadata | |
CN1638339A (zh) | 存在数据管理方法 | |
JP5221151B2 (ja) | ネットワークにおけるプロセス構成 | |
CN104219316A (zh) | 一种分布式***中的调用请求处理方法及装置 | |
CN1836416A (zh) | 服务器之间无状态会话的透明迁移 | |
CN1852105A (zh) | 一种实现端到端文件共享的***及方法 | |
CN1842075A (zh) | 使用子队列来增强本地消息处理 | |
CN1575582A (zh) | 可配置的自适应全球通信控制和管理 | |
CN1906585A (zh) | 供应数据处理***中识别、保留和逻辑供应资源的方法、***和产品 | |
CN1798037A (zh) | 用于处理基于浏览器的应用中的安全问题的多域访问代理 | |
CN1592229A (zh) | 基于url的电子通讯和网页过滤 | |
CN1494017A (zh) | 用于环球网服务结构中的包容器选择器及其选择方法 | |
CN1901517A (zh) | 信息交换***和管理服务器、终端设备和用于降低网络负荷的方法 | |
WO2014056345A1 (zh) | 监控任务的管理方法及装置 | |
US20040019636A1 (en) | System and method for dynamically routing web procedure calls | |
CN1845616A (zh) | 一种短消息服务接口及其该服务接口的通道适配方法 | |
CN1856978A (zh) | 自主监视Web高可用性 |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20100825 |
|
CX01 | Expiry of patent term |