[发明专利]一种基于SoaML的云应用正确性验证方法有效
| 申请号: | 201310226221.6 | 申请日: | 2013-06-07 |
| 公开(公告)号: | CN103281329A | 公开(公告)日: | 2013-09-04 |
| 发明(设计)人: | 李必信;耿国清;王璐璐;陶传奇;兰阳阳;司静文 | 申请(专利权)人: | 东南大学 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
| 代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 杨晓玲 |
| 地址: | 211189 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 soaml 应用 正确性 验证 方法 | ||
技术领域
本发明属于云计算的验证领域,涉及一种基于SoaML的云应用正确性验证方法。
背景技术
云计算是分布式计算、并行计算和网格计算的进一步发展,它描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。云应用是基于云计算思想实现的、部署在云环境中的软件系统。云应用往往应用于一些对性能要求很高的领域,此类系统投入使用后必须保证连续运行,因此保障系统的正确性就显得极为重要。测试和验证是保障软件质量的重要方法,但是在云应用环境下,测试技术面临着代价昂贵且操作难度极大等问题,而形式化的验证方法就可以弥补这种不足。
越来越多的形式化验证方法及工具应用于云应用的验证,其中基于模型检验(Model Checking)的简单进程元语言解释器SPIN能有效准确地表示云应用的特征且适应云应用的验证工作。但是由于其支持的建模语言PROMELA难以进行通用直观的建模工作,特别在云应用设计阶段难以体现设计的一般化。本发明针对PROMELA语言的缺陷,使用SoaML对云应用进行建模,提出一种将SoaML中的ServiceInterface模型转换为PROMELA的模型转换方法,利用转换得到的PROMELA进行云应用的形式化验证。将通用的模型转换为形式化的模型进行验证也是软件工程领域研究的热点。SoaML是UML的一种扩展,弥补了UML没有精确语义和很难描述云应用的不足,且同时保持了UML通用直观的特性。
发明内容
技术问题:本发明提供一种既可以很好地对通用建模语言所建的云应用模型进行验证,又弥补了PROMELA不够通用、一般化的弱点的基于SoaML模型转换的云应用正确性验证方法。
技术方案:本发明的基于SoaML模型转换的云应用正确性验证方法,首先利用SoaML中的ServiceInterface方法对云应用进行建模,再进行自动模型转换为SPIN支持的模型PROMELA,然后生成PROMELA代码,并结合SoaML中的ServiceContract对应的LTL代码作为SPIN的输入。
本发明的基于SoaML的云应用正确性验证方法,包括如下步骤:
步骤1)建立给定的ServiceInterface元模型到PROMELA元模型的同态映射;
步骤2)将给定的ServiceInterface状态机采用层次自动机来描述,即以一个四元组SM=<<S,H>,E,T,D>来表示ServiceInterface状态机,其中<S,H>表示一个状态层次,S是有限状态集合,H是子状态关系,E是有限状态集合,T是有限转换集合,D是缺省状态集合。
步骤3)定义ServiceInterface状态机的活动状态配置C∈2S和事件队列Q,活动状态配置C为某一时刻ServiceInterface状态机所有活动状态的集合,事件队列Q为触发事件的队列;
步骤4)定义一个对偶<C,Q>,用以表示ServiceInterface状态机的活动状态配置C与事件队列Q的格局;
步骤5)定义对偶<C,Q>转换的约束,
(1)若substates(s)≠Φ,则kind(s)∈{composite,orthogonal};
(2)若kind(s)=orthogonal,则#substates(s)≥2,并且对于所有s的后继节点s′,
都有kind(s′)=composite;
(3)若kind(s)=composite,则#{s∈substates(s)|kind(s′)=initial}≤1。
(4)kind(source(t))≠final
(5)kind(target(t))≠initial
(6)若kind(source(t)){initial,fork,join},则guard(t)=true;
(7)若kind(source(t))=initial,则target(t)是非伪状态(non-pseudostate);
(8)若kind(source(t))=initial,则container(target(t))=container(source(t));
(9)若kind(source(t))=initial,则effect(t)=skip;
(10)若kind(source(t))=fork,则target(t)是伪状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310226221.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:流动式多媒体广告屏
- 下一篇:车位状态感知器及车位状态感知方法





