Flexible Workflow Management Systems?
Paul Roberts asks: "I just started on my new job and I have to develop, in J2EE, a workflow management system (WMS) for the financial department. I'm both new to J2EE and WMS, so I could really use any help that experienced Slashdot readers have to offer. I have been warned of frequent changes in the process flows, due to changes in the law or management vision, and the system should be able to handle these, including any retroactive changes that may need to be made. As a bonus, the system could produce personalized letters, but if that feature isn't available, we can program that ourselves. I've been searching the web to find existing solutions, Sourceforge gave a list of 2 pages of active projects (and many more inactive projects), OpenSymphony has OSWorkflow, JBoss now includes jBPM. Of all those WM systems around, what are your experiences, what are the things I should look out for - both in features that should be present and in pitfalls to be avoided?"
How, exactly, did you land a job to develop something you know nothing about in a language you know nothing about?
First of all, if you are planning on changing the worflows often, you probably want to look at a multi-tier framework that will enable you to model your data in an OO methodology. By using a Object Relational Mapping framework, you can build your implementations on top of a framework that will take care of all your RDBMS work. With these systems, you can more easilly change your model since you are following a generic object model.
The other thing to keep in mind is to not depend on a product to give you a core framework and a UI all in one package. The UI should always be considered secondary to the core framework and you should be able to implement the UI in any way you choose (DHTML, Applet, Thick client...)
I have only seen two Open source frameworks that can follow these conepts. They are:
1) Naked Objects
- http://nakedobjects.org/
- Could be used as a backbone to a workflow system although they are still in the process of realeasing a new version that will.
2) Cayenne
- http://www.objectstyle.org/cayenne/
- Much more enterprise grade framework for building object data models. Probably your best bet.
Currently I use eMatrix which has an awesome core framework but it very expensive to licence and it is a bit of a resource pig. The beauty of eMatrix is the flexibility of the core framework - I can deploy any system you desire on their core framework and not have to worry about any RDBMS coding, PDM, PLM, Workflow, Doc Management, you name it.
I am looking for more alternatives to relieve our licencing costs though and the two noted above are probably the best bets at the current time.
JsD
I've lied about my qualifications to get a job, and now I'm in way over my head. Please bail me out.
http://www.google.com.au/search?q=java+workflow/ Second link down seems to be exactly what you want - a comparison of Work Flow engines written in Java http://www.manageability.org/blog/stuff/workflow_i n_java/view/ Content from link attached inline :-)
# Enhydra Shark Shark is completely based on standards from WfMC and OMG using XPDL as its native workflow definition format. Storage of processes and activities is done using Enhydra DODS.
# Codehaus Werkflow Werkflow is a flexible, extensible process- and state-based workflow engine. It aims to satisfy a myriad of possible workflow scenarios, from enterprise-scale business processes to small-scale user-interaction processes. Using a pluggable and layered architecture, workflows with varying semantics can easily be accomodated.
# OpenSymphony OSWorkflow What makes OSWorkflow different is that it is extremely flexible.
# jBpm jBpm is a flexible, extensible workflow management system. Business processes , expressed in a simple and powerfull language and packaged in process archives, serve as input for the jBpm runtime server. jBpm combines easy development of workflow-applications with excellent enterprise application integration (EAI) capabilities. jBpm includes a web-application and a scheduler. jBpm is a scalable J2EE application.
# wfmOpen WfMOpen is a J2EE based implementation of a workflow facility (workflow engine) as proposed by the Workflow Management Coalition (WfMC) and the Object Management Group (OMG). Workflows are specified using WfMC's XML Process Definition Language (XPDL) with some extensions.
# OFBiz Workflow Engine The Open for Business Workflow Engine is based on the WfMC and OMG spec. OFBiz Workflow Engine uses XPDL as its process definition language.
# ObjectWeb Bonita Bonita is a flexible cooperative workflow system, compliant to WfMC specifications. A comprehensive set of integrated graphical tools for performing different kind of actions such as process conception, definition, instanciation, control of processes, and interaction with the users and external applications. 100% browser-based environment with Web Services integration that uses SOAP and XML Data binding technologies in order to encapsulate existing workflow business methods and publish them as a J2EE-based web services. A Third Generation Worflow engine based in the activity anticipation model.
# Bigbross Bossa The engine is very fast and lightweight, uses a very expressive Petri net notation to define workflows, does not requires a RDBMS and is very simple to use and to integrate with java applications. Actually, it was designed to be embedded.
# Taverna The Taverna project aims to provide a language and software tools to facilitate easy use of workflow and distributed compute technology within the eScience community. Taverna is both a workflow enactor and also an editing suite.
# JFolder JFolder (formerly PowerFolder) contains features critical to many applications - including web pages, workflow, security, persistence, email, file management, and data access.
# Open Business Engine Open Business Engine is an open source Java workflow engine which supports the Workflow Management Coalition's (WfMC) workflow specifications, including interface 1, also known as XPDL, interface 2/3 known as WAPI and interface 5 for auditing. OBE provides an environment for executing activities in a controlled, centralized environment. OBE supports both synchronous and asynchronous execution of workflows. The primary OBE implementation is based on J2EE.
# OpenWFE OpenWFE is an open source java workflow engine. It features 3 components, easily scalable : an engine, a worklist and a web interface. Its workflow definition language is inspired of Scheme, a Lisp dialect, though it is expressed in XML.
# Freefluo - Freefluo is a workflow orchestration tool for web serv
XPDL is an XML language made for workflow management. While I did not work with it myself one of my co-workers implemented a "workflow extension" for a well-known J2EE e-commerce suite using XPDL. There is an open source editor (JaWE) and an open source engine (Shark). If I remember correctly we did not use the latter.
XPDL is not the only workflow description standard and XPDL in itself won't bring you anywhere. This is a topic which is unfortunately being worked by a lot of marketing and sales guys who will promise anything to get their tools sold.
While I can assure you that XPDL was the right choice for us it can be the wrong choice for you. This very much depends on what you actually need to achieve. "Workflow" is a really broad topic (as is "J2EE" by the way). If it comes down to management of approval then you maybe better roll your own.
If you are really forced to use J2EE than this probably has a reason which might be that J2EE is used in your company alot. So for questions like persistence you might ask your co-workers. We worked with EJB for years and ended up using our very own "bean managed persistence". I would not advice using EJB to starters but like I said there might be enough knowledge arround you anyway.
As always you can't have both flexibility and simplicity. Unfortunately with Workflow Management this seems to be even more the case. So get your priorities straight and then - Good Luck!
If not, I highly recommend TeamTrack. Its completely customizable, and will save you a bundle. Even if you must develop the system, you should study the featureset of the system. You might even be able to get a good start on how the schema should look as its database is in access. You can also learn from the strengths of its GUI. There are such good products already out there... I get the feeling that you are reinventing the wheel.
I have seen way too many IT folks do the same but never admit they didn't have the background or knowledge. Admitting is the first step to recovery ...
You need this stuff, and you're looking at source forge and a bunch of other places for pre-done implementations.
:-P
What are your company's need for this stuff?
Does it need to be saleable? In which case, stop looking on sourceforge for GPL'd stuff.
Is it a purely in-house one-off? Is it doing mission critical things? These things have a habit of growing well beyond your original expectations or companies decide they want to sell their in-house product for other people.
For some discussions about workflow in general, check out the Workflow Management Coalition.
Good luck, hope you've not bitten off more than you can chew.
Lost at C:>. Found at C.
IBM Lotus Notes is not open source but has reasonable costs and many architectures to choose from. I recommend it for the Workflow stuff and it has been the leader in its field for more than 10 years. It is by far the best workflow and collaboration software on the market. It is entirely programmable / customizable and is the only thing I would use for the problems you described. For the J2EE stuff I would use JBoss for all of the reasons JBoss rocks.
We have done a project where database-intensive tasks were hung in the workflow as PL/SQL workflow steps and where the Java workflow steps were put on a queue. A servlet ran in the application server and checked whether there were Java workflow steps on the queue. If so, it dequeued them, called the appropriate class and ran it.
If you want more details, write me an e-mail and I'll fill you in.
8 of 13 people found this answer helpful. Did you?
Our company is staffing up to build a workflow management system in J2EE. Any suggestions on what types of skills would be required and questions we should be asking candidates are greatly appreciated as it has come to our attention that recent new hires may not work out...