YAWL初探

 
YAWL引擎(yet another workflow language)是一种开源的工作流引擎,经过几天的熟悉,记录学习体会如下:
 
1. YAWL引擎是以tomcat为服务器的一个web应用程序,主要功能是载入用户定义的流程定义文件(specifications),通过launch case进行运行,每个case相当于一个线程,可以实现线程的启动和挂起,在case启动后,即按照用户定义的流程进行处理,用OR-split,XOR-split等实现条件判断,对于timeservice还可实现基于定时的流程管理。每个下步的工作由available works提供
2. 我所理解的YAWL(或者说所有工作流引擎?)的特点就是只需要知道一个定义好的工作流程提交给引擎即可,而不必分别实现各自的程序(如同应用程序那样)。
YAWL中的数据由XML标准(XML schema)定义,在YAWLeditor中设计流程图时就应定义好所有数据。数据分为net变量和task变量,数据之间的通信由XPath和XQuery实现,不同变量有着不同的作用范围。使用自定义数据类型可以用complextype定义。
3. 关于过程定义:由YAWLeditor可以得到ywl格式的流程图,完全基于PetriNet,condition代表place,task代表transition,在task中数据可以得到处理。任务分atomic task,composite task,itinery task等,可根据情况选用。
4. launch case对应着启动一个任务,在启动时可能要求输入正确的参数(对于yawl来说是输出),此时如果数据格式有问题,则会出错。通常的参数类型有string,double,date(yyyy-mm-dd)等。启动任务后在available works页面中能够看到下面将要进行的过程,可以为一个或多个,多个的情况至少会执行一个,即设为default的对应task。在任务选择的时候数据由XPath和XQuery提供。
5. 以下简述一个设计specification并送到引擎中执行的过程:
1.         首先打开YAWLEditor,选择new specification
2.         在新的specification中定义net的名称,添加主要task
3.         若有composit task或multi task,则需要新建对应的subnet一一进行定义
4.         连接task,在task之间添加condition
5.         设置task的数据(task variable)和specification的数据(net variable),他们之间的通信由XQuery实现
6.         设置flow,其配置由XPath实现
7.         validation检查,可通过则说明设计基本正确,若有问题则根据提示修改,通常的问题是数据配置和数据通信的问题
8.         export为XML格式
9.         运行tomcat,打开浏览器进入YAWL的worklist页面
10.     在administrate中load刚刚导出的XML文件,在workflow specifications中点击刚刚load的XML,即启动过程
11.     过程启动后可以得到任务的id,在available work中可以看到任务运行,点击对应id可以查看当前状态。
12.     在available work中看到的是下面可以进行的流程,YAWL根据输入的参数进行相应的判断引导流程向下继续执行
13.     在最后一个task执行之后,过程结束,available work为空
14.     对于有timeService的过程,在时间到后会自动执行对应的下一任务
6. YAWL运行中可能遇到的问题:
我遇到了两个问题
1. 不能正确显示worklist页面:
解决:在下面的java options中添加一行: -Djava.home=H:/Program Files/Java/jdk1.6.0
 
2.载入specification或launch case出错
若机器上安装有java编译工具如jbuilder等,在tomcat的configuration中的java面板中的java虚拟机选择默认,因为jbuilder安装时会自动关联tomcat,使其与初始安装时不一致
另外在运行时可能出现各种error,此时的问题可能是对应的数据类型不对或者在XPath和XQuery中的语句有错,比如目前我启动任务的时候总是得不到正确的时间格式,疑为与java版本有关,正在进一步研究中
 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值