IP Library Granted Patent US 8,453,163
Granted Patent B2
US 8,453,163 · App. 12/458,030 · Granted May 28, 2013

Systems and/or methods for policy-based JMS broker clustering

Inventors: Vasudeva Kothamasu (Harlur Village, IN); Derek Rokicki (Western Springs, IL); Jason Simpson (Oak Hill, VA)
Assignee: Software AG USA, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,453,163
App. No.
12/458,030
Granted
May 28, 2013
Kind
B2
Abstract

The example embodiments disclosed herein relate to application integration techniques and, more particularly, to application integration techniques built around the publish-and-subscribe model (or one of its variants). In certain example embodiments, a publishing application, and first and second broker clusters are provided. Each broker cluster comprises a plurality of brokers, and each broker is configured to relay messages from the publishing application to at least one subscribing application. A composite cluster connection is associated with the publishing application, and cluster connections are associated with the composite cluster connection. The message generated by the publishing application is sent to the broker cluster in accordance with a user-defined composite policy. The message is routed from the composite cluster connection to at least one cluster connection based on a first policy layer. The messaging is routed from the at least one cluster to at least one broker based on a second policy layer.

Claims (64)

1. An application integration system, comprising:

a publishing application configured to generate and send a message, the message being sendable in accordance with a user-defined composite policy comprising at least first and second policy layers;

first and second broker clusters, each said broker cluster comprising a plurality of brokers, each said broker being configured to relay messages from the publishing application to at least one subscribing application;

a composite cluster connection associated with the publishing application; and

a plurality of cluster connections associated with the composite cluster connection;

wherein the composite cluster connection is configured to route the message to at least one said cluster connection in dependence on the first policy layer,

wherein at least one said policy layer is based on a multi-send policy that sends messages to multiple brokers,

wherein the multi-send policy is a “guaranteed” multi-send policy that is considered successful only if N out of M brokers receive the message, where N is a user-defined constant and where M is the number of brokers in the associated cluster, and

wherein each said cluster connection is configured to route the message to at least one broker in dependence on the second policy layer.

2. The system of claim 1 , wherein each said policy layer is based on one of: (a) a round robin load balancing policy, (b) a sticky load balancing policy in which a particular broker is published to until a failure occurs, at which time a different broker is published to, (c) random allocation, (d) a “document size” policy that routes messages to different brokers based on the message size, (e) a weighted round-robin policy in which each broker is assigned a weight that signifies, relative to the other brokers, how well that broker server performs and thus how many more or fewer messages may be sent to each broker compared to the other brokers, and (f) a multi-send policy that sends messages to multiple brokers.

3. The system of claim 1 , wherein the first policy layer is different from the second policy layer.

4. The system of claim 1 , wherein another multi-send policy is a “best effort” multi-send policy that is considered successful if at least one said broker receives the message.

5. The system of claim 1 , wherein the multi-send policy includes duplicate message detection, the duplicate message detection being practiced by comparing Universally Unique IDs (UUIDs) associated with the messages.

6. The system of claim 1 , wherein the multi-send policy includes message acknowledgement at at least some of the brokers.

7. The system of claim 1 , further comprising at least one subscribing application configured to receive the message from the publishing application and cause a service to be executed in dependence on the message.

8. The system of claim 1 , wherein the message is a JMS message.

9. An application integration system, comprising:

a publishing application configured to generate and send a message, the message being sendable in accordance with a user-defined composite policy comprising at least first and second policy layers;

first and second broker clusters, each said broker cluster comprising a plurality of brokers, each said broker being configured to relay messages from the publishing application to at least one subscribing application;

a composite cluster connection associated with the publishing application;

a plurality of cluster connections associated with the composite cluster connection;

a subscribing composite cluster connection associated with each said subscribing application; and

a plurality of subscribing cluster connections associated with the subscribing composite cluster connection,

wherein the composite cluster connection is configured to route the message to at least one said cluster connection in dependence on the first policy layer,

wherein each said cluster connection is configured to route the message to at least one broker in dependence on the second policy layer,

wherein each said subscribing composite cluster connection is configured to route an acknowledgement message to at least one said subscribing cluster connection in dependence on a first subscribing policy layer, and

wherein each said subscribing cluster connection is configured to route the message to at least one broker in dependence on a subscribing policy layer.

10. In an application integration system, a message routing method comprising:

providing a publishing application;

providing first and second broker clusters, each said broker cluster comprising a plurality of brokers, each said broker being configured to relay messages from the publishing application to at least one subscribing application;

associating a composite cluster connection with the publishing application;

associating a plurality of cluster connections with the composite cluster connection;

generating a message by the publishing application; and

