Browse Prior Art Database

Publish and subscribe topic mapping in a multicast environment

IP.com Disclosure Number: IPCOM000010142D
Original Publication Date: 2002-Oct-25
Included in the Prior Art Database: 2002-Oct-25
Document File: 3 page(s) / 46K

Publishing Venue

IBM

Abstract

"Multicast" is a feature of IP-based networks which allows a message to be "broadcast" from one computer, and received by a number of other computers, where the sending computer only has to broadcast one copy of the message to the network, without any care for who (if anyone) is listening to receive it. This paper describes the use of a hashing function to hash topic names, in a publish/subscribe messaging environment, onto multicast addresses. Both the publisher and subscriber share this algorithm, and apply it consistently. A simple approach to the hash function satisfies a reasonable percentage of applications, and there is considerable advantage in having a "static" function which is "good enough", since this approach, which does not require out-of-band communication between publisher and subscribers, is a significant benefit. There is also scope for significant optimisation of the hashing function, making use of periodic feedback from subscribers about the topics they are subscribed to.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 40% of the total text.

Page 1 of 3

Publish and subscribe topic mapping in a multicast environment

"Multicast" is a feature of IP-based networks which allows a message to be "broadcast" from one computer, and received by a number of other computers. This can provide a very efficient information distribution system, where the sending computer only has to broadcast one copy of the message to the network, without any care for who (if anyone) is listening to receive it. The routers in the network ensure that a copy of the message arrives at each computer that is currently listening out for a broadcast. The computers indicate their listening status when they open a special listening multicast socket. The router receives this indication and from then on knows that a copy of broadcast messages should be sent on to that computer.

     The multicast "transmission spectrum" (to borrow a radio broadcasting analogy) is divided into an "address space" (cf frequencies), and a "port space", and a machine can broadcast on a particular (address, port) pair, and listening machines can "tune" to a particular address and port that they wish to receive broadcasts from. Most multicast implementations in the marketplace today use a single "well-known" port, on which all communication is conducted; however it should be noted that the "virtual address space" onto which topics can be mapped, can be dramatically increased by using multiple port numbers on each allocated multicast address.

     A number of software vendors have products which make use of multicast for a publish/subscribe message distribution system. In the simplest implementations, the publishers multicast to a single pre-defined multicast address, and anyone interested in receiving messages from the publisher listens on the same multicast address. Every message broadcast by the publisher arrives at each listening client, and it is up to them to filter the messages for ones that they are genuinely interested in, generally making use of the "topic" of the message, which is distinct from the main "body" of the message for ease of access in the message structure. This approach has the obvious disadvantage that every client has to examine every message, not just the ones that the client application is interested in.

     A more sophisticated approach is to employ several multicast addresses, and maintain a "catalogue" that maps topic names onto multicast addresses. When a publisher wants to publish a message on a given topic it looks up the corresponding multicast address in the catalogue and broadcasts the message on that address. The listening clients are also aware of this catalogue, and only listen on addresses that correspond to topics in which they are interested.

     It may be necessary to map several topics to the same multicast address, so as to reduce the number of addresses that each client has to listen to (and in extreme cases there may be more topics in use than there are available multicast addresses). The catalogue needs to be modifi...