Tool Agents

A workflow process can specify that an activity requires the use of an external service, which can be invoked client-side as an APPLICATION or server-side as a PROCEDURE. The OBE server and worklist clients both use a Tool Agent to invoke such external logic.

Tool Agent Meta-data

Tool agent meta-data are used to register a tool agent in the factory. The basic tool agent factory implementation that comes with OBE reads and stores these data in the configuration file BasicToolAgentFactory.xml; entries have the following common format, with additional elements and attributes for specific tool agent types:
<!-- attributes and child elements common to all tool agents (denoted with ... below). -->
</entry>
<tool-agent-type id="nmtoken" type="nmtoken"? threadsafe="boolean"?>
<display-name .../>?
<author .../>?
<description .../>?
<doc-url .../>?
<formal-parameters>?
<formal-parameter id="nmtoken" mode="IN|INOUT|OUT"?>
<data-type>
<!-- One of the following types. -->
<basic-type type="STRING|FLOAT|INTEGER|REFERENCE|DATETIME|BOOLEAN|PERFORMER"/>?
<declared-type type="refid"/>?
<schema-type>xsd:any</schema-type>?
<external-reference location="document-uri" xref="fragment"? namespace="namespace-uri"? />?
</data-type>
<description .../>?
</formal-parameter>
</formal-parameters>
</tool-agent-type>
</entry>
tool-agent-type
The tag for the particular tool agent type.
id
The unique tool agent ID, as referenced from <xpdl:Application Id="tool-agent-id"> and any embedded <xpdl:ExternalReference location="tool-agent-id">.
type
The unique ID of the tool agent which this one extends.
threadsafe
Whether the tool agent implementation is threadsafe. Default is true.
display-name
The name to be displayed in design tools.
author
The name of the author or organisation which created the entry.
description
Textual description of the entry.
doc-url
A URL to online documentation for the entry.
formal-parameters
XPDL-style formal parameter definition.
id
The formal parameter ID.
mode
The parameter mode, IN, INOUT or OUT.
data-type
The parameter's data type.
description
Standard XPDL-style parameter description.

Tool Agents

A tool agent provides a pluggable means for invoking custom procedures and external applications implemented using arbitrary technologies. When a tool is executed as a procedure, it is invoked locally by the workflow engine. When a tool is invoked as an application this is done by the worklist handler application, which can be a console application, Swing- or other GUI-, web-based or other application. Currently, tool agents support console, Swing and web-based invocation. When invoked from a web application tool agents typically either direct the browser to display content in a separate window using the browser's native content-handling capabilities or in a particular usage of the latter, use the Java Net Launch Protocol (JNLP) to launch a Java applet or application.

OBE comes with a variety of tool agents:
BSF Script
Executes a sub-program in an arbitrary BSF-supported scripting language.
Document Handler
Launches the appropriate content handler for a document.
Dummy
A dummy 'no-op' tool agent.
EJB Method
Invokes a method on an Enterprise JavaBean.
Java Application
Runs a Java application.
Java Method
Invokes a Java method.
Native Executable
Launches a native executable program.
Python Script
Executes in script in the Python programming language.
Update Process Attributes
Captures new values for process attributes from the worklist user.
Web Service
Invokes a web service.
XForm
Displays a W3C XForm.