System and method of exchanging information between software modules
First Claim
1. A system for exchanging information between software modules of an object-oriented software program, said system comprising:
- a broker comprising a first look-up table for registering software modules including notifiers, which notify other modules of the occurrence of one or more triggering events having corresponding event classes, and a second look-up table for registering software modules including observers, which are to receive notification of one or more triggering events having corresponding event classes;
a first notifier created by the object-oriented software program and adapted to detect the occurrence of a first predetermined triggering event having a first event class; and
a first observer created by the object-oriented software program interested in receiving notification of the occurrence of predetermined triggering events having a second event class wherein, said broker adding said first notifier to said first look-up table when said first notifier is created by the object-oriented software program, said broker adding said first observer to said second look-up table when said first observer sends a subscribe message to said broker; and
said broker is adapted to compare said first look-up table with said second lookup table such that, upon said broker'"'"'s detecting that said first event class and said second event class are the same, said broker instructs said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event.
19 Assignments
0 Petitions
Accused Products
Abstract
A system includes a brokering arrangement for exchanging information between software modules including notifiers which detect triggering events having corresponding event classes and observers interested in receiving notification of the happenings of the triggering events. The system includes a broker, observers, and notifiers. The software modules are created in discrete addressable locations of a single computer'"'"'s memory or the memories of multiple computers interconnected through a network. The broker maintains one or more look-up tables having the identities and memory or network locations of all notifier and observer software modules existing in the system, as well as the classes of events with which the modules are concerned. Upon creation of a new notifier or subscription to the broker by an observer module, the broker adds the newly-created module to the one or more look-up tables, which the broker then scans to match notifiers and observers having common event classes. If the broker determines that a notifier and observer share an event class, the broker instructs the notifier to send notification of the happening of the triggering event directly to the observer. The broker, then assists notifiers and observers in establishing direct callback interfaces, but is not involved in later communications between the notifiers and observers after the callback interfaces are established. As new modules are created, and as old modules are removed and/or re-created, the look-up tables are updated and the observers are notified accordingly, thereby permitting so-called “hot swapping” of software components.
-
Citations
25 Claims
-
1. A system for exchanging information between software modules of an object-oriented software program, said system comprising:
-
a broker comprising a first look-up table for registering software modules including notifiers, which notify other modules of the occurrence of one or more triggering events having corresponding event classes, and a second look-up table for registering software modules including observers, which are to receive notification of one or more triggering events having corresponding event classes;
a first notifier created by the object-oriented software program and adapted to detect the occurrence of a first predetermined triggering event having a first event class; and
a first observer created by the object-oriented software program interested in receiving notification of the occurrence of predetermined triggering events having a second event class wherein, said broker adding said first notifier to said first look-up table when said first notifier is created by the object-oriented software program, said broker adding said first observer to said second look-up table when said first observer sends a subscribe message to said broker; and
said broker is adapted to compare said first look-up table with said second lookup table such that, upon said broker'"'"'s detecting that said first event class and said second event class are the same, said broker instructs said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for exchanging information between software modules, said system comprising:
-
a broker comprising a first look-up table for registering modules, notifiers, which notify other modules of the occurrence of one or more triggering events having corresponding event classes and a second look-up table for registering modules, observers, which are to receive notification of one or more triggering events having corresponding event classes;
a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class; and
a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class wherein, said broker adding said first notifier to said first look-up table when said first notifier is created, said broker adding said first observer to said second look-up table when said first observer sends a subscribe message to said broker; and
said broker is adapted to compare said first look-up table with said second lookup table such that, upon said broker'"'"'s detecting that said first event class and said second event class are the same, said broker instructs said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event, wherein said broker further comprises a third look-up table for registering notifier-observer connections thereon, one of said notifier-observer connections being added to said third look-up table when said first event class and said second event class are the same.
-
-
9. A system for exchanging information between software modules, said system comprising:
-
a broker comprising a first look-up table for registering modules, notifiers, which notify other modules of the occurrence of one or more triggering events having corresponding event classes and a second look-up table for registering modules, observers, which are to receive notification of one or more triggering events having corresponding event classes;
a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class; and
a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class; and
a creator adapted to create software modules and wherein said broker adds said creator to said first look-up table when said broker is created, said broker adding said first notifier to said first look-up table when said first notifier is created, said broker adding said first observer to said second look-up table when said first observer sends a subscribe message to said broker; and
said broker is adapted to compare said first look-up table with said second look-up table such that, upon said broker'"'"'s detecting that said first event class and said second event class are the same, said broker instructs said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event.
-
-
10. A system for exchanging information between software modules, said system comprising:
-
a broker comprising a first look-up table for registering modules, notifiers, which notify other modules of the occurrence of one or more triggering events having corresponding event classes and a second look-up table for registering modules, observers, which are to receive notification of one or more triggering events having corresponding event classes;
a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class; and
a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class wherein, said broker adding said first notifier to said first look-un table when said first notifier is created, said broker adding said first observer to said second look-up table when said first observer sends a subscribe message to said broker; and
said broker is adapted to compare said first look-up table with said second lookup table such that, upon said broker'"'"'s detecting that said first event class and said second event class are the same, said broker instructs said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event, wherein said broker adds said broker to said second look-up table when said broker is created.
-
-
11. A method for exchanging information between software modules of an object-oriented software program, comprising the steps of:
-
creating, by the object-oriented software program, a broker including a first look-up table and a second look-up table;
creating, by the object-oriented software program, a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating, by the object-oriented software program, a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table; and
,said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same. - View Dependent Claims (12, 13, 14, 15, 16)
said first notifier detecting the occurrence of said first predetermined triggering event; and
,said first notifier notifying said first observer of the occurrence of said first predetermined triggering event, said first event class and said second event class being the same.
-
-
13. The method for exchanging information between software modules as claimed in claim 11 further comprising the step of:
- said broker adding a notifier-observer connection to a third look-up table when said first event class and said second event class are the same.
-
14. The method for exchanging information between software modules as claimed in claim 11 further comprising the steps of:
-
creating, by the object-oriented software program, a second observer interested in receiving notification of the occurrence of predetermined triggering events having a third event class;
said broker listing said second observer with said third event class in said second look-up table when said second observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table; and
,said broker instructing said first notifier to notify said second observer directly of the occurrence of said first predetermined triggering event if said first event class and said third event class are the same.
-
-
15. The method for exchanging information between software modules as claimed in claim 14 further comprising the steps of:
-
said broker creating a second notifier adapted to detect the occurrence of a second predetermined triggering event having a fourth event class;
said broker listing said second notifier with said fourth event class in said first look-up table upon creation of said second notifier;
said broker comparing said first look-up table with said second look-up table; and
,said broker instructing said second notifier to notify said second observer directly of the occurrence of said second predetermined triggering event if said third event class and said fourth event class are the same.
-
-
16. The method for exchanging information between software modules as claimed in claim 11 further comprising the steps of:
-
creating, by the object-oriented software program, a second notifier adapted to detect the occurrence of a second predetermined triggering event having a third event class;
said broker listing said second notifier with said third event class in said first look-up table upon creation of said second notifier;
said broker comparing said first look-up table with said second look-up table; and
,said broker instructing said second notifier to notify said first observer directly of the occurrence of said second predetermined triggering event if said second event class and said third event class are the same.
-
-
17. A method for exchanging information between software modules, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same; and
said broker adding said broker to said second look-up table when said broker is created.
-
-
18. A method for exchanging information between software modules, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same; and
providing a creator adapted to create software modules; and
said broker adding said creator to said first look-up table when said broker is created. - View Dependent Claims (19)
said creator adding said first notifier to a registry after said step of creating said first notifier; and
,said creator adding said first observer to said registry after said step of creating said first observer.
-
-
20. A method for exchanging information between software modules, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same; and
said broker querying each notifier listed in said first look-up table to determine if each notifier is in service;
said broker removing each notifier from said first look-up table which is not in service; and
said broker noting all observers of each notifier which is removed from said first look-up table. - View Dependent Claims (21)
-
-
22. A method for exchanging information between software modules the steps of, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same;
said broker querying each observer listed in said second look-up table to determine if each observer is in service;
said broker removing each observer from said second look-up table which is not in service; and
said broker noting all notifiers of each observer which is removed from said second look-up table. - View Dependent Claims (23)
-
-
24. A method for exchanging information between software modules, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same;
removing said first notifier from said first look-up table;
said broker comparing said first look-up table with said second look-up table; and
said broker informing said first observer that said first notifier is not in service if said first event class and said second event class are the same.
-
-
25. A method for exchanging information between software modules, comprising the steps of:
-
creating a broker including a first look-up table and a second look-up table;
creating a first notifier adapted to detect the occurrence of a first predetermined triggering event having a first event class;
said broker listing said first notifier with said first event class in said first look-up table upon creation of said first notifier;
creating a first observer interested in receiving notification of the occurrence of predetermined triggering events having a second event class;
said broker listing said first observer with said second event class in said second look-up table when said first observer subscribes to said broker;
said broker comparing said first look-up table with said second look-up table;
said broker instructing said first notifier to notify said first observer directly of the occurrence of said first predetermined triggering event if said first event class and second event class are the same;
removing said first observer from said second look-up table;
said broker comparing said first look-up table with said second look-up table; and
,said broker instructing said first notifier to cease notifying said first observer of the occurrence of said first predetermined triggering event if said first event class and said second event class are the same.
-
Specification