WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation    
United States Patent5960404   
Link to this pagehttp://www.wikipatents.com/5960404.html
Inventor(s)Chaar; Jarir K. (Tarrytown, NY); Hailpern; Brent T. (Katonah, NY); Park; Edwin S. (Middletown, NJ); Paul; Santanu (New York, NY)
AbstractA mechanism for heterogeneous, peer-to-peer, and disconnected workflow execution across a network infrastructure. Performer Agent entities provide a homogeneous view of humans, applications, and heterogeneous workflow systems and components that act as Performers on the network by executing Tasks. Source Agent entities provide a homogeneous view of heterogeneous service requesters such as workflow scripts executing on different workflow systems, which generate Activities that need to execute on Performers as Tasks. Task Request and Task Response messages are used to standardize the communication between Source Agents and Performer Agents, along with other messages for controlling and queuing Tasks. Workflow systems interact with each other as peers using this mechanism by sending workflow execution requests, workflow script templates, and workflow execution environments to each other. Disconnected operation is handled by ensuring the continuous availability of Source Agents and Performer Agents on the network and providing a mechanism for Sources to disconnect from Source Agents and Performers to disconnect from Performer Agents.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5960404
Mechanism for heterogeneous, peer-to-peer, and disconnected workflow

     operation - US Patent 5960404 Drawing
Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation
Inventor     Chaar; Jarir K. (Tarrytown, NY); Hailpern; Brent T. (Katonah, NY); Park; Edwin S. (Middletown, NJ); Paul; Santanu (New York, NY)
Owner/Assignee     International Business Machines Corp. (Armonk, NY)
Patent assignment
All assignments
Publication Date     September 28, 1999
Application Number     08/919,838
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     August 28, 1997
US Classification     705/8 705/9 705/11 709/202 718/102 718/104 719/317
Int'l Classification     G06F 017/60 G06F 009/44
Examiner     Trammell; James R.
Assistant Examiner     Nguyen; Cuong H.
Attorney/Law Firm     Presser, Jordan, Esq.; Kevin M. Scully, Scott, Murphy &
Address
Parent Case    
Priority Data    
USPTO Field of Search     705/7 705/8 705/9 705/1 705/10 705/11 395/670 395/672 395/673 395/674 395/675 395/676 395/677 707/1 707/100 707/101 707/103 707/104
Patent Tags     mechanism heterogeneous, peer-to-peer, disconnected workflow operation
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5828375
Nomura
715/764
Oct,1998

[0 after 0 votes]
5826239
Du
705/8
Oct,1998

[0 after 0 votes]
5826020
Randell
709/202
Oct,1998

[0 after 0 votes]
5819263
Bromley
707/3
Oct,1998

[0 after 0 votes]
5809265
Blair
715/764
Sep,1998

[0 after 0 votes]
5802493
Sheflott

Sep,1998

[0 after 0 votes]
5721912
Stepczyk
707/102
Feb,1998

[0 after 0 votes]
5721913
Ackroff
707/103R
Feb,1998

[0 after 0 votes]
5535322
Hecht
705/1
Jul,1996

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


Having thus described the invention, what is claimed as new and desired to be secured by Letters Patent is:

1. A computer system for workflow operation with heterogeneous components, comprising:

a. sources, representing heterogeneous service requesters, capable of generating service requests;

b. activities, representing units of work generated within said sources;

c. performers, representing heterogeneous service providers, capable of performing said service requests and generating service responses;

d. tasks, representing units of work executing within said performers in response to incoming service requests, such that each task is uniquely associated with an activity within a source;

e. source agents that act as proxies of said sources;

f. performer agents that act as proxies of said performers;

g. task request and task response messages, used to transmit service requests and service responses between said source agents and performer agents;

h. a continuously available network to which said source agents and said performer agents are always connected.

2. The system of claim 1, wherein each source comprises:

a. means for generating and issuing said service requests for said activities;

b. means for receiving said service responses;

c. a connection to its own unique source agent.

3. The system of claim 1, wherein each performer comprises:

a. means for receiving said service requests;

b. means for performing service requests as said tasks;

c. means for generating service responses;

d. a connection to its own unique performer agent.

4. The system of claim 2, wherein sources can comprise one or more of the group consisting of:

a. a workflow script specified as a control and data-flow graph, a set of rules, or means executing on a centralized workflow server;

b. a custom workflow program written in a standard programming language that implements a specific process by generating service requests in a sequence;

c. a workflow-aware human agent implementing a specific process by generating service requests in a sequence;

d. a long-running collaborative application that generates service requests.

5. The system of claim 3, wherein performers can comprise one or more of the group consisting of:

a. a human participant;

b. an automated application, including a database, a gateway, or a program or electronic device for receiving inputs and generating outputs;

c. a workflow server;

d. an organization, business unit;

e. an intermediary application that receives activities from said source agents and dispatches the activities to performer agents.

6. The system of claim 1, wherein said task request represents a service request to a performer agent, comprising:

a. activity ID, a unique, unchangeable identifier assigned by an originator source agent that identifies a specific activity in said source that caused the service request;

b. source agent reference, a unique reference to the originator source agent of the activity, which can be used by a performer agent to identify the originator source agent;

c. task details, which contain information about the exact type of task to be created on the performer and the input parameters required to create and start the task.

7. The system of claim 6, wherein said task request further can comprise one or more of the group consisting of:

a. status information of said task request;

b. annotations that provide an informal description of said task request;

c. information about priority of said task request;

d. information about deadlines on said task request;

e. a detailed history or log of the routing of said task request.

8. The system of claim 1, wherein said task response represents a service response to a source agent, comprising:

a. activity ID, which uniquely identifies an activity in said source to which the response corresponds;

b. source agent reference, a unique reference to said source agent that generated the task request;

c. performer agent reference, a unique reference to said performer agent which handled the task request;

d. task ID, a unique identifier of the task executed on said performer;

e. task result details, which contain information about the exact type of task executed on the performer and the outputs generated for the task.

9. The system of claim 8, wherein said task response further can compromise one or more of the group consisting of:

a. annotations that provide an informal description of said task response;

b. status information which describes if the task was completed correctly, failed, or was forwarded;

c. a detailed history or log of the routing of said task response.

10. The system of claim 1, wherein each source agent comprises:

a. a continuous connection to said network;

b. a task response handler component, for receiving and handling said task responses over said network on behalf of its source;

c. a task request dispatcher component, which generates said task requests from said service requests and dispatches them to said performer agents via said network.

11. The system of claim 1, wherein each performer agent comprises:

a. a continuous connection to said network;

b. a task request handler component, for receiving and handling task requests over said network for its performer;

c. a task response dispatcher component, which constructs said task responses from said service responses and returns them to said source agents via said network.

12. The system of claim 11, wherein said performer agent is a client to its performer, which is an automated application or server.

13. The system of claim 11, wherein said performer agent is a worklist which is a persistent store of arriving task requests, and its performer is a human or application accessing it via a pull client application resident on a connected computing device.

14. The system of claim 13, wherein said pull client application comprises a user interface, comprising:

a. means for being notified by the performer agent about the arrival of new task requests on the worklist;

b. means for explicitly refreshing the content of the worklist;

c. means for downloading specific task requests from the performer agent.

15. The system of claim 11, wherein said performer agent is a push server that pushes arriving task requests to its performer via a push client application residing on a connected computing device.

16. The system of claim 11, wherein a performer agent further can comprise one or more of the group consisting of:

a. means for enabling said source agents on said network to request a listing of the capabilities and services available on a performer;

b. means for enabling authorized source agents on said network to request that a task currently in progress be aborted;

c. means for enabling authorized source agents on said network to request that a task currently in progress be suspended;

d. means for enabling authorized source agents on said network to request that a task currently in suspension be resumed;

e. means for enabling authorized source agents on said network to request the status of a task request;

f. means for enabling authorized source agents on said network to request the current workload on the performer agent.

