Understanding the Peer-to-Peer Data Streaming Architecture
- Updated2023-02-17
- 2 minute(s) read
Understanding the Peer-to-Peer Data Streaming Architecture
From a system-level perspective, three components work together to ensure proper operation of a peer-to-peer data stream: the writer, the reader, and the host.
Hosts and Host Applications
A peer-to-peer data stream cannot exist without the presence of a host computer, such as a PXI system, running a host application. The host links the writer and reader together and maintains the stream.
The host must continue to run the host application to maintain the stream, but the host processor does not participate in the actual transfer of data between the writer and reader. In addition, the host does not have access to data in the stream, the writer, or the reader. The host provides the following services:
- Provides a unified software API for stream status and control between different types of devices.
- Programmatically creates streams at run time.
- Manipulates stream connectivity during run time.
- Increases system-level robustness and fault tolerance.
You can write host applications to handle errors or faults that occur in the writer or reader. For example, the host application can manipulate the state of the reader while the stream is actively transmitting data to prevent the reader from receiving stream data if the writer encounters a problem. In this situation, the host application can shut down the stream attached to the reader in a safe and controlled way.
Writers and Readers
The writer and reader are the origin and terminus of the unidirectional data stream, respectively. The writer is the device resource that writes data to the stream. The reader is the device resource that reads data from the stream.
Hardware devices that are capable of peer-to-peer data streaming can participate in multiple streams by using different resources as the writer and reader. Because the peer-to-peer data streaming architecture is unidirectional, each device resource can either write data to a stream or read data from the stream, but the same device resource cannot be both a writer and reader. Only hardware resource availability limits the number of streams that a device resource can support.