Prosecution Insights
Last updated: April 19, 2026
Application No. 18/080,444

EXTENSIBLE PROTECTED OPEN DATA FRAMEWORK

Final Rejection §101§103§112
Filed
Dec 13, 2022
Examiner
RIGGINS, ARI FAITH COLEMA
Art Unit
2197
Tech Center
2100 — Computer Architecture & Software
Assignee
BAE Systems PLC
OA Round
2 (Final)
0%
Grant Probability
At Risk
3-4
OA Rounds
3y 3m
To Grant
0%
With Interview

Examiner Intelligence

Grants only 0% of cases
0%
Career Allow Rate
0 granted / 1 resolved
-55.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
38 currently pending
Career history
39
Total Applications
across all art units

Statute-Specific Performance

§101
27.8%
-12.2% vs TC avg
§103
41.5%
+1.5% vs TC avg
§102
9.5%
-30.5% vs TC avg
§112
21.2%
-18.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 1 resolved cases

Office Action

§101 §103 §112
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 on 11/03/2025. Claims 1-20 are pending. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claim 3 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 3 recites the limitation “determine whether one of the threads in the execution thread pool is occupied by that thread executing an algorithm, and if that thread is occupied then executing, via another API, an algorithm” in lines 4-5. It is unclear what is meant by “an algorithm” the second time it is stated. This could be the same as the first algorithm or a different algorithm. Examiner interprets the first “an algorithm” as “a first algorithm” and the second “an algorithm” as “a second algorithm”. Claim Rejections - 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. Claims 3, 5, 6, 10, 11, 14, and 15 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. Claims 3, 5, and 6 depend on claim 1 and claim 3 depends on claim 2, thus the limitations of claims 1 and 2 will be analyzed as additional elements. Claims 10, 11, 14, and 15 depend on claim 8 and claim 10 depends on claim 9, thus the limitations of claim 8 and 9 will be analyzed as additional elements. Step 1: Claims 3, 5, and 6 are directed to a computer program product and fall within the statutory category of article of manufacture. Claims 10, 11, 14, and 15 are directed to a method and fall within the statutory category of process. 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 3 and 10: The limitations of “wherein the instructions further comprise: determine whether one of the threads in the execution thread pool is occupied by that thread executing an algorithm,” and “determining whether one of the threads in the execution thread pool is occupied by that thread executing another algorithm,”, 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 observe the execution of an algorithm and based on this observation can mentally determine whether a thread is occupied. Claims 5 and 14: The limitations of “and compare(comparing) queried augment data with the retrieved augment data associated with the trigger”, 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 observe queried augment data and retrieved augment data and based on this observation can mentally compare the data. This may also be done with pencil and paper. Claims 6 and 15: The limitations of “wherein the instructions further comprise: schedule the persistent queries to query data in the active data storage at regular intervals;” and “further comprising: scheduling the persistent queries to query the augment data in the active data storage at regular intervals;”, 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 mentally schedule persistent queries at regular intervals by deciding how to schedule the queries. Therefore, Yes, claims 3, 5, 6, 10, 14, and 15 recite a judicial exception. Step 2A Prong 2: Claims 3, 5, 6, 10, 14, and 15 depend from one or more of claims 1-2 and 8-9. Thus, the limitations of claim 1-2 and 8-9 are present in the claims which depend therefrom and are considered as additional elements under Step 2A Prong 2 in consideration of whether the recited abstract ideas of the claims that depend therefrom are integrated into practical application. Claims 1 and 8: The judicial exception is not integrated into a practical application. In particular, the Claims recite the following additional elements – “A computer program product including least one non-transitory computer readable storage medium in operative communication with a processor and a framework comprising an active data storage and an execution protocol,”, “implement a method for asynchronous signal processing, the instructions comprising:”, “wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; ”, “wherein execution of at least one of the one or more algorithms is based on the retrieved augment data”, “A computer implemented method for asynchronous signal processing, the method comprising:”, “wherein the execution protocol is coupled with the active data storage;”, “wherein the trigger is associated with an augment stored in a database in the active data storage,”, and “wherein the trigger changes in response to one or more signals received into the active data storage;” which is merely a recitation of technological environment/field of use (see MPEP § 2106.05(h)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “wherein the execution protocol is coupled with the active data storage, the storage medium having instructions stored thereon that, when executed by the processor,” which is merely a recitation of generic computing components (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “register(ing) a trigger and transmitting the registered trigger to a trigger list in the active data storage,”, “retrieve (retrieving) augment data from the active data storage in response to the trigger changing;”, “receive (receiving) the retrieved augment data in the execution protocol;”, “provide (providing) an indication to an execution thread pool that the retrieved augment data is ready for execution,”, “obtaining a framework comprising an active data storage and an execution protocol,” and “and notify the first virtual machine of that the expansion card after the operation end is inserted” which are merely a recitations of data storage, reception, and transmission which is insignificant extra solution activity (see MPEP §2106.05(g)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “and execute (executing) one or more algorithms on different but parallel threads of the execution thread pool at the same time,” and “the expansion card mounted on an expansion slot of the information processing device” which is merely a recitation of using a computer as a tool to perform the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Claims 2 and 9: The judicial exception is not integrated into a practical application. In particular, the Claims recite the following additional elements – “wherein the instructions further comprise: receive signals at a first digital receiver on a platform”, “receive (receiving) signals from a second signal generator”, and “receiving signals at a first digital receiver on a platform” which are merely recitations of data reception which is insignificant extra solution activity (see MPEP §2106.05(g)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “from a first signal generator remote from the platform;”, “a second signal generator remote from the platform; ”, “based on augments associated with the signals received from the first signal generator;”, “based on augments associated with the signals received from the second signal generator,”, and “wherein the second thread operates in parallel with the first thread in the execution thread pool” which are merely recitations of technological environment/field of use (see MPEP 2106.05(h)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “execute (executing), via a first application program interface (API), a first algorithm in a first thread of the execution thread pool”, “execute, via the first API, a second algorithm in a second thread of the execution thread pool”, “wherein executing at least two algorithms on different but parallel threads of the execution thread pool at the same time comprises:”, and “executing, via the API, a second algorithm in a second thread of the execution thread pool” which are merely recitations of using a computer as a tool to perform the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Therefore, none of the additional elements of claims 1, 2, 8, and 9 integrate the abstract ideas into practical application. These claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. Claims 3, 10, and 11: The judicial exception is not integrated into a practical application. In particular, the Claims recite the following additional elements – “and if that thread is occupied then executing, via another API, an algorithm in another thread that operates in parallel with the thread that is occupied;”, which is merely a recitation of using a computer as a tool to perform the abstract idea (see MPEP § 2106.05(f)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “and buffer the received and retrieved augment data in the event that all of threads are occupied” and “further comprising: buffering the received and retrieved augment data in the event that all of threads are occupied” which is merely a recitation of data storage which is insignificant extra solution activity (see MPEP §2106.05(g)) which does not integrate a judicial exception into practical application. Claims 5 and 14: The judicial exception is not integrated into a practical application. In particular, the Claims recite the following additional elements – “wherein the instructions further comprise: query the augment data in the active data storage via persistent queries” and “further comprising: querying the augment data in the active data storage via persistent queries”, which is merely a recitation of data transmission which is insignificant extra solution activity (see MPEP §2106.05(g)) which does not integrate a judicial exception into practical application. Further, the claims recite the following additional elements – “queries that are asynchronous to the registered trigger;” which is merely a recitation of technological environment/field of use (see MPEP 2106.05(h)) which does not integrate a judicial exception into practical application. Claims 6 and 15: The judicial exception is not integrated into a practical application. In particular, the Claims recite the following additional elements – “and maintain a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage” and “maintaining a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage” which is merely a recitation of data storage which is insignificant extra solution activity (see MPEP §2106.05(g)) which does not integrate a judicial exception into practical application. Step 2B: Claims 3, 5, 6, 10, 14, and 15 depend from one or more of claims 1-2 and 8-9. Thus, the limitations of claim 1-2 and 8-9 are present in the claims which depend therefrom and are considered as additional elements under Step 2B in consideration of whether the recited additional elements of the claims that depend therefrom amount to significantly more than any recited judicial exception. Claims 3, 5, 6, 10, 11, 14, 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, field of use/technological environment, using the computer as a tool to perform the abstract idea, and insignificant extra solution activity which do not amount to significantly more than the abstract idea. Further, the insignificant extra solution activity is well-understood, routine, and conventional in the art. “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” [MPEP§ 2106.05(d)(II)]. 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 3, 5, 6, 10, 11, 14, and 15 do not recite patent eligible subject matter under 35 U.S.C. § 101. Therefore, Claims 3, 5, 6, 10, 11, 14, and 15 do not recite patent eligible subject matter under U.S.C. §101. 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, 7-9, 12, 16, 17, 19, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Shattil (US 2017/0094527 A1) in view of Chandrasekaran (US 10,929,181 B1). With regard to claim 1, Shattil teaches: A computer program product including least one non-transitory computer readable storage medium in operative communication with a processor and a framework comprising an active data storage and an execution protocol, “A non-transitory computer readable storage medium including processor-executable code for storing instructions operable to:” [Shattil Claim 9]. wherein the execution protocol is coupled with the active data storage, the storage medium having instructions stored thereon that, when executed by the processor, implement a method for asynchronous signal processing, the instructions comprising: “The medium recited in claim 9, further comprising instructions operable to measure a plurality of signal attributes from the detected radio signals, filter the detected radio signals based on the plurality of signal attributes, and couple filtered radio signals to a feature extractor” [Shattil Claim 11]. register a trigger “In some aspects, signal analyzer 114 monitors a device's response to a countermeasure. The response may be cross-referenced with the classification database 115, such as to aid in device identification. Thus, the response can be a feature of a particular radio protocol or device. In some cases, signal analyzer 114 logs the response to the classification database 115” [Shattil ¶ 30]. “A triggering event can be based on comparing one or more measured signal attributes to a triggering threshold value. Attributes can represent a collection of measured signal characteristics that can also be used for filtering, matching, and organizing signal data” [Shattil ¶ 43]. and transmitting the registered trigger to a trigger list in the active data storage, “The classification database 115 (trigger list) comprises known radio signal types (e.g., modulation type and/or corresponding radio standard), their features (e.g., physical-layer features, frame format, control signal type, signaling behavior), and (optionally) devices that employ each radio signal type” [Shattil ¶ 31]. “In some aspects, signal analyzer 114 monitors a device's response to a countermeasure. The response may be cross-referenced with the classification database 115, such as to aid in device identification. Thus, the response can be a feature of a particular radio protocol or device. In some cases, signal analyzer 114 logs the response to the classification database 115” [Shattil ¶ 30]. wherein the trigger is associated with an augment stored in a database in the active data storage, “When the target's radio system and identity are known, a corresponding exploit (augment) in the database 143 is selected” [Shattil ¶ 36]. “A triggering event can be based on comparing one or more measured signal attributes to a triggering threshold value. Attributes can represent a collection of measured signal characteristics that can also be used for filtering, matching, and organizing signal data” [Shattil ¶ 43]. “Advantageously, the present invention and its real time functionality described herein uniquely provide and enable the apparatus units to compare to historical data, to update data and/or information, and/or to provide more data and/or information on the open space, on the device that may be occupying the open space, and combinations, in the near real time compared with the historically scanned (15 min to 30 days) data, or historical database information” [Shattil ¶ 80]. wherein the trigger changes in response to one or more signals received into the active data storage; “Different signals types that share similar features may be found to have similar vulnerabilities, which can be help select and/or adapt an exploit. Therefore, even if a signal of interest can't be explicitly linked to a standard radio protocol or transceiver type, an attack profile can be selected by the exploit adaptor 207 based on one or more of the signal features” [Shattil ¶ 124]. retrieve augment data from the active data storage in response to the trigger changing; “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. receive the retrieved augment data in the execution protocol; “A mitigation engine 205 is responsive to the threat analyzer 204 and configured to produce exploits based on the radio protocol classification, a device classification, and/or the signal features. The mitigation engine 205 normally selects exploits from the exploit database 143 based on the radio protocol and/or device classification” [Shattil ¶ 37]. “In accordance with some aspects of the disclosure, the mitigation stage 205 enables the system to take control of one or many UAVs to stop them, land them, redirect them, harvest data, control sensors on the UAV(s), or take total control. Protocol manipulation can allow for granular, surgical, and sophisticated mitigations using minimal power, often less than a single Watt at more than one kilometer range. One aspect of mitigation comprises protocol manipulation” [Shattil ¶ 80]. provide an indication to an execution thread pool that the retrieved augment data is ready for execution, “The alert function 655 can be configured to execute a set of operations upon detection of a threat by the threat analyzer 654, such as sending a notification to the workstation 631 and sending signal data to server 661, which is configured to perform mitigation” [Shattil ¶ 143-144]. wherein execution of at least one of the one or more algorithms is based on the retrieved augment data. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach provide an indication to an execution thread pool that the retrieved augment data is ready for execution. However, Chandrasekaran teaches provide an indication to an execution thread pool that the retrieved augment data is ready for execution, “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. Shattil teaches concurrent processing to execute instances of algorithms. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; and execute one or more algorithms on different but parallel threads of the execution thread pool at the same time. However, Chandrasekaran teaches: wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. and execute one or more algorithms on different but parallel threads of the execution thread pool at the same time, “Relatedly, the processing elements may be configured to execute one or more instructions in parallel locally, and/or across the network, such as through cloud computing resources” [Chandrasekaran Col. 17 Lines 62-65]. Chandrasekaran is considered to be analogous to the claimed invention because it is in the same field of digital task scheduling strategies. Therefore, it would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include provide an indication to an execution thread pool that the retrieved augment data is ready for execution, wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; and execute one or more algorithms on different but parallel threads of the execution thread pool at the same time. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 2, Shattil in view of Chandrasekaran teaches the computer program product of Claim 1, as referenced above. Shattil further teaches: wherein the instructions further comprise: receive signals at a first digital receiver on a platform from a first signal generator remote from the platform; “Antenna systems 102 and/or 103 can comprise any combination of terrestrial and airborne platforms” [Shattil ¶ 26]. “The antenna system 102 is configured to detect RF emissions from target UAVs and/or controllers communicating with the targets” [Shattil ¶ 25]. “When a target is transmitting, or its associated controller is transmitting, the threat analyzer 132 can process information signals provided by the signal analyzer 114. When the target is transmitting, the threat analyzer 132 might operate on spatial information provided by spatial processor 122” [Shattil ¶ 33]. receive signals from a second signal generator “In some aspects, the antenna system 102 and/or 103 can be employed as a sensor network, such as when a target transmits radio signals. A virtualized sensor may be provided programmatically by configurations in an SDR instance implemented in software and assigned to a particular target, the SDR instance being configured to follow the target as it moves by adapting its selection of sensor platforms (e.g., antennas of the antenna systems 102 and/or 103) dynamically to enhance reception. In such an example, both the receiver system 112 and spatial processor 122 can be implemented programmatically for each target as part of the SDR instance” [Shattil ¶ 35]. “Each SDR instance 621 might be configured for processing a different one of a plurality of targets (signal generators) or a different one of a plurality of different detected radio signals” [Shattil ¶ 137 Examiner notes the processing a different one of a plurality of targets is considered processing a second target]. remote from the platform; “Sensors 101 can include Radar, LIDAR, acoustic sensors, infrared sensors, magnetic induction sensors, camera systems, and others. Sensors 101 can comprise any of various types of telemetry systems and remote sensing systems” [Shattil ¶ 34]. execute, via a first application program interface (API), a first algorithm “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. based on augments associated with the signals received from the first signal generator; “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. execute, via the first API, a second algorithm “A virtualized sensor may be provided programmatically by configurations in an SDR instance implemented in software and assigned to a particular target, the SDR instance being configured to follow the target as it moves by adapting its selection of sensor platforms (e.g., antennas of the antenna systems 102 and/or 103) dynamically to enhance reception. In such an example, both the receiver system 112 and spatial processor 122 can be implemented programmatically for each target as part of the SDR instance…The SDR instance can be configured to comprise the exploit synthesizer's 124 functionality” [Shattil ¶ 35]. “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. based on augments associated with the signals received from the second signal generator, “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. Shattil fails to explicitly teach execute, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool and execute, via the first API, a second algorithm in a second thread of the execution thread pool wherein the second thread operates in parallel with the first thread in the execution thread pool. However, Chandrasekaran teaches: execute, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. “As shown, the various devices may include one or more processing elements 802, a display 806, one or more memory components 808, a network interface 810, and external devices 812…” [Chandrasekaran Col. 17 Lines 43-46]. “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. execute, via the first API, “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. in a second thread of the execution thread pool “When the scheduler 434 receives an intensive task, the scheduler first determines available threads for execution of a new task. In FIG. 4, threads that are not available for execution of a new task are shown with a broken outline. Generally, when a thread is in use for a task, it cannot be assigned another task… In FIG. 4, both thread 442 and thread 437 are available for execution of a new task… In another example, with I/O intensive tasks, the scheduler 434 may allocate the task to a CPU with a free thread, with an aim to maintain computing resources available for processor intensive tasks.” [Chandrasekaran Col. 12 Lines 60-67, Fig. 4]. “In some implementations, the task may be assigned to the thread 442 for execution on the CPU 450 to leave the larger resources available on the CPU 448 available for other tasks. In other implementations, the task may be assigned to the thread 437 to execute on the CPU 448 to provide a buffer in case the estimation is incorrect” [Chandrasekaran Col. 13 Lines 3-9]. wherein the second thread operates in parallel with the first thread in the execution thread pool. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include execute, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool and execute, via the first API, a second algorithm in a second thread of the execution thread pool wherein the second thread operates in parallel with the first thread in the execution thread pool. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 7, Shattil in view of Chandrasekaran teaches the computer program product of Claim 1, as referenced above. Shattil further teaches: wherein the instructions further comprise: provide feedback to the active data storage in response to execution of the at least one or more algorithms “A response analyzer 206 may be provided to analyze a device's response (feedback) (e.g., via sensor data and/or via received radio transmissions from the target) to an exploit and communicate its analysis to the exploit adapter 207” [Shattil ¶ 37]. “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. and change an augment in the active data storage in response to the feedback, “Using machine learning techniques, the mitigation engine 205 can apply different protocol-based exploits against a target, monitor the effects of each exploit, and then adapt exploits as needed” [Shattil ¶ 116]. wherein changing the augment is accomplished by inserting additional data into the augment that was produced during execution of the at least one or more algorithms “For example, a server might support several different authentication protocols in order to support a wide range of clients, including legacy clients. Some of the older protocols may have vulnerabilities that are easier to exploit. Some exploits can be adapted to take advantage of the limited command set of UAVs and the similarity of most UAV radio-control protocols.” [Shattil ¶ 119]. Shattil teaches concurrent processing to execute instances of algorithms. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time; execution of the at least one or more algorithms on different but parallel threads of the execution thread pool at the same time. However, Chandrasekaran teaches: execution of the at least one or more algorithms on different but parallel threads of the execution thread pool at the same time; “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. execution of the at least one or more algorithms on different but parallel threads of the execution thread pool at the same time. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time; execution of the at least one or more algorithms on different but parallel threads of the execution thread pool at the same time. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 8, Shattil teaches: A computer implemented method for asynchronous signal processing, the method comprising: “The medium recited in claim 9, further comprising instructions operable to measure a plurality of signal attributes from the detected radio signals, filter the detected radio signals based on the plurality of signal attributes, and couple filtered radio signals to a feature extractor” [Shattil Claim 11]. obtaining a framework comprising an active data storage and an execution protocol, wherein the execution protocol is coupled with the active data storage; “A non-transitory computer readable storage medium including processor-executable code for storing instructions operable to:” [Shattil Claim 9]. registering a trigger “In some aspects, signal analyzer 114 monitors a device's response to a countermeasure. The response may be cross-referenced with the classification database 115, such as to aid in device identification. Thus, the response can be a feature of a particular radio protocol or device. In some cases, signal analyzer 114 logs the response to the classification database 115” [Shattil ¶ 30]. “A triggering event can be based on comparing one or more measured signal attributes to a triggering threshold value. Attributes can represent a collection of measured signal characteristics that can also be used for filtering, matching, and organizing signal data” [Shattil ¶ 43]. and transmitting the registered trigger to a trigger list in the active data storage, “The classification database 115 (trigger list) comprises known radio signal types (e.g., modulation type and/or corresponding radio standard), their features (e.g., physical-layer features, frame format, control signal type, signaling behavior), and (optionally) devices that employ each radio signal type” [Shattil ¶ 31]. “In some aspects, signal analyzer 114 monitors a device's response to a countermeasure. The response may be cross-referenced with the classification database 115, such as to aid in device identification. Thus, the response can be a feature of a particular radio protocol or device. In some cases, signal analyzer 114 logs the response to the classification database 115” [Shattil ¶ 30]. wherein the trigger is associated with an augment stored in a database in the active data storage, “When the target's radio system and identity are known, a corresponding exploit (augment) in the database 143 is selected” [Shattil ¶ 36]. “A triggering event can be based on comparing one or more measured signal attributes to a triggering threshold value. Attributes can represent a collection of measured signal characteristics that can also be used for filtering, matching, and organizing signal data” [Shattil ¶ 43]. “Advantageously, the present invention and its real time functionality described herein uniquely provide and enable the apparatus units to compare to historical data, to update data and/or information, and/or to provide more data and/or information on the open space, on the device that may be occupying the open space, and combinations, in the near real time compared with the historically scanned (15 min to 30 days) data, or historical database information” [Shattil ¶ 80]. wherein the trigger changes in response to one or more signals received into the active data storage; “Different signals types that share similar features may be found to have similar vulnerabilities, which can be help select and/or adapt an exploit. Therefore, even if a signal of interest can't be explicitly linked to a standard radio protocol or transceiver type, an attack profile can be selected by the exploit adaptor 207 based on one or more of the signal features” [Shattil ¶ 124]. retrieving augment data from the active data storage in response to the trigger changing; “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. receiving the retrieved augment data in the execution protocol; “A mitigation engine 205 is responsive to the threat analyzer 204 and configured to produce exploits based on the radio protocol classification, a device classification, and/or the signal features. The mitigation engine 205 normally selects exploits from the exploit database 143 based on the radio protocol and/or device classification” [Shattil ¶ 37]. “In accordance with some aspects of the disclosure, the mitigation stage 205 enables the system to take control of one or many UAVs to stop them, land them, redirect them, harvest data, control sensors on the UAV(s), or take total control. Protocol manipulation can allow for granular, surgical, and sophisticated mitigations using minimal power, often less than a single Watt at more than one kilometer range. One aspect of mitigation comprises protocol manipulation” [Shattil ¶ 80]. providing an indication to an execution thread pool that the retrieved augment data is ready for execution, “The alert function 655 can be configured to execute a set of operations upon detection of a threat by the threat analyzer 654, such as sending a notification to the workstation 631 and sending signal data to server 661, which is configured to perform mitigation” [Shattil ¶ 143-144]. wherein execution of at least one of the one or more algorithms is based on the retrieved augment data. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach providing an indication to an execution thread pool that the retrieved augment data is ready for execution. However, Chandrasekaran teaches providing an indication to an execution thread pool that the retrieved augment data is ready for execution, “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. Shattil teaches concurrent processing to execute instances of algorithms. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; and executing one or more algorithms on different but parallel threads of the execution thread pool at the same time. However, Chandrasekaran teaches: wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. and executing one or more algorithms on different but parallel threads of the execution thread pool at the same time, “Relatedly, the processing elements may be configured to execute one or more instructions in parallel locally, and/or across the network, such as through cloud computing resources” [Chandrasekaran Col. 17 Lines 62-65]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include providing an indication to an execution thread pool that the retrieved augment data is ready for execution, wherein the execution thread pool includes multiple execution threads that operate in parallel to execute one or more instances of algorithms at the same time; and executing one or more algorithms on different but parallel threads of the execution thread pool at the same time. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 9, Shattil in view of Chandrasekaran teaches the method of Claim 8, as referenced above. Shattil further teaches: wherein executing at least two algorithms “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. receiving signals at a first digital receiver on a platform “Antenna systems 102 and/or 103 can comprise any combination of terrestrial and airborne platforms” [Shattil ¶ 26]. “The antenna system 102 is configured to detect RF emissions from target UAVs and/or controllers communicating with the targets” [Shattil ¶ 25]. “When a target is transmitting, or its associated controller is transmitting, the threat analyzer 132 can process information signals provided by the signal analyzer 114. When the target is transmitting, the threat analyzer 132 might operate on spatial information provided by spatial processor 122” [Shattil ¶ 33]. receiving signals from a second signal generator “In some aspects, the antenna system 102 and/or 103 can be employed as a sensor network, such as when a target transmits radio signals. A virtualized sensor may be provided programmatically by configurations in an SDR instance implemented in software and assigned to a particular target, the SDR instance being configured to follow the target as it moves by adapting its selection of sensor platforms (e.g., antennas of the antenna systems 102 and/or 103) dynamically to enhance reception. In such an example, both the receiver system 112 and spatial processor 122 can be implemented programmatically for each target as part of the SDR instance” [Shattil ¶ 35]. “Each SDR instance 621 might be configured for processing a different one of a plurality of targets (signal generators) or a different one of a plurality of different detected radio signals” [Shattil ¶ 137 Examiner notes the processing a different one of a plurality of targets is considered processing a second target]. remote from the platform; “Sensors 101 can include Radar, LIDAR, acoustic sensors, infrared sensors, magnetic induction sensors, camera systems, and others. Sensors 101 can comprise any of various types of telemetry systems and remote sensing systems” [Shattil ¶ 34]. executing, via a first application program interface (API), a first algorithm “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. based on augments associated with the signals received from the first signal generator; “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. executing, via the API, a second algorithm “A virtualized sensor may be provided programmatically by configurations in an SDR instance implemented in software and assigned to a particular target, the SDR instance being configured to follow the target as it moves by adapting its selection of sensor platforms (e.g., antennas of the antenna systems 102 and/or 103) dynamically to enhance reception. In such an example, both the receiver system 112 and spatial processor 122 can be implemented programmatically for each target as part of the SDR instance…The SDR instance can be configured to comprise the exploit synthesizer's 124 functionality” [Shattil ¶ 35]. “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. based on augments associated with the signals received from the second signal generator, “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. Shattil fails to explicitly teach executing at least two algorithms on different but parallel threads of the execution thread pool at the same time comprises: executing, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool and executing, via the first API, a second algorithm in a second thread of the execution thread pool wherein the second thread operates in parallel with the first thread in the execution thread pool. However, Chandrasekaran teaches: executing at least two algorithms on different but parallel threads of the execution thread pool at the same time comprises: “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. execute, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. “As shown, the various devices may include one or more processing elements 802, a display 806, one or more memory components 808, a network interface 810, and external devices 812…” [Chandrasekaran Col. 17 Lines 43-46]. “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. execute, via the first API, “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. in a second thread of the execution thread pool “When the scheduler 434 receives an intensive task, the scheduler first determines available threads for execution of a new task. In FIG. 4, threads that are not available for execution of a new task are shown with a broken outline. Generally, when a thread is in use for a task, it cannot be assigned another task… In FIG. 4, both thread 442 and thread 437 are available for execution of a new task… In another example, with I/O intensive tasks, the scheduler 434 may allocate the task to a CPU with a free thread, with an aim to maintain computing resources available for processor intensive tasks.” [Chandrasekaran Col. 12 Lines 60-67, Fig. 4]. “In some implementations, the task may be assigned to the thread 442 for execution on the CPU 450 to leave the larger resources available on the CPU 448 available for other tasks. In other implementations, the task may be assigned to the thread 437 to execute on the CPU 448 to provide a buffer in case the estimation is incorrect” [Chandrasekaran Col. 13 Lines 3-9]. wherein the second thread operates in parallel with the first thread in the execution thread pool. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include executing at least two algorithms on different but parallel threads of the execution thread pool at the same time comprises: executing, via a first application program interface (API), a first algorithm in a first thread of the execution thread pool and executing, via the first API, a second algorithm in a second thread of the execution thread pool wherein the second thread operates in parallel with the first thread in the execution thread pool. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 12, Shattil in view of Chandrasekaran teaches the method of Claim 9, as referenced above. Shattil fails to teach further comprising: removing the first algorithm from the first thread; and inserting a third algorithm into the first thread to replace the first algorithm. However, Chandrasekaran further teaches further comprising: removing the first algorithm from the first thread; and inserting a third algorithm into the first thread to replace the first algorithm. “After the task is executed, the result is returned to a runtime environment for execution as a callback. The thread assigned to the task is then free to complete a new task and the utilization of the associated CPU is updated to reflect that the task is complete” [Chandrasekaran Col. 13 Lines 21-25]. “When a thread in the pool completes a task, it informs the main thread of completion, which in turns, wakes up and executes the registered callback. In this manner, the thread pool can automatically cater to further requests without blocking new similar requests coming in, until a threshold of CPU or I/0 resource availability has been reached In certain instances” [Chandrasekaran Col. 5 Lines 58-64]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include removing the first algorithm from the first thread; and inserting a third algorithm into the first thread to replace the first algorithm. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 16, Shattil in view of Chandrasekaran teaches the method of Claim 8, as referenced above. Shattil further teaches: further comprising: providing feedback to the active data storage in response to execution of the at least two algorithms “A response analyzer 206 may be provided to analyze a device's response (feedback) (e.g., via sensor data and/or via received radio transmissions from the target) to an exploit and communicate its analysis to the exploit adapter 207” [Shattil ¶ 37]. “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. and changing an augment in the active data storage in response to the feedback, “Using machine learning techniques, the mitigation engine 205 can apply different protocol-based exploits against a target, monitor the effects of each exploit, and then adapt exploits as needed” [Shattil ¶ 116]. wherein changing the augment is accomplished by inserting additional data into the augment that was produced during execution of the at least two algorithms “For example, a server might support several different authentication protocols in order to support a wide range of clients, including legacy clients. Some of the older protocols may have vulnerabilities that are easier to exploit. Some exploits can be adapted to take advantage of the limited command set of UAVs and the similarity of most UAV radio-control protocols.” [Shattil ¶ 119]. Shattil teaches concurrent processing to execute instances of algorithms. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time; execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time. However, Chandrasekaran teaches: execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time; “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time; execution of the at least two algorithms on different but parallel threads of the execution thread pool at the same time. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 17, Shattil teaches: A framework for asynchronous signal processing, the framework comprising: an active data storage “Advantageously, the present invention and its real time functionality described herein uniquely provide and enable the apparatus units to compare to historical data, to update data and/or information, and/or to provide more data and/or information on the open space, on the device that may be occupying the open space, and combinations, in the near real time compared with the historically scanned (15 min to 30 days) data, or historical database information” [Shattil ¶ 80]. including a first data storage and a second data storage, wherein the first data storage includes data signals “When an appropriate triggering event occurs, the monitoring process (i.e., signal detection) initiates an event containing the necessary information for downstream processing. This can provides prefiltering of the spectrum prior to particular types of analyses while storing the rest of the data for later analysis, such as low-power signal detection, including spread-spectrum signal types” [Shattil ¶ 42]. and the second data storage includes augments; “141. The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits (augments) from the exploit database 143 based on information received from the signal analyzer 114” [Shattil ¶ 36]. and the active data storage further including a trigger list “A triggering event can be based on comparing one or more measured signal attributes to a triggering threshold value. Attributes can represent a collection of measured signal characteristics that can also be used for filtering, matching, and organizing signal data” [Shattil ¶ 43]. “The classification database 115 (trigger list) comprises known radio signal types (e.g., modulation type and/or corresponding radio standard), their features (e.g., physical-layer features, frame format, control signal type, signaling behavior), and (optionally) devices that employ each radio signal type” [Shattil ¶ 31]. and a request handler; “The network manager 630 can provide a routing topology with sufficient bandwidth to enable the server 651 to access the databases 631 and 633, as well as communicate with other servers (e.g., servers 641 and 661)” [Shattil ¶ 143]. and an execution protocol, wherein the execution protocol is coupled with the active data storage; “A non-transitory computer readable storage medium including processor-executable code for storing instructions operable to:” [Shattil Claim 9]. and the execution protocol including a registered trigger, a trigger receiver, “Signal detection can be initiated by a triggering event, such as a sensor output indicating an incursion of a perimeter or area by a UAV. Signal detection systems can employ various sensor types, such as radar, acoustical, cameras, magnetic induction, and the like.” [Shattil ¶ 39]. “In some aspects, signal analyzer 114 monitors a device's response to a countermeasure. The response may be cross-referenced with the classification database 115, such as to aid in device identification. Thus, the response can be a feature of a particular radio protocol or device. In some cases, signal analyzer 114 logs the response to the classification database 115” [Shattil ¶ 30]. a data requester, and a data receiver; “In one aspect, signal features and/or protocol behavior features can be used to identify a specific radio protocol, such as a protocol indexed by corresponding features stored in a classification database. A query to the classification database might return one or more candidate radio protocols, such as one or more protocols that correspond to signal features in the query's criteria” [Shattil ¶ 70]. asynchronously execute two algorithms, respectively, based on the augments. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil teaches concurrent processing to execute instances of algorithms. “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. Shattil fails to explicitly teach and the execution protocol including an execution thread pool having at least two parallel threads, wherein the least two parallel threads asynchronously execute two algorithms. However, Chandrasekaran teaches: and the execution protocol including an execution thread pool having at least two parallel threads, “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors” [Chandrasekaran Col. 5 Lines 32-37]. “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. wherein the least two parallel threads asynchronously execute two algorithms “Relatedly, the processing elements may be configured to execute one or more instructions in parallel locally, and/or across the network, such as through cloud computing resources” [Chandrasekaran Col. 17 Lines 62-65]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include that the execution protocol including an execution thread pool having at least two parallel threads, wherein the least two parallel threads asynchronously execute two algorithms. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 19, Shattil in view of Chandrasekaran teaches the framework of Claim 17, as referenced above. Shattil further teaches further comprising: an identifier associated with each of the augments, wherein execution on at least one of the two algorithms is based, at least in part, on the identifier. “A classification (identifier) can include either or both a radio protocol classification and a device classification corresponding to the type of the remote-controlled vehicle…A mitigation engine 205 is responsive to the threat analyzer 204 and configured to produce exploits based on the radio protocol classification, a device classification, and/or the signal features” [Shattil ¶ 37]. With regard to claim 20, Shattil in view of Chandrasekaran teaches the framework of Claim 17, as referenced above. Shattil further teaches: further comprising: a persistent query “In Step 401, probing and network discovery are initiated. Any combination of active and passive probing can be employed. Active probing typically comprises sending probe requests in order to solicit a probe response, which can be used to identify access points. Active sniffing comprises injecting packets into the network that causes traffic to be sent to the attacker. Passive probing consists of sniffing network traffic” [Shattil ¶ 110]. coupled to the data requester. [Shattil ¶ 120]. “Authentication might include identification, and the threat analyzer 204 might validate a target's identity by comparing observations of the target with stored data about the target's type, its functional use, and its normal operating parameters” [Shattil ¶ 74]. Claims 3, 10, 11, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over Shattil (US 2017/0094527 A1) in view of Chandrasekaran (US 10,929,181 B1) in view of Govindhasamy (US 2023/0140573 A1). With regard to claim 3, Shattil in view of Chandrasekaran teaches the computer program product of Claim 2, as referenced above. Shattil fails to teach wherein the instructions further comprise: determine whether one of the threads in the execution thread pool is occupied by that thread executing an algorithm, and if that thread is occupied then executing, via another API, an algorithm in another thread that operates in parallel with the thread that is occupied; and buffer the received and retrieved augment data in the event that all of threads are occupied. However, Chandrasekaran further teaches: wherein the instructions further comprise: determine whether one of the threads in the execution thread pool is occupied by that thread executing an algorithm, “An identifying operation 706 identifies one or more processors in a plurality of processors associated with at least one thread free for execution of a task. Generally, the plurality of processors are each associated with one or more threads in a thread pool. When all of the threads associated with a particular processor are busy executing a task, the processor cannot be used to execute additional tasks until a thread associated with the processor completes a task” [Chandrasekaran Col. 16 Lines 60-67]. and if that thread is occupied then executing, via another API, an algorithm in another thread “When the scheduler 434 receives an intensive task, the scheduler first determines available threads for execution of a new task. In FIG. 4, threads that are not available for execution of a new task are shown with a broken outline. Generally, when a thread is in use for a task, it cannot be assigned another task. As such, when all threads associated with a CPU are busy, such as threads 444, 445, and 446, the associated CPU 452 does not have a thread free for execution of a new task, regardless of the utilization of the associated CPU 452. In FIG. 4, both thread 442 and thread 437 are available for execution of a new task… In another example, with I/O intensive tasks, the scheduler 434 may allocate the task to a CPU with a free thread, with an aim to maintain computing resources available for processor intensive tasks” [Chandrasekaran Col. 12 Lines 60-67, Fig. 4]. that operates in parallel with the thread that is occupied; “For example, as shown in FIG. 2, a CPU 248 is associated with threads 236 and 238, a CPU 250 is associated with threads 240 and 242, and a CPU 252 is associated with threads 244 and 246. In other implementations, the processor pool 208 may include fewer or more processors. Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 25-32]. and buffer the received and retrieved augment data in the event that all of threads are occupied. “This leaves threads associated with CPUs having more capacity to handle processor intensive tasks that may be queued for processing, such that each CPU is as fully utilized as possible. With this structure, the scheduler 234 is unlikely to have to wait for a free thread associated with a CPU with available capacity as processor intensive tasks come up in a queue for allocation” [Chandrasekaran Col. 9 Lines 54-60]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include wherein the instructions further comprise: determine whether one of the threads in the execution thread pool is occupied by that thread executing an algorithm, and if that thread is occupied then executing, via another API, an algorithm in another thread that operates in parallel with the thread that is occupied; and buffer the received and retrieved augment data in the event that all of threads are occupied. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. Shattil in view of Chandrasekaran Fails to explicitly teach executing, via another API, an algorithm. However, Govindhasamy teaches executing, via another API, an algorithm “In other words, the software stack of the software defined radio 126 may be malleable (e.g., via one or more APIs) to change the ways in which the satellite 104 communicates with other components of the system 100 such as the ground station 106, other satellites, and the like” [Govindhasamy ¶ 108]. Govindhasamy is considered to be analogous to the claimed invention because it is in the same field of multiprogram control arrangements. The functionality of Govindhasamy could be added to the software defined radios of Shattil such that during process scheduling they would be able to be made compatible with a larger diversity of processing threads. Therefore, it would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Govindhasamy and include executing, via another API, an algorithm. Doing so would allow for access to a further diversity of processing resources for each task. “The interfaces may enable one or more software layers or modules of the OS 214 to communicate with one another and/or enable the OS 214 to communicate with other modules within the command and control module 116” [Govindhasamy ¶ 118]. With regard to claim 10, Shattil in view of Chandrasekaran teaches the method of Claim 9, as referenced above. Shattil fails to teach further comprising: determining whether one of the threads in the execution thread pool is occupied by that thread executing another algorithm, and if that thread is occupied then executing, via another API, another algorithm in another thread that operates in parallel with the thread that is occupied. However, Chandrasekaran further teaches: further comprising: determining whether one of the threads in the execution thread pool is occupied by that thread executing another algorithm, “An identifying operation 706 identifies one or more processors in a plurality of processors associated with at least one thread free for execution of a task. Generally, the plurality of processors are each associated with one or more threads in a thread pool. When all of the threads associated with a particular processor are busy executing a task, the processor cannot be used to execute additional tasks until a thread associated with the processor completes a task” [Chandrasekaran Col. 16 Lines 60-67]. and if that thread is occupied then executing, via another API, another algorithm in another thread “When the scheduler 434 receives an intensive task, the scheduler first determines available threads for execution of a new task. In FIG. 4, threads that are not available for execution of a new task are shown with a broken outline. Generally, when a thread is in use for a task, it cannot be assigned another task. As such, when all threads associated with a CPU are busy, such as threads 444, 445, and 446, the associated CPU 452 does not have a thread free for execution of a new task, regardless of the utilization of the associated CPU 452. In FIG. 4, both thread 442 and thread 437 are available for execution of a new task… In another example, with I/O intensive tasks, the scheduler 434 may allocate the task to a CPU with a free thread, with an aim to maintain computing resources available for processor intensive tasks” [Chandrasekaran Col. 12 Lines 60-67, Fig. 4]. that operates in parallel with the thread that is occupied. “For example, as shown in FIG. 2, a CPU 248 is associated with threads 236 and 238, a CPU 250 is associated with threads 240 and 242, and a CPU 252 is associated with threads 244 and 246. In other implementations, the processor pool 208 may include fewer or more processors. Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 25-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include determining whether one of the threads in the execution thread pool is occupied by that thread executing another algorithm, and if that thread is occupied then executing, via another API, another algorithm in another thread that operates in parallel with the thread that is occupied. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. Shattil in view of Chandrasekaran Fails to explicitly teach executing, via another API, another algorithm. However, Govindhasamy teaches executing, via another API, another algorithm “In other words, the software stack of the software defined radio 126 may be malleable (e.g., via one or more APIs) to change the ways in which the satellite 104 communicates with other components of the system 100 such as the ground station 106, other satellites, and the like” [Govindhasamy ¶ 108]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Govindhasamy and include executing, via another API, another algorithm. Doing so would allow for access to a further diversity of processing resources for each task. “The interfaces may enable one or more software layers or modules of the OS 214 to communicate with one another and/or enable the OS 214 to communicate with other modules within the command and control module 116” [Govindhasamy ¶ 118]. With regard to claim 11, Shattil in view of Chandrasekaran in view of Govindhasamy teaches the method of Claim 10, as referenced above. Shattil fails to teach further comprising: buffering the received and retrieved augment data in the event that all of threads are occupied. However, Chandrasekaran further teaches: further comprising: buffering the received and retrieved augment data in the event that all of threads are occupied. “This leaves threads associated with CPUs having more capacity to handle processor intensive tasks that may be queued for processing, such that each CPU is as fully utilized as possible. With this structure, the scheduler 234 is unlikely to have to wait for a free thread associated with a CPU with available capacity as processor intensive tasks come up in a queue for allocation” [Chandrasekaran Col. 9 Lines 54-60]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include buffering the received and retrieved augment data in the event that all of threads are occupied. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. With regard to claim 18, Shattil in view of Chandrasekaran teaches the framework of Claim 17, as referenced above. Shattil further teaches: executing a first algorithm … based on augments associated with signals received from a first signal generator located remote from a platform, “In some aspects, system 142 can process exploits for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36]. “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. execute, via the first API, “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. wherein the active data storage is on the platform; “Antenna systems 102 and/or 103 can comprise any combination of terrestrial and airborne platforms” [Shattil ¶ 26]. “In some aspects, local signal processing can be performed by the antenna system 102 and/or 103.” [Shattil ¶ 28]. executing a second algorithm “A virtualized sensor may be provided programmatically by configurations in an SDR instance implemented in software and assigned to a particular target, the SDR instance being configured to follow the target as it moves by adapting its selection of sensor platforms (e.g., antennas of the antenna systems 102 and/or 103) dynamically to enhance reception. In such an example, both the receiver system 112 and spatial processor 122 can be implemented programmatically for each target as part of the SDR instance…The SDR instance can be configured to comprise the exploit synthesizer's 124 functionality” [Shattil ¶ 35]. “In some aspects, system 142 can process exploits (augments) for multiple targets concurrently. In some aspects, system 142 can process multiple exploits concurrently for the same target and cause those exploits to be deployed concurrently” [Shattil ¶ 36 Examiner notes the exploit selection and processing of a different one of the plurality of targets is considered executing a second algorithm]. … based on augments associated with signals received from a second signal generator located remote from the platform. “The countermeasure system 142 constructs an exploit or a sequence of exploits (which can be referred to as an exploit strategy) by retrieving exploits from the exploit database 143 based on information received from the signal analyzer 114. In some cases, system 142 relies only on sensor data (e.g., from sensor data processor 111) and executes an exploit strategy until a transmission received from the target can be processed by the signal analyzer 114 to classify the signal and/or device. When the target's radio system and identity are known, a corresponding exploit in the database 143 is selected” [Shattil ¶ 36]. Shattil fails to teach further comprising: a first application program interface (API) for executing a first algorithm in a first thread that is one of the at least two parallel threads of the execution thread pool and a second thread that is one of the least two parallel threads of the execution thread pool. However, Chandrasekaran further teaches: further comprising: a first application program interface (API) for executing a first algorithm “The scheduler allocates a task to a thread within the multithreader execution pool. The threads within the execution pool are associated with one of a plurality of processors. The scheduler allocates tasks to a thread based on the current utilization of the processors in the plurality of processors with free threads and the computational intensity of the task” [Chandrasekaran Col. 5 Lines 32-37]. “As shown, the various devices may include one or more processing elements 802, a display 806, one or more memory components 808, a network interface 810, and external devices 812…” [Chandrasekaran Col. 17 Lines 43-46]. “In some embodiments, the network interface may also include various modules, such as an API that interfaces and translates requests across the network to the specific local computing elements for the various computing devices 114, 116, 118, 120” [Chandrasekaran Col. 18 Lines 31-35, Fig. 8]. in a first thread that is one of the at least two parallel threads of the execution thread pool “Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 29-32]. a second thread that is one of the least two parallel threads of the execution thread pool. “For example, as shown in FIG. 2, a CPU 248 is associated with threads 236 and 238, a CPU 250 is associated with threads 240 and 242, and a CPU 252 is associated with threads 244 and 246. In other implementations, the processor pool 208 may include fewer or more processors. Further, the processors in the processor pool may be associated with fewer or more threads, depending on how the processor is configured to handle tasks in parallel” [Chandrasekaran Col. 9 Lines 25-32]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil to incorporate the teachings of Chandrasekaran and include further comprising: a first application program interface (API) for executing a first algorithm in a first thread that is one of the at least two parallel threads of the execution thread pool and a second thread that is one of the least two parallel threads of the execution thread pool. Doing so would allow for improved resource utilization operation speed. “In this manner, the resource based multithreading module acts to both horizontally and vertically scale applications, helping to maximize utilization of compute resources and schedule tasks, allowing commands to be executed faster on fewer resources and/or improve responsiveness for commands with the same resources as compared to conventional thread approaches” [Chandrasekaran Col. 5 Lines 44-50]. Shattil in view of Chandrasekaran Fails to explicitly teach a second API for executing a second algorithm. However, Govindhasamy teaches a second API for executing a second algorithm “In other words, the software stack of the software defined radio 126 may be malleable (e.g., via one or more APIs) to change the ways in which the satellite 104 communicates with other components of the system 100 such as the ground station 106, other satellites, and the like” [Govindhasamy ¶ 108]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Govindhasamy and include a second API for executing a second algorithm. Doing so would allow for access to a further diversity of processing resources for each task. “The interfaces may enable one or more software layers or modules of the OS 214 to communicate with one another and/or enable the OS 214 to communicate with other modules within the command and control module 116” [Govindhasamy ¶ 118]. Claims 4 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Shattil (US 2017/0094527 A1) in view of Chandrasekaran (US 10,929,181 B1) in view of Ganesh (US 2020/0012511 A1). With regard to claim 4, Shattil in view of Chandrasekaran teaches the computer program product of Claim 1, as referenced above. Shattil further teaches wherein the instructions further comprise retrieve the augment based on an identifier; “A classification (identifier) can include either or both a radio protocol classification and a device classification corresponding to the type of the remote-controlled vehicle…A mitigation engine 205 is responsive to the threat analyzer 204 and configured to produce exploits based on the radio protocol classification, a device classification, and/or the signal features” [Shattil ¶ 37]. Shattil in view of Chandrasekaran Fails to explicitly teach and provide only the identifier and the augment to a first application program interface (API) for executing a first algorithm. However, Ganesh teaches and provide only the identifier and the augment to a first application program interface (API) for executing a first algorithm. “As shown in this explanatory example, host OS framework 525 comprises, inter alia, a suite of application programming interfaces for building applications, as well as services for initiating and managing interactions between applications and the kernel layer 520. As shown in the non-limiting example of FIG. 5, host OS framework 525 comprises one or more name space tools (NST) 530, as well one or more APIs 535 for receiving and passing sensor events to processes of the host OS” [Ganesh ¶ 88]. Ganesh is considered to be analogous to the claimed invention because it is in the same field of control arrangements for interprogram communication. Therefore, it would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Ganesh and include provide only the identifier and the augment to a first application program interface (API) for executing a first algorithm. Doing so would allow for communication between different operating systems. “Guest-to-host ("G2H") hybrid applications 550 comprise applications running under the guest OS within guest OS container 510, but which are able, by communicating over secure command and control channel 505 through a system daemon provided by guest side SDK 545, to access host OS resources, for example, sensors, TrustZone processing resources and a device camera, through these resources' API 535” [Ganesh ¶ 92]. With regard to claim 13, Shattil in view of Chandrasekaran teaches the method of Claim 8, as referenced above. Shattil further teaches further comprising: retrieving the augment based on an identifier; “A classification (identifier) can include either or both a radio protocol classification and a device classification corresponding to the type of the remote-controlled vehicle…A mitigation engine 205 is responsive to the threat analyzer 204 and configured to produce exploits based on the radio protocol classification, a device classification, and/or the signal features” [Shattil ¶ 37]. Shattil in view of Chandrasekaran Fails to explicitly teach and providing only the identifier and the augment to a first application program interface (API) for executing a first algorithm. However, Ganesh teaches and providing only the identifier and the augment to a first application program interface (API) for executing a first algorithm. “As shown in this explanatory example, host OS framework 525 comprises, inter alia, a suite of application programming interfaces for building applications, as well as services for initiating and managing interactions between applications and the kernel layer 520. As shown in the non-limiting example of FIG. 5, host OS framework 525 comprises one or more name space tools (NST) 530, as well one or more APIs 535 for receiving and passing sensor events to processes of the host OS” [Ganesh ¶ 88]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Ganesh and include and providing only the identifier and the augment to a first application program interface (API) for executing a first algorithm. Doing so would allow for communication between different operating systems. “Guest-to-host ("G2H") hybrid applications 550 comprise applications running under the guest OS within guest OS container 510, but which are able, by communicating over secure command and control channel 505 through a system daemon provided by guest side SDK 545, to access host OS resources, for example, sensors, TrustZone processing resources and a device camera, through these resources' API 535” [Ganesh ¶ 92]. Claims 5, 6, 14, and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Shattil (US 2017 /0094527 A1) in view of Chandrasekaran (US 10,929,181 B1) in view of Aleti (US 10,942,774 B1). With regard to claim 5, Shattil in view of Chandrasekaran teaches the computer program product of Claim 1, as referenced above. Shattil further teaches: wherein the instructions further comprise: query the augment data in the active data storage via persistent queries “In Step 401, probing and network discovery are initiated. Any combination of active and passive probing can be employed. Active probing typically comprises sending probe requests in order to solicit a probe response, which can be used to identify access points. Active sniffing comprises injecting packets into the network that causes traffic to be sent to the attacker. Passive probing consists of sniffing network traffic” [Shattil ¶ 110]. and compare queried augment data with the retrieved augment data associated with the trigger. “Exploit adaptation 207 can be an iterative process of interrogating a device, gathering information about the device via its responses, and further tailoring the exploit(s)” [Shattil ¶ 120]. “Authentication might include identification, and the threat analyzer 204 might validate a target's identity by comparing observations of the target with stored data about the target's type, its functional use, and its normal operating parameters” [Shattil ¶ 74]. Shattil in view of Chandrasekaran Fails to explicitly teach persistent queries that are asynchronous to the registered trigger. However, Aleti teaches persistent queries that are asynchronous to the registered trigger; “A periodic query can be initiated by a user or can be scheduled to occur automatically at specific time intervals” [Aleti Col. 17 Lines 25-27]. “Note that correlation searches can be run continuously or at regular intervals (e.g., every hour) to search 65 for notable events” [Aleti Col. 19 Lines 64-66]. Aleti is considered to be analogous to the claimed invention because it is in the same field of multiprogram control arrangements. Therefore, it would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Aleti and include persistent queries that are asynchronous to the registered trigger. Doing so would allow for consistent monitoring of the system performance beneficial for evaluation. “Upon obtaining network performance data indicating performance of the network, the network performance data can be transmitted to a data intake and query system 108 for analysis” [Aleti Col. 9 Lines 26-29]. With regard to claim 6, Shattil in view of Chandrasekaran in view of Aleti teaches the computer program product of Claim 5, as referenced above. Shattil in view of Chandrasekaran Fails to teach wherein the instructions further comprise: schedule the persistent queries to query data in the active data storage at regular intervals; and maintain a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. However, Aleti teaches: wherein the instructions further comprise: schedule the persistent queries to query data in the active data storage at regular intervals; “A periodic query can be initiated by a user or can be scheduled to occur automatically at specific time intervals” [Aleti Col. 17 Lines 25-27]. “Note that correlation searches can be run continuously or at regular intervals (e.g., every hour) to search 65 for notable events” [Aleti Col. 19 Lines 64-66]. and maintain a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. “Specifically, each component and/or replica of the data intake and query system may have a local copy of the workload pools. The local copy is referred to as the local workload pools (e.g., local workload pools 1408) The component uses the local copy to process requests. In other words, enforcement of the requests in workload pools is performed independently and locally by the components of the data intake and query system in one or more embodiments” [Aleti Col. 36 Lines 11-19]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Aleti and include wherein the instructions further comprise: schedule the persistent queries to query data in the active data storage at regular intervals; and maintain a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. Doing so would allow for consistent monitoring of the system performance beneficial for evaluation. “Upon obtaining network performance data indicating performance of the network, the network performance data can be transmitted to a data intake and query system 108 for analysis” [Aleti Col. 9 Lines 26-29]. With regard to claim 14, Shattil in view of Chandrasekaran teaches the method of Claim 8, as referenced above. Shattil further teaches: further comprising: querying the augment data in the active data storage via persistent queries “In Step 401, probing and network discovery are initiated. Any combination of active and passive probing can be employed. Active probing typically comprises sending probe requests in order to solicit a probe response, which can be used to identify access points. Active sniffing comprises injecting packets into the network that causes traffic to be sent to the attacker. Passive probing consists of sniffing network traffic” [Shattil ¶ 110]. and comparing queried augment data with the retrieved augment data associated with the trigger. “Exploit adaptation 207 can be an iterative process of interrogating a device, gathering information about the device via its responses, and further tailoring the exploit(s)” [Shattil ¶ 120]. “Authentication might include identification, and the threat analyzer 204 might validate a target's identity by comparing observations of the target with stored data about the target's type, its functional use, and its normal operating parameters” [Shattil ¶ 74]. Shattil in view of Chandrasekaran Fails to explicitly teach persistent queries that are asynchronous to the registered trigger. However, Aleti teaches persistent queries that are asynchronous to the registered trigger; “A periodic query can be initiated by a user or can be scheduled to occur automatically at specific time intervals” [Aleti Col. 17 Lines 25-27]. “Note that correlation searches can be run continuously or at regular intervals (e.g., every hour) to search 65 for notable events” [Aleti Col. 19 Lines 64-66]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Aleti and include persistent queries that are asynchronous to the registered trigger. Doing so would allow for consistent monitoring of the system performance beneficial for evaluation. “Upon obtaining network performance data indicating performance of the network, the network performance data can be transmitted to a data intake and query system 108 for analysis” [Aleti Col. 9 Lines 26-29]. With regard to claim 15, Shattil in view of Chandrasekaran in view of Aleti teaches the method of Claim 14, as referenced above. Shattil in view of Chandrasekaran Fails to teach further comprising: scheduling the persistent queries to query the augment data in the active data storage at regular intervals; maintaining a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. However, Aleti teaches: further comprising: scheduling the persistent queries to query the augment data in the active data storage at regular intervals; “A periodic query can be initiated by a user or can be scheduled to occur automatically at specific time intervals” [Aleti Col. 17 Lines 25-27]. “Note that correlation searches can be run continuously or at regular intervals (e.g., every hour) to search 65 for notable events” [Aleti Col. 19 Lines 64-66]. maintaining a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. “Specifically, each component and/or replica of the data intake and query system may have a local copy of the workload pools. The local copy is referred to as the local workload pools (e.g., local workload pools 1408) The component uses the local copy to process requests. In other words, enforcement of the requests in workload pools is performed independently and locally by the components of the data intake and query system in one or more embodiments” [Aleti Col. 36 Lines 11-19]. It would be obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified Shattil in view of Chandrasekaran to incorporate the teachings of Aleti and include scheduling the persistent queries to query the augment data in the active data storage at regular intervals; maintaining a local copy of data in the active data storage so that the persistent queries do not need to constantly poll the active data storage. Doing so would allow for consistent monitoring of the system performance beneficial for evaluation. “Upon obtaining network performance data indicating performance of the network, the network performance data can be transmitted to a data intake and query system 108 for analysis” [Aleti Col. 9 Lines 26-29]. Response to Arguments Applicant's arguments filed 1 have been fully considered but they are not persuasive. Applicant argues in substance: I. The Office treats the features of Parent Claims 1 and 2 as “additional elements” without consideration of how these alleged additional elements interact with each other to place meaningful limits on the overall claim. Accordingly, when the Office considers Claim 3 outside of the context of its parent claim, it loses the context in which the claim operates. Without this context, the Office is unable to determine whether the alleged mental process is integral to the claim itself. To avoid this error, the Office is instructed to at least “[determine] whether a claim represents an improvement to the function of a compute or other technology….” MPEP, §2106.04(d)(1). Such a determination is based on the teachings of Applicant’s Specification. Id. The Specification establishes that Claims 3, 10, and 11 all address inefficiencies due to thread-contention, task scheduling, and routing threads while losslessly buffering data. Specification, Para. [0004]-[0007]. Claims 5, 6, 14, and 15 similarly improve latency and bandwidth issues. Specification, Para. [0026], [0040], [0043]. Because Claim 3 depends on Claim 1 and because Claim 1 establishes a clear improvement on the execution of multithreaded processes, Claim 3 represents an improvement to the function of computers. As such, even if Claims 3, 5, 6, 10, 11, 14, and 15 recite mental processes, these alleged mental processes are integral to the claims and, therefore, eligible for patent protection. a) Examiner respectfully disagrees. As detailed in the rejection above, all claims rejected under U.S.C. 101 are considered alongside the claims from which they depend. The claims 3, 5, 6, 10, 11, 14, and 15 along with the claims from which they depend do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the recited 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, field of use/technological environment, generically using the computer as a tool to perform the abstract idea, and insignificant extra solution activity which fail to integrate the judicial exception of claims 3, 5, 6, 10, 11, 14, and 15 into a practical application. Further, the claims 3, 5, 6, 10, 11, 14, and 15 do not amount to significantly more than the judicial exception. It is not clear from the claim language that the improvements argued by Applicant are realized. In response to applicant's argument that the claims represent an improvement to the function of a computer or other technology, it is noted that although the claims are interpreted in light of the specification, limitations from the specification are not read into the claims. See In re Van Geuns, 988 F.2d 1181, 26 USPQ2d 1057 (Fed. Cir. 1993). Applicants’ arguments state “Claims 3, 10, and 11 all address inefficiencies due to thread-contention, task scheduling, and routing threads while losslessly buffering data” and “Claim 1 establishes a clear improvement on the execution of multithreaded processes”; however, it is not clear what specific inefficiencies and improvements are being referenced. Further, when reviewed under U.S.C. 101, as detailed in the rejection above, the additional elements of the rejected claims, alone or in combination, do not amount to significantly more than the judicial exception. Claims 5, 6, 14, and 15 include limitations describing data querying and comparing data, but do not further address these queries or comparisons. The comparisons and scheduling of queries are mere mental processes which do not represent improvements to computer functionality or other technology. “… it is important to keep in mind that an improvement in the abstract idea itself (e.g. a recited fundamental economic concept) is not an improvement in technology. For example, in Trading Technologies Int’l v. IBG, 921 F.3d 1084, 1093-94, 2019 USPQ2d 138290 (Fed. Cir. 2019), the court determined that the claimed user interface simply provided a trader with more information to facilitate market trades, which improved the business process of market trading but did not improve computers or technology” [MPEP § 2106.05(a) II]. Overall, it is unclear how latency or bandwidth issues would be improved through the implementation of claims 5, 6, 14, and 15 as written. The arguments have been considered but were not found persuasive. II. Applicant’s Independent Claims require a specific four-stage chain that the art does not teach. Each independent claim recites a coordinated, data-driven, four-stage chain that is both structural and functional, such that they require (1) a registered trigger defined at the execution protocol; (2) the trigger is stored in a trigger list that resides inside the active data storage (ADS); (3) upon detecting that the registered trigger “changed,” the system automatically retrieves augment data from the ADS; and (4) the execution protocol then provides an explicit indication to an execution thread pool that the retrieved augment data is ready, after which parallel algorithm execution commences. The cited references, however, neither disclose nor suggest these four elements working together. For example, Shattil lacks registered triggers stored as software objects in a database trigger list and lacks the change-driven augment retrieval/signaling chain. Instead, Shattil’s “triggering event” is mere threshold logic in a signal detector pipeline, not a registered trigger object stored in a database trigger list. See Shattil, Para. [0043] (indicating that the hard-wired attribute/threshold logic is tied to signal detection; it is not a software-registered trigger that is inserted into, stored in, or dynamically manipulated by a trigger list in a data store). Further, Shattil does not teach augments or any explicit “indication” to a separate execution thread pool that retrieved augment data is ready. Instead, Shattil uses a radio-signal processing and countermeasure pipeline (signal detection, feature extraction, classification, threat analysis, mitigation). It neither stores nor operates on “augments” as long-term structured entities; nor does it signal an external “execution thread pool” that retrieved augment data is “ready for execution.” a) Examiner respectfully disagrees. In response to applicant's argument that the references fail to show certain features of the invention, it is noted that the features upon which applicant relies (i.e., “a coordinated, data-driven, four-stage chain that is both structural and functional” and “operates on “augments” as long-term structured entities”) are not recited in the rejected claim(s). Although the claims are interpreted in light of the specification, limitations from the specification are not read into the claims. See In re Van Geuns, 988 F.2d 1181, 26 USPQ2d 1057 (Fed. Cir. 1993). Further, Shattil teaches register a trigger there is a registering of a classification of signal data which is used as a trigger [Shattil ¶ 30]. and transmitting the registered trigger to a trigger list in the active data storage, the classification database of Shattil is used to store signal classifications which are utilized to trigger exploit actions [Shattil ¶ 36, 43]. wherein the trigger is associated with an augment stored in a database in the active data storage, based on the classification, a corresponding exploit is selected, the exploits are stored in a database [Shattil ¶ 36]. It is unclear what distinction applicant finds between the claimed augments and the exploits of Shattil, these exploits fulfill the functionality as claimed and thus are considered augments. retrieve augment data from the active data storage in response to the trigger changing; the signals of Shattil are monitored over time [Shattil ¶ 47] and upon the classification based on these signals, exploits are triggered [Shattil ¶ 36]. There is currently no clarity within the claim as to how the trigger is changed, the change in state from not yet triggered to actively triggered is one such change. In Shattil, this change occurs once a classification is made. Further, Shattil teaches the execution of a corresponding augment after a classification is made [Shattil ¶ 36, 129], an indication that the augment is ready for execution is provided through the transmission of data to a server tasked with performing mitigation [Shattil ¶ 143-144]. However, Shattil was not cited in the rejection to teach the execution thread pool. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). The arguments have been considered but were not found persuasive. III. Chandrasekaran is similarly deficient in that it teaches a scheduler pulling tasks from a task queue and returning results to a callback queue, but contains no notion of registered triggers, trigger lists inside a database, augments, or any change-driven data signaling to an execution thread pool. a) Examiner respectfully disagrees. In response to applicant's arguments against the references individually, one cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. See In re Keller, 642 F.2d 413, 208 USPQ 871 (CCPA 1981); In re Merck & Co., 800 F.2d 1091, 231 USPQ 375 (Fed. Cir. 1986). The majority of the referenced limitations are taught by Shattil as detailed in the rejection above. Further, Chandrasekaran teaches providing an indication to an execution thread pool that data is ready for execution [Chandrasekaran Col. 5]. The arguments have been considered but are not found to be persuasive. IV. Additionally, even if Shattil and Chandrasekaran disclosed these elements, no rational combination of these references yields the claimed four-stage chain without improper hindsight. a) Examiner respectfully disagrees. In response to applicant's argument that the examiner's conclusion of obviousness is based upon improper hindsight reasoning, it must be recognized that any judgment on obviousness is in a sense necessarily a reconstruction based upon hindsight reasoning. But so long as it takes into account only knowledge which was within the level of ordinary skill at the time the claimed invention was made, and does not include knowledge gleaned only from the applicant's disclosure, such a reconstruction is proper. See In re McLaughlin, 443 F.2d 1392, 170 USPQ 209 (CCPA 1971). As detailed in the rejection above, a person of ordinary skill in the art would be motivated to combine Shattil with the teachings of Chandrasekaran in order to improve resource utilization and operation speed through multithreading. This motivation is found in Chandrasekaran [Chandrasekaran Col. 5 Lines 44-50] and is not gleaned from applicants’ disclosure. The arguments have been considered but are not found to be persuasive. Conclusion 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. Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application. When responding to this Office Action, Applicant is advised to clearly point out the patentable novelty which he or she thinks the claims present, in view of the state of the art disclosed by the references cited or the objections made. He or she must also show how the amendments avoid such references or objections. See 37 CFR 1.111(c). Any inquiry concerning this communication or earlier communications from the examiner should be directed to ARI F RIGGINS whose telephone number is (571)272-2772. The examiner can normally be reached Monday-Friday 7:00AM-4:30PM. 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. /A.F.R./Examiner, Art Unit 2197 /BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

Dec 13, 2022
Application Filed
Jun 28, 2025
Non-Final Rejection — §101, §103, §112
Nov 03, 2025
Response Filed
Feb 17, 2026
Final Rejection — §101, §103, §112 (current)

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
0%
Grant Probability
0%
With Interview (+0.0%)
3y 3m
Median Time to Grant
Moderate
PTA Risk
Based on 1 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