CN106790402A - 信息化体系结构中间件数据并行分发方法及系统 - Google Patents
信息化体系结构中间件数据并行分发方法及系统 Download PDFInfo
- Publication number
- CN106790402A CN106790402A CN201611073853.3A CN201611073853A CN106790402A CN 106790402 A CN106790402 A CN 106790402A CN 201611073853 A CN201611073853 A CN 201611073853A CN 106790402 A CN106790402 A CN 106790402A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- information
- domain
- message
- 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
- 238000009826 distribution Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 15
- 230000002452 interceptive effect Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 18
- 238000005538 encapsulation Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 claims description 6
- 238000005315 distribution function Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000012806 monitoring device Methods 0.000 claims 1
- 230000009467 reduction Effects 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- OPDFUQJBZZJZRG-WPJYNPJPSA-N (4r,4as,7r,7ar,12bs)-7-[2-[2-[2-[[(4r,4as,7r,7ar,12bs)-3-(cyclopropylmethyl)-4a,9-dihydroxy-1,2,4,5,6,7,7a,13-octahydro-4,12-methanobenzofuro[3,2-e]isoquinoline-7-yl]amino]ethoxy]ethoxy]ethylamino]-3-(cyclopropylmethyl)-1,2,4,5,6,7,7a,13-octahydro-4,12-me Chemical compound N1([C@@H]2CC3=CC=C(C=4O[C@@H]5[C@](C3=4)([C@]2(CC[C@H]5NCCOCCOCCN[C@H]2[C@@H]3OC=4C(O)=CC=C5C[C@@H]6[C@]([C@@]3(CCN6CC3CC3)C5=4)(O)CC2)O)CC1)O)CC1CC1 OPDFUQJBZZJZRG-WPJYNPJPSA-N 0.000 description 1
- 241000208340 Araliaceae Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229940081330 tena Drugs 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于信息化体系结构中间件的数据并行分发方法及系统,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,进行信息分发与解析。实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间。根据发布节点和订阅节点之间的距离,将订阅节点划分为不同的节点域,并利用订阅节点的资源,已收到数据的订阅节点将接收到的数据转发给其他订阅者,在数据分发过程中,参与转发的订阅节点可以是多个,由此达到并行的目的。进而减小时延的目标,提高了系统的实时性。
Description
技术领域
本发明涉及基于信息化体系结构中间件的数据并行分发,尤其涉及一种基于信息化体系结构中间件的数据并行分发方法及系统。
背景技术
随着信息化建设的蓬勃发展,信息系统呈现出以网络为中心的趋势,对系统中各成员信息交互的实时性要求日益提高。在虚拟试验领域,伴随着HLA(High LevelArchitecture,高级体系结构)、TENA(Test and Training Enabling Architecture,试验与训练使能体系)等技术的广泛应用,系统规模不断增大,试验任务不断加重,尤其是近年来,以低成本、低风险和高可靠性为特征的虚拟试验技术在武器装备研制和生产过程中得到了广泛的应用,随着跨区域、跨靶场联合试验需求的发展,虚拟试验系统内部及系统间的信息传输对于实时性的要求也越来越高,其实时性受到严峻的挑战。信息化体系结构中间件作为虚拟试验系统实现信息交互的基本媒介,负责信息化体系结构试验系统应用建立及运行期间所有通信的基础设施,其实时性直接决定了虚拟试验过程的真实性和结果的可信度。中间件位于应用软件与基础软件之间,为系统提供统一的标准化API接口和协议,屏蔽底层硬件平台和操作系统的差异性,统一管理网络资源的网络通信和应用之间的互操作,提供了更加灵活高效地开发方式。因此,开发实时性强的信息传输中间件是该领域亟待解决的问题。
信息化体系结构主要由四大部分组成,分别是信息化体系结构公共设施、信息化体系结构基础工具、信息化体系结构资源应用和信息化体系结构辅助工具。信息化体系结构中间件属于信息化体系结构公共设施,负责构建的系统在运行过程中数据的交互和通信。现有的信息化体系结构中间件在发布者与订购者存在一对多关系时,采用的多播及广播模式受限于网络路由的支持,而单播模式存在由于等待周期而导致系统分发时间延长的问题,当系统中订阅节点较多时,发布节点的负载过重,订阅节点的等待时延会显著增加。
信息化体系结构中间件使用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。
基于节点ID的按位XOR(异或)的节点间距离的度量方法,这种节点距离度量方法借鉴于Kademlia(简称Kad)算法,Kad算法是DHT中原理和实现最简单实用,应用最广泛的一种。在Kad网络中,所有信息均以<key,value>的形式存储在DHT中,key是160位长的标识符,网络中的所有计算机都被随机分配一个同样为160位的专属节点ID,位于key空间中。<key, value>对的信息将被存储在节点ID最“接近”key值的节点上。
在Kad网络中,所有节点均作为一棵二叉树的叶子节点,且节点的位置仅由其节点ID的最短前缀唯一确定。而不同节点之间的距离是基于节点ID的按位XOR(异或)度量的,且仅有这一种度量方法,保证了节点ID的连续性,节点N i 、N j 的距离如公式(1)所示。
distance(N i ,N j )=ID i ⊕ID j (1)
该距离与物理距离、路由器跳数无关,只是一种逻辑上的度量描述。XOR是一种有效的度量方式,具体体现在一下几点:
(1)节点与本身的XOR距离是0,即distance(N i ,N i )=0;
(2)XOR距离是对称的,即distance(N i ,N j )=distance(Nj,N i );
(3)XOR距离符合三角特性,即当三个节点N i ,N j 和N k 中,节点N i ,N k 的距离最大时,distance(N i ,N k )≤distance(N i ,N j )+ distance(N j ,N k )。
(4)XOR刻画了基于二叉树描绘的系统中距离的概念,如图2所示:
由图2可以看出,在节点A(1100)、B(1010)、C(0111)、D(0011)中与节点P(1011)XOR值分别是0111(7)、0001(1)、1100(12)、1000(8),因此距离最近的节点是在同一棵子树上的节点B。
Kad设置了一个路由表称为K-桶,系统中的每个节点,保存与自身距离在区间[2i-2i+1)(0≤i≤160)内的节点的信息,包含的信息有<IP地址,UDP端口,节点ID>。每个K-桶内的节点按照最近联系的时间排序,对于桶号较小的桶,其节点数一般为0,对于桶号较小的桶,其桶内节点数通常很大,为平衡网络负载,设置参数作为桶内最大节点数。
发明内容
本发明针对目前信息化体系结构中间件缺乏多订阅机制下的并行数据分发能力的问题,为此,本发明提供一种基于信息化体系结构中间件的数据并行分发方法、系统,它具有实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间,进而减小时延的目标,提高了系统的实时性的优点。
为了实现上述目的,本发明采用如下技术方案。
针对系统中一个发布节点对应多个订阅节点的情况,并且发布节点与各个订阅节点都已满足订阅发布关系,基于信息化体系结构中间件的数据并行分发方法,包括,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,信息分发与解析。
进一步的,基于信息化体系结构中间件的数据并行分发方法,包括将发布节点原始消息与经处理后的路由信息共同封装成待发送消息。将待发送消息按构建分发路径发给发送节点的目的节点。当数据经由网络到达接收方订阅节点时,发现接收数据并解析。获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。
进一步的,分发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。
进一步的,数据分发的路径为一个“多叉树”的树型结构。规划路径采用Kad算法的XOR方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态,使分发效率达到最优。节点的标识符ID是节点IP地址经由单向散列算法散列得到。由单向散列算法原理可知,该ID仍然满足随机性的要求。如图3所示。树的深度和结点的度将会影响分发效率,当树的深度减小,树的分支结点的度将增大,叶子结点数量增多,使分支结点的负载加重。
进一步的,将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2m-1,2m)的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序,此时域的编号为m,发布节点位于0号域。数据只能从距离发布节点近(对应的域编号较小)的节点流向距离发布节点远(对应的域编号较大)的节点。域的编号越小,表示距离发布者的距离越近。这样所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,整个过程保证了数据单向传输。
进一步的,订阅节点划分到域的流程是,输入发布/订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。
构建完节点域结构后,为每个节点选择合适的目的节点集。若第i号节点域中有m个节点A1,A2…Am,其下一级节点域为编号j,该域中有n个节点B1,B2…Bn,则节点B1,B2…Bn为节点A1,A2…Am的目的节点集,且A1,A2…Am的目的节点集不能交叉。将节点A1,A2…Am按照统一的映射规则分别映射到第j号域的一个子集,子集互不相交且子集的合集为整个第j号域,则每个节点映射的子集中的所有节点就是该节点的目的节点集。
进一步的,选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。
进一步的,信息化体系结构中间件的数据并行分发方法,构建包含所有的节点的数据分发路径后,信息分发前。还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。
某个订阅节点A与发布节点P之间的距离为节点A的ID与发布节点P的ID的异或值,当ID为32位的二进制数,此节点间的距离也为一个32位的二进制数,将距离用(2)表示,其中ai为0或1。
distance(P,A)=a 31 a 30Ka 1 a 0 (2)
第1个域,包含距离发布节点的距离为[1,2)的节点信息,也就是距离为1的节点信息,即a0=1且ak=0(k≠0),此时节点落在第一个域的概率用公式(3)表示;
QUOTE (3)
第2个域,包含距离发布节点的距离为[2,4)的节点信息,也就是距离为2或3的节点信息,即a1=1且ak=0(k≠1)或者a0=a1=1且ak=0(k≠0,1),可以进一步表示为a1=1且ak=0(k>1),此时节点落在第二个域的概率用公式(4)表示;
QUOTE (4)
由此规律可得,第i个域,包含距离发布节点的距离为[2i-1,2i)的节点信息,即ai-1=1且ak=0(k>i-1),此时节点落在第k个域的概率用公式(5)表示;
理论上分发路径“多叉树”的深度最大不超过32,但通过上述分析可知,节点落入编号小的域的概率非常小,节点极大可能落入编号较大的几个域中,路径的深度维持在一个比较合理的水平。此外还可以得出,节点落在第i个域的概率是第(i-1)个域的两倍,即第i个域中的节点数量是第(i-1)个域的两倍。保证了每个节点的目的节点不小于2,在数据分发时负载被有效转移到“下游”订阅节点,订阅节点的资源得到充分的利用,为数据并行分发的效率提供了保障。
进一步的,分析ID位数为m,第i个域,包含距离发布节点的距离为[2i-1,2i)的节点信息,即ai-1=1且ak=0(k>i-1),此时节点落在第k个域的概率: QUOTE 。
进一步的,基于信息化体系结构中间件数据并行分发方法,在发布节点,各个服务包的原始消息被交互对象发送器封装后投入主动对象的发送队列,主动对象的消息处理线程从发送队列中取出交互对象消息后,发给发送方的并行分发模块,并行分发模块将交互对象消息和前期处理得到的路由信息封装后,由UDP发送器发给路由信息表中发送节点的目的节点。在订阅节点,当数据经由网络到达接收方时,由监听器发现数据,并及时通知UDP接收器。UDP接收器接收数据后首先解析数据,取出的交互对象消息被投入主动对象的接收队列,其消息处理线程负责从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数;取出的路由信息经处理后判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发给UDP发送器,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。
基于信息化体系结构中间件数据并行分发系统,包括:
(1)数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据。对取出的路由信息判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发至该订阅节点的目的节点,若没有目的节点,则退出并行分发。
(2)路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能。
(3)数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能。
(4)数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。
进一步的,数据并行分发模块包含UDP发送器和监听器,UDP发送器用于将待发送的封装消息发送至目的节点。监听器用于监听网络、发现数据。
进一步的,数据发送器类包含主动对象,主动对象包含发送队列和消息处理线程。发送队列用于存放被数据发送器封装的原始消息。消息处理线程用于从发送队列取出消息并发给发送方的数据并行分发模块。
进一步的,数据接收器类包含主动对象,主动对象包含接收队列和消息处理线程。发送队列用于存放接收的交互对象消息。消息处理线程用于解析消息并分发,从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数。
本发明的有益效果:
本发明提出了应用于信息化体系结构中间件的并行分发方法,并设计开发了信息化体系结构中间件数据并行分发模块,实现了当一对多订购发布时,部分订阅节点参与转发,减少节点等待时间。
根据发布节点和订阅节点之间的距离,将订阅节点划分为不同的节点域,并利用订阅节点的资源,已收到数据的订阅节点将接收到的数据转发给其他订阅者,在数据分发过程中,参与转发的订阅节点可以是多个,由此达到并行的目的。进而减小时延的目标,提高了系统的实时性。
附图说明
图1 UDP模式的交互对象通信组件。
图2 XOR计算节点距离示意图。
图3 基于域的数据分发流向示意图。
图4 并行分发模式的交互对象通信软件模块工作原理图。
图5数据并行分发模块的静态类图。
图6为初始化和退出并行分发的序列图。
图7为设置路由关系表序列图。
图8为设置路由关系表活动图。
图9为发送数据和接收数据过程序列图。
图10为发送数据和接收数据过程活动图。
图11 信息化体系结构中间件数据并行分发模块测试系统图。
图12 信息化体系结构中间件数据并行分发模块测试系统购发布关系图。
图中,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.订阅节点。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
实施例1
基于信息化体系结构中间件的数据并行分发方法,包括,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,信息分发与解析。
实施例2,基于信息化体系结构中间件的数据并行分发方法,包括将发布节点原始消息与经处理后的路由信息共同封装成待发送消息。将待发送消息按构建分发路径发给发送节点的目的节点。当数据经由网络到达接收方订阅节点时,发现接收数据并解析。获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。
发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。
数据分发的路径为一个“多叉树”的树型结构。规划路径采用Kad算法的XOR方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态,使分发效率达到最优。节点的标识符ID是节点IP地址经由单向散列算法散列得到。由单向散列算法原理可知,该ID仍然满足随机性的要求。如图3所示。树的深度和结点的度将会影响分发效率,当树的深度减小,树的分支结点的度将增大,叶子结点数量增多,使分支结点的负载加重。
将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2m-1,2m)的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序,此时域的编号为m,发布节点位于0号域。数据只能从距离发布节点近(对应的域编号较小)的节点流向距离发布节点远(对应的域编号较大)的节点。域的编号越小,表示距离发布者的距离越近。这样所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,整个过程保证了数据单向传输。按图3所示划分域后数据流动方向为:0号节点域→i号节点域→j号节点域→k号节点域(k>j>i>0)。发布节点位于0号域,订阅节点位于i号域、j号域、k号域。
订阅节点划分到域的流程是,输入发布/订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。
下面给出订阅节点划分到域的过程的伪代码,系统所有订阅节点划分到不相交的域,并且将节点在域内按ID值顺次存储,保证了数据的单向转发。
输入:发布/订阅信息集合,所有节点IP;
输出:所有域的节点信息;
pub_ID = GetNodeID (pub_ip);
for all peer Pi do
sub_ID = GetNodeID(sub_ip); //得到节点ID
SelfNo = ComputeBucketNo( pub_ID,sub_ID); //计算逻辑距离
InsertPeerToBucket (BucketNo == SelfNo); //将节点插入域中
for all bucket do
RankBucket(bucketNode.sub_ID); //将域内节点排序
return bucket;
构建完节点域结构后,为每个节点选择合适的目的节点集。若第i号节点域中有m个节点A1,A2…Am,其下一级节点域为编号j,该域中有n个节点B1,B2…Bn,则节点B1,B2…Bn为节点A1,A2…Am的目的节点集,且A1,A2…Am的目的节点集不能交叉。将节点A1,A2…Am按照统一的映射规则分别映射到第j号域的一个子集,子集互不相交且子集的合集为整个第j号域,则每个节点映射的子集中的所有节点就是该节点的目的节点集。
选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。下面给出目的节点选择的伪代码。
输入:节点 在其所属域中的位置rank
输出:目的节点在域中的位置区间[LowBound,UpBound]
TargetBucket.sort(); //按散列得到的序号升序排列
ratio = TargetBucket.size() / SelfBucket.size();
LowBound = ratio × (rank-1) +1;
UpBound = ratio × rank; //确定区间边界
return [LowBound,UpBound];
信息化体系结构中间件的数据并行分发方法,构建包含所有的节点的数据分发路径后,信息分发前。还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。
实施例3
如图4所示,基于信息化体系结构中间件的数据并行分发方法,各个服务包1的原始消息11被中间件内部包2交互对象发送器20封装后投入主动对象22的发送队列23,主动对象22的消息处理线程24从发送队列23中取出交互对象消息后,发给发送方的并行分发模块200,发送方并行分发模块200将交互对象消息和前期处理得到的路由信息202封装后,由UDP发送器25发给路由信息表中发送节点的目的节点。在订阅节点,当数据经由网络3到达接收方时,由订阅方并行分发模块201的监听器26发现数据,并及时通知UDP接收器27。UDP接收器27接收数据后首先解析数据,取出的交互对象消息被投入主动对象22’的接收队列,其消息处理线程24’负责从接收队列28中取出交互对象消息经过解析后按消息类型回调服务包1中的对象管理服务消息处理函数13;取出的路由信息212经处理后判断有无下一目的节点,若有,则将更新路由信息222再与交互对象信息一起封装后发给UDP发送器25,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。
实施例4
在实施例3基础上具体实施方法如下:
使用动态序列图及活动图分别描述数据并行分发模块的主要操作、功能以及内部运行活动:
(1)步骤1:初始化并行分发:
参与者:中间件;
输入:回调函数;
描述:中间件输入回调函数,数据并行分发模块注册回调函数并初始化UDP服务,创建监听器,等待数据到达。初始化并行分发的序列图如图6所示。
(2)步骤2:设置路由关系表:
参与者:中间件;
输入:订购发布关系(一对一),节点信息;
描述:根据数据并行分发算法生成路由路径,并将该路径保存至路由关系表,设置路由关系表序列图如图7所示。设置路由关系表的操作过程为,首先查找中间件的输入参数:节点IP和订购发布关系,设置节点ID,将各节点划分到各个节点域,并将域中节点按节点ID排序,获取发布节点及各参与转发的订阅节点的目的节点,最后将所有路由关系保存至路由关系表,设置路由关系表活动图如图8所示,
(3)步骤3:发送数据:
参与者:中间件;
输入:交互对象消息,交互对象消息长度;
描述:发布节点及参与转发的订阅节点查询路由关系表,获得其目的节点,将路由关系信息长度,路由关系信息,交互对象消息长度及交互对象消息封装成一个数据包,依据路由信息表将该数据包依次分发给目的节点。
(4)步骤4:接收数据:
参与者:中间件;
输入:接收的数据包;
描述:节点收到数据包后解析数据包,取出交互对象消息回复给中间件,取出路由关系信息,处理路由关系信息后判断是否继续进行数据分发,否则,结束分发。判断是否继续分发数据,若为继续分发(表示该订阅节点为参与转发的订阅节点),则转到步骤3,将处理后的路由信息和获取的交互对象信息再次打包后发送给各目的节点,若为不继续分发(表示该订阅节点为该条路径的最终订阅节点),则分发结束,表示该条路径已到达最后一个节点。发送数据和接收数据过程序列图如图9所示,发送数据和接收数据过程活动图如图10所示。
(5)步骤5:退出并行分发:
参与者:中间件;
描述:数据并行分发模块关闭监听器,退出UDP服务。退出并行分发的序列图如图6所示。
实施例5
基于信息化体系结构中间件数据并行分发系统,包括:
(1)数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据。
(2)路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能。
(3)数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能。
(4)数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。
数据并行分发模块包含UDP发送器和监听器,UDP发送器用于将待发送的封装消息发送至目的节点。监听器用于监听网络、发现数据。
数据发送器类包含主动对象,主动对象包含发送队列和消息处理线程。发送队列用于存放被数据发送器封装的原始消息。消息处理线程用于从发送队列取出消息并发给发送方的数据并行分发模块。
数据接收器类包含主动对象,主动对象包含接收队列和消息处理线程。发送队列用于存放接收的交互对象消息。消息处理线程用于解析消息并分发,从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数。
实施例6
对某一信息化体系结构中间件数据并行分发系统进行分析,某个订阅节点A与发布节点P之间的距离为节点A的ID与发布节点P的ID的异或值,当ID为32位的二进制数,此节点间的距离也为一个32位的二进制数,将距离用(2)表示,其中ai为0或1。
distance(P,A)=a 31 a 30Ka 1 a 0 (2)
第1个域,包含距离发布节点的距离为[1,2)的节点信息,也就是距离为1的节点信息,即a0=1且ak=0(k≠0),此时节点落在第一个域的概率用公式(3)表示;
QUOTE (3)
第2个域,包含距离发布节点的距离为[2,4)的节点信息,也就是距离为2或3的节点信息,即a1=1且ak=0(k≠1)或者a0=a1=1且ak=0(k≠0,1),可以进一步表示为a1=1且ak=0(k>1),此时节点落在第二个域的概率用公式(4)表示;
QUOTE (4)
由此规律可得,第i个域,包含距离发布节点的距离为[2i-1,2i)的节点信息,即ai-1=1且ak=0(k>i-1),此时节点落在第k个域的概率用公式(5)表示;
(5)
理论上分发路径“多叉树”的深度最大不超过32,但通过上述分析可知,节点落入编号小的域的概率非常小,节点极大可能落入编号较大的几个域中,路径的深度维持在一个比较合理的水平。此外还可以得出,节点落在第i个域的概率是第(i-1)个域的两倍,即第i个域中的节点数量是第(i-1)个域的两倍。保证了每个节点的目的节点不小于2,在数据分发时负载被有效转移到“下游”订阅节点,订阅节点的资源得到充分的利用,为数据并行分发的效率提供了保障。
实施例7
为测试信息化体系结构中间件数据并行分发模块的功能,针对多订阅的数据分发情况,利用信息化体系结构搭建了如图11所示的七个节点的仿真系统,系统中发布节点为节点P,订阅节点为节点A到节点F。该测试系统的订购发布关系如图12所示。
测试过程中,发布节点向订阅节点发送目标信息数据包,发布信息数据源组件可以通过设置其对象模型改变数据包的大小,将该数据包发送给六个订阅节点,分别测试当不使用和使用信息化体系结构中间件并行分发模块时,整个系统的时间延迟。测试过程共分七组,分别取数据包大小为400byte、800byte、1200byte、1600byte、2000byte、2400byte、2800byte,就不同大小的数据包分别进行五次测试,每次测试发送的数据包个数为200个,最终结果取平均值,得到时延数据如表1所示。
表1 中间件与并行分发模块测试时延数据统计(单位:毫秒)
通过实验过程以及所得数据,得出以下结论:
(1)测试的各组数据中,并行分发模块的时间延迟均小于中间件的时间延迟,表明信息化体系结构数据并行分发模块的实时性比中间件的实时性好。
(2)对比不同的数据包大小的时延,当数据量增大时,并行分发模块提高实时性的效果更加明显。因为数据量增大,串行排队时间更长,并行算法能有效利用空闲资源,所以优势更加明显。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (11)
1.基于信息化体系结构中间件的数据并行分发方法,其特征在于,将订阅节点作为转发节点参与到数据分发中,根据系统成员节点信息和订购发布关系,构建分发路径,为发布节点和参与转发的订阅节点选择目的节点,构建包含所有的节点的数据分发路径,进行信息分发与解析。
2.如权利要求1所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,将发布节点原始消息与经处理后的路由信息共同封装成待发送消息;将待发送消息按构建分发路径发给发送节点的目的节点;当数据经由网络到达接收方订阅节点时,发现接收数据并解析;获取并处理路由关系表,根据路由关系判断是否继续分发,如需分发则该节点继续封装消息发送数据,否则结束。
3.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,分发路径满足数据从发布节点沿分发路径能发送至所有订阅节点,且每个订阅节点只对应一个节点向其发送数据,数据流动为单向流动。
4.如权利要求3所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,分发路径为一个“多叉树”的树型结构;规划路径采用Kad算法的XOR方法,对两个节点ID作按位异或运算确定节点间距离,权衡分发路径“多叉树”的形态。
5.如权利要求4所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,将订阅节点划分到域,所有订阅节点计算自己与发布节点之间的距离,定义一个节点域来记录到发布节点的距离为[2m-1,2m)的所有订阅节点信息,并且同一个域中的节点按照距离大小进行排序;数据只能从距离发布节点近的节点流向距离发布节点远的节点;所有的订阅节点将按照距离划分到不同的域中,每个节点属于且仅属于一个域,m为域的编号,是自然数。
6.如权利要求5所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,订阅节点划分到域的流程是,输入发布/订阅信息集合及所有节点IP信息,得到节点ID,计算订阅节点与发布节点之间的逻辑距离,将节点插入域中,将域内节点排序,结束。
7.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,选择目的节点的方法是,根据域的规模使用线性映射,即按照某一域内节点的顺序,将每一个节点线性的、均匀无交叉的映射到其下一级域的一个连续子区间,该子区间内的节点即为其目的节点。
8.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,构建包含所有的节点的数据分发路径后,信息分发前;还包含数据分发路径分析步骤,对路径的深度进行分析,当路径深度满足要求才进行信息分发步骤。
9.如权利要求8所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,路径的深度进行分析是,分析ID位数为m,第i个域,包含距离发布节点的距离为[2i-1,2i)的节点信息,即ai-1=1且ak=0(k>i-1),此时节点落在第k个域的概率:
。
10.如权利要求1或2所述的基于信息化体系结构中间件的数据并行分发方法,其特征在于,在发布节点,各个服务包的原始消息被交互对象发送器封装后投入主动对象的发送队列,主动对象的消息处理线程从发送队列中取出交互对象消息后,发给发送方的并行分发模块,并行分发模块将交互对象消息和前期处理得到的路由信息封装后,由UDP发送器发给路由信息表中发送节点的目的节点;在订阅节点,当数据经由网络到达接收方时,由监听器发现数据,并及时通知UDP接收器;UDP接收器接收数据后首先解析数据,取出的交互对象消息被投入主动对象的接收队列,其消息处理线程负责从队列中取出交互对象消息经过解析后按消息类型回调服务包中的对象管理服务消息处理函数;取出的路由信息经处理后判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发给UDP发送器,发至该订阅节点的目的节点,若没有目的节点,则退出并行分发模块,表示该订阅节点是该路径下的最终节点,当所有路径均退出并行分发模块,则表示数据已发送至所有订阅节点。
11.根据权利要求1所述的基于信息化体系结构中间件数据并行分发系统,其特征在于,包括:
(1)数据并行分发模块:具有初始化并行分发,设置路由关系表,发送数据,接收数据和退出并行分发功能,通过使用接口函数利用数据并行分发模块进行并行分发数据;对取出的路由信息判断有无下一目的节点,若有,则更新路由信息后再与交互对象信息一起封装后发至该订阅节点的目的节点,若没有目的节点,则退出并行分发;
(2)路由关系表类:该类提供根据订购发布关系及各节点的IP等信息构建分发路径,并将路径保存至路由关系表的功能;
(3)数据发送器类:该类提供将路由关系信息和输入的交互对象信息等内容封装为数据包,及发送数据的功能;
(4)数据接收器类:该类提供接收数据,并将收到的数据包解析,处理路由信息表,判断是否有目的节点继续进行转发,及将交互对象消息回复给中间件的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073853.3A CN106790402B (zh) | 2016-11-29 | 2016-11-29 | 信息化体系结构中间件数据并行分发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073853.3A CN106790402B (zh) | 2016-11-29 | 2016-11-29 | 信息化体系结构中间件数据并行分发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790402A true CN106790402A (zh) | 2017-05-31 |
CN106790402B CN106790402B (zh) | 2020-10-23 |
Family
ID=58898514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611073853.3A Active CN106790402B (zh) | 2016-11-29 | 2016-11-29 | 信息化体系结构中间件数据并行分发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790402B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562550A (zh) * | 2017-09-01 | 2018-01-09 | 成都瀚蓝科技有限公司 | 一种数据分发方法 |
CN108984725A (zh) * | 2018-07-11 | 2018-12-11 | 浪潮软件股份有限公司 | 一种跨网闸数据同步方法 |
CN110661683A (zh) * | 2019-09-26 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种基于pcap格式的文件分析UDP协议的方法及装置 |
CN111221659A (zh) * | 2018-11-23 | 2020-06-02 | 北京图森智途科技有限公司 | 一种多机器人操作系统环境的订阅性能追踪系统 |
WO2021073405A1 (zh) * | 2019-10-16 | 2021-04-22 | 北京达佳互联信息技术有限公司 | 数据分发方法、电子设备及存储介质 |
CN114827307A (zh) * | 2022-04-14 | 2022-07-29 | 中国建设银行股份有限公司 | 基于多数据系统的数据共享方法、系统及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891797A (zh) * | 2012-07-02 | 2013-01-23 | 上海交通大学 | 支持消息持久化的发布订阅方法 |
CN103888517A (zh) * | 2014-03-04 | 2014-06-25 | 上海交通大学 | 用于发布订阅系统的实现历史事件订阅的缓存方法 |
CN103944924A (zh) * | 2014-05-15 | 2014-07-23 | 重庆邮电大学 | 一种基于RESTful的泛在网发布订阅中间件模型 |
-
2016
- 2016-11-29 CN CN201611073853.3A patent/CN106790402B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102891797A (zh) * | 2012-07-02 | 2013-01-23 | 上海交通大学 | 支持消息持久化的发布订阅方法 |
CN103888517A (zh) * | 2014-03-04 | 2014-06-25 | 上海交通大学 | 用于发布订阅系统的实现历史事件订阅的缓存方法 |
CN103944924A (zh) * | 2014-05-15 | 2014-07-23 | 重庆邮电大学 | 一种基于RESTful的泛在网发布订阅中间件模型 |
Non-Patent Citations (2)
Title |
---|
BIAO DONG: "《Information Services Model based on Publish/Subscribe for Large Scale Sensor Networks》", 《4TH NATIONAL CONFERENCE ON ELECTRICAL, ELECTRONICS AND COMPUTER ENGINEERING》 * |
沈燕玉: "《基于结构化P2P的发布订阅系统》", 《计算机系统应用》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562550A (zh) * | 2017-09-01 | 2018-01-09 | 成都瀚蓝科技有限公司 | 一种数据分发方法 |
CN107562550B (zh) * | 2017-09-01 | 2020-09-22 | 成都瀚蓝科技有限公司 | 一种数据分发方法 |
CN108984725A (zh) * | 2018-07-11 | 2018-12-11 | 浪潮软件股份有限公司 | 一种跨网闸数据同步方法 |
CN111221659A (zh) * | 2018-11-23 | 2020-06-02 | 北京图森智途科技有限公司 | 一种多机器人操作系统环境的订阅性能追踪系统 |
CN111221659B (zh) * | 2018-11-23 | 2023-10-03 | 北京图森智途科技有限公司 | 一种多机器人操作系统环境的订阅性能追踪系统 |
CN110661683A (zh) * | 2019-09-26 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种基于pcap格式的文件分析UDP协议的方法及装置 |
WO2021073405A1 (zh) * | 2019-10-16 | 2021-04-22 | 北京达佳互联信息技术有限公司 | 数据分发方法、电子设备及存储介质 |
CN114827307A (zh) * | 2022-04-14 | 2022-07-29 | 中国建设银行股份有限公司 | 基于多数据系统的数据共享方法、系统及服务器 |
CN114827307B (zh) * | 2022-04-14 | 2024-04-19 | 中国建设银行股份有限公司 | 基于多数据系统的数据共享方法、系统及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN106790402B (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790402A (zh) | 信息化体系结构中间件数据并行分发方法及系统 | |
US8520556B2 (en) | Terminal and N-tree constructing method | |
US6947434B2 (en) | Subgroup multicasting in a communications network | |
JP2007234014A (ja) | スケーラブルなコンテンツベースのイベントマルチキャストプラットフォーム | |
CN110266600B (zh) | 带宽约束组播路由优化方法 | |
Léty et al. | SCORE: a scalable communication protocol for large-scale virtual environments | |
Bhowmik et al. | Hybrid content-based routing using network and application layer filtering | |
Yu et al. | Efficient multicast delivery for wireless data center networks | |
Jia et al. | Fractional-N SVRF forwarding algorithm for low port-density packet forwarding engines | |
CN102957729B (zh) | 一种多媒体会议音视频传输方法及设备 | |
CN102769562B (zh) | 一种双向pim组播实现方法及其设备 | |
CN113572699B (zh) | 云数据中心租户出口流量限速方法与系统 | |
Jin et al. | P 3 FA: Unified Unicast/Multicast Forwarding Algorithm for High-Performance Router/Switch | |
Popescu et al. | Stateless application-level multicast for dynamic group communication | |
Strufe et al. | BCBS: An efficient load balancing strategy for cooperative overlay live-streaming | |
Wernecke et al. | Stitching notification distribution trees for content-based publish/subscribe with P4 | |
Nguyen et al. | Conat: A network coding-based interest aggregation in content centric networks | |
Wolf et al. | Aggregated hierarchical multicast for active networks | |
Koh et al. | Minimizing cost and delay in shared multicast trees | |
Ananthakrishnan et al. | Group based publisher-subscriber communication primitives for ndnSIM | |
CN113949902B (zh) | 一种视频分发控制方法、系统、装置及存储介质 | |
Zheng et al. | Performance evaluation of in-packet membership querying algorithm for large-scale networks | |
Wernecke et al. | P4-programmable Data Plane for Content-based Publish/Subscribe | |
Sobeih et al. | Performance evaluation and comparison of tree and ring application-layer multicast overlay networks | |
Min et al. | Hierarchically distributed multicast management architecture in ATM networks |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200923 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |