Detailed Action
Applicant amended claims 1, 8 and 15 and presented claims 1-20 for reconsideration on 10/22/2025.
Claim Rejections - 35 USC § 103
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 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 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 5-8, 12-15 and 19-20 are rejected under 35 U.S.C. 103(a) as being unpatentable over HUANG SHUANG, WO 2024103714 A1 (Shuang), in view of Examiner's Official Notice.
Claim 1. Shuang teaches:
A data processing method based on data Lake and data Warehouse integration, comprising:
pre-storing at least two protocol files, wherein the at least two protocol files comprise a first protocol and a second protocol, wherein each protocol corresponds to a different data processing engine, wherein each protocol is configured to facilitate parsing a metadata acquisition request sent by a corresponding data processing engine and acquiring metadata from a metadata storage space, (a particular computing engine is associated with a protocol file/metadata model to be used for processing the particular computing ending’s metadata request: p. 3, “the data processing system includes multiple computing engines, and the management device includes a metadata model and a permission model adapted for each of the multiple computing engines”, p. 6, “The computing engines 1011 and 1012 belong to different types of computing engines”, “The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata”, “the present application realizes the connection between the computing engine and the management device 102 by mapping the metadata model 2 and the permission model 2 that the computing engine can adapt to the metadata model 1 and the permission model 1 in the management device 102, respectively”)
wherein only one set of metadata is stored, wherein the different data processing engine comprises a first data processing engine configured to process real-time data, wherein the different data processing engine further comprises a second data processing engine configured to process offline batch data; (one set of metadata is stored: p. 6, “The management device 102 has a fixed metadata model 1 and a permission model 1 built in. The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata. The metadata is used to describe the attribute information of the data stored in the storage device 103, such as the directory to which the data belongs, the database to which the data belongs, the storage location of the data, the storage format, the compression algorithm used, the partition to which the data belongs, and other attribute information”; wherein “the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use” suggests that an engine, e.g., “Clickhouse engine” can be configured for processing real-time data and another engine, e.g., “Spark engine” can be configured for processing offline batch data)
receiving a first metadata acquisition request sent by a data processing engine; (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
determining a target protocol for processing the first metadata acquisition request from the at least two protocol files according to an engine type of the data processing engine which sends the first metadata acquisition request; and (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
parsing, based on the target protocol, the first metadata acquisition request and acquiring metadata corresponding to the first metadata acquisition request from the metadata storage space. (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model…the management device sends the metadata of the target data to the computing engine after the access request is authenticated”)
Shuang did not specifically teach:
wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine.
However, Shuang specifically disclose that “the data processing system includes multiple computing engines” and the computing engines can be any available computing engines as desired:
The computing device 101 may include one or more computing engines, such as a structured query language (SQL) computing engine, an artificial intelligence (AI) computing engine, and a third-party computing engine. It may be a computing engine of an open source community or a computing engine for commercial use launched by a cloud vendor. Taking the SQL computing engine as an example, the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use. For ease of understanding, FIG1 is illustrated by taking the computing device 101 including computing engines 1011 and 1012 as an example. The computing engines 1011 and 1012 belong to different types of computing engines. In other embodiments, the computing device 101 may include any number and any type of computing engines. The computing device 101 is used to read and write data in the storage device 103 through the computing engine it includes. P.6.
The examiner takes official notice that “wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine” is simply using Mysgl and HiveMetastore as computing devices for processing data based on a designer choice and needs of an application. Therefore, it would have been obvious to one skilled in the art at the time of the invention to modify Shuang by using Mysql for processing data in real time and Hivemetastore engine for processing data offline. See provided additional references such as “Towards Low-Latency Big Data Infrastructure at Sangfor” by Chen et al., for example.
Claim 8. Shuang teaches:
An electronic device, comprising: one or more processors; and a non-transitory memory configured to store machine-readable instructions, wherein the machine-readable instructions, when executed by the one or more processors, cause the one or more processors to:
pre-store at least two protocol files, wherein the at least two protocol files comprise a first protocol and a second protocol, wherein each protocol corresponds to a different data processing engine, wherein each protocol is configured to facilitate parsing a metadata acquisition request sent by a corresponding data processing engine and acquiring metadata from a metadata storage space, (a particular computing engine is associated with a protocol file/metadata model to be used for processing the particular computing ending’s metadata request: p. 3, “the data processing system includes multiple computing engines, and the management device includes a metadata model and a permission model adapted for each of the multiple computing engines”, p. 6, “The computing engines 1011 and 1012 belong to different types of computing engines”, “The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata”, “the present application realizes the connection between the computing engine and the management device 102 by mapping the metadata model 2 and the permission model 2 that the computing engine can adapt to the metadata model 1 and the permission model 1 in the management device 102, respectively”)
wherein only one set of metadata is stored, wherein the different data processing engine comprises a first data processing engine configured to process real-time data, wherein the different data processing engine further comprises a second data processing engine configured to process offline batch data; (one set of metadata is stored: p. 6, “The management device 102 has a fixed metadata model 1 and a permission model 1 built in. The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata. The metadata is used to describe the attribute information of the data stored in the storage device 103, such as the directory to which the data belongs, the database to which the data belongs, the storage location of the data, the storage format, the compression algorithm used, the partition to which the data belongs, and other attribute information”; wherein “the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use” suggests that an engine, e.g., “Clickhouse engine” can be configured for processing real-time data and another engine, e.g., “Spark engine” can be configured for processing offline batch data)
receive a first metadata acquisition request sent by a data processing engine; (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
determine a target protocol for processing the first metadata acquisition request from the at least two protocol files according to an engine type of the data processing engine which sends the first metadata acquisition request; and (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
parse, based on the target protocol, the first metadata acquisition request and acquiring metadata corresponding to the first metadata acquisition request from the metadata storage space. (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model…the management device sends the metadata of the target data to the computing engine after the access request is authenticated”)
Shuang did not specifically teach:
wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine.
However, Shuang specifically disclose that “the data processing system includes multiple computing engines” and the computing engines can be any available computing engines as desired:
The computing device 101 may include one or more computing engines, such as a structured query language (SQL) computing engine, an artificial intelligence (AI) computing engine, and a third-party computing engine. It may be a computing engine of an open source community or a computing engine for commercial use launched by a cloud vendor. Taking the SQL computing engine as an example, the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use. For ease of understanding, FIG1 is illustrated by taking the computing device 101 including computing engines 1011 and 1012 as an example. The computing engines 1011 and 1012 belong to different types of computing engines. In other embodiments, the computing device 101 may include any number and any type of computing engines. The computing device 101 is used to read and write data in the storage device 103 through the computing engine it includes. P.6.
The examiner takes official notice that “wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine” is simply using Mysgl and HiveMetastore as computing devices for processing data based on a designer choice and needs of an application. Therefore, it would have been obvious to one skilled in the art at the time of the invention to modify Shuang by using Mysql for processing data in real time and Hivemetastore engine for processing data offline. See provided additional references such as “Towards Low-Latency Big Data Infrastructure at Sangfor” by Chen et al., for example.
Claim 15. Shuang teaches:
A non-transitory computer-readable storage medium storing instructions that cause a processor to:
pre-store at least two protocol files, wherein the at least two protocol files comprise a first protocol and a second protocol, wherein each protocol corresponds to a different data processing engine, wherein each protocol is configured to facilitate parsing a metadata acquisition request sent by a corresponding data processing engine and acquiring metadata from a metadata storage space, (a particular computing engine is associated with a protocol file/metadata model to be used for processing the particular computing ending’s metadata request: p. 3, “the data processing system includes multiple computing engines, and the management device includes a metadata model and a permission model adapted for each of the multiple computing engines”, p. 6, “The computing engines 1011 and 1012 belong to different types of computing engines”, “The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata”, “the present application realizes the connection between the computing engine and the management device 102 by mapping the metadata model 2 and the permission model 2 that the computing engine can adapt to the metadata model 1 and the permission model 1 in the management device 102, respectively”)
wherein only one set of metadata is stored, wherein the different data processing engine comprises a first data processing engine configured to process real-time data, wherein the different data processing engine further comprises a second data processing engine configured to process offline batch data; (one set of metadata is stored: p. 6, “The management device 102 has a fixed metadata model 1 and a permission model 1 built in. The metadata model 1 and the permission model 1 are adapted to the storage device 103, so that the management device 102 can use the metadata model 1 to manage the metadata corresponding to the data stored in the storage device 103, and use the permission model 1 to authenticate the processing operation for the metadata. The metadata is used to describe the attribute information of the data stored in the storage device 103, such as the directory to which the data belongs, the database to which the data belongs, the storage location of the data, the storage format, the compression algorithm used, the partition to which the data belongs, and other attribute information”; wherein “the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use” suggests that an engine, e.g., “Clickhouse engine” can be configured for processing real-time data and another engine, e.g., “Spark engine” can be configured for processing offline batch data)
receive a first metadata acquisition request sent by a data processing engine; (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
determine a target protocol for processing the first metadata acquisition request from the at least two protocol files according to an engine type of the data processing engine which sends the first metadata acquisition request; and (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model”)
parse, based on the target protocol, the first metadata acquisition request and acquiring metadata corresponding to the first metadata acquisition request from the metadata storage space. (p.2, “when the computing engine requests access to target data stored in the storage device, the management device receives an access request for metadata of the target data sent by the computing engine, and responds to the access request, determines the metadata of the target data according to a first mapping relationship, which is a mapping relationship between the first metadata model and the second metadata model, which is adapted to the computing engine, and the determined metadata of the target data satisfies the second metadata model…the management device sends the metadata of the target data to the computing engine after the access request is authenticated”)
Shuang did not specifically teach:
wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine.
However, Shuang specifically disclose that “the data processing system includes multiple computing engines” and the computing engines can be any available computing engines as desired:
The computing device 101 may include one or more computing engines, such as a structured query language (SQL) computing engine, an artificial intelligence (AI) computing engine, and a third-party computing engine. It may be a computing engine of an open source community or a computing engine for commercial use launched by a cloud vendor. Taking the SQL computing engine as an example, the SQL computing engine may specifically be a Presto engine, a Hive engine, a Spark engine, a Clickhouse engine, etc., and these types of computing engines all have versions of open source communities and versions for commercial use. For ease of understanding, FIG1 is illustrated by taking the computing device 101 including computing engines 1011 and 1012 as an example. The computing engines 1011 and 1012 belong to different types of computing engines. In other embodiments, the computing device 101 may include any number and any type of computing engines. The computing device 101 is used to read and write data in the storage device 103 through the computing engine it includes. P.6.
The examiner takes official notice that “wherein the at least two protocol files comprise a first protocol and a second protocol, the first protocol comprising a Mysgl protocol, the second protocol comprising an HiveMetastore protocol, wherein the Mysql protocol corresponds to the first data processing engine, and wherein the HiveMetastore protocol corresponds to the second data processing engine” is simply using Mysgl and HiveMetastore as computing devices for processing data based on a designer choice and needs of an application. Therefore, it would have been obvious to one skilled in the art at the time of the invention to modify Shuang by using Mysql for processing data in real time and Hivemetastore engine for processing data offline. See provided additional references such as “Towards Low-Latency Big Data Infrastructure at Sangfor” by Chen et al., for example.
Claim 5. The method of claim 1, wherein the metadata storage space is located outside a front end of a database. (¶¶ 30, 47, each component of the system, e.g., metadata storage space is a decoupled component)
Claims 12 and 19 are rejected under the same rationale.
Claim 6. The method of claim 1, further comprising:
in response to receiving a first query request sent by a client, determining a target data processing engine for processing the first query request from at least two data processing engines; and (a read query is assigned to a computing engine and in response, the computing engine generates a metadata request: p. 12: “When the computing engine 1012 needs to read the data stored in the storage device 103 (hereinafter referred to as the target data), the computing engine 1012 can generate an access request for the metadata of the target data to be read, and send the access request to the management device 102”)
sending the first query request to the target data processing engine, wherein the target data processing engine generates the first metadata acquisition request in a process of parsing the first query request. (a read query is assigned to a computing engine and in response the computing engine generates a metadata request: p. 12: “When the computing engine 1012 needs to read the data stored in the storage device 103 (hereinafter referred to as the target data), the computing engine 1012 can generate an access request for the metadata of the target data to be read, and send the access request to the management device 102”)
Claims 13 and 20 are rejected under the same rationale.
Claim 7. The method of claim 6, wherein the target processing engine queries target data corresponding to the first query request from a fact table of a database based on the acquired metadata. (p. 8, wherein “the metadata model includes information such as catalog, database, data table, function, column, partition, row, and location information” indicates that a requested metadata is used for querying a data table, e.g., a fact table)
Claims 14 is rejected under the same rationale.
Claims 2-4, 9-11 and 16-18 are rejected under 35 U.S.C. 103(a) as being unpatentable over Shuang as modified and applied to claims 1, 6, 8, 12, 15 and 19 above in view of Zheng et al., “A Token Authentication Solution for Hadoop Based on Kerberos Pre-Authentication” (Zheng).
Claim 2. Shuang as modified taught the method of claim 1; Shuang as modified did not disclose but Zheng discloses wherein the first metadata acquisition request is bound to a first token; (Zheng, fig. 1, wherein data access is bound to issued token/ticket) wherein the method further comprises:
in response to receiving a data processing request associated with predefined verification information, verifying a first electronic device which sends the data acquisition request based on the predefined verification information; (Zheng, sec. III, user credential is verified and “If everything is fine the user gets issued a JWT token”)
returning the first token in response to passing verification; and (Zheng, sec. III, user credential is verified and “If everything is fine the user gets issued a JWT token”; “Provided that the KDC trusts the Token Authority via Public Key Infrastructure (PKI) and the token is valid, the user gets issued Kerberos ticket”)
sending, by the first electronic device, the first metadata acquisition request bound to the first token in response to receiving the first token. (Zheng, sec. III “With issued ticket, the user can request to access Hadoop services as normally does”)
Shuang at p. 2 discloses that “the management device sends the metadata of the target data to the computing engine after the access request is authenticated”. It would have been obvious before the effective filling date of the claimed invention to a person having ordinary skill in the art to combine the applied references for disclosing wherein the first metadata acquisition request is bound to a first token; and wherein the method further comprises: in response to receiving a data processing request associated with predefined verification information, verifying a first electronic device which sends the data acquisition request based on the predefined verification information; returning the first token in response to passing verification; and sending, by the first electronic device, the first metadata acquisition request bound to the first token in response to receiving the first token because doing so would provide and alternative for accessing data storages securely in Shuang by leveraging the existing proven secured channel supported by a platform.
Claims 9 and 16 are rejected under the same rationale.
Claim 3. The method of claim 2, wherein the predefined verification information comprises at least one selected from a group of: a user identification, a token duration, and a verification code bound to the first electronic device. (Zheng, sec. III, wherein “the token is valid” indicates a token duration)
Claims 10 and 17 are rejected under the same rationale.
Claim 4. The method of claim 2, wherein the first electronic device is preset with an authentication plug-in, and the authentication plug-in is used for, in response to receiving an instruction to send the data processing request, associating the predefined verification information with the data processing request and sending the data processing request. (Zheng, sec. III, “token support can be done in a central place in Kerberos in a very elegant and pluggable approach via the Kerberos Pre-Authentication framework”)
Claims 11 and 18 are rejected under the same rationale.
Response to Amendment and Arguments
Applicant’s arguments with respect to amended claims have been fully considered but are moot in view of the new ground of rejections as provided above.
Applicant also presented arguments similar to previous arguments that had been explicitly addressed in previous office actions.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any extension fee pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Mohsen Almani whose telephone number is (571)270-7722. The examiner can normally be reached on M-F, 9 AM-5 PM, ET.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Ann J. Lo can be reached on 571-272-9767. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see https://ppair-my.uspto.gov/pair/PrivatePair. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/MOHSEN ALMANI/Primary Examiner, Art Unit 2159