Models and Verification of BPEL

F Van Breugel, M Koshkina - Unpublished Draft, September, 2006 - Citeseer
看完后Google才知道这篇文章是没发表的,我说怎么看起来不怎么样,不过也算他的参考文献够多,以后可以借鉴。

survey

BPEL模型和验证综述

(S1) Petri Nets

BPEL流程向Petri网映射的形式化方法随着Petri的形式化语义定义的完成而出现,在此基础上,也能够对BPEL环境下的程序做出验证,包括德国的一些大学,业务流程管理中心(BPMC)和有色Petri网的一些工作。

(S2) SPIN

SPIN是检查软件系统的一种工具。基于元语言(Promela)和LTL(linear temporal logic,线性时态逻辑)作为输入。

  下面是时态逻辑的介绍:

时态逻辑在形式验证中具有一个重要的应用,此时它被用于表达硬件或软件系统的要求

在逻辑学中,术语“时态逻辑”用于描述为了表示和推理根据时间限定的命题所使用的任意规则和符号系统。它与二十世纪六十年代由Arthur Prior提出,此后它被计算机科学家(特别是Amir Pnueli)以及逻辑学家进一步发展。

时态逻辑最初由Aristotle进行了深入研究,他的著述中包含了很多原始形式的一阶时态二进制逻辑。任何使用有关存在的量词或通用量词的逻辑都可以认为是一个一阶逻辑。任何将时间看作是一个状态序列的逻辑都是一个时态逻辑,而任何只使用两个真值的逻辑都是一个二进制逻辑。

时态逻辑包括:

CTL*
计算树逻辑(Computation Tree Logic,CTL)
线性时态逻辑(Linear temporal logic,LTL)
区间时态逻辑(Interval temporal logic,ITL)
考虑这样一句话:“我饿了”。尽管其含义并不随着时间的改变而改变,但它是否为真却是随着时间变化的。这句话有时是真的,而有时又是假的,但它永远不可能同时为真或为假。在时态逻辑中,语句具有一个随时间变化的真值。而非时态逻辑只能处理其真值在时间上是常量的语句。

时态逻辑在形式验证中具有一个重要的应用,此时它被用于表达硬件或软件系统的要求。例如这样一种情形:“无论什么时候发出一个请求,对一个资源的访问最终会得到响应,但永远也不会同时响应两个请求源”。这样一条语句在时态逻辑中能够很方便地表达出来。

形式验证中存在两个早期的竞争者:

线性时态逻辑 - Linear Temporal Logic,一种由Amir Pnueli和Zohar Manna提出的线性时间逻辑;
计算树逻辑 - Computation Tree Logic,一种由Edmund Clarke和E. Allen Emerson提出的分支时间逻辑;

 

(S3) Process Algebras

 

进程代数的参考文献(书)

J.A. Bergstra, A. Ponse, and S.A. Smolka, editors. Handbook of Process Algebra.Elsevier, Amsterdam, The Netherlands, 2001.

介绍:

Process Algebra is a formal description technique for complex computer systems, especially those involving communicating, concurrently executing components. It is a subject that concurrently touches many topic areas of computer science and discrete math, including system design notations, logic, concurrency theory, specification and verification, operational semantics, algorithms, complexity theory, and, of course, algebra.
This Handbook documents the fate of process algebra since its inception in the late 1970's to the present. It is intended to serve as a reference source for researchers, students, and system designers and engineers interested in either the theory of process algebra or in learning what process algebra brings to the table as a formal system description and verification technique. The Handbook is divided into six parts spanning a total of 19 self-contained Chapters.

 

 L. Bordeaux and G. Salaun. Using process algebra for web services: Early results and perspectives. In M. Shan, U. Dayal, and M. Hsu, editors, Proceedings of the 5th International Workshop on Technologies for E-Services, volume 3324 of Lecture Notes in Computer Science, pages 54{68, Toronto, Canada, August 2004. Springer-Verlag.

 

进程演算是小的并发语言。进行了对详情的抽象并且关注功能特征。

进程演算包括:

CCS,LOTOS,pi-calculus

变现为:labelled transition systems,系统的转换关系是收集的公理和规则。在转换系统中包含有很多的等价关系。

 

FSP (Finite State Process).是Kramer and Magee在

J. Magee and J. Kramer. Concurrency: State Models and Java Programs. Wiley, New York, NY, USA, second edition, 2006.

中发布的一种进程代数,提供了一种叫做LTSA(Labelled Transition System Analyzer标记转换系统分析器)的工具,讲FSA描述的进程转换为LTS系统。并且能核查LTS的安全性和程序功能是否和FSP中的LTL逻辑描述的一致。

Foster, Uchitel, Magee, and Kramer扩展LTSA去验证BPEL程序,称为LTSA-WS。Foster等人后来又在此基础上做了很多工作,包括对多个BPEL流程间的交互和WS-CDL的验证等。

 

 CCS

Salaun, Bordeaux and Schaerf等人提倡使用现有的进程演算建模BPEL等服务组合语言。提出了一种CWB的工具去验证得到的CCS进程是否行为等价,并且是否满足性能要求。

有人提出BPE-演算建模了BPEL的大部分活动。这种方法关注链接和死路消除。

 

LOTOS

Ferrara, Salaun and Chirichiello研究用LOTOS建模BPEL,BPEL中包含事件处理、错误处理、补偿等活动,CADP工具能验证这些

 

Other Approaches

北大的裘宗燕教授带领的小组针对BPEL做了很多形式化的方法研究

Hamadi and Benatallah没有在BPEL的基础上做研究,但BPEL中的大部分活动都能映射到他们提供的演算中

p-calculus的扩展以适应BPEL等流程语言的要求也是一个很流行的研究方向。

 

(S4)Abstract State Machines

抽象状态机

 

(S5)Automata

自动机器

 

 

 

 

 

posted @ 2010-05-13 16:59  帮主  阅读(580)  评论(1编辑  收藏  举报