|
Prerequisites
Software Installation
Workflow
Enactor API
Prerequisites
The Workflow Enactor is
Operating System independent as it is based on Java. It has been
tested mainly in Linux, OSX, and Windows XP. It requires Java
Version 1.5 or later.
All the java packages
that the Workflow Enactor depends on are located in Maven public
repositories or in the public repository at IT Innovation.
Shell scripts have been
developed mainly for Unix bash shell, but some are also provided for
Windows XP command shell.
Installation
The Workflow Enactor
consists of the following components (some of them are plug-in
components to communicate with external services that are part of
the BREIN framework):
·
the
adaptive-api component is the core process
object model of the enactor;
·
the
enactor component contains the evaluation
and execution environment;
·
the
cxfutils component contains utilities
useful for invoking BREIN services through the BREIN Gateway;
·
The
axis-utils contains utilities useful for
invoking WSDL services;
·
The
simpleCLI provide a simple Command Line
Interface (CLI) mainly for testing purposes but it supports all
available functionality of the enactor;
·
Evaluation Plug-ins can be
optionally installed. They implement one of the ProcessDiscoverer,
ProcessSelector, ProcessNegotiator interfaces of the enactor:
o
The
ServiceDiscoveryRegistryPlugin (ProcessDiscoverer)
provides functionality required to contact the Service Discovery
Registry (SDR) component while searching for services;
o
The
SESSPlugin (ProcessSelector) provides
functionality to access the Semantically Enhanced Service Selector (SESS)
to select a service among the available ones returned by the Service
Discovery Registry;
o
The
SLANegotiatorPlugin (ProcessNegotiator) is
required to contact the SLA Negotiator component in order to
negotiate the SLA terms (QoS) of the service being used.
The Workflow Enactor
can be installed without the plug-ins. Nevertheless, their
installation is generally required, to allow the components taking
part in the framework, to properly provide workflow enactment
functionality.
The installer
automatically installs all the required components, giving the user
the possibility to choose if to install the Command Line Interface
and the plug-ins.

Configuration
Considering
ENACTOR_HOME being the Workflow Enactor
installation folder, the configuration is performed as the following
steps describe:
·
In the
ENACTOR_HOME/conf directory there must be
a
crypto.properties
file that would specify the location of the user's keystore and the
keystore password. User's key must be trusted by the services that
the enactor is using.
·
In the BREIN environment the
enactor executes application services via the client side BREIN
Gateway. To enable this, a
gateway.properties file is
required in the
ENACTOR_HOME/conf directory. This file
should contain the following line
gateway.address=http://gateway.host/path.to.gateway.binding
·
The user’s keystore should also
have the public key of the service Gateway if it is used.
·
In the
ENACTOR_HOME/conf directory there should
be the
cxf.xml file. Users should edit the
following fields in this file:
<cxf:outInterceptors>
<entry key="signaturePropFile" value="crypto.properties"/>
<entry key="encryptionUser" value="gateway alias"/>
<entry key="user" value="user alias"/>
(…)
<cxf:inInterceptors>
<entry key="signaturePropFile" value="crypto.properties"/>
<entry key="user" value="gateway alias"/>
<entry key="decryptionUser" value="user alias"/>
Components that act as
adaptors between the enactor interfaces and the evaluation services
can be plugged in to the enactor. Plug-ins can be put in the
./conf/plugins directory. Jar archives in
that directory will be added into the classpath and loaded by the
class loader. The enactor additionally requires the location and
role of the plug-ins. This can be done in the
plugins.xml file:
<?xml version="1.0"?>
<components>
<component>
<class>
com.elsagdatamat.vim.servicediscoveryregistryplugin.SDRProcessDiscoverer</class>
<role>Discoverer</role>
</component>
<component>
<class>
com.elsagdatamat.vim.sessplugin.SESSProcessSelector</class>
<role>Selector</role>
</component>
<component>
<class>
com.elsagdatamat.vim.slanegotiatorplugin.SLANegotiatorProcessNegotiator</class>
<role>Negotiator</role>
</component>
</components>
There are two user
interface implementations to drive the enactor: the Workflow
Designer (the GUI) and the simple Command Line Interface (CLI).
In the binary
distribution of the
simpleCLI type:
./simplecli
The output is:
Workflow Enactment Engine Version 2.1
(c) Copyright 2008, University of Southampton IT Innovation Centre,
Grid Systems, S.A. and Elsag Datamat
usage: java uk.ac.soton.itinnovation.cli.SimpleCLI [option value]
{workflow-URI | workflow-filepath}
-i Input Data (String). inputParameter=Value pairs. For more than
one
inputs use additional -i parameters.
-g set debug messaging on
-h Shows this message
-q Enable QoE monitoring
-v toggle on off verbose mode and logging of execution
As an example the
execution of a BreinGrounding follows
./simplecli resources/gateway_add.xml -v -g
Workflow Enactment Engine Version 2.1
(c) Copyright 2008, University of Southampton IT Innovation Centre,
Grid Systems, S.A. and Elsag Datamat
Give http://tempuri.org//GatewayMock_add/inputs/operandA 1
Give http://tempuri.org//GatewayMock_add/inputs/operandB 2
Enactment is starting
Looking for listeners for
urn:uuid:d310e0bf-78fc-4aa7-b442-ce3e6a95b3b3
Process evaluated: http://tempuri.org//GatewayMock_add
Process started: http://tempuri.org//GatewayMock_add
Invoking service...
Output is 3
A
client.log file is generated in the
execution directory. The log file contains all necessary information
to debug the enactment.
Workflow Enactor API
|