# US 2024/0205293 A1 · Distributed Ambient Computing within an Environment

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

- Number: US 2024/0205293 A1
- Document ID: US20240205293A1
- Status: Published application
- Kind: A1
- Application number: 18/588,834
- Filed: 2024-02-27
- Published: 2024-06-20
- Earliest claimed: 2020-06-29
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Kenneth Mixter; Ken MacKay; Byungchul Kim
- Web page: https://patentgrep.com/patent/US20240205293A1

## CPC

- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 21/44: Program or device authentication
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- 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

Systems and techniques are provided for distributed ambient computing within an environment. A first version of an ambient computing library running on a device may check a manifest in the storage of the device to identify a second device that provides a service. The first version of the ambient computing library may send data to be processed using the service to the second device through a second version of the ambient computing library running on the second device. The first device and the second device may include different computing hardware. The first version of the ambient computing library may receive data including results from the second device through the second version of the ambient computing library. The data including the results may be generated by the second device based on processing the data sent from the device by the first version of the ambient computing library.

## Claims

### Claim 1

A method comprising:
identifying, by a first device, a second device that provides a service;
identifying, by the first device, the second device as leader for the service, a respective leader for a respective service elected based on at least one of hardware or software capabilities sufficient to perform the respective service;
sending, from the first device, data to be processed using the service provided by the second device; and
receiving, at the first device, data including results from the second device, the results based on processing, with the service provided by the second device using computing hardware of the second device, the data sent from the first device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining, by the first device, a leader device for a second service, wherein second data stored on the first device is of a type used by the second service; and
sending, by the first device, the second data to the leader device for the second service.

### Claim 3 (depends on 2)

The method of claim 2, wherein the leader device for the second service is listed in a home directory stored on the first device.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
prior to identifying the second device as leader for the service, voting, by the first device, in an election for the leader device.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
sending, by the first device, an authorization request to a server, the authorization request comprising a request by the first device to create and offer a third service to other devices in an environment with the first device; and
receiving, from the server, an updated listing of devices for the third service.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
receiving, by the first device from a third device, second data to be processed using the third service provided by the first device;
processing the second data with the third service provided by the first device to generate third data comprising results of processing the second data; and
sending, by the first device, the third data comprising results to one or more devices in an environment with the first device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first device and the second device are located in an environment and communicate through a local area network.

### Claim 8 (depends on 1)

The method of claim 1, wherein identifying the second device that provides the service is identified using an ambient computing library running on the first device, and wherein:
sending data from the first device is sent by the ambient computing library running on the first device; and
receiving data from the second device is received by the ambient computing library on the first device.

### Claim 9 (depends on 1)

The method of claim 1, wherein identifying the second device as leader for the service is identified using a home directory in a storage of the first device.

### Claim 10

One or more non-transitory computer readable storage devices storing instructions that are operable, when executed by one or more computers, to cause the one or more computers to perform operations comprising:
identifying, by a first device, a second device that provides a service;
identifying, by the first device, the second device as leader for the service, a respective leader for a respective service elected based on at least one of hardware or software capabilities sufficient to perform the respective service;
sending, from the first device, data to be processed using the service provided by the second device; and
receiving, at the first device, data including results from the second device, the results based on processing, with the service provided by the second device using computing hardware of the second device, the data sent from the first device.

### Claim 11 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein the instructions further cause the one or more computers to perform operations comprising:
determining, by the first device, a leader device for a second service, wherein second data stored on the first device is of a type used by the second service; and
sending, by the first device, the second data to the leader device for the second service.

### Claim 12 (depends on 11)

The one or more non-transitory computer readable storage devices of claim 11, wherein the leader device for the second service is listed in a home directory stored on the first device.

### Claim 13 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein the instructions further cause the one or more computers to perform operations comprising:
voting, prior to identifying the second device as leader for the service, by the first device, in an election for the leader device.

### Claim 14 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein the instructions further cause the one or more computers to perform operations comprising:
sending, by the first device, an authorization request to a server, the authorization request comprising a request by the first device to create and offer a third service to other devices in an environment with the first device; and
receiving, from the server, an updated listing of devices for the third service.

### Claim 15 (depends on 14)

The one or more non-transitory computer readable storage devices of claim 14, wherein the instructions further cause the one or more computers to perform operations comprising:
receiving, by the first device from a third device, second data to be processed using the third service provided by the first device;
processing the second data with the third service provided by the first device to generate third data comprising results of processing the second data; and
sending, by the first device, the third data comprising results to one or more devices in an environment with the first device.

### Claim 16 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein the first device and the second device are located in an environment and communicate through a local area network.

### Claim 17 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein identifying the second device that provides the service is identified using an ambient computing library running on the first device, and wherein:
sending data from the first device is sent by the ambient computing library running on the first device; and
receiving data from the second device is received by the ambient computing library on the first device.

### Claim 18 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein identifying the second device as leader for the service is identified using a home directory in a storage of the first device.

### Claim 19 (depends on 10)

The one or more non-transitory computer readable storage devices of claim 10, wherein the first device comprises a mobile computing device and the second device comprises a desktop computer.

### Claim 20 (depends on 19)

The one or more non-transitory computer readable storage devices of claim 19, wherein identifying, by the first device, the second device as leader for the service identifies the second device from a group of two or more devices.
