CN101675424A - 用于可扩展和冗余电信系统的进程间通信方法和装置 - Google Patents

用于可扩展和冗余电信系统的进程间通信方法和装置 Download PDF

Info

Publication number
CN101675424A
CN101675424A CN200880014655A CN200880014655A CN101675424A CN 101675424 A CN101675424 A CN 101675424A CN 200880014655 A CN200880014655 A CN 200880014655A CN 200880014655 A CN200880014655 A CN 200880014655A CN 101675424 A CN101675424 A CN 101675424A
Authority
CN
China
Prior art keywords
software part
message
registration
multicast
client side
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.)
Pending
Application number
CN200880014655A
Other languages
English (en)
Inventor
R·J·戴纳斯基
J·凯勒曼
D·R·马齐克
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101675424A publication Critical patent/CN101675424A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开了用于可扩展和冗余电信系统的进程间通信方法和装置。用于消息系统(108)中的进程间通信的消息实体(服务器110a或者客户端110b)促成由软件部件向所述消息系统的注册、促成在注册的软件部件之间的单播通信、促成由软件部件为多播事件进行的注册、以及促成在注册的软件部件之间的多播通信。消息服务器(110a)在分布式计算系统(100)中发现新的消息客户端(110b)、验证注册的消息客户端(110b)在运行、保持所述注册的消息客户端(110b)之间的同步、管理资源位置高速缓存(114a)的主版本、以及管理多播注册数据结构(116a)的主版本。

Description

