In a computer including an operating system, an event producer for generating an event and detecting that an event has occurred in the computer and an event consumer which need to be informed when events occur in the computer, a system for distributing events including a store for storing a specific set of events of which the at least one event consumer is to be informed, an event manager control unit for receiving the event from the event producer, comparing the received event to the stored set of events, and distributing an appropriate event to an appropriate event consumer, and a distributor for receiving the event from the control unit and directing the control unit to distribute an appropriate event to an appropriate event consumer. |
Citations|
| US5155842 | Aug 14, 1989 | Oct 13, 1992 | Microsoft Corporation | Logical event notification method and apparatus | | US5237684 | Aug 12, 1991 | Aug 17, 1993 | International Business Machines Corporation | Customized and versatile event monitor within event management services of a computer system | | US5291608 | Nov 10, 1992 | Mar 1, 1994 | International Business Machines Corporation | Display adapter event handler with rendering context manager | | US5305454 | Aug 12, 1991 | Apr 19, 1994 | International Business Machines Corporation | Notification of event handlers in broadcast or propagation mode by event management services in a computer system | | US5321837 | Oct 11, 1991 | Jun 14, 1994 | International Business Machines Corporation | Event handling mechanism having a process and an action association process | | US5355484 | Aug 12, 1991 | Oct 11, 1994 | International Business Machines Corporation | Dynamically established event monitors in event management services of a computer system | | US5430875 | Mar 31, 1993 | Jul 4, 1995 | Kaleida Labs, Inc. | Program notification after event qualification via logical operators |
Referenced by|
| US5710924 | Apr 24, 1995 | Jan 20, 1998 | Motorola, Inc. | Method of routing messages within a multi-processing software system | | US5748884 | Jun 13, 1996 | May 5, 1998 | MCI Corporation | Autonotification system for notifying recipients of detected events in a network environment | | US5768523 | Apr 30, 1996 | Jun 16, 1998 | International Business Machines Corporation | Program product for processing requests for notice of events | | US5768524 | Apr 30, 1996 | Jun 16, 1998 | International Business Machines Corporation | Method for processing requests for notice of events | | US5781737 | Apr 30, 1996 | Jul 14, 1998 | International Business Machines Corporation | System for processing requests for notice of events | | US5790829 | Jul 1, 1996 | Aug 4, 1998 | Sun Microsystems, Inc. | Event synchronization mechanism | | US5832482 | Feb 20, 1997 | Nov 3, 1998 | International Business Machines Corporation | Method for mining causality rules with applications to electronic commerce | | US5905890 | May 25, 1995 | May 18, 1999 | Microsoft Corporation | Event architecture for system management in an operating system | | US5951647 | Mar 3, 1998 | Sep 14, 1999 | Attachmate Corporation | Method and system for reconfiguring a communications stack | | US5961651 | Apr 15, 1996 | Oct 5, 1999 | Sun Microsystems, Inc. | Event notification in a computing system having a plurality of storage devices | | US5974573 | Sep 5, 1997 | Oct 26, 1999 | Dell USA, L.P. | Method for collecting ECC event-related information during SMM operations | | US6115734 | May 5, 1997 | Sep 5, 2000 | Alcatel | Method of dynamically allocating tasks to events arriving on a set of queues | | US6195710 | Jun 12, 1995 | Feb 27, 2001 | International Business Machines Corporation | Operating system having shared personality neutral resources | | US6202098 | Jan 4, 1995 | Mar 13, 2001 | International Business Machines Corporation | Method and system for object oriented notification | | US6212676 | May 7, 1999 | Apr 3, 2001 | Microsoft Corporation | Event architecture for system management in an operating system | | US6216132 | Nov 20, 1997 | Apr 10, 2001 | International Business Machines Corporation | Method and system for matching consumers to events | | US6226693 | Sep 30, 1997 | May 1, 2001 | International Business Machines Corporation | Method and system for logical event management | | US6241608 | Jan 9, 1998 | Jun 5, 2001 | | Progressive wagering system | | US6279046 | May 19, 1999 | Aug 21, 2001 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer | | US6336119 | Mar 30, 2000 | Jan 1, 2002 | International Business Machines Corporation | Method and system for applying cluster-based group multicast to content-based publish-subscribe system | | US6347330 | Sep 4, 1998 | Feb 12, 2002 | International Business Machines Corporation | Dynamic selective distribution of events to server receivers | | US6347335 | Sep 22, 1995 | Feb 12, 2002 | EMC Corporation | System using a common and local event logs for logging event information generated by plurality of devices for determining problem in storage access operations | | US6435968 | Oct 27, 2000 | Aug 20, 2002 | | Progressive wagering system | | US6446134 | Oct 17, 1995 | Sep 3, 2002 | Fuji Xerox Co., LTD | Network management system | | US6467007 | May 19, 1999 | Oct 15, 2002 | International Business Machines Corporation | Processor reset generated via memory access interrupt | | US6532497 | Apr 14, 1998 | Mar 11, 2003 | International Business Machines Corporation | Separately powered network interface for reporting the activity states of a network connected client | | US6681240 | May 19, 1999 | Jan 20, 2004 | International Business Machines Corporation | Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions | | US6691146 | May 19, 1999 | Feb 10, 2004 | International Business Machines Corporation | Logical partition manager and method | | US6728715 | Mar 30, 2000 | Apr 27, 2004 | International Business Machines Corporation | Method and system for matching consumers to events employing content-based multicast routing using approximate groups | | US6925513 | May 4, 1999 | Aug 2, 2005 | Apple Computer, Inc. | USB device notification | | US6938251 | Sep 29, 2000 | Aug 30, 2005 | Sprint Communications Company L.P. | Deferred-Synchronous messaging software in a non-threaded environment | | US6939234 | Jun 10, 2002 | Sep 6, 2005 | WMS Gaming, Inc. | Dynamic configuration of gaming system | | US6959291 | May 19, 1999 | Oct 25, 2005 | International Business Machines Corporation | Management of a concurrent use license in a logically-partitioned computer | | US7056215 | Jul 8, 1998 | Jun 6, 2006 | Aristocrat Leisure Industries Pty Ltd. | Slot machine game and system with improved jackpot feature | | US7077746 | Jul 11, 2003 | Jul 18, 2006 | | Progressive wagering system | | US7143417 | Jan 10, 2002 | Nov 28, 2006 | International Business Machines Corporation | Notification services within a unified communications service | | US7177925 | Sep 27, 2002 | Feb 13, 2007 | Avago Technologies General IP (Singapore) Pte. Ltd. | Event management system | | US7197588 | Mar 31, 2004 | Mar 27, 2007 | Intel Corporation | Interrupt scheme for an Input/Output device | | US7203778 | Sep 17, 2004 | Apr 10, 2007 | Apple Inc. | Method and system for notifying clients of a specific change in a data processing system | | US7263568 | Mar 31, 2004 | Aug 28, 2007 | Intel Corporation | Interrupt system using event data structures | | US7284048 | Jul 8, 2005 | Oct 16, 2007 | Verizon Laboratories Inc. | Method and computer system for correlating network event messages | | US7331050 | Jun 6, 2001 | Feb 12, 2008 | Intel Corporation | System and method for communicating information between application programs | | US7366801 | Jan 30, 2004 | Apr 29, 2008 | International Business Machines Corporation | Method for buffering work requests | | US7370174 | Jan 5, 2005 | May 6, 2008 | Intel Corporation | Method, system, and program for addressing pages of memory by an I/O device | | US7384336 | Jun 11, 2002 | Jun 10, 2008 | | Progressive system and methods | | US7430620 | Feb 20, 2007 | Sep 30, 2008 | Apple Inc. | Change notification in USB devices | | US7464153 | Nov 28, 2000 | Dec 9, 2008 | Microsoft Corporation | Generating and supplying user context data | | US7487201 | Jun 30, 2006 | Feb 3, 2009 | Sun Microsystems, Inc. | Method and system for providing framework for Java based AJAX web applications | | US7490329 | Apr 17, 2003 | Feb 10, 2009 | Thomson Licensing | Remote key manager | | US7500913 | Sep 6, 2005 | Mar 10, 2009 | IGT | Gaming system which provides multiple players multiple bonus awards | | US7502782 | Nov 1, 2004 | Mar 10, 2009 | Oracle International Corporation | Database-managed file system | | US7526736 | Apr 16, 2004 | Apr 28, 2009 | IGT | Gaming device having touch activated alternating or changing symbol | | US7536565 | Aug 24, 2005 | May 19, 2009 | Apple Inc. | Techniques for improved playlist processing on media devices | | US7549151 | Jun 3, 2005 | Jun 16, 2009 | QNX Software Systems | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment | | US7568973 | Sep 5, 2006 | Aug 4, 2009 | IGT | Server based gaming system having multiple progressive awards | | US7575516 | Jun 5, 2006 | Aug 18, 2009 | Aristocrat Leisure Industries Pty Ltd. | Slot machine game and system with improved jackpot feature | | US7582014 | Jan 12, 2007 | Sep 1, 2009 | Aristocrat Leisure Industries Pty Ltd. | Slot machine game and system with improved jackpot feature | | US7585223 | Jul 30, 2007 | Sep 8, 2009 | IGT | Server based gaming system having multiple progressive awards | | US7589629 | Feb 28, 2007 | Sep 15, 2009 | Apple Inc. | Event recorder for portable media device | | US7593782 | Aug 24, 2005 | Sep 22, 2009 | Apple Inc. | Highly portable media device | | US7597621 | Sep 6, 2005 | Oct 6, 2009 | IGT | Gaming device having progressive awards and supplemental awards | | US7607976 | Aug 15, 2005 | Oct 27, 2009 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7607977 | Aug 15, 2005 | Oct 27, 2009 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7621809 | Aug 15, 2005 | Nov 24, 2009 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7650606 | Jan 30, 2004 | Jan 19, 2010 | International Business Machines Corporation | System recovery | | US7654896 | Jul 30, 2007 | Feb 2, 2010 | IGT | Gaming system which provides multiple players multiple bonus awards | | US7666081 | Aug 15, 2005 | Feb 23, 2010 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7666093 | Aug 2, 2005 | Feb 23, 2010 | IGT | Gaming method and device involving progressive wagers | | US7673238 | Jan 5, 2006 | Mar 2, 2010 | Apple Inc. | Portable media device with video acceleration capabilities | | US7674180 | Nov 9, 2006 | Mar 9, 2010 | IGT | Server based gaming system having system triggered loyalty award sequences | | US7680096 | Oct 28, 2005 | Mar 16, 2010 | QNX Software Systems GmbH & Co. KG | System for configuring switches in a network | | US7690977 | Jul 30, 2007 | Apr 6, 2010 | IGT | Gaming system and method for providing multiple players multiple bonus awards | | US7695363 | Sep 9, 2003 | Apr 13, 2010 | IGT | Gaming device having multiple display interfaces | | US7699699 | Sep 28, 2004 | Apr 20, 2010 | IGT | Gaming device having multiple selectable display interfaces based on player's wagers | | US7706637 | Sep 27, 2006 | Apr 27, 2010 | Apple Inc. | Host configured for interoperation with coupled portable media player device | | US7713124 | Jul 30, 2007 | May 11, 2010 | IGT | Gaming system and method for providing group play with divided bonus features | | US7722464 | Jul 30, 2007 | May 25, 2010 | IGT | Gaming system which provides multiple players multiple bonus awards | | US7729791 | Sep 11, 2006 | Jun 1, 2010 | Apple Inc. | Portable media playback device including user interface event passthrough to non-media-playback processing | | US7753773 | Aug 26, 2005 | Jul 13, 2010 | IGT | Gaming device having physical concentric symbol generators which are operable to provide a plurality of different games to a player | | US7753782 | Nov 7, 2006 | Jul 13, 2010 | IGT | Gaming system and method for providing multiple players multiple bonus awards | | US7753783 | Jul 30, 2007 | Jul 13, 2010 | IGT | Gaming system and method for providing multiple players multiple bonus awards | | US7753784 | Aug 24, 2009 | Jul 13, 2010 | IGT | Gaming device having progressive awards and supplemental awards | | US7780520 | Mar 15, 2006 | Aug 24, 2010 | IGT | Gaming device having multiple different types of progressive awards | | US7780523 | Jul 30, 2007 | Aug 24, 2010 | IGT | Server based gaming system having multiple progressive awards | | US7819745 | Nov 7, 2006 | Oct 26, 2010 | IGT | Gaming system which provides multiple players multiple bonus awards | | US7828649 | Nov 7, 2006 | Nov 9, 2010 | IGT | Gaming system and method for providing group play with divided bonus features | | US7831199 | Sep 1, 2006 | Nov 9, 2010 | Apple Inc. | Media data exchange, transfer or delivery for portable electronic devices | | US7840590 | Dec 18, 2006 | Nov 23, 2010 | Oracle International Corporation | Querying and fragment extraction within resources in a hierarchical repository | | US7840682 | Jun 3, 2005 | Nov 23, 2010 | QNX Software Systems, GmbH & Co. KG | Distributed kernel operating system | | US7841939 | Sep 5, 2006 | Nov 30, 2010 | IGT | Server based gaming system having multiple progressive awards | | US7848527 | Feb 27, 2006 | Dec 7, 2010 | Apple Inc. | Dynamic power management in a portable media delivery system | | US7853957 | Apr 15, 2005 | Dec 14, 2010 | Intel Corporation | Doorbell mechanism using protection domains | | US7854654 | Aug 15, 2005 | Dec 21, 2010 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7856564 | Mar 18, 2009 | Dec 21, 2010 | Apple Inc. | Techniques for preserving media play mode information on media devices during power cycling | | US7862430 | Sep 27, 2006 | Jan 4, 2011 | IGT | Server based gaming system having system triggered loyalty award sequences | | US7865745 | Mar 3, 2009 | Jan 4, 2011 | Apple Inc. | Techniques for improved playlist processing on media devices | | US7877686 | Oct 11, 2006 | Jan 25, 2011 | Microsoft Corporation | Dynamically displaying current status of tasks | | US7889497 | Jul 30, 2007 | Feb 15, 2011 | Apple Inc. | Highly portable media device | | US7899952 | Sep 22, 2008 | Mar 1, 2011 | Apple Inc. | Change notification in USB devices | | US7905778 | Jul 30, 2007 | Mar 15, 2011 | IGT | Server based gaming system having multiple progressive awards | | US7921076 | Dec 15, 2004 | Apr 5, 2011 | Oracle International Corporation | Performing an action in response to a file system event | | US7942737 | Oct 26, 2006 | May 17, 2011 | IGT | Gaming device having a game with multiple selections and progressive game incrementation | | US7945859 | Dec 17, 2008 | May 17, 2011 | Microsoft Corporation | Interface for exchanging context data | | US7962568 | Oct 2, 2006 | Jun 14, 2011 | Panasonic Corporation | Event control device and digital broadcasting system | | US7963845 | Nov 8, 2006 | Jun 21, 2011 | IGT | Gaming system and method with multiple progressive award levels and a skill based determination of providing one of the progressive award levels | | US7963847 | Jul 30, 2007 | Jun 21, 2011 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US7985133 | Jul 30, 2007 | Jul 26, 2011 | IGT | Gaming system and method for providing an additional gaming currency | | US7993199 | Jul 30, 2007 | Aug 9, 2011 | IGT | Server based gaming system having system triggered loyalty award sequences | | US8001232 | Oct 19, 2000 | Aug 16, 2011 | Oracle America, Inc. | Event message endpoints in a distributed computing environment | | US8012009 | Jul 30, 2007 | Sep 6, 2011 | IGT | Server based gaming system having system triggered loyalty award sequences | | US8020104 | Jan 11, 2005 | Sep 13, 2011 | Microsoft Corporation | Contextual responses based on automated learning techniques | | US8021230 | Jul 30, 2007 | Sep 20, 2011 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US8044795 | Aug 4, 2009 | Oct 25, 2011 | Apple Inc. | Event recorder for portable media device | | US8065320 | May 16, 2008 | Nov 22, 2011 | Oracle International Corporation | Multi-model access to data | | US8070597 | Aug 3, 2006 | Dec 6, 2011 | IGT | Gaming device and method having multiple progressive award levels and a secondary game for advancing through the progressive award levels | | US8078716 | Oct 25, 2010 | Dec 13, 2011 | QNX Software Systems Limited | Distributed kernel operating system | | US8090130 | Apr 24, 2007 | Jan 3, 2012 | Apple Inc. | Highly portable media devices | | US8103665 | May 11, 2009 | Jan 24, 2012 | Microsoft Corporation | Soliciting information based on a computer user's context | | US8105149 | Nov 10, 2006 | Jan 31, 2012 | IGT | Gaming system and method providing venue wide simultaneous player participation based bonus game | | US8126979 | Apr 13, 2010 | Feb 28, 2012 | Microsoft Corporation | Automated response to computer users context | | US8128491 | Sep 5, 2006 | Mar 6, 2012 | IGT | Server based gaming system having multiple progressive awards | | US8128492 | Jul 30, 2007 | Mar 6, 2012 | IGT | Server based gaming system having multiple progressive awards | | US8137188 | Sep 5, 2006 | Mar 20, 2012 | IGT | Server based gaming system having multiple progressive awards | | US8140348 | Jan 30, 2004 | Mar 20, 2012 | International Business Machines Corporation | Method, system, and program for facilitating flow control | | US8151259 | Jan 3, 2006 | Apr 3, 2012 | Apple Inc. | Remote content updates for portable media devices | | US8162743 | Dec 22, 2008 | Apr 24, 2012 | IGT | Elimination games for gaming machines | | US8174502 | Mar 4, 2008 | May 8, 2012 | Apple Inc. | Touch event processing for web pages | | US8174503 | May 17, 2008 | May 8, 2012 | David H. Cain | Touch-based authentication of a mobile device through user generated pattern creation | | US8176007 | Feb 11, 2011 | May 8, 2012 | Oracle International Corporation | Performing an action in response to a file system event | | US8180883 | Aug 2, 2004 | May 15, 2012 | Cisco Technology, Inc. | Method and system for processing directives included in management events | | US8181113 | Oct 27, 2008 | May 15, 2012 | Microsoft Corporation | Mediating conflicts in computer users context data | | US8206212 | Jul 30, 2007 | Jun 26, 2012 | IGT | Server based gaming system having system triggered loyalty award sequences | | US8210930 | Jul 30, 2007 | Jul 3, 2012 | IGT | Server based gaming system having system triggered loyalty award sequences | | US8210937 | Apr 5, 2011 | Jul 3, 2012 | IGT | Gaming device having a game with multiple selections and progressive game incrementation | | US8216060 | Jul 30, 2007 | Jul 10, 2012 | IGT | Gaming system having multiple gaming machines which provide bonus awards | | US8216062 | May 6, 2011 | Jul 10, 2012 | IGT | Gaming system and method for providing an additional gaming currency | | US8221218 | Feb 26, 2010 | Jul 17, 2012 | IGT | Gaming device having multiple selectable display interfaces based on player's wagers | | US8221226 | Jul 30, 2007 | Jul 17, 2012 | IGT | Server based gaming system having system triggered loyalty award sequences | | US8235808 | Jul 30, 2007 | Aug 7, 2012 | IGT | Gaming system having multiple gaming machines which provide bonus awards |
Claims1. In a computer including at least one event producer for detecting that an event has occurred in the computer and generating an event and at least one event consumer which needs to be informed when events occur in the computer, a system for distributing events comprising: - storing means for storing a specific set of events of which said at least one event consumer is to be informed;
- event manager control means for receiving the event from the event producer, comparing the received event to the stored set of events, and distributing an appropriate event to an appropriate event consumer; and
- distributor means for receiving the event from the control means and directing said control means to distribute an appropriate event to an appropriate event consumer.
2. The system according to claim 1, wherein said distributor means comprises a distributor module for each kind of event possible in the computer. 3. The system according to claim 1, wherein a plurality of event consumers are included in the computer and the plurality of consumers comprise: - broadcast consumers having no relationship with other consumers, the broadcast consumers operating independently of other consumers and of the order in which consumers are informed of the event; and
- sequential consumers having relationships with other consumers, the sequential consumers requiring that no other consumer be told about an event while they themselves are processing the event and having an ability to influence when they receive the event relative to the other consumers.
4. The system according to claim 3, wherein said distributor means comprises: - means for determining if the event is to be sent to broadcast consumers with a signal indicating that the distributor means maintains a right to modify the event based on subsequent events until the broadcast consumers receive the event; and
- means, responsive to a positive determination by said means for determining, for directing said control means to distribute the event to the appropriate broadcast consumers with a signal indicating that the distributor means maintains the right to modify the event.
5. The system according to claim 3, wherein said distributor means comprises: - first means for determining if the event is to be sent to broadcast consumers with a signal indicating that the distributor means maintains a right to modify the event;
- second means, responsive to a positive determination by said first means for determining, for determining if the event is to be passed to all broadcast consumers;
- means, responsive to a positive determination by said second means for determining, for directing said control means to distribute the event to all broadcast consumers with a signal indicating that the distributor means maintains the right to modify the event;
- means, responsive to a negative determination by said second means for determining, for directing said control means to distribute the event to select broadcast consumers with a signal indicating that the distributor means maintains the right to modify the event;
- third means, responsive to a negative determination by said first means for determining, for determining if the event is to be sent to all broadcast consumers;
- means, responsive to a positive determination by said third means for determining, for directing said control means to distribute the event to all broadcast consumers; and
- means, responsive to a negative determination by said third means for determining, for directing said control means to distribute the event to select broadcast consumers.
6. The system according to claim 3, wherein said storing means comprises: - a subscription matrix for storing subscriptions to events in which the broadcast consumers are interested; and
- a sequential consumer database for storing entries to events in which the sequential consumers are interested.
7. The system according to claim 3, wherein said storing means comprises an event queue corresponding to each of the broadcast consumers for receiving distributed events from said control means and for storing the distributed events until the events are consumed by the corresponding broadcast consumer. 8. The system according to claim 3, wherein said control means comprises means for passing an event to the sequential consumers in succession in accordance with the entries in the sequential consumer database. 9. The system according to claim 8, wherein said control means comprises means for prohibiting passing of an event upon receiving an event handled message from a sequential consumer. 10. A computer system comprising: - event producers for detecting that an event has occurred in the computer, generating an event, and generating a description of the event;
- event consumers which need to be informed when events occur in the computer, said event consumers comprising a first and a second class of consumers;
- storing means for storing a specific set of events of which the event consumers are to be informed;
- event manager control means for receiving the event from the event producers and comparing the received event to the stored set of events;
- distributor means, responsive to said event control means, for deciding if an event should be passed to an event consumer;
- said event manager control means comprising:
- first means for sending an event to appropriate event consumers of a first class in accordance with the stored set of events, and
- second means for sending the event to appropriate event consumers of a second class responsive to said distributor means.
11. The system according to claim 10, wherein said distributor means comprises a distributor module for each kind of event possible in the computer. 12. The system according to claim 10, wherein - said first class of consumers comprise sequential consumers having relationships with other consumers, the sequential consumers requiring that no other consumer be told about an event while they themselves are processing it, and having an ability to influence when they receive the event relative to the other consumers; and
- said second class of consumers comprise broadcast consumers having no relationship with other consumers, the broadcast consumers operating independently of other consumers and of the order in which consumers are informed of the event.
13. The system according to claim 12, wherein said distributor means comprises: - means for determining if the event is to be sent to broadcast consumers with a signal indicating that the distributor means maintains a right to modify the event based on subsequent events until the broadcast consumers receive the event; and
- means, responsive to a positive determination by said means for determining, for directing said control means to distribute the event to the appropriate broadcast consumers with a signal indicating that the distributor means maintains the right to modify the event.
14. The system according to claim 12, wherein said storing means comprises: - a subscription matrix for storing subscriptions to events in which the broadcast consumers are interested; and
- a sequential consumer database for storing entries to events in which the sequential consumers are interested.
15. The system according to claim 12, wherein said storing means comprises an event queue corresponding to each of the broadcast consumers for receiving distributed events from said control means and for storing the distributed events until the events are consumed by the corresponding broadcast consumer. 16. The system according to claim 12, wherein said control means comprises means for passing an event to the sequential consumers in succession in accordance with the entries in a sequential consumer database. 17. The system according to claim 16, wherein said control means comprises means for prohibiting passing of an event upon receiving an event handled message from a sequential consumer. 18. A method for distributing events occurring in a computer, said method comprising the steps of: - determining that an event has been detected by an event producer in the computer;
- storing, in a storing means, a specific set of events of which an event consumer is to be informed;
- receiving the event in an event control means from the event producer;
- comparing the received event to the stored set of events;
- receiving the event in a distributor means from the control means;
- directing the control means to distribute an appropriate event to an appropriate event consumer; and
- distributing, via the control means, an appropriate event to an appropriate event consumer.
19. The method according to claim 18, wherein the event consumer comprises a plurality of consumers including broadcast consumers which operate independently from one another and of the order in which consumers are informed of events and sequential consumers which require that no other consumer be told about an event while they themselves are processing it and have an ability to influence when they receive the event relative to the other consumers. 20. The method according to claim 19, wherein said step of distributing comprises the steps of: - determining if the event is to be sent to broadcast consumers with a right to modify the event based on subsequent events until the broadcasts consumers receive the event; and
- distributing the event to the appropriate broadcast consumers with the right to modify responsive to a positive determination by said step determining.
21. The method according to claim 19, wherein said step of storing comprises the steps of: - storing, in a subscription matrix, subscriptions to events in which the broadcast consumers am interested; and
- storing, in a sequential consumer database, entries to events in which the sequential consumers are interested.
22. The method according to claim 19, further comprising the steps of: - receiving distributed events in an event queue corresponding to a broadcast consumer; and
- storing the distributed events in the event queue until the events are consumed by the corresponding broadcast consumer.
23. The method according to claim 19, wherein the step of distributing comprises the step of passing an event to the sequential consumers in succession upon receiving a continue message from a sequential consumer indicating that it has completed processing of the event. 24. The method according to claim 23, wherein the step of distributing further comprises the step of prohibiting passing of an event upon receiving an event handled message from a sequential consumer. |