Table of Contents
Shark Admin application is Java swing application meant to be used by administrator to manage Shark engine. There are two kind of admin application, the first one is using shark directly as a library, and the other one communicates with shark deployed as a CORBA service using shark's CORBA wrapper interface. It can be used to handle shark's external repository containing XPDLs (to upload new XPDL files or delete existing ones), to load some XPDL file into shark, unload it, update it, to instantiate and monitor shark's processes, to perform mappings among participant definitions and real users, and among application definitions and Tool agents, .... It also contains a built-in worklist handler application that can be used for performing workitems, or for reassigning workitems from one user to another.
Next sections describe the possibilities of admin application.
There are two kind of admin application, the first one that uses shark as a library, and the second one uses it through its CORBA interface.
To start the shark admin application that uses shark as a library, you simply have to execute proper runSA script (depending on OS).
When application is started, the login screen is shown. To actually connect to the shark, first you have to enter your username and password. You can enter what ever you like, and it will be valid, unless you previously logged under same user name and different password.
When you enter required parameters, press OK button, and you're going to connect to the shark.
To start the shark CORBA admin application, you simply have to execute proper runA script (depending on OS).
When application is started, the login screen is shown. To actually connect to the server, first you have to enter your username and password. If the shark server settings hasn't been changed, the default username and password, written in shark server's "Shark.conf" file, are usename="admin", password="enhydra".
Next, you have to know the name and the port of the machine where the CORBA nameserver (that Shark server have registered itself with) is started. Also, you have to know the name under which server has been registered itself on the nameserver (this parameter is also set within server's "Shark.conf" file.
If you have started nameserver, server and the client on your local machine, using given script files, and you haven't been edited these files nor "Shark.conf" file, all values except the username and password will be properly set.
When you enter required parameters, press OK button, and you're going to connect to the server (of course, the server has to be previously started using proper run script).
NOTE: if you want to start nameserver, shark server and admin application all at once, you should simply execute proper runAll script.
The shark administrator application is divided into some logical parts. Each part will be described in following sections.
The repository management displays all available files in engine's XPDL repository. This is the place where you can manage engine's XPDL repository. You can upload a new XPDL file from your local machine into engine's repository, or delete one from the repository.
To upload new package, press 'upload' button. The dialog for choosing XPDL files from your local file system is shown. When you choose the package file you want to upload, the dialog for entering the file path relative to the engine repository is shown. Here you can enter the directory structure and the file name that your XPDL will have on the engine. You can enter something like: test/conformance/test1.xpdl.
After the file is uploaded into engine's repository, it can be loaded into engine, and its processes can be started, which will be described in following sections.
Also, you can delete the files from engine's repository by selecting the file you want to delete, and pressing 'delete' button.
NOTE: if the file you want to upload into repository is not 'shark' valid, the error messages describing problems will be shown, and the package won't be uploaded
The package management displays all packages (XPDLs) that are loaded into engine. It enables you to load and unload packages to/from engine, as well as to update some already loaded packages and to synchronize engine's package cache.
Loading packages: To load package(s) into engine, you have to press the 'load' button, and select the one of the offered packages. The packages you can load are all packages from engine repository, except the ones you've already loaded, and the ones that have the same Id as already loaded packages. When you select a package from the list, its file name and Id are displayed in the text box. Then, if you press 'Load' button, package will be loaded into engine (if it is valid and if there are no problems while package loading), and you will be able to start processes instances based on the process definitions within that package.
NOTE: If the package references some external packages, they will also be loaded into engine - of course, they also have to be valid.
NOTE: if the file you want to load into engine is not 'shark' valid, the error messages describing problems will be shown, and the package want be uploaded
Unloading packages: To unload package from engine, you have to select the wanted package, and press the 'unload' button. If there are no instantiated processes from that package's process definitions that are still held into DB, and this package is not referenced by any other package, it will be unloaded from the engine. After that, you will not be able to instantiate the processes from its process definitions.
You also have possibility to unload all versions of some package, but than the above requirements must be furfilled for each package version.
Updating packages: If you want to update package, you can do it by selecting it, and pressing 'update' button. The list of the packages from repository, with the same Ids as the one you want to update, is shown. You can select a package from the list, and press 'update' button. The processes that were running based on old package's process definitions remain to run based on them, but you'll be able to create processes based on definitions contained in new package version.
If the file you want to update the package file with, is not 'shark' valid, the error messages describing problems will be shown, and the package want be updated
NOTE: When viewing graphical presentation of process definitions from Instantiation or Monitoring section, and if there are many versions of some package, you'll see only newest package's process definition, no matter if the actual process/process manager is based on old definition, so the view in that case could be invalid. The same is true for the properties that can be read by right-clicking in package tree.
Here from, you can view the package-processdefinition tree of the loaded packages. If you select a package from the tree, and press left-mouse button, you can get the property dialog of the package. If you select some of the package's process definition, you can also get the property dialog by right-mouse button, but you can also do some other things:
In the right pane, you can see some general process properties, along with the number of currently running processes based on this process definition.
You can create a new running instance of the process and start it by pressing button 'Instantiate'
You can see the graphical presentation of the process by clicking the 'View' button
You can see the description taken from process definition by pressing 'Description' button
You can enable or disable specific process definition or whole process definitions for package(s).
You can perform reevaluation of assignments (this can be useful if you change participant->user mappings, and want that they are also applied on already created assignments)
NOTE: When viewing graphical presentation, and if there are many versions of the same process definition, you'll see only newest one, no matter if the actual process manager is based on old definition, so the view in that case could be invalid. The same is true for the properties that can be read by right-clicking the process definition in package tree.
Process monitor is divided into four major parts. The package-processdefinition-processinstances tree enables you to select a running instance of a package's process definition. When you select the process instance, other parts graphical data correspond to this process instance. You can see the main properties of the instance (the name, and the current state), you can see the graphical diagram of the process instance with activities that are currently running being marked, and you can perform different operations on that process instance using the buttons at the bottom.
The operations you can perform are:
start the process - this can be done in the case that process is in open.not_running.not_started state
suspend the process - all its active activities and synchronous sub-processes instantiated by some active subflow activities will be suspended
resume the process - all its activities and synchronous sub-processes instantiated by an active subflow activities will be resumed NOTE: if you try to resume a synchronous process started by some subflow activity of the suspended process - you will not be able to do it, it will be automatically resumed when the 'parent' activity is resumed
terminate the process - all activities and synchronous sub-processes instantiated by an active subflow activities will be terminated
abort the process - all activities and synchronous sub-processes instantiated by an active subflow activities will be aborted
view the process history - the chronological view of what have happened since the process started (when the process started, when process changed its state, when some process variables are changed, when some process activity changed state, when a process activity variables changed, when are activity assigned to resource, ...)
see the description of the process
see and edit the process variables, and that way you can manage the process flow if needed (if a transition condition depends on the variable value)
enter activity management dialog. The dialog displays the list of process activities, and when you select one of them, its current state is displayed in the text box. From this dialog, you can perform the similar operations on single activities:
suspend activity
resume activity
terminate activity (when you terminate an activity, process proceeds to the next activities if transition conditions are satisfied)
abort activity - process becomes 'stucked'
manually start an activity
delete all finished processes
delete selected process (or finished processes based on selected process definition, or finished processes based on all package's process definitions)
perform a check for activity deadlines for all processes
perform a check for limits of all processes and activities
It is divided into three parts:
Accounts - You can manage the users of the shark server by defining the new ones, deleting the existing ones or changing their properties.
NOTE: If shark is configured to use LDAP implementation of UserGroup manager, you will not be able to create new, modify or delete existing account, but just to see existing ones.
Logged - displays the list of currently logged users
Mapping - enables you to map the package and package's processes participants to the real shark users. When you define some mappings, and the process comes to the point when an activity needs to be performed by participant that is mapped to one or more real users, the workitem will be placed on the worklist of every mapped user.
You can map a package and package's processes applications to the real applications handled by a tool agent. Currently, six tool agents come with the Shark distribution. To map application definition to tool agent application, you have to go to the application mapping section of admin application, and press the "add" button. The dialog will arise, and you have to select the application definition at the left side of dialog, and the tool agent on the right side of the dialog. Then you should enter some mapping parameters for tool agent. When you map the application definition to the tool agent, shark will try to connect to the proper tool agent and ask him to execute its application, and will retrieve the results of execution. Here is the brief description of parameters you can enter when mapping application definition to tool agent application:
username and password - not required for tool agents distributed with Shark. Some other tool agents can use it when calling applications that require login procedure
Application name - the name of application that should be started by tool agent (i.e. for JavaClassToolAgent that would be the full name of the class, for RuntimeApplicationToolAgent it would be the name of executable file that should be in the path of the machine where tool agent resides, for JavaScriptToolAgent this can be either the name of the java script file, or the java script itself, depending on Application mode attribute), for SOAPToolAgent it is the location of WEB service and for MailToolAgent it is a class of MailMessageHandler called to actually send/receive mails.
Application mode - various tool agents use this attribute for different purposes. I.e., RuntimeApplicationToolAgent uses mode 0 to indicate that it should not finish execution until the system application is finished (otherwise it will start system application and return finished status -> activity does not wait for system application to finish, but process proceeds to the next activity), and JavaScriptToolAgent uses mode 0 to indicate that it should search for java script file (otherwise, the application name will be considered the java script)
You can find more about tool agent mappings in Tool Agent documentation.
You can handle the size of the shark caches using this section. You can change the size of Process and Resource caches, as well as you can clear them.
This is pretty much the same as the shark's worklist handler application. Here from, you can perform the workitems of the instantiated processes. You can perform your workitems, and you can see others workitems. Also, you have a possibility to reassign the workitem from one user to another.
The workitem is performed by pressing 'complete' button, or by double-clicking it in the table. If the workitem has variables that are meant to be updated by you, you will be asked to do so when 'completing' it, or you can enter the update dialog before you complete the workitem (but only if you have accepted it).
When a workitem is put into the list of two or more different users, it will stay there till any of them accept it. When someone accepts the workitem, it is removed from other users worklist, and if he reject it afterwards, the workitem will be put back to the proper users worklist.
NOTE: TO BE ABLE TO UPDATE OR VIEW VARIABLES WHEN EXECUTING A WORKITEM, THE ACTIVITY DEFINITION HAS TO HAVE SOME SPECIAL EXTENDED ATTRIBUTEs DEFINED, AND HERE ARE THE EXAMPLES:
if you want to allow performer to update the 'x' process variable when executing activity, when creating the process definition, you should define the extended attribute for that activity as follows:
<ExtendedAttribute Name="VariableToProcess_UPDATE",Value="x"/>
if you want to allow performer only to see the 'y' and 'z' process variables when executing activity, when creating the process definition, you should define two extended attributes for that activity as follows:
<ExtendedAttribute Name="VariableToProcess_VIEW",Value="y"/> <ExtendedAttribute Name="VariableToProcess_VIEW",Value="z"/>
if you want to allow performer to update 'x', 'y' and 'z' process variables, and to see 'a', 'b' and 'c' variables, you should define the following extended attributes for given activity:
<ExtendedAttribute Name="VariableToProcess_UPDATE",Value="x"/> <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="y"/> <ExtendedAttribute Name="VariableToProcess_UPDATE",Value="z"/> <ExtendedAttribute Name="VariableToProcess_VIEW",Value="a"/> <ExtendedAttribute Name="VariableToProcess_VIEW",Value="b"/> <ExtendedAttribute Name="VariableToProcess_VIEW",Value="c"/>
YOU CAN SIMPLY DO ALL OF THAT BY USING Enhydra JaWE WORKFLOW EDITOR