维护消息传送系统的持久性技术方案

技术编号:20597087 阅读:34 留言:0更新日期:2019-03-16 12:40
本发明专利技术提供了包括用于从第一客户端装置接收针对在多个通道中的第一通道中的位置处开始的所述第一通道的消息的请求的计算机程序的方法、系统和设备,其中各通道包括相应的有顺序的多个消息,所述多个消息根据所述顺序被存储在一个或多个相应缓冲器中,各缓冲器具有相应存活时间;从所述第二客户端装置中的一个第二客户端装置接收包括所述顺序中的位于该位置之处或之后的所述第一通道中的一个或多个消息的响应消息;将所述消息发送至所述第一客户端装置。

Maintaining the persistence of messaging systems

The present invention provides a method, system and device for receiving a computer program for receiving a request for a message for the first channel from a first client device at a location in a first channel in a plurality of channels, each of which includes a corresponding sequential plurality of messages stored in one or more corresponding buffers in accordance with the said order. Each buffer has a corresponding lifetime; receives a response message including one or more messages in the first channel located at or after the location in the sequence from a second client device in the second client device; and sends the message to the first client device.

【技术实现步骤摘要】
【国外来华专利技术】维护消息传送系统的持久性相关领域的交叉引用本申请要求提交于2016年5月16日的美国专利申请15/155,384的优先权,其全部内容通过引用而并入于此。
技术介绍
本说明书涉及数据通信系统,特别地涉及用于实现实时、可扩展的发布-订阅消息传送的系统。发布-订阅模式(或者“PubSub”)是利用软件系统实现的数据通信消息传送布置,其中,所谓的发布者将消息发布到主题,并且所谓的订户接收与他们所订阅的特定主题有关的消息。每个主题可以存在一个或多个发布者,并且发布者一般不知道什么样的订户(如果有的话)将接收到所发布的消息。一些PubSub系统不缓存消息或者具有小的缓存,这意味着订户可能不会接收到在订阅特定主题之前所发布的消息。在消息发布激增期间、或者随着特定主题的订户的数量增加,PubSub系统可能易受到性能不稳定性的影响。
技术实现思路
一般来说,本说明书中所描述的主题的一个方面可以体现在如下的方法中,该方法包括以下动作:从第一客户端装置接收针对在多个通道中的第一通道中的位置处开始的所述第一通道的消息的请求,其中各通道包括相应的有顺序的多个消息,所述多个消息根据所述顺序被存储在一个或多个相应缓冲器中,各缓冲器具有相应存活时间;标识所述顺序中的与所述位置相对应的所述第一通道中的第一消息,其中所述第一消息被存储在具有已经期满的存活时间的缓冲器中;向订阅所述第一通道的一个或多个第二客户端装置发送针对所述顺序中的在所述位置处开始的消息的请求;从所述第二客户端装置中的一个第二客户端装置接收包括所述顺序中的位于所述位置之处或之后的所述第一通道的一个或多个消息的响应消息;根据所述顺序而从所述第一通道中的具有尚未期满的存活时间的一个或多个缓冲器检索所述第一通道的消息;根据所述顺序来组合所检索到的消息以及来自所述响应消息的消息;以及将所组合的消息发送至所述第一客户端装置。该方面的其它实施例包括相应的系统、设备和计算机程序。这些和其它方面可以可选地包括以下特征中的一个或多个。针对订阅所述第一通道的一个或多个第二客户端装置,确定到所述第一通道的相应连接延迟;以及标识所述第二客户端装置中的具有最短连接延迟的一个第二客户端装置。针对订阅所述第一通道的一个或多个第二客户端装置,确定到所述第一通道的相应当前连接会话的持续时间;以及标识所述一个或多个第二客户端装置中的具有最长当前连接会话的一个第二客户端装置。根据所述顺序来组合所检索到的消息以及来自所述响应消息的消息进一步包括:从所组合的消息中移除一个或多个重复消息。可以实施本说明中所描述的主题的特定实施例,以实现以下优点中的一个或多个优点。消息传送系统维护消息的通道。对于各通道,将被发布到通道的消息存储在该通道的通道流中。所述通道流包括通道细流的序列,各通道细流具有相应存活时间。消息按照特定顺序存储在相应通道细流中。在通道细流的存活时间期满的情况下,期满通道细流中所存储的消息不再可用于通道的订户,并且期满通道细流所用的计算资源可被释放用于消息传送系统中的其它计算工作。在特定订户请求通道的通道流的期满通道细流中的该通道的消息的情况下,消息传送系统向该通道的其他订户请求消息历史,包括该通道的通道流的已期满通道细流中先前所存储的消息。消息传送系统可以组合来自其他订户的消息历史以及通道的通道流的有效(未期满)通道细流中当前所存储的消息,并将所组合的消息提供至特定订户。以这种方式,特定订户可以接收通道的连续消息,而不会丢失通道的通道流的期满通道细流中所存储的消息。在附图和以下的描述中详细阐述了本说明书中所描述的主题的一个或多个实施例。根据说明书、附图和权利要求,本主题的其它特征、方面和优点将变得明显。附图说明图1A示出支持PubSub通信模式的示例性系统。图1B示出示例性客户端装置上的软件的功能层。图2是示例性消息传送系统的图。图3A是用于将数据写入通道细流(streamlet)的示例性方法的数据流程图。图3B是用于从通道细流读取数据的示例性方法的数据流程图。图4A是用于将消息发布到消息传送系统的通道的示例性方法的数据流程图。图4B是用于订阅消息传送系统的通道的示例性方法的数据流程图。图4C是用于存储消息传送系统的通道的消息的示例性数据结构。图5是用于维护消息传送系统中的通道的订户的消息的持久性的示例性方法的数据流程图。图6是用于维护消息传送系统中的通道的订户的消息的持久性的另一示例性方法的流程图。各个附图中的相同附图标记和标示表示相同元件。具体实施方式图1A示出支持PubSub通信模式的示例性系统100。发布者客户端(例如,发布者1)可以通过系统100来将消息发布到命名通道(例如,“通道1”)。消息可以包括任何类型的信息,该信息包括以下各项中的一项或多项:文本、图像内容、声音内容、多媒体内容、视频内容、以及二进制数据等。其它类型的消息数据也是可以的。订户客户端(例如,订户2)可以使用系统100来订阅命名通道,并且开始接收在订阅请求之后发生的或来自给定位置(例如,消息编号或时间偏移)的消息。客户端可以是发布者和订户两者。根据配置,PubSub系统可以分类如下:·一对一(1:1)。在该配置中,各通道存在一个发布者和一个订户。典型的用例是私人消息传送。·一对多(1:N)。在该配置中,各通道存在一个发布者和多个订户。典型的用例是广播消息(例如,股票价格)。·多对多(M:N)。在该配置中,存在发布到单个通道的许多发布者。消息然后被传递给多个订户。典型的用例是地图应用。创建命名通道不需要单独的操作。在订阅通道时或者在向通道发布消息时隐式地创建通道。在一些实现中,通道名称可以由名称空间来限定。名称空间包括一个或多个通道名称。不同的名称空间可以具有相同的通道名称,而不会引起歧义。名称空间的名称可以是通道名称的前缀,其中名称空间和通道名称以点分隔。在一些实现中,可以在指定通道授权设置时使用名称空间。例如,消息传送系统100可以具有app1.foo和app1.system.notifications通道,其中“app1”是名称空间的名称。系统可以允许客户端订阅和发布到app1.foo通道。然而,客户端仅可以订阅但不发布到app1.system.notifications通道。图1B示出示例性客户端装置上的软件的功能层。客户端装置(例如,客户端102)是诸如个人计算机、膝上型计算机、平板计算机、智能电话、智能手表或服务器计算机等的数据处理设备。其它类型的客户端装置也是可以的。应用层104包括将与PubSub系统100集成的最终用户应用。消息传送层106是应用层104的编程接口以利用系统100的诸如通道订阅、消息发布、消息检索、用户认证和用户授权等的服务。在一些实现中,被传递到消息传送层106以及从消息传送层106传递的消息被编码为JavaScript对象表示法(JSON)对象。其它消息编码方案也是可以的。操作系统108层包括客户端102上的操作系统软件。在各种实现中,可以使用持久性或非持久性连接来发送和接收去往/来自系统100的消息。可以使用例如网络套接字来创建持久连接。诸如TCP/IP层112等的传输协议实现了与系统100的传输控制协议/因特网协议通信,其中消息传送层106可以使用该通信以通过到系统100的连接来本文档来自技高网...

