Claims
- 1. In a messaging system, a method of defining a route whereby an electronic message is to be sequentially distributed to a plurality of recipients in series, one after the other, the method comprising the steps of:
generating a routing map defining a series of operations that, when executed, result in the electronic message being sequentially distributed to the plurality of recipients in a series specified by the routing map, one after the other in a designated order; and associating the routing map with an executable script, wherein the executable script, when executed, performs one or more of the series of operations defined by the routing map.
- 2. A method as defined in claim 1, further comprising the step of associating the routing map with a routing engine, wherein the routing engine is capable of performing another of the series of operations defined by the routing map.
- 3. A method as defined in claim 1, wherein the step of generating a routing map further comprises the step of selecting the plurality of recipients of the electronic message..
- 4. A method as defined in claim 1, wherein the step of associating the routing map with an executable script further comprises the step of composing the executable script.
- 5. A method as defined in claim 1, wherein the step of associating the routing map with an executable script further comprises the step of using an existing executable script.
- 6. A method as defined in claim 1, wherein the routing map comprises a plurality of entries, each representing a state at which a process of routing the message can reside, each of the entries referencing one of the series of operations.
- 7. A method as defined in claim 1, further comprising the step of distributing a first electronic message through the defined route, including:
monitoring the distribution of the first electronic message by advancing the routing map from a first state to a second state, wherein the second state corresponds to one of the series of operations; and in response to the second state, executing the script so as to distribute the first electronic message to a recipient.
- 8. A method as defined in claim 7, further comprising, after distributing the first electronic message to a recipient, the step of redefining the route by modifying the executable script without modifying the routing map.
- 9. A method as defined in claim 8, further comprising the step of distributing a second electronic message through the redefined route.
- 10. A method as defined in claim 7, further comprising, after distributing the first electronic message to a recipient, the step of redefining the route by modifying the routing map without modifying the executable script.
- 11. A method as defined in claim 10, wherein modifying the routing map comprises the steps of:
dissociating the routing map from the executable script; and associating the routing map with another executable script.
- 12. A method as defined in claim 10, further comprising the step of distributing a second electronic message through the redefined route.
- 13. A method as defined in claim 7, wherein advancing the routing map from a first state to a second state is conducted in response to an event generated by an event service that monitors activity of the messaging system.
- 14. A method as defined in claim 1, wherein the messaging system includes a server system, one or more clients, and communication links connecting the server system and the one or more clients, the method further comprising the step of storing the routing map and the executable script at the server system.
- 15. A method as defined in claim 14, further comprising the step of distributing a first electronic message through the defined route according to a hub and spoke model, wherein the server system represents the hub and the communication links represent spokes, the step of distributing the first electronic message comprising the steps of:
transmitting the first electronic message from the server system to a first client of the one or more clients without sending the routing map or the executable script to the first client; receiving at the server system a response from the first client to the electronic message; and transmitting the first electronic message from the server system to a second client of the one or more clients without sending the routing map or the executable script to the second client.
- 16. A method as defined in claim 15, further comprising the step of evaluating the response at the server system by executing the script.
- 17. In a messaging system including a server system and a plurality of client systems, wherein the server system has an event service providing events in response to activity of the messaging system, a method of defining a route whereby an electronic message is to be sequentially distributed to a plurality of recipients in series, one after the other, the method comprising the steps of:
selecting a sequence of recipients who are to receive the electronic message in series, one after the other in a designated order; generating a routing map defining a series of operations that, when executed, result in the electronic message being sequentially distributed to the recipients in series, one after the other in the designated order; associating the routing map with an executable script, wherein the executable script, when executed, performs a first operation of the series of operations defined by the routing map; and associating the routing map with a routing engine, wherein the routing engine is capable of performing a second operation of the series of operations defined by the routing map.
- 18. A method as defined in claim 17, further comprising the steps of:
associating a second electronic message with the routing map to create a second process instance; and assigning a routing identifier with the second process instance.
- 19. A method as defined in claim 17, wherein the routing map comprises a plurality of entries, wherein each of the entries includes:
a first data field containing an operation identifier that uniquely identifies the particular entry; a second data field containing data representing one of the series of operations; and a third data field containing an argument, wherein:
if said one of the series of operations is to be performed by the executable script, the argument is passed to the executable script when the routing map is executed; and if said one of the series of operations is to be performed by the routing engine, the argument is passed to the routing engine when the routing map is executed.
- 20. In a server included in a messaging system, wherein the messaging system further includes a plurality of clients and wherein the server has an event service providing events in response to activity of the messaging system, a method for sequentially distributing an electronic message to two or more recipients in series, one after the other, the method comprising the steps of:
associating the electronic message with a routing map defining routing logic by which the electronic message is to be sequentially distributed to the two or more recipients in series, one after the other in a designated order; in response to a first event provided by the event service, executing a first script associated with the routing map, so as to transmit the electronic message to a first recipient of the two or more recipients; and in response to a second event provided by the event service, executing a second script associated with the routing map, so as to transmit the electronic message to a second recipient of the two or more recipients.
- 21. A method as defined in claim 20, wherein the routing logic comprises a series of operations, each operation being associated with an executable script stored on the server system.
- 22. A method as defined in claim 20, further comprising the step of associating the routing map with an additional electronic message having a unique routing identifier, wherein the additional electronic message is sequentially distributed to the two or more recipients in series, one after the other in the designated order.
- 23. A method as defined in claim 20, further comprising the step of managing a state transition of the routing table using the routing engine.
- 24. In a messaging system including a server system, a method for sequentially distributing an electronic message to a plurality of recipients in series, one after the other in a designated order, comprising the steps of:
at the server system, associating routing logic with an electronic message folder, wherein the routing logic defines a designated order by which the electronic message can be sequentially distributed to the recipients in series, one after the other in the designated order; and in response to the electronic message being placed in the electronic message folder, executing the routing logic, wherein the routing logic sequentially transmits the electronic message to the recipients in series, one after the other in the designated order.
- 25. A method as defined in claim 24, wherein the step of executing the routing logic further comprises the steps of:
transmitting the electronic message to a first recipient; receiving at the server system a response to the electronic message from the first recipient; and upon receiving a response from the first recipient at the server system, transmitting the electronic message to a second recipient.
- 26. A method as defined in claim 24, wherein the step of associating routing logic with an electronic message folder comprises the step of storing the routing logic at the server system.
- 27. A method as defined in claim 24, further comprising the step of placing additional electronic messages in the folder, wherein each additional electronic message is sequentially distributed to the plurality of recipients in series, one after the other in the designated order.
- 28. In a messaging system including a server system and two or more clients connected to the server system, a method for sequentially distributing an electronic message to the two or more clients in series, one after the other in a designated order, comprising the steps of:
storing, at the server system, routing logic for distributing the electronic message in series, one after the other in the designated order; and distributing the electronic message to the two or more recipients according to the routing logic using a hub and spoke model, wherein the server system represents the hub and communication links between the server system and the two or more clients represent spokes, the step of distributing the electronic message comprising the steps of:
transmitting the electronic message from the server system to a first client of the two or more clients without the routing logic being sent to the first client; receiving at the server system a response from the first client to the electronic message; and after receiving the response from the first client, transmitting the electronic message from the server system to a second client of the two or more clients without the routing logic being sent to the second client.
- 29. A method as defined in claim 28, further comprising the steps of:
associating the electronic message with the routing logic; and indicating, by a user of the messaging system, that the electronic message is to be sequentially distributed to the two or more clients in series, one after the other in the designated order.
- 30. A method as defined in claim 28, wherein the step of storing routing logic comprises the step of:
encoding a first portion of the routing logic in a routing map; and encoding a second portion of the routing logic in a routing script.
- 31. A method as defined in claim 30, wherein the step of distributing the electronic message comprises the steps of:
executing the first portion of the routing logic in the routing map, wherein the first portion instructs the server system to execute the routing script; and in response to the execution of the first portion of the routing logic, executing the routing script.
- 32. In a messaging system including a server system, a computer program product for implementing a method for defining a route for sequentially distributing an electronic message to two or more recipients in series, one after the other in a designated order, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method wherein the computer-executable instructions comprise:
program code means for selecting a sequence of two or more recipients who are to receive the electronic message in series, one after the other in the designated order; a routing map defining a series of operations that, when executed, result in the electronic message being sequentially distributed to the two or more recipients in series, one after the other in the designated order; an executable script associated with the routing map, wherein the executable script, when executed, performs a first operation of the series of operations; and a routing engine that is capable of performing a second operation of the series of operations.
- 33. A computer program product as defined in claim 32, wherein the computer executable instructions further comprise program code means for sequentially distributing additional electronic messages in series, one after the other in the designated order.
- 34. A computer program product as defined in claim 32, wherein the computer executable instructions further comprise program code means for managing state transitions of the routing map.
- 35. A computer program product as defined in claim 32, wherein the program code means for selecting a sequence of two or more recipients comprises an authoring tool for assisting a user of the messaging system in defining the route.
- 36. A computer program product as defined in claim 27, wherein the authoring tool comprises program code means for generating the routing map in response to the defined route.
- 37. A computer program product as defined in claim 32, wherein the program code means for selecting the sequence of two or more recipients comprises an electronic message folder displayed to a user of the messaging system, wherein an electronic message placed in the folder is associated with the route.
- 38. In a server system included in a messaging system, wherein the messaging system further includes a plurality of client systems and wherein the server system has an event service generating events in response to activity of the messaging system, a computer readable medium having computer-executable components comprising:
a plurality of electronic messaging folders, wherein each electronic messaging folder contains a routing map, the routing map having routing logic defining a route by which an electronic message can be sequentially distributed to two or more recipients in series, one after the other in a designated order; an executable script stored on the server system, wherein the executable script is associated with the routing map and stored separately from the routing map; and a routing engine configured on a per folder basis, the routing engine being capable of controlling the execution of the routing logic of each routing map in each folder in response to events generated by the event service, whereby the routing logic, when executed, sequentially distributes the electronic message to the two or more recipients in series, one after the other in the designated order.
- 39. A computer-readable medium as defined in claim 38, wherein the computer-executable components further comprise a set of routing objects that assist the routing engine in the execution of the routing logic.
- 40. In a server system included in a messaging system, wherein the messaging system has an event service generating events in response to activity of the messaging system, a method for executing script in a stateful manner to accomplish sequential distribution of an electronic message to a plurality of recipients, one after the other in a designated order, comprising the steps of:
storing a routing map at the server system, wherein the routing map defines a series of operations that, when executed, result in the electronic message being sequentially distributed to the plurality of recipients in series, one after the other in the designated order, each operation being representative of a state and at least some of the operations being implemented in script; in response to a first event generated by the event service;
transitioning the routing map to a first state; and executing a first script in which a first operation of the series of operations is implemented; and in response to a second event generated by the event service;
transitioning the routing map to a second state; and executing a second script in which a second operation of the series of operations is implemented.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. application Ser. No. 09/280,919 filed Mar. 29, 1999, claims the benefit of that application, and incorporates that application herein by reference in its entirety.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09280919 |
Mar 1999 |
US |
Child |
10618121 |
Jul 2003 |
US |