Chapter 5 What is a Databus?

A databus is a software architecture pattern that enables seamless data exchange between different components, applications, or systems within a network. It acts as a virtual bus that facilitates real-time data distribution, ensuring that data producers (publishers) and data consumers (subscribers) can communicate efficiently without needing direct connections. This architecture supports scalability, flexibility, and reliability in distributed systems, making it ideal for applications requiring high levels of data integration and coordination.

The databus simplifies application and integration logic with a powerful data-centric paradigm. Instead of exchanging messages, software components communicate via shared data objects. Applications directly read and write the value of these objects, which are cached in each participant.

A databus provides a crucial benefit for typical distributed systems by efficiently managing data flow across multiple devices and networks. It addresses the challenges posed by high data volumes, stringent safety, and security requirements, ensuring reliable performance and compliance with safety and security standards.

Key characteristics of a databus are:

  • The participants/applications directly interface with the data.
  • The infrastructure understands, and can therefore selectively filter the data.
  • The infrastructure imposes rules and guarantees of Quality of Service (QoS) parameters such as rate, reliability and security of data flow.

Figure 5.1: Connext Databus

5.1 Difference between Database and Databus

The databus provides for data in motion, whereas a database provides for data at rest.

A database implements data-centric storage. It saves old information that you can later search by relating properties of the stored data.

A databus implements data-centric interaction. It manages future information by letting you filter by properties of the incoming data. Data-centricity can be defined by these properties:

  • The interface is the data. There are no artificial wrappers or blockers to interface such as messages, objects, files or access patterns.
  • The infrastructure understands that data. This enables filtering/searching, tools, and selectivity. It decouples applications from the data and thereby removes much of the complexity from the applications.
  • The system manages the data and imposes rules on how applications exchange data. This provides a notion of "truth". It enables data lifetimes, data model matching, CRUD interfaces, etc.

It is important to note that a databus is not just a database that you interact with via a pub-sub interface. There is no database. A database implies storage: the data physically resides somewhere. A databus implements a purely virtual concept called a "global data space" and implies data in motion.

5.2 Layered Databus

The Industrial Internet Consortium (IIC) Industrial Internet Reference Architecture (IIRA) is a standards-based architectural guideline for developers to use in designing intelligent distributed systems based on a common framework. The IIRA recommends a new architectural pattern for intelligent distributed systems called the “layered databus” pattern.

In intelligent distributed systems, a common architecture pattern emerges that is made up of multiple databuses layered by communication QoS and data model needs. Typically, databuses will be implemented at the edge in the smart machines or lowest level subsystems, such as in a car, an oil rig, or a hospital room. Above that will be one or more databuses that integrate these smart machines or subsystems, facilitating data communications between and with the higher-level control center or backend systems. The backend or control center layer could be the highest layer databus in the system, but there can be more than these three layers.

Typical distributed systems require sharing data across multiple networks like this. For example, in a connected hospital, devices have to communicate within a patient or operating room, to nurses’ stations and off-site monitors, to real-time analytics applications for smart alarming and clinical decision support, and with IT health records. This is challenging for several reasons. The aggregate volume of streaming device data could easily overwhelm hospital networks; patient data must be securely tracked, even as patients and devices move between rooms and networks; and additionally, devices and applications have to interoperate, even when developed by different manufacturers. A layered databus architecture is the ideal framework for resolving these challenges and developing multi-tiered distributed systems of systems.

Figure 5.2: Layered Databus