[From the last episode: We reviewed the last of our sensorA device that can measure something about its environment. Examples are movement, light, color, moisture, pressure, and many more. posts and a few other topics.]
Yes, we just did a review. And now we’re going to do a different one. The difference is that the last review was to summarize what we’ve done lately. This review has a different purpose: to remind ourselves of the basic communications stuff we’ve already talked about in preparation for further discussion.
Way back when, we learned about networks – a critical piece of IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. and communications infrastructure. The networkA collection of items like computers, printers, phones, and other electronic items that are connected together by switches and routers. A network allows the connected devices to talk to each other electronically. The internet is an example of an extremely large network. Your home network, if you have one, is an example of a small local network. is what gets our messages from here to there. But it’s just the wires and routersAn electronic box that helps steer data on a network. For instance, you may have one in your home connecting your phone and computer and other devices to each other and to the internet. The data itself has information about where it's being sent; the router uses that information to send it in the right direction. At a really basic level, you can think of a router and a switch as being the same thing. If you want to get more technical, a switch creates a local subnetwork, and the router connects multiple subnetworks (or multiple networks). and serversA computer with a dedicated purpose. Older familiar examples are print servers (a computer that controls local printing) and file servers (a computer used for storing files centrally). More modern examples are web servers (the computers that handle your web requests when you use your browser) or application servers (computers dedicated to handling the computing needs of a specific application). Servers are often powerful, expensive machines since they have to handle a heavy load. that fulfill that function. Running on that server or router is lots of softwareIn this context, "software" refers to functions in an IoT device that are implemented by running instructions through some kind of processor. It's distinct from "hardware," where functions are built into a silicon chip or some other component..
How It Stacks Up
That software implements the stacks that we talked about. Those stacks are incredibly important and powerful. They let us succeed through division of labor. Each layer of the stackRelated to communications: A way of organizing parts of a complicated process (like communications) so that any task relies on tasks below it and feeds the tasks above it. Related to computing: A place in memory where you store “where was I?” information when you go from, say, one function into another. Before starting a new function, you store where you were in the old one so that, when the new function ends and you’re back in the old one, you can figure out where you were and continue on. takes care of a specific range of things. It gets things from above and below in the stack, does its work, and sends the result on below or above.
The figure below shows the OSI Seven-Layer Reference ModelA simplified representation of something real. We can create models of things in our heads without even realizing we're doing it. Technology often involves models because they let us simplify what would otherwise be extremely detailed, complicated concepts by focusing only on essential elements., and, while not every systemThis is a very generic term for any collection of components that, all together, can do something. Systems can be built from subsystems. Examples are your cell phone; your computer; the radio in your car; anything that seems like a "whole." follows this, it’s something engineers use often to help organize their thoughts and explain things to others.
The further down the stack you go, the more likely it is that you’ll encounter hardwareIn this context, "hardware" refers to functions in an IoT device that are built into a silicon chip or some other dedicated component. It's distinct from "software," which refers to instructions running on a processor. rather than software. As we’ve seen, you can use hardware or software to do pretty much anything. Doing it in hardware means creating siliconAn element (number 14 in the periodic table) that can be a semiconductor, making it the material of preference for circuits and micro-mechanical devices. chipsAn electronic device made on a piece of silicon. These days, it could also involve a mechanical chip, but, to the outside world, everything looks electronic. The chip is usually in some kind of package; that package might contain multiple chips. "Integrated circuit," and "IC" mean the same thing, but refer only to electronic chips, not mechanical chips. to do the function. At the very bottom of the stack is the physical, or PHY, layer, and that pretty much has to be hardware, since that’s what sends the signal out onto a wire or into the air.
Above the physical layer, you have a choice. If you want something done faster or more efficiently, you do it in hardware. If it gets too complex, or if you want flexibility, you do it in software. That flexibility thing is important: it’s super hard and expensive to change a silicon chip once it’s been built, so you want it to be right the first time, and you want to make no changes.
With software, you’re simply feeding instructions to a processorA computer chip that does computing work for a computer. It may do general work (like in your home computer) or it may do specialized work (like some of the processors in your smartphone). of some kind. You can change those instructions anytime you want, with very little limitation. The biggest limit is that you have to store the instructions in some memory, and if your changes make it too big, then you might run out of memory. Other than that, as long as the new program runs fast enough, you can do what you want.
This Is How We Do It
Having stacks is one thing; deciding what each layer will do – specifically – is quite something else. You can keep it simple – which means less code and faster operation – or you can build in lots of features. It all depends on what you’re trying to do and what your constraints are.
So engineers have gotten together to decide what these layers should do. Each group of engineers may come up with a different thing for a different reason. With any hope, they pay attention to each other so that things fit together nicely.
As we saw, this thing that they’re deciding is called a protocol. And, if enough people want to lock that protocolAn agreed way of doing something. Like a convention, except that protocols tend to be related to processes. down so that everyone does it the same way, they make it a standard. Or, as we also saw, thay can sometimes make it look like a standard without quite being official.
Do You Speak My Language?
A last notion that we talked about already is that of interoperability. If you’re going to send a message from one machine to another, you’re assuming that the other machine will understand you. That won’t happen unless people make it happen.
That means publishing information about what the machinesIn our context, a machine is anything that isn't human (or living). That includes electronic equipment like computers and phones. expect – what instructions are possible and such – as well as creating standardsA way of doing something specific that has been agreed by multiple parties in an official manner. Some "standards" aren't official standards; the best ones have been established in an open fashion, where anyone with an interest can contribute and where large companies can't push little companies around. for how these messages are put together (which we’ll look at in more detail). That way the receiving machine knows first how to unpack the message and then how to read the message itself.
Finally, let’s remind ourselves about why we’re doing all of this. We want all the Things to be able to work together. Now, that’s never going to happen perfectly, since different camps have different ideas about how things should work. So it’s definitely not the case that there’s one standard for everything and everything works the same way. There are multiple, often competing, standards, and, as we saw with ecosystemsA group of related businesses that agree to work together, typically through a somewhat formal organization that may have a brand name. If something like that existed, for, say, produce sold in a grocery store, then the ecosystem might include select farmers, distributors, transportation companies, and grocery stores., as long as there’s a critical mass adopting any particular standard, then that little world will continue on its own, alongside other little worlds using different standards.
And with that, we’re ready to dig into this stuff in more detail. We’ll start next by looking at what messages are; they we can see how they might be “mailed” around the internet. Off we go!
Leave a Reply