Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

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.

InventorsSteven J. Szymanski, Thomas E. Saulpaugh, William J. Keenan
Original AssigneeApple Computer, Inc.
Primary Examiner: Sumati Lefkowitz
Current U.S. Classification710/260
International Classification: G06F 900

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5155842Aug 14, 1989Oct 13, 1992Microsoft CorporationLogical event notification method and apparatus
US5237684Aug 12, 1991Aug 17, 1993International Business Machines CorporationCustomized and versatile event monitor within event management services of a computer system
US5291608Nov 10, 1992Mar 1, 1994International Business Machines CorporationDisplay adapter event handler with rendering context manager
US5305454Aug 12, 1991Apr 19, 1994International Business Machines CorporationNotification of event handlers in broadcast or propagation mode by event management services in a computer system
US5321837Oct 11, 1991Jun 14, 1994International Business Machines CorporationEvent handling mechanism having a process and an action association process
US5355484Aug 12, 1991Oct 11, 1994International Business Machines CorporationDynamically established event monitors in event management services of a computer system
US5430875Mar 31, 1993Jul 4, 1995Kaleida Labs, Inc.Program notification after event qualification via logical operators

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US5710924Apr 24, 1995Jan 20, 1998Motorola, Inc.Method of routing messages within a multi-processing software system
US5748884Jun 13, 1996May 5, 1998MCI CorporationAutonotification system for notifying recipients of detected events in a network environment
US5768523Apr 30, 1996Jun 16, 1998International Business Machines CorporationProgram product for processing requests for notice of events
US5768524Apr 30, 1996Jun 16, 1998International Business Machines CorporationMethod for processing requests for notice of events
US5781737Apr 30, 1996Jul 14, 1998International Business Machines CorporationSystem for processing requests for notice of events
US5790829Jul 1, 1996Aug 4, 1998Sun Microsystems, Inc.Event synchronization mechanism
US5832482Feb 20, 1997Nov 3, 1998International Business Machines CorporationMethod for mining causality rules with applications to electronic commerce
US5905890May 25, 1995May 18, 1999Microsoft CorporationEvent architecture for system management in an operating system
US5951647Mar 3, 1998Sep 14, 1999Attachmate CorporationMethod and system for reconfiguring a communications stack
US5961651Apr 15, 1996Oct 5, 1999Sun Microsystems, Inc.Event notification in a computing system having a plurality of storage devices
US5974573Sep 5, 1997Oct 26, 1999Dell USA, L.P.Method for collecting ECC event-related information during SMM operations
US6115734May 5, 1997Sep 5, 2000AlcatelMethod of dynamically allocating tasks to events arriving on a set of queues
US6195710Jun 12, 1995Feb 27, 2001International Business Machines CorporationOperating system having shared personality neutral resources
US6202098Jan 4, 1995Mar 13, 2001International Business Machines CorporationMethod and system for object oriented notification
US6212676May 7, 1999Apr 3, 2001Microsoft CorporationEvent architecture for system management in an operating system
US6216132Nov 20, 1997Apr 10, 2001International Business Machines CorporationMethod and system for matching consumers to events
US6226693Sep 30, 1997May 1, 2001International Business Machines CorporationMethod and system for logical event management
US6241608Jan 9, 1998Jun 5, 2001Progressive wagering system
US6279046May 19, 1999Aug 21, 2001International Business Machines CorporationEvent-driven communications interface for logically-partitioned computer
US6336119Mar 30, 2000Jan 1, 2002International Business Machines CorporationMethod and system for applying cluster-based group multicast to content-based publish-subscribe system
US6347330Sep 4, 1998Feb 12, 2002International Business Machines CorporationDynamic selective distribution of events to server receivers
US6347335Sep 22, 1995Feb 12, 2002EMC CorporationSystem using a common and local event logs for logging event information generated by plurality of devices for determining problem in storage access operations
US6435968Oct 27, 2000Aug 20, 2002Progressive wagering system
US6446134Oct 17, 1995Sep 3, 2002Fuji Xerox Co., LTDNetwork management system
US6467007May 19, 1999Oct 15, 2002International Business Machines CorporationProcessor reset generated via memory access interrupt
US6532497Apr 14, 1998Mar 11, 2003International Business Machines CorporationSeparately powered network interface for reporting the activity states of a network connected client
US6681240May 19, 1999Jan 20, 2004International Business Machines CorporationApparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions
US6691146May 19, 1999Feb 10, 2004International Business Machines CorporationLogical partition manager and method
US6728715Mar 30, 2000Apr 27, 2004International Business Machines CorporationMethod and system for matching consumers to events employing content-based multicast routing using approximate groups
US6925513May 4, 1999Aug 2, 2005Apple Computer, Inc.USB device notification
US6938251Sep 29, 2000Aug 30, 2005Sprint Communications Company L.P.Deferred-Synchronous messaging software in a non-threaded environment
US6939234Jun 10, 2002Sep 6, 2005WMS Gaming, Inc.Dynamic configuration of gaming system
US6959291May 19, 1999Oct 25, 2005International Business Machines CorporationManagement of a concurrent use license in a logically-partitioned computer
US7056215Jul 8, 1998Jun 6, 2006Aristocrat Leisure Industries Pty Ltd.Slot machine game and system with improved jackpot feature
US7077746Jul 11, 2003Jul 18, 2006Progressive wagering system
US7143417Jan 10, 2002Nov 28, 2006International Business Machines CorporationNotification services within a unified communications service
US7177925Sep 27, 2002Feb 13, 2007Avago Technologies General IP (Singapore) Pte. Ltd.Event management system
US7197588Mar 31, 2004Mar 27, 2007Intel CorporationInterrupt scheme for an Input/Output device
US7203778Sep 17, 2004Apr 10, 2007Apple Inc.Method and system for notifying clients of a specific change in a data processing system
US7263568Mar 31, 2004Aug 28, 2007Intel CorporationInterrupt system using event data structures
US7284048Jul 8, 2005Oct 16, 2007Verizon Laboratories Inc.Method and computer system for correlating network event messages
US7331050Jun 6, 2001Feb 12, 2008Intel CorporationSystem and method for communicating information between application programs
US7366801Jan 30, 2004Apr 29, 2008International Business Machines CorporationMethod for buffering work requests
US7370174Jan 5, 2005May 6, 2008Intel CorporationMethod, system, and program for addressing pages of memory by an I/O device
US7384336Jun 11, 2002Jun 10, 2008Progressive system and methods
US7430620Feb 20, 2007Sep 30, 2008Apple Inc.Change notification in USB devices
US7464153Nov 28, 2000Dec 9, 2008Microsoft CorporationGenerating and supplying user context data
US7487201Jun 30, 2006Feb 3, 2009Sun Microsystems, Inc.Method and system for providing framework for Java based AJAX web applications
US7490329Apr 17, 2003Feb 10, 2009Thomson LicensingRemote key manager
US7500913Sep 6, 2005Mar 10, 2009IGTGaming system which provides multiple players multiple bonus awards
US7502782Nov 1, 2004Mar 10, 2009Oracle International CorporationDatabase-managed file system
US7526736Apr 16, 2004Apr 28, 2009IGTGaming device having touch activated alternating or changing symbol
US7536565Aug 24, 2005May 19, 2009Apple Inc.Techniques for improved playlist processing on media devices
US7549151Jun 3, 2005Jun 16, 2009QNX Software SystemsFast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US7568973Sep 5, 2006Aug 4, 2009IGTServer based gaming system having multiple progressive awards
US7575516Jun 5, 2006Aug 18, 2009Aristocrat Leisure Industries Pty Ltd.Slot machine game and system with improved jackpot feature
US7582014Jan 12, 2007Sep 1, 2009Aristocrat Leisure Industries Pty Ltd.Slot machine game and system with improved jackpot feature
US7585223Jul 30, 2007Sep 8, 2009IGTServer based gaming system having multiple progressive awards
US7589629Feb 28, 2007Sep 15, 2009Apple Inc.Event recorder for portable media device
US7593782Aug 24, 2005Sep 22, 2009Apple Inc.Highly portable media device
US7597621Sep 6, 2005Oct 6, 2009IGTGaming device having progressive awards and supplemental awards
US7607976Aug 15, 2005Oct 27, 2009IGTGaming system having multiple gaming machines which provide bonus awards
US7607977Aug 15, 2005Oct 27, 2009IGTGaming system having multiple gaming machines which provide bonus awards
US7621809Aug 15, 2005Nov 24, 2009IGTGaming system having multiple gaming machines which provide bonus awards
US7650606Jan 30, 2004Jan 19, 2010International Business Machines CorporationSystem recovery
US7654896Jul 30, 2007Feb 2, 2010IGTGaming system which provides multiple players multiple bonus awards
US7666081Aug 15, 2005Feb 23, 2010IGTGaming system having multiple gaming machines which provide bonus awards
US7666093Aug 2, 2005Feb 23, 2010IGTGaming method and device involving progressive wagers
US7673238Jan 5, 2006Mar 2, 2010Apple Inc.Portable media device with video acceleration capabilities
US7674180Nov 9, 2006Mar 9, 2010IGTServer based gaming system having system triggered loyalty award sequences
US7680096Oct 28, 2005Mar 16, 2010QNX Software Systems GmbH & Co. KGSystem for configuring switches in a network
US7690977Jul 30, 2007Apr 6, 2010IGTGaming system and method for providing multiple players multiple bonus awards
US7695363Sep 9, 2003Apr 13, 2010IGTGaming device having multiple display interfaces
US7699699Sep 28, 2004Apr 20, 2010IGTGaming device having multiple selectable display interfaces based on player's wagers
US7706637Sep 27, 2006Apr 27, 2010Apple Inc.Host configured for interoperation with coupled portable media player device
US7713124Jul 30, 2007May 11, 2010IGTGaming system and method for providing group play with divided bonus features
US7722464Jul 30, 2007May 25, 2010IGTGaming system which provides multiple players multiple bonus awards
US7729791Sep 11, 2006Jun 1, 2010Apple Inc.Portable media playback device including user interface event passthrough to non-media-playback processing
US7753773Aug 26, 2005Jul 13, 2010IGTGaming device having physical concentric symbol generators which are operable to provide a plurality of different games to a player
US7753782Nov 7, 2006Jul 13, 2010IGTGaming system and method for providing multiple players multiple bonus awards
US7753783Jul 30, 2007Jul 13, 2010IGTGaming system and method for providing multiple players multiple bonus awards
US7753784Aug 24, 2009Jul 13, 2010IGTGaming device having progressive awards and supplemental awards
US7780520Mar 15, 2006Aug 24, 2010IGTGaming device having multiple different types of progressive awards
US7780523Jul 30, 2007Aug 24, 2010IGTServer based gaming system having multiple progressive awards
US7819745Nov 7, 2006Oct 26, 2010IGTGaming system which provides multiple players multiple bonus awards
US7828649Nov 7, 2006Nov 9, 2010IGTGaming system and method for providing group play with divided bonus features
US7831199Sep 1, 2006Nov 9, 2010Apple Inc.Media data exchange, transfer or delivery for portable electronic devices
US7840590Dec 18, 2006Nov 23, 2010Oracle International CorporationQuerying and fragment extraction within resources in a hierarchical repository
US7840682Jun 3, 2005Nov 23, 2010QNX Software Systems, GmbH & Co. KGDistributed kernel operating system
US7841939Sep 5, 2006Nov 30, 2010IGTServer based gaming system having multiple progressive awards
US7848527Feb 27, 2006Dec 7, 2010Apple Inc.Dynamic power management in a portable media delivery system
US7853957Apr 15, 2005Dec 14, 2010Intel CorporationDoorbell mechanism using protection domains
US7854654Aug 15, 2005Dec 21, 2010IGTGaming system having multiple gaming machines which provide bonus awards
US7856564Mar 18, 2009Dec 21, 2010Apple Inc.Techniques for preserving media play mode information on media devices during power cycling
US7862430Sep 27, 2006Jan 4, 2011IGTServer based gaming system having system triggered loyalty award sequences
US7865745Mar 3, 2009Jan 4, 2011Apple Inc.Techniques for improved playlist processing on media devices
US7877686Oct 11, 2006Jan 25, 2011Microsoft CorporationDynamically displaying current status of tasks
US7889497Jul 30, 2007Feb 15, 2011Apple Inc.Highly portable media device
US7899952Sep 22, 2008Mar 1, 2011Apple Inc.Change notification in USB devices
US7905778Jul 30, 2007Mar 15, 2011IGTServer based gaming system having multiple progressive awards
US7921076Dec 15, 2004Apr 5, 2011Oracle International CorporationPerforming an action in response to a file system event
US7942737Oct 26, 2006May 17, 2011IGTGaming device having a game with multiple selections and progressive game incrementation
US7945859Dec 17, 2008May 17, 2011Microsoft CorporationInterface for exchanging context data
US7962568Oct 2, 2006Jun 14, 2011Panasonic CorporationEvent control device and digital broadcasting system
US7963845Nov 8, 2006Jun 21, 2011IGTGaming system and method with multiple progressive award levels and a skill based determination of providing one of the progressive award levels
US7963847Jul 30, 2007Jun 21, 2011IGTGaming system having multiple gaming machines which provide bonus awards
US7985133Jul 30, 2007Jul 26, 2011IGTGaming system and method for providing an additional gaming currency
US7993199Jul 30, 2007Aug 9, 2011IGTServer based gaming system having system triggered loyalty award sequences
US8001232Oct 19, 2000Aug 16, 2011Oracle America, Inc.Event message endpoints in a distributed computing environment
US8012009Jul 30, 2007Sep 6, 2011IGTServer based gaming system having system triggered loyalty award sequences
US8020104Jan 11, 2005Sep 13, 2011Microsoft CorporationContextual responses based on automated learning techniques
US8021230Jul 30, 2007Sep 20, 2011IGTGaming system having multiple gaming machines which provide bonus awards
US8044795Aug 4, 2009Oct 25, 2011Apple Inc.Event recorder for portable media device
US8065320May 16, 2008Nov 22, 2011Oracle International CorporationMulti-model access to data
US8070597Aug 3, 2006Dec 6, 2011IGTGaming device and method having multiple progressive award levels and a secondary game for advancing through the progressive award levels
US8078716Oct 25, 2010Dec 13, 2011QNX Software Systems LimitedDistributed kernel operating system
US8090130Apr 24, 2007Jan 3, 2012Apple Inc.Highly portable media devices
US8103665May 11, 2009Jan 24, 2012Microsoft CorporationSoliciting information based on a computer user's context
US8105149Nov 10, 2006Jan 31, 2012IGTGaming system and method providing venue wide simultaneous player participation based bonus game
US8126979Apr 13, 2010Feb 28, 2012Microsoft CorporationAutomated response to computer users context
US8128491Sep 5, 2006Mar 6, 2012IGTServer based gaming system having multiple progressive awards
US8128492Jul 30, 2007Mar 6, 2012IGTServer based gaming system having multiple progressive awards
US8137188Sep 5, 2006Mar 20, 2012IGTServer based gaming system having multiple progressive awards
US8140348Jan 30, 2004Mar 20, 2012International Business Machines CorporationMethod, system, and program for facilitating flow control
US8151259Jan 3, 2006Apr 3, 2012Apple Inc.Remote content updates for portable media devices
US8162743Dec 22, 2008Apr 24, 2012IGTElimination games for gaming machines
US8174502Mar 4, 2008May 8, 2012Apple Inc.Touch event processing for web pages
US8174503May 17, 2008May 8, 2012David H. CainTouch-based authentication of a mobile device through user generated pattern creation
US8176007Feb 11, 2011May 8, 2012Oracle International CorporationPerforming an action in response to a file system event
US8180883Aug 2, 2004May 15, 2012Cisco Technology, Inc.Method and system for processing directives included in management events
US8181113Oct 27, 2008May 15, 2012Microsoft CorporationMediating conflicts in computer users context data
US8206212Jul 30, 2007Jun 26, 2012IGTServer based gaming system having system triggered loyalty award sequences
US8210930Jul 30, 2007Jul 3, 2012IGTServer based gaming system having system triggered loyalty award sequences
US8210937Apr 5, 2011Jul 3, 2012IGTGaming device having a game with multiple selections and progressive game incrementation
US8216060Jul 30, 2007Jul 10, 2012IGTGaming system having multiple gaming machines which provide bonus awards
US8216062May 6, 2011Jul 10, 2012IGTGaming system and method for providing an additional gaming currency
US8221218Feb 26, 2010Jul 17, 2012IGTGaming device having multiple selectable display interfaces based on player's wagers
US8221226Jul 30, 2007Jul 17, 2012IGTServer based gaming system having system triggered loyalty award sequences
US8235808Jul 30, 2007Aug 7, 2012IGTGaming system having multiple gaming machines which provide bonus awards

Claims

1. 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.