CN105474250A - 特制的消息传送 - Google Patents

特制的消息传送 Download PDF

Info

Publication number
CN105474250A
CN105474250A CN201480046050.1A CN201480046050A CN105474250A CN 105474250 A CN105474250 A CN 105474250A CN 201480046050 A CN201480046050 A CN 201480046050A CN 105474250 A CN105474250 A CN 105474250A
Authority
CN
China
Prior art keywords
data
increment
message
snapshot
time
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
Application number
CN201480046050.1A
Other languages
English (en)
Other versions
CN105474250B (zh
Inventor
B.J.布鲁克菲尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trading Technologies International Inc
Original Assignee
Trading Technologies International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Trading Technologies International Inc filed Critical Trading Technologies International Inc
Priority to CN202010241586.6A priority Critical patent/CN111581551A/zh
Publication of CN105474250A publication Critical patent/CN105474250A/zh
Application granted granted Critical
Publication of CN105474250B publication Critical patent/CN105474250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Transplanting Machines (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

所公开的实施例一般地涉及用于特制网络通信的消息的技术。更具体地,所公开的实施例涉及用于基于接收方偏好来提供定制的信息更新的系统和方法。例如,接收方可能偏好比系统创建更新更不频繁地接收更新,和/或可能偏好接收更新中的不同的数据的级别。在一些实施例中,提供允许更高效特制提供更新消息的速率的增量捕捉技术。在一些实施例中,提供允许更高效特制更新消息的内容的划分技术。在一些实施例中,与允许更高效特制更新消息的速率和内容的划分技术组合而提供增量捕捉技术。

Description

特制的消息传送
相关申请交叉引用
本申请要求2014年7月11日提交的标题为“TailoredMessaging”的第14/329,602号美国专利申请的优先权,并且要求2013年7月12日提交的标题为“SystemandMethodforDynamicallyDistributingMarketDataAcrossMultipleDevicesinanElectronicTradingEnvironment”的第61/845,613号美国临时专利申请的优先权,而且要求2014年7月10日提交的标题为“SystemandMethodforDynamicallyDistributingMarketDataAcrossMultipleDevicesinanElectronicTradingEnvironment”的第62/022,736号美国临时专利申请的优先权。为了所有目的,通过引用将每一个前述申请的全部内容完整地并入本文。
背景技术
电子设备可以交换数据消息,以提供例如关于设备的状态的最新信息。在一些系统中,多个接收方对于从数据源接收更新感兴趣。数据源可以使用诸如广播消息传送或多播消息传送这样的技术在某些类型的网络中提供这些更新。在其它系统中,由于例如网络限制、通信偏好(例如,可靠交付、下订单等)和/或安全性要求,因此一些接收方可能使用点对点连接与数据源进行通信。
一些接收方可能偏好以不同速率从同一数据源接收更新。在使得将不期望的消息发送到接收方最小化的同时以不同的速率提供更新,限制了广播和多播消息传送技术的有用性,并且随着具有不同更新速率偏好的接收方的数量增加,点对点连接变得更有效。然而,在点对点连接的情况下,必须对于每个接收方生成消息。此外,一些接收方可能偏好在它们的更新中接收不同级别或层级的数据。基于不同级别或层级的数据来定制消息,要求对于每个级别或层级的数据生成不同的消息。尤其是对于在接收数据时延时增加是不可接受的时间敏感信息,随着具有不同偏好的接收方的数量增长,接纳不同更新速率以及不同级别或层级的数据变成累赘。
附图说明
参照以下附图公开一些实施例。
图1示出可以用于实现一些实施例的示例计算设备的框图。
图2示出用于将特制(tailored)消息发送到一个或多个接收设备的示例系统的框图。
图3示出可以用于将快照(snapshot)和增量捕捉(deltasnap)发送到一个或多个接收设备的示例订阅(subscribe)控制模块的框图。
图4示出使用快照技术的例子的数据流。
图5示出使用增量技术的例子的数据流。
图6示出使用增量捕捉技术的例子的数据流。
图7A和图7B示出说明示例数据级别的框图。
图8A和图8B示出说明基于快照和增量捕捉的示例可特制消息的框图。
图9示出使用特制增量捕捉技术的例子的数据流。
图10示出缓冲器中的示例可特制消息。
图11示出描述示例接收设备与示例订阅控制模块之间的示例连接的示例数据流图。
图12是表示可以执行为实现图2和图3的订阅控制模块的示例机器可读指令的示例方法的流程图。
图13是表示可以执行为实现图3的数据格式器的示例机器可读指令的示例方法的流程图。
图14是表示可以执行为实现图3的数据格式器的示例机器可读指令的示例方法的流程图。
图15是表示可以执行为实现图3的消息发送器的示例机器可读指令的示例方法的流程图。
图16是表示可以执行为实现图3的消息发送器的示例机器可读指令的示例方法的流程图。
图17是表示可以执行为实现图3的消息发送器的示例机器可读指令的示例方法的流程图。
图18示出表示可以采用一些实施例的示例电子交易系统的框图。
图19示出可以采用一些实施例的另一示例电子交易系统的框图。
图20A和图20B示出用于在市场深度的多个数据级别处提供市场数据的快照和增量捕捉的示例可特制消息。
当结合示出的例子的所提供的附图阅读时,将更好理解一些实施例。然而,应当理解,实施例不限于附图所示的布置和手段。
具体实施方式
所公开的实施例总体上涉及用于特制消息以用于网络通信的技术。更具体地,所公开的实施例涉及基于接收方偏好高效地提供定制信息更新的系统和方法。例如,接收方可能偏好与系统创建更新相比更不频繁地接收更新,和/或可能偏好在更新中接收不同级别的数据。在一些实施例中,提供了一种允许对提供更新消息的速率进行更高效特制的增量捕捉技术。在一些实施例中,提供了一种允许对更新消息的内容进行更高效特制的划分(partition)技术。在一些实施例中,提供了允许对更新消息的速率和内容进行更高效特制的划分技术和增量捕捉技术的组合。
在各种上下文中,数据消息将信息提供给接收方。一些接收方可能感兴趣于以与其它接收方不同的速率接收更新。例如,第一接收方可能期望以诸如达到每毫秒一次这样的第一速率(或许以正在生成更新的速率)来接收更新。第二接收方可能是带宽受约束的,并且因而想要以诸如每秒两次这样的较低速率被发送更新。第三接收方可能有时是带宽受约束的,并且希望以任何可能的速率可靠地接收更新,而绝不接收过期数据或体验由于连接重置而导致的大间隙。此外,在一些系统中,数据源可以在更新中提供不同级别或层级的数据。例如,每个后继级别可以包括指示超过在先前级别处所提供的细节的更多细节或附加信息的值。一些接收方可能感兴趣于在来自数据源的更新中接收不同级别数量的数据。例如,第一接收方可能感兴趣于接收对于在前五个级别处的值的更新。第二接收方可能感兴趣于接收对于在前两个级别处的值的更新。为了提供不同级别的数据,根据接收方的偏好来特制消息。在当前系统中,接纳接收方偏好(诸如更新速率和/或不同数量的数据级别),需要对于每个接收方基于源数据来格式化唯一消息。
虽然该描述公开了包含除了其它组件之外的在硬件上执行的软件的实施例,但应当注意的是,实施例仅仅是说明性的,而不应当被看作限制。例如,考虑到可以排他地在硬件中、排他地在软件中、排他地在固件中或者在硬件、软件和/或固件的任何组合中体现任何或所有这些硬件和软件组件。相应地,可以以其它方式实现一些实施例。
I.一些实施例的简要描述
公开示例方法、系统和计算机可读介质以特制消息,以用于网络通信。用于特制消息的示例方法包括:由计算设备生成表示数据源在第一时间的状态的第一快照消息。将第一快照消息发送到第一接收方。示例方法包括:由计算设备生成表示数据源在第二时间的状态与数据源在第一时间的状态的差的第一增量捕捉消息;以及由计算设备将第一增量捕捉消息发送到第一接收方。
示例方法包括:由计算设备生成表示在第一时间所捕获的第一数据集合的第一快照。示例方法还包括:由计算设备将第一快照的第一版本发送到第一订阅设备。根据第一订阅设备的第一偏好来特制第一快照的第一版本。示例方法包括:由计算设备生成表示第一数据集合与第二数据集合之间的差的第一增量捕捉。第二数据集合表示在第一时间之后的第二时间处所生成的数据。示例方法包括:由计算设备将第一增量捕捉的第一版本发送到第一订阅设备。根据第一订阅设备的第一偏好来特制第一增量捕捉的第一版本。
示例的有形计算机可读存储介质包括指令,当该指令被运行时使得机器至少:生成表示数据源在第一时间的状态的第一快照消息。示例指令使得所述机器将第一快照消息发送到第一接收方。示例指令使得所述机器生成表示数据源在第二时间的状态与数据源在第一时间的状态的差的第一增量捕捉消息。示例指令使得第一增量捕捉消息被发送到第一接收方。
II.示例计算设备
图1示出了可以用于实现一些实施例的示例计算设备100的框图。计算设备100包括通信网络110、处理器112、存储器114、接口116、输入设备118和输出设备120。计算设备100可以包括附加组件、不同组件或更少组件。例如,可以提供多个通信网络、多个处理器、多个存储器、多个接口、多个输入设备、多个输出设备或其任何组合。作为另一例子,计算设备100可以不包括输入设备118或输出设备120。
如图1所示,计算设备100可以包括处理器112,其耦合到通信网络110。通信网络110可以包括用于在计算设备100中的各组件之间进行数据通信的通信总线、电网络或光网络、电路、开关、构造(fabric)或其它机制。可以将通信网络110与计算设备100的任何组件通信地进行耦合,并且通信网络110可以在计算设备100的任何组件之间传送数据。
处理器112可以是任何合适的处理器、处理单元或微处理器。例如,处理器112可以包括一个或多个通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列、模拟电路、数字电路、编程处理器和/或其组合。处理器112可以是单个设备或各设备的组合,诸如与网络或分布式处理相关联的一个或多个设备。可以使用任何处理策略,诸如多处理、多任务、并行处理和/或远程处理。处理可以是本地或远程的,并且可以从一个处理器移动到另一处理器。在一些实施例中,计算设备100是多处理器系统,并且因而可以包括通信地耦合到通信网络110的一个或多个附加处理器。
处理器112可以可操作为执行在一个或多个有形介质(诸如存储器114)中编码的逻辑和其它计算机可读指令。如在此所使用的,在一个或多个有形介质中编码的逻辑包括:可以是可由处理器112或不同处理器执行的指令。例如,可以将逻辑作为软件、硬件、集成电路、固件和/或微代码的部分来存储。可以经由诸如网络140这样的通信网络从外部通信设备接收逻辑。处理器112可以执行该逻辑以执行附图中所示的或在此所描述的功能、动作或任务。
存储器114可以例如是一个或多个有形介质,诸如计算机可读存储介质。计算机可读存储介质可以包括各种类型的易失性存储介质和非易失性存储介质,例如包括随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪存、其任何组合或任何其它有形数据存储设备。如在此所使用的,术语非瞬时计算机可读介质或有形计算机可读介质被明确地定义为包括任何类型的计算机可读介质,并且被定义为排除传播信号。存储器114可以包括任何期望类型的大容量存储设备,包括硬盘驱动器、光学介质、磁带或磁盘等。
存储器114可以包括一个或多个存储器设备。例如,存储器114可以包括本地存储器、大容量存储设备、易失性存储器、非易失性存储器或其组合。例如,存储器114可以与处理器112相邻、作为处理器112的部分、用处理器112来编程、与处理器112联网和/或与处理器112远程,从而可以由处理器112检索(retrieve)并且处理在存储器114中存储的数据。存储器114可以存储可由处理器112执行的指令。可以运行该指令,以执行在此所描述的或附图中所示的动作或功能中的一个或多个。
存储器114可以存储实现所公开的技术的应用130。在一些实施例中,可以从不同位置存取应用130或者可以将应用130存储在不同位置中。处理器112可以存取在存储器114中存储的应用130,并且执行在应用130中所包含的计算机可读指令。
在一些实施例中,在安装过程期间,可以将应用从输入设备118和/或网络140传送到存储器114。当计算设备100正在运行或准备运行应用130时,处理器112可以经由通信网络110从存储器114检索指令。
III.订阅控制模块
图2示出了包括订阅控制模块201和数据源202的示例系统200。在所示的例子中,数据源202将数据提供给订阅控制模块201。订阅控制模块201可以例如在数据源202发送数据时、(例如以设置的时间间隔)周期性地、在检测到更新时、和/或响应于触发事件等,接收和/或另外检索数据。订阅控制模块201将数据变换为特制消息204。经由通信链路(例如,点对点连接、单播信道、传输控制协议(TCP)套接字、WebSocket连接等)将特制消息204发送到一个或多个接收设备206(例如,智能电话、平板、服务器、个人计算机等)。相对于接收设备206定义一个或多个偏好(例如,更新速率、数据的级别数量等)。在一些例子中,电子设备206将偏好传递到订阅控制模块201。例如,对于每100ms生成更新的订阅控制模块201,接收方206可以将偏好设置为仅按每500ms的频度接收更新。在一些例子中,由订阅控制模块201确定用于电子设备206的偏好。例如,订阅控制模块201可以基于与电子设备206的连接过程期间的延时,确定应当将更新速率设定为1s,并且仅具有3个级别的数据。在一些例子中,订阅控制模块201基于网络链路吞吐量来调整更新速率。例如,如果仍然正在发送早先更新,则订阅控制模块201可以延迟发送下一更新。在该例子中,如果在延迟期间生成更加新近(recent)的更新,则订阅控制模块201可以替代地发送这个更加新近的更新。订阅控制模块201经由有线连接或无线连接(例如,缆线/DSL/卫星连接、蜂窝连接、长期演进(LTE)连接等)通过网络(例如,互联网、广域网等)与接收方206进行通信。
图3示出了图2的订阅控制模块201的示例实现方式。订阅控制模块201从数据源202接收和/或另外检索数据,并且将特制消息(例如图2的特制消息204)发送到一个或多个电子设备206。所示的例子的订阅控制模块201包括数据源接收器302、数据格式器(formatter)304、主缓冲器306、次缓冲器308和消息发送器310。数据源接收器302从数据源202接收和/或另外检索数据。
在图3所示的例子中,数据源202动态地更新(例如,当新信息变为可用时异步地更新,用闲置时段周期性地更新等)。为了接收和处理数据并且将消息发送到接收方204,数据源接收器302(例如,经由图3的数据源接收器302)捕获数据源202在离散时间点的状态。在一些例子中,当数据源202提供关于其状态的改变的更新时,数据源接收器302捕获数据源202的状态。在一些例子中,数据源接收器302按设置的时间间隔捕获数据源202的状态(例如,数据源频繁地更新的例子)。例如,数据源接收器302可以每100毫秒捕获一次数据源202的状态。在一些例子中,数据源接收器302响应于检测到更新而捕获数据源202的状态(例如,数据源偶发性地更新的例子)。数据源接收器302可以建立基本更新速率。基本更新速率是订阅控制模块201使更新可用于接收设备206的速率。在一些例子中,(例如,当数据源202频繁地更新时等)按有规律的间隔来建立基本更新速率。在一些例子中,(例如,当数据源202不频繁地更新时等)按不规律的间隔来建立基本更新速率。在一些例子中,基本更新速率根据数据源202的改变频率而改变。
在图3的所示的例子中,数据格式器304将来自数据源202的数据进行格式化(例如,编组(marshal)、转译、标准化、组织等)。数据格式器304将数据变换成将要在主缓冲器306和/或次缓冲器308中存储的可特制消息。主缓冲器306和/或次缓冲器308存储由数据格式器304格式化的数据。在一些例子中,由数据格式器304存取在主缓冲器306和/或次缓冲器308中存储的数据,以与来自数据源202的后续数据进行比较。例如,主缓冲器306可以包括可特制的快照消息。利用以下更详细讨论的技术,数据格式器304可以然后将来自数据接收器302的数据与主缓冲器306中的可特制的快照消息进行比较,以在次缓冲器308中生成可特制的增量捕捉消息。
在所示的例子中,消息发送器310管理与一个或多个接收方电子设备206的连接。消息发送器310使用在主缓冲器306和/或次缓冲器308中存储的可特制消息,并且将数据作为特制消息204发送到接收方电子设备206。在一些例子中,消息发送器310从接收方电子设备206接收偏好。例如,偏好可以包括对于更新速率的偏好和/或对于数据的级别数量的偏好。在一些这样的例子中,消息发送器310基于接收到的偏好,将在主缓冲器306和/或次缓冲器308中存储的可特制消息进行特制,以发送到接收方电子设备206。为了将可特制消息进行特制,消息发送器310基于接收到的偏好,计算将要发送可特制消息的哪个部分(例如,字节的总数)。例如,如果可特制消息是100个字节,则消息发送器310可以基于接收到的偏好,计算出仅前56个字节将要被发送到接收方电子设备206。以这种方式,不需要对消息进行每接收方的再变换。数据格式器304具体地格式化可特制消息,以允许截断式(truncated)发送。在一些例子中,当消息发送器310检测到对接收方电子设备206的连接发生拥塞时,消息发送器310延迟或放弃对设备206的消息。
IV.用于数据源更新的通信的当前技术
用于提供关于数据源的状态的改变的当前技术包括快照和增量(delta),以下进一步描述其中一些示例技术。
A.快照技术
快照表示数据源在特定时间点的状态。快照可以用于将更新传递到接收设备。示例快照技术通过对于每个更新而将快照消息发送到一个或多个接收设备来传递数据源的状态。因为快照技术将数据源在特定时间点的整个状态发送到接收方,所以可以如公式(1)所示地确定数据源在时间t的状态:
CurrentState(t)=St公式(1),
其中,St表示在时间t之前最新近地发送的快照。
图4示出了说明使用快照技术的例子的数据流,在该例子中使用数据源在离散时间(例如,时间T0、时间T1、时间T2等)的示例第一状态400a、示例第二状态400b和示例第三状态400c。在图4所示的例子中,在时间t0捕获第一状态400a。将第一状态400a格式化为快照S0,并且存储在缓冲器中。将快照S0发送到接收方。在时间T1,捕获第二状态400b,将其格式化为快照S1,并且发送到接收方。在时间T2,捕获数据400c,将其格式化为快照S2,并且发送到接收方。
由于快照包括获知数据源的当前状态所需的所有数据,因此可以(例如通过等待下一更新等)使错失快照的影响减少或最小化。然而,由于来自数据源的数据可能仅随间隔而轻微地改变,因此发送快照可能不必要地使用有价值的数据带宽。因此,从频繁更新的数据源接收消息的接收方、很多不同的数据源和/或具有有限带宽的接收方(例如使用蜂窝网络连接的移动设备等)可能体验到拥塞和/或丢失消息。
B.增量技术
增量表示数据源的最新近的早先状态与数据源的当前状态之间的差。最新近的早先状态是由所有中间(intervening)增量所调整的最新快照。增量技术使用由一个或多个增量所分离的周期性快照,以将更新传递到接收设备。示例增量技术通过周期性地(例如按设置的时间间隔)和/或非周期性地(例如在某一数量的更新之后)将快照发送到接收方来传递数据源的状态。在各快照之间中,增量周期性地和/或非周期性地发送到接收方。相应地,可以如公式(2)所示地确定数据源在时间t的当前状态:
CurrentState(t)=SR1+Δ2+…+Δt公式(2),
其中,SR表示在时间t之前最新近地发送的快照,Δ1至Δt表示自从该最新近的快照以来所发送的增量。
图5示出了说明包括数据源分别在时间T0、时间T1和时间T2的示例第一状态400a、示例第二状态400b和示例状态400c的示例增量技术的数据流。在图5所示的例子中,在时间T0,捕获第一状态400a,将其格式化为快照S0,并且发送到接收方。在时间T1,捕获第二状态400b,并且与第二状态400b进行比较。基于差而生成示例增量Δ1。然后将增量Δ1发送到接收方。在时间T2,捕获第三状态400c,并且将其与第二状态400b进行比较,以基于差而生成增量Δ2。然后将增量Δ2发送到接收方。在图4的所示的例子中,增量(例如增量Δ1和增量Δ2)包括指令500(例如,添加(A)、改变(C)、移除(R))、用于指示改变数据的哪个部分的索引(index)502以及用于指示如何改变数据的值504(例如,值1和值2)。例如,增量可以命令接收方以(0,-50)在索引1处改变(C)值(值1,值2)。在一些例子中,快照(例如,快照S0)被标记为快照,并且不包括指令500。
因为在各快照之间仅将改变后的更新的部分传递到接收方,所以增量技术可以减少带宽使用率。然而,由于增量仅传递任何更新的一部分,因此如果(例如,由于拥塞、由于连接中断、由于丢失的消息等引起的)未按时接收到增量,则接收方的数据可能变为错误的,或接收方可能不得不等待直到发送新快照为止,不得不忽视所有后续接收到的增量直到那时为止。
V.增量捕捉技术和消息速率特制
一些实施例使用在此称为增量捕捉技术的技术来向一个或多个接收方设备(例如,一个或多个电子设备206)提供数据源(例如,数据源202)的状态的改进传递。增量捕捉技术与快照技术相比,提供更高效的带宽利用以及比增量技术对数据丢失的更大抵抗力。此外,在减少仅使用快照技术发送的冗余数据并且减少使用增量技术所需的复杂度和存储的同时,增量捕捉技术提供高效的消息速率以及级别数量特制。
增量捕捉表示在被发送到接收方(例如图2和图3的接收方206)的最新近的快照与将要在更新中提供的数据源(例如图2和图3的数据源202)的当前状态之间的差。示例增量捕捉技术通过周期性地和/或非周期性地(例如按设置的时间间隔、在某一数量的更新之后,在触发条件时等)将快照发送到接收方,来传递数据源的状态。将快照发送到所有接收方。此外,响应于新的连接而发送最新近的快照。优选地,使用确保可靠交付快照的通信技术来发送快照。例如,可以采用与上面所讨论的快照技术相似的方式来生成快照。此外,在各快照之间,通常生成一个或多个增量捕捉。可以按基本更新速率(例如,数据源202将更新提供给图2和图3的订阅控制模块201的速率,或接收方206的更新速率偏好的最小公倍数)来生成增量捕捉。在一些例子中,接收设备206可以按比基本更新速率更不频繁的更新速率来订阅增量捕捉。例如,如果订阅控制模块201的基本更新速率是25毫秒,则接收方可能偏好不早于每100毫秒接收增量捕捉(即,如果更新按基本更新速率或快于基本更新速率而产生,则接收每第四个增量捕捉)。例如,除了相对于最新近地发送的快照而不相对于由最新近地发送的增量所表示的状态来进行增量捕捉之外,可以采用与上面所讨论的增量技术中的增量相似的方式来生成增量捕捉。当正在生成增量捕捉时,可能的是,由于将要表示的从早先快照的改变的范围,所以增量捕捉的表示可以大于等效快照原本的样子。在这些情况下,在一些实施例中,可以放弃生成增量捕捉,可以生成并且另外发送新的快照。使用增量捕捉技术,可以如公式(3)所示地确定数据源202在时间t的状态:
CurrentState(t)=SR+ΔSt公式(3),
其中,SR表示在时间t之前最新近地发送的快照,ΔSt表示在时间t之前最新近地发送的增量捕捉。
图6示出了说明包括数据源202分别在时间T0、时间T1和时间T2的示例第一状态400a、示例第二状态400b和示例状态400c的示例增量捕捉技术的数据流。在图6所示的例子中,由数据源接收器302(图3)捕获第一状态400a,由数据格式器306(图3)将其格式化为快照S0,并且放置在主缓冲器306(图3)中。消息发送器310(图3)将快照S0发送到接收方206(图3)。在时间T1,由数据源接收器302捕获第二状态400b。在所示的例子中,数据格式器304将主缓冲器306中的快照S0与第二状态400b进行比较。基于差,数据格式器304生成示例增量捕捉ΔS1。将增量捕捉ΔS1存储在次缓冲器310(图3)中。然后由消息发送器310根据每个接收方的更新速率偏好将增量捕捉ΔS1发送到接收方206。
如图6的例子所示,在时间T2,数据源接收器302捕获数据源202的第三状态400c。数据格式器304将主缓冲器306中所存储的快照S0与第三状态400c进行比较,并且基于差而生成增量捕捉ΔS2。将增量捕捉ΔS2存储在次缓冲器308中。然后由消息发送器310根据每个接收方的更新速率偏好将增量捕捉ΔS2发送到接收方206。在图6所示的例子中,使用动作600、用于指示数据的哪个部分受到影响的索引602和/或对于值604(例如,值1和值2)的改变,来生成增量捕捉ΔS1、ΔS2
因为增量捕捉包括关于自从最新快照以来在数据源202处所发生的对数据的一个或多个更新的信息,所以增量捕捉技术允许以多个基本更新速率将更新发送到具有不同更新速率偏好的接收方206。例如,如果每两分钟创建快照并且在各快照之间每秒创建增量捕捉,则第一接收方可以将偏好设置为每五秒接收增量捕捉,并且第二接收方可以将偏好设置为每十秒接收增量捕捉。将每个快照发送到每一接收方。当生成增量捕捉时,然后可以根据接收方的偏好将增量捕捉发送到接收方。因此,可能并非向每个接收方发送每个增量捕捉。由于增量捕捉表示相对于最新近地发送的快照的改变,因此特定接收方不必接收每个增量捕捉以确定数据源的最近更新。
因为增量捕捉包含关于数据源202的更新的信息的部分,所以与快照技术相比,增量捕捉技术通常需要更少的带宽。
在一些例子中,增量捕捉技术可能需要比增量技术更多的带宽。例如,如果数据源202改变,并且接下来一会儿不再改变,则增量捕捉将重复地包括该改变,而增量不会这样。然而,与增量技术相比,使用增量捕捉技术,对数据源进行订阅并且从丢失的消息恢复是更可管理的。例如,使用增量捕捉技术,接收设备206可以在各快照之间连接到订阅控制模块201,并且通过接收最新近的快照和最新近的增量捕捉而变为最新的。
VI.可划分数据级别技术和数据级别特制
一些实施例使用在此称为可划分数据级别技术的技术,来向一个或多个接收方设备206提供数据源202的状态的改进传递。可划分数据级别是指将更新中的数据组织为各级别或各层级。在图7A和图7B的所示的例子中,由数据格式器(例如图3的数据格式器304)将从数据源(例如图2和图3的数据源202)接收到的数据700组织成数据级别702a-702f。在一些例子中,按兴趣的下降级别来组织数据级别702a-702f(例如,第一级别702a包括最多请求的数据,第二级别702b包括次多请求的数据,等等)。附加地或可替代地,每个数据级别702a-702f表示信息细节的级别。数据级别702a-702f是根据以下数据级别702可划分的(例如,第一数据级别702a可以用于创建图2的特制消息204,第一数据级别702a和第二数据级别702b可以用于创建特制消息204,等等)。也就是说,将数据排序成各级别或各层级,使得接收方可以指定偏好以仅接收该各级别的子集,该子集开始于第一数据级别702a并且经过所偏好的数据级别。例如,一些接收方可能偏好接收前三个数据级别(级别702a-702c),而其它接收方可能偏好仅接收第一数据级别(级别702a)。一些接收方可能仅期望第五数据级别(级别702e)中的信息,但根据可划分数据级别技术,这些接收方愿意也接收在它们所期望的数据级别之上的级别(在此情况下为级别702a-702d)。
在图7B的所示的例子中,数据级别702可以包括多个数据值704。在所示的例子中,数据级别702中的数据值704不是可划分的。例如,如果接收设备206请求第一数据级别702a中所包含的特定值704,则接收设备206接受整个第一数据级别702a。例如,数据源202可以提供Twitter话题标签(hashtag)以及它们的发布速率。数据格式器可以按话题标签的发布速率的降序来组织它们。首位话题标签可以是第一数据级别(例如数据级别702a),话题标签二至十可以是第二数据级别(例如数据级别702b),话题标签十一至一百可以是第三数据级别(例如数据级别702c)。如果接收方偏好仅接收首位话题标签,则它们将接收第一数据级别。如果接收方偏好接收前十位话题标签,则它们将接收第一数据级别和第二数据级别。
可划分的数据级别促进了生成允许对多个接收设备(例如图3的接收方206)定制消息的可特制消息,而无需将数据重新编组到每个接收方的消息缓冲器中。例如,如果将一千个接收设备(例如图2和图3的接收设备206)连接到订阅控制模块(例如图2和图3的订阅控制模块201),则可以(例如使用图7A和图7B的可划分数据级别)向每个接收设备206发送具有不同兴趣级别和/或细节级别的更新消息,而发送器无需为每个接收方编组用于每个更新消息的数据。
图8A和图8B示出了可以由消息格式器(例如图3的消息格式器304)生成并且放置到缓冲器(例如图3的主缓冲器306和/或次缓冲器308)中的示例可特制消息。在被放置到缓冲器中之后,消息发送器(例如图3的消息发送器310)使用缓冲器中的可特制消息的部分作为特制消息204,以发送到接收设备(例如图2和图3的接收设备206)。图8A示出了基于快照(例如,图4、图5和图6的快照S0)的示例可特制消息800。在图8A所示的例子中,可特制消息800包括一个或多个头部802以及一个或多个数据级别804。头部802包括簿记(bookkeeping)信息(例如,数据级别804的数量、精度的级别、时间戳等)以及由消息发送器(例如图3的消息发送器310)处理可特制消息800所需的传输信息。
数据级别804是在一个或多个划分点806处可划分的可划分数据级别(例如,图7A和图7B的数据级别702)。在一些例子中,每个数据级别804可以包括多个值808。在一些例子中,为了发送特制消息204,消息发送器310使用来自缓冲器的达到划分点806之一的可特制消息800的一部分。在图8A所示的例子中,每个数据级别804可以包括多个值808,以表示与细节级别和/或兴趣级别对应的数据源202的状态(例如,图4、图5和图6的第一状态400a)。例如,如果可特制消息800包括8个数据级别804,则接收设备206可以通过设置偏好来选择仅接收前2个数据级别804。在该例子中,消息发送器310使用头部802和前2个数据级别804,以发送到接收设备206。在一些实施例中,可以参照用于包括每个接收方的偏好数量的数据级别并且不包括更多的适当长度以及缓冲器,来使用套接字写入调用。
图8B示出了基于增量捕捉(例如,图6的增量捕捉ΔS1)的示例可特制消息810。在图8B所示的例子中,可特制消息810包括一个或多个头部802以及一个或多个更新812。在所示的例子中,更新812包括动作814。在一些例子中,每个更新812可以包括一个或多个动作814。在所示的例子中,动作814包括关于自从最新快照以来对数据源202的改变的信息。数据更新812可以是在划分点806处可划分的可划分数据级别(例如,图7A和图7B的数据级别702)。在一些例子中,为了发送特制消息204,消息发送器310使用来自缓冲器(例如,主缓冲器306、次缓冲器308等)的达到划分点806之一的可特制消息810的一部分。在一些例子中,可特制消息810可以不包括与每一数据级别804对应的更新812(例如,自从最新快照以来,该特定数据级别804中没有数据改变等)。
在图8B的所示的例子中,动作814包括动作基准816、索引818以及一个或多个参数820。动作基准816标识执行哪个动作(例如,图6的动作600)以更新由示例索引814所标识的数据级别804。示例参数820标识对所标识的数据级别804的值(例如,值808)的改变的量值。示例动作基准814描述于表(1)上。
表(1)
示例“添加”动作使用由示例参数820所指定的值(例如,图7的值704),在由索引814所指定的数据级别之后添加新的数据级别(例如,图7的数据级别702a-702f)。示例“添加相对”动作在由索引814所指定的数据级别之后,添加新的数据级别,其中由示例参数820所指定的值对由索引814所指定的数据级别的值进行修改(例如,相加、相减等)。示例“添加顶部”动作使用由示例参数820所指定的值在第一数据级别之前添加新的数据级别。示例“修改第N值”动作(例如,“修改第1值”(MV1)等)如示例参数820所指定地修改由索引814所标识的数据级别的第N值。示例“修改所有”动作如示例参数820所指定地修改由索引814所标识的数据级别的值。示例“删除”动作删除由索引814所标识的数据级别。示例“无改变”动作在由索引814所指定的数据级别之前,创建由索引814所指定的数据级别的副本。
可特制消息810可以包括(例如,使用“添加”动作、“添加相对”动作和/或“添加顶部”动作等)添加新的数据级别804的更新812。附加地或可替代地,可特制消息810可以包括(例如,使用“删除”动作等)删除现有数据级别804的更新812。当删除数据级别804时,较低数据级别向上移位。例如,可特制消息800可以包括数据级别1、数据级别2和数据级别3。如果在数据源202的下个更新时删除数据级别2,则数据级别3移位以变为数据级别2。然而,在该例子中,如果接收设备206仅在特制消息204中接收到两个数据级别(例如,按接收方的偏好),则接收设备206将没有关于数据级别3的信息。也就是说,当接收设备206接收到最新快照时,特制消息204并不包括关于数据级别3的信息。为了帮助接收设备206具有关于数据源202的当前状态的精确的最新信息,数据格式器304在检测到删除的数据级别804时,可以包含有提供向上移位的数据级别804(例如,数据级别1和3)的动作814(例如,“无改变”动作)。在一些例子中,已经具有数据级别804的接收设备206忽略“无改变”动作814。
图9示出了已经删除数据级别(例如,图8A的数据级别804)的示例数据流。所示的例子示出数据源202(图2和图3)在时间T0的第一状态900a和在时间T1的第二状态900b。第一状态900a和第二状态900b已经被组织为第一数据级别902a、第二数据级别902b、第三数据级别902c、第四数据级别902d以及第五数据级别902e。数据格式器(图3)生成基于快照的可特制消息(例如图8A的可特制消息800)。在时间T0,因为接收设备206(图2和图3)已经设置用于三个数据级别804的偏好,所以将具有三个数据级别的特制快照S0发送到接收设备206。在T1,删除第二数据级别902b。在所示的例子中,第三数据级别902c、第四数据级别902d和第五数据级别902c向上移位。当生成基于增量捕捉的可特制消息(例如图8B的可特制消息810)时,数据格式器304包括“无改变”动作。在“无改变”动作的情况下,将特制增量捕捉ΔS1发送到接收方。
图10示出了缓冲器(例如,图3的主缓冲器306或图3的次缓冲器308)中的示例可特制消息1000(例如,图8A的基于快照的可特制消息800和/或图8B的基于增量捕捉的可特制消息810)。可特制消息1000包括一个或多个头部1002以及一个或多个可划分数据级别1004(例如,图8A的数据级别804或图8B的更新812)。在所示的例子中,在对可特制消息进行格式化的同时,数据格式器304(图3)计算划分点1006在缓冲器中的位置。在一些例子中,数据格式器304生成存储划分点1006在缓冲器中的位置(例如,字节偏移等)的划分表1008。在一些这样的例子中,可以在可特制消息1000的开始或结束处存储划分表1008。在一些例子中,当发送特制消息204(图2)时,由消息发送器310(图3)使用划分表1008。以此方式,当发送特制消息204时,消息发送器310可以根据接收设备206的偏好来快速地确定使用可特制消息1000所需的大小(例如,缓冲器中的字节量)。
VII.使用增量捕捉和可划分数据级别的特制消息传送
一些实施例使用增量捕捉和可划分数据级别技术的组合来向一个或多个接收方设备206提供数据源202的状态的改进通信。
图11示出了描述示例接收设备A1104a与图2和图3的示例订阅控制模块201之间的示例第一连接1102a的示例数据流图1100。示图1100还描述了示例接收设备B1104b与订阅控制模块201之间的示例第二连接1102b。订阅控制模块201以快照阈值速率(例如,每分钟、每两分钟等)生成快照1106,并且以基本更新速率(例如,每秒等)生成增量捕捉1108a-1108g。在所示的例子中,订阅控制模块201将快照1106和增量捕捉1108a-1108g发送到第一连接1102a和第二连接1102b。
在图11所示的例子中,第一连接1102a随着时间具有拥塞时段1110和无显著拥塞时段1112。在所示的例子中,接收设备A1104a设置关于更新速率(例如,发送增量捕捉1108a-1108g到第一连接1102a的速率)的偏好和/或关于接收的数据级别的数量(例如,每个快照1106和每个增量捕捉
1108a-1108g中包括多少数据级别)的偏好。在所示的例子中,由接收设备A1104a所设置的更新速率等于基本更新速率(例如,由订阅控制模块201生成增量捕捉1108a-1108g的速率)。例如,如果基本更新速率是一秒,则接收设备A1104a以一秒间隔接收增量捕捉1108a-1108g。在一些例子中,订阅控制模块201可以检测拥塞时段1110。例如,订阅控制模块201的发送套接字可以指示发送缓冲器已满和/或第一连接1102a是拥塞的。在一些例子中,订阅控制模块201延迟传输受延迟的增量捕捉1108b,直到第一连接1102a不再拥塞为止。当拥塞时段1110比接收设备206偏好的更新速率更长时,订阅控制模块201可以放弃待决的增量捕捉1108d,并且替代地发送下一增量捕捉1108e。
在图11所示的例子中,第二连接1102b随着时间具有连接时段1113和断开时段1114。在所示的例子中,由接收设备B1104b所设置的更新速率被设置为比基本更新速率更不频繁。例如,如果基本更新速率是100毫秒,则接收设备B1104b的更新速率可以是200毫秒。在所示的例子中,当在订阅控制模块201与接收B1104b之间建立连接1102b时,订阅控制模块201发送最新近的快照1106和最新近的增量捕捉1108b、1108f。附加地或可替代地,如果断开时段114很短(例如,小于当前更新速率),则订阅控制模块201可以仅发送增量捕捉1108f。
图12是表示可以被运行以实现图2和图3的订阅控制模块201以便在订阅控制模块与数据源(例如图2和图3的数据源202)建立连接时生成快照和增量捕捉的示例机器可读指令的示例方法1200的流程图。初始地,在方框1202,订阅控制模块201接收从数据源202发送的数据。在一些例子中,订阅控制模块201以设置的时间间隔检索数据。附加地或可替代地,订阅控制模块201可以响应于检测到对数据源202的更新和/或响应于触发而检索数据。在方框1204,订阅控制模块201确定是否已经超过快照阈值速率。例如,快照阈值速率是生成的各快照之间的最小时间量。在一些例子中,快照阈值可以基于每个更新时数据源201改变有多大(例如,较大的数据源改变涉及较短的快照阈值)。
如果已经超过快照阈值,则程序控制前进到方框1206。否则,如果尚未超过快照阈值,则程序控制前进到方框1208。在方框1206,订阅控制模块201生成快照(例如,图11的快照1106)。然后程序控制返回到方框1202。在方框1208,订阅控制模块生成增量捕捉(例如,图11的增量捕捉1108a-1108g)。然后程序控制返回到方框1202。执行示例机器可读指令1200,直到订阅控制模块201与数据源202断开连接为止。
图13是表示可以被运行以实现图3的数据格式器304以便根据由图3的数据源检索器302所检索的数据来生成快照(例如,图11的快照1106)的示例机器可读指令的示例方法1300的流程图。初始地,在方框1302,在从数据源检索器302接收到数据之后,数据格式器304将一个或多个头部(例如,图8A的头部802、图10的头部1002)添加到图3的主缓冲器306。在方框1304,数据格式器304将数据组织为可划分数据级别(例如,图7A和图7B的可划分数据级别702a-702f)。在一些例子中,将数据组织为兴趣级别和/或细节级别。在方框1306,数据格式器304将所组织的数据格式化为可特制消息(例如,图8A的可特制消息800、图10的可特制消息1000等)。然后将可特制消息放置到主缓冲器306中。在方框1308,数据格式器304计算主缓冲器306中的可特制消息的可划分点(例如,图8A的可划分点806、图10的可划分点1000)的位置。在一些例子中,数据格式器304创建划分表(例如,图10的划分表1008),并且将其附接到主缓冲器306中的可特制消息的开始或结束处。然后示例程序1300结束。
图14是表示可以被运行以实现图3的数据格式器304以便根据图3的数据源检索器302所检索的数据生成增量捕捉(例如,图11的增量捕捉1108a-1108g)的示例机器可读指令的示例方法1400的流程图。初始地,在方框1402,在从数据源检索器302接收到数据之后,数据格式器304将一个或多个头部(例如,图8B的头部802、图10的头部1002)添加到图3的次缓冲器308。在方框1404,数据格式器304将数据组织为可划分数据级别(例如,图7A和图7B的可划分数据级别702a-702f)。
在方框1406,以在方框1402所组织的第一数据级别开始,数据格式器确定当前数据级别与在主缓冲器306(图3)中的可特制消息中所存储的对应数据级别之间的差。在方框1408,数据格式器304确定涉及到什么动作(例如图8B的动作814)以使用改变后的数据来更新快照。在一些例子中,当在当前数据级别与主缓冲器306中的可特制消息中所存储的对应数据级别之间不存在差时,对于该级别不生成动作。在方框1410,数据格式器304将在方框1408所确定的动作添加到次缓冲器308中的可特制消息(例如,图8B的可特制消息810、图10的可特制消息1000)。在方框1412,数据格式器304确定次缓冲器308中的增量捕捉的部分是否大于主缓冲器306中的快照。如果次缓冲器308中的增量捕捉大于快照,则程序控制前进到方框1414。反之,如果次缓冲器308中的增量捕捉不大于快照,则程序控制前进到方框1416。
在方框1414,中止增量捕捉的生成,并且取而代之的是数据格式器生成快照。然后示例程序1400结束。在方框1416,数据格式器304确定是否存在用于与快照进行比较的另一数据级别。如果存在用于与快照进行比较的另一数据级别,则程序控制返回到方框1406。否则,如果不存在用于与快照进行比较的另一数据级别,则程序控制前进到方框1418。在方框1418,数据格式器304计算次缓冲器308中的可特制消息的可划分点(例如,图8B的可划分点806、图10的可划分点1000)的位置。在一些例子中,数据格式器304创建划分表(例如,图10的划分表1008),并且将其附接到次缓冲器308中的可特制消息的开始或结束处。然后示例程序1400结束。
图15是表示可以被运行以实现图3的示例消息发送器310以便更新接收方(例如,图2和图3的接收设备206)的示例机器可读指令的示例方法1500的流程图。在方框1502,消息发送器310建立与接收方的连接(例如,图11的第一连接1102a)。在一些例子中,消息发送器310从接收方请求和/或接收偏好。附加地或可替代地,消息发送器310维持和/或能够(例如从订阅者数据库等)存取接收方的偏好。在方框1504,消息发送器310将最新近的快照(例如,图11的快照1106)发送到接收方。在一些例子中,消息发送器310根据接收方的偏好来特制(例如,使用图3的主缓冲器306中的可特制消息的部分)快照。
在方框1506,消息发送器310确定次缓冲器308(图3)中是否存在更多新近的增量捕捉(例如,图11的增量捕捉1108a-1108g)。如果消息发送器310确定存在更多新近的增量捕捉,则程序控制前进到方框1508,否则,示例程序1500结束。在方框1508,消息发送器310将最新近的增量捕捉发送到接收方。在一些例子中,消息发送器310根据接收方的偏好来特制(例如,使用图3的次缓冲器306中的可特制消息的部分)增量捕捉。然后示例程序1500结束。
图16是表示可以被运行以实现图3的消息发送器310以便将快照(例如图11的快照1106)和增量捕捉(例如图11的增量捕捉1108a-1108g)发送到被连接至图2和图3的订阅控制模块201的接收设备206(图2和图3)的示例机器可读指令的示例方法1600的流程图。初始地,在方框1602,检测到和/或触发主缓冲器306(图3)中的新快照或次缓冲器308(图3)中的新增量捕捉。如果存在新快照或增量捕捉,则程序控制前进到方框1604。否则,程序控制返回到方框1602。在方框1604,消息发送器310确定是否已经满足接收设备206的更新速率。在一些例子中,接收方设置由消息发送器310在建立连接时所接收的偏好和/或由消息发送器310所维持的偏好。在一些例子中,接收设备206不设置偏好。在这些例子中,更新速率默认为订阅控制模块201生成快照和增量捕捉的速率(例如,基本更新速率)。如果已经满足接收设备206的更新速率,则程序控制前进到方框1606。否则,如果尚未满足接收206的更新速率,则程序控制返回到方框1602。
在方框1606,消息发送器310确定是否可以将消息发送到接收设备206。在一些例子中,消息发送器310检测拥塞(例如,图3的拥塞时段1112)。如果可以将消息发送到接收设备206,则程序控制前进到方框1608。否则,如果无法将消息发送到接收设备206,则程序控制返回到方框1602。在方框1608,消息发送器310确定将要把快照还是增量捕捉发送到接收设备206。如果将要发送快照,则程序控制前进到方框1610。如果将要发送增量捕捉,则程序控制前进到方框1612。在方框1610,消息发送器310将快照发送到接收设备206。在一些例子中,消息发送器310根据接收方的偏好来特制(例如,使用图3的主缓冲器306中的可特制消息的部分)快照。程序控制返回到方框1602。在方框1612,消息发送器310将增量捕捉发送到接收方。在一些例子中,消息发送器310根据接收方的偏好来特制(例如,使用图3的次缓冲器306中的可特制消息的部分)增量捕捉。程序控制返回到方框1602。执行示例指令1600,直到接收方与订阅控制模块201断开连接。
图17是表示可以被运行以实现图3的消息发送器310以便在没有对缓冲器(例如,图3的主缓冲器306和/或次缓冲器308)中的可特制消息(例如,图8A的可特制消息800、图8B的可特制消息810等)进行重新编组的情况下对快照(例如图11的快照1106)和/或增量捕捉(例如图11的增量捕捉1108a-1108g)进行特制的示例机器可读指令的示例方法1700的流程图。初始地,在方框1702,消息发送器310如接收方偏好所指示地确定要发送的数据的级别(例如,图7A和图7B的数据级别702a-702f)。在方框1704,消息发送器310基于在方框1702所确定的数据级别的数量来确定要发送到接收设备206的缓冲器的部分的大小。在一些例子中,将划分表(例如图10的划分表1008)附接到缓冲器的开始或结束。在这些例子中,消息发送器310在划分表1008上查找所需的缓冲器大小。在方框1706,消息发送器310将在方框1704所确定的缓冲器的部分发送到接收设备206。然后示例程序1700结束。
VIII.示例电子交易系统
以上所讨论的一些实施例在电子交易系统中可能是有用的。例如,传递包括在各个价格级别可用的数量的市场信息可以受益于消息特制。例如,可交易对象的内部市场数据和市场深度数据可以被组织为可划分数据级别(例如,可划分数据级别702a-702f)。此外,可以使用增量捕捉技术将对内部市场数据和市场深度数据的更新传递到用于交换这些可交易对象的订阅者。
图18示出表示可以采用一些实施例的示例电子交易系统1800的框图。系统1800包括交易设备1810、网关1820和交易所(exchange)1830。交易设备1810与网关1820进行通信。网关1820与交易所130进行通信。如在此所使用的,短语“与……进行通信”囊括直接通信和/或通过一个或多个中间组件的间接通信。交易设备1810、网关1820和/或交易所1830可以包括图1的一个或多个计算设备。在不脱离在此所提供的教导和公开的情况下,图18中所描述的示例性电子交易系统1800可以与附加组件、子系统和元件进行通信,以提供附加功能和能力。
在操作中,交易设备1810可以通过网关1820从交易所1830接收市场数据。用户可以利用交易设备110来监控该市场数据和/或作为判断的基础,以将用于购买或销售一个或多个可交易对象的订单消息发送到交易所1830。
市场数据可以包括关于可交易对象的市场的数据。例如,市场数据可以包括内部市场、市场深度、最新交易价格(“LTP”)、最新交易数量(“LTQ”)或其组合。内部市场是指在特定时间点的可交易对象的市场中的最高可用竞价(bid)价格(最佳竞价)和最低可用询问价格(最佳询问或最佳出价(offer))(这是因为内部市场可以随着时间而变化)。市场深度是指在包括内部市场和远离内部市场的价格级别处可用的数量。由于存在基于市场中的订单而没有数量的价格,因此市场深度可能具有“裂缝”。
可以提供与内部市场和市场深度相关联的价格级别作为值级别,所述值级别可以囊括价格以及所导出的和/或所计算的值的表示。例如,可以显示值级别作为距开盘(opening)价格的净变化。作为另一例子,可以提供值级别作为根据两个其它市场中的价格而计算出的值。在另一例子中,值级别可以包括综合价格级别。
可交易对象是可以交易的任何东西。例如,对于一特定价格可以购买或销售某一数量的可交易对象。可交易对象可以包括例如金融产品、股票、期权、债券、期货合约、外汇、担保、基金衍生品、抵押品、日用品、掉期(swaps)、利率产品、指数型产品(index-basedproducts)、交易事件、货物或其组合。可交易对象可以包括由交易所所列出和/或管辖的产品、由用户所定义的产品、真实产品或合成产品的组合或其组合。可以存在与真实可交易对象对应和/或相似的合成可交易对象。
订单消息是包括交易订单的消息。交易订单可以是例如:用于发出用于购买或销售可交易对象的订单的命令;用于根据所定义的交易策略而发起管理订单的命令;用于改变、修改或取消订单的命令;用于与订单有关的电子交易所的指令;或其组合。
交易设备1810可以包括一个或多个电子计算平台。例如,交易设备1810可以包括桌面计算机、手持设备、膝上型设备、服务器、便携式计算设备、交易终端、嵌入式交易系统、工作站、算法交易系统(诸如“黑盒”或“灰盒”系统)、计算机集群或其组合。作为另一例子,交易设备1810可以包括与被配置为可存取地存储一个或多个计算机程序、应用、库、计算机可读指令等以便由处理器执行的存储器或其它存储介质进行通信的单核或多核处理器。
如在此所使用的,短语“被配置为”和“适于(adaptedto)”囊括元件、结构或设备已经被修改、布置、改变或变化以执行特定功能或用于特定目的。
通过示例的方式,交易设备1810可以被实现为运行(由伊利诺伊芝加哥的TradingTechnologiesInternational公司(“TradingTechnologies”)所提供的电子交易平台)的副本的个人计算机。作为另一例子,交易设备110可以是运行提供自动化交易工具(例如也由TradingTechnologies提供的和/或AUTOTRADERTM)的交易应用的服务器。在又一例子中,交易设备110可以包括与服务器进行通信的交易终端,其中交易终端和服务器共同是交易设备1810。
交易设备1810通常由用户拥有、操作、控制、编程、配置或另外使用。如在此所使用的,短语“用户”可以包括但不限于人类(例如交易者)、交易群组(例如一组交易者)或电子交易设备(例如算法交易系统)。例如,在拥有、操作、控制、编程、配置或另外使用中可能涉及一个或多个用户。
交易设备1810可以包括一个或多个交易应用。如在此所使用的,交易应用是促进或改进电子交易的应用。交易应用提供一个或多个电子交易工具。例如,可以执行由交易设备所存储的交易应用,以在一个或多个交易窗口中布置并且显示市场数据。在另一例子中,交易应用可以包括提供扩展交易工具的自动化扩展交易应用。在又一例子中,交易应用可以包括自动地处理算法并且执行特定动作(例如,下订单、修改现有订单、删除订单等)的算法交易应用。在又一例子中,交易应用可以提供一个或多个交易屏幕。交易屏幕可以提供允许与一个或多个市场进行交互的一个或多个交易工具。例如,交易工具可以允许用户获得并且浏览市场数据、设置订单入口参数、将订单消息提交给交易所、部署交易算法和/或在实现各个交易策略的同时监控位置。由交易应用所提供的电子交易工具可以总是可用的,或可以仅在交易应用的某些配置或操作模式下可用。
可以利用计算机可读介质中存储的并且可由处理器执行的计算机可读指令来实现交易应用。计算机可读介质可以包括各种类型的易失性存储介质和非易失性存储介质,例如包括随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪存、其任何组合或任何其它有形数据存储设备。如在此所使用的,术语非瞬时计算机可读介质或有形计算机可读介质被明确地定义为包括任何类型的计算机可读存储介质,并且排除传播信号。
交易应用的一个或多个组件或模块可以从另一计算机可读介质加载到交易设备1810的计算机可读介质中。例如,交易应用(或对交易应用的更新)可以由制造商、开发商或发行商存储在一个或多个CD或DVD上,其然后被加载到交易设备1810上或者加载到交易设备1810从其中检索交易应用的服务器。作为另一例子,交易设备1810可以例如经由互联网或内部网络从服务器接收交易应用(或对交易应用的更新)。当由交易设备1810请求时(例如“拉分发”)和/或当由交易设备110未请求时(例如“推分发”),交易设备1810可以接收交易应用或更新。
交易设备1810可以适于发送订单消息。例如,订单消息可以通过网关1820发送到交易所1830。作为另一例子,交易设备1810可以适于在不实行现实世界交易的仿真环境中将订单消息发送到仿真的交易所。
可以在用户请求时发送订单消息。例如,交易者可以利用交易设备1810来发送订单消息,或手动地输入交易订单的一个或多个参数(例如,订单价格和/或数量)。作为另一例子,由交易应用所提供的自动化交易工具可以计算交易订单的一个或多个参数,并且自动地发送订单消息。在一些实例中,自动化交易工具可以准备待发送的订单消息,但在没有来自用户的确认的情况下并未实际地发送所述待发送的订单消息。
可以在一个或多个数据分组中发送订单消息或通过共享存储器系统发送订单消息。例如,订单消息可以通过网关1820从交易设备110发送到交易所1830。例如,交易设备1810可以使用局域网、广域网、无线网络、虚拟专用网、蜂窝网络、点对点网络、T1线路、T3线路、综合服务数字网络(“ISDN”)线路、出现点(apoint-of-presence)、互联网、共享存储器系统和/或私有网络(诸如TradingTechnologies所提供的TTNETTM)来与网关1820进行通信。
网关1820可以包括一个或多个电子计算平台。例如,网关1820可以被实现为一个或多个桌面计算机、手持设备、膝上型设备、服务器、便携式计算设备、交易终端、嵌入式交易系统、具有单核或多核处理器的工作站、算法交易系统(例如“黑盒”或“灰盒”系统)、计算机集群或其任何组合。
网关1820可以促进通信。例如,网关1820可以对于在交易设备1810与交易所1830之间所传递的数据执行协议转译。例如,网关1820可以将从交易设备1810接收到的订单消息处理成交易所1830所理解的数据格式。同样,例如,网关1820可以将从交易所1830接收到的交易所特定的格式中的市场数据变换成交易设备1810所理解的格式。
网关1820可以包括促进或改进电子交易的与上述交易应用相似的交易应用。例如,网关120可以包括跟踪来自交易设备110的订单并且基于从交易所130接收到的填写确认来更新订单的状态的交易应用。作为另一例子,网关120可以包括聚合来自交易所130的市场数据并且将其提供给交易设备110的交易应用。在又一例子中,网关120可以包括提供风险处理、计算隐含情况(implieds)、处置订单处理、处置市场数据处理或其组合的交易应用。
例如,在一些实施例中,网关1820使用局域网、广域网、无线网络、虚拟专用网、蜂窝网络、点对点网络、T1线路、T3线路、ISDN线路、出现点、互联网、共享存储器系统和/或私有网络(诸如TradingTechnologies所提供的TTNETTM)来与交易所1830进行通信。
交易所1830可以由交易所实体来拥有、操作、控制或使用。示例交易所实体包括CME组、伦敦国际金融期货和期权交易所、洲际交易所和Eurex。交易所1830可以包括电子匹配系统(诸如,计算机、服务器或其它计算设备),其适于允许购买并且销售例如由交易所所提供的用于交易的可交易对象。例如,交易所1830可以包括分离实体,所述分离实体中的一些列出和/或管辖可交易对象,而其它则接收并且匹配订单。例如,交易所1830可以包括电子通信网络(“ECN”)。
交易所1830可以是电子交易所。交易所1830适于接收订单消息并且匹配用于购买并且销售可交易对象的对方(contra-side)交易订单。交易所1830可以对于交易列出不匹配的交易订单。一旦交易所接收到并且确认用于购买或销售可交易对象的订单,该订单就看作是工作中订单,直到其被填写或取消为止。如果订单的仅一部分数量匹配,则部分地填写的订单仍是工作中订单。例如,交易订单可以包括从交易设备1810或与交易所130进行通信的其它设备接收到的交易订单。例如,典型地,交易所1830将与还提供待匹配的交易订单的各种其它交易设备(其可以与交易设备1810相似)进行通信。
交易所1830适于提供市场数据。可以在一个或多个消息或数据分组中提供市场数据或通过共享存储器系统提供市场数据。例如,交易所1830可以发布对订阅设备(诸如交易设备1810或网关1820)的数据馈送。数据馈送可以包括市场数据。
系统1800可以包括附加组件、不同组件或更少组件。例如,系统1800可以包括多个交易设备、网关和/或交易所。在另一例子中,系统1800可以包括其它通信设备,诸如,中间件、防火墙、集线器、交换机、路由器、服务器、交易所特定的通信装备、调制解调器、安全管理器和/或加密/解密设备。
IX.扩展的示例电子交易系统
图19示出可以采用一些实施例的另一示例电子交易系统1900的框图。在该例子中,交易设备1910可以利用一个或多个通信网络,以与网关1920和交易所1930进行通信。例如,交易设备1910利用网络1902以与网关1920进行通信,并且网关1920进而利用网络1904和1906以与交易所1930进行通信。如在此所使用的,网络促进或使能各计算设备(诸如,交易设备1910、网关1920和交易所1930)之间的通信。
以下讨论一般聚焦于交易设备1910、网关1920和交易所1930。然而,交易设备1910也可以借助于网络1902(或其它相似的网络)连接到“n”个附加网关(单独地标识为网关1920a-1920n,其可以与网关1920相似)和“n”个附加交易所(单独地标识为交易所1930a-1930n,其可以与交易所1930相似)或与其进行通信。附加网络(单独地标识为网络1904a-1904n以及1906a-1906n,其可以分别与网络1904和1906相似)可以用于附加网关与交易所之间的通信。交易设备1910与附加交易所1930a-1930n中的每一个之间的通信无需与交易设备1910与交易所1930之间的通信相同。通常,每个交易所具有其自身偏好的技术和/或格式以用于与交易设备、网关、用户或另一交易所进行通信。应当理解,在网关1920a-1920n与交易所1930a-1930n之间不一定存在一对一映射。例如,特定网关可以与一个以上交易所进行通信。作为另一例子,一个以上网关可以与同一交易所进行通信。这种布置可以例如允许一个或多个交易设备1910在一个以上交易所处进行交易(和/或提供对多个交易所的冗余连接)。
可以将可能与交易设备1910相似的附加交易设备1910a-1910n连接到网关1920a-1920n和交易所1930a-1930n中的一个或多个。例如,交易设备1910a可以经由网关1920a以及网络1902a、1904a和1906a与交易所1930a进行通信。在另一例子中,交易设备1910b可以与交易所1930a进行直接通信。在另一例子中,交易设备1910c可以经由中间设备1908(诸如,代理、远程主机、WAN路由器)与网关1920n进行通信。
可能与图1的交易设备110相似的交易设备1910包括与交易终端1914进行通信的服务器1912。服务器1912可以在地理上位于比交易终端1914更靠近网关1920,以减少延时。在操作中,交易终端1914可以将交易屏幕提供给用户,并且将命令传递到服务器1912,以用于进一步处理。例如,可以基于市场数据对服务器1912部署交易算法,以用于执行。在没有来自用户的进一步输入的情况下,服务器1912可以执行交易算法。在另一例子中,服务器1912可以包括提供自动化交易工具的交易应用,并且可以通信回交易终端1914。交易设备1910可以包括附加组件、不同组件或更少组件。
在操作中,网络1902可以是多播网络,所述多播网络被配置为允许交易设备1910与网关1920进行通信。网络1902上的数据在逻辑上可以被主题(诸如例如价格、订单或填写)分离。因此,服务器1912和交易终端1914可以根据它们的个体需要来订阅并且接收数据(诸如例如与价格、订单或填写有关的数据)。
可能与图18的网关1820相似的网关1920可以包括价格服务器1922、订单服务器1924和填写服务器1926。网关1920可以包括附加组件、不同组件或更少组件。价格服务器1922可以处理价格数据。价格数据包括与一个或多个可交易对象的市场有关的数据。订单服务器1924处理订单数据。订单数据是与用户的交易订单有关的数据。例如,订单数据可以包括订单消息、确认消息或其它类型的消息。填写服务器收集并且提供填写数据。填写数据包括与交易订单的一个或多个填写有关的数据。例如,填写服务器1926可以提供已经填写或尚未填写的已经通过订单服务器1924进行路由的交易订单的记录。服务器1922、1924和1926可以运行在同一机器或分离的机器上。可以存在网关1920的价格服务器1922、订单服务器1924和/或填写服务器1926的一个以上实例。在一些实施例中,附加网关1920a-1920n可以各自包括服务器1922、1924和1926的实例(单独地标识为服务器1922a-1922n、1924a-1924n以及1926a-1926n)。
网关1920可以使用一个或多个通信网络与交易所1930进行通信。例如,如图19所示,可以存在连接网关1920和交易所1930的两个通信网络。网络1904可以用于将市场数据传递到价格服务器1922。在一些实例中,交易所1930可以在发布给订阅设备的数据馈送中包括该数据。网络1906可以用于将订单数据传递到订单服务器1924和填写服务器1926。网络1906也可以用于将订单数据从订单服务器1924传递到交易所1930。
可能与图18的交易所1830相似的交易所1930包括订单簿1932和匹配引擎1934。交易所1930可以包括附加组件、不同组件或更少组件。订单簿1932是包括与已经提交给交易所1930的不匹配的交易订单有关的数据的数据库。例如,订单簿1932可以包括与可交易对象的市场(诸如内部市场)、在各个价格级别的市场深度、最新交易价格以及最新交易数量有关的数据。匹配引擎1934可以匹配在订单簿1932中待定的对方竞价和出价。例如,匹配引擎1934可以执行匹配对方竞价和出价的一个或多个匹配算法。销售订单对于购买订单是对方。同样,购买订单对于销售订单是对方。例如,匹配算法可以将对方竞价和出价匹配在同一价格。在一些实施例中,附加交易所1930a-1930n可以各自包括订单簿和匹配引擎(单独地标识为订单簿1932a-1932n以及匹配引擎1934a-1934n,其可以分别与订单簿1932和匹配引擎1934相似)。对于跟踪与订单有关的数据并且匹配订单,不同的交易所可以使用不同的数据结构和算法。
在操作中,交易所1930可以将价格数据从订单簿1932提供给价格服务器1922,并且将订单数据和/或填写数据从匹配引擎1934提供给订单服务器1924和/或填写服务器1926。服务器1922、1924、1926可以处理该数据并且将其传递到交易设备1910。例如,交易设备1910可以使用交易应用来处理该数据。例如,可以将数据显示给用户。在另一例子中,可以在交易算法中使用该数据,以确定交易订单是否应当提交到交易所1930。交易设备1910可以准备订单消息并且将其发送到交易所1930。
在一些实施例中,网关1920是交易设备1910的部分。例如,网关1920的组件可以是与交易设备1910相同的计算平台的部分。作为另一例子,交易设备1910的组件可以执行网关1920的功能。在一些实施例中,不存在网关1920。这种布置可以在交易设备1910无需利用网关1920与交易所1930进行通信时(例如,如果交易设备1910已经适于直接与交易所1930进行通信)出现。
X.具有市场数据的特制消息传送
在此所描述的消息特制技术可以用于通过网关(例如图18的网关1820)或处置交易系统的设备与其它组件之间的通信的服务器将从交易所(例如图18的交易所1830)接收到的市场数据(例如,内部市场、市场深度、隐含情况等)提供给交易设备(例如图18的交易设备1810)。例如,订阅控制模块(例如图2和图3的订阅控制模块201)可以是用于分布式交易环境的网关1820或边缘服务器的组件。交易设备1810通过使用最新近接收到的快照作为基础并且应用在最新近接收到的增量捕捉中所包含的动作来对可交易对象的市场的当前状况进行重构。
订阅控制模块201的数据源接收器302(图3)从可交易对象的交易所1830接收或另外检索市场数据。然后数据格式器304(图3)将市场数据组织为数据级别(例如图7A和图7B的数据级别702a-702f)。数据级别包括在第一数据级别处的可交易对象的内部市场(例如,包括用于最高竞价和最低询问的数据)、在第二数据级别处的第一级别市场深度(例如,包括次高竞价和/或次低询问)等。在一些例子中,数据格式器304还将可交易对象的隐含市场组织为数据级别。
当订阅控制模块201正在生成快照(例如图11的快照1106)时,数据格式器304生成头部(例如图8A的头部802),并且将头部附接到市场深度数据级别的开始处。在一些例子中,数据格式器将隐含市场数据级别附接在市场深度数据级别之后。在一些例子中,数据格式器包括具有对应市场深度数据级别的隐含市场数据。然后将结果放置到主缓冲器(例如图3的主缓冲器306)中。在一些例子中,数据格式器生成划分表(例如图10的划分表1008),以存储在主缓冲器306或分离的存储器中。
当订阅控制模块201正在生成增量捕捉(例如图11的增量捕捉1108a)时,数据格式器304生成头部并且将头部放置到次缓冲器(例如图3的次缓冲器308)中。数据格式器将(包括最新近生成的快照的)主缓冲器306中所存储的市场深度级别与当前市场数据级别进行比较,并且生成反映差的动作(例如图8B的动作814)。在生成动作814时,将动作814添加到缓冲器。在一些例子中,在添加动作之后,数据格式器检查次缓冲器308中的消息是否大于主缓冲器306中的消息。如果次缓冲器308中的消息较大,则数据格式器304反而生成快照。在一些例子中,数据格式器304还生成用于隐含市场数据级别的动作。此外,数据格式器生成划分表1008,以存储在次缓冲器308或分离的存储器中。
图20A和图20B示出用于在市场深度的多个数据级别处提供市场数据的快照和增量捕捉的示例可特制消息。图20A示出用于在市场深度的多个数据级别处提供市场数据的示例可特制快照消息2000。可特制快照消息2000包括头部2002和市场深度数据级别2018。在一些例子中,可特制快照消息2000还包括隐含市场数据级别2020。在所示的例子中,隐含市场数据级别2020与市场深度数据级别2018交错(例如,第一市场深度,然后第一隐含市场深度、第二市场深度、然后第二隐含市场深度,等等)。这种交错允许将隐含市场数据级别2020截断为与市场深度数据级别2018相同的级别。这种交错还要求即使特定接收方不请求隐含市场数据级别2020也要用特制消息204发送隐含市场数据级别2020。可替代地,在一些例子中,隐含市场数据级别2020可以被组织在可特制快照消息2000的结束处。在该示例中,市场深度数据级别2018和隐含市场数据级别2020不是分离地可截断的。
在所示的例子中,头部2002包括大小参数2008、隐含参数2010、询问深度参数2012a、竞价深度参数2012b、隐含询问深度参数2014a和隐含竞价深度参数2014b。大小参数2008提供缓冲器(例如,主缓冲器306、次缓冲器308等)中的可特制快照消息2000的大小。在将划分表1008附接到可特制快照消息2000的结束处的一些例子中,大小参数2008可以用于确定划分表1008的开始。
在图20A所示的例子中,隐含参数2010指示隐含市场数据级别2020是否包括在可特制快照消息2000中。示例询问深度参数2012a指示可特制快照消息2000中包括询问级别2017a的市场深度数据级别2018数量。示例竞价深度参数2012b指示可特制快照消息2000中包括竞价级别2017b的市场深度数据级别2018数量。在一些例子中,询问深度参数2012a和竞价深度参数不是相等的。例如,可交易对象的市场可以是不对称的,其中竞价级别2017b比询问级别2017a更多(或反之亦然)。隐含询问深度参数2014a指示包括在可特制快照消息2000中所包括的询问级别2017a的隐含市场数据级别2020的数量。隐含竞价深度参数2014b指示包括在可特制快照消息2000中所包括的竞价级别2017b的隐含市场数据级别2020的数量。在隐含参数2010指示可特制快照消息2000中不包括隐含市场数据级别2020的一些例子中,头部2002中不包括隐含询问深度参数2014a和隐含竞价深度参数2014b。
在图20A的所示的例子中,深度数据级别2018可以包括竞价级别2017a的价格和数量(又称为大小)和/或询问级别2027a的价格和数量(又称为大小)(例如,市场深度可以不是对称的,其中可以存在比竞价更多的询问的级别,并且反之亦然)。例如,第一深度数据级别2018可以具有询问级别2017b和竞价级别2017b,而由于可交易对象的市场是不对称的,因此第二深度数据级别2018可以仅包括询问级别2017a。关于效率,在第一深度数据级别之后的深度数据级别2018可以包括价格偏移(例如,用于竞价/询问级别的价格相对于在早先深度数据级别2018中所包括的价格)(诸如询问偏移2019a和竞价偏移2019c),并且还包括数量(又称为大小)(诸如询问大小2019b和竞价大小2019d)。由于价格可以由64比特(8字节)表示,因此使用8比特(1字节)相对偏移来标识后续价格值,可以导致需要发送的数据量的减少。
在所示的例子中,示例隐含深度数据级别2020包括隐含市场的深度的价格和大小。附加地或可替代地,隐含深度数据级别2020可以包括与上面对于深度数据级别2018所讨论的相似的大小和价格偏移(例如,价格相对于在早先隐含深度数据级别2020中所包括的价格)。订阅控制模块201的消息发送器310(图3)可以建立与对特定可交易对象的市场的订阅者的接收设备(例如交易设备1810)的连接(例如,图11的第一连接1102a、图11的第二连接1102b等)。消息发送器310可以从交易设备1810接收偏好。示例偏好包括有多少市场深度的级别要接收和/或所偏好的传输速率(例如,发送增量捕捉的频度)。在一些例子中,当隐含市场数据级别2020与市场深度数据级别2018不交错时,如果接收设备206对于隐含市场的任何级别设置偏好,则接收设备206还接收市场深度的所有级别。
为了将特制快照消息(例如图2的特制消息204)发送到交易设备1810,消息发送器310使用来自主缓冲器306的可特制快照消息2000的部分。在一些例子中,消息发送器在划分表1008上查找要使用的可特制快照消息2000的部分。然后消息发送器310将特制消息204发送到交易设备1810。
在一些例子中,为了确定截断可特制快照消息2000的量以实现接收方所偏好的级别的数量,消息发送器310计算主缓冲器306的字节的数量,以发送到交易设备1810。在一些这样的例子中,根据公式(4)、公式(5)和公式(6)计算要发送的字节的数量。
BL==(MD1+ABB×n)×2(1+I),公式(4)
其中,BL是关于待发送的缓冲器中的可特制消息的以字节为单位的长度的上界,MD1是当后续市场深度数据级别利用价格偏移时第一市场深度数据级别2018与后续市场深度数据级别2018的大小之间的差的以字节为单位的大小,ABB是后续市场深度数据级别2018的以字节为单位的大小,n是市场深度的期望级别的数量,并且I是隐含参数2010(例如,0等于无隐含市场数据,1等于包括隐含市场数据)。
BR=ABB×(min(0,n-b)+min(0,n-a)+min(0,n-ib)+min(0,n-ia)公式(5)
其中,BR是由于级别中的不对称竞价/询问(如果存在的话)而减少的字节的数量,ABB是如果使用价格偏移则可以与第一市场深度数据级别2018不同的后续(即,非第一)市场深度数据级别2018的以字节为单位的大小,n是市场深度的期望级别的数量,b是竞价深度参数2012b,a是询问深度参数2012a,ib是隐含竞价深度参数2014b,并且ia是隐含询问深度参数2014a。
BS=BL-BR,公式(6)
其中,BS是可特制快照消息2000的可特制级别部分的用于发送的字节的数量。为了确定消息距承载例如包括头部2002的可特制快照消息2000的缓冲器的开始处的大小,将该头部的附加字节添加到BS,以确定用于发送的字节的总数量。然后消息发送器310将包括根据可特制快照消息2000计算出的字节的数量的特制消息204发送到交易设备1810。
图20B示出用于在市场深度的多个数据级别处提供对市场数据的更新的示例可特制增量捕捉消息2022。可特制增量捕捉消息2022包括头部2002和市场深度数据级别更新2026。在一些例子中,可特制增量捕捉消息2022还包括隐含市场深度更新数据级别2028。在所示的例子中,隐含市场深度更新数据级别2028与市场深度数据级别更新2026交错。可替代地,(例如,当在可特制快照消息2000的结束处组织隐含市场深度数据级别2020时)可以在消息的结束处用隐含市场深度更新数据级别2028来组织可特制增量捕捉消息2022。
在所示的例子中,头部2002包括大小参数2008、隐含参数2010、询问深度参数2012a、竞价深度参数2012b、隐含询问深度参数2014a和隐含竞价深度参数2014b。大小参数2008提供缓冲器(例如主缓冲器306、次缓冲器308等)中的可特制增量捕捉消息2022的大小。在将划分表1008附接到可特制增量捕捉消息2022的结束处的一些例子中,大小参数2008可以用于确定划分表1008的开始。
在图20B所示的示例中,隐含参数2010指示隐含市场数据级别更新2028是否被包括在可特制增量捕捉消息2022中。询问更新参数2023a指示在可特制增量捕捉消息2022中包括询问值2017a的市场深度数据级别更新2026的数量。竞价更新参数2023b指示在可特制增量捕捉消息2022中包括竞价值2017b的市场深度数据级别更新2026的数量。隐含询问更新参数2024a指示在可特制增量捕捉消息2022中包括询问值2017a的隐含市场数据级别更新2028的数量。隐含竞价更新参数2024b指示在可特制增量捕捉消息2022中包括竞价值2017b的隐含市场数据级别更新2028的数量。在隐含参数2010指示可特制增量捕捉消息2022中不包括隐含市场数据级别更新2028的一些例子中,在头部2002中不包括隐含询问深度参数2024a和隐含竞价深度参数2024b。
在图20B所示的例子中,当内部市场或相应市场深度的询问价格、询问大小、竞价价格和/或竞价大小自从最新快照以来已经改变时,在可特制增量捕捉消息2022中包括市场深度数据级别更新2026。例如,如果内部市场未改变,第一市场深度未改变,并且第二市场深度的竞价大小改变,则可特制增量捕捉消息2022将包括用于第二市场深度的市场深度数据级别更新2026。在一些例子中,当相应隐含市场深度的询问价格、询问大小、竞价价格和/或竞价大小自从最新快照以来已经改变时,在可特制增量捕捉消息2022中包括隐含市场数据级别更新2028。
在图20B的所示的例子中,在可特制增量捕捉消息2022中所包括的市场深度数据级别更新2026和/或隐含市场深度数据级别更新2028包括一个或多个动作2030。动作2030可以包括动作基准2032、索引2034、偏移2036、价格2038和/或大小2040。标识对交易设备1810的动作的动作基准2032用于执行以实现相应更新。索引2034标识将要对其执行动作的数据级别。偏移2036标识将要改变所指定的值的量。例如,对于修改价格动作,偏移2036标识将要调整的价格的量。价格2038标识将要设置数据级别的价格的值。大小2040标识将要设置数据级别的大小的值。在表(2)上描述示例动作基准2030。
表(2)
为了将特制增量捕捉消息(例如图2的特制消息204)发送到交易设备1810,消息发送器310使用来自次缓冲器308的可特制增量捕捉消息2022的部分。在一些例子中,消息发送器在划分表1008中查找要使用的可特制增量捕捉消息2022的部分。然后消息发送器310将特制消息204发送到交易设备1810。
在一些例子中,为了截断可特制增量捕捉消息2022,消息发送器310计算用于发送到交易设备1810的次缓冲器308的字节的数量。为了计算字节的数量,横跨市场深度数据级别更新2026和隐含市场深度数据级别更新2028,以确定次缓冲器308中所计算的位置。对于具有达到由接收设备206的偏好所设置的深度限制(N)的索引2034的动作2030,对具有“删除”动作(D)的动作基准2032的数量进行计数,并且对具有添加动作(例如,“添加”、“添加顶部”、“添加相对”)(A)的动作基准2932的数量进行计数。次缓冲器308中的动作2030被横跨达到与N+D-A索引对应的最新动作2030的结束处。该位置是计算的位置。然后消息发送器310将包括从可特制增量捕捉消息2022计算出的位置所指示的字节的数量的特制消息204发送到交易设备1810。
一些所描述的附图描述了表示可以用于实现所有或部分一些实施例的方法的示例框图、系统和/或流程图。例如,示例框图、系统和/或流程图的组件、元素和/或功能中的一个或多个可以在硬件、固件、分立式逻辑中单独地或组合地实现为有形计算机可读介质上所存储的计算机可读指令集合和/或其任何组合。
例如,可以使用专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程逻辑器件(FPLD)、分立式逻辑、硬件和/或固件的任何组合来实现示例框图、系统和/或流程图。此外,例如,可以手动地或结合前述技术来实现一些或所有示例方法。
例如,可以使用一个或多个处理器、控制器和/或其它处理设备来执行示例框图、系统和/或流程图。例如,可以使用有形计算机可读介质上所存储的编码指令(例如计算机可读指令)来实现示例。有形计算机可读介质可以包括各种类型的易失性存储介质和非易失性存储介质,包括例如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)、闪存、硬盘驱动器、光学介质、磁带、文件服务器、任何其它有形数据存储设备或其任何组合。有形计算机可读介质是非瞬时的。
此外,虽然以上参照附图描述了示例框图、系统和/或流程图,但可以采用其它实现方式。例如,可以改变组件、元素、块和/或功能的执行顺序,和/或可以改变、消除、再分割(sub-divided)或组合组件、元素、块和/或功能中的一些。此外,可以通过例如分离的处理线程、处理器设备、分立式逻辑和/或电路来依次和/或并行执行任何或所有组件、元素、块和/或功能。
虽然已经公开了实施例,但可以进行各种改变并且可以替换等同物。此外,可以进行很多修改,以适配特定情况或材料。因此,意图所公开的技术不限于所公开的一些实施例,而将包括落入所附权利要求的范围内的所有实施例。

Claims (77)

1.一种方法,包括:
由计算设备生成表示数据源在第一时间的状态的第一快照消息;
由计算设备将第一快照消息发送到第一接收方;
由计算设备生成表示数据源在第二时间的状态与数据源在第一时间的状态之差的第一增量捕捉消息;以及
由计算设备将第一增量捕捉消息发送到第一接收方。
2.如权利要求1所述的方法,还包括:
由计算设备生成表示数据源在第三时间的状态与数据源在第一时间的状态之差的第二增量捕捉消息;以及
由计算设备将第二增量捕捉消息发送到第一接收方。
3.如权利要求1所述的方法,其中,第一增量捕捉包括一个或多个动作,所述一个或多个动作命令第一接收方修改第一快照消息以反映数据源在第二时间的状态。
4.如权利要求1所述的方法,其中,将第一快照消息组织成多个数据级别,每个数据级别指定从数据源提供的数据的细节的级别。
5.如权利要求4所述的方法,其中,以兴趣的降序来组织多个数据级别。
6.如权利要求4所述的方法,其中,将第一增量捕捉组织成多个数据级别,第一增量捕捉包括用于各个数据级别中的每一个数据级别的一个或多个动作,所述动作命令第一接收方修改各个数据级别以反映数据源在第二时间的状态。
7.如权利要求1所述的方法,还包括:
在将第一增量捕捉消息发送到第一接收方之前,由计算机设备确定第二时间与第三时间之间的差是否大于由第一接收方所指定的更新间隔;以及
如果第一时间与第二时间之间的差大于更新速率,则由计算设备将第一增量捕捉消息发送到第一接收方。
8.如权利要求1所述的方法,其中,数据源是可交易对象的市场,并且第一接收方是第一电子交易设备。
9.一种包括指令的有形计算机可读介质,当所述指令被运行时使得机器至少:
生成表示数据源在第一时间的状态的第一快照消息;
将第一快照消息发送到第一接收方;
生成表示数据源在第二时间的状态与数据源在第一时间的状态之差的第一增量捕捉消息;以及
将第一增量捕捉消息发送到第一接收方。
10.如权利要求9所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
生成表示数据源在第三时间的状态与数据源在第一时间的状态之差的第二增量捕捉消息;以及
将第二增量捕捉消息发送到第一接收方。
11.如权利要求9所述的有形计算机可读介质,其中,第一增量捕捉包括一个或多个动作,所述一个或多个动作命令第一接收方修改第一快照消息以反映数据源在第二时间的状态。
12.如权利要求9所述的有形计算机可读介质,其中,将第一快照消息组织成多个数据级别,每个数据级别指定来自数据源的数据的细节的级别。
13.如权利要求12所述的有形计算机可读介质,其中,以兴趣的降序来组织多个数据级别。
14.如权利要求12所述的有形计算机可读介质,其中,将第一增量捕捉组织成多个数据级别,第一增量捕捉包括用于各个数据级别中的每一个数据级别的一个或多个动作,所述动作命令第一接收方修改各个数据级别以反映数据源在第二时间的状态。
15.如权利要求9所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
在将第一增量捕捉消息发送到第一接收方之前,确定第二时间与第三时间之间的差是否大于由第一接收方所指定的更新间隔;以及
如果第一时间与第二时间之间的差大于更新速率,则将第一增量捕捉消息发送到第一接收方。
16.如权利要求9所述的有形计算机可读介质,其中,数据源是可交易对象的市场,并且第一接收方是第一交易设备。
17.一种系统,包括:
数据格式器,用于:
生成表示数据源在第一时间的状态的第一快照消息,以及
生成表示数据源在第二时间的状态与数据源在第一时间的状态之差的第一增量捕捉消息;以及
消息发送器,用于:
将第一快照消息发送到第一接收方,以及
将第一增量捕捉消息发送到第一接收方。
18.如权利要求17所述的系统,进一步地其中,数据格式器生成表示数据源在第三时间的状态与数据源在第一时间的状态之差的第二增量捕捉消息,并且消息发送器将第二增量捕捉消息发送到第一接收方。
19.如权利要求17所述的系统,其中,第一增量捕捉包括一个或多个动作,所述一个或多个动作命令第一接收方修改第一快照消息以反映数据源在第二时间的状态。
20.如权利要求17所述的系统,其中,将第一快照消息组织成多个数据级别,每个数据级别指定来自数据源的数据的细节的级别。
21.如权利要求20所述的系统,其中,以兴趣的降序来组织多个数据级别。
22.如权利要求20所述的系统,其中,将第一增量捕捉组织成多个数据级别,第一增量捕捉包括用于各个数据级别中的每一个数据级别的一个或多个动作,所述动作命令第一接收方修改各个数据级别以反映数据源在第二时间的状态。
23.如权利要求17所述的系统,其中,消息发送器在将第一增量捕捉消息发送到第一接收方之前,确定第二时间与第三时间之间的差是否大于由第一接收方所指定的更新间隔,并且如果第一时间与第二时间之间的差大于更新速率,则将第一增量捕捉消息发送到第一接收方。
24.如权利要求17所述的系统,其中,数据源是可交易对象的市场,并且第一接收方是第一交易设备。
25.一种方法,包括:
由计算设备生成表示数据源在第一时间的状态的第一快照消息;
由计算设备将第一快照消息发送到第一接收方;
由计算设备将第一快照消息发送到第二接收方;
由计算设备生成表示数据源在第二时间的状态与数据源在第一时间的状态之差的第一增量捕捉消息;
由计算设备将第一增量捕捉消息发送到第一接收方;
由计算设备生成表示数据源在第三时间的状态与数据源在第一时间的状态之差的第二增量捕捉消息;
由计算设备将第二增量捕捉消息发送到第一接收方;以及
由计算设备将第二增量捕捉消息发送到第二接收方。
26.如权利要求25所述的方法,其中,将第一快照消息发送到第一接收方还包括:根据由第一接收方所指定的第一偏好来特制第一快照消息,并且将第一增量捕捉消息发送到第一接收方还包括:根据第一偏好来特制第一增量捕捉消息。
27.如权利要求25所述的方法,其中,生成第一快照消息还包括:将数据源在第一时间的状态组织成多个第一数据级别,每个数据级别指定来自数据源的数据的细节的级别。
28.如权利要求27所述的方法,生成第一增量捕捉消息还包括:
将数据源在第二时间的状态组织成多个第二数据级别;
确定第一数据级别与第二数据级别之间的差;以及
生成将要被包括在第一增量捕捉消息中的一个或多个动作,所述动作基于第一数据级别与第二数据级别之间的差。
29.如权利要求28所述的方法,其中,所述动作命令第一接收方修改一个或多个第一数据级别,以反映数据源在第二时间的状态。
30.如权利要求28所述的方法,其中,从包括以下的组中选择所述动作:添加动作、添加顶部动作、添加相对动作、修改值动作、修改所有动作、删除动作以及无改变动作。
31.一种包括指令的有形计算机可读介质,当所述指令被运行时使得机器至少:
生成表示数据源在第一时间的状态的第一快照消息;
将第一快照消息发送到第一接收方;
将第一快照消息发送到第二接收方;
生成表示数据源在第二时间的状态与数据源在第一时间的状态之差的第一增量捕捉消息;
将第一增量捕捉消息发送到第一接收方;
生成表示数据源在第三时间的状态与数据源在第一时间的状态之差的第二增量捕捉消息;
将第二增量捕捉消息发送到第一接收方;以及
将第二增量捕捉消息发送到第二接收方。
32.如权利要求31所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
根据由第一接收方所指定的第一偏好,特制第一快照消息;以及
根据第一偏好,特制第一增量捕捉消息。
33.如权利要求31所述的有形计算机可读介质,其中,为了生成第一快照消息,所述指令进一步使得机器至少将数据源在第一时间的状态组织成多个第一数据级别,每个数据级别指定来自数据源的数据的细节的级别。
34.如权利要求33所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
将数据源在第二时间的状态组织成多个第二数据级别;
确定第一数据级别与第二数据级别之间的差;以及
生成将要被包括在第一增量捕捉消息中的一个或多个动作,所述动作基于第一数据级别与第二数据级别之间的差。
35.如权利要求34所述的有形计算机可读介质,其中,所述动作命令第一接收方修改一个或多个第一数据级别,以反映数据源在第二时间的状态。
36.如权利要求34所述的有形计算机可读介质,其中,从包括以下的组中选择所述动作:添加动作、添加顶部动作、添加相对动作、修改值动作、修改所有动作、删除动作以及无改变动作。
37.一种方法,包括:
由计算设备将快照消息生成到第一缓冲器中;
由计算设备将第一快照消息从第一缓冲器发送到第一接收方;以及
由计算设备将第二快照消息从第一缓冲器发送到第二接收方;
由计算机设备将增量捕捉消息生成到第二缓冲器中;
由计算设备将第一增量捕捉消息从第二缓冲器发送到第一接收方;以及
由计算设备将第二增量捕捉消息从第二缓冲器发送到第二接收方。
38.如权利要求37所述的方法,其中,生成快照消息还包括:将快照消息组织成第一数据级别和第二数据级别。
39.如权利要求38所述的方法,其中,第一数据级别表示比第二数据级别所表示的数据更频繁地受请求的来自数据源的数据。
40.如权利要求38所述的方法,其中,第一快照消息包括第一数据级别,并且第二快照消息包括第一数据级别和第二数据级别。
41.如权利要求37所述的方法,其中,第二增量捕捉消息是第二缓冲器中的增量捕捉消息的第一部分,并且第二增量捕捉消息是第二缓冲器中的增量捕捉消息的第二部分。
42.如权利要求37所述的方法,还包括:在快照消息之后将第一划分表生成到第一缓冲器中,所述第一划分表指示快照消息的第一可划分位置和快照消息的第二可划分位置。
43.如权利要求42所述的方法,其中,第一快照消息包括达到第一可划分位置的快照消息,并且第二快照消息包括达到第二可划分位置的快照消息。
44.一种包括指令的有形计算机可读介质,当所述指令被运行时使得机器至少:
将快照消息生成到第一缓冲器中;
将第一快照消息从第一缓冲器发送到第一接收方;以及
将第二快照消息从第一缓冲器发送到第二接收方;
将增量捕捉消息生成到第二缓冲器中;
将第一增量捕捉消息从第二缓冲器发送到第一接收方;以及
将第二增量捕捉消息从第二缓冲器发送到第二接收方。
45.如权利要求44所述的有形计算机可读介质,其中,为了生成快照消息,所述指令进一步使得机器将快照消息组织成第一数据级别和第二数据级别。
46.如权利要求45所述的有形计算机可读介质,其中,第一数据级别表示比第二数据级别所表示的数据更频繁地受请求的来自数据源的数据。
47.如权利要求45所述的有形计算机可读介质,其中,第一快照消息包括第一数据级别,并且第二快照消息包括第一数据级别和第二数据级别。
48.如权利要求44所述的有形计算机可读介质,其中,第二增量捕捉消息是第二缓冲器中的增量捕捉消息的第一部分,并且第二增量捕捉消息是第二缓冲器中的增量捕捉消息的第二部分。
49.如权利要求44所述的有形计算机可读介质,所述指令进一步使得机器至少在快照消息之后将第一划分表生成到第一缓冲器中,所述第一划分表指示快照消息的第一可划分位置和快照消息的第二可划分位置。
50.如权利要求49所述的方法,其中,第一快照消息包括达到第一可划分位置的快照消息,并且第二快照消息包括达到第二可划分位置的快照消息。
51.一种方法,包括:
由计算设备生成表示在第一时间所捕获的第一数据集合的第一快照;
由计算设备将第一快照的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一快照的第一版本;
由计算设备生成表示第一数据集合与第二数据集合之间的差的第一增量捕捉,第二数据集合表示在第一时间之后的第二时间处生成的数据;以及
由计算设备将第一增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一增量捕捉的第一版本。
52.如权利要求51所述的方法,还包括:
由计算设备生成表示第一数据集合与第三数据集合之间的差的第二增量捕捉,第三数据集合表示在第一时间和第二时间之后的第三时间处生成的数据;以及
由计算设备将第二增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第二增量捕捉的第一版本。
53.如权利要求51所述的方法,其中,第一数据集合表示在第一时间从电子交易所处接收到的第一市场更新,并且第二数据集合表示在第二时间从电子交易所处接收到的第二市场更新,第一市场更新和第二市场更新与可交易对象相关。
54.如权利要求51所述的方法,还包括:
由计算设备将第一快照的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一快照的第二版本;以及
由计算设备将第一增量捕捉的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一增量捕捉的第二版本。
55.如权利要求51所述的方法,其中,生成表示第一数据集合的第一快照还包括:将第一数据集合分割为表示第一快照的可划分部分的多个数据级别。
56.如权利要求55所述的方法,其中,以兴趣的级别布置多个数据级别。
57.如权利要求55所述的方法,其中,通过发送由第一订阅设备的第一偏好所定义的第一快照的第一数据集合的一个或多个片段来特制第一快照。
58.一种包括指令的有形计算机可读介质,当所述指令被运行时使得机器至少:
生成表示在第一时间所捕获的第一数据集合的第一快照;
将第一快照的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一快照的第一版本;
生成表示第一数据集合与第二数据集合之间的差的第一增量捕捉,第二数据集合表示在第一时间之后的第二时间处生成的数据;以及
将第一增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一增量捕捉的第一版本。
59.如权利要求58所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
生成表示第一数据集合与第三数据集合之间的差的第二增量捕捉,第三数据集合表示在第一时间和第二时间之后的第三时间处生成的数据;以及
将第二增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第二增量捕捉的第一版本。
60.如权利要求58所述的有形计算机可读介质,其中,第一数据集合表示在第一时间从电子交易所处接收到的第一市场更新,并且第二数据集合表示在第二时间从电子交易所处接收到的第二市场更新,第一市场更新和第二市场更新与可交易对象相关。
61.如权利要求58所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
将第一快照的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一快照的第二版本;以及
将第一增量捕捉的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一增量捕捉的第二版本。
62.如权利要求58所述的有形计算机可读介质,其中,生成表示第一数据集合的第一快照,所述指令进一步使得机器将第一数据集合分割为表示第一快照的可划分部分的多个数据级别。
63.如权利要求62所述的有形计算机可读介质,其中,以兴趣的级别布置多个数据级别。
64.如权利要求62所述的有形计算机可读介质,其中,通过发送由第一订阅设备的第一偏好所定义的第一快照的第一数据集合的一个或多个片段来特制第一快照。
65.一种方法,包括:
由计算设备生成表示数据集在第一时间的第一状态的第一快照;
将第一快照发送到第一订阅设备和第二订阅设备;
生成多个增量捕捉,所述多个增量捕捉中的每一个表示数据集在第一时间的第一状态与数据集在第一时间之后的一时间处的后续状态之间的差;
将多个增量捕捉的第一部分发送到与第一归并速率对应的第一订阅设备;以及
将多个增量捕捉的第二部分发送到与第二归并速率对应的第二订阅设备。
66.如权利要求65所述的方法,其中,第一归并速率与第二归并速率不同。
67.如权利要求65所述的方法,还包括:
在将多个增量捕捉的第一部分发送到第一订阅设备之前,根据由第一订阅设备所定义的第一偏好,特制多个增量捕捉的第一部分;以及
在将多个增量捕捉的第二部分发送到第二订阅设备之前,根据由第二订阅设备所定义的第二偏好,特制多个增量捕捉的第二部分。
68.如权利要求67所述的方法,其中,第一偏好与第二偏好不同。
69.如权利要求67所述的方法,其中特制多个增量捕捉的第一部分还包括:根据第一订阅设备的第一偏好来截断多个增量捕捉的第一部分,并且其中特制多个增量捕捉的第二部分还包括:根据第二订阅设备的第二偏好来截断多个增量捕捉的第二部分。
70.如权利要求65所述的方法,还包括:
当检测到对第三订阅设备的连接时,将第一快照的第三部分发送到第三订阅设备;以及
将多个增量捕捉中最新近的一个增量捕捉的第三部分发送到第三订阅设备。
71.一种包括指令的有形计算机可读介质,当所述指令被运行时使得机器至少:
生成表示在第一时间所捕获的第一数据集合的第一快照;
将第一快照的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一快照的第一版本;
生成表示第一数据集合与第二数据集合之间的差的第一增量捕捉,第二数据集合表示在第一时间之后的第二时间处生成的数据;以及
将第一增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第一增量捕捉的第一版本。
72.如权利要求71所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
生成表示第一数据集合与第三数据集合之间的差的第二增量捕捉,第三数据集合表示在第一时间和第二时间之后的第三时间处生成的数据;以及
将第二增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第二增量捕捉的第一版本。
73.如权利要求71所述的有形计算机可读介质,其中,第一数据集合表示在第一时间从电子交易所处接收到的第一市场更新,并且第二数据集合表示在第二时间从电子交易所处接收到的第二市场更新,第一市场更新和第二市场更新与可交易对象相关。
74.如权利要求71所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
将第一快照的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一快照的第二版本;以及
将第一增量捕捉的第二版本发送到第二订阅设备,根据第二订阅设备的第二偏好来特制第一增量捕捉的第二版本。
75.如权利要求71所述的有形计算机可读介质,其中,生成表示第一数据集合的第一快照还包括:将第一数据集合分割为表示第一数据集合的可划分部分的多个数据级别。
76.如权利要求75所述的有形计算机可读介质,其中,通过发送由第一订阅设备的第一偏好所定义的第一快照的第一数据集合的一个或多个片段来特制第一快照。
77.如权利要求71所述的有形计算机可读介质,其中,所述指令进一步使得机器至少:
生成表示第一数据集合与第三数据集合之间的差的第二增量捕捉,第三数据集合表示在第一时间和第二时间之后的第三时间处生成的数据;
确定第三时间与第二时间之间的差是否满足第一订阅设备的第一归并速率;以及
如果第三时间与第二时间之间的差满足第一归并速率,则将第二增量捕捉的第一版本发送到第一订阅设备,根据第一订阅设备的第一偏好来特制第二增量捕捉的第一版本。
CN201480046050.1A 2013-07-12 2014-07-14 特制的消息传送 Active CN105474250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010241586.6A CN111581551A (zh) 2013-07-12 2014-07-14 特制的消息传送

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361845613P 2013-07-12 2013-07-12
US61/845,613 2013-07-12
US201462022736P 2014-07-10 2014-07-10
US62/022,736 2014-07-10
US14/329,602 US10664548B2 (en) 2013-07-12 2014-07-11 Tailored messaging
US14/329,602 2014-07-11
PCT/US2014/046486 WO2015006759A2 (en) 2013-07-12 2014-07-14 Tailored messaging

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010241586.6A Division CN111581551A (zh) 2013-07-12 2014-07-14 特制的消息传送

Publications (2)

Publication Number Publication Date
CN105474250A true CN105474250A (zh) 2016-04-06
CN105474250B CN105474250B (zh) 2020-04-24

Family

ID=52278022

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010241586.6A Pending CN111581551A (zh) 2013-07-12 2014-07-14 特制的消息传送
CN201480046050.1A Active CN105474250B (zh) 2013-07-12 2014-07-14 特制的消息传送

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010241586.6A Pending CN111581551A (zh) 2013-07-12 2014-07-14 特制的消息传送

Country Status (12)

Country Link
US (5) US10664548B2 (zh)
EP (3) EP4273780A3 (zh)
JP (5) JP6450754B2 (zh)
KR (4) KR20230009518A (zh)
CN (2) CN111581551A (zh)
AU (4) AU2014286944B2 (zh)
CA (2) CA2916526C (zh)
HK (2) HK1222735A1 (zh)
IL (1) IL243359A0 (zh)
MX (3) MX365172B (zh)
SG (2) SG11201600229WA (zh)
WO (1) WO2015006759A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079974A (zh) * 2019-11-13 2020-04-28 联想(北京)有限公司 一种信息处理方法、电子设备和计算机存储介质
CN113155260A (zh) * 2021-04-17 2021-07-23 福州夸克科技有限公司 一种远程修改电子秤价格的方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US10298658B2 (en) * 2015-10-26 2019-05-21 Airbnb, Inc. Beam device architecture
US10505802B2 (en) * 2015-11-02 2019-12-10 Cisco Technology, Inc. Adaptive subscriber-driven resource allocation for push-based monitoring
AU2017204208A1 (en) 2016-06-24 2018-01-18 Refinitiv Us Organization Llc Informational incentives for submitting maker orders
US10771570B2 (en) * 2018-10-15 2020-09-08 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
US11641330B2 (en) 2020-08-06 2023-05-02 International Business Machines Corporation Communication content tailoring
US11729240B2 (en) * 2021-06-09 2023-08-15 Bgc Partners, L.P. Fanout processor

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1756108A (zh) * 2004-09-29 2006-04-05 华为技术有限公司 主备系统数据同步方法
CN101650677A (zh) * 2009-07-27 2010-02-17 浪潮电子信息产业股份有限公司 一种基于Delta增量的文件数据备份方法
CN101675448A (zh) * 2007-05-10 2010-03-17 贸易技术国际公司 用于提供可交易对象的电子价格馈送的系统和方法
CN102043859A (zh) * 2010-12-27 2011-05-04 用友软件股份有限公司 数据更新方法及装置
CN102510340A (zh) * 2011-10-11 2012-06-20 浪潮电子信息产业股份有限公司 利用普通Internet网络实现异地快速备份的方法
US20120203687A1 (en) * 2004-12-28 2012-08-09 Trading Technologies International, Inc. System and method for providing market updates in an electronic trading environment
US8332354B1 (en) * 2008-12-15 2012-12-11 American Megatrends, Inc. Asynchronous replication by tracking recovery point objective

Family Cites Families (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3253263A (en) 1961-04-10 1966-05-24 Ibm Code to voice inquiry system and twospeed multi-unit buffer mechanism
US3962685A (en) 1974-06-03 1976-06-08 General Electric Company Data processing system having pyramidal hierarchy control flow
US4412287A (en) 1975-05-29 1983-10-25 Braddock Iii Walter D Automated stock exchange
US4903201A (en) 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
US4980826A (en) 1983-11-03 1990-12-25 World Energy Exchange Corporation Voice actuated automated futures trading exchange
JPS6139186A (ja) 1984-07-31 1986-02-25 株式会社日立製作所 自動取引装置
US4677552A (en) 1984-10-05 1987-06-30 Sibley Jr H C International commodity trade exchange
US4868866A (en) 1984-12-28 1989-09-19 Mcgraw-Hill Inc. Broadcast data distribution system
GB8528891D0 (en) 1985-11-23 1986-01-02 Int Computers Ltd Data transmission system
US4995056A (en) 1989-01-13 1991-02-19 International Business Machines Corporation System and method for data communications
US5077665A (en) 1989-05-25 1991-12-31 Reuters Limited Distributed matching system
US5136501A (en) 1989-05-26 1992-08-04 Reuters Limited Anonymous matching system
US5339392A (en) 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5297031A (en) 1990-03-06 1994-03-22 Chicago Board Of Trade Method and apparatus for order management by market brokers
GB9027249D0 (en) 1990-12-17 1991-02-06 Reuters Ltd Offer matching system
US5297032A (en) 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
JP3260923B2 (ja) 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
US5604866A (en) 1993-09-30 1997-02-18 Silicon Graphics, Inc. Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver
JP2693907B2 (ja) 1993-12-27 1997-12-24 日本電気株式会社 スタティック・ルーティング方式
US5515359A (en) 1994-08-26 1996-05-07 Mitsubishi Electric Research Laboratories, Inc. Credit enhanced proportional rate control system
US5790642A (en) 1995-04-28 1998-08-04 Dialogic Corporation Competitively bidding service centers
US5826244A (en) 1995-08-23 1998-10-20 Xerox Corporation Method and system for providing a document service over a computer network using an automated brokered auction
JP3417741B2 (ja) 1995-10-06 2003-06-16 富士通株式会社 取引制御システム
JP3329390B2 (ja) 1996-03-07 2002-09-30 日本電信電話株式会社 高速一括ファイル転送方法及び装置
US5924083A (en) 1996-05-29 1999-07-13 Geneva Branch Of Reuters Transaction Services Limited Distributed matching system for displaying a book of credit filtered bids and offers
US5802310A (en) 1996-05-30 1998-09-01 International Business Machines Corporation Systems and methods for data channel queue control in a communications network
US5916307A (en) 1996-06-05 1999-06-29 New Era Of Networks, Inc. Method and structure for balanced queue communication between nodes in a distributed computing application
US6039245A (en) 1996-06-10 2000-03-21 Diebold, Incorporated Financial transaction processing system and method
US5911137A (en) 1996-07-15 1999-06-08 Motorola, Inc. Method and apparatus for sharing a communication system
US5995980A (en) 1996-07-23 1999-11-30 Olson; Jack E. System and method for database update replication
US5905868A (en) 1997-07-22 1999-05-18 Ncr Corporation Client/server distribution of performance monitoring data
US6574234B1 (en) 1997-09-05 2003-06-03 Amx Corporation Method and apparatus for controlling network devices
US6006206A (en) 1997-09-08 1999-12-21 Reuters Limited Data health monitor for financial information communications networks
US6317727B1 (en) 1997-10-14 2001-11-13 Blackbird Holdings, Inc. Systems, methods and computer program products for monitoring credit risks in electronic trading systems
US6058389A (en) 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US6370569B1 (en) 1997-11-14 2002-04-09 National Instruments Corporation Data socket system and method for accessing data sources using URLs
ID28134A (id) 1997-11-26 2001-05-03 Taylor Trust As Sistem dan metode untuk melaksanakan lelang pada jaringan komputer
US6144669A (en) 1997-12-12 2000-11-07 Newbridge Networks Corporation Prioritized PVC management queues for improved frame processing capabilities
US6269399B1 (en) 1997-12-19 2001-07-31 Qwest Communications International Inc. Gateway system and associated method
US6097399A (en) 1998-01-16 2000-08-01 Honeywell Inc. Display of visual data utilizing data aggregation
US6192029B1 (en) 1998-01-29 2001-02-20 Motorola, Inc. Method and apparatus for performing flow control in a wireless communications system
US6311144B1 (en) 1998-05-13 2001-10-30 Nabil A. Abu El Ata Method and apparatus for designing and analyzing information systems using multi-layer mathematical models
US6343278B1 (en) 1998-09-04 2002-01-29 Ebs Dealing Resources, Inc. Combined order limit for a group of related transactions in an automated dealing system
US6389016B1 (en) 1998-10-14 2002-05-14 Nortel Networks Limited Data communication system and method for transporting data
US6167445A (en) 1998-10-26 2000-12-26 Cisco Technology, Inc. Method and apparatus for defining and implementing high-level quality of service policies in computer networks
US6513019B2 (en) 1999-02-16 2003-01-28 Financial Technologies International, Inc. Financial consolidation and communication platform
US7617144B2 (en) 1999-03-19 2009-11-10 Primex Holdings Llc Auction market with price improvement mechanism
US6278982B1 (en) 1999-04-21 2001-08-21 Lava Trading Inc. Securities trading system for consolidation of trading on multiple ECNS and electronic exchanges
US20030004859A1 (en) 1999-05-11 2003-01-02 Shaw John C. Method and system for facilitating secure transactions
US6606607B1 (en) 1999-06-17 2003-08-12 Mcj Ventures, Inc. Individualized, real-time, interactive e-commerce auction
US6553035B1 (en) 1999-06-22 2003-04-22 Pluris, Inc. Apparatus and method for queuing data
US6338047B1 (en) 1999-06-24 2002-01-08 Foliofn, Inc. Method and system for investing in a group of investments that are selected based on the aggregated, individual preference of plural investors
US7082410B1 (en) 1999-07-02 2006-07-25 The Nasdaq Stock Market, Inc. Line handler
US6675153B1 (en) 1999-07-06 2004-01-06 Zix Corporation Transaction authorization system
WO2001010090A1 (en) 1999-07-28 2001-02-08 Tomkow Terrance A System and method for verifying delivery and integrity of electronic messages
US6516339B1 (en) 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
US7099839B2 (en) 1999-09-08 2006-08-29 Primex Holdings, Llc Opening price process for trading system
US7107240B1 (en) 1999-10-06 2006-09-12 Goldman Sachs & Co. Order centric tracking system and protocol for communications with handheld trading units
US7356498B2 (en) 1999-12-30 2008-04-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
US7110975B2 (en) 2000-01-27 2006-09-19 Marks De Chabris Gloriana Order matching system
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6983317B1 (en) 2000-02-28 2006-01-03 Microsoft Corporation Enterprise management system
US7318045B2 (en) 2000-02-29 2008-01-08 Accenture Llp Event-driven trade link between trading and clearing systems
US7127424B2 (en) 2000-03-02 2006-10-24 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth and price consolidation
US6772132B1 (en) 2000-03-02 2004-08-03 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth
US7389268B1 (en) 2000-03-02 2008-06-17 Trading Technologies International, Inc. Trading tools for electronic trading
US6408000B1 (en) 2000-03-24 2002-06-18 Securities Industry Automation Corporation Multicast data distribution system
US6904593B1 (en) 2000-03-24 2005-06-07 Hewlett-Packard Development Company, L.P. Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environment
AU2001249566A1 (en) 2000-03-28 2001-10-08 @Themoment, Inc. Universal method and system for conducting exchanges over a network
WO2001077957A1 (en) 2000-04-07 2001-10-18 Pershing Rules based securities order processing
US7539638B1 (en) 2000-04-10 2009-05-26 Stikine Technology, Llc Representation of order in multiple markets
US7398244B1 (en) 2000-04-10 2008-07-08 Stikine Technology, Llc Automated order book with crowd price improvement
US8249975B1 (en) 2000-04-10 2012-08-21 Stikine Technology, Llc Automated first look at market events
US8799138B2 (en) 2000-04-10 2014-08-05 Stikine Technology, Llc Routing control for orders eligible for multiple markets
WO2001078422A1 (en) 2000-04-11 2001-10-18 Telecommunication Systems, Inc. Intelligent delivery agent for short message distribution center
US7212997B1 (en) 2000-06-09 2007-05-01 Ari Pine System and method for analyzing financial market data
US7797207B1 (en) 2000-07-24 2010-09-14 Cashedge, Inc. Method and apparatus for analyzing financial data
US7130824B1 (en) 2000-08-21 2006-10-31 Etp Holdings, Inc. Apparatus and method for load balancing among data communications ports in automated securities trading systems
AU2001286606A1 (en) 2000-08-22 2002-03-04 Goldman Sachs And Co. Foreign exchange trading system
EP1330721A4 (en) 2000-08-24 2009-08-19 2Wire Inc SYSTEM AND METHOD FOR SELECTIVELY BRIDGING AND ROUTING DATA PACKAGES BETWEEN MULTIPLE NETWORKS
WO2002033856A1 (en) 2000-10-20 2002-04-25 Samsung Electronics Co., Ltd Apparatus and method for determining a data rate of packet data in a mobile communication system
WO2002041624A2 (en) 2000-11-06 2002-05-23 Terry Bernard Young Electronic markets business interchange system and metheo
US6993507B2 (en) 2000-12-14 2006-01-31 Pacific Payment Systems, Inc. Bar coded bill payment system and method
US20020120546A1 (en) 2000-12-18 2002-08-29 Paul Zajac Mutli-interface financial transaction system and method
US7406443B1 (en) 2000-12-18 2008-07-29 Powerloom Method and system for multi-dimensional trading
AU2002239859A1 (en) 2001-01-12 2002-07-24 Verticalcrossings.Com, Inc. Anonymous auctioning of structured financial products over a computer network
JP4531280B2 (ja) 2001-03-21 2010-08-25 株式会社 キューズ・クリエイティブ プッシュ型情報配信方法、プッシュ型情報配信用プログラム、及びプッシュ型情報配信装置、記憶媒体
US7213071B2 (en) 2001-04-03 2007-05-01 International Business Machines Corporation Quality of service improvements for network transactions
US20020184237A1 (en) 2001-04-03 2002-12-05 Mcfeely Brooks B. Methods and apparatus for compiling, processing and disseminating equity transaction data
US6782496B2 (en) 2001-04-13 2004-08-24 Hewlett-Packard Development Company, L.P. Adaptive heartbeats
US7111023B2 (en) 2001-05-24 2006-09-19 Oracle International Corporation Synchronous change data capture in a relational database
US6973623B2 (en) 2001-06-14 2005-12-06 International Business Machines Corporation System and method for client refresh mode selection
CA2403300A1 (en) 2002-09-12 2004-03-12 Pranil Ram A method of buying or selling items and a user interface to facilitate the same
US7664695B2 (en) 2001-07-24 2010-02-16 Stephen Cutler Securities market and market maker activity tracking system and method
US20020138399A1 (en) 2001-08-07 2002-09-26 Hayes Philip J. Method and system for creating and using a peer-to-peer trading network
US7562044B1 (en) 2001-08-31 2009-07-14 I2 Technologies Us, Inc. System and method for dynamic pricing in an unbalanced market
US7287249B2 (en) * 2001-09-28 2007-10-23 Siebel Systems, Inc. Method and system for tracking and exchanging incremental changes to hierarchical objects
US20030083977A1 (en) 2001-10-26 2003-05-01 Majid Syed System and method for providing electronic bulk buying
US7305483B2 (en) 2002-04-25 2007-12-04 Yahoo! Inc. Method for the real-time distribution of streaming data on a network
US20030225674A1 (en) 2002-06-05 2003-12-04 Hughes John T. Order chronicle process and method
US8090640B2 (en) 2002-06-05 2012-01-03 The Nasdaq Omx Group, Inc. Order delivery in a securities market
US7685049B1 (en) 2002-06-26 2010-03-23 Trading Technologies International Inc. System and method for coalescing market data at a client device
US7552077B1 (en) 2002-06-26 2009-06-23 Trading Technologies International, Inc. System and method for coalescing market data at a network device
US7124110B1 (en) 2002-07-15 2006-10-17 Trading Technologies International Inc. Method and apparatus for message flow and transaction queue management
US20040019554A1 (en) 2002-07-26 2004-01-29 Merold Michael S. Automated trading system
US7945846B2 (en) * 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7366691B1 (en) 2002-09-25 2008-04-29 Trading Technologies International Inc. Method and interface for presenting last traded quantity information
US7835972B2 (en) 2003-01-29 2010-11-16 Td Ameritrade Ip Company, Inc. Quote and order entry interface
US7783546B2 (en) 2003-01-30 2010-08-24 Goldman Sachs & Co. Automated financial instrument exchange apparatus and systems
US7558754B1 (en) 2003-02-28 2009-07-07 Trading Technologies International, Inc. System and method for processing and displaying quantity information during user-configurable time periods
US7904370B2 (en) 2003-03-31 2011-03-08 Trading Technologies International, Inc. System and method for variably regulating order entry in an electronic trading system
US20050021836A1 (en) 2003-05-01 2005-01-27 Reed Carl J. System and method for message processing and routing
US20040225592A1 (en) 2003-05-08 2004-11-11 Churquina Eduardo Enrique Computer Implemented Method and System of Trading Indicators Based on Price and Volume
US7624063B1 (en) 2003-09-30 2009-11-24 Trading Technologies International, Inc. System and method for improved distribution of market information
US7778915B2 (en) 2003-10-14 2010-08-17 Ften, Inc. Financial data processing system
US20050091148A1 (en) 2003-10-27 2005-04-28 Anthony Rotondo Method and apparatus for synthesizing metrics of stock or share market indices
US7827091B2 (en) 2004-02-20 2010-11-02 Stephen Cutler Securities market and market maker activity tracking system and method
US7647266B1 (en) 2004-03-24 2010-01-12 Trading Technologies International, Inc. System and method for holding and sending an order to a matching engine
EP1738321A4 (en) 2004-04-01 2009-01-21 Waverules Llc SYSTEMS AND METHODS FOR ELECTRONIC TRANSACTION USING AUTOMATIC BOOK UPDATES
US7355975B2 (en) 2004-04-30 2008-04-08 International Business Machines Corporation Method and apparatus for group communication with end-to-end reliability
US20050283415A1 (en) 2004-06-22 2005-12-22 Chicago Mercantile Exchange System and method for displaying market data including last trade data
GB0414057D0 (en) 2004-06-23 2004-07-28 Koninkl Philips Electronics Nv Method of,and system for,communicating data, and a station for transmitting data
US7599867B1 (en) 2004-06-30 2009-10-06 Trading Technologies International, Inc. System and method for chart pattern recognition and analysis in an electronic trading environment
US20110251942A1 (en) 2004-07-12 2011-10-13 Rosenthal Collins Group, L.L.C. Method and system for electronic trading on a trading interface with a dynamic price column
WO2006041918A2 (en) 2004-10-07 2006-04-20 Ameritrade Ip Company, Inc. Market motion detector
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7739184B1 (en) 2005-03-31 2010-06-15 Trading Technologies International, Inc. System and method for providing market data in an electronic trading environment
WO2007012034A2 (en) 2005-07-20 2007-01-25 Wms Gaming Inc. Transmission protocol for a gaming system
US8571979B1 (en) 2005-07-22 2013-10-29 Tcf Financial Corporation Arrangements and methods for automatically dispersing and tracking funds
US8200563B2 (en) 2005-09-23 2012-06-12 Chicago Mercantile Exchange Inc. Publish and subscribe system including buffer
US8984033B2 (en) 2005-09-23 2015-03-17 Chicago Mercantile Exchange, Inc. Non-indexed in-memory data storage and retrieval
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7908204B2 (en) 2006-04-25 2011-03-15 Yuri Boglaev Market speedometer
US7752123B2 (en) 2006-04-28 2010-07-06 Townsend Analytics Ltd. Order management system and method for electronic securities trading
US7672898B1 (en) 2006-07-07 2010-03-02 Trading Technologies International Inc. Regulating order entry in an electronic trading environment to maintain an actual cost for a trading strategy
US7725764B2 (en) 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7434096B2 (en) 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US9026575B2 (en) 2006-09-28 2015-05-05 Alcatel Lucent Technique for automatically configuring a communication network element
US20080155015A1 (en) 2006-12-20 2008-06-26 Omx Technology Ab Intelligent information dissemination
US8843592B2 (en) * 2006-12-20 2014-09-23 Omx Technology Ab System and method for adaptive information dissemination
US10026122B2 (en) * 2006-12-29 2018-07-17 Trading Technologies International, Inc. System and method for controlled market data delivery in an electronic trading environment
US7809841B1 (en) 2007-03-29 2010-10-05 Trading Technologies International, Inc. System and method for communicating with an electronic exchange in an electronic trading environment
US8307114B2 (en) 2007-05-22 2012-11-06 International Business Machines Corporation High availability message transmission
US20080301125A1 (en) * 2007-05-29 2008-12-04 Bea Systems, Inc. Event processing query language including an output clause
US8108289B2 (en) * 2007-07-09 2012-01-31 Chicago Mercantile Exchange, Inc. Market data recovery
US20090018944A1 (en) 2007-07-13 2009-01-15 Omx Technology Ab Method and system for trading
US7907533B2 (en) 2007-11-28 2011-03-15 Tekelec Methods, systems, and computer program products for performing IP link proving using heartbeat messages
US20090164386A1 (en) * 2007-12-20 2009-06-25 Middle Office Solutions, L.L.C Method and system for standardized reporting of failed trades
US8958460B2 (en) 2008-03-18 2015-02-17 On-Ramp Wireless, Inc. Forward error correction media access control system
US8200638B1 (en) * 2008-04-30 2012-06-12 Netapp, Inc. Individual file restore from block-level incremental backups by using client-server backup protocol
US8022822B2 (en) 2008-06-27 2011-09-20 Microsoft Corporation Data collection protocol for wireless sensor networks
US20100082542A1 (en) * 2008-09-30 2010-04-01 Yahoo! Inc. Comparison of online advertising data consistency
PL2254046T3 (pl) 2009-05-18 2014-12-31 Amadeus Sas Sposób i system zarządzania kolejnością wiadomości
US9279879B2 (en) * 2009-06-26 2016-03-08 Qualcomm Incorporated Positioning in the presence of passive distributed elements
US8880524B2 (en) 2009-07-17 2014-11-04 Apple Inc. Scalable real time event stream processing
US20110040668A1 (en) 2009-08-17 2011-02-17 Darren Lee Automated spread trading system
US8417618B2 (en) 2009-09-03 2013-04-09 Chicago Mercantile Exchange Inc. Utilizing a trigger order with multiple counterparties in implied market trading
US20110178915A1 (en) 2010-01-15 2011-07-21 Lime Brokerage Holding Llc Trading Order Validation System and Method and High-Performance Trading Data Interface
US20110252208A1 (en) 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US8818940B2 (en) 2011-03-29 2014-08-26 Salesforce.Com, Inc. Systems and methods for performing record actions in a multi-tenant database and application system
JP5776267B2 (ja) * 2011-03-29 2015-09-09 日本電気株式会社 分散ファイルシステム
US9934534B2 (en) 2011-03-31 2018-04-03 Trading Technologies International, Inc. Throttling modification messages
US8799135B2 (en) * 2011-06-13 2014-08-05 Trading Technologies International, Inc Generating market information based on causally linked events
US8484161B2 (en) * 2011-08-29 2013-07-09 Oracle International Corporation Live file system migration
US8745157B2 (en) 2011-09-02 2014-06-03 Trading Technologies International, Inc. Order feed message stream integrity
US11138525B2 (en) 2012-12-10 2021-10-05 Trading Technologies International, Inc. Distribution of market data based on price level transitions
SG11201509253WA (en) * 2013-05-31 2015-12-30 Nasdaq Technology Ab Apparatus, system, and method of elastically processing message information from multiple sources
US10664548B2 (en) 2013-07-12 2020-05-26 Trading Technologies International, Inc. Tailored messaging
US10366452B2 (en) * 2013-11-07 2019-07-30 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US20160224995A1 (en) * 2015-01-30 2016-08-04 Trading Technologies International, Inc. Delta-based simulation systems
US10565646B2 (en) * 2015-08-05 2020-02-18 Trading Technologies International, Inc. Methods and apparatus to internalize trade orders

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1756108A (zh) * 2004-09-29 2006-04-05 华为技术有限公司 主备系统数据同步方法
US20120203687A1 (en) * 2004-12-28 2012-08-09 Trading Technologies International, Inc. System and method for providing market updates in an electronic trading environment
CN101675448A (zh) * 2007-05-10 2010-03-17 贸易技术国际公司 用于提供可交易对象的电子价格馈送的系统和方法
US8332354B1 (en) * 2008-12-15 2012-12-11 American Megatrends, Inc. Asynchronous replication by tracking recovery point objective
CN101650677A (zh) * 2009-07-27 2010-02-17 浪潮电子信息产业股份有限公司 一种基于Delta增量的文件数据备份方法
CN102043859A (zh) * 2010-12-27 2011-05-04 用友软件股份有限公司 数据更新方法及装置
CN102510340A (zh) * 2011-10-11 2012-06-20 浪潮电子信息产业股份有限公司 利用普通Internet网络实现异地快速备份的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079974A (zh) * 2019-11-13 2020-04-28 联想(北京)有限公司 一种信息处理方法、电子设备和计算机存储介质
CN113155260A (zh) * 2021-04-17 2021-07-23 福州夸克科技有限公司 一种远程修改电子秤价格的方法

Also Published As

Publication number Publication date
MX365172B (es) 2019-05-24
MX2019005538A (es) 2019-09-19
JP6741737B2 (ja) 2020-08-19
US11048772B2 (en) 2021-06-29
CA2916526C (en) 2021-02-16
AU2014286944A1 (en) 2016-02-04
IL243359A0 (en) 2016-02-29
KR20220010065A (ko) 2022-01-25
KR20200074266A (ko) 2020-06-24
WO2015006759A3 (en) 2015-03-19
CA2916526A1 (en) 2015-01-15
JP7436588B2 (ja) 2024-02-21
SG11201600229WA (en) 2016-02-26
HK1224064A1 (zh) 2017-08-11
JP2022166268A (ja) 2022-11-01
CA3103409A1 (en) 2015-01-15
US20210224340A1 (en) 2021-07-22
AU2014286944B2 (en) 2020-03-12
WO2015006759A2 (en) 2015-01-15
CN111581551A (zh) 2020-08-25
JP6903180B2 (ja) 2021-07-14
KR102484558B1 (ko) 2023-01-03
US20220229875A1 (en) 2022-07-21
JP7178449B2 (ja) 2022-11-25
AU2020203793A1 (en) 2020-07-02
SG10202106303TA (en) 2021-07-29
KR102197454B1 (ko) 2020-12-31
US10664548B2 (en) 2020-05-26
US11334641B2 (en) 2022-05-17
JP2019075128A (ja) 2019-05-16
KR20160030394A (ko) 2016-03-17
US20150019618A1 (en) 2015-01-15
MX2016000213A (es) 2016-03-09
KR20230009518A (ko) 2023-01-17
AU2021290254B2 (en) 2023-03-30
JP2021119515A (ja) 2021-08-12
AU2023203848A1 (en) 2023-07-13
KR102352143B1 (ko) 2022-01-14
JP2016530609A (ja) 2016-09-29
JP6450754B2 (ja) 2019-01-09
US11687609B2 (en) 2023-06-27
JP2020074221A (ja) 2020-05-14
EP3020019A4 (en) 2017-03-01
AU2020203793B2 (en) 2021-09-23
US20230273969A1 (en) 2023-08-31
EP4273780A2 (en) 2023-11-08
EP3567487B1 (en) 2023-10-04
EP4273780A3 (en) 2024-02-14
US20200242176A1 (en) 2020-07-30
MX2022007835A (es) 2022-07-19
AU2021290254A1 (en) 2022-01-27
EP3567487A1 (en) 2019-11-13
HK1222735A1 (zh) 2017-07-07
CN105474250B (zh) 2020-04-24
EP3020019A2 (en) 2016-05-18

Similar Documents

Publication Publication Date Title
CN105474250A (zh) 特制的消息传送
US11631134B2 (en) Methods and apparatus to internalize trade orders
US20210125279A1 (en) System, Method, and Tool for Synthetic Order Recovery
WO2023078128A1 (zh) 虚拟订单的处理方法、装置、设备及计算机可读存储介质
US20160150045A1 (en) Merging data downloads with real-time data feeds
US8793177B1 (en) System and method for pre-marshalling messages in an electronic trading environment
US10180863B2 (en) Determining system information based on object mutation events

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 1224064

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant