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
The amendment filed November 25, 2025 has been entered. Claims 1-11 remain pending in the instant application. Applicant’s amendments to the Specification have overcome each and every objection previously set forth in the Non-Final Office Action mailed August 25, 2025.
Response to Arguments
Applicant’s arguments with respect to Claim(s) 1-11 have been considered but are moot because the new ground of rejection, necessitated by Applicant’s amendment, does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claim(s) 1-11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Wagner (U.S. Pat. No. 10,353,678), hereinafter Wagner in view of Beckett (U.S. Pat. No. 9,678,747 B2), hereinafter Beckett.
Regarding Claim 1, Wagner teaches A method for emulating application code in a simulated environment (“As described in detail herein, the on-demand code execution system may provide a network-accessible service enabling users to submit or designate computer-executable code to be executed by virtual machine instances on the on-demand code execution system [...] As used herein, the term "virtual machine instance" is intended to refer to an execution of software or other executable code that emulates hardware to provide an environment or platform on which software may execute (an "execution environment").”) (e.g., column 2, lines 63-67; column 5, lines 46-50).
comprising: receiving an application code including an external initialization code component (“At (2), the user device 102 submits the task code to the frontend 120, such as by using an API or other interface of the frontend 120.”) (e.g., column 22, lines 14-16).
the application code deployed in a cloud computing environment (“The on-demand code execution system 110 or various constituents thereof could implement various Web services components, hosted on "cloud" computing environments, and/or peer to peer network configurations to implement at least a portion of the processes described herein.”) (e.g., column 8, lines 28-33).
detecting a connection request to an external resource in the external initialization code component (“Specifically, at (4), the code analysis system 160 (e.g., using the code analyzer 164) reviews the code to detect a service invocation. In one embodiment, the code analysis system 160 detects a service invocation by recognizing a specific code segment within the code of the task, such a s a specific function associated with a service or a call to a specific network location.” The service invocation is interpreted as a connection request to an external resource.) (e.g., column 22, lines 20-26).
and storing the emulated response for generating a set of instructions for a static analyzer to perform static analysis on the application code and the generated set of instructions (“In some instances, service information for the auxiliary service 106 may have been previously generated or retrieved by the code analysis system 160 (e.g., and stored in the service datastore 168) [...] Thereafter, the code analysis system 160 utilizes the service information to statically analyze the code of the task.”) (e.g., column 22, lines 45-49 and lines 51-52).
However, Wagner does not appear to specifically teach emulating a response to the connection request, the emulating comprising injecting, within the simulated environment and without contacting the external resource, at least one of an emulated object or an emulated value in place of a response from the external resource.
On the other hand, Beckett, which relates to injecting a virtual process in place of a target process, does teach emulating a response to the connection request (“FIG. 4 is a flowchart of an example method 400 for injecting code or intercepting code in accordance with aspects of the subject disclosure. At act 410, a virtual process of a target process is created,” wherein the target process is interpreted as an external resource, and the virtual process is interpreted as an emulation. Claim 1 further discloses that the virtual process is “a non-executing image of a target process.”) (e.g., column 31, lines 4-6; Claim 1).
the emulating comprising injecting, within the simulated environment and without contacting the external resource, at least one of an emulated object or an emulated value in place of a response from the external resource (“In another aspect, the creating action comprises loading a module into a memory space from a memory image of the target process.” The stored memory image of the target process may be loaded without contacting the target process. “At act 430, a first portion of code is injected based at least on outcome of the analysis [of the virtual process],” wherein the injected code is interpreted as comprising an emulated object and value.) (e.g., column 31, lines 25-28; column 32, lines 12-13).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine Wagner with Beckett. The claimed invention is considered to be merely applying a known technique to a known device (method, or product) ready for improvement to yield predictable results, see MPEP § 2143(I)(D). Wagner teaches a method for analyzing code for changes due to invocations of auxiliary services. However, Wagner does not appear to specifically teach emulating a response to a connection request, the emulating being performed in a simulated environment without contacting the external resource. On the other hand, Beckett, which relates to intercepting code, does teach emulating a response to a target process using a virtual process, wherein the virtual process can be called without contacting the target process. Furthermore, Wagner discloses that service information may be stored in a service datastore 168 to be use again without querying the invoked auxiliary service (e.g., Wagner; column 22, lines 45-50). One of ordinary skill in the art would have thus recognized that using the code interception and injection of Beckett, which uses a virtual process in place of a real target process such as the auxiliary service of Wagner, would have yielded predictable results and resulted in an improved system that does not need to query the auxiliary service. Therefore, it would have been obvious to a person of ordinary skill in the art prior to the effective filing date of the Applicant’s claimed invention to combine Wagner with Becket in order to analyze code without actually invoking an auxiliary service.
Regarding Claim 2, Wagner in view of Beckett teaches The method of claim 1, wherein the connection request is a call to connect to an external resource (“Auxiliary services 106 can correspond to network-connected computing devices, such as servers, which generate data accessible to the on-demand code execution environment 110 or otherwise communicate to the on-demand code execution environment 110.” The network-connected computing devices are interpreted as external resources.) (e.g., column 6, lines 63-67).
Regarding Claim 3, Wagner in view of Beckett teaches The method of claim 2, wherein the external resource is any one of: a database, a software library, a network service, a cloud based software service, and a software class (The Examiner notes the use of any one of, and the prior art provides a software library. “In some instances, auxiliary services 106 may be invoked by code execution on the on-demand code execution system 110, such as by API calls to the auxiliary services 106.” API calls to the auxiliary services is interpreted as a call to a software library, wherein the auxiliary service is a software library.) (e.g., column 7, lines 6-9).
Regarding Claim 4, Wagner in view of Beckett teaches The method of claim 1, wherein the emulated response is any one of: injecting an emulated value, and injecting an emulated object (The Examiner notes the use of any one of, and the prior art provides an emulated value. “The service information may be used, for example, to assist in the static analysis of the code of the task, and may include, for example, expected inputs to the invocation, outputs resulting from the invocation (e.g., as a transformation of the inputs), security parameters of the service, and characteristics of the service.” Returned service information of outputs resulting from the invocation is interpreted as an injected emulated value.) (e.g., column 22, lines 37-42).
Regarding Claim 5, Wagner in view of Beckett teaches The method of claim 1, further comprising: emulating another response in response to detecting that the application code was not initialized (“As noted above, FIG. 4 depicts an illustrative routine 400 for analyzing invocation parameters within task code to determine potential errors or issues caused by the parameters [...] At block 414, the code analysis system 160 determines whether any additional service invocations are expected to be caused by execution of the code.” The additional service invocations may comprise another emulated response, wherein the additional invocations may be caused by potential errors caused by invocation parameters.) (e.g., column 23, lines 46-40; column 24, lines 18-20).
Regarding Claim 6, Wagner teaches A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process (“As illustrated, the code analysis system 160 includes a processing unit 290, a network interface 292, a computer readable medium drive 294, and an input/output device interface 296, all of which may communicate with one another by way of a communication bus.”) (e.g., column 21, lines 1-5).
The remaining limitations of Claim 6 recite substantially similar material to Claim 1, and Claim 6 is rejected under 35 U.S.C 103 for the same reasons.
Regarding Claim 7, Wagner teaches A system for emulating application code in a simulated environment, comprising: a processing circuitry; and a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system (“As illustrated, the code analysis system 160 includes a processing unit 290, a network interface 292, a computer readable medium drive 294, and an input/output device interface 296, all of which may communicate with one another by way of a communication bus.”) (e.g., column 21, lines 1-5).
The remaining limitations of Claim 7 recite substantially similar material to Claim 1, and Claim 7 is rejected under 35 U.S.C 103 for the same reasons.
Regarding Claims 8-11, the claims recite substantially similar limitations to claims 2-5, respectively, and the claims are rejected under 35 U.S.C 103 for the same reasons.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KYLE HWA-KAI TSENG whose telephone number is (571)272-3731. The examiner can normally be reached M-F 9A-5P PST.
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, Rehana Perveen can be reached at (571) 272-3676. 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.
/K.H.T./ Examiner, Art Unit 2189
/REHANA PERVEEN/ Supervisory Patent Examiner, Art Unit 2189