Chapter 3. Data Transmission

Table of Contents

3.1. Synchronous data transmission
3.2. Asynchronous data transmission
3.3. Cascade DataHub data transmission

In this section we discuss methods of data transmission as they apply to the Cascade DataHub.

3.1.  Synchronous data transmission

Consider the following diagram that represents two programs (or tasks) communicating with each other using send/receive/reply message protocol.

Synchronous data transmission

Figure 3.1. Synchronous data transmission

Task 1 sends a message to task 2. Using synchronous transmission, task 1 will not be able to continue processing until it has either received a reply from task 2 or the message transmission has failed. The message may fail to send due to a couple of reasons. The recipient task may die which means the message will fail to be sent, or the attempt to send the message may time-out waiting for a reply.

There may be a substantial time delay associated with task 2 processing the message and then sending back the reply to task 1. In the example above, task 1 is said to be 'blocked' on task 2 until it receives the reply to its original message.

In many mission critical applications, having one task blocked on another task is unacceptable because the blocked tasks are unable to perform other duties for the duration of the message transaction.

Synchronous transmission is, however, a fast and reliable method of data transfer when you absolutely need to know that a message was received by the recipient, or when the sending task must have a response before it can continue processing.