250 likes | 450 Views
Eindhoven University of Technology Faculty of Technology Management Department of Information Systems P.O. Box 513 5600 MB Eindhoven The Netherlands w.m.p.v.d.aalst@tm.tue.nl. Workflow/Business Process Management Introduction business process management and workflow management.
E N D
Eindhoven University of Technology Faculty of Technology Management Department of Information Systems P.O. Box 513 5600 MB Eindhoven The Netherlands w.m.p.v.d.aalst@tm.tue.nl Workflow/Business Process Management Introduction business process management and workflow management Wil van der Aalst
Focus on "classical" workflow management systems, but ... Four types of "workflow-like" systems: • Information systems with hard-coded workflows (process& organization specific). • Custom-made information systems with generic workflow support (organization specific). • Generic softwarewith embedded workflow functionality (e.g., the workflow components of ERP, CRM, PDM, etc. systems). • Generic softwarefocusing onworkflow functionality (e.g., Staffware, MQSeries Workflow, FLOWer, COSA, Oracle BPEL, Filenet, etc.).
Reference model of the Workflow Management Coalition What? When? Who?
Workflow perspectives • Process perspective (tasks and the routing of cases) • Resource perspective (workers, roles, 4-eyes principle, etc.) • Case/data perspective (process instances and their attributes) • Operation/application perspective (forms, application integration, etc.) • ...
<sequence name="main"> <flow name="Flow_1"> <links> <link name="receive-to-assess"/> <link name="receive-to-approval"/> <link name="approval-to-reply"/> <link name="assess-to-setMessage"/> <link name="setMessage-to-reply"/> <link name="assess-to-approval"/> </links> <sequence name="sequenceReceive"> <source linkName="receive-to-assess" transitionCondition="bpws:getVariableData('inputVariable','payload','/client:LoanApprovalProcessRequest/client:amount') < 10000"/> <source linkName="receive-to-approval" transitionCondition="bpws:getVariableData('inputVariable','payload','/client:LoanApprovalProcessRequest/client:amount') >= 10000"/> <receive name="receiveInput" partnerLink="client" portType="client:LoanApproval" operation="initiate" variable="inputVariable" createInstance="yes"/> </sequence> <sequence name="sequenceAssess"> <target linkName="receive-to-assess"/> <source linkName="assess-to-setMessage" transitionCondition="bpws:getVariableData('risk') = 'low'"/> <source linkName="assess-to-approval" transitionCondition="bpws:getVariableData('risk') != 'low'"/> <assign name="initiateAssessor"> <copy> <from variable="inputVariable" part="payload" query="/client:LoanApprovalProcessRequest/client:firstName"/> <to variable="invokeAssessor_initiate_InputVariable" part="payload" query="/ns1:AssessorProcessRequest/ns1:firstName"/> </copy> <copy> <from variable="inputVariable" part="payload" query="/client:LoanApprovalProcessRequest/client:name"/> <to variable="invokeAssessor_initiate_InputVariable" part="payload" query="/ns1:AssessorProcessRequest/ns1:name"/> </copy> <copy> <from variable="inputVariable" part="payload" query="/client:LoanApprovalProcessRequest/client:amount"/> <to variable="invokeAssessor_initiate_InputVariable" part="payload" query="/ns1:AssessorProcessRequest/ns1:amount"/> </copy> </assign> <invoke name="invokeAssessor" partnerLink="Assessor" portType="ns1:Assessor" operation="initiate" inputVariable="invokeAssessor_initiate_InputVariable"/> <receive name="receiveAssessor" partnerLink="Assessor" portType="ns1:AssessorCallback" operation="onResult" variable="receiveAssessor_onResult_InputVariable" createInstance="no"/> <assign name="completeAssessor"> <copy> <from variable="receiveAssessor_onResult_InputVariable" part="payload" query="/ns1:AssessorProcessResponse/ns1:level"/> <to variable="risk"/> </copy> </assign> </sequence> <sequence name="sequenceNoApproval"> <target linkName="assess-to-setMessage"/> <source linkName="setMessage-to-reply"/> <assign name="setAccepted"> <copy> <from expression="'Accepted'"/> <to variable="outputVariable" part="payload" query="/client:LoanApprovalProcessResponse/client:result"/> </copy> </assign> </sequence> (Oracle) BPEL
Petri nets as a basis • The process perspective is the most dominant one. • There are many modeling techniques and tools • BPEL, BPMN, DFD, ISAC, SADT, PN, HLPN, PA, FC, UML, ... • Simulation tools, design tools, CASE tools, WFMS, ... • Focus on the essential concepts rather than (system-)specific languages.
Example of a process model: A Petri net modeling order processing
Test Exercise: Dining philosophers • 5 philosophers sharing 5 chopsticks: chopsticks are located in-between philosophers • A philosopher is either in state eating or thinking and needs two chopsticks to eat. • Model as a Petri net.
تقدم طراحي فرآيند بر سيستم اطلاعاتي • we first design business processes in a more abstract way, • without considering implementation, • then we design the information systems and the organization hand in hand • In fact, we decide whether each task in a process should be performed by an information system or a person.
اهميت تعريف صحيح فرآيند جهت بازمهندسي آن • Definition is important when preparing a (re)design, • before deciding whether to actually implement a new process it is very important to first establish whether it will work properly. • formal methods can be used to identify processes' properties, or lack of them. • Another analysis method uses simulation techniques, • Sometimes supported by computer animation. • Supporting software tools are essential to this.
دلايل استفاده از روش پتري نت در مدلسازي جريان کاري • This book presents a reference framework for defining processes and discusses analytical methods. • In doing so, extensive use is made of Petri nets, • Petri nets are ideally suited for defining and analyzing complex processes. • Another useful property is that they make the definitions easy to understand for non-experts. • This eases communication between designers and users. • There also exist software tools which support the definition and analysis of processes.
مشخصات کلی سيستم های مديريت جريان کار • during recent years a new class of generic software has been evolving: workflow management systems. • workflow management systems ensure that the right information reaches the right person at the right time, • or is submitted to the right computer application at the right moment. • does not, therefore, actually perform any of the tasks in a process. • it is generic software and so can be used in many situations—and its weakness: usually actual application software is also needed.
فرآيند کلی (باز)مهندسی جريان های کاری • Business Process (Re) Engineering: • Organizing Workflows • Basic Workflow Definitions & Concepts • WFMS Architecture • Modeling Workflows • Making a real picture of the workflow • Management of Workflows • Decide or document various managerial aspects of workflows • Analyzing Workflows • Calculate the workflow performance and states • If OK! Then stop! • Redesigning Workflows • Change the workflow and go to the Modeling step.