In addition to having flexible document types and security, Fez is designed to have a flexible, easily customisable interface for controlling the flow of user GUI forms and document management.
As Fez was designed to follow standards where possible the development team assessed the Business Process Execution Language (BPEL) [HREF39] as a model for describing workflows. At that stage BPEL and its tools appeared very complicated and potentially very expensive depending on what tool to implement. The Fez programming team decided it would require too many development resources to implement a true BPEL conforming system so instead derived strategic ideas from the model and implemented a model that would meet requirements.
Workflows are a state-based system so they have a process associated with each state. The process definition could be automatic or require manual completion. On completion of the workflow state process, the workflow moves to the next state. Each state has an associated action and can have access privilege restriction based on the user’s FezACML role.
Workflows are triggered by events in the system. A set of default workflow triggers applies to all Fez objects, although custom workflows can be defined on any hierarchical level of object similarly to FezACML security.
A workflow has sets of behaviours (essentially web services) that occur when the item moves to each state – these might be automatic like generating thumbnails or creating preservation metadata (with JHOVE [HREF21]), or they might be manual such as entering and reviewing metadata. Each workflow behaviour is implemented as a PHP web service script, accepting passed variables as URL query string arguments and performing an action.
The workflow administration panels in Fez provide an easy way of defining and understanding this complex system.
More Details / Design Doc
While developing workflows, a detailed design doc was produced.