Workflow4people is our open-source workflow suite. It is a grails based application that consists of a an ESB-ready backend, a data model designer, forms generator and a forms engine.
You can use each component separately if you want to. And what's more, you can easily integrate these components with other web service based components.
We use our own Grails-based form solution wfp-forms. It directly consumes and produces XML corresponding to the datamodel that is defined in the backend, using the form definitions that are also defined in the backend.
The data model and forms are generated by the template engine. A template consists of templates for the various types of forms and a snippet-based system that allows you to define for each data element exactly what XML, XML schema and form code is generated. The template generator is extremely generic, it can easily generate forms for completely different form solutions.
If you have the need, you can always escape to handcrafted forms.
The XML data store is a 'smart store' that allows any type of XML document to be stored, retrieved, searched and queried. Contrary to other solutions we have tried it scales extremely well.
It builds on Hibernate, Compass and Lucene. When an XML document is stored, it is parsed for named index fields, which are stored in a separated index table and in Lucene.
For each document type, you need to define the XPath expressions that define the index fields for that type. The rest happens automatically.
There is a standard document header that is evaluated when a document is stored. This can trigger things like the start of a workflow or a task transition. When retrieving a document, some fields in the header are automatically populated as well.
The data miner is a component that produces live reports from the data in the XML data store. It allows you to create summary overviews with drill-down to detail overviews and to individual data.
The workflow component consists of a Grails application that embeds jBPM 4. jBPM is the renowned workflow solution from the JBoss Group. It offers a mature solution for the execution of complex (and simple) workflows. Workflows are defined graphically through either an external designer or an integrated browser-based designer.
Workflows are exposed as web services and can themselves utilize web services. The forms solution is completely decoupled from the forms solution to allow for easy multi channeling.
The workflow4people engine is built on Grails. Naturally, Groovy is the language for any scripting done in workflow actions. All Groovy services provided by the platform are accessible to the workflow, so you can easily interact with XML documents, business calendar, authentication system etc.
The permission system allows you to define role based access to workflows, individual forms and XML documents. The built-in authentication system is using Acegi. You can easily use an existing authentication system such as Kerberos or Active Directory to provide authentication.