Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20050137902 A1
Publication typeApplication
Application numberUS 10/779,934
Publication dateJun 23, 2005
Filing dateFeb 17, 2004
Priority dateDec 22, 2003
Also published asUS7421696
Publication number10779934, 779934, US 2005/0137902 A1, US 2005/137902 A1, US 20050137902 A1, US 20050137902A1, US 2005137902 A1, US 2005137902A1, US-A1-20050137902, US-A1-2005137902, US2005/0137902A1, US2005/137902A1, US20050137902 A1, US20050137902A1, US2005137902 A1, US2005137902A1
InventorsSimon Bowie-Britton
Original AssigneeSimon Bowie-Britton
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Methods and systems for managing successful completion of a network of processes
US 20050137902 A1
Abstract
The present invention involves methods and systems for managing successful completion of a network of processes. The network of processes can be represented as a graph. In this representation, the nodes of the graph represent the processes, and the edges of the graph represent events associated with the processes. Processing starts at the root node, and is based on the result of an initially unknown graph. When an event is to be produced or consumed, a message to that effect is transmitted to a component called a Q-Manager. Using the messages, which are received in event order, the Q-Manager keeps track of the state of the graph, and determines when successful completion of the processing has occurred. Once this occurs, the Q-Manager sends a notification indicating completion of the network.
Images(4)
Previous page
Next page
Claims(17)
1. A method for managing successful completion of a network of processes, comprising the steps of:
(a) receiving a message indicative of either creation or deletion of one of the processes;
(b) updating a list of active processes in the network based on the received message;
(c) repeating steps (a) and (b) until the list is empty; and
(d) sending a notification message indicating completion of the network of processes.
2. The method of claim 1, wherein the notification message is sent to an initiating process.
3. The method of claim 2, wherein the initiating process is the root process of the network.
4. The method of claim 1, wherein the network is represented as a directed acyclic graph.
5. The method of claim 4, wherein the processes are represented as nodes of the graph.
6. The method of claim 5, wherein the events are represented as edges of the graph.
7. The method of claim 1, wherein result information is written to persistent storage after the notification message is received.
8. The method of claim 1, wherein the step of updating the list includes adding to the list information identifying a process to be created.
9. The method of claim 1, wherein the step of updating the list includes deleting from the list information identifying a process to be deleted.
10. The method of claim 1, wherein at least one of the processes is executed in a thread different from a thread used to execute another of the processes.
11. The method of claim 1, wherein the received messages are received in event order.
12. A system for managing successful completion of a network of processes, comprising:
a list of active processes;
a Q-Manager for keeping track of the state of the network of processes, wherein the Q-Manager updates the list of active processes to reflect the state of the network of processes, and sends a notification message when processing is determined to have completed.
13. The system of claim 12, wherein processing is determined to have completed when the list of active processes is empty.
14. The system of claim 12, wherein the notification message is sent to an initiating process.
15. The system of claim 12, wherein the Q-Manager receives messages indicating whether events are created or consumed.
16. The system of claim 15, wherein the received messages are received in event order.
17. A program storage device readable by a machine, tangibly embodying a program of instructions executable on the machine to perform method steps for managing successful completion of a network of processes, the method steps comprising:
(a) receiving a message indicative of either creation or deletion of one of the processes;
(b) updating a list of active processes in the network based on the received message;
(c) repeating steps (a) and (b) until the list is empty; and
(d) sending a notification message indicating completion of the network of processes.
Description
    CROSS REFERENCE TO RELATED APPLICATIONS
  • [0001]
    This application claims the benefit of U.S. Provisional Application Ser. No. 60/531,741, filed by Simon Bowie-Briton on Dec. 22, 2003 and entitled “Methods and Systems For Managing Successful Completion of a Network of Processes”, which is incorporated herein by reference.
  • FIELD OF THE INVENTION
  • [0002]
    The present invention relates generally to data processing systems, and, more particularly, to methods and systems for managing successful completion of a network of processes.
  • BACKGROUND OF THE INVENTION
  • [0003]
    A well known difficulty in data processing involves the occurrence of a system failure while a transaction is being processed. For example, a transaction may involve the steps necessary for transferring $100 from a customer's savings account to the customer's checking account. Suppose the $100 was deducted from the customer's savings account, then a system failure occurred before the amount was added to the customer's checking account. The customer's account information would be in error.
  • [0004]
    There are various conventional techniques to deal with this problem. A very common solution is to employ what is known as a two-phase commit. In such a protocol, the transaction is designated by a “Begin Transaction” operation. The transaction ends with either a “Commit” operation or a “Rollback” operation. The Commit is used to signal a successful completion of the transaction. The Rollback is used to signal that the transaction was unsuccessful. When a Commit is received, usually a database management system will then write the results to persistent storage (e.g., to DASD).
  • [0005]
    Although the two-phase commit is often useful, there are certain drawbacks. One major disadvantage is the overhead involved. Furthermore, this approach is not suitable in every processing environment. For instance, when executing a network of processes in which a graph of processing nodes can be dynamically changed, and where no a priori knowledge of the graph structure exists, it can be difficult using such an approach to even know when successful completion of the network has occurred.
  • SUMMARY OF THE INVENTION
  • [0006]
    The present invention involves methods and systems for managing successful completion of a network of processes. The network of processes can be represented as a graph. In this representation, the nodes of the graph represent the processes, and the edges of the graph represent events associated with the processes. Processing starts at the root node, and is based on the result of an initially unknown graph. When an event is to be produced or consumed, a message to that effect is transmitted to a component called a Q-Manager. Using the messages, which are received in event order, the Q-Manager keeps track of the state of the graph, and determines when successful completion of the processing has occurred. Once this occurs, the Q-Manager sends a notification indicating completion of the network.
  • [0007]
    These and other aspects, features and advantages of the present invention will become apparent from the following detailed description of preferred embodiments, which is to be read in connection with the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0008]
    FIG. 1 illustrates an exemplary Java network architecture;
  • [0009]
    FIG. 2 illustrates an exemplary Q-Manager for managing successful completion of a network of processes; and
  • [0010]
    FIG. 3 illustrates changes over time to an exemplary list of active processes for the network of FIG. 2.
  • DESCRIPTION OF PREFERRED EMBODIMENTS
  • [0011]
    It is to be understood that all program code and data used to implement the inventive methods reside on computer readable media and run on one or more computer systems including standard computer components and operating systems such as UNIX, as known in the art. Furthermore the invention can be implemented on a standalone computer, a client computer communicating with a server computer, or the software components necessary to implement the inventive methods can be distributed among computers on a network such as an intranet or on the Internet. Although the following examples describe the inventive methods implemented in the Java programming language, it is to be understood that the inventive methods can be performed by software written in other programming languages as known in the art, including, but not limited to, languages such as C, C++, or J2EE.
  • [0012]
    The present invention involves a method for managing successful completion of a network of processes. The network of processes may be represented as a graph, preferably a directed acyclic graph (DAG). In this representation, the nodes of the graph represent the processes, and the edges of the graph represent events associated with the processes. In general, the topology of the final graph will be unknown prior to completion. Processes may be created and deleted dynamically. Processing will successfully complete only when no more processes are to be created (when every process node is a leaf node). In general, an important aspect of the invention is to determine that processing has completed successfully, and to provide a notification message to this effect. Once the notification message is received, results may then be written to persistent storage.
  • [0013]
    FIG. 1 illustrates an exemplary Java network architecture 100. This network architecture will now be described with respect to a practical application, but it is to be appreciated that many other such applications are possible.
  • [0014]
    Consider a financial application in which a process X is used to effect purchase of shares of stock. Suppose that a market order for 5,000 shares is received Process X might be used to purchase the shares on two different stock exchanges where the stock trades. Let us assume that the process X spawns a process A1 to purchase 3,000 shares on a first exchange and a process A2 to purchase 2,000 shares on a second exchange. Let us further assume that orders will be filled as shares become available. So, at different times t1 and t2, processes B1 and B2, might be created to purchase 1,000 and 2,000 shares, respectively. Likewise, at times t3 and t4, processes B3 and B4 might be created to each purchase 1,000 shares. Perhaps the process B3 is unable to purchase the full 1,000 shares as requested; process B3 might then spawn a process C1 to purchase the remainder. The resulting graph is shown in FIG. 1.
  • [0015]
    As can be seen from the above example, processing is based on the result of an initially unknown distributed graph (i.e., a network) of other processes. In addition, it is to be appreciated that one or more of these additional processes may be running in a different thread. Because of the nature of this processing environment, it is evident that determining successful completion of the network can be difficult. A reliable mechanism for determining that the network has finished is needed.
  • [0016]
    FIG. 2 illustrates an exemplary Q-Manager 250 for managing successful completion of a network of processes. The Q-Manager 250 records the processing state of the network. Once the network has completed processing, the Q-Manager 250 will notify the root node that the network has finished processing. To allow the Q-Manager 250 to work out when processing has completed, a process of “node discovery” is required throughout the processing of events in the network graph. This means that when the network reads (consumes) and then creates (produces) new events to other processes in the network, the Q-Manager 250 is told about these actions. The method also allows the graph of processing nodes to be dynamically changed and will adapt to changes as they happen. No a priori knowledge of the graph is ever required by the root node.
  • [0017]
    In operation, the Q-Manager 250 maintains a list of active processes (nodes), and the list is updated to reflect the current state of the network. That is, as events are produced, the Q-Manager 250 receives messages that the list is to be updated to reflect the creation of the new processes. Conversely, as events are consumed, the Q-Manager 250 receives messages that the list is to be updated to reflect the deletion of certain nodes in the list. It is to be appreciated that various types of data structures may be used to implement the list of active processes, including an array, a linked-list, a bitmap, a table, etc. For purposes of maintaining the list, it may be desirable to provide a unique identifier for each of the active processes in the list.
  • [0018]
    Initially, the Q-Manager 250 would receive a message indicating that a network was about to be created. The Q-Manager 250 would then allocate a new list for the network, and write an entry in the list for the root node (e.g., process A). FIG. 3 shows how the list of active processes for the network of FIG. 2 might change over time. At time to, the list would only include an entry for the process X. Preferably, messages received by the Q-Manager 250 would be sent by the processes themselves at or prior to production of events.
  • [0019]
    At time t1, the Q-Manager 250 might receive a message from the process X indicating the creation of a process A1. The list at time t1 would then be updated by adding an entry for process A1. Then, at time t2, the Q-Manager 250 might receive a message from the process X that a process A2 was to be created. The list would be updated by adding an entry for the process A2. Then, at time t3, the Q-Manager 250 might receive a message from the process X that the process X was completed. The list would be updated by deleting the entry for the process X.
  • [0020]
    Next, at time t4, the Q-Manager 250 might receive a message from the process A1 that the process A1 was completed. The list would then be updated by a deleting the entry for process A1. At time t5, the Q-Manager 250 might receive a message from the process A2 that a process B1 was to be created. The list would then be updated by adding an entry for the process B1. At time t6, the Q-Manager 250 might receive a message from the process A2 that a process B3 was to be created. The list would then be updated by adding an entry for the process B3. At time t7, the Q-Manager 250 might receive a message from the process A2 that a process B2 was to be created. The list would then be updated by adding an entry for the process B2.
  • [0021]
    Next, at time t8, the Q-Manager 250 might receive a message from the process A2 that the process A2 was completed. The list would then be updated by deleting the entry for process A2. At time t9, the Q-Manager 250 might receive a message from the process B1 that the process B1 was completed. The list would then be updated by deleting the entry for process B1. At time t10, the Q-Manager 250 might receive a message from the process B3 that the process B3 was completed. The list would then be updated by deleting the entry for process B3. Finally, at time t11, the Q-Manager 250 might receive a message from the process B2 that the process B2 was completed. The list would then be updated by deleting the entry for the process B2. At this point, the list would be empty.
  • [0022]
    Once the list becomes empty, the Q-Manager 250 then would then generate a message to signal successful completion of processing. Preferably, the Q-Manager 250 would send the notification message to the root node (process X). At this point, it would be safe to save result information to persistent storage (e.g., to a disk storage device).
  • [0023]
    Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be affected therein by one skilled in the art without departing from the scope or spirit of the invention.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3896266 *Jun 2, 1972Jul 22, 1975Nelson J WaterburyCredit and other security cards and card utilization systems therefore
