Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to application filed on 06/23/2026, in which claims 1-12 are presented for further examination.
Response to Arguments
Applicant's arguments filed on 6/23/2026 have been fully considered but they are not persuasive. [See Remarks].
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-12 are rejected under 35 USC 103(a) as being unpatentable over KALABE et al. (US 20230080220 A1) (hereinafter KALABE) in view of Chen et al. (US 20230403306 A1) (hereinafter Chen).
As per claims 1, 5 and 9, KLABE discloses a plurality of processing nodes, wherein at least one processing node of the plurality of processing nodes [Client device 105a and 105b] is configured to: receive a user-defined function (“UDF”) prior to installation [UDF compiler 126 can receive the UDF at some point prior to execution of a database query that calls the UDF, prior to (and/or separate from) database runtime, paragraph 45]; scan source code of the user-defined function [In order to achieve safety during the compilation step, a ban list of modules can be maintained and the UDF code can be scanned before the compilation, paragraph 22]. However KLABE does not disclose in response to identification of at least one of a plurality of predetermined conditions in the user-defined function during the scan; require that the UDF is executed at a secure server outside of the plurality of processing nodes, wherein the at least one of a plurality of conditions is associated with unauthorized content of the UDF. On the other hand, Chen discloses in response to identification of at least one of a plurality of predetermined conditions in the user-defined function during the scan, require that the UDF is executed at a secure server outside of the plurality of processing nodes, wherein the at least one of a plurality of conditions is associated with unauthorized content of the UDF [permissions stored in the security manager policies 420 and/or sandbox policies 422, paragraph 73, it is understood that the permissions and policies are interpreted as predetermined conditions], require that the UDF is executed at a secure server outside of the plurality of processing nodes, wherein the at least one of a plurality of conditions is associated with unauthorized content of the UDF [the security manager 416 is implemented as a security manager object that allows an application to implement a security policy such as a security manager policies 420 and enables the application to determine, before performing a possibly unsafe or sensitive operation, what the operation is and whether it is being attempted in a security context that allows the operation to be performed. The security manager policies 420 can be implemented as a file with permissions that the UDF server 406 is granted. The UDF server 406 therefore can allow or disallow the operation based at least in part on the security policy, paragraph 80 (It is understood that Chen teaches evaluating a UDF against predefined security conditions using the security manager and security manager policies, where disallowed operations correspond to conditions associated with unauthorized content of the UDF. In response, Chen enforces execution within a sandboxed environment (e.g., UDF server 406), which is logically isolated and operates under restricted permissions. This sandbox constitutes a secure server separate from the plurality of processing nodes, as it isolates execution of UDFs containing unauthorized content from the normal processing environment. Accordingly, Chen teaches requiring execution of the UDF at a secure server outside the processing nodes based on identified unauthorized conditions)]. One of ordinary skill in the art would have been motivated to use Kalabe’s separately operating and isolated UDF execution environment for UDFs identified during Kalabe’s pre-execution scan as containing prohibited or unauthorized content, consistent with Chen’s security-policy teachings, because doing so would predictably reduce the risk that untrusted UDF code could access unauthorized resources or interfere with the ordinary database processing nodes while still permitting controlled execution of the UDF. Kalabe itself recognizes security advantages from moving UDF execution to separate processes and containers, while Chen teaches restricting unsafe or unauthorized UDF operations based on predetermined security policies. The proposed modification therefore would have been a predictable use of known security-isolation techniques to improve the security of UDF execution.
As per claims 2, 6 and 10, KALABE discloses wherein the at least one processing node is further configured to, in response to absence of the plurality of predetermined conditions, direct the UDF to be executed by one or more of the plurality of processing nodes [receiving, from an interface, a database query that invokes a UDF defined in an interpreted programming language. For example, one or more components of the database system 102, such as query interpreter 124, in conjunction with one or more processors, a memory 120 storing instructions for executing on a processor and/or related data, etc., may receive, from the interface, the database query that invokes the UDF defined in the interpreted programming language, Paragraph 46].
As per claims 3, 7 and 11, KALABE discloses wherein the plurality of predetermined conditions comprises operating system level calls, access check of non-permissible directories, and existence of source code that causes corruption or deletion of files or directories [external code where importing external libraries in the UDFs may be possible to benefit from the wide range of available modules to use in generating UDFs (e.g., available Python modules). Another example of such challenges may include typing where an operator can manage differences between the strictly-typed database system and the weakly-typed UDF code. Another example of such challenges may include safety where the system can be secured from unauthorized access over, or via, the UDFs, paragraph 18].
As per claims 4, 8 and 12, Chen discloses wherein the at least one processing node is configured to identify a corrective action for the UDF that is executed at the secure server outside of the plurality of processing nodes [the UDF server 406 executes within a sandbox process 414 as more fully described below. In some examples, the UDF server 406 is implemented in Python interpreted by an interpreter process, paragraph 78].
Remakes
Applicant argues that Chen fails to disclose requiring execution of a UDF at a “secure server outside of the plurality of processing nodes” because Chen’s sandbox process 414 and UDF server 406 are instantiated within execution node 424. Applicant further contends that Chen merely provides a universal sandbox environment for UDF execution rather than a conditional execution path that is selected in response to identifying unauthorized content during a scan. The Examiner respectfully disagrees.
First, Applicant’s arguments do not address the teachings of Kalabe as a whole and, in particular, Kalabe’s express disclosure of executing UDFs separately from the ordinary database processing workers. Kalabe paragraph [0032] teaches that, rather than executing the UDF directly within the database workers, “UDF engines that run as processes separately from the actual database workers can be used.” Kalabe further explains that these separate UDF engines initiate their own UDF environments, which are isolated from the database workers by process semantics. Kalabe additionally teaches that the database workers and UDF engines may be scaled independently and communicate through point-to-point socket connections. Thus, Kalabe expressly contemplates an architecture in which the components performing ordinary database processing and the components executing the UDF are separately operating execution environments.
Kalabe paragraph [0032] further characterizes this arrangement as a “remote UDF” approach and expressly recognizes a security benefit resulting from moving UDF execution to separate processes, stating that such separation provides possibilities for improving the security of UDF execution, for example, by running the UDF engines in containers. Accordingly, Kalabe does not merely disclose conventional execution of UDFs within the same processing environment. Rather, Kalabe expressly teaches separating UDF execution from the actual database workers and isolating such UDF execution in a distinct environment for, inter alia, improved security.
Therefore, when the database workers of Kalabe are considered as corresponding to the claimed plurality of processing nodes, Kalabe teaches or at least suggests execution of the UDF in a separately operating, isolated UDF execution environment outside the ordinary database-worker processing environment. Applicant’s argument directed solely to the physical location of Chen’s sandbox therefore does not overcome the rejection because the rejection is based upon the combined teachings of Kalabe and Chen, and obviousness does not require that the secondary reference be bodily incorporated into the precise architecture illustrated by that reference. Rather, the relevant inquiry is what the combined teachings would have suggested to one of ordinary skill in the art.
Chen is relied upon additionally for teaching security policies or predetermined security criteria used to determine whether a UDF operation is unauthorized, unsafe, or otherwise impermissible. As previously discussed, Chen’s security manager 416 applies security manager policies 420 to determine, prior to performing a potentially unsafe or sensitive operation, whether the operation is permitted in the applicable security context. An operation that is not permitted under the security policy is accordingly treated as unauthorized and subjected to restricted execution. Thus, Chen teaches evaluating UDF activity against predetermined security conditions associated with unauthorized or unsafe content or operations and restricting execution based upon those conditions.
Kalabe, in turn, expressly teaches scanning UDF code before compilation against prohibited content. Thus, Kalabe supplies the claimed pre-execution scanning of the UDF source code, while Chen teaches the use of predetermined security conditions for identifying unauthorized UDF behavior and applying an isolated execution treatment based upon such security concerns. Kalabe further provides the separately operating UDF execution architecture discussed above.
One of ordinary skill in the art, therefore, would have found it obvious to use the result of Kalabe’s pre-execution UDF scan to determine whether a UDF containing prohibited or unauthorized content should be executed using Kalabe’s separately operating and isolated UDF execution environment in accordance with the security-policy teachings of Chen. Such a modification would have predictably prevented potentially unsafe or unauthorized UDF code from executing in the ordinary database-worker environment while allowing the UDF to execute in a controlled and isolated environment. The modification therefore represents the application of a known security-isolation technique to Kalabe’s known UDF scanning and remote-execution architecture for the predictable purpose of improving execution security.
Applicant further argues that Chen cannot satisfy the claimed limitation because Chen allegedly executes all UDFs within the sandbox and therefore fails to provide two different execution paths depending upon whether unauthorized content is detected. This argument is not commensurate with the scope of claim 1.
Claim 1 does not require two mutually exclusive execution paths. Specifically, claim 1 does not recite that, when no predetermined condition is identified, the UDF must execute within the plurality of processing nodes. Nor does claim 1 require that the secure server be used exclusively for UDFs containing unauthorized content. Rather, claim 1 recites that “in response to identification of at least one of a plurality of predetermined conditions” associated with unauthorized content, execution at the secure server is required. Applicant’s reliance upon additional subject matter of another claim to characterize claim 1 as necessarily requiring a binary architecture—one path for trusted UDFs and another path for untrusted UDFs—would import limitations into claim 1 that are not recited therein.
Moreover, Applicant’s argument that Chen itself must disclose the entire claimed scan-and-route sequence misconstrues the basis of the rejection. The rejection under 35 U.S.C. §103 is based upon the collective teachings of Kalabe and Chen, not upon Chen individually satisfying each disputed limitation. Kalabe teaches scanning UDF source code prior to execution for prohibited content and separately executing UDFs using remote and isolated UDF engines. Chen teaches determining whether UDF activity implicates predetermined security restrictions and controlling execution based upon such security determinations. The combined teachings would have suggested using Kalabe’s scan result identifying prohibited content as the condition for employing the isolated UDF execution technique taught or suggested by the references.
The Examiner further notes that an obviousness rejection does not require the proposed combination to preserve the precise physical arrangement of every component shown in the individual references. Rather, the claimed arrangement would have been suggested by the references to one of ordinary skill in the art. Here, there is a reasoned basis for the proposed combination. Kalabe expressly recognizes that separating UDF execution from database workers provides isolation and improved security, while Chen teaches applying security policies to restrict unsafe or unauthorized UDF activity. A person of ordinary skill seeking to improve the security of Kalabe’s UDF system would therefore have had reason to use Kalabe’s isolated remote-UDF execution arrangement when prohibited or unauthorized UDF content is detected in accordance with the security criteria taught by Chen.
Accordingly, Applicant’s arguments do not establish that the combination of Kalabe and Chen fails to teach or suggest the limitations of claim 1. The rejection of claim 1 under 35 U.S.C. §103 is therefore maintained.
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.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NOOSHA ARJOMANDI whose telephone number is (571)272-9784. The examiner can normally be reached 8:00am to 4:30pm EST.
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, Sanjiv Shah can be reached at 571-272-4098. 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.
NOOSHA ARJOMANDI
Primary Examiner
Art Unit 2166
/NOOSHA ARJOMANDI/Primary Examiner, Art Unit 2166 August 14, 2026