networks//middleware
Middleware is the software layer between applications and the network that moves messages between processes and machines, taking care of finding who to talk to, agreeing on message types and guaranteeing (or deliberately not guaranteeing) delivery, so that the code of a robot or a plant deals with data and not with sockets. A real robot has dozens of processes passing messages (drivers, estimators, planners, loggers); without a common layer each pair would invent its own protocol.
Middleware is the software layer between applications and the network that moves messages between processes and machines, taking care of finding who to talk to, agreeing on message types and guaranteeing (or deliberately not guaranteeing) delivery, so that the code of a robot or a plant deals with data and not with sockets. A real robot has dozens of processes passing messages (drivers, estimators, planners, loggers); without a common layer each pair would invent its own protocol.
Two communication patterns cover most of it. In publish-subscribe, producers publish on a named topic and any number of consumers subscribe, without knowing each other: the natural shape for sensor streams and state. In request-reply, a client asks one server and waits for the answer: the shape for commands, configuration and queries. Over these patterns, middleware adds discovery (new nodes find each other without a configured address list), typed messages, and quality-of-service policies that say what to do when the network loses or delays a message.
DDS is the publish-subscribe standard of this layer for robots and vehicles, with automatic discovery and fine-grained QoS; it is what ROS 2 runs on. MQTT is the light publish-subscribe protocol for telemetry from devices to a broker in the cloud, tolerant of poor links and simple to implement on a microcontroller. MAVLink is the compact message set between drones and ground stations.
A factory has the same layering with other names, and confusing the layers is a classic design error. OPC UA carries information models between machines and plant systems (what a tag means, its units, its alarms) at supervisory speeds (OPC UA); MQTT carries telemetry toward the cloud; the hard real-time loops ride fieldbuses such as EtherCAT, PROFINET or CAN, with cycles bounded to microseconds or milliseconds. Middleware coordinates; it does not close the fast loops.
Every hop through middleware adds queueing, serialization and transport time and some jitter to the loop that crosses it, which is why its placement is an architectural decision (real-time computing).