Hierarchical publish and subscribe system
First Claim
1. A computer-implemented method of subscribing and publishing a publication message, the method comprisingreceiving a first subscription request at a remote relay from a first client, wherein the first subscription request includes a target;
- transmitting a subscription message from the remote relay to a single one of a plurality of central relays based on the first subscription request, wherein the transmitting includes the remote relay subscribing to the single one of a plurality of central relays on behalf of the first client and wherein the subscription message includes the target;
entering a subscription, at the single one of a plurality of central relays, based on the received subscription message and not forwarding the received subscription message;
receiving a publication message at the remote relay from a second client, wherein the publication message includes a pattern;
transmitting the publication message to each of the central relays of the plurality of central relays,determining, by the remote relay, that the target from the subscription request matches at least a portion of the pattern in the publication message; and
transmitting at least a portion of the publication message from the remote relay to the first client.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of publishing a publication message includes receiving, at one of a plurality of first relays, a subscription request from a first client and transmitting the subscription request from the one of the plurality of first relays to only one of a plurality of central relays. The method also includes receiving, at another of the plurality of first relays, a publication request from a second client. The publication request includes the publication message. The method further includes transmitting the publication message from the another of the plurality of first relays to all of the plurality of central relays, transmitting the publication message from at least one of the plurality of central relays to the one of the plurality of first relays, and transmitting the publication message from the one of the plurality of first relays to the first client.
95 Citations
17 Claims
-
1. A computer-implemented method of subscribing and publishing a publication message, the method comprising
receiving a first subscription request at a remote relay from a first client, wherein the first subscription request includes a target; -
transmitting a subscription message from the remote relay to a single one of a plurality of central relays based on the first subscription request, wherein the transmitting includes the remote relay subscribing to the single one of a plurality of central relays on behalf of the first client and wherein the subscription message includes the target; entering a subscription, at the single one of a plurality of central relays, based on the received subscription message and not forwarding the received subscription message; receiving a publication message at the remote relay from a second client, wherein the publication message includes a pattern; transmitting the publication message to each of the central relays of the plurality of central relays, determining, by the remote relay, that the target from the subscription request matches at least a portion of the pattern in the publication message; and transmitting at least a portion of the publication message from the remote relay to the first client. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method of publishing a publication message, the method comprising:
-
receiving a subscription request at a non-central relay from a client, wherein the subscription request includes a target; transmitting a subscription message from the non-central relay to a single one of a plurality of central relays based on the subscription request, wherein the transmitting includes the non-central relay subscribing to the single one of a plurality of central relays on behalf of the client and wherein the subscription message includes the target; entering a subscription, at the single one of a plurality of central relays, based on the received subscription message and not forwarding the received subscription message; receiving, at the non-central relay, the publication message from another client, wherein the publication message includes a pattern; determining that a target of the subscription request received from the client matches at least a portion of the pattern; providing at least a portion of the publication message from the non-central relay to all of a plurality of central relays; and providing at least a portion of the publication message from the non-central relay to the the client. - View Dependent Claims (7, 8)
-
-
9. A computer-implemented method for publishing a publication message, the method comprising:
-
receiving, at a first one of a plurality of central relays, a subscription request from a first client, wherein the subscription request includes a target; entering a subscription, at the first one of a plurality of central relays, based on the received subscription request and not forwarding the received subscription request; receiving, at a second one of the plurality of central relays, a publication request from a second client, the publication request including the publication message, wherein the publication message includes a pattern; determining that the target is correlated to the pattern; transmitting the publication message from the second one of the plurality of central relays to the first one of the plurality of central relays and to other central relays of the plurality of central relays; determining that a connection between the first one of the plurality of central relays and the second one of the plurality of central relays is available; and transmitting the publication message from the first one of the plurality of central relays to the first client. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for routing messages in a publish/subscribe network, the method comprising:
-
receiving a subscription request at a second remote relay from a client, wherein the subscription request includes a target; transmitting a subscription message from the second remote relay to a first central relay of a plurality of central relays based on the subscription request, wherein the transmitting includes the second remote relay subscribing to the first central relay on behalf of the first client and wherein the subscription message includes the target; entering a subscription, at the first central relay, based on the received subscription message and not forwarding the received subscription message; receiving, at the first central relay of a plurality of central relays, a publication message from a first remote relay; determining, by the first central relay, that a second central relay of the plurality of central relays, did not receive the publication message; forwarding, by the first central relay, the publication message that was received from the first remote relay to the second central relay on behalf of the first remote relay; determining, by the first central relay, that the publication message received from the first remote relay matches at least a portion of the subscription message received from the second remote relay; and providing the publication message from the second remote relay to the client. - View Dependent Claims (16, 17)
-
Specification