CN103597465A - 高效的状态协调 - Google Patents
高效的状态协调 Download PDFInfo
- Publication number
- CN103597465A CN103597465A CN201280029265.3A CN201280029265A CN103597465A CN 103597465 A CN103597465 A CN 103597465A CN 201280029265 A CN201280029265 A CN 201280029265A CN 103597465 A CN103597465 A CN 103597465A
- Authority
- CN
- China
- Prior art keywords
- token
- server
- client
- state
- request
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Abstract
在此描述的实施例通常涉及用于使用令牌作为状态更新的长轮询请求的双向参数的方法和系统。客户端向服务器轮询状态更新,在其中,更新可能是服务器事件的结果。散列服务器状态数据以生成表示当前状态数据的令牌/散列。服务器将该令牌/散列与从客户端接收的轮询请求中的所述令牌/散列进行比较。如果令牌不同,服务器将具有服务器令牌的实际状态数据发送给客户端。通过使用令牌作为请求参数,避免了不必要的状态更新,并且,通过限制状态更新的数据的推送,更加快速地实现了客户端/服务器的同步。而且,客户端可以通过发送令牌请求参数的空的或随机/缺省值来强制对轮询响应。
Description
背景技术
使用通过诸如Web浏览器之类的浏览器进行轮询来请求来自诸如Web服务器之类的服务器的数据已经变得日益流行。在Web浏览器和Web服务器之间的数据交换中,Web浏览器或客户端在尝试实现客户端和服务器之间的同步时通常向服务器请求内容更新。响应于每个请求,服务器发送一个完整的响应。通过每次发送一个完整的响应,即使是在服务器处没有对这样的数据做出更新的情况下,在响应于客户端的请求而发送数据时,这样的请求和响应交换不必要地消耗了网络的资源。而且,来自与单个Web服务器通信的许多浏览器对Web服务器内容和更新的不断增加的需求引起了对系统资源的滥用,并导致结合了在试图协调客户端内容与服务器更新时的低效的等待时间。
在尝试更加有效地在浏览器和服务器之间交换内容时,长轮询,例如超文本传输协议(HTTP)长轮询,允许Web服务器在在该服务器处发生一个事件或其它事件触发服务器活动时再将数据推送给浏览器。通过长轮询,浏览器或客户端将一个长轮询请求发送给服务器以获得在服务器处的事件。这样的长轮询技术有时被称为“彗星”Web应用模型的部分,所述模型用于在不需要浏览器特地请求这样的数据的情况下使用长期保持HTTP请求来将数据从服务器推送到浏览器。在典型的长轮询或彗星实现中,由服务器保持客户端请求直到服务器事件发生。当一个事件发生时,服务器在一个完整响应中将新数据发送给浏览器。这样,对服务器的请求持久存留,直到服务器已经将新数据发送。一旦接收到响应,浏览器向服务器发送另一个请求以等待后续的事件。然而,由于每个服务器响应对应于一个服务器事件,不必要的更新还是发生了并且不同步的客户端经历了在协调内容和服务器中的等待时间。这些服务器事件中的一些对于实现同步并不是必需的,例如在当服务器开始基于中间事件发送新数据时客户端已经处于与服务器的当前状态相同的状态时。因此,当客户端由于例如与因特网断开而导致不同步时,该客户端试图通过处理具有关于先前服务器事件的数据的潜在的大量的响应消息来追赶当前服务器的状态。对于慢的客户端来说保持与快速改变的服务器的同步是尤其困难的,因为在服务器已经做出进一步改变时,该客户端经常还在处理先前的事件。而且,在客户端落后于服务器的情况下,为了能够达到与服务器同步,对于客户端来说某些临时事件是可以忽略的。然而,基于服务器事件的数据推送则不管事件是否对客户端有用都将它们推送至客户端以实现与服务器的当前状态的最终同步。
虽然本背景技术中着眼于特定的问题,但本发明决不旨在限于解决那些特定问题。
发明内容
各实施例通常涉及通过令牌机制将服务器处的状态数据推送到客户端。具体而言,令牌被用作状态更新的长轮询请求的多向(例如双向)参数,以实现在服务器和客户端之间的高效的状态协调。诸如Web服务器之类的服务器接收状态更新。例如,服务器可以从包括文档编辑会话的应用中接收状态更新,在该会话中,对共同创作的文档做出改变,例如,被发送到服务器或发送到在服务器上执行的管理模块。管理模块接着改变服务器的状态以反映所接收的状态更新。服务器随后计算期望要在服务器和客户端之间被同步的状态的摘要/散列。在这样做时,生成包括散列值的令牌。一旦从客户端接收到对任意状态更新的请求,服务器将随客户端请求一起接收的令牌与服务器上的令牌进行比较以确定所述令牌是否不同。如果所述令牌是相同的,则客户端具有数据的当前状态并且不需要将其内容与服务器进一步协调。取而代之地,服务器保持具有所接收的令牌的该客户端请求,即长期保持请求,直到在服务器状态中发生改变。然而,如果所述令牌不同,则客户端不具有当前状态。服务器随后将服务器上的具有当前令牌的实际状态发送给客户端。在各实施例中,客户端可以随后更新其数据并存储所接收的令牌以供与后续的状态更新请求一起发送。如所示,在各实施例中,来自客户端的请求是作为长轮询技术的一部分的长期保持请求。在更多的实施例中,客户端的长轮询包括HTTP长轮询。在其他实施例中使用常规轮询。
在附加实施例中,客户端可以强制服务器对状态更新的请求立刻响应。在其它实施例中,服务器被强制在预定的时间周期内或例如当系统资源的可用性确定该服务器可以响应时进行响应。根据一个实施例,在强制服务器响应时,客户端将令牌值的空值用作在其长期保持请求中的请求参数发送给服务器。在另一个实施例中,客户端将令牌值的随机/缺省值作为在其长期保持请求中的请求参数发送给服务器,其中,所述随机/缺省值是不太可能与服务器上的当前令牌值匹配的值。空或随机/缺省值使得服务器确定在服务器上的令牌和从客户端所接收的令牌不匹配。因此,服务器通过发送其状态数据以及服务器上的令牌给客户端来立刻应答。这样,客户端能够获得对其轮询的立刻响应,而无需等待服务器周期性地推送回数据或发生一个服务器事件。
提供本发明内容是为了以简化的形式介绍将在以下具体实施例中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。
附图简述
可以参考附图来更容易地描述本发明的各实施例,附图中相同的数字指示相同的项。
图1A示出根据在此所公开的各实施例的一种用于将令牌用作状态更新的长期保持的轮询请求的参数的环境的示例逻辑表示。
图1B示出根据在此所公开的各实施例的一种用于将令牌用作状态更新的长期保持的轮询请求的参数的另一种类型的环境或系统(例如三层体系结构)的示例逻辑表示。
图2A示出了根据本公开的各实施例的在图1A和1B中所示的示例环境中将令牌用作状态更新的长期保持的轮询请求的参数的软件模块的示例逻辑表示。
图2B描述了根据本公开的各实施例的将令牌/散列用作请求参数或用作与状态在一起的响应返回值的环境或系统的示例逻辑表示。
图3示出了描述根据本公开的各实施例的用于确定是否推送状态更新的过程的操作特性的流程图。
图4示出了描述根据本公开的一个实施例的用于比较令牌以确定状态是否改变的过程的操作特性的流程图。
图5示出了描述根据本公开的各实施例的用于强制对状态更新的请求做出响应的过程的操作特性的流程图。
图6示出描述根据本公开的一个实施例的接收空的或随机/缺省令牌值以推送数据的过程的操作特性的流程图。
图7描绘其上可以实现本发明的各实施例的示例计算系统。
详细描述
本发明现将参考其中示出了各具体实施例的附图来更完整地描述各示例实施例。然而,其它方面能以许多不同的形式来实现,并且在本发明中包括具体的实施例不应被解释为将这些方面限于在此所述的各实施例。相反,包括附图中描绘的各实施例是为了提供全面和完整且将预期的范围完全地传达给本领域技术人员的公开。虚线可用于示出可任选组件或操作。
各实施例通常涉及使用具有长轮询的令牌机制来允许服务器基于数据的状态中的改变,而不是服务器事件,来将所述数据推送到客户端或浏览器。发送具有状态更新的服务器消息给客户端仅仅避免数据的不必要的交换,并因而改进系统效率。例如,在共同操作演示应用中,其中在Web会议环境中的演示者与通过他们各自的Web浏览器通信的各个用户共享演示幻灯片,演示者可以在幻灯片#1上开始幻灯片放映。在Web浏览器A处的客户端A可以具有当前状态,在其中,通过其计算机的用户界面模块同时显示幻灯片#1。演示者接着切换到例如幻灯片#5以回答来自另一个观众成员的问题。同时,客户端A变成从Web会议断开。随后,演示者切换到幻灯片#3,并接着返回到幻灯片#1。一旦重新连接,客户端A想要当前状态。通过基于令牌机制的长轮询,服务器或驻留在服务器上的管理模块确定客户端A具有当前状态,因为演示者已经切换回幻灯片#1。因此,没有状态更新被发送给客户端A。另一方面,对于先前的服务器事件驱动轮询技术,在与服务器在幻灯片#1处最终同步之前,首先向客户端A发送涉及幻灯片#5和幻灯片#3的更新。此外,在客户端A回到幻灯片#1时,演示者可能已经切换到例如幻灯片#2。因此,通过令牌机制的长轮询来限制服务器对状态更新的响应带来了许多益处,例如包括更快更廉价地与客户端浏览器通信以及使得客户端和服务器之间的数据更加一致且同步。
在一个实施例中,诸如Web服务器之类的服务器从诸如包括文档编辑会话的应用接收状态更新。在实施例中,在驻留在服务器上的管理器或管理模块处接收这样的更新。随后,在服务器处的状态被改变以反映所接收的状态更新。散列该状态以生成包括状态的散列值的令牌。根据各实施例,当服务器接收任意状态更新的客户端请求,例如长期保持请求时,服务器将来自客户端的与请求一起接收的令牌与服务器上的令牌进行比较。如果所述令牌匹配,客户端与服务器同步,例如客户端具有所述数据的当前状态。因此,服务器保持该客户端请求和接收的令牌。另一方面,如果所述令牌是不同的,则客户端与服务器不再同步,并且不具有数据的当前状态。因此,服务器将服务器上的具有当前令牌的实际状态推送给客户端。在各实施例中,客户端可以随后更新其数据。在更多的实施例中,客户端还存储所接收的令牌以用于与后续的状态更新请求一起发送。根据各实施例,客户端和服务器因而维持了数据交换的持续连接,并且,仅当确定客户端不具有数据的当前状态时才将状态数据发送给该客户端。如所示,在各实施例中,来自客户端的请求是作为长轮询技术的一部分的长期保持请求。在更多的实施例中,客户端的长轮询包括HTTP长轮询。在其他实施例中使用常规轮询。
通过使用令牌机制,服务器能够对令牌进行比较,而不是整个数据集,以确定状态是否改变。这样,令牌值的比较,而不是状态数据本身,显著地增加了服务器对客户端请求的响应时间。而且,避免了非必要的状态更新,因为服务器发送当前状态给客户端,而不是在确定状态中出现差异时插入可能没有影响服务器的最终当前状态的事件。这样,各实施例提供了被限制于状态更新(而不是服务器事件)的服务器响应的数据。结果,改进了在客户端和服务器内容之间的一致性,并且数据以更快且更少的系统资源的无谓消耗来进行通信。
此外,通过长轮询,客户端具有了一种快速的方法来检查状态是否从先前接收的状态数据发生改变。在实施例中,客户端仅仅比较令牌或令牌值以取代状态数据,状态数据可能更加大和/或在确定实际状态时呈现更多的复杂性。
根据附加实施例,客户端可以通过在其对服务器的长期保持的轮询请求中发送空的和/或缺省值来强制从服务器做出对状态更新的请求的立刻响应。在其它实施例中,强制在预定的时间周期内或例如当系统资源的可用性允许该服务器进行响应时做出所述响应。空的或随机/缺省值使得服务器确定在服务器上的令牌和所接收的令牌不同。因此,服务器通过发送其状态数据以及服务器上的令牌给客户端来立刻应答。随后,客户端能够获得立刻响应,而不需要等待下一常规服务器推送。这样,例如当客户端首先启动与服务器的连接时或当客户端已经断开时或其它落后于服务器内容改变时,客户端可以更快地与服务器同步。这样,发送令牌的空的或随机/缺省值允许服务器端点在逻辑上从长轮询切换到常规轮询。
而且,如在一些实施例中示出,令牌的使用强制客户端不依赖于服务器响应的定时。因此,即使从客户端随长轮询请求接收的令牌与服务器上的令牌匹配,服务器也可以具有立刻进行应答的选项。在例如服务器正被关闭或正在做服务器不想具有开放连接的某些其它动作的情况下,这种灵活性是有用的。
回到图1A,示出了根据在此所公开的实施例的一种用于将令牌用作状态更新的长期保持的轮询请求的参数的示例逻辑环境或系统100A。客户端计算机102将对状态更新128的请求发送给服务器108。在一个实施例中,服务器108被称为前端服务器。在实施例中,可以使用任意数目的服务器,如由省略符号110和服务器112所示。客户端计算机102执行诸如Web浏览器之类的浏览器以由例如用户104查阅网页。例如,这种网页或文档或其它数据,通过在客户端计算机102上执行的用户界面模块来显示或输出给用户界面。在网络106上将来自客户端计算机102的对状态更新128的请求传送到服务器108。状态更新128的请求包括作为参数的令牌。在请求128中的令牌是客户端所知道的在服务器处的状态的散列值。例如,在一个实施例中,客户端可能已经接收了在服务器对状态更新的前一请求的响应中的令牌。在另一个实施例中,请求128中的令牌值可能包括空的或随机/缺省值或任意类型的“哑(dummy)”值。根据一个实施例,当客户端不知道该值时,例如当客户端第一次启动与服务器的联系时,可以包括这种空的或随机/缺省值或哑值。在另一个实施例中,空的或随机/缺省值或哑值可以由客户端有目的地使用(同时忽略正确的令牌值)以强制服务器立刻对状态更新的客户端请求进行应答。在另一个实施例中,服务器应答在服务器一能够响应时就发生。在又另一个实施例中,在由服务器所设定的预定时间周期内发生服务器应答。在又一个实施例中,在由客户端所设定的预定时间周期内发生服务器应答。虽然,请求128在图1A中被示为包括HTTP请求,“GetState(取得状态)”,但根据本公开的实施例,任意类型的请求都可使用,而不背离本公开的精神和范畴。
响应于接收具有令牌128的状态更新的请求,服务器108确定在服务器上的当前令牌是否与所接收的令牌匹配。如果令牌不匹配,则服务器108通过将服务器上的令牌值随状态数据130一起发送给客户端102来进行响应。
虽然,图1A示出在客户端计算机102和服务器108之间的消息交换,但图1B还示出附加的可选环境100B,在其中根据本公开的更多实施例,服务器108是与后端服务器116通信的前端服务器。图1A和1B示出了实现本公开的功能性所依靠的示例逻辑环境。逻辑环境200不被限制于任何特定实现,相反,可以由其上可实现本文所描述的环境的功能的任何计算环境来实现,并且替代地,包括了可以据此实现在此所述的环境的功能性的任意计算环境。图1A和1B是出于说明的目的而提供。
回到图1B,虽然示出了后端服务器116,根据在此所述的实施例以及如省略符118以及后端服务器120所示,可以使用多个后端服务器。在后端环境中的组件用虚线示为可选组件,因为一些实施例在没有后端服务器的情况下通过与客户端计算机102和服务器108发生的令牌机制提供长轮询,如在图1A所描述的。在涉及图1B所示的后端服务器116-120的可能的实施例中,服务器108被称为前端服务器,在其中,前端服务器108(或110、112)将从客户端102最初接收的对状态更新132的请求发送到后端服务器116。如所示,根据本公开的实施例,由省略符118和后端服务器120所示出那样,可以使用多个后端服务器。状态更新132的请求包括作为请求的参数的令牌。虽然,请求132在图1B中被示为包括HTTP请求,“GetState(取得状态)”,但根据本公开的实施例,任意类型的请求都可使用,而不背离本公开的精神和范畴。
在实施例中,一旦从客户端接收到对具有令牌的状态更新请求132,后端服务器116就将服务器上的令牌与所接收到的令牌进行比较。在一个实施例中,在服务器116(或服务器118、120)上执行的管理器(或管理)模块或组件122将服务器上的令牌与从客户端所接收到的令牌进行比较。虽然,图1B将模块122称为“管理器”模块或组件,但该模块或组件可以被称为任何名字,而不背离本公开的精神和范畴。而且,根据实施例,管理模块122可以包括软件,尽管其它实施例提供的组件是用于执行在此所述的方法的计算机编程代码的硬件。
在一个实施例中,服务器116和/或管理器模块122通过散列服务器处的状态来计算服务器上的令牌的值。根据实施例,在网络124上从包括例如文档编辑会话126的应用处接收状态更新134。在其它实施例中,从另一个服务器、客户端计算机、计算机系统、在另一个计算系统上执行的工作流和/或Web浏览器等接收状态更新。文档编辑会话126是仅出于示例来说明本公开的技术的目的而提供的。根据本公开的实施例,令牌值被存储在数据库138中,或者,在其它实施例中,令牌值被存储在附加给例如服务器116(或118、120)的数据库中。
服务器116和/或管理器模块122确定从客户端132接收到的令牌是否不同于在服务器116上的令牌。如果所述值是不同的,服务器116通过在网络114向前端服务器108发送具有该服务器上的令牌的数据来对客户端请求做出响应。根据一个实施例,一旦接收到数据和令牌,前端服务器108随后在网络106上将状态数据和令牌130发送给客户端102。在另一个实施例中,前端服务器108在接收到所述数据和令牌后并不将其发送,而是代之以等待一个时间段。根据各实施例或取决于在其它实施例中可用的系统,这个时间段是预先确定的。
在一个实施例中,从服务器116(和/或服务器108)所发送的数据136(或130)包括反映状态更新的状态数据。在其它实施例中,来自服务器116(和/或服务器108)的数据136(或130)包括除状态更新之外的数据。虽然各实施例将请求128和132中的令牌提供为要作为参数包括在状态更新的请求中,在更多的实施例中,针对请求128和132发送的所述令牌是与所述请求分开发送的。此外,虽然实施例将服务器上的令牌提供为与在响应136和130中的状态数据一起发送,其它实施例将服务器上的令牌提供为与所述数据分开地发送。
逻辑环境100A和100B不被限制于任何特定实现,相反,可以由其上可实现本文所描述的环境的功能的任何计算环境来实现,并且替代地,包括了可以据此实现在此所述的环境的功能性的任意计算环境。例如,根据各个实施例,可使用本领域技术人员理解的任何类型的客户端计算机102。此外,网络106、114和124虽然被显示为独立的单个网络,但它们可以是本领域技术人员按照惯例理解的任何类型的网络。根据一实施例,网络可以是全球网络(例如,因特网或万维网,即简写为“web”)。其还可以是局域网(例如,内联网)或广域网。根据各个实施例,网络106、114和124上的通信按照一个或多个标准的基于分组的格式(例如,H.323、IP、以太网、和/或ATM)来进行。
此外,根据本公开的实施例,可使用本领域技术人员说理解的任何可能的环境或系统。图1A和1B是作为仅为了理解本文所公开的实施例的教示的目的的示例来提供。例如,图1B示出了服务器108-112和116-120。然而,各实施例也覆盖任何类型的服务器、分开服务器、服务器场、服务器群集或其他消息服务器。还有,图1A和1B示出客户端计算机102。然而,如本领域技术人员所理解的,可使用任何类型的小型计算设备而不违背本文所公开的实施例的精神和范围。例如,尽管仅示出一个客户端计算机102,另一实施例提供多个小型计算机设备来与服务器108-112和/或116-120通信。在一个实施例中,每个小型计算机设备与网络106通信,或者,在其它实施例中,多个且单独的网络与小型计算机设备通信。在又一实施例中,每个小型计算机设备与单独的网络通信。事实上,环境或系统100A表示实现本文所公开的实现实施例的有效方式,但完全不旨在限制本公开的范围。此外,示例网络环境100A和100B可以被视为由所描述的具体组件组成,例如服务器、客户端计算机等,或者可替换地,可被视为由对应于这些单元的类似模块组成。
在图1B示出了客户端计算机102以及服务器108-112和116-120时,图2A描述了根据本公开的实施例的用于将令牌用作状态请求的长期保持轮询请求的参数的软件模块或组件的逻辑表示200A。客户端计算机202A包括用于轮询服务器204A以查找状态更新的Web浏览器模块206。在其它实施例中,客户端计算机202A在无需Web浏览器模块206的情况下轮询服务器204A。附加实施例为客户端计算机202A提供了包括更多模块,这些模块包括用于在客户端计算机202A上执行以显示用于查看从服务器204A所接收的Web页面、文档、数据等的用户界面模块207。根据在此所述的各实施例,客户端计算机202A包括如由省略符208所示的用于通过令牌机制提供长轮询的其它模块或组件210。
响应于通过令牌机制接收状态更新的长轮询请求,服务器204A分析所接收的请求和令牌。在一个实施例中,例如,服务器204A包括在服务器204A上执行的管理模块212。管理模块212例如对应于图1B中的管理器模块或组件122,并且可以被称为任何名字,而不背离本公开的精神和范畴。管理模块或组件212从例如包括诸如文档编辑会话的应用接收状态更新。管理模块212改变服务器204A的状态以反映该状态更新并散列所述状态。散列的状态值被用于生成反映所述服务器的状态的服务器上的令牌。根据一个示例实施例,管理模块212使用服务器上的该令牌来与从客户端202A接收到的令牌进行比较以确定所述客户端的状态是否是当前的。在各实施例中,这样,管理模块212通过例如估计从客户端接收到的令牌值提供了对状态更新的客户端请求进行响应。根据本公开的各实施例,服务器204A包括如由省略符214所示的其它模块或组件216,用于通过令牌机制对状态更新的长期保持请求进行响应。
转到图2B,示出了根据本公开的用于从客户端202B向服务器204B请求状态更新的环境或系统200B的逻辑表示。诸如对应于图2A的客户端202A的客户端202B,例如,向服务器204B发送具有令牌作为其参数的请求218。服务器204B对应于例如图2A中的服务器204A。虽然,请求218在图1A和1B中被示为包括HTTP请求,“GetState(取得状态)”,但根据本公开的各实施例,任意类型的请求都可使用,而不背离本公开的精神和范畴。根据各实施例,作为响应,服务器204B将包括状态数据和服务器上的令牌的响应消息220发送给客户端202B。虽然,图2B描绘了单个请求218和单个响应220,其它实施例提供了多个请求和响应消息。而且,虽然各实施例通过令牌机制提供了请求218以作为长轮询技术的一部分的长期保持请求,其它实施例通过令牌机制提供了常规的轮询技术。在又一个进一步的实施例中,从客户端202B向服务器204B发送请求消息218,而不涉及任何类型的轮询技术。虽然,图2A和2B描绘了示例的组件和/或模块,这些组件和/或模块仅是出于作为说明本公开的教学示例的目的被提供。在实施例中可以组合模块和/或组件。而且,在不背离本公开的精神和范畴的情况下,可以使用附加的或更少的模块和/或组件。
图3接着示出了根据本公开的各实施例的用于确定是否将状态更新推送给客户端和/或浏览器的示例操作步骤300。根据实施例,图3中描述的示例操作步骤300是从服务器和/或管理组件的角度来示出的。过程300在开始操作302处启动,并且前进以接收状态更新304,在其中,服务器和/或服务器上执行的管理组件接收状态更新304,例如来自文档编辑会话的对文档和/或网页的改变。例如,对网页的编辑可在应用程序共同创作会话中发生。服务器接着基于所接收的状态更新改变服务器306处的状态。在各实施例中,服务器首先确定所接收的状态更新是否表示在服务器处的状态数据中的实际改变。根据实施例,如果对状态数据的实际改变源自所接收的状态更新,则改变306服务器的状态数据。过程300接着前进到散列状态操作308,在其中,散列状态以生成令牌310值。在实施例中,存储该令牌。查询312确定是否有任何令牌被保持。例如,在涉及通过长轮询的长期保持请求的实施例中,例如,服务器可能已经从来自客户端计算机和/或浏览器的状态更新的请求中接收到当前服务器保持的令牌。如果所述令牌正在保持,过程300前进至Yes(是)以进行查询314来确定客户端保持的令牌是否与服务器上的令牌匹配。如果所述令牌不匹配,过程300前进至NO(否)以发送具有令牌316的数据,在其中,将状态数据和服务器上的令牌值发送给客户端316。过程300随后在结束操作318中止。
返回查询312,如果没有令牌被保持,过程300前进至NO(否),以进行查询322来确定是否例如从客户端随同对状态更新的请求一起接收到令牌。如果没有接收到令牌,过程300前进到NO(否)以接收状态更新304,在其中,服务器可以接收状态304中的附加改变。步骤304随后重复查询312。在查询322,如果从客户端接收到令牌,过程300前进到YES(是)以进行查询314,在其中,确定服务器上的令牌与从客户端所接收的令牌是否不同。如果所述令牌匹配,过程300前进到YES(是)以到达步骤320来保持具有所接收令牌的客户端请求,例如长期保持请求。随后,过程300行进以接收状态更新304,并且步骤304-312随后重复。如果令牌不匹配,过程300前进至NO(否)以发送具有服务器316上的令牌值的状态数据给客户端。过程300随后在结束操作318中止。
当图3说明了用于确定是否推送状态更新的过程的示例操作步骤时,根据本公开的一个实施例,图4描绘了用于比较令牌以确定状态是否已经改变的示例操作步骤。根据一个实施例,图4中描述的示例操作步骤400是从客户端和/或浏览器的角度来示出的。过程400在开始操作402处启动,并前进至期望状态查询404,在其中,确定客户端(和/或浏览器)是否期望在服务器处的当前状态。例如,根据一个实施例,所述客户端可能期望了解其是否与服务器同步。如果不期望在服务器处的状态,过程400前进至NO(否)以到达结束操作420,在其中,过程400中止。然而,如果期望在服务器处的状态,过程400前进至YES(是)以请求具有第一令牌/散列参数406的状态,在其中,客户端向服务器发送请求给以查询当前状态。在一个实施例中,该请求是作为长轮询技术的一部分的长期保持请求以获得来自服务器的状态更新。根据本公开的各实施例,第一令牌或客户端令牌被作为请求406的参数来随同这个请求一起发送。在一个实施例中,例如,客户端可能在先前已经从服务器接收到一个令牌值,在其中客户端将该令牌值作为请求参数发送给服务器。在另一个实施例中,客户端将该令牌值设置为空的或随机/缺省值或哑值。在又另一个实施例中,所述令牌与客户端请求分开地发送。
响应于对状态更新的请求,客户端接收具有第二令牌408的状态数据。在一个实施例中,所述第二令牌是服务器上的令牌值,在其中,服务器上的令牌值表示服务器处的当前状态的散列。各实施例将服务器上的令牌作为(包括状态数据的)响应的一个参数提供给客户端。在其它实施例,令牌与状态数据分开地发送。客户端接着确定410它是否想要比较令牌以确定是否在服务器处已经存在任何状态改变。在各实施例中,比较令牌为客户端提供了一种检查状态是否已经从前一状态更新发生了改变的快速方法。例如,客户端可以比较令牌以取代较大/更加复杂的状态数据。如果客户端期望比较令牌,过程400前进至YES(是)以进行查询412来确定令牌是否不同412。根据各实施例,如果令牌没有不同,例如它们是匹配的,过程400前进至NO(否)以进行查询404来确定客户端是否期望请求状态更新,并且过程400随后重复步骤404-410,或者在结束操作420中止。另一方面,根据各实施例,如果令牌是不同的,过程前进至YES(是)以更新状态416,在其中,客户端更新状态数据416,并存储418第二令牌,或者在步骤408从服务器接收的令牌值。
返回查询410,如果客户端不期望比较令牌以确定是否已经存在状态改变,过程400前进至NO(否)以进行查询414来确定在客户端处的状态数据是否不同于在步骤408处从服务器接收的状态数据。在各实施例中,确定状态数据是否不同与例如在查询412的确定令牌是否不同相比,显然更加复杂。如果状态数据不同,过程400前进至YES(是)以更新操作416并存储第二令牌418,在其中,客户端存储该令牌或从服务器接收的令牌值以与后续的请求一起发送。在各实施例中,客户端盲目地存储第二令牌并使用接收的状态数据作为应用需求。通过存储第二令牌,客户端可以在给服务器的后续请求中通过将第二令牌作为后续请求中的一个参数来指示其当前状态。根据各实施例,如果状态数据在查询44处没有不同,过程400前进至NO(否)以期望状态查询404,并且步骤404-410重复,或过程400在结束操作420处中止。
转向图5,示出了根据本公开的各实施例的对状态更新的强制响应的示例操作步骤。根据一个实施例,图5中描述的示例操作步骤500是从客户端和/或例如Web浏览器之类的浏览器的角度来示出的。过程500在开始操作502处启动,并且过程500前进至查询504以确定客户端(和/或例如浏览器)是否期望强制服务器响应。在各实施例中,在例如在客户端的服务中断之后客户端意识到它与服务器脱离了同步的情况下,该客户端可能期望来自服务器的强制响应。在其它实施例中,在客户端位于诸如智能电话之类的便携式计算设备上并插入到例如允许轮询的电源的情况下,客户端期望切换到常规轮询,例如通过重复地强制服务器响应来实现,所述轮询通常有更多的计算上需求并消耗更多功率。或者,作为另一个示例,客户端可以确定轮询更加安全,并且在网络瘫痪或经历了频繁的服务中断的情况下,可能期望周期性地轮询。而且,客户端可能期望从长轮询切换到正常或常规轮询以更加适度地处理源自服务器加载或连接处理问题的错误。进一步,由于长轮询在下述环境中明显是不必要的,客户端可能期望例如通过强制服务器响应来切换到轮询:在该环境中,该客户端在例如该用户是唯一编辑者的多个用户编辑环境中工作。
根据各实施例,在强制服务器响应的情况下,该响应可以被立刻发送。在其它实施例中,服务器根据预定时间段来进行响应。在又更多实施例中,服务器在由例如可用系统资源确定的时间段中进行响应。可以根据本公开的实施例应用许多时间段来由服务器进行响应,而不背离本公开的范畴和精神。
回到图5,如果客户端期望强制服务器响应504,过程500前进至YES以请求具有空令牌值506的状态,在其中,客户端将该空值作为状态更新的请求中的令牌值来传递。在另一个实施例中,客户端将哑值作为令牌值传递以强制状态响应。这样,在这种实施例中的客户端在发送空或随机/缺省值或哑值中忽略了正确的令牌值。或者,在其它实施例中,客户端不知道正确的令牌值,例如,当启动与服务器的连接时。因为服务器接收了用于令牌值的空或随机/缺省值或哑值,服务器上的令牌不与从客户端接收的令牌匹配,并且客户端因此接收了实际状态和服务器上的令牌值508。服务器上的令牌值可以被称为服务器上的令牌、第二令牌等,而不背离本公开的精神和范畴。过程接着前进至查询510以确定令牌是否不同510,在其中确定在客户端处的令牌值,例如第一令牌,是否与服务器上的令牌,例如第二令牌,不同。如果所述令牌不同,则自从客户端先前更新了其状态之后,在服务器处的状态已经改变。在各实施例中,这样,客户端与服务器脱离同步。如果确定令牌不同,过程500前进至YES(是)以更新状态512并存储第二令牌514。这样,从服务器接收的状态数据被用于更新在步骤512处的客户端的状态,并且来自服务器的令牌被存储514以在可能的后续对服务器处的状态更新的请求中使用。过程500随后在结束操作516中止。
回到查询504,如果客户端不再期望强制服务器响应,过程500前进至NO(否)以请求具有第一令牌值请求参数518的状态,在其中,客户端不使用空或随机/缺省值或哑值作为令牌值,但代之以使用正确的令牌/散列值。作为使用正确的令牌/散列结果,不强制来自服务器的立刻响应。替代地,在各实施例中,客户端等待在服务器处发生的状态中的改变520。在服务器处发生状态改变或更新之后,在步骤508,客户端从服务器接收状态或状态数据以及第二令牌或令牌值。随后,重复步骤510-514,并且过程500在结束操作516处中止。
图6接着示出描述根据本公开的一个实施例的接收空的或随机/缺省值作为令牌值以推送数据的示例操作步骤。根据一个实施例,图6中描述的示例操作步骤600是从服务器和/或管理组件或模块的角度来示出的。在开始操作602处启动过程600,并前进至散列状态操作604,在其中,在服务器处的状态数据被散列以生成散列值的令牌606。接着,服务器(和/或管理模块或组件)接收具有空或随机/缺省值作为令牌值的状态更新的请求608。在各实施例中,这样的请求是作为长轮询技术的一部分的长期保持请求。在各实施例中,长轮询技术包括HTTP长轮询。服务器随后将所接收的令牌或令牌值与在步骤606处生成的令牌进行比较610。因为空的或随机/缺省令牌值或哑值被作为请求参数来包括,服务器上的令牌和所接收的令牌不匹配,并且服务器因此发送或推送612具有在步骤606处生成的服务器上的令牌的状态数据。过程600随后在结束操作614中止。
虽然,图3-6描述了示例操作步骤,但示出的操作步骤可以被组合到其它步骤和/或重新安排。此外,可使用例如更少或更多的步骤。
最后,图7示出可在其上实现本文公开的各实施例的示例计算机系统700。根据在此公开的各实施例,描述了包括至少一个处理器702的诸如客户端计算机102、前端服务器108-112以及后端服务器116-120之类的计算机系统700。系统700具有存储器704,包括例如系统存储器、易失性存储器和非易失性存储器。在其最基本的配置中,计算系统700在图7中由虚线706示出。另外,系统700还可包括另外的存储(可移动和/或不可移动),其中包括但不限于磁盘、光盘或磁带。在图7中通过可移动存储708和不可移动存储710示出这样的附加存储。
如这里所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储708和不可移动存储710都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备700访问的任何其他介质。任何这样的计算机存储介质都可以是设备700的一部分。图7中的说明不意图以任何方式限制本公开的范围。
如这里所使用的术语计算机可读介质还包括通信介质。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
系统700还可包含允许该设备与其它设备通信的通信连接716。此外,为了输入内容到例如客户端计算机102上的用户界面(UI)(例如由客户端计算机102上的相应UI模块(未示出)所提供的)的各字段中,根据本公开的一实施例,系统700可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等之类的输入设备714。还可包括输出设备712,诸如显示器、扬声器、打印机等。所有这些设备在本领域中是公知的并且不必在此详细讨论。上述设备是示例且可以使用其他设备。
以上参考附图描述了本发明的各实施例,可以理解,可以对本发明做出本领域技术人员易于想到且被包含在所公开并如所附权利要求书所定义的本发明的精神和范围内的众多修改。尽管出于本发明的目的描述了各实施方式,但可以做出落入本发明的范围内的各种改变和修改。
同样地,虽然本发明使用了对结构特征、方法动作和含有这些动作的计算机可读介质专用的语言,但是应该理解,在所附权利要求书中定义的本发明不必限于此处描述的具体结构、动作、特征或介质。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。实施例的各方面允许多个客户端计算机、多个远程服务器、多个中继服务器、以及多个网络等。或者,在其它实施例中,使用具有单个前端服务器、单个后端服务器、以及单个网络的单个客户端计算机。更多实施例例如提供了具有单个前端服务器且没有后端服务器的单个客户端计算机。所属领域技术人员将认识到在本公开的范围和精神内的其他实施例或改进。因此,这些具体结构、动作、或介质是作为实现所要求保护的本发明的示例性实施例而公开的。本发明由所附权利要求书进行定义。
Claims (10)
1.一种用于向客户端推送状态数据的计算机实现的方法,所述方法包括:
在服务器处接收状态更新;
响应于接收所述状态更新,改变服务器处的所述状态;
散列所述服务器处的所述状态;
生成所述服务器上的令牌,其中所述令牌是所述状态的散列;
从所述客户端接收一令牌;
确定所述服务器上的所述令牌与从所述客户端接收的令牌是否不同;以及
如果所述服务器上的所述令牌和从所述客户端接收的令牌不同,将具有所述服务器上的所述令牌的状态数据推送给所述客户端。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述确定所述服务器上的所述令牌与从所述客户端接收的令牌是否不同包括:确定所述服务器上的所述令牌的值和从所述客户端接收的令牌的值是否不同。
3.如权利要求1所述的计算机实现的方法,其特征在于,还包括:
从所述客户端接收对状态更新的请求,其中,从所述客户端接收的令牌是所述对状态更新的请求的一个参数。
4.如权利要求3所述的计算机实现的方法,其特征在于,还包括:
如果所述服务器上的所述令牌与从所述客户端接收的令牌并无不同,则保持从所述客户端接收的请求和接收的令牌。
5.如权利要求3所述的计算机实现的方法,其特征在于,从所述客户端接收的令牌的值为空。
6.如权利要求5所述的计算机实现的方法,其特征在于,还包括:
确定所述服务器上的所述令牌与从所述客户端接收的空令牌值不同;以及
将具有所述服务器上的所述令牌的状态数据推送给所述客户端。
7.如权利要求5所述的计算机实现的方法,其特征在于,还包括:
响应于空值,在预定时间段中将具有所述服务器上的所述令牌的状态数据推送给所述客户端。
8.存储有计算机可执行指令的一个或多个计算机存储介质,当由处理器执行所述指令时,执行一种向服务器轮询状态数据的方法,所述方法包括:
由客户端发送对所述服务器处的状态数据的第一请求,其中所述第一请求包括第一令牌;
接收具有第二令牌的所述状态数据;
比较所述第一令牌和所述第二令牌以确定所接收的状态数据是否与存储在所述客户端处的状态数据不同;以及
如果所述第一令牌和所述第二令牌不同,更新在所述客户端处存储的所述状态数据。
9.如权利要求8所述的一个或多个计算机存储介质,其特征在于,所述轮询包括通过令牌机制的超文本传输协议(HTTP)长轮询。
10.一种用于通过令牌机制将服务器处的状态数据推送到客户端的系统,所述系统包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器包括计算机程序指令,所述计算机程序指令能由所述处理器执行以提供:
所述服务器内的管理模块,其中,所述管理模块被配置为:
接收状态更新;
响应于接收所述状态更新,改变所述状态;
散列所述状态;
生成所述服务器上的令牌,其中所述令牌是所述状态的散列;
从所述客户端接收令牌;
确定所述服务器上的所述令牌与从所述客户端接收的令牌是否不同;以及
如果所述服务器上的所述令牌和从所述客户端接收的令牌不同,将具有所述服务器上的所述令牌的状态数据推送给所述客户端。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/161,350 US20120323990A1 (en) | 2011-06-15 | 2011-06-15 | Efficient state reconciliation |
US13/161,350 | 2011-06-15 | ||
PCT/US2012/041790 WO2012173898A2 (en) | 2011-06-15 | 2012-06-10 | Efficient state reconciliation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103597465A true CN103597465A (zh) | 2014-02-19 |
Family
ID=47354599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280029265.3A Pending CN103597465A (zh) | 2011-06-15 | 2012-06-10 | 高效的状态协调 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20120323990A1 (zh) |
EP (1) | EP2721506A4 (zh) |
JP (1) | JP2014523568A (zh) |
KR (1) | KR20140038988A (zh) |
CN (1) | CN103597465A (zh) |
WO (1) | WO2012173898A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515936A (zh) * | 2014-09-23 | 2016-04-20 | 中国电信股份有限公司 | 消息通信的方法、服务器和系统 |
CN106156233A (zh) * | 2015-04-24 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 修订数据处理状态的方法及装置 |
CN108696374A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 更新客户端配置的方法和装置 |
CN113014615A (zh) * | 2019-12-20 | 2021-06-22 | 西安诺瓦星云科技股份有限公司 | 数据同步方法、装置和系统 |
CN114584573A (zh) * | 2022-03-31 | 2022-06-03 | 深圳市瑞云科技有限公司 | 一种基于长轮询机制的节点机信息同步方法 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407492B2 (en) | 2011-08-24 | 2016-08-02 | Location Labs, Inc. | System and method for enabling control of mobile device functional components |
US8738688B2 (en) * | 2011-08-24 | 2014-05-27 | Wavemarket, Inc. | System and method for enabling control of mobile device functional components |
US9740883B2 (en) | 2011-08-24 | 2017-08-22 | Location Labs, Inc. | System and method for enabling control of mobile device functional components |
US9819753B2 (en) | 2011-12-02 | 2017-11-14 | Location Labs, Inc. | System and method for logging and reporting mobile device activity information |
US9154901B2 (en) | 2011-12-03 | 2015-10-06 | Location Labs, Inc. | System and method for disabling and enabling mobile device functional components |
US8954571B2 (en) * | 2012-01-13 | 2015-02-10 | Wavemarket, Inc. | System and method for implementing histogram controlled mobile devices |
US9183597B2 (en) | 2012-02-16 | 2015-11-10 | Location Labs, Inc. | Mobile user classification system and method |
US9489531B2 (en) | 2012-05-13 | 2016-11-08 | Location Labs, Inc. | System and method for controlling access to electronic devices |
US9590959B2 (en) | 2013-02-12 | 2017-03-07 | Amazon Technologies, Inc. | Data security service |
US10084818B1 (en) | 2012-06-07 | 2018-09-25 | Amazon Technologies, Inc. | Flexibly configurable data modification services |
US10075471B2 (en) | 2012-06-07 | 2018-09-11 | Amazon Technologies, Inc. | Data loss prevention techniques |
US9286491B2 (en) | 2012-06-07 | 2016-03-15 | Amazon Technologies, Inc. | Virtual service provider zones |
US9973554B2 (en) * | 2012-06-29 | 2018-05-15 | Adobe Systems Incorporated | Interactive broadcasting between devices |
US9591452B2 (en) | 2012-11-28 | 2017-03-07 | Location Labs, Inc. | System and method for enabling mobile device applications and functional components |
US9143550B2 (en) * | 2012-12-01 | 2015-09-22 | Qualcomm Innovation Center, Inc. | Graceful degradation of websocket connections to nonpersistent HTTP-based communications |
US9554190B2 (en) | 2012-12-20 | 2017-01-24 | Location Labs, Inc. | System and method for controlling communication device use |
US9547771B2 (en) | 2013-02-12 | 2017-01-17 | Amazon Technologies, Inc. | Policy enforcement with associated data |
US9367697B1 (en) | 2013-02-12 | 2016-06-14 | Amazon Technologies, Inc. | Data security with a security module |
US10210341B2 (en) | 2013-02-12 | 2019-02-19 | Amazon Technologies, Inc. | Delayed data access |
US10467422B1 (en) | 2013-02-12 | 2019-11-05 | Amazon Technologies, Inc. | Automatic key rotation |
US9705674B2 (en) | 2013-02-12 | 2017-07-11 | Amazon Technologies, Inc. | Federated key management |
US10211977B1 (en) | 2013-02-12 | 2019-02-19 | Amazon Technologies, Inc. | Secure management of information using a security module |
US9300464B1 (en) | 2013-02-12 | 2016-03-29 | Amazon Technologies, Inc. | Probabilistic key rotation |
US10560324B2 (en) | 2013-03-15 | 2020-02-11 | Location Labs, Inc. | System and method for enabling user device control |
US20140289419A1 (en) * | 2013-03-22 | 2014-09-25 | Salesforce.Com, Inc. | System, method and computer program product for transferring a website state across user devices using a cookie |
US9300639B1 (en) * | 2013-06-13 | 2016-03-29 | Amazon Technologies, Inc. | Device coordination |
US9832171B1 (en) | 2013-06-13 | 2017-11-28 | Amazon Technologies, Inc. | Negotiating a session with a cryptographic domain |
US9397835B1 (en) | 2014-05-21 | 2016-07-19 | Amazon Technologies, Inc. | Web of trust management in a distributed system |
US10148805B2 (en) | 2014-05-30 | 2018-12-04 | Location Labs, Inc. | System and method for mobile device control delegation |
US9438421B1 (en) | 2014-06-27 | 2016-09-06 | Amazon Technologies, Inc. | Supporting a fixed transaction rate with a variably-backed logical cryptographic key |
US9661126B2 (en) | 2014-07-11 | 2017-05-23 | Location Labs, Inc. | Driving distraction reduction system and method |
US9749458B2 (en) | 2014-08-11 | 2017-08-29 | Location Labs, Inc. | Driving without distraction support system |
US9866392B1 (en) | 2014-09-15 | 2018-01-09 | Amazon Technologies, Inc. | Distributed system web of trust provisioning |
US10200499B1 (en) | 2015-01-30 | 2019-02-05 | Symantec Corporation | Systems and methods for reducing network traffic by using delta transfers |
US10505850B2 (en) * | 2015-02-24 | 2019-12-10 | Qualcomm Incorporated | Efficient policy enforcement using network tokens for services—user-plane approach |
US10469477B2 (en) | 2015-03-31 | 2019-11-05 | Amazon Technologies, Inc. | Key export techniques |
US9735965B1 (en) * | 2015-04-16 | 2017-08-15 | Symantec Corporation | Systems and methods for protecting notification messages |
US10187485B1 (en) | 2015-09-28 | 2019-01-22 | Symantec Corporation | Systems and methods for sending push notifications that include preferred data center routing information |
WO2018149470A1 (en) * | 2017-02-14 | 2018-08-23 | Sonova Ag | Hearing device with multiple consistent controllers |
US11012500B2 (en) | 2018-07-27 | 2021-05-18 | Vmware, Inc. | Secure multi-directional data pipeline for data distribution systems |
US11190614B2 (en) * | 2018-07-27 | 2021-11-30 | Vmware, Inc. | Bidirectional command protocol via a unidirectional communication connection for reliable distribution of tasks |
US11347572B2 (en) | 2019-09-26 | 2022-05-31 | Vmware, Inc. | Methods and apparatus for data pipelines between cloud computing platforms |
JP6960683B2 (ja) * | 2019-12-16 | 2021-11-05 | 株式会社ミリオンショップ | 情報処理装置、方法、プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794727A (zh) * | 2004-12-23 | 2006-06-28 | 阿尔卡特公司 | 用于事件驱动的存在订购的存在系统和方法 |
CN1996871A (zh) * | 2006-01-05 | 2007-07-11 | 乐金电子(中国)研究开发中心有限公司 | 一种数据同步方法 |
US20100077468A1 (en) * | 2008-09-10 | 2010-03-25 | Salesforce.Com, Inc. | Method and system for providing efficient and complex database functionality to a mobile device |
US7783579B2 (en) * | 2005-05-13 | 2010-08-24 | Ntt Docomo, Inc. | Method and apparatus for secure and small credits for verifiable service provider metering |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061741A (en) * | 1997-05-28 | 2000-05-09 | International Business Machines Corporation | Method and apparatus for synchronization of connectionless applications across a network by using simple encryption tokens |
US7269735B2 (en) * | 2000-08-28 | 2007-09-11 | Contentgaurd Holdings, Inc. | Instance specific digital watermarks |
US6941326B2 (en) * | 2001-01-24 | 2005-09-06 | Microsoft Corporation | Accounting for update notifications in synchronizing data that may be represented by different data structures |
US7472413B1 (en) * | 2003-08-11 | 2008-12-30 | F5 Networks, Inc. | Security for WAP servers |
US8140470B2 (en) * | 2007-07-31 | 2012-03-20 | Sap Ag | Unified and extensible implementation of a change state ID for update services based on a hash calculation |
US8806509B2 (en) * | 2007-12-04 | 2014-08-12 | Netapp, Inc. | Retrieving diagnostics information in an N-way clustered raid subsystem |
EP2350854B1 (en) * | 2008-10-17 | 2018-12-05 | Ericsson AB | Method and apparatus for efficient http data streaming |
US8082351B1 (en) * | 2009-05-26 | 2011-12-20 | Adobe Systems Incorporated | Software load balancing for session requests that maintain state information |
US9792425B2 (en) * | 2010-11-02 | 2017-10-17 | Ca, Inc. | System and method for controlling state tokens |
-
2011
- 2011-06-15 US US13/161,350 patent/US20120323990A1/en not_active Abandoned
-
2012
- 2012-06-10 WO PCT/US2012/041790 patent/WO2012173898A2/en active Application Filing
- 2012-06-10 KR KR1020137033213A patent/KR20140038988A/ko not_active Application Discontinuation
- 2012-06-10 EP EP12800976.8A patent/EP2721506A4/en not_active Withdrawn
- 2012-06-10 CN CN201280029265.3A patent/CN103597465A/zh active Pending
- 2012-06-10 JP JP2014515893A patent/JP2014523568A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794727A (zh) * | 2004-12-23 | 2006-06-28 | 阿尔卡特公司 | 用于事件驱动的存在订购的存在系统和方法 |
US7783579B2 (en) * | 2005-05-13 | 2010-08-24 | Ntt Docomo, Inc. | Method and apparatus for secure and small credits for verifiable service provider metering |
CN1996871A (zh) * | 2006-01-05 | 2007-07-11 | 乐金电子(中国)研究开发中心有限公司 | 一种数据同步方法 |
US20100077468A1 (en) * | 2008-09-10 | 2010-03-25 | Salesforce.Com, Inc. | Method and system for providing efficient and complex database functionality to a mobile device |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515936A (zh) * | 2014-09-23 | 2016-04-20 | 中国电信股份有限公司 | 消息通信的方法、服务器和系统 |
CN106156233A (zh) * | 2015-04-24 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 修订数据处理状态的方法及装置 |
CN108696374A (zh) * | 2017-04-10 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 更新客户端配置的方法和装置 |
CN108696374B (zh) * | 2017-04-10 | 2021-10-01 | 北京京东尚科信息技术有限公司 | 更新客户端配置的方法和装置 |
CN113014615A (zh) * | 2019-12-20 | 2021-06-22 | 西安诺瓦星云科技股份有限公司 | 数据同步方法、装置和系统 |
CN113014615B (zh) * | 2019-12-20 | 2023-11-14 | 西安诺瓦星云科技股份有限公司 | 数据同步方法、装置和系统 |
CN114584573A (zh) * | 2022-03-31 | 2022-06-03 | 深圳市瑞云科技有限公司 | 一种基于长轮询机制的节点机信息同步方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2721506A2 (en) | 2014-04-23 |
US20120323990A1 (en) | 2012-12-20 |
WO2012173898A2 (en) | 2012-12-20 |
KR20140038988A (ko) | 2014-03-31 |
JP2014523568A (ja) | 2014-09-11 |
EP2721506A4 (en) | 2014-11-12 |
WO2012173898A3 (en) | 2013-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103597465A (zh) | 高效的状态协调 | |
WO2018219178A1 (zh) | 数据同步方法、装置、服务器及存储介质 | |
US9122651B1 (en) | Computer system to support failover in an event stream processing system | |
US10051587B2 (en) | System for network discovery and synchronization | |
CN112069353B (zh) | 音乐播放控制方法、装置、存储介质及电子设备 | |
CN112860451A (zh) | 一种基于SaaS的多租户数据处理方法和装置 | |
EP3447631B1 (en) | Writing trajectory synchronization method and system for multiple clients | |
CN110765744A (zh) | 多人协同文档编辑方法及系统 | |
CN114363407B (zh) | 消息服务方法及装置、可读存储介质及电子设备 | |
CN104320328A (zh) | 一种消息同步方法、终端和服务器 | |
CN104216787A (zh) | 在终端设备间同步剪切板的方法、装置和系统 | |
CN114328432A (zh) | 一种大数据联邦学习处理方法及系统 | |
CN109086365A (zh) | 本地文件分享方法、系统、装置、电子设备和存储介质 | |
CN104094299A (zh) | 从发布的日历检索可用性信息 | |
CN105556549A (zh) | 将消费者关系管理信息集成到通信会话 | |
CN108009247B (zh) | 信息推送方法及装置 | |
CN107368376B (zh) | 消息发送方法及装置、扩展方法、终端 | |
CN105721278A (zh) | 基于即时通的一问一答机制 | |
US20170149578A1 (en) | Networking cooperation method and machine using such method | |
US11627182B2 (en) | Share based augmented reality content service system | |
CN113347460B (zh) | 直播系统搭建平台及消息传输方法 | |
CN105323233A (zh) | 业务同步方法、业务同步装置及业务同步系统 | |
CN110134530A (zh) | 一种会话内容的处理方法及装置 | |
CN111414198B (zh) | 一种请求处理方法及装置 | |
CN112306337B (zh) | 一种会议同屏系统、方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150728 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150728 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140219 |