17. The system of claim 1, further comprising a directory means comprising:

a. means for registering location information of said performer agents;

b. means for registering service capabilities of said performer agents;

c. means for mediating between service requirements of said source agents and the service capabilities of said performer agents;

d. means for enabling said source agents to retrieve location information of matching performer agents subsequent to mediation;

e. means for unregistering location information of said performer agents.

18. The system of claim 13, further comprising worklist servers on which said worklists are created and managed on said network.

19. The system of claim 1, wherein said network comprises:

a. a network means, comprising one or more of the group consisting of a LAN, WAN, Internet, Intranet, Extranet and wireless network;

b. a communication means, comprising one or more of the group consisting of electronic mail, TCP/IP sockets, RPC, HTTP, and IIOP.

20. The system of claim 11, wherein a performer agent further comprises means for acting as an intermediary, role, or group, by receiving said task requests from said source agents and dispatching said task requests to said performer agents.

21. The system of claim 13, further comprising means for enabling multiple performers to share a single performer agent which is a worklist, thus providing the functionality of a shared worklist.

22. The system of claim 10, further comprising means for enabling multiple sources to re-use a single source agent, comprising:

a. source identifiers that can be used by said source agent to resolve each source;

b. a mapping of each task response to its corresponding activity and said source by the source agent.

23. The system of claim 1, further comprising a workflow specification environment, comprising:

a. means for enabling a human workflow designer to create a workflow script by graphical specification as a template and store it in a workflow template repository;

b. means for enabling a human workflow designer/administrator to create an instance of a source and its source agent by instantiating a template from the workflow template repository;

c. means for enabling a human workflow designer/administrator to monitor the execution of said source, and modify the specification graphically.

24. A computer system for peer-to-peer workflow operation between workflow systems, comprising:

a. sources, representing instances of executing workflows that represent processes such as data and control flow graphs, sets of rules, or other custom programs;

b. activities, representing units of work generated within said sources;

c. performers, representing instances of workflow systems;

d. tasks, representing units of work executing within said performers in response to service requests, such that each task is uniquely associated with an activity within a source;

e. source agents that act as proxies of said sources;

f. performer agents that act as proxies of said performers;

g. task request and task response messages, used to transmit service requests and service responses between said source agents and performer agents;

h. a continuously available network to which said source agents and said performer agents are always connected.

25. The system of claim 24, wherein each performer comprises:

a. a connection to its own unique performer agent;

b. a local repository of workflow script templates;

c. means for receiving execution requests for workflow script execution via its performer agent;

d. means for creating said workflow scripts from said local repository in response to said execution requests;

e. means for execution of said workflow scripts on a local workflow execution environment;

f. means for returning the results of said workflow script execution to said sources.

26. The system of claim 24, wherein each source comprises:

a. a connection to its own unique source agent;

b. means for generating requests for workflow script executions on remote performers;

c. means for receiving the results of workflow script executions on said remote performers, via its source agent.

27. The system of claim 24, wherein said task request represents a service request to a performer agent, comprising:

a. activity ID, a unique, unchangeable identifier assigned by an originator source agent that identifies a specific activity in said source that caused the service request;

b. source agent reference, a unique reference to said originator source agent of the activity, which can be used by a performer agent to identify the originator source agent;

c. task details, which contain a request for a workflow script template available in the local repository of said performer to be instantiated and executed on said performer, and input data required for the creation and execution of said workflow script.

28. The system of claim 27, wherein said task request further can comprise one or more of the group consisting of:

a. status information of said task request;

b. annotations that provide an informal description of said task request;

c. information about priority of said task request;

d. information about deadlines on said task request;

e. a detailed history or log of the routing of said task request.

29. The system of claim 28, wherein task details further comprise the workflow script template that is to be instantiated and executed on said performer.

30. The system of claim 29, wherein task details further comprise a portable workflow execution environment that is required to execute said workflow script downloaded on said performer.

31. The system of claim 24, wherein said task response represents a service response to a source agent, comprising:

