CN109564560A - 基于队列的消息同步 - Google Patents
基于队列的消息同步 Download PDFInfo
- Publication number
- CN109564560A CN109564560A CN201680086300.3A CN201680086300A CN109564560A CN 109564560 A CN109564560 A CN 109564560A CN 201680086300 A CN201680086300 A CN 201680086300A CN 109564560 A CN109564560 A CN 109564560A
- Authority
- CN
- China
- Prior art keywords
- message
- user
- client terminal
- terminal device
- queue
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
在各种示例性实施方案中,呈现一种用于基于队列的消息同步的系统和方法。根据消息次序接收一个或多个电子消息。生成对应于第一用户的消息队列。基于所接收的消息次序存储消息队列中的一个或多个消息。确定所生成的消息队列中待传输的下一消息的位置。将来自消息队列中的所确定位置的消息传输到由第一用户操作的客户端装置。
Description
技术领域
本发明的实施方案大体上涉及专用机器的技术领域,所述专用机器促进与包括此类专用机器的计算机化变型的消息接发系统的交互以及对此类变型的改进,且涉及使得此类专用机器与促进与消息接发系统的交互的其它专用机器相比得以改进的技术。具体地说,本发明阐述基于所生成的消息队列来管理消息且使消息同步的系统和方法。
背景技术
常规地,在装置之间交换消息。此外,服务器可用于促进消息的交换。然而,正交换的消息常常可能被无序地接收。例如,如果第一装置将三个消息发送到第二装置,则第二装置可能以随机次序接收三个消息。并且,对于丢失的消息,常规上,服务器将必须连同重新发送与丢失的消息相关联的其它消息一起重新发送丢失的消息。
发明内容
附图说明
附图中的各图仅示出本发明的示例性实施方案,且不能被视为限制其范围。
图1是示出根据一些示例性实施方案的联网系统的框图。
图2是示出根据一些示例性实施方案一个或多个客户端装置和队列系统之间的示例性数据流的框图。
图3是示出根据一些示例性实施方案的队列系统的组件的框图。
图4至图6是示出根据一些示例性实施方案的队列系统的操作的流程图。
图7至图9是示出根据一些示例性实施方案的客户端装置和服务器之间的示例性数据流的流程图。
图10至图13是根据一些示例性实施方案的客户端装置上显示的消息应用的示例性用户界面。
图14示出根据示例性实施方案的呈计算机系统的形式的机器的图形表示,在所述机器内,可执行指令集用于使得机器执行本文中论述的方法中的任何一个或多个。
具体实施方式
以下描述包括实施本发明的说明性实施方案的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,阐述许多特定细节以便提供对本文中论述的主题的各种示例性实施方案的理解。然而,对于本领域的技术人员将显然的是,可在无这些具体细节的情况下实践所述主题的实施方案。
示例性方法(例如,算法)促进生成消息队列以存储发送到客户端装置的消息,且示例性系统(例如,专用机器)配置为促进生成消息队列以存储发送到客户端装置的消息。示例仅代表可能的变化。除非另外明确陈述,否则结构(例如,结构组件,例如模块)是任选的且可组合或细分,且操作(例如,程序、算法或其它功能中)可在次序方面不同或者组合或细分。在以下描述中,出于解释的目的,阐述许多特定细节以便提供对各种示例性实施方案的透彻理解。然而,本领域的技术人员将显然的,本主题可以在没有这些具体细节的情况下实践。
在各种示例性实施方案中,一种系统生成消息队列以存储发送到客户端装置的消息。当消息由系统接收时,系统基于消息次序将消息存储到消息队列中。在一些例子中,消息次序是消息按时间顺序排序。在其它例子中,消息次序可变化。例如,服务器可基于消息的尺寸或包括于消息内的内容将消息存储到消息队列中。一旦消息存储在消息队列中,则系统从消息队列确定消息的位置且将消息从所述位置传输到客户端装置。此外,对于丢失或未由客户端装置接收的消息,仅丢失的消息被传输到客户端装置,而不重新发送已经由客户端装置接收的其它相关联数据(例如,作为同一次通信的一部分的其它消息)。
相应地,本文中论述的方法中的一个或多个可避免需要重新发送已经由客户端装置接收的相关联数据,这可以具有减少由系统内的一个或多个装置使用的计算资源的技术效果。此类计算资源示例包括(但不限于)处理器循环、网络业务、存储器占用率、存储空间和功率消耗。
参照图1,示出高层级基于客户端-服务器的网络架构100的示例性实施方案。呈基于网络的消息接发系统的示例性形式的联网系统102经由网络104(例如,因特网、局域网(LAN)或广域网(WAN))将服务器侧功能性提供到可以访问网络104的一个或多个客户端装置110。此外,图1示出例如网络服务应用112(例如,使得能够访问因特网上代管的网页的网络应用),和在客户端装置110上执行的消息应用114。
用户106可以是人、机器或与客户端装置110交互的其它构件。在示例性实施方案中,用户106不是网络架构100的一部分,而是经由客户端装置110或其它构件与网络架构100交互。例如,用户106将输入(例如,触摸屏输入或文数字输入)提供到客户端装置110,且所述输入经由网络104传送到联网系统102。在此例子中,联网系统102响应于接收到来自用户106的输入而经由网络104将信息传送到客户端装置110以供呈现给用户106。通过这种方式,用户106可以使用客户端装置110与联网系统102交互。此外,用户106可以拥有或操作一个以上客户端装置(例如,客户端装置110)。
客户端装置110包括但不限于移动电话、台式计算机、膝上型计算机、智能电话、平板计算机、多处理器系统、基于微处理器或可编程消费型电子装置,或用户可以利用访问联网系统102的任何其它通信装置。在一些实施方案中,客户端装置110包括用于显示信息的组件(例如,呈用户界面的形式)。在其它实施方案中,客户端装置110可以包括以下中的一个或多个:触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(GPS)装置等。此外,尽管图1仅示出客户端装置110,但可存在包括在网络架构100中的多个客户端装置。
在一个实施方案中,联网系统102是基于网络的消息接发系统,其在网络104上接收寻址到用户的消息,维持所接收消息的队列,并且将所接收消息从队列传输到用户。网络104的一个或多个部分可以是:自组织(ad hoc)网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网的一部分、公共交换电话网络(PSTN)的一部分、蜂窝式电话网络、无线网络、WiFi网络、WiMax网络、另一类型的网络,或者两个或两个以上此类网络的组合。网络104的任何一个或多个部分可以经由传输介质传送信息。如本文所使用,“传输介质”是指能够传送(例如,传输)指令以供机器(例如,供此机器的一个或多个处理器)执行的任何无形(例如,易失性)介质,并且包括数字或模拟通信信号或其它无形介质以促进此软件的通信。
客户端装置110具有允许客户端装置110参与基于网络的消息接发系统的一个或多个应用,包括(但不限于)消息应用114或电子邮件应用。消息应用114提供使客户端装置能够与消息服务器(例如,消息接发系统142)通信的功能性。在一些实施方案中,消息应用114还配置为在客户端装置110上本地执行操作。例如,消息应用114配置为呈现显示从与服务器(例如,消息接发系统142)的通信所接收的数据的用户界面。
应用服务器140代管消息接发系统142和队列系统150,其中的每一个可以包括一个或多个模块、引擎或应用,并且其中的每一个可以实施为硬件、软件、固件、电路或其任何组合。应用服务器140继而示出为联接到一个或多个数据库服务器124,所述数据库服务器促进对一个或多个信息存储库或数据库126的访问。在示例性实施方案中,数据库126是存储消息接发系统142和其它组件或装置之间传送的信息(例如,寻址到用户的消息)的存储装置。
队列系统150确保消息根据消息次序传输到客户端装置110。如下文进一步阐述的,消息次序可使用各种因素确定。队列系统150生成消息队列并将消息队列存储在数据库(例如,数据库126)中。此外,消息基于消息次序存储和维持在消息队列中。在与客户端装置110通信期间,消息从消息队列检索并根据消息次序传输到客户端装置。实际上,客户端装置110的用户106根据消息次序接收消息以在客户端装置110上显示。
在一些示例性实施方案中,队列系统150与消息接发系统142通信(例如,访问来自数据库126的消息)。在替代实施方案中,队列系统150和消息接发系统142可以组合成单一系统。
此外,虽然图1中示出的基于客户端-服务器的网络架构100采用客户端-服务器架构,但本发明主题当然不限于此架构,且可同等地应用于例如分布式或对等架构系统中。
图1中示出的系统或机器(例如,数据库、装置、服务器)中的任一个可以包括专用(例如,专门的或非通用)计算机,或以其它方式实施于专用计算机中,所述专用计算机已经修改(例如,由软件(例如应用的一个或多个软件模块)、操作系统、固件、中间件或其它程序配置或编程)以执行本文中针对所述系统或机器描述的功能中的一个或多个。例如,下文相对于图14论述能够实施本文中所描述的方法中的任一个或多个的专用计算机系统,且此专用计算机可以因此是用于执行本文中论述的方法的任何一种或多种的构件。在此类专用计算机的技术领域内,已由本文中论述的结构修改以执行本文中论述的功能的专用计算机,与缺乏本文中论述的结构或在其它方面不能够执行本文中论述的功能的其它专用计算机相比在技术上得以改进。相应地,根据本文中论述的系统和方法配置的专用机器提供相对于类似专用机器的技术的改进。
如本文所使用的,“数据库”是数据存储资源并且可以存储构造为文本文件、表、电子表格、关系型数据库(例如,对象关系型数据库)、三元组存储、阶层式数据存储或其任何合适的组合的数据。此外,图1中所示出的系统或机器中的任何两个或多个可以组合成单一系统或机器,且本文中针对任何单一系统或机器描述的功能可以在多个系统或机器之间细分。
图2是示出根据一些示例性实施方案一个或多个客户端装置和队列系统之间的示例性数据流的框图200。队列系统可以对应于图1的队列系统150。如所示,队列系统包括两个消息队列,一个用于用户A,一个用于用户B。此外,消息队列中的每一个存储相应用户(例如,用户A或用户B)的消息。图2中还示出装置A、B和C。装置A和B属于用户A。装置C属于用户B。装置A示出为已经从用户A的消息队列接收前三个消息。因此,由线202描绘的第四消息正传输到装置A。装置B示出为已经从用户A的消息队列接收前五个消息。因此,由线204描绘的第六消息正传输到装置B。由此,用户的消息队列可以向相同用户的多个装置提供相同消息。队列系统150配置为识别待传输到多个装置中的每一个的消息队列中的当前消息的位置。图2中还示出由线206描绘的第九十三个消息正传输到装置C。队列系统的每一用户可以具有对应的消息队列。
图3是示出根据一些示例性实施方案的队列系统150的组件的框图。队列系统150示出为包括:接收模块310、生成器模块320、存储模块330、确定模块340和传输器模块350,其全部配置为彼此通信(例如,经由总线、共享存储器或交换机(switch))。本文中所描述的组件(例如,模块)中的任何一个或多个可以单独利用硬件(例如,机器的一个或多个处理器)来实施,或者利用硬件与软件的组合来实施。例如,本文中所描述的任何组件可以物理上包括处理器中的一个或多个的布置,或者配置处理器(例如,在机器的一个或多个处理器当中)以执行本文中针对所述模块描述的操作。相应地,本文中所描述的不同组件可以在不同时间点包括和配置处理器的不同布置,或在不同时间点包括和配置处理器的单一布置。本文中所描述的每一组件(例如,模块)是用于执行本文中针对所述组件描述的操作的构件的示例。此外,这些组件中的任何两个或多个可以组合成单一组件,并且用于单一组件的本文中所描述功能可以在多个组件之间细分。此外,根据不同的示例性实施方案,本文中描述为在单个机器、数据库或装置内实施的组件可以跨越多个机器、数据库或装置分布。
在各种示例性实施方案中,接收器模块310配置为接收寻址到第一用户的一个或多个电子消息。在一些实施方案中,一个或多个消息经由消息接发服务或应用发送到第一用户。例如,一个或多个消息可以作为即时消息接发应用的一部分发送到第一用户。此外,在一些例子中,即时消息接发应用由包括在图1的应用服务器140中的消息接发系统142代管。在一些例子中,寻址到第一用户的一个或多个消息包括图像、文本或视频的任何组合。例如,经由即时消息接发应用发送的消息可以包括针对第一用户的词语或短语。作为另一示例,经由即时消息接发应用发送的消息可以包括供第一用户查看的图像的集合。
在各种示例性实施方案中,寻址到第一用户的一个或多个电子消息由接收器模块310根据消息次序接收。在一些例子中,消息次序是按时间顺序的。换句话说,消息次序与消息被创建或接收的次序匹配。在此方面,所接收消息可以各自基于创建时间(例如,创作时间)而进行时间戳记。作为另一示例性,所接收消息可各自基于由接收器模块310的接收时间而进行时间戳记。在此方面,消息由接收器模块310接收的次序与消息被进行时间戳记的次序(例如,消息次序)匹配。
在一些例子中,一个或多个电子消息被接收的次序不与所述消息被进行时间戳记的消息次序(例如,消息次序)匹配。例如,所述消息次序基于消息由接收器模块310的延迟接收而中断。为校正中断,消息由接收器模块310根据时间戳分拣以便实现正确的消息次序。
在示例性实施方案中,接收器模块310配置为从由第二用户操作的电子装置接收寻址到第一用户的电子消息。换句话说,接收器模块310从由消息接发系统142代管或与消息接发系统142相关联的即时消息接发应用的其他用户所操作的装置接收所述一个或多个消息中的任一个。所述装置可以各自具有安装在其上的即时消息接发应用(例如,消息应用114)的客户端组件,其允许经由即时消息接发应用从相应装置接收消息。此外,装置可以执行即时消息应用的客户端组件以便与消息接发系统142通信。
在各种示例性实施方案中,接收器模块310从接收方用户的客户端装置接收队列同步请求。在一些例子中,来自客户端装置的请求指示客户端装置准备好从队列系统150接收消息。
在各种示例性实施方案中,生成器模块320配置为生成(或更新)对应于第一用户的消息队列。所生成的消息队列存储由接收器模块310接收的寻址到第一用户(例如,指示第一用户为接收方)的消息。相应地,在各种示例性实施方案中,所生成的消息队列特定针对第一用户。对于从消息接发系统142接收消息的每一用户,生成器模块320生成针对用户的相应消息接发队列。在一些例子中,所生成的消息队列是能够存储以特定次序寻址到第一用户的消息的数据结构。
在各种示例性实施方案中,生成器模块320进一步配置为生成标签,如下文进一步阐述的。如下文还进一步阐述的,在一些实施方案中,确定模块340从消息队列确定用于传输的位置。
在各种示例性实施方案中,存储模块330配置为基于所接收消息次序将一个或多个消息存储在消息队列中。在一些例子中,存储模块330基于指派到一个或多个消息的时间戳将一个或多个消息中的每一个加载或汇总到消息队列中。如之前所陈述的,所接收消息可以各自在创建期间(例如,当其由发送方客户端装置上的消息接发应用114生成或创作时)进行时间戳记。或者,所述消息可以各自随着其由接收器模块310接收而进行时间戳记。在任一事件中,消息次序可以由时间戳指示。
在各种示例性实施方案中,确定模块340配置为确定待传输到客户端装置的所生成的消息队列中的下一消息的位置。换句话说,确定模块340确定未传输到由第一用户操作的客户端装置的消息队列中的消息的位置。此外,所述消息可以是在消息队列中的所有其它剩余未传输消息前面的最前消息。
在各种示例性实施方案中,传输器模块350配置为基于消息队列中的所确定的位置将消息传输到由第一用户操作的客户端装置。在另外的实施方案中,传输器模块350配置为使得显示可由客户端装置的用户选择的触发。触发可以由用户选择以确认先前由队列系统150传输的一个或多个消息是否由客户端装置接收,如下文进一步阐述的。此外,传输器模块350进一步配置为传输(例如,重新传输)未由客户端装置接收的任何先前传输的消息(例如,如由触发指示)。在另外的实施方案中,传输器模块350配置为仅传输未由客户端装置接收的消息,而不重新传输客户端装置已经接收的任何其它消息,如下文进一步阐述的。
图4至图6是示出根据一些示例性实施方案的队列系统150执行传输消息的方法400的操作的流程图。方法400中的操作可以由队列系统150的组件部分或完全执行,所述操作可以利用上文参照图3所描述的组件完全或部分地在联网系统102的一个或多个应用服务器140中实施。相应地,借助于示例性参考队列系统150描述方法400。然而,将理解,方法400的至少一些操作可以部署在各种其它硬件配置上或由存在于网络架构100中其它地方的类似组件执行。因此,方法400不旨在限于队列系统150。如图4中所示,方法400包括操作410、420、430、440和450。
在操作410,接收器模块310根据特定消息次序接收一个或多个电子消息,一个或多个消息寻址到用户。如上文所论述的,一个或多个消息可以经由消息接发服务发送到用户。此外,一个或消息从由消息接发服务的其他用户操作的一个或多个客户端装置(例如,装置110)接收。在一些例子中,消息接发服务由消息接发系统142代管。示例性消息接发服务包括即时消息接发、电子邮件、文本等。在即时消息接发的情况下,消息发送到用户已经注册消息接发服务的帐户。在一些例子中,用户的帐户是与用户相关联的别名或昵称。在另外的例子中,用户的帐户连接到移动装置的电话号码、电子邮件地址或唯一地识别用户的任何信息。在一些例子中,寻址到用户的消息指示用户已经注册消息接发服务的帐户。
此外,根据消息次序在接收器模块310处接收所述消息。如上文所论述的,在一些例子中,消息次序是按时间顺序的,且因此与所述消息被进行时间戳记的次序匹配。如上文所论述的,在各种示例性实施方案中,一旦消息被接收,接收器模块310就生成消息的时间戳。在另外的实施方案中,消息基于消息中的每一个的创建(例如,创作)时间而进行时间戳记。相应地,消息由接收器模块310基于消息的时间戳进行分拣。
在另外的示例性实施方案中,基于其它因素确定消息次序。例如,消息或包括在消息中的内容的尺寸也可以用于确定消息次序。在此方面,接收器模块310配置为基于消息或包括在消息中的内容(例如,图像、文本或视频)的尺寸来分拣消息。
在操作420,生成器模块320维持对应于用户的消息队列。在一些例子中,生成器模块230生成对应于用户的消息队列。如之前陈述的,在一些例子中,消息队列是能够存储寻址到用户的消息的数据结构。此外,所生成的消息队列特定针对用户。相应地,消息接发服务的每一用户具有由生成器模块320生成的相应消息队列。寻址到用户的消息存储在消息队列中。在另外的例子中,消息队列已经针对用户存在,且因此,针对特定用户的消息队列被识别且利用新消息更新。在一些例子中,消息队列包括一个或多个行,且存储在消息队列中的每一消息占据消息队列中的某一行。在示例性实施方案中,所生成的消息队列存储在可以由队列系统150访问的数据库(例如,数据库126)中。
在操作430,存储模块330基于所接收消息次序将一个或多个消息存储在消息队列中。在一些实施方案中,存储在消息队列中的消息中的每一个占据消息队列中的某一行或位置。此外,消息队列中的每一行可以用行号标记。因此,含有所存储消息的行的行号指示所存储消息的位置。此外,如果消息次序是按时间顺序的,则存储模块330解析一个或多个消息的时间戳使得消息按时间顺序存储在消息队列中。在另外的示例性实施方案中,存储模块330在一个或多个消息已经由接收器模块310分拣之后将一个或多个消息存储在消息队列中,如上文所论述的。在一些实施方案中,操作420和430可以组合成单一操作或大体上同时发生。
在操作440处,确定模块340确定待传输的所生成的消息队列中的下一消息的位置。在各种示例性实施方案中,如果用户正操作多个客户端装置,则待传输的下一消息的位置可以在多个客户端装置之间变化。换句话说,待传输的下一消息的位置特定针对由用户操作的每一装置。在各种示例性实施方案中,所生成的消息队列中的所确定位置是基于时间戳未传输到由用户操作的特定装置的下一消息的位置。例如,用户可能正操作两个单独装置,例如第一装置和第二装置。由用户操作的第一装置可能已经从消息队列接收比第二装置多的消息。例如,确定模块340确定第一装置从消息队列接收到十个消息,而第二装置仅从消息队列接收到五个消息。因此,待发送或传输到第一装置的下一消息的位置不同于待传输到第二装置的下一消息的位置。在示例性实施方案中,响应于来自客户端装置的队列同步请求执行操作440(例如,确定消息的位置)。
在操作450处,传输器模块350将下一消息从消息队列中的所确定位置传输到由用户操作的客户端装置。一旦消息由传输器模块350传输,就使得将所述消息显示在客户端装置的用户界面上。在各种示例性实施方案中,如果消息队列中仍存在未传输到客户端装置的消息,则方法400循环回到操作440。一旦消息队列中的所有消息已经传输到客户端装置,则客户端装置与消息队列中的消息完全同步。此外,客户端装置根据消息次序接收消息。
如图5所示,方法400可以包括操作510、520和530中的一个或多个。在操作510处,存储模块330将新消息添加到消息队列。在一些例子中,所述新消息从由第二用户操作的第二客户端装置接收,且新消息寻址到第一用户。第二用户使用在第二客户端装置上运行的消息应用(例如,消息应用114)创作(compose)消息。新消息存储到消息队列中的在先前存储到消息队列中的消息之后的位置中。换句话说,未存储在消息队列中的传入消息将由存储模块330存储到消息队列中。此外,对于其中消息按时间顺序存储在消息队列中的例子,新消息占据消息队列中的在先前存储到消息队列中的消息之后(例如,基于时间戳)出现的位置。在另外的例子中,消息基于其它各种因素(例如,消息尺寸、消息内容等)存储到消息队列中。
在操作520处,存储模块330将所传输的消息维持在消息队列中。换句话说,在传输器模块350在操作450处传输消息之后,存储模块330不从消息队列丢弃所传输的消息。在各种示例性实施方案中,存储模块330将所传输的消息的副本维持在消息队列中。此外,所传输的消息的副本保持在消息队列中使得其可用于传输到由用户操作的另一装置。例如,如果由用户操作的另一装置未接收到所述消息,则所保持的消息也可以传输到所述装置。更进一步,如果所述消息未由客户端装置接收,则所述消息可能需要重新传输。
在操作530,存储模块330保持消息队列中所传输的消息的位置(例如,保持对于消息队列的次序)。作为在操作520处将所传输的消息维持在消息队列中的结果,存储模块330保持消息队列中所传输的消息的位置。换句话说,消息在传输之后并不失去其在消息队列中的位置。在包括行的消息队列的示例中,即使在传输到用户的客户端装置之后,所传输的消息也占据相同行。在一些例子中,消息维持在消息队列中持续预定时段(例如,月或年),所述预定时段可以调整。
如图6所示,方法400可以包括操作610、620、630、640、650和660中的一个或多个。
在操作610,生成器模块320生成指示应该已经由客户端装置接收的至少一个先前传输的消息的标签。换句话说,所生成的标签指示先于待发送的下一消息的消息队列中的所确定位置的一个或多个消息。
在操作620,存储模块330将标签附加到来自消息队列中的所确定位置的消息。此外,当消息在操作450传输时,其随所附加标签一起传输。也就是说,传输器模块350连同来自所确定位置的消息一起传输所生成的标签。
在操作630,传输器模块350使得显示触发,所述触发可由用户选择以确认先前传输的消息是否由客户端装置接收。在一些例子中,所述触发在由用户操作的客户端装置的用户界面中显示。在另外的例子中,所述触发可以由用户选择以确认来自所生成的消息队列中的所确定位置的下一消息的成功接收。
在操作640,接收器模块310接收标签中指示的先前传输的消息由客户端装置接收的确认。所述确认从由用户操作的客户端装置接收。此外,在一些例子中,基于客户端装置的用户界面中显示的触发的选择接收所述确认。在各种示例性实施方案中,接收器模块310还接收下一消息由客户端装置成功地接收的确认。
或者,在操作650,接收器模块310接收先前传输的消息未由客户端装置接收到的指示。在一个实施方案中,客户端装置可以访问高速缓冲存储器或存储器以发现未接收到标签中指示的先前传输的消息。也就是说,安装在客户端装置上的消息接发应用的客户端组件可以自动确定未接收到先前传输的消息。因此,客户端装置可以将所述指示传输到接收器模块310,而用户不必激活触发。或者,作为由用户选择用户界面中显示的触发的结果,客户端装置将所述指示传输到接收器模块310。例如,用户可以在触发上点击以告知队列系统150未接收到所述消息。
在操作660处,传输器模块350将先前传输的消息传输(或重新传输)到客户端装置。此外,先前传输的消息传输到客户端装置,而不需要重新传输后续消息(例如,随标签发送的来自消息队列中的所确定位置的消息)或任何其它消息(例如,先前消息)。
图7是示出根据一些示例性实施方案的客户端装置和服务器(例如,队列系统150)之间的示例性数据流的通信流程图700。如图7所示,存在如由标有箭头的水平线指示的两个示例性数据流。如由上部标有箭头的水平线702指示,标签(例如,通知)和消息从服务器发送到客户端(例如,客户端装置)。发送到客户端的消息对应于来自消息队列中的所确定位置的消息,如上文在操作450中所描述的。如由下部标有箭头的水平线704指示的,客户端将指示消息由客户端接收到的确认发送到服务器。
图8是示出根据一些示例性实施方案的客户端装置和服务器(例如,队列系统150)之间的示例性数据流的通信流程图800。如图8所示,存在如由标有箭头的水平线指示的两个示例性数据流。在第一水平线802中,标签(例如,通知)和消息从服务器发送到客户端。在此示例中,消息是消息队列中的第二消息,如由ID号“2”指示。此外,消息的主体包括“HI2”。此外,标签陈述了服务器期望客户端接收到消息队列中的第一消息,如由期望001(EXPECT 001)指示。
在第二水平线804中,确认从客户端装置发送到服务器。确认陈述了客户端接收到消息队列中的第二消息。此外,客户端确认EXCEPT 001为真。换句话说,客户端确认还接收到第一消息。此外,第一水平线802和第二水平线804可以对应于上文对于操作620和操作640的描述。
图9是示出根据一些示例性实施方案的客户端装置和服务器(例如,队列系统150)之间的示例性数据流的通信流程图900。如图9所示,存在如由标有箭头的水平线指示的两个示例性数据流。在第一水平线910中,确认从客户端装置发送到服务器(例如,队列系统150)。确认陈述客户端接收到消息队列中的第二消息。然而,客户端指示未从服务器接收到第一消息。第一水平线910对应于操作650。
在第二水平线912中,来自消息队列的第一消息发送到客户端装置。此外,消息的主体可以包括“HI 1”。第二水平线912对应于操作660。
图10是根据一些示例性实施方案的在客户端装置上显示的消息接发应用的示例性用户界面1000。示例性用户界面1000包括来自消息队列的第一消息1002。由传输器模块350传输第一消息1002或使得第一消息1002在客户端装置上显示。此外,在一些例子中,第一消息1002来自如由确定模块440确定的消息队列中待传输到客户端装置的下一消息的位置。用户界面1000中还示出答复区段1004,在所述答复区段中用户可以将响应写入到第一消息1002。
图11是根据一些示例性实施方案的在第二客户端装置上显示的消息接发应用的示例性用户界面1100。如图11所示,示例性用户界面1100显示来自消息队列的第二消息1102和第三消息1104。此外,在一些例子中,图11中示出的第二客户端装置与图10中示出的客户端装置不同。然而,两个装置可以由同一用户拥有和操作。此外,第二消息1102和第三消息1104各自来自如由确定模块440确定的消息队列中待传输到客户端装置的下一消息的位置。如之前所陈述的,消息队列中的所确定位置可以在装置之间变化。然而,来自消息队列的消息传输到每一装置使得所有装置将根据相同消息次序接收所有消息。
图12是根据一些示例性实施方案的在客户端装置上显示的消息接发应用的示例性用户界面1200。在各种示例性实施方案中,在显示示例性用户界面1100之后,在客户端装置上显示示例性用户界面1200。用户界面1200包括触发1202,其是可选的以指示第一消息未由客户端装置接收。一旦选择触发1202,就将指示发送到队列系统150以指示未接收到第一消息。
图13是根据一些示例性实施方案的在客户端装置上显示的消息应用的示例性用户界面1300。在各种示例性实施方案中,在显示示例性用户界面1200之后,在客户端装置上显示示例性用户界面1300。如所示,响应于选择触发1202而传输并且在用户界面1300中显示第一消息1302。
模块、组件和逻辑
本文中将某些实施方案描述为包括逻辑或数个组件、模块或机制。模块可以构成软件模块(例如,机器可读介质上实施的代码)或硬件模块。“硬件模块”是能够执行特定操作的有形单元,且可以特定物理方式配置或布置。在各种示例性实施方案中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或处理器的群组)可以由软件(例如,应用或应用部分)配置为操作以执行如本文所描述的特定操作的硬件模块。
在一些示例性实施方案中,可以按机械方式、电子方式或其任何适合的组合来实施硬件模块。例如,硬件模块可以包括永久地配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件暂时地配置以执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其它可编程处理器执行的软件。一旦由此类软件配置,硬件模块就变为经独特地定制以执行所配置功能的特定机器(或机器的特定组件),且不再是通用处理器。应了解,可以由成本和时间考虑因素驱动以机械方式、在专用且永久配置的电路中或在暂时配置的电路(例如,由软件配置)中实施硬件模块的决策。
因此,短语“硬件模块”应理解为涵盖有形实体,即以物理方式建构、永久配置(例如,硬连线)或暂时配置(例如,编程)从而以某一方式操作或执行本文中所描述的特定操作的实体。如本文中所使用,“硬件实施的模块”是指硬件模块。考虑到其中硬件模块经暂时配置(例如,编程)的实施方案,无需在任一时刻配置或示例化硬件模块中的每一个。例如,在硬件模块包括由软件配置以变为专用处理器的通用处理器的情况下,通用处理器可以在不同时间配置为分别不同的专用处理器(例如,包括不同硬件模块)。软件因此配置一个或多个特定处理器,例如,以在一个时刻构成特定硬件模块且在不同时刻构成不同硬件模块。
硬件模块可以将信息提供到其它硬件模块以及从其它硬件模块接收信息。因此,可以将所描述的硬件模块视为以通信方式联接。当多个硬件模块同时存在时,可以通过信号传输(例如,通过适当的电路和总线)实现硬件模块中的两个或多个之间或当中的通信。在其中于不同时间配置或示例化多个硬件模块的实施方案中,可以例如经由存储和检索多个硬件模块已访问的存储器结构中的信息而实现此些硬件模块之间的通信。例如,一个硬件模块可以执行一操作且将所述操作的输出存储在所述硬件模块以通信方式联接到的存储器装置中。接着,另一硬件模块可以随后访问存储器装置以检索和处理所存储的输出。硬件模块还可以开启与输入或输出装置的通信,且可以对资源(例如,信息的集合)操作。
本文中所描述的示例性方法的各种操作可以至少部分由经暂时配置(例如,由软件)或永久配置以执行相关操作的一个或多个处理器执行。无论暂时还是永久地配置,此类处理器都可以构成操作以执行本文中所描述的一个或多个操作或功能的处理器实施的模块。如本文中所使用,“处理器实施的模块”是指使用一个或多个处理器实施的硬件模块。
类似地,本文所描述的方法可以至少部分地是处理器实施的,其中一个或多个特定处理器是硬件的示例。例如,方法的操作中的至少一些可以由一个或多个处理器或处理器实施的模块执行。此外,一个或多个处理器还可以操作以支持“云计算”环境或如“软件即服务”(SaaS,software as a service)中的相关操作的性能。例如,操作中的至少一些可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作可以经由网络(例如,因特网)以及经由一个或多个适当接口(例如,应用程序接口(API))访问。
操作的特定性能可以分布在处理器当中,不仅存在于单一机器内,而且还跨越多个机器部署。在一些示例性实施方案中,处理器或处理器实施的模块可以位于单个地理位置中(例如,家庭环境、办公室环境或服务器集群内)。在其它示例性实施方案中,处理器或处理器实施的模块可以跨多个地理位置分布。
示例性机器架构和机器可读介质
图14是示出根据一些示例性实施方案的机器1400的组件的框图,所述机器能够从机器可读介质(例如,机器可读存储介质)读取指令且执行本文中论述的方法中的任何一个或多个。具体地说,图14示出了呈计算机系统的示例性形式的机器1400的图形表示,在所述机器内,可执行用于使得机器1400执行本文中论述的方法中的任何一个或多个的指令1416(例如,软件、程序、应用、小程序、app或其它可执行代码)。指令将一般的非编程机器变换成专门配置为按所描述方式执行所描述和说明的功能的特定机器。在替代实施方案中,机器1400充当独立装置或可以联接(例如,联网)到其它机器。在联网部署中,机器1400可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份(capacity)操作,或在对等式(或分布式)网络环境中作为对等机器操作。机器1400可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、智能电话、移动装置、可穿戴式装置(例如,智能手表)、智能家庭装置(例如,智能电器)、其它智能装置、网络设备、网络路由器、网络交换机、网桥、或能够顺序地或以其它方式执行指定待由机器1400采取的动作的指令1416的任何机器。此外,虽然仅示出单个机器1400,但术语“机器”还应认为包括机器1400的集合,所述机器集合个别地或联合地执行指令1416以执行本文中所论述的方法中的任何一个或多个。
机器1400可以包括处理器1410、存储器1430和I/O组件1450,它们可以配置为例如经由总线1402彼此通信。在示例性实施方案中,处理器1410(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器、或其任何合适的组合)可以包括例如可执行指令1416的处理器1412和处理器1414。术语“处理器”旨在包括可以包括可同时执行指令的两个或两个以上独立的处理器(有时被称为“核心”)的多核处理器。尽管图14示出多个处理器,但机器1400可以包括具有单一核心的单一处理器、具有多个核心的单一处理器(例如,多核处理)、具有单一核心的多个处理器、具有多个核心的多个处理器、或其任何组合。
存储器/存储装置1430可以包括存储器1432(例如,主存储器、或其它存储器存储装置)和存储单元1436,这两者都可以由处理器1410例如经由总线1402访问。存储单元1436和存储器1432存储实施本文中描述的方法或功能中的任何一个或多个的指令1416。在指令1416由机器1400执行期间,指令1416还可以完全或部分存在于存储器1432内、存储单元1436内、处理器1410中的至少一个内(例如,处理器的高速缓冲存储器内)、或其任何合适的组合内。相应地,存储器1432、存储单元1436和处理器1410的存储器是机器可读介质的示例。
如本文中所使用的,“机器可读介质”意味着能够暂时或永久地存储指令和数据的装置,且可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、快闪存储器、光学介质、磁性介质、高速缓冲存储器、其它类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被认为包括能够存储指令1416的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓冲存储器和服务器)。术语“机器可读介质”还应被认为包括能够存储用于由机器(例如,机器1400)执行的指令(例如,指令1416)的任何介质或多个介质的组合,使得所述指令在由机器1400的一个或多个处理器(例如,处理器1410)执行时使机器1400执行本文中描述的方法中的任何一个或多个。因此,“机器可读介质”是指单一存储设备或装置,以及包括多个存储设备或装置的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。
此外,机器可读介质为非易失性的,因为其并不实施传播信号。然而,将有形机器可读介质标记为“非易失性”不应解释为意味着介质不能移动—应将所述介质视为可以从一个物理位置运输到另一物理位置。此外,因为机器可读介质是有形的,因此所述介质可以认为是机器可读装置。
I/O组件1450可以包括广泛的多种组件以接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等。包括在特定机器中的特定I/O组件1450将取决于机器的类型。例如,诸如移动电话等的便携式机器将可能包括触摸输入装置或其它此类输入机构,而无头式(headless)服务器机器将可能不包括这种触摸输入装置。应了解,I/O组件1450可以包括图14中未图示的许多其它组件。I/O组件1450仅为了简化以下论述而根据功能性分组,而分组决不是限制性的。在各种示例性实施方案中,I/O组件1450可以包括输出组件1452和输入组件1454。输出组件1452可以包括:视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如,扬声器)、触觉组件(例如,振动电机、电阻机构)、其它信号生成器等。输入组件1454可以包括:文数字输入组件(例如,键盘、配置为接收文数字输入的触摸屏、光电键盘或其它文数字输入组件)、基于点的输入组件(例如,鼠标、触摸垫、轨迹球、操纵杆、运动传感器或其它指向仪器)、触感输入组件(例如,物理按钮、提供触摸或触控手势的位置和/或力的触摸屏,或其它触觉输入组件)、音频输入组件(例如,麦克风)等。
在另外的示例性实施方案中,I/O组件1450可以包括:生物计量组件1456、运动组件1458、环境组件1460,或位置组件1462,以及大量其它组件。例如,生物识别组件1456可以包括用以进行以下操作的组件:检测表达(例如,手部表达、面部表达、声音表达、身体姿势或眼部跟踪),测量生物信号(例如,血压、心率、体温、出汗或脑波),识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等。运动组件1458可以包括:加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等等。环境组件1460可以包括例如:照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、近程传感器组件(例如,检测附近对象的红外传感器)、气体传感器(例如,用以检测有害气体浓度以获得安全或用以测量大气中的污染物的气体检测传感器),或可提供对应于周围物理环境的指示、测量值或信号的其它组件。位置组件1462可以包括:位置传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,检测可据以导出高度的空气压力的高度计或气压计)、定向传感器组件(例如,磁力计)等。
可使用广泛的多种技术实施通信。I/O组件1450可以包括可操作以分别经由联接1482和联接1472将机器1400联接到网络1480或装置1470的通信组件1464。例如,通信组件1464可以包括网络接口组件或其它合适的装置以与网络1480联接。在其它示例性中,通信组件1464可以包括:有线通信组件、无线通信组件、蜂窝式通信组件、近场通信(NFC)组件、组件(例如,低能)、组件和经由其它模态提供通信的其它通信组件。装置1470可以是另一机器或广泛的多种外围装置(例如,经由通用串行总线(USB)联接的外围装置)中的任一个。
此外,通信组件1464可以检测识别符或包括能够操作来检测识别符的组件。例如,通信组件1464可以包括:射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,检测例如通用产品码(UPC)条形码等一维条形码、例如快速响应(QR)码、Aztec码、数据矩阵、Dataglyph、MaxiCode、PDF417、超码、UCC RSS-2D条形码等多维条形码,和其它光码的光学传感器)或声学检测组件(例如,识别加标签的音频信号的麦克风)。另外,可以经由通信组件1464导出各种信息,例如经由因特网协议(IP)地理定位的位置、经由信号三角测量的位置、经由检测可指示特定位置的NFC信标信号的位置等。
传输介质
在各种示例性实施方案中,网络1480的一个或多个部分可以是:自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网络(PSTN)的一部分、传统电话业务(POTS)网络、蜂窝式电话网络、无线网络、网络、另一类型的网络,或此类网络中的两个或两个以上的组合。例如,网络1480或网络1480的一部分可以包括无线或蜂窝式网络,且联接1482可以是:码分多址(CDMA)连接、全球移动通信系统(GSM)连接、或其它类型的蜂窝式或无线联接。在此示例性中,联接1482可以实施多种类型的数据传送技术中的任一个,例如单载波无线传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、GSM演进增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设定组织定义的其它标准、其它长程协议,或其它数据传送技术。
指令1416可以在网络1480上利用传输介质经由网络接口装置(例如,包括在通信组件1464中的网络接口组件)且利用若干众所周知的传送协议中的任一个(例如,超文本传送协议(HTTP))来传输或接收。类似地,指令1416可以利用传输介质经由到装置1470的联接1472(例如,对等联接)来传输或接收。术语“传输介质”应被认为包括能够存储、编码或携载用于由机器1400执行的指令1416的任何无形介质,且包括数字或模拟通信信号或其它无形介质以有助于此类软件的通信。
语言
在整个本说明书中,多个例子可以实施描述为单一例子的组件、操作或结构。尽管将一个或多个方法的个别操作示出且描述为分离的操作,但可以并行地执行个别操作中的一个或多个,且并不要求以所示出的次序执行操作。呈现为示例性配置中的分离组件的结构和功能性可以实施为组合式结构或组件。类似地,呈现为单个组件的结构和功能性可实施为单一组件。这些以及其它变化、修改、添加和改进落在本文中的主题的范围内。
尽管已经参考特定示例性实施方案描述了本发明主题的概述,但可以在不脱离本发明的实施方案的更广范围的情况下对这些实施方案进行各种修改和改变。仅为了方便起见,且在不希望在实际上公开一个以上的情况下自发地将本申请的范围限制于任何单个公开或构思的情况下,本发明主题的此类实施方案在本文中可以个别地或共同地由术语“本发明”提及。
对本文中示出的实施方案进行足够详细的描述以使所属领域的技术人员能够实践本文中所公开的教示。可以使用其它实施方案且从本文中导出其它实施方案,使得可以在不脱离本发明的范围的情况下作出结构和逻辑上的替代和改变。因此,具体实施方式不应认为限制性的意义,且各种实施方案的范围仅由所附权利要求书连同此类权利要求书授权的等同形式的完整范围限定。
如本文中所使用,术语“或”可以在包括性或独占式意义上解释。此外,多个例子可以设置用于本文中描述为单一例子的资源、操作或结构。另外,各种资源、操作、模块、引擎和数据存储库之间的边界为略微任意的,且在特定说明性配置的上下文中说明特定操作。可以设想出功能性的其它分配,且其可以落入本发明的各种实施方案的范围内。一般来说,呈现为示例性配置中的单独资源的结构和功能性可以实现为组合式结构或资源。类似地,呈现为单个资源的结构和功能性可以实现为单独资源。这些和其它变化、修改、添加和改进落入如由所附权利要求书表示的本发明的实施方案的范围内。因此,说明书和图式应视为说明性意义而非限制性意义。
Claims (20)
1.一种方法,其包括:
根据消息次序接收一个或多个电子消息,一个或多个消息寻址到第一用户;
维持对应于所述第一用户的消息队列;
基于所接收的消息次序将一个或多个消息存储在消息队列中;
利用一个或多个处理器确定消息队列中待传输到由第一用户操作的第一客户端装置的下一消息的位置;以及
将下一消息从消息队列中的所确定位置传输到由第一用户操作的第一客户端装置。
2.根据权利要求1所述的方法,其中:
接收包括接收寻址到第一用户的新电子消息,所述消息是从由第二用户操作的电子装置接收的;以及
存储包括将新消息添加到消息队列,所述新消息占据消息队列中在先前存储到消息队列中的消息之后出现的位置。
3.根据权利要求1所述的方法,其中,所述消息次序基于指派到一个或多个消息的每一消息的时间戳。
4.根据权利要求1所述的方法,其进一步包括:
在传输之后将下一消息维持在消息队列中;以及
在传输之后保持消息队列中下一消息的位置。
5.根据权利要求1所述的方法,其进一步包括:
生成指示发送到第一客户端装置的先前传输的消息的标签;以及
将所述标签附加到来自消息队列中的所确定位置的下一消息,其中传输包括随所附加标签一起传输下一消息。
6.根据权利要求5所述的方法,其进一步包括:
接收标签中指示的先前传输的消息由第一客户端装置接收到的确认,确认是从由第一用户操作的装置接收的。
7.根据权利要求5所述的方法,其进一步包括:
使得显示触发,所述触发能够由用户选择以确认先前传输的消息由第一客户端装置接收到。
8.根据权利要求5所述的方法,其进一步包括:
接收先前传输的消息未由第一客户端装置接收到的指示;以及
将先前传输的消息传输到第一客户端装置,而不重新传输来自所确定位置的消息。
9.根据权利要求1所述的方法,其进一步包括:
从由第一用户操作的第一客户端装置接收队列同步请求;并且其中,确定消息的位置是基于来自第一客户端装置的队列同步请求而执行的。
10.根据权利要求1所述的方法,其进一步包括:
从由第一用户操作的第二客户端装置接收队列同步请求;并且其中确定包括确定针对由第一用户操作的第二客户端装置的所生成的消息队列中的第二位置,所述第二位置不同于针对由第一用户操作的第一客户端装置的所生成的消息队列中的下一消息的位置。
11.根据权利要求10所述的方法,其进一步包括将来自所生成的消息队列中的第二位置的消息传输到由第一用户操作的第二客户端装置。
12.根据权利要求1所述的方法,其中:
所述一个或多个消息包括指示其创作时间的时间戳;以及
存储所述一个或多个消息是基于所述时间戳的。
13.一种系统,其包括:
一个或多个处理器以及在计算机可读介质上可访问的可执行指令,所述可执行指令在执行时配置所述一个或多个处理器以至少进行以下操作:
根据消息次序接收一个或多个电子消息,一个或多个消息寻址到第一用户;
维持对应于所述第一用户的消息队列;
基于所接收的消息次序将一个或多个消息存储在消息队列中;
确定所生成的消息队列中待传输到由第一用户操作的第一客户端装置的下一消息的位置;以及
将下一消息从消息队列中的所确定位置传输到由第一用户操作的第一客户端装置。
14.根据权利要求13所述的系统,其中,所述一个或多个处理器进一步配置为:
接收寻址到第一用户的新电子消息,所述消息是从由第二用户操作的电子装置接收的;以及
将新消息添加到消息队列,所述新消息占据消息队列中在先前存储到消息队列中的消息之后出现的位置。
15.根据权利要求13所述的系统,其中,所述一个或多个处理器进一步配置为:
在传输之后将下一消息维持在消息队列中;以及
在传输之后保持消息队列中下一消息的位置。
16.根据权利要求13所述的系统,其中,所述一个或多个处理器进一步配置为:
生成指示发送到第一客户端装置的先前传输的消息的标签;以及
将所述标签附加到来自消息队列中的所确定位置的下一消息;以及
随所附加标签一起传输下一消息。
17.根据权利要求16所述的系统,其中,所述一个或多个处理器进一步配置为:
接收所述标签中指示的先前传输的消息由第一客户端装置接收到的确认,确认是从由第一用户操作的装置接收的。
18.根据权利要求16所述的系统,其中,所述一个或多个处理器进一步配置为:
使得显示触发,所述触发能够由用户选择以确认先前传输的消息由第一客户端装置接收到。
19.根据权利要求16所述的系统,其中,所述一个或多个处理器进一步配置为:
接收先前传输的消息未由第一客户端装置接收到的指示;以及
将先前传输的消息传输到第一客户端装置,而不重新传输来自所确定位置的消息。
20.一种机器可读存储装置,其存储指令,所述指令在由机器的一个或多个处理器执行时使得所述机器执行包括以下的操作:
根据消息次序接收一个或多个电子消息,一个或多个消息寻址到第一用户;
维持对应于第一用户的消息队列;
基于所接收的消息次序将一个或多个消息存储在消息队列中;
确定所生成的消息队列中待传输到由第一用户操作的第一客户端装置的下一消息的位置;以及
将下一消息从消息队列中的所确定位置传输到由第一用户操作的第一客户端装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/084282 WO2017206101A1 (en) | 2016-06-01 | 2016-06-01 | Synchronization of messages based on queues |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109564560A true CN109564560A (zh) | 2019-04-02 |
Family
ID=60479478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680086300.3A Pending CN109564560A (zh) | 2016-06-01 | 2016-06-01 | 基于队列的消息同步 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10747598B2 (zh) |
CN (1) | CN109564560A (zh) |
WO (1) | WO2017206101A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111712800A (zh) * | 2019-07-01 | 2020-09-25 | 深圳市大疆创新科技有限公司 | 消息同步方法和装置、无人驾驶系统以及可移动平台 |
CN113750517A (zh) * | 2020-11-30 | 2021-12-07 | 上海达龙信息科技有限公司 | 键盘操作数据传输方法及装置、键盘操作执行方法及装置 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114244783A (zh) * | 2021-12-27 | 2022-03-25 | 佛山众陶联供应链服务有限公司 | 一种低延时的银行回单下载方法和系统 |
CN115344396A (zh) * | 2022-10-19 | 2022-11-15 | 势加透博(成都)科技有限公司 | 一种基于LabVIEW的面板间同步控制方法和装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747598B2 (en) | 2016-06-01 | 2020-08-18 | Beijing Yi Zhang Yun Feng Technology Co., Ltd. | Synchronization of messages based on queues |
US20190207899A1 (en) * | 2017-12-28 | 2019-07-04 | Facebook, Inc. | Techniques for messaging conversation indexing |
US11431662B2 (en) | 2017-12-28 | 2022-08-30 | Meta Platforms, Inc. | Techniques for message deduplication |
CN109165106A (zh) * | 2018-08-24 | 2019-01-08 | 深圳乐信软件技术有限公司 | 业务处理方法、装置、设备、存储介质及流程运行系统 |
US11055156B2 (en) * | 2019-08-20 | 2021-07-06 | International Business Machines Corporation | Processing of a message stream |
CN113778701B (zh) * | 2021-01-07 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | 消息处理方法和装置以及电子设备和介质 |
CN112764947B (zh) * | 2021-01-15 | 2023-12-26 | 百果园技术(新加坡)有限公司 | 消息数据拉取方法、装置、设备和存储介质 |
CN113032491B (zh) * | 2021-04-07 | 2023-01-06 | 工银科技有限公司 | 实现静态数据同步的方法、装置、电子设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621798A (en) * | 1995-04-18 | 1997-04-15 | Intel Corporation | Method and apparatus for cooperative messaging |
US5841973A (en) * | 1996-03-13 | 1998-11-24 | Cray Research, Inc. | Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory |
US5887134A (en) * | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US20100070588A1 (en) * | 2008-09-15 | 2010-03-18 | Yahoo! Inc. | Reliability for instant messaging based on end point acknowledgements |
US20120066616A1 (en) * | 2010-09-14 | 2012-03-15 | Woods Shawn M | Message queue management |
US20130044583A1 (en) * | 2010-12-15 | 2013-02-21 | iTB Holdings, Inc. | Method, System and Program Product for Processing Requests |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442458B (zh) | 2007-11-23 | 2011-03-23 | 深圳富泰宏精密工业有限公司 | 序列式数据发送系统及方法 |
US8610593B2 (en) * | 2008-10-27 | 2013-12-17 | Koninklijke Philips N.V. | User feedback engine |
US20120297316A1 (en) * | 2011-05-17 | 2012-11-22 | Ferring B.V. | Methods and apparatus for handling outgoing electronic messages in a user terminal |
US8977279B2 (en) | 2012-05-30 | 2015-03-10 | Qualcomm Incorporated | Apparatus and method of prioritizing RRC signaling messages |
US10038735B2 (en) * | 2012-06-19 | 2018-07-31 | Loment, Inc. | Delivery control for HTTP communications among multiple end user communication devices |
US9577961B2 (en) * | 2014-06-27 | 2017-02-21 | Amazon Technologies, Inc. | Input/output management in a distributed strict queue |
CN104144116B (zh) * | 2014-07-16 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 即时通讯方法及即时通讯系统 |
US10230670B1 (en) * | 2014-11-10 | 2019-03-12 | Google Llc | Watermark-based message queue |
US10244070B2 (en) * | 2016-01-26 | 2019-03-26 | Oracle International Corporation | In-memory message sequencing |
US10747598B2 (en) | 2016-06-01 | 2020-08-18 | Beijing Yi Zhang Yun Feng Technology Co., Ltd. | Synchronization of messages based on queues |
-
2016
- 2016-06-01 US US16/305,823 patent/US10747598B2/en active Active
- 2016-06-01 CN CN201680086300.3A patent/CN109564560A/zh active Pending
- 2016-06-01 WO PCT/CN2016/084282 patent/WO2017206101A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5621798A (en) * | 1995-04-18 | 1997-04-15 | Intel Corporation | Method and apparatus for cooperative messaging |
US5841973A (en) * | 1996-03-13 | 1998-11-24 | Cray Research, Inc. | Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory |
US5887134A (en) * | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US20100070588A1 (en) * | 2008-09-15 | 2010-03-18 | Yahoo! Inc. | Reliability for instant messaging based on end point acknowledgements |
US20120066616A1 (en) * | 2010-09-14 | 2012-03-15 | Woods Shawn M | Message queue management |
US20130044583A1 (en) * | 2010-12-15 | 2013-02-21 | iTB Holdings, Inc. | Method, System and Program Product for Processing Requests |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111712800A (zh) * | 2019-07-01 | 2020-09-25 | 深圳市大疆创新科技有限公司 | 消息同步方法和装置、无人驾驶系统以及可移动平台 |
CN113750517A (zh) * | 2020-11-30 | 2021-12-07 | 上海达龙信息科技有限公司 | 键盘操作数据传输方法及装置、键盘操作执行方法及装置 |
CN113750517B (zh) * | 2020-11-30 | 2024-04-30 | 上海达龙信息科技有限公司 | 键盘操作数据传输方法及装置、键盘操作执行方法及装置 |
CN114172915A (zh) * | 2021-11-05 | 2022-03-11 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114172915B (zh) * | 2021-11-05 | 2023-10-31 | 中汽创智科技有限公司 | 一种消息同步方法、自动驾驶系统、存储介质及电子设备 |
CN114244783A (zh) * | 2021-12-27 | 2022-03-25 | 佛山众陶联供应链服务有限公司 | 一种低延时的银行回单下载方法和系统 |
CN115344396A (zh) * | 2022-10-19 | 2022-11-15 | 势加透博(成都)科技有限公司 | 一种基于LabVIEW的面板间同步控制方法和装置 |
CN115344396B (zh) * | 2022-10-19 | 2023-02-28 | 势加透博(成都)科技有限公司 | 一种基于LabVIEW的面板间同步控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US10747598B2 (en) | 2020-08-18 |
US20190303224A1 (en) | 2019-10-03 |
WO2017206101A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564560A (zh) | 基于队列的消息同步 | |
US20220318281A1 (en) | Geolocation-based pictographs | |
US10924886B2 (en) | Visitation tracking system | |
US11593769B2 (en) | Task identification from electronic user communications using a shared conversational context | |
CN109314659A (zh) | 消息传递成就象形图显示系统 | |
CN110392881A (zh) | 跨设备的任务注册和恢复 | |
US11063891B2 (en) | Personalized avatar notification | |
CN107637099A (zh) | 地理围栏认证提供 | |
CN110383266B (zh) | 使用语义存储器的个性化通信 | |
KR102632889B1 (ko) | 태그 분포 시각화 시스템 | |
US10560841B2 (en) | Facilitating anonymized communication sessions | |
US20160295517A1 (en) | Battery charge aware communications | |
US11789534B2 (en) | Generating a response that depicts haptic characteristics | |
US11282006B2 (en) | Action assignment tracking using natural language processing in electronic communication applications | |
US20200258547A1 (en) | Automated video bumper system | |
JP7439300B2 (ja) | メッセージ・ルーティング最適化システム | |
US20220303336A1 (en) | Guided personal identity based actions | |
CN109155747A (zh) | 管理多个消息 | |
US10609036B1 (en) | Social media post subscribe requests for buffer user accounts | |
CN108370324A (zh) | 分布式数据库作业数据倾斜检测 | |
WO2016144386A1 (en) | Measuring organizational impact based on member interactions | |
US11671502B2 (en) | Transitioning communication sessions across services | |
US11360955B2 (en) | Providing custom read consistency of a data object in a distributed storage system | |
US20210126879A1 (en) | Automatic outbound instant messages | |
US20180374013A1 (en) | Service architecture for dynamic block appointment orchestration and display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190402 |
|
WD01 | Invention patent application deemed withdrawn after publication |