# US 10,313,406 B2 · Synthetic transaction to determine centroid for cloud hosting

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

- Number: US 10,313,406 B2
- Document ID: US10313406B2
- Status: Granted
- Kind: B2
- Application number: 15/340,257
- Filed: 2016-11-01
- Published: 2018-05-03
- Granted: 2019-06-04
- Earliest claimed: 2016-11-01
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Amer Hassan; Bradford R. Clark; Gareth Lyndon Eadred Bridges; Russell Andrew Penar
- Web page: https://patentgrep.com/patent/US10313406B2

## CPC

- H04L 65/403: Arrangements for multi-party communication, e.g. for conferences (data switching systems for conference H04L12/18; arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities H04M3/56; television conferencing systems H04N7/15)
- H04L 65/1069: Session establishment or de-establishment
- H04L 65/80: Responding to QoS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One or more data centers are selected to host an online conference. The selection of the data center is based on a set of metrics that are measured from ‘synthetic’ transactions. These synthetic transactions are sent between candidate data centers and the participants in the conference call in order to measure one or more performance metrics (e.g., link quality metrics such as delay, packet loss, etc.) These measured performance metrics are used to determine a centroid that represents the geometric center or ‘center of mass,’ of the link quality between participants and data centers. This ‘link quality centroid’ is used to select a subset of data centers as candidate data centers. The candidate data center with the best average performance metric(s) is selected as the data center to host the conference.

## Claims

### Claim 1

A method of selecting a data processing system to host a communication session, comprising:
sending, between a first plurality of participants and a plurality of data processing systems, synthetic transactions to measure at least one performance metric associated with transmissions between each of the first plurality of participants and each of the plurality of data processing systems; and,
based on the at least one performance metric associated with transmissions between each of the first plurality of participants and each of the plurality of data processing systems, selecting an initial data processing system to host a communication session having participants on the communication session that include the first plurality of participants.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
sending, between at least one of a second plurality of participants and the plurality of data processing systems, synthetic transactions to measure the at least one performance metric associated with transmissions between each of at least one of the second plurality of participants and each of the plurality of data processing systems;
based on the at least one performance metric associated with transmissions between each of the second plurality of participants and each of the plurality of data processing systems, identifying a data processing system to host the communication session having participants on the communication session that include the second plurality of participants; and,
handing-off the communication session to the identified data processing system if the data processing system differs from the initial data processing system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the synthetic transactions are sent between the first plurality of participants and the plurality of data processing systems before the communication session is initiated.

### Claim 4 (depends on 1)

The method of claim 1, wherein the synthetic transactions are sent between the at least one of a second plurality of participants and the plurality of data processing systems after the initial data processing system has begun hosting the communication session.

### Claim 5 (depends on 1)

The method of claim 1, wherein the at least one performance metric includes a delay associated with the transmissions between each of at least one of the second plurality of participants and each of the plurality of data processing systems or a packet loss associated with the transmissions between each of at least one of the second plurality of participants and each of the plurality of data processing systems.

### Claim 6 (depends on 1)

The method of claim 1, wherein the plurality of data processing systems includes one or more data centers.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
before the communication session begins, selecting the plurality of data processing systems from a larger plurality of data processing systems based on synthetic transactions that measure the at least one performance metric associated with transmissions between each of the first plurality of participants and each of the larger plurality of data processing systems.

### Claim 8

A communication system, comprising:
an initial data processing system of a plurality of data processing systems to initially host a communication session having participants on the communication session that include a first plurality of participants, a selection of the initial data processing system being based at least in part on performance metrics associated with synthetic transmissions between each of the first plurality of participants and each of a first plurality of data processing systems of the plurality of data processing systems; and,
a handoff system to select an identified data processing system from a second plurality of data processing systems of the plurality of data processing systems based at least in part on performance metrics associated with synthetic transmissions between each of the first plurality of participants and the identified data processing system, the identified data processing system to host the communication session.

### Claim 9 (depends on 8)

The communication system of claim 8, wherein the selection of the identified data processing system is based on a first centroid determined from performance metrics associated with synthetic transmissions between each of the first plurality of participants and the first plurality of data processing systems.

### Claim 10 (depends on 9)

The communication system of claim 9, wherein the selection of the initial data processing system is based on a second centroid determined from performance metrics associated synthetic transmissions between each of the first plurality of participants and each of the first plurality of data processing systems.

### Claim 11 (depends on 10)

The communication system of claim 10, wherein the first plurality of data processing systems is selected from the plurality of data processing systems based on a respective locations associated with each of the first plurality of data processing systems and respective locations associated with each of the first plurality of data processing systems.

### Claim 12 (depends on 8)

The communication system of claim 8, wherein the performance metrics associated with synthetic transmissions between each of the first plurality of participants and the identified data processing system are based on measured delays associated with transmitting the synthetic transmissions between each of the first plurality of participants and the identified data processing system.

### Claim 13 (depends on 8)

The communication system of claim 8, wherein the performance metrics associated with synthetic transmissions between each of the first plurality of participants and the identified data processing system are based on measured packet losses associated with transmitting the synthetic transmissions between each of the first plurality of participants and the identified data processing system.

### Claim 14 (depends on 8)

The communication system of claim 8, wherein the identified data processing system is selected from the second plurality of data processing systems before the communication session begins.

### Claim 15 (depends on 8)

The communication system of claim 8, wherein the identified data processing system is selected from the second plurality of data processing systems after the communication session begins.

### Claim 16

A non-transitory computer readable medium having instructions stored thereon for selecting a data processing system to host a communication session that, when executed by a computer, at least instruct the computer to:
configure a plurality of data processing systems to send, between a first plurality of participants and the plurality of data processing systems, synthetic transactions to measure at least one performance metric associated with transmissions between each of the first plurality of participants and each of the plurality of data processing systems; and,
based on the at least one performance metric associated with transmissions between each of the first plurality of participants and each of the plurality of data processing systems, select an initial data processing system to host a communication session having participants on the communication session that include the first plurality of participants.

### Claim 17 (depends on 16)

The computer readable medium of claim 16, wherein the computer is further instructed to:
configure the plurality of data processing systems to send, between at least one of a second plurality of participants and the plurality of data processing systems, synthetic transactions to measure the at least one performance metric associated with transmissions between each of at least one of the second plurality of participants and each of the plurality of data processing systems;
based on the at least one performance metric associated with transmissions between each of the second plurality of participants and each of the plurality of data processing systems, identify a data processing system to host the communication session having participants on the communication session that include the second plurality of participants; and,
configure the handing-off of the communication session to the identified data processing system if the data processing system differs from the initial data processing system.

### Claim 18 (depends on 16)

The computer readable medium of claim 16, wherein the synthetic transactions are sent between the first plurality of participants and the plurality of data processing systems before the communication session is initiated.

### Claim 19 (depends on 16)

The computer readable medium of claim 16, wherein the synthetic transactions are sent between the at least one of a second plurality of participants and the plurality of data processing systems after the initial data processing system has begun hosting the communication session.

### Claim 20 (depends on 16)

The computer readable medium of claim 16, wherein the at least one performance metric includes a delay and a packet loss rate associated with the transmissions between each of at least one of the second plurality of participants and each of the plurality of data processing systems.
