论文部分内容阅读
将面向方面思想引入Web服务后,可以通过定义方面将关注点从基本流程中抽象出来,提高流程定义的模块性,再使用编织技术集成,在运行时动态激活和撤销方面以适应需求的变化。用户对服务各个阶段的期望和要求以及服务商聚焦的QoS属性、事务特性等都可以描述为横切关注点,并使用面向方面方法将其添加到基本流程中。然而传统的面向方面方法中,方面的触发是基于当前正在执行的活动的,导致其在解决一些Web服务组合问题时仍然存在不足,例如事务处理、流程动态演化等问题。针对上述问题,本文提出一种基于状态方面实现Web服务横切关注点的方法。首先,在WS-BPEL中对状态方面进行扩展。在WS-BPEL的语法基础上,提出面向状态方面的业务流程执行语言,它能够定义状态方面触发条件,并基于流程实例历史轨迹抽取横切关注点,提高了流程定义的模块性,将其应用到事务处理问题中可以获得基于流程轨迹的事务处理机制。然后,实现了WS-BPEL面向状态方面的运行时编织。以有向超图作为数据结构,提出跟踪匹配算法完成对状态方面的动态编织,它独立于流程定义,在不改变原有流程定义的前提下引入了新的业务逻辑,提高了流程的适应性,支持Web服务组合流程的动态演化。最后,为了支持面向状态方面的业务流程执行语言的编译和状态方面的运行时编织,本文在业务流程执行引擎ODE中扩展了状态方面管理组件,在编译时与BPEL编译器协作编译流程文件,在运行时与BPEL引擎运行时组件交互实现动态编织。