a. activity ID, which uniquely identifies an activity in said source to which the response corresponds;

b. source agent reference, a unique reference to said source agent that generated the task request;

c. performer agent reference, a unique reference to said performer agent which handled the task request;

d. task ID, a unique identifier of the task executed on said performer;

e. task result details, which contain information about the exact type of task executed on the performer and the outputs generated.

32. The system of claim 31, wherein said task response further can comprise one or more of the group consisting of:

a. annotations that provide an informal description of said task response;

b. status information which describes if the task was completed correctly, failed, or was forwarded;

c. a detailed history or log of the routing of said task response.

33. The system of claim 24, wherein each source agent comprises:

a. a continuous connection to said network;

b. a task response handler component, for receiving and handling said task responses over said network on behalf of its source;

c. a task request dispatcher component, which generates said task requests from said service requests and dispatches them to said performer agents via said network.

34. The system of claim 24, wherein each performer agent comprises:

a. a continuous connection to said network

b. a task request handler component, for receiving and handling task requests for its performer;

c. a task response dispatcher component, which constructs said task responses from said service responses and returns the task responses to the source agents via said network.

35. The system of claim 33, wherein a single source agent can be utilized by multiple sources, and comprising:

a. means for said task request dispatcher to receive service requests from multiple sources and post them as task requests to appropriate performer agents;

b. means for said task response handler to return service responses to appropriate sources based on the origin of the service request.

36. The system of claim 24, wherein said network comprises:

a. a network means, comprising one or more of the group consisting of a LAN, WAN, Internet, Intranet, Extranet and wireless network;

b. a communication means, comprising one or more of the group consisting of electronic mail, TCP/IP sockets, RPC, HTTP and IIOP.

37. A computer system for workflow operation with disconnected or occasionally connected components, comprising:

a. sources, representing heterogeneous service requestors, capable of generating service requests;

b. activities, representing units of work generated within said sources;

c. performers, representing heterogeneous service providers, capable of performing said service requests and generating service responses;

d. tasks, representing units of work executing within said performers in response to service requests, such that each task is uniquely associated with an activity within a source;

e. source agents that act as proxies of said sources;

f. performer agents that act as proxies of said performers;

g. task request and task response messages, used to transmit service requests and service responses between said source agents and performer agents;

h. a continuously available network to which said source agents and said performer agents are always connected;

i. an occasionally available source-side network between said source and said source agent;

j. an occasionally available performer-side network between said performer and said performer agent.

38. The system of claim 37, wherein each source comprises:

a. means for generating and issuing said service requests for said activities;

b. means for receiving said service responses;

c. a connection to its own unique source agent;

d. a mechanism for connecting with and disconnecting from its own source agent over said source-side network.

39. The system of claim 37, wherein each performer comprises:

a. means for receiving said service requests;

b. means for performing service requests as said tasks;

c. means for generating service responses;

d. a connection to its own unique performer agent;

e. a mechanism for connecting with and disconnecting from its own performer agent over said performer-side network.

40. The system of claim 37, wherein said task request represents a service request to a performer agent, comprising:

a. activity ID, a unique, unchangeable identifier assigned by an originator source agent that identifies a specific activity in said source that caused the service request;

b. source agent reference, a unique reference to the originator source agent of the activity, which can be used by a performer agent to identify the originator source agent;

c. task details, which contain information about the exact type of task to be created on the performer and the input parameters required to create and start the task.

41. The system of claim 40, wherein said task request further can comprise one or more of the group consisting of:

a. status information of said task request;

b. annotations that provide an informal description of said task request;

c. information about priority of said task request;

d. information about deadlines on said task request;

e. a detailed history or log of the routing of said task request.

42. The system of claim 37, wherein said task response represents a service response to a source agent, comprising:

a. activity ID, which uniquely identifies an activity in said source to which the response corresponds;

b. source agent reference, a unique reference to said source agent that generated the task request;

c. performer agent reference, a unique reference to said performer agent which handled the task request;