sending the message from the publishing application to the broker cluster in accordance with a user-defined composite policy comprising at least first and second policy layers, the message being routed from the composite cluster connection to at least one said cluster connection in dependence on the first policy layer, the messaging being routed from the at least one said cluster to at least one said broker in dependence on the second policy layer,

wherein at least one said policy layer is based on a multi-send policy that sends messages to multiple brokers, and

wherein the multi-send policy is a “guaranteed” multi-send policy that is considered successful only if N out of M brokers receive the message, where N is a user-defined constant and where M is the number of brokers in the associated cluster.

11. The method of claim 10 , wherein each said policy layer is based on one of: (a) a round robin load balancing policy, (b) a sticky load balancing policy in which a particular broker is published to until a failure occurs, at which time a different broker is published to, (c) random allocation, (d) a “document size” policy that routes messages to different brokers based on the message size, (e) a weighted round-robin policy in which each broker is assigned a weight that signifies, relative to the other brokers, how well that broker server performs and thus how many more or fewer messages may be sent to each broker compared to the other brokers, and (f) a multi-send policy that sends messages to multiple brokers.

12. The method of claim 10 , wherein the first policy layer is different from the second policy layer.

13. The method of claim 10 , wherein another multi-send policy is a “best effort” multi-send policy that is considered successful if at least one said broker receives the message.

14. The method of claim 10 , further comprising detecting duplicate messages by comparing Universally Unique IDs (UUIDs) associated with the messages.

15. The method of claim 10 , further comprising acknowledging message receipt at at least some of the brokers.

16. The method of claim 10 , further comprising providing at least one subscribing application configured to receive the message from the publishing application and cause a service to be executed in dependence on the message.

17. The method of claim 10 , wherein the message is a JMS message.

18. The method of claim 10 , further comprising deploying additional brokers and/or publishing applications during operation of the application integration system.

19. The method of claim 10 , further comprising redefining the composite policy.

20. An application integration system, comprising:

a plurality of broker cluster systems, each one of the plurality of broker cluster systems including a plurality of brokers with each one of the plurality of brokers including at least one processor that is configured to relay received messages to subscribing applications;

a publishing computing system that includes at least one processor and configured to transmit a message in accordance with a composite policy that includes a first policy layer and a second policy layer, at least one of the first and second policy layers being based on a multi-send policy that sends messages to multiple brokers;

a composite cluster connection associated with the publishing computing system; and

a plurality of cluster connections associated with the composite cluster connection;

wherein the composite cluster connection is configured to route the message to at least one cluster connection of the plurality of cluster connections in accordance with the first policy layer, and

wherein the at least one cluster connection is configured to route the message to at least one broker in dependence on the second policy layer,

wherein the multi-send policy is considered successful in accordance with a determination that N out of M brokers receive the message, where N is a determined value and M is the number of brokers in an associated cluster.

21. An application integration system, comprising:

a publishing application configured to generate and send a message, the message being sendable in accordance with a composite policy comprising at least first and second policy layers;

first and second broker clusters, each said broker cluster comprising a plurality of brokers, each said broker being configured to relay messages from the publishing application to at least one subscribing application;

a composite cluster connection associated with the publishing application;

a plurality of cluster connections associated with the composite cluster connection;

a subscribing composite cluster connection associated with each said subscribing application; and

a plurality of subscribing cluster connections associated with the subscribing composite cluster connection,

wherein the subscribing composite cluster connection is configured to route an acknowledgement message to at least one said subscribing cluster connection in dependence on a first subscribing policy layer,

wherein each said subscribing cluster connection is configured to route the message to at least one broker in dependence on a subscribing policy layer,

wherein the composite cluster connection is configured to route the message to at least one said cluster connection in dependence on the first policy layer, and

wherein each said cluster connection is configured to route the message to at least one broker in dependence on the second policy layer.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2024
From: SUPER IPAAS INTEGRATION LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 069440/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2024
From: SOFTWARE AG, LLC
To: SUPER IPAAS INTEGRATION LLC
Reel/Frame 069319/0220 →
CHANGE OF NAME Recorded Oct 31, 2024
From: SAG 1, LLC
To: SOFTWARE AG, LLC
Reel/Frame 069287/0635 →
CHANGE OF NAME Recorded Sep 26, 2024
From: SOFTWARE AG, INC.
To: SAG 1, LLC
Reel/Frame 069064/0575 →
MERGER Recorded Sep 25, 2024
From: SOFTWARE AG USA, INC.
To: SOFTWARE AG, INC.
Reel/Frame 068693/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2013
From: SOFTWARE AG
To: SOFTWARE AG USA, INC.
Reel/Frame 030285/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2009
From: KOTHAMASU, VASUDEVA; ROKICKI, DEREK; SIMPSON, JASON
To: SOFTWARE AG
Reel/Frame 023276/0052 →
Continuity (1)
Related Publication 20100333111A1 · Dec 30, 2010