用于可扩展和冗余电信系统的进程间通信方法和装置
基于35 U.S.C.§119要求优先权
本专利申请要求2007年5月4日提交的、并被转让给本受让人的美国临时申请号60/916,247的优先权,并通过引用将其明确地纳入本文。
技术领域
本公开总体上涉及电信系统。更具体地,本公开涉及用于构建可扩展/冗余电信系统的进程间通信方法和装置。
背景技术
当构建分布式和冗余电信系统时,某种消息层被用于提供进程间(或线程间)通信。这允许分布式的软件有限状态机进行通信以便提供服务。
典型的消息系统提供一种在部件之间发送点对点消息的方式。有时提供多播或广播消息的能力,但并非总是提供。
许多进程间通信方案也是特定的操作系统和/或背板(backplane)。这使得难于移植它们的服务并影响该系统的整个软件架构,因为消息传送通常是基本的服务,它是编写所有其他软件的基础。
许多其他的系统提供诸如名称解析、网络时间分布、和位于消息传送之上的作为另一应用的分布式心跳分层这样的服务。这也导致处理中的低效率。
附图说明
图1说明了在分布式计算系统中实现的消息系统的一个示例;
图2说明了示出软件部件可以如何向消息系统注册的一个示例;
图3说明了示出消息实体可以如何促成在注册的软件部件之间的单播通信的一个示例;
图4说明了示出软件部件可以如何为多播事件进行注册的一个示例;
图5说明了示出消息实体可以如何促成在注册的软件部件之间的多播通信的一个示例;
图6说明了可以由消息服务器所执行的一些功能;
图7说明了可以由消息服务器所执行的进程间通信方法的一个示例;
图7A说明了对应于图7的方法的装置加功能框;
图8说明了可以由消息实体所执行的进程间通信方法的一个示例;
图8A说明了对应于图8的方法的装置加功能框;
图9-11说明了示出可以如何实现本文描述的消息系统的数个示例;
图12说明了用于促成在分布式计算系统中的软件部件之间的进程间通信的装置的部分硬件实现。
具体实施方式
公开了用于进程间通信的装置。该装置可以用作消息系统中的消息实体。该装置可以包括处理器和耦合到所述处理器的电路。该电路可以被配置为促成由软件部件向该消息系统的注册,促成在注册的软件部件之间的单播通信,促成由软件部件为多播事件进行的注册,以及促成在注册的软件部件之间的多播通信。
公开了用于进程间通信的装置。该装置可以用作消息系统中的消息服务器。该装置可以包括处理器和耦合到所述处理器的电路。该电路可以被配置为在分布式计算系统中发现新的消息客户端,验证注册的消息客户端在运行,保持注册的消息客户端之间的同步,管理资源位置高速缓存的主版本,以及管理多播注册数据结构的主版本。
公开了可以由消息系统中的消息实体所执行的用于进程间通信的方法。该方法可以包括促成由软件部件向该消息系统的注册。该方法还可以包括促成在注册的软件部件之间的单播通信。该方法还可以包括促成由软件部件为多播事件进行的注册。该方法还可以包括促成在注册的软件部件之间的多播通信。
公开了可以由消息系统中的消息服务器所执行的用于进程间通信的方法。该方法可以包括在分布式计算系统中发现新的消息客户端。该方法还可以包括验证注册的消息客户端在运行。该方法还可以包括保持这些注册的消息客户端之间的同步。该方法还可以包括管理资源位置高速缓存的主版本。该方法还可以包括管理多播注册数据结构的主版本。
公开了包含被配置为促成分布式计算系统中软件部件之间的进程间通信的消息实体的硬件单元。该消息实体可以包括被配置为促成由软件部件向该消息系统注册的注册部件。该消息实体还可以包括被配置为促成在注册的软件部件之间的单播通信的资源位置服务器。该消息实体还可以包括被配置为促成由软件部件为多播事件进行的注册的多播注册部件。该消息实体还可以包括被配置为促成在注册的软件部件之间的多播通信的多播通信部件。
公开了包含被配置为促成分布式计算系统中软件部件之间的进程间通信的消息服务器的硬件单元。该消息服务器可以包括被配置为在分布式计算系统中发现新的消息客户端的客户端发现部件。该消息服务器还可以包括被配置为验证注册的消息客户端在运行的验证部件。该消息服务器还可以包括被配置为保持注册的消息客户端之间的同步的同步部件。该消息服务器还可以包括被配置为管理资源位置高速缓存的主版本的高速缓存管理器。该消息服务器还可以包括被配置为管理多播注册数据结构的主版本的多播注册管理器。
还公开了包含被配置为促成分布式计算系统中软件部件之间的进程间通信的消息实体的装置。该消息实体可以包括用于促成由软件部件向该消息系统注册的模块。该消息实体还可以包括用于促成在注册的软件部件之间的单播通信的模块。该消息实体还可以包括用于促成由软件部件为多播事件进行的注册的模块。该消息实体还可以包括用于促成在注册的软件部件之间的多播通信的模块。
还公开了包含被配置为促成分布式计算系统中软件部件之间的进程间通信的消息服务器的装置。该装置可以包括用于在分布式计算系统中发现新的消息客户端的模块。该装置还可以包括用于验证注册的消息客户端在运行的模块。该装置还可以包括用于保持这些注册的消息客户端之间的同步的模块。该装置还可以包括用于管理资源位置高速缓存的主版本的模块。该装置还可以包括用于管理多播注册数据结构的主版本的模块。
还公开了用于促成分布式计算系统中软件部件之间的进程间通信的计算机程序产品。该计算机程序产品可以包括在其上具有指令的计算机可读介质。这些指令可以包括用于促成由软件部件向该消息系统的注册的代码。这些指令还可以包括用于促成在注册的软件部件之间的单播通信的代码。这些指令还可以包括用于促成由软件部件为多播事件进行的注册的代码。这些指令还可以包括用于促成在注册的软件部件之间的多播通信的代码。
公开了用于促成分布式计算系统中软件部件之间的进程间通信的计算机程序产品。该计算机程序产品可以包括在其上具有指令的计算机可读介质。这些指令可以包括用于在分布式计算系统中发现新的消息客户端的代码。这些指令还可以包括用于验证注册的消息客户端在运行的代码。这些指令还可以包括用于保持注册的消息客户端之间的同步的代码。这些指令还可以包括用于管理资源位置高速缓存的主版本的代码。这些指令还可以包括用于管理多播注册数据结构的主版本的代码。
本公开涉及提供能够单播和多播(包括广播)消息的消息层的分布式软件架构。该消息系统能够隐藏该系统的分布式性质,提供用于将逻辑名解析成物理地址的方法,以及向分布式模块分布网络时间并验证这些分布式模块是否仍然在运行。
本文描述的一些方案的优势是能够被移植到许多不同的系统(例如,*NIX、Sun Solaris、RTOS、DSP)的消息系统,以提供能够隐藏该系统的分布式性质的公用软件层。这提供了一种灵活的软件架构。在没有任何其他部件的信息的情况下,指定的软件部件能够在所述硬件/软件架构中移植。
本文描述的消息系统可以提供单个的统一的接口,以提供在软件部件之间执行单播、多播或广播消息中的至少一种的能力。此外,单播、多播或广播消息中的至少一种能够得到确认。发送方或许不知道多播消息接收方。这将多播消息的发送方与接收方去耦。该去耦允许构建一种非常灵活的软件架构,该软件架构能够很好地演进。接收方可以在不需修改发送方的情况下自由地来去。这很适合于事件驱动有限状态机软件开发模型。
该消息系统中的所有或数个软件部件可由逻辑名来识别。可以当软件部件向该消息系统注册时在运行期间构建逻辑名的系统范围位置。该注册可以导致新的条目进入名字高速缓存。当将新的条目添加进该名字高速缓存时,也可以将它们向能够运行该消息软件的所有硬件实体进行广播。每当该高速缓存被修改时,序列号可以增加以表明该高速缓存的当前级别。该序列号可以用在心跳操作中以确保所有的硬件实体都具有一致的名字高速缓存。为了效率,名字高速缓存的更新可以是全部的或者是渐进的。该消息系统可以被配置为尝试渐进更新,除非请求方太过时以致于全部更新将更快。
发送给特定部件的所有消息可以使用该部件的逻辑名。当对所述消息进行用于发送的处理时,该消息系统自身可以将该逻辑名解析成物理位置。该特征隐藏了该系统的分布式特性并允许将部件在该系统中进行移动而不影响任何软件。
当被用在分布式硬件架构上时,所述消息层还可以提供“心跳”机制以确保所有需要的部件都回应。该心跳消息可以包括主网络时间、以及代表所述名字高速缓存的整数。该网络时间可被用于时间同步该系统中的所有实体。所述名字高速缓存序列号可用于确定是否每个从高速缓冲器都是最新的。被确定为过期的高速缓存可以请求全部的或渐进的更新以重新与主高速缓存同步。
所述消息层还可以是可配置的以允许它在单操作系统类型的环境中(诸如基于Sun Solaris的服务器)或者在分布式多CPU环境典型电信设备中使用。该性能允许在某个环境中写的软件仅仅重新编译就可以在不同的环境中使用。该性能给予在所述消息层上构建的软件很高水平的可移植性。
图1示出了分布式计算系统100。分布式计算系统100包括多个硬件单元102,硬件单元102通过通信总线104相互进行电子通信。硬件单元102可以用在电信和数据通信设备中。例如,硬件单元102可以是包含在路由器、交换机、基站等中的各种处理模块或板。硬件单元102包括各种一起工作以执行一个或多个任务的软件部件106。
消息系统108在分布式计算系统100中实现。消息系统108包括消息服务器110a和一个或多个消息客户端110b。本文中术语“消息实体”110可用于指代消息服务器110a或者消息客户端110b。
消息系统108允许分布式计算系统100中的软件部件106相互通信。软件部件106可以是有限状态机,而消息系统108的目的可以是使通信的有线状态机保持同步。
软件部件106之间的通信可以是单播、多播或广播。有利地,消息系统108能够隐藏分布式计算系统100的分布式特性。可以由逻辑名而不是物理地址来识别分布式计算系统100中的软件部件106。这样,软件部件106能够相互通信而不必考虑在分布式计算系统100拓扑中的它们的各自位置。
消息服务器110a管理资源位置高速缓存的主版本114a和多播注册数据结构的主版本116a。每个消息客户端110b与资源位置高速缓存的本地副本114b和多播注册数据结构的本地副本116b一起工作。
每个消息实体110(即,消息服务器110a或者消息客户端110b)可以被配置为允许分布式计算系统100中的软件部件106向消息系统108注册。每个消息实体110也可以促成在注册的软件部件106之间的通信。
除了执行这些功能,消息服务器110a也可以被配置为在分布式计算系统100中发现新的消息客户端110b。消息服务器110a也可以验证注册的消息客户端110b是否在运行。消息服务器110a也可以保持在注册的消息客户端110b之间的同步。消息服务器110a还可以管理资源位置高速缓存的主版本114a和多播注册数据结构的主版本116a。
图2示出了软件部件106可以如何向消息系统108注册的一个示例。软件部件106可以向消息服务器110a发送注册消息222。注册消息222可以包括软件部件106的物理地址224。注册消息222还可以包括软件部件106的逻辑名226。注册消息222还可以包括逻辑名226的一个或多个别名228。
响应于接收到注册消息222,消息服务器110a可以在资源位置高速缓存的主版本114a中为软件部件106创建条目230。条目230可以将软件部件106的物理地址224、软件部件106的逻辑名226、逻辑名226的别名228关联起来。
消息服务器110a还可以向消息系统108中的所有消息客户端110b发送广播消息232。广播消息232可以包括被添加到资源位置高速缓存的主版本114a的条目230。响应于接收到广播消息232,每个消息客户端110b可以更新它的资源位置高速缓存的本地副本114b,以便包括已经被添加到资源位置高速缓存的主版本114a的条目230。
示出的消息服务器110a具有注册部件234。注册部件234可以被配置为促成由软件部件106向消息系统108的注册。更具体地,注册部件234可以被配置为处理注册消息222,向资源位置高速缓存的主版本114a添加适当的条目230,以及向消息系统108中的所有消息客户端110b发送具有条目230的广播消息232。
在图2的示例中,软件部件1066向消息服务器110a发送注册消息222。可替换地,软件部件106可以向消息客户端110b发送注册消息222,并且消息客户端110b可以向消息服务器110a转发相关信息(例如,物理地址224、逻辑名226和别名228)。
图3示出了消息实体110(即,消息服务器110a或者消息客户端110b)可以如何促成在注册的软件部件106之间的单播通信的一个示例。在该示例中,将假设消息系统108中的软件部件106a发送最终被消息系统108中的另一软件部件106b所接收的消息336。然而,发送方软件部件106a并不需要知道接收方软件部件106b的物理地址224。相反地,由发送方软件部件106a所发送的消息336的目的地由软件部件106b的逻辑名226来识别。
当接收到来自发送方软件部件106a的消息336时,消息实体110将接收方软件部件106b的逻辑名226解析成接收方软件部件106b的物理地址224。这可以通过参考资源位置高速缓存114(如果消息实体110是消息服务器110a则参考资源位置高速缓存的主版本114a,或者如果消息实体110是消息客户端110b则参考资源位置高速缓存的本地副本114b)来实现。然后,消息实体110可以向接收方软件部件106b转发消息336。
示出的消息实体110具有资源位置服务器340。资源位置服务器340可以被配置为促成在注册的软件部件106之间的单播通信。更具体地,资源位置服务器340可以被配置为处理来自发送方软件部件106a的消息336,将接收方软件部件106b的逻辑名226解析成接收方软件部件106b的物理地址224,以及向接收方软件部件106b转发消息336。
接收方软件部件106b可以确认消息336的接收。接收方软件部件106b可以向消息实体110返回确认消息338。消息实体110可以向发送方软件部件106a转发确认消息338。
消息系统108可以促成分布式计算系统100中的软件部件106之间的多播通信。图4示出了软件部件106可以如何为多播事件进行注册的一个示例。
软件部件106可以向消息服务器110a发送多播注册消息442。多播注册消息442可以包括软件部件106的物理地址224。多播注册消息442还可以包括软件部件106正在注册的多播事件的逻辑名444。
响应于接收到多播注册消息442,消息服务器110a可以在多播注册数据结构的主版本116a中为软件部件106创建条目446。条目446可以将软件部件106的物理地址224和软件部件106正在注册的多播事件的逻辑名444关联起来。
消息服务器110a还可以向消息系统108中的所有消息客户端110b发送广播消息448。广播消息448可以包括被添加到多播注册数据结构的主版本116a中的条目446。响应于接收到广播消息448,每个消息客户端110b可以更新它的多播注册数据结构的本地副本116a,以便包括已经被添加到多播注册数据结构的主版本116a的条目446。
示出的消息服务器110a具有多播注册部件450。多播注册部件450可以被配置为促成由软件部件106为多播事件进行的注册。更具体地,多播注册部件450可以被配置为处理多播注册消息442,向多播注册数据结构的主版本116a添加适当的条目446,以及向消息系统108中的所有消息客户端110b发送具有条目446的广播消息448。
在图4的示例中,软件部件106向消息服务器110a发送多播注册消息442。可替换地,软件部件106可以向消息客户端110b发送多播注册消息442,并且消息客户端110b可以向消息服务器110a转发相关信息(例如,软件部件106的物理地址224和软件部件106正在注册的多播事件的逻辑名444)。
图5示出了消息实体110(即,消息服务器110a或者消息客户端110b)可以如何促成在注册的软件部件106之间的多播通信的一个示例。在该示例中,将假设消息系统108中的软件部件106a发送最终被消息系统108中的多个软件部件106b-d所接收的多播消息552。然而,发送方软件部件106a并不需要知道接收方软件部件106b-d的物理地址224b-d。相反地,由发送方软件部件106a所发送的多播消息552的目的地由多播事件的逻辑名444来识别。
当接收到来自发送方软件部件106a的多播消息552时,消息实体110识别已经为该多播事件进行了注册的软件部件106b-d的物理地址224b-d。这可以通过参考多播注册数据结构116来实现。然后,消息实体110可以向接收方软件部件106b-d转发多播消息552。
每个接收方软件部件106b-d可以通过向消息实体110返回确认消息554来响应多播消息552。在试图接收多播消息552的所有软件部件106b-d都已经用确认消息554做出响应后,消息实体110可以向发送方软件部件106a返回单个确认消息556。
示出的消息实体110具有多播通信部件558。多播通信部件558可以被配置为促成在注册的软件部件106之间的多播通信。更具体地,多播通信部件558可以被配置为处理从发送方软件部件106a接收的多播消息552,识别已经为该多播事件进行了注册的软件部件106b-d的物理地址224b-d,以及向这些物理地址224b-d转发多播消息552。多播通信部件558还可以被配置为处理从接收方软件部件106b-d接收的确认消息554,并向发送方软件部件106a返回单个确认消息556。
图6示出了可以由消息服务器110a所执行的一些功能。示出的消息服务器110a具有验证部件680。验证部件680可以被配置为验证注册的消息客户端110b在运行。
消息服务器110a可以周期性地向消息系统108中的所有消息客户端110b发送心跳消息662。所有注册的消息客户端110b可以被配置为通过向消息服务器110a发送心跳应答664来响应所接收的每个心跳消息662。只要特定的消息客户端110a继续响应所发送的心跳消息662,那么消息服务器110a就可以推断消息客户端110b仍然在运行。然而,如果特定的消息客户端110b未能响应特定数目的连续的心跳消息662(例如,3个连续的心跳消息662),那么消息服务器110a可以推断该消息客户端110b不再运行。
示出的消息服务器110a还具有同步部件682。同步部件682可以被配置为保持在注册的消息客户端110b之间的同步。为了保持在注册的消息客户端110b之间的同步,由消息服务器110a所发送的心跳消息662可以包括用于消息系统108的主时间666。每个消息客户端110b可以基于所接收的在心跳消息662中的主时间666来更新它的本地时间668(即,使得本地时间668与主时间666相同)。
示出的消息服务器110a还具有高速缓存管理器684。高速缓存管理器684可以被配置为管理资源位置高速缓存的主版本114a。高速缓存管理器684可以被配置为每当资源位置高速缓存114a被改变时,就通知消息系统108中的消息客户端110b。然后,每个消息客户端110b可以更新它的资源位置高速缓存的本地副本114b。
由消息服务器110a所发送的心跳消息662可以包括高速缓存序列号672a。高速缓存序列号672a可由消息客户端110b所使用以确保资源位置高速缓存的本地副本114b相对于资源位置高速缓存的主版本114a是最新的。
每当资源位置高速缓存的主版本114a得到更新,消息服务器110a可以增加高速缓存序列号672a。每个消息客户端110b可以将本地高速缓存序列号672b与包含在心跳消息662中的主高速缓存序列号672a进行比较。如果本地高速缓存序列号672b与主高速缓存序列号672a匹配,那么消息客户端110b可以推断资源位置高速缓存的本地副本114b是最新的。然而,如果本地高速缓存序列号672b与主高速缓存序列号672a不匹配,那么消息客户端110b可以推断资源位置高速缓存的本地副本114b是过时的。然后,消息客户端110b可以向消息服务器110a发送更新请求674。
当从消息客户端110b接收到更新请求674时,消息服务器110a可以向消息客户端110b发送资源位置高速缓存更新676。资源位置高速缓存更新676可以是完全更新的,即可以将资源位置高速缓存114a的整个主版本的副本都发送给消息客户端110b。可替换地,资源位置高速缓存更新676可以是渐进的更新,即只有自从上次本地高速缓存114b被更新以来所发生的对高速缓存114a的改变才可以被发送。
示出的消息服务器110a还具有客户端发现部件678。客户端发现部件678可以被配置为在分布式计算系统100中发现新的消息客户端110b。通过向分布式计算系统100中的所有消息客户端110b发送心跳消息662,新的消息客户端110b能够确定消息服务器110a的身份。然后,新的消息客户端110b可以就向消息系统108注册方面联系消息服务器110a(例如,通过向消息服务器110a发送应答664)。
示出的消息服务器110a还具有多播注册管理器686。多播注册管理器686可以被配置为管理多播注册数据结构的主版本116a。多播注册管理器686可以被配置为每当多播注册数据结构116a被改变时,就通知消息系统108中的消息客户端110b。然后,每个消息客户端110b可以更新它的多播注册数据结构116b的本地副本。
图7示出了可以由消息系统108中的消息服务器110a执行的进程间通信方法700的一个示例,该消息系统108在分布式计算系统100中实现。
根据所描绘的方法700,消息服务器110a可以发现702在分布式计算系统100中的新的消息客户端110b。这可以通过向分布式计算系统100中的所有消息客户端110b发送心跳消息662来实现。当接收到心跳消息662时,新的消息客户端110b能够确定消息服务器110a的身份。然后,新的消息客户端110b可以就向消息系统108注册方面联系消息服务器110a。
消息服务器110a还可以验证704注册的消息客户端110b在运行。这可以通过周期性地向分布式计算系统100中的所有消息客户端110b发送心跳消息662来实现。所有注册的消息客户端110b可以被配置为通过向消息服务器110a发送应答664来响应所接收的每个心跳消息662。只要特定的消息客户端110a继续响应所发送的心跳消息662,那么消息服务器110a就可以推断消息客户端110b仍然在运行。然而,如果特定的消息客户端110b未能响应特定数目的连续的心跳消息662(例如,3个连续的心跳消息662),那么消息服务器110a可以推断该消息客户端110b不再运行。
消息服务器110a还可以保持706在注册的消息客户端110b之间的同步。由消息服务器110a所发送的心跳消息662可以包括用于消息系统108的主时间666。每个消息客户端110b可以基于所接收的在心跳消息662中的主时间666来更新它的本地时间668。
消息服务器110a还可以管理708消息资源位置高速缓存的主版本114a。消息服务器110a可以通知消息系统108中的消息客户端110b关于对消息资源位置高速缓存的主版本114a作出的改变(例如,当新的软件部件106向消息系统108注册时)。
消息服务器110a还可以管理710多播注册数据结构的主版本116a。消息服务器110a可以通知消息系统108中的消息客户端110b关于对多播注册数据结构的主版本116a作出的改变(例如,当软件部件106为多播事件进行了注册时)。
上面描述的图7的方法700可以由对应于图7A所示的装置加功能框700A的各种硬件和/或软件部件和/或模块来执行。换言之,图7所示的框702至710对应于图7A所示的装置加功能框702A至710A。
图8示出了可以由消息系统108中的消息实体110(即,消息服务器110a或者消息客户端110b)执行的进程间通信方法800的一个示例,该消息系统108在分布式计算系统100中实现。
根据所描绘的方法800,消息实体110可以促成802由软件部件106向消息系统108的注册。软件部件106可以向消息实体110发送注册消息222。响应于接收到注册消息222,消息实体110可以使得在资源位置高速缓存的主版本114a中创建用于软件部件106的条目230。条目230可以将软件部件106的物理地址224、软件部件106的逻辑名226、以及用于逻辑名226的任何别名228关联起来。可以向消息系统108中的所有消息客户端110b通知被添加到资源位置高速缓存的主版本114a的条目230。
消息实体110还可以促成804在注册的软件部件106之间的单播通信。消息实体110可以接收消息336,其中目的地由接收方软件部件106b的逻辑名226来识别。消息实体110可以将接收方软件部件106b的逻辑名226解析成接收方软件部件106b的物理地址224。这可以通过参考资源位置高速缓存114来实现。然后,消息实体110可以向接收方软件部件106b的物理地址224转发消息336。
消息实体110还可以促成806由分布式计算系统100中的软件部件106为多播事件进行的注册。响应于接收到多播注册消息442,消息实体110可以使得在多播注册数据结构的主版本116a中创建用于软件部件106的条目446。条目446可以将软件部件106的物理地址224和软件部件106正在注册的多播事件的逻辑名444关联起来。
消息实体110还可以促成808在注册的软件部件106之间的多播通信。当接收到包含用于多播事件的逻辑名444的多播消息552时,消息实体110可以识别已经为该多播事件进行了注册的软件部件106b-d的物理地址224b-d。这可以通过参考多播注册数据结构116来实现。然后,消息实体110可以向适当的接收方软件部件106b-d转发多播消息552。
上面描述的图8的方法800可以由对应于图8A所示的装置加功能框800A的各种硬件和/或软件部件和/或模块来执行。换言之,图8所示的框802至808对应于图8A所示的装置加功能框802A至808A。
图9示出了本文描述的消息系统可以如何在基于UNIX的系统上实现的一个示例。在所描绘的示例中,该消息系统在以太网底板上进行分层,并且用套接字(socket)层来实现用户-内核接口。这种结构允许可承载UNIX的内核模块是该消息系统的一部分并且模糊了内核和用户空间部件之间的区别。该消息系统包括消息内核模块902、资源位置服务器904、资源位置高速缓存906和多播消息确认处理部件908。
图10示出了本文描述的消息系统可以如何在Sun Solaris系统上实现的一个示例。即使该系统正运行在单OS系统上,它仍然可以保持部件之间的相同的消息接口。在该结构中,诸如心跳和本地高速缓存维护这样的消息特征可以自动失效。如果消息内核模块被重写并且为Linux重新编译用户空间软件,那么相同的软件系统可以运行在基于Linux的系统上。该消息系统包括控制消息部件1002、资源位置高速缓存1006和多播消息确认处理部件1008。
图11示出了本文描述的消息系统可以如何在实时操作系统(RTOS)上实现的一个示例。该消息系统包括资源位置服务器1104、资源位置高速缓存1106和多播消息确认处理部件1108。
在该系统中冗余也可以得到支持,因为所有的消息目的地都可以被动态地构建与解析。这意味着当特定的硬件单元失效时,该消息系统可以不注册那些逻辑名并更新任何的分布的高速缓存。当产生在线替换时,该新的单元可以注册相同的逻辑名但使用新的物理位置。无需对任何应用做任何改变,该新的单元可以准备完全地加入该系统。通过使备用单元注册特定的逻辑名,还能够使备用单元保持“活跃(hot)”。这允许活动单元确定它们的存在(通过能够解析名字)并向它发送更新消息以使备用单元保持同步。当备用单元检测到活动单元已经不运行时,它能够注册所有的活动单元逻辑名。这允许实现热(hot)冗余和温(warm)冗余。
图12示出了用于促成前面描述的分布式计算系统100中的软件部件106之间的进程间通信的装置的部分硬件实现。该电路装置用标号1200表示,并且能够在包含在路由器、交换机、基站等中的各种处理模块或板中实现。
装置1200包括将若干电路连接在一起的中央数据总线1202。这些电路包括CPU(中央处理单元)或控制器1204、接收电路1206、发送电路1208、和存储单元1210。
如果装置1200是无线设备的一部分,那么接收和发送电路1206和1208能够连接到RF(射频)电路上,但RF电路在图中未示出。接收电路1206在将接收到的信号发送给数据总线1202之前,处理并缓存这些信号。另一方面,发送电路1208在将来自数据总线1202的数据从设备1200发送出去之前,处理并缓存该数据。如果装置1200不是无线设备的一部分,那么接收和发送电路1206和1208可被配置用于通过有线连接来接收来自其它装置(例如,其它的硬件单元102)的数据和向其它装置(例如,其它的硬件单元102)发送数据。CPU/控制器1204执行数据总线1202的数据管理的功能,并且还执行一般的数据处理功能,包括执行存储单元1210的指令内容。
可替换地,发送电路1208和接收电路1206可以是CPU/控制器1204的一部分,而不是如图12所示的分开布置。
存储单元1210包括用标号1212统一表示的一组模块和/或指令。在该实施例中,模块/指令1212包括,除了其它方面之外,用于促成由软件部件106向消息系统108注册的注册功能1234,用于促成在注册的软件部件106之间的单播通信的单播通信功能1218,用于促成由软件部件106为多播事件进行的注册的多播注册功能1220,用于促成在注册的软件部件106之间的多播通信的多播通信功能1222,用于在分布式计算系统100中发现新的消息客户端110b的发现功能1224,用于验证注册的消息客户端110b在运行的验证功能1226,用于保持注册的消息客户端110b之间的同步的同步功能1228,用于管理资源位置高速缓存1214的高速缓存管理功能1230,以及用于管理多播注册数据结构1216的多播管理功能1232。注册功能1234、单播通信功能1218、多播注册功能1220、多播通信功能1222、发现功能1224、验证功能1226、同步功能1228、高速缓存管理功能1230和多播管理功能1232包括用于执行图1-11所示和所描述的处理步骤的计算机指令或代码。
可以选择性地实现特定于实体的特定指令。例如,如果装置1200提供消息客户端110b的功能,那么可以实现注册功能1234、单播通信功能1218、多播注册功能1220和多播通信功能1222。如果装置1200提供消息服务器110a的功能,那么可以实现所有描绘的功能。
此外,资源位置高速缓存1214和多播注册数据结构1216也可以被包含在存储单元1210中。可替换地,资源位置高速缓存1214和多播注册数据结构1216可以被存储在除了单元1210之外的一个或多个其它存储单元中。
在该实施例中,存储单元1210是RAM(随机存取存储器)电路。这些示例性的功能(如注册功能1234、单播通信功能1218、多播注册功能1220、多播通信功能1222、发现功能1224、验证功能1226、同步功能1228、高速缓存管理功能1230和多播管理功能1232)是软件例程、模块和/或数据集。存储单元1210能够被连接到易失性或非易失性类型的另一存储电路(未示出)上。可替换地,存储单元1210能够由其它电路类型制成,诸如EEPROM(电可擦可编程只读存储器)、EPROM(电可编程只读存储器)、ROM(只读存储器)、ASIC(专用集成电路)、磁盘、光盘、和本领域公知的其它电路类型。
还应注意的是,所描述的发明性过程也能够被编码为在本领域已知的任何计算机可读介质上携带的计算机可读指令。在该说明书和所附权利要求书中,术语“计算机可读介质”指的是参与向诸如图12所示和所描述的CPU/控制器1204的任何处理器提供用于执行的指令的任何介质。这种介质可以是存储类型的,并且可以采取如前面(例如,在图12的存储单元1210的描述中)描述的易失性或非易失性存储介质形式。这种介质也可以是传输类型的,并且可以包括同轴电缆、铜线、光缆、以及传递能够携带机器或计算机可读信号的声波、电磁波或光波的空中接口。该计算机可读介质可以是与装置1200分离的计算机产品的一部分。
如本文所使用的,术语“确定”涵盖广泛的各种动作,因此,“确定”可以包括运算、计算、处理、推导、研究、查找(例如,在表格、数据库或另一数据结构中查找)、断定等。此外,“确定”可以包括接收(例如,接收信息)、存取(例如,存取存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
短语“基于”并不意味着“仅仅基于”,除非另外明确指定。换言之,短语“基于”即描述了“仅仅基于”又描述了“至少基于”。
除了上面所述,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件部件或设计来执行本文所描述的功能的它们的任何组合来实现或执行结合本公开描述的各种其它说明性逻辑框、模块和电路。
结合本公开所描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中或者在这两者的组合中体现。软件模块可以驻留在本领域已知的任何形式的存储介质中。如之前所描述的,可以使用的存储介质的一些示例包括RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM等。软件模块可以包括单一指令或者许多指令,并且可以分布在若干个不同的代码段上、不同的程序中以及跨越多个存储介质。存储介质可以耦合到处理器,以使得该处理器能够从该存储介质读取信息和向该存储介质写入信息。可替换地,存储介质可集成到处理器。
此外,应该意识到,用于执行诸如图7-8所示的那些本文描述的方法和技术的模块和/或其它适当的装置能够由适用的移动设备和/或基站进行下载和/或以其他方法获取。例如,这种设备能够耦合到服务器以促成用于执行本文描述的方法的装置的传送。
应当理解,权利要求书并不受限于上面所示的精确配置和部件。在不背离权利要求书范围的情况下,可以对本文描述的系统、方法和装置的布置、操作和细节作出各种修改、改变和变化。

Claims (40)

1、一种用于进程间通信的装置,包括:
处理器;以及
耦合到所述处理器的电路,用于促成由软件部件向消息系统的注册、促成在注册的软件部件之间的单播通信、促成由软件部件为多播事件进行的注册、以及促成在注册的软件部件之间的多播通信。
2、根据权利要求1所述的装置,其中,为了促成由软件部件向所述消息系统的注册,所述耦合到所述处理器的电路还用于确定所述软件部件的逻辑名、确定所述软件部件的物理地址、以及促使将所述软件部件的所述逻辑名与所述软件部件的所述物理地址关联起来的条目被添加到资源位置高速缓存。
3、根据权利要求1所述的装置,其中,为了促成在注册的软件部件之间的单播通信,所述耦合到所述处理器的电路还用于接收去往软件部件的消息、将标识所述软件部件的逻辑名解析成物理地址、以及向所述物理地址发送所述消息。
4、根据权利要求1所述的装置,其中,为了促成由软件部件为多播事件进行的注册,所述耦合到所述处理器的电路还用于接收对应于多播事件的多播注册消息,以及促使在多播注册数据结构中创建条目,其中,所述条目将所述软件部件的物理地址与所述多播事件的逻辑名关联起来。
5、根据权利要求1所述的装置,其中,为了促成在注册的软件部件之间的多播通信,所述耦合到所述处理器的电路还用于从发送方软件部件接收对应于多播事件的多播消息、通过参考多播注册数据结构来确定哪些软件部件已经为所述多播事件进行了注册、向已经为所述多播事件进行了注册的软件部件发送所述多播消息、从接收到所述多播消息的软件部件接收确认消息、以及向所述发送方软件部件发送确认消息。
6、一种用于进程间通信的装置,包括:
处理器;以及
耦合到所述处理器的电路,用于在分布式计算系统中发现新的消息客户端、验证注册的消息客户端在运行、保持所述注册的消息客户端之间的同步、管理资源位置高速缓存的主版本、以及管理多播注册数据结构的主版本。
7、根据权利要求6所述的装置,其中,为了发现新的消息客户端、验证注册的消息客户端在运行、以及保持所述注册的消息客户端之间的同步,所述耦合到所述处理器的电路还用于向所述消息系统中的消息客户端发送心跳消息并处理对所述心跳消息的应答。
8、根据权利要求6所述的装置,其中,为了管理所述资源位置高速缓存的主版本,所述耦合到所述处理器的电路还用于每当所述资源位置高速缓存被改变时就通知所述消息系统中的消息客户端,并且其中,为了管理所述多播注册数据结构的主版本,所述耦合到所述处理器的电路还用于每当所述多播注册数据结构被改变时就通知所述消息系统中的消息客户端。
9、一种用于进程间通信的方法,所述方法由消息系统中的消息实体执行,所述方法包括:
促成由软件部件向所述消息系统的注册;
促成在注册的软件部件之间的单播通信;
促成由软件部件为多播事件进行的注册;以及
促成在注册的软件部件之间的多播通信。
10、根据权利要求9所述的方法,其中,促成由软件部件向所述消息系统的注册包括:
确定所述软件部件的逻辑名;
确定所述软件部件的物理地址;以及
促使将所述软件部件的所述逻辑名与所述软件部件的所述物理地址关联起来的条目被添加到资源位置高速缓存。
11、根据权利要求9所述的方法,其中,促成在注册的软件部件之间的单播通信包括:
接收去往软件部件的消息,其中,所述软件部件由逻辑名识别;
将所述逻辑名解析成物理地址;以及
向所述物理地址发送所述消息。
12、根据权利要求9所述的方法,其中,促成由软件部件为多播事件进行的注册包括:
接收对应于多播事件的多播注册消息;以及
促使在多播注册数据结构中创建条目,其中,所述条目将所述软件部件的物理地址与所述多播事件的逻辑名关联起来。
13、根据权利要求9所述的方法,其中,促成在注册的软件部件之间的多播通信包括:
从发送方软件部件接收对应于多播事件的多播消息;
通过参考多播注册数据结构来确定哪些软件部件已经为所述多播事件进行了注册;
向已经为所述多播事件进行了注册的软件部件发送所述多播消息;
从接收到所述多播消息的软件部件接收确认消息;以及
向所述发送方软件部件发送确认消息。
14、一种用于进程间通信的方法,所述方法由在分布式计算系统中实现的消息系统中的消息服务器执行,所述方法包括:
在所述分布式计算系统中发现新的消息客户端;
验证注册的消息客户端在运行;
保持所述注册的消息客户端之间的同步;
管理资源位置高速缓存的主版本;以及
管理多播注册数据结构的主版本。
15、根据权利要求14所述的方法,其中,发现新的消息客户端、验证注册的消息客户端在运行、以及保持所述注册的消息客户端之间的同步包括:
向所述消息系统中的消息客户端发送心跳消息;以及
处理对所述心跳消息的应答。
16、根据权利要求14所述的方法,其中,管理所述资源位置高速缓存的主版本包括每当所述资源位置高速缓存被改变时就通知所述消息系统中的消息客户端,并且其中,管理所述多播注册数据结构的主版本包括每当所述多播注册数据结构被改变时就通知所述消息系统中的消息客户端。
17、一种包括消息实体的硬件单元,所述消息实体用于促成分布式计算系统中软件部件之间的进程间通信,所述消息实体包括:
用于促成由软件部件向消息系统的注册的注册部件;
用于促成在注册的软件部件之间的单播通信的资源位置服务器;
用于促成由软件部件为多播事件进行的注册的多播注册部件;以及
用于促成在注册的软件部件之间的多播通信的多播通信部件。
18、根据权利要求17所述的硬件单元,其中所述注册部件还用于:
确定所述软件部件的逻辑名;
确定所述软件部件的物理地址;以及
促使将所述软件部件的所述逻辑名与所述软件部件的所述物理地址关联起来的条目被添加到资源位置高速缓存。
19、根据权利要求17所述的硬件单元,其中,所述资源位置服务器还用于:
接收去往软件部件的消息,其中,所述软件部件由逻辑名识别;
将所述逻辑名解析成物理地址;以及
向所述物理地址发送所述消息。
20、根据权利要求17所述的硬件单元,其中,所述多播注册部件还用于:
接收对应于多播事件的多播注册消息;以及
促使在多播注册数据结构中创建条目,其中,所述条目将所述软件部件的物理地址与所述多播事件的逻辑名关联起来。
21、根据权利要求17所述的硬件单元,其中,所述多播通信部件还用于:
从发送方软件部件接收对应于多播事件的多播消息;
通过参考多播注册数据结构来确定哪些软件部件已经为所述多播事件进行了注册;
向已经为所述多播事件进行了注册的软件部件发送所述多播消息;
从接收到所述多播消息的软件部件接收确认消息;以及
向所述发送方软件部件发送确认消息。
22、一种包括消息服务器的硬件单元,所述消息服务器用于促成分布式计算系统中软件部件之间的进程间通信,所述消息服务器包括:
客户端发现部件,用于在所述分布式计算系统中发现新的消息客户端;
验证部件,用于验证注册的消息客户端在运行;
同步部件,用于保持所述注册的消息客户端之间的同步;
高速缓存管理器,用于管理资源位置高速缓存的主版本;以及
多播注册管理器,用于管理多播注册数据结构的主版本。
23、根据权利要求22所述的硬件单元,其中,所述客户端发现部件、所述验证部件、和所述同步部件各自用于:
向所述消息系统中的消息客户端发送心跳消息;以及
处理对所述心跳消息的应答。
24、根据权利要求22所述的硬件单元,其中,所述高速缓存管理器用于每当所述资源位置高速缓存被改变时就通知所述消息系统中的消息客户端,并且其中,所述多播注册管理器用于每当所述多播注册数据结构被改变时就通知所述消息系统中的消息客户端。
25、一种包括消息实体的装置,所述消息实体用于促成分布式计算系统中软件部件之间的进程间通信,所述消息实体包括:
用于促成由软件部件向消息系统的注册的模块;
用于促成在注册的软件部件之间的单播通信的模块;
用于促成由软件部件为多播事件进行的注册的模块;以及
用于促成在注册的软件部件之间的多播通信的模块。
26、根据权利要求25所述的装置,其中,所述用于促成由软件部件向消息系统的注册的模块包括:
用于确定所述软件部件的逻辑名的模块;
用于确定所述软件部件的物理地址的模块;以及
用于促使将所述软件部件的所述逻辑名与所述软件部件的所述物理地址关联起来的条目被添加到资源位置高速缓存的模块。
27、根据权利要求25所述的装置,其中,所述用于促成在注册的软件部件之间的单播通信的模块包括:
用于接收去往软件部件的消息的模块,其中,所述软件部件由逻辑名识别;
用于将所述逻辑名解析成物理地址的模块;以及
用于向所述物理地址发送所述消息的模块。
28、根据权利要求25所述的装置,其中,所述用于促成由软件部件为多播事件进行的注册的模块包括:
用于接收对应于多播事件的多播注册消息的模块;以及
用于促使在多播注册数据结构中创建条目的模块,其中,所述条目将所述软件部件的物理地址与所述多播事件的逻辑名关联起来。
29、根据权利要求25所述的装置,其中,所述用于促成在注册的软件部件之间的多播通信的模块包括:
用于从发送方软件部件接收对应于多播事件的多播消息的模块;
用于通过参考多播注册数据结构来确定哪些软件部件已经为所述多播事件进行了注册的模块;
用于向已经为所述多播事件进行了注册的软件部件发送所述多播消息的模块;
用于从接收到所述多播消息的软件部件接收确认消息的模块;以及
用于向所述发送方软件部件发送确认消息的模块。
30、一种包括消息服务器的装置,所述消息服务器用于促成分布式计算系统中软件部件之间的进程间通信,所述装置包括:
用于在所述分布式计算系统中发现新的消息客户端的模块;
用于验证注册的消息客户端在运行的模块;
用于保持所述注册的消息客户端之间的同步的模块;
用于管理资源位置高速缓存的主版本的模块;以及
用于管理多播注册数据结构的主版本的模块。
31、根据权利要求30所述的装置,其中,所述用于发现新的消息客户端的模块、所述用于验证注册的消息客户端在运行的模块、以及所述用于保持所述注册的消息客户端之间的同步的模块各自包括:
用于向所述消息系统中的消息客户端发送心跳消息的模块;以及
用于处理对所述心跳消息的应答的模块。
32、根据权利要求30所述的装置,其中,所述用于管理所述资源位置高速缓存的主版本的模块包括用于每当所述资源位置高速缓存被改变时就通知所述消息系统中的消息客户端的模块,并且其中,所述用于管理所述多播注册数据结构的主版本的模块包括用于每当所述多播注册数据结构被改变时就通知所述消息系统中的消息客户端的模块。
33、一种用于促成分布式计算系统中软件部件之间的进程间通信的计算机程序产品,所述计算机程序产品包括在其上具有指令的计算机可读介质,所述指令包括:
用于促成由软件部件向消息系统的注册的代码;
用于促成在注册的软件部件之间的单播通信的代码;
用于促成由软件部件为多播事件进行的注册的代码;以及
用于促成在注册的软件部件之间的多播通信的代码。
34、根据权利要求33所述的计算机程序产品,其中,所述用于促成由软件部件向所述消息系统的注册的代码包括:
用于确定所述软件部件的逻辑名的代码;
用于确定所述软件部件的物理地址的代码;以及
用于促使将所述软件部件的所述逻辑名与所述软件部件的所述物理地址关联起来的条目被添加到资源位置高速缓存的代码。
35、根据权利要求33所述的计算机程序产品,其中,所述用于促成在注册的软件部件之间的单播通信的代码包括:
用于接收去往软件部件的消息的代码,其中,所述软件部件由逻辑名识别;
用于将所述逻辑名解析成物理地址的代码;以及
用于向所述物理地址发送所述消息的代码。
36、根据权利要求33所述的计算机程序产品,其中,所述用于促成由软件部件为多播事件进行的注册的代码包括:
用于接收对应于多播事件的多播注册消息的代码;以及
用于促使在多播注册数据结构中创建条目的代码,其中,所述条目将所述软件部件的物理地址与所述多播事件的逻辑名关联起来。
37、根据权利要求33所述的计算机程序产品,其中,所述用于促成在注册的软件部件之间的多播通信的代码包括:
用于从发送方软件部件接收对应于多播事件的多播消息的代码;
用于通过参考多播注册数据结构来确定哪些软件部件已经为所述多播事件进行了注册的代码;
用于向已经为所述多播事件进行了注册的软件部件发送所述多播消息的代码;
用于从接收到所述多播消息的软件部件接收确认消息的代码;以及
用于向所述发送方软件部件发送确认消息的代码。
38、一种用于促成分布式计算系统中软件部件之间的进程间通信的计算机程序产品,所述计算机程序产品包括在其上具有指令的计算机可读介质,所述指令包括:
用于在所述分布式计算系统中发现新的消息客户端的代码;
用于验证注册的消息客户端在运行的代码;
用于保持所述注册的消息客户端之间的同步的代码;
用于管理资源位置高速缓存的主版本的代码;以及
用于管理多播注册数据结构的主版本的代码。
39、根据权利要求38所述的计算机程序产品,其中,所述用于发现新的消息客户端的代码、所述用于验证注册的消息客户端在运行的代码、以及所述用于保持所述注册的消息客户端之间的同步的代码各自包括:
用于向所述消息系统中的消息客户端发送心跳消息的代码;以及
用于处理对所述心跳消息的应答的代码。
40、根据权利要求38所述的计算机程序产品,其中,所述用于管理所述资源位置高速缓存的主版本的代码包括用于每当所述资源位置高速缓存被改变时就通知所述消息系统中的消息客户端的代码,并且其中,所述用于管理所述多播注册数据结构的主版本的代码包括用于每当所述多播注册数据结构被改变时就通知所述消息系统中的消息客户端的代码。
CN200880014655A 2007-05-04 2008-05-02 用于可扩展和冗余电信系统的进程间通信方法和装置 Pending CN101675424A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US91624707P 2007-05-04 2007-05-04
US60/916,247 2007-05-04
US12/112,961 2008-04-30
US12/112,961 US8464272B2 (en) 2007-05-04 2008-04-30 Inter-process communication methods and apparatus for building scalable/redundant telecommunications systems
PCT/US2008/062408 WO2008137668A2 (en) 2007-05-04 2008-05-02 Inter- process communication methods and apparatus for scalable and redundant telecommunications systems

Publications (1)

Publication Number Publication Date
CN101675424A true CN101675424A (zh) 2010-03-17

Family

ID=39940504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880014655A Pending CN101675424A (zh) 2007-05-04 2008-05-02 用于可扩展和冗余电信系统的进程间通信方法和装置

Country Status (7)

Country Link
US (1) US8464272B2 (zh)
EP (1) EP2156313A2 (zh)
JP (1) JP2010529524A (zh)
KR (1) KR20100017611A (zh)
CN (1) CN101675424A (zh)
TW (1) TW200910108A (zh)
WO (1) WO2008137668A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447650A (zh) * 2010-10-25 2012-05-09 微软公司 带复制的一致消息收发
CN105391711A (zh) * 2015-11-05 2016-03-09 山东超越数控电子有限公司 业务平台及基于tipc协议的通信方法
CN105426260A (zh) * 2015-10-30 2016-03-23 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015137954A1 (en) * 2014-03-13 2015-09-17 Hewlett-Packard Development Company, L.P. Component multicast protocol
WO2016040889A1 (en) * 2014-09-11 2016-03-17 Cisco Technology, Inc. Crowd-sourced cloud computing
US10873540B2 (en) 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10360606B2 (en) 2016-07-19 2019-07-23 Cisco Technology, Inc. Crowd-sourced cloud computing in a multiple resource provider environment
CN107920012B (zh) * 2016-10-10 2021-05-11 腾讯科技(深圳)有限公司 即时通信消息的存储方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994001832A1 (en) 1992-07-07 1994-01-20 Systems Strategies, Inc. Apparatus and method for providing service oriented, message-based interprocess communication in a networked computing system
DE4417588A1 (de) * 1993-08-30 1995-03-02 Hewlett Packard Co Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
JPH0830455A (ja) 1994-07-18 1996-02-02 Hitachi Ltd オブジェクト指向情報処理システム
CA2240022C (en) * 1995-12-08 2002-02-19 Amsc Subsidiary Corporation Mobile communications from computer aided dispatch system via a customer premises gateway for satellite communication system
US6430698B1 (en) * 1998-10-05 2002-08-06 Nortel Networks Limited Virtual distributed home agent protocol
US20040031033A1 (en) * 2001-06-02 2004-02-12 Ravi Chandra Method and apparatus for inter-process communication management
US6920485B2 (en) * 2001-10-04 2005-07-19 Hewlett-Packard Development Company, L.P. Packet processing in shared memory multi-computer systems
TW589907B (en) 2002-03-15 2004-06-01 Ind Tech Res Inst Method and system of multicast management mechanism for mobile networks
US7080151B1 (en) * 2002-04-01 2006-07-18 Utstarcom, Inc. Method and system for mobile IP home agent redundancy by using home agent control nodes for managing multiple home agents
US6721907B2 (en) * 2002-06-12 2004-04-13 Zambeel, Inc. System and method for monitoring the state and operability of components in distributed computing systems
US7734681B2 (en) * 2002-08-20 2010-06-08 Symantec Operating Corporation Inter-process messaging using multiple client-server pairs
JP4292890B2 (ja) * 2003-06-26 2009-07-08 株式会社日立製作所 マルチキャスト配信方法、配信装置およびシステム
US7721907B2 (en) * 2005-11-22 2010-05-25 Rexam Closure Systems Inc. Child-resistant flip-top dispensing closure and package
US8560651B2 (en) * 2006-03-07 2013-10-15 Cisco Technology, Inc. Method and system for streaming user-customized information

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102447650A (zh) * 2010-10-25 2012-05-09 微软公司 带复制的一致消息收发
US9794305B2 (en) 2010-10-25 2017-10-17 Microsoft Technology Licensing, Llc Consistent messaging with replication
CN105426260A (zh) * 2015-10-30 2016-03-23 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法
CN105426260B (zh) * 2015-10-30 2018-08-21 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法
CN105391711A (zh) * 2015-11-05 2016-03-09 山东超越数控电子有限公司 业务平台及基于tipc协议的通信方法

Also Published As

Publication number Publication date
EP2156313A2 (en) 2010-02-24
US20080276249A1 (en) 2008-11-06
WO2008137668A2 (en) 2008-11-13
US8464272B2 (en) 2013-06-11
TW200910108A (en) 2009-03-01
JP2010529524A (ja) 2010-08-26
KR20100017611A (ko) 2010-02-16
WO2008137668A3 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
CN101675424A (zh) 用于可扩展和冗余电信系统的进程间通信方法和装置
CN101960825B (zh) 发布/订阅消息中介
CN101645801B (zh) 基于集群管理的软件版本升级方法及命令交换机
CN102035886B (zh) 联盟基础结构内的一致性
US10491698B2 (en) Dynamic distribution of persistent data
WO2015021905A1 (zh) 软件更新方法、系统及设备
CN101023666A (zh) 用于给装置提供节目指南状态信息的方法和设备
CN101686145A (zh) 一种具有升级功能的设备、升级方法及系统
CN101360127A (zh) 文件更新方法及传输系统
CN101951369A (zh) 基于自动发现的终端批量升级方法及其系统
US20070299958A1 (en) State synchronization apparatuses and methods
CN113014618B (zh) 消息处理方法、系统和电子设备
CN112995932B (zh) 基于哈希算法的短信链路监控方法、装置、设备及介质
CN103036989B (zh) 套接字服务器及套接字服务方法
CN111726417B (zh) 延时控制方法、装置、服务器及存储介质
CN114531946B (zh) 数据推送方法、数据推送系统和计算机程序产品
RU2376720C2 (ru) Способы и устройство для обеспечения канала управления в сети передачи данных
CN114090687A (zh) 一种数据同步方法及装置
CN100531059C (zh) 状态同步系统及方法
CN114125024A (zh) 音频传输方法、电子设备及可读存储介质
CN101106489A (zh) 状态同步系统及方法
CN109783136B (zh) 一种配置更新方法、装置、设备和存储介质
CN115361264B (zh) 节点管理方法、装置、节点、系统及存储介质
CN117749810A (zh) 一种区块链业务处理方法、装置电子设备及可读存储介质
Singhvi et al. Prophet: a contextual information system framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100317