Summary
jBPM is JBoss' open source business process management tool. Among other features, jBPM provides a graphical designer to model and orchestrate tasks and workflows corresponding to business processes. In a recent JavaWorld article, Jeff Hanson shows how to manage complex and changing business requirements with jBPM.
Advertisement
An an enterprise application, processes corresponding to business tasks must often coordinate their work to achieve a given outcome. For instance, when submitting a purchase order, information requested from the user may depend on the kind of item ordered, as well as existing information about the user.
For simple applications, such conditional execution of tasks can be modeled with if-then branching defined in a central controller component. In more sophisticated applications, however, the process logic is likely to change with shifting business needs. The Business Process Execution Language (BPEL) provides a standard way to define more flexible workflows, and allows workflow definitions to interact with application logic. JBoss' open-source jBPM implements BPEL and provides a convenient Eclipse plugin to define workflows in a graphical environment.
JBoss jBPM acts as an orchestration engine that sits in the middle of enterprise applications, enabling integration and coordination between different applications... Boss jBPM provides a sophisticated platform for designing and developing workflows and business process management systems. Its framework of APIs, domain-specific language, and graphical modeling tool enables developers and business analysts to communicate and operate using a common platform.
A process definition is based on a directed graph.... JBoss jBPM defines process definitions within files written using the JBoss process definition language. jPDL is a graphic-oriented programming (GOP) language based on a model of nodes, transitions, and actions. In this model, nodes are commands executed as they are encountered during the flow of a process definition. Transitions direct the flow of execution of a process definition, and actions perform specific logic as a node or transition event occurs.
Every node in a jBPM process graph can have an associated action. When the jBPM engine encounters a node, it executes that action's action handler. Such action handlers are simple methods that can invoke external systems as well:
public class MyActionHandler implements ActionHandler {
public void execute(ExecutionContext executionContext) {
System.out.println("MyActionHandler has executed: " + executionContext);
}
}
As such actions execute, jBPM maintains the process' state in the graph, and also logs process events.
Have you used jBPM or BPEL in your applications? What tools do you use to define complex business logic?