1. A work flow management system, comprising: a computer system having memory means for storing data and communication means for communicating with a multiplicity of resources, said resources including a multiplicity of human principals; work flow description means for storing in said memory means work flow description data representing a plurality of work flow types; each said work flow type being represented by said work flow description data as a set of steps with information flows therebetween; said work flow description data including data representing information flows in and out of each said step; wherein at least a plurality of said steps of each said work flow type comprises notification of one of said principals of a specified task to be performed as part of said work flow type, execution of said task by said one principal, and notification of said work flow management system by said principal when said specified task has been completed; wherein said notifications are performed via said communication means; a work flow controller, coupled to memory means for accessing said work flow description data, for creating a plurality of work flow instances comprising instances of various ones of said work flow types, and for controlling execution of said work flow instances; said work flow controller including means for initiating execution of a first step in each created work flow instance and for initiating execution of each other step in each created work flow instance when predefined input data criteria for each said step are fulfilled by information flows from other ones of said steps; said work flow controller including means for durably storing results from each executed step; and history management means including means for storing and retrieving status data concerning said created work flow instances during execution thereof, wherein said status data includes status information for each said step of said created work flow instances; whereby work flows are executed in units of steps, and each work flow's status is tracked by storage of status data concerning execution of the steps associated with said each work flow.