DETAILED ACTION
Claims 1-20 are presented for examination.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-20 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Pethe (US 12,450,224 B2).
As to claim 1, Pethe teaches a computer program product (computing apparatus; col. 14, line 65), the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer processor to cause the computer processor to perform operations comprising (Computer executable instructions may be provided using any computer-readable media that are accessible by the computing apparatus 618. Computer-readable media may include, for example, computer storage media such as a memory 622 and communications media. Computer storage media, such as a memory 622, include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or the like; col. 14, lines 48-65):
receiving a front-end storage command for an object, wherein the object comprises a storage unit identifier and data (A translation application program interface (API) is exposed by a processor of a translation layer, wherein the translation API is configured to receive commands in an API command format. Later, a command, in the API command format and including a database type, is received via the exposed translation API from a command sender; col. 2, lines 37-43, col. 3, lines 19-23, col. 6, lines 10-27);
identifying a storage unit based on the identifier (Upon receiving a command 124 from the translation API 104, the controller 106 is configured to parse or otherwise interpret the data of the command 124 … the interpretation of the command 124 includes identifying the database ID 128, an identifier of a particular database instance in the databases 116 to which the command 124 is directed; col. 4, lines 16-25 and command data 132 (e.g., the data that defines the specific command to be performed and any other data necessary to perform it, such as a database query command that includes table information, and fields to be retrieved); col. 6, lines 12-16);
identifying one or more computational storage operations that are associated with the storage unit and with a type of the front-end storage command (commands being performed by microservices 108-110 on the databases 116 read data from the stored data 122 of the databases, write data to the stored data 122 of the databases, change data in the stored data 122 of the databases, and/or delete data from the stored data 122 of the databases; col. 7, lines 7-12);
converting the one or more computational storage operations into one or more back-end storage commands (Further, it should be understood that the translation of the API-compatible command data 132 to native database-compatible command data may be based on defined translation rules that are included in the microservice definitions on the controller 106 and provided to microservices 108-110 in the associated database type configurations 112-114 upon creation of the microservices. Such translation rules may be configured to translate the command data from an API-compatible format to a native database-compatible format in any way without departing from the description herein; col. 6, lines 40-49); and
executing the front-end storage command and the one or more backend storage commands (Upon translating a received command, each microservice 108 is configured to perform the translated command or otherwise cause the translated command to be performed on a target database 116. The way that the command is performed may be based on the type of the database 116 and how the microservice is configured to interface with the database. It should be understood that a microservice may be configured to cause a translated command to be performed on a target database in any way that is compatible with that database without departing from the description herein; col. 6, lines 50-59).
As to claim 2, Pethe teaches the computer program product of claim 1, wherein the storage unit identifier is selected from a group consisting of a bucket, a key, a range, a file directory, and a database table (command data 132 (e.g., the data that defines the specific command to be performed and any other data necessary to perform it, such as a database query command that includes table information, and fields to be retrieved); col. 6, lines 12-16 and microservices may be configured to perform data operations, such as reading data and writing data, on other forms of data structures or data stores (e.g., data files, lists, arrays, etc.); col. 7, lines 52-60).
As to claim 3, Pethe teaches the computer program product of claim 1, wherein the program instructions are executable by the computer processor to cause the computer processor to perform further operations comprising:
in response to the type of the front-end storage command comprising an ingress
operation, identifying the one or more computational storage operations that are associated with the storage unit and with the ingress operation; and in response to the type of the front-end storage command comprising an egress operation, identifying the one or more computational storage operations that are associated with the storage unit and with the egress operation ( a microservice is configured to receive a command 124 that is still in an API-compatible format and translate at least the command data 132 (e.g., the data that defines the specific command to be performed and any other data necessary to perform it, such as a database query command that includes table information, and fields to be retrieved) to a format that is compatible for use with the target database. A microservice may be configured to only translate received commands to one database-compatible format or even to one version of a database-compatible format (e.g., some database formats may have differing versions and the microservice may be configured to only be compatible with one version). Alternatively, or additionally, microservices may be configured to be specifically compatible to a particular database or database instance and/or specifically compatible to one or more types of commands (e.g., read or query commands, write command, database creation commands); col. 6, lines 10-27).
As to claim 4, Pethe teaches the computer program product of claim 1, wherein the program instructions are executable by the computer processor to cause the computer processor to perform further operations comprising:
identifying a trigger operation (identifying the microservice may include determining if a compatible microservice is available and, if no compatible microservice is available; col. 12, lines 8-10);
identifying one or more new computational storage operations that are associated with the storage unit and with the trigger operation (creating a compatible microservice from a microservice definition as described herein, such that the created microservice is then used as the identified microservice throughout the method 30; col. 12, lines 12-15);
converting the one or more new computational storage operations into one or more new back-end storage commands (At 308, the received command in the API command format is transferred to the identified microservice, wherein the identified microservice is configured to translate the transferred command from the API command format to a database command format associated with the database type included in the command; col. 12, lines 16-21); and
executing the one or more new back-end storage commands (to perform the translated command in the database command format in association with a database of the database type included in the received command; col. 12, lines 21-24).
As to claim 5, Pethe teaches the computer program product of claim 1, wherein the program instructions are executable by the computer processor to cause the computer processor to perform further operations comprising:
receiving a read front-end storage command for the storage unit, and returning data stored in the storage unit, including new data derived by executing the one or more back-end storage commands (Each type of database instance shown may be created, read, written to, updated, and/or removed through commands performed by the respective microservices 244, 248, and 252 as described herein. For instance, a command received via the REST API 204 to update a POSTGRESQL database instance 246 is provided to an available POSTGRESQL microservice 244, where the command is translated from the REST API format into a native POSTGRESQL format and performed on the target database instance 246. A response from performing the command is then returned to the microservice 244, where it is translated into a REST API formatted response and returned to the sender of the command via the REST API 204; col. 9, lines 15-27).
As to claim 6, Pethe teaches the computer program product of claim 1, wherein the one or more computational storage operations that are associated with the storage unit modify data of
other objects in the storage unit (update; col. 9, lines 15-20).
As to claim 7, Pethe teaches the computer program product of claim 1, wherein storage command semantics on a front-end storage interface are overloaded (The disclosure addresses the challenges of managing and interacting with different types of databases within a system, including the need for a user of the system to know multiple database languages and to use multiple different tools to perform operations on or in the multiple different types of databases; col. 2, lines 61-66).
As to claim 8, see rejection of claim 1 above.
Pethe further teaches a computer system, comprising: one or more computer processors, one or more computer-readable memories and one or more computer-readable, tangible storage devices; and program instructions, stored on at least one of the one or more computer-readable, tangible storage devices for execution by at least one of the one or more computer processors via at least one of the one or more computer-readable memories (A system comprising: at least one processor; and at least one memory storing computer program code, the computer program code when executed by the at least one processor, cause the at least one processor to; claim 9).
As to claim 9, see rejection of claim 2 above.
As to claim 10, see rejection of claim 3 above.
As to claim 11, see rejection of claim 4 above.
As to claim 12, see rejection of claim 5 above.
As to claim 13, see rejection of claim 6 above.
As to claim 14, the computer system of claim 8, wherein the computer processor
comprises a Graphics Processing Units (GPU) (GPU; col. 15, lines 40-41).
As to claim 15, see rejection of claim 1 above.
Pethe teaches a computer-implemented method (method; claim 1).
As to claim 16, see rejection of claim 2 above.
As to claim 17, see rejection of claim 3 above.
As to claim 18, see rejection of claim 4 above.
As to claim 19, see rejection of claim 5 above.
As to claim 20, see rejection of claim 6 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Kamath et al. (US 2020/0364220 A1) teaches a method for converting object-based query language queries into structured query language (SQL) queries. For example, converting an object-based query written in an object-based query language to generate a converted SQL query can comprise extracting incompatible keywords from the object-based query, generating metadata for objects and fields used in the object-based query, inserting implicit query information into the object-based query, and transforming a structure of the object-based query into a SQL compatible structure. The object-based query can also be enriched with application information for mapping entities to specific applications. The converted SQL query can be output.
Twohig (US 2024/0256179 A1) teaches system and method for managing application requests.
Schofield (US 2025/0138923 A1) teaches a computing system includes a first computing device that executes an object-oriented software application which maintain objects, for example, in a heap data structure, in memory. The object-oriented software application includes an API to convert between objects in the memory and data in a relational database and transmit requests to perform one or more operations involving the data in the relational database corresponding to the objects in the memory.
Schmitz et al. (US 2025/0278319 A1) teaches systems and methods include reception of a first call to a first interface at a first connector associated with a first data system, the first call requesting to write first data to the first data system and conforming to a data model, conversion, at the first connector, of the first call to a first data model of the first data system, transmission of the converted first call from the first connector to the first data system, reception of a second call to the first interface at a second connector associated with a second data system, the second call requesting to write second data to the second data system and conforming to the data model, conversion, at the second connector, of the second call to a second data model of the second data system, and transmission of the converted second call from the second connector to the second data system.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DIEM K CAO whose telephone number is (571)272-3760. The examiner can normally be reached Monday-Friday 8:00am-4:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Blair can be reached at 571-270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DIEM K CAO/Primary Examiner, Art Unit 2196
DC
August 4, 2026