Middleware for enterprise information distribution
First Claim
1. A method of facilitating the routing an event in a data processing system, between a publisher, which publishes events, and a subscriber, which subscribes to events, the data processing system having a plurality of interconnected hubs, where the publisher is connected to a publisher hub and the subscriber is connected to a subscriber hub, the method comprising the steps, performed by the data processing system, of:
- providing a data structure in a memory of at least the publisher hub and the subscriber hub, where each hub containing the data structure is termed a current hub and all hubs connected to a current hub are neighbor hubs of the current hub, the data structure indicating which neighbor hub is on a least-cost-path between the publisher'"'"'s hub and the subscriber'"'"'s hub, the data structure being created by the current hub in accordance with information about physical hub connections, event types, advertisements, routes, and subscriptions of the system;
sending the event, by the publisher hub, to one of its neighbor hubs, the data structure in the publisher hub indicating that the neighbor hub is on the least-cost path to the subscriber;
receiving the event, by the subscriber hub;
determining, by the subscriber hub, in accordance with that hub'"'"'s data structure, that the subscriber has subscribed to the event; and
sending, by the hub connected to the subscriber, the event to the subscriber.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for publishing and receiving events to and from a network. A plurality of "publisher" entities publish information and a plurality of "subscriber" entities request and use the information. Publishers and subscribers are connected to each other through a network. The network is a "store and forward" network whose routing is "content-based." The basic quanta of information is called an "event." Publishers publish events and subscribers subscribe to events that match criteria defined by the subscriber. Publication and subscription are performed asynchronously. Publishers and subscribers do not have direct knowledge of each other. The system receives a published event from a publisher and routes the event to all appropriate subscribers. Each subscriber is guaranteed to receive all events published on the system if, and only if, they match the subscription criteria specified by the subscriber. A legacy data base can be added to the network by way of a data base connector, which can be a publisher, a subscriber, or both.
-
Citations
20 Claims
-
1. A method of facilitating the routing an event in a data processing system, between a publisher, which publishes events, and a subscriber, which subscribes to events, the data processing system having a plurality of interconnected hubs, where the publisher is connected to a publisher hub and the subscriber is connected to a subscriber hub, the method comprising the steps, performed by the data processing system, of:
-
providing a data structure in a memory of at least the publisher hub and the subscriber hub, where each hub containing the data structure is termed a current hub and all hubs connected to a current hub are neighbor hubs of the current hub, the data structure indicating which neighbor hub is on a least-cost-path between the publisher'"'"'s hub and the subscriber'"'"'s hub, the data structure being created by the current hub in accordance with information about physical hub connections, event types, advertisements, routes, and subscriptions of the system; sending the event, by the publisher hub, to one of its neighbor hubs, the data structure in the publisher hub indicating that the neighbor hub is on the least-cost path to the subscriber; receiving the event, by the subscriber hub; determining, by the subscriber hub, in accordance with that hub'"'"'s data structure, that the subscriber has subscribed to the event; and sending, by the hub connected to the subscriber, the event to the subscriber. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of facilitating routing an event in a data processing system, between a publisher, which publishes events, and a subscriber, which subscribes to events, the data processing system having a plurality of interconnected hubs, where the publisher is connected to a publisher hub and the subscriber is connected to a subscriber hub, the method comprising the steps, performed by the data processing system, of:
-
distributing information, among the plurality of hubs, about the interconnections between the plurality of hubs; distributing information, among the plurality of hubs, identifying event types of events that the publisher may publish; distributing, among the plurality of hubs, advertisements that describe events that the publisher may publish; distributing, among the plurality of hubs, information about routes between the plurality of hubs; informing the plurality of hubs that the subscriber has subscribed to a type of event; and creating a data structure in at least the publisher hub and the subscriber hub, where each hub containing the data structure is termed a current hub and all hubs connected to a current hub are neighbor hubs of the current hub, the data structure indicating which neighbor hub is on a least-cost-path between the publisher'"'"'s hub and the subscriber'"'"'s hub, the data structure being created by the current hub in accordance with the information about physical hub connections, event types, advertisements, routes, and subscriptions. - View Dependent Claims (17, 18)
-
-
19. A system that facilitates routing an event in a data processing system having a plurality of interconnected hubs, comprising:
-
a publisher connected to a publisher hub of the plurality of hubs, which publishes event; a subscriber connected to a subscriber hub of the plurality of hubs, which subscribes to events; a memory containing a data structure, located in at least the publisher hub and the subscriber hub, where each hub containing the data structure is termed a current hub and all hubs connected to a current hub are neighbor hubs of the current hub, the data structure indicating which neighbor hub is on a least-cost-path between the publisher'"'"'s hub and the subscriber'"'"'s hub, the data structure being created by the current hub in accordance with information about physical hub connections, event types, advertisements, routes, and subscriptions of the system; a sending portion, in the publisher hub, configured to send the event to one of the publisher hub'"'"'s neighbor hubs, the data structure in the publisher hub indicating that the neighbor hub is on the least-cost path to the subscriber; and a receiving portion, in the subscriber hub, configured to receive the event from a neighbor hub; a determining portion, in the subscriber hub, in accordance with that subscriber hub'"'"'s data structure, that the subscriber has subscribed to the event; and a sending portion, in the subscriber hub, configured to send the event to the subscriber.
-
-
20. A computer program product having:
-
a computer usable medium having computer readable code embodied therein for facilitating routing an event between a publisher and a subscriber in a network of interconnected hubs, the computer program product comprising; computer readable program code devices configured to cause a computer to effect provision of a data structure in a memory of at least the publisher hub and the subscriber hub, where each hub containing the data structure is termed a current hub and all hubs connected to a current hub are neighbor hubs of the current hub, the data structure indicating which neighbor hub is on a least-cost-path between the publisher'"'"'s hub and the subscriber'"'"'s hub, the data structure being created by the current hub in accordance with information about physical hub connections, event types, advertisements, routes, and subscriptions of the system; computer readable program code devices configured to cause a computer to effect sending the event, by the publisher hub, to one of its neighbor hubs, the data structure in the publisher hub indicating that the neighbor hub is on the least-cost path to the subscriber; and computer readable program code devices configured to cause a computer to effect receiving the event, by the subscriber hub; computer readable program code devices configured to cause a computer to effect determining, by the subscriber hub, in accordance with that hub'"'"'s data structure, that the subscriber has subscribed to the event; and computer readable program code devices configured to cause a computer to effect sending, by the hub connected to the subscriber, the event to the subscriber.
-
Specification