Claims
- 1. A method of communication in a publish/subscribe environment in which publisher programs send messages to subscriber programs via one or more message brokering systems, the method comprising the following steps:
responsive to receipt of a published message at a message broker, referring to characteristics of the received message and subscriber-specified quality of service requirements to determine an appropriate quality or service for onward transmission of the message; selecting a communication protocol in accordance with the determined quality of service; and transmitting the message using the selected communication protocol.
- 2. A method according to claim 1, wherein the subscriber-specified quality of service requirements include an indication of whether transactional message delivery is required, and wherein the protocol selecting step comprises selecting a transactional communication protocol at least for transactional messages which match subscriptions including said transactional message delivery requirement.
- 3. A method according to claim 1, wherein the subscriber-specified quality of service requirements include an indication of whether transactional message delivery is required, and wherein the protocol selecting step comprises selecting a non-transactional communications protocol for messages for which matching subscriptions do not include said transactional message delivery requirement.
- 4. A method according to claim 3, wherein the protocol selecting step comprises selecting a non-transactional communications protocol for any messages marked as non-persistent and for any messages for which matching subscriptions do not include said transactional message delivery requirement.
- 5. A method according to claim 1, for communication between first and second message brokering systems in a multi-broker network, wherein the first message brokering system is configured to access a repository storing subscriber-specified quality of service requirements for subscriber programs which connect to the broker network via the second message brokering system, and wherein the first message brokering system determines a quality of service for the communication by referring to the subscriber-specified quality of service requirements for the subscriber programs which connect to the broker network via the second message brokering system.
- 6. A method according to claim 5, wherein the second brokering system sends to the repository aggregate quality of service requirements for the set of subscriber programs which connect to the broker network via the second message brokering system.
- 7. A method according to claim 6, wherein each brokering system in a multi-broker network sends to its connected message brokering systems aggregate quality of service requirements for the set of subscriber programs which are accessible via that brokering system.
- 8. A method according to claim 5, wherein the second brokering system sends to the repository subscriber-specific quality of service requirements for each subscriber program which connects to the broker network via the second message brokering system.
- 9. A method according to claim 5, wherein the second brokering system sends to the repository separate quality of service requirements for each of a plurality of different topics or topic groups.
- 10. A method according to claim 5, wherein the subscriber-specified quality of service requirements include an indication of whether transactional message delivery is required, and wherein the protocol selecting step comprises selecting a transactional communication protocol for transactional messages which match subscriptions including said transactional message delivery requirement.
- 11. A method according to claim 10, wherein a non-transactional message delivery protocol is selected for any messages for which matching subscriptions do not include said transactional message delivery requirement.
- 12. A method according to claim 5, including applying one or more override policy rules to determine whether to override a specified quality of service when no communication connections are available which provide the specified quality of service.
- 13. A method according to claim 12, wherein the override policy rules are message topic specific.
- 14. A method according to claim 12, wherein the override policy rules are subscriber specific.
- 15. A method according to claim 5, wherein the first and second message brokering systems are configured for establishing a plurality of communication connections there between, each connection providing a different quality of service, and wherein the selection of a communication protocol by the first message brokering system includes determining which of the plurality of connections are currently available for sending a message to the second brokering system and selecting a communication protocol provided by a currently available connection in accordance with the determined quality of service.
- 16. A method according to claim 15, including applying one or more override policy rules to determine whether to override a specified quality of service when no communication connections are currently available which provide the specified quality of service.
- 17. A method according to claim 1, wherein the message broker determines an appropriate quality of service by determining which subset of subscribers are currently connected to the message brokering system and referring to the subscriber-specified quality of service requirements for only the currently connected subset of subscribers.
- 18. A method according to claim 17, wherein the subscriber-specified quality of service requirements include an indication of whether transactional message delivery is required, and wherein the protocol selecting step comprises selecting a transactional communication protocol for messages which match subscriptions which include said transactional message delivery requirement, for only the currently connected subset of subscribers.
- 19. A method according to claim 18, wherein a non-transactional message delivery protocol is selected for any messages for which matching subscriptions do not include said transactional message delivery requirement.
- 20. A method according to claim 17, for communication between first and second message brokering systems in a multi-broker network, wherein the first message brokering system is configured to access a repository storing subscriber-specified quality of service requirements for subscriber programs which connect to the broker network via the second message brokering system and wherein the first message brokering system determines a quality of service for the communication by referring to the subscriber-specified quality of service requirements for the subscriber programs which connect to the broker network via the second message brokering system and by referring to connection status information for connections between the first and second brokering systems.
- 21. A method according to claim 17, for communication between first and second message brokering systems in a multi-broker network, wherein the first message brokering system is configured to access a repository storing subscriber-specified quality of service requirements for subscriber programs which connect to the broker network via the second message brokering system and wherein the first message brokering system determines a quality of service for the communication by referring to the subscriber-specified quality of service requirements for the subscriber programs which connect to the broker network via the second message brokering system and by referring to connection status information for connections to said subscriber programs.
- 22. A message brokering system, configured to provide a publish/subscribe service for publisher and subscriber programs, comprising:
means, responsive to receipt of a published message at the message brokering system, for determining an appropriate quality of service for onward transmission of the message in accordance with subscriber-specified quality of service requirements for the received message; means for selecting a communication protocol in accordance with the determined quality of service; and means for transmitting the message using the selected communication protocol.
- 23. A data processing system comprising:
at least a first and a second message brokering systems, configured to provide a publish/subscribe service for publisher and subscriber programs, the data processing system being configured to establish a plurality of communication connections between the first and second brokering systems, each connection providing a different quality of service, wherein the first message brokering system includes:
means, responsive to receipt of a published message at the first message brokering system, for determining an appropriate quality of service for transmission of the message to the second brokering system in accordance with subscriber-specified quality of service requirements for the received message; means for selecting a communication protocol provided by one of said communication connections, in accordance with the determined quality of service; and means for transmitting the message to the second brokering system using the selected communication connection.
- 24. A computer program product for providing a publish/subscribe service for publisher and subscriber programs, comprising program code recorded on a machine-readable recording medium, the program code comprising:
means, responsive to receipt of a message from a publisher program, for determining an appropriate quality of service for onward transmission of the message in accordance with subscriber-specified quality of service requirements for the received message; means for selecting a communication protocol in accordance with the determined quality of service; and means for transmitting the message using the selected communication protocol.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application is related to commonly assigned, co-pending patent application U.S. Ser. No. ______ (attorney reference GB9-2001-076) which is incorporated herein by reference.