US3938091 *Jul 19, 1974Feb 10, 1976Atalla Technovations CompanyPersonal verification system
US4321672 *Nov 26, 1979Mar 23, 1982Braun Edward LFinancial data processing system
US4567359 *May 24, 1984Jan 28, 1986Lockwood Lawrence BAutomatic information, goods and services dispensing system
US4633397 *Dec 24, 1984Dec 30, 1986Richard MaccoUnion member accounts management system
US4695880 *Jul 30, 1985Sep 22, 1987Postron Corp.Electronic information dissemination system
US4696491 *Jun 19, 1986Sep 29, 1987Stenger Barbara JInformation reference book and indexing system
US4713761 *Jul 18, 1985Dec 15, 1987Pitney Bowes, Inc.System for centralized processing of accounting and payment functions
US4725719 *Jul 21, 1986Feb 16, 1988First City National Bank Of AustinRestricted purpose, commercial, monetary regulation method
US4745468 *Mar 10, 1986May 17, 1988Kohorn H VonSystem for evaluation and recording of responses to broadcast transmissions
US4799156 *Oct 1, 1986Jan 17, 1989Strategic Processing CorporationInteractive market management system
US4823264 *May 27, 1986Apr 18, 1989Deming Gilbert RElectronic funds transfer system
US4882675 *Nov 26, 1984Nov 21, 1989Steven NichtbergerPaperless system for distributing, redeeming and clearing merchandise coupons
US4926255 *May 10, 1988May 15, 1990Kohorn H VonSystem for evaluation of response to broadcast transmissions
US4964043 *Jun 13, 1988Oct 16, 1990Galvin Thomas MSystem for visualizing, identifying and ordering gearing configurations
US4992940 *Mar 13, 1989Feb 12, 1991H-Renee, IncorporatedSystem and method for automated selection of equipment for purchase through input of user desired specifications
US5016270 *Apr 3, 1989May 14, 1991First Data Resources Inc.Expanded telephone data organization system
US5050207 *Nov 3, 1989Sep 17, 1991National Transaction Network, Inc.Portable automated teller machine
US5084816 *Dec 12, 1989Jan 28, 1992Bell Communications Research, Inc.Real time fault tolerant transaction processing system
US5117355 *Apr 18, 1990May 26, 1992Mccarthy Patrick DCentralized consumer cash valve accumulation system for multiple merchants
US5157717 *Feb 20, 1991Oct 20, 1992National Transaction Network, Inc.Portable automated teller machine
US5202826 *Nov 26, 1991Apr 13, 1993Mccarthy Patrick DCentralized consumer cash value accumulation system for multiple merchants
US5233564 *Jun 10, 1991Aug 3, 1993Kabushiki Kaisha ToshibaMultiport memory with test signal generating circuit controlling data transfer from ram port to sam port
US5265033 *Sep 23, 1991Nov 23, 1993Atm Communications International, Inc.ATM/POS based electronic mail system
US5287268 *Nov 16, 1992Feb 15, 1994Mccarthy Patrick DCentralized consumer cash value accumulation system for multiple merchants
US5297026 *Jan 3, 1992Mar 22, 1994Frank HoffmanSystem for promoting account activity
US5321841 *Jan 29, 1993Jun 14, 1994Digital Equipment CorporationSystem for determining the rights of object access for a server process by combining them with the rights of the client process
US5351186 *Jan 16, 1991Sep 27, 1994Bullock Communications, Inc.System and method for obtaining information concerning a product or a service
US5420405 *Feb 26, 1993May 30, 1995Chasek; Norman E.Secure, automated transaction system that supports an electronic currency operating in mixed debit & credit modes
US5446740 *Dec 17, 1993Aug 29, 1995Empire Blue Cross/Blue ShieldMethod of and apparatus for processing data at a remote workstation
US5450134 *Jan 12, 1993Sep 12, 1995Visual Automation Systems, Inc.Video facility management system for encoding and decoding video signals to facilitate identification of the video signals
US5465206 *Nov 1, 1993Nov 7, 1995Visa InternationalElectronic bill pay system
US5473143 *Oct 4, 1993Dec 5, 1995Atm Communications International, Inc.ATM/POS based electronic mail system
US5473732 *Feb 7, 1995Dec 5, 1995Chang; Hou-Mei H.Relational artificial intelligence system
US5511117 *Sep 26, 1994Apr 23, 1996Zazzera; Andre C.Integrated voice and business transaction reporting for telephone call centers
US5513102 *Jun 28, 1994Apr 30, 1996Auriemma Consulting Group, Inc.Data processing methods of implementing an award to an authorized user of a credit card
US5532920 *Dec 28, 1994Jul 2, 1996International Business Machines CorporationData processing system and method to enforce payment of royalties when copying softcopy books
US5537314 *Feb 23, 1995Jul 16, 1996First Marketrust Intl.Referral recognition system for an incentive award program
US5537473 *May 10, 1995Jul 16, 1996Amstrad Public Limited CompanyVideo recorder system
US5544086 *Sep 30, 1994Aug 6, 1996Electronic Payment Services, Inc.Information consolidation within a transaction network
US5551021 *Jul 25, 1994Aug 27, 1996Olympus Optical Co., Ltd.Image storing managing apparatus and method for retreiving and displaying merchandise and customer specific sales information
US5557334 *Feb 14, 1995Sep 17, 1996Visual Automation Systems, Inc.Apparatus for tracking the flow of video signals by incorporating patterns of machine readable signals which will appear at predetermined locations of a television picture
US5630173 *Dec 21, 1992May 13, 1997Apple Computer, Inc.Methods and apparatus for bus access arbitration of nodes organized into acyclic directed graph by cyclic token passing and alternatively propagating request to root node and grant signal to the child node
US5784557 *Dec 20, 1996Jul 21, 1998Apple Computer, Inc.Method and apparatus for transforming an arbitrary topology collection of nodes into an acyclic directed graph
US6009405 *Jul 29, 1997Dec 28, 1999International Business Machines CorporationEnsuring atomicity for a collection of transactional work items in a workflow management system
US6065009 *Jan 20, 1998May 16, 2000International Business Machines CorporationEvents as activities in process models of workflow management systems
US6108698 *Jul 29, 1998Aug 22, 2000Xerox CorporationNode-link data defining a graph and a tree within the graph
US6381609 *Jul 2, 1999Apr 30, 2002Lucent Technologies Inc.System and method for serializing lazy updates in a distributed database without requiring timestamps
US6502095 *Sep 9, 1999Dec 31, 2002Lucent Technologies Inc.Timestamp-based system and method for serializing lazy updates in a distributed database
US6539337 *Jun 15, 2000Mar 25, 2003Innovative Technology Licensing, LlcEmbedded diagnostic system and method
US20010011255 *Dec 7, 1998Aug 2, 2001Alan AsayReliance management for electronic transaction system
US20010049712 *Jun 1, 2001Dec 6, 2001International Business Machines CorporationArchiving in workflow management systems
US20010054003 *Apr 13, 2001Dec 20, 2001Emily ChienSystem and method for using loyalty points
US20020010599 *Jan 12, 2001Jan 24, 2002Levison Michael D.Method for targeting insurance policy incentive rewards
US20020059141 *Jun 7, 2001May 16, 2002The Chase Manhattan BankSystem and method for executing deposit transactions over the internet
US20020077978 *Jun 21, 2001Jun 20, 2002The Chase Manhattan BankMethod and system for processing internet payments
US20020116205 *May 4, 2001Aug 22, 2002Ankireddipally Lakshmi NarasimhaDistributed transaction processing system
US20020144101 *Mar 30, 2001Oct 3, 2002Hong WangCaching DAG traces
US20020188765 *Jun 6, 2001Dec 12, 2002Fong Liana LiyowSystem and method for dynamic self-determining asynchronous event-driven computation
US20030217033 *May 17, 2002Nov 20, 2003Zigmund SandlerDatabase system and methods
US20030225870 *May 28, 2002Dec 4, 2003Microsoft CorporationMethod and system for effective management of client and server processes
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US8756088May 28, 2010Jun 17, 2014At&T Intellectual Property I, LpSystem and method for calculating an order flowthrough
Classifications
U.S. Classification718/106
International ClassificationG06Q10/00
Cooperative ClassificationG06Q10/10
European ClassificationG06Q10/10
Legal Events
DateCodeEventDescription
Jun 16, 2004ASAssignment
Owner name: JP MORGAN CHASE BANK, NEW YORK
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BOWIE-BRITTON, SIMON;REEL/FRAME:015463/0995
Effective date: 20040610
Sep 2, 2011FPAYFee payment
Year of fee payment: 4
Mar 2, 2016FPAYFee payment
Year of fee payment: 8