Object connectivity through loosely coupled publish and subscribe events
First Claim
1. An event communications system on a computer for efficiently distributing event information 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 interface to signal an event and lacks information about an identity of the subscriber object, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
- a data storage separate from the publisher and subscriber objects for storing subscriptions externally of the publisher and subscriber objects, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing interface method and serving to link the publisher'"'"'s call to the outgoing interface method over to the subscriber object; and
an event handling object exposing the outgoing interface and having code of the outgoing interface method operative in response to the publisher object'"'"'s call to retrieve the subscription and issue the method call to the subscriber object interface based on the subscription so as to thereby deliver the event to the subscriber object;
wherein the interface exposed by the subscriber object matches the outgoing interface exposed by the event handling 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.
-
Citations
9 Claims
-
1. An event communications system on a computer for efficiently distributing event information 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 interface to signal an event and lacks information about an identity of the subscriber object, and wherein the subscriber object exposes an interface that receives a method call, the system comprising:
-
a data storage separate from the publisher and subscriber objects for storing subscriptions externally of the publisher and subscriber objects, a subscription out of the stored subscriptions representing a relationship of the subscriber object to an outgoing interface method and serving to link the publisher'"'"'s call to the outgoing interface method over to the subscriber object; and
an event handling object exposing the outgoing interface and having code of the outgoing interface method operative in response to the publisher object'"'"'s call to retrieve the subscription and issue the method call to the subscriber object interface based on the subscription so as to thereby deliver the event to the subscriber object;
wherein the interface exposed by the subscriber object matches the outgoing interface exposed by the event handling object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium having computer-executable program code stored thereon to implement an object-oriented event communications model for distributing events from a publisher to any subscribers of the events, the publisher being programmed to issue an event as a call to a method on an outgoing event interface exposed by an object which outgoing event interface and object are identified by unique identifiers defined for the publisher, the program code comprising:
-
code associating the unique identifiers to an event distribution object class having the outgoing event interface; and
object server code for supplying an event distribution object of the event distribution object class, the event distribution object having distribution code operative in response to the publisher'"'"'s call that issues the event so as to distribute the event to the event'"'"'s respective subscribers;
wherein the event'"'"'s subscribers expose counterpart outgoing event interfaces, and the distribution code multi-casts calls to methods on the counterpart outgoing event interfaces matching the publisher'"'"'s call. - View Dependent Claims (8)
-
-
9. In a computer system, an event distribution object associated with a outgoing event interface definition, an identifier of the event distribution object'"'"'s class, and an identifier of an outgoing event interface, all defined for a publisher programmed to call methods of the outgoing event interface to cause the event distribution object to distribute events, the event distribution object comprising:
-
an outgoing event interface supported by the event distribution object and defined per the outgoing event interface definition of the publisher, a plurality of subscribeable methods exposed through the outgoing event interface;
a multicasting distribution program loop operative in response to a publisher'"'"'s call to a subscribeable method of the outgoing event interface to determine any subscribers to the subscribeable method and issue calls to counterpart methods of said any subscribers; and
plural subscriptions comprising at least one transient subscription indicating a relationship of a subscriber to an event as indicated by an interface identifier of an instance of a subscriber as a subscriber reference and at least one persistent subscription indicating a relationship of a subscriber to an event as indicated by a class identifier as a subscriber reference;
wherein the outgoing event interface supported by the event distribution object matches an interface to counterpart methods of said any subscribers.
-
Specification