Nouveau Alliance® Workflow Automation Service
The Nouveau Alliance Workflow Automation Service is an extended service that provides workflow automation functionality within a Nouveau Alliance Collaboration Server. It consists of a workflow manager that is responsible for managing workflow definitions, instances, activities, and other workflow-related resources. The service includes a set of classes for workflow-related objects, including workflow definitions, instances, nodes, and activities. It also includes a workflow interpreter that is responsible for execution of running workflow instances. The interpreter provides functions to support debugging running workflows.
Accessing the Workflow Automation Service
To create or manage workflows, you interact with the Workflow Automation Service for a workspace. You can access the Workflow Automation Service from within a stand-alone Java application, a servlet or JSP, or a Enterprise Java Bean. You can use either Nouveau Alliance Peer Service discovery or the Java Naming Directory Interface (JNDI) to locate the Workflow Automation Service for a workspace in the peer network. Once you have access to the Workflow Automation Service, you can use it to perform workflow-related functions and access workflow-related resources in the workspace.
Creating a Workflow
You create new workflow definitions directly through the Workflow Automation Service. When creating a new workflow, you can specify a name and a category. The Workflow Automation Manager remembers existing workflows and makes managing them more convenient by allowing you to look up workflows by name, and browse workflows within a category.
Once you create a workflow, you add nodes and connections to the workflow to define its functionality. Nodes represent logical steps within your workflow. You can create completely new nodes, or use existing ones from a library of pre-defined nodes managed by the Workflow Automation Service. The library allows you to classify nodes that perform related tasks into convenient categories. When you develop a useful node, you can add it to the library and make it available for use in other workflows.
Connections specify how execution moves from one node to the next. You can connect nodes as you add them, or once you have finished adding nodes to the workflow. The Workflow Automation Service simplifies workflow connections. For example, the need for special branch/merge or fork/join nodes is a thing of the past. You simply add multiple connections and labels to any node and intelligent processing in the Workflow Automation Service takes care of the rest. There is also no need for special start/end nodes. The Workflow Automation Service automatically detects the first and last node to execute from the workflow connections.
Developing a Node
A unique feature of the Workflow Automation Service is its powerful yet easy-to-use interfaces for developing nodes. A node contains a sequence of activities that you use to define the node logic. The Workflow Automation Service provides an extensive library of pre-built activities. You can usually develop the logic for a node without programming, by combining existing activities and customizing them by setting their properties. In most cases, your workflows are also greatly simplfied thanks to this advanced automation system.
If you need new functionality, adding a new activity is simple. You can always develop an activity externally using Java based tools and import it in to the Workflow Automation Service. The Workflow Automation Services also provides a complete set of functions that enable you to dynamically create and modify activities directly from an application. Using the capabilities of the Nouveau Alliance Collaboration Server, you can compile and install Java-based activities directly from source code, or use standard scripting languages to define an activity.
After you import or develop a new activity, you can add it to the activity library and make it available to other workflows. The activity library allows you to classify activities that perform similar functions into convenient categories. You can look up activities by name, and browse activity categories in the library.
Running a Workflow
Once you create a workflow, you use the Workflow Automation Service to create and run instances. You can run any number of instances of the same workflow. For example, each instance of a document routing workflow represents a document being routed to a group of people. The document being routed and the group of people who receive it are properties of each instance.
The Workflow Automation Service enables your application to keep track of all running instances of a workflow, and receive notification of each instance's progress. In addition, the Workflow Automation Service provides a complete interface for controlling the execution of an instance, including functions for debugging a running instance.
Working with Distributed Workflows
Because it is built on the Nouveau Alliance Collaboration Platform, Workflow Automation Services for different workspaces within the peer network can transparently share resources and workflow execution. For example, any workflow node or activity defined in one Workflow Automation Service can be used to create a new workflow or node in another Workflow Automation Service. In the same way, a workflow defined in one Workflow Automation Service can be used as a subworkflow in another Workflow Automation Service. Your entire organization can now share common resources, no matter where those resources are located in the peer network.
A Workflow Automation Service can also create instances and run a workflow defined in another Workflow Automation Service. For example, an application running within engineering that requires financial functions can look up and execute a workflow defined in a Workflow Automation Service hosted by the accounting department. In advanced applications, control of a workflow instance can even pass from one Workflow Automation Service to another while it is running. For example, execution could be handed off to the accounting department's Workflow Automation Service to perform the financial functions, then return to the engineering department's Workflow Automation Service to continue processing. This unique capability provides your application with the highest level of control over how a workflow instance is created and where it runs within the peer network.