workflow4people

workflow for everybody!

Overview

Detailed documentation will be available shortly after release. In the meantime this page describes the overall architecture.

Architecture

workflow4people architecture

 

Workflow4people has a workflow and forms component. The components communicate through web services. You can easily use each component separately if you want to. And what's more, you can easily integrate these components with other web service based components.

Forms

We use Orbeon for the web forms. Orbeon is a server-side XForms solution which makes it possible to use XForms that are exposed as ordinary web forms through any browser.

Forms can vary from a simple 3-field remark intake to a 20-page form wizard for a building permit.

Orbeon also offers XML pipelines which are used for instance to communicate with web services.

Orbeon forms are used to present tasks to users, provide overviews of tasks and to deliver reports.

The task models are defined as XML Schema documents. Orbeon performs validation of the forms in realtime.

Forms generator

The data model and XForms 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 XForm 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.

XML data store

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

Data miner

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.

Workflow

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.

Web services

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.

Groovy

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.

 

Permission and authentication system

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.