One of the newer concepts in business-application development is Business Process Management (BPM). Any task that provide some substantial output for the business are business processes. They can be small processes having just a user interacting or may be bigger and more complex workflow systems where many user are involved in completing one process. The process can be short lived, like user gives a request and system processes the request and process ends there. Or it can be a longer process, may require even months to complete one process. Example if we consider an ordering system as a business process, then the order is taken, it is sent to production section, the produced item is then sent to dispatched section, from where it is dispatched. Thus involving many Users, and days to complete the whole cycle.
Business process management (BPM) addresses how organizations can identify, model, develop, deploy, and manage their business processes, including processes that involve IT systems and human interaction.
The main goals behind BPM are :
1. Automating the processes
2. Increase flexibility in changing the processes as the business needs changes
3. Reducing development costs
4. More effectively providing Separation of Concerns between the Business Analysts and IT department. The business users can model the process and then IT department can provide that functionality in real domain.
Business Process Management Systems provides the technology to implement BPM. Typically a BPMS should provide the following :
The BPMS provides with process model tool. Its used by Business Analysts to define business process. It’s a GUI, where BA can drag and drop various fragments to represent their business processes.These processes are then given to IT department to develop the code to implement this process.
The process models are typically defined using WS-BPEL* ( Business process execution language). It’s the BPMS engine that has the responsibility of reading these process models and then execute and manage them.
*WS-BPEL is an XML language for defining business process behavior based on Web services.
The Business users can monitor various tasks. Like they can have reports, summaries etc. The Process Monitoring provides various GUIs to help achieve it.
BPM suites include process execution engines that import the process models (typically defined using WS-BPEL) and then execute and manage as many instances of the business process as necessary for supporting the organization's operational requirements.
The Open Source BPMS is provided by JBOSS. It has also provided a demo of its BPM System at demo