|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.kwfgrid.gwes.GWESEngine
public class GWESEngine
The GWES Engine is the main class of the Generic Workflow Execution Service (GWES), a generic workflow management
framework. The key classes of this framework are the abstract classes
GenericWorkflowHandler and Activity.
Each GenericWorkflowHandler enacts one workflow. Each workflow triggers certain activities,
which are represented by the class Activity.
For each kind of workflow description language and each kind of activity you may want
to extend the abstract classes GenericWorkflowHandler and Activity with your own concrete
implementation.
GenericWorkflowHandler,
GWorkflowDLHandler,
Activity| Constructor Summary | |
|---|---|
GWESEngine()
Constructor of the GWESEngine. |
|
| Method Summary | |
|---|---|
void |
abort(String workflowID,
String userID)
Abort a workflow with a certain identifier. |
int |
commitModification(String workflowID,
int clientWorkflowVersion,
String modification,
String userID)
Commit a modification to the server. |
net.kwfgrid.gwes.ActivityQueue |
getActivityQueue()
Get the activity queue. |
String[][] |
getActivityStatusArray(String workflowID,
String userID)
Get the status array of all instantiated activities of a given workflow. |
String[] |
getAvailableResources(String ofClass,
String userID)
Get a list of all available resources. |
String[] |
getCheckpoints(String workflowID,
String userID)
Get the path of all available checkpoints for a specific workflow. |
String[] |
getData(String workflowID,
String placeID,
String userID)
Get some data that is hold inside a specific workflow and that is referenced by a data place identifier. |
String |
getDescription(String workflowID,
String userID)
Get the human-readable description for a specific workflow. |
GenericWorkflowHandlerTable |
getHandlerTable()
Get the table with current workflow handlers. |
String[][] |
getModificationsForUpdate(String workflowID,
int clientWorkflowVersion,
String userID)
Get the modifications necessary to update the client of a distributed structure. |
String[][] |
getProperties(String workflowID,
String userID)
Get all properties of a specific workflow. |
String |
getProperty(String workflowID,
String name,
String userID)
Get the value of a specific workflow property. |
String |
getResourceDescription(String resourceUri,
String userID)
Get the resource description of a specific resource in D-GRDL syntax. |
int |
getStatus(String workflowID,
String userID)
Get the current status code of the workflow specified by its identifier. |
String |
getWorkflowDescription(String workflowID,
String userID)
Get the current Generic Workflow Description document of the workflow specified by its identifier. |
GenericWorkflowHandler |
getWorkflowHandler(String workflowID)
Get the workflow handler for a specific workflow ID. |
String[] |
getWorkflowIDs(int level,
String userID)
Get the identifiers of all the workflows that are handled by this Generic Workflow Execution Service. |
String[][] |
getWorkflowStatusArray(int level,
String userID)
Get the workflow status of all currently available workflows. |
String |
initiate(String workflowDescription,
String userID)
Initiates a workflow with a certain userID. |
void |
remove(String workflowID,
int level,
String userID)
Remove a specific workflow from memory, database, and/or its temporary data on the Grid nodes. |
String |
restart(String workflowID,
String userID)
Restart a workflow with a certain identifier from the beginning. |
String |
restore(String workflowID,
String userID)
Restores a workflow from the XML database. |
void |
resume(String workflowID,
String userID)
Resume a workflow with a certain identifier. |
void |
setDescription(String workflowID,
String description,
String userID)
Set the human-readable description for a specific workflow. |
void |
setProperty(String workflowID,
String name,
String value,
String userID)
Set the value of a specific workflow property. |
void |
setWorkflowDescription(String workflowID,
String gworkflowdl,
String userID)
Overwrite the current Generic Workflow Description document of the workflow specified by its identifier. |
void |
start(String workflowID,
String userID)
Start a workflow with a certain identifier. |
String |
store(String workflowID,
String userID)
Store a workflow in the XML workflow database. |
void |
suspend(String workflowID,
String userID)
Suspend a workflow with a certain identifier. |
int |
waitForStatusChangeFrom(String workflowID,
int oldStatus,
String userID)
Wait for workflow to change its status from an specified status. |
int |
waitForStatusChangeToCompletedOrTerminated(String workflowID,
String userID)
Wait for workflow to change its status to final states COMPLETED or TERMINATED. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public GWESEngine()
throws LoggingException
LoggingException| Method Detail |
|---|
public net.kwfgrid.gwes.ActivityQueue getActivityQueue()
public GenericWorkflowHandlerTable getHandlerTable()
public GenericWorkflowHandler getWorkflowHandler(String workflowID)
throws NoSuchWorkflowException
workflowID - The workflow identifier.
null if there is no handler for the specific workflow id.
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
public String initiate(String workflowDescription,
String userID)
throws LoggingException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
StateTransitionException,
WorkflowSecurityException,
GWESException
initiate in interface GWESworkflowDescription - The description of the workflow.userID - userID|credential: The ID of the user who owns the workflow. Use the DN of the
certificate if available. The optional user credential is separated from userID by "|".
LoggingException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
StateTransitionException
WorkflowSecurityException
GWESException
public void start(String workflowID,
String userID)
throws LoggingException,
NoSuchWorkflowException,
StateTransitionException,
GWESException,
WorkflowSecurityException
start in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
NoSuchWorkflowException
StateTransitionException
GWESException
WorkflowSecurityException
public void suspend(String workflowID,
String userID)
throws LoggingException,
NoSuchWorkflowException,
StateTransitionException,
GWESException,
WorkflowSecurityException
suspend in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
NoSuchWorkflowException
StateTransitionException
GWESException
WorkflowSecurityException
public void resume(String workflowID,
String userID)
throws LoggingException,
NoSuchWorkflowException,
StateTransitionException,
GWESException,
WorkflowSecurityException
resume in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
NoSuchWorkflowException
StateTransitionException
GWESException
WorkflowSecurityException
public void abort(String workflowID,
String userID)
throws LoggingException,
StateTransitionException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
abort in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
StateTransitionException
NoSuchWorkflowException
GWESException
WorkflowSecurityException
public String restart(String workflowID,
String userID)
throws NoSuchWorkflowException,
LoggingException,
DatabaseException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
WorkflowSecurityException,
StateTransitionException,
GWESException
restart in interface GWESworkflowID - The unique identifier of the workflow to restart.userID - The user identifier of the user who owns the workflow.
NoSuchWorkflowException - If the workflow identifier is not available in the workflow database
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException - If the workflow stored in the database has the wrong format
DatabaseException - If there is a problem with retrieving the workflow from the database
StateTransitionException - If the state of the workflow is not INITIATED at the beginning.
LoggingException
WorkflowSecurityException
GWESException
public String getWorkflowDescription(String workflowID,
String userID)
throws LoggingException,
NoSuchWorkflowException,
DatabaseException,
GWESException,
WorkflowSecurityException
getWorkflowDescription in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
NoSuchWorkflowException
DatabaseException
GWESException
WorkflowSecurityException
public void setWorkflowDescription(String workflowID,
String gworkflowdl,
String userID)
throws LoggingException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
NoSuchWorkflowException,
StateTransitionException,
GWESException,
WorkflowSecurityException
setWorkflowDescription in interface GWESworkflowID - The unique workflow identifier.gworkflowdl - The GWorkflowDL description of the workflow.userID -
LoggingException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
NoSuchWorkflowException
StateTransitionException
GWESException
WorkflowSecurityException
public int getStatus(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
- STATUS_UNDEFINED = 0
- STATUS_INITIATED = 1
- STATUS_RUNNING = 2
- STATUS_SUSPENDED = 3
- STATUS_ACTIVE = 4
- STATUS_TERMINATED = 5
- STATUS_COMPLETED = 6
getStatus in interface GWESworkflowID - The unique workflow identifier.userID -
LoggingException
DatabaseException
NoSuchWorkflowException
GWESException
WorkflowSecurityException
public int waitForStatusChangeFrom(String workflowID,
int oldStatus,
String userID)
throws LoggingException,
InterruptedException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
waitForStatusChangeFrom in interface GWESworkflowID - The workflow identifieroldStatus - The old status of the workflowuserID -
LoggingException
InterruptedException
NoSuchWorkflowException
GWESException
WorkflowSecurityException
public int waitForStatusChangeToCompletedOrTerminated(String workflowID,
String userID)
throws LoggingException,
InterruptedException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
waitForStatusChangeToCompletedOrTerminated in interface GWESworkflowID - The workflow identifieruserID -
LoggingException
InterruptedException
NoSuchWorkflowException
GWESException
WorkflowSecurityException
public String[] getWorkflowIDs(int level,
String userID)
throws LoggingException,
DatabaseException,
GWESException,
WorkflowSecurityException
- level = 1: workflows handled in main memory
- level = 2: workflows stored in workflow database
- level = 3: workflows handled in main memory AND stored in workflow database
getWorkflowIDs in interface GWESlevel - The level from where to get the workflowIDs.userID -
LoggingException
DatabaseException
GWESException
WorkflowSecurityException
public String[][] getWorkflowStatusArray(int level,
String userID)
throws LoggingException,
GWESException,
WorkflowSecurityException
"ID=hoheisel_f2968050-1d6a-11db-bacc-ad353bc1f9b1" "status=COMPLETED" "birthdayMs=1154003111126" "durationUndefinedMs=527" "durationInitiatedMs=792" "durationRunningMs=0" "durationActiveMs=0" "durationSuspendedMs=0" "durationTotalMs=1351" "endTimeMs=1154003112477" "level=MEMORY" "description=test workflow" "userID=test user"The level denotes from where to get the workflow IDs:
- level = 1: workflows handled in main memory
- level = 2: workflows stored in workflow database
- level = 3: workflows handled in main memory AND stored in workflow database
getWorkflowStatusArray in interface GWESlevel - The level from where to get the workflowIDs.userID -
LoggingException
GWESException
WorkflowSecurityException
public String store(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
restore method.
store in interface GWESworkflowID - The unique workflow identifier.userID -
NoSuchWorkflowException - If the workflow identifier is unknown to this GWES.
DatabaseException - If there is a problem with the XML database
LoggingException
GWESException
WorkflowSecurityExceptionrestore(String,String)
public String restore(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
WorkflowSecurityException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
StateTransitionException,
GWESException
/db/gworkflowdl/[workflowID]/0000000221.xml. The method call
returns the new workflow ID of the restored workflow.
A restored workflow has the status INITIATED and needs to be started using the start() method.
Workflows are stored, e.g., by using the store method.
restore in interface GWESworkflowID - The old workflow ID of the stored workflow.userID - The user ID.
NoSuchWorkflowException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
LoggingException
DatabaseException
WorkflowSecurityException
StateTransitionException
GWESExceptionGWES.store(String, String),
GWES.start(String, String)
public String[] getData(String workflowID,
String placeID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
getData in interface GWESworkflowID - The workflow identifierplaceID - The place identifier that refers to the datauserID -
LoggingException
DatabaseException
NoSuchWorkflowException
GWESException
WorkflowSecurityException
public void setDescription(String workflowID,
String description,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
setDescription in interface GWESworkflowID - The workflow identifierdescription - The human-readable descriptionuserID -
NoSuchWorkflowException
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public String getDescription(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
getDescription in interface GWESworkflowID - The workflow identifieruserID -
NoSuchWorkflowException
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public void setProperty(String workflowID,
String name,
String value,
String userID)
throws LoggingException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
setProperty in interface GWESworkflowID - The workflow identifiername - Name of the propertyvalue - Value of the propertyuserID -
NoSuchWorkflowException
LoggingException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
DatabaseException
GWESException
WorkflowSecurityException
public String getProperty(String workflowID,
String name,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
GWESException,
WorkflowSecurityException
getProperty in interface GWESworkflowID - The workflow identifiername - Name of the propertyuserID -
NoSuchWorkflowException
LoggingException
DatabaseException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
GWESException
WorkflowSecurityException
public String[][] getProperties(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException,
GWESException,
WorkflowSecurityException
properties = getProperties(workflowID); properties[0][0] //Name of the first workflow property properties[0][1] //Value of the first workflow property properties[1][0] //Name of the second workflow property properties[1][1] //Value of the second workflow property
getProperties in interface GWESworkflowID - userID -
NoSuchWorkflowException
LoggingException
DatabaseException
net.kwfgrid.gworkflowdl.structure.WorkflowFormatException
GWESException
WorkflowSecurityException
public String[] getCheckpoints(String workflowID,
String userID)
throws LoggingException,
DatabaseException,
GWESException,
WorkflowSecurityException
getCheckpoints in interface GWESworkflowID - The workflow identifier.userID -
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public void remove(String workflowID,
int level,
String userID)
throws LoggingException,
DatabaseException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
- level = 1: main memory
- level = 2: workflow database
- level = 3: main memory AND workflow database
- level = 4: temporary data on Grid nodes
- level = 5: main memory AND temporary data on Grid nodes
- level = 6: workflow database AND temporary data on Grid nodes
- level = 7: main memory AND workflow database AND temporary data on Grid nodes
remove in interface GWESworkflowID - The workflow identifier.level - From where to remove the workflow data.userID - The user ID.
NoSuchWorkflowException
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public String[][] getActivityStatusArray(String workflowID,
String userID)
throws LoggingException,
NoSuchWorkflowException,
GWESException,
WorkflowSecurityException
ID=hoheisel_2addc790-416a-11de-97f3-9cdc141524de_0000000025
status=ACTIVE
activityClass=net.kwfgrid.gwes.wsgramactivity.GRAMActivity
operationName=software:makeload100
resourceName=hardware:quadro.first.fhrg.fraunhofer.de
timeoutActive=7200000
timeoutRunning=86400000
birthdayMs=1242403824742
durationUndefinedMs=1
durationInitiatedMs=1
durationRunningMs=1886
durationActiveMs=0
durationSuspendedMs=0
durationTotalMs=0
endTimeMs=0
getActivityStatusArray in interface GWESworkflowID - The workflow identifier.userID -
NoSuchWorkflowException
LoggingException
GWESException
WorkflowSecurityException
public String[] getAvailableResources(String ofClass,
String userID)
throws LoggingException,
DatabaseException,
GWESException,
WorkflowSecurityException
GWES
String[] resources = getAvailableResources("urn:dgrdl:software");
resources[0]=
<resource>
<uri>software:cat-fhrg</uri> // Operation URI
<classUri>urn:dgrdl:software:cat</classUri> // Operation Class URI (workflow: operationClass name="...")
<name>cat</name> // Operation Name
<description>Program that concatenates two files<description> // Operation Description
</resource>
getAvailableResources in interface GWESofClass - The class which this resource should be part of. This method only checkes whether the class starts
with the given ofClass parameter, e.g., "urn:dgrdl:software" would match both classes: "urn:dgrdl:software:A"
as well as "urn:dgrdl:software:B". If ofClass is null then all classes of resources are
returned.
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public String getResourceDescription(String resourceUri,
String userID)
throws LoggingException,
DatabaseException,
GWESException,
WorkflowSecurityException
getResourceDescription in interface GWESresourceUri - The resource URI.userID -
DatabaseException
LoggingException
GWESException
WorkflowSecurityException
public int commitModification(String workflowID,
int clientWorkflowVersion,
String modification,
String userID)
throws RemoteException,
net.kwfgrid.gworkflowdl.protocol.IllegalModificationException,
net.kwfgrid.gworkflowdl.protocol.IncompatibleVersionsException
commitModification in interface net.kwfgrid.gworkflowdl.protocol.service.IStructureServiceworkflowID - The id of the structure to modify.clientWorkflowVersion - The version number of the client.modification - The modification.
net.kwfgrid.gworkflowdl.protocol.IncompatibleVersionsException - If the specified version of the client is not equal to the version of the server.
net.kwfgrid.gworkflowdl.protocol.IllegalModificationException - If one the specified modification could not be applied.
RemoteException
public String[][] getModificationsForUpdate(String workflowID,
int clientWorkflowVersion,
String userID)
throws RemoteException
getModificationsForUpdate in interface net.kwfgrid.gworkflowdl.protocol.service.IStructureServiceworkflowID - The id of the structure to update.clientWorkflowVersion - The version number of the client.
RemoteException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||