wftk: Open-source workflow toolkit

what's new ] [ project ] [ implementation ] [ discuss ]
usage scenarios ] [ server overview ] [ process definition ] [ user interface ]
download ]
It's ready for download! Workflow for everybody!

Notice as of April 14, 2001: The new version is a complete rewrite of the prototype, and I've resisted writing too much documentation until that is complete. The new version rearranges everything into a library which can be statically or dynamically linked, and it has a well-defined adaptor interface so that you can integrate with (for example) whatever database you like. You will like this. More as I get the chance to start writing documentation.

17 Jan 2000 Creating this page, researching the workflow industry, and laying out usage scenarios for typical workflow applications. As I figure out more of the industry, I'll start filling in a workflow topic. I'll link to it when I start that page.
21 Jan 2000 Added server design.
1 Feb 2000 Finished up the usage scenarios. It's time to start on UI design and the specification of an XML DTD for process definition!
11 Feb 2000 Started in with process definition. I have lots of things written on paper but it'll take a couple of days to get it all updated.
13 Feb 2000 First XML process definition example is ready to look at!
21 Feb 2000 All six usage scenarios are now expressed in XML. I'm working on a DTD that includes all of them.
24 Feb 2000 DTD complete. On to the UI!
3 Mar 2000 UI is starting to take shape now. As usual I'm realizing plenty of shortcomings in the design so far.
9 Mar 2000 OK, with the completion of the mockup UI, initial analysis is now complete. Coding is now beginning. I've put together a kind of sitemap of the analysis documentation for your perusal.
20 Apr 2000 Loong pause there. But finally, the first component of the wftk is implemented. I decided to start with the task list manager portion of the user interface, just to have something to hang things on. I've got an implementation overview here and the code documentation for the task list manager is here. The demo version of the task list manager is here.
13 May 2000 Datasheet attachment of values is now working, and that means I now have the power to parse XML! Long live expat! The new functionality is integrated with the task manager, so go look.
15 May 2000 I just installed a discussion board here on the site. Go mouth off!
27 May 2000 Finally! The workflow project does workflow! Last week or so I kind of completed the first bare-bones version of the core engine, but as I hadn't yet integrated it with the task manager I didn't see much point in shouting about it. But now it's integrated. We have a workflow system. A crude one, but it's getting there!
10 July 2000 The prototype of the procdef editor is now working. The code is here and the working version starts here, with the test user demo/demo as per normal procedures.
4 October 2000 My first release-ish version is ready to bake. It's still pretty wobbly and there's more baling twine in its metabolism than I like, but it's getting better. There's a lot still to do. I've also been working on a reorganization of this site, and that should be ready to go soon. Enjoy!


Now this is just plain cool. wftk is an open-source project funded by Galactic Marketing through SourceXchange. SourceXchange is a new organization devoted to kicking off open-source projects by finding corporate sponsors. So far, speaking for myself, it seems to be working. Actually, as of 17 Jan 2000, there is one complete project and four active ones including this one, so it really is working. It's an exciting concept. Go look.

(1/17/00) As for wftk itself, the project will provide a workflow engine and at least one client for defining process classes. Planned platform will be C (maybe Perl) for the server, running via adapter as any one of a number of component types under AOLserver or IIS. Initial coding will be for CGI and maybe an ActiveX object. I'll see about that last. XML will be used for definition of process classes and for storage of process values for active processes. The DTD for process classes is one of the early deliverables for the project, and I've already got some good plans but I'm concentrating on the usage scenarios first. The database will be configurable via adapter; initial code will include PostgreSQL and MS SQLServer. Document management will be configurable via adapter; initial coding will include the Unix and NT filesystems and FileNet Panagon.

This is an ambitious project. Yeah, I'm getting paid. But your support and encouragement will go a long way towards helping me get through this. This will be a sweet solution for a vast number of applications. Join in!



(1/17/00) This is the currently active phase of the project. At this point, I'm just trying to define what it is we're actually doing. The usage scenarios should be of great help. Each one consists of a brief description of the process being modelled, an attempt at a RAD (Role-Action Diagram) and/or PERT (Program Evaluation and Review Technique) chart, and then some musings about what variables might be defined for the process, what deliverables result from each task to be included in the final package, and so forth. It's all pretty raw. I'd appreciate comments. Usage scenarios done or planned: Each of these usage scenarios will be modelled as a business process in the next phase of this project.
Go read up on them now.


(1/24/00) Since I've already written the usage scenarios (even though they're not all typed up) I have a fairly good picture of the overall design of the server, so I'm going ahead with that part of the initial documentation. Here are the overall design goals I see for this project:
  • Ease of use
  • Ease of deployment
  • Adaptability to local software environment
  • Ability to handle and document ad-hoc workflow
  • Adherence to the few emerging standards of the industry
  • Scalability (1/28/00)
I elaborate a little on those goals and provide an overview of the system in the server design document.


(2/11/00) Process definitions are expressed in XML. The process definition language is rich, so there's a lot to cover.
(2/13/00) I'm starting on example process definitions to make sure I'm not completely offbase.
(2/21/00) Lots of insight in the six process definitions. Give'em a read.
(2/24/00) The DTD is complete and available for your perusal here.


(3/3/00) This page is the overview of the user interface design process, and here is the user interface mockup that I'm putting together.


(4/20/00) This page is the overview of the implementation of the prototype, and this is the homepage for the first component, the task list manager.
(5/27/00) The second major component, the core engine, is now engining.
(5/27/00) The third major component, the process definition manager, has begun construction and is used in the integration of the task manager with the core engine.
(7/10/00) The third major component, the process definition manager, is now much, much more capable, in addition to being stand-alone CGI enabled.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.