d. task ID, a unique identifier of the task executed on said performer;

e. task result details, which contain information about the exact type of task executed on the performer and the outputs generated on the task.

43. The system of claim 42, wherein said task response further can comprise one or more of the group consisting of:

a. annotations that provide an informal description of said task response;

b. status information which describes if the task was completed correctly, failed, or was forwarded;

c. a detailed history or log of the routing of said task response.

44. The system of claim 37, wherein each source agent comprises:

a. a continuous connection to said network;

b. means for potential disconnected operation from its source, comprising,

i. means for accepting connection requests from said associated source via said source-side network,

ii. means for accepting disconnect requests from its source,

iii. a task response queue component, for receiving and temporarily storing said task responses over said network,

iv. a task response handler component, for receiving and handling said task responses over said network on behalf of its source, and returning them to said source when it is connected,

v. a task request dispatcher component, which generates said task requests from said service requests and dispatches them to said performer agents via said network.

45. The system of claim 37, wherein each performer agent comprises:

a. a continuous connection to said network;

b. means for potential disconnected operation from its performer, comprising,

i. means for accepting connection requests from said performer via said performer-side network,

ii. means for accepting disconnect requests from said performer,

iii. a task request queue component, for an authorized source agent to send a task request over said network and for temporarily storing the incoming task requests,

iv. a task request handler component, for receiving and handling task requests for its said performer,

v. a task response dispatcher component, which constructs said task responses from said service responses and returns them to the originating source agent via said network.

46. The system of claim 37, wherein said network comprises:

a. a network means, comprising one or more of the group consisting of a LAN, WAN, Internet, Intranet, Extranet and wireless network;

b. a communication means, comprising one or more of the group consisting of electronic mail, TCP/IP sockets, RPC, HTTP and IIOP.

47. The system of claim 37, wherein said source-side network comprises:

a. a network means, comprising one or more of the group consisting of a LAN, WAN, Internet, Intranet, Extranet and wireless network;

b. a communication means such as electronic mail, TCP/IP sockets, RPC, HTTP and IIOP.

48. The system of claim 37, wherein said performer-side network comprises:

a. a network means, comprising one or more of the group consisting of a LAN, WAN, Internet, Intranet, Extranet and wireless network;

b. a communication means, comprising one or more of the group consisting of electronic mail, TCP/IP sockets, RPC, HTTP and IIOP.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention is related to workflow management systems, and in particular to a distributed computer system for workflow execution across a network infrastructure.

Workflow systems are essential to organizations that need to automate their business processes. Workflow systems allow organizations to specify, execute, and monitor their business processes in an efficient manner over enterprise-level networks. This has the net effect of improved throughput of processes, better utilization of organizational resources, and improved tracking of processes.

Many workflow systems are commercially available. Even though many workflow systems exist, interoperability across these systems is a technical problem. The systems are monolithic and proprietary, and workflows cannot extend beyond a single workflow system. To solve this problem, the Workflow Management coalition (WfMC), an industry-wide consortium of major workflow system vendors, has defined a standard workflow architecture, described in the document "The Workflow Reference Model" ›WFMC-TC-1003!. The model defines the major components of a workflow system and a set of interfaces between workflow system components. The major components it describes are a Process Definition or Builder Tool to capture business process logic in a high-level notation; a Workflow Server that acts as the nerve center of the workflow system; Workflow Clients that are used by users to view and interact with the contents of their worklists; Workflow Applications that are invoked by the workflow server to perform automated activities; and finally, Administration & Monitoring Tools used to administer the execution and monitor the status of work flowing through the workflow system using Audit Data.

