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.