首页 理论教育 基于Pi演算的Web服务描述实践

基于Pi演算的Web服务描述实践

时间:2023-10-31 理论教育 版权反馈
【摘要】:Pi演算中的进程与Web服务有很多的相似性,这也是选择Pi演算对Web服务进行建模的原因之一。因此,我们可以很容易地采用Pi演算这种形式化方法来描述Web服务。表3.2Web服务操作与进程表达式图3.3所示的Web服务可以表达成如式3.1所示的进程PAgency,该进程通过通道AC1~AC3和AB1~AB3这6个通道与外界进行通信,其中通道AC1、AB2和AB3为消息接收通道,AC2、AC3和AB1为消息发送通道。

基于Pi演算的Web服务描述实践

Pi演算中的进程与Web服务有很多的相似性,这也是选择Pi演算对Web服务进行建模的原因之一。Web服务与外界进行交互主要通过Web服务接口视图中的操作,即消息的接收和发送;而Pi演算的进程则是通过对外通道与外界进行消息的接收和发送。所以,接口视图中的操作与进程中的通道相对应,操作中接收和发送的消息则与通道接收和发送的消息相对应;同样,Web服务的行为视图中的每一个迁移则同进程与外界交互的迁移相对应。因此,我们可以很容易地采用Pi演算这种形式化方法来描述Web服务。下面我们先给出Web服务接口视图中的操作与Pi演算中进程通道之间的对应关系,如表3.2所示。

表3.2 Web服务操作与进程表达式

图3.3所示的Web服务可以表达成如式3.1所示的进程PAgency,该进程通过通道AC1~AC3和AB1~AB3这6个通道与外界进行通信,其中通道AC1、AB2和AB3为消息接收通道,AC2、AC3和AB1为消息发送通道。

客户代理Client的内部流程逻辑描述如下:服务在初始状态A向订票服务发送一个订票请求消息Req之后进入状态B′。如果客户代理接收到请求被拒绝的消息Ref,则进入结束状态E,服务实例结束;如果客户代理接收到请求被接收的消息Acc,则进入结束状态E,服务实例结束。通过以上一系列的服务内部状态的变迁和消息(数据)的流转,一次服务就完成了。

根据服务接口视图的定义,图3.4所示的客户代理的接口视图可以定义为IVClient=(T,P,M,fp,fm),其中:

图3.4 客户代理Client

根据服务行为视图的定义,图3.4所示的客户代理的行为视图可以定义为BVClient=(S,s0,sf,R),其中:

根据服务视图定义,图3.4所示的客户代理的服务视图可以定义为SV=(s,IVClient,BVClient,fIB),其中:

在图3.4所示的服务视图中,包含了两条完全操作序列:(www.xing528.com)

图3.4所示的Web服务可以表达成如式3.2所示的进程PClient,该进程通过AC1、AC2和AC3这3个通道与外界进行通信,其中通道AC2和AC3为消息接收通道,AC1为消息发送通道。

机票数据服务(Data)的内部流程逻辑描述如下:服务在初始状态B接收到订票服务发送的请求信息Get(Get Tick Info),发送当前可获得的机票信息之后进入状态C。如果机票数据服务在状态C的信息是有票(即Have=Yes),则向订票服务发送信息Tic,然后进入结束状态D,服务实例结束;如果机票数据服务在状态C的信息是无票(即Have=No),则向订票服务发送信息NTc,然后也进入结束状态D,服务实例结束。通过以上一系列的服务内部状态的变迁和消息(数据)的流转,一次服务就完成了。

根据服务接口视图的定义,图3.5所示的机票数据服务的接口视图可以定义为IVData=(T,P,M,fp,fm),其中:

图3.5 机票数据服务Data

根据服务行为视图的定义,图3.5所示的机票数据服务的行为视图可以定义为BVData=(S,s0,sf,R),其中:

根据服务视图定义,图3.5所示的机票数据服务的服务视图可以定义为SVData=(s,IVData,BVData,fIB),其中:

在图3.5所示的服务视图中,包含了2条完全操作序列:

图3.5所示的Web服务可以表达成如式3.3所示的进程PData,该进程通过AB1、AB2和AB3这3个通道与外界进行通信,其中通道AB1为消息接收通道,AB2和AB3为消息发送通道。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