The WfMC Reference Model also defines interfaces between these components. Interface 1 (builder-server interface) defines a common process definition format for the interchange of static process specifications between a Process Definition Tool and a Workflow Server ›WFMC-WG01-1000!. Interface 2 (client-server interface) defines an API that provides a complete range of interactions between a Workflow Client and a Workflow Server ›WFMC-TC-1009!. These include worklist interaction, query and control of workflow processes and their activities, and administrative functions. Interface 3 (application invocation interface) is not currently available, but is intended to describe how applications are invoked. Interface 4 (server-server interface) defines an API that describes the interactions between two Workflow Servers ›WFMC-TC-1012!. Interactions include initiation, query and control of workflow processes and their activities, and administrative functions. Finally, Interface 5 (monitor-server interface) defines audit data for administrating and monitoring a Workflow Server ›WFMC-TC-1015!.

The WfMC standard has significant weaknesses that make it unsuitable for a heterogeneous, distributed computing environment. Specifically, the design of current workflow systems based on the WfMC standard makes them inappropriate for workflow execution across wide area networks such as the Internet, where scalability, flexibility, and interoperability across heterogeneous systems and networks is the needed. The weaknesses of the WfMC architecture stem from the monolithic nature of the workflow server, which is responsible for process execution, management of the Staff Directory, binding of activities to participants and distribution of work items to appropriate workflow participants (performing role and group resolution as necessary), worklist management for all workflow participants who receive work items from the server, and application invocation. This leads to the following problems:

1. Participants cannot be shared by multiple workflow systems: Since participant worklists are hidden within the workflow server and are not externally addressable, processes are only able to send work items to worklists that reside in the same workflow server. Thus, in order for a participant to participate in multiple workflows running on heterogeneous servers, an identity and a worklist must be maintained separately inside each workflow server the client wishes to receive work from. In addition, the workflow client must now manage multiple client connections to each of these workflow servers in order to receive work. This overloads the client application with unnecessary functionality; whenever a participant wishes to participate in a large number of workflow applications from different servers, the participant has to connect to each server and explicitly `pull` work from it. Because of the complexity in the client, this architecture is not suitable for workflow participation using thin clients and lightweight, portable computing devices such as personal digital assistants. From a distributed design perspective, this is an unscalable solution.

2. Participants cannot work in disconnected mode: Even though work items are logically owned by the workflow participants, the WfMC architecture assigns the task of managing work items to the workflow server. Consequently, the participant interacts with a remotely located work item, and each interaction between the participant and an associated work item results in a remote access (usually a Remote Procedure Call (RPC)). While this design has potential benefits when work items must implement some server-side functionality, it imposes severe constraints on disconnected workflow participation, since the network must be constantly available for the participant to do any work. The WfMC standard also involves workflow servers in client-side application invocation, via the proposed Interface 3. For example, if a participant needs to invoke a local application such as a word processor as part of a work item, the workflow server that owns the work item must invoke the word processor on the participant's behalf on the participant's machine via the proposed Interface 3. The consequence of this intrusive approach is that participants can work only when directly connected to the workflow server-they cannot operate in a disconnected mode.

3. The execution of work is not transparent: The WfMC architecture makes clear distinctions between how the server assigns work items to human participants, how it invokes workflow scripts on other servers, and how it manages application invocation. For the first, it assigns work items to its internal worklist and expects the participant to explicitly `pull` the contents of the worklist using Interface 2. For the second, it explicitly `pushes` a request to another server using Interface 4. For the third, it performs a synchronous procedure call using Interface 3.

Treating work in three different ways leads the server to early judgments about the actual implementation of an activity. This leads to a loss of transparency, and makes it difficult for a work item at the level of the requesting server to be dynamically bound and implemented as a workflow by a participant domain at execution time.

U.S. Pat. No. 5,530,861 describes a task management method that allows humans to receive and manage tasks from different sources such as other individuals, process engines, and application agents. The task management scheme assumes that tasks are always performed by humans, and provides a standard way in which a human user can interact with tasks assigned to the user. The method does not deal with interoperability of workflow systems. It also does not deal with distributed workflow execution with respect to how tasks can be treated uniformly across application invocations, workflow script executions on heterogeneous systems, and human participants across a network. It does not deal with issues of disconnected operation, and recursive, dynamic workflow execution.

SUMMARY OF THE INVENTION

