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). -->
<tool-agent-type id="nmtoken" type="nmtoken"? threadsafe="boolean"?>
<display-name .../>?
<author .../>?
<description .../>?
<doc-url .../>?
<formal-parameter id="nmtoken" mode="IN|INOUT|OUT"?>
<!-- One of the following types. -->
<declared-type type="refid"/>?
<external-reference location="document-uri" xref="fragment"? namespace="namespace-uri"? />?
<description .../>?
The tag for the particular tool agent type.
The unique tool agent ID, as referenced from <xpdl:Application Id="tool-agent-id"> and any embedded <xpdl:ExternalReference location="tool-agent-id">.
The unique ID of the tool agent which this one extends.
Whether the tool agent implementation is threadsafe. Default is true.
The name to be displayed in design tools.
The name of the author or organisation which created the entry.
Textual description of the entry.
A URL to online documentation for the entry.
XPDL-style formal parameter definition.
The formal parameter ID.
The parameter mode, IN, INOUT or OUT.
The parameter's data type.
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.
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.
Displays a W3C XForm.