The term PipeLine refers to a data communication system which involves data-processing and communication in a single device. In computer engineering, a pipe line typically consists of an interconnecting chain of processor-threads (processes), arranged in such a way that all the output of every thread is the input of its nearest sibling; in analogy to the physical process of a pipeline. In hardware applications, the pipe line refers to a serial bus in which commands are sent from one peripheral device to another. Common examples of PipeLine include Ethernet, SCSI, serial, USB, FireWire and other peripheral devices. These types of lines can also be used for routing signals, or to connect different devices together.
In any software application, there is a need for some type of communication between application components. It could be any form of data communication system. Most application programs use a serial port, but a pipeline is the most effective and reliable form of communication. When a software program needs to communicate with a device, it uses a serial port to send a command to the device and receives its response, usually in the form of an answer, if the reply can be interpreted by the software. The problem arises when the device responds to the command, but does not send its response immediately, as would be expected from a logical communication process. In a case like this, the software program will receive and interpret the response and then check the information that is passed over the wire. The response received by the application will depend on what software application initiated the request and may contain data that needs to be transferred to other devices.
The response received by the application will depend on what the program uses data for, and what format the data is stored. An example of such a situation is when a program sends a command over the wire to an attached device, but the data received back indicates that the command was not understood by the application. This situation can be resolved by sending a message from the application to the device, asking for the interpretation of the data received. This message is known as an instruction. It can be in the form of an instruction, a list of instructions, or a string of commands and/or numbers, each having its own purpose. in interpreting the response.