# US 8,789,017 B2 · System and method for using stream objects to perform stream processing in a text-based computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,789,017 B2
- Document ID: US8789017B2
- Status: Granted
- Kind: B2
- Application number: 13/561,818
- Filed: 2012-07-30
- Published: 2012-11-15
- Granted: 2014-07-22
- Earliest claimed: 2006-09-11
- Assignees: The MathWorks, Inc.
- Applicants: Donald Paul Orofino, II; Michael James Longfritz
- Inventors: Donald Paul Orofino, II; Michael James Longfritz
- Web page: https://patentgrep.com/patent/US8789017B2

## CPC

- G06F 9/4493: {Object persistence}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A mechanism for using stream objects in stream processing operations is provided. A definition of a class of stream objects used in stream processing algorithms can define output and update operations included in instances of the stream objects and the API (application programming interface) through which they may be called. The class definition may further include the type of state information to be held by the instantiated stream objects. An instance of the stream object may be instantiated in a text-based computing environment and the operations may be used to process streams of data.

## Claims

### Claim 1

A method comprising:
providing, by a device, a definition of a data stream processing class,
the definition of the data steam processing class identifying:
an output operation that produces an output value for an instance of the data stream processing class, and
an update operation that updates a state of the instance of the data stream processing class,
the output operation and the update operation being called using an Application Programming Interface (API) defined by the definition of the data steam processing class;
instantiating, by the device, the data stream processing class in a text-based computing environment to implement the API; and
processing, by the device, a data stream via the API,
processing the data stream including:
using the instance of the data stream processing class to perform one or more of the output operation or the update operation on the data stream.

### Claim 2 (depends on 1)

The method of claim 1, where the definition of the data stream of processing class further identifies a reset operation, and
where the method further comprises performing the reset operation to reset the state of the instance.

### Claim 3 (depends on 1)

The method of claim 1, where the definition of the data stream processing class further identifies a termination operation, and
where the method further comprises performing the termination operation to release resources that are associated with the instance of the data stream processing class.

### Claim 4 (depends on 1)

The method of claim 1, where the definition of the data stream processing class further identifies a retrieve output operation, and
where the method further comprises performing the retrieve output operation to retrieve an output value calculated before the output value, for the instance of the data stream processing class, is produced.

### Claim 5 (depends on 1)

The method of claim 1, where the data stream includes one or more of:
video data,
audio data,
radio frequency sensor data, or
digitized transducer data.

### Claim 6 (depends on 1)

The method of claim 1, where the data stream includes one or more of:
stock data, or
gene sequence data.

### Claim 7 (depends on 1)

The method of claim 1, where an object, associated with the instance of the data stream processing class, includes:
a filter object that provides a filtering of the data stream, or
a delay object that imposes a delay in the data stream.

### Claim 8 (depends on 1)

The method of claim 1, where the data stream is provided as an input to the instance of the data stream processing class, and
where processing the data stream further includes:
calling, via the API, the output operation to calculate the output value,
where the output operation calculates the output value.

### Claim 9 (depends on 8)

The method of claim 8, where the output value is calculated based on one or more parameters of the instance of the data stream processing class.

### Claim 10 (depends on 1)

The method of claim 1, where the data stream is provided as an input to the instance of the data stream processing class, and
where processing the data stream includes:
calling, via the API, the update operation to update the state of the instance of the data stream processing class.

### Claim 11

A device comprising:
a memory to store instructions; and
one or more processors to execute the instructions to:
generate a definition of a data stream processing class,
the definition of the data stream processing class identifying a plurality of operations,
the plurality of operations including:
an output operation that produces a value for an instance of the data stream processing class, and
an update operation that updates a state of the instance of the data stream processing class,
the output operation and the update operation being called using an Application Programming Interface (API),
the API being defined by the definition of the data stream processing class,
instantiate the data stream processing class to implement the API, and
process, using the instance of the data stream processing class and via the API, a data stream in a text-based computing environment or a graphical computing environment,
when processing the data stream, the one or more processors are to:
perform one or more of the output operation or the update operation on the data stream.

### Claim 12 (depends on 11)

The device of claim 11, where the data stream processing class is instantiated in the text-based computing environment, and
where, when processing the data stream, the one or more processors are to process the data stream in the text-based computing environment.

### Claim 13 (depends on 11)

The device of claim 11, where the data stream processing class is instantiated in the graphical computing environment, and
where, when processing the data stream, the one or more processors are to process the data stream in the graphical computing environment.

### Claim 14 (depends on 11)

The device of claim 11, where the plurality of operations further includes a reset operation, and
where, when processing the data stream, the one or more processors are further to reset the state of the instance of the data stream processing class based on the reset operation.

### Claim 15 (depends on 11)

The device of claim 11, where the plurality of operations further includes a termination operation, and
where, when processing the data stream, the one or more processors are further to release resources that are associated with the instance of the data stream processing class based on the termination operation.

### Claim 16 (depends on 11)

The device of claim 11, where the plurality of operations further includes a retrieve output operation, and
where, when processing the data stream, the one or more processors are further to retrieve an output value calculated, before the value for the instance of the data stream processing class is produced, based on the retrieve output operation.

### Claim 17 (depends on 11)

The device of claim 11, where the data stream includes one or more of:
video data,
audio data,
radio frequency sensor data,
digitized transducer data,
stock data, or
gene sequence data.

### Claim 18 (depends on 11)

The device of claim 11, where the data stream is provided as an input to the instance of the data streaming processing class, and
where, when processing the data stream, the one or more processors are to:
call, via the API, the output operation to calculate the value,
where the output operation calculates the value.

### Claim 19 (depends on 18)

The device of claim 18, where the value is calculated based on one or more parameters of the instance of the data stream processing class.

### Claim 20 (depends on 19)

The device of claim 19, where, when processing the data stream, the one or more processors are to:
call, via the API and after the value is calculated, the update operation to update the state of the instance of the data stream processing class to obtain an updated state of the instance of the data stream processing class, and
store the updated state of the instance of the data stream processing class.

### Claim 21 (depends on 11)

The device of claim 11, where the plurality of operations further includes a particular operation that combines functionalities of the output operation and the update operation,
where, when processing the data stream, the one or more processors are to call the particular operation, and
where, when calling the particular operation, the one or more processors are to call the output operation and the update operation.

### Claim 22

A non-transitory computer-readable medium storing instructions, the instructions comprising:
a plurality of instructions which, when executed by one or more processors, cause the one or more processors to:
generate a definition of a data stream processing class,
the definition of the data stream processing class identifying a plurality of operations,
the plurality of operations including:
a first operation that produces a value for an instance of the data stream processing class, and
a second operation that updates a state of the instance of the data stream processing class,
the first operation and the second operation being called using an Application Programming Interface (API),
the API being defined by the definition of the data stream processing class,
instantiate the data stream processing class to implement the API, and
process, using the instance of the data stream processing class and via the API, a data stream in a text-based computing environment or a graphical computing environment,
one or more instructions, of the plurality of instructions, to process the data stream including:
one or more instructions to perform one or more of the first operation or the second operation on the data stream.

### Claim 23 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the data stream processing class is instantiated in the text-based computing environment, and
where the one or more instructions to process the data stream further include one or more instructions to process the data stream in the text-based computing environment.

### Claim 24 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the data stream processing class is instantiated in the graphical computing environment, and
where the one or more instructions to process the data stream further include one or more instructions to process the data stream in the graphical computing environment.

### Claim 25 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the plurality of operations further includes a third operation, and
where the one or more instructions to process the data stream further include one or more instructions to reset the state of the instance of the data stream processing class based on the third operation.

### Claim 26 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the plurality of operations further includes a third operation, and
where the one or more instructions to process the data stream further include one or more instructions to release resources that are associated with the instance of the data stream processing class based on the third operation.

### Claim 27 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the plurality of operations further includes a third operation, and
where the one or more instructions to process the data stream further include one or more instructions to retrieve an output value calculated, before the value for the instance of the data stream processing class is produced, based on the third operation.

### Claim 28 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the data stream includes one or more of:
video data,
audio data,
radio frequency sensor data,
digitized transducer data,
stock data, or
gene sequence data.

### Claim 29 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the data stream is provided as an input to the instance of the data stream processing class, and
where the one or more instructions to process the data stream further include:
one or more instructions to call, via the API, the first operation to calculate the value,
where the value is calculated based on one or more parameters of the instance of the data stream processing class,
one or more instructions to call, via the API and after the value is calculated, the second operation to update the state of the instance of the data stream processing class to obtain an updated state of the instance of the data stream processing class, and
one or more instructions to store the updated state of the instance of the data stream processing class.

### Claim 30 (depends on 22)

The non-transitory computer-readable medium of claim 22, where the plurality of operations flirther includes a third operation, and
where the one or more instructions to process the data stream further include one or more instructions to call the third operation, and
where the one or more instructions to call the third operation include one or more instructions to call the first operation and the second operation based on calling the third operation.
