A slothy ride through "Work Flows"... a primer

IT has become integral part of every organization.Business people need to be empowered with the tools that would keep an up hand on the competitive market.The execution of business processes in an organization can be done through work flow management systems.It is basically the flow of data that is associated with a work.Distribution of work is needed for efficient management.So the non technical people find it very easy if the applications they work on to control the process, is graphically manageable.In the deep level, the process models are based on graph theories and algorithms.As a programmer you are familiar with activity diagrams/ data flow diagrams,so we can observe these work flow patterns described by them.The distribution of work and its monitoring from the inception to the end can be effectively managed by work flow systems.Work flow systems helps to model the services for Business process management (BPM) (which is a management discipline that focuses on the designing them).Anyway the software used to model them did become role players of the industry.

I recently, read some articles on evolution of work flow tools.In 70's the work flow domain focused on office information systems.They were not successful in earlier days due to the limitations of computing, graphical user interfaces etc.But in these latest times, we could see the massive change in the concept of computing... semantic web,web 2.0,advanced networking etc that helped work flow systems to spread from managing a single organization to social networks(in the sense of social marketing tools, collaborative work etc ).There are a mindful of software like IBM MQseries WorkFlow, Tibco Staffware Oracle BPEL PM , jBPM ,OpenWFE (Ruby) used for work flow development.There is a consortium, formed to define standards for the interoperability of workflow management systems known as Workflow Management Coalition (WfMC) . According to their reference model

- workflow engine the instantiation and execution of process instances based on a predefined process model
- this model is specified using a process definition tool and is subsequently passed to the engine for execution
- workflow client interaction and managing work items on the worklist
- toools for adminstration and monitoring of processes and their instances
- external workflow engines can be communicated while processing done

take the case of jBPM

  • JBoss JBPM core component is the workflow engine (also referred to as core process engine) which takes care of the execution of process instances.
  • JBoss jBPM Graphical Process Designer (GPD), an plugin to Eclipse is the process definition tool which provides support for defining processes in jPDL both in a graphical format and in XML format. (processes can also be defined as Java objects or as records in the jBPM database)
  • jPDL (jBPM Process Definition Language) is the process language
  • JBoss jBPM console web application is the web based workflow client as well as an administration and monitoring tool
more here

At the programming side it uses Graph Oriented Programming.Graph Oriented Programming is a very simple technique that describes how graphs can be defined and executed on a plain OO programming language. Domain specific languages has a pivotal role in the development of work flows.Graph Oriented Programming is the foundation for all domain specific languages that are based on executing a graph. If you compare the system, it can be similar to any process model involving state changes,transitions etc.

Some cool stuffs i read

Making Web 2.0 Meaningful and Achievable by Jackbe
Take advantage of Web 2.0 for next-generation BPM 2.0
Evolution of the workflow management systems

More to know about the meta languages used in these systems.....

No comments:

Post a Comment