/*
 * Copyright (C) 2011 The University of Manchester
 * 
 * See the file "LICENSE" for license terms.
 */
/**
 * These interfaces define the principal way for the <i>factories</i> of
 * worker classes to be invoked.
 */
package org.taverna.server.master.factories;
