论文部分内容阅读
随着互联网技术的不断发展,开发人员设计出来的应用会在编程语言、基础平台等方面存在差异,这种差异不利于不同应用间的交互,面向服务的计算就是为解决这类问题而提出的。Web服务作为一个很重要的技术在面向服务的计算中得到了广泛的应用,它以通用的XML方式发布其使用接口,能够屏蔽应用的具体实现细节,使得不同的应用之间可以轻松地交互。但是随着互联网的不断壮大,大量的Web服务涌现,而人们的复杂需求往往不能通过单个Web服务来实现,于是就需要将不同的服务按照用户的需求以及相应的规则进行组合,进而为用户提供更加全面的功能。同时Web服务处于复杂的网络环境中,很容易受到网络拥塞、基础设施损坏、恶意攻击等各方面因素的影响,极易出现各种各样的异常,如果不对这些异常进行处理,服务组合的执行就有可能终止,进而会对用户产生不利影响。针对上面的问题,本文设计了基于Petri网的Web服务组合执行引擎。该执行引擎在服务和Petri网之间建立对应关系,在具体执行时首先初始化服务组合对应的Petri网,然后利用Petri网中变迁的激发规则,检测出可执行的变迁,利用提出的消除冲突算法对可激发变迁中处于选择结构的变迁进行选择,最后并发的执行可激发变迁对应的服务,并把服务的动态执行信息实时的反馈到Petri网上,使相应的token流动,如此反复,直到服务组合执行完毕。另外,针对服务具体执行的细节,给出了服务输入参数规范性验证方法、基于反射机制的服务间参数转换方法和基于知识框架的输出参数检验方法等。然后,在上述执行引擎的基础上提出了Web服务异常处理的Petri网实时策略,包括忽略策略、重试策略、分支间替换策略、分支内替换策略和补偿机制,并给出了基于各种策略的整体策略的实施流程。在服务发生异常并需要调整网的结构时,可以使用Petri网有效快速地重构服务组合的流程,另外能够对重构后的服务组合网进行有效验证,保证了流程的正确性。此外,给出的替换策略考虑了服务间的依赖关系,保证了服务异常处理的有效性和正确性,替换策略还充分考虑了服务的事务属性,利用补偿机制保证了数据的一致性。在获取替换服务时,使用语义功能树作为服务与其功能的桥梁,能够最大限度的查找可用的替换方案。最后,对执行引擎通过实例进行了正确性验证,通过场景实验对提出的异常处理算法进行了实验分析,验证了相应算法的可行性,并将本文提出的执行引擎与主流执行引擎进行了对比,发现了研究的优势与不足,为后续的工作指明了方向。