Method and system for managing subscriptions using a publisher tree
First Claim
1. A method for managing notification subscriptions, comprising the steps of:
- (a) sending a request to a child notification publisher to send a notification message to at least one subscriber on the child notification publisher'"'"'s subscriber list, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notifications of a subset of the events managed by its parent notification publisher;
(b) sending the notification message to the at least one subscriber on the child notification publisher'"'"'s subscriber list; and
(c) sending a request to said parent notification publisher by the child notification publisher to send the notification message to at least one subscriber on the parent notification publisher'"'"'s subscriber list.
8 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and system for managing subscriptions in a software system. The method includes sending a request to a child notification publisher to send a notification message to at least one subscriber on the child, notification publisher'"'"'s subscriber list; sending the notification message to the subscribers on the child notification publisher'"'"'s subscriber list; and sending a request to a parent notification publisher to send the notification message to the at least one subscriber on the parent notification publisher'"'"'s subscriber list. The method and system in accordance with the present invention utilizes a publisher tree for managing subscriptions. This tree allows event subscribers to request subscriptions at a granular level without requiring the event subscribers who do not need a granular subscription to have multiple subscriptions to receive whole categories of messages from event sources. Further, this tree does not require the event sources to know anything about the event subscribers or what messages they are interested in receiving. Event sources only need to know the most granular level of subscriptions that the system supports, i.e., the leaf nodes of the tree. The structure of the publisher tree may thus be dynamically altered without the need to rewrite the programs at the event sources and subscribers. If the leaf nodes change, then the event sources will require minimal modifications, and the event subscribers will require updating. These changes may be implemented at run-time. The present invention also requires less event processing time and memory than conventional methods.
16 Citations
16 Claims
-
1. A method for managing notification subscriptions, comprising the steps of:
-
(a) sending a request to a child notification publisher to send a notification message to at least one subscriber on the child notification publisher'"'"'s subscriber list, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notifications of a subset of the events managed by its parent notification publisher;
(b) sending the notification message to the at least one subscriber on the child notification publisher'"'"'s subscriber list; and
(c) sending a request to said parent notification publisher by the child notification publisher to send the notification message to at least one subscriber on the parent notification publisher'"'"'s subscriber list. - View Dependent Claims (2, 3, 4, 5, 6, 7)
(a1) creating the notification message; and
(a2) calling a send method of the child notification publisher, wherein the notification message is passed as a parameter.
-
-
3. The method of claim 1, wherein the sending step (b) comprises:
-
(b1) retrieving an address of each notification port on the child notification publisher'"'"'s subscriber list; and
(b2) calling a post method, wherein the notification message and the address of each notification port on the child notification publisher'"'"'s subscriber list are passed as parameters.
-
-
4. The method of claim 1, wherein the sending step (c) comprises:
-
(c1) determining if the child notification publisher has a reference to the parent notification publisher;
(c2) calling a send method of the parent notification publisher if the child notification publisher has a reference to the parent notification publisher, wherein the notification message is passed as a parameter.
-
-
5. The method of claim 1, further comprising:
-
(d) considering the parent notification publisher as the child notification publisher; and
(e) returning to step (b).
-
-
6. The method of claim 1, wherein the child notification publisher'"'"'s subscriber list comprises a plurality of addresses of notification ports registered to receive notification messages from the child notification publisher.
-
7. The method of claim 6, wherein registering the notification ports comprises the steps of:
-
(1) creating a notification port by an event subscriber;
(2) calling the child notification publisher by the event subscriber, wherein the address of the notification port is passed as a parameter; and
(3) adding the address of the notification port to the child notification publisher'"'"'s subscriber list.
-
-
8. A method for managing notification subscriptions, comprising the steps of:
-
(a) sending a request to a child notification publisher to send a notification message to at least one subscriber on the child notification publisher'"'"'s subscriber list, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notifications of a subset of events managed by its parent notification publisher;
(b) retrieving an address of each notification port on the child notification publisher'"'"'s subscriber list;
(c) calling a post method, wherein the notification message and the address of each notification port on the child notification publisher'"'"'s subscriber list are passed as parameters;
(d) determining if the child notification publisher has a reference to a parent notification publisher; and
(e) calling a send method of the parent notification publisher to send the notification message to at least one subscriber on the parent notification publisher'"'"'s subscriber list if the child notification publisher has a reference to the parent notification publisher, wherein the notification message is passed as a parameter. - View Dependent Claims (9, 10, 11)
(a1) creating the notification message; and
(a2) calling a send method of the child notification publisher, wherein the notification message is passed as a parameter.
-
-
10. The method of claim 8, further comprising:
-
(f) considering the parent notification publisher as the child notification publisher; and
(g) returning to step (b).
-
-
11. The method of claim 8, wherein a registering of each notification port on the child notification publisher'"'"'s subscriber list comprises the steps of:
-
(1) creating the notification port by an event subscriber;
(2) calling the child notification publisher by the event subscriber, wherein the address of the notification port is passed as a parameter; and
(3) adding the address of the notification port to the child notification publisher'"'"'s subscriber list.
-
-
12. A method for managing notification subscriptions, comprising the steps of:
-
(a) creating a notification message;
(b) calling a send method of a child notification publisher, wherein the notification message is passed as a parameter, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notification of a subset of events managed by its parent notification publisher;
(c) retrieving an address of each notification port on the child notification publisher'"'"'s subscriber list;
(d) calling a post method, wherein the notification message and the address of each notification port on the child notification publisher'"'"'s subscriber list are passed as parameters;
(e) determining if the child notification publisher has a reference to a parent notification publisher;
(f) calling a send method of the parent notification publisher to send the notification message to at least one subscriber on the parent notification publisher'"'"'s subscriber list if the child notification publisher has a reference to the parent notification publisher, wherein the notification message is passed as a parameter;
(g) considering the parent notification publisher as the child notification publisher; and
(h) returning to step (c).
-
-
13. A system for managing subscriptions, comprising:
-
a plurality of event subscribers;
a plurality of notification ports for delivery of notification messages to a corresponding event subscriber;
at least one event source; and
a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events from the at least one event source, wherein each child notification publisher manages notifications for a subset of events managed by its parent notification publisher, each notification publisher comprising;
a subscriber list for its set of events, comprising addresses of notification ports; and
a reference to a parent notification publisher, wherein each notification publisher sends a notification message concerning its set of events on the at least one event source to each notification port on the subscriber list;
wherein each notification publisher sends a request to the parent notification publisher to send the notification message to each notification port on the parent notification publisher'"'"'s subscriber list.
-
-
14. A system for managing subscriptions, comprising:
-
means for sending a request to a child notification publisher to send a notification message to at least subscriber on the child notification publisher'"'"'s subscriber list, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notifications of a subset of events managed by its parent notification publisher;
means for sending the notification message to the subscribers on the child notification publisher'"'"'s subscriber list; and
means for ending a request to said parent notification publisher by the child notification publisher to send the notification message to the at least one subscriber on the parent notification publisher'"'"'s subscriber list.
-
-
15. A computer readable medium with program instructions for managing subscriptions, including the instructions for:
-
(a) sending a request to a child notification publisher to send a notification message to at least one subscriber on the child notification publisher'"'"'s subscriber list, wherein the child notification publisher is one of a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events for an event source, wherein each child notification publisher manages notifications for a subset of events managed by its parent notification publisher;
(b) sending the notification message to the subscribers on the child notification publisher'"'"'s subscriber list; and
(c) sending a request to said parent notification publisher by the child notification publisher to send the notification message to the at least one subscriber on the parent notification publisher'"'"'s subscriber list.
-
-
16. A digital imaging device, comprising:
-
an imaging device;
at least one hardware element pertaining to a user interface; and
a computer coupled to the imaging device and the at least one hardware, comprising;
a central processing unit; and
a memory coupled to the central processing unit, the memory containing program instructions for providing a plurality of notification publishers organized in a tree structure, wherein each of the plurality of notification publishers manages notifications of a particular set of events from the at least one event source, wherein each child notification publisher manages notifications of a subset of events managed by its parent notification publisher, each notification publisher comprising;
a subscriber list for its set of events, comprising addresses of notification ports, and a reference to a parent notification publisher, wherein each notification publisher sends a notification message concerning its set of events on at least one event source to each notification port on the subscriber list, wherein each notification publisher sends a request to the parent notification publisher to send the notification message to each notification port on the parent notification publisher'"'"'s subscriber list.
-
Specification