Object connectivity through loosely coupled publish and subscribe events with filtering
First Claim
1. An event communications system on a computer for efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
- a data storage for storing subscriptions, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing-event interface method and serving to link the publisher'"'"'s call to the outgoing-event interface method over to the subscriber object;
a filter object encapsulating data and code comprising filtering code and criteria setting code, said filtering code operating to determine according to the filtering criteria whether to deliver the event to the subscriber object associated to the event by the subscription, and said criteria setting code operating to receive filter criteria via an exposed interface; and
an event distributor supporting the outgoing-event interface and having code of the outgoing-event interface method operative in response to the publisher object'"'"'s call to cause the method call to be issued to the subscriber object interface depending upon the filter object'"'"'s determination so as to thereby deliver the event to the subscriber object subject to the filtering criteria;
wherein the event distributor sets the filter criteria via the exposed interface, in response to a call from the publisher object.
2 Assignments
0 Petitions
Accused Products
Abstract
An object-based event communications system supplies an event distribution object having an outgoing-from-publisher event interface and associated with unique identifiers defined for a publisher that is programmed to fire events by calling a method on the event distribution object'"'"'s outgoing-from-publisher event interface. The event communications system stores subscriptions of subscriber objects to methods of the outgoing-from-publisher event interface. On receiving a call from a publisher to its outgoing-from-publisher interface methods, the event distribution object multi-casts calls to counterpart methods of subscriber objects that have stored subscriptions to the respective outgoing-from-publisher interface methods.
207 Citations
25 Claims
-
1. An event communications system on a computer for efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
-
a data storage for storing subscriptions, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing-event interface method and serving to link the publisher'"'"'s call to the outgoing-event interface method over to the subscriber object;
a filter object encapsulating data and code comprising filtering code and criteria setting code, said filtering code operating to determine according to the filtering criteria whether to deliver the event to the subscriber object associated to the event by the subscription, and said criteria setting code operating to receive filter criteria via an exposed interface; and
an event distributor supporting the outgoing-event interface and having code of the outgoing-event interface method operative in response to the publisher object'"'"'s call to cause the method call to be issued to the subscriber object interface depending upon the filter object'"'"'s determination so as to thereby deliver the event to the subscriber object subject to the filtering criteria;
wherein the event distributor sets the filter criteria via the exposed interface, in response to a call from the publisher object. - View Dependent Claims (2)
-
-
3. An event communications system on a computer for efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
-
a data storage for storing subscriptions, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing-event interface method and serving to link the publisher'"'"'s call to the outgoing-event interface method over to the subscriber object;
a filter object encapsulating data and filtering code, said filtering code operating to determine according to the filtering criteria whether to deliver the event to the subscriber object associated to the event by the subscription; and
an event distributor supporting the outgoing-event interface and having code of the outgoing-event interface method operative in response to the publisher object'"'"'s call to cause the method call to be issued to the subscriber object interface depending upon the filter object'"'"'s determination so as to thereby deliver the event to the subscriber object subject to the filtering criteria;
wherein the filter object is supplied by the publisher object. - View Dependent Claims (4, 5)
-
-
6. An event communications system on a computer for efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
-
a data storage for storing subscriptions, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing-event interface method and serving to link the publisher'"'"'s call to the outgoing-event interface method over to the subscriber object;
a filter object encapsulating data and filtering code, said filtering code operating to determine according to the filtering criteria whether to deliver the event to the subscriber object associated to the event by the subscription; and
an event distributor supporting the outgoing-event interface and having code of the outgoing-event interface method operative in response to the publisher object'"'"'s call to cause the method call to be issued to the subscriber object interface depending upon the filter object'"'"'s determination so as to thereby deliver the event to the subscriber object subject to the filtering criteria;
wherein the filter object is supplied by the subscriber object. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. An event communications system on a computer for efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
-
a data storage for storing subscriptions, wherein the subscriptions individually contain a method identification field and a subscriber identification field that represent an outgoing-event interface method-to-subscriber relationship and serve to link publishers'"'"' calls to respective outgoing-event interface methods over to respective subscribers;
a filter object encapsulating data and code comprising filtering criteria setting code and filtering code, said filtering criteria setting code operational via an interface to receive filtering criteria, and said filtering code operating to determine whether to deliver events to subscribers according to the filtering criteria; and
code for entering a subscription in the data storage where the subscriber identification field of the entered subscription references to the filter object; and
an event distributor supporting the outgoing-event interface and having code of the outgoing-event interface method operative in response to the publisher object'"'"'s call to cause the filter object to make the determination of whether to deliver the event to the subscriber object based on the entered subscription, and depending upon the filter object'"'"'s determination deliver the event as the method call to the subscriber object interface;
wherein an administrative utility program sets filtering criteria via the interface. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. In a computer, a method of efficiently distributing event information subject to a filtering criteria in software programmed according to an object model, the software having a publisher object and a subscriber object wherein the publisher object has code to call a method on an outgoing-event interface to signal an event and lacks information of the subscriber object identity, and wherein the subscriber object supports a subscriber interface that receives a method call, the method comprising:
-
exposing the outgoing-event interface on an event distribution object to the publisher object so as to receive the publisher object'"'"'s call, the event distribution object having event delivery processing logic;
installing a filter object so as to be invoked by the event delivery processing logic of the event distribution object, the filter object encapsulating data and code implementing custom filtering logic; and
whereby, when the publisher object issues the call to the outgoing-event interface on the distribution object, the event delivery processing logic of the event distribution object causes the custom filtering logic of the filter object to determine whether to deliver the event as a call to the subscriber interface of the subscriber object according to the filtering criteria;
wherein the subscriber object is instantiated in order to deliver the event. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
storing a subscription in data storage externally from the publisher object and the subscriber object, the subscription having information representing a relationship of the subscriber object to an outgoing-event interface method and serving to link the publisher'"'"'s call to the outgoing-event interface method over to the subscriber object, the subscription further containing a set of properties; and
providing the filter object with access to the subscription;
accessing the set of properties and using the set of properties in the custom filtering logic in the determination according to the filtering criteria whether to deliver the event to the subscriber object.
-
-
20. The method of claim 19 further comprising:
exposing an event preparation interface on the filter object on which the filter object receives information providing access to the subscription.
-
21. The method of claim 19 further comprising:
-
exposing an event parameters interface on the filter object on which the filter object receives parameter information of the publisher object'"'"'s call to the outgoing-event interface;
also using the parameter information in the custom filtering logic in the determination according to the filtering criteria whether to deliver the event to the subscriber object.
-
-
22. The method of claim 21 wherein the event parameters interface is a counterpart of the outgoing-event interface.
-
23. The method of claim 21 further comprising:
exposing an event preparation interface on the filter object on which the filter object receives information providing access to the subscription.
-
24. A computer-readable data storage medium having computer-executable program code stored thereon that implements the method of claim 21 when run on a computer.
-
25. The method of claim 18 wherein the filter object is specified to the event distribution object via a class identifier, and the event distribution object instantiates the filter object based upon the class identifier for invoking by the event delivery processing logic, whereby the filter object lifetime is independent of the publisher object and the subscriber object.
Specification