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 .
Information Disclosure Statement
The information disclosure statement (IDS) was filed on 10/16/2025. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Specification
The lengthy specification has not been checked to the extent necessary to determine the presence of all possible minor errors. Applicant’s cooperation is requested in correcting any errors of which applicant may become aware in the specification.
Drawings
The drawings filed 5/28/2024 were accepted.
35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Examiner’s note: A 35 USC 101 rejection was considered for claims 15-20, however the specification defines the “computer-readable storage medium” as physical hardware which is distinguished from propagating signals (see paragraph 108 of the specification). Thus the rejection is not applicable.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-2, 5-9, 12-16, and 18-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1 and 5-7 of U.S. Patent No. US 12032647. Although the claims at issue are not identical, they are not patentably distinct from each other because the instant claim is anticipated by the reference claims. See MPEP 804.
Instant application
Reference patent US 12032647
1. A proxy computing device, comprising:
a processor; and
a memory device that stores program code structured to cause the processor to:
receive, from a first client, a request to access a web page hosted on a server;
receive, from the server, a response comprising the web page, the web page comprising a first code component;
send the first code component to a second client;
receive, from the second client, a modified version of the first code component; and
send, to the first client, the web page and the modified version of the first code component.
1. A proxy computing device… comprising:
at least one processor circuit; and
at least one memory that stores program code configured to be executed by the at least one processor circuit, the program code configured to…
receive a request, originating from an open tab of a first client browser application of the plurality of client browser applications, to access a web page hosted on the server computing device…
receive a response comprising the web page from the server computing device… a code component therein…
send the identified code component to an open tab of a second client browser application…
receive, from the open tab of the second client browser application, a modified version of the identified code component
send the web page and the modified version of the identified code component to the open tab of the first client browser application.
2. The proxy computing device of claim 1, wherein, to send the first code component to the second client, the program code is structured to cause the processor to:
send the first code component to a client browser application executing on the second client.
1. send the identified code component to an open tab of a second client browser application of the plurality of client browser applications
5. The proxy computing device of claim 1, wherein the program code is structured to further cause the processor to:
extract code components from the web page, the extracted code components comprising the first code component;
organize the code components into an abstract syntax tree (AST);
and traverse the AST to identify the first code component.
5. wherein the program code, when executed by the at least one processor circuit is configured to cause the proxy computing device to analyze the web page to identify a code component therein by:
extracting a plurality of code components from the web page;
organizing the plurality of code components into an abstract syntax tree (AST);
and traversing the AST to identify the code component.
6. The proxy computing device of claim 5, wherein, to traverse the AST to identify the first code component, the program code is structured to cause the processor to:
determine that the first code component implements at least one of:
a navigation action;
a print action;
a file download action; or
a file upload action.
6. identify a code component therein by: analyzing the web page to identify a code component that implements one of:
a navigation action;
a print action;
a file download action; or a file upload action.
7. The proxy computing device of claim 1, wherein the first code component comprises a JavaScript code component.
7. wherein the identified code component comprises a JavaScript code component
Claims 8-9 recite substantially similar limitations to claims 1-2 respectively and are thus rejected along the same rationales.
Claims 12-14 recite substantially similar limitations to claims 5-7 respectively and are thus rejected along the same rationales.
Claims 15-16 recite substantially similar limitations to claims 1-2 respectively and are thus rejected along the same rationales.
Claims 18-20 recite substantially similar limitations to claims 5-7 respectively and are thus rejected along the same rationales.
Claims 3 and 10 rejected on the ground of nonstatutory double patenting as being unpatentable over claim(s) 1 of U.S. Patent No. 12032647 in view of Amacker (US20160191612A1; filed 9/23/2015).
Instant application
Reference patent US 12032647
3. … code rewriting; … utilized for code rewriting,
1. a modified version of the identified code component
The modifying of the code is interpreted as anticipating the “code rewriting”.
However, with regards to claim 3, the reference patent does not disclose wherein, to send the first code component to a second client, the program code is structured to cause the processor to:
determine that the second client is registered at the proxy computing device as a worker that can be utilized…; and responsive to determining that the second client is registered at the proxy computing device as a worker that can be utilized…, send the first code component to the second client.
Amacker teaches wherein, to send the first code component to a second client, the program code is structured to cause the processor to: determine that the second client is registered at the proxy computing device as a worker that can be utilized… (Amacker, paragraph 30: “At step 402, donor browsers may be registered.” Paragraph 36: “the job coordinator component 214 (FIG. 2) may select the working set from the set of donor browsers registered at step 402”); and
responsive to determining that the second client is registered at the proxy computing device as a worker that can be utilized…, send the first code component to the second client (Amacker, paragraph 48: “Responsive to receiving the work unit assignment(s) of step 712, associated job code may be requested (step 714) and received (step 716), and associated job data may be requested (step 718) and received (step 720)”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined the reference patent and Amacker such that some of the processing is performed on browsers on other client devices. This would have enabled a cheaper distributed processing technique (Amacker, paragraph 2: “there are many applications that would benefit from distributed computing but for which custom techniques are prohibitively expensive.”).
Claim 10 recites substantially similar limitations to claim 3 and is thus rejected along the same rationale.
Claims 4, 11, and 17 rejected on the ground of nonstatutory double patenting as being unpatentable over claim(s) 1 of U.S. Patent No. 12032647 in view of Jain (US20210089348A1; filed 9/19/2019).
With regards to claim 4, which depends on claim 1, the reference patent does not cite the limitations of claim 4.
However, Jain teaches determine that the second client is associated with a same tenant of a cloud services platform as the first client (Jain, paragraph 1: “An enterprise may utilize applications or services executing in a cloud computing environment.” Paragraph 36: “That is both the first tenant and the newly created additional tenant may exist together in the same sandbox (because they are both associated with the same tenant identifier).”); and responsive to determining that the second client is associated with the same tenant of a cloud services platform as the first client, send the first code component to the second client (Jain, paragraph 36: “a dispatcher platform 910 has created two tenant actors 940, 942 in a single web assembly sandbox 930 (using threads from a tenant thread pool 920). This is because the two actors 940, 942 are associated with the same tenant identifier as in S850 through S870”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined the reference patent and Jain such that the distributed processing was implemented using a tenant cloud service. This would have improved the security of the network (Jain, paragraph 1: “With some implementations of the actor model, however, different actors may share memory, such as a shared Java heap. As a result, any flaw within a single tenant's runtime might be exploited by an attacker and compromise the security of all tenants. It would therefore be desirable to provide multi-tenant support for a cloud-based actor computing environment in a secure, automatic, and accurate manner”).
Claim 11 recites substantially similar limitations to claim 4 and is thus rejected along the same rationale.
Claim 17 recites substantially similar limitations to claim 4 and is thus rejected along the same rationale.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-3, 5-10, 12-16, and 18-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Durieux et al (Durieux, Thomas, et al. “Fully Automated HTML and JavaScript Rewriting for Constructing a Self‐Healing Web Proxy.” Software Testing, Verification and Reliability, vol. 30, no. 2, 14 Feb. 2020, https://doi.org/10.1002/stvr.1731. Accessed 19 Aug. 2020.) in view of Amacker (US20160191612A1; filed 9/23/2015).
With regards to claim 1, Durieux et al discloses A proxy computing device, comprising: a processor; and a memory device that stores program code structured to cause the processor to (Durieux et al, Fig. 1: BikiniProxy device is a computing device):
receive, from a first client, a request to access a web page hosted on a server (Durieux et al, Fig. 1: HTTP request sent from Client Browser);
receive, from the server, a response comprising the web page, the web page comprising a first code component (Durieux et al, Fig. 1: HTTP response received from Server);
… a modified version of the first code component (Durieux et al, p. 7: “The Rewriting Service (see Section 3.3.2) that contains the self-healing strategies to handle Javascript errors.” The output of the rewriting service is the modified version of the code); and
send, to the first client, the web page and the modified version of the first code component (Durieux et al, p. 8: “BikiniProxy also injects its error monitoring framework before sending the rewritten response to Bob’s browser.”).
However, Durieux et al does not disclose send the first code component to a second client;
receive, from the second client, a modified...
Amacker teaches send the first code component to a second client (Amacker, abstract: “A reusable distributed computing framework may be established in which contributors of computing resources may participate by using a web browser to visit a web page that incorporates a distributed computing participation component;” paragraph 48: “associated job code may be requested (step 714) and received (step 716), and associated job data may be requested (step 718) and received (step 720)”); receive, from the second client, a modified… (Amacker, paragraph 40: “At step 510, results corresponding to work units may be received. For example, the job coordinator component 214 (FIG. 2) may receive the results corresponding to assigned work units of job data processed with the job code made web-accessible at step 416 (FIG. 4);” the ).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined Durieux et al and Amacker such that some of the processing is performed on other client devices. This would have enabled a cheaper distributed processing technique (Amacker, paragraph 2: “there are many applications that would benefit from distributed computing but for which custom techniques are prohibitively expensive.”).
With regards to claim 2, which depends on claim 1, Durieux et al does not disclose wherein, to send the first code component to the second client, the program code is structured to cause the processor to: send the first code component to a client browser application executing on the second client.
However, Amacker teaches wherein, to send the first code component to the second client, the program code is structured to cause the processor to: send the first code component to a client browser application executing on the second client (Amacker, abstract: “A reusable distributed computing framework may be established in which contributors of computing resources may participate by using a web browser to visit a web page that incorporates a distributed computing participation component”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined Durieux et al and Amacker such that some of the processing is performed on browsers on other client devices. This would have enabled a cheaper distributed processing technique (Amacker, paragraph 2: “there are many applications that would benefit from distributed computing but for which custom techniques are prohibitively expensive.”).
With regards to claim 3, which depends on claim 1, Durieux et al discloses code rewriting… code rewriting (Durieux et al, abstract: “five self-healing strategies to rewrite the buggy HTML and Javascript code to handle errors in webpages”).
However, Durieux et al does not disclose wherein, to send the first code component to a second client, the program code is structured to cause the processor to:
determine that the second client is registered at the proxy computing device as a worker that can be utilized…; and
responsive to determining that the second client is registered at the proxy computing device as a worker that can be utilized…, send the first code component to the second client.
Amacker teaches wherein, to send the first code component to a second client, the program code is structured to cause the processor to: determine that the second client is registered at the proxy computing device as a worker that can be utilized… (Amacker, paragraph 30: “At step 402, donor browsers may be registered.” Paragraph 36: “the job coordinator component 214 (FIG. 2) may select the working set from the set of donor browsers registered at step 402”); and
responsive to determining that the second client is registered at the proxy computing device as a worker that can be utilized…, send the first code component to the second client (Amacker, paragraph 48: “Responsive to receiving the work unit assignment(s) of step 712, associated job code may be requested (step 714) and received (step 716), and associated job data may be requested (step 718) and received (step 720)”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined Durieux et al and Amacker such that some of the processing is performed on browsers on other client devices. This would have enabled a cheaper distributed processing technique (Amacker, paragraph 2: “there are many applications that would benefit from distributed computing but for which custom techniques are prohibitively expensive.”).
With regards to claim 5, which depends on claim 1, Durieux et al discloses extract code components from the web page, the extracted code components comprising the first code component (Durieux et al, p. 7-8: “Javascript errors;” All of section 3.2 involves extracting and fixing Javascript);
organize the code components into an abstract syntax tree (AST) (Durieux et al, p. 2: “BikiniProxy and BugBlock automatically modify the Document Object Model (DOM) of HTML pages or automatically transforms Javascript abstract syntax trees (AST)”);
and traverse the AST to identify the first code component (Durieux et al, p. 7: “Then Line Skipper extracts the AST from the Javascript code and looks for the element that is not defined. Finally, the AST is transformed back to a textual form to be sent back to the client.”).
With regards to claim 6, which depends on claim 5, Durieux et al discloses determine that the first code component implements at least one of: a navigation action; a print action; a file download action (Durieux et al, p. 15: “The solution that we implemented consists of blocking the request that loads the resource, and then create a new HTTP request using the Ajax API that downloads the Javascript resource as a textual file. Once the file is downloaded, it can be rewritten and injected back to the webpage in order to be executed.”); or a file upload action.
With regards to claim 7, which depends on claim 1, Durieux et al discloses wherein the first code component comprises a JavaScript code component (Durieux et al, abstract: “rewrite the buggy HTML and Javascript code to handle errors in webpages”).
Claims 8-10 recite substantially similar limitations to claims 1-3 respectively and are thus rejected along the same rationales.
Claims 12-14 recite substantially similar limitations to claims 5-7 respectively and are thus rejected along the same rationales.
Claims 15-16 recite substantially similar limitations to claims 1-2 respectively and are thus rejected along the same rationales.
Claims 18-20 recite substantially similar limitations to claims 5-7 respectively and are thus rejected along the same rationales.
Claim(s) 4, 11, and 17 is/are rejected under 35 U.S.C. 103 as being unpatentable over Durieux et al in view of Amacker, and further in view of Jain (US20210089348A1; filed 9/19/2019).
With regards to claim 4, which depends on claim 1, Durieux et al and Amacker do not disclose determine that the second client is associated with a same tenant of a cloud services platform as the first client; and responsive to determining that the second client is associated with the same tenant of a cloud services platform as the first client, send the first code component to the second client.
Jain teaches determine that the second client is associated with a same tenant of a cloud services platform as the first client (Jain, paragraph 1: “An enterprise may utilize applications or services executing in a cloud computing environment.” Paragraph 36: “That is both the first tenant and the newly created additional tenant may exist together in the same sandbox (because they are both associated with the same tenant identifier).”); and responsive to determining that the second client is associated with the same tenant of a cloud services platform as the first client, send the first code component to the second client (Jain, paragraph 36: “a dispatcher platform 910 has created two tenant actors 940, 942 in a single web assembly sandbox 930 (using threads from a tenant thread pool 920). This is because the two actors 940, 942 are associated with the same tenant identifier as in S850 through S870”).
It would have been obvious to a person of ordinary skill in the art before the effective filing date to have combined Durieux et al, Amacker, and Jain such that the distributed processing was implemented using a tenant cloud service. This would have improved the security of the network (Jain, paragraph 1: “With some implementations of the actor model, however, different actors may share memory, such as a shared Java heap. As a result, any flaw within a single tenant's runtime might be exploited by an attacker and compromise the security of all tenants. It would therefore be desirable to provide multi-tenant support for a cloud-based actor computing environment in a secure, automatic, and accurate manner”).
Claim 11 recites substantially similar limitations to claim 4 and is thus rejected along the same rationale.
Claim 17 recites substantially similar limitations to claim 4 and is thus rejected along the same rationale.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRODERICK C ANDERSON whose telephone number is (313)446-6566. The examiner can normally be reached Monday-Tuesday, Thursday-Saturday 9-5 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, Stephen Hong can be reached at 5712724124. 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.
/B.C.A/Examiner, Art Unit 2178
/STEPHEN S HONG/Supervisory Patent Examiner, Art Unit 2178