CN104488251B - 用于支持中间件机器环境中高可用(ha)网络通信的系统和方法 - Google Patents

用于支持中间件机器环境中高可用(ha)网络通信的系统和方法 Download PDF

Info

Publication number
CN104488251B
CN104488251B CN201380034571.0A CN201380034571A CN104488251B CN 104488251 B CN104488251 B CN 104488251B CN 201380034571 A CN201380034571 A CN 201380034571A CN 104488251 B CN104488251 B CN 104488251B
Authority
CN
China
Prior art keywords
address
network interface
node
server node
remote
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
Application number
CN201380034571.0A
Other languages
English (en)
Other versions
CN104488251A (zh
Inventor
B·D·约翰森
P·那拉西姆哈姆厄西
P·霍道巴
D·G·莫克斯纳斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN104488251A publication Critical patent/CN104488251A/zh
Application granted granted Critical
Publication of CN104488251B publication Critical patent/CN104488251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种可以实现穿过多个独立通信路径的基于高可用互联网协议(IP)的通信的系统和方法。该系统可以具有与不同接口和通信路径相关联的不同的IP地址并且可以实现作为IP层之上的通信层(例如在应用级处)的一部分的通信故障切换。该系统可以提供平均故障切换时间和实现复杂度之间的平衡,并且可以在提供高通信性能的同时获得简化和稳健性。

Description

用于支持中间件机器环境中高可用(HA)网络通信的系统和 方法
版权声明
本专利文献的一部分公开内容包含受版权保护的素材。当专利文献或专利公开出现在可公开获得的美国专利商标局文件或档案中时,版权所有人不反对任何人影印再现专利文献或专利公开,不过保留其它方面的所有版权。
技术领域
本发明主要涉及计算机系统,并且特别地涉及中间件机器环境。
背景技术
互联网络在下一代超级计算机、集群和数据中心中扮演有利的角色。例如,作为云计算结构的基础的无限带宽(IB)技术已经经历了越来越多的部署。随着更大的云计算架构被引入,与传统网络和存储相关联的性能和管理瓶颈已经成为了严重的问题。
这是本发明的实施例意在解决的一般领域。
发明内容
此处描述的是可以实现穿过多个独立通信路径的基于高可用互联网协议(IP)的通信的一种系统和方法。该系统可以具有与不同的接口和通信路径相关联的不同IP地址并且可以实现作为IP层之上的通信层(例如在应用级处)的一部分的通信故障切换。此外,该系统可以提供平均故障切换时间和实现复杂度之间的合理平衡,并且可以在提供高通信性能的同时获得简化和稳健性。
根据本发明的另一方面,中间件机器环境被提供,其包括:本地节点;子网;用于通过一个或多个远程服务地址将本地节点连接到子网的一个或多个网络接口,以及一个或多个服务器,其中该一个或多个服务器操作以通过一个或多个对应的网络接口探测一个或多个远程服务地址的可用性;从与所述远程服务地址相关联的所述网络接口接收响应;并且使用所述远程服务地址建立通信连接以执行操作。
附图说明
图1示出了根据本发明的实施例的在中间件机器环境中通过动态地将IP地址与各个网络接口绑定来支持基于高可用IP的通信的图解。
图2示出了根据本发明的实施例的在中间件机器环境中使用IP路由技术支持基于高可用IP的通信的图解。
图3示出了根据本发明的实施例的支持在中间件机器环境中经由IP层之上的通信层的基于高可用IP的通信的图解。
图4示出了根据本发明的实施例的在中间件机器环境中使用ping类型探测方案实现通信故障切换的图解。
图5示出了根据本发明的实施例的在中间件机器环境中使用多个本地接口对没有互联性的网络中的远程接口执行探测操作的图解。
图6示出了根据本发明的实施例的在中间件机器环境中使用多个本地接口对具有互联性的网络中的远程接口执行探测操作的图解。
图7图解了根据本发明的实施例的在中间件机器环境中用于使用ping类型探测方案实现通信故障切换的示例性流程图。
图8图解了本发明的实施例的示例性功能框图。
具体实施方式
以示例的方式而不是限制的方式在附图中图解本发明,其中相同的附图标记指示相同的元素。应当注意,本公开中提及的“一”或“一个”或“某个”实施例并不一定指同一实施例,并且这样的提及指的是至少一个。
以下本发明的说明使用互联网协议(IP)网络作为用于计算机网路的示例。本领域技术人员将清楚其它类型的计算机网络也可以没有限制地被使用。
此处描述的是可以在中间件机器环境中支持高可用通信的系统和方法。例如,该系统可以使用用于探测目的地互联网协议(IP)地址的短超时“ping”类型操作从而在中间件机器环境中保证基于同步传输控制协议(TCP)的远程过程调用(RPC)操作。
基于高可用(HA)IP的通信
根据本发明的实施例,可以使用不同的技术以实现高可用通信,诸如在中间件机器环境中穿过多个独立通信路径的基于IP的通信。
图1示出了根据本发明的实施例的在中间件机器环境中通过动态地将IP地址与各个网络接口绑定来支持基于高可用IP的通信的图解。如图1中所示,在中间件机器环境100中,本地节点110可以通过一个或多个网络接口(例如层2网络接口111-113)被连接到子网101。
此外,该系统可以动态地将相关IP地址120绑定到代表去往本地节点110的冗余路径的不同网络接口111-113。此外,该系统可以例如通过检测本地网络链接故障事件已经被记录、或使用异步通信接口以及与探测本地网络上一个或多个预定义的目的地地址相关的单独的超时机制,支持检测中间件机器环境中对于故障切换的需求。
如图1中所示,一旦检测到对故障切换的需求(例如,通过记录本地网络链接故障),该系统就可以使IP地址120从网络接口112解关联,并动态地将IP地址120与另一网络接口111绑定。
也在现代操作系统(例如Linux中的bonding和Solaris中的IPMP)中使用的该方法可以为一个OS实例提供相对直接的方式以使用去往同一层2IP子网101的多个接口111-113,从而使得本地IP地址120高可用,以及使得对层2子网101的本地访问高可用。该方法的一个益处在于IP地址分配的故障检测和故障切换发生在较高级协议的超时和重试边界(例如TCP连接超时值)内。只要达到这一点,那么除了吞吐量潜在的短暂降低或消息传递中的延迟之外,应用级通信不受影响。
另一方面,该方法依赖于具有相同类型的每个接口,并且也依赖于被连接到相同的层2子网的每个本地接口,该层2子网实现了单一并且全连接的广播域(即,故障切换动作对于每个主机是本地的,并且每个主机必须能够限定在任何时间点处它将使用哪个本地接口作为活跃的本地接口)。
因此,在不能满足每个以上要求的系统中,可能需要不同的方法。
图2示出了根据本发明的实施例的在中间件机器环境中使用IP路由技术支持基于高可用IP的通信的图解。如图2所示,在中间件机器环境200中,本地节点210可以通过不同的网络接口(如层2网络接口211-213)被连接到各个子网201-202。
此外,该系统可以使用IP路由203技术从而允许单一高可用网络地址(如服务IP地址220)通过具有不同本地IP地址的不同路径和接口可用。
如图2所示,使用IP路由203,一旦检测到对故障切换的需求,该系统就可以将流量引导至网络接口211。在图1所示的方法中,IP地址120动态地与不同的网络接口关联,与图1中示出的该方法不同,本系统可以继续使用IP地址220,而不是将IP地址220从网络接口212解关联并动态地将该IP地址220与另一网络接口211关联。
因此,使用IP路由203可以减少本地故障切换时间。此外,因为本方法可以独立于介质类型和外部网络拓扑,所以本方法比图1中示出的方法更通用。
与图1中示出的方法类似,本方法的一个益处在于IP地址分配的故障检测和故障切换可以在较高级协议的超时和重试边界(例如TCP连接超时值)内发生。只要达到这一点,那么除了吞吐量中潜在的短暂降低或消息传递中的延迟之外,应用级通信不受影响。
另一方面,使用IP路由203意味着对IP路由规则和将与针对每个所涉及的网络而存在的路由规则同步的每个主机的路由容量广告的需求。因此,如果每主机的IP路由容量不是数据中心中整个逻辑网路设计的完整一部分,那么这种方案的维护会是复杂并易错的。
并且,除非集群配置限定一组专用网络,否则基于IP路由203的故障切换可以不是集群类型产品设计中要求的一部分。此外,在使用数据中心管理网络的情况下,基于IP路由203的故障切换可能不被认为是有效选项。
因此,会需要不同的方法来实现系统特定的高可用通信。
图3示出了根据本发明的实施例的支持在中间件机器环境中经由IP层之上的通信层的基于高可用IP的通信的图解。如图3所示,在中间件机器环境300中,本地节点310可以通过不同的网络接口(例如层2网络接口311-313)连接到网络结构301。网络结构301可以包括各个子网,此外,不同的IP地址321-323可与不同的网络接口311-313和通信路径相关联。
此外,该系统可以通过位于本地节点301上的应用320实现作为IP层(层3)之上通信层(如应用层处)的一部分的通信故障切换。
该方法具有很大程度的灵活性并且非常通用。而且,该方法不依赖于外部网络设计或拓扑。另一方面,当该方法在应用级被实现时,它会增加实现复杂度。此外,如果像TCP的传输协议被使用以获得有序性和可靠性,那么故障切换操作会需要确保它们不妨碍通过TCP获得的可靠性或有序性。因此,会存在或者对实现穿过多个独立TCP连接进行操作的可靠的有序协议的需求,或者存在对限制可以通过另一连接重试从而彼此幂等相关的每个操作的需求。
此外,当使用第三种方法时,该系统可以使用用于检测对故障切换的需求的ping类型的探测方案,该方案将在以下部分进行描述。
Ping类型的探测方案
图4示出了根据本发明的实施例的在中间件机器环境中使用ping类型探测方案实现通信故障切换的图解。如图4中所示,中间件机器环境400可以包括本地节点401和一个或多个远程节点A-B 402-403。
例如,使用图3中示出的方法,每个节点可以与一组网络接口和对应的一组网络地址相关联。如图4中所示,本地节点401与网络接口411和IP地址421相关联,而远程节点402与一组网络接口412和414以及IP地址422和424相关联,远程节点403与一组网络接口413和415以及IP地址423和425相关联。
在其他示例中,可以没有限制地存在本地网络接口和远程IP地址的许多不同的组合。并且,若干远程IP地址可以与相同的本地网络接口相关联,反过来也可以。
如图4中所示,每次将基于应用逻辑410执行远程操作(或远程操作的序列)时,本地节点401可以建立新的连接,如TCP连接431或432。此外,该系统可以根据标准TCP超时设定同步地执行所有的操作,从而最小化与有序或重试相关的风险。随后,在远程操作完成之后,该系统可以关闭连接431或432。
根据本发明的实施例,在建立新连接之前,该系统可以使用探测操作433-436中的一个,从而通过相应的远程网络接口412-415找出远程服务IP地址的可用性。例如,每个探测操作433-436可以是基于互联网控制消息(ICM)的ping操作或其他基于数据报的请求/响应操作,其可以具有相对于TCP级连接超时的短的超时值。
如图4中所示,当例如ping 435的探测操作在与远程节点B 403相关联的最初接口415和目标IP地址425处失败时,该系统可以经由对应远程网络接口413对备选IP地址423尝试例如ping 433的另一探测操作。随后,一旦网络接口411接收来自网络接口413的响应437,该系统就可以建立本地节点401和远程节点B 403之间的通信。
此外,为了减少出现通信问题时的建立时间,本系统可以为都与具体的远程目标节点相关联的多个目标IP地址和远程网络接口同时执行ping操作。如图4中所示,本地节点401可以为都与目标节点A402相关联的多个目标IP地址422和424以及远程网络接口412和414同时执行ping操作434和436。在这种情况下,本地节点401可以使用IP地址412和网络接口422的组合,该系统从其接收第一个ping响应438。
图5示出了根据本发明的实施例的在中间件机器环境中使用多个本地接口对没有互联性的网络中的远程接口执行探测操作的图解。如图5中所示,中间件机器环境500可以包括本地节点501和若干远程节点,如远程节点A 502和远程节点B 503。
使用ping类型探测方案,每个节点可以与一组网络接口和相应的一组网络地址相关联,其中每个这样的网络接口可以代表去往不同的物理上独立的网络的连接性。
如图5中所示,本地节点501和一组本地网络接口511和516相关联。本地网络接口511与IP地址521相关联,而本地网络接口516与IP地址526相关联。此外,远程节点A 502与一组网络接口512和514以及IP地址522和524相关联,并且远程节点B 503与一组网络接口513和515以及IP地址523和525相关联。
此外,网络接口513、514和516可以与物理网络X(PNX)相关联,并且网络接口511、512和515可以与不同的物理网络Y(PNY)相关联。此处,每个物理网路(PNX或PNY)可以代表物理以太网或IB上的IP逻辑网络。例如,该系统允许使用管理以太网接口和致力于网络管理的IB上的IP逻辑网络。此外,对应的IP地址521-526可以与不同的IP子网相关联。例如,PNX上的子网X(SubX)可以包括IP地址523-524和526,并且PNY上的子网Y(SubY)可以包括IP地址521-522和525。
根据本发明的实施例,该系统可以使用本地网络接口511和516中的每一个从而探测不同的物理独立的网络,诸如PNX和PNY。在以上的实施例中,本地节点501可以只通过用于IP地址523-524和526的接口516执行探测操作,该接口属于SubX,并且可以只通过用于IP地址521-522和525的接口511执行探测操作,该接口属于SubY。因此,与PNX相关联的网络接口上发送的任何分组不会到达与PNY相关联的网络接口上(即,PNX和PNY是没有互联的独立网络)。
如图5中所示,本地节点501可以使用本地网络接口516(例如通过使用ping操作534)来探测远程节点A 502上的网络接口514,以及(例如通过使用ping操作531)来探测远程节点B 503上的网络接口513。此外,该系统可以使用本地网络接口511(例如通过使用ping操作532)来探测远程节点A 502上的网络接口512,以及(例如通过使用ping操作533)来探测远程节点B 503上的网络接口515。
在其他实施例中,可以没有限制地存在本地网络接口远程和IP地址的许多不同组合。并且,若干远程IP地址可以与相同的本地网络接口相关联,反过来也一样。
如图5中所示,每次将基于应用逻辑执行远程操作(或远程操作的序列)时,本地节点501可以建立新的连接,例如TCP连接506或507。此外,该系统可以根据标准TCP超时设定同步地执行所有操作从而最小化与有序或重试相关的风险。随后,当远程操作完成时,该系统可以关闭连接506或507。
根据本发明的实施例,在建立新连接之前,该系统可以使用探测操作531-534中的一个,从而通过不同物理网络中的对应的远程网络接口512-515找出远程服务IP地址的可用性。例如,探测操作531-534中的每一个可以是基于互联网控制消息(ICM)的ping操作或其它基于数据报的请求/响应操作,其可以具有相对于TCP级连接超时的短的超时值。
在图5示出的示例中,当例如ping 533的探测操作在与远程节点B 503相关联的最初接口515和目标IP地址525处失败时,该系统可以从本地网络接口516经由对应的远程网络接口513对备选的IP地址523尝试例如ping 531的另一探测操作。随后,一旦网络接口516接收来自网络接口513的响应535,该系统就可以建立本地节点501和远程节点B 503之间的通信。
此外,为了减少出现通信问题时的建立时间,本系统可以为都与具体的远程目标节点相关联的多个目标IP地址和远程网络接口同时执行ping操作。
如图5中所示,使用本地网络接口511和516,本地节点501可以为都与目标节点A502相关联的多个目标IP地址522和524以及远程网络接口512和514同时执行ping操作532和534。在这种情况下,本地节点501可以使用IP地址512和网络接口522的组合,该系统从其接收第一个ping响应536。
图6示出了根据本发明的实施例的在中间件机器环境中使用多个本地接口对具有互联性的网络中的远程接口执行探测操作的图解。如图6中所示,中间件机器环境600可以包括本地节点601和若干远程节点,如远程网络A 604中的远程节点A 602和远程网络A 605中的远程节点B 603。
此外,使用ping类型探测方案,每个节点可以与一组网络接口和对应的一组网络地址相关联。如图6所示,本地节点601与一组本地网络接口611和616相关联。本地网络接口611与IP地址621相关联,而本地网络接口616与IP地址626相关联。此外,远程节点A602与一组网络接口612和614以及IP地址622和624相关联,并且远程节点B 603与一组网络接口613和615以及IP地址623和625相关联。
其中,该系统可以对应于图2中示出的概念。此外,应用级逻辑允许本地节点601对本地网络接口和远程IP地址的可能排列执行探测,而不是依赖于每个本地节点作为故障切换动作在本地接口之间移动单一IP地址。
根据本发明的实施例,该系统可以使用本地网络接口611和616中的每一个以探测不同的物理上独立的网络A-B 604-605。如图6中所示,为了对不同的物理上独立的网络A-B604-605中的节点A 602或节点B 603上的两个接口进行ping,本地节点601可以从每个本地接口611和616执行一次ping操作(即,ping操作631-638)。因此,该系统可以使用本地网络接口616以探测远程节点A 602上的网络接口614和远程节点B 603上的网络接口613。此外,该系统可以使用本地网络接口611以探测远程节点A 602上的网络接口612和远程节点B603上的网络接口615。(即,所有节点上的所有网络接口都能相互通信)。
在其它的示例中,可以没有限制地存在本地网络接口和远程IP地址的许多不同的组合。并且,若干远程IP地址可以与相同的本地网络接口相关联,反过来也一样。
如图6中所示,每次当将基于应用逻辑将执行远程操作(或远程操作的序列)时,本地节点601可以建立新的连接,例如TCP连接606或607。此外,该系统可以根据标准TCP超时设定同步地执行所有的操作从而最小化与有序或重试相关的风险。随后,在远程操作完成时,该系统可以关闭连接606或607。
根据本发明的实施例,在建立新连接之前,该系统可以使用探测操作631-638中的一个从而通过不同物理网络A-B 604-605中的相应的远程网络接口612-615找出远程服务IP地址的可用性。例如,每个探测操作531-539可以是基于互联网控制消息(ICM)的ping操作或其他基于数据报的请求/响应操作,其可以具有相对于TCP级连接超时的短的超时值。
在图6中示出的示例中,当例如ping 635的探测操作在最初接口615和目标IP地址625(二者与远程节点B 603相关联)处失败时,该系统可以从本地网络接口616经由对应的远程网络接口613对备选的IP地址623尝试例如ping 631的另一探测操作。随后,一旦网络接口616接收来自网络接口613的响应639,该系统就可以建立本地节点601和远程节点B603之间的通信。
此外,为了减少出现通信问题时的建立时间,本系统可以为都与具体的远程目标节点相关联的多个目标IP地址和远程网络接口同时执行ping操作。
如图6所示,本地节点601可以通过本地网络接口611和616为多个目标IP地址622和624以及远程网络接口612和614同时执行ping操作632、634、636和638,其中多个目标IP地址622和624以及远程网络接口612和614都与目标节点A 602相关联。在这样的情况下,本地节点601可以使用IP地址612和网络接口622的组合,系统从其接收第一ping响应640。
此外,如果在该系统中执行仅幂等操作,那么该系统可以维护多个永久连接。例如,只要连接被认为是可操作的,那么该系统就可以维持相同的连接组,而不是为每组远程操作建立新的连接。在这种情况下,每一组操作的唯一开销是被用于选择连接以执行操作的基于“ping”的方案。
根据本发明的实施例,该基于ping的方案可以提供平均故障切换时间和实现复杂度之间的合理的平衡,并且可以获得与获得最高的可能通信性能相关的简化和稳健性(尤其当可以接受一些开销时)。
基于ping的方案的一个益处在于相对于基于TCP超时方案的故障检测而言,平均故障检测时间可以被显著地降低。结果故障切换时间可以整体地降低。例如,当远程操作仅对于整个应用运行时间的一小部分活跃时,基于ping的探测操作可以在执行远程操作之前捕捉大多数沟通不畅路径问题。
此外,通信故障会在远程操作期间发生,在这种情况下故障切换时间会受限于TCP超时延迟。并且,随着通信变得更加频繁,在通信期间遇到通信问题的机会变得更大,并且因为可以通过TCP超时而不是通过基于ping的探测检测更多的故障,所以平均故障切换时间会增加。
根据本发明的实施例,用于通信故障检测的基于ping的方案可以对如下两种情况都有益:具有完全可操作冗余通信的情况和当不是所有冗余路径都可操作时的情况。
并且,该基于ping的方案可以被用于实现管理操作,其不被非常频繁地执行并且非常希望但不要求短的响应时间。
此外,该基于ping的通信故障切换方案可以被用于非常通信密集的应用或用于必须保证数秒钟量级的响应时间的系统,并且也可被用于破坏冗余路径中的一个的故障的情况中。
基于ping的方案的另一个益处在于,当被用于支持基于远程过程调用(RPC)的通信时,RPC操作的仅发起方(或客户端)侧可以知道基于ping的探测方案和故障切换处理。
只要在响应方(服务器)接收对应的请求之后立即返回RPC响应,那么对于RPC操作的请求和响应部分初始保卫ping操作就可以是相关的(即,时间上相邻)。随后,RPC操作的响应方(服务器)侧通过与请求到达的路径相同的路径返回响应。并且,响应方(服务器)侧可以透明地进行作为由发起方(或客户端)侧对路径的明确选择的结果的故障切换操作。
根据本发明的实施例,一种管理方类型应用可以充当RPC客户端,且多个不同的代理作为RPC服务器操作。该管理方类型应用可以实现基于冗余路径的通信故障切换逻辑,其可以针对多个不知晓这样的故障切换逻辑的不同的代理透明地操作。在一个示例中,对代理唯一的要求在于代理能够通过具有不同IP地址的多个接口接收动态RPC连接。只要主机OS实例已经配置有相关的逻辑网络接口,那么以上要求可以是针对任何响应方侧逻辑的默认操作。
图7图解了根据本发明的实施例的在中间件机器环境中用于使用ping类型探测方案实现通信故障切换的示例性流程图。如图7中所示,在步骤701处,本地服务器节点可以通过一个或多个对应的网络接口探测一个或多个远程服务地址的可用性。随后,在步骤702处,该本地服务器节点可以接收来自与所述远程服务地址相关联的所述网络接口的响应。此外,在步骤703处,该系统可以使用所述远程服务地址建立通信连接以执行操作。
图8图解了系统800的示例性功能框图。系统800包括探测模块810、一个或多个网络接口820、接收模块830以及建立模块840。系统800可以通过网络接口820被连接到一个或多个远程服务地址850。根据该实施例,探测模块810、接收模块830和建立模块840可以是由一个或多个处理器实现的软件模块。
探测模块810可以通过一个或多个相应的网络接口820探测一个或多个远程服务地址850的可用性。接收模块830可以接收来自与远程服务地址850相关联的网络接口820的响应。可以如下所解释地使用一个或多个计算机实现根据本发明的实施例建立的建立模块840。
可以使用一个或多个传统通用或专用数字计算机、计算设备、机器或微处理器(包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质)方便地实现本发明。可以由有经验的编程人员基于对于本领域技术人员而言明显的本公开的教导容易地准备合适的软件编码。
在一些实施例中,本发明包括计算机程序产品,其为其上/其中存储有指令的存储介质或计算机可读介质,该指令可被用于编程计算机以执行本发明的任何进程。该存储介质可以包括但不限于任何种类的盘(包括软盘、光盘、DVD、CD-ROM、微驱动和磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储器IC)或适于存储指令和/或数据的任何种类的介质或设备。
本发明的上述描述为图解和说明的目的被提供。其不意在穷尽或限制本发明为所公开的准确形式。对于本领域技术人员而言,许多修改和变化将是明显的。该修改和变化包括所公开的特征的任何组合。选择并描述这些实施例从而最好地解释本发明的远离和它的实际应用,从而允许本领域技术人员理解本发明的各种实施例以及具有适于所考虑的特定用途的各种修改的本发明。本发明的范围意在由以下权利要求以及它们的等价限定。

Claims (20)

1.一种用于在中间件机器环境中保证发起方应用和响应方应用之间的基于同步传输控制协议(TCP)的远程过程调用(RPC)操作的方法,所述中间件机器环境包括一个或多个微处理器以及在该一个或多个微处理器上运行的一个或多个服务器,所述中间件机器环境将在第一节点上执行的所述发起方应用和在目标服务器节点上执行的所述响应方应用通过接口连接,其中第一节点具有与第一互联网协议(IP)地址相关联的第一网络接口,目标服务器节点具有分别与第一目标服务器节点IP地址和第二目标服务器节点IP地址相关联的第一目标服务器网络接口和第二目标服务器网络接口,所述方法包括:
通过以下操作确定第一目标服务器节点和第二目标服务器节点之间的远程服务IP地址的可用性:
通过目标服务器节点的对应的第一目标服务器网络接口和第二目标服务器网络接口同时探测第一目标服务器节点IP地址和第二目标服务器节点IP地址;
从与所述目标服务器节点的第一目标服务器网络接口和第二目标服务器网络接口的最早响应方接收第一响应;以及
选择第一目标服务器节点IP地址和第二目标服务器节点IP地址中与第一目标服务器网络接口和第二目标服务器网络接口的最早响应方对应的一个作为远程IP地址;
使用所选择的远程IP地址来建立第一节点和所述目标服务器节点之间的通信连接路径;以及
经由所述通信连接路径执行所述发起方应用和响应方应用之间的基于同步TCP的RPC操作,其中所述RPC操作包括由所述发起方应用接收所述RPC操作的响应部分从而保证基于同步TCP的RPC操作,该响应部分是使用所述通信连接路径从所述响应方应用发送到所述发起方应用的。
2.根据权利要求1所述的方法,进一步包括:
将不同的互联网协议IP地址与不同的网络接口和通信路径相关联。
3.根据权利要求1所述的方法,进一步包括:
将通信故障切换实现为使用应用级逻辑的通信层的一部分。
4.根据权利要求1所述的方法,进一步包括:
确保可靠性和有序性。
5.根据权利要求1所述的方法,进一步包括:
基于TCP超时检测对故障切换的需求。
6.根据权利要求1所述的方法,其中,同时探测包括:
使用基于数据报的请求/响应操作进行探测。
7.根据权利要求1所述的方法,进一步包括:
响应于所述同时探测未接收到所述第一响应,经由对应的网络接口尝试备选的IP地址。
8.根据权利要求1所述的方法,其中,同时探测可用性包括:
针对多个目标服务地址和网络接口进行同时探测。
9.根据权利要求1所述的方法,进一步包括:
使用ping类型操作以保证一个或多个基于同步TCP的远程过程调用RPC操作。
10.根据权利要求1所述的方法,进一步包括:
当基于同步TCP的RPC操作完成时,关闭所述通信连接。
11.一种用于在中间件机器环境中保证发起方应用和响应方应用之间的基于同步传输控制协议TCP的远程过程调用RPC操作的系统,所述中间件机器环境包括一个或多个微处理器以及在该一个或多个微处理器上运行的一个或多个服务器,所述中间件机器环境将在第一节点上执行的所述发起方应用和在目标服务器节点上执行的所述响应方应用通过接口连接,其中第一节点具有与第一互联网协议(IP)地址相关联的第一网络接口,目标服务器节点具有分别与第一目标服务器节点IP地址和第二目标服务器节点IP地址相关联的第一目标服务器网络接口和第二目标服务器网络接口,所述系统包括:
一个或多个微处理器,
在该一个或多个微处理器上运行的一个或多个物理服务器,其中该一个或多个物理服务器操作以:
通过以下操作确定第一目标服务器节点和第二目标服务器节点之间的远程服务IP地址的可用性:
通过所述目标服务器节点的第一目标服务器网络接口和第二目标服务器网络接口同时探测第一目标服务器节点IP地址和第二目标服务器节点IP地址;
从所述目标服务器 节点的第一目标服务器网络接口和第二目标服务器网络接口的最早响应方接收第一响应;和
选择第一目标服务器节点IP地址和第二目标服务器节点IP地址中与第一目标服务器网络接口和第二目标服务器网络接口的最早响应方对应的一个作为远程IP地址;
使用所选择的远程IP地址来建立所述第一节点和所述目标服务器节点之间的通信连接路径;以及
经由所述通信连接路径执行所述发起方应用和响应方应用之间的基于同步TCP的RPC操作,其中所述RPC操作包括由所述发起方应用接收所述RPC操作的响应部分从而保证基于同步TCP的RPC操作,该响应部分是使用所述通信连接路径从所述响应方应用发送到所述发起方应用的。
12.根据权利要求11所述的系统,其中:
不同的互联网协议IP地址与不同的网络接口和通信路径相关联。
13.根据权利要求11所述的系统,其中所述一个或多个物理服务器操作以:
将通信故障切换实现为使用应用级逻辑的通信层的一部分。
14.根据权利要求11所述的系统,其中所述一个或多个物理服务器操作以:
选择性地使用TCP来确保可靠性和有序性。
15.根据权利要求11所述的系统,其中:
所述一个或多个物理服务器操作以基于TCP超时检测对故障切换的需求并在操作完成时选择性地关闭所述通信连接。
16.根据权利要求11所述的系统,其中:
所述一个或多个物理服务器操作以使用基于数据报的请求/响应操作进行探测。
17.根据权利要求11所述的系统,其中:
响应于所述同时探测未接收到所述第一响应,所述一个或多个物理服务器操作以通过对应的网络接口探测备选的服务地址。
18.根据权利要求11所述的系统,其中:
所述一个或多个物理服务器操作以对多个目标服务地址和网络接口执行所述同时探测。
19.根据权利要求11所述的系统,其中:
所述一个或多个物理服务器操作以使用ping类型操作从而保证一个或多个基于同步TCP的远程过程调用RPC操作。
20.一种其上存储有指令的非暂时性机器可读存储介质,当其上存储的指令在相关系统上执行时使得该相关系统执行以下步骤,其中所述相关系统包括在中间件机器环境中在第一节点上执行的发起方应用和在目标服务器节点上执行的响应方应用,其中第一节点具有与第一互联网协议IP地址相关联的第一网络接口,目标服务器节点具有分别与第一目标服务器节点IP地址和第二目标服务器节点IP地址相关联的第一目标服务器网络接口和第二目标服务器网络接口,所述步骤包括:
通过以下操作确定第一目标服务器节点和第二目标服务器节点之间的远程服务IP地址的可用性:
通过所述目标服务器节点的第一目标服务器网络接口和第二目标服务器网络接口同时探测第一目标服务器节点IP地址和第二目标服务器节点IP地址;
从所述目标服务器节点的第一目标服务器网络接口和第二目标服务器网络接口的最早响应方接收第一响应;以及
选择第一目标服务器节点IP地址和第二目标服务器节点IP地址中与第一目标服务器网络接口和第二目标服务器网络接口的最早响应方对应的一个作为远程IP地址;
使用所选择的远程IP地址来建立第一节点和所述目标服务器节点之间的通信连接路径;以及
经由所述通信连接路径执行所述发起方应用和响应方应用之间的基于同步TCP的RPC操作,其中所述RPC操作包括由所述发起方应用接收所述RPC操作的响应部分从而保证基于同步TCP的RPC操作,该响应部分是使用所述通信连接路径从所述响应方应用发送到所述发起方应用的。
CN201380034571.0A 2012-08-22 2013-08-22 用于支持中间件机器环境中高可用(ha)网络通信的系统和方法 Active CN104488251B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261692144P 2012-08-22 2012-08-22
US61/692,144 2012-08-22
US13/972,678 2013-08-21
US13/972,678 US9559894B2 (en) 2012-08-22 2013-08-21 System and method for supporting high available (HA) network communication in a middleware machine environment
PCT/US2013/056258 WO2014031889A1 (en) 2012-08-22 2013-08-22 System and method for supporting high available (ha) network communication in a middleware machine environment

Publications (2)

Publication Number Publication Date
CN104488251A CN104488251A (zh) 2015-04-01
CN104488251B true CN104488251B (zh) 2017-11-28

Family

ID=50147914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380034571.0A Active CN104488251B (zh) 2012-08-22 2013-08-22 用于支持中间件机器环境中高可用(ha)网络通信的系统和方法

Country Status (5)

Country Link
US (1) US9559894B2 (zh)
EP (1) EP2888865B1 (zh)
JP (1) JP6341914B2 (zh)
CN (1) CN104488251B (zh)
WO (1) WO2014031889A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626261B2 (en) * 2013-11-27 2017-04-18 Futurewei Technologies, Inc. Failure recovery resolution in transplanting high performance data intensive algorithms from cluster to cloud
JP6429474B2 (ja) * 2014-03-24 2018-11-28 キヤノン株式会社 通信装置及びその制御方法、並びにプログラム
CN105515838A (zh) * 2015-11-26 2016-04-20 青岛海信传媒网络技术有限公司 一种服务配置方法及ha集群系统
CN106911648B (zh) * 2015-12-23 2019-12-24 阿里巴巴集团控股有限公司 一种环境隔离方法及设备
CN107018034A (zh) * 2017-06-20 2017-08-04 郑州云海信息技术有限公司 一种活动及备用ipmp组的实现方法和装置
CN107276809A (zh) * 2017-06-20 2017-10-20 郑州云海信息技术有限公司 一种活动及活动ipmp组的实现方法和装置
CN107743079B (zh) * 2017-09-29 2021-05-04 网宿科技股份有限公司 线路探测方法、设备及计算机可读存储介质
CN109039741A (zh) * 2018-08-02 2018-12-18 郑州云海信息技术有限公司 一种实现云海管理平台高可用的方法与系统
US11750441B1 (en) * 2018-09-07 2023-09-05 Juniper Networks, Inc. Propagating node failure errors to TCP sockets
CN110166323B (zh) * 2019-06-06 2020-12-11 杭州云象网络技术有限公司 一种提高区块链网络可靠性的方法
CN110287045A (zh) * 2019-07-02 2019-09-27 北京谷数科技有限公司 一种基于solaris操作系统的存储服务接口管理框架

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592225A (zh) * 2003-08-27 2005-03-09 国际商业机器公司 用于在群集中进行故障解决的方法和系统
US7451208B1 (en) * 2003-06-28 2008-11-11 Cisco Technology, Inc. Systems and methods for network address failover

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014669A (en) 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6728780B1 (en) 2000-06-02 2004-04-27 Sun Microsystems, Inc. High availability networking with warm standby interface failover
JP2003008581A (ja) * 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
JP2003234749A (ja) * 2001-12-03 2003-08-22 Oki Electric Ind Co Ltd Lan間の通信ルート切替方法、ルート切替プログラム、ゲートウェイ及び端末
US20040017769A1 (en) 2002-04-11 2004-01-29 International Business Machines Corporation Method of establishing a route redundancy in a data transmission system using static routes
US7606920B2 (en) 2002-05-17 2009-10-20 Sony Computer Entertainment America Inc. Method and apparatus for controlling communication ports for an online session of a multi-user application by associating each of the ports with a protocol and designating an active port
US7395536B2 (en) 2002-11-14 2008-07-01 Sun Microsystems, Inc. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
JP2004269242A (ja) * 2003-03-12 2004-09-30 Paloma Ind Ltd コンベヤーオーブン
US20050050227A1 (en) 2003-07-03 2005-03-03 Cascade Basic Research Corp. Method and system for peer-to-peer directory services
US7660889B2 (en) 2003-11-18 2010-02-09 Cisco Technology, Inc. Initialization and acquisition of peers in a peers' list in a peer-to-peer network
TWI351852B (en) * 2003-12-19 2011-11-01 Ibm System and method for communicating on a virtual r
US8090880B2 (en) * 2006-11-09 2012-01-03 Microsoft Corporation Data consistency within a federation infrastructure
US8095601B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US7586841B2 (en) 2005-05-31 2009-09-08 Cisco Technology, Inc. System and method for protecting against failure of a TE-LSP tail-end node
US8296437B2 (en) 2005-12-29 2012-10-23 Logmein, Inc. Server-mediated setup and maintenance of peer-to-peer client computer communications
US9166883B2 (en) * 2006-04-05 2015-10-20 Joseph Robert Marchese Network device detection, identification, and management
US8031617B2 (en) * 2006-07-28 2011-10-04 Hewlett-Packard Development Company, L.P. Fast detection of path failure for TCP
JP5022088B2 (ja) * 2007-04-13 2012-09-12 株式会社インテック アプリケーション端末装置及び経路選択方法
JP4500836B2 (ja) * 2007-08-17 2010-07-14 沖電気工業株式会社 冗長化ゲートウェイシステムのためのネットワークスイッチ装置
US20090147698A1 (en) * 2007-12-06 2009-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Network automatic discovery method and system
JP2009253408A (ja) * 2008-04-02 2009-10-29 Oki Electric Ind Co Ltd 冗長化ゲートウェイシステム
US8122283B2 (en) 2008-05-07 2012-02-21 Padcom Holdings Inc. Communications path status detection system
KR20100040658A (ko) 2008-10-10 2010-04-20 삼성전자주식회사 UPnP 네트워크의 원격 접속 서비스에서 아이피 주소 충돌 해결 방법 및 장치
CN101534309B (zh) 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
US8924513B2 (en) 2009-07-08 2014-12-30 International Business Machines Corporation Storage system
US9306803B2 (en) 2009-10-30 2016-04-05 Hewlett Packard Enterprise Development Lp Methods and devices for implementing configuration synchronization
WO2011069730A1 (en) 2009-12-10 2011-06-16 International Business Machines Corporation A method and system for managing configurations of system management agents in a distributed environment
CN102118263B (zh) 2010-01-06 2015-05-20 中兴通讯股份有限公司 配置信息的发布方法及系统
JP2011254293A (ja) * 2010-06-02 2011-12-15 Oki Electric Ind Co Ltd ネットワークスイッチ装置
US9094309B2 (en) 2012-03-13 2015-07-28 International Business Machines Corporation Detecting transparent network communication interception appliances

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451208B1 (en) * 2003-06-28 2008-11-11 Cisco Technology, Inc. Systems and methods for network address failover
CN1592225A (zh) * 2003-08-27 2005-03-09 国际商业机器公司 用于在群集中进行故障解决的方法和系统

Also Published As

Publication number Publication date
CN104488251A (zh) 2015-04-01
US9559894B2 (en) 2017-01-31
EP2888865A1 (en) 2015-07-01
EP2888865B1 (en) 2017-07-19
WO2014031889A1 (en) 2014-02-27
JP2015534150A (ja) 2015-11-26
JP6341914B2 (ja) 2018-06-13
US20140056121A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
CN104488251B (zh) 用于支持中间件机器环境中高可用(ha)网络通信的系统和方法
JP5893628B2 (ja) ミドルウェアマシン環境における部分的なサブネット初期化の実行
TWI383616B (zh) 指派複數個媒體存取控制給複數個處理器的方法及系統
US9253293B2 (en) Fault-tolerant communications in routed networks
US9736016B2 (en) Managing failure behavior for computing nodes of provided computer networks
US8972603B1 (en) Managing encoded multi-part communications
US8595378B1 (en) Managing communications having multiple alternative destinations
JP6393742B2 (ja) 分散型ロード・バランサでの多重パス経路指定
CN101924693B (zh) 用于在虚拟机间迁移进程的方法和系统
US9106540B2 (en) Providing logical networking functionality for managed computer networks
JP6033789B2 (ja) ブレードの物理的な位置に基づく自動化されたプロビジョニングおよび設定を可能にする統合型ソフトウェアおよびハードウェアシステム
US8843600B1 (en) Providing private access to network-accessible services
CN106059946B (zh) 一种报文转发方法和装置
US20220350767A1 (en) Flexible high-availability computing with parallel configurable fabrics
JP2015211374A (ja) 情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラム
WO2014075527A1 (zh) 网络虚拟边界设备间进行冗余备份的方法、设备及系统
CN117044183A (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
GR01 Patent grant
GR01 Patent grant