# US 9,521,208 B2 · Generic transcoding service with library attachment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,208 B2
- Document ID: US9521208B2
- Status: Granted
- Kind: B2
- Application number: 15/146,696
- Filed: 2016-05-04
- Published: 2016-08-25
- Granted: 2016-12-13
- Earliest claimed: 2014-02-21
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Andrew T. Fausak; Oleg Rombakh
- Web page: https://patentgrep.com/patent/US9521208B2

## CPC

- H04L 67/1001: for accessing one among a plurality of replicated servers
- G06F 16/972: {Access to data in other repository systems, e.g. legacy data or dynamic Web page generation}
- H04L 47/70: Admission control; Resource allocation
- H04L 65/1069: Session establishment or de-establishment
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In particular embodiments, a method includes, by a computing device, receiving a connection from a client and assigning the client a unique socket. The method further includes launching a generic transcoding service attached to a runtime library, and the runtime library may be able to intercept system calls from a specific instance of an application executing on a remote client for exporting to the client. The method further includes receiving a termination of the connection by the client and updating load-balancing information.

## Claims

### Claim 1

A method comprising, by a computing device:
receiving a connection from a hypertext markup language (HTML) client, wherein the HTML client does not include functionality for a remote desktop protocol;
launching by a generic client engine a remote desktop protocol (RDP) client with a generic transcoding service attached to a runtime library, and wherein the runtime library is operable to intercept system calls from a specific instance of an application executing on a remote client for exporting to the HTML client;
defining by the generic transcoding service one or more functional primitives for import and export which allows for application extension for the HTML client, wherein the one or more functional primitives comprises HTML syntax and a stream service;
providing an interface to the HTML client with a RDP server via the stream service of the generic transcoding service such that the HTML client connects to an RDP server;
reconstructing, by the stream service via the interface, one or more tasks sent to and received from the RDP server;
providing a remote desktop client function via the stream service, wherein the remote desktop client function comprises transcoding one or more operations;
creating a plurality of channels, for the connection, associated with the generic transcoding service such that a plurality of independent streams of data are transported, wherein at least one of the plurality of channels is a control channel, and wherein at least one of the plurality of channels is a main channel; and
establishing bidirectional communication over the control channel between the generic client engine and the generic transcoding service using a unique reference identifier for each instance of the generic transcoding service.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving connection information from the HTML client describing the connection, wherein the connection information comprises a credential.

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

The method of claim 1, wherein the RDP client is a transcoding remote desktop client, wherein when the RDP client is launched a transcoding operation begins.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving, from the runtime library, one or more environmental variables via a control channel, wherein the one or more environmental variables are utilized to validate operation for a reference identifier.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
using the main channel to communicate between an HTML browser of the HTML client and the generic transcoding service;
communicating transcoded data via the main channel between the RDP server and the HTML browser of the client, wherein RDP server export and import of data occurs through the generic transcoding service;
managing communications of the RDP client via the generic transcoding service; and
receiving a termination of the connection by the HTML client.

### Claim 8

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 connection from a hypertext markup language (HTML) client, wherein the HTML client does not include functionality for a remote desktop protocol;
launch by a generic client engine a remote desktop protocol (RDP) client with a generic transcoding service attached to a runtime library, and wherein the runtime library is operable to intercept system calls from a specific instance of an application executing on a remote client for exporting to the HTML client;
define by the generic transcoding service one or more functional primitives for import and export which allows for application extension for the HTML client, wherein the one or more functional primitives comprises HTML syntax and a stream service;
provide an interface to the HTML client with a RDP server via the stream service of the generic transcoding service such that the HTML client connects to an RDP server;
reconstruct, by the stream service via the interface, one or more tasks sent to and received from the RDP server;
provide a remote desktop client function via the stream service, wherein the remote desktop client function comprises transcoding one or more operations;
create a plurality of channels, for the connection, associated with the generic transcoding service such that a plurality of independent streams of data are transported, wherein at least one of the plurality of channels is a control channel, and wherein at least one of the plurality of channels is a main channel; and
establish bidirectional communication over the control channel between the generic client engine and the generic transcoding service using a unique reference identifier for each instance of the generic transcoding service.

### Claim 9 (depends on 8)

The system of claim 8, the processors being further operable when executing the instructions to:
receive connection information from the HTML client describing the connection, wherein the connection information comprises a credential.

### Claim 10 (depends on 9)

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

### Claim 11 (depends on 8)

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

### Claim 12 (depends on 8)

The system of claim 8, wherein the RDP client is a transcoding remote desktop client, wherein when the RDP client is launched a transcoding operation begins.

### Claim 13 (depends on 8)

The system of claim 8, the processors being further operable when executing the instructions to:
receive, from the runtime library, one or more environmental variables via a control channel, wherein the one or more environmental variables are utilized to validate operation for a reference identifier.

### Claim 14 (depends on 8)

The system of claim 8, the processors being further operable when executing the instructions to:
use the main channel to communicate between an HTML browser of the HTML client and the generic transcoding service;
communicate transcoded data via the main channel between the RDP server and the HTML browser of the client, wherein RDP server export and import of data occurs through the generic transcoding service;
manage communications of the RDP client via the generic transcoding service; and
receive a termination of the connection by the HTML client.

### Claim 15

One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive a connection from a hypertext markup language (HTML) client, wherein the HTML client does not include functionality for a remote desktop protocol;
launch by a generic client engine a remote desktop protocol (RDP) client with a generic transcoding service attached to a runtime library, and wherein the runtime library is operable to intercept system calls from a specific instance of an application executing on a remote client for exporting to the HTML client;
define by the generic transcoding service one or more functional primitives for import and export which allows for application extension for the HTML client, wherein the one or more functional primitives comprises HTML syntax and a stream service;
provide an interface to the HTML client with a RDP server via the stream service of the generic transcoding service such that the HTML client connects to an RDP server;
reconstruct, by the stream service via the interface, one or more tasks sent to and received from the RDP server;
provide a remote desktop client function via the stream service, wherein the remote desktop client function comprises transcoding one or more operations;
creating a plurality of channels, for the connection, associated with the generic transcoding service such that a plurality of independent streams of data are transported, wherein at least one of the plurality of channels is a control channel, and wherein at least one of the plurality of channels is a main channel; and
establish bidirectional communication over the control channel between the generic client engine and the generic transcoding service using a unique reference identifier for each instance of the generic transcoding service.

### Claim 16 (depends on 15)

The media of claim 15, the software further operable when executed to:
receive connection information from the HTML client describing the connection, wherein the connection information comprises a credential.

### Claim 17 (depends on 16)

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

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

The media of claim 15, wherein the RDP client is a transcoding remote desktop client, wherein when the RDP client is launched a transcoding operation begins.

### Claim 20 (depends on 15)

The media of claim 15, the software further operable when executed to:
receive, from the runtime library, one or more environmental variables via a control channel, wherein the one or more environmental variables are utilized to validate operation for a reference identifier.
