# US 8,752,006 B1 · System and method and apparatus for automatically generating computer code for remote procedure calls

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

- Number: US 8,752,006 B1
- Document ID: US8752006B1
- Status: Granted
- Kind: B1
- Application number: 11/824,956
- Filed: 2007-07-02
- Granted: 2014-06-10
- Earliest claimed: 2007-07-02
- Assignees: Cisco Technology, Inc.
- Applicants: Gilman Tolle
- Inventors: Gilman Tolle
- Web page: https://patentgrep.com/patent/US8752006B1

## CPC

- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 8/30: Creation or generation of source code
- H04L 67/133: Protocols for remote procedure calls [RPC]
- 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 system and method accepts source code for one or more procedures and, for those procedures flagged as being remotely callable, generates communication code and a description that allows the code to be remotely callable via a server using a variety of formats, such as conventional web services formats.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving files comprising source code and a profile for the source code;
determining whether the source code in the received files contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices; and
responsive to determining that the source code in the received files contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices:
generating a new profile comprising profile information from the profile that relates to the procedure,
generating a first set of code for at least one of the one or more devices that can perform the procedure, the first set of code calling the procedure in response to a first command,
generating a second set of code for a gateway that enables the gateway to receive a second command and that enables the gateway to, in response to receiving the second command, provide the first command to at least one of the one or more devices that can perform the procedure, the gateway being configured to enable communications between the one or more devices,
generating a description according to the new profile, the description specifying a means by which the second command can be received by the gateway, and
storing, by one or more computers, the first set of code, the second set of code,
and the description.

### Claim 2 (depends on 1)

The method of claim 1, wherein the description comprises a Web services description.

### Claim 3 (depends on 1)

The method of claim 1:
wherein at least one of the one or more devices is a wireless portable device; and
wherein the gateway acts as a bridge between the at least one of the one or more devices that is a wireless portable device and one or more wired computer networks.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first set of code additionally translates at least one data element having a first type different from a type defined for the procedure in the source code, and received as part of the first command into at least one second type defined for the procedure in the source code.

### Claim 5 (depends on 1)

The method of claim 1, wherein the file contains at least one flag identifying the procedure.

### Claim 6 (depends on 1)

The method of claim 1, additionally comprising identifying an identifier for the procedure.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first set of code is stored on at least one of the one or more devices that can perform the procedure; and
wherein the second set of code is stored on the gateway.

### Claim 8

A system comprising:
a code storage having an input configured to receive files comprising source code and a profile for the source code, the code storage being further configured for providing the code at an output;
a code generator having an input coupled to the code storage output for receiving the files, the code generator being configured to determine whether the source code contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices, and being configured to, responsive to determining that the source code contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices:
generate a new profile comprising profile information from the profile that relates to the procedure,
generate a first set of code for at least one of the one or more devices that can perform the procedure, the first set of code calling the procedure in response to a first command,
generate a second set of code for a gateway that enables the gateway to receive a second command and that enables the gateway to, in response to receiving the second command, provide the first command to at least one of the one or more devices that can perform the procedure, the gateway being configured to enable communications between the one or more devices, and
generate a description according to the new profile, the description specifying a means by which the second command can be received by the gateway.

### Claim 9 (depends on 8)

The system of claim 8, wherein the description comprises a Web services description.

### Claim 10 (depends on 8)

The system of claim 8:
wherein at least one of the one or more devices is a wireless portable device; and
wherein the gateway acts as a bridge between the at least one of the one or more devices that is a wireless portable device and one or more wired computer networks.

### Claim 11 (depends on 8)

The system of claim 8, wherein the first set of code additionally translates at least one data element having a first type different from a type defined for the procedure in the source code, and received as part of the first command into at least one second type defined for the procedure in the source code.

### Claim 12 (depends on 8)

The system of claim 8, wherein at least one of the one or more devices is a wireless portable device; and
wherein the gateway acts as a bridge between the wireless portable device and one or more wired computer networks.

### Claim 13

A computer program product comprising a computer-readable non-transitory storage medium having computer readable program code embodied therein configured to cause one or more a computer systems to:
receive files comprising source code and a profile for the source code;
determine whether the source code in the received files contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices; and
responsive to determining that the source code in the received files contains instructions for a procedure that is performable, at least in part, by at least one of one or more devices:
generate a new profile comprising profile information from the profile that relates to the procedure,
generate a first set of code for at least one of the one or more devices that can perform the procedure, the first set of code calling the procedure in response to a first command,
generate a second set of code for a gateway that enables the gateway to receive a second command and that enables the gateway to, in response to receiving the second command, provide the first command to at least one of the one or more devices that can perform the procedure, the gateway being configured to enable communications between the one or more devices,
generate a description according to the new profile, the description specifying a means by which the second command can be received by the gateway, and
store the first set of code, the second set of code, and the description.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the description comprises a Web services description.

### Claim 15 (depends on 13)

The computer program product of claim 13:
wherein at least one of the one or more devices is a wireless portable device; and
wherein the gateway acts as a bridge between the at least one of the one or more devices that is a wireless portable device and one or more wired computer networks.

### Claim 16 (depends on 13)

The computer program product of claim 13, wherein the first set of code additionally translates at least one data element having a first type different from a type defined for the procedure in the source code, and received as part of the first command into at least one second type defined for the procedure in the source code.

### Claim 17 (depends on 13)

The computer program product of claim 13, wherein the file contains at least one flag identifying the procedure.

### Claim 18 (depends on 13)

The computer program product of claim 13, additionally comprising computer readable program code configured to cause at least one of the one or more computer systems to identify an identifier for the procedure.

### Claim 19 (depends on 13)

The computer program product of claim 13, wherein the first set of code is stored on at least one of the one or more devices that can perform the procedure; and
wherein the second set of code is stored on the gateway.
