Our research in development of the Endeavors
dynamic web-based workflow system [9][14]
has suggested a number of key requirements that should be addressed to
support dynamic adaptive workflow. Contingency management and
hand-off provide mechanisms for dealing with and recovering from
expected and unexpected divergence from the intended process. Partial
execution supports creating and executing processes and process fragments
"on-the-fly" as they are needed, rather than requiring the entire process
be rigidly specified ahead of time. Dynamic behaviors, in
terms of both execution model and object behaviors provide flexibility
to modify workflow paths and executed behaviors at run-time independent
of object data. Reflexivity allows a workflow component to
programmatically examine, analyze, create, and manipulate its own process
and data as part of automatable tasks within the executing workflow [3][5].
Finally, evolution and optimization through measurement, tracking,
and reuse of generalizable process fragments over the long term can improve
the ability of the workflow to adapt to new applications and uses.
We discuss each of these in depth in following sections.
A good recovery mechanism should permit execution of a disrupted workflow to resume, start at an arbitrary midpoint, or rollback to a previous point in the process using computer or human execution of reset, restart, undo, complete, abort, recover, ignore, or jump operations on the process interpreter [8]. Hand-off and recovery of artifacts and reassignment of activities and resources should be localized if permissible. Flexible exception handling that provides scoping mechanisms is a key element in minimizing the detrimental effects of unplanned contingencies. Localized exceptions should not halt the progress of the entire workflow but rather be propagated up hierarchically until the problem can be resolved or an appropriate workaround, such as an alternate path to a solution, can be specified. Alternatively, a "show-stopping" exception, one with global scope, should be broadcast to the appropriate participants and agents to minimize the amount of misdirected work or focus work priorities in the face of new constraints.
To facilitate the workarounds required by contingencies in workflow executions, hand-off of process objects, workflow specifications, and execution context needs to be easily accomplished across networks of dispersed participants. Clear communication channels, unambiguous work and activity model representations, and a common understanding of what is being handed off as well as what expectations are being placed upon the recipient are all requirements for successfully transferring work assignments. This sort of hand-off normally occurs during regular workflow execution, but when an exception occurs, roles and assignments may become ambiguous. Mismatch of expectations may occur, running the risk that important tasks may get lost in the reshuffling of work assignments. Simple sharing of process objects across sites may not be sufficient to guarantee the successful hand-off and resumption of a process due to differences in local work context.
Handshaking may be required to ensure consistency during hand-off. Online, confirmation of items received can be accomplished through electronic dockets or invoices to ensure the existence of items and digital signatures may be used to ensure quality and accuracy. Off-line, a handshake is still a handshake between people, but an online record should reflect the agreement and the social obligations of all participants. Because hand-offs are likely to require changes in execution context, it is important that the workflow processes and objects be designed to adapt to the new environment or gracefully handle contingencies.
Partial execution supports dynamic composition by allowing the execution of fragments of an incomplete process. Partial execution is analogous to a cat's cradle, a child's game in which an intricately looped string is transferred from the hands of one player to the next, resulting in a succession of different loop patterns. It should be possible to pick up the execution of a process and continue it from any point specified including the dynamic reorganization of local relationships and constraints to fit the new work context. Partial execution supports multiple iterations of a process fragment or multiple alternate iterations of the same process fragment changing order, priority, focus, or completion criteria of the fragment. Support for resolving and integrating processes via pipe-and-filtering, re-stringing, rework, and amalgamation of diverse processes which include possibly competing priorities should be included into the workflow execution infrastructure. This may include temporal and spatial context awareness in addition to the possible execution space and control, coordination, and collaboration policies. For individuals or groups, this may include several partial executions, repeated until the artifact is good enough to post or hand-off to the next participant. While partial execution techniques may create ambiguity and diminish the ability to do global optimizations across all activities before execution, work specifications are generated on-the-fly and on-demand allowing many local optimizations based on discriminates available at execution time.
Strong support for dynamic change allows these issues to be addressed with minimal impact to the ongoing, executing workflow process. The ability to dynamically modify a process definition, the set of views into the process, or the execution model, at the time it is in progress, to better fit changing requirements, availability of resources, and the applicability to the current work context is crucial for workflow process execution and evolution over time.
Late binding of resources in a workflow allows completion of activities using the resources at hand at the specific point in time the work is actually done. Planning and scheduling components should complement late binding to ensure that the required amount of resources are available at the appropriate times to complete the tasks at hand. An example of late binding that provides a good mechanism for supporting dynamism in process object management is the separation an object's data from its behaviors. Object behaviors such as messages can be dynamically loaded and resolved as they are invoked. Object behaviors may be updated independent of the object's attributes.
Hand-off of control and data from one person or agent to the next will result in switching of the execution context. To aid in the resolution of context awareness and adaptation, it may be necessary to dynamically change object fields, methods, and behaviors during runtime.
In the best case, if changes and hand-off are predictable, parameterization can accomplish the changes in context. Most likely, however, the process activities, artifacts, and resources will require some more significant acclimation to the target environment. This may involve downloading of new and existing coordinated views of the work or data models, multiple process interpreters for automation or coordination, and bi-directional exchange of dynamic and changing process object updates for work refinement and task clarification.
Based on information about the environment a process component may be able to integrate with new elements in the environment, optimize scheduling and constraints, and improve the organization of relationships and dependencies. Specific rules or strategies may provide a path for a reflexive workflow component to evolve over time. Such a component might be able to improve efficiency in systematic ways in response to quantitative measures collected over time.
Supporting reflexivity in a workflow infrastructure allows knowledge about a workflow's applicability to the context and the effectiveness of its deployment to be evaluated over time. Keeping track of a change history in addition to being able to derive change trees and programmatically form queries about them provides a mechanism for revisiting evolutionary branches. Catalysts for change, whether for better or for worse, are easier to isolate and recognize. In this way, reflexivity provides the foundation for continuous, at least partially automated, process monitoring and optimization. This activity might be hierarchically distributed throughout the workflow to provide for both localized and generalized optimization.
In addition to monitoring and manipulating existing processes, reflexivity is also useful for generative processes where, during the execution of the process, new process elements are created. This is applicable not only to the processes that are built as they execute (the dynamically composed workflows we described above), but also to workflows whose purpose is to create another process tailored to a specific purpose.
Unfortunately, a common practice and a best practice may not be the same thing. In order to determine this, metrics must be kept to evaluate one execution from another. This evaluation is subjective because the criteria underlying the metrics changes the same way the workflow does. Successful workflows, like successful software, will be applied in new situations that may have been unanticipated by the original creator, and unsuccessful workflows will be abandoned or changed. It is important in the workflow infrastructure to allow the change to occur both before and after deployment of the workflow, by both technical and non-technical participants. Some optimizations may even be performed by the system itself through agents, validation tools, or optimizers.
To better support process evolution and optimization, process fragments should be easily reusable, divisible, understandable, and capable of being evaluated against some measurable criteria with respect to expected execution or anticipated behavior. A fragment that is successful in one context is likely to be applicable to another similar context. For instance, in a software testing process, the tester may require that the same outcome be reached over repeated executions. Different outcomes imply different qualities of the software. Similarly, a process can be used to develop the skill of a particular student in a training domain where the end-user's path through the process is dependent upon their skill. The inculcation results in the goal of visiting every activity or series of activities through repeated executions and increased skills. The process may change based on feedback, usage, level of interaction, and number of times executed. As with all changing components, change management techniques such as version control and transactions should be integrated with the system.
Customized agents and event monitoring infrastructure are useful for gauging the effectiveness of these workflow components. Further, when a new process is introduced to a work environment and culture, there is often some pushback to its adoption. It is important for the process to be able to adapt in response to this pushback. In addition, process discovery tools are useful for comparing and validating the workflow model with the actual work being accomplished. Wide divergences can indicate technology mismatches or inapplicability and thus the need for evolution and optimization of the process.
We have identified a number of elements from our research as important
to supporting dynamic adaptive workflow execution: contingency management
and hand-off, partial execution, dynamic behaviors, reflexivity, and long-term
evolution and optimization. Taken together, these complimentary emphases
provide a foundation on which to build dynamic adaptive workflow processes.
Our work with [7] has suggested these are important
elements in future workflow systems. We have incorporated many of these
approaches into work on the Endeavors
workflow system at the University of
California, Irvine.
1. Abbott, K. and Sarin, S., "Experiences with Workflow Management: Issues for the Next Generation" Proceedings of the Conference on CSCW, Chapel Hill, NC, pp. 113-120, 1994.
2. Bolcer, G., Flexible and Customizable Workflow Execution on the WWW, PhD Thesis, University of California, Irvine. September, 1998.
3. Bolcer, G. and Taylor, R., "Endeavors: A Process System Integration Infrastructure", 4th International Conference on Software Process, Brighton, UK, December, 1996.
4. Cugola, G., Di Nitto, E., Fuggetta, A., and Ghezzi, C. "A Framework for Formalizing Inconsistencies and Deviations in Human-Centered Systems" ACM Transactions on Software Engineering and Methodology (TOSEM), 5(3), ;pp.191-230, 1996.
5. Dourish, P., "Developing a Reflective Model of Collaborative Systems", ACM Transactions on Computer-Human Interactions, vo.2, no.1, pp.40-63, March, 1995.
6. Ellis, C. and Nutt, G., "Workflow: The Process Spectrum, NSF Workshop on Workflow and Process Automation in Information Systems: State-of-the-Art and Future Directions", Athens, Georgia, pp. 140-145, May, 1996.
7. Fielding, R. et al. "Web-Based Development of Complex Information Products", Communications of the ACM, vol. 41, no. 8, August, 1998.
8. Kaiser, G. et al. "WWW-based Collaboration Environments with Distributed Tool Services", World Wide Web Journal, Baltzer Science Publishers, January, 1998.
9. Kammer, P. et al., "Supporting Distributed Workflow Using HTTP", 5th International Conference on Software Process, Chicago, June, 1998.
10. Miller, J. et al. "The Future of Web-based Workflows" LDIS Department of Computer Science, University of Georgia, Athens, Research Directions in Process Technology Workshop, Nancy, France, July, 1997.
11. Nutt, G., "The Evolutions Toward Flexible Workflow Systems" Distributed Systems Engineering, vol. 3, no. 4, pp. 276-294, December, 1996.
12. Osterweil, L., "Software Processes are Software Too, Revisited", In Proceedings of the International Conference on Software Engineering, Boston, MA., pp. 540-548, May, 1998.
13. Saastamoinen, H. et al., "Survey on Exceptions in Office Information Systems" Technical Report CU-CS-712-95, Department of Computer Science, University of Colorado, Boulder, 1994.
14. Taylor, R. "Dynamic, Invisible, and on the Web", University of California, Irvine, Research Direction in Process Technology Workshop, Nancy, France, July, 1997.
15. Tolone, W., "Introspect: a Meta-Level Specification Framework for Dynamic Evolvable Collaboration Support", PhD Thesis. University of Illinois at Urbana-Champaign, 1996.