# Data Interfaces >[!quote] >_A system is never the sum of its parts; it’s the product of their interaction._ >Russell Ackoff Dr. Ackoff^[https://en.wikipedia.org/wiki/Russell_L._Ackoff] elaborates: >[!quote] >_Suppose you’re building the best automobile in the world. You would go about it by first bringing each of all the car models in the world to one place. You would then hire the best automobile engineers and mechanics in the world and ask them to determine which of the cars has the best engine. If the engineers say that the Rolls-Royce has the best engine, you would pick the Rolls-Royce engine for your car. Similarly, you would ask your engineers to find out which of the cars has the best exhaust system and pick that for your future car. Using this method, you and your team would go through the necessary parts for building an automobile and in the end have a list of the best parts available in the world. You would then give the list to your engineers and mechanics and ask them to assemble the car. What do you think you will get? The answer is obvious: you don’t even get an automobile! The parts won’t simply fit together. An engine from a Rolls-Royce won’t work well with an exhaust system from a Mercedes. The performance of the automobile depends on the interaction of its parts, not on the performance of the parts taken separately._ Systems come alive thanks to the different interfaces in their subsystems which transport the necessary _stuff_ for the system's main function to emerge (data, energy, matter). A subsystem or a component without interfaces is a bubble isolated from the Universe and thus adds no value and provides no function. In digital systems, data interfaces are fundamental for the architecture to exchange the information needed; said interfaces must guarantee that the data flows as free of errors and as fast as per the system's requirements. ==As the quote above states, a system is the product of the interaction of its constituent parts, and interfaces play a critical role in coupling the system together.== # Layers and Protocols The act of communication is remarkable. Two people are capable of holding small talk about the weather in an elevator by making the air vibrate using the vocal cords of one (the transmitter) whose airwaves are captured by the ears of the other one (the receiver), where different frequencies/pitches, pauses and timbers make up phonemes which eventually become syllables, words, and ultimately intelligible speech about how humid the morning is. We can dissect the act of communication in different parts and skins, like an onion. For starters, the air vibrations mean nothing by themselves—a glass falling to the floor and crashing to pieces creates a lot of air vibrations in the surroundings as well but that forms no speech—but the collection of those vibrating patterns in "packets" in a coherent manner and eventually interpreted by a human brain—in context—is what defines the messages being exchanged and ultimately. by stitching them with some criterion, the act of communicating. Contracts and rules occur in the process of discerning what means what, and there are contracts at every layer of the onion: phonemes, syllables, words, phrases, and even semantic rules and idioms at the upper layers. Imagine now that the two elevator passengers spoke different languages, and that they used a smartphone for translation: in this case, the phone acts as a 'bridge' between them converting from one protocol—one language—to another without needing to interpret or store what's being said. The phone could also store a recorded message in one language and send it to another actor later on, a scheme that is usually called store-and-forward. It could also happen that the message is not well understood or gets corrupted or broken by a sudden noise in the elevator, requiring one of the parties to ask for it to be re-sent. When we communicate as humans, there is error control at play, and we subconsciously try to maintain a signal-to-noise ratio; think about how you automatically raise your voice when you are talking to a friend on the metro as the train goes faster and the noise gets louder. There is also flow control: we don't convey more information than the receivers can take; ever asked a professor in university to go slower while writing something on the whiteboard? Too much data can easily clog a channel, and throttling down the data rates is a way of controlling the flow of information. Elements in digital systems imitate human communication and have all the elements of the elevator small talk, only in a more mechanistic manner. Communication in digital systems happens by opportunistically manipulating signals through a media—air, vacuum, or copper—packing data in meaningful "chunks" and defining "dialects" and protocols about how the chunks are supposed to be collected, packed, and unpacked by a receiver. Communication in digital systems also defines what to do in the presence of errors and how to manage things that are too large to fit through a particular channel in smaller chunks only to be then reassembled in the right order at the receiving end. In essence, a system becomes a functional entity thanks to the seamless transfer of information across interfaces. There are, though, multiple ways such transfer can happen, and the following pages will dive into this in deeper detail. [[The OSI Model]] [[Communication Between Heterogeneous Systems]] [[Physical Layer]] [[High-Speed Standard Serial Interfaces]] [[site/Resources/Data Interfaces/References|References]]