wftk: Features
[ wftk documentation home ] [ auf deutsch ]
The wftk (workflow toolkit) is a collection of tools for implementation of workflow and data/content
management systems. The central components are the wftk library, which implements the logic of workflow
itself, and the repository manager, which implements tools for dealing with both structured and
unstructured data. The features of the wftk are as follows:
- Library-based implementation.
The wftk and repository manager can be embedded into any application or website. They are easily
accessed from scripting languages (Python implemented, Perl and Tcl planned).
- Adaptor architecture.
The wftk interfaces with other systems using adaptors, simple code modules which
encapsulate basic functionality needed to support workflow logic. Adaptors can easily be written to
present any kind of interaction with external systems in terms the wftk can understand. An example
is the database adaptor; the wftk puts all its database logic into the database adaptor, so that an
adaptor can be written for any database. The Oracle adaptor (included with the distribution) took
four days to write, as an example. Other adaptor classes are process storage, process definition
storage, notification (emails, pagers, etc.), data types, and so forth.
- Simple task delegation and request mechanism
The wftk works equally well with programmed tasks, ad-hoc tasks (those which have been assigned outside
the realm of a defined procedure), requests (which turn into tasks when accepted by the requestee), and
delegation: an assigned task may be passed to another user as a request, and the request may even be
passed on. This "token-based" task architecture is unusual among workflow systems.
- Powerful approval/permissions API
The permissions module of the wftk can be used to compare a requested action against a permission
database. Since there is an action adaptor class, this means that you can use the wftk as a plug-in
permissions module for any system. The permissions structure of the wftk is unusual in that it allows
for three levels of trust: upon submission of a request, the permissions database can approve it
immediately (passing the action on to the system which will perform it), deny it (in which case no
action is taken), or initiate an approval procedure. The approval procedure can be any arbitrary
workflow process, and the action will be taken or denied based on the outcome of the procedure.
- Very portable code
The wftk is written in ANSI C, meaning that it is portable to any system that has a working ANSI C
compiler. Main development is done under Windows, Solaris, and Linux.
- Lightweight
The wftk is a rather small library, so it can run with very little resource impact on nearly any
machine.
- Transparent data representation
All data structures in the wftk are manipulated using the XMLAPI library; all storage is thus done in
XML (unless you write an adaptor which uses something else.) This means that it's very simple to
write tools to work with the wftk's data.
Copyright (c) 2000-2003 Vivtek. Please see the licensing
terms for more information.