运行时监控:Web服务对话属性模式与对象不变式验证
1. Web服务对话的属性模式
在Web服务对话的运行时监控中,存在多种属性模式,这些模式有助于对消息的出现、顺序等进行约束和检查。
1.1 其他属性模式
1.1.1 k - 有界存在(k−Bounded Existence)
消息 p 在给定范围内最多可以出现 k 次。可以使用循环操作符来检查最多 k 条消息的存在情况。循环结束后,需要检查 p 不再出现,这对应于缺失模式。
1.1.2 普遍性(Universality)
在给定范围内,只能出现消息序列 p∗。这相当于检查互补消息的缺失。
1.1.3 响应(Response)
在给定范围内,消息 p(刺激)必须跟随消息 s(响应)。响应可以在没有刺激的情况下出现,因此刺激用常规消息表示,而响应是必需的。由于在一个执行跟踪中可能有多个刺激/响应对,因此在无限循环中检查刺激/响应对的存在。
1.1.4 响应链(Response Chain)
在给定范围内,消息序列 p1, …, pn 必须跟随消息序列 q1, …, qm。有两个示例:
- p 响应 s, t:2 个刺激 - 1 个响应。使用关键操作符来封装消息序列 s, t,以确保该序列的原子性。由于刺激序列是可选的,因此不能使用断言。
- s, t 响应 p:1 个刺激 - 2 个响应。消息序列现在出现在断言操作符内,因此额外的关键操作符是多余的。
1.1.5 优先级链(Precedence Chain)
在