基于承诺的业务建模与MAMS服务框架解析
基于承诺的业务建模
在业务建模中,承诺是一个核心概念。以车辆维修保险场景为例,当保单持有人请求维修时,会产生一系列承诺。维修人员通过创建新的承诺 C14 来满足承诺 C13,并解除承诺 C12,之后保险公司通过向维修人员付款来履行承诺 C12。不过,保险公司并非必须此时付款,还可能有其他情况,比如维修人员可能在保险公司付款前就完成车辆维修,即满足承诺 C14。
验证代理交互
为了验证每个合作伙伴是否遵守业务模型,我们有相应的算法。如果一个代理履行了它作为债务人的每个已解除的承诺,那么就认为它遵守了业务模型。我们将 UML 序列图作为代理交互的低级模型,代理在执行一个任务时可能会交换多条消息。例如,保单持有人可能通过向保险公司发送消息来报告事故,保险公司可能会请求额外信息,从而引发更多消息。在交互模型中,我们假设任务执行者完成任务后会发送消息声明任务完成。
以下是验证代理交互的算法:
def verifyInteractions(m, i):
C = m.C # 模型承诺
CS = [] # 已满足的承诺
CV = [] # 已违反的承诺
T = i.T # 交互模型中完成的任务
for c in C:
if eval(c.consequent, T) == True:
CS.append(c)
for c in C:
if c not in CS:
if eval(c.antecedent, T) =