US 12,277,410 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,671.
Application 19/000,671 is a continuation of application No. 19/000,641, filed on Dec. 23, 2024.
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/35 (2018.01); G06F 8/52 (2018.01)
CPC G06F 8/35 (2013.01) [G06F 8/52 (2013.01)] 30 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:
transferring, using an application programming interface, a plurality of data blocks written in a first programming language from a first computer process to a second computer process that executes an algorithm written in a second programming language;
creating a respective data block of the plurality of data blocks, wherein creating the respective data block includes:
instantiating a data model of a plurality of predefined data models that corresponds to a target data category, wherein the data model includes a plurality of attributes that define a structure of the data model, and
attributing an attribute value to each attribute of the plurality of attributes of the data model;
wherein transferring a respective data block of the plurality of data blocks includes:
serializing, using the application programming interface, the respective data block into a serialized data block based on a serialization protocol executed by the application programming interface, wherein the serialized data block is encoded in a programming language-agnostic data format;
writing, by the first computer process, the serialized data block to a cross-process queue in response to serializing the respective data block;
reading, by the second computer process, the serialized data block from the cross-process queue;
deserializing, using the application programming interface, the serialized data block retrieved from the cross-process queue into a deserialized data block that is encoded in a data structure of the second programming language based on a deserialization protocol executed by the application programming interface that translates the respective data block encoded in a binary-based data format to the second programming language including:
constructing an instance of the data model that corresponds to the target data category in the second programming language, and
attributing a set of attribute values extracted from the respective data block encoded in the binary-based data format to the instance of the data model that corresponds to the target data category in the second programming language; and
executing, by the second computer process, the algorithm written in the second programming language based on providing at least a portion of the deserialized data block to the algorithm for data processing.