System and method for providing tunnel connections between entities in a messaging system
First Claim
1. A method, comprising:
- establishing a transport protocol tunnel connection from a first node in a messaging system to a second node in the messaging system, wherein the second node is a messaging server configured to receive messages from a plurality of clients and deliver the messages to specified ones of a plurality of recipients according to a standard messaging API (application programming interface);
generating a messaging system message on the first node according to the standard messaging API of the messaging sever;
generating one or more transport protocol packets, wherein the one or more transport protocol packets each includes at least a part of the messaging system message; and
transmitting the one or more transport protocol packets to the second node via the transport protocol tunnel connection;
wherein the transport protocol tunnel connection provides full-duplex transmission of messaging system messages between the first node and the second node, and wherein the transport protocol tunnel connection further provides delivery of the messaging system messages in the sequence in which the messaging system messages are generated;
the second node generating an acknowledgement transport protocol packet to indicate successful receipt of the one or more transport protocol packets including the messaging system message;
wherein the acknowledgement transport protocol packet includes information indicating available space in a receive buffer on the second node, and wherein the information indicating available space in the receive buffer is configured for use in flow control of messaging system messages transmitted from the first node to the second node.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for providing HTTP tunnel connections between entities such as clients and servers in a messaging system is described. An HTTP tunnel connection layer is described that may be used to provide reliable, full duplex virtual connections between entities (e.g. clients and brokers) in a distributed application environment using a messaging system. Also described is a novel HTTP tunneling protocol that may be used by the HTTP tunnel connection layer. The HTTP tunnel connection layer may be used by clients to access messaging servers through proxy servers and firewalls, thus expanding the scope of from where clients can access brokers. Using this layer, brokers as well as clients may initiate messaging system messages. This layer may also provide guaranteed data delivery with correct sequencing even in case of a failure on the network. This layer may also provide end-to-end flow control.
103 Citations
80 Claims
-
1. A method, comprising:
-
establishing a transport protocol tunnel connection from a first node in a messaging system to a second node in the messaging system, wherein the second node is a messaging server configured to receive messages from a plurality of clients and deliver the messages to specified ones of a plurality of recipients according to a standard messaging API (application programming interface); generating a messaging system message on the first node according to the standard messaging API of the messaging sever; generating one or more transport protocol packets, wherein the one or more transport protocol packets each includes at least a part of the messaging system message; and transmitting the one or more transport protocol packets to the second node via the transport protocol tunnel connection; wherein the transport protocol tunnel connection provides full-duplex transmission of messaging system messages between the first node and the second node, and wherein the transport protocol tunnel connection further provides delivery of the messaging system messages in the sequence in which the messaging system messages are generated; the second node generating an acknowledgement transport protocol packet to indicate successful receipt of the one or more transport protocol packets including the messaging system message; wherein the acknowledgement transport protocol packet includes information indicating available space in a receive buffer on the second node, and wherein the information indicating available space in the receive buffer is configured for use in flow control of messaging system messages transmitted from the first node to the second node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method, comprising:
-
establishing a Hypertext Transport Protocol (HTTP) tunnel connection from a first node in a messaging system to a second node in the messaging system, wherein the second node is a messaging server configured to receive messages from a plurality of clients and deliver the messages to specified ones of a plurality of recipients according to a standard messaging API (application programming interface); generating a messaging system message on the first node according to the standard messaging API of the messaging sever; generating one or more HTTP packets, wherein the one or more HTTP packets each includes at least a part of the messaging system message; transmitting the one or more HTTP packets to the second node via the HTTP tunnel connection; wherein the HTTP tunnel connection provides full-duplex transmission of messaging system messages between the first node and the second node, and wherein the HTTP tunnel connection further provides delivery of the messaging system messages in the sequence in which the messaging system messages are generated; the second node generating an acknowledgement HTTP packet to indicate successful receipt of the one or more HTTP packets including the messaging system message, wherein the acknowledgement HTTP packet includes information indicating available space in the receive buffer. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A method comprising:
-
establishing a transport protocol tunnel connection from a first node in a messaging system to a second node in the messaging system; generating a sequence of messaging system messages on the first node; generating a plurality of transport protocol packets on the first node, wherein each of the transport protocol packets includes at least a part of one of the sequence of messaging system messages, and wherein each of the transport protocol packets includes sequence information for the particular messaging system message; transmitting the plurality of transport protocol packets to the second node in the messaging system via the transport protocol tunnel connection; receiving the plurality of transport protocol packets on the second node; processing the sequence of messaging system messages on the second node, wherein said processing uses the sequence information for the plurality of messaging system messages in the plurality of transport protocol packets; the second node generating an acknowledgement transport protocol packet for each of the received transport protocol packets to indicate successful receipt of the transport protocol packets including the sequence of messaging system messages; and wherein each of the acknowledgement transport protocol packets includes information indicating available space in the receive buffer, wherein the information indicating available space in the receive buffer is configured for use in flow control of messaging system messages transmitted from the first node to the second node. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47)
-
-
48. A method, comprising:
-
establishing a transport protocol tunnel connection from a first node in a messaging system to a second node in the messaging system; the first node receiving a first transport protocol packet from the second node indicating available space in a receive buffer of the second node; generating one or more messaging system messages on the first node; storing the one or more messaging system messages in a transmit buffer on the first node; determining from the information indicating available space in the receive buffer included in the received first transport protocol packet that there is not space available to receive the one or more messaging system messages on the second node; the first node receiving a second transport protocol packet from the second node indicating available space in the receive buffer of the second node; determining from the information indicating available space in the receive buffer included in the received second transport protocol packet that there is space available to receive the one or more messaging system messages on the second node; generating one or more transport protocol packets, wherein the one or more transport protocol packets include the generated one or more messaging system messages; and transmitting the one or more transport protocol packets to the second node via the transport protocol tunnel connection. - View Dependent Claims (49, 50, 51, 52, 53, 54)
-
-
55. A messaging system, comprising:
-
a first node comprising a first memory; a second node comprising a second memory, wherein the second node is a messaging server configured to receive messages from a plurality of clients and deliver the messages to specified ones of a plurality of recipients according to a standard messaging API (application programming interface); wherein the first memory comprises first program instructions executable within the first node to; establish a transport protocol tunnel connection from the first node to the second node through a network; generate a messaging system message according to the standard messaging API of the messaging sever; generate one or more transport protocol packets, wherein the one or more transport protocol packets each includes at least a part of the messaging system message; and transmit the one or more transport protocol packets to the second node via the transport protocol tunnel connection; wherein the transport protocol tunnel connection provides full-duplex transmission of messaging system messages between the first node and, the second node, and wherein the transport protocol tunnel connection further provides delivery of the messaging system messages in the sequence in which the messaging system messages are generated; wherein the second memory comprises second program instructions executable within the second node to; generate an acknowledgement transport protocol packer to indicate successful receipt of the one or more transport protocol packets including the messaging system message, wherein the acknowledgement transport protocol packet includes information indicating available space in a receive buffer of the second node. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74)
-
-
75. A tangible, computer-readable medium comprising program instructions, wherein the program instructions are computer-executable to implement:
-
establishing a transport protocol tunnel connection from a first node in a messaging system to a second node in the messaging system, wherein the second node is a messaging server configured to receive messages from a plurality of clients and deliver the messages to specified ones of a plurality of recipients according to a standard messaging API (application programming interface); generating a messaging system message on the first node according to the standard messaging API of the messaging sever; generating one or more transport protocol packets, wherein the one or more transport protocol packets each includes at least a part of the messaging system message; and transmitting the one or more transport protocol packets to the second node via the transport protocol tunnel connection; wherein the transport protocol tunnel connection provides full-duplex transmission of messaging system messages between the first node and the second node, and wherein the transport protocol tunnel connection further provides delivery of the messaging system messages in the sequence in which the messaging system messages are generated; generating on the second node an acknowledgment transport protocol packet to indicate successful receipt of the one or more transport protocol packets including the messaging system message, wherein the acknowledgement transport protocol packet includes information indicating available space in a receive buffer on the second node. - View Dependent Claims (76, 77, 78, 79, 80)
-
Specification