CN109716317A - 用于创建时间准确的事件流的系统和方法 - Google Patents
用于创建时间准确的事件流的系统和方法 Download PDFInfo
- Publication number
- CN109716317A CN109716317A CN201780053512.6A CN201780053512A CN109716317A CN 109716317 A CN109716317 A CN 109716317A CN 201780053512 A CN201780053512 A CN 201780053512A CN 109716317 A CN109716317 A CN 109716317A
- Authority
- CN
- China
- Prior art keywords
- writer
- message
- reader
- event
- gateway
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 20
- 230000004044 response Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
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/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R22/00—Arrangements for measuring time integral of electric power or current, e.g. electricity meters
- G01R22/06—Arrangements for measuring time integral of electric power or current, e.g. electricity meters by electronic methods
- G01R22/061—Details of electronic electricity meters
- G01R22/063—Details of electronic electricity meters related to remote communication
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33149—Publisher subscriber, publisher, master broadcasts data to slaves, subscriber
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F2015/761—Indexing scheme relating to architectures of general purpose stored programme computers
- G06F2015/765—Cache
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明的实施方式可以提供改进的分布式计算系统。分布式计算系统中的实体可以分为四类:写入器、读取器、网关和应用。终端用户可以通过网关经由应用与系统进行交互。写入器和读取器的角色可以被分离以分配计算负担。写入器可以针对事件流生成消息。该消息可以包括用于一致的全局排序的时间戳。读取器可以基于时间戳对来自各种写入器的消息进行排列以生成全局时间一致的事件流。
Description
相关引用
本申请要求于2016年9月2日提交的题为“System and Method for CreatingTime-Accurate Event Streams”的美国临时申请第62/382,911号的优先权,该美国临时申请的内容通过引用并入本文。
技术领域
本发明的实施方式总体上涉及用于使用分布式计算机网络来创建时间精确的事件流的系统和方法。
背景技术
如今,大多数复杂的计算都是以集中的方式进行。例如,针对给定应用的来自不同位置的用户与中央处理器交互,并且中央处理器处理与应用相关的所有处理功能。一个示例是游戏环境,在该游戏环境中来自世界各地的多个用户登录到中央服务器并且一起玩交互式游戏。每个用户将其指令发送至中央服务器,并且中央服务器将基于用户指令的顺序执行指令。在游戏中玩家们使用武器相互瞄准,玩家A在玩家B之前按下了射击按钮,因此玩家A活着而玩家B死亡。然而,集中式计算有其局限性。例如,吞吐量受到单个处理器的使用的限制。集中式系统的吞吐量永远不会超过单个中央处理器的吞吐量。
分布式计算提供了集中计算的替选方案。在分布式计算中,可以同时使用多个节点而不是单个节点来处理应用。然而,分布式计算存在例如双重花费的缺点。由于多个节点可以处理不同的指令,因此节点必须同意事件的顺序。例如,考虑卖家在线发布产品报价。在中国的买家A发送对该报价的接受,并且该接受由位于中国的节点1处理。大约在同一时间,在美国的另一买家B也发送对该报价的接受,并且该接受由位于美国的节点2处理。节点1和节点2可能不同意是买方A还是买方B首先接受了报价。
在分布式计算环境中对事件进行排序的传统解决方案已经不足。例如,共识算法例如Paxos和Raft涉及参与者之间的大量协调以确保事件顺序的一致性。这导致了低的吞吐量。另一传统解决方案例如比特币算法,其依赖于工作证明(proof-of-work)而不是显式协调来实现对事件顺序的一致。然而,这种比特币算法导致长延迟以及低吞吐量。
因此,发明人意识到本领域需要具有接近实时的一致的全局排序事件的分布式计算机网络,其实现高吞吐量和低延时。
附图说明
为了便于更全面地理解本发明,现在参照附图,在附图中相同的元素用相同的附图标记表示。这些附图不应被解释为限制本发明,而是仅仅是示例性的。
图1A是示出根据本发明的实施方式的分布式计算网络的一部分的框图。
图1B是示出根据本发明的实施方式的分布式计算网络的传输层部分的框图。
图2是根据本发明的实施方式的写入器设备的框图。
图3是根据本发明的实施方式的写入器设备的操作的流程图。
图4A至图4B是根据本发明的实施方式的读取器设备的操作的流程图。
图5示出了根据本发明的实施方式的读取器操作的示例。
具体实施方式
本发明的实施方式涉及分布式计算。在分布式计算网络中,可以提供多个节点,并且每个节点负责处理的职责。这些节点可以位于不同的物理位置。不同节点可以使用消息彼此通信。
图1A是示出根据本发明的实施方式的分布式计算网络100的一部分的框图。图1A可以描述根据本发明的实施方式的分布式计算网络100的逻辑说明。分布式计算网络100可以包括多个应用110.1-110.M(其中M是正整数)、网关120、多个写入器130.1-130.N(其中N是正整数)以及多个读取器140.1-140.P(其中P是正整数)。应用110.1-110.M可以提供与终端用户的交互。应用110.1-110.M可以创建/发起事件、接收/消费事件以及/或者对事件做出反应。
应用110.1-110.M可以经由通信链路通过网关120与分布式计算网络100的其他网络实体进行通信。通信链路可以由一个或更多个通信网络例如因特网提供。通信网络可以包括有线或无线局域网(LAN)、广域网(WAN)、无线个域网(PAN)或任何其他类型的通信网络。计算机可以通过因特网、内联网、外联网、以太网或任何其他提供通信的系统进行连接。一些合适的通信协议可以包括例如TCP/IP、UDP或OSI。对于无线通信,通信协议可以包括Bluetooth、Zigbee、IrDa或其他合适的协议。此外,网络实体可以通过有线路径或无线路径的组合彼此通信。
尽管可以提供多于一个网关,但是出于说明目的示出了单个网关120。网关120可以从其他网络实体(例如写入器、读取器、应用)接收消息并且将这些消息转发给其他实体。网关120可以控制对系统的访问。网关120可以对消息执行有效性检查并且还可以控制消息传输的速度。因此,网关可以保护分布式计算网络100免受网络攻击例如拒绝服务型攻击。
在一个实施方式中,网关120可以采用“N-in-flight”(N-运行)节流——其中N是可编程的节流水平——以控制消息的速度并且提高可靠性。例如,如果应用试图将十个消息的流发送至写入器并且节流水平N被设置为1,则网关120可以仅允许第一个消息继续进行并且进行等待直到通过从读取器查看事件流能够验证第一个消息已被排序。如果第一个消息被适当地处理了,则网关120然后可以基于系统中的当前消息流将剩余的九个消息相继地发送至写入器。在一个实施方式中,为了提高吞吐量,可以将节流水平N设置为更高的数目。例如,节流水平N可以设置为3;在该示例中,网关120可以向写入器一次发送来自应用流的三个消息。
写入器130.1-130.N可以耦接至网关120。响应于来自应用110.1-110.M的传入消息,写入器130.1-130.N可以创建与事件有关的传出消息。写入器130.1-130.N可以彼此全局时间同步。因此,写入器130.1-130.N可以对传出消息进行排序。写入器130.1-130.N可以对传出消息加时间戳并且还可以将数字签名附加至传出消息。数字签名可以是公钥数字签名。可以基于全局同步的时钟来精确地同步时间戳。
写入器130.1-130.N可以耦接至读取器140.1-140.P。每个读取器140.1-140.P可以“收听”一个或更多个写入器130.1-130.N。因此,每个读取器140.1-140.P可以从多个写入器130.1-130.N接收消息。出于安全目的,每个读取器140.1-140.P可以对消息上的数字签名进行认证。并且每个读取器140.1-140.P可以基于从不同写入器130.1-130.N接收的消息中的时间戳对这些消息进行排列以创建时间精确的事件流。无论读取器和/或写入器的物理位置如何,订阅同一组写入器的任何两个读取器可以生成相同的事件流顺序。因此,本发明的实施方式提高了分布式计算的准确性。
此外,对不同角色(例如写入器和读取器)进行分离会在网络上分配计算负担以使每个网络实体能够更有效地操作。这提高了分布式计算网络的速度并且因此提高了吞吐量。例如,读取器140.1-140.P可能不需要彼此通信或执行其他无关操作从而减慢全局一致事件流的生成。写入器也可以免于执行无关操作从而减慢将要发送给读取器的序列消息的生成。
图1B是示出根据本发明的实施方式的分布式计算网络100的传输层部分的框图。如上所示和所讨论的,写入器130.1-130.N可以以单向方式与读取器140.1-140.P通信。分布式计算网络100还可以包括包含一个或更多个中继器150.1-150.Q的中继器块150。中继器块150可以是来自写入器130.1-130.N的侧信道并且可以分布在整个网络中。
中继器150.1-150.Q可以包括存储装置并且可以存储写入器130.1-130.N的传出消息。中继器150.1-150.Q可以以各种方式组织。在一个实施方式中,中继器150.1-150.Q可以是基于存储器的并且每个中继器可以与早的传出消息的窗口相对应。例如,一个中继器可以存储最后的一百个传出消息,而另一中继器可以存储下一百个最早的传出消息等。在另一实施方式中,中继器150.1-150.Q可以是基于文件的,并且中继器150.1-150.Q可以基于消息所属的文件和应用来存储传出消息。例如,一个中继器可以存储应用A的最新消息,而另一中继器可以存储应用B和应用C等的最新消息。在另一实施方式中,中继器可以被组织为基于存储器和基于文件的组合。
存储在中继器150.1-150.Q中的数据可以是结构化的、半结构化的或非结构化的。中继器150.1-150.Q中的数据存储区域可以包括文件系统和用于存储数据的数据库。如本领域中已知的,存储在中继器150.1-150.Q中的数据可以通过数据库管理系统进行管理和通信。中继器150.1-150.Q可以包括可以具有不同的结构并且存储不同类型的数据的多个数据存储区域。
如下面进一步详细讨论的,读取器140.1-140.P可以与中继器150.1-150.Q通信以对丢失的消息进行请求。如果中继器150.1-150.Q中的一个中继器具有丢失的消息,则适当的中继器可以将该消息发送至进行请求的读取器。然而,如果中继器150.1-150.Q中没有一个中继器具有丢失的消息(在中继器之间已经检查了丢失的消息之后),则适当的中继器可以向始发写入器发送重传请求。作为响应,始发写入器可以重传丢失的消息。在该实施方式中,读取器140.1-140.P可以直接(不经过网关)向中继器150.1-150.P发送消息但不向写入器130.1-130.N发送消息。如果需要,中继器150.1-150.P可以直接向写入器130.1-130.N发送消息。
在一个实施方式中,中继器150.1-150.P可以按层次排列。并且只有最高层次中的中继器被允许能够直接向写入器130.1-130.N发送消息。
将读取器和写入器的角色进行分离还可以为分布式计算网络提供额外的灵活性并且使网络能够动态地更新。写入器的成员资格可以由当前的写入器控制。例如,预先存在的写入器可以在事件流中添加或删除其他写入器。在一个实施方式中,如果写入器物理上失败,则具有相同逻辑地址但具有不同物理地址的另一写入器可以取代失败的写入器的物理位置。在另一示例中,如果要删除写入器,则该即将删除的写入器可以将“序列结束”消息发送至该写入器的读取器基础(reader base)。该“序列结束”消息可以向读取器基础指示该消息将是该写入器发送的最后消息。这是在分布式计算网络中为设备添加冗余的另一种技术,这种技术提供了更大的灵活性。此外,读取器可能不需要彼此通信并且仍然可以与写入器成员列表保持同步。这提高了分布式计算网络的速度。
如上所描述的,每个写入器可以生成单独的事件流。在一个实施方式中,来自写入器的消息(即单独的事件流)可以被存储在远程存储器单元例如云存储器中。远程存储器单元还可以存储读取器的写入器订阅列表的历史。因此,可以重建对读取器过去操作(即读取器看到的消息)的重放。在一个实施方式中,远程存储器单元可以与中继器块部件集成。
在本发明的一个实施方式中,可以通过主题来组织消息,其中主题可以由关联的标签或字符串指定。因此,读取器可以基于主题对从不同写入器接收的消息进行过滤。可以在一个或更多个写入器之间共享单个主题。主题可以被保持在一个或更多个数据库中。在一个实施方式中,主题数据库可以位于中心位置;可替选地,可以以分散的方式提供主题数据库。
在新主题被创建的情况下,相应的条目可以被存储在主题数据库中。存储的条目可以包括定义该主题的字符串、在该主题下发布消息的第一个写入器的标识以及该消息的序列号(相对于该写入器)。
在一个实施方式中,如果写入器希望加入已经存在的主题,则可以由已经写入该主题的写入器进行宣告。新写入器会在发布关于该主题的任何消息之前进行等待以看到做出的此宣告,这确保订阅该主题的所有读取器都将使用带有时间戳的宣告并且知道从该时间戳发生起开始跟随新写入器。这可以例如通过具有与每个主题相关联的源宣告主题来实例化。在由来自新写入器的请求提示以及其他情况下时,已经与主题相关联的写入器可以进行添加其他写入器的宣告。写入器也可以从主题中删除自己,并且也可以通过作出删除宣告来删除自己。已删除自身的写入器将不再在该主题下发布消息(除非稍后将该写入器重新添加到主题中)。这些机制确保均订阅一组主题的任何两个读取器都会就这些主题中产生的消息的确切顺序达成一致。
在创建新主题时,可以使用“主题创建”工具向读取器通知新主题。在一个实施方式中,读取器可以维持有针对感兴趣的主题的标准(例如字符串上的表达)。因此,在任何新创建的主题被宣告的情况下,可以根据读取器的标准进行检查以使读取器能够决定是否消费该新主题。
如本文所描述的分布式计算网络可以具有各种用途。例如,分布式计算网络可以被用于全球清算结算系统。如本文所描述的本发明的实施方式可以与在线游戏、全球匹配引擎、军事应用、票据交换所、物联网、数字货币、小额支付、在不同云平台上的同步应用等等一起使用。
图2示出了根据本发明的实施方式的写入器130。写入器130可以包括引导机器220和高速缓存230。写入器130可以从网关接收可以源自应用的传入消息。引导机器220可以包括处理器220.1和时钟220.2。处理器220.1可以认证传入消息的数字签名。如下面进一步详细描述的,处理器220.1可以生成新的传出消息并且将写入器130的数字签名附加至传出消息。时钟220.2可以被提供为用于为来自写入器130的传出消息创建时间戳的高精度时钟。时钟220.2可以与其他写入器的时钟全局同步。在一个实施方式中,可以使用网络时间协议(NTP)来同步写入器的时钟。
高速缓存230可以包括存储装置并且可以存储写入器130的传出消息。在中继器请求重传消息的(少见)情况下,高速缓存230可以处理该请求并且重传所请求的消息。
写入器130可以将传出消息发送至读取器/中继器。在一个实施方式中,传出消息可以被广播并且任何接收器都能够接收传出消息。在另一实施方式中,传出消息可以专门以一个或更多个读取器为目标,并且只有被作为目标的读取器能够接收那些消息(除了中继器以外)。写入器130还可以周期性地将写入器的“心跳”发送至读取器。读取器可以使用心跳以及序列号来确认读取器仍然与写入器通信并且来自该写入器的消息没有无意中丢失。例如,如果收听读取器没有收到来自指定写入器的消息但在同一时间段内确实收到该写入器的心跳,则该读取器可以假定该写入器在该时间段内没有要发送的消息。
图3示出了根据本发明的实施方式的从写入器生成和发送消息的流程图。在一个实施方式中,图3的方法可以由图1和图2的写入器130执行,或者可替选地,图3的方法可以由另一设备执行。在步骤310中,写入器130可以从与其耦合的网关120接收消息。
在步骤320中,写入器130可以认证数字签名以验证传入消息的发送者。在步骤330中,写入器130可以生成步骤340中的新的传出消息。传入消息可能经由网关从应用多播到写入器。传入消息可能是未排序的。在步骤340中,写入器130可以将写入器130的写入器ID附加至消息。写入器ID可以是对每个写入器而言唯一的ID。在步骤340中,写入器130可以将序列号附加至消息。序列号可以是在每个消息之后递增的单调递增的数字。在步骤360中,写入器130可以将时间戳附加至消息。消息可以由高精度的全局时钟加盖时间戳。分布式计算网络中的所有写入器可以使用相同类型的高精度全局时钟来确保一致的事件排序。
在步骤370中,写入器130可以针对消息生成唯一的数字签名并且将数字签名附加至消息。写入器的数字签名可以基于以下中的一个或更多个:消息内容(包括来自应用的传入消息主体和/或传入消息上的网关签名)、写入器ID、序列号以及时间戳。数字签名对于每个消息可以是唯一的并且可以由传出消息的接收者使用以验证传出消息的真实性。
在步骤380中,可以将消息存储在写入器130的本地高速缓存中。在步骤390中,写入器可以将传出消息发送至一个或更多个读取器(和一个或更多个中继器)。写入器可以广播传出消息或者可以直接将传出消息发送至一个或更多个读取器。
图4A示出了根据本发明的实施方式的接收消息的流程图。在一个实施方式中,图4A的方法可以由图1的读取器140.1-140.P中之一来执行,或者可替选地,图4A的方法可以由另一设备执行。在步骤405中,读取器可以设置读取器将收听的写入器的列表。列表上的写入器可以分布在分布式计算网络中的不同位置。在步骤410中,读取器可以从读取器的列表上的写入器接收消息。此外,读取器还可以从读取器的列表上的写入器接收心跳。
对于每个接收到的消息,读取器可以执行以下步骤:在步骤415,读取器可以认证接收到的消息上的数字签名以验证消息确实源自指定的写入器。在步骤420中,读取器可以基于来自同一始发写入器的最后接收的消息来检查附加至消息的序列号以确定序列号是否正确。如果序列号是正确的(即,来自同一写入器的最后消息的序列号之后的下一序列号),则在步骤425中,读取器可以将消息分配给始发写入器的队列。读取器可以包括多个队列,每个队列对应于读取器的列表上的每个写入器。如果序列号不正确(即,不是来自同一写入者的最后消息的序列号之后的下一序列号),则读取器可以假定读取器丢失了对应于间隙序列编号的消息。因此,在步骤430中,读取器可以将对丢失的消息的请求发送至合适的中继器。中继器可以直接将消息发送至合适的读取器。中继器响应于重传请求而采取的动作如上所描述。
图4B示出了根据本发明实施方式的生成事件流的流程图。在一个实施方式中,图4B的方法可以由图1的读取器140.1-140.P中之一来执行,或者可替选地,图4B的方法可以由另一设备执行。在步骤435中,读取器可以检查每个写入器队列是否具有至少一个消息(包括心跳)。如果是,则在步骤440中,读取器可以从队列中识别最早的尚未提交的消息(不包括心跳)。在步骤445中,读取器可以将所识别的最早的尚未提交的消息发布至事件流。然后该方法可以返回至步骤435。
然而,如果在步骤435中并非所有写入器队列都具有至少一个消息(包括心跳),则在步骤450中,读取器可以检查是否从写入器接收到“流结束”消息——其中在写入器的相应队列中没有消息。如果没有接收到“流结束”消息,则该方法可以返回至步骤435并且等待来自该写入器的内容消息、心跳或“流结束”消息中的任何一个被接收。如果接收到“流结束”消息,则在步骤455中,读取器可以从其列表中移除该写入器并且返回至步骤435。
图5示出了根据本发明的实施方式的接收消息并且按适当的时间顺序重新排列这些消息的读取器操作的示例。在该示例中,两个读取器520、550可以订阅相同的五个写入器(A-E)。然而,由于例如读取器处于不同的位置,所以两个读取器可能以不同的顺序接收来自写入器的消息。来自更靠近读取器的写入器的消息可以比来自更远离读取器的写入器的消息更快地被接收。在该示例中,读取器520可以以以下的接收顺序510接收消息:1)来自写入器A的消息;2)来自写入器B的消息;3)来自写入器C的消息;4)来自写入器D的消息;以及5)来自写入器E的消息。相比之下,读取器550可以以以下的接收顺序540接收消息:1)来自写入器B的消息;2)来自写入器C的消息;3)来自写入器A的消息;4)来自写入器E的消息;以及5)来自写入器D的消息。然而,在读取器520、550检查在创建接收消息时的时间戳之后,读取器520、550可以重新排列消息,其中最早的时间戳消息在最先而最新的时间戳消息在最后。读取器520、550两者可以以相同的顺序重新布置事件流530的消息:1)来自写入器C的消息;2)来自写入器E的消息;3)来自写入器A的消息;4)来自写入器D的消息;以及5)来自写入器B的消息。因此,订阅相同写入器的任何两个读取器可以生成相同的事件流。
在一个实施方式中,还可以使用加密来在网络实体之间传输消息。如本文所描述的,加密可以与通过数字签名的使用来提供的认证分离并且与该认证互补。在一个实施方式中,一些网络实体不需要具有加密钥匙来执行网络实体的功能。例如,读取器可以以加密形式来针对事件流来接收和安排消息。对于读取器来说,消息是否加密可能不重要。为了查看事件流的消息中的信息,应用可能需要加密钥匙来解密消息。这为分布式计算网络提供了额外的安全层。
在一个实施方式中,可以使用“检查点”。检查点可以使读取器能够从特定的检查点开始重建事件流而不是从事件序列的开始来开始重建事件流。这可以使得能够更快地重建事件流从而提高分布式计算网络中的恢复速度。
上面描述的技术可以保护分布式计算网络免受时钟漂移的某些不利的影响。时钟漂移中的误差将不会改变所有读取器在每条消息上都会看到相同的时间戳的事实,并且因此时钟漂移可能不会产生关于消息的顺序的争议。这提高了分布式计算网络的准确性。
通常,应当注意,上文描绘的和描述的部件可以是计算机或多个计算机或者可以包括计算机或多个计算机。可以在由计算机执行的计算机可执行指令例如程序模块的一般上下文中描述部件。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。
本领域技术人员将理解,本发明可以用各种计算机系统配置来实践,包括手持无线设备例如移动电话或PDA、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等等。如上所描述的,本发明可以在分布式计算环境中实施,在该分布式计算环境中,任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储装置的本地计算机存储介质和远程计算机存储介质二者中。
计算机通常包括可以形成系统存储器的一部分并且由处理单元读取的各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。系统存储器可以包括易失性存储器和/或非易失性存储器形式例如只读存储器(ROM)和随机存取存储器(RAM)的计算机存储介质。基本输入/输出系统(BIOS)——包含有助于例如在启动期间在元件之间传输信息的基本例程——通常被存储在ROM中。RAM通常包含处理单元可以立即访问和/或当前正在操作的数据和/或程序模块。数据或程序模块可以包括操作系统、应用程序、其他程序模块和程序数据。操作系统可以是各种操作系统或包括各种操作系统例如Microsoft操作系统、Unix操作系统、Linux操作系统、Xenix操作系统、IBM AIXTM操作系统、Hewlett Packard UXTM操作系统、Novell NetwareTM操作系统、SunMicrosystems SolarisTM操作系统、OS/2TM操作系统、BeOSTM操作系统、操作系统、ApacheTM操作系统、OpenStepTM操作系统或其他操作系统平台。
存储器包括永久被存储或临时被存储的至少一组指令。处理器执行为了处理数据而被存储的指令。该组指令可以包括执行特定的一个任务或多个任务例如附加流程图中所示的那些任务的各种指令。用于执行特定任务的这样的一组指令可以被描述为程序、软件程序、软件、引擎、模块、部件、机制或工具。计算机可以包括存储在如上所述的存储器中并且以本文描述的方式在处理器上执行的多个软件处理模块。程序模块可以是被转换为机器语言或目标代码以允许处理器读取指令的任何合适的编程语言的形式。也就是说,使用编译器、汇编器或解释器可以将特定编程语言中的编程代码或源代码的写入行转换为机器语言。机器语言可以是特定于特定计算机的二进制编码机器指令。
可以根据本发明的各种实施方式使用任何合适的编程语言。说明性地,所使用的编程语言可以包括例如汇编语言、Ada、APL、Basic、C、C++、COBOL、dBase、Forth、FORTRAN、Java、Modula-2、Pascal、Prolog、REXX以及/或者JavaScript。此外,不必一定将单一类型的指令或编程语言与本发明的系统和方法的操作结合使用。相反,可以根据需要或期望使用任意数量的不同编程语言。
另外,在本发明的实践中使用的指令和/或数据可以根据需要使用任何压缩或加密技术或者压缩或加密算法。可以使用加密模块来加密数据。此外,可以使用合适的解密模块来解密文件或其他数据。
计算环境还可以包括其他可移动/不可移动的易失性/非易失性计算机存储介质。例如,硬盘驱动器可以读取或写入不可移动的非易失性磁介质。磁盘驱动器可以读取或写入可移动的非易失性磁盘,以及光盘驱动器可以读取或写入可移动的非易失性光盘例如CDROM或其他光学介质。可以在示例性操作环境中使用的其他可移动/不可移动的易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。存储介质通常通过可移动或不可移动的存储器接口连接至系统总线。
执行命令和指令的处理单元可以是通用计算机,但是可以使用包括以下设备的各种其他技术中的任何一种:专用计算机、微型计算机、小型计算机、大型计算机、可编程微处理器、微控制器、外围集成电路元件、CSIC(客户专用集成电路)、ASIC(专用集成电路)、逻辑电路、数字信号处理器、可编程逻辑器件(例如FPGA(现场可编程门阵列)、PLD(可编程逻辑设备)、PLA(可编程逻辑阵列))、RFID处理器、智能芯片或能够实施本发明的处理的步骤的任何其他设备或装置。
应当理解,计算机系统的处理器和/或存储器不需要在物理上位于相同的位置。计算机系统使用的每个处理器和每个存储器可以在地理上位于不同的位置并且可以被连接以便以任何合适的方式彼此通信。另外地,应当理解,每个处理器和/或存储器可以由设备的不同的物理件组成。
用户可以通过包括输入设备例如键盘和指点设备——通常称为鼠标、轨迹球或触摸板——的用户界面将命令和信息输入至计算机。其他输入设备可以包括麦克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、语音识别设备、键盘、触摸屏、拨动开关、按钮等。这些输入设备和其他输入设备通常通过耦接至系统总线的用户输入接口连接至处理单元,但是可以通过其他接口和总线结构例如并行端口、游戏端口或通用串行总线(USB)来连接。
一个或更多个监视器或显示设备也可以经由接口连接至系统总线。除了显示设备以外,计算机还可以包括可以通过输出外围接口连接的其他外围输出设备。实现本发明的计算机可以使用至一个或更多个远程计算机的逻辑连接在联网环境中操作,该远程计算机通常包括上述的许多元件或所有元件。
根据本发明的实施方式可以实现包括有线或无线局域网(LAN)和广域网(WAN)、无线个域网(PAN)和其他类型的网络的各种网络。在LAN网络环境中使用时,计算机可以通过网络接口或适配器连接至LAN。在WAN网络环境中使用时,计算机通常包括调制解调器或其他通信机制。调制解调器可以是内部的或外部的并且可以经由用户输入接口或其他适当的机制连接至系统总线。计算机可以通过因特网、内联网、外联网、以太网或任何其他提供通信的系统进行连接。例如,一些合适的通信协议可以包括TCP/IP、UDP或OSI。对于无线通信,通信协议可以包括蓝牙、Zigbee、IrDa或其他合适的协议。此外,系统的部件可以通过有线或无线路径的组合进行通信。
尽管未示出计算机的许多其他内部的部件,但是本领域普通技术人员将理解的是这些部件和互连是公知的。因此,不需要结合本发明来公开关于计算机内部结构的更多细节。
对于本领域普通技术人员来说,明显的是本公开发明可以在广泛的行业中实现。本公开发明的各种实施方式和特征可以以任何组合来使用,因为这些实施方式和特征的组合完全在本发明的范围内。尽管前面的描述包括许多细节和特征,但是应当理解,这些仅仅是为了解释的目的而包括在内而不应被解释为对本发明的限制。对于本领域技术人员来说,明显的是在不脱离本发明的精神和范围的情况下,可以对上述实施方式进行其他修改。因此,这些修改被认为是在本发明的范围内并且旨在由所附权利要求书及其法律等同物涵盖。
从前述内容可以看出,本发明很好地适用于实现上述所有目的和目标以及其它优点,这些优点对于该系统和方法是明显的和固有的。应当理解,某些特征和子组合是有用的并且可以在不参照其他特征和子组合的情况下使用。这是预期的并且在所附权利要求书的范围内。
Claims (25)
1.一种分布式计算系统,包括:
多个写入器,每个写入器生成消息并且将时间戳附加至所述消息;以及
多个读取器,其与所述多个写入器分离,至少一个读取器订阅所述多个写入器中的至少两个写入器,并且所述至少一个读取器接收来自其所订阅的至少两个写入器的消息并且通过基于附加至所述消息的时间戳按时间顺序对来自所述至少两个写入器的消息进行排列来生成事件流。
2.根据权利要求1所述的系统,还包括网关,所述网关用于将终端用户应用在通信上耦接至所述多个写入器中的至少一个写入器和所述多个读取器中的至少一个读取器。
3.根据权利要求2所述的系统,其中,所述终端用户应用将消息发送至所述至少一个写入器。
4.根据权利要求1所述的系统,其中,每个写入器将唯一的数字签名附加至所述消息。
5.根据权利要求4所述的系统,其中,所述数字签名基于以下中的一个更多个:时间戳、消息内容、写入器ID和序列号。
6.根据权利要求1所述的系统,还包括:用于对来自所述至少两个写入器的先前发送的消息进行存储的一个或更多个中继器。
7.根据权利要求6所述的系统,其中,响应于来自所述至少一个读取器的重传请求,所述中继器检索并发送存储的消息。
8.根据权利要求1所述的系统,其中,所述多个写入器中的一个写入器具有将新写入器添加至所述多个写入器的能力。
9.根据权利要求1所述的系统,其中,所述多个写入器中的一个写入器具有删除所述多个写入器中的另一写入器的能力。
10.根据权利要求1所述的系统,其中,所述多个写入器周期性地发送心跳。
11.根据权利要求1所述的系统,其中,不同的写入器的至少两个消息通过主题进行组织。
12.一种写入器设备,包括:
时钟,其用于生成时钟信号;
处理器,其基于来自网关的传入消息生成传出消息,基于所述时钟信号将时间戳附加至所述传出消息,以及将所述传出消息发送至一个或更多个读取器设备。
13.根据权利要求12所述的写入器设备,还包括:
高速缓存,其存储先前发送的消息。
14.根据权利要求13所述的写入器,其中,所述高速缓存用于在存在对存储的消息的请求时检索所述存储的消息以进行重传。
15.根据权利要求12所述的写入器设备,其中,所述处理器用于将数字签名附加至所述传出消息。
16.根据权利要求15所述的写入器设备,其中,所述数字签名基于以下中的一个更多个:时间戳、消息内容、写入器ID和序列号。
17.根据权利要求12所述的写入器设备,其中,处理器周期性地发送心跳。
18.根据权利要求12所述的写入器设备,其中,所述时钟与分布式计算网络中的其他写入器的其他时钟同步。
19.根据权利要求12所述的写入器设备,其中,所述写入器设备将所述传出消息直接发送至所述一个或更多个读取器设备。
20.根据权利要求12所述的写入器设备,其中,所述写入器设备在所述写入器设备解除运作之前发送“序列结束”消息。
21.一种创建事件流的方法,包括:
接收来自多个写入器的消息;
基于包括在所述消息中的时间戳按时间顺序排列所述消息;以及
将已排列的消息作为事件流进行发送。
22.根据权利要求21所述的方法,还包括基于包括在所述消息中的数字签名来认证所述消息。
23.根据权利要求21所述的方法,其中,所述事件流被发送至网关,所述网关将所述事件流转发至终端用户应用。
24.根据权利要求21所述的方法,还包括:
建立一组写入器;以及
接收来自所述一组写入器中的每个写入器的周期性心跳。
25.根据权利要求21所述的方法,还包括通过主题对不同的写入器的至少两个消息进行组织。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662382911P | 2016-09-02 | 2016-09-02 | |
US62/382,911 | 2016-09-02 | ||
PCT/US2017/049000 WO2018044828A1 (en) | 2016-09-02 | 2017-08-29 | System and method for creating time-accurate events streams |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109716317A true CN109716317A (zh) | 2019-05-03 |
CN109716317B CN109716317B (zh) | 2024-04-02 |
Family
ID=61281627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780053512.6A Active CN109716317B (zh) | 2016-09-02 | 2017-08-29 | 用于创建时间准确的事件流的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10678694B2 (zh) |
JP (1) | JP7200455B2 (zh) |
KR (1) | KR102306496B1 (zh) |
CN (1) | CN109716317B (zh) |
CA (1) | CA3035404C (zh) |
TW (2) | TWI808891B (zh) |
WO (2) | WO2018044334A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913807A (zh) * | 2020-08-13 | 2020-11-10 | 支付宝(杭州)信息技术有限公司 | 一种基于多个存储区域的事件处理方法、系统及装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018044334A1 (en) * | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
US9996664B2 (en) | 2016-10-07 | 2018-06-12 | Redox, Inc. | Systems and methods for translating messages between a healthcare entity and a vendor entity |
US20200034929A1 (en) * | 2018-07-26 | 2020-01-30 | Nasdaq, Inc. | In-Order Processing of Transactions |
US10937553B2 (en) * | 2018-11-13 | 2021-03-02 | Redox, Inc. | Systems and methods to organize the flow and processing of queued messages that have been received from healthcare entities |
US11055313B2 (en) | 2018-12-05 | 2021-07-06 | Ebay Inc. | Free world replication protocol for key-value store |
US11126482B1 (en) * | 2020-03-20 | 2021-09-21 | Microsoft Technology Licensing, Llc | Remote logging via telemetry |
EP4383079A2 (en) | 2021-01-11 | 2024-06-12 | IEX Group, Inc. | Schema and application code management using an event stream |
FR3120715B1 (fr) * | 2021-03-09 | 2024-04-05 | Commissariat Energie Atomique | Méthode de vérification de l’habilitation d’un terminal a contrôler un attribut d’identité d’un utilisateur |
US11983772B2 (en) | 2021-10-15 | 2024-05-14 | Iex Group, Inc. | Communication techniques for a distributed computing system |
US11431823B1 (en) * | 2021-11-19 | 2022-08-30 | Stripe, Inc. | Systems and methods for context-aware event ordering protocol for distributed service systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887167A (en) * | 1995-11-03 | 1999-03-23 | Apple Computer, Inc. | Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system |
US20110185074A1 (en) * | 2001-04-05 | 2011-07-28 | Real-Time Innovations, Inc. | Real-time publish-subscribe system |
CN102419764A (zh) * | 2010-10-20 | 2012-04-18 | 微软公司 | 带有多版本化的数据库系统的分布式事务管理 |
Family Cites Families (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4736294A (en) | 1985-01-11 | 1988-04-05 | The Royal Bank Of Canada | Data processing methods and apparatus for managing vehicle financing |
JPH09244984A (ja) * | 1996-03-08 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
WO1998003910A1 (en) * | 1996-07-24 | 1998-01-29 | Hewlett-Packard Company | Ordered message reception in a distributed data processing system |
US7162510B2 (en) | 1998-03-16 | 2007-01-09 | Schneider Automation Inc. | Communication system for a control system over Ethernet and IP networks |
WO2000050974A2 (en) | 1999-02-26 | 2000-08-31 | Reveo, Inc. | Globally time-synchronized systems, devices and methods |
US8112303B2 (en) * | 2001-02-28 | 2012-02-07 | Digonex Technologies, Inc. | Digital online exchange for pricing items to exhaust inventory by an expiration time |
US7162524B2 (en) | 2002-06-21 | 2007-01-09 | International Business Machines Corporation | Gapless delivery and durable subscriptions in a content-based publish/subscribe system |
US7621447B1 (en) * | 2003-01-31 | 2009-11-24 | Massachusetts Institute Of Technology | Method and apparatus for routing data in an automatic identification system |
GB2411492B (en) | 2004-02-25 | 2006-06-07 | Patsystems | Electronic trading system |
US8014296B1 (en) * | 2004-03-31 | 2011-09-06 | Cisco Technology, Inc. | Method and apparatus for enabling LCAS-like feature through embedded software |
US7680838B1 (en) * | 2004-11-12 | 2010-03-16 | Intuit Inc. | Maintaining data synchronization in a file-sharing environment |
JP2008527848A (ja) * | 2005-01-06 | 2008-07-24 | テーベラ・インコーポレーテッド | ハードウェア・ベースのメッセージング・アプライアンス |
US7487216B2 (en) * | 2005-01-18 | 2009-02-03 | International Business Machines Corporation | System and method for managing display of a multiple message electronic mail thread |
JP2006134344A (ja) | 2005-11-21 | 2006-05-25 | Hitachi Ltd | 電子計算機間のジョブ転送方法およびジョブ転送システム |
US20070240166A1 (en) | 2006-04-05 | 2007-10-11 | Kumar Marappan | System and method of providing inter-application communications |
JP2008134726A (ja) | 2006-11-27 | 2008-06-12 | Toshiba Corp | トレーサビリティ情報記録装置、トレーサビリティ情報記録方法及びプログラム |
JP2008134947A (ja) | 2006-11-29 | 2008-06-12 | National Institute Of Information & Communication Technology | ネットワーク時空情報配信システム,ネットワーク時空情報配信装置,時空情報を受信する端末装置,およびネットワーク時空情報配信方法 |
JP2008257381A (ja) | 2007-04-03 | 2008-10-23 | Sony Corp | 情報解析システム、情報解析装置、情報解析方法および情報解析プログラム、ならびに、記録媒体 |
US10845399B2 (en) * | 2007-04-03 | 2020-11-24 | Electro Industries/Gaugetech | System and method for performing data transfers in an intelligent electronic device |
WO2010077376A1 (en) | 2008-12-29 | 2010-07-08 | Openmatch Llc | Trading system |
US8655842B2 (en) * | 2009-08-17 | 2014-02-18 | Yahoo! Inc. | Push pull caching for social network information |
CA2681251A1 (en) | 2009-09-30 | 2011-03-30 | Royal Bank Of Canada | System and method for monitoring securities compliance for related entities |
US9940670B2 (en) | 2009-12-10 | 2018-04-10 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
US10057333B2 (en) | 2009-12-10 | 2018-08-21 | Royal Bank Of Canada | Coordinated processing of data by networked computing resources |
US9959572B2 (en) | 2009-12-10 | 2018-05-01 | Royal Bank Of Canada | Coordinated processing of data by networked computing resources |
SG181616A1 (en) | 2009-12-10 | 2012-07-30 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
US9979589B2 (en) | 2009-12-10 | 2018-05-22 | Royal Bank Of Canada | Coordinated processing of data by networked computing resources |
US8392473B2 (en) * | 2010-09-07 | 2013-03-05 | Microgen Aptitude Limited | Fast hierarchical enrichment |
US9607337B2 (en) | 2010-12-22 | 2017-03-28 | Hyannisport Research, Inc. | Data capture and real time risk controls for electronic markets |
KR101229162B1 (ko) | 2011-02-14 | 2013-02-01 | 주식회사 케이티 | 온라인 게임 제어 방법 및 시스템 |
US8531983B2 (en) | 2011-02-28 | 2013-09-10 | Tellabs Operations, Inc. | System and method for identifying a length of an installed fiber cable |
CA2777438A1 (en) | 2011-05-19 | 2012-11-19 | Royal Bank Of Canada | Processing of electrically traded fixed-income security based funds |
US9654896B2 (en) * | 2011-09-22 | 2017-05-16 | International Business Machines Corporation | Smart online services presence in a cellular network |
BR112014010298B1 (pt) * | 2011-10-31 | 2021-12-07 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Aparelho para encomendar um primeiro evento e um segundo evento, sistema de computação distribuído para determinar eventos e método para encomendar um primeiro evento e um segundo evento |
US10127612B2 (en) | 2012-05-03 | 2018-11-13 | Tamer Trading Technologies Llc | System, method, and computer-readable medium for improving the efficiency and stability of financial markets |
US11210648B2 (en) | 2012-10-17 | 2021-12-28 | Royal Bank Of Canada | Systems, methods, and devices for secure generation and processing of data sets representing pre-funded payments |
CA3126471A1 (en) | 2012-10-17 | 2014-04-17 | Royal Bank Of Canada | Virtualization and secure processing of data |
US11080701B2 (en) | 2015-07-02 | 2021-08-03 | Royal Bank Of Canada | Secure processing of electronic payments |
US20160019536A1 (en) | 2012-10-17 | 2016-01-21 | Royal Bank Of Canada | Secure processing of data |
US9928548B2 (en) | 2013-03-01 | 2018-03-27 | Royal Bank Of Canada | Guarantor mortgages |
US9553831B2 (en) | 2013-04-11 | 2017-01-24 | Cisco Technology, Inc. | Adaptive publish/subscribe system |
EP2936420A4 (en) | 2013-06-24 | 2016-08-03 | Aequitas Innovations Inc | SYSTEM AND METHOD FOR AUTOMATED TRADING OF FINANCIAL INVESTMENTS |
US10362145B2 (en) * | 2013-07-05 | 2019-07-23 | The Boeing Company | Server system for providing current data and past data to clients |
US9654408B2 (en) * | 2013-11-06 | 2017-05-16 | Amazon Technologies, Inc. | Strict queue ordering in a distributed system |
EP2945074A1 (en) * | 2014-05-13 | 2015-11-18 | Thomson Licensing | Method and apparatus for sequencing metadata events |
US20150333930A1 (en) * | 2014-05-15 | 2015-11-19 | Akamai Technologies, Inc. | Dynamic service function chaining |
US9712606B2 (en) | 2014-05-21 | 2017-07-18 | Nasdaq Technology Ab | Efficient and reliable host distribution of totally ordered global state |
JP2016025653A (ja) | 2014-07-25 | 2016-02-08 | 三菱電機株式会社 | 通信システムおよび通信システムの通信方法 |
EP3201856A4 (en) | 2014-09-29 | 2018-06-06 | Royal Bank Of Canada | Secure processing of data |
EP3204903A4 (en) | 2014-10-10 | 2018-02-21 | Royal Bank Of Canada | Systems for processing electronic transactions |
CN104539512B (zh) * | 2014-12-05 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 一种分布式系统中用于消息传送的方法与装置 |
CA2913700A1 (en) | 2014-12-09 | 2016-06-09 | Royal Bank Of Canada | Synchronized processing of data by networked computing resources |
US11165714B2 (en) | 2014-12-15 | 2021-11-02 | Royal Bank Of Canada | Verification of data processes in a network of computing resources |
WO2016095012A1 (en) | 2014-12-15 | 2016-06-23 | Royal Bank Of Canada | Verification of data processes in a network of computing resources |
CA2916284C (en) | 2014-12-24 | 2023-11-21 | Gaurav Nagla | Systems and methods for presenting vehicular transaction information in a data communication network |
CN107408253B (zh) | 2015-01-19 | 2021-08-06 | 加拿大皇家银行 | 电子支付的安全处理 |
KR102494427B1 (ko) | 2015-02-27 | 2023-02-01 | 로얄 뱅크 오브 캐나다 | 네트워크 컴퓨팅 자원에 의한 데이터 프로세싱의 조정 |
US10783116B2 (en) | 2015-03-10 | 2020-09-22 | Royal Bank Of Canada | Systems and methods for managing data |
WO2016149807A1 (en) | 2015-03-20 | 2016-09-29 | Royal Bank Of Canada | System and methods for message redundancy |
EP3317833A4 (en) | 2015-07-02 | 2019-03-20 | Royal Bank Of Canada | SAFE PROCESSING OF ELECTRONIC PAYMENTS |
US11599879B2 (en) | 2015-07-02 | 2023-03-07 | Royal Bank Of Canada | Processing of electronic transactions |
US9973306B2 (en) * | 2015-09-14 | 2018-05-15 | Amazon Technologies, Inc. | Freshness-sensitive message delivery |
CA3000466A1 (en) | 2015-10-01 | 2017-04-06 | Royal Bank Of Canada | System and method for duplicating an application state |
CA3000464C (en) | 2015-10-01 | 2024-03-19 | Royal Bank Of Canada | System and method for presenting dynamic visualizations |
US9319365B1 (en) * | 2015-10-09 | 2016-04-19 | Machine Zone, Inc. | Systems and methods for storing and transferring message data |
US20170124494A1 (en) | 2015-10-29 | 2017-05-04 | Royal Bank Of Canada | Systems, methods and devices for modelling operational risk |
CA2910754C (en) | 2015-10-29 | 2023-08-22 | Royal Bank Of Canada | Systems, methods and devices for modelling operational risk |
CN105392068B (zh) * | 2015-11-04 | 2019-01-01 | 合一网络技术(北京)有限公司 | 分布式多传输信道网络直播视频并行分发方法及系统 |
US20170186085A1 (en) | 2015-12-23 | 2017-06-29 | Royal Bank Of Canada | System and method for dynamic monitoring of credit parameters |
CA3014392C (en) | 2016-02-12 | 2024-04-16 | Royal Bank Of Canada | Methods and systems for digital reward processing |
CN115599978A (zh) | 2016-02-22 | 2023-01-13 | 加拿大皇家银行(Ca) | 电子文件平台 |
CA3017026A1 (en) | 2016-03-08 | 2017-09-14 | Royal Bank Of Canada | Systems, methods, and devices for secure generation and processing of data sets representing pre-funded payments |
ES2917200T3 (es) | 2016-06-14 | 2022-07-07 | Royal Bank Of Canada | Verificación de procesos de datos en una red de recursos informáticos |
WO2018010009A1 (en) | 2016-07-13 | 2018-01-18 | Royal Bank Of Canada | Processing of electronic transactions |
WO2018014123A1 (en) | 2016-07-18 | 2018-01-25 | Royal Bank Of Canada | Distributed ledger platform for vehicle records |
CA2976505A1 (en) | 2016-08-15 | 2018-02-15 | Royal Bank Of Canada | System and method for predictive digital profiles |
CA2976618A1 (en) | 2016-08-16 | 2018-02-16 | Royal Bank Of Canada | System for network incident management |
WO2018044334A1 (en) * | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
WO2018049523A1 (en) | 2016-09-14 | 2018-03-22 | Royal Bank Of Canada | Credit score platform |
US10032450B2 (en) | 2016-09-22 | 2018-07-24 | Royal Bank Of Canada | System and method for electronic communications |
-
2016
- 2016-10-04 WO PCT/US2016/055345 patent/WO2018044334A1/en active Application Filing
-
2017
- 2017-08-28 US US15/687,707 patent/US10678694B2/en active Active
- 2017-08-29 WO PCT/US2017/049000 patent/WO2018044828A1/en active Application Filing
- 2017-08-29 CA CA3035404A patent/CA3035404C/en active Active
- 2017-08-29 JP JP2019512214A patent/JP7200455B2/ja active Active
- 2017-08-29 KR KR1020197005763A patent/KR102306496B1/ko active IP Right Grant
- 2017-08-29 CN CN201780053512.6A patent/CN109716317B/zh active Active
- 2017-09-01 TW TW111135701A patent/TWI808891B/zh active
- 2017-09-01 TW TW106129981A patent/TWI839323B/zh active
-
2020
- 2020-05-12 US US16/872,647 patent/US10901905B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887167A (en) * | 1995-11-03 | 1999-03-23 | Apple Computer, Inc. | Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system |
US20110185074A1 (en) * | 2001-04-05 | 2011-07-28 | Real-Time Innovations, Inc. | Real-time publish-subscribe system |
CN102419764A (zh) * | 2010-10-20 | 2012-04-18 | 微软公司 | 带有多版本化的数据库系统的分布式事务管理 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913807A (zh) * | 2020-08-13 | 2020-11-10 | 支付宝(杭州)信息技术有限公司 | 一种基于多个存储区域的事件处理方法、系统及装置 |
CN111913807B (zh) * | 2020-08-13 | 2024-02-06 | 支付宝(杭州)信息技术有限公司 | 一种基于多个存储区域的事件处理方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CA3035404A1 (en) | 2018-03-08 |
US20180067864A1 (en) | 2018-03-08 |
US20200272569A1 (en) | 2020-08-27 |
CN109716317B (zh) | 2024-04-02 |
TWI808891B (zh) | 2023-07-11 |
JP2020500345A (ja) | 2020-01-09 |
WO2018044334A1 (en) | 2018-03-08 |
JP7200455B2 (ja) | 2023-01-10 |
US10901905B2 (en) | 2021-01-26 |
TW201812606A (zh) | 2018-04-01 |
CA3035404C (en) | 2023-10-31 |
KR20190046818A (ko) | 2019-05-07 |
KR102306496B1 (ko) | 2021-09-28 |
US10678694B2 (en) | 2020-06-09 |
WO2018044828A1 (en) | 2018-03-08 |
TW202305612A (zh) | 2023-02-01 |
TWI839323B (zh) | 2024-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716317A (zh) | 用于创建时间准确的事件流的系统和方法 | |
EP3704620B1 (en) | System and method for blockchain-based notification | |
KR102170347B1 (ko) | 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법 | |
JP6892514B2 (ja) | トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化 | |
CN111213128A (zh) | 实现基于区块链的web服务 | |
CN111108521A (zh) | 实现基于区块链的工作流 | |
US8625803B1 (en) | Updating shared keys | |
WO2019113495A1 (en) | Systems and methods for cryptographic provision of synchronized clocks in distributed systems | |
US20180167475A1 (en) | Dynamic distribution of persistent data | |
US11314885B2 (en) | Cryptographic data entry blockchain data structure | |
US9397984B1 (en) | Apparatus and method for secure file transfer | |
US11269865B2 (en) | Managing trust points in ledger systems | |
KR101574871B1 (ko) | 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 | |
CN111183427A (zh) | 管理基于区块链的中心化账本系统 | |
CN114041134A (zh) | 用于基于区块链的安全存储的系统和方法 | |
Chechina et al. | A scalable reliable instant messenger using the SD Erlang libraries | |
CA2958397A1 (en) | System and method for creating time-accurate event streams | |
Vallin | Cloud-Based Collaborative Local-First Software | |
Thunberg | Large Scale Server Publishing for Dynamic Content |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40006663 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |