Patent ID: 7506058

Claim:
A method of transmitting information across a plurality of firewalls between a first computer and a second computer separated by the firewalls, wherein a relay computer is interposed between a pair of firewalls within the plurality of firewalls, the method comprising: providing a communication stack with a plurality of layers on each computer; establishing a routed virtual session between a first application running on the first computer and a second application running on the second computer using a routed session manager layer, wherein the second application registers for a unique service by creating an entry in a registration table controlled by a routed session manager layer at the second computer, wherein registering the second application comprises associating, in an application program interface in the second computer, a callback function to the service; creating an entry for the routed virtual session in a routed session table controlled by the routed session manager layer, wherein the entry comprises a first routed session handle identifying the routed virtual session at the first computer, an identifier of the service implemented by the routed virtual session, a label identifying the second computer, and a second routed session handle identifying a routed virtual session implementing the routed virtual session in the second computer; opening, by the first application via an application program interface in the first computer, the routed virtual session thereby causing a corresponding open message comprising an identifier of the service to be transmitted to the second computer; requesting transmission of data from the first application using the routed virtual session, thereby causing a corresponding send message comprising the data and the identifier of the service to be transmitted to the second computer; implementing the routed virtual session through a communications session between two adjacent computers along a path from the first computer to the second computer using a connection manager layer underneath the routed session manager layer; breaking down data in the routed virtual session into a plurality of packets in a session managing layer underneath the routed session manager layer; and multiplexing, using the session manager layer, a plurality of virtual sessions on the communications session crossing a corresponding firewall such that the plurality of packets are available over time and the routed virtual session does not dominate the communications session.