首先以图3.16为例对Web服务的交互行为进行说明。从图3.16中可以看出,一个Web服务包含状态、消息和通道。首先服务Service2通过发送通道G1给服务Service1和Service3发送消息mes1,服务Service1和Service3通过各自的接收通道G1接收消息mes1,且3个服务均从起始状态A迁移到状态B;到达状态B后,服务Service1通过消息发送通道G2向Service2发送消息mes2并从状态B迁移到结束状态C,Service3在到达状态B后通过消息发送通道G3向Service2发送消息mes3并从状态B迁移到状态C,服务Service2在到达状态B后通过消息接收通道G2和G3同时接收消息mes2和mes3并从状态B迁移到状态C;到达状态C后,服务Service2根据不同的条件选择不同的消息发送,当Con=Yes时服务Service2选择通道G5发送消息mes5并从状态C迁移到结束状态D,当Con=No时服务Service2选择通道G4发送消息mes4并从状态C迁移到结束状态D,服务Service3在到达状态C后通过消息接收通道G4接收消息mes4或通过消息接收通道G5接收消息mes5,并从状态C迁移到结束状态D。至此,组合服务中的3个服务均从起始状态到达了结束状态,交互结束。
从图3.16所示的Web服务行为可以看出,与其他服务相交互的服务主要包括状态、消息和通道。通过状态可以表示服务内部在交互过程中的变化过程;而通过通道的不同类型,即接收通道和发送通道可以表示服务如何与其他服务交互;而与通道相对应的消息则可以表示服务交互的具体信息。因此,下面给出Web服务的相关定义。
定义3.18 给定一个交互服务集合Sn及Sn中的一个服务si,那么消息体可以形式化地定义为一个四元组mb=(gate,type,mes,num),其中:
(1)gate表示服务si中的一个通道;
图3.16 Web服务交互行为
(2)type表示通道gate的类型,type可以是接收通道(记作accept)或发送通道(记作send),即;
(3)mes表示通道gate所发送的消息;
(4)num表示通道gate发送消息mes的个数。
定义3.19 给定一个交互服务集合Sn及Sn中的一个服务si,那么状态迁移元可以形式化地定义为一个四元组st=(tf,ta,C,MB),其中:
(1)tf表示此次迁移前服务si的状态;
(2)ta表示此次迁移后服务si的状态;
(3)C表示此次迁移发生的条件集,若无条件迁移时C=∅;(www.xing528.com)
(4)MB表示此次迁移中服务si发送或接收消息的消息体集。
定义3.20 给定一个交互服务集合Sn及Sn中的一个服务si,那么服务si的服务行为体可以形式化的定义为一个三元组sb=(tb,te,ST),其中:
(1)tb表示服务si的起始状态;
(2)te表示服务si的结束状态;
(3)ST表示服务si的所有状态迁移元的集合。
定义3.21 给定一个交互服务集合Sn及Sn中的一个服务si的服务行为体sbi=(tbi,tei,STi),那么服务si的一个迁移序列TSi=<st1,st2,…,stk>满足如下条件:
(1)对任意stj∈TSi,则存在1≤j≤k使得stj∈STi;
(2)st1=(tf1,ta1,C1,MB1)且tf1=tbi;
(3)若stj=(tfj,taj,Cj,MBj)与stj+1=(tf(j+1),ta(j+1),Cj+1,MBj+1)是TSi中的任意两个连续的状态迁移元,且1≤j<k,则taj=tf(j+1)。
从定义3.21可以看出,一个迁移序列表示的是一个服务从起始状态到任意一个状态的状态转换过程。
定义3.22 给定一个交互服务集合Sn及Sn中的一个服务si的一个迁移序列TSi=<st1,st2,…,stk>,令stk=(tfk,tak,Ck,MBk),如果tak是服务si的结束状态,那么称迁移序列TSi为完全迁移序列。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。