DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to claims filed 08/12/2024.
Claims 1-20 are pending.
Claim Rejections - 35 USC § 101
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, is directed to that judicial exception, an abstract idea, as it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below. Step 1: Claims 1-7 are directed to a system and falls within the statutory category of machines; Claims 8-14 are directed to methods and fall within the statutory category of processes; Claims 15-20 are directed to a computer-readable media and falls within the statutory category of articles of manufacture. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes.
In order to evaluate the Step 2A inquiry “Is the claim directed to a law of nature, a natural phenomenon or an abstract idea?” we must determine, at Step 2A Prong 1, whether the claim recites a law of nature, a natural phenomenon or an abstract idea and further whether the claim recites additional elements that integrate the judicial exception into a practical application.
Step 2A Prong 1:
Claims 1, 8, and 15: The limitations of “convert the first call to a first data model of the first data system; and” as well as “convert the second call to a second data model of the second data system, where the second data model is different from the first data model; and” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate converting a call request to a data model of a data system.
Therefore, Yes, claim 1 recites judicial exceptions.
The claims have been identified to recite judicial exceptions, Step 2A Prong 2 will evaluate whether the claims are directed to the judicial exception.
Step 2A Prong 2: Claims 1, 8, and 15: The judicial exception is not integrated into a practical application. In particular, the claim recites the following additional elements – “a first computing system comprising: a first memory storing first program code; a first one or more processing units to execute the first program code to cause the first computing system to:” and “a second computing system comprising: a second memory storing second program code; a second one or more processing units to execute the second program code to cause the second computing system to:” as well as “one or more non-transitory computer readable media storing program code” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, claim 1 recites the following additional elements “receive a first call to a first application programming interface, the first call requesting to write first data to a first data system, the first call conforming to a data model; receive a second call to the first application programming interface, the second call requesting to write second data to a second data system, the second call conforming to the data model;” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Moreover, claim 1 recites “transmit the converted first call to the first data system; and transmit the converted second call to the second data system” which are merely recitations of insignificant extra solution data transmission activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. These limitations will be further addressed below at Step 2B as also being Well-Understood, Routine, and Conventional (WURC).
Therefore, “Do the claims recite additional elements that integrate the judicial exception into a practical application? No, these additional elements do not integrate the abstract idea into a practical application, and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea.
After having evaluated the inquires set forth in Steps 2A Prong 1 and 2, it has been concluded that the claim 1 not only recites a judicial exception but that the claim is directed to the judicial exception as the judicial exception has not been integrated into practical application.
Step 2B:
Claims 1, 8, and 15: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to no more than generic computing components which do not amount to significantly more than the abstract idea. Moreover, the insignificant-extra solution of data gathering and data transmission is WURC, see MPEP 2016.05(d)(||) “The courts have recognized the following computer functions as well-understood, routine, and conventional functions when they are claimed in a merely generic manner (e.g., at a high level of generality) or as insignificant extra-solution activity i. Receiving or transmitting data over a network…iv. Storing and retrieving information in memory”. Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception.
Having concluded analysis within the provided framework, Claims 1, 8, and 15 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 2 and 9, they recite additional abstract recitations of “convert the first response from the first data model to the data model;” and “convert the second response from the second data model to the data model;” as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think and observe, judge and evaluate converting a response from a first data model to another data model. Further claims 2 and 9 recite “receive a first response to the first call from the first data system;” and “receive a second response to the second call from the second data system;” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Further, claims 2 and 9 recite “and return the converted first response;” as well as “and return the converted second response.” which are merely recitations of insignificant extra solution data transmission activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. More over claim 2 recites “the first one or more processing units to execute the first program code to cause the first computing system to:” as well as “and the second one or more processing units to execute the first program code to cause the first computing system to:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 2 and 9 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 2 and 9 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regard to claims 3 and 10, they recite “receive a third call to a second application programming interface, the third call requesting to browse metadata of the first data system;” as well as “receive a fourth call to the second application programming interface, the fourth call requesting to browse metadata of the second data system.” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Further, claim 3 recite “the first one or more processing units to execute the first program code to cause the first computing system to: and the second one or more processing units to execute the second program code to cause the second computing system to:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 3 and 10 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 3 and 10 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 4, 11, and 16 they further limit claims 3, 10, and 15 reciting “wherein the second/third call comprises a first search expression, a first number of elements to skip, and a first list of node types, and wherein the fourth call comprises a second search expression, a second number of elements to skip, and a second list of node types.” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 4, 11, and 16 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 4, 11, and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 5, 12, and 17, they further limit claims 4, 11, and 16 reciting “wherein the second/third call comprises a first indicator of recursive or hierarchical browsing and a first fetch size, and wherein the fourth call comprises a second indicator of recursive or hierarchical browsing and a second fetch size.” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 5, 12, and 17 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 5, 12, and 17 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 6 and 13, they recite “receive a third call to a second application programming interface, the third call requesting to browse metadata of the first data system; receive a fourth call to the second application programming interface, the fourth call requesting to browse metadata of the second data system.” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Further, claim 6 recites “the first one or more processing units to execute the first program code to cause the first computing system to: and the second one or more processing units to execute the second program code to cause the second computing system to:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 6 and 13 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 6 and 13 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claims 7 and 14, they further limit claims 6 and 13 reciting “wherein the third call comprises a first search expression, a first number of elements to skip, a first list of node types, a first indicator of recursive or hierarchical browsing and a first fetch size, and wherein the fourth call comprises a second search expression, a second number of elements to skip, a second list of node types, a second indicator of recursive or hierarchical browsing and a second fetch size.” which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claims 7 and 14 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 7 and 14 do not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claim 18, they recite additional abstract idea recitations of "after receiving the third call, determining that an instruction to flush the first data to the first data system has not been received;" as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate determining if an instruction has been received or not. Further claim 18 recites "receiving a third call to the first application programming interface, the third call requesting to write second data associated with the data batch to the first data system, the first call conforming to the data model and including an instruction to flush the second data to the first data system which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application as well as “and in response to determining that an instruction to flush the first data to the first data system has not been received, returning an error in response to the third call." which are merely recitations of insignificant extra solution data transmission activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical applicationMoreover, claim 18 recites “wherein the first data is associated with a data batch, and wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 18 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 18 does not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claim 19, they recite "receiving a third call to the first application programming interface, the third call requesting to write second data associated with the data batch to the first data system, the third call conforming to the data model; receiving a fourth call to the first application programming interface, the fourth call requesting to write third data associated with a second data batch to the first data system, the fourth call conforming to the data model. " which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Moreover, claim 18 recites “wherein the first data is associated with a data batch, and wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 19 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 19 does not recite patent eligible subject matter under 35 U.S.C. § 101.With regard to claim 20, they recite additional abstract idea recitations of " after receiving the third call, determining that an instruction to flush the first data to the first data system has not been received;" as drafted, is a process that, but for the recitation of generic computing components, under its broadest reasonable interpretation, covers performance of the limitation in the mind. For example, a person can think about and observe, judge and evaluate determining if an instruction has been received or not. Further claim 20 recites " receiving a third call to the first application programming interface, the third call requesting to write second data associated with the data batch to the first data system, the first call conforming to the data model and including an instruction to flush the second data to the first data system; " which are merely recitations of insignificant extra solution activity of mere data gathering (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application as well as “and in response to determining that an instruction to flush the first data to the first data system has not been received, returning an error in response to the third call.” which are merely recitations of insignificant extra solution data transmission activity (see MPEP § 2106.05(g)) which does not integrate a judicial exception into practical application. Moreover, claim 20 recites “wherein the first data is associated with a data batch, and wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising:” which are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application and for the same reasons as above with regard to integration into practical application and whether additional elements amount to significantly more, claim 20 also fail both Step 2A Prong 2, thus the claims are directed to the judicial exception as it has not been integrated into practical application, and fails Step 2B as not amounting to significantly more. Therefore, Claims 20 does not recite patent eligible subject matter under 35 U.S.C. § 101.
Claim Objections
Claim 11 states “comprises a first search expression, a and a first list of node types”, the “a” before “and a first list of node types” should be omitted.
Claim Rejections - 35 USC § 103
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.
Claims 1, 2, 3, 6, 8, 9, 10, 13, and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong).
With regards to claim 1, Hegde teaches a system comprising: a first computing system comprising: a first memory storing first program code; a first one or more processing units to execute the first program code to cause the first computing system to: and a second computing system comprising: a second memory storing second program code; a second one or more processing units to execute the second program code to cause the second computing system to: (the distributed system may be configured to operate on commodity hardware, and therefore may be scaled by adding more nodes (e.g., machines or clusters of machines) [0012]. System 605 may be an example of a user terminal, a database server, or a system containing multiple computing devices. [0055]. Processor 820 may be configured to execute computer-readable instructions stored in a memory to perform various functions… Memory 825 may include random access memory (RAM) and read only memory (ROM). The memory 825 may store computer-readable, computer-executable software 830 including instructions that, when executed, cause the processor to perform various functions described herein. [0068]-[0069])the first call requesting to write first data to a first data system, the first call conforming to a data model; the second call requesting to write second data to a second data system, the second call conforming to the data model; (Data storing component 720 may receive a first write request message and a second write request message, where the first write request message includes first data and a first data identifier, and where the second write request message includes second data and a second data identifier, write the first data and the first data identifier to a first database…and write the second data to a second database [0061] Examiner notes the first and second write request messages each use the same request structure or “data model”: data + identifier)Hedge does not teach converting write requests through a common API for different data systems.
However, in analogous art, Wong teaches receive a first call to a first application programming interface; receive a second call to the first application programming interface, (Processing module 720 handles the processing of incoming requests based on API calls 710. Search queries, document retrievals and document check-ins are examples of incoming requests to repository interfacing module 705 [0071] Examiner notes Wong’s plural “incoming requests” reasonably teaches multiple calls to the same API, including a first and second call)convert the first call to a first data model of the first data system; and transmit the converted first call to the first data system; convert the second call to a second data model of the second data system, where the second data model is different from the first data model; and transmit the converted second call to the second data system. (processing client queries, including converting said queries to native query languages supported by the appropriate remote data repositories, and dispatching said native queries to said remote data repositories [0022]. Each remote data repository instance has a repository structure associated with it. The repository structure represents the general format of the data stored in the repository. In the preferred embodiment, a repository structure can be one of: tabular, loosely structured, free form or mixed. [0073] Examiner notes that a query is converted into a native query language based on one of the repository structures demonstrating the first and second calls and data models are different. )It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the functionality of processing multiple calls through a common API and converting those calls into the native data models of different target data systems of Wong with the foundational environment and first and second write requests conforming to a data model of Hegde resulting in a uniform write interface for heterogeneous data systems. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of allowing remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices in at least Wong [0001].
With regards to claim 2, Wong teaches the first one or more processing units to execute the first program code to cause the first computing system to: receive a first response to the first call from the first data system; convert the first response from the first data model to the data model; and return the converted first response; and the second one or more processing units to execute the first program code to cause the first computing system to: receive a second response to the second call from the second data system; convert the second response from the second data model to the data model; and return the converted second response. (Step 515 involves repository interfacing component 305 dispatching the client query to the appropriate remote data repositories and search component 320 to determine the search results. Result integration component 315 then integrates the query results from the remote data repositories into one or more “data view”s in 520. A “data view” is a single presentation of heterogeneous information content in a homogeneous form. The generated “data view” is converted in 525 by transformation component 325 to an appropriate format... communication component 330 manages adaptive compression of the final “data view” before it is transmitted to the client. [0063-0065], [0068]).
With regards to claim 3, Wong teaches the first one or more processing units to execute the first program code to cause the first computing system to: receive a third call to a second application programming interface, and the second one or more processing units to execute the second program code to cause the second computing system to: receive a fourth call to the second application programming interface, (Referring to FIG. 5, Step 555 processes client commands by maintaining a list of mappings, matching a unique keyword to one or more API calls, modules or commands that can be executed by Server 210. User 218 may perform a client command request, specifying a keyword with one or more terms that will be used as arguments to the API calls, modules or commands. The API calls, modules or commands may further invoke other applications, commands or operations that can be accessed by Server 210. Furthermore, the API calls, modules or commands may operate on data repositories 200. [0147]). the third call requesting to browse metadata of the first data system; the fourth call requesting to browse metadata of the second data system. (A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a “direct link” to the actual document, last modified date, etc... Server 210 defines the mapping “browse” to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. [0151]).
With regards to claim 6, Wong teaches the first one or more processing units to execute the first program code to cause the first computing system to: receive a third call to a second application programming interface, and the second one or more processing units to execute the second program code to cause the second computing system to: receive a fourth call to the second application programming interface, (Referring to FIG. 5, Step 555 processes client commands by maintaining a list of mappings, matching a unique keyword to one or more API calls, modules or commands that can be executed by Server 210. User 218 may perform a client command request, specifying a keyword with one or more terms that will be used as arguments to the API calls, modules or commands. The API calls, modules or commands may further invoke other applications, commands or operations that can be accessed by Server 210. Furthermore, the API calls, modules or commands may operate on data repositories 200. [0147]).the third call requesting to browse metadata of the first data system; the fourth call requesting to browse metadata of the second data system. (A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a “direct link” to the actual document, last modified date, etc... Server 210 defines the mapping “browse” to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. [0151]).
With regards to claim 8, Hedge teaches A method comprising: receiving a first call, the first call requesting to write first data to the first data system and conforming to a data model, and receiving a second call, the second call requesting to write second data to the second data system and conforming to a data model. (Data storing component 720 may receive a first write request message and a second write request message, where the first write request message includes first data and a first data identifier, and where the second write request message includes second data and a second data identifier, write the first data and the first data identifier to a first database…and write the second data to a second database [0061] Examiner notes the first and second write request messages each use the same request structure or “data model”: data + identifier)Hedge does not teach converting write requests through a common API for different data systems.However, in analogous art, Wong teaches receiving a first call to a first application programming interface receiving a second call to the first application programming interface (Processing module 720 handles the processing of incoming requests based on API calls 710. Search queries, document retrievals and document check-ins are examples of incoming requests to repository interfacing module 705 [0071] Examiner notes Wong’s plural “incoming requests” reasonably teaches multiple calls to the same API, including a first and second call)at a first connector associated with a first data system; at a second connector associated with a second data system; (connector 725 implements the common API for messaging servers 201, connector 730 implements the common API for enterprise applications 202, connector 735 implements the common API for legacy databases 203, connector 740 implements the common API for services 204 and connector 745 implements the common API for local files 205. [0071])converting, at the first connector, the first call to a first data model of the first data system; transmitting the converted first call from the first connector to the first data system; converting, at the second connector, the second call to a second data model of the second data system; transmitting the converted second call from the second connector to the second data system. (processing client queries, including converting said queries to native query languages supported by the appropriate remote data repositories, and dispatching said native queries to said remote data repositories [0022]. Each remote data repository instance has a repository structure associated with it. The repository structure represents the general format of the data stored in the repository. In the preferred embodiment, a repository structure can be one of: tabular, loosely structured, free form or mixed. [0073] Examiner notes that a query is converted into a native query language based on one of the repository structures demonstrating the first and second calls and data models are different.)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the functionality of processing multiple calls through a common API and converting those calls into the native data models of different target data systems of Wong with the foundational environment and first and second write requests conforming to a data model of Hegde resulting in a uniform write interface for heterogeneous data systems. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success for the purpose of allowing remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices in at least Wong [0001].
With regards to claim 9, Wong teaches further comprising: receiving, at the first connector, a first response to the first call from the first data system; converting, at the first connector, the first response from the first data model to the data model; returning the converted first response from the first connector in response to the first call; receiving, at the second connector, a second response to the second call from the second data system; converting, at the second connector, the second response from the second data model to the data model; and returning the converted second response at the second connector in response to the second call. (Step 515 involves repository interfacing component 305 dispatching the client query to the appropriate remote data repositories and search component 320 to determine the search results. Result integration component 315 then integrates the query results from the remote data repositories into one or more “data view”s in 520. A “data view” is a single presentation of heterogeneous information content in a homogeneous form. The generated “data view” is converted in 525 by transformation component 325 to an appropriate format... communication component 330 manages adaptive compression of the final “data view” before it is transmitted to the client. [0063-0065][0068] A repository specific connector implements the common API [0071]).
With regards to claim 10, Wong teaches further comprising: receiving a third call to a second application programming interface at the first connector, receiving a fourth call to the second application programming interface at the second connector, (Referring to FIG. 5, Step 555 processes client commands by maintaining a list of mappings, matching a unique keyword to one or more API calls, modules or commands that can be executed by Server 210. User 218 may perform a client command request, specifying a keyword with one or more terms that will be used as arguments to the API calls, modules or commands. The API calls, modules or commands may further invoke other applications, commands or operations that can be accessed by Server 210. Furthermore, the API calls, modules or commands may operate on data repositories 200. [0147] A repository specific connector implements the common API [0071]). the third call requesting to browse metadata of the first data system; the fourth call requesting to browse metadata of the second data system. (A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a “direct link” to the actual document, last modified date, etc... Server 210 defines the mapping “browse” to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. [0151]).
With regards to claim 13, Wong teaches receiving a third call to a second application programming interface at the first connector, and receiving a fourth call to the second application programming interface at the second connector, (Referring to FIG. 5, Step 555 processes client commands by maintaining a list of mappings, matching a unique keyword to one or more API calls, modules or commands that can be executed by Server 210. User 218 may perform a client command request, specifying a keyword with one or more terms that will be used as arguments to the API calls, modules or commands. The API calls, modules or commands may further invoke other applications, commands or operations that can be accessed by Server 210. Furthermore, the API calls, modules or commands may operate on data repositories 200. [0147] A repository specific connector implements the common API [0071]).the third call requesting to browse metadata of the first data system; the fourth call requesting to browse metadata of the second data system. (A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a “direct link” to the actual document, last modified date, etc... Server 210 defines the mapping “browse” to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. [0151]).
With regards to claim 15, Hedge teaches One or more non-transitory computer-readable media storing program code that, when executed by a computing system, causes the computing system to perform operations comprising: (The non-transitory computer-readable medium may include instructions operable to cause a processor to receive a first write request message and a second write request message [0101])receiving a first call, the first call requesting to write first data to a first data system, the first call conforming to a data model; (Data storing component 720 may receive a first write request message and a second write request message, where the first write request message includes first data and a first data identifier, and where the second write request message includes second data and a second data identifier, write the first data and the first data identifier to a first database [0061])Hedge does not teach converting the write request through a common API or browsing metadata through that API.receiving a first call to a first application programming interface (Processing module 720 handles the processing of incoming requests based on API calls 710. Search queries, document retrievals and document check-ins are examples of incoming requests to repository interfacing module 705. [0071] Examiner notes Wong’s plural “incoming requests” reasonably teaches multiple calls to the same API, including a first and second call)converting the first call to a first data model of the first data system; and transmitting the converted first call to the first data system; (processing client queries, including converting said queries to native query languages supported by the appropriate remote data repositories, and dispatching said native queries to said remote data repositories [0022]. Examiner notes that a query is converted into a native query language based on one of the repository structures demonstrating the first and second calls and data models are different. )receiving a first response to the first call from the first data system; converting the first response from the first data model to the data model; (processing of native query results, including integrating said native query results and converting said native query result into one or more data views, where a data view is a single presentation of heterogeneous information content in a homogeneous form. [0022])and receiving a second call to the first application programming interface, the second call requesting to browse metadata of the first data system. (A browse command is available to browse the summary of the files available in the remote data repositories 200. A summary of each file includes a “direct link” to the actual document, last modified date, etc...Server 210 defines the mapping “browse” to the system command for retrieving the statistics or properties of all documents in a remote data repository 200. [0151])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the conversion, response, and repository browsing functionality of Wong with the structured write requests of Hedge resulting in a uniform interface for writing to and browsing heterogeneous data systems. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of having a system that allows a data-centric approach to retrieving, modifying, updating and creating data and documents that may reside in one or more remote data sources in at least Wong [0051].
Claims 4, 11, 12, and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong) and in further view of Bucchi et al. Pub. No. US 2019/0196890 A1 (hereafter Bucchi).
With regards to claim 4, Hedge and Wong teach the system of claim 3 with respect to a third and fourth call.Wong and Hedge do not teach the specific parameters included in those calls.However, in analogous art, Bucchi teaches wherein the third call comprises a first search expression, a first number of elements to skip, and a first list of node types, and wherein the fourth call comprises a second search expression, a second number of elements to skip, and a second list of node types. (@meta, @limit, @offset and @filter directives are not necessarily bound to variables. Meta information may be requested explicitly. Collection filtering and pagination may be queried explicitly to request a particular collection page [0209]. Filters executed over the query...may be expressed using a filter language including basic filter expressions. Filter expressions may appear in any node of the query... [0211] The following type declarations describe elements in the data model including a DataNode (602), ResourceNode (604), and CollectionNode (606): [0227]) Examiner notes @filter is the search expression, @offset is the number of elements skipped, and the array [TYPE_IDENTIFIER] is the claimed list of nodes types.It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the API-query techniques of Bucchi to structure the write requests and metadata-browsing calls of Wong in the heterogenous data access environment of Hedge in order to provide known query parameters for more precisely controlling the meta data searches performed for the different repositories.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide more information to the API because the more information available in the API specifications and the more powerful those APIs are in for example, implementing server side features like collection filtering, the more efficient the query execution becomes in at least Bucchi [0216].
With regards to claim 11, Hedge and Wong teach the method of claim 10 with respect to a third and fourth call.Wong and Hedge do not teach the specific parameters included in those calls.However, in analogous art, teaches Bucchi teaches wherein the third call comprises a first search expression, a and a first list of node types, and wherein the fourth call comprises a second search expression, and a second list of node types. (@meta, @limit, @offset and @filter directives are not necessarily bound to variables. Meta information may be requested explicitly. Collection filtering and pagination may be queried explicitly to request a particular collection page [0209]. Filters executed over the query...may be expressed using a filter language including basic filter expressions. Filter expressions may appear in any node of the query... [0211] The following type declarations describe elements in the data model including a DataNode (602), ResourceNode (604), and CollectionNode (606): [0227]) Examiner notes @filter is the search expression and the array [TYPE_IDENTIFIER] is the claimed list of nodes types.It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the API-query techniques of Bucchi to structure the write requests and metadata-browsing calls of Wong in the heterogenous data access environment of Hedge in order to provide known query parameters for more precisely controlling the meta data searches performed for the different repositories.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide more information to the API because the more information available in the API specifications and the more powerful those APIs are in for example, implementing server side features like collection filtering, the more efficient the query execution becomes in at least Bucchi [0216].
With regards to claim 12, Bucchi teaches wherein the third call comprises a first fetch size, and wherein the fourth call comprises a second fetch size. (Collection filtering and pagination may be queried explicitly to request a particular collection page...queries contain collection nodes explicitly, if the user wants to...set explicitly pagination values... [0209-0210] Examiner notes the @limit pagination value corresponds to the claimed fetch size because it limits the amount of collection data fetched for a query).
With regards to claim 16, Hedge and Wong teach the media, system and methods of Claim 15. Hedge and Wong do not teach the specific parameters included in the second metadata call. However, in analogous art, Bucchi teaches wherein the second call comprises a search expression and a list of node types. (Filters executed over the query...may be expressed using a filter language including basic filter expressions. Filter expressions may appear in any node of the query... [0211] The following type declarations describe elements in the data model including a DataNode (602), ResourceNode (604), and CollectionNode (606): [0227]) Examiner notes @filter is the search expression and the array [TYPE_IDENTIFIER] is the claimed list of nodes types.)It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the API-query techniques of Bucchi to structure the write requests and metadata-browsing calls of Wong in the heterogenous data access environment of Hedge in order to provide known query parameters for more precisely controlling the meta data searches performed for the different repositories.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide more information to the API because the more information available in the API specifications and the more powerful those APIs are in for example, implementing server side features like collection filtering, the more efficient the query execution becomes in at least Bucchi [0216].
Claims 5, 7, 14, and 17 are rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong), in further view of Bucchi et al. Pub. No. US 2019/0196890 A1 (hereafter Bucchi), and in further view of Levit et al. Pub. No. US 2022/0188448 A1 (hereafter Levit).
With regards to claim 5, Hedge, Wong, and Bucchi teach the system of claim 4.Hedge, Wong, and Bucchi do not teach recursive or hierarchical browsing. However, in analogous art, Levit teaches wherein the third call comprises a first indicator of recursive or hierarchical browsing and a first fetch size, and wherein the fourth call comprises a second indicator of recursive or hierarchical browsing and a second fetch size. (query parameters may also be used in other assignable values within a query definition, such as in offset and fetch values. items 815 belonging to the query parameter item type may be used to control the depth (i.e., how many levels are traversed) of recursion of a recursive query. [0111-0112])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the query parameters for controlling recursion depth and fetch values of Levit with the metadata browsing queries of the combined system of Hedge, Wong and Bucchi thereby permitting hierarchical browsing and amount of returned data to be specified in the query. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success in order to enable limiting the depth of the retrieved structure, without modification of a recursive query topology in at least Levit [0090].
With regards to claim 7, Hedge and Wong teach the system of claim 6. Hedge and Wong do not teach the specific parameters included in the third and fourth calls of claim 6.However, in analogous art, Bucchi teaches wherein the third call comprises a first search expression, a first number of elements to skip, a first list of node types, and wherein the fourth call comprises a second search expression, a second number of elements to skip, a second list of node types (@meta, @limit, @offset and @filter directives are not necessarily bound to variables. Meta information may be requested explicitly. Collection filtering and pagination may be queried explicitly to request a particular collection page [0209]. Filters executed over the query...may be expressed using a filter language including basic filter expressions. Filter expressions may appear in any node of the query... [0211] The following type declarations describe elements in the data model including a DataNode (602), ResourceNode (604), and CollectionNode (606): [0227]) Examiner notes @filter is the search expression, @offset is the number of elements to skip, and the array [TYPE_IDENTIFIER] is the claimed list of nodes types.It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the API-query techniques of Bucchi to structure the write requests and metadata-browsing calls of Wong in the heterogenous data access environment of Hedge in order to provide known query parameters for more precisely controlling the meta data searches performed for the different repositories.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide more information to the API because the more information available in the API specifications and the more powerful those APIs are in for example, implementing server side features like collection filtering, the more efficient the query execution becomes in at least Bucchi [0216].Hedge, Wong, and Bucchi do not teach recursive or hierarchical browsing nor fetch size.However, in analogous art, Levit teaches a first indicator of recursive or hierarchical browsing and a first fetch size, and a second indicator of recursive or hierarchical browsing and a second fetch size. (query parameters may also be used in other assignable values within a query definition, such as in offset and fetch values. items 815 belonging to the query parameter item type may be used to control the depth (i.e., how many levels are traversed) of recursion of a recursive query. [0111-0112])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the query parameters for controlling recursion depth and fetch values of Levit with the metadata browsing queries of the combined system of Hedge, Wong and Bucchi thereby permitting hierarchical browsing and amount of returned data to be specified in the query. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success in order to enable limiting the depth of the retrieved structure, without modification of a recursive query topology in at least Levit [0090].
With regards to claim 14, Hedge and Wong teach the method of claim 13. Hedge and Wong do not teach the specific parameters included in the third and fourth calls of claim 13.However, in analogous art, Bucchi teaches wherein the third call comprises a first search expression, a first list of node types, and wherein the fourth call comprises a second search expression, a second list of node types (Filter expressions may appear in any node of the query... [0211] The following type declarations describe elements in the data model including a DataNode (602), ResourceNode (604), and CollectionNode (606): [0227]) Examiner notes @filter is the search expression and the array [TYPE_IDENTIFIER] is the claimed list of nodes types.It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the API-query techniques of Bucchi to structure the write requests and metadata-browsing calls of Wong in the heterogenous data access environment of Hedge in order to provide known query parameters for more precisely controlling the meta data searches performed for the different repositories.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to provide more information to the API because the more information available in the API specifications and the more powerful those APIs are in for example, implementing server side features like collection filtering, the more efficient the query execution becomes in at least Bucchi [0216].Hedge, Wong, and Bucchi do not teach recursive or hierarchical browsing and fetch size.However, in analogous art, Levit teaches a first indicator of recursive or hierarchical browsing, and a second indicator of recursive or hierarchical browsing. (items 815 belonging to the query parameter item type may be used to control the depth (i.e., how many levels are traversed) of recursion of a recursive query. [0111-0112])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the query parameters for controlling recursion depth of Levit with the metadata browsing queries of the combined system of Hedge, Wong and Bucchi thereby permitting hierarchical browsing and amount of returned data to be specified in the query. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success in order to enable limiting the depth of the retrieved structure, without modification of a recursive query topology in at least Levit [0090].
With regards to claim 17, Hedge, Wong, and Bucchi teach the media, system and methods of Claim 16. Hedge, Wong, and Bucchi do not teach an indicator of recursive or hierarchical browsing nor a fetch size. However, in analogous art, Levit teaches wherein the second call comprises an indicator of recursive or hierarchical browsing and a fetch size. (query parameters may also be used in other assignable values within a query definition, such as in offset and fetch values. items 815 belonging to the query parameter item type may be used to control the depth (i.e., how many levels are traversed) of recursion of a recursive query. [0111-0112])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the query parameters for controlling recursion depth and fetch values of Levit with the metadata browsing queries of the combined system of Hedge, Wong and Bucchi thereby permitting hierarchical browsing and amount of returned data to be specified in the query. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success in order to enable limiting the depth of the retrieved structure, without modification of a recursive query topology in at least Levit [0090].)
Claim 18 is rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong), in further view of Bucchi et al. Pub. No. US 2019/0196890 A1 (hereafter Bucchi), in further view of Levit et al. Pub. No. US 2022/0188448 A1 (hereafter Levit), in further view of Druschel et al. Pub. No. US 2012/0110338 A1 (hereafter Druschel) in further view of Pitts Pub. No. 2014/0006543 A1 (hereafter Pitts) and in further view of Microsoft, [MS-TDS], “Tabular Data Stream Protocol” 04/10/2023 (hereafter MS-TDS).
With regards to claim 18, Hedge, Wong, Bucchi, and Levit teach the media, system and methods of Claim 17.Hedge further teaches and wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising: receiving a third call, the third call requesting to write second data, the first call conforming to the data model (A non-transitory computer readable medium for data processing is described. The non-transitory computer-readable medium may include instructions operable to cause a processor to receive a first write request message and a second write request message, wherein the first write request message includes first data and a first data identifier, and wherein the second write request message includes second data and a second data identifier [101] Examiner notes the first and second write request messages each use the same request structure or “data model”: data + identifier).Hedge does not teach receiving the call to the first application programming interface.However, in analogous art, Wong teaches to the first application programming interface (Repository interfacing module 705 is responsible for identifying the underlying remote data repository 200 that is the target of an incoming request and forwarding the request to the appropriate data repository. Repository interfacing module 705 is accessible by other modules in server 210, including result integration Step 520 from FIG. 5, using API calls 710. That is, repository interfacing module 705 provides an API for other modules to access its functionality. [0070]).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the functionality of processing multiple calls through a common API of Wong with the foundational environment write requests conforming to a data model of Hegde resulting in a uniform write interface for heterogeneous data systems. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of allowing remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices in at least Wong [0001].Hedge and Wong do not teach that the first and second data are associated with the same data batch.However, in analogous art, Druschel teaches wherein the first data is associated with a data batch and associated with the data batch to the first data system (The example hash command allows applications, at any time within a batch, to obtain a hash of a series of data blocks operated on as part of the batch. [0026])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the batch-based organization and identification of storage operations to the write calls of Hedge and Wong resulting in multiple write calls associated with data batches.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success in order to reduce the number of signatures to one per batch instead of one per operation greatly improves the performance of, for instance, large file writes consisting of many block writes in at least Druschel [0025]Hedge, Wong, and Dreschel do not teach the flush-sequencing limitations.However, in analogous art, Pitts teaches and including an instruction to flush the second data to the first data system; (FIG. 9 shows that the method 900 can include receiving 902 a flush request from an upstream node. I.e., modified file data/metadata is received 902 with the intent that the modified file data/metadata is saved to some form of stable memory [0175]. When this site is the server terminator site, FIG. 9 shows that the method 900 can include determining 908 if all batches of the flush (multi-transfer flushes have more than one) have been received and the DATA_COMPLETE request flag was set in one of the requests. [0178]).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine processing write data through multi-request flush operations of Pitts with the system and methods of Hedge, Wong, and Druschel so that the data associated with the flush is committed consistently. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success in order to ensure that atomic flush processing preserves consistency by ensuring each DDS request either “happens completely” or “does not happen at all” in at least Pitts [0172]Hedge, Wong, Druschel, and Pitts do not teach determining that a prior flush instruction has not been received and in response, returning an error to the subsequent call.However, in analogous art, MS-TDS teaches after receiving the third call, determining that an instruction to flush the first data to the first data system has not been received; and in response to determining that an instruction to flush the first data to the first data system has not been received, returning an error in response to the third call. (If a complete request has not been sent to the server, the client MUST send the next packet with both the ignore bit (0x02) and EOM bit (0x01) set in the status to cancel the request. An example of this behavior is if one or more packets have been sent but the last packet with EOM bit (0x01) set in status has not been sent. When the ignore and EOM bits are set, the server does not send an attention acknowledgment, but instead returns a table response with a single DONE token (section 2.2.7.6) that has a status of DONE_ERROR to indicate that the incoming request was ignored. [pg 21] End of message (EOM). The packet is the last packet in the whole request. [pg 25It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the incomplete request handling of MS-TDS with the features of Hedge, Wong, Druschel, and Pitts resulting in the system determining, upon receipt of the subsequent call, that the flush instruction for the earlier data was absent and returning an error in response to the subsequent call.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to prevent an incomplete earlier write from being processed when the subsequent call arrives, because setting the ignore and EOM bits terminates the current request, and the server MUST ignore the current request in at least MS-TDS pg 21.
Claims 19 is rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong) and in further view of Druschel et al. Pub. No. US 2012/0110338 A1 (hereafter Druschel).
With regards to claim 19, Hedge and Wong teach the media, system and methods of claim 15.Hedge further teaches wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising: receiving a third call, the third call requesting to write second data, the third call conforming to the data model receiving a fourth call, the fourth call requesting to write third data, the fourth call conforming to the data model. (A non-transitory computer readable medium for data processing is described. The non-transitory computer-readable medium may include instructions operable to cause a processor to receive a first write request message and a second write request message, wherein the first write request message includes first data and a first data identifier, and wherein the second write request message includes second data and a second data identifier [101] Examiner notes the first and second write request messages each use the same request structure or “data model”: data + identifier).Hedge does not teach receiving the call to the first application programming interface.However, in analogous art, Wong teaches to the first application programming interface (Repository interfacing module 705 is responsible for identifying the underlying remote data repository 200 that is the target of an incoming request and forwarding the request to the appropriate data repository. Repository interfacing module 705 is accessible by other modules in server 210, including result integration Step 520 from FIG. 5, using API calls 710. That is, repository interfacing module 705 provides an API for other modules to access its functionality. [0070]).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the functionality of processing multiple calls through a common API of Wong with the foundational environment write requests conforming to a data model of Hegde resulting in a uniform write interface for heterogeneous data systems. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of allowing remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices in at least Wong [0001].Hedge and Wong do not teach that the first and second data are associated with the same data batch.However, in analogous art, Druschel teaches wherein the first data is associated with a data batch (The example hash command allows applications, at any time within a batch, to obtain a hash of a series of data blocks operated on as part of the batch. [0026])the third call associated with the data batch to the first data system; the fourth call associated with a second data batch to the first data system (Table 2 illustrates the function Bid startBatch() starts a new batch and returns its id…void write(Bid, Bnum b,…) writes data block #b from buffer buf… [0024]. O1…On is a sequence of operations in a batch, as delimited by the application, + indicates concatenation, and D the storage lease device. Moreover, Oi is the concatenation of the operation identifier, arguments and results of the ith operation in the batch. [0027]. Examiner notes write(Bid id, …) constitutes a write call associated with the batch identified by bId. The disclosed sequence of operations permits multiple write calls using the same batch identifier, while startBatch() expressly starts a new batch and returns its identifier, permitting a subsequent write call to the associated with a second batch).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the batch-based organization and identification of storage operations to the write calls of Hedge and Wong resulting in multiple write calls associated with data batches.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success in order to reduce the number of signatures to one per batch instead of one per operation greatly improves the performance of, for instance, large file writes consisting of many block writes in at least Druschel [0025]
Claims 20 is rejected under 35 U.S.C. 103 as being unpatentable over Hegde et al. Pub. No. US 20180260465 A1 (hereafter Hegde) in view of Wong Pub. No. US 20090234823 A1 (hereafter Wong) in further view of Druschel et al. Pub. No. US 2012/0110338 A1 (hereafter Druschel) in further view of Pitts Pub. No. 2014/0006543 A1 (hereafter Pitts) and in further view of Microsoft, [MS-TDS], “Tabular Data Stream Protocol” 04/10/2023 (hereafter MS-TDS).
With regards to claim 20, Hedge and Wong teach the media, system and methods of claim 15.Hedge further teaches and wherein the program code, when executed by a computing system, causes the computing system to perform operations comprising: receiving a third call, the third call requesting to write second data, the first call conforming to the data model (A non-transitory computer readable medium for data processing is described. The non-transitory computer-readable medium may include instructions operable to cause a processor to receive a first write request message and a second write request message, wherein the first write request message includes first data and a first data identifier, and wherein the second write request message includes second data and a second data identifier [101] Examiner notes the first and second write request messages each use the same request structure or “data model”: data + identifier).Hedge does not teach receiving the call to the first application programming interface.However, in analogous art, Wong teaches to the first application programming interface (Repository interfacing module 705 is responsible for identifying the underlying remote data repository 200 that is the target of an incoming request and forwarding the request to the appropriate data repository. Repository interfacing module 705 is accessible by other modules in server 210, including result integration Step 520 from FIG. 5, using API calls 710. That is, repository interfacing module 705 provides an API for other modules to access its functionality. [0070]).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the functionality of processing multiple calls through a common API of Wong with the foundational environment write requests conforming to a data model of Hegde resulting in a uniform write interface for heterogeneous data systems. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success for the purpose of allowing remote end users to rapidly and securely access and update information at heterogeneous data sources from a variety of devices in at least Wong [0001].Hedge, Wong, Bucchi, and Levit do not teach that the first and second data are associated with the same data batch.However, in analogous art, Druschel teaches wherein the first data is associated with a data batch (The example hash command allows applications, at any time within a batch, to obtain a hash of a series of data blocks operated on as part of the batch. [0026])It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the batch-based organization and identification of storage operations to the write calls of Hedge and Wong resulting in multiple write calls associated with data batches.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success in order to reduce the number of signatures to one per batch instead of one per operation greatly improves the performance of, for instance, large file writes consisting of many block writes in at least Druschel [0025]Hedge, Wong, Bucchi, Levit, and Dreschel do not teach the flush-sequencing limitations.However, in analogous art, Pitts teaches and including an instruction to flush the second data to the first data system; (FIG. 9 shows that the method 900 can include receiving 902 a flush request from an upstream node. I.e., modified file data/metadata is received 902 with the intent that the modified file data/metadata is saved to some form of stable memory [0175]. When this site is the server terminator site, FIG. 9 shows that the method 900 can include determining 908 if all batches of the flush (multi-transfer flushes have more than one) have been received and the DATA_COMPLETE request flag was set in one of the requests. [0178]).It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine processing write data through multi-request flush operations of Pitts with the system and methods of Hedge, Wong, and Druschel so that the data associated with the flush is committed consistently. A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success in order to ensure that atomic flush processing preserves consistency by ensuring each DDS request either “happens completely” or “does not happen at all” in at least Pitts [0172]Hedge, Wong, Bucchi, Levit, Druschel, and Pitts do not teach determining that a prior flush instruction has not been received and in response, returning an error to the subsequent call.However, in analogous art, MS-TDS teaches after receiving the third call, determining that an instruction to flush the first data to the first data system has not been received; and in response to determining that an instruction to flush the first data to the first data system has not been received, returning an error in response to the third call. (If a complete request has not been sent to the server, the client MUST send the next packet with both the ignore bit (0x02) and EOM bit (0x01) set in the status to cancel the request. An example of this behavior is if one or more packets have been sent but the last packet with EOM bit (0x01) set in status has not been sent. When the ignore and EOM bits are set, the server does not send an attention acknowledgment, but instead returns a table response with a single DONE token (section 2.2.7.6) that has a status of DONE_ERROR to indicate that the incoming request was ignored. [pg 21] End of message (EOM). The packet is the last packet in the whole request. [pg 25It would have been obvious to a person have ordinary skill in the art prior to the effective filing date of the claimed invention to combine the incomplete request handling of MS-TDS with the features of Hedge, Wong, Bucchi, Levit, Druschel, and Pitts resulting in the system determining, upon receipt of the subsequent call, that the flush instruction for the earlier data was absent and returning an error in response to the subsequent call.A person having ordinary skill in the art would have motivated to make this combination, with a reasonable expectation of success to prevent an incomplete earlier write from being processed when the subsequent call arrives, because setting the ignore and EOM bits terminates the current request, and the server MUST ignore the current request in at least MS-TDS pg 21.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Todd Jeffrey Johnson whose telephone number is (571)270-0929. The examiner can normally be reached M-F, 7:30am to 5pm ET.
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, Bradley Teets can be reached at (571) 272-3338. 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.
/T.J.J./ Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197