Quick Summary of How BPM Platforms Work
1. They usually have a GUI designer to draw Process Diagrams.
2. The main standards are BPMN and BPEL.
3. BPMN is GUI Notation (backed by a XML). Only used for visual drawing (like UML).
3. BPEL captures Process flow (is only a XML).
4. They usually have a BPM Engine that executes the Process (i.e executes BPEL).
5. Not all BPM Tools support these standards.
6. Individual steps in a Process are usually called Tasks or Activities.
7. These Tasks can be Human Task(requiring a Form Input from UI) OR System Task(sending a message to external system).
8. They have a Process Database – which stores information about Process Flows.
9. You can define input output variables for every Task.
10. For Human Tasks you can visually create a HTML Form, and attach form fields to input variables of task.
11. Roles and Users can be created in BPM Tools.
12. Individual Tasks can be assigned to Roles(or a user).
13. When a user logs in, dashboard will tell him if he has to perform any Human Task. If he clicks on such a Task link, he sees a form(that was defined for that task) – and he can fill in that form, thereby completing his task.
14. Therefore when a Process Runs (i.e Process Instance is created) – Tasks must be completed one after another until the Process Instance reaches its end state.
15. System Tasks are performed automatically.
16. Any data related to Process Instance (like from the Human Task input, or received from external systems) – are stored in the Process Database automatically by BPM Tool.
17. Extensive reporting(and charting) capabilities are available in BPM Tools eg. View Open Tasks, View Running Process Instances, View Process/Task data, View Time taken to complete task/process. This is usually known as BAM – Business Activity Monitoring.
When should i use BPM Tool?
1. BPM Tools are a good fit for Intranet Applications where there is some kind of workflow. Eg: Leave Management System (employee applies for leave, manager approves, HR is notified etc..
2. They are also a good fit, where the primary activity of the application is some kind of workflow. Eg: Order Management (Order Creation, Order Approval, Order Acceptance, Order Fulfillment, Order Payment).
3. They are a good fit, where Workflow should be often updated. This is what they are best at!
4. They are not a good fit where application is mainly going to do Content Management, Data Management.
5. BPM Tools provide maximum benefit when we use it where it fits best.
What kind of UI is available in BPM Tools?
1. By default the UI available in BPM tools is limited, and very process centric.
2. For any Human Task/Activity of a Process – you can visually create a UI in BPM Tool.
3. Many BPM Tools (like Appian) would allow you to supply your own custom JSP page for Human Task/Activity.
4. Must remember that, by and large you are not creating a Portal, but a BPM Application.
5. The default dashboards provide things like – list otf Tasks pending for that user, reports, messages etc. These can be visually configured.
How to architect a BPM application?
1. Since BPM Tools model the process – they kind of control the overall application.
2. Therefore your architecture is nothing but the architecture of the BPM Tool (and any external integration points).
3. You should avoid building UI outside BPM Tools. This is because any human Task/Activity requires the BPM Tool to throw a Task(UI) at the end user. This UI is visible only if the user logs into the BPM tool itself. Therfore you can’t really build any of this UI in a separate external application (without extensive workarounds).
4. You should not attempt to use BPM tools as a small part of a bigger overall solution. It should be other way round. BPM tool should be the main solution. If this is not done, you will derive very little benefit from the tool, and make your architecture complex (by resorting to inevitable workarounds).
5. Remember that BPM Tool is doing all of these: Controlling Process Flow, Throwing UI at the User, Collecting data and storing it in its own Process Database, Providing extensive reporting. So, if you try to do any of these activities outside the BPM Tool, you will not just not benefit from the tool, but also have to resort to find ways to make these things work outside the BPM Tool.
6. You can always store data in your own custom database too at any point in the Process.