IP Library Granted Patent US 8,775,658
Granted Patent B2
US 8,775,658 · App. 12/484,126 · Granted Jul 8, 2014

Apparatus and method for transparent communication architecture in remote communication

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,775,658
App. No.
12/484,126
Granted
Jul 8, 2014
Kind
B2
Abstract

A communication apparatus for remote communication may include a local communication proxy module configured to receive streams from a local communication application module. The streams may be in a form utilizing a first transmission protocol and destined to a remote destination. The local communication proxy module may be configured to facilitate sending, utilizing a second transmission protocol, the streams in real-time over a network to a remote communication proxy module. The local communication proxy module may be configured to conceal characteristics of the network from the local communication application module. The local communication proxy module may also be configured to be transparent to the local communication application module. A machine-readable medium and a method are also disclosed.

Claims (100)

1. A communication apparatus for remote communication, comprising:

at least one first computer including a local communication proxy module and a local communication application module, the local communication proxy module configured to receive streams from the local communication application module when a determination is made that a connection is established between the local communication proxy module and a remote communication proxy module, the streams in a form utilizing a first transmission protocol and destined to a remote destination,

the local communication proxy module configured to facilitate sending, utilizing a second transmission protocol, the streams in real-time over a network to the remote communication proxy module,

the local communication proxy module configured to conceal characteristics of the network from the local communication application module, the local communication proxy module configured to be transparent to the local communication application module,

wherein the remote communication proxy module is located on a second computer that is remote from the at least one first computer,

wherein the second transmission protocol includes a series of data packets in a window of a variable size, the variable size being a function of an available bandwidth of the network and a round-trip time,

wherein the variable size is periodically determined, and

wherein the streams include at least a portion of the series of data packets, or the series of data packets include at least a portion of the streams.

2. The communication apparatus of claim 1 , wherein a location of the local communication proxy module is independent of a location of the local communication application module configured to send the streams, and the location of the local communication proxy module is independent of a location of the remote destination, and wherein the second transmission protocol is different from the first transmission protocol.

3. The communication apparatus of claim 1 , wherein the local communication proxy module is configured for a layer below a presentation layer in an Open Systems Interconnection Reference model (OSI model), and the remote communication proxy module is configured for a layer below a presentation layer in the OSI model.

4. A non-transitory computer/machine-readable storage medium encoded with instructions for remote communication, the instructions comprising code for:

facilitating receiving, by a local communication proxy module, streams from a local communication application module when a determination is made that a connection is established between the local communication proxy module and a remote communication proxy module, the streams in a form utilizing a first transmission protocol and destined to a remote destination; and

facilitating sending, utilizing a second transmission protocol, the streams in real-time over a network to the remote communication proxy module,

wherein the local communication proxy module is configured to conceal characteristics of the network from the local communication application module,

wherein the local communication proxy module is configured to be transparent to the local communication application module,

wherein the second transmission protocol includes a series of data packets in a window of a variable size, the variable size being a function of an available bandwidth of the network and a round-trip time,

wherein the variable size is periodically determined, and

wherein the streams include at least a portion of the series of data packets, or the series of data packets include at least a portion of the streams.

5. The non-transitory computer/machine-readable storage medium of claim 4 , wherein a location of the local communication proxy module is independent of a location of the local communication application module configured to send the streams, and the location of the local communication proxy module is independent of a location of the remote destination, and wherein the second transmission protocol is different from the first transmission protocol.

6. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the local communication proxy module is configured for a layer below a presentation layer in an Open Systems Interconnection Reference model (OSI model), and the remote communication proxy module is configured for a layer below a presentation layer in the OSI model.

7. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the instructions further comprise code for:

caching streams received from the remote communication proxy module; and

facilitating sending the streams to multiple local communication application modules.

8. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the instructions further comprise code for:

determining a type of data;

selecting a compression type for the data based on the determination;

compressing streams, to be sent to the remote communication proxy module, utilizing the compression type selected; and

decompressing streams received from the remote communication proxy module.

9. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the instructions further comprise code for:

encrypting streams to be sent to the remote communication proxy module; and

decrypting streams received from the remote communication proxy module.

10. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the instructions further comprise code for:

detecting error in streams utilizing a cyclic redundancy check (CRC) or a checksum; and

recovering corrupted data utilizing error correcting codes.

11. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the facilitating receiving comprises receiving the streams from the local communication application module when a determination is made by a transparent proxy module to accelerate the streams, wherein one or more first computers include the local communication proxy and the transparent proxy module.

12. The non-transitory computer/machine-readable storage medium of claim 4 , further comprising:

a second local communication proxy module comprising code for:

facilitating receiving second streams from a second local communication application module, the second streams in a form utilizing the first transmission protocol and destined to the remote destination; and

facilitating sending, utilizing the second transmission protocol, the second streams in real-time over a network to the remote communication proxy module,

wherein the second local communication proxy module is configured to conceal characteristics of the network, used for the second streams, from the second local communication application module, and

wherein the second local communication proxy module is configured to be transparent to the second local communication application module.

13. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the local communication proxy module comprises code for:

facilitating receiving second streams from a second local communication application module, the second streams in a form utilizing the first transmission protocol and destined to the remote destination; and

facilitating sending, utilizing the second transmission protocol, the second streams in real-time over a network to the remote communication proxy module,

wherein the local communication proxy module is configured to conceal characteristics of the network, used for the second streams, from the second local communication application module, and

wherein the local communication proxy module is configured to be transparent to the second local communication application module.

14. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the variable size being periodically determined includes the round-trip time being determined from an average of a plurality of round-trip time measurements stored in a running queue.

15. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the variable size is the available bandwidth of the network multiplied by the round-trip time.

16. The non-transitory computer/machine-readable storage medium of claim 4 , wherein the receiving comprises receiving the streams from the local communication application module via a transparent proxy module, wherein the local communication proxy module and the transparent proxy module are located on one or more first computers.

17. The non-transitory computer/machine-readable storage medium of claim 16 , wherein the instructions comprise code for:

facilitating connection with the remote communication proxy module;

after the connection, receiving one or more subsequent data streams from the local communication application module directly without utilizing the transparent proxy module.

18. A method for remote communication, comprising:

receiving, by a local communication proxy module, streams from a local communication application module when a determination is made that a connection is established between the local communication proxy module and a remote communication proxy module, the streams in a form utilizing a first transmission protocol and destined to a remote destination; and

facilitating sending, utilizing a second transmission protocol, the streams in real-time over a network to the remote communication proxy,

wherein the local communication proxy module is configured to conceal characteristics of the network from the local communication application module,

wherein the local communication proxy module is configured to be transparent to the local communication application module,

wherein the local communication proxy module and the local communication application module are located on one or more first computers, and the remote communication proxy module is located on a second computer that is remote from the one or more first computers,

wherein the second transmission protocol includes a series of data packets in a window of a variable size, the variable size being a function of an available bandwidth of the network and a round-trip time,

wherein the variable size is periodically determined, and

wherein the streams include at least a portion of the series of data packets, or the series of data packets include at least a portion of the streams.

19. The method of claim 18 , wherein a location of the local communication proxy module is independent of a location of the local communication application module configured to send the streams, and the location of the local communication proxy module is independent of a location of the remote destination, and wherein the second transmission protocol is different from the first transmission protocol.

20. The method of claim 18 , wherein the local communication proxy module is configured for a layer below a presentation layer in an Open Systems Interconnection Reference model (OSI model), and the remote communication proxy module is configured for a layer below a presentation layer in the OSI model.

21. The method of claim 18 , further comprising:

caching streams received from the remote communication proxy module; and

facilitating sending the cached streams to multiple local communication application modules.

22. The method of claim 18 , further comprising:

determining a type of data;

selecting a compression type for the data based on the determination;

compressing streams, to be sent to the remote communication proxy module, utilizing the compression type selected; and

decompressing streams received from the remote communication proxy module.

23. The method of claim 18 , further comprising:

encrypting streams to be sent to the remote communication proxy module; and

decrypting streams received from the remote communication proxy module.

24. The method of claim 18 , further comprising:

detecting error in streams utilizing a cyclic redundancy check (CRC) or a checksum; and

recovering corrupted data utilizing error correcting codes.

25. The method of claim 18 , wherein the receiving comprises receiving the streams from the local communication application module based on a determination as to whether to accelerate the streams.

26. The method of claim 18 , further comprising:

receiving, by a second local communication proxy module, second streams from a second local communication application module, the second streams in a form utilizing the first transmission protocol and destined to the remote destination; and

facilitating sending, utilizing the second transmission protocol, the second streams in real-time over a network to the remote communication proxy module,

wherein the second local communication proxy module is configured to conceal characteristics of the network, used for the second streams, from the second local communication application module, and

wherein the second local communication proxy module is configured to be transparent to the second local communication application module.

27. The method of claim 18 , further comprising:

receiving second streams from a second local communication application module, the second streams in a form utilizing the first transmission protocol and destined to the remote destination; and

facilitating sending, utilizing the second transmission protocol, the second streams in real-time over a network to the remote communication proxy module,

wherein the local communication proxy module is configured to conceal characteristics of the network, used for the second streams, from the second local communication application module, and

wherein the local communication proxy module is configured to be transparent to the second local communication application module.

28. A communication apparatus for remote communication, comprising:

means for receiving, by a local communication proxy module, streams from a local communication application module when a determination is made that a connection is established between the local communication proxy module and a remote communication proxy module, the streams in a form utilizing a first transmission protocol and destined to a remote destination; and

means for facilitating sending, utilizing a second transmission protocol, the streams in real-time over a network to the remote communication proxy module,

wherein the local communication proxy module is configured to conceal characteristics of the network from the local communication application module,

wherein the local communication proxy module is configured to be transparent to the local communication application module,

wherein the second transmission protocol includes a series of data packets in a window of a variable size, the variable size being a function of an available bandwidth of the network and a round-trip time,

wherein the variable size is periodically determined, and

wherein the streams include at least a portion of the series of data packets, or the series of data packets include at least a portion of the streams.

29. The communication apparatus of claim 28 , wherein a location of the local communication proxy module is independent of a location of the local communication application module configured to send the streams, and the location of the local communication proxy module is independent of a location of the remote destination, and

wherein the second transmission protocol is different from the first transmission protocol.

30. The communication apparatus of claim 28 , wherein the local communication proxy module is configured for a layer below a presentation layer in an Open Systems Interconnection Reference model (OSI model), and the remote communication proxy module is configured for a layer below a presentation layer in the OSI model.

31. The communication apparatus of claim 28 , comprising one or more computers, wherein the one or more computers comprise: means for displaying information; means for processing information; the means for receiving; and the means for facilitating.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
MERGER Recorded May 13, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 060064/0586 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
CHANGE OF NAME Recorded Nov 15, 2013
From: WYSE TECHNOLOGY INC.
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 031645/0051 →