- Forward


Streams
An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Overview
Back SMYC Forward
  • Definitions and Analogies
  • Conceptual Models
  • Some Observations
  • Benefits of Streams
What Are Streams?
Back SMYC Forward
  • Definition:
    • A sequence of data with indeterminate length
    • UNIX streams end with Ctrl-D and Windows streams end with Ctrl-Z
  • Analogies:
    • A river
    • A "waiting line" of people
One Conceptual Model of a Stream
Back SMYC Forward
  • UML Diagram:
    • streams1_conceptual_model
  • Interpretation:
    • A stream carries data
Another Conceptual Model of a Stream
Back SMYC Forward
  • UML Diagram:
    • streams2_conceptual_model
  • Interpretation:
    • A stream carries data from a source to a sink
A Third Conceptual Model of a Stream
Back SMYC Forward
  • UML Diagram:
    • streams3_conceptual_model
  • Interpretation:
    • A communications channel connects an output stream to an input stream
  • Forms of the Connection:
    • Network connection, memory buffer between threads, I/O devices
Observations
Back SMYC Forward
  • Streams are first-in-first-out (FIFO)
  • Streams provide sequential access (though random access can be simulated)
  • Output Streams are "write only" and Input Streams are "read only"
The Benefits of the Stream Concept
Back SMYC Forward
  • Streams provide a uniform data interface that is independent of the channel
  • Streams can be used to buffer data, allowing the source and sink to operate at different speeds
  • Filters can be used to modify streams. Each filter can be simple but they can be used in combination if necessary.
Streams and Streaming Protocols
Back SMYC Forward
  • What Is a Communications Protocol?
    • An agreement that governs the procedures used to exchange information between cooperating entities
  • What is a Streaming Protocol:
    • A protocol in which the receiver does not wait for all of the data to be received before starting to process it
  • Are All Protocols that use Streams "Streaming Protocols"?
    • No, a protocol can use a stream for communication and still wait for all of the data before starting to process it
There's Always More to Learn
Back -