Operators
Operators are the fundamental building blocks of stream processing applications. Operators process tuples in incoming streams and produce output streams as a result.
The programming model for stream processing applications in IBM® Streams is a data flow graph, which means that streaming data flows between nodes on the graph, in a specified direction. The nodes of the graph are the operators.
- Primitive operators
- Primitive operators are the entities that do the actual processing of elements. They are implemented in a native language such as C++ or Java. Primitive operators cannot be broken down into smaller processing elements and they are not composites of other operators.
- Composite operators
- An operator that is implemented in SPL which represents a subgraph, and as such can contain
other primitive or composite operators.
A main composite operator is a composite operator that encapsulates the entire data flow graph, that is the root of that graph, that has no input ports or output ports, and that when compiled represents a stream processing application.
Ports are the points of connection of operators to a stream. Input ports consume one or more streams, whereas output ports produce a stream.
An operator invocation is an instance of an operator that was defined for a specific context. Every stream is defined by exactly one operator invocation, but the stream can be consumed by any number of operator invocations. Each time a tuple arrives on any of the input ports of an operator invocation, the operator fires and can produce tuples on its output streams.