# US 11,115,489 B2 · Cross-domain brokering protocol cloud proxy

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

- Number: US 11,115,489 B2
- Document ID: US11115489B2
- Status: Granted
- Kind: B2
- Application number: 16/545,192
- Filed: 2019-08-20
- Published: 2019-12-12
- Granted: 2021-09-07
- Earliest claimed: 2015-05-08
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Mark Hoffman; Jitendra Deshpande; Sam Arun Seeniraj
- Web page: https://patentgrep.com/patent/US11115489B2

## CPC

- H04L 67/562: Brokering proxy services
- G06F 9/54: Interprogram communication
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- 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

Aspects described herein provide improved system architectures for a cross-domain proxy so that server/controller software may be placed in a cloud-based environment, with only limited equipment required on-premises at a user location for use by application client software. Aspects described herein provide techniques for communicating information between disparate domains, while each party to the transaction believes it is on the same domain as the other party to the transaction. Aspects described herein generally relate to a method to transparently transport the Citrix Brokering Protocol (CBP, or other protocols) between On-Premises VDAs (e.g., virtualized Windows computers) to an In-Cloud Broker running on the Desktop Delivery Controllers (DDCs) when each resides in different domains. Using aspects described herein, resources that otherwise need to be co-located on the same administrative domain can be moved to different domains, e.g., using a cloud-based system architecture.

## Claims

### Claim 1

A system comprising:
one or more virtual desktop applications (VDAs) executing on a first physical computing device and hosted within a customer domain;
one or more desktop delivery controllers (DDCs) executing on a second physical computing device and hosted within one or more service provider domains different from the customer domain, wherein the one or more DDCs are configured to provide broker services to the one or more VDAs;
a broker proxy module hosted within the customer domain; and
a plurality of VDA proxy modules hosted within the one or more service provider domains,
wherein the broker proxy module is configured to:
receive, from one or more of the plurality of VDA proxy modules, metrics associated with a health of the broker services;
receiving, from the one or more VDAs, a request for broker services;
determine, based on the metrics, a first VDA proxy module of the plurality of VDA proxy modules; and
send, to the first VDA proxy module, the request for broker services, wherein the first VDA proxy module is configured to transmit the request to the one or more DDCs as if the one or more VDAs and the one or more DDCs were hosted within a single domain.

### Claim 2 (depends on 1)

The system of claim 1, wherein the broker proxy module is configured to send the request by sending the request is via a network, and wherein the metrics indicate a total round-trip time associated with the network.

### Claim 3 (depends on 1)

The system of claim 1, wherein the broker proxy module is configured to send the request by sending the request is via a network, and wherein the metrics indicate a total number of calls made via the network.

### Claim 4 (depends on 1)

The system of claim 1, wherein the broker proxy module is configured to send the request by sending the request is via a network, and wherein the metrics indicate a failure of an interface of the network.

### Claim 5 (depends on 1)

The system of claim 1, wherein the broker proxy module is configured to send the request by sending the request comprises sending the request via an intra-domain protocol, and wherein the intra-domain protocol is Citrix Brokering Protocol (CBP) over WCF Kerberos.

### Claim 6 (depends on 1)

The system of claim 1, wherein the broker proxy module executes on the first physical computing device.

### Claim 7 (depends on 1)

The system of claim 1, wherein at least one of the plurality of VDA proxy modules executes on the second physical computing device.

### Claim 8

A method comprising:
sending, by a broker proxy module hosted within a customer domain and to a virtual desktop application (VDA) proxy module hosted within one or more service provider domains, a message, wherein the VDA proxy module is configured to provide a service associated with one or more desktop delivery controllers (DDCs) executing on a second physical computing device and hosted within the one or more service provider domains;
receiving, from the VDA proxy module and in response to the message, metrics associated with a health of the service;
receiving, from a VDA executing on a first physical computing device and hosted within the customer domain, a request associated with the service; and
sending, based on the metrics and to the VDA proxy module, the request, wherein the VDA proxy module is configured to transmit the request to the one or more DDCs as if the VDA and the one or more DDCs were hosted within a single domain.

### Claim 9 (depends on 8)

The method of claim 8, wherein sending the request is via a network, and wherein the metrics indicate a total round-trip time associated with the network.

### Claim 10 (depends on 8)

The method of claim 8, wherein sending the request is via a network, and wherein the metrics indicate a total number of calls made via the network.

### Claim 11 (depends on 8)

The method of claim 8, wherein sending the request is via a network, and wherein the metrics indicate a failure of an interface of the network.

### Claim 12 (depends on 8)

The method of claim 8, wherein sending the request comprises sending the request via an intra-domain protocol, and wherein the intra-domain protocol is Citrix Brokering Protocol (CBP) over WCF Kerberos.

### Claim 13 (depends on 8)

The method of claim 8, wherein the broker proxy module executes on the first physical computing device.

### Claim 14 (depends on 8)

The method of claim 8, wherein the VDA proxy module executes on the second physical computing device.

### Claim 15 (depends on 8)

The method of claim 8, wherein the instructions, when executed by the one or more processors, cause the computing device to send the request via a network, and wherein the metrics indicate a total number of calls made via the network.

### Claim 16 (depends on 8)

The method of claim 8, wherein the instructions, when executed by the one or more processors, cause the computing device to send the request via a network, and wherein the metrics indicate a failure of an interface of the network.

### Claim 17 (depends on 8)

The method of claim 8, wherein the instructions, when executed by the one or more processors, cause the computing device to send the request by causing the computing device to send the request via an intra-domain protocol, and wherein the intra-domain protocol is Citrix Brokering Protocol (CBP) over WCF Kerberos.

### Claim 18 (depends on 8)

The method of claim 8, wherein the broker proxy module executes on the computing device.

### Claim 19

One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a computing device to:
send, via a broker proxy module hosted within a customer domain and to a virtual desktop application (VDA) proxy module hosted within one or more service provider domains, a message, wherein the VDA proxy module is configured to provide a service associated with one or more desktop delivery controllers (DDCs) executing on a second physical computing device and hosted within the one or more service provider domains;
receive, from the VDA proxy module and in response to the message, metrics associated with a health of the service;
receive, from a VDA executing on a first physical computing device and hosted within the customer domain, a request associated with the service; and
send, based on the metrics and to the VDA proxy module, the request, wherein the VDA proxy module is configured to transmit the request to the one or more DDCs as if the VDA and the one or more DDCs were hosted within a single domain.

### Claim 20 (depends on 19)

The non-transitory computer-readable media of claim 19, wherein the instructions, when executed by the one or more processors, cause the computing device to send the request via a network, and wherein the metrics indicate a total round-trip time associated with the network.
