买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】信息化体系结构中间件数据并行分发方法及系统_苏州浪潮智能科技有限公司_201611073853.3 

申请/专利权人:苏州浪潮智能科技有限公司

申请日:2016-11-29

公开(公告)日:2020-10-23

公开(公告)号:CN106790402B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.23#授权;2017.06.23#实质审查的生效;2017.05.31#公开

摘要:本发明公开了一种基于信息化体系结构中间件的数据并行分发方法及系统,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,进行信息分发与解析。实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间。根据发布节点和订阅节点之间的距离,将订阅节点划分为不同的节点域,并利用订阅节点的资源,已收到数据的订阅节点将接收到的数据转发给其他订阅者,在数据分发过程中,参与转发的订阅节点可以是多个,由此达到并行的目的。进而减小时延的目标,提高了系统的实时性。

主权项:1.基于信息化体系结构中间件的数据并行分发方法,其特征在于,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,进行信息分发与解析;将发布节点原始消息与经处理后的路由信息共同封装成待发送消息;将待发送消息按构建分发路径发给发送节点的目的节点;当数据经由网络到达接收方订阅节点时,发现接收数据并解析;获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。

全文数据:信息化体系结构中间件数据并行分发方法及系统技术领域[0001]本发明涉及基于信息化体系结构中间件的数据并行分发,尤其涉及一种基于信息化体系结构中间件的数据并行分发方法及系统。背景技术[0002]随着信息化建设的蓬勃发展,信息系统呈现出以网络为中心的趋势,对系统中各成员信息交互的实时性要求日益提高。在虚拟试验领域,伴随着HLAHighLevelArchitecture,高级体系结构)、TENATestandTrainingEnablingArchitecture,试验与训练使能体系)等技术的广泛应用,系统规模不断增大,试验任务不断加重,尤其是近年来,以低成本、低风险和高可靠性为特征的虚拟试验技术在武器装备研制和生产过程中得到了广泛的应用,随着跨区域、跨靶场联合试验需求的发展,虚拟试验系统内部及系统间的信息传输对于实时性的要求也越来越高,其实时性受到严峻的挑战。信息化体系结构中间件作为虚拟试验系统实现信息交互的基本媒介,负责信息化体系结构试验系统应用建立及运行期间所有通信的基础设施,其实时性直接决定了虚拟试验过程的真实性和结果的可信度。中间件位于应用软件与基础软件之间,为系统提供统一的标准化API接口和协议,屏蔽底层硬件平台和操作系统的差异性,统一管理网络资源的网络通信和应用之间的互操作,提供了更加灵活高效地开发方式。因此,开发实时性强的信息传输中间件是该领域亟待解决的问题。[0003]信息化体系结构主要由四大部分组成,分别是信息化体系结构公共设施、信息化体系结构基础工具、信息化体系结构资源应用和信息化体系结构辅助工具。信息化体系结构中间件属于信息化体系结构公共设施,负责构建的系统在运行过程中数据的交互和通信。现有的信息化体系结构中间件在发布者与订购者存在一对多关系时,采用的多播及广播模式受限于网络路由的支持,而单播模式存在由于等待周期而导致系统分发时间延长的问题,当系统中订阅节点较多时,发布节点的负载过重,订阅节点的等待时延会显著增加。[0004]信息化体系结构中间件使用UDP发送交互对象消息的工作原理如图1所示,在中间件内部包2发布节点的交互对象发送器20中,各个服务包1的原始消息11被封装成封装消息12后投入主动对象22的发送队列23,其消息处理线程24负责从发送队列23中将消息并发给UDP发送器25,UDP发送器25将消息发送至目的成员。当数据经由网络3到达订阅节点时,由监听器26发现数据,并及时通知UDP接收器27,UDP接收器27接收数据后将其投入交互对象接收器21中主动对象22’的接收队列28,其消息处理线程24’负责从接收队列25中取出消息经过解析消息29后按消息类型回调服务包1中的对象管理服务消息处理函数13。[0005]基于节点ID的按位X0R异或)的节点间距离的度量方法,这种节点距离度量方法借鉴于Kademlia简称Kad算法,Kad算法是DHT中原理和实现最简单实用,应用最广泛的一种。在Kad网络中,所有信息均以〈Aey,的形式存储在DHT中,Aey是160位长的标识符,网络中的所有计算机都被随机分配一个同样为160位的专属节点ID,位于Aey空间中。〈Aey,对的信息将被存储在节点ID最“接近”AeW直的节点上。[0006]在Kad网络中,所有节点均作为一棵二叉树的叶子节点,且节点的位置仅由其节点ID的最短前缀唯一确定。而不同节点之间的距离是基于节点ID的按位X0R异或度量的,且仅有这一种度量方法,保证了节点ID的连续性,节点见為•的距离如公式⑴所示。[0007]distanceVi,Nj=IDi©IDj1该距离与物理距离、路由器跳数无关,只是一种逻辑上的度量描述。XOR是一种有效的度量方式,具体体现在一下几点:⑴节点与本身的X0R距离是0,即distanceVi,见〇=0;2父01?距离是对称的,即118七11〇6\^爲)=118七11〇6\〔,见.);3X0R距离符合三角特性,即当三个节点见,馬和愚中,节点见•,愚的距离最大时,distanceWi,Nk^distanceWi,Nj+distanceVj,At〇[0008]⑷XOR亥画了基于二叉树描绘的系统中距离的概念,如图2所示:由图2可以看出,在节点A1100、B1010、C0111、D0011中与节点P1011X0R值分别是01117、00011、110012、10008,因此距离最近的节点是在同一棵子树上的节点B〇[0009]Kad设置了一个路由表称为if-桶,系统中的每个节点,保存与自身距离在区间[21-2i+10幻彡160内的节点的信息,包含的信息有〈IP地址,UDP端口,节点ID〉。每个iH甬内的节点按照最近联系的时间排序,对于桶号较小的桶,其节点数一般为〇,对于桶号较小的桶,其桶内节点数通常很大,为平衡网络负载,设置参数作为桶内最大节点数。发明内容[0010]本发明针对目前信息化体系结构中间件缺乏多订阅机制下的并行数据分发能力的问题,为此,本发明提供一种基于信息化体系结构中间件的数据并行分发方法、系统,它具有实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间,进而减小时延的目标,提高了系统的实时性的优点。[0011]为了实现上述目的,本发明采用如下技术方案。[0012]针对系统中一个发布节点对应多个订阅节点的情况,并且发布节点与各个订阅节点都已满足订阅发布关系,基于信息化体系结构中间件的数据并行分发方法,包括,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,信息分发与解析。[0013]进一步的,基于信息化体系结构中间件的数据并行分发方法,包括将发布节点原始消息与经处理后的路由信息共同封装成待发送消息。将待发送消息按构建分发路径发给发送节点的目的节点。当数据经由网络到达接收方订阅节点时,发现接收数据并解析。获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。[0014]进一步的,分发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。[0015]进一步的,数据分发的路径为一个“多叉树”的树型结构。规划路径采用Kad算法的X0R方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态,使分发效率达到最优。节点的标识符ID是节点IP地址经由单向散列算法散列得到。由单向散列算法原理可知,该ID仍然满足随机性的要求。如图3所示。树的深度和结点的度将会影响分发效率,当树的深度减小,树的分支结点的度将增大,叶子结点数量增多,使分支结点的负载加重。[0016]进一步的,将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2H,2m的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序,此时域的编号为m,发布节点位于0号域。数据只能从距离发布节点近对应的域编号较小)的节点流向距离发布节点远对应的域编号较大)的节点。域的编号越小,表示距离发布者的距离越近。这样所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,整个过程保证了数据单向传输。[0017]进一步的,订阅节点划分到域的流程是,输入发布订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。[0018]构建完节点域结构后,为每个节点选择合适的目的节点集。若第i号节点域中有m个节点4142"金,其下一级节点域为编号」,该域中有11个节点81,82."811,则节点81,82--Bn为节点A1,A2."Am的目的节点集,且A1,A2."Am的目的节点集不能交叉。将节点A1,A2."Am按照统一的映射规则分别映射到第j号域的一个子集,子集互不相交且子集的合集为整个第j号域,则每个节点映射的子集中的所有节点就是该节点的目的节点集。[0019]进一步的,选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。[0020]进一步的,信息化体系结构中间件的数据并行分发方法,构建包含所有的节点的数据分发路径后,信息分发前。还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。[0021]某个订阅节点A与发布节点P之间的距离为节点A的ID与发布节点P的ID的异或值,当ID为32位的二进制数,此节点间的距离也为一个32位的二进制数,将距离用(2表示,其中ai为0或1。[0022]distanceP,A=a3ia3〇Kaiao2第1个域,包含距离发布节点的距离为[1,2的节点信息,也就是距离为1的节点信息,艮Pao=l且ak=0k辛0,此时节点落在第一个域的概率用公式⑶表示;第2个域,包含距离发布节点的距离为[2,4的节点信息,也就是距离为2或3的节点信息,即ai=l且ak=0k辛1或者a0=ai=l且ak=0k辛0,1,可以进一步表示为ai=l且ak=0kl,此时节点落在第二个域的概率用公式4表示;由此规律可得,第i个域,包含距离发布节点的距离为BHj1的节点信息,即aH=l且ak=0ki_l,此时节点落在第k个域的概率用公式5表示;理论上分发路径“多叉树”的深度最大不超过32,但通过上述分析可知,节点落入编号小的域的概率非常小,节点极大可能落入编号较大的几个域中,路径的深度维持在一个比较合理的水平。此外还可以得出,节点落在第i个域的概率是第(i-1个域的两倍,即第i个域中的节点数量是第(i_l个域的两倍。保证了每个节点的目的节点不小于2,在数据分发时负载被有效转移到“下游”订阅节点,订阅节点的资源得到充分的利用,为数据并行分发的效率提供了保障。[0023]进一步的,分析ID位数为m,第i个域,包含距离发布节点的距离为D1-1,〗1的节点信息,即ai-1=l且ak=0ki-l,此时节点落在第k个域的概率:QUOTE[0024]进一步的,基于信息化体系结构中间件数据并行分发方法,在发布节点,各个服务包的原始消息被交互对象发送器封装后投入主动对象的发送队列,主动对象的消息处理线程从发送队列中取出交互对象消息后,发给发送方的并行分发模块,并行分发模块将交互对象消息和前期处理得到的路由信息封装后,由UDP发送器发给路由信息表中发送节点的目的节点。在订阅节点,当数据经由网络到达接收方时,由监听器发现数据,并及时通知UDP接收器。UDP接收器接收数据后首先解析数据,取出的交互对象消息被投入主动对象的接收队列,其消息处理线程负责从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数;取出的路由信息经处理后判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发给UDP发送器,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。[0025]基于信息化体系结构中间件数据并行分发系统,包括:1数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据。对取出的路由信息判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发至该订阅节点的目的节点,若没有目的节点,则退出并行分发。[0026]2路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能。[0027]3数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能。[0028]4数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。[0029]进一步的,数据并行分发模块包含UDP发送器和监听器,UDP发送器用于将待发送的封装消息发送至目的节点。监听器用于监听网络、发现数据。[0030]进一步的,数据发送器类包含主动对象,主动对象包含发送队列和消息处理线程。发送队列用于存放被数据发送器封装的原始消息。消息处理线程用于从发送队列取出消息并发给发送方的数据并行分发模块。[0031]进一步的,数据接收器类包含主动对象,主动对象包含接收队列和消息处理线程。发送队列用于存放接收的交互对象消息。消息处理线程用于解析消息并分发,从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数。[0032]本发明的有益效果:本发明提出了应用于信息化体系结构中间件的并行分发方法,并设计开发了信息化体系结构中间件数据并行分发模块,实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间。[0033]根据发布节点和订阅节点之间的距离,将订阅节点划分为不同的节点域,并利用订阅节点的资源,已收到数据的订阅节点将接收到的数据转发给其他订阅者,在数据分发过程中,参与转发的订阅节点可以是多个,由此达到并行的目的。进而减小时延的目标,提高了系统的实时性。附图说明[0034]图1UDP模式的交互对象通信组件。[0035]图2X0R计算节点距离示意图。[0036]图3基于域的数据分发流向示意图。[0037]图4并行分发模式的交互对象通信软件模块工作原理图。[0038]图5数据并行分发模块的静态类图。[0039]图6为初始化和退出并行分发的序列图。[0040]图7为设置路由关系表序列图。[0041]图8为设置路由关系表活动图。[0042]图9为发送数据和接收数据过程序列图。[0043]图10为发送数据和接收数据过程活动图。[0044]图11信息化体系结构中间件数据并行分发模块测试系统图。[0045]图12信息化体系结构中间件数据并行分发模块测试系统购发布关系图。[0046]图中,1.服务包、2.中间件内部包、3.网络、11.原始消息、12.封装消息、13.对象管理服务消息处理函数、20.交互对象发送器、21.交互对象接收器、22,22’主动对象、23.发送队列、24,24’.消息处理线程、25.UDP发送器、26.监听器、27.UDP接收器、28.接收队列、29.解析消息;200发送方并行分发模块、201.订阅方并行分发模块、202,212,222.路由信息;4.发布节点、5.订阅节点。具体实施方式[0047]下面结合附图与实施例对本发明作进一步说明。[0048]实施例1基于信息化体系结构中间件的数据并行分发方法,包括,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,信息分发与解析。[0049]实施例2,基于信息化体系结构中间件的数据并行分发方法,包括将发布节点原始消息与经处理后的路由信息共同封装成待发送消息。将待发送消息按构建分发路径发给发送节点的目的节点。当数据经由网络到达接收方订阅节点时,发现接收数据并解析。获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。[0050]发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。[0051]数据分发的路径为一个“多叉树”的树型结构。规划路径采用Kad算法的X0R方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态,使分发效率达到最优。节点的标识符ID是节点IP地址经由单向散列算法散列得到。由单向散列算法原理可知,该ID仍然满足随机性的要求。如图3所示。树的深度和结点的度将会影响分发效率,当树的深度减小,树的分支结点的度将增大,叶子结点数量增多,使分支结点的负载加重。[0052]将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2H,2m的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序,此时域的编号为m,发布节点位于0号域。数据只能从距离发布节点近对应的域编号较小)的节点流向距离发布节点远对应的域编号较大)的节点。域的编号越小,表示距离发布者的距离越近。这样所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,整个过程保证了数据单向传输。按图3所示划分域后数据流动方向为:0号节点域号节点域号节点域—k号节点域kji0。发布节点位于0号域,订阅节点位于i号域、j号域、k号域。[0053]订阅节点划分到域的流程是,输入发布订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。[0054]下面给出订阅节点划分到域的过程的伪代码,系统所有订阅节点划分到不相交的域,并且将节点在域内按ID值顺次存储,保证了数据的单向转发。[0055]输入:发布订阅信息集合,所有节点IP;输出:所有域的节点信息;pub_ID=GetNodelDpub_ip;forallpeerPidosub_ID=GetNodelDsub_ip;得到节点IDSelfNo=ComputeBucketNopub_ID,sub_ID;计算逻辑距离InsertPeerToBucketBucketNo==SelfNo;将节点插入域中forallbucketdoRankBucketbucketNode.sub_ID;将域内节点排序returnbucket;构建完节点域结构后,为每个节点选择合适的目的节点集。若第i号节点域中有m个节点A1,A2."Am,其下一级节点域为编号j,该域中有n个节点B1,B2."Bn,则节点B1,B2."Bn为节点Al,A2."Am的目的节点集,且Al,A2."Am的目的节点集不能交叉。将节点Al,A2."Am按照统一的映射规则分别映射到第j号域的一个子集,子集互不相交且子集的合集为整个第j号域,则每个节点映射的子集中的所有节点就是该节点的目的节点集。[0056]选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。下面给出目的节点选择的伪代码。[0057]输入:节点在其所属域中的位置rank输出:目的节点在域中的位置区间[LowBound,UpBound]TargetBucket.sort;按散列得到的序号升序排列ratio=TargetBucket.sizeSelfBucket.size;LowBound=ratioXrank-1+1;UpBound=ratioXrank;确定区间边界return[LowBound,UpBound];信息化体系结构中间件的数据并行分发方法,构建包含所有的节点的数据分发路径后,信息分发前。还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。[0058]实施例3如图4所示,基于信息化体系结构中间件的数据并行分发方法,各个服务包1的原始消息11被中间件内部包2交互对象发送器20封装后投入主动对象22的发送队列23,主动对象22的消息处理线程24从发送队列23中取出交互对象消息后,发给发送方的并行分发模块200,发送方并行分发模块200将交互对象消息和前期处理得到的路由信息202封装后,由UDP发送器25发给路由信息表中发送节点的目的节点。在订阅节点,当数据经由网络3到达接收方时,由订阅方并行分发模块201的监听器26发现数据,并及时通知UDP接收器27WDP接收器27接收数据后首先解析数据,取出的交互对象消息被投入主动对象22’的接收队列,其消息处理线程24’负责从接收队列28中取出交互对象消息经过解析后按消息类型回调服务包1中的对象管理服务消息处理函数13;取出的路由信息212经处理后判断有无下一目的节点,若有,则将更新路由信息222再与交互对象信息一起封装后发给UDP发送器25,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。[0059]实施例4在实施例3基础上具体实施方法如下:使用动态序列图及活动图分别描述数据并行分发模块的主要操作、功能以及内部运行活动:1步骤1:初始化并行分发:参与者:中间件;输入:回调函数;描述:中间件输入回调函数,数据并行分发模块注册回调函数并初始化UDP服务,创建监听器,等待数据到达。初始化并行分发的序列图如图6所示。[0060]2步骤2:设置路由关系表:参与者:中间件;输入:订购发布关系一对一),节点信息;描述:根据数据并行分发算法生成路由路径,并将该路径保存至路由关系表,设置路由关系表序列图如图7所示。设置路由关系表的操作过程为,首先查找中间件的输入参数:节点IP和订购发布关系,设置节点ID,将各节点划分到各个节点域,并将域中节点按节点ID排序,获取发布节点及各参与转发的订阅节点的目的节点,最后将所有路由关系保存至路由关系表,设置路由关系表活动图如图8所示,3步骤3:发送数据:参与者:中间件;输入:交互对象消息,交互对象消息长度;描述:发布节点及参与转发的订阅节点查询路由关系表,获得其目的节点,将路由关系信息长度,路由关系信息,交互对象消息长度及交互对象消息封装成一个数据包,依据路由信息表将该数据包依次分发给目的节点。[0061]4步骤4:接收数据:参与者:中间件;输入:接收的数据包;描述:节点收到数据包后解析数据包,取出交互对象消息回复给中间件,取出路由关系信息,处理路由关系信息后判断是否继续进行数据分发,否则,结束分发。判断是否继续分发数据,若为继续分发表示该订阅节点为参与转发的订阅节点),则转到步骤3,将处理后的路由信息和获取的交互对象信息再次打包后发送给各目的节点,若为不继续分发表示该订阅节点为该条路径的最终订阅节点),则分发结束,表示该条路径已到达最后一个节点。发送数据和接收数据过程序列图如图9所示,发送数据和接收数据过程活动图如图10所不。[0062]5步骤5:退出并行分发:参与者:中间件;描述:数据并行分发模块关闭监听器,退出UDP服务。退出并行分发的序列图如图6所不。[0063]实施例5基于信息化体系结构中间件数据并行分发系统,包括:1数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据。[0064]2路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能。[0065]3数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能。[0066]4数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。[0067]数据并行分发模块包含UDP发送器和监听器,UDP发送器用于将待发送的封装消息发送至目的节点。监听器用于监听网络、发现数据。[0068]数据发送器类包含主动对象,主动对象包含发送队列和消息处理线程。发送队列用于存放被数据发送器封装的原始消息。消息处理线程用于从发送队列取出消息并发给发送方的数据并行分发模块。[0069]数据接收器类包含主动对象,主动对象包含接收队列和消息处理线程。发送队列用于存放接收的交互对象消息。消息处理线程用于解析消息并分发,从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数。[0070]实施例6对某一信息化体系结构中间件数据并行分发系统进行分析,某个订阅节点A与发布节点P之间的距离为节点A的ID与发布节点P的ID的异或值,当ID为32位的二进制数,此节点间的距离也为一个32位的二进制数,将距离用2表示,其中1为0或1。[0071]distanceP,A=a3ia3〇Kaiao2第1个域,包含距离发布节点的距离为[1,2的节点信息,也就是距离为1的节点信息,艮Pao=l且ak=0k辛0,此时节点落在第一个域的概率用公式⑶表示;第2个域,包含距离发布节点的距离为[2,4的节点信息,也就是距离为2或3的节点信息,即ai=l且ak=0k辛1或者a0=ai=l且ak=0k辛0,1,可以进一步表示为ai=l且ak=0kl,此时节点落在第二个域的概率用公式4表示;由此规律可得,第i个域,包含距离发布节点的距离为BHj1的节点信息,即aH=l且ak=0ki_l,此时节点落在第k个域的概率用公式5表示;..k:i.理论上分发路径“多叉树”的深度最大不超过32,但通过上述分析可知,节点落入编号小的域的概率非常小,节点极大可能落入编号较大的几个域中,路径的深度维持在一个比较合理的水平。此外还可以得出,节点落在第i个域的概率是第(i_l个域的两倍,即第i个域中的节点数量是第(i_l个域的两倍。保证了每个节点的目的节点不小于2,在数据分发时负载被有效转移到“下游”订阅节点,订阅节点的资源得到充分的利用,为数据并行分发的效率提供了保障。[0072]实施例7为测试信息化体系结构中间件数据并行分发模块的功能,针对多订阅的数据分发情况,利用信息化体系结构搭建了如图11所示的七个节点的仿真系统,系统中发布节点为节点P,订阅节点为节点A到节点F。该测试系统的订购发布关系如图12所示。[0073]测试过程中,发布节点向订阅节点发送目标信息数据包,发布信息数据源组件可以通过设置其对象模型改变数据包的大小,将该数据包发送给六个订阅节点,分别测试当不使用和使用信息化体系结构中间件并行分发模块时,整个系统的时间延迟。测试过程共分七组,分别取数据包大小为400byte、800byte、1200byte、1600byte、2000byte、2400byte、2800byte,就不同大小的数据包分别进行五次测试,每次测试发送的数据包个数为200个,最终结果取平均值,得到时延数据如表1所示。[0074]表1中间件与并行分发模块测试时延数据统计单位:毫秒)通过实验过程以及所得数据,得出以下结论:1测试的各组数据中,并行分发模块的时间延迟均小于中间件的时间延迟,表明信息化体系结构数据并行分发模块的实时性比中间件的实时性好。[0075]2对比不同的数据包大小的时延,当数据量增大时,并行分发模块提高实时性的效果更加明显。因为数据量增大,串行排队时间更长,并行算法能有效利用空闲资源,所以优势更加明显。[0076]上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