【技术保护点】
1.一种方法,包括:利用一个或多个计算机来进行:从第一客户端装置接收针对在多个通道中的第一通道中的位置处开始的所述第一通道的消息的请求,其中各通道包括相应的有顺序的多个消息,所述多个消息根据所述顺序被存储在一个或多个相应缓冲器中,各缓冲器具有相应存活时间;标识所述顺序中的与所述位置相对应的所述第一通道中的第一消息,其中所述第一消息被存储在具有已经期满的存活时间的缓冲器中;向订阅所述第一通道的一个或多个第二客户端装置发送针对所述顺序中的在所述位置处开始的消息的请求;从所述第二客户端装置中的一个第二客户端装置接收包括所述顺序中的位于所述位置之处或之后的所述第一通道的一个或多个消息的响应消息;根据所述顺序而从所述第一通道中的具有尚未期满的存活时间的一个或多个缓冲器检索所述第一通道的消息;根据所述顺序来组合所检索到的消息以及来自所述响应消息的消息;以及将所组合的消息发送至所述第一客户端装置。

【技术特征摘要】
【国外来华专利技术】2016.05.16 US 15/155,3841.一种方法,包括:利用一个或多个计算机来进行:从第一客户端装置接收针对在多个通道中的第一通道中的位置处开始的所述第一通道的消息的请求,其中各通道包括相应的有顺序的多个消息,所述多个消息根据所述顺序被存储在一个或多个相应缓冲器中,各缓冲器具有相应存活时间;标识所述顺序中的与所述位置相对应的所述第一通道中的第一消息,其中所述第一消息被存储在具有已经期满的存活时间的缓冲器中;向订阅所述第一通道的一个或多个第二客户端装置发送针对所述顺序中的在所述位置处开始的消息的请求;从所述第二客户端装置中的一个第二客户端装置接收包括所述顺序中的位于所述位置之处或之后的所述第一通道的一个或多个消息的响应消息;根据所述顺序而从所述第一通道中的具有尚未期满的存活时间的一个或多个缓冲器检索所述第一通道的消息;根据所述顺序来组合所检索到的消息以及来自所述响应消息的消息;以及将所组合的消息发送至所述第一客户端装置。2.根据权利要求1所述的方法,还包括:针对订阅所述第一通道的一个或多个第二客户端装置,确定到所述第一通道的相应连接延迟;以及标识所述第二客户端装置中的具有最短连接延迟的一个第二客户端装置。3.根据权利要求1所述的方法,还包括:针对订阅所述第一通道的一个或多个第二客户端装置,确定到所述第一通道的相应当前连接会话的持续时间;以及标识所述一个或多个第二客户端装置中的具有最长当前连接会话的一个第二客户端装置。4.根据权利要求1所述的方法,其中,根据所述顺序来组合所检索到的消息以及来自所述响应消息的消息进一步包括:从所组合的消息中移除一个或多个重复消息。5.一种系统,包括:一个或多个计算机,其被编程为进行包括以下的操作:从第一客户端装置接收针对在多个通道中的第一通道中的位置处开始的所述第一通道的消息的请求,其中各通道包括相应的有顺序的多个消息,所述多个消息根据所述顺序被存储在一个或多个相应缓冲器中,各缓冲器具有相应存活时间;标识所述顺序中的与所述位置相对应的所述第一通道中的第一消息,其中所述第一消息被存储在具有已经期满的存活时间的缓冲器中;向订阅所述第一通道的一个或多个第二客户端装置发送针对所述顺序中的在所述位置处开始的消息的请求;从所述第二客户端装置中的一个第二客户端装置接收包括所述顺序中的位于所述位置之处或之后的所述第一通道的一个或多个消息的响应消息;根据所述顺序而从所述第一通道中的具有尚未期满的存活时间的一个或多个缓冲器检索所述第一通道的...

【专利技术属性】
技术研发人员:A·库什尼尔M·特里克辛
申请(专利权)人:萨托里环球有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1