A new programming paradigm named "Vortex" is introduced for specifying a wide range of decision-making activities including, in particular, workflows. In Vortex workflows are specified declaratively. A particular emphasis is on "object-focused" workflows, i.e., workflows focused on how individual input objects should be processed within an organization. Such workflows arise commonly in practice, including insurance claims processing, and many electronic commerce applications, and in the area of Customer Care, e.g., web-based storefronts. Vortex workflows are "attribute-centric", because they are centered around how the attribute values for an input object are gathered and computed. Initially, only a few attributes of an input object have assigned values. During processing of the object, additional attribute values may be assigned by external modules, or by internal modules, including "decision modules". Decision modules include "attribute rules" that specify contributions to specific attribute values; these are combined with one of a broad family of available semantics. In Vortex, enabling conditions are used to determine what attributes should be evaluated. A novel choice-based execution model provides a general framework for optimization strategies. The use of enabling conditions, attribute rules and declarative semantics makes Vortex workflows easier to modify and refine than traditional, procedurally specified workflows. Vortex supports modularity and permits the natural intermixing of Vortex workflows with traditional, procedural workflows. The paper introduces a novel spreadsheet-like interface for dynamic browsing of Vortex executions.
Read full abstract