Electrical computers and digital processing systems: multicomput – Computer-to-computer protocol implementing – Computer-to-computer data streaming
Reexamination Certificate
1998-06-25
2001-01-30
Luu, Le Hien (Department: 2756)
Electrical computers and digital processing systems: multicomput
Computer-to-computer protocol implementing
Computer-to-computer data streaming
C709S224000, C707S793000, C707S793000
Reexamination Certificate
active
06182143
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to the field of data processing and more specifically to data processing which distributes messages from suppliers (called, hereinafter, “publishers”) of data messages to consumers (called, hereinafter “subscribers”) of such messages.
BACKGROUND OF THE INVENTION
Publish/subscribe data processing systems have become very popular in recent years as a way of distributing data messages from publishing computers to subscribing computers. The increasing popularity of the Internet, which has connected a wide variety of computers all over the world, has helped to make such publish/subscribe systems even more popular. Using the Internet, a World Wide Web browser application (the term “application” or “process” refers to a software program, or portion thereof, running on a computer) can be used in conjunction with the publisher or subscriber in order to graphically display messages. Such systems are especially useful where data supplied by a publisher is constantly changing and a large number of subscribers needs to be quickly updated with the latest data. Perhaps the best example of where this is useful is in the distribution of stock market data.
In such systems, publisher applications of data messages do not need to know the identity or location of the subscriber applications which will receive the messages. The publishers need only connect to a publish/subscribe distribution agent process, which is included in a group of such processes making up a broker system (referred to hereafter as a broker), and send messages to the distribution agent process, specifying the subject of the message to the distribution agent process. The distribution agent process then distributes the published messages to subscriber applications which have previously indicated to the broker that they would like to receive data messages on particular subjects. Thus, the subscribers also do not need to know the identity or location of the publishers. The subscribers need only connect to a distribution agent process.
One such publish/subscribe system which is currently in use is shown in FIG.
1
. Publishers
11
and
12
connect to the publish/subscribe broker
2
and send published messages to broker
2
which distributes the messages to subscribers
31
,
32
,
33
,
34
. Publishers
11
and
12
, which are data processing applications which output data messages, connect to broker
2
using the well known inter-application data connection protocol known as remote procedure call (or RPC). Each publisher application could be running on a separate machine, alternatively, a single machine could be running a plurality of publisher applications. The broker
2
is made up of a plurality of distribution agents (
21
through
27
) which are connected in a hierarchial fashion which will be described below as a “tree structure”. These distribution agents, each of which could be running on a separate machine, are data processing applications which distribute data messages through the broker
2
from publishers to subscribers. Subscriber applications
31
,
32
,
33
and
34
connect to the broker
2
via RPC in order to receive published messages.
Publishers
11
and
12
first connect via RPC directly to a root distribution agent
21
which in turn connects via RPC to second level distribution agents
22
and
23
which in turn connect via RPC to third level distribution agents
24
,
25
,
26
and
27
(also known as “leaf distribution agents” since they are the final distribution agents in the tree structure). Each distribution agent could be running on its own machine, or alternatively, groups of distribution agents could be running on the same machine. The leaf distribution agents connect via RPC to subscriber applications
31
through
34
, each of which could be running on its own machine.
In order to allow the broker
2
to determine which published messages should be sent to which subscribers, publishers provide the root distribution agent
21
with the name of a distribution stream for each published message. A distribution stream (called hereinafter a “stream”) is an ordered sequence of messages having a name (e.g., “stock” for a stream of stock market quotes) to distinguish the stream from other streams. Likewise, subscribers provide the leaf distribution agents
31
through
34
with the name of the streams to which they would like to subscribe. In this way, the broker
2
keeps track of which subscribers are interested in which streams so that when publishers publish messages to such streams, the messages can be distributed to the corresponding subscribers. Subscribers are also allowed to provide filter expressions to the broker in order to limit the messages which will be received on a particular stream (e.g., a subscriber
31
interested in only IBM stock quotes could subscribe to the stream “stock” by making an RPC call to leaf distribution agent
24
and include a filter expression stating that only messages on the “stock” stream relating to IBM stock should be sent to subscriber
31
).
Oftentimes, it is necessary for a distribution agent to inform its “children” (i.e., the distribution agents directly underneath the distribution agent) of some event, so that the children can take some appropriate action. For example, if distribution agent
22
should lose its connection to its parent (the root distribution agent
21
), distribution agent
22
needs to inform its children distribution agents
24
and
25
so that such children can take an appropriate action which has been pre-configured by the systems administrator (e.g., the distribution agents
24
and
25
could either try to connect to another parent, such as distribution agent
23
, or they could simply stay with distribution agent
22
and wait until distribution agent
22
regains its connection with the root distribution agent
21
).
In the prior art publish/subscribe broker, this type of communication between a parent distribution agent and its children has involved the parent having to send a dedicated command, outside of the normal publish/subscribe message flow. This increases the types of traffic flowing between distribution agents. Further, one child may receive messages in a different order as compared to one of its siblings, due to the fact that the parent must send separate commands to each child. Accordingly, the prior state of the art in this area has resulted in an inefficient use of available resources and a generally unsatisfactory architectural approach.
SUMMARY OF THE INVENTION
According to one aspect, the present invention provides a publish/subscribe data processing broker apparatus having: a means for receiving from a publisher application data messages published on a subject-specific stream by the publisher application; and a means for distributing the received published data messages to a subscriber application which has requested to receive messages on the stream upon which the published messages were published, the means for distributing including a plurality of connected distribution agent data processing units; wherein one of the streams is reserved for messages published by a publishing distribution agent data processing unit and intended for receipt by a subscribing distribution agent data processing unit located adjacent the publishing distribution agent data processing unit or intended for receipt by a subscriber application located adjacent the publishing distribution agent data processing unit.
According to a second aspect, the present invention provides a publish/subscribe data processing broker apparatus having: a means for receiving from a publisher application data messages published on a subject-specific stream by the publisher application; and a means for distributing the received published data messages to a subscriber application which has requested to receive messages on the stream upon which the published messages were published, the means for distributing including a plurality of distribution agent data processing units arranged in a hierarchial structu
Hastings Andrew Blair
Ramaswamy Shankar
Schmitz Donald Edwin
Wang Qinhua
Young Michael Wayne
Farah Farzaneh
International Business Machines - Corporation
Luu Le Hien
Ray-Yarletts Jeanine S.
LandOfFree
Publish and subscribe data processing apparatus, method and... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Publish and subscribe data processing apparatus, method and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Publish and subscribe data processing apparatus, method and... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2501477