权利要求:1.基于信息化体系结构中间件的数据并行分发方法,其特征在于,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,进行信息分发与解析。2.如权利要求1所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,将发布节点原始消息与经处理后的路由信息共同封装成待发送消息;将待发送消息按构建分发路径发给发送节点的目的节点;当数据经由网络到达接收方订阅节点时,发现接收数据并解析;获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。3.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,分发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。4.如权利要求3所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,分发路径为一个“多叉树”的树型结构;规划路径采用Kad算法的XOR方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态。5.如权利要求4所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2H,2m的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序;数据只能从距离发布节点近的节点流向距离发布节点远的节点;所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,m为域的编号,是自然数。6.如权利要求5所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,订阅节点划分到域的流程是,输入发布订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。7.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。8.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,构建包含所有的节点的数据分发路径后,信息分发前;还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。9.如权利要求8所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,路径的深度进行分析是,分析ID位数为m,第i个域,包含距离发布节点的距离为β1-1,〗1的节点信息,即ai-i=l且ak=0ki_l,此时节点落在第k个域的概率:10.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,在发布节点,各个服务包的原始消息被交互对象发送器封装后投入主动对象的发送队列,主动对象的消息处理线程从发送队列中取出交互对象消息后,发给发送方的并行分发模块,并行分发模块将交互对象消息和前期处理得到的路由信息封装后,由UDP发送器发给路由信息表中发送节点的目的节点;在订阅节点,当数据经由网络到达接收方时,由监听器发现数据,并及时通知UDP接收器;UDP接收器接收数据后首先解析数据,取出的交互对象消息被投入主动对象的接收队列,其消息处理线程负责从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数;取出的路由信息经处理后判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发给UDP发送器,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。11.根据权利要求1所述的基于信息化体系结构中间件数据并行分发系统,其特征在于,包括:1数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据;对取出的路由信息判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发至该订阅节点的目的节点,若没有目的节点,则退出并行分发;2路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能;3数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能;4数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。

百度查询: 苏州浪潮智能科技有限公司 信息化体系结构中间件数据并行分发方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。