一种高速数据的分发方法和装置与流程

文档序号:11878795阅读:234来源:国知局
一种高速数据的分发方法和装置与流程
本发明涉及计算机仿真
技术领域
,尤其涉及一种高速数据的分发方法和装置。
背景技术
:当前在基于HLA(中文:高级体系结构,英文:HighLevelArchitecture)的实时仿真过程中,RTI(中文:运行时底层结构,英文:Run-TimeInfrastructure)在数据传输时均采用原始数据发送,即数据发布端将要发送的数据不经任何处理,按照原始数据长度发送到RTI,而RTI将收到的数据直接传送到订阅端。现有的RTI数据分发方法在传输大量或高频数据时,由于数据量大,容易造成RTI阻塞。同时当数据传输频率过高,超过了HLA支撑环境回调函数所允许的最小回调时间,RTI会将处理不了的数据丢弃而造成数据不完整,或者将推迟进入下一仿真步长的时间而不能满足实时仿真需求。技术实现要素:技术问题有鉴于此,本发明要解决的技术问题是,如何提供一种高速数据的分发方法和装置能够减少RTI的数据传输量,尽量降低RTI阻塞可能。解决方案为解决以上技术问题,本发明在第一方面提供一种高速数据的分发方法,包括:将高速数据按产生顺序排序;将排序后的所述高速数据按类型打包压缩;构造压缩型交互类数据;调用数据分发服务发布所述压缩型交互类数据。在一种可能的实现方式中,所述压缩型交互类数据,包括:压缩类型,包括发送端使用的压缩算法,字段长度为16B,类型为字符型;原始交互类类型名称,字段长度为128B,类型为字符型;被压缩数据块数,字段长度为16B,类型为无符号整型;以及压缩后数据。为解决以上技术问题,本发明在第二方面提供一种高速数据的分发方法,包括:接收压缩型交互类数据;解析所述压缩型交互类数据;其中,所述压缩型交互类数据,包括:压缩类型,包括发送端使用的压缩算法,字段长度为16B,类型为字符型;原始交互类类型名称,字段长度为128B,类型为字符型;被压缩数据块数,字段长度为16B,类型为无符号整型;以及压缩后数据。在一种可能的实现方式中,解析所述压缩型交互类数据,包括:根据所述压缩类型选择解压算法;根据所述原始交互类类型名称选择还原的交互类;根据所述被压缩数据块数将所述压缩后数据还原为原始交互类,并对所述原始交互类进行业务逻辑处理。为解决以上技术问题,本发明在第三方面提供一种高速数据的分发装置,包括:排序模块,用于将高速数据按产生顺序排序;压缩模块,用于将排序后的所述高速数据按类型打包压缩;构造模块,用于构造压缩型交互类数据;发布模块,用于调用数据分发服务发布所述压缩型交互类数据。在一种可能的实现方式中,所述构造模块构造的压缩型交互类数据包括:压缩类型,包括发送端使用的压缩算法,字段长度为16B,类型为字符型;原始交互类类型名称,字段长度为128B,类型为字符型;被压缩数据块数,字段长度为16B,类型为无符号整型;以及压缩后数据。为解决以上技术问题,本发明在第四方面提供一种高速数据的分发装置,包括:接收模块,用于接收压缩型交互类数据;解析模块,用于解析所述压缩型交互类数据;其中,所述压缩型交互类数据,包括:压缩类型,包括发送端使用的压缩算法,字段长度为16B,类型为字符型;原始交互类类型名称,字段长度为128B,类型为字符型;被压缩数据块数,字段长度为16B,类型为无符号整型;以及压缩后数据。在一种可能的实现方式中,所述解析模块被配置为:根据所述压缩类型选择解压算法;根据所述原始交互类类型名称选择还原的交互类;根据所述被压缩数据块数将所述压缩后数据还原为原始交互类,并对所述原始交互类进行业务逻辑处理。有益效果本发明实施例提供的一种高速数据的分发方法和装置,通过将高速数据按产生顺序排序,将排序后的所述高速数据按类型打包压缩,构造压缩型交互类数据,调用数据分发服务发布所述压缩型交互类数据,能够降低发送数据量,减少数据包发送频率。本发明实施例提供的一种高速数据的分发方法和装置,通过接收压缩型交互类数据,解析所述压缩型交互类数据,能够在高速数据处理中对数据进行解压与恢复,实现数据无损传递的同时减少了订阅端重复获取数据包的次数,提高了数据传输的效率。根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。图1示出本发明实施例提供的一种高速数据的分发方法的流程图;图2示出本发明另一实施例提供的一种高速数据的分发方法的流程图;图3示出数据由发布端到订阅端的示意图;图4示出应用层联邦成员发布数据的流程图;图5示出本发明实施例提供的一种高速数据的分发装置的结构示意图;图6示出本发明实施例提供的一种高速数据的分发装置的结构示意图。具体实施方式以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。实施例1图1示出本发明实施例提供的一种高速数据的分发方法的流程图,如图1所示,该方法主要包括:步骤S11、将高速数据按产生顺序排序。当联邦成员发送高速数据时,将本仿真步长本类型高速数据按产生顺序排序。步骤S12、将排序后的所述高速数据按类型打包压缩。步骤S13、构造压缩型交互类数据。表1示出本发明实施例构造的压缩型交互类数据。compressTypeorinTypeNumData表1如表1所示,压缩型交互类数据包括:compressType:压缩类型,发送端使用的压缩算法,字段长度为16B,类型为字符型。orinType:原始交互类类型名称,字段长度为128B,类型为字符型。Num:被压缩数据块数,字段长度为16B,类型为无符号整型。Data:压缩后数据。步骤S14、调用数据分发服务发布所述压缩型交互类数据。此外,当数据为正常数据时,直接调用RTI数据分发服务发布数据。由此,本发明实施例提供的一种高速数据的分发方法,通过将高速数据按产生顺序排序,将排序后的所述高速数据按类型打包压缩,构造压缩型交互类数据,调用数据分发服务发布所述压缩型交互类数据,能够降低发送数据量,减少数据包发送频率。实施例2图2示出本发明另一实施例提供的一种高速数据的分发方法的流程图,如图2所示,该方法主要包括:步骤S21、接收压缩型交互类数据。步骤S22、解析所述压缩型交互类数据。结合表1所示,所述压缩型交互类数据,包括:压缩型交互类数据包括:compressType:压缩类型,发送端使用的压缩算法,字段长度为16B,类型为字符型。orinType:原始交互类类型名称,字段长度为128B,类型为字符型。Num:被压缩数据块数,字段长度为16B,类型为无符号整型。Data:压缩后数据。在一种可能的实现方式中,步骤S22具体可以包括:步骤S221、根据compressType选择解压算法。步骤S222、根据orinType选择还原的交互类。步骤S223、根据Num将Data还原为原始交互类,并对所述原始交互类进行业务逻辑处理。本实施例所述的步骤S21-S22可以在实施例1所述的步骤S11-S14之后实施。由此,本发明实施例提供的一种高速数据的分发方法,通过接收压缩型交互类数据,解析所述压缩型交互类数据,能够在高速数据处理中对数据进行解压与恢复,实现数据无损传递的同时减少了订阅端重复获取数据包的次数,提高了数据传输的效率。实施例3图3示出数据由发布端到订阅端的示意图,图3中发布端适用于实施例1所述的方法,订阅端适用于实施例2所述的方法。如图3所示,发送方将正常数据直接送HLA数据分发管理服务进行发布,将高速数据进行高速数据分类打包压缩,然后将压缩结果送数据分发服务进行发布,可以对应于实施例1所述的步骤S11-S14。数据分发管理将被订阅的数据发给接收方。接收方收到数据后判断该数据是否为高速数据,如果是高速数据,则进行解压还原,可以对应于实施例2所述的步骤S21-S22,然后对还原后的数据进行处理,否则直接处理正常数据。由此,本发明实施例提供的一种高速数据的分发方法,通过在发布端一侧将高速数据按产生顺序排序,将排序后的所述高速数据按类型打包压缩,构造压缩型交互类数据,调用数据分发服务发布所述压缩型交互类数据,能够降低发送数据量,减少数据包发送频率。并且,通过在订阅端一侧接收并解析所述压缩型交互类数据,能够在高速数据处理中对数据进行解压与恢复,实现数据无损传递的同时减少了订阅端重复获取数据包的次数,提高了数据传输的效率。实施例4图4示出应用层联邦成员发布数据的流程图,如图4所示,在联邦成员初始化完成后,进入等待接收数据状态,其具体过程如下:1.如果此时联邦成员产生了新数据,则:(1)如果该数据是正常数据(即不是高速数据),(2)则调用数据分发服务将该数据发布,(3)否则对数据分类排队,如果未达到队列上限,(a)则回到步骤1,(b)否则从高速数据队列集S中取出该队列Q(即S中无Q),将Q加入待压缩队列集S’,转到步骤2(2)。2.否则如果达到本仿真步长的结束点,则(1)将高速数据队列集S全部加入到待压缩队列集S’中,令S={},(2)对待压缩队列表中的每一队列,做:(a)将队列中的元素按产生顺序依次排列放在待压缩缓存,(b)对上步骤的缓存调用压缩算法进行压缩,并使用压缩数据构造交互类数据结构Cdata;(c)调用数据分发服务,将压缩数据发布.(d)将该队列从待压缩队列表中删除。3.回到步骤1。实例1以联邦成员A向联邦成员B发送数据为例:1)该数据为交互类,类型为InteractionA,单包长度为512KB,发送频率为200HZ,仿真步长为100ms,则联邦成员A判断该数据为高速数据,转步骤22)将数据加入队列,如果未达到队列上限,2.1则回到步骤1,2.2否则从高速数据队列集S中取出该队列Q(即S中无Q),将Q加入待压缩队列集S’,转到步骤2(2)。3)否则如果达到本仿真步的结束点,则3.1将高速数据队列集S全部加入到待压缩队列集S’中,令S={},3.2对待压缩队列表中的每一队列,做:3.2.1将队列中的元素按产生顺序依次排列放在待压缩缓存,3.2.2对上步骤的缓存调用lz4算法进行压缩,并使用压缩数据构造交互类数据结构CData,其中compressType=”lz4”,orinType=“InteractionA”,Num=“20”3.2.3调用RTI数据分发服务,将压缩数据发布.3.2.4将该队列从待压缩队列表中删除。4)联邦成员B收到CData,解析compressType=”lz4”,orinType=“InteractionA”,Num=“20”5)联邦成员B用lz4算法将压缩数据解压,并按照顺序构造20个InteractionA交互类。实例2以联邦成员A向联邦成员B发送数据为例:1)该数据为交互类,类型为InteractionA,单包长度为1024KB,发送频率为50HZ,仿真步长为200ms,则联邦成员A判断该数据为高速数据,转步骤22)将数据加入队列,如果未达到队列上限,2.1则回到步骤1,2.2否则从高速数据队列集S中取出该队列Q(即S中无Q),将Q加入待压缩队列集S’,转到步骤2(2)。3)否则如果达到本仿真步的结束点,则3.1将高速数据队列集S全部加入到待压缩队列集S’中,令S={},3.2对待压缩队列表中的每一队列,做:3.2.1将队列中的元素按产生顺序依次排列放在待压缩缓存,3.2.2对上步骤的缓存调用zlib算法进行压缩,并使用压缩数据构造交互类数据结构CData,其中compressType=”zlib”,orinType=“InteractionA”,Num=“10”3.2.3调用RTI数据分发服务,将压缩数据发布.3.2.4将该队列从待压缩队列表中删除。4)联邦成员B收到CData,解析compressType=”zlib”,orinType=“InteractionA”,Num=“10”5)联邦成员B用lz4算法将压缩数据解压,并按照顺序构造10个InteractionA交互类。实施例5图5示出本发明实施例提供的一种高速数据的分发装置10的结构示意图,该装置10可以用于实现实施例1所述的方法,并可以对应于实施例3所述的发布端的装置或设备。如图5所示该装置10包括:排序模块110、压缩模块120、构造模块130和发布模块140。排序模块110,用于将高速数据按产生顺序排序,压缩模块120,用于将排序后的所述高速数据按类型打包压缩,构造模块130,用于构造压缩型交互类数据,发布模块140,用于调用数据分发服务发布所述压缩型交互类数据。在一种可能的实现方式中,结合表1所示,构造模块130构造的压缩型交互类数据包括:compressType:压缩类型,发送端使用的压缩算法,字段长度为16B,类型为字符型。orinType:原始交互类类型名称,字段长度为128B,类型为字符型。Num:被压缩数据块数,字段长度为16B,类型为无符号整型。Data:压缩后数据。由此,本发明实施例提供的一种高速数据的分发装置,通过将高速数据按产生顺序排序,将排序后的所述高速数据按类型打包压缩,构造压缩型交互类数据,调用数据分发服务发布所述压缩型交互类数据,能够降低发送数据量,减少数据包发送频率。实施例6图6示出本发明实施例提供的一种高速数据的分发装置20的结构示意图,该装置20可以用于实现实施例2所述的方法,并可以对应于实施例3所述的订阅端的装置或设备。如图6所示,该装置20包括:接收模块210和解析模块220,接收模块210,用于接收压缩型交互类数据,解析模块220,用于解析所述压缩型交互类数据,其中,所述压缩型交互类数据,包括:压缩类型,包括发送端使用的压缩算法,字段长度为16B,类型为字符型;原始交互类类型名称,字段长度为128B,类型为字符型;被压缩数据块数,字段长度为16B,类型为无符号整型;以及压缩后数据。在一种可能的实现方式中,解析模块220被配置为:根据所述压缩类型选择解压算法;根据所述原始交互类类型名称选择还原的交互类;根据所述被压缩数据块数将所述压缩后数据还原为原始交互类,并对所述原始交互类进行业务逻辑处理。由此,本发明实施例提供的一种高速数据的分发装置,通过接收压缩型交互类数据,解析所述压缩型交互类数据,能够在高速数据处理中对数据进行解压与恢复,实现数据无损传递的同时减少了订阅端重复获取数据包的次数,提高了数据传输的效率。在一种可能的实现方式中,本发明实施例还提供一种一种高速数据的分发系统,该系统包括实施例5提供的高速数据的分发装置10和实施例6提供的高速数据的分发装置20。本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1