DETAILED ACTION
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 .
Response to Amendment
This Office action is in response to Applicant's amendment filed on 9/8/2025.
Claim 1, 2, 4, 6, 9, 10, 12, 14, 15 and 21 are pending. Claim 1. 9 and 21 are amended. Claim 3, 5. 7-8, 11, 13, 16-20 are cancelled. Claim 1, 2, 4, 6, 9, 10, 12, 14, 15 and 21 are rejected.
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 (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 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, 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.
Claim 1, 4, 6, 9, 12 and 14 and 21 are rejected under 35 U.S.C. 103 as being unpatentable over Robertson, Gavin et al (PGPUB Document No. 20040230571), hereafter, referred to as “Robertson”, in view of Betawadkar, Anjali et al (PGPUB Document No. 20090234799), hereafter, referred to as “Robertson”, in view of Wells, Joe et al (PGPUB Document No. 20170344605), hereafter, referred to as “Wells”, in view of Perumala, Saikiran et al (PGPUB Document No. 20200073987), hereafter, referred to as “Perumala”. in view of Axel, Von et al (European Patent Document No. EP 1498829), hereafter, referred to as “Von”, in further view of Carroll, John (PGPUB Document No. 20190026360), hereafter, referred to as “Carroll”.
Regarding claim 1 (Currently Amended), Robertson teaches A computer-implemented method, comprising: wherein the processing engine comprises a plurality of dedicated connectors, each of the plurality of dedicated connectors connected to a respective one of a plurality of micro-services(Robertson, Fig. 4 and para 0033 teach plurality of micro-services with their dedicated connectors para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”), wherein each of the plurality of dedicated connectors are registered with the processing engine to enable connector configuration data relating to a respective one of the plurality of micro-services to be fetched, wherein each of the plurality of micro-services is associated with a respective database(Robertson, para 0042 further discloses accessing plurality of services having different databases/ data sources “The query server 100 is capable of indexing and processing queries against multiple data sources 130. …. In this way, queries are processed against multiple data sources 130 simultaneously. The query server 100 passes down queries for processing to other configured query servers 120; in this way, queries are processed on multiple query servers 100, each with multiple data sources 130”), wherein the cross-data center query comprises a first identity of a first dedicated connector and a first query operation and a second identity of a second dedicated connector and a second query operation, the first dedicated connector to be accessed to connect to a first micro-service associated with a first database and the second dedicated connector to be accessed to connect to a second micro-service associated with second database (Robertson, para 0059 & Fig. 4 & Fig. 6 accessing one or more database using dedicated connection configuration file (connector) for each database such as 118a, 118b118c etc. for multiple separate service as such as “LEGACY APPLICATION”, “MODERN APPLICATION” 114a-d ; para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”);
But Robertson does not explicitly teach receiving, by a processing engine and from a user device in a multi-tenanted service environment, a cross-data center query for execution, converting, by the processing engine, the cross-data center query into a plurality of sub- queries comprising a first sub-query and a second sub-query, the first subquery comprising the first identity of the first dedicated connector and the first query operation and the second sub- query comprising the second identity of the second dedicated connector and the second query operation; making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service; converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application end point; receiving, by the first dedicated connector and from the first micro-service, a first sub-result in response to the first sub-query; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query; and compiling, by the processing engine, the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query, wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution Betawadkar teaches teach receiving, by a processing engine and from a user device in a multi-tenanted service environment, a cross-data center query for execution (Betawadkar, para 0004 discloses receiving a query for execution on federated server which is to be executed on multiple servers “A federated query is received at a federated database server……”‘; para 0027-0028 further discloses European and US data servers are physically separated and which suggests servers are hosted at cross-data centers; where Robertson further in para 0044 discloses that the application is being used by various users where each user can be a tenant “This has many benefits including minimizing contact between the query server 100 and the data source 130, resource usage, performance, and multi-user support”), converting, by the processing engine, the cross-data center query into a plurality of sub- queries comprising a first sub-query and a second sub-query, the first subquery comprising the first identity of the first dedicated connector and the first query operation and the second sub-query comprising the second identity of the second dedicated connector and the second query operation (Betawadkar, para 0004 receives a query then the Federated Server (engine) divides the query into plurality of subqueries to run on plurality of servers where execution plan has the configuration of source servers to run the sub-queries “A federated query execution plan is generated based on the received federated query. The federated query execution plan defines one or more source servers of the federated database and a unique subquery to be executed on each of the source servers”; para 0033 and 0042 disclose query with the help of configuration file identifying connector to access services/databases); receiving, by the first dedicated connector and from the first micro-service, a first sub-result in response to the first sub-query; and compiling, by the processing engine, the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query (Betawadkar, para 0004 further discloses receiving sub query results from various servers and aggregating subquery results “The subquery results are joined and aggregated at the first designated source server into a final query result. The final query result is returned to the federated database server”; where Robertson, para 0033 and 0042 disclose query with the help of configuration file identifying connector to access services/databases).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of subquery generation and execution on different servers of Betawadkar into feature using dedicated connectors to extract data from different data sources of Robertson to produce an expected result of accessing into multiple services. The modification would be obvious because one of ordinary skill in the art would be motivated to optimize the query performance by dividing it into subqueries to run into multiple data sources (Betawadkar, para 0002).
But Robertson and Betawadkar don’t explicitly teach making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service; converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application end point; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query; wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution Wells teaches making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service(Wells, para 0032 disclose REST API call can be made for executing queries on multiple databases “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; further, para 0032 discloses that API call can be REST (Representational State Transfer) request “API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query. For example, if the query is received as a REST request, API service 132 can decompose the request in a number of parts”; where Robertson, para 0059 & Fig. 4 & Fig. 6 accessing one or more database using dedicated connection configuration file (connector));
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of invoking REST (Representational State Transfer) call using application programming interface (API) of Wells into feature using dedicated connectors to extract data from different data sources of Robertson and Betawadkar to produce an expected result of accessing software application functions/methods for performing tasks. The modification would be obvious because one of ordinary skill in the art would be motivated to save development time by using exposed methods without having to know the inner implantation details by Application programming interfaces for Representational State Transfer (Wells, para 0021-0022).
But Robertson, Betawadkar and Wells don’t explicitly teach converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application end point; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query; wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution using REST call Perumala teaches converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application end point (Perumala, para 0092 discloses converting/building any query(sub-query) to a proprietary object query language such as salesforce object query language (para 0168) “the QE 250 includes a query optimizer of (also referred to as a “query builder”, “optimizer”, and the like), which may be program code that may analyze the user-issued query 212, and may translate the query 212 into an executable form (e.g., a DEIS 214) using one or more selected query plan(s) for execution”; where para 0148-0149 disclose sending the query to REST API end point “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; further, para 0032 discloses that API call can be REST (Representational State Transfer) request “the user-issued query 212 may be included in art HTTP message with a suitable URI/URL to access of an endpoint. In embodiments, the Async Public API 632 may correspond with the async query API discussed previously. The Async Public API 632 may be implemented as a REST or RESTful API, SOAP API, Apex API, and/or some other like API”); receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query(Perumala, para 0109 and 0110 discloses in om response to REST call, getting response for converted query/subquery(salesforce object query language) “Example HTTP Response message ………..SOQL=”select NewValue,CreatedBy.FirstName from FieldHistoryArchive”, targetObject=”MyResult_c”,argetFields={“NewValue”:”TargetNewValue_c” );
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of invoking REST (Representational State Transfer) call with object query language of Perumala into feature using dedicated connectors to extract data from different data sources of Robertson, Betawadkar and Wells to produce an expected result of accessing software application functions/methods for performing tasks. The modification would be obvious because one of ordinary skill in the art would be motivated to reduce resource overuse by using Representational State Transfer (REST or RESTful) API call to different data sources located in different platforms (Perumala, para 0021).
But Robertson, Betawadkar, Wells and Perumala don’t explicitly teach wherein compiling the first sub-result and the second sub-result into the resulting set
comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of hieratical structure traversing Von teaches wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes(Von, Fig. 6-10 and para 0036-0039 disclose in response to query aggregating information by traversing tree in bottom up fashion; where results are spared over different node branches (age, weight etc. “To calculate the values of the calculation objects for satisfying the query request for aggregate information, the subset defining InfoType tree 100 is traversed, for example, bottom up as described in the following”; where table in fig. 7-8 discloses that records can be created),
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of aggregating query results by traversing tree in a bottom-up fashion of Von into feature using dedicated connectors to extract data from different data sources of Robertson, Betawadkar and Wells to produce an expected result of aggregating query results. The modification would be obvious because one of ordinary skill in the art would be motivated to improve the aggregation processing by using tree node traversal (Von, para 0048).
But Robertson, Betawadkar, Wells, Perumala and Von don’t explicitly teach and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of hieratical structure traversing Carroll teaches and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array(Carroll, para 0041 discloses using different way or algorithm to process arrays for traversal “the set of data objects 30 may be arranged in a tree data structure. In such a case, any from a number of tree traversals or tree searches may be used for determining the hierarchy or structure of the set 30. For example, an in-order traversal algorithm may be used……… In such embodiments, any suitable graph, list, or array traversal algorithm may be used to determine the structure of the set of data objects 30”),
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of process arrays in a tree structure of Carroll into feature of aggregating data from a tree structure of Robertson, Betawadkar, Wells, Perumala and Von to produce an expected result of aggregating query results in different format (object/arrays). The modification would be obvious because one of ordinary skill in the art would be motivated to process hierarchical data in different forms based on their hierarchical relationship (Carroll, para 0004).
Claim 3, cancelled.
Regarding claim 4 (Previously Presented), Robertson, Betawadkar, Wells, Perumala, Von and Carroll teach all the limitations of claim 1 and Wells further teaches wherein the first representational state transfer application program interface call and the second representational state transfer application program interface call are each based on a mapping of the plurality of sub-queries and the connector configuration data associated with the plurality of micro-services (Wells, para 0032 disclose REST API call can be made for executing sub-queries on multiple databases “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; where Robertson discloses the mapping data is derived from API schema as disclosed in para 0030 and multiple service level access configuring are discloses in para 0059 “Applications 114 are connected to a first query server 100 a having a configuration file 118 a via standard driver 104”).
Claim 5, cancelled.
Regarding claim 6 (Previously Presented), Robertson, Betawadkar, Wells, Perumala, Von and Carroll teach all the limitations of claim 1 and Robertson further teaches wherein the first micro-service and the second micro-service each obtain the first sub-result and the second sub-result through respective ones of a data access layer connection with the respective database (Robertson, para 0027 & Fig. 4 further discloses accessing data from various micro-services using their configuration files from plurality of databases “is the final result-set data in the data source 130 retrieved. Final result-set data from multiple disparate date sources 130 are ranked and merged, and presented to the application 114 and end-user 116 submitting the query”).
Claim 7-8, cancelled.
Regarding claim 9 (Currently Amended), Robertson teaches A system, comprising: at least one data processor; and at least one memory storing instructions which, when executed by the at least one data processor, result in operations comprising (Robertson, para 0033 discloses computer hardware to run program codes & Fig. 6 discloses the system):
wherein the data processor comprises a plurality of dedicated connectors, each of the plurality of dedicated connectors connected to a respective one of a plurality of micro-services(Robertson, Fig. 4 and para 0033 teach plurality of micro-services with their dedicated connectors para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”), wherein each of the plurality of dedicated connectors are registered to enable connector configuration data relating to a respective one of the plurality of micro-services to be fetched, wherein each of the plurality of micro-services is associated with a respective database(Robertson, para 0042 further discloses accessing plurality of services having different databases/ data sources “The query server 100 is capable of indexing and processing queries against multiple data sources 130. …. In this way, queries are processed against multiple data sources 130 simultaneously. The query server 100 passes down queries for processing to other configured query servers 120; in this way, queries are processed on multiple query servers 100, each with multiple data sources 130”), wherein the cross- data center query comprises a first identity of a first dedicated connector and a first query operation and a second identity of a second dedicated connector and a second query operation,
the first dedicated connector to be accessed to connect to a first micro-service associated with a first database and the second dedicated connector to be accessed to connect to a second micro-service associated with a second database (Robertson, para 0059 & Fig. 4 & Fig. 6 accessing one or more database using dedicated connection configuration file (connector) for each database such as 118a, 118b118c etc. for multiple separate service as such as “LEGACY APPLICATION”, “MODERN APPLICATION” 114a-d ; para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”);
But Robertson does not explicitly teach receiving, from a user device in a multi-tenanted service environment, across- data center query for execution, converting the cross-data center query into a plurality of sub-queries comprising a first sub-query and a second sub-query, the first sub-query comprising the first identity of the first dedicated connector and the first query operation and the second sub-query comprising the Second identity of the second dedicated connector and the second query operation, making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service; converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a
receiving, by the first dedicated connector and from the first micro-service, a first sub-result in response to the first sub-query; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query; and compiling the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query, wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However in the same field of endeavor of query execution Betawadkar teaches receiving, from a user device in a multi-tenanted service environment, a cross- data center query for execution (Betawadkar, para 0004 discloses receiving a query for execution on federated server which is to be executed on multiple servers “A federated query is received at a federated database server……”‘; para 0027-0028 further discloses European and US data servers are physically separated and which suggests servers are hosted at cross-data centers; where Robertson in para 0044 discloses that the application is being used by various users where each user can be a tenant “This has many benefits including minimizing contact between the query server 100 and the data source 130, resource usage, performance, and multi-user support”), converting the cross-data center query into a plurality of sub-queries comprising a first sub-query and a second sub-query, the first sub-query comprising the first identity of the first dedicated connector and the first query operation and the second sub-query comprising the Second identity of the second dedicated connector and the second query operation (Betawadkar, para 0004 receives a query then the Federated Server (engine) divides the query into plurality of subqueries to run on plurality of servers where execution plan has the configuration of source servers to run the sub-queries “A federated query execution plan is generated based on the received federated query. The federated query execution plan defines one or more source servers of the federated database and a unique subquery to be executed on each of the source servers”; where Robertson, para 0033 and 0042 disclose query with the help of configuration file identifying connector to access services/databases).
receiving, by the first dedicated connector and from the first micro-service, a first sub-result in response to the first sub-query; and compiling the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query (Betawadkar, para 0004 further discloses receiving sub query results from various servers and aggregating subquery results “The subquery results are joined and aggregated at the first designated source server into a final query result. The final query result is returned to the federated database server”; where Robertson, para 0033 and 0042 disclose query with the help of configuration file identifying connector to access services/databases).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of subquery generation and execution on different servers of Betawadkar into feature using dedicated connectors to extract data from different data sources of Robertson to produce an expected result of accessing into multiple services. The modification would be obvious because one of ordinary skill in the art would be motivated to optimize the query performance by dividing it into subqueries to run into multiple data sources (Betawadkar, para 0002).
But Robertson and Betawadkar don’t explicitly teach making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service; converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application endpoint; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query, wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution Wells teaches making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service(Wells, para 0032 disclose REST API call can be made for executing queries on multiple databases “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; further, para 0032 discloses that API call can be REST (Representational State Transfer) request “API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query. For example, if the query is received as a REST request, API service 132 can decompose the request in a number of parts”; where Robertson, para 0059 & Fig. 4 & Fig. 6 accessing one or more database using dedicated connection configuration file (connector));
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of invoking REST (Representational State Transfer) call using application programming interface (API) of Wells into feature using dedicated connectors to extract data from different data sources of Robertson and Betawadkar to produce an expected result of accessing software application functions/methods for performing tasks. The modification would be obvious because one of ordinary skill in the art would be motivated to save development time by using exposed methods without having to know the inner implantation details by Application programming interfaces for Representational State Transfer (Wells, para 0021-0022).
But Robertson, Betawadkar and Wells don’t explicitly teach converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application endpoint; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query, wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution using REST call Perumala teaches converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application endpoint (Perumala, para 0092 discloses converting/building any query(sub-query) to a proprietary object query language such as salesforce object query language (para 0168) “the QE 250 includes a query optimizer of (also referred to as a “query builder”, “optimizer”, and the like), which may be program code that may analyze the user-issued query 212, and may translate the query 212 into an executable form (e.g., a DEIS 214) using one or more selected query plan(s) for execution”; where para 0148-0149 disclose sending the query to REST API end point “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; further, para 0032 discloses that API call can be REST (Representational State Transfer) request “the user-issued query 212 may be included in art HTTP message with a suitable URI/URL to access of an endpoint. In embodiments, the Async Public API 632 may correspond with the async query API discussed previously. The Async Public API 632 may be implemented as a REST or RESTful API, SOAP API, Apex API, and/or some other like API”); receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query (Perumala, para 0109 and 0110 discloses in om response to REST call, getting response for converted query/subquery(salesforce object query language) “Example HTTP Response message ………..SOQL=”select NewValue,CreatedBy.FirstName from FieldHistoryArchive”, targetObject=”MyResult_c”,argetFields={“NewValue”:”TargetNewValue_c” );
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of invoking REST (Representational State Transfer) call with object query language of Perumala into feature using dedicated connectors to extract data from different data sources of Robertson, Betawadkar and Wells to produce an expected result of accessing software application functions/methods for performing tasks. The modification would be obvious because one of ordinary skill in the art would be motivated to reduce resource overuse by using Representational State Transfer (REST or RESTful) API call to different data sources located in different platforms (Perumala, para 0021).
But Robertson, Betawadkar, Wells and Perumala don’t explicitly teach wherein compiling the first sub-result and the second sub-result into the resulting set
comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of hieratical structure traversing Von teaches wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes(Von, Fig. 6-10 and para 0036-0039 disclose in response to query aggregating information by traversing tree in bottom up fashion; where results are spared over different node branches (age, weight etc. “To calculate the values of the calculation objects for satisfying the query request for aggregate information, the subset defining InfoType tree 100 is traversed, for example, bottom up as described in the following”; where table in fig. 7-8 discloses that records can be created ),
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of aggregating query results by traversing tree in a bottom-up fashion of Von into feature using dedicated connectors to extract data from different data sources of Robertson, Betawadkar and Wells to produce an expected result of aggregating query results. The modification would be obvious because one of ordinary skill in the art would be motivated to improve the aggregation processing by using tree node traversal (Von, para 0048).
But Robertson, Betawadkar, Wells, Perumala and Von don’t explicitly teach and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of hieratical structure traversing Carroll teaches and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array(Carroll, para 0041 discloses using different way or algorithm to process arrays for traversal “the set of data objects 30 may be arranged in a tree data structure. In such a case, any from a number of tree traversals or tree searches may be used for determining the hierarchy or structure of the set 30. For example, an in-order traversal algorithm may be used……… In such embodiments, any suitable graph, list, or array traversal algorithm may be used to determine the structure of the set of data objects 30”),
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the feature of process arrays in a tree structure of Carroll into feature of aggregating data from a tree structure of Robertson, Betawadkar, Wells, Perumala and Von to produce an expected result of aggregating query results in different format (object/arrays). The modification would be obvious because one of ordinary skill in the art would be motivated to process hierarchical data in different forms based on their hierarchical relationship (Carroll, para 0004).
Regarding claim 11, cancelled.
Regarding claim 12 (Previously Presented), Robertson, Betawadkar, Wells, Perumala, Von and Carroll teach all the limitations of claim 9 and Wells further teaches wherein the first representational state transfer application program interface call and the second representational state transfer application program interface call are each based on a mapping of the plurality of sub-queries and the connector configuration data associated with the plurality of micro-services (Wells, para 0032 disclose REST API call can be made for executing sub-queries on multiple databases “API service 132 generally decomposes (or parses) a query against a graph projection of an API to generate one or more subqueries executed on application gateway 130 (or at server locations 140). To decompose (or parse) a query, API service 132 can break a received query into a plurality of parts based on one or more delimiters defined for a format of the query”; where Robertson discloses the mapping data is derived from API schema as disclosed in para 0030 and multiple service level access configuring are discloses in para 0059 “Applications 114 are connected to a first query server 100 a having a configuration file 118 a via standard driver 104”).
Claim 13, cancelled.
Regarding claim 14 (Previously Presented), Robertson, Betawadkar, Wells, Perumala, Von and Carroll teach all the limitations of claim 9 and Robertson further teaches wherein the first micro-service and the second micro-service each obtain the first sub-result and the second sub-result through respective ones of a data access layer connection with the respective database (Robertson, para 0027 & Fig. 4 further discloses accessing data from various micro-services using their configuration files from plurality of databases “is the final result-set data in the data source 130 retrieved. Final result-set data from multiple disparate date sources 130 are ranked and merged, and presented to the application 114 and end-user 116 submitting the query”).
Claim 16-20, cancelled.
Regarding claim 21 (Currently Amended), Robertson teaches A non-transitory computer-readable storage storing instructions which, when executed by at least one data processor, result in operations comprising (Robertson, para 0033 discloses computer hardware to run program codes & Fig. 6 discloses the system): wherein the data processor comprises a plurality of dedicated connectors, each of the plurality of dedicated connectors connected to a respective one of a plurality of micro-services (Robertson, Fig. 4 and para 0033 teach plurality of micro-services with their dedicated connectors para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”), wherein each of the plurality of dedicated connectors are registered to enable connector configuration data relating to a respective one of the plurality of micro-services to be fetched, wherein each of the plurality of micro-services is associated with a respective database(Robertson, para 0042 further discloses accessing plurality of services having different databases/ data sources “The query server 100 is capable of indexing and processing queries against multiple data sources 130. …. In this way, queries are processed against multiple data sources 130 simultaneously. The query server 100 passes down queries for processing to other configured query servers 120; in this way, queries are processed on multiple query servers 100, each with multiple data sources 130”), wherein the cross-data center query comprises a first identity of a first dedicated connector and a first query operation and a second identity of a second dedicated connector and a second query operation, the first dedicated connector to be accessed to connect to a first micro-service associated with a first database and the second dedicated connector to be accessed to connect to a second micro-service associated with a second database (Robertson, para 0059 & Fig. 4 & Fig. 6 accessing one or more database using dedicated connection configuration file (connector) for each database such as 118a, 118b118c etc. for multiple separate service as such as “LEGACY APPLICATION”, “MODERN APPLICATION” 114a-d ; para 0033 further discloses dedicated connectors (connection configuration files) “The query server 100 may have one or more configuration files 118 that contain data source connection and logon data for one or more data sources 130. These configuration files 118 can be application-specific and invoked along with the query submitted to query server 100”);
But Robertson does not explicitly teach receiving, from a user device in a multi-tenanted service environment, a cross-data center query for execution, converting the cross-data center query into a plurality of sub-queries comprising a first sub-query and a second sub-query, the first sub-query comprising the first identity of the first dedicated connector and the first query operation and the second sub-query comprising the second identity of the second dedicated connector and the second query operation; making, by the first dedicated connector and using the connector configuration data, a first representational state transfer application program interface call for the first sub-query to the first micro-service; converting, by an object query builder, the second sub-query into a proprietary object query language and sending the converted second sub-query to a representational state transfer application endpoint; receiving, by the first dedicated connector and from the first micro-service, a first sub-result in response to the first sub-query; receiving, by the second dedicated connector and from the representational state transfer application endpoint, a second sub-result in response to the converted second sub-query; and compiling the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query, wherein compiling the first sub-result and the second sub-result into the resulting set comprises: creating records of data for producing the resulting set by traversing a tree that reflects the first sub-result and the second sub-result in a bottom-up approach, wherein the tree comprises a root node and one or more child nodes, and wherein the creation of the records of data varies based on whether a current node being traversed comprises an object or an array.
However, in the same field of endeavor of query execution Betawadkar teaches receiving, from a user device in a multi-tenanted service environment, a cross-data center query for execution, (Betawadkar, para 0004 discloses receiving a query for execution on federated server which is to be executed on multiple servers “A federated query is received at a federated database server……”‘; para 0027-0028 further discloses European and US data servers are physically separated and which suggests servers are hosted at cross-data centers; where Robertson further in para 0044 discloses that the application is being used by various users where each user can be a tenant “This has many benefits including minimizing contact between the query server 100 and the data source 130, resource usage, performance, and multi-user support”), converting the cross-data center query into a plurality of sub-queries comprising a first sub-query and a second sub-query, the first sub-query comprising the first identity of the first dedicated connector and the first query operation and the second sub-query comprising the second identity of the second dedicated connector and the second query operation (Betawadkar, para 0004 receives a query then the Federated Server (engine) divides the query into plurality of subqueries to run on plurality of servers where execution plan has the configuration of source servers to run the sub-queries “A federated query execution plan is generated based on the received federated query. The federated query execution plan defines one or more source servers of the federated database and a unique subquery to be executed on each of the source servers”; where Robertson, para 0033 and 0042 disclose query with the help of configuration file identifying connector to access services/databases); receiving, by the first dedicated connector and from the first micro-service, a first sub- result in response to the first sub-query; and compiling the first sub-result and the second sub-result into a resulting set to satisfy the cross-data center query (Betawadkar, para 0004 further discloses receiving sub query results from various servers and aggregating subquery results “The subquery results are joined and aggregated at the first designated source server into a final query result. The final query result is returned to the federated database server”; where Robertson, para 0033 and 0042 disclose query with the