[From the last episode: We saw where distributed and multicoreDescribes a computer chip that has more than one CPU on it. computing fit into the IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. world.]
Let’s spend some time in the cloudA generic phrase referring to large numbers of computers located somewhere far away and accessed over the internet. For the IoT, computing may be local, done in the same system or building, or in the cloud, with data shipped up to the cloud and then the result shipped back down. now. The story goes that Amazon had to buy tons of computers to handle the holiday crush and wondered what to do with them during the restA way of programming that has evolved out of web programming, and it’s more abstract than other older languages like C. of the year. According to this rendition, they decided to “rent” them out to people that needed some extra computing capacity.
Well, as enticing as that story is, it’s apparently apocryphal. Nonetheless, what started as Amazon Web Services (AWS) has mushroomed into a gigantic business with numerous players. While the specific origins of Amazon’s play may be the subject of rumor, the bottom line is that they did – and do – rent out their computers. But it’s not as simple as putting computers on a rack and connecting the internet.
Of course, there’s tons of infrastructure required even to handle the billing. Something has to keep track of who’s using which machinesIn our context, a machine is anything that isn't human (or living). That includes electronic equipment like computers and phones. and resources and for how long. We won’t dive into that. They also needed to build in a way for remote users to acquire the use of a machine, configure it the way they wanted, load their software, and then do their work. That gets trickier, but there’s something different about the way a cloud serverA 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. works that’s worth exploring.
Your Own Bottle?
When you use a desktop machine at home or at work, it’s pretty much your machine. (OK, it might be IT’s machine, but you get exclusive use.) So your machine may be different from that of the person in the next cubicle. And once you’ve configured everything the way you want it, it’s definitely personalized to you.
But it’s different in the cloud. For your average, run-of-the-mill usage, it’s like you’re in a bar in the US, not a bar in Japan.
What does a bar have to do with it? Well, in the US (and many other places), when you want a whisky, you order one and the bartender pours it from a bottle that’s on the shelf. When the next person wants one, the bartender pours his or hers from the same bottle. By contrast, there are bars in Japan where you can have your own dedicated bottle. It’s got your name on it. Each time you go, your bottle awaits you.
Well, in the cloud, you don’t ordinarily get your own computer to use with your name on it. You get a machine that meets your specifications. Now… it’s probably worth noting here that by “you,” I’m not meaning “you” directly. Because, when you use the cloud, you’re using some company’s servicesWe are used to purchasing products outright. "Services" is a new concept where you may or may not buy the product, but optional or mandatory services come with the product. Those services may have an ongoing cost separate from the purchase price. that are hosted in the cloud. So, in this case, “you” is the company putting those services together.
Multiple Processes
You may remember that we have historically thought of a “program” as a “process” in a computer. That notion is a bit dated for the cloud, but it’s still useful. And the key here is that a computer with a standard operating systemSoftware – or firmware – that handles the low-level aspects of a computer or IoT device. It gets direct access to all the resources. Software asks the OS for access to those resources. can run more than one process at a time. That’s probably obvious from your personal use of a computer, where you can have Excel and Firefox and a bunch of other things running at the same time.
But let’s say you’re accessing your online account at ShoeBDue.com*. You’re using their software, which they wrote and installed on a machine in the cloud. Your account settings are stored somewhere nearby so that the server can retrieve them when you’re using it. But here’s the thing: someone else on that website is using the same software on the same computer, only with a different set of stored account settings and information.
It’s possible that a single set of software could be running, keeping track of who has logged in so that it can keep them separate. Or it could load a second set of the software for the second account. Either way is possible, although, obviously, running two “instances” (as they’re called) of the same program would use way more memory than running just one.
Multiple Tenants
But it doesn’t stop there. Another website might have a completely separate set of software unrelated to ShoeBDue. That other software is just another process, and so it could be running at the same time – one or more instances. At some point you run out of room, but here’s the point: you’re not the only one using the machine that you’re using. Others may be – in fact, likely are – using it too, since there’s way more capacity on that machine than you could likely use for everyday stuff. And more than one website could be using it too.
This notion of multiple people using the same machine has a name: it’s called multi-tenantingIn the Cloud, this refers to a situation where multiple different users or systems are sharing the same server. Ideally, those different "tenants" will never affect each other.. As in, there’s more than one tenant renting services in the computer. Theoretically, that should be just fine. Each process is a thing unto itself and doesn’t know anything about any other process. But how do you ensure that, say, the other person on the same website as you can’t accidentally see your account information based on some internal glitch? Things like that have happened, and it’s a securityRefers to whether or not IoT devices or data are protected from unauthorized viewers. and privacyRefers to whether or not information gathered about your usage of IoT devices by authorized people can be made public, or shared with others, without your consent. Different from (although related to) security, which protects such data and devices from access by unauthorized people. Different from privacy, which is more concerned about use of data by authorized people. consideration.
So there are a number of technologies that have been developed – actually, are still being developed, since this is very much happening as we speak – to help keep separate things separated. We’ll talk about some of those in the next few posts.
By the way, it is possible to rent your own computer for your own exclusive use, so multi-tenanting isn’t a requirement; it’s just very common. As you might expect, it costs more to get your own personal bottle of booze – er – server.
*Don’t be looking for that… I just made it up.
Leave a Reply