Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

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.

InventorsScott R. McMullan, David M. Meagher
Original AssigneeUGS Corp.
Primary Examiner: Jeffrey Gaffin
Secondary Examiner: Hassan Mahmoudi
Attorney: Luce, Forward, Hamilton & Scripps LLP
Current U.S. Classification1/1; 707/999.001; 707/999.01; 707/999.104; 707/999.107; 709/223

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US6292840Jan 29, 1998Sep 18, 2001Microsoft CorporationVoice/audio data communication with negotiated compression scheme and data header compressed in predetermined scheme
US6345291Sep 10, 1999Feb 5, 2002International Business Machines CorporationMultiplexing of clients and applications among multiple servers
US6412009Mar 15, 1999Jun 25, 2002Wall Data IncorporatedMethod and system for providing a persistent HTTP tunnel
US6510448Jan 31, 2000Jan 21, 2003Networks Associates Technology, Inc.System, method and computer program product for increasing the performance of a proxy server
US6567848Oct 12, 1999May 20, 2003International Business Machines CorporationSystem 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
US6643778Mar 30, 1999Nov 4, 2003Oki Electric Industry Co., Ltd.Network system using a firewall dynamic control method
US20020010865Jan 29, 1999METHOD AND APPARATUS FOR REMOTE OFFICE ACCESS MANAGEMENT
US20020108059Mar 1, 2001Network security accelerator
US20030139975Dec 12, 2002Method 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

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US7248563Jul 31, 2002Jul 24, 2007International Business Machines CorporationMethod, system, and computer program product for restricting access to a network using a network communications device
US7269647Dec 15, 2000Sep 11, 2007International Business Machines CorporationSimplified network packet analyzer for distributed packet snooper
US7296292Dec 15, 2000Nov 13, 2007International Business Machines CorporationMethod and apparatus in an application framework system for providing a port and network hardware resource firewall for distributed applications
US7363342Jul 8, 2003Apr 22, 2008Microsoft CorporationMethod and apparatus for providing web services in a collaborative computing system
US7627681Jul 20, 2005Dec 1, 2009Microsoft CorporationRelaying messages through a firewall
US7739339Jun 28, 2006Jun 15, 2010The Boeing CompanySystem and method of communications within a virtual environment
US7920569May 5, 2008Apr 5, 2011Juniper Networks, Inc.Multi-link transport protocol translation
US7987275Sep 18, 2007Jul 26, 2011International Business Machines CorporationMethod, apparatus and computer program product implementing a chat application proxy and a chat application wrapper in a chat system

Claims

1. 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.