US 12,405,773 B1
Systems and methods for executing an analytical operation across a plurality of computer processes
Mohammadreza Nazari, Wayne, PA (US); Xindian Long, Cary, NC (US); Steven Eric Krueger, Raleigh, NC (US); Joshua David Griffin, Harrisburg, NC (US); Lawrence Edmund Lewis, Durham, NC (US); Amirhassan Fallah Dizche, Cupertino, CA (US); Ralph Walter Abbey, Cary, NC (US); and Jorge Manuel Gomes Da Silva, Durham, NC (US)
Assigned to SAS INSTITUTE INC., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Dec. 23, 2024, as Appl. No. 19/000,660.
Application 19/000,660 is a continuation of application No. 19/000,641, filed on Dec. 23, 2024, granted, now 12,307,291.
Claims priority of provisional application 63/680,807, filed on Aug. 8, 2024.
Claims priority of provisional application 63/660,761, filed on Jun. 17, 2024.
Claims priority of provisional application 63/637,188, filed on Apr. 22, 2024.
Int. Cl. G06F 8/36 (2018.01); G06F 9/50 (2006.01); G06F 9/54 (2006.01)
CPC G06F 8/36 (2013.01) [G06F 9/5066 (2013.01); G06F 9/546 (2013.01)] 36 Claims
OG exemplary drawing
 
1. A computer-program product comprising a non-transitory machine-readable storage medium storing computer instructions that, when executed by one or more processors, perform operations comprising:
receiving, by a first computer process operating in a first programming language, a request to perform an analytical function of a plurality of predefined analytical functions executable by an analytics service, wherein:
the analytical function includes a set of instructions for implementing an algorithm that is (i) configured to perform the analytical function and (ii) written in a second programming language, and
the first computer process provides a first set of application programming interface (API) functions for responding to data requests;
launching, by the first computer process, a second computer process operating in the second programming language that implements the algorithm in response to the first computer process commencing an execution of the analytical function, wherein:
the second computer process provides a second set of application programming interface (API) functions for creating and transmitting the data requests;
in response to pairing the second computer process with the first computer process:
invoking one or more API functions of the first set of API functions by the first computer process and one or more API functions of the second set of API functions by the second computer process to transfer one or more analytical function parameters and one or more datasets specified within the request to perform the analytical function from the first computer process to the second computer process;
writing, to a command cross-process queue, one or more requests for the one or more analytical function parameters and the one or more datasets in response to invoking, by the second computer process, the one or more API functions of the second set of API functions;
writing, to a data transfer cross-process queue different from the command cross-process queue, one or more response messages that includes the one or more analytical function parameters and the one or more datasets in response to invoking, by the first computer process, the one or more API functions of the first set of API functions; and
obtaining, by the second computer process, the one or more analytical function parameters and the one or more datasets specified within the request to perform the analytical function in response to reading the one or more response messages from the data transfer cross-process queue;
computing, by the second computer process executing the algorithm, an analytical result for the analytical function based on providing the one or more analytical function parameters and the one or more datasets to the algorithm; and
transferring the analytical result from the second computer process to the first computer process.