Analysis of a Workflow Management System: FlowMark, IBM's workflow management system; Comparison with CHAIMS system lm, Aug. 98 Most people associate workflow management with workflow management systems. But there are other forms of workflow management systems as Petri nets (see Petri nets application to workflow management: http://wwwis.win.tue.nl/~wsinwa/jcsc/node2.html). In CHAIMS, we also have the notion of data flow and control flow. So how far can we assimilate CHAIMS to a workflow management system? Plan: ==== I - Definition of Workflow, aim of a Workflow Management System II- Special case of workflow: IBM's product presentation: FlowMark 1. How is process modeling done in FlowMark? 2. What can be done at runtime? 3. Example of scenario with DreamBike Inc. 4. Conclusion: positive points III- Comparison with CHAIMS: 1. What could CHAIMS do? 2. Would it do it in a better way? IV- Conclusion V- Further questions I - Definition of Workflow and Workflow Management System ========================================================== A workflow consists in defined series of tasks (more or less automated) within an organization to produce a final outcome. At each stage in the workflow, one individual or group, or software is responsible for a specific task. Once a task is complete, the workflow software or Workflow Management System ensures that the individuals responsible for the next task are notified and receive the data they need to execute their stage of the process. The system offers the needed interface to set all required information (definition of the individuals or group, of their roles, etc.). The Workflow Management Coalition (WFMC) defines a workflow management system as follows ([WFM96]): "A system that completely defines, manages, and executes workflows through the execution of software whose order of execution is driven by a computer representation of the workflow logic". A special workflow management system is described below: FlowMark, IBM's product. It is based on the product presentation on the web (seems to be of 1998). FlowMark follows the standards of the Workflow Management Coalition. II- FlowMark ============ 1. How is process modeling done in FlowMark? (Building time)? ------------------------------------------------------------- i.e. how to use FlowMark to model business processes? A process model consists of: - a process diagram that shows the activities and their sequence - some definitions: staff definitions, program definitions, and other details Everything that follows is doable nicely graphically in FlowMark. a) constructing a process diagram: Process diagrams define the activities required to accomplish the process, the order in which activities are carried out, the flow of data through the process. Symbols are used to construct the process diagram: - spg: program activity - starts a program - spc: process activity - starts a process - b: block - repeats a set of activities till an exit condition is met - -->: control connector - shows the flow of control from one activity to another - -.-.-.-.>: data connector - shows the flow of data from one activity to another b) assigning staff to activities: activities can be assigned to organizations (administrative units such as departments or project teams), roles (job categories such as sales persons or secretaries), people (specific staff members). FlowMark allows to define: - organizations which are arranged hierarchically (1 to n), - people (which can be graphically dragged and dropped to organizations and vice-versa), - and rules for roles (many people may have same role, one person may have several roles), and for people (person's substitute). c) attaching programs to activities so that a program is launched automatically when someone selects the corresponding activity from a work list; done using program registrations (program name, input, output, description,...) The built diagram is then translated by FlowMark into a process that can be run. Any change to the setting above requires a new translation, unless changes are made through FlowMark configuration files. Simulations can be run though. 2. What can be done at runtime? ------------------------------- With FlowMark, you can at runtime: - start processes defined in build time - manage processes that are already started - start activities that running processes make ready - transfer activities from one user work list to another's - track processes Notes: multiple instances of same process can run in parallel. processes can be distributed on different servers (set at buildtime). 3. Example of scenario with DreamBike Inc. ------------------------------------------ How DreamBike Inc. exploits FlowMark? Situation description: * Problems before using FlowMark: Quote: "it was a mess!" - orders were taking too long to reach the customer; DreamBike Inc.. didn't know why - some orders disappeared all together - if a customer called about an order, they would have to call him back with the information * Using FlowMark: - they got orders processing back on track - they improved their market share by extending the process to the Internet It was an overnight success: in the first month, they grew faster than the market. Now, they are market leader in customized bikes A demo on the web shows the Internet ordering process, i.e. how a customer orders a bike and how a FlowMark order process then starts automatically at DreamBike Inc.. a) there is a catalog on the net that customers can browse; it contains all parts that can be combined to build the bike b) when a customer wants to order, he fills in the form: customer information, bike information (type, brakes, frame, tires, pedals, chain,...), plus extra-specifications (metallic purple at the end, fading into light yellow) c) an automatic acknowledgment of the customer order is triggered, an order number is set d) FlowMark order process starts at DreamBike Inc.: +--calculate price---------| 1. check & complete order --- 2. +--check stock-------------|-- 3. Decide +--check technical fit-----| | | |-------- | 4. o ----------------- o | | | | | | prepare prepare conf other letter altern | | | | 5. 5. send offer reply | | | 6. produce and deliver Description of tasks t1-t6: t1: FlowMark sends a "check & complete order" task to the work lists of the members of the customer care department. When "check & complete order" task appears on the work lists of customer care staff, if one of the employee starts the task, it disappears from the work lists of others (several interfaces are offered for the work lists, they chose the FlowMark runtime client for Lotus Notes because they were already using Lotus Notes; that way, they would have a unique environment). When Bob starts the task (clicking on start), FlowMark invokes the appropriate application program. FlowMark provides all information about the order. All Bob needs to do is to check the order details returned by the system. Bob completes the document and selects the Complete button to finish the task. FlowMark sends it then to the right person. FlowMark initiates the 3 next tasks in parallel. t2: "check costs and calc price": task sent to the pricing team. When a person of the team clicks on start, FlowMark invokes the corresponding program (excel) which retrieves prices from the parts database and adds them to the spreadsheet. Marc adds any missing prices and checks the profit margin. When this is done, Marc clicks on OK and FlowMark sends an OK to the Decide task. "check items in stock": Paul starts the task, FlowMark starts the SAP application with all necessary data; Paul confirms the order; FlowMark sends OK to the decide task. "check technical feasibility": Lea starts the task; FlowMark starts the integrated CATIA application; Lea sees a model of the bike and all requested parts and can easily check whether the parts fit together; Lea approves the design; FlowMark sends an OK result to the Decide task. t3: done automatically by FlowMark depending on the 3 preceding OK. if 3 OK, sends a "Prepare conf letter" to everyone with the job title secretary. t4: "prep conf letter": joanne selects the task; FlowMark starts the WordPro application; the standard confirmation letter appears with the customer's details filled in; joanne puts in a delivery date she decided about. t5: joanne starts the task "send conf"; she decides to print, fax or send the letter by email. t6: "produce and deliver": order process is complete; FlowMark gives the necessary information to this process. Notes: - We can easily describe the missing parts, or even complete the graph (the customer must be able to decide if he/she accepts the price offer,...). - At this point, there is no mention of "bad cases" (customer not following up, damaged parts,...). - some processes can be fully automated. 4. Conclusion: positive points ------------------------------ a) FlowMark keeps you at a competitive edge: With FlowMark, business processes become streamlined and responsive in a fast-changing market. Also, FlowMark brings the processes under control. With FlowMark, you can: - increase the system productivity (FlowMark helps you optimize your processes and guarantees that these processes are always carried out quickly and efficiently) - react quickly to the market (processes defined in FlowMark are easily adaptable) - shorten process cycles (by streamlining your processes, FlowMark helps you to reduce the process steps and shorten wait times: information is always with the right people at the right time) - improve quality (once you have established quality standards in the process, FlowMark ensures they are always met) - be more responsive to the customers (FlowMark Process Monitor keeps you in touch with the current process status) - integrate workflow with other applications (comprehensive workflow features which allow FlowMark to combine your process flow with new or already existing applications (on PC, on the mainframe or on the Internet) b) Why using FlowMark instead of other workflow management systems: - FlowMark operates enterprise wide: scalability, transaction secure, availability, robustness are guaranteed features - FlowMark is an application independent workflow system - FlowMark provides comprehensive application integration capabilities (corresponding functions as data container, data flows are separated from control flow, execution agents, etc...) - FlowMark ensures fast adaptation of market changes (graphical process editor allows short-term process changes which become immediately active) - FlowMark has a comprehensive platform support (allows heterogeneous environment: Windows NT, 95, 3.1, OS/2, AIX, HP UX,...) - FlowMark's APIs are available according to the WFMC reference model (easier integration) Global conclusion: The ultimate goal of workflow management is to make sure that the proper activities are executed by the right person at the right time. III- Comparison with CHAIMS =========================== 1. What could CHAIMS do? ------------------------ The Workflow notion is identical in CHAIMS as in a Workflow Management System. CHAIMS can compose/control megamodules' services the same way workflow management systems compose/control processes. In case of DreamBike Inc., let's imagine there is a call of a CHAIMS megaprogram from the DreamBike web page as it can be now with a java applet: one megamodule would represent each task to do (one for showing the catalog, one for opening the form, one for calculating the price, one for checking the stock,...). One megamodule/method would execute DECIDE; the IO megamodule could also be used to get the users decisions. The result would be the same: the synchronization of tasks would be identical using CHAIMS and the whole workflow could be modeled in CHAIMS language. Example: the 3 tasks numbered 2 above can be run in parallel (one invoked right after the other); then, just before DECIDE: EXTRACT is called for the 3 of them. We also have EXAMINE to track the status of a process and consequently of the order... All the processes control and data transfer could definitely be done in CHAIMS. Now, would CHAIMS fulfill all these functions in a better way? 2. Would CHAIMS do it in a better way? -------------------------------------- + The multi-protocols/language feature of CHAIMS would allow a better integration with other applications. + CHAIMS would allow partial data retrieval if needed at each stage +/- The ESTIMATE function would allow to check which process would be more efficient compared to other choices and before execution, but we could imagine a workflow management system being able to do that. - CHAIMS will require a little bit of work to get a user-friendly interface as in FlowMark. IV- Conclusion ============== CHAIMS fulfills the function of workflow management but does not aim at replacing Workflow Management Systems. V- Further questions ==================== Comparison of CHAIMS with ADAPTIVE Workflow Management Systems?