`
clant
  • 浏览: 21052 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Shark学习笔记

阅读更多

Shark的版本


现在稳定的版本是1.0版,是在2004年7月以后发布的,因此目前国内还没有人认真的研究其源码。


shark的安装
下载地址:http://shark.objectweb.org
在windows平台下,直接点击安装图标,按照提示便可完成安装。在安装过程中需要指定jdk,shark1.0需要jdk的版本为1.4.1或者以上。

Shark的配置
如果是使用安装包安装的,可以不用配置就可以运行,如果是用的zip包解压或者copy的,需要配置如下项:
在安装路径下有个configure.properties文件,修改里面的jdk_dir=c:/j2sdk1.4.1
为jdk的正确安装路径。
默认情况下,shark使用hypersonic数据库作为工作库,如果想使用其它的数据库,如oracle、mysql等,就需要修改文件中以下几项:
db_loader_job=hsql     //指明需要使用哪种数据库
db_user=sa //连接数据库的用户名
db_passwd= //连接数据库的用户密码
db_ext_dirs= //驱动的所在路径
hsql_JdbcDriver=org.hsqldb.jdbcDriver //驱动类名称
hsql_Connection_Url=jdbc:hsqldb:/home/wiznogood/workin/.vajat/Shark/output/Shark/db/hsql/hsql //数据库连接串
如果要自动配置请执行以下命令:
configure.bat - for Windows OS
configure.sh  - for Unix OS


shark的启动
在“开始——程序——shark1.01”中,鼠标单击“Run Shark System”就可以了。

{注:实际启动shark时,启动顺序是名称服务器(tns.bat是为corba服务的),服务器(run.bat),管理控制台(runA.bat基于corba的)。你也可以用快捷方式shark(runAll.bat)一次性启动三种服务。

如果想直接启动管理控制台图形界面,执行以下命令:
runSA.bat - for Windows
runSA.sh  - for Unix
runA.bat和runSA的区别:
runA.bat启动的是基于corba代理的控制台,而runSA.bat启动的是普通的控制台,直接使用wapi的。

第一个例子(hello world)
这个例子是自带的,在“quick start”文档中也有,我将其翻译成中文。(靳凯)

1. 登录:启动了shark之后,在shark Administrator Application应用程序中登录到工作流服务器上,用户名是“admin”,密码是“enhydra”。


2. 载入XPDL文件:选择Package management部分,点击Load按钮=>选择test-JavaScript.xpdl文件=>点击Load按钮或者双击菜单中的test-JavaScript.xpdl=>点击Close按钮,这样,xpdl的包就载入内存了。这样我们就可以实例化xpdl中定义的流程了。


3. 查看流程:到Process instantiation management部分,在左边树结构中选择Package-test_js->Process definition-The Game,点击View来查看这个流程。这个流程说明如下:
           这个例子是一个猜数游戏,有2个参与者,流程开始后,每个人都输入1个从1——100的整数,当2个人都输完后,“Generate Random No”这个活动就会产生一个随机数,这个活动是由shark引擎自动执行的,使用Tool Agent application来实现,随机数产生后,shark会根据“Generate Random No”到“Update Player1 Score”的流转条件——谁的数与随机数相近?如果和player1相近,就执行“Update Player1 Score”,否则就执行“Update Player2 Score”,这两个过程也是引擎使用Tool Agent application自动执行的,即在获胜者原有的分数上+1,同时调用“Update Counter”活动,为游戏次数+1,接着是两个手动执行的流程,由2个参与者察看自己的比赛得分情况,然后,shark判断从“r3”到“r2”过程的转移条件,如果游戏次数小于“game_cycles”变量的值,就开始新一轮。直到结束。

4. 增加用户:到User management的Account部分增加用户,Group是player,用户名是jinkai,密码是jk,姓名是jin kai;


5. 增加用户映射:到Mapping部分,点击Add按钮,左边面板中选择Player 1 - rol,右面板中选择jinkai –jin kai,点击应用,然后关闭,这样在XPDL中定义的参与者就和实际的用户映射好了,所有player 1的活动都放在了jinkai的工作列表中来处理。


6. 增加应用程序映射:转到Application mapping部分,点击ADD按钮增加Application mapping,左面板中选择random_no_generator,右面板中选择org.enhydra.shark.toolagent.JavaClassToolAgent,并设置Application name为RandomNoProc,然后应用左面板中选择addition,右面板中选择org.enhydra.shark.toolagent.JavaScriptToolAgent,并设置Application name为AdditionProc.js和Application mode为0,然后应用。


7. 初始化工作流实例:到此为止所有的准备工作都做好了,一个完整的工作流程就配置好了,转到Process instantiation management部分,选择The Game,然后点击Instantiate。会提示输入比赛的次数,输入个2。


8. 启动player1的工作列表处理器:运行“runWH”命令,启动工作列表管理器。


9. player1登录并开始工作:在打开的窗口中,输入用户名:jinkai,密码:jk,在工作列表中,会有一条待办工作,双击此工作,提示输入一个0到100的数,输入后,关闭。待办工作消失。


10. player2开始工作:切换到管理控制台,admin用户就是player2,进入到“Worklist management”中,会看到有一条待办工作,双击此工作,提示输入一个0到100的数,输入后,关闭。待办工作消失。
当两个人都输入完了以后,系统开始产生随机数并计算两个人的成绩,并分别产生两个察看结果的活动通知给每个人。


11. player1、player2察看比赛得分:在2个参赛者的工作列表中都出现了“View score”活动,双击执行。


12. 系统判断比赛是否继续:由于比赛次数输入为2,因此还有1次,继续步骤8。

Shark的源码编译
1. 把shark的源代码包解压到一个目录下。
2. 运行configue.bat -help看一下。
3. 然后,运行configure -jdkhome %java_home% -instdir e:/buildtest 指定jdk的路径和install的路径。
4. 执行:make –help 看一下有什么选项,为了快速的编译,应该选buildNoDoc选项。
5. 运行:make buildNoDoc进行编译构建。生成了一个out目录,里面就是make后的结果。此过程需要花费一段时间,我的机器上(PIII933 256M)用了6分钟,请耐心等待。
6. 然后就可以执行make install把编译后的结果安装到指定目录了。

更换shark的数据库
默认是使用hipersonic数据库,一般的需要使用高级一点的数据库,以mysql数据库为例。

1. 安装mysql数据库,安装过程见附录1
2. 修改configure.properties,修改前备份一下,以防万一。
3. 把第10行db_loader_job=hsql db_修改成:loader_job=mysql
4. 找到# user credentials for DB access(12行)
把下面两项修改成如下:
db_user=root
db_passwd=
5. 保存即可。
6. 把mysql的jdbc数据库驱动复制到shark安装目录的lib\contrib目录下。
7. 在你的mysql数据库中建一个名为shark的数据库
8. 在shark安装目录下运行configure.bat即可,会自动重新建数据库的。
9. 然后就可以运行runALL.bat启动了。
JspCilent工程的启用
每次运行完configure.bat后,都会重新生成sharkworklisthandler.war包,我估计是根据配置,把不同的驱动,jar包copy到一起,


附录1 mysql数据库的安装与配置
MySQL下载

MySQL网址:http://www.mysql.com/
MySQL的下载地址:http://dev.mysql.com/downloads/

Mysql压缩包:mysql-noinstall-4.1.10a-win32.zip 36M 解压即用
Mysql JDBC Driver:mysql-connector-java-3.1.7.zip Java开发用
ems mysql manager2.8 破解版:
http://www.yoryoue.iii-grp.com/Tools/EMS.MySQL.Manager.v2.8.7.3.Pro.rar

配置文件
在系统盘如c:/winnt/下新建一个文件my.ini,内容如下:
[WinMySQLAdmin]
   Server=e:/mysql/bin/mysqld-nt.exe
  
[mysqld]
   basedir=d:/mysql
   datadir=d:/mysql/data
   default-character-set=gbk
  
[client]
   default-character-set=gbk
注意路径要使用正斜杠。
执行命令
加入到Windows的服务中:
D:\mysql\bin> mysqld-nt  -install  
启动、停止mysql服务
D:\mysql\bin> net start mysql
D:\mysql\bin> net stop  mysql
移除mysql服务
D:\mysql\bin> mysqld-nt --remove
移除MySQL前,先停止MySQL服务,最后删除MySQL安装目录即可
Jdbc驱动的使用方法
解压,在目录下找这个文件:mysql-connector-java-3.1.7-bin.jar
这个文件才是真正的驱动包

分享到:
评论

相关推荐

    Java学习笔记(要点记录)

    Java学习笔记中涵盖了多个关键知识点,以下是对这些内容的详细解释: 1. **数组定义**:在Java中,数组是一种存储固定数量同类型数据的集合。整形数组如`int[] array = new int[needSize]`,字符串数组如`String[] ...

    优秀资料(2021-2022年收藏)小学阶段英语单词分类学习大全.docx

    动物类别包含39个单词,涵盖了常见的家禽家畜(如cat(猫)、dog(狗)、pig(猪))、野生动物(如elephant(大象)、lion(狮子)、tiger(老虎))和水生生物(如fish(鱼)、shark(鲨鱼))。这些词汇能帮助...

    六年级英语(下册)随堂笔记.doc

    这篇随堂笔记主要涵盖了六年级下册英语中的关键语法和表达方式,主要集中在形容词的比较级、询问个人特征的句型、特殊短语和词汇等方面。 1. **形容词的比较级**: - **基本形式**:A + be动词 + 形容词的比较级 +...

    使用wireshark蓝牙抓包器教程(含文档与软件安装包).rar

    通过本教程提供的文档,你可以深入学习BLE的ATT协议和Wireshark的使用方法。文档可能包含具体的步骤、示例捕获数据以及解释,帮助你更好地理解和利用这些工具。请仔细阅读文档,结合实际操作,以提高你的蓝牙网络...

    doc:我的Docsify笔记

    本仓库用于记录学习过程中的所思所想,并力图构建一个完善的知识体系,便于复习巩固 :folded_hands:参考大佬模板: | :crown:编程语言 :pushpin: C :cloud: C ++ :hot_beverage: Java :snake: Python :...

    Lenovo ThinkPad S1 Yoga主板原理图

    文档中还出现了“Intel Shark Bay ULT Processor with DDR3L”,指的是使用了Intel的Shark Bay微架构的超低电压处理器,支持DDR3L(低电压版DDR3)内存,这种处理器通常用于笔记本电脑中,以保持高性能和低能耗。...

    小学英语单词分类表大全A4完美打印版-小学英语词汇表大全.doc

    小学英语单词分类表是帮助孩子们系统学习和记忆英语词汇的重要工具。这份文档包含了四个主要类别:学习用品、身体部位、颜色以及动物。每个类别都列举了相关的英文单词及其音标,便于学生朗读和理解。 在学习用品...

    英语单词分类带音标汇总.doc

    以及猫(cat)、狗(dog)、猪(pig)、鸭(duck)、兔(rabbit)、马(horse)、大象(elephant)、蚂蚁(ant)、鱼(fish)、鸟(bird)、鹰(eagle)、海狸(beaver)...squid)、龙虾(lobster)、鲨鱼(shark)和海豹(seal)等常见动物的英语词汇...

    小学英语必考单词分类大全.doc

    小学英语学习中,掌握词汇是基础,而对小学生来说,将单词进行分类记忆可以提高学习效率。这份"小学英语必考单词分类大全"文档详细整理了各类常见的英语词汇,包括学习用品、身体部位、颜色、动物和人物等,旨在帮助...

    小学英语单词大全汇总.doc

    - shark(鲨鱼) - seal(海豹) 动物词汇的学习能够培养孩子们对自然界的认识,激发他们对生物科学的兴趣。 5. 人物(People): - friend(朋友) - boy(男孩) - girl(女孩) - mother(母亲) - ...

    小学英语单词大全带音标.doc

    小学英语单词的学习是英语启蒙阶段的重要组成部分,涵盖了各种主题,如学习用品、身体部位、颜色、动物、人物和职业。这些单词有助于孩子们建立基础词汇,提高语言表达能力,并为更高级的英语学习打下坚实的基础。 ...

    小学英语单词分类大全带音标.doc

    goat(山羊), cow(奶牛), shark(鲨鱼)以及seal(海豹)。 5. 人物: 学习与人物相关的词汇有助于孩子们建立基本的社会认知。例如,friend(朋友), boy(男孩), girl(女孩), mother(母亲), father(父亲...

    基础英语单词分类大全只是分享.pdf

    【教育】领域的基础英语单词分类大全提供了丰富的词汇资源,涵盖了多个主题,如学习用品、身体部位、颜色、动物以及人物。这些词汇对于英语初学者,尤其是儿童和初级英语学习者来说,是掌握基本英语词汇的重要参考...

    初中英语单词分类大全.doc

    在初中英语学习过程中,掌握各类词汇是提高语言能力的关键。这份文档整理了四个主要分类:学习用品、人体部位、颜色和动物。这些词汇涵盖了日常生活和交流的基本元素,对于初学者来说尤其重要。 1. 学习用品 学习...

    优秀资料(2021-2022年收藏)小学英语单词分类表大全A4完美打印版.docx

    小学英语单词分类表是教育精品资料,旨在帮助小学生系统地学习和记忆英语词汇。这份文档包含五个主要分类:学习用品、身体部位、颜色、动物和人物。以下是对这些分类的详细解释: 一、学习用品(school things) 在...

    英语单词大全分类并且带音标.doc

    - 鲨鱼(Shark) - 海豹(Seal) - 抹香鲸(Sperm Whale) - 虎鲸(Killer Whale) 这些单词涵盖了日常生活中常见的物品、身体部位以及动物,是学习英语词汇的基础。通过分类学习,可以更有效地记住这些单词,...

    小学英语单词分类带音标和语法点.doc

    小学英语单词的学习是英语启蒙阶段的关键,这个文档“小学英语单词分类带音标和语法点.doc”涵盖了四个主要类别:学习用品、身体部位、颜色和动物。这些词汇都是小学生需要掌握的基础知识,对于提高他们的阅读理解...

    英语单词分类带音标.doc

    文档"英语单词分类带音标.doc"是一份用于学习英语词汇的资料,涵盖了多个主题,包括学习用品、人体部位、颜色、动物以及人物。以下是对这些主题的详细说明: 一、学习用品 在这一部分,我们可以看到一些基本的学习...

    (人)版小学英语单词分类归纳(带音标).doc

    小学阶段是孩子们英语学习的基础阶段,掌握好基本的词汇对于后续的学习至关重要。以下是一份详细的小学英语单词分类汇总,涵盖了学习用品、身体部位、颜色、动物以及人物等常见主题。 一、学习用品 在学习用品这一...

Global site tag (gtag.js) - Google Analytics