← Back to Patent Explorer
US6424948B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Declarative workflow system supporting side-effects

Assignee: Nokia of America Corp
•
Filing: 1999-02-19
•
Granted: 2002-07-23
•
Expires: 2019-02-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An object-focused workflow system for processing a received object in accordance with a declarative workflow specification. The specification includes modules and attributes, where module execution results in the evaluation of attributes, and may include the initiation of a side-effect action performed by an external component. Whether modules are to be executed for a particular received object is determined by associated enabling conditions. Attributes may be evaluated in accordance with computation rules and a combining policy, where the computation rules specify how values are to be contributed to an attribute, and the combining policy indicates how those contributed values are combined in order to assign a value to the attribute. Tasks in the workflow system may be executed eagerly in order to improve the performance of the workflow system. The eager evaluation of tasks includes the determination of whether such tasks are eligible for eager evaluation, and whether the tasks are unneeded or necessary for the processing of the received event. Workflows which satisfy described design properties allow for improved algorithms for the determination of the whether tasks are eligible, eager, and/or necessary. A graphical user interface is provided for displaying a representation of the evaluation status of the modules and attributes during workflow execution.

Inventors

  • 👤 Guozhu Dong
  • 👤 Richard Baxter Hull
  • 👤 Bharat Kumar
  • 👤 Jianwen Su
  • 👤 Gang Zhou

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 10:36
CPC Classifications
G; G06; G06Q; G06Q10/00; G06Q10/10; G06Q10/06; G06Q10/063; G06Q10/0631; G06Q10/06311

Claims Analysis

Total Claims: 31
Claim 1
Independent Claim 216 words
A workflow system for processing a received object comprising: a memory storing a declarative program specification, said program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution, for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and a processor for executing said program specification, said execution comprising the steps of: evaluating enabling conditions; and executing modules based on said evaluated enabling conditions.
Claim 2
Dependent Claim 216 words
A workflow system for processing a received object comprising: a memory storing a declarative program specification, said program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution, for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and a processor for executing said program specification, said execution comprising the steps of: evaluating enabling conditions; and executing modules based on said evaluated enabling conditions.
Claim 3
Dependent Claim 23 words
The workflow system of claim 1 wherein said execution of said program specification implements at least a portion of a customer care system.
Claim 4
Dependent Claim 21 words
The workflow system of claim 2 wherein said customer care system is a call center for processing incoming customer telephone calls.
Claim 5
Dependent Claim 16 words
The workflow system of claim 2 wherein said customer care system is an electronic commerce system.
Claim 6
Dependent Claim 23 words
The workflow system of claim 1 wherein the execution of at least one of said modules includes the execution of a procedural function.
Claim 7
Dependent Claim 17 words
The workflow system of claim 5 wherein said procedural function is specified by a procedural computer language.
Claim 8
Dependent Claim 17 words
The workflow system of claim 1 wherein at least one of said modules is a decision module.
Claim 9
Dependent Claim 77 words
The workflow system of claim 1 , wherein: once stable, values of the modules, attributes and enabling conditions cannot change for the time duration of workflow instance execution; said execution further comprises: determining if a first of said enabling conditions is stable; evaluating said enabling condition when said enabling condition is stable; and evaluating a module associated with said first enabling condition when said enabling condition is stable and said enabling condition evaluates to a predetermined value.
Claim 10
Dependent Claim 94 words
The workflow system of claim 1 , wherein: a first of said modules produces a first attribute value and a second of said modules uses said first attribute value to produce a second attribute value, wherein data flow from said first attribute value to said first module is defined in an implicit rather than explicit manner in said declarative program specification; and said execution further comprises determining a sequence of execution between said first and second modules, whereby said first attribute value will be determined before said second module uses said first attribute value.
Claim 11
Dependent Claim 92 words
The workflow system of claim 1 , wherein: a first of said modules produces a first attribute value and a first of the enabling conditions uses said first attribute value to determine whether an associated one of said modules is enabled, wherein data flow from said first attribute value to said first enabling conditions is implicit; and said execution further comprises determining a sequence of execution between said first module and said enabling condition, whereby said first attribute value will be determined before said first enabling condition uses said first attribute value.
Claim 12
Dependent Claim 59 words
The workflow system of claim 1 , wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic because there is no module M for which there is a directed path in a graph of data flow dependencies and enabling flow dependencies that starts at M and ends at M.
Claim 13
Dependent Claim 223 words
A computer readable medium storing a declarative program specification, said program specification capable of execution on a computer processor for implementing a workflow system, said program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution, for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and wherein said execution of said program specification on said computer processor comprises evaluation of enabling conditions and execution of modules based on said evaluation.
Claim 14
Dependent Claim 223 words
A computer readable medium storing a declarative program specification, said program specification capable of execution on a computer processor for implementing a workflow system, said program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution, for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and wherein said execution of said program specification on said computer processor comprises evaluation of enabling conditions and execution of modules based on said evaluation.
Claim 15
Dependent Claim 19 words
The computer readable medium of claims 12 wherein said execution of said program specification implements a customer care system.
Claim 16
Dependent Claim 22 words
The computer readable medium of claim 13 wherein said customer care system is a call center for processing incoming customer telephone calls.
Claim 17
Dependent Claim 17 words
The computer readable medium of claim 13 wherein said customer care system is an electronic commerce system.
Claim 18
Dependent Claim 85 words
The computer readable medium of claim 12 , wherein: once stable, values of the modules, attributes and enabling conditions cannot change for the time duration of workflow instance execution; said execution of said program specification on said computer further comprises: determining if a first of said enabling conditions is stable; evaluating said enabling condition when said enabling condition is stable; and evaluating a module associated with said first enabling condition when said enabling condition is stable and said enabling condition evaluates to a predetermined value.
Claim 19
Dependent Claim 102 words
The computer readable medium of claim 12 , wherein: a first of said modules produces a first attribute value and a second of said modules uses said first attribute value to produce a second attribute value, wherein data flow from said first attribute value to said first module is defined in an implicit rather than explicit manner in said declarative program specification; and said execution of said program specification on said computer further comprises determining a sequence of execution between said first and second modules, whereby said first attribute value will be determined before said second module uses said first attribute value.
Claim 20
Dependent Claim 112 words
The computer readable medium of claim 12 , wherein: a first of said modules produces a first attribute value and a first of said enabling conditions uses said first attribute value to determine whether an associated one of said modules is enabled, wherein data flow from said first attribute value to said first enabling conditions is defined in an implicit rather than explicit manner in said declarative program specification; and said execution of said program specification on said computer further comprises determining a sequence of execution between the first module and the enabling condition, whereby said first attribute value will be determined before said first enabling condition uses said first attribute value.
Claim 21
Dependent Claim 60 words
The computer readable medium of claim 12 , wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic because there is no module M for which there is a directed path in a graph of data flow dependencies and enabling flow dependencies that starts at M and ends at M.
Claim 22
Independent Claim 229 words
A method for operation of a workflow system for processing a received object, said workflow system comprising a memory storing a declarative program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and said method comprising the step of: executing said program specification wherein said step of executing further comprises the steps of: evaluating enabling conditions; and executing modules based on said evaluation of enabling conditions.
Claim 23
Independent Claim 229 words
A method for operation of a workflow system for processing a received object, said workflow system comprising a memory storing a declarative program specification defining: a plurality of modules in a workflow instance, the plurality of modules producing associated attributes when executed, wherein each attribute is produced by only one module, wherein at least one of said attributes depends on another attribute, and wherein the execution of at least one of said modules results in the initiation of a side-effect action performed by a component external to said workflow system; a plurality of enabling conditions which are independent of the time duration of workflow instance execution for determining whether associated ones of said modules are enabled, wherein evaluation of at least one of said enabling conditions depends on a value of an attribute; wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic; and wherein one of the modules produces a particular attribute, and wherein data flow between the particular attribute and an enabling condition that depends on the particular attribute is defined in an implicit rather than explicit manner in said declarative program specification; and said method comprising the step of: executing said program specification wherein said step of executing further comprises the steps of: evaluating enabling conditions; and executing modules based on said evaluation of enabling conditions.
Claim 24
Dependent Claim 17 words
The method of claim 20 wherein said execution of said program specification implements a customer care system.
Claim 25
Dependent Claim 20 words
The method of claim 21 wherein said customer care system is a call center for processing incoming customer telephone calls.
Claim 26
Dependent Claim 24 words
The method of claim 20 wherein the execution of at least one of said modules further comprises the step of executing a procedural function.
Claim 27
Dependent Claim 16 words
The method of claim 23 wherein said procedural function is specified by a procedural computer language.
Claim 28
Dependent Claim 81 words
The method of claim 20 , wherein: once stable, values of the modules, attributes and enabling conditions cannot change for the time duration of workflow instance execution; the step of executing further comprises the steps of: determining if a first of said enabling conditions is stable; evaluating said enabling condition when said enabling condition is stable; and evaluating a module associated with said first enabling condition when said enabling condition is stable and said enabling condition evaluates to a predetermined value.
Claim 29
Dependent Claim 98 words
The method of claim 20 , wherein: a first of said modules produces a first attribute value and a second of said modules uses said first attribute value to produce a second attribute value, wherein data flow from said first attribute value to said first module is defined in an implicit rather than explicit manner in said declarative program specification; and the step of executing further comprises the step of determining a sequence of execution between said first and second modules, whereby said first attribute value will be determined before said second module uses said first attribute value.
Claim 30
Dependent Claim 108 words
The method of claim 20 , wherein: a first of said modules produces a first attribute value and a first of said enabling conditions uses said first attribute value to determine whether an associated one of said modules is enabled, wherein data flow from said first attribute value to said first enabling conditions is defined in an implicit rather than explicit manner in said declarative program specification; and the step of executing further comprises the step of determining a sequence of execution between said first module and said enabling condition, whereby said first attribute value will be determined before said first enabling condition uses said first attribute value.
Claim 31
Dependent Claim 58 words
The method of claim 20 , wherein the set of data flow dependencies and enabling flow dependencies between said modules and said enabling conditions is acyclic because there is no module M for which there is a directed path in a graph of data flow dependencies and enabling flow dependencies that starts at M and ends at M.

References Cited (Backward Citations)

US5524241A Cited
US5581691A Cited
US5809212A Cited
US5832455A Cited
US5893083A Cited
US5870545A Cited
US5826239A Cited
US6065009A Cited
US6115693A Cited
US6173446B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-07-22 2006-01-21 2006-07-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-07-22 2010-01-21 2010-07-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-07-22 2014-01-21 2014-07-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag