Prosecution Insights
Last updated: April 19, 2026
Application No. 18/022,916

Computer-Implemented Method and System for the Dynamically Executing an Application Program by a Platform

Final Rejection §102§103
Filed
Feb 23, 2023
Examiner
ONAT, UMUT
Art Unit
2194
Tech Center
2100 — Computer Architecture & Software
Assignee
Siemens Aktiengesellschaft
OA Round
2 (Final)
79%
Grant Probability
Favorable
3-4
OA Rounds
3y 0m
To Grant
99%
With Interview

Examiner Intelligence

Grants 79% — above average
79%
Career Allow Rate
415 granted / 523 resolved
+24.3% vs TC avg
Strong +29% interview lift
Without
With
+28.7%
Interview Lift
resolved cases with interview
Typical timeline
3y 0m
Avg Prosecution
35 currently pending
Career history
558
Total Applications
across all art units

Statute-Specific Performance

§101
14.3%
-25.7% vs TC avg
§103
42.1%
+2.1% vs TC avg
§102
15.6%
-24.4% vs TC avg
§112
18.5%
-21.5% vs TC avg
Black line = Tech Center average estimate • Based on career data from 523 resolved cases

Office Action

§102 §103
DETAILED ACTION Claims 1-11 are cancelled. Claims 12, 21, 22, 24, and 25 are amended. Claims 12-25 are pending in the application. 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 . 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. Examiner’s Notes The Examiner cites particular sections in the references as applied to the claims below for the convenience of the applicant(s). Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant(s) fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner. Priority Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55. Information Disclosure Statement The listing of references in the specification is not a proper information disclosure statement (see the non-patent literature documents listed on pages 3-4). 37 CFR 1.98(b) requires a list of all patents, publications, or other information submitted for consideration by the Office, and MPEP § 609.04(a) states, "the list may not be incorporated into the specification but must be submitted in a separate paper." Therefore, unless the references have been cited by the examiner on form PTO-892, they have not been considered. Response to Amendment Amendments to the specification are fully considered and are satisfactory to overcome the objections directed to the drawings in the previous Office Action. Amendments to claim 21 are fully considered and are satisfactory to overcome the rejections under 35 U.S.C. §112(b) directed to claims 21-22 in the previous Office Action. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claims 12-20, 24, and 25 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Nightingale (US 2013/0346985 A1). With respect to claim 12, Nightingale teaches: A computer-implemented method for dynamically executing at least one application program by a platform (see e.g. Fig. 1: “100”) including a processor (see e.g. Fig. 1: “106”; and paragraph 18: “configuration of a processing unit, co-processor and memory is illustrated in FIG. 1 by dashed line 106”) comprising a program memory (see e.g. Fig. 1: “104”; and paragraph 15: “computing device 100 includes… memory 104”) and a programmable logic unit (see e.g. Fig. 1: “120”; and paragraph 16: “computing device also includes one or more field programmable gate arrays (FPGA), denoted as FPGA unit 120”), the processor and programmable logic unit supporting a programming mode (see e.g. paragraph 24: “The FPGA can be programmed”; and paragraph 26: “when an FPGA functional unit will be programmed”) and an execution mode (see e.g. paragraph 24: “ When the application makes calls to functions performed by the FPGA… executes the function using the FPGA”; and paragraph 27: “leverage the FPGA during execution”), during the programming mode, a first application program (see e.g. Fig. 3: “Application 300”) comprising at least one first module being loaded into at least one of the program memory (see e.g. paragraph 24: “If an application relies on a hardware library 304, then the operating system 306 uses the hardware library to program the FPGA resources 310 to allow the application 300 to use the library”) and the programmable logic unit (see e.g. paragraph 24: “each FPGA can be considered a functional unit”) so as to be executable as at least one first program code from an application database (see e.g. Fig. 3: “Hardware Libraries 304”) and being programmed (see e.g. paragraph 24: “each functional unit is a resource that can be assigned to one or more processes, programmed by the operating system using a hardware library that implements an operation, and then used by the processes assigned to it to perform the operation… uses the hardware library to program the FPGA resources 310 to allow the application 300 to use the library”) and, during the execution mode, the at least one first program code is executed (see e.g. paragraph 24: “When the application makes calls to functions performed by the FPGA, the operating system… executes the function using the FPGA”), the method comprising: checking during the execution mode (see e.g. paragraph 29: “The association between a functional unit and a process running an application can be made at… runtime”), one of the processor or the programmable logic unit on which the at least one first program code is executed, based on at least one predefined runtime criterion (see e.g. paragraph 30: “associating a functional unit with a process at runtime… determined 608 if the functional unit is being shared”) comprising a resource usage level of the processor or the programmable logic unit (see e.g. paragraph 24: “resources within the FPGA unit is one or more groups of programmable gates, herein called functional units… each functional unit is a resource that can be assigned to one or more processes”; and paragraph 30: “functional unit is associated 606 with the process executing the application. It is then determined 608 if the functional unit is being shared with other processes”), whether a second application program (see e.g. paragraph 30: “other processes”) comprising at least one second module should be loaded from the application database (see e.g. paragraph 30: “It is then determined 608 if the functional unit is being shared with other processes… If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”); performing a change to the programming mode (see e.g. paragraph 32: “When programming the FPGA”), and loading at least the at least one second module into at least one of the program memory and the programmable logic unit so as to be executable as at least one second program code (see e.g. paragraph 30: “It is then determined 608 if the functional unit is being shared with other processes…If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”; paragraph 32: “When programming the FPGA, a scheduler can consider whether other processes are using the FPGA, and whether programming the FPGA involves pausing those other processes (after their use of the FPGA has completed). As an example, the scheduler can wait until a process has become dormant, or has not been using the FPGA, to initiate programming the FPGA”; and Fig. 6, steps 614, 616), if the second application program comprising at least one second module should be loaded from the application database (see e.g. paragraph 30: “If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”); and implementing a change to the execution mode, in which the at least one second program code is executed (see e.g. paragraph 30: If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA. A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”; and Fig. 6, step 612), if the second application program comprising at least one second module should be loaded from the application database (see e.g. paragraph 30: “If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”). Nightingale discloses programming an FPGA and corresponding functional units 202-206 (i.e. programming mode) and executing processes utilizing the FPGA functional units (i.e. execution mode). Nightingale further discloses determining FPGA functional units, which are resources assigned to processes, that are to be shared between the processes (i.e. a criteria to determine functional unit usage levels by the processes) and programming the FPGA functional units by loading corresponding libraries in order to enable the processes to share the functional units during execution. With respect to claim 13, Nightingale teaches: The method as claimed in claim 12, wherein a usage level of one of (i) the processor (see e.g. paragraph 32: “ When programming the FPGA, a scheduler can consider… whether programming the FPGA involves pausing those other processes… a process has become dormant”), (ii) the working memory and the program memory of the processor and (ii) the programmable logic unit are determined (see e.g. paragraph 32: “When programming the FPGA, a scheduler can consider whether other processes are using the FPGA”; and paragraph 33: “scheduler also can consider how long it takes to program the FPGA, and whether programming the FPGA will result in a functional unit being programmed differently for different processes over time”) and accordingly taken into consideration during the execution of the first application program during the check to determine whether the second application program should be loaded (see e.g. paragraph 30: “This functional unit is associated 606 with the process executing the application. It is then determined 608 if the functional unit is being shared with other processes… If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”; and paragraph 32: “When programming the FPGA, a scheduler can consider whether other processes are using the FPGA”). With respect to claim 14, Nightingale teaches: The method as claimed in claim 12, wherein a usage level of one of (i) the processor (see e.g. paragraph 32: “ When programming the FPGA, a scheduler can consider… whether programming the FPGA involves pausing those other processes… a process has become dormant”), (ii) the working memory and program memory of the processor and (iii) the programmable logic unit is calculated, estimated and accordingly taken into consideration (see e.g. paragraph 32: “When programming the FPGA, a scheduler can consider whether other processes are using the FPGA”; and paragraph 33: “scheduler also can consider how long it takes to program the FPGA, and whether programming the FPGA will result in a functional unit being programmed differently for different processes over time”) during the execution of the second application program during the check to determine whether the second application program should be loaded (see e.g. paragraph 30: If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA. A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”; and paragraphs 32-33). With respect to claim 15, Nightingale teaches: The method as claimed in claim 13, wherein at least one of the processor and the programmable logic unit is utilized to define whether at least one of the first and second module should be stored in one of the program memory and the programmable logic unit during the execution mode (see e.g. paragraph 30: “A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”; paragraph 32: “a scheduler can consider whether other processes are using the FPGA, and whether programming the FPGA involves pausing those other processes (after their use of the FPGA has completed). As an example, the scheduler can wait until a process has become dormant, or has not been using the FPGA, to initiate programming the FPGA”; and paragraph 27). With respect to claim 16, Nightingale teaches: The method as claimed in claim 14, wherein at least one of the processor and the programmable logic unit is utilized to define whether at least one of the first and second module should be stored in one of the program memory and the programmable logic unit during the execution mode (see e.g. paragraph 30: “A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”; paragraph 32: “a scheduler can consider whether other processes are using the FPGA, and whether programming the FPGA involves pausing those other processes (after their use of the FPGA has completed). As an example, the scheduler can wait until a process has become dormant, or has not been using the FPGA, to initiate programming the FPGA”; and paragraph 27). With respect to claim 17, Nightingale teaches: The method as claimed in claim 12, wherein an application management module (see e.g. paragraph 26: “a scheduler”), which is executed by a management system (see e.g. paragraph 26: “operating system has a scheduler that determines which process has access to the FPGA resources at each scheduling quantum, i.e., time period, and when an FPGA functional unit will be programmed with a hardware library so that the functional unit is available to be used by that process”) contained in the platform and which is incorporated into a connection between the application database and the processor and the programmable logic unit, defines whether at least one of (i) the first and (ii) the at least one second module is stored in one of the program memory and the programmable logic unit during the execution mode (see e.g. paragraph 30: “A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”; paragraph 32: “a scheduler can consider whether other processes are using the FPGA, and whether programming the FPGA involves pausing those other processes (after their use of the FPGA has completed). As an example, the scheduler can wait until a process has become dormant, or has not been using the FPGA, to initiate programming the FPGA”). With respect to claim 18, Nightingale teaches: The method as claimed in claim 12, wherein the at least one second module loaded so as to be executable comprises a corresponding second processor program code for execution by the processor in the program memory (see e.g. paragraph 23: “running an application on the computer system causes one or more processes to be created, with each process being allocated to different resources over time”; paragraph 25: “another process can start using functional unit”), and a corresponding second logic program code for execution by the programmable logic unit in the programmable logic unit (see e.g. paragraph 24: “each functional unit is a resource that can be assigned to one or more processes, programmed by the operating system using a hardware library that implements an operation, and then used by the processes assigned to it to perform the operation”; and paragraph 30: “If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA. A scheduler within the operating system is then invoked 616 to determine when the FPGA library can be loaded to program the functional unit, and subsequently when the application can be executed 612”). With respect to claim 19, Nightingale teaches: The method as claimed in claim 12, wherein the predefined criterion comprises one of an exceedance of an operative limit value of the platform, reaching a predefined state for the first application program (see e.g. paragraph 26: “ factor to consider is whether processes can share a hardware library by sharing a functional unit”; and paragraph 30: “It is then determined 608 if the functional unit is being shared with other processes. If not, the FPGA library can be scheduled for loading 610 into this functional unit, after which the application can execute 612. If there is conflict with other processes sharing this functional unit, then the FPGA library can be queued 614 for loading into the FPGA”), triggering an alarm or a fault notification on the platform and reaching a predefined time. With respect to claim 20, Nightingale teaches: The method as claimed in claim 12, wherein at least two application programs are executed dynamically (see e.g. paragraph 30: “The association between a functional unit and a process running an application can be made at… runtime. The association can be… dynamic”; and paragraph 30: “process executing the application. It is then determined 608 if the functional unit is being shared with other processes… If there is conflict with other processes sharing this functional unit”). With respect to claims 24-25: Claims 24 and 25 are directed to a system configured to implement active functions corresponding to the method disclosed in claims 12 and 17, respectively; please see the rejections directed to claims 12 and 17 above which also cover the limitations recited in claims 24 and 25. Note that, Nightingale also discloses a system (see e.g. Fig. 1) configured to implement the method disclosed in claims 12 and 17. 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. 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. Claims 21-22 are rejected under 35 U.S.C. 103 as being unpatentable over Nightingale. With respect to claim 21, Nightingale teaches: The method as claimed in claim 20, wherein at least three application programs are executed dynamically (see e.g. paragraph 30: “The association between a functional unit and a process running an application can be made at… runtime. The association can be… dynamic”; and paragraph 30: “process executing the application. It is then determined 608 if the functional unit is being shared with other processes… If there is conflict with other processes sharing this functional unit”). Nightingale discloses executing “other processes” dynamically which encompasses any number of additional processes for executing dynamically. As such, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to realize at least three processes to execute dynamically. The motivation/suggestion would be to accommodate different number of processes for execution; thus improving the overall processing efficiency. With respect to claim 22, Nightingale teaches: The method as claimed in claim 21, wherein at least five or at least ten application programs are executed dynamically (see e.g. paragraph 30: “The association between a functional unit and a process running an application can be made at… runtime. The association can be… dynamic”; and paragraph 30: “process executing the application. It is then determined 608 if the functional unit is being shared with other processes… If there is conflict with other processes sharing this functional unit”). Nightingale discloses executing “other processes” dynamically which encompasses any number of additional processes for executing dynamically. As such, it would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to realize at least five and/or at least ten processes to execute dynamically. The motivation/suggestion would be to accommodate different number of processes for execution; thus improving the overall processing efficiency. Claim 23 is rejected under 35 U.S.C. 103 as being unpatentable over Nightingale in view of Espinosa et al. (US 2011/0107158 A1; hereinafter Espinosa). With respect to claim 23, Nightingale teaches: The method as claimed in claim 12, … wherein the at least one first and at least one second program code are different (see e.g. Nightingale, paragraph 25: “use of multiple functional units at the same time by different processes… multiple functional units being used by different processes at the same time”). Nightingale does not but Espinosa teaches: wherein the first and the second application program are identical (see e.g. Espinosa, paragraph 36: “the same code, instructions or application is run on two identical components (i.e., the two Xilinx®, FPGAs)”); and Nightingale and Espinosa are analogous art because they are in the same field of endeavor: managing and distributing FPGA resources. Therefore, it would have been obvious to one with ordinary skill in the art before the effective filing date of the claimed invention to modify Nightingale with the teachings of Espinosa. The motivation/suggestion would be to improve data analysis and possible error corrections associated with application program execution (see e.g. Espinosa, paragraph 36). Response to Arguments Applicant's arguments filed 10/29/2025 have been fully considered but they are not persuasive. In detail: (i) Regarding Applicant’s arguments with respect to the rejections under 35 U.S.C. §102 directed to claims 12 and 24 (Remarks, pages 11-14), note that Nightingale discloses functional units 200-204 of an FPGA (i.e. a programmable logic unit) as resources provided to processes (see e.g. paragraph 24: “resources within the FPGA unit is one or more groups of programmable gates, herein called functional units… each functional unit is a resource that can be assigned to one or more processes”; and Fig. 2). Nightingale further discloses determining if a functional unit will be utilized by one process or if it will be shared with other processes (see e.g. paragraph 30: “functional unit is associated 606 with the process executing the application. It is then determined 608 if the functional unit is being shared with other processes). That is, Nightingale determines a utilization level for the functional unit. As such, Nightingale discloses determining functional unit usage level (e.g. individual or shared usage) of the FPGA, which in return teaches the limitation “at least one predefined runtime criterion comprising a resource usage level of the processor or the programmable logic unit” as recited in the claims. Consequently, the Examiner maintains the rejections directed to claims 12 and 24. For more details, please see the corresponding rejections above. CONCLUSION The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: Sharma et al. (US 2020/0225996 A1) discloses performing a runtime analysis to determine dynamic resource utilization of FPGA resources (see paragraph 178). THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any 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. Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to Umut Onat whose telephone number is (571)270-1735. The examiner can normally be reached M-Th 9:00-7:30. 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, Kevin L Young can be reached at (571) 270-3180. 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. /UMUT ONAT/Primary Examiner, Art Unit 2194
Read full office action

Prosecution Timeline

Feb 23, 2023
Application Filed
Jul 25, 2025
Non-Final Rejection — §102, §103
Oct 29, 2025
Response Filed
Feb 11, 2026
Final Rejection — §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602271
NON-BLOCKING RING EXCHANGE ALGORITHM
2y 5m to grant Granted Apr 14, 2026
Patent 12572397
REAL-TIME EVENT DATA REPORTING ON EDGE COMPUTING DEVICES
2y 5m to grant Granted Mar 10, 2026
Patent 12572645
SYSTEMS AND METHODS FOR MANAGING SETTINGS BASED UPON USER PERSONA USING HETEROGENEOUS COMPUTING PLATFORMS
2y 5m to grant Granted Mar 10, 2026
Patent 12566647
System And Method for Implementing Micro-Application Environments
2y 5m to grant Granted Mar 03, 2026
Patent 12547481
SYSTEMS, METHODS, AND DEVICES FOR ACCESSING A COMPUTATIONAL DEVICE KERNEL
2y 5m to grant Granted Feb 10, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
79%
Grant Probability
99%
With Interview (+28.7%)
3y 0m
Median Time to Grant
Moderate
PTA Risk
Based on 523 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month