论文部分内容阅读
随着面向服务的体系架构SOA和面向服务的计算技术SOC成为国内外软件工程领域研究和实践的热点,围绕服务计算异常处理技术的研究工作得到了国内外学术界和工业界的广泛关注。异常处理技术是提高系统可用性和可靠性的一种重要手段,使系统在部分服务失效时仍然能执行并完成其部分功能。因此,一套完善的服务计算异常处理机制对于提高面向服务的应用系统的可信性至关重要。在服务计算这种新的计算范型下,软件的形态发生了变化,使得对异常的处理更加具有挑战性。如何使用服务计算相关理论和异常处理技术构建可用和可靠的软件系统是具有重要意义和实践价值的研究课题。尽管服务计算异常处理技术的研究取得了不少成果,但是仍面临诸多挑战和亟待解决的问题。本论文围绕这些问题进行研究,主要研究内容如下。1.针对现有服务计算异常形式化描述方法过于繁琐和复杂的问题,提出基于谓词逻辑的对异常处理过程、策略和条件等进行形式化描述的方法,并结合状态转换图和ECA规则对异常处理的过程进行直观和形象地表示,有利于对复杂的异常处理逻辑的理解和实现。作为服务计算异常处理形式化描述的基础,在对服务和异常等概念进行定义的基础上,设计异常处理的基本策略,并使用状态转换图和ECA规则相结合的方法,对这些基本策略进行描述。最后,在案例中应用所设计的异常处理策略进行异常的处理,验证了这些策略在异常恢复过程中是有效的。2.给出一种具有异常处理能力的服务协同计算建模语言CCML-E。对服务协同计算模型的端口、控制流规则、端口绑定规则和流程结构进行扩展,建立异常处理模型CCM-E。设计CCML-E语言中异常类型、异常捕获和处理语句、异常抛出语句等语言要素,使CCML-E具备异常处理的能力。参考Java语言的异常处理机制,对CCML-E的异常处理机制进行设计。采用基于XML的格式对CCML-E进行表示,相对于文本格式,具有易读、格式化等优点,且易于实现对CCML-E程序的解析和执行。3.在对服务计算异常进行深入分析的基础上,以服务不可用异常为例给出服务计算异常的检测和处理方法。建立异常事件通知模型,用于在服务发生变更或业务需求改变时,通知使用该服务的系统,实现对服务动态变更的有效控制。提出基于OCL的服务描述模型OSDL,克服了通用服务描述模型对服务行为约束和非功能属性信息描述的不足。基于服务描述模型OSDL,通过将业务需求规则与服务的功能属性和非功能属性进行匹配完成服务可用性异常的检测,实现对服务不可用异常的预测和避免。设计服务不可用异常处理模型,对不可用的服务进行等价替换,以尽可能小的代价恢复服务流程运行并尽量保留已执行部分的结果。4.利用Java语言实现CCML-E的建模支持环境,为CCML-E语言提供建模支持,设计基于CCML-E语言的异常处理体系结构并将其与建模支持环境进行松耦合集成。在服务协同计算编排中,添加用于实现异常处理逻辑的基本图符和可视化的异常处理结构,在服务可视化建模阶段就可以加入异常处理逻辑的框架,实现异常处理逻辑的可视化展示。对服务协同计算建模支持环境进行了必要的扩展,为CCML-E程序提供包括异常处理逻辑的设计在内的程序开发、异常检测、异常恢复等核心功能的基础软件设施。5.给出一个面向服务应用的异常处理建模案例,采用CCML-E语言描述系统的业务流程,并对服务交互过程中可能产生的异常进行建模,利用CCML-E的异常处理结构实现异常的捕获和处理。利用Java开发环境和DOM4J解析器实现基于XML格式的CCML-E代码的解析和执行。通过对执行结果进行分析,验证CCML-E的异常处理机制的可行性和有效性,实现异常的有效捕获和处理。本论文对服务计算异常处理关键技术进行研究,为解决服务计算异常处理所面临的问题提供了参考,对提高面向服务应用的可用性和可信性具有重要意义。