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.