CN109389880A - 包括使用嵌套哈希表的消息回放的资产模拟 - Google Patents
包括使用嵌套哈希表的消息回放的资产模拟 Download PDFInfo
- Publication number
- CN109389880A CN109389880A CN201810840144.6A CN201810840144A CN109389880A CN 109389880 A CN109389880 A CN 109389880A CN 201810840144 A CN201810840144 A CN 201810840144A CN 109389880 A CN109389880 A CN 109389880A
- Authority
- CN
- China
- Prior art keywords
- message
- binary data
- original binary
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/08—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
- G09B9/085—Special purpose teaching, e.g. alighting on water, aerial photography
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开使用嵌套哈希表模拟包括消息回放的资产。提供了一种用于资产模拟以训练用户使用该资产的设备。该设备包括持久存储(208)以存储(602)可转换为与资产模拟相关联的消息的原始二进制数据(212),以及随机访问存储器(RAM)(210)以用于将消息的协议名称、发送器标识符和消息类型存储(604)在相应的哈希表(216)中。这些哈希表进一步包括第四哈希表,该第四哈希表将消息的时间映射到持久存储(208)中的原始二进制数据(212)。响应于接收(606)针对从选定时间开始的消息回放请求,该设备使用RAM(210)中的四个嵌套哈希表(216)定位(610)在选定时间之前按时间顺序在时间中是最后的消息的原始二进制数据(212),从消息的原始二进制数据(212)在持久存储介质(208)中的位置检索(612)消息的原始二进制数据(212),并将原始二进制数据(212)转换(614)为用于呈现的消息。
Description
技术领域
本公开一般涉及用于资产的训练系统,以及特别地包括使用嵌套哈希表的消息回放(playback)的移动资产的模拟的训练系统。
背景技术
对飞行器和其他移动资产经常执行训练演习。这些训练演习是用来教飞行员如何操作资产。附加地,演习还用于对用户在相对于操作资产的不同战略和战术上的进行训练。例如,在军用飞行器背景下,飞行员可以在飞行器中进行训练,以提高对敌对事件的技能和反应。这些事件可能包括,例如但不限于,遇到敌方飞行器,对地对空导弹位置、攻击时间敏感的目标和其他适当的事件的存在做出反应。
大量的训练可以使用地面上的训练器件来执行。这些训练器件通常采用模拟器的形式,诸如飞行器和航天器的飞行模拟器。飞行模拟器是一个复制或模拟飞行器飞行经验的系统。飞行模拟器是为了使体验尽可能真实。飞行模拟器的范围可以是从房间内的控制和显示到安装在驱动器上的驾驶舱的全尺寸复制品,该驱动器被配置为响应飞行员的行动而移动驾驶舱。这种类型模拟器提供了教导飞行员和/或其他机组人员操作各种飞行器系统和对不同事件作出反应的能力。
通常的做法是,模拟环境提供了停止、倒回和重播部分模拟的能力,然后在当前的模拟时间继续进行,就像数字录像机一样。然而,模拟并不仅仅是可以记录和重播的一序列屏幕图像。相反,基于各种参数生成在模拟中显示的图像,该各种参数确定模拟的当前状态。这些参数不会在确定的锁定步长中演化和变化,而是在不同的时间点独立变化,并且可以基于模拟事件而不是公共时钟周期发生变化。
在模拟环境中,如停止、倒回、重播和继续等功能需要记录各种参数,该各种参数使用记录的参数确定当前状态和状态重构。
对于简单或短的持续时间的模拟,确定当前状态的参数可以顺序地记录在随机存取存储器(RAM)中,以便快速倒回和重播。对于复杂和长的持续时间模拟,所需数据量超过可以合理地被存储在RAM中的数据量。代替的,必须将数据记录到较慢的持久存储中。如果按顺序记录,停止并倒回到具体的时间点可能需要从模拟文件开始处顺序读取大量数据以恢复准确的状态。
因此,希望有一种设备和方法,该设备和方法考虑到至少上面讨论的一些问题以及其他可能的问题。
发明内容
本公开的示例实施方式涉及用于模拟资产以训练用户使用该资产的设备、方法和计算机可读存储介质。根据示例实施方式,可以使用RAM中的嵌套哈希表来构造、存储和重播与资产模拟相关联的原始二进制数据,以快速定位存储在持久存储中的数据。数据可以以比实时更快或更慢的速度重播。模拟还可以以非连续的方式在时间上跳跃,并且基于原始二进制数据在任何给定时间点查看模拟状态数据的重构图片。
根据一些示例实施方式,原始二进制数据可以是或包括从一个或更多个发送器或源通过网络接收的二进制数据的数据包。用户可以请求从选定的时间点重播数据,并且RAM中的嵌套哈希表允许设备容易且快速地确定什么数据是在给定的时间点之前通过每个发送器/源最后发送的。并且一旦被确定从持久存储检索到,数据被存储在,诸如在数据库或平面二进制文件中。然后可以重新加载数据,以使模拟的内部状态被恢复到与数据包数据最初记录时相同的状态。
本公开因此包括但不限于以下示例实施方式。
一些示例实施方式提供了一种用于模拟资产以训练用户使用该资产的设备,该设备包含持久存储介质,该持久存储介质被配置为存储可转化为与资产的模拟相关联的消息的原始二进制数据,持久存储介质被配置为存储原始二进制数据和相关联元数据,这些元数据分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器和消息类型;随机存取存储器(RAM)被配置为存储协议名称、发送器识别和消息类型,并且排除原始二进制数据,RAM被配置为将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表的相应哈希表中,四个嵌套哈希表进一步包括第四哈希表,第四哈希表将消息的时间点映射到识别持久存储介质中的相应位置的相应数据索引,在该相应位置处存储消息的原始二进制数据;用户输入接口,其被配置为接收针对从选定的时间点开始的部分消息的回放的请求,该选定的时间点早于接收请求的时间;以及处理器,其被配置为执行计算机可读程序代码,以致使设备响应请求,包括针对包括选定的时间点和从选定的时间点开始的多个时间点中的每个时间点,该设备被致使至少:使用RAM中的四个嵌套哈希表而不访问持久存储介质,来定位消息的原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,包括设备被致使以在相应哈希表中的协议名称、发送器标识符和消息类型上循环,以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储该消息的原始二进制数据;使用数据索引从持久存储介质中的位置检索消息的原始二进制数据;并且将原始二进制数据转换为用于与资产的模拟结合呈现的消息,以训练用户使用该资产。
在在前的或任何随后的示例实施方式或者其任何组合的设备的一些示例实施方式中,该设备还包括显示器件,其被配置为呈现针对多个时间点中的每个时间点的消息。
在任何在前的或任何随后的示例实施方式或其任何组合的设备的一些示例实施方式中,消息包括多个协议、发送器或消息类型的消息,并且其中设备被致使定位原始二进制数据、检索原始二进制数据以及发送原始二进制数据包括被致使针对协议、发送器和消息类型的每个组合的消息,定位原始二进制数据、检索原始二进制数据以及发送原始二进制数据,该消息在时间点之前按时间顺序是最后的。
在任何在前的或任何随后的示例实施方式或者其任何组合的设备的一些示例实施方式中,消息包括多个协议、发送器或消息类型的消息,并且设备被致使定位原始二进制数据包括被致使针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,并且其中该设备被致使检索消息的原始二进制数据,包括针对协议、发送器和消息类型中的每个组合的消息,设备被致使至少:将针对协议、发送器和消息类型的组合的消息的原始二进制数据的数据索引与最后呈现的索引相比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引;以及只有当数据索引和最后呈现的索引不同时,检索针对协议、发送器和消息类型的组合的消息的原始二进制数据。
在任何在前或任何随后的示例实施方式或其任何组合的设备的一些示例实施方式中,多个时间点早于选定的时间点,并按反向的时间顺序的顺序。
在任何在前或任何随后的示例实施方式或者其任何组合的设备的一些示例实施方式中,与资产的模拟相关联的消息包括用于以预定速率呈现的消息,并且其中设备被致使转换原始二进制数据包括被致使将原始二进制数据转换为消息,用于在包括选定的时间点和从选定的时间点开始的多个时间点上以与预定速率不同的速率呈现。
在任何在前或任何随后的示例实施方式或者其任何组合的设备的一些示例实施方式中,第四哈希表将消息的时间点映射到相应的高速缓存条目,其存储相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,并且其中针对特定协议、发送器或消息类型的至少一个消息,该设备被致使定位消息的原始二进制数据包括被致使根据逻辑定位原始二进制数据。
在任何在前或任何随后示例实施方式或其任何组合的设备的一些示例实施方式中,原始二进制数据是历史原始二进制数据,消息是历史消息,并且该设备进一步包含通信接口,其被配置为接收可转换为与资产的模拟相关联的实时消息的实时原始二进制数据,并且其中处理器被配置为执行计算机可读程序代码,以使设备至少进一步:将实时原始二进制数据转换为实时消息;用实时消息的协议名称、发送器标识符和消息类型以及用实时消息的时点填充RAM中的四个嵌套哈希表,第四哈希表将实时消息的时间点映射到识别持久存储介质中的相应的位置的相应的数据索引,在该相应的位置中存储针对实时消息的实时原始二进制数据;以及将实时原始二进制数据写入具有相关联的元数据的持久存储介质中的相应的位置,该相关联的元数据识别实时消息的协议名称、发送器标识符和消息类型,实时原始二进制数据和实时消息此后为历史原始二进制数据和历史消息。
一些示例实施方式提供了一种模拟资产以训练用户来使用该资产的方法,该方法包含将原始二进制数据存储在持久存储介质中,该原始二进制数据可转换为与资产的模拟相关联的消息,持久存储介质存储原始二进制数据和相关联的元数据,这些元数据分别通过协议名称、发送器标识符和消息类型来识别消息的协议、发送器和消息类型;将协议名称、发送器标识符和消息类型存储在随机访问存储器(RAM)中,并且排除原始二进制数据,RAM将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表中的相应的哈希表中,四个嵌套哈希表进一步包括第四哈希表,第四哈希表将消息的时间点映射到识别持久存储介质中的相应位置的相应数据索引,在该相应位置处存储消息的原始二进制数据;接收从选定的时间点开始的部分消息的回放的请求,该选定的时间点早于接收请求的时间;以及响应请求,包括针对包括选定的时间点并且从选定的时间点开始的多个时间点中的每个时间点,处理器至少:使用RAM中的四个嵌套哈希表而不访问持久存储介质,来定位消息的原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,包括在相应的哈希表中的协议名称、发送器标识符和消息类型上循环,以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储该消息的原始二进制数据;使用数据索引从持久存储介质中的位置检索消息的原始二进制数据;以及将原始二进制数据转换为用于与模拟资产结合呈现的消息以训练用户来使用资产。
在任何在前或任何随后示例实施方式或者其任何组合的方法的一些示例实施方式中,该方法进一步包含在显示器件上呈现针对多个时间点中的每个时间点的消息。
在任何在前或任何随后示例实施方式或其任何组合的方法中的一些示例实施方式中,这些消息包括多个协议、发送器或消息类型的消息,并且其中定位原始二进制数据、检索原始二进制数据和转换原始二进制数据包括针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据、检索原始二进制数据和转换原始二进制数据,该消息在时间点之前是按时间顺序是最后的。
在任何在前或任何随后示例实施方式或其任何组合的方法的一些示例实施方式中,这些消息包括多个协议、发送器或消息类型的消息,并且定位原始二进制数据包括针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,并且其中检索消息的原始二进制数据,包括针对协议、发送器和消息类型的每个组合的消息,该处理器至少:将针对协议、发送器和消息类型组合的消息的原始二进制数据的数据索引与最后呈现的索引相比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引;以及只有当数据索引和最后呈现的索引不同时,才检索针对协议、发送器和消息类型的组合的消息的原始二进制数据。
在任何在前或任何随后的示例实施方式或者其任何组合的方法的一些示例实施方式中,多个时间点早于选定的时间点,并按反向的时间顺序的顺序。
在任何在前或任何随后的示例实施方式或其任何组合的方法的一些示例实施方式中,与资产的模拟相关联的消息包括以预定速率呈现的消息,并且其中转换原始二进制数据包括将原始二进制数据转换为消息,用于在包括该选定时间点和从该选定时间点开始的多个时间点上以与预定速率不同的速率呈现。
在任何在前或任何随后的示例实施方式或者其任何组合的方法的一些示例实施方式中,第四哈希表将消息的时间点映射到相应的高速缓存条目,该相应的高速缓存条目存储相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,并且其中针对特定协议、发送器或消息类型的至少一个消息,定位消息的原始二进制数据包括根据逻辑定位原始二进制数据。
在任何在前或任何随后示例实施方式方法或其任何组合的一些示例实施方式中,原始二进制数据是历史原始二进制数据,该消息是历史消息,并且该方法进一步包含:接收可转换为与操作相关联的实时消息的实时原始二进制数据;将实时原始二进制数据转换为实时消息;利用实时消息的协议名称、发送器标识符和消息类型,以及利用实时消息的时间点填充在RAM中的四个嵌套哈希表,第四哈希表将实时消息的时间点映射到相应的数据索引中,这些数据索引识别持久存储介质中的相应的位置,在该相应的位置中存储实时消息的实时原始二进制数据;以及将实时原始二进制数据写入具有相关联元数据的持久存储介质中的相应的位置,该元数据识别实时消息的协议名称、发送器标识符和消息类型,实时原始二进制数据和实时消息此后是历史原始二进制数据和历史消息。
一些示例实施方式提供了一种计算机可读存储介质,用于模拟资产以训练用户使用该资产,计算机可读存储介质是非暂时性的,并且具有存储在其中的计算机可读程序代码部分,其响应处理器的执行,致使设备至少执行任何在前示例实施方式,或其任何组合的方法。
从下面的详细说明结合附图的阅读中,本公开的这些和其他特征、方面和优点将是明显的,其在下面将简要描述。本公开包括在本公开中阐述的两个、三个、四个或更多个特征或元素的任何组合,而不管在本文描述的具体的示例实施方式中是否明确地组合或以其他方式记载了这些特征或元素。本公开旨在被整体阅读,使得本公开的任何单独的特征或元素在其任何方面和示例实施方式中都应被视为可组合的,除非本公开的上下文中另有明确地指示。
因此,将要理解的是,仅仅为了总结一些示例实施方式的目的而提供发明内容,以便提供对本公开的某些方面的基本理解。相应地,将理解的是,上述示例实施方式仅仅是示例,不应被解释为以任何方式缩小本公开的范围或精神。从随后的详细说明结合附图,其他示例实施方式、方面和优点将变得明显,随后的详细说明结合附图通过示例的方式,说明了一些所描述的示例实施方式的原理。
附图说明
因此,在概括地描述了本公开的示例实施方式之后,现在将参考附图,这些附图不一定是按比例绘制的,并且其中:
图1根据本公开的示例实施方式,示意性地说明了用于移动资产的训练系统;
图2说明了在一些示例中可以被配置为执行图1中的训练系统的发送器或模拟器的设备;
图3根据一些示例实施方式说明了模拟器的软件体系结构,并且可以用于说明在实时数据和历史数据两者的情况下的操作;
图4和图5根据一些示例实施方式说明了在相应地仅实时数据和仅历史数据的情况下软件体系结构的操作;以及
图6根据一些示例实施方式说明包括资产模拟以训练用户使用该资产的方法的各种操作的流程图。
具体实施方式
下文将参照附图更全面地描述本公开的一些实施方式,在附图中示出了本公开的一些、但不是全部的实施方式。事实上,本公开的各种实施方式可能以许多不同的形式体现,且不应被解释为仅限于本文所阐明的实施方式;相反,提供这些示例实施方式,使得本公开将是全面的和完整的,并将本公开的范围充分地传达给本领域的技术人员。例如,除非另有说明,否则将某事物参考为第一、第二及其他不应该解释为意味着某一特定的排列。另外,例如,本文可以参考定量的度量、数值、关系等。除非另有说明,否则其中任何一个或更多个(如果不是全部)可能是绝对的或近似的,以说明可能发生的可接受的变化,诸如由于工程公差等原因而产生的变化。类似的参考数字通篇指代类似的元素。
本公开的示例实施方式通常针对用于资产的训练系统,以及特别地,包括移动资产的模拟的训练系统,该移动资产的模拟包括使用嵌套哈希表的消息回放。虽然本公开将结合具有飞行器资产的飞行训练系统来描述,但可以理解,本公开适用于涉及移动资产的任何训练应用。适当移动资产的示例包括诸如陆地交通工具(地面交通工具)、轨道交通工具、飞行器(飞行交通工具)、航天器、水艇等交通工具。其他适当移动资产的示例包括卫星、导弹、先进技术交通工具等。
图1根据本公开的示例实施方式,说明了用于移动资产的训练系统100。该系统可以包括多个不同子系统(每个是单独的系统)中的任意一个子系统,用于执行一个或更多个功能或操作。如图所示,在某些示例中,该系统包括与模拟资产相关联的消息的发送器或源(通常为“发送器”)102中的每一种的一个或更多个,以及训练用户使用资产的模拟器104,在一些示例中,模拟器通过一个或更多个计算机网络106相互通信。在一些示例中,发送器是其他资产的其他模拟器,其与模拟器交互以实施模拟环境,在模拟环境中资产和其他资产的模拟彼此交互。应理解的是,比起图1所示的,该系统可以包括一个或更多个附加的或替代的子系统。
在一些示例中,可以提供一个或更多个设备,其可以被配置为充当训练系统100或以其他方式实施训练系统100,该训练系统100包括其发送器102和模拟器104。在涉及多于一个设备的示例中,相应的设备可以以许多不同的方式被连接或另外彼此通信,诸如直接或间接经由有线或无线网络等。
图2更具体地说明设备200,在一些示例中,设备200可以被配置为实施发送器102或模拟器104,虽然下面说明书将关注被配置为实施模拟器的设备。一般地,本公开的示例实施方式的设备可以包含、包括或者被体现在一个或更多个固定的或便携式的电子器件中。该设备包括多个组件中的每一种的一个或更多个,诸如,例如,连接到存储器204和用户输入接口206的处理器202。
另外,如图所示,存储器204包括持久存储介质208(有时称为非易失存储器)和易失随机存取存储器(RAM)210。根据本公开的示例实施方式,持久存储介质被配置存储可转换为与资产模拟相关联的消息的原始二进制数据212。持久存储介质被配置为存储原始二进制数据和相关联的元数据214,该元数据214分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器102和消息类型
在飞行模拟的背景下,适当的协议的示例包括分布式交互模拟(DIS)协议、高级体系结构(HLA)协议、训练使能体系结构(TENA)协议等。适当的发送器的示例是其他资产的其他模拟器,其与模拟器交互以实施模拟环境,在模拟环境中资产和其他资产的模拟彼此交互,如上所示。并且适当的消息类型的示例包括定位报告、任务安排、传感器检测、爆震波(detonation)事件等。
RAM 210被配置为存储协议名称、发送器标识符和消息类型,并且排除原始二进制数据212。RAM被配置为将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表216中的相应的哈希表中。这四个嵌套的哈希表包括用于协议名称、发送器标识符和消息类型的嵌套的哈希表,并且进一步包括第四哈希表,该第四哈希表将消息的时间点映射到相应的数据索引中,该数据索引识别持久存储介质208中的相应位置,在该相应位置处存储消息的原始二进制数据。
哈希表216以每个哈希表(除了第四个)指向哈希表中的另一个的方式被嵌套。在一些示例中,协议名称、发送器标识符和消息类型是相应哈希表的密钥,该哈希表包括第一哈希表、第二哈希表和第三哈希表。第一哈希表将密钥中的第一个映射到一个值,该值是密钥中的第二个,第二哈希表将密钥中的第二个映射到一个值,该值是密钥中的第三个,以及第三哈希表将密钥中的第三个映射到值,该值是第四哈希表中的密钥的时间点。第四哈希表再一次将消息的时间点映射到识别持久存储介质208中的相应位置的相应的数据索引。
用户输入接口206被配置为接收用于从选定的时间点开始的部分消息的回放的请求,该时间点早于接收请求的时间。处理器202被配置为执行计算机可读程序代码以致使设备200响应请求。该计算机可读程序代码可以被存储在持久存储208、RAM 210或其他存储器204中。在一个示例中,计算机可读程序代码被存储在持久存储中,并且被加载到RAM中用于执行。
嵌套哈希表216允许设备200针对相关联的协议、发送器和消息类型快速地查找在选定的时间点之前发送的最后消息。这节省了执行昂贵的数据库查询的费用,并且避免了冗长的文件序列化操作。在一些示例中,嵌套的哈希表与一套回放逻辑(规则)相结合,这些逻辑(规则)管理特定类型的所有数据是否应该被回放或者该数据的某些部分是否可以被跳过。因此用于重复数据,该设备可以跳过不相干的或冗余的数据,并且只需检索针对协议、发送器和消息类型的最后的消息。对于事件驱动数据,设备可以快速地定位并且重播所有先于(leading up to)给定时间点的事件,而不必查询数据库或从磁盘扫描大的文件。
在一些示例中,被致使以响应于请求的设备200包括针对包括选定的时间点和从选定的时间点开始的多个时间点中的每个时间点的多个操作。在这方面,设备被致使使用RAM 210中的四个嵌套的哈希表216而不访问持久存储介质208,来定位消息的原始二进制数据212,该消息的时间点在时间点之前按时间顺序是最后的。这包括设备被致使在相应的哈希表中在协议名称、发送器标识符和消息类型上循环,以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储消息的原始二进制数据。
在一些示例中,第四哈希表将消息的时间点映射到相应的高速缓存条目,相应的高速缓存条目存储相应数据索引和用于呈现特定协议、发送器102或消息类型的消息的任何逻辑。在这些示例中,针对特定协议、发送器或消息类型的至少一个消息,设备200被致使根据逻辑定位原始二进制数据。
设备200被致使使用数据索引从持久存储介质208中的位置检索消息的原始二进制数据210,并且将原始二进制数据转换为用于呈现与资产模拟有关的消息以训练用户来使用资产。在一些示例中,该消息包括多个协议、发送器102或消息类型的消息。在这些示例的一些中,设备被致使针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据、检索原始二进制数据以及转换原始二进制数据,该消息在时间点之前按时间顺序是最后的。在一些示例中,该设备进一步包括显示器件218,其被配置为呈现针对多个时间点的每个时间点的消息。
在一些示例中,其中该消息包括多个协议、发送器102或消息类型的消息,该设备被致使定位原始二进制数据212,包括被致使针对协议、发送器和消息类型中的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的。在这些示例中,设备被致使在检索原始二进制数据之前执行原始二进制数据的检查。也就是说,针对协议、发送器和消息类型中的每个组合的消息,设备被致使将针对协议、发送器和消息类型的组合的消息的原始二进制数据的数据索引与最后呈现的索引比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引。以及当数据索引和最后呈现的索引不同时,该设备被致使针对协议、发送器和消息类型的组合的消息检索原始二进制数据。
消息可以被呈现或者以其他方式向前播放(play forward),其中该时间点比选定的时间点更晚并且以按正向的时间顺序的顺序;或者该消息可以被呈现或者以其他的方式向后播放(play backward),其中该时间点比选定的时间点更早并且以按反向的时间顺序的顺序。在一些示例中,与资产的模拟相关联的消息包括用于以预定速率呈现的消息,并且该设备200被致使将原始二进制数据转换为消息,用于在包括选定的时间点和从选定的时间点开始的多个时间点上以与预定速率相同或不同的速率呈现。
在一些示例中,原始二进制数据212是历史原始二进制数据,并且消息是历史消息。在这些示例中的一些中,设备200进一步包括通信接口220,其被配置为接收实时原始二进制数据,该实时原始二进制数据可转换为与资产模拟相关联的实时消息。处理器202被配置为执行计算机可读程序代码以致使设备进一步将实时原始二进制数据转换为实时消息。该设备还可以被致使利用实时消息的协议名称、发送器标识符和消息类型以及用实时消息的时间点填充RAM 210中的四个嵌套的哈希表216。类似于历史消息,第四哈希表将实时消息的时间点映射到相应的数据索引,该相应的数据索引识别持久存储介质208中的相应的位置以存储实时消息的实时原始二进制数据。然后,该设备被致使将实时原始二进制数据212写入具有相关联元数据214的持久存储介质中的相应的位置,该相关联元数据识别实时消息的协议名称、发送器标识符和消息类型。实时原始二进制数据和实时消息此后是历史原始二进制数据和历史消息,并且可以从诸如持久存储介质中检索。
图3根据本公开的一些示例实施方式说明模拟器104的软件体系结构300。该软件体系结构可以被划分为由多个接口互相连接的多个组件或模块。如下所示和描述的,这些模块包括网络输入模块302、协议解析模块304、高速缓存模块306、持久存储模块308、日志文件输入模块310、回放控制模块312、调度模块314、时间管理模块316、协议处理模块318、数据聚合模块320以及一个或更多个专用模块322。
网络输入模块302从网络106上的发送器102读取诸如原始二进制数据包数据之类的原始二进制数据。在一些更特定的示例中,该模块从TCP或者UDP套接字中读取原始二进制数据。该模块可以作为后台线程运行。在涉及同时接收原始二进制数据的多个通讯接口220或者涉及多个协议的一些示例中,软件体系结构可以运行网络输入模块的多个实例,针对使用中的每个网络连接或者协议有一个实例。在网络输入模块和协议解析模块304之间的接口324可以将原始二进制数据发送到协议解析模块。还可以使用该接口进行交换的其他信息包括接收的字节数和发送器标识符诸如发送器的Internet协议(IP)地址和端口
协议解析模块304将解释原始二进制数据并且将数据转换为通过(一个或更多个)专用模块322可理解的消息。转换的数据表示通信协议中的消息。除了转换原始二进制数据外,协议解析模块记录读取了多少字节、接收的原始二进制(数据包)数据的类型(消息类型)和发送器标识符(例如,发送器的IP地址和端口)。在协议解析模块和高速缓存模块306之间的接口326可以用来发送原始二进制数据、消息、接收的字节数、发送器标识符、消息类型和描述(其可以是人类可读的)、以及协议名称(其可以是人类可读的)。在一些示例中,接收的字节数、发送器标识符、消息类型和描述、和/或协议名称可以在与原始二进制数据相关联的元数据中。
高速缓存模块306将组织和索引输入数据。组织是将接收的数据编目到四个嵌套哈希表216中的过程,其目的是能够快速定位在给定的协议、发送器、消息类型和时间上发送的数据,而不必扫描全部的记录的消息集。索引是将四条信息(即,协议、发送器、消息类型、时间)中的一个转变为哈希索引的过程。
嵌套的哈希表216(密钥值映射)被存储在RAM 210中,以避免数据库查询或文件扫描操作的花费,当原始二进制数据量(例如,数据包数量)较多时,该花费会引起不必要的开销量。在一个示例中,这些哈希表按以下顺序存储数据:协议、发送器、消息类型和时间,诸如以下结构:
<u>表#1</u> | <u>表#2</u> | <u>表#3</u> | <u>表#4</u> | <u>高速缓存条目</u> |
协议A | ||||
发送器X | ||||
消息类型#1 | ||||
时间 | ||||
1.2 | 条目#1 | |||
3.5 | 条目#2 | |||
6.8 | 条目#3 | |||
消息类型#2 | ||||
时间 | ||||
4.7 | 条目#4 | |||
8.9 | 条目#5 | |||
9.8 | 条目#6 | |||
发送器Y | ||||
消息类型#1 | ||||
时间 | ||||
0.8 | 条目#7 | |||
2.4 | 条目#8 | |||
5.3 | 条目#9 | |||
协议B | ||||
发送器X | ||||
消息类型#3 | ||||
时间 | ||||
2.3 | 条目#10 | |||
4.8 | 条目#11 | |||
7.2 | 条目#12 |
如图所示,第一哈希表通过协议名称存储项目,并且该存储的值是第二嵌套哈希表。第二哈希表通过发送器标识符存储项目,并且该存储的值是第三嵌套哈希表。适当的发送器标识符的一个示例是IP地址,尽管发送器标识符可以是一些其他唯一标识符,该唯一标识符唯一地识别数据的发送器102。这可以是在原始二进制数据内发送的标识符。
第三哈希表存储消息类型,该存储的值是第四嵌套哈希表。协议通常由多个类型的消息组成,每种消息具有唯一格式和目的。在一些示例中,表示消息类型的文本字符串或二进制标识符用作该第三哈希表的密钥。
第四哈希表按时间存储项目。在一些示例中,第四哈希表被排序以帮助便于数据的按时间顺序的重播。存储在该哈希表中的值是高速缓存条目,该高速缓存条目中的每个可以存储诸如数据索引、字节计数(在原始二进制数据中的字节数量)和发送器标识符之类的信息。数据索引可以表示数字初级密钥,其唯一地识别包含原始二进制数据的数据库中的记录或者平面文件内的定位,该平面文件内的定位表示在平面文件内的原始二进制数据的位置。以及再一次,发送器标识符是唯一地识别数据的发送器102的标识符,并且在一些实例中,其可以识别包含关于发送器更详细信息的数据库中的行。
在一些示例中,第四哈希表可以包括消息重播逻辑(规则),诸如最大倒回计数、最大倒回时间、期满时间和/或仅回放最新。最大倒回计数定义了当向后播放时回看的数据库记录或者平面文件定位的最大数目,其可以在消息分发时限制请求的数据量。最大倒回时间定义了在向后播放时最大回看时间,其也限制了请求的数据量。期满时间定义了最后发送后数据仍然有效的时间量。并且仅回放最新逻辑指示是否仅需要回放最新的消息或者是否需要回放在过去时间上已经接收的所有消息。
在一些示例中,第四哈希表还包括发送器名称、协议名称和消息类型,分别作为发送器、协议和消息类型的人类可读描述。第四哈希表可以包括最后播放的索引,该索引引用回放的最后消息,和/或创建时间,该创建时间指示哈希表中按时间顺序的第一消息的时间。
存储数据涉及制作原始二进制(数据包)数据的副本并将其存储在持久存储介质208中。除了二进制数据之外,还存储协议名称、发送器标识符和消息类型。该同样的信息也被写入RAM 210中的嵌套哈希表216。如果在持久存储介质中存储数据时不存在任何哈希表,则可以创建哈希表。最终结果是协议名称、发送器标识符、消息类型和数据索引驻留在RAM中。同样的信息还可以被存储在持久存储介质中。持久存储介质还具有原始二进制数据的副本,而原始二进制数据不保存在RAM中以释放RAM资源。通过只在RAM中存储数据索引,RAM的需求保持在最小值,并且释放软件体系结构300以记录,比如果所有的二进制数据都简单地被保存在RAM中的可能时间段,长得多的时间段。
在高速缓存模块306和持久存储模块308之间的接口328可以用来发送原始二进制数据及其相关联元数据,其如上所述,该元数据可以包括协议名称、发送器标识符、消息类型和字节数量,类似于在接口326上被发送的那些。接口328还可以用于请求持久存储介质208中的原始二进制数据的存储。
持久存储模块308是将原始二进制数据和相关联的元数据(例如,协议、发送器、消息类型和字节数)写入持久存储介质208(诸如物理硬盘驱动器)。持久存储模块还读取来自持久存储介质的数据。持久存储模块和持久存储介质之间的接口330可以使用一个或更多个常规应用程序编程接口(API)以写入持久存储介质以及从持久存储介质中读取。
持久存储模块308通过接口332被连接到日志文件输入模块310,在该接口332上,可以响应于数据库查询或文件读取操作(可以由常规API定义)发送原始二进制数据。在这方面,日志文件输入模块读取存储在先前保存的日志文件中的数据,并将其加载回软件体系结构300。日志文件输入模块还将在回放控制试图重播或回放给定的时间段内的历史数据时检索回放控制模块所需的数据。
在一些示例中,日志文件输入模块310通过隐藏日志文件的格式的细节来从软件体系结构300的其余部分提供抽象层。日志文件输入模块允许软件体系结构支持多个日志文件格式。这可以通过在这个模块中嵌入日志文件的数据结构和布局的具体的知识来实施。日志文件输入模块可以提取信息并将其转换为由回放控制模块312和高速缓存模块306两者可解释的形式。如果不将日志文件细节最小化到一个模块(即,日志文件输入模块),并且允许体系结构中的其他模块以一般方式处理数据,该抽象减少。
日志文件输入模块310和回放控制模块312之间的接口334可用于从持久存储介质208检索原始二进制数据(例如,具体的数据包)。在一些示例中,日志文件输入模块用具体的索引来请求原始二进制数据,该具体的索引可以表示初级密钥(例如,数据库表中的唯一行标识符)或文件中的定位(例如,从文件开始处的字节偏移)。可以在接口334上发送或不发送的附加信息包括协议名称、发送器标识符和消息类型。在一些示例中,只需要数据索引来支持回放。
当用户将时间更改为当前世界时间以外的值时,回放控制模块312将便于数据的重播。在一些示例中,数据重播包括三个阶段。在第一阶段中,索引阶段,确定什么数据需要被回放。当用户请求重新构建在由用户设置的给定时间点处的模拟器104的状态时,回放控制模块在每个协议、发送器和消息类型上循环,以检索在用户选择时间之前发送的最后消息。在一些示例中,此时从哈希表中只检索数据索引。
从第四哈希表中读取数据索引时,回放控制模块312可以执行检查,以确定数据索引是否用于已经是最后回放的消息。为了便于这一点,第四哈希表可以提供附加的簿记信息(book-keeping),以保持跟踪针对每个协议、发送器和消息类型组合所回放的最后数据索引。如果确定数据索引已经被检索(在先前查询期间),数据索引可以被忽略,从而防止检索重复和/或冗余数据。通过此检查的所有其他数据索引可以放入列表并且移交到数据重播的过程中的下一个阶段,数据检索阶段。
在一些示例中,一个或更多个协议、发送器或消息类型还具有管理数据应如何被回放或者数据何时被回放的附加逻辑,如上文所述,该逻辑可以在第四哈希表中定义。一些协议具有不需要对所有数据进行回放的重复数据,并且对于这些协议,仅处理在给定的时间点发送的最后的数据包足以重新构建模拟器104的状态。还有消息是由事件驱动的。这些消息只被发送一次,并且通常必须回放,以便完全重新构架在给定的时间的模拟器状态。逻辑可以被应用于消息类型以管理数据应该如何被回放以及消息是否可以在回放期间跳过。在重复数据的情况下,仅检索在给定的时间处的最后的数据索引是足够的。对于事件驱动的数据,软件体系结构300可以在检索当前时间和从执行查询开始的先前时间之间的所有消息。
在数据检索阶段,数据检索用于从持久存储介质208检索具体的原始二进制数据(例如,二进制数据的数据包)。在原始二进制数据被存储在持久存储介质中的数据库中的一些示例中,索引表示用于唯一识别表中的行的数据库中的初级密钥,并且原始二进制数据将被存储在初级密钥引用的数据库表中。在原始二进制数据被存储在持久存储介质中的平面文件中的一些示例中,数据索引表示在原始二进制数据驻留的文件中的定位。在任一情况下,原始二进制数据从持久存储介质中被检索,并被移交到第三阶段(反序列化阶段)。值得注意地,数据索引不必是连续的(即,它们可以是不连续的),并且可以随机检索原始二进制数据,这至少部分地允许反向回放。
在第三阶段(反序列化阶段),检索的原始二进制数据被传递到协议解析模块304,以解释原始二进制数据,并且将数据转换为类似于以前的(一个或更多个)专用模块322可理解的消息。回放控制模块312和协议解析模块之间的接口336可用于移交原始二进制数据。在一些示例中,该原始二进制数据是表示要在单个时间片(即,时间段)中回放的数据集的数据包。回放控制模块312生成检索的二进制数据的输出,以回放到与用于资产模拟的模拟器104(诸如飞行模拟器或者交通工具模拟器)相关联的显示器件。相应地,哈希表包括在持久存储模块308、回放控制模板312、时间管理模块316和系统的其他模块内的数据索引,哈希表能够重播来自持久存储介质208的历史数据,同时实时模拟数据可以继续被接收并存储,从而节省用于执行广泛的数据库查询的资源,并且允许快速定位在特定的时间处的模拟数据,以便在模拟中训练用户。
数据重播的三个阶段(包括索引阶段、数据检索阶段和反序列化阶段)随着时间进度而重复,并且不需要用户手动向前移动时间。用户可以设置初始时间点,并且允许软件体系结构300以固定速率的进度前进,使用新的时间作为具有应用的时间增量(time delta)的查询参数,来重复三个阶段。
在一些示例中,数据可以反向回放。向前播放数据可以利用以相同的顺序方式存储的数据来完成。当反向播放时,软件体系结构300不可以仅仅顺序地向后播放数据,因为事件驱动数据在事件之间创建较大的时间间隙,并且其回放可需要进一步及时向后看以确定最后发送(或者接收的)事件。通过将数据组织到四个嵌套哈希表216中,软件体系结构不需要针对给定协议、发送器和类型播放的最后消息来扫描持久性存储介质208。相反,可以执行对嵌套哈希表的查询,以确定在给定时间点之前回放的最后数据索引。由于使用哈希表对原始二进制数据进行索引,所以计算上的花费与向前播放数据时没有不同。
在实时或者存储的用于回放而检索的历史数据的任一情况下,高速缓存模块306和调度模块314之间的接口338可用于将消息传递给调度模块。该接口还可以用于传递每个消息包括的时间戳。
调度模块314用于将实时数据和/或历史数据报告给软件体系结构300的其他模块以进行进一步处理。在一些示例中,调度模块指示数据是从实时连接(表示当前世界时间)还是从历史数据接收。以这种方式,模拟器104可以根据需要指示选择处理或者忽略数据,这是有益的,由于在某些情况下,实时数据和历史数据二者都可以同时流过体系结构。调度模块还可以起到从(一个或更多个)专用模块322提取出其他模块的内部工作的作用。除了消息是来自实时源(发送器102)还是回放源(例如,日志文件),听从调度模块的模块不需要任何附加的知识。这可以简化到(一个或更多个)专用模块的(一个或更多个)接口,并且减少代码复杂度。
调度模块314可以通过相应的接口340和342被连接到协议处理模块318和数据聚合模块320。这些接口可用于传递协议具体消息、时间戳和(实时或历史)消息的来源。
协议处理模块318将解释来自调度模块314的消息,并根据(一个或更多个)专用模块322的要求对任何消息内容起作用。在一些示例中,这可以包括协议处理模块,其将协议具体消息转换为由(一个或更多个)应用程序具体调度可理解的公共格式。然后,协议处理模块将消息移交到(一个或更多个)专用模块以供呈现。该移交可以在协议处理模块和具体模块之间的接口344上完成。
(一个或更多个)专用模块322包括模拟器104的用户接口元件或逻辑,其对从协议处理模块318接收的消息起作用。(一个或更多个)专用模块提供用户接口,通过该用户接口,用户可以改变他们感兴趣时间,然后将其转发到时间管理模块316,诸如在(一个或更多个)专用模块和时间管理模块之间的接口346上。该接口可用于在高速缓存和回放模块中命令和控制时间。该接口还可用于控制回放速率和回放方向(即,正向或反向)。
时间管理模块316向回放控制模块312指示(一个或更多个)专用模块322正在呈现什么时间点。模拟器104的用户与其用户接口交互,用户接口反过来告诉时间管理模块检索什么时间点的数据。回放控制模块312可以使用该时间作为参数来确定什么原始二进制数据应该从持久存储介质208中检索并最终回放。时间管理模块还可以控制回放速率以及回放方向(即,向前或向后)。回放控制模块312生成用于重播到与模拟器104相关联的显示器件的所检索的二进制数据的输出。相应地,包括持久存储模块308和回放控制模块312和系统的其他模块内的数据索引的哈希表能够重播来自持久存储介质208的历史数据,同时实时模拟数据可以继续被接收并存储。
收集数据用于后分析的数据聚合模块320也连接到调度模块314。数据聚合模块通常只查找实时消息,因为每条消息只能被处理一次。当用户通过时间管理模块316报告他们想要在时间上返回,实时和历史消息二者都可以流到调度模块314。然后调度模块可以通知数据聚合模块它是正在利用实时数据(其是数据聚合模块可能关心)还是利用历史数据(当其是实时数据时,其已经被数据聚合模块处理过)工作。
为了进一步说明软件体系结构300,图4和图5根据一些示例实施方式说明了分别在仅实时数据和仅历史数据的情况下软件体系结构的操作。图3被参考以说明在实时数据和历史数据情况下软件体系结构的操作。
参考图3,在仅实时数据的情况下,软件体系结构300只是处理实时数据,没有被用户要求呈现历史数据。时间是当前的世界时间。在该使用情况下,回放控制模块312不需要运行,因为所有数据都是从网络输入模块302实时传入的。原始二进制数据由协议解析模块304解析并转变为协议具体消息。这些消息被移交到高速缓存模块306,该高速缓存模块306经由调度模块314将消息调度到软件体系结构的其余部分。附加地,协议解析模块还移交原始二进制数据及其相关联元数据的副本,以便将原始二进制数据存储在持久存储介质208中以供以后检索。
如图4所示,在仅涉及历史数据的情况下,软件体系结构300只是回放来自日志文件(即,持久存储208)的数据。在这种情况下,网络输入模块302不需要运行,因为没有实时数据正在被接收或者处理。一个或更多个回放控制模块312被实例化,以便于检索和回放来自持久存储介质208的历史数据。回放控制模块可以在单独的后台线程中运行,以便不会给处理用户请求的主用户界面线程(例如,鼠标点击、显示等)带来负担。
回放控制模块312可以以与协议需求相称的速度(例如,20-30Hz)以循环的方式操作。在每个循环期间,回放控制模块可以检查RAM 210中的四个嵌套哈希表216,以确定需要从持久存储介质208中检索什么数据。它由通过每个协议、发送器和消息类型的循环来实现这一点。回放控制模块可以使用由时间管理模块316所报告的时间来确定时间窗口以检索消息。限制什么原始二进制数据应该被回放的(在第四哈希表中的)回放逻辑也可以被应用。
在收集表示要回放的数据的数据索引之后,回放控制模块312可以在数据回放的数据检索阶段请求来自持久存储介质208的数据。随着数据已经被检索或者在数据已经被检索之后,将原始二进制数据移交到协议解析模块304,并转变为协议具体消息。然后将这些消息从高速缓存模块306移交到调度模块314,调度模块将数据调度到包括(一个或更多个)专用模块322的软件体系结构的其余部分。
简要地参考图3,在实时数据和历史数据二者的情况下,用户仍在收集实时数据,但已经请求检索和呈现历史数据。在这种使用情况下,软件体系结构300继续接收和存储实时数据,同时也检索和重播来自持久存储介质208的历史数据。这些操作可以类似于上文所描述的执行,包括结合参考图4和图5所描述的使用情况。
图6根据一些示例实施方式说明了包括资产模拟来训练用户使用资产的方法600的各种操作的流程图。如块602所示,方法包括将可转换为与资产模拟相关联的消息的原始二进制数据212存储在持久存储介质208中。持久存储介质存储原始二进制数据和相关联元数据214,这些元数据214分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器和消息类型。
该方法包括将协议名称、发送器标识符和消息类型存储在RAM 210中,并排除原始二进制数据,如块604所示。RAM将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表216的相应的哈希表中,该四个嵌套哈希表216的相应的哈希表进一步包括第四哈希表。该第四哈希表将消息的时间点映射到相应的数据索引,该数据索引识别持久存储介质208中的相应的位置,在该位置处存储消息的原始二进制数据212。
该方法包括接收用于从选定的时间点开始的部分消息的回放的请求,该选定的时间点早于接收请求的时间,并且响应请求,如块606和块608所示。
针对包括选定的时间点和从选定的时间点开始的多个时间点中的每个时间点,响应请求包括处理器使用RAM 210中的四个嵌套的哈希表216而不访问持久存储介质208,来定位消息的原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,如块610所示。这包括在相应的哈希表216中在协议名称、发送器标识符和消息类型上循环,以识别第四哈希表中的数据索引,该数据索引识别在持久存储介质208中的位置,在该位置处存储消息的原始二进制数据212。处理器也使用数据索引从持久存储介质中的位置检索消息的原始二进制数据,并且将原始二进制数据转换为用于与资产模拟结合呈现的消息以训练用户来使用资产,如块612和块614分别所示。
参考图2如上所述,被配置为实施发送器102或模拟器104的设备200可以包括处理器202,其连接到存储器204和用户输入接口206。存储器可以包括持久存储介质208和RAM210。该设备还可以包括显示器件218和通信接口220。
处理器202通常是能够处理诸如例如数据、计算机程序和/或其他适当的电子信息等信息的任何计算机硬件。处理器由电子电路集合组成,其中一些电路可以被封装为集成电路或多个互连集成电路(集成电路有时更常见地称为“芯片”)。处理器可以被配置为执行计算机程序,这些程序可以存储在处理器上,或者以其他方式存储在(相同设备或另一个设备的)存储器204中。
处理器202可以是多个处理器、多处理器内核或一些其他类型的处理器,这取决于特定的实施方式。进一步,处理器可以使用多个异构处理器系统来实施,其中主处理器在单个芯片上用一个或更多个次级处理器呈现。作为另一个说明性示例,处理器可以是包含相同类型的多个处理器的对称多处理器系统。然而在另一个示例中,处理器可以被体现为或者以其他方式包括一个或更多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。因此,虽然处理器可以能够执行计算机程序来执行一个或更多个功能,不同的示例的处理器可以能够不借助计算机程序执行一个或更多个功能。
存储器204通常是能够存储诸如例如数据、计算机程序(例如,计算机可读程序代码)和/或在临时基础和/或持久基础上的其他适当信息的任何计算机硬件。这可以包括一个或更多个计算机程序以实施软件体系结构300。存储器可以包括非易失持久存储介质208和RAM 210。适当的持久存储的示例尤其包括硬盘、闪存、光盘或上述的一些组合。光盘可以包括压缩磁盘-读/写(CD-R/W)、DVD等。在不同的情况下,该存储器可称为计算机可读存储介质。计算机可读存储介质是能够存储信息的非临时器件,并且与计算机可读传输介质(诸如能够将信息从一个位置输送到另一个位置的电子瞬时信号)区分开。如本文所描述的计算机可读介质更一般地指代计算机可读存储介质或者计算机可读传输介质。
用户输入接口206可以是有线的或者无线的,并且可以被配置为从用户接收信息到设备200,诸如用于处理、存储和/或显示。用户输入接口的适当的示例包括麦克风、图像或视频捕获器件、键盘或键区、操纵杆、触摸敏感表面(与触摸屏分离或集成触摸屏)、生物传感器等。用户输入接口是一种特定类型的用户接口,其还可以包括用于与诸如打印机、扫描仪之类的外围器件通信的一个或更多个接口。
用户接口可以进一步包括显示器件218。显示器件可以被配置为向用户呈现或以其他方式显示信息,其中适当的示例包括液晶显示器(LCD)、发光二极管显示器(LED)、等离子显示面板(PDP)等。
通信接口220可以被配置为诸如将信息发送到(一个或更多个)其他设备、网络等和/或从(一个或更多个)其他设备、网络等接收信息。通信接口可以被配置为通过物理(有线)和/或无线通信链路发送和/或接收信息。适当的通信接口的示例包括网络接口控制器(NIC)、无线NIC(WNIC)等。
如上所指示的,程序代码指令可以被存储在处理器中,并且由处理器执行,以实施系统、子系统以及本文所描述的其相应元件的功能。如将理解的,任何适当的程序代码指令可以从计算机可读存储介质加载到计算机上或者其他可编程设备以产生特定的机器,使得特定机器成为实施本文指定功能的装置。这些程序代码指令还可以被存储在计算机可读存储介质中,该计算机可读存储介质可以引导计算机、处理器或其他可编程设备以特定的方式起作用,以生成特定机器或特定制造物。存储在计算机可读存储介质中的指令可以产生制造物,其中制造物成为执行本文描述的功能的装置。程序代码指令可以从计算机可读存储介质中检索,并且被加载到计算机、处理器或其他可编程设备以配置计算机、处理器或其他可编程设备来执行在计算机、处理器或其他可编程设备上执行的操作或者由计算机、处理器或其他可编程设备执行的操作。
程序代码指令的检索、加载和执行可以按顺序执行,使得一次检索、加载和执行一个指令。在一些示例实施方式中,可以并行地执行检索、加载和/或执行,使得多个指令可以一起被检索、加载和/或执行。程序代码指令的执行可以产生计算机实施的过程,使得由计算机、处理器或其他可编程设备执行的指令提供用于本文描述的实施功能的操作。
指令经由处理器的执行,或指令在计算机可读存储介质中的存储,支持执行具体功能的操作组合。以这种方式,设备200可以包括处理器202和耦合到处理器的计算机可读存储介质或者存储器204,其中处理器被配置为执行存储在存储器中的计算机可读程序代码。将理解地,一个或更多个功能以及功能的组合可以由专用基于硬件的计算机系统和/或处理器实施,其执行特定功能或专用硬件和程序代码指令的组合。
进一步,本公开包含根据以下实施例的实施例:
实施例1.一种用于模拟资产以训练用户来使用资产的设备,该设备包含:
持久存储介质,其被配置为存储可转换为与资产的模拟相关联的消息的原始二进制数据,持久存储介质被配置为存储原始二进制数据和相关联元数据,该元数据分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器和消息类型;
随机存取存储器(RAM),其被配置为存储协议名称、发送器标识符和消息类型,并且排除原始二进制数据,RAM被配置为将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表中的相应的哈希表中,四个嵌套哈希表进一步包括第四哈希表,该第四哈希表将消息的时间点映射到识别持久存储介质中的相应位置的相应数据索引,在该相应位置处存储消息的原始二进制数据;
用户输入接口,其被配置为接收针对从选定的时间点开始的部分消息的回放的请求,该选定的时间点早于接收请求的时间;以及
处理器,其被配置为执行计算机可读程序代码,以致使设备响应需求,包括针对包括选定的时间点和从选定的时间点开始的多个时间点中的每个时间点,该设备被致使至少:
使用RAM中的四个嵌套哈希表而不访问持久存储介质来定位消息的原始二进制数据,该原始消息的时间点在时间点之前按时间顺序是最后的,包括该设备被致使在相应哈希表中的协议名称、发送器和消息类型上循环,以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储消息的原始二进制数据;
使用数据索引从持久存储介质中的位置检索消息的原始二进制数据;以及
将原始二进制数据转换为用于与资产的模拟结合呈现的消息以训练用户来使用资产。
实施例2.根据实施例1所述的设备,其进一步包含:
显示器件,其被配置为呈现针对多个时间点中的每个时间点的消息。
实施例3.根据实施例1所述的设备,其中所述消息包括多个协议、发送器或消息类型的消息,以及
其中,所述设备被致使定位原始二进制数据、检索原始二进制数据以及转换原始二进制数据包括被致使针对协议、发送器和消息类型中的每个组合的消息定位原始二进制数据、检索原始二进制数据以及转换原始二进制数据,该消息在时间点之前按时间顺序是最后的。
实施例4.根据实施例1所述的设备,其中消息包括多个协议、发送器或消息类型的消息,并且该设备被致使定位原始二进制数据包括被致使针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,以及
其中该设备被致使检索消息的原始二进制数据,包括针对协议、发送器和消息类型的每个组合的消息,该设备被致使至少:
将针对协议、发送器和消息类型的组合的原始二进制数据的数据索引与最后呈现的索引比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引;以及
只有当数据索引和最后呈现的索引不同时,才检索针对协议、发送器和消息类型的组合的消息的原始二进制数据。
实施例5.根据实施例1所述的设备,其中多个时间点早于选定的时间点,并按反向的时间顺序的顺序。
实施例6.根据实施例1所述的设备,其中与资产的模拟相关联的消息包括以预定速率呈现的消息,以及
其中,该设备被致使转换原始二进制数据包括被致使将原始二进制数据转化为消息,用于在包括选定时间点和从选定时间点开始的多个时间点上以与预定速率不同的速率呈现。
实施例7.根据实施例1所述的设备,其中第四哈希表将消息的时间点映射到相应的高速缓存条目,该相应的高速缓存条目存储相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,以及
其中,针对特定协议、发送器或消息类型的至少一个消息,设备被致使定位消息的原始二进制数据包括被致使根据逻辑定位原始二进制数据。
实施例8.根据实施例1所述的设备,其中原始二进制数据是历史原始二进制数据,消息是历史消息,以及设备进一步包含通信接口,其被配置为接收可转换为与资产的模拟相关联的实时消息的实时原始二进制数据,以及
其中处理器被配置为执行计算机可读程序代码以致使设备进一步至少:
将实时原始二进制数据转换为实时消息;
用实时消息的协议名称、发送器标识符和消息类型以及用实时消息的时间点填充RAM中的四个嵌套哈希表,第四哈希表将实时消息的时间点映射到相应的数据索引,该相应的数据索引识别持久存储介质中的相应的位置,在该相应位置中存储实时消息的实时原始二进制数据;以及
将实时原始二进制数据写入具有相关联元数据的持久存储介质中的相应位置,该元数据识别实时消息的协议名称、发送器标识符和消息类型,实时原始二进制数据和实时消息此后为历史原始二进制数据和历史消息。
实施例9.一种模拟资产以训练用户来使用资产的方法,该方法包含:
将可转换为与资产的模拟相关联的消息的原始二进制数据存储在持久存储介质中,持久存储介质存储原始二进制数据和相关联元数据,该元数据分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器和消息类型;
将协议名称、发送器标识符和消息类型存储在随机存取存储器(RAM)中,并排除原始二进制数据,RAM将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表的相应哈希表中,该四个嵌套哈希表进一步包括第四哈希表,该第四哈希表将消息的时间点映射到识别持久存储介质中的相应位置的相应数据索引,在该相应位置处存储消息的原始二进制数据;
接收从选定的时间点开始的部分消息的回放请求,该选定的时间点早于接收请求的时间;以及
响应于请求,包括针对包括选定时间点的和从选定时间点开始的多个时间点中的每个时间点,处理器至少:
使用RAM中的四个嵌套哈希表而不访问持久存储介质,来定位消息的原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,包括在相应哈希表中的协议名称、发送器标识符和消息类型上循环以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储消息的原始二进制数据;
使用数据索引从持久存储介质中的位置检索消息的原始二进制数据;以及
将原始二进制数据转换为用于与资产的模拟结合呈现的消息,以训练用户来使用资产。
实施例10.根据实施例9所述的方法,其进一步包含:
在显示器件上呈现针对多个时间点的每个时间点的消息。
实施例11.根据实施例9所述的方法,其中消息包括多个协议、发送器或消息类型的消息,以及
其中,定位原始二进制数据、检索原始二进制数据以及转换原始二进制数据包括针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据、检索原始二进制数据以及转换原始二进制数据,该消息在时间点之前按时间顺序是最后的。
实施例12.根据实施例9所述的方法,其中消息包括多个协议、发送器或消息类型的消息,并且定位原始二进制数据包括针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,以及
其中检索消息的原始二进制数据,包括针对协议、发送器和消息类型的每个组合的消息,处理器至少:
将针对协议、发送器和消息类型的组合的消息的原始二进制数据的数据索引与最后呈现的索引比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引;以及
只有当数据索引和最后呈现的索引不同时,才针对协议、发送器和消息类型的组合的消息检索原始二进制数据。
实施例13.根据实施例9所述的方法,其中多个时间点早于选定的时间点,并且按反向的时间顺序的顺序。
实施例14.根据实施例9所述的方法,其中与资产的模拟相关联的消息包括以预定速率呈现的消息,以及
其中转换原始二进制数据包括将原始二进制所述转换为消息,用于在包括选定时间点和从选定的时间开始的多个时间点上以与预定速率不同的速率呈现。
实施例15.根据实施例9所述的方法,其中第四哈希表将消息的时间点映射到相应的高速缓存条目,该相应的高速缓存条目存储相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,以及
其中针对特定的协议、发送器或消息类型的至少一个消息,定位消息的原始二进制数据包括根据逻辑定位原始二进制数据。
实施例16.根据实施例9所述的方法,其中原始二进制数据是历史原始二进制数据,消息是历史消息,以及方法进一步包含:
接收实时原始二进制数据,其可转换为与操作相关联的实时消息;
将原始二进制数据转换为实时消息;
利用实时消息的协议名称、发送器标识符和消息类型以及用实时消息的时间点填充RAM中的四个嵌套哈希表,第四哈希表将实时消息的时间点映射到相应数据索引,相应数据索引识别持久存储介质中的相应的位置,在所述相应的位置中存储实时消息的实时原始二进制数据;以及
将实时原始二进制数据写入到具有相关联元数据的持久存储介质中的相应的位置,该元数据识别实时消息的协议名称、发送器标识符和消息类型,实时原始二进制数据和实时消息此后为历史原始二进制数据和历史消息。
实施例17.一种用于模拟资产以训练用户来使用资产的计算机可读存储介质,计算机可读存储介质是非暂时性,并且具有存储在其中的计算机可读程序代码部分,其响应处理器的执行,致使设备至少:
将可转换为与资产的模拟相关联的消息的原始二进制数据存储在持久存储介质中,持久存储介质被配置为存储原始二进制数据和相关联元数据,该元数据分别通过协议名称、发送器标识符和消息类型识别消息的协议、发送器和消息类型;
将协议名称、发送器标识符和消息类型存储在随机存取存储器(RAM)中,并排除原始二进制数据,RAM被配置为将协议名称、发送器标识符和消息类型存储在四个嵌套哈希表的相应哈希表中,该四个嵌套哈希表进一步包括第四哈希表,第四哈希表将消息的时间点映射到识别持久存储介质中的相应位置的相应数据索引,在该相应位置处存储消息的原始二进制数据;
接收从选定的时间点开始的部分消息的回放请求,该选定的时间点早于接收请求的时间;以及
响应于请求,包括针对包括选定时间点的和从选定时间点开始的多个时间点中的每个时间点,设备被致使至少:
使用RAM中的四个嵌套哈希表而不访问持久存储介质,来定位消息的原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,包括设备被致使以在相应哈希表中的协议名称、发送器标识符和消息类型上循环以识别第四哈希表中的数据索引,该数据索引识别持久存储介质中的位置,在该位置处存储消息的原始二进制数据;
使用数据索引从持久存储介质中的位置检索消息的原始二进制数据;以及
将原始二进制数据转换为用于与资产的模拟结合呈现的消息,以训练用户来使用资产。
实施例18.根据实施例17所述的计算机可读存储介质,其具有存储在其中的计算机可读程序代码,其响应处理器的执行,致使设备进一步:
在显示器件上呈现针对多个时间点的每个时间点的消息。
实施例19.根据实施例17所述的计算机可读存储介质,其中消息包括多个协议、发送器或消息类型的消息,以及
其中设备被致使定位原始二进制数据、检索原始二进制数据和转换原始二进制数据包括被致使针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据、检索原始二进制数据和转换原始二进制数据,该消息在时间点之前按时间顺序是最后的。
实施例20.根据实施例17所述的计算机可读存储介质,其中消息包括多个协议、发送器或消息类型的消息,并且设备被致使以定位原始二进制数据包括被致使针对协议、发送器和消息类型的每个组合的消息定位原始二进制数据,该消息的时间点在时间点之前按时间顺序是最后的,以及
其中设备被致使以检索消息的原始二进制数据,包括针对协议、发送器和消息类型的每个组合的消息,该设备被致使至少:
将针对协议、发送器和消息类型的组合的消息的原始二进制数据的数据索引与最后呈现的索引比较,该最后呈现的索引识别针对协议、发送器和消息类型的组合的最后呈现的消息的原始二进制数据的数据索引;以及
只有当数据索引和最后呈现的索引不同时,才检索协议、发送器和消息类型的组合的消息的原始二进制数据。
实施例21.根据实施例17所述的计算机可读存储介质,其中多个时间点早于选定的时间点,并且按反向的时间顺序的顺序。
实施例22.根据实施例17所述的计算机可读存储介质,其中与模拟资产相关联的消息包括以预定速率呈现的消息,以及
其中设备被致使转换原始二进制数据包括被致使将原始二进制所述转换为消息,用于在包括选定时间点和从选定的时间点开始的多个时间点上以与预定速率不同的速率呈现。
实施例23.根据实施例17所述的计算机可读存储介质,其中第四哈希表将消息的时间点映射到相应的高速缓存条目,该相应的高速缓存条目存储相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,以及
其中针对特定协议、发送器或消息类型的至少一个消息,该装置被致使定位消息的原始二进制数据包括被致使根据逻辑定位原始二进制数据。
实施例24.根据实施例17所述的计算机可读存储介质,其中原始二进制数据是历史原始二进制数据,消息是历史消息,并且设备进一步包含通信接口,其被配置为接收可转换为与资产的模拟相关联的实时消息的实时原始二进制数据,以及
其中计算机可读存储介质具有存储在其中的计算机可读程序代码部分,其响应处理器的执行,致使设备进一步至少:
将实时原始二进制数据转换为实时消息;
利用实时消息的协议名称、发送器标识符和消息类型以及用实时消息的时间点填充RAM中的四个嵌套哈希表,第四哈希表将实时消息的时间点映射到相应数据索引,相应数据索引识别持久存储介质中的相应的位置,在所述相应的位置中存储实时消息的实时原始二进制数据;以及
将实时原始二进制数据写入到具有相关元联元数据的持久存储介质中的相应的位置,该元数据识别实时消息的协议名称、发送器标识符和消息类型,实时原始二进制数据和实时消息此后为历史原始二进制数据和历史消息。
本文阐明的公开的一些修改和其他实施方式将引起本领域技术人员注意到,本公开涉及的领域具有上述描述和相关附图呈现的教示的益处。因此,将理解的是,本公开不限于所公开的具体实施方式,以及修改和其他实施方式指代被包括在所附的权利要求范围内。另外,尽管上述说明书和相关的附图在上下文中描述元素和/或功能的某种示例组合的示例实施方式上下文中,将理解的是,元素和/或功能的不同组合可以通过替换实施方式提供,而不偏离所附权利要求的范围。在这方面,例如,还设想了与上文明确描述的不同的元素和/或功能的组合,如在某些所附权利要求中阐明。虽然本文采用的具体的术语,但它们只是在一般性和描述性意义上使用,而不是为了限制的目的。
Claims (15)
1.一种用于模拟资产以训练用户来使用所述资产的设备,所述设备包含:
持久存储介质(208),其被配置为存储可转换为与所述资产的模拟相关联的消息的原始二进制数据(212),所述持久存储介质(208)被配置为存储所述原始二进制数据(212)和相关联元数据(214),所述元数据(214)分别通过协议名称、发送器标识符和消息类型识别所述消息的协议、发送器和消息类型;
随机存取存储器即RAM(210),其被配置为存储所述协议名称、发送器标识符和消息类型,并且排除所述原始二进制数据,所述RAM被配置为将所述协议名称、发送器标识符和消息类型存储在四个嵌套哈希表(216)的相应哈希表中,所述四个嵌套哈希表(216)进一步包括第四哈希表,所述第四哈希表将所述消息的时间点映射到识别所述持久存储介质中的相应位置的相应数据索引,在所述相应位置处存储所述消息的所述原始二进制数据;
用户输入接口(206),其被配置为接收针对从选定的时间点开始的部分所述消息的回放的请求,所述选定的时间点早于接收所述请求的时间;以及
处理器(202),其被配置为执行计算机可读程序代码,以致使所述设备响应所述请求,包括针对包括所述选定的时间点和从所述选定的时间点开始的多个时间点中的每个时间点,所述设备被致使至少:
使用所述RAM中的所述四个嵌套哈希表(216)而不访问所述持久存储介质(208),来定位消息的所述原始二进制数据,所述消息的时间点在所述时间点之前按时间顺序是最后的,包括所述设备被致使在所述相应哈希表(216)中的所述协议名称、发送器标识符和消息类型上循环,以识别所述第四哈希表中的数据索引,所述数据索引识别所述持久存储介质中的位置,在所述位置处存储所述消息的所述原始二进制数据(212);
使用所述数据索引从所述持久存储介质(208)中的所述位置检索所述消息的所述原始二进制数据(212);以及
将所述原始二进制数据(212)转换为用于与所述资产的模拟结合呈现的所述消息以训练所述用户来使用所述资产。
2.根据权利要求1所述的设备,其进一步包含:
显示器件(218),其被配置为呈现针对所述多个时间点中的每个时间点的所述消息。
3.根据权利要求1所述的设备,其中所述消息包括多个协议、发送器或消息类型的消息,以及
其中,所述设备被致使定位(610)所述原始二进制数据、检索(612)所述原始二进制数据以及转换(614)所述原始二进制数据包括被致使针对协议、发送器和消息类型中的每个组合的所述消息定位所述原始二进制数据、检索所述原始二进制数据以及转换所述原始二进制数据,针对协议、发送器和消息类型中的每个组合的所述消息在所述时间点之前按时间顺序是最后的。
4.根据权利要求1所述的设备,其中所述消息包括多个协议、发送器或消息类型的消息,并且所述设备被致使定位(610)所述原始二进制数据(212)包括被致使定位(610)针对协议、发送器和消息类型的每个组合的所述消息的所述原始二进制数据(212),针对协议、发送器和消息类型的每个组合的所述消息的时间点在所述时间点之前按时间顺序是最后的,以及
其中所述设备被致使检索(612)所述消息的所述原始二进制数据(212)包括针对协议、发送器和消息类型的每个组合的所述消息,所述设备被致使至少:
将针对协议、发送器和消息类型的所述组合的所述消息的所述原始二进制数据(212)的所述数据索引与最后呈现的索引比较,所述最后呈现的索引识别针对协议、发送器和消息类型的所述组合的最后呈现的消息的所述原始二进制数据(212)的所述数据索引;以及
只有当所述数据索引和所述最后呈现的索引不同时,检索(612)针对协议、发送器和消息类型的所述组合的所述消息的所述原始二进制数据(212)。
5.根据权利要求1所述的设备,其中所述多个时间点早于所述选定的时间点,并按反向的时间顺序的顺序。
6.根据权利要求1所述的设备,其中与所述资产的模拟相关联的所述消息包括用于以预定速率呈现的消息,以及
其中,所述设备被致使转换(614)所述原始二进制数据(212)包括被致使将所述原始二进制数据(212)转换(614)为所述消息,用于在包括所述选定的时间点和从所述选定的时间点开始的所述多个时间点上以与所述预定速率不同的速率呈现。
7.根据权利要求1所述的设备,其中所述第四哈希表将所述消息的所述时间点映射到相应的高速缓存条目,所述相应的高速缓存条目存储所述相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,以及
其中,针对所述特定协议、发送器或消息类型的至少一个消息,所述设备被致使定位所述消息的所述原始二进制数据(212)包括被致使根据所述逻辑定位所述原始二进制数据(212)。
8.根据权利要求1所述的设备,其中所述原始二进制数据(212)是历史原始二进制数据,所述消息是历史消息,以及所述设备进一步包含通信接口,所述通信接口被配置为接收可转换为与所述资产的模拟相关联的实时消息的实时原始二进制数据(212),以及
其中所述处理器(202)被配置为执行计算机可读程序代码以致使所述设备进一步至少:
将所述实时原始二进制数据(212)转换(614)为所述实时消息;
用所述实时消息的所述协议名称、发送器标识符和消息类型以及用所述实时消息的时间点填充所述RAM(210)中的所述四个嵌套哈希表(216),所述第四哈希表将所述实时消息的所述时间点映射到相应的数据索引,所述相应的数据索引识别所述持久存储介质(208)中的相应的位置,在所述相应的位置中存储针对所述实时消息的所述实时原始二进制数据(212);以及
将所述实时原始二进制数据(212)写入具有相关联元数据(214)的所述持久存储介质(208)中的所述相应的位置,所述元数据识别所述实时消息的所述协议名称、发送器标识符和消息类型,所述实时原始二进制数据(212)和实时消息此后为历史原始二进制数据和历史消息。
9.一种模拟资产以训练用户来使用所述资产的方法,所述方法包含:
在持久存储介质(208)中存储(602)可转换为与所述资产的模拟相关联的消息的原始二进制数据(212),所述持久存储介质(208)存储所述原始二进制数据(212)和相关联元数据(214),所述元数据分别通过协议名称、发送器标识符和消息类型识别所述消息的协议、发送器和消息类型;
在随机存取存储器即RAM(210)中存储(604)所述协议名称、发送器标识符和消息类型,并排除所述原始二进制数据(212),所述RAM(210)将所述协议名称、发送器标识符和消息类型存储在四个嵌套哈希表(216)的相应哈希表中,所述四个嵌套哈希表进一步包括第四哈希表,所述第四哈希表将所述消息的时间点映射到识别所述持久存储介质中的相应位置的相应数据索引,在所述相应位置处存储所述消息的所述原始二进制数据;
接收(606)从选定的时间点开始的部分所述消息的回放请求,所述选定的时间点早于接收所述请求的时间;以及
响应于所述请求,包括针对包括所述选定时间点和从所述选定时间点开始的多个时间点中的每个时间点,处理器至少:
使用所述RAM(210)中的所述四个嵌套哈希表(216)而不访问所述持久存储介质(208),来定位(610)消息的所述原始二进制数据(212),所述消息的时间点在所述时间点之前按时间顺序是最后的,包括在所述相应的哈希表中的所述协议名称、发送器标识符和消息类型上循环以识别所述第四哈希表中的数据索引,所述数据索引识别所述持久存储介质中的位置,在所述位置处存储所述消息的所述原始二进制数据(212);
使用所述数据索引从所述持久存储介质(208)中的所述位置检索(612)所述消息的所述原始二进制数据(212);以及
将所述原始二进制数据(212)转换(614)为用于与所述资产的模拟结合呈现的所述消息,以训练所述用户来使用所述资产,以及
在显示器件(218)上呈现针对所述多个时间点的每个时间点的所述消息。
10.根据权利要求9所述的方法,其中所述消息包括多个协议、发送器或消息类型的消息,以及
其中,定位(610)所述原始二进制数据(212)、检索(612)所述原始二进制数据(212)以及转换(614)所述原始二进制数据(212)包括针对协议、发送器和消息类型的每个组合的所述消息定位所述原始二进制数据(212)、检索(612)所述原始二进制数据(212)以及转换(614)所述原始二进制数据(212),针对协议、发送器和消息类型的每个组合的所述消息在所述时间点之前按时间顺序是最后的。
11.根据权利要求9所述的方法,其中所述消息包括多个协议、发送器或消息类型的消息,并且定位(610)所述原始二进制数据(212)包括针对协议、发送器和消息类型的每个组合的所述消息定位(610)所述原始二进制数据(212),针对协议、发送器和消息类型的每个组合的所述消息的时间点在所述时间点之前按时间顺序是最后的,以及
其中检索(612)所述消息的所述原始二进制数据(212)包括针对协议、发送器和消息类型的每个组合的所述消息,所述处理器至少:
将针对协议、发送器和消息类型的所述组合的所述消息的所述原始二进制数据(212)的所述数据索引与最后呈现的索引比较,所述最后呈现的索引识别针对协议、发送器和消息类型的所述组合的最后呈现的消息的所述原始二进制数据的所述数据索引;以及
只有当所述数据索引和所述最后呈现的索引不同时,检索(612)针对协议、发送器和消息类型的所述组合的所述消息的所述原始二进制数据(212)。
12.根据权利要求9至11中的任何一项所述的方法,其中所述多个时间点早于所述选定的时间点,并且按反向的时间顺序的顺序。
13.根据权利要求9至12中的任何一项所述的方法,其中与所述资产的模拟相关联的所述消息包括用于以预定速率呈现的消息,以及
其中转换(614)所述原始二进制数据(212)包括将所述原始二进制数据转换为所述消息,用于在包括所述选定的时间点和从所述选定的时间点开始的所述多个时间点上以与所述预定速率不同的速率呈现。
14.根据权利要求9所述的方法,其中所述第四哈希表将所述消息的所述时间点映射到相应的高速缓存条目,所述相应的高速缓存条目存储所述相应的数据索引和用于呈现特定协议、发送器或消息类型的消息的任何逻辑,以及
其中针对所述特定协议、发送器或消息类型的至少一个消息,定位(610)所述消息的所述原始二进制数据(212)包括根据所述逻辑定位(610)所述原始二进制数据(212)。
15.根据权利要求9所述的方法,其中所述原始二进制数据(212)是历史原始二进制数据,所述消息是历史消息,以及所述方法进一步包含:
接收实时原始二进制数据(212),其可转换为与操作相关联的实时消息;
将所述实时原始二进制数据转换(614)为所述实时消息;
利用所述实时消息的所述协议名称、发送器标识符和消息类型以及利用所述实时消息的时间点填充所述RAM(210)中的所述四个嵌套哈希表(216),所述第四哈希表将所述实时消息的所述时间点映射到相应数据索引,所述相应数据索引识别所述持久存储介质(208)中的相应的位置,在所述相应的位置中存储所述实时消息的所述实时原始二进制数据(212);以及
将所述实时原始二进制数据(212)写入到具有相关联元数据(214)的所述持久存储介质中的所述相应的位置,所述元数据识别所述实时消息的所述协议名称、发送器标识符和消息类型,所述实时原始二进制数据(212)和实时消息此后为历史原始二进制数据和历史消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/674,812 | 2017-08-11 | ||
US15/674,812 US11468781B2 (en) | 2017-08-11 | 2017-08-11 | Simulation of an asset including message playback using nested hash tables |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109389880A true CN109389880A (zh) | 2019-02-26 |
CN109389880B CN109389880B (zh) | 2022-07-15 |
Family
ID=62750811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810840144.6A Active CN109389880B (zh) | 2017-08-11 | 2018-07-27 | 包括使用嵌套哈希表的消息回放的资产模拟 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11468781B2 (zh) |
EP (1) | EP3441893A1 (zh) |
CN (1) | CN109389880B (zh) |
CA (1) | CA3007173C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449278B2 (en) * | 2020-09-04 | 2022-09-20 | Netapp, Inc. | Methods for accelerating storage operations using computational network and storage components and devices thereof |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1398715A2 (en) * | 2002-09-11 | 2004-03-17 | Hughes Electronics Corporation | System and method for pre-fetching content in a proxy architecture |
US20040111443A1 (en) * | 2001-05-30 | 2004-06-10 | Wong Thomas K. | Apparatus and methods for caching objects using main memory and persistent memory |
US20050289190A1 (en) * | 2004-06-29 | 2005-12-29 | Powell Matthew S | Meta-data approach to indexing, retrieval and management of stored messages in a portable communication device |
US20060085489A1 (en) * | 2004-10-15 | 2006-04-20 | Microsoft Corporation | Memory cache management in XML/relational data mapping |
CN101604337A (zh) * | 2009-07-13 | 2009-12-16 | 中兴通讯股份有限公司 | 一种哈希表项存储、查找装置及方法 |
US20100023726A1 (en) * | 2008-07-28 | 2010-01-28 | Aviles Joaquin J | Dual Hash Indexing System and Methodology |
CN101685449A (zh) * | 2008-09-26 | 2010-03-31 | 国际商业机器公司 | 一种用于连接多个异构分布式数据库中的表的方法和系统 |
EP2175369A2 (en) * | 2008-10-10 | 2010-04-14 | Sap Ag | Concurrent collaborative processes for data management and retrieval |
WO2013061680A1 (ja) * | 2011-10-26 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、データ・アクセス方法およびプログラム |
CN103460208A (zh) * | 2011-04-08 | 2013-12-18 | 波音公司 | 用于将数据加载到时态数据仓库的方法和系统 |
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
US20140250142A1 (en) * | 2013-03-01 | 2014-09-04 | Paraccel, Inc. | Disk-based hash join process |
US20140297652A1 (en) * | 2013-03-15 | 2014-10-02 | Akuda Labs Llc | Hierarchical, Parallel Models for Extracting in Real-Time High-Value Information from Data Streams and System and Method for Creation of Same |
CN105099698A (zh) * | 2014-05-16 | 2015-11-25 | 波音公司 | 交通工具数据传送 |
CN105335300A (zh) * | 2014-12-10 | 2016-02-17 | 成都科来软件有限公司 | 一种数据存储方法及装置 |
US20160092454A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Sparse file access |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN106134200A (zh) * | 2014-03-24 | 2016-11-16 | 高通股份有限公司 | Hevc经解码图片哈希sei消息用于多层编解码器的使用 |
CN106446140A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 用于数据持久化的方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484250B1 (en) | 2000-01-19 | 2002-11-19 | Qualcomm, Incorporated | Hash technique eliminating pointer storage to reduce RAM size |
US6757673B2 (en) * | 2000-10-09 | 2004-06-29 | Town Compass Llc | Displaying hierarchial relationship of data accessed via subject index |
US7293102B2 (en) * | 2002-03-26 | 2007-11-06 | Hewlett-Packard Development Company | Method and apparatus for storing data and replaying stored data in a temporally accurate manner |
US7058639B1 (en) * | 2002-04-08 | 2006-06-06 | Oracle International Corporation | Use of dynamic multi-level hash table for managing hierarchically structured information |
US7228258B2 (en) * | 2003-11-12 | 2007-06-05 | The Boeing Company | Real asset-to-simulated environment bridge and method |
US7752279B2 (en) * | 2007-05-29 | 2010-07-06 | Research In Motion Limited | System for facilitating thread-based message prioritization |
JP4672076B2 (ja) * | 2009-09-24 | 2011-04-20 | 藤倉ゴム工業株式会社 | 緩作動開閉弁 |
US8616883B2 (en) | 2010-12-15 | 2013-12-31 | The Boeing Company | Simulation control system for an integrated live and simulation environment for an aircraft |
US9596205B2 (en) * | 2013-08-14 | 2017-03-14 | Yahoo! Inc. | System and method for mailing list identification and representation |
US9804752B1 (en) * | 2016-06-27 | 2017-10-31 | Atlassian Pty Ltd | Machine learning method of managing conversations in a messaging interface |
-
2017
- 2017-08-11 US US15/674,812 patent/US11468781B2/en active Active
-
2018
- 2018-06-01 CA CA3007173A patent/CA3007173C/en active Active
- 2018-06-22 EP EP18179232.6A patent/EP3441893A1/en not_active Ceased
- 2018-07-27 CN CN201810840144.6A patent/CN109389880B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111443A1 (en) * | 2001-05-30 | 2004-06-10 | Wong Thomas K. | Apparatus and methods for caching objects using main memory and persistent memory |
EP1398715A2 (en) * | 2002-09-11 | 2004-03-17 | Hughes Electronics Corporation | System and method for pre-fetching content in a proxy architecture |
US20050289190A1 (en) * | 2004-06-29 | 2005-12-29 | Powell Matthew S | Meta-data approach to indexing, retrieval and management of stored messages in a portable communication device |
US20060085489A1 (en) * | 2004-10-15 | 2006-04-20 | Microsoft Corporation | Memory cache management in XML/relational data mapping |
US20100023726A1 (en) * | 2008-07-28 | 2010-01-28 | Aviles Joaquin J | Dual Hash Indexing System and Methodology |
CN101685449A (zh) * | 2008-09-26 | 2010-03-31 | 国际商业机器公司 | 一种用于连接多个异构分布式数据库中的表的方法和系统 |
EP2175369A2 (en) * | 2008-10-10 | 2010-04-14 | Sap Ag | Concurrent collaborative processes for data management and retrieval |
CN101604337A (zh) * | 2009-07-13 | 2009-12-16 | 中兴通讯股份有限公司 | 一种哈希表项存储、查找装置及方法 |
CN105515776A (zh) * | 2010-03-05 | 2016-04-20 | 交互数字专利控股公司 | 给设备提供安全性的方法和装置 |
CN103460208A (zh) * | 2011-04-08 | 2013-12-18 | 波音公司 | 用于将数据加载到时态数据仓库的方法和系统 |
WO2013061680A1 (ja) * | 2011-10-26 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、データ・アクセス方法およびプログラム |
US20140250142A1 (en) * | 2013-03-01 | 2014-09-04 | Paraccel, Inc. | Disk-based hash join process |
US20140297652A1 (en) * | 2013-03-15 | 2014-10-02 | Akuda Labs Llc | Hierarchical, Parallel Models for Extracting in Real-Time High-Value Information from Data Streams and System and Method for Creation of Same |
CN106134200A (zh) * | 2014-03-24 | 2016-11-16 | 高通股份有限公司 | Hevc经解码图片哈希sei消息用于多层编解码器的使用 |
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
CN105099698A (zh) * | 2014-05-16 | 2015-11-25 | 波音公司 | 交通工具数据传送 |
US20160092454A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Sparse file access |
CN105335300A (zh) * | 2014-12-10 | 2016-02-17 | 成都科来软件有限公司 | 一种数据存储方法及装置 |
CN106446140A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 用于数据持久化的方法及装置 |
Non-Patent Citations (3)
Title |
---|
ANDREAS EHLIAR: "Extending the BlockRAMs in FPGAs to Support Caches and Hash Tables in an Efficient Manner", 《2012 IEEE 20TH INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES》, 30 September 2012 (2012-09-30) * |
现代图书情报技术: "一种用嵌套哈希表和动态数组规范MARC数据的方法", 《现代图书情报技术》, 31 December 2007 (2007-12-31) * |
裴欧亚: "一种面向海量分布式数据库的嵌套查询策略", 《华东师范大学学报》, 31 December 2014 (2014-12-31) * |
Also Published As
Publication number | Publication date |
---|---|
US11468781B2 (en) | 2022-10-11 |
EP3441893A1 (en) | 2019-02-13 |
CA3007173C (en) | 2022-09-13 |
US20190051206A1 (en) | 2019-02-14 |
CA3007173A1 (en) | 2019-02-11 |
CN109389880B (zh) | 2022-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740429B2 (en) | Apparatus and method for acquiring, managing, sharing, monitoring, analyzing and publishing web-based time series data | |
US8352495B2 (en) | Distributed platform for network analysis | |
Liu et al. | A generalized framework for measuring pedestrian accessibility around the world using open data | |
CN113240403A (zh) | 一种基于多源数据的工程建设项目管理系统和方法 | |
KR101877828B1 (ko) | 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템 | |
US20150161224A1 (en) | Optimized Network Analysis Rendering and User Interfaces | |
US20090254583A1 (en) | Linking discrete dimensions to enhance dimensional analysis | |
CN111861406A (zh) | 一种地图变更审核系统及方法 | |
CN109389880A (zh) | 包括使用嵌套哈希表的消息回放的资产模拟 | |
CN117235040A (zh) | 一种基于数据治理的大数据中台架构系统 | |
CN110796425A (zh) | 知识产权转移转化管理方法、系统及存储介质 | |
CN114722789A (zh) | 数据报表集成方法、装置、电子设备及存储介质 | |
JPH06149903A (ja) | 同時協調作業環境を提供する情報処理システム | |
WO2014073581A1 (ja) | アセスメント装置、アセスメントシステム、アセスメント方法、及びコンピュータが読み取り可能な記録媒体 | |
Batty et al. | Visually-intelligible land use transportation models for the rapid assessment of urban futures | |
Wilder et al. | System Documentation Using Tables: A Short Course | |
CN109525642A (zh) | 一种用户机制下的lims系统客户数据自动化上报方法 | |
Wei et al. | Research on the application of ietm in whole life cycle of equipment | |
CN115905216A (zh) | 一种基于区块链的数据管理系统 | |
Abdelsalam et al. | ICT to enhance administrative performance: a case study from Egypt | |
CN114677247A (zh) | 一种基于数据驱动的企业学习方法及系统 | |
Iyengar et al. | A system approach to information system: Design for a city planning agency | |
CA2760184A1 (en) | System and method of generating a human-readable data synopsis | |
CN113919308A (zh) | 一种选票信息的确定方法、装置、电子设备及存储介质 | |
CN114443985A (zh) | 一种信息流编排方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |