logo好方法网

特制的消息传送


技术摘要:
所公开的实施例一般地涉及用于特制网络通信的消息的技术。更具体地,所公开的实施例涉及用于基于接收方偏好来提供定制的信息更新的系统和方法。例如,接收方可能偏好比系统创建更新更不频繁地接收更新,和/或可能偏好接收更新中的不同的数据的级别。在一些实施例中,提  全部
背景技术:
电子设备可以交换数据消息,以提供例如关于设备的状态的最新信息。在一些系 统中,多个接收方对于从数据源接收更新感兴趣。数据源可以使用诸如广播消息传送或多 播消息传送这样的技术在某些类型的网络中提供这些更新。在其它系统中,由于例如网络 限制、通信偏好(例如,可靠交付、下订单等)和/或安全性要求,因此一些接收方可能使用点 对点连接与数据源进行通信。 一些接收方可能偏好以不同速率从同一数据源接收更新。在使得将不期望的消息 发送到接收方最小化的同时以不同的速率提供更新,限制了广播和多播消息传送技术的有 用性,并且随着具有不同更新速率偏好的接收方的数量增加,点对点连接变得更有效。然 而,在点对点连接的情况下,必须对于每个接收方生成消息。此外,一些接收方可能偏好在 它们的更新中接收不同级别或层级的数据。基于不同级别或层级的数据来定制消息,要求 对于每个级别或层级的数据生成不同的消息。尤其是对于在接收数据时延时增加是不可接 受的时间敏感信息,随着具有不同偏好的接收方的数量增长,接纳不同更新速率以及不同 级别或层级的数据变成累赘。 附图说明 参照以下附图公开一些实施例。 图1示出可以用于实现一些实施例的示例计算设备的框图。 图2示出用于将特制(tailored)消息发送到一个或多个接收设备的示例系统的框 图。 图3示出可以用于将快照(snapshot)和增量捕捉(deltasnap)发送到一个或多个 接收设备的示例订阅(subscribe)控制模块的框图。 图4示出使用快照技术的例子的数据流。 图5示出使用增量技术的例子的数据流。 7 CN 111581551 A 说 明 书 2/25 页 图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)技术。在一些实施例中,提供了允许对更新消息的速率和内容进行更高效特制 的划分技术和增量捕捉技术的组合。 在各种上下文中,数据消息将信息提供给接收方。一些接收方可能感兴趣于以与 其它接收方不同的速率接收更新。例如,第一接收方可能期望以诸如达到每毫秒一次这样 的第一速率(或许以正在生成更新的速率)来接收更新。第二接收方可能是带宽受约束的, 并且因而想要以诸如每秒两次这样的较低速率被发送更新。第三接收方可能有时是带宽受 约束的,并且希望以任何可能的速率可靠地接收更新,而绝不接收过期数据或体验由于连 8 CN 111581551 A 说 明 书 3/25 页 接重置而导致的大间隙。此外,在一些系统中,数据源可以在更新中提供不同级别或层级的 数据。例如,每个后继级别可以包括指示超过在先前级别处所提供的细节的更多细节或附 加信息的值。一些接收方可能感兴趣于在来自数据源的更新中接收不同级别数量的数据。 例如,第一接收方可能感兴趣于接收对于在前五个级别处的值的更新。第二接收方可能感 兴趣于接收对于在前两个级别处的值的更新。为了提供不同级别的数据,根据接收方的偏 好来特制消息。在当前系统中,接纳接收方偏好(诸如更新速率和/或不同数量的数据级 别),需要对于每个接收方基于源数据来格式化唯一消息。 虽然该描述公开了包含除了其它组件之外的在硬件上执行的软件的实施例,但应 当注意的是,实施例仅仅是说明性的,而不应当被看作限制。例如,考虑到可以排他地在硬 件中、排他地在软件中、排他地在固件中或者在硬件、软件和/或固件的任何组合中体现任 何或所有这些硬件和软件组件。相应地,可以以其它方式实现一些实施例。 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可以 9 CN 111581551 A 说 明 书 4/25 页 包括一个或多个通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列、模拟电 路、数字电路、编程处理器和/或其组合。处理器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定义一个或多个偏好(例如,更新速率、数据的级别数量等)。在一些例子中,电子设备 10 CN 111581551 A 说 明 书 5/25 页 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和/或次缓 11 CN 111581551 A 说 明 书 6/25 页 冲器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的当前状态: Current  State(t)=SR Δ1 Δ2 … Δt   公式(2), 其中,SR表示在时间t之前最新近地发送的快照,Δ1至Δt表示自从该最新近的快 照以来所发送的增量。 图5示出了说明包括数据源分别在时间T0、时间T1和时间T2的示例第一状态400a、 12 CN 111581551 A 说 明 书 7/25 页 示例第二状态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的状态: Current  State(t)=SR ΔSt   公式(3), 其中,SR表示在时间t之前最新近地发送的快照,ΔSt表示在时间t之前最新近地发 13 CN 111581551 A 说 明 书 8/25 页 送的增量捕捉。 图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和第二数据级 14 CN 111581551 A 说 明 书 9/25 页 别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。头部80 2包括簿记 (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。在所 15 CN 111581551 A 说 明 书 10/25 页 示的例子中,更新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所指定的值(例如,图7B的值704),在由索引 814所指定的数据级别之后添加新的数据级别(例如,图7A和图7B的数据级别702a-702f)。 示例“添加相对”动作在由索引814所指定的数据级别之后,添加新的数据级别,其中由示例 参数820所指定的值对由索引814所指定的数据级别的值进行修改(例如,相加、相减等)。示 例“添加顶部”动作使用由示例参数820所指定的值在第一数据级别之前添加新的数据级 别。示例“修改第N值”动作(例如,“修改第1值”(MV1)等)如示例参数820所指定地修改由索 引814所标识的数据级别的第N值。示例“修改所有”动作如示例参数820所指定地修改由索 16 CN 111581551 A 说 明 书 11/25 页 引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示出了描述示例接收设备A  1104a与图2和图3的示例订阅控制模块201之间 的示例第一连接1102a的示例数据流图1100。示图1100还描述了示例接收设备B1104b与订 阅控制模块201之间的示例第二连接1102b。订阅控制模块201以快照阈值速率(例如,每分 17 CN 111581551 A 说 明 书 12/25 页 钟、每两分钟等)生成快照1106,并且以基本更新速率(例如,每秒等)生成增量捕捉1108a- 1108g。在所示的例子中,订阅控制模块201将快照1106和增量捕捉1108a-1108g发送到第一 连接1102a和第二连接1102b。 在图11所示的例子中,第一连接1102a随着时间具有拥塞时段1110和无显著拥塞 时段1112。在所示的例子中,接收设备A  1104a设置关于更新速率(例如,发送增量捕捉 1108a-1108g到第一连接1102a的速率)的偏好和/或关于接收的数据级别的数量(例如,每 个快照1106和每个增量捕捉1108a-1108g中包括多少数据级别)的偏好。在所示的例子中, 由接收设备A1104a所设置的更新速率等于基本更新速率(例如,由订阅控制模块201生成增 量捕捉1108a-1108g的速率)。例如,如果基本更新速率是一秒,则接收设备A  1104a以一秒 间隔接收增量捕捉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的可划分数 18 CN 111581551 A 说 明 书 13/25 页 据级别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确定存在更多新近的增量 19 CN 111581551 A 说 明 书 14/25 页 捕捉,则程序控制前进到方框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.示例电子交易系统 以上所讨论的一些实施例在电子交易系统中可能是有用的。例如,传递包括在各 个价格级别可用的数量的市场信息可以受益于消息特制。例如,可交易对象的内部市场数 20 CN 111581551 A 说 明 书 15/25 页 据和市场深度数据可以被组织为可划分数据级别(例如,可划分数据级别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-based  products)、交易事件、货物或其组合。可交易对象可以包括由交易所所列出和/或管辖的产 品、由用户所定义的产品、真实产品或合成产品的组合或其组合。可以存在与真实可交易对 象对应和/或相似的合成可交易对象。 订单消息是包括交易订单的消息。交易订单可以是例如:用于发出用于购买或销 售可交易对象的订单的命令;用于根据所定义的交易策略而发起管理订单的命令;用于改 变、修改或取消订单的命令;用于与订单有关的电子交易所的指令;或其组合。 交易设备1810可以包括一个或多个电子计算平台。例如,交易设备1810可以包括 桌面计算机、手持设备、膝上型设备、服务器、便携式计算设备、交易终端、嵌入式交易系统、 工作站、算法交易系统(诸如“黑盒”或“灰盒”系统)、计算机集群或其组合。作为另一例子, 交易设备1810可以包括与被配置为可存取地存储一个或多个计算机程序、应用、库、计算机 可读指令等以便由处理器执行的存储器或其它存储介质进行通信的单核或多核处理器。 如在此所使用的,短语“被配置为”和“适于(adapted  to)”囊括元件、结构或设备 已经被修改、布置、改变或变化以执行特定功能或用于特定目的。 21 CN 111581551 A 说 明 书 16/25 页 通过示例的方式,交易设备1810可以被实现为运行 (由伊利诺伊 芝加哥的Trading  Technologies  International公司(“Trading  Technologies”)所提供 的电子交易平台)的副本的个人计算机。作为另一例子,交易设备110可以是运行提供自动 化交易工具(例如也由Trading  Technologies提供的 和/ 或AUTOTRADERTM)的交易应用的服务器。在又一例子中,交易设备110可以包括与服务器进行 通信的交易终端,其中交易终端和服务器共同是交易设备1810。 交易设备1810通常由用户拥有、操作、控制、编程、配置或另外使用。如在此所使用 的,短语“用户”可以包括但不限于人类(例如交易者)、交易群组(例如一组交易者)或电子 交易设备(例如算法交易系统)。例如,在拥有、操作、控制、编程、配置或另外使用中可能涉 及一个或多个用户。 交易设备1810可以包括一个或多个交易应用。如在此所使用的,交易应用是促进 或改进电子交易的应用。交易应用提供一个或多个电子交易工具。例如,可以执行由交易设 备所存储的交易应用,以在一个或多个交易窗口中布置并且显示市场数据。在另一例子中, 交易应用可以包括提供扩展交易工具的自动化扩展交易应用。在又一例子中,交易应用可 以包括自动地处理算法并且执行特定动作(例如,下订单、修改现有订单、删除订单等)的算 法交易应用。在又一例子中,交易应用可以提供一个或多个交易屏幕。交易屏幕可以提供允 许与一个或多个市场进行交互的一个或多个交易工具。例如,交易工具可以允许用户获得 并且浏览市场数据、设置订单入口参数、将订单消息提交给交易所、部署交易算法和/或在 实现各个交易策略的同时监控位置。由交易应用所提供的电子交易工具可以总是可用的, 或可以仅在交易应用的某些配置或操作模式下可用。 可以利用计算机可读介质中存储的并且可由处理器执行的计算机可读指令来实 现交易应用。计算机可读介质可以包括各种类型的易失性存储介质和非易失性存储介质, 例如包括随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦 除只读存储器、闪存、其任何组合或任何其它有形数据存储设备。如在此所使用的,术语非 瞬时计算机可读介质或有形计算机可读介质被明确地定义为包括任何类型的计算机可读 存储介质,并且排除传播信号。 交易应用的一个或多个组件或模块可以从另一计算机可读介质加载到交易设备 1810的计算机可读介质中。例如,交易应用(或对交易应用的更新)可以由制造商、开发商或 发行商存储在一个或多个CD或DVD上,其然后被加载到交易设备1810上或者加载到交易设 备1810从其中检索交易应用的服务器。作为另一例子,交易设备1810可以例如经由互联网 或内部网络从服务器接收交易应用(或对交易应用的更新)。当由交易设备1810请求时(例 如“拉分发”)和/或当由交易设备110未请求时(例如“推分发”),交易设备1810可以接收交 易应用或更新。 交易设备1810可以适于发送订单消息。例如,订单消息可以通过网关1820发送到 交易所1830。作为另一例子,交易设备1810可以适于在不实行现实世界交易的仿真环境中 将订单消息发送到仿真的交易所。 可以在用户请求时发送订单消息。例如,交易者可以利用交易设备1810来发送订 单消息,或手动地输入交易订单的一个或多个参数(例如,订单价格和/或数量)。作为另一 例子,由交易应用所提供的自动化交易工具可以计算交易订单的一个或多个参数,并且自 22 CN 111581551 A 说 明 书 17/25 页 动地发送订单消息。在一些实例中,自动化交易工具可以准备待发送的订单消息,但在没有 来自用户的确认的情况下并未实际地发送所述待发送的订单消息。 可以在一个或多个数据分组中发送订单消息或通过共享存储器系统发送订单消 息。例如,订单消息可以通过网关1820从交易设备110发送到交易所1830。例如,交易设备 1810可以使用局域网、广域网、无线网络、虚拟专用网、蜂窝网络、点对点网络、T1线路、T3线 路、综合服务数字网络(“ISDN”)线路、出现点(a  point-of-presence)、互联网、共享存储器 系统和/或私有网络(诸如Trading  Technologies所提供的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线路、出现点、互联网、共享存储器系统和/或私 有网络(诸如Trading  Technologies所提供的TTNETTM)来与交易所1830进行通信。 交易所1830可以由交易所实体来拥有、操作、控制或使用。示例交易所实体包括 CME组、伦敦国际金融期货和期权交易所、洲际交易所和Eurex。交易所1830可以包括电子匹 配系统(诸如,计算机、服务器或其它计算设备),其适于允许购买并且销售例如由交易所所 提供的用于交易的可交易对象。例如,交易所1830可以包括分离实体,所述分离实体中的一 些列出和/或管辖可交易对象,而其它则接收并且匹配订单。例如,交易所1830可以包括电 子通信网络(“ECN”)。 交易所1830可以是电子交易所。交易所1830适于接收订单消息并且匹配用于购买 并且销售可交易对象的对方(contra-side)交易订单。交易所1830可以对于交易列出不匹 配的交易订单。一旦交易所接收到并且确认用于购买或销售可交易对象的订单,该订单就 看作是工作中订单,直到其被填写或取消为止。如果订单的仅一部分数量匹配,则部分地填 写的订单仍是工作中订单。例如,交易订单可以包括从交易设备1810或与交易所130进行通 信的其它设备接收到的交易订单。例如,典型地,交易所1830将与还提供待匹配的交易订单 的各种其它交易设备(其可以与交易设备1810相似)进行通信。 交易所1830适于提供市场数据。可以在一个或多个消息或数据分组中提供市场数 23 CN 111581551 A 说 明 书 18/25 页 据或通过共享存储器系统提供市场数据。例如,交易所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可以根据它们的个体需要来订阅并且接收数据 24 CN 111581551 A 说 明 书 19/25 页 (诸如例如与价格、订单或填写有关的数据)。 可能与图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 进行通信)出现。 25 CN 111581551 A 说 明 书 20/25 页 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、询问深度参数 26 CN 111581551 A 说 明 书 21/25 页 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。在一些 27 CN 111581551 A 说 明 书 22/25 页 这样的例子中,根据公式(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所示的例子中,当内部市场或相应市场深度的询问价格、询问大小、竞价 28 CN 111581551 A 说 明 书 23/25 页 价格和/或竞价大小自从最新快照以来已经改变时,在可特制增量捕捉消息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) 29 CN 111581551 A 说 明 书 24/25 页 为了将特制增量捕捉消息(例如图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。 30 CN 111581551 A 说 明 书 25/25 页 一些所描述的附图描述了表示可以用于实现所有或部分一些实施例的方法的示 例框图、系统和/或流程图。例如,示例框图、系统和/或流程图的组件、元素和/或功能中的 一个或多个可以在硬件、固件、分立式逻辑中单独地或组合地实现为有形计算机可读介质 上所存储的计算机可读指令集合和/或其任何组合。 例如,可以使用专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程逻辑器 件(FPLD)、分立式逻辑、硬件和/或固件的任何组合来实现示例框图、系统和/或流程图。此 外,例如,可以手动地或结合前述技术来实现一些或所有示例方法。 例如,可以使用一个或多个处理器、控制器和/或其它处理设备来执行示例框图、 系统和/或流程图。例如,可以使用有形计算机可读介质上所存储的编码指令(例如计算机 可读指令)来实现示例。有形计算机可读介质可以包括各种类型的易失性存储介质和非易 失性存储介质,包括例如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器 (PROM)、电可编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)、闪存、硬盘驱动器、 光学介质、磁带、文件服务器、任何其它有形数据存储设备或其任何组合。有形计算机可读 介质是非瞬时的。 此外,虽然以上参照附图描述了示例框图、系统和/或流程图,但可以采用其它实 现方式。例如,可以改变组件、元素、块和/或功能的执行顺序,和/或可以改变、消除、再分割 (sub-divided)或组合组件、元素、块和/或功能中的一些。此外,可以通过例如分离的处理 线程、处理器设备、分立式逻辑和/或电路来依次和/或并行执行任何或所有组件、元素、块 和/或功能。 虽然已经公开了实施例,但可以进行各种改变并且可以替换等同物。此外,可以进 行很多修改,以适配特定情况或材料。因此,意图所公开的技术不限于所公开的一些实施 例,而将包括落入所附权利要求的范围内的所有实施例。 31 CN 111581551 A 说 明 书 附 图 1/22 页 图1 32 CN 111581551 A 说 明 书 附 图 2/22 页 图2 33 CN 111581551 A 说 明 书 附 图 3/22 页 图3 34 CN 111581551 A 说 明 书 附 图 4/22 页 图4 35 CN 111581551 A 说 明 书 附 图 5/22 页 图5 36 CN 111581551 A 说 明 书 附 图 6/22 页 图6 37 CN 111581551 A 说 明 书 附 图 7/22 页 图7A 38 CN 111581551 A 说 明 书 附 图 8/22 页 图7B 图8A 39 CN 111581551 A 说 明 书 附 图 9/22 页 图8B 40 CN 111581551 A 说 明 书 附 图 10/22 页 图9 41 CN 111581551 A 说 明 书 附 图 11/22 页 图10 42 CN 111581551 A 说 明 书 附 图 12/22 页 图11 43 CN 111581551 A 说 明 书 附 图 13/22 页 图12 44 CN 111581551 A 说 明 书 附 图 14/22 页 图13 45 CN 111581551 A 说 明 书 附 图 15/22 页 图14 46 CN 111581551 A 说 明 书 附 图 16/22 页 图15 47 CN 111581551 A 说 明 书 附 图 17/22 页 图16 48 CN 111581551 A 说 明 书 附 图 18/22 页 图17 49 CN 111581551 A 说 明 书 附 图 19/22 页 图18 50 CN 111581551 A 说 明 书 附 图 20/22 页 图19 51 CN 111581551 A 说 明 书 附 图 21/22 页 图20A 52 CN 111581551 A 说 明 书 附 图 22/22 页 图20B 53
分享到:
收藏