[发明专利]基于有序小枝模式的航空物流XML报文并行过滤方法有效

专利信息
申请号: 201910249408.5 申请日: 2019-03-29
公开(公告)号: CN109977270B 公开(公告)日: 2023-07-18
发明(设计)人: 李国;庄波;李永华 申请(专利权)人: 中国民航大学
主分类号: G06F16/835 分类号: G06F16/835;G06F9/50
代理公司: 天津市鼎和专利商标代理有限公司 12101 代理人: 蒙建军
地址: 300300 天*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 有序 小枝 模式 航空 物流 xml 报文 并行 过滤 方法
【权利要求书】:

1.一种基于有序小枝模式的航空物流XML报文并行过滤方法,其特征在于,包括:

步骤一: 使用XPath路径表达式来选取 XML 文档中的节点或者节点集;带谓词的XPath路径表达式被表示成树的形式,将讨论都集中在XPath路径表达式的子集上,定位步骤集合为:{/a,//a,/*,//*,[]},谓词用于讨论等值谓词;

步骤二:XML文档与小枝模式查询进行标签序列化得到标签序列,为了将小枝模式查询中节点之间的信息包含在标签序列中,FiST算法对标签序列进行属性扩充;扩充后的序列为查询序列,包含小枝模式中的所有信息;

步骤三:并行过滤方法的体系结构中,系统在处理XML数据流之前,XPath订阅表达式首先被传递到系统中,然后将XPath路径表达式通过XPath解析器解析成Prüfer 序列,任务组调度算法将根据Prüfer 序列计算每个查询序列的任务耗时,并根据任务耗时将所有任务平均分配到各个线程上,使每个线程的任务达到负载平衡,并且为每个线程分配一个CPU核心;FiST算法在各CPU核心上执行查询处理,将匹配结果直接分发给订阅者;

步骤四:任务组调度算法中FiST算法通过判断LPS(Q)是否为LPS(T)的子序列,来验证查询树Q与XML文档树TR的匹配;如果标签序列(LPS(Q))越长,匹配的时间将会越久;假设LPS(Q)={Q1 Q2…Qn},则T(LPS(Q))=n;其中T表示任务耗时,单位为一个时间单元,LPS(Q)代表一个任务;当LPS(Q1)={Na Co 成都 Ci Co Com Co St Co}的T(LPS(Q1))=11时,LPS(Q1)的任务耗时为11个时间单元;将每个小枝模式序列化为查询序列并根据序列的长度计算任务耗时;对于m个独立任务,按任务耗时均匀的分配到m个CPU上;用下列公式表示:

通过求s的值来比较任务分组的均匀程度,s越小,分组越均匀;其中为第i组的总耗时,为平均耗时,的计算公式如下;

将任务按耗时降序排列放入数组A中,数组A=[T1,T2,T3……Tm……Tk-1,Tk……,Tn-1,Tn],其中T1≧T2≧T……Tm……≧Tk-1≧Tk……Tn-1≧Tn;第一方向定义为从数组下标0开始,从左至右;第二方向定义为从数组下标n开始,从右至左;第三方向定义为从数组下标k开始,从左至右;

第一步:按第一方向依次从数组A取任务放入第一个线程,直到满足以下不等式关系:

如果等于,则直接将任务T放入第一个线程中;

第二步:计算和;比较Tk与Value的大小,如果Tk等于Value,则直接将Tk放入第一个线程中,否则按第二方向表示的范围,在Tm与Tn 之间用二分查询出最接近Value的数将其放入第一个线程中;

第三步:按第三方向依次从数组A取任务,放入第二个线程,重复第一步操作,直到所有任务都放入线程中为止,其中left初始值为1,right初始值为n。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航大学,未经中国民航大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910249408.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top