什么是 Enhydra Shark 管理程序?
Shark 管理程序是一个 Java swing 应用程序,管理者可用于进行 Shark 引擎的管理。有两种管理程序,一种是把 shark 直接作为库来使用,另一种是利用 shark 的 CORBA 包装器接口,配置成CORBA 服务与Shark进行通信。该管理程序可用来处理含有XPDL文件(上传新的 XPDL 文件或删除已有)的 shark 外部库,向 shark 中加载 XPDL 文件,以及卸载、更新该文件,以实例化和监控 shark 的流程,进行参与者定义到实际用户间的映射, application definitions 和 Tool agents 间映射,等等。该管理程序还包括用来执行 workitem 的内置 worklist 处理程序,或从某个用户向另一用户再次指派 workitem。
下一章节将阐述管理程序的可行性。
启动 Shark 管理程序
有两种管理程序,第一个是把 shark 直接作为库来使用,另一个则通过它的CORBA 接口来使用它。
启动把Shark作为库来使用的管理程序
要启动把Shark作为库来使用的 shark 管理程序,你只需执行 runSA 脚本(runSA.bat)即可(依赖操作系统)。
当程序启动后,将会出现登陆界面。要真正连接上 shark,首先你应该输入用户名和密码。你输入什么都可以,但必须是合法的,除非你以前用相同用户名和不同密码登陆过。
当你输入了必要的参数后,点击 OK 按钮,你将连接上 shark。
启动 CORBA 管理程序
采用这种方式,你只需执行 runA 脚本(runA.bat)即可(依赖操作系统)。
当程序启动后,将会出现登陆界面。要真正连接上 shark,首先你应输入用户名和密码。如果 shark 服务器设置没有发生改变过,默认用户名和密码写在 "Shark.conf" 中,分别是 usename="admin",password="enhydra"。
下一步,你应该知道启动的 CORBA 命名服务器所在机器(Shark 服务器本身已经登记的机器)的名称和端口。同时,你必须知道自己登记的命名服务器的名字(该参数也设置在服务器"Shark.conf"文件里)。
如果已经启动命名服务器,服务器和客户都在你的本地机器上,使用给定的脚本文件,要是没有改变 "Shark.conf" 文件的话,除了用户名和密码外的所有值都被设置好了。
当你输入了必要的参数后,点击 OK 按钮,将连接上服务器(当然,服务器应该调用 run 脚本(run.bat)先运行起来)。
注意:如果你想把命名服务器、shark 服务器和管理程序一起启动,你只需简单的运行 runAll 脚本(runAll.bat)即可。
使用 Shark 管理程序
shark 管理程序被分成多个逻辑部分。各部分分别表述下列内容。
库管理(Repository Management)
库管理中显示了在引擎的 XPDL库里所有可利用的文件。在这里你能管理引擎的 XPDL 库,可以从本地上传新的 XPDL 文件到服务器的知识库中,或删除其中一个。
上传新包,要点击 'upload' 按钮。接着出现一个对话框让你从本地文件系统选择 XPDL 文件。当你选择了要上传的包文件后,对话框将自动显示引擎库的相对路径。你也可以自己定义引擎上的 XPDL 目录结构和文件名。例如:test/conformance/test1.xpdl。
当文件上传到引擎的库后,就可被载入到引擎中,流程也就可以运行起来了,这些都会在下面描述到。
当然,你也能从引擎的库选择想要删除的文件,再点击 'delete' 按钮。
注意:如果你想上传到库的文件不是 'shark' 合法的,一些描述问题原因的信息会显示出来,包将不会被上传。
包管理(Package Management)
包管理显示了所有装载到引擎的包(XPDLs)。包管理允许你从引擎中装载和卸载包,而且也能更新已载入包和同步引擎包的缓存。
载入包:要把包载入到引擎中,你应该点击 'load' 按钮,接着选择某个包。你所载入的包都来自于引擎库,除了当前你已经载入的包,并且 Id 和已经被装载的包名一样。当你从列表选择了包,文件名和 Id 会显示到文本筐内。接着,再点击 'Load' 按钮,包将被加载到引擎中(如果是合法且在加载过程中没问题),你将能启动基于包流程定义的流程实例。
注意:如果包引用了一些外部包,这些外部包也会被载入引擎,当然他们也要是合法的。
注意:如果你想加载到引擎的文件不是 'shark' 合法的,将会显示问题描述的错误信息,接着包被卸载掉。
卸载包:要从引擎卸载包,先选择好目标,然后点击 'unload' 按钮。如果包流程定义中没有已实例化的流程,则仍旧保留在 DB 中,并且这个包也没有引用任何其他包,则将从引擎中卸载。一旦卸载了,你不能从流程定义中实例化流程。
你也有可能卸载包的所有版本,但这需要 furfilled 包的每个版本。
更新包:如果你想更新包,就先选中它,再点击 'update' 按钮。将列出库中所有的包,显示了和你想要更新名称一样的 Id(包)。接着再选择其中一个点击 'update' 按钮。这个时候的流程还是基于原先包中定义运行,不过你可以建立基于新版本包的流程定义。
如果你想更新的包文件不是 'shark' 合法的,将会出现错误信息。
注意:流程定义的可视化图形界面将会在实例化和监控章节说明,如果一些包有多个版本,你只能看到最新的包流程定义,无论实际的流程管理器是否基于老的版本,所以视图在这种情况下是无效的。同样可以在包列表树上点击鼠标右键取得属性。
流程实例管理(Process Instantiation Management)
从这里开始,你将看到已装载包的流程定义(package-processdefinition) 树。如果你从树中选择了一个包,并点击鼠标左键,将会出现包属性对话框。如果你选择了某些包流程定义,你就可以通过点击鼠标右键得到属性对话框,当然也可以做些其他事:
在右边,有些基本的流程属性,以及基于流程定义的当前流程运行数目。
通过点击 'Instantiate' 按钮,你将创建新的流程运行实例。
通过点击 'View' 按钮,你能看到流程的图形化视图。
通过点击 'Description' 按钮,你能看到流程定义的描述。
你能把包的具体流程定义或整体流程定义设置为有效或无效。
你可进行指派的重新评估(如果你改变了参与者 -> 用户的映射,并且想应用到已建好的指派中,这会很有用)。
注意:当图形化界面中出现了相同流程定义的多个版本,你只能看见最新的一个,无论实际流程管理器是否根据老定义运行,那样的话视图是无效的。同样对包树上的流程定义单击鼠标右键读取属是有效的。
流程监控(Process Monitor)
流程监控被分成四个主要部分。package-processdefinition-processinstances 树允许你从包流程定义中选择某个正在运行的实例。当选择了流程实例,另一部分将会显示相应的流程实例的图形化数据。你会看到主要的实例属性(名字、当前状态),你能看到标记了当前正在运行,处于活动状态的流程实例的图形化对话框,你也能通过底部的按钮对流程实例进行不同的操作。
可进行的操作如下:
启动流程 -