Workflow technology
Workflow technology is a new field of software products designed to improve the design of information systems. It involves use of workflow engine to execute models of processes. The models can be edited by persons not experienced in programming (e.g. managers) using workflow editors.
Related artlicles
jBpm is a WorkFlow Management System. Business processes must be expressed in process archives in a simple and powerfull language.
JBoss jBPM is a flexible, extensible workflow management system. Business processes, expressed in a simple and powerfull language and packaged in process archives, serve as input for the JBoss jBPM runtime server. JBoss jBPM bridges the gap between managers and developers by giving them a common language : the JBoss jBPM Process definition language (jPdl). This gives software project managers much more control on their software development efforts. After loading the process archive, users or systems perform single steps of the process. JBoss jBPM maintains the state, logs and performs all automated actions. JBoss jBPM combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities. JBoss jBPM includes a web-application and a scheduler. JBoss jBPM can be used in the simplest environment like an ant task and scale up to a clustered J2EE application.
JBoss jBPM is open source · high-quality software, because the code is reviewed by the open source community. · independance, because you're able to modify JBoss jBPM for your own purposes. · cost-efficiency, first of all because its free and second, it puts an upper limit on the price of consultancy. Any java developer is able install and maintain a JBoss jBPM system.
External links
Overview of the JBoss jBPM components
The core workflow and BPM functionality is packaged as a simple java library. This library includes a service to store, update and retrieve process information from the jBPM database.
File:C:/jbpm.bmp
== Example
-
Process Example
public void testHelloWorldProcess() { // This method shows a process definition and one execution // of the process definition. The process definition has // 3 nodes: an unnamed start-state, a state 's' and an // end-state named 'end'. // The next line parses a piece of xml text into a // ProcessDefinition. A ProcessDefinition is the formal // description of a process represented as a java object. ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( "<process-definition>" + " <start-state>" + " <transition to='s' />" + " </start-state>" + " <state name='s'>" + " <transition to='end' />" + " </state>" + " <end-state name='end' />" + "</process-definition>" ); // The next line creates one execution of the process definition. // After construction, the process execution has one main path // of execution (=the root token) that is positioned in the // start-state. ProcessInstance processInstance = new ProcessInstance(processDefinition); // After construction, the process execution has one main path // of execution (=the root token). Token token = processInstance.getRootToken(); // Also after construction, the main path of execution is positioned // in the start-state of the process definition. assertSame(processDefinition.getStartState(), token.getNode()); // Let's start the process execution, leaving the start-state // over its default transition. token.signal(); // The signal method will block until the process execution // enters a wait state.
// The process execution will have entered the first wait state // in state 's'. So the main path of execution is now // positioned in state 's' assertSame(processDefinition.getNode("s"), token.getNode());
// Let's send another signal. This will resume execution by // leaving the state 's' over its default transition. token.signal(); // Now the signal method returned because the process instance // has arrived in the end-state. assertSame(processDefinition.getNode("end"), token.getNode());
} ==
--Divya.alice 06:18, 3 August 2007 (UTC)