Slashdot Mirror


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?"

20 comments

  1. *raises hand to ask question* by Anonymous+Crowhead · · Score: 5, Insightful

    How, exactly, did you land a job to develop something you know nothing about in a language you know nothing about?

    1. Re:*raises hand to ask question* by fm6 · · Score: 0

      There's probably more to his job than this one assignment.

    2. Re:*raises hand to ask question* by BigGerman · · Score: 1

      That seems to be pretty standard these days. Especially in J2EE. Especially for a new project. Those are typically put together by people who did not have a clue and probably exploited their management to star working on new tech. They typically end up with giant, procedural, slow-like-midnight-shit J2EE monster. After that they either: have a management uprising and go to .NET and the cycle starts over, or, hire the right people who bring in the new, cool technology like Hibernate,Spring, Jboss, stay away from EJBs (until 3.0 matures) and build new fast single-JVM system.

    3. Re:*raises hand to ask question* by _pruegel_ · · Score: 3, Insightful

      Single-JVM and J2EE can go well together. But yes, there are lots of things to avoid with J2EE. If management requires a task to be solved using J2EE this only proves management to be buzzword-addicted and clueless. However there are also lots of nice and/or even elementary things part of J2EE like JDBC, JNDI, JAXP, Servlet and JSP APIs, JMS and so on.

      Maybe Sun made a huge mistake by putting all these under the J2EE name since this leads to lots of misunderstandings. Even you do a little J2EE bashing while than presenting Spring and JBoss as cool things with those two clearly making heavy use of J2EE technologies.

  2. Object Relational Mapping Frameworks by JPyObjC+Dude · · Score: 2, Informative

    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

    1. Re:Object Relational Mapping Frameworks by michaelggreer · · Score: 2, Insightful

      His question was about workflow frameworks, while these are OR frameworks. You left out the most prominant one: Hibernate. I have always thought the Naked Objects folks to be impractically OO purist in their approach, personally. I don't happen to think objects should have to know how to represent themselves. Keep them stupid.

    2. Re:Object Relational Mapping Frameworks by Anonymous Coward · · Score: 2, Insightful

      Woah. Now what dows OR-Mapping have to do with the question? Nothing, right? Any good workflow language or workflow API will be independent from storage. Besides I found working with Cayenne much more painful than working with Hibernate and Naked Objects promises lots of things nobody really wants. But this is not the scope of this "Ask Slashdot".

    3. Re:Object Relational Mapping Frameworks by JPyObjC+Dude · · Score: 1

      An O.R. framework should be the core model of any enterprise quality workflow framework.

      I agree, Objects should be stupid. That's why you declare an object `Type` that has `Attributes` and you declare `Policies` that govern the object types. This way you can have one object that is governed by multiple policies. The policy is the abstraction level where you would declare lifecycles and access.

      When an object is instantiated in the ORMF it is specified what policy governs that instance and inherits the policies declared lifecycle and access.

      From what I've heard, future versions of Naked Objects will have `Similar Functionality` but I have my doubts. Such a model could be built on the cayenne but would need alot of coding.

      Hibernate looks good, but it would only be for developers to hack with (not a bad thing for job security though). The ideal framework for enterprise deployments should allow for schema architects/integration specialists to sit down and just model the business schema without having to do any coding or at least minimal scripting for giving the system a little more depth.

      I have not seen any open source projects that can do this out of the box (yet) but the customers will line up at the door when it does (namely most fortune 1000 companies who want to save some big bucks)

  3. Dear Slashdot, by Anonymous Coward · · Score: 5, Funny

    I've lied about my qualifications to get a job, and now I'm in way over my head. Please bail me out.

  4. Open Source Workflow Engines Written in Java by belorion · · Score: 5, Informative

    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

  5. XPDL by _pruegel_ · · Score: 4, Informative

    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!

  6. Does it have to be developed? by Kevin+Stevens · · Score: 2, Interesting

    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.

    1. Re:Does it have to be developed? by tyen · · Score: 1

      If not, I highly recommend TeamTrack.

      For those wondering what he was talking about, I think this is the home page of TeamTrack, which lets you download an evaluation version, and a InfoWorld review indicates pricing is about $9,000 USD for 10 named users and $17,000 USD for 10 concurrent users. Even with heavy discounting, it would put a moderately stiff price tag on a deployment that makes BPM infrastructure like this a linchpin of operations for a medium-sized (400-900) company.

      At 50% discount with 400 named users, you are looking at $180,000 USD for infrastructure software that still expects you to wrap your own applications around it to achieve the business payoff; $360,000 USD for a no-discount price. By comparison, Lawson mid-tier ERP deployments bundle in the applications and each module is around $100,000 USD; I've seen $600,000-1M as a typical price tag for a healthily comprehensive Lawson deployment that includes services.

      So I am not sure I would characterize TeamTrack as a no-brainer or even easy purchase decision. It is better than some pricing I've seen for this software, but many businesses might be tempted to go with a "good enough" lower-cost solution built around something like Lotus Notes or Microsoft Exchange. It sounds like if you already have an ecosystem of stovepiped applications that are integrated together with spit and glue, the payoff might be greater using TeamTrack to tie it all together with a more structured and robust framework than if you were building the integration from scratch (which the original poster sounds like they might be doing). For those whose company purchased BPM infrastructure systems like TeamTrack, what was your company's application integration situation before the purchase and what convinced you to make the purchase and expend additional development effort to tie into a new BPM system?

  7. Give the guy a break by malcomvetter · · Score: 1

    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 ...

  8. Do you even know licencing needs?? by gstoddart · · Score: 1

    You need this stuff, and you're looking at source forge and a bunch of other places for pre-done implementations.

    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. :-P

    --
    Lost at C:>. Found at C.
  9. Lotus Notes and J2EE are spectacular together by spoonware · · Score: 1

    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.

  10. If you're an Oracle shop... by cerberusss · · Score: 1
    If you're an Oracle shop, then you should have a look at the Workflow product that comes with the database. It comes with a visual Visio-like tool where you can drag and drop the workflow steps and then upload them into the database.

    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?
  11. Slashdot, please help... by iwrasahp · · Score: 1

    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...

    1. Re:Slashdot, please help... by Anonymous Coward · · Score: 0

      Hire someone that wrote an OSS WorkFlow API, and cover your legal butt from that person copying the OSS code into the new project. Otherwise hire a newbie Java person and give them several years to develop a good Workflow API.

      Rome Was Not Built In A Day.

      Nothing New Is Under The Sun.