IP Library Granted Patent US 8,291,039
Granted Patent B2
US 8,291,039 · App. 13/105,385 · Granted Oct 16, 2012

Establishing a virtual tunnel between two computer programs

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,291,039
App. No.
13/105,385
Granted
Oct 16, 2012
Kind
B2
Abstract

A system transfers data via a communication session between a client application and a server application, where the client application runs on a first network and the server application runs on a second network. The system includes a proxy having a socket to the client application. The proxy converts data between a local protocol run on the first network to a non-local protocol. An agent creates a socket to the server application. The agent converts data between a local protocol run on the second network and the non-local protocol. A server is in communication with the proxy and the agent. The server contains a message queue dedicated to the communication session. The message queue stores data transmitted during the communication session.

Claims (53)

1. A system for transferring data via a communication session between a client application and a server application, the client application running on a first network and the server application running on a second network, the system comprising:

a first device comprising a proxy having a socket to the client application, the proxy for converting between a non-local protocol and a local protocol associated with the client application to thereby provide data to the client application in the local protocol associated with the client application;

a second device comprising an agent that creates a socket to the server application, the agent for converting between a non-local protocol and a local protocol associated with the server application to thereby provide data to the server application in the local protocol associated with the server application; and

a server in communication with the proxy and the agent, the server comprising one or more processing devices to execute instructions to perform operations comprising:

outputting, to the first device, a Web page comprising the proxy, the first device being configured to obtain the proxy from the Web page;

assigning an identifier to the communication session;

creating at least one queue associated with the communication session;

storing data received from the server application in the at least one queue, the received data being stored using the identifier;

receiving polling data from the proxy to obtain the received data that is destined for the client application from the at least one queue associated with the communication session;

outputting the received data to the proxy in response to the polling data;

wherein the client application and the server application run local protocols, and the received data is passed from the server application to the client application via an intermediary protocol that corresponds to the non-local protocol of the client application; and

wherein the first device is on the first network behind a first firewall, and the second device is on the second network behind a second firewall that is different from the first firewall.

2. The system of claim 1 , wherein the agent is programmed to poll the server for data for the server application.

3. The system of claim 2 , wherein, when data is present for the client application, the agent is programmed to obtain the data from the at least one queue and to pass the data to the server application.

4. The system of claim 1 , wherein the proxy is programmed to pass the received data to the client application.

5. A method of transferring data via a communication session between a client application on a first network and a server application on a second network, the method comprising:

outputting, to a device that includes the client application, a Web page comprising a proxy, the proxy for converting between a non-local protocol and a local protocol associated with the client application to thereby provide data to the client application in the local protocol;

assigning an identifier to the communication session;

creating at least one queue associated with the communication session;

storing data received from the server application in the at least one queue, the received data being stored using the identifier;

receiving polling data from the proxy to obtain the received data that is destined for the client application from the at least one queue associated with the communication session;

outputting the received data to the proxy in response to the polling data;

wherein the client application and the server application run local protocols, and the received data is passed from the server application to the client application via an intermediary protocol that corresponds to the non-local protocol; and

wherein the client application is on the first network behind a first firewall, and the server application on the second network is behind a second firewall that is different from the first firewall.

6. The method of claim 5 , further comprising:

the proxy creating a socket interface the client application, data being transmitted through the socket interface.

7. The method of claim 5 , wherein the local protocol comprises at least one of TCP/IP and a serial protocol, the serial protocol comprising one of RS232 and RS485.

8. The method of claim 5 , wherein the intermediary protocol comprises HTTP.

9. The method of claim 5 , wherein the identifier is associated with the at least one queue.

10. The method of claim 5 , wherein the method is performed by a processing device, and

wherein the processing device is selected from among plural processing devices in a load balancing process.

11. The method of claim 5 , wherein the identifier is invalidated when the communication session terminates.

12. The method of claim 5 , wherein the communication session comprises a telnet session.

13. The method of claim 5 , wherein the communication session is effected via a Web site.

14. The method of claim 5 , further comprising maintaining a session record, the session record including an identity of a user initiating the communication session.

15. The method of claim 5 , wherein the intermediary protocol is different from the local protocol.

16. The method of claim 5 , wherein the intermediary protocol is a same protocol as the local protocol.

17. One or more non-transitory machine-readable media that store instructions for use in transferring data via a communication session between a client application on a first network and a server application on a second network, the instructions for causing one or more processing devices to perform operations comprising:

outputting, to a device that includes the client application, a Web page comprising a proxy, the proxy for converting between a non-local protocol and a local protocol associated with the client application to thereby provide data to the client application in the local protocol;

assigning an identifier to the communication session;

creating at least one queue associated with the communication session;

storing data received from the server application in the at least one queue, the received data being stored using the identifier;

receiving polling data from the proxy to obtain the received data that is destined for the client application from the at least one queue associated with the communication session;

outputting the received data to the proxy in response to the polling data;

wherein the client application and the server application run local protocols, and the received data is passed from the server application to the client application via an intermediary protocol that corresponds to the non-local protocol; and

wherein the client application is on the first network behind a first firewall, and the server application is on the second network behind a second firewall that is different from the first firewall.

18. The one or more non-transitory machine-readable media of claim 17 , wherein the intermediary protocol is different from the local protocol.

19. The one or more non-transitory machine-readable media of claim 17 , wherein the local protocol comprises at least one of TCP/IP and a serial protocol, the serial protocol comprising one of RS232 and RS485.

20. The one or more non-transitory machine-readable media of claim 17 , wherein the intermediary protocol comprises HTTP.

21. The one or more non-transitory machine-readable media of claim 17 , wherein the identifier is associated with the at least one queue.

22. The one or more non-transitory machine-readable media of claim 17 , wherein the identifier is invalidated when the communication session terminates.

23. The one or more non-transitory machine-readable media of claim 17 , wherein the communication session comprises a telnet session.

24. The one or more non-transitory machine-readable media of claim 17 , wherein the communication session is effected via a Web site.

Assignments (9)
SECURITY INTEREST Recorded Sep 13, 2018
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047480/0888 →
SECURITY INTEREST Recorded Nov 4, 2015
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037046/0930 →
MERGER Recorded Sep 2, 2015
From: AXEDA CORPORATION
To: PTC INC.
Reel/Frame 036481/0543 →
RELEASE OF SECURITY INTEREST Recorded Aug 25, 2014
From: COMERICA BANK
To: AXEDA CORPORATION
Reel/Frame 033608/0704 →
SECURITY AGREEMENT Recorded Jul 24, 2012
From: AXEDA CORPORATION
To: COMERICA BANK
Reel/Frame 028629/0538 →
RELEASE OF SECURITY INTEREST Recorded Jul 17, 2012
From: MMV CAPITAL PARTNERS INC.
To: AXEDA CORPORATION
Reel/Frame 028563/0446 →
RELEASE OF SECURITY INTEREST Recorded Jul 16, 2012
From: SILICON VALLEY BANK
To: AXEDA CORPORATION
Reel/Frame 028558/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2012
From: SHEDRINSKY, FELIX
To: AXEDA SYSTEMS OPERATING COMPANY INC.
Reel/Frame 027891/0519 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2012
From: AXEDA SYSTEMS OPERATING COMPANY, INC.
To: AXEDA CORPORATION
Reel/Frame 027891/0591 →