uk.ac.ucl.sse.omii.bpel.abr.generation
Class WorkflowAnalyzer

java.lang.Object
  extended by uk.ac.ucl.sse.omii.bpel.abr.generation.WorkflowAnalyzer

public class WorkflowAnalyzer
extends java.lang.Object

Determines the type of a workflow. The three relevant types are defined in WorkflowTypeEnum.

Each of the three major types of workflows imposes slightly different rules for the generation of correct PDD (ActiveBPEL deployment descriptor).

We determine the three types as follows.

An asynchronous provider workflow is one that has a partner with two roles and the workflow has a Receive with this partner's myRole PT AND the process has a subsequent invoke with this partner's partnerRole PT. Or, in case of a Pick activity, process has partner with two roles AND process has an onMessage with this partner's myRole PT AND process has a subsequent Invoke with partner's partnerRole PT.

Similarly, an asynchronous client workflow of an asynchronous provider workflow can be recognised by the fact that that it has a partner with two roles and uses its partnerRole PT in an invoke followed by a subsequent receive using this partner’s myRole PT.

Note that these two cases are not exhaustive and just serve as some rules of thumb. For example, a workflow could just define a Receive activity for an asynchronous callback operation. However, only in the cases described above does it become necessary to generate the PDD according to different rules.

Author:
Bruno Wassermann, written Aug 22, 2006

Constructor Summary
WorkflowAnalyzer()
           
 
Method Summary
 WorkflowTypeEnum determineWorkflowType(java.lang.Process process)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WorkflowAnalyzer

public WorkflowAnalyzer()
Method Detail

determineWorkflowType

public WorkflowTypeEnum determineWorkflowType(java.lang.Process process)