发明名称 一种物联网业务架构以及业务组合方法
摘要 本发明公开了一种物联网业务架构以及业务组合方法,该方法将物联网基于业务分成五层,分别是设备接入层,数据通信层,设备管理层,业务管理层,业务应用层。该架构下,在Qos基础上给出了基于蚁群算法的动态业务组合方法,即将该架构下业务的Qos属性与蚁群算法中的参数做出合理映射,以满足用户需求及最高Qos属性为目的选择参与组合的服务,该组合方法可以很好地满足用户需求以及保证组合服务的服务质量,充分利用了网络中的设备和已有的原子业务,因此本发明具有一定的实际使用价值和经济价值。
申请公布号 CN103354506B 申请公布日期 2016.09.28
申请号 CN201310278572.1 申请日期 2013.07.03
申请人 南京邮电大学;东南大学 发明人 胡海峰;王磊;陆阳阳;张凤杰;孙晋军
分类号 H04L12/24(2006.01)I;H04L29/08(2006.01)I;G06N7/00(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 汪旭东
主权项 一种物联网业务架构,其特征在于:所述物联网业务架构环境分为五层,分别为:设备接入层,数据通信层,设备管理层,业务管理层,业务应用层;设备接入层:设备接入层是整个物联网架构中的最底层,主要是面向各种各样的设备;数据通信层:整个数据通信层包括以互联网为代表的通信网络,以及使得物理设备可以与这些网络传输数据的中间件或者网关;设备管理层:该层的主要功能是通过数据通信层来管理接入物联网中的设备,其中包括设备注册模块,设备管理模块和设备监控模块;业务管理层:该层的主要功能是管理基于接入物联网中设备所开发的业务,包括业务注册模块,业务管理模块,业务组合模块,业务监控模块;业务应用层:该层主要面对各类型的用户,该层可以是某个企业的处理平台,或者使用物联网的个人pc,通过各种各样的平台可以使用物联网中存在的各种业务或者组合使用各原子业务;所述架构的业务组合方法包括如下步骤:步骤1:参数初始化;使得初始执行时间t以及循环次数N为0,设置一个最大循环次数N<sub>max</sub>,将m只蚂蚁放到起始服务上,令每一条执行路径上的信息素初始值为τ<sub>ij</sub>(t)=常数,Δτ<sub>ij</sub>(0)=0;在此步骤中,蚂蚁个数为即为用户数目,用户在蚁群算法中充当蚂蚁的角色,为了保证选择的最佳组合业务的正确性,在m个用户针对该组合业务进行了N<sub>max</sub>次的选择后才得出最终的最佳的选择路径;步骤2:N←N+1;即每做一次循环,使得循环次N加1,此处的一次循环是指,所有的m个用户完成了从服务集合C1到服务集合Cn的选择,而N则是记录这样的循环有多少次,N<sub>max</sub>则是N的上限;步骤3:k←k+1;这里的k是指在步骤2中的单次循环中m个用户里有多少用户执行完了组合业务,每当一个用户执行完了该组合业务的完整流程,即从最初的服务集合C1选到最终的服务集合Cn则使得k增加1,直到k=m时一次循环结束此时使步骤2中的N增加1,否则令k=k+1未完成组合服务的用户继续执行组合服务;步骤4:单个用户根据下面给出的状态转移概率公式<img file="FDA0001019932910000011.GIF" wi="110" he="71" />的计算结果来选择下一个服务集中的应该由哪一个服务参加组合;<img file="FDA0001019932910000021.GIF" wi="1142" he="309" />其中S代表在该步组合中可以选择的所有服务的集合,α为信息启发式因子表示积累的信息素对于蚂蚁选择路径的重要性,即当α越大,则路径遗留的信息素对蚂蚁选择路径的影响越大,其值取1或2,β为期望启发因子,表示能见度的重要性,反应了蚂蚁在选择路径时启发信息对选择的影响程度,其值越大,则越接近于贪心规则,其值也取1或2,τ<sub>ij</sub>(t)表示在t时刻,路径i到j上的信息素,在t=0时刻τ<sub>ij</sub>(t)为常数;启发信息表示当蚂蚁在选择路径的时候依据启发信息选择自己的路径,在路径选择中,为了使选择路径时,选择Qos值最高的组合,启发信息由启发函数η<sub>ij</sub>(t)表示,在此使得启发函数与业务的Qos值相同即:η<sub>ij</sub>(t)=λQ<sub>j</sub>+(1‑λ)Q<sub>j‑1</sub>其中对于Qos值需要得出Qos的四个属性值q<sub>1</sub>、q<sub>2</sub>、q<sub>3</sub>、q<sub>4</sub>,其中q<sub>1</sub>为使用业务所付出的代价,q<sub>2</sub>为业务的响应时延(ms),q<sub>3</sub>为服务执行所占用的带宽(Hz),q<sub>4</sub>为业务的可靠性,λ是遗忘因子;对于q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>业务在执行时,业务管理层根据业务的执行情况记录业务每次执行的参数,包括业务执行代价,业务执行时延,业务执行时所需要的带宽和对于该业务的可靠性评价,在业务管理层中记录该业务最近n次的执行结果,当用户第n+1次执行时,其Qos属性值就由前n次执行结果得出,即第n+1次执行的属性值q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>取第n次执行时所记录的数据,q<sub>4</sub>则由前n次执行结果综合得出;设前n次执行的可靠性函数,所述可靠性函数是用来计算可靠性的值,分别为:(f<sub>1</sub>(a,s),f<sub>2</sub>(a,s),f<sub>3</sub>(a,s)...f<sub>n</sub>(a,s))其中,a为用户评价参数,s为其他服务对该服务的评价参数;所以对于最终第n次执行时所参考的可靠性应该为:<maths num="0001"><math><![CDATA[<mrow><msub><mi>q</mi><mn>4</mn></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>&phi;</mi><mi>i</mi></msub><msub><mi>f</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>a</mi><mo>,</mo><mi>s</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001019932910000022.GIF" wi="334" he="125" /></maths>为了保持值的一致性有:<maths num="0002"><math><![CDATA[<mrow><munder><mo>&Sigma;</mo><mi>i</mi></munder><msub><mi>&phi;</mi><mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>;</mo></mrow>]]></math><img file="FDA0001019932910000023.GIF" wi="190" he="102" /></maths>考虑实际情况中执行时间越靠后的可靠性的值所获得的权重应该越大所以有:φ<sub>i</sub><φ<sub>i+1</sub>;则符合以上条件的权重函数,当执行总次数n为偶数时有:<maths num="0003"><math><![CDATA[<mrow><msub><mi>&phi;</mi><mi>i</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>-</mo><mfrac><mn>1</mn><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo><mi>n</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>i</mi><mo>&le;</mo><mfrac><mi>n</mi><mn>2</mn></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>+</mo><mfrac><mn>1</mn><mrow><mo>(</mo><mi>n</mi><mo>+</mo><mn>2</mn><mo>-</mo><mi>i</mi><mo>)</mo><mi>n</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>i</mi><mo>&gt;</mo><mfrac><mi>n</mi><mn>2</mn></mfrac></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001019932910000031.GIF" wi="694" he="286" /></maths>当执行总次数n为奇数时有:<maths num="0004"><math><![CDATA[<mrow><msub><mi>&phi;</mi><mi>i</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>-</mo><mfrac><mn>1</mn><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>)</mo><mi>n</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>i</mi><mo>&lt;</mo><mfrac><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></mfrac></mrow></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><mi>n</mi></mfrac></mtd><mtd><mrow><mi>i</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mfrac><mn>1</mn><mi>n</mi></mfrac><mo>+</mo><mfrac><mn>1</mn><mrow><mo>(</mo><mi>n</mi><mo>+</mo><mn>2</mn><mo>-</mo><mi>i</mi><mo>)</mo><mi>n</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>i</mi><mo>&gt;</mo><mfrac><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn></mfrac></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001019932910000032.GIF" wi="765" he="422" /></maths>由此可得在第j次调用该业务时,所获得的该业务的服务质量:<maths num="0005"><math><![CDATA[<mrow><msub><mi>Q</mi><mi>j</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mn>4</mn></munderover><mi>&alpha;</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><msub><mi>q</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0001019932910000033.GIF" wi="334" he="127" /></maths>其中α(i)为各个属性的权重,且对于α(i)有<img file="FDA0001019932910000034.GIF" wi="242" he="102" />每次执行完一个业务之后,业务的属性值根据自身变化予以更新,本次执行完之后将第n+1次执行的属性值记录下来,作为第n+2次的属性值;步骤5:更新禁忌表,此处设置的禁忌表是对于用户m,在单次循环中在服务集合C1到服务集合Cn中不再选择参加组合的业务:①将已经选择的服务加入禁忌表,②将服务集合中执行失败的服务加入禁忌表;步骤6:如果k&lt;m,即完成组合服务的用户数目小于初始值m则跳转到步骤3继续执行,如果k=m则执行步骤7;步骤7:更新每条遍历路径上的信息量;在该步骤中对于每条路径上的信息量采用如下的更新规则:τ<sub>ij</sub>(t+n)=(1‑γ)*τ<sub>ij</sub>(t)+Δτ<sub>ij</sub>(t)<maths num="0006"><math><![CDATA[<mrow><msub><mi>&Delta;&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msubsup><mi>&Delta;&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001019932910000035.GIF" wi="550" he="150" /></maths>其中γ∈(0,1)表示信息素挥发系数;加入该挥发系数的原因是要满足整个环境的动态变化,之前环境下遗留下来的信息素会只剩下(1‑γ)倍,而且加入挥发系数可以防止信息素的无限积累;<img file="FDA0001019932910000041.GIF" wi="83" he="71" />表示第k个蚂蚁在本次循环中留在路径上的信息素增量;对于信息素增量采用Ant‑Cycle模型即:<img file="FDA0001019932910000042.GIF" wi="1140" he="203" />其中Q为信息素强度,L<sub>k</sub>为第k个蚂蚁在本次循环中走的路径长度;将蚂蚁从i到j所走的路径与从i服务选择j服务时的Qos属性值联系起来,在此令Q=1,根据之前定义的Qos属性,将L<sub>k</sub>定义为:<maths num="0007"><math><![CDATA[<mrow><msub><mi>L</mi><mi>k</mi></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><mo>|</mo><msub><mi>f</mi><mi>i</mi></msub><mo>-</mo><msub><mi>p</mi><mi>i</mi></msub><mo>|</mo></mrow>]]></math><img file="FDA0001019932910000043.GIF" wi="326" he="127" /></maths>则:<img file="FDA0001019932910000044.GIF" wi="1125" he="271" />其中f<sub>i</sub>为该服务Qos的第i个属性值的函数,通过f<sub>i</sub>可得出当前服务Qos的第i个属性值,p<sub>i</sub>为用户对于该服务第i个属性值的期望值,由该函数的定义可知,当实际值与期望值的差的绝对值越小则留下的信息量越大,那么选择差值小的服务的可能性就越大;步骤8:如果循环次数达到了设置最大值则执行步骤9,即当循环次数N=N<sub>max</sub>时执行步骤9,否则清空禁忌表跳转至步骤2继续往下执行;步骤9:根据最终留在选择路径上的信息素,在每步选择下一个业务时的概率<img file="FDA0001019932910000045.GIF" wi="110" he="69" />都会有一个最大值,在每步选择下一个参加组合的业务都按照最大的概率<img file="FDA0001019932910000046.GIF" wi="108" he="71" />来选择,则得出了最佳选择路径,程序结束。
地址 210003 江苏省南京市鼓楼区新模范马路66号