Home
News
Events
Press
Downloads
Publications
Links
Partners
Contact
Search
Newsletter Issues
Wiki
BREIN User and Development Forum
BREIN Architecture
Knowldege Portal
Login Form
Latest News
6th Newsletter issue available   The 6th BREIN newsletter issue is now available. To download it, visit the "Newsletter Issues" section on the left menu or click here .   Details...

SOC-LOG'09 workshop at ICSOC-ServiceWave conference     BREIN is supporting the 1st International Workshop on Service Oriented Computing in Logistics (SOC-LOG'09) which will be held as part of ICSOC/ServiceWave, in Stockholm, Sweden (November 23, 2009).    Details...

New demo video BREIN project participated in the Internet of Services 2009 Concertation meeting, presenting among others two demos showing the work done on Semantically enhanced SLA Negotiations and Semantic aware and SLA-Driven Resource Management for Virtualized and Heterogeneous Platforms.   Details...

Cloud Computing Providers Part of our work done for the State of the Art is now available also through Gridipedia (visit here )   Details...

Semantics Week 2009   BREIN and the European projects STASIS, SOA4ALL, and the NESSI Semantics Group, would like to invite you to "Semantics Week" to be held June 22-26th in beautiful and logistic friendly Amsterdam.   Details...




BREIN Dissemination CDcd.jpg

newsletter.jpg





Receive HTML?

workflow designer

 

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.

workflowenactorinstaller

 

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