【Engineering】Data flow and Control flow

Posted by 西维蜀黍 on 2018-12-01, Last Modified on 2024-05-02

Background

A workflow can described from the control and data perspecitve respectively.

Data Flow and Control Flow

There are two types of messages: control messages and data messages, distinguished by their use at the recipients of the messages.

  • Control messages are mostly short messages that trigger state changes at the receiving services
  • Data messages are mostly large data packets that are given to the receiving services for processing.

We use control-flow to describe a group of related and partially ordered control messages, and use data-flow to describe a group of related and partially ordered data messages.

Application runtime environments differ in how control-flows and data-flows are formed and managed.

Distributed Data Flow

Basic Concept

Typically, there are two kinds of models categoried by how data exchanges:

  • Centralized control-flow centralized data-flow model (1C1D)

  • Centralized control-flow distributed data-flow model (1CnD)

Centralized control-flow centralized data-flow model

Examples of the 1C1D model include CORBA, DCOM, Java RMI, and SOAP.

There are performance and scalability issues associated with the 1C1D model, where the centralized control node of the application becomes the communication bottleneck when large amount of data are exchanged among autonomous services.

Centralized control-flow distributed data-flow model

However, in the 1CnD model, data is exchanged between autonomous services, i.e., passed to the service where data is actually consumed, rather than the control node.

Implementation

//TODO

Explicit/Implicit Control Flow

Explicit control flow is crucial to facilitate the monitoring, maintenance and evolution of software applications.

Implicit control flow has been an issue for software companies over many years, as it is difficult to monitor workflow processes.

Event-driven architecture is typically implicit control flows. Therefore, visualizing control flow (e.g., to find execution paths) in event-driven interaction is challenging because it is necessary to look at logs in order to understand the correlation between events. This makes it hard to monitor workflow execution, debug code and modify application workflows.

Reference

  • Liu, D., Law, K.H. and Wiederhold, G., 2002. Data-flow distribution in FICAS service composition infrastructure. In Proceedings of the 15th International Conference on Parallel and Distributed Computing Systems.
  • Arellanes, D. and Lau, K.K., 2018, July. Analysis and Classification of Service Interactions for the Scalability of the Internet of Things. In 2018 IEEE International Congress on Internet of Things (ICIOT) (pp. 80-87). IEEE.