Computer architecture and software for computer network communication such that data is at least partially converted between distinct transport protocols in order to optimize transmission of the data, and preferably to allow persistent connections to be maintained across different firewalls. As a preferred embodiment, the transport protocol conversion may cause the data to be converted between HTTP 1.1 protocol, to allow a persistent connection originated across port 80 of a first firewall, and a different protocol, to allow a persistent connection across a second firewall. The protocol conversion of the present invention is especially useful in connection with collaborative application software, wherein the collaborative server and its associated clients are respectively more amenable to different transport protocols. |
Citations|
| US6292840 | Jan 29, 1998 | Sep 18, 2001 | Microsoft Corporation | Voice/audio data communication with negotiated compression scheme and data header compressed in predetermined scheme | | US6345291 | Sep 10, 1999 | Feb 5, 2002 | International Business Machines Corporation | Multiplexing of clients and applications among multiple servers | | US6412009 | Mar 15, 1999 | Jun 25, 2002 | Wall Data Incorporated | Method and system for providing a persistent HTTP tunnel | | US6510448 | Jan 31, 2000 | Jan 21, 2003 | Networks Associates Technology, Inc. | System, method and computer program product for increasing the performance of a proxy server | | US6567848 | Oct 12, 1999 | May 20, 2003 | International Business Machines Corporation | System for coordinating communication between a terminal requesting connection with another terminal while both terminals accessing one of a plurality of servers under the management of a dispatcher | | US6643778 | Mar 30, 1999 | Nov 4, 2003 | Oki Electric Industry Co., Ltd. | Network system using a firewall dynamic control method | | US20020010865 | Jan 29, 1999 | | | METHOD AND APPARATUS FOR REMOTE OFFICE ACCESS MANAGEMENT | | US20020108059 | Mar 1, 2001 | | | Network security accelerator | | US20030139975 | Dec 12, 2002 | | | Method of and system for managing and serving consumer-product related information on the world wide web (WWW) using universal product numbers (UPNS) and electronic data interchange (EDI) processes |
Referenced by|
| US7248563 | Jul 31, 2002 | Jul 24, 2007 | International Business Machines Corporation | Method, system, and computer program product for restricting access to a network using a network communications device | | US7269647 | Dec 15, 2000 | Sep 11, 2007 | International Business Machines Corporation | Simplified network packet analyzer for distributed packet snooper | | US7296292 | Dec 15, 2000 | Nov 13, 2007 | International Business Machines Corporation | Method and apparatus in an application framework system for providing a port and network hardware resource firewall for distributed applications | | US7363342 | Jul 8, 2003 | Apr 22, 2008 | Microsoft Corporation | Method and apparatus for providing web services in a collaborative computing system | | US7627681 | Jul 20, 2005 | Dec 1, 2009 | Microsoft Corporation | Relaying messages through a firewall | | US7739339 | Jun 28, 2006 | Jun 15, 2010 | The Boeing Company | System and method of communications within a virtual environment | | US7920569 | May 5, 2008 | Apr 5, 2011 | Juniper Networks, Inc. | Multi-link transport protocol translation | | US7987275 | Sep 18, 2007 | Jul 26, 2011 | International Business Machines Corporation | Method, apparatus and computer program product implementing a chat application proxy and a chat application wrapper in a chat system |
Claims1. A method of communicating over a computer network, the method comprising the steps of: - generating, by a collaborative application software residing on a server computer, an application output communication;
- sending, over a first computer network, the application output communication to a client firewall;
- communicating the application output communication across the client firewall through a hypertext transfer protocol keep-alive connection;
- receiving the application output data at a client computer; and
- keeping the hypertext transfer protocol keep-alive connection for the duration of a collaboration,
- wherein the client computer blocks on a read when waiting for and receiving the application output data.
2. The method of claim 1, further comprising the step of originating a connection across the client firewall through a port 80 of client firewall. 3. The method of claim 1 wherein the application output data is sent, at the sending step, as a plurality of data packets structured and arranged according to HTTP 1.1. 4. A computer system comprising: - a first computer network;
- a first computer subsystem comprising collaborative application software, with the collaborative application software comprising machi readable instructions for sending application output data over the computer network;
- a second computer subsystem structured to receive the application output data; and
- a second subsystem firewall, located in front of the second application subsystem, the second-subsystem firewall structured to communicate the application output data to the second computer subsystem through a hypertext transfer protocol keep-alive connection that is kept open for the duration of a collaboration,
- wherein the computer system further comprises communication software comprising machine readable instructions for opening a first subsystem thread in the second computer subsystem for receiving the application output data, and
- wherein the second computer subsystem comprises a second subsystem socket structured to receive the application output data; and
- the communication software further comprises machine readable instructions for causing the second-subsystem socket to block on a read.
5. The system of claim 4 wherein the communication software further comprises instructions causing the first-subsystem thread to sleep. 6. The system of claim 4 wherein the collaborative application software sends the application output data as a stateful communication. 7. The system of claim 6, wherein the application output data is structured and arranged according to an HTTP 1.1 protocol. 8. The system of claim 7 wherein: - the second-subsystem firewall comprises a port 80; and
- the application output data is communicated across the second-subsystem firewall through a connection originated through port 80.
9. The system of claim 4 wherein the first computer subsystem comprises: - a server computer;
- a Web server computer, and
- a second computer network structured to allow data communication between the server computer and the Web server computer.
10. The system of claim 9 wherein: - the server computer comprises at least a portion of the collaborative applications software; and
- the Web server computer is structured to receive the application output data from the server computer over the second computer network and to send the application output data to the second computer subsystem over the first computer network.
11. The system of claim 4, further comprising: - a third computer subsystem structured to receive the application output data; and
- a third-subsystem firewall, located in front of the third computer subsystem the third-subsystem firewall structured to communicate the application output data to the third computer subsystem through a hypertext transfer protocol keep-alive connection.
12. The system of claim 11 wherein the collaborative application software comprises at least one of the following functions: a word processor, a task scheduling tool, a graphics program, a presentation program, a spreadsheet, a game, a music studio. 13. A computer system comprising: - a first computer network;
- a first computer subsystem comprising collaborative application software, with the collaborative application software comprising machine readable instructions for sending application output data over the computer network;
- a second computer subsystem structured to receive the application output data;
- a second-subsystem firewall, located in front of the second application subsystem, the second-subsystem firewall structured to communicate the application output data to the second computer subsystem through a hypertext transfer protocol keep-alive connection that is kept open for the duration of a collaboration;
- a third computer subsystem structured to receive the application output data; and
- a third-subsystem firewall, located in front of the third computer subsystem the third-subsystem firewall structured to communicate the application output data to the third computer subsystem through a hypertext transfer protocol keep-alive connection,
- wherein communication between the first computer subsystem, the second computer subsystem and the third computer subsystem is in real-time.
14. A computer system comprising: - a first computer network;
- a first computer subsystem comprising collaborative application software, with the collaborative application software comprising machine readable instructions for sending application output data over the computer network;
- a second computer subsystem structured to receive the application output data;
- a second-subsystem firewall located in front of the second application subsystem, the second-subsystem firewall structured to communicate the application output data to the second computer subsystem through a hypertext transfer protocol keep-alive connection that is kept open for the duration of a collaboration;
- a third computer subsystem structured to receive the application output data; and
- a third-subsystem firewall, located in front of the third computer subsystem the third-subsystem firewall structured to communicate the application output data to the third computer subsystem through a hypertext transfer protocol keep-alive connection, wherein
- the third computer subsystem comprises a third-subsystem socket structured to receive the application output data; and
- the communication software further comprises machine readable instructions for causing the third-subsystem socket to block on a read.
15. A computer system comprising: - a first computer network;
- a first computer subsystem comprising collaborative application software, with the collaborative application software comprising machine readable instructions for sending application output data over the computer network;
- a second computer subsystem structured to receive the application output data; and
- a second-subsystem firewall, located in front of the second application subsystem, the second-subsystem firewall structured to communicate the application output data to the second computer subsystem through a hypertext transfer protocol keep-alive connection that is kept open for the duration of a collaboration,
- wherein the first computer subsystem comprises a server computer; a Web server computer, and a second computer network structured to allow data communication between the server computer and the Web server computer;
- wherein the server computer comprises at least a portion of the collaborative applications software; and
- wherein the Web server computer is structured to receive the application output data from the server computer over the second computer network and to send the application output data to the second computer subsystem over the first computer network; and wherein
- the Web server computer comprises a Web server socket structured to receive the application output data from the server computer over the second computer network; and
- the communication software further comprises machine readable instructions for causing the Web server socket to block on a read.
|