摘要: 服务组合就是将多个基本的Web服务组合成可以满足用户需求的增值服务,为企业或企业间的业务过程集成提供技术支持。作为一种流程驱动的服务组合描述语言,BPEL和其他采用不同方式的服务组合语言一样面临着流程描述的正确性问题,在执行服务组合之前要对其控制流和数据流进行分析和验证。数据竞争是BPEL数据流分析中亟需解决的问题之一。围绕BPEL流程数据竞争问题,在对BPEL规范中的活动类型、活动并发性进行分析基础上,给出了数据竞争的形式化描述,提出一种检测方法。该方法基于XML节点树的特性、活动之间的并发性以及活动关联的消息来判断是否存在潜在的数据竞争。最后,通过一个订单处理流程实例,说明了该方案的有效性。