# US 2017/0255452 A1 · Device Common Model Interface

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

- Number: US 2017/0255452 A1
- Document ID: US20170255452A1
- Status: Published application
- Kind: A1
- Application number: 15/449,372
- Filed: 2017-03-03
- Published: 2017-09-07
- Earliest claimed: 2016-03-04
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Robert Barnes; John Kozura
- Web page: https://patentgrep.com/patent/US20170255452A1

## CPC

- G06F 8/35: model driven
- G06F 8/10: Requirements analysis; Specification techniques
- G06F 8/24: {Object-oriented}
- H04L 41/0233: Object-oriented techniques, for representation of network management data, e.g. common object request broker architecture [CORBA]
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- 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
- H04L 69/18: Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
- H04L 41/0853: by actively collecting configuration information or by backing up configuration information
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A device common model interface is described that translates a schema describing a resource in a fabric network into a common object model and one or more target-specific data models, using a specification of a target application environment and a specification of a communication protocol. Elements of the schema that are useful for an application are extracted to generate the common object model and the one or more target-specific data models are provided to the application. The application interacts with an interface of the resource using the API of the target-specific data model, which performs operations that are specific to communicating with the resource in the target application environment and using the communication protocol.

## Claims

### Claim 1

A code generation system comprising:
a memory configured to store application environment specifications and communication protocol specifications, an application environment specification specifying a target application environment of an application, and a communication protocol specification specifying a communication protocol;
a processor system to implement a code generation application that is configured to:
receive a schema, the schema describing a resource in a distributed computing environment;
translate the received schema into a target-specific data model, the translation based on the application environment specification of the target application environment and the communication protocol specification, the target-specific data model comprising an Application Programming Interface (API) specific to the target application environment and the communication protocol;
extract elements of the received schema that are usable by the application that communicates with the resource using an interface of the resource;
using the extracted elements, generate a common object model in which the extracted elements are presented for an application developer, independent of the communication protocol; and
provide the target-specific data model to the application that interacts with the interface of the resource by using the API of the target-specific data model to perform operations that are specific to communicating with the interface of the resource in the target application environment and using the communication protocol.

### Claim 2 (depends on 1)

The code generation system of claim 1, wherein the schema includes a description of the resource, one or more traits of the resource, and one or more interfaces of the resource.

### Claim 3 (depends on 2)

The code generation system of claim 2, wherein each of the one or more interfaces of the resource provides access to functionality of the resource, and the functionality comprising at least one of the one or more traits of the resource, and wherein each of the one or more interfaces provides semantic meaning to operation of the functionality of the one or more traits of the resource.

### Claim 4 (depends on 1)

The code generation system of claim 1, wherein the resource is hosted on a service, and wherein the schema describes one or more traits of the service.

### Claim 5 (depends on 4)

The code generation system of claim 4, wherein the service is hosted on a mesh network device, a hub device, or a cloud-based service.

### Claim 6 (depends on 1)

The code generation system of claim 1, wherein the resource is a mesh network device.

### Claim 7 (depends on 6)

The code generation system of claim 6, wherein the mesh network device is one of: a thermostat, a hazard detector, a camera, a security sensor, or a hub.

### Claim 8 (depends on 1)

The code generation system of claim 1, the code generation application further configured to:
receive another schema that describes another resource in the distributed computing environment;
translate the other schema into a different target-specific data model, the translation based on the application environment specification of the target application environment and based on a different communication protocol specification, the different target-specific data model comprising an API specific to the target application environment and a different communication protocol;
extract elements of the other schema that are usable by the application to communicate with the other resource using an interface of the other resource;
using the extracted elements of the other schema, generate a different common object model in which the extracted elements are presented for the application developer, independent of the different communication protocol; and
provide the different target-specific data model to the application that interacts with the interface of the other resource by using the API of the different target-specific data model, to perform operations that are specific to communicating with the interface of the other resource in the target application environment and using the different communication protocol.

### Claim 9 (depends on 1)

The code generation system of claim 1, wherein the code generation system is hosted on one of: a cloud-based service, a computing device, or a mesh network device.

### Claim 10 (depends on 1)

The code generation system of claim 1, wherein the target application environment is one of: an Android environment, an iOS environment, or a web-based environment.

### Claim 11 (depends on 1)

The code generation system of claim 1, wherein the communication protocol is one of: an IEEE 802.15.4 protocol, a Thread network protocol, a fabric network protocol, a Bluetooth Low Energy (BLE) protocol, a Transmission Control Protocol (TCP) over Internet Protocol (IP), or a User Datagram Protocol (UDP) over IP.

### Claim 12

A method for generating a target-specific data model for a resource in a fabric network, the method comprising:
receiving, by a computing device, a schema describing the resource in the fabric network;
translating, by the computing device, the received schema into the target-specific data model, the translating using an application environment specification of a target application environment and a communication protocol specification, the target-specific data model comprising an Application Programming Interface (API) specific to the target application environment and a communication protocol specified by the communication protocol specification;
extracting elements of the received schema that are usable by an application that communicates with the resource using an interface of the resource;
based on the extracting the elements, generating a common object model in which the extracted elements are presented for an application developer, independent of the communication protocol; and
providing the target-specific data model to the application that interacts with the interface of the resource by using the API of the target-specific data model to perform operations that are specific to communicating with the interface of the resource in the target application environment and using the communication protocol.

### Claim 13 (depends on 12)

The method of claim 12, wherein the schema includes a description of the resource, one or more traits of the resource, and one or more interfaces of the resource, wherein each of the one or more interfaces of the resource provides access to functionality of the resource comprising at least one of the one or more traits of the resource, and wherein each of the one or more interfaces provides semantic meaning to operation of the functionality of the one or more traits of the resource.

### Claim 14 (depends on 12)

The method of claim 12, wherein the resource is hosted on a service, wherein the schema describes traits of the service, and wherein the service is hosted on a mesh network device, a hub device, or a cloud-based service.

### Claim 15 (depends on 12)

The method of claim 12, wherein the resource is a mesh network device, and wherein the mesh network device is one of: a thermostat, a hazard detector, a camera, a security sensor, or a hub.

### Claim 16 (depends on 12)

The method of claim 12, the method further comprising:
receiving another schema that describes another resource in the fabric network;
translating, by the computing device, the other received schema into a different target-specific data model, the translation based on the application environment specification of the target application environment and based on a different communication protocol specification, the other target-specific data model comprising an API specific to the target application environment and a different communication protocol;
extracting elements of the other schema that are usable by the application to communicate with the other resource using an interface of the other resource;
based on the extracting the elements of the other schema, generating another common object model in which the extracted elements are presented for the application developer, independent of the different communication protocol; and
providing the different target-specific data model to the application that interacts with the interface of the other resource by using the API of the different target-specific data model to perform operations that are specific to communicating with the interface of the other resource in the target application environment and using the different communication protocol.

### Claim 17

A computer-readable memory device comprising instructions executable by a computing device to perform operations comprising:
receiving a schema describing a resource in a fabric network;
translating the received schema into a target-specific data model, the translating using an application environment specification of a target application environment and a communication protocol specification, the target-specific data model comprising an Application Programming Interface (API) specific to the target application environment and a communication protocol specified by the communication protocol specification;
extracting elements of the received schema that are usable by an application that communicates with the resource using an interface of the resource;
based on the extracting the elements, generating a common object model in which the extracted elements are presented for an application developer, independent of the communication protocol; and
providing the target-specific data model to the application that application interacts with the interface of the resource by using the API of the target-specific data model to perform operations that are specific to communicating with the interface of the resource in the target application environment and using the communication protocol.

### Claim 18 (depends on 17)

The computer-readable memory device of claim 17, wherein the schema includes a description of the resource, one or more traits of the resource, and one or more interfaces of the resource, wherein each of the one or more interfaces of the resource provides access to functionality of the resource comprising at least one of the one or more traits of the resource, and wherein each of the one or more interfaces provides semantic meaning to operation of the functionality of the one or more traits of the resource.

### Claim 19 (depends on 17)

The computer-readable memory device of claim 17, wherein the resource is hosted on a service, wherein the schema describes traits of the service, and wherein the service is hosted on a mesh network device, a hub device, or a cloud-based service.

### Claim 20 (depends on 17)

The computer-readable memory device of claim 17, comprising instructions executable to perform operations further comprising:
receiving another schema that describes another resource in the fabric network;
translating the other received schema into a different target-specific data model, the translation based on the application environment specification of the target application environment and based on a different communication protocol specification, the other target-specific data model comprising an API specific to the target application environment and a different communication protocol;
extracting elements of the other schema that are usable by the application to communicate with the other resource using an interface of the other resource;
based on the extracting the elements of the other schema, generating another common object model in which the extracted elements are presented for the application developer, independent of the different communication protocol; and
providing the different target-specific data model to the application that interacts with the interface of the other resource by using the API of the different target-specific data model to perform operations that are specific to communicating with the interface of the other resource in the target application environment and using the different communication protocol.