The present invention deals with the use of a distributed computer system that spans local-area networks (LANs), wide-area networks (WANs), and global networks and provides a homogeneous view of heterogeneous workflow systems and components. The system is called a distributed workflow system. As a result of the present invention, workflow scripts or applications can be executed in a scalable manner using components scattered across the distributed workflow system. The present invention facilitates peer-to-peer interactions between multiple autonomous and proprietary workflow systems. The present invention also facilitates disconnected or occasionally connected operation of workflow components.

The present invention achieves the following desirable features:

1. Workflows executing on different workflow servers can reuse the same service providers, components, or applications on the network. Workflow participants can receive work from and interoperate with heterogeneous, proprietary workflow servers without using proprietary or dedicated workflow clients.

2. Human workflow participants need to interact with a single Worklist, which is addressable by different workflow servers, and receives all work on behalf of the participant.

3. Workflow-enabled applications and components can be developed and installed by third-parties on the network, and these applications and components can be utilized by and interoperate with multiple workflow servers.

4. Workflow servers can use a wide range of internal workflow execution mechanisms, ranging from rule-based workflow interpretation to control-flow based graph interpretation to hardwired workflow applications or scripts, and operate seamlessly within the distributed workflow system.

5. Heterogeneous and proprietary workflow servers installed in different organizations can interoperate by triggering pre-installed workflow applications on each other, or by downloading workflow applications to each other on demand.

6. Workflow participants, designers, and administrators can participate in workflows even when they are disconnected or occasionally connected to the network.

7. Workflow servers are treated like any other workflow participant; hence, work assigned to a participant may be dynamically refined and implemented as an independent workflow. This allows dynamic workflow decomposition, or late-binding of work to workflows.

These improvements are accomplished by providing:

1. A workflow abstraction called Source that represents a workflow or service requestor that generates a sequence of service requests as part of a process execution.

2. A workflow abstraction called Performer that represents a service provider (human, application, or workflow server) that provides services in response to service requests generated by Sources.

3. A workflow component called Source Agent that acts as a proxy to a Source. The Source Agent is always connected to the network and represents the Source in its interactions with Performers. The Source may be occasionally connected to its Source Agent.

4. A workflow component called Performer Agent that acts as a proxy to a Performer. The Performer Agent is always connected to the network and represents the Performer in its interactions with Sources. The Performer may be occasionally connected to its Performer Agent.

5. A workflow message called Task Request that represents a service request sent to a Performer; and a workflow message called Task Response returned to a Source as a service response.

6. A continuously available Network that allows Source Agents and Performer Agents to communicate with each other.

In addition, the present invention provides a mechanism for disconnected workflow participation. An occasionally available Source-side network allows a Source to connect and disconnect from its Source Agent. Similarly, a Performer-side network allows a Performer to connect and disconnect from its Performer Agent.

The present invention provides a mechanism for heterogeneous, autonomous, workflow systems or servers to execute on the same distributed workflow system. Sources may be workflow scripts executing on a wide variety of workflow systems, or they may be hardwired process-based programs.

The subject invention provides a mechanism for heterogeneous service providers or Performers to present a common interface to the Sources in the distributed workflow system. Performers may be humans participants, or heterogeneous programs and applications, or workflow servers that can execute other workflows.

The present invention provides mechanisms for Performer Agents and Performers to interact in different ways. The most common interaction occurs when a Performer Agent acts as a Worklist (or inbox) for its Performer, which acts as a Pull client. Since the Performer Agent is addressable on the network, various Sources can send work to the Performer via its Performer Agent, without the Performer having to pull work from each of them. Another interaction mechanism is when a Performer Agent acts as a client to its Performer, which is a program or application. Another interaction mechanism allows the Performer Agent to act as Push Server for the Performer.

The present invention provides a mechanism for heterogeneous workflow servers to implement Source and Performer interfaces appropriately and thus engage in peer-to-peer workflow operation. The peer-to-peer operation allows workflow servers to both receive work from and assign work to other workflow servers.

The present invention provides mec