IP Library Granted Patent US 9,553,925
Granted Patent B2
US 9,553,925 · App. 14/186,870 · Granted Jan 24, 2017

Front-end high availability proxy

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 9,553,925
App. No.
14/186,870
Granted
Jan 24, 2017
Kind
B2
Abstract

In particular embodiments, a method includes receiving a first connection from a client and assigning the client a unique socket. The method further includes selecting, from a plurality of execution hosts, a first execution host for the first connection based at least in part on load-balancing information associated with the execution hosts. Each execution host includes a unique general client engine. The method further includes launching a first transcoding remote desktop client instance at the first execution host in association with the general client engine of the first execution host. The method further includes receiving a second connection from the client, the second connection being associated with the unique socket of the first connection, launching a second transcoding remote desktop client instance at the first execution host in association with the general client engine of the first execution host, and updating the load-balancing information.

Claims (66)

1. A method comprising, by one or more computing devices:

receiving a first connection from a client at a high availability proxy, wherein one or more transcoding remote desktop client instances with generic transcoding service attachment are associated with the first connection, wherein the high availability proxy is a front-end high availability proxy;

assigning the client a unique socket;

managing, by the high availability proxy, a utilization of the one or more computing devices, wherein managing by the high availability proxy comprises:

selecting by the high availability proxy, from a plurality of execution hosts, a first execution host for the first connection based, at least in part, on load-balancing information associated with the execution hosts, wherein each execution host comprises a unique generic client engine, and wherein the generic client engine comprises one or more load-balancing services;

tracking by the generic client engine the load-balancing information;

launching a first transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host based, at least in part, on the load-balancing information, wherein the launching the first transcoding remote desktop client instance begins a transcoding operation;

receiving at the generic client engine a first one or more communications from the first transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the first one or more communications are received using a first unique reference identifier associated with the first transcoding remote desktop client instance;

receiving a second connection from the client, the second connection being associated with the unique socket of the first connection;

launching a second transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host based on the second connection being associated with the unique socket of the first connection;

receiving at the generic client engine a second one or more communications from the second transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the second one or more communications are received using a second unique reference identifier associated with the second transcoding remote desktop client instance; managing by the generic client engine any connections associated with the unique socket including the first connection and the second connection; and

updating the load-balancing information, wherein updating the load-balancing information comprises tallying a total number of connections for each of the plurality of execution hosts; and

wherein receiving the first connection and the second connection comprises receiving connection information from the client comprising credentials.

2. The method of claim 1 , wherein the connection information is input by a user via a dialog menu.

3. The method of claim 1 , wherein the client is an HTTP-compatible thin client comprising a browser.

4. The method of claim 1 , wherein the transcoding remote desktop client comprises a generic transcoding service.

5. The method of claim 1 , wherein the load-balancing information comprises the number of present connections on each of the plurality of execution hosts.

6. The method of claim 1 , wherein the first execution host is selected based at least in part on one or more of the following:

the health of a front-end;

one or more ports;

one or more protocols;

one or more elevated protocols;

one or more services; or

URL/URI.

7. A system comprising:

one or more processors; and

a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to:

receive a first connection from a client at a high availability proxy, wherein one or more transcoding remote desktop client instances with generic transcoding service attachment are associated with the first connection, wherein the high availability proxy is a front-end high availability proxy; assign the client a unique socket;

manage, by the high availability proxy, a utilization of one or more computing devices, wherein managing by the high availability proxy comprises:

selecting by the high availability proxy, from a plurality of execution hosts, a first execution host for the first connection based at least in part on load-balancing information associated with the execution hosts, wherein each execution host comprises a unique generic client engine, and wherein the generic client engine comprises one or more load-balancing services;

track by the generic client engine the load-balancing information;

launch a first transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host based, at least in part, on the load-balancing information, wherein the launch of the first transcoding remote desktop client instance begins a transcoding operation;

receive at the generic client engine a first one or more communications from the first transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the first one or more communications are received using a first unique reference identifier associated with the first transcoding remote desktop client instance;

receive a second connection from the client, the second connection being associated with the unique socket of the first connection;

launch a second transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host based on the second connection being associated with the unique socket of the first connection;

receive at the generic client engine a second one or more communications from the second transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the second one or more communications are received using a second unique reference identifier associated with the second transcoding remote desktop client instance;

manage by the generic client engine any connections associated with the unique socket including the first connection and the second connection;

update the load-balancing information, wherein the update of the load-balancing information comprises a tally of a total number of connections for each of the plurality of execution hosts; and wherein receiving the first connection and the second connection comprises receiving connection information from the client comprising credentials.

8. The system of claim 7 , wherein the connection information is input by a user via a dialog menu.

9. The system of claim 7 , wherein the client is an HTTP-compatible thin client comprising a browser.

10. The system of claim 7 , wherein the transcoding remote desktop client comprises a generic transcoding service.

11. The system of claim 7 , wherein the load-balancing information comprises the number of present connections on each of the plurality of execution hosts.

12. The system of claim 7 , wherein the first execution host is selected based at least in part on one or more of the following:

the health of a front-end;

one or more ports;

one or more protocols;

one or more elevated protocols;

one or more services; or

URL/URI.

13. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive a first connection from a client at a high availability proxy, wherein one or more transcoding remote desktop client instances with generic transcoding service attachment are associated with the first connection, wherein the high availability proxy is a front-end high availability proxy;

assign the client a unique socket;

manage, by the high availability proxy, a utilization of the one or more computing devices, wherein managing by the high availability proxy comprises:

selecting by the high availability proxy, from a plurality of execution hosts, a first execution host for the first connection based at least in part on load-balancing information associated with the execution hosts, wherein each execution host comprises a unique generic client engine, and wherein the generic client engine comprises one or more load-balancing services;

track by the generic client engine the load-balancing information;

launch a first transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host;

receive at the generic client engine a first one or more communications from the first transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the first one or more communications are received using a first unique reference identifier associated with the first transcoding remote desktop client instance; receive a second connection from the client, the second connection being associated with the unique socket of the first connection;

launch a second transcoding remote desktop client instance of the one or more transcoding remote desktop client instances at the first execution host in association with the generic client engine of the first execution host based on the second connection being associated with the unique socket of the first connection, wherein the launch of the first transcoding remote desktop client instance begins a transcoding operation;

receive at the generic client engine a second one or more communications from the second transcoding remote desktop client instance such that the high availability proxy is bypassed, wherein the second one or more communications are received using a second unique reference identifier associated with the second transcoding remote desktop client instance;

manage by the generic client engine any connections associated with the unique socket including the first connection and the second connection;

update the load-balancing information, wherein the update of the load-balancing information comprises a tally of a total number of connections for each of the plurality of execution hosts; and

wherein receiving the first connection and the second connection comprises receiving connection information from the client comprising credentials.

14. The media of claim 13 , wherein the connection information is input by a user via a dialog menu.

15. The media of claim 13 , wherein the client is an HTTP-compatible thin client comprising a browser.

16. The media of claim 13 , wherein the transcoding remote desktop client comprises a generic transcoding service.

17. The media of claim 13 , wherein the load-balancing information comprises the number of present connections on each of the plurality of execution hosts.

Assignments (15)
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 →
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: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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 REEL 032809 FRAME 0987 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040026/0953 →
RELEASE OF REEL 032810 FRAME 0038 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040027/0686 →
RELEASE OF REEL 032810 FRAME 0023 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040014/0320 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032809/0987 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 032810/0038 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032810/0023 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2014
From: FAUSAK, ANDREW T.; ROMBAKH, OLEG
To: DELL PRODUCTS L.P.
Reel/Frame 032273/0329 →