工作流门外汉一个,班门弄斧,本来不打算写这个东东的,但是发现现在网上到处都是Shark 1.x的简单教程和笔记,2.0的几乎影子都见不到(可能是俺不懂得搜索 ),所以只好自己发扬自力更生的精神了!为了保留俺的“墨迹”,只能用这个blog记下来。
声明:这节没有讲shark原理之类的东东,仅仅是让你安装和运行shark做个测试而已,所以不要向我提技术、原理方面的问题,谢谢!
1. 安装shark 2.0
下载地址:http://forge.objectweb.org/projects/shark/
我是直接下载的zip压缩包,然后解压到c:\tws-community-2.0,后面用${tws}表示这个路径了
2. 配置shark
shark本身没有带jdk,所以请安装一个jdk,必须是jdk1.4以上的,而且shark还需要数据库平台的,也请安装一个数据库软件先,这里以MySQL为例。
首先打开${tws}\configure.properties,修改里面的
然后修改数据库属性
- # java_home
- jdk_dir=C:/Program Files/Java/jdk1.5.0 #改成jdk的安装路径
- # database vendor, pick one of:
- # db2, hsql, informix, msql, msql2005, mysql, oracle, postgresql, sybase
- db_loader_job=mysql
- # MySQL
- mysql_JdbcDriver=org.gjt.mm.mysql.Driver
- mysql_Connection_Url=jdbc:mysql://localhost/shark
- mysql_user=root
- mysql_passwd=sa
注意哦,因为是用了MySQL,你还需要把MySQL的java sql(我用的是mysql-connector-java-5.0.4-bin.jar )驱动放到${tws}\lib\contrib\下
然后,建一个新的数据库,数据库名为shark。
好了,此时运行${tws}目录下的configure.bat来完成配置!
3. 运行和测试
到${tws}\bin目录下,首先运行tns.bat,然后运行run.bat,接着运行runSA.bat,启动管理器,输入用户名admin,密码是enhydra,OK,进入管理器了。
下面是一个Quick Start,翻译自Shark自带的Quick Start,精简了下,并修改了其中的几处错误:
-
到“Package management”,点“Load"按钮,选择"test-JavaScript.xpdl",然后点"Load"或者双击 "test-JavaScript.xpdl" 。等shark载入该包到内存后,点"Exit"。
-
到 "Process instantiation management",从左边树形列表中选择 "Package-test_js->Process definition-The Game"
-
这是一个猜数字的游戏,有两个Player,系统开始生成一个随机数,然后Player可以输入一个数字,如果谁输入的数字更接近系统生成的随机数,他就的一份,游戏循环次数在游戏开始时输入。
-
到 "User management" - "Users" ,点击"New"按钮。
创建两个用户,分别是test1和test2,密码自己设置啦,这两个用户将用到游戏中
-
到"User management" - "Mapping" sub-section,点击"Add"按钮.
在左边选择"Player 1",右边选择"test1",点击"Apply" 按钮,然后点"Close"按钮
同样对test2做同样的操作,不过得选择"Play 2" -
好了,准备开始这个游戏了,转到"Process instantiation management",选择”The Game" process,然后点"Instantiate"按钮。
-
系统提示是否update some process variables。选择Yes,输入3,这里的3就是游戏循环次数。
-
Disconnect当前用户,用test1登录,到'Worklist management',刷新一下,就可以看到work list有内容,点里面的"Accepted",然后点"Completed"按钮,问你是否update process varibles,点Yes,输入一个数字,这个就是Player自己输入的数字,输入后会跟系统生成的随机数进行比较的。
-
好,对test2进行同样操作,操作结束后会产生“View Score” work list,这个是Player的得分,点“Accepted”,然后点“Completed",再点Yes就可以看到得分,当两个Player都completed view score后,就会进入新的循环,直到达到循环次数。
OK,本文到此结束,下回再见!^_^