IP Library Granted Patent US 8,914,769
Granted Patent B2
US 8,914,769 · App. 13/294,914 · Granted Dec 16, 2014

Source code generation for interoperable clients and server interfaces

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,914,769
App. No.
13/294,914
Granted
Dec 16, 2014
Kind
B2
Abstract

Systems and methods are provided for generating source code to enable communication between a server defined according to a first programming language and a client defined according to a second programming language. The system identifies a server data structure defined according to the first programming language and determines types of the data structure that are not accessible via a runtime conversion library for communications between the server and the client. The system further generates a revised data structure in the first programming language comprising types that are accessible via the runtime conversion library and may be used to manipulate the inaccessible types. The system further generates source code in the second programming language for the client to access the revised data structure via the runtime conversion library, wherein the source code correlates types of the revised data structure to the inaccessible types of the original data structure.

Claims (53)

1. A system for generating source code to enable communication between a server defined according to a first programming language and a client defined according to a second programming language, the system comprising:

a code generator, implemented by a processor, operable to identify a server data structure defined according to the first programming language, to determine types of the data structure that are not accessible via a runtime conversion library for communications between the server and the client, and to generate a revised data structure in the first programming language comprising types that are accessible via the runtime conversion library and that may be used to manipulate the inaccessible types;

the code generator further operable to generate source code in the second programming language for the client to access the revised data structure via the runtime conversion library, the source code correlating types of the revised data structure to the inaccessible types of the original data structure.

2. The system of claim 1 wherein:

the code generator is further operable to create types of the revised data structure by: recursively analyzing each inaccessible type to identify component types, determining component types supported for use with the conversion library, and including the determined component types at the revised data structure.

3. The system of claim 1 wherein:

the code generator is further operable to generate an interface for accessing the original data structure via the revised data structure, the interface comprising source code in the first programming language that implements the revised data structure and further correlates the accessible types of the revised data structure with the inaccessible types of the original data structure.

4. The system of claim 1 wherein:

the code generator is further operable to identify the original data structure by reviewing compiled source code for a server implementing the original data structure.

5. The system of claim 1 wherein:

the code generator is further operable to compile the source code to create the client for the server.

6. The system of claim 1 wherein:

the original data structure defines settings for printers of a printing system.

7. The system of claim 1 wherein:

the original data structure defines a format for print jobs.

8. The system of claim 1 wherein:

the original data structure defines permissions for user access to functions of a printing system.

9. A method for generating source code to enable communication between a server defined according to a first programming language and a client defined according to a second programming language, the method comprising:

identifying a server data structure defined according to the first programming language;

determining types of the data structure that are not accessible via a runtime conversion library for communications between the server and the client;

generating a revised data structure in the first programming language comprising types that are accessible via the runtime conversion library and that may be used to manipulate the inaccessible types; and

generating source code in the second programming language for the client to access the revised data structure via the runtime conversion library, the source code correlating types of the revised data structure to the inaccessible types of the original data structure.

10. The method of claim 9 further comprising:

creating types of the revised data structure by:

recursively analyzing each inaccessible type to identify component types;

determining component types that are supported for use with the conversion library; and

including the determined component types at the revised data structure.

11. The method of claim 9 further comprising:

generating an interface for accessing the original data structure via the revised data structure, the interface comprising source code in the first programming language that implements the revised data structure and further correlates the accessible types of the revised data structure with the inaccessible types of the original data structure.

12. The method of claim 9 wherein:

identifying the original data structure comprises reviewing compiled source code for a server implementing the original data structure.

13. The method of claim 9 further comprising:

compiling the source code to create the client for the server.

14. The method of claim 9 wherein:

the original data structure defines settings for printers of a printing system.

15. The method of claim 9 wherein:

The original data structure defines a format for print jobs.

16. The method of claim 9 wherein:

the original data structure defines permissions for user access to functions of a printing system.

17. A non-transitory computer readable medium embodying programmed instructions which, when executed by a processor, are operable for performing a method for generating source code to enable communication between a server defined according to a first programming language and a client defined according to a second programming language, the method comprising:

identifying a server data structure defined according to the first programming language;

determining types of the data structure that are not accessible via a runtime conversion library for communications between the server and the client;

generating a revised data structure in the first programming language comprising types that are accessible via the runtime conversion library and that may be used to manipulate the inaccessible types; and

generating source code in the second programming language for the client to access the revised data structure via the runtime conversion library, the source code correlating types of the revised data structure to the inaccessible types of the original data structure.

18. The medium of claim 17 further comprising:

creating the types of the revised data structure by:

recursively analyzing each inaccessible type to identify component types;

determining component types that supported for use with the conversion library; and

including the determined component types at the revised data structure.

19. The medium of claim 17 the method further comprising:

generating an interface for accessing the original data structure via the revised data structure, the interface comprising source code in the first programming language that implements the revised data structure and further correlates the accessible types of the revised data structure with the inaccessible types of the original data structure.

20. The medium of claim 17 wherein:

identifying the original data structure comprises reviewing compiled source code for a server implementing the original data structure.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED ON REEL 037593 FRAME 0641. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME TO AN ASSIGNMENT. Recorded Feb 22, 2016
From: RICOH PRODUCTION PRINT
To: RICOH COMPANY, LTD.
Reel/Frame 037868/0632 →
CHANGE OF NAME Recorded Jan 26, 2016
From: RICOH PRODUCTION PRINT
To: RICOH COMPANY, LTD.
Reel/Frame 037593/0641 →
CHANGE OF NAME Recorded Jan 26, 2016
From: INFORPRINT SOLUTIONS COMPANY, LLC
To: RICOH PRODUCTION PRINT SOLUTIONS LLC
Reel/Frame 037593/0888 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2011
From: LEMASTER, RONALD J
To: RICOH PRODUCTION PRINT SOLUTIONS LLC
Reel/Frame 027217/0870 →