Section 2 – Client Server Computing
Bear through this example, it will give you an easy to understand example of how cloud computing really came into being and why it makes all the sense in the world. To demonstration the example we’ll start with a mock scenario below:
Server vs Computer
We will use server and computer interchangeably though out this series. A server is a computer with a good amount of processing power and is generally not directly accessed physically by a user. In many cases a server maybe locked in a special office, a server room or even a data center. In early client server application roll outs, what was functioning as a server could have been a regular computer in all regards.
Example – A Small Manufacturing Firm Circa 1992
Let’s say you run a small business that’s grown and you’ve just added an office manager in addition to your existing bookkeeper. Traditionally the bookkeeper had some accounting program installed on their computer and only they accessed it. When the owner of the business asked for it, the bookkeeper could product a bunch of reports and hand them to the owner, so the owner didn’t really need to have dedicated access to the accounting system.
So the new office manager comes in and wants to really make some dramatic changes to the office and really push the office operation to the next level. So the office manager sits with the bookkeeper and has a discussion that looks like this:
Office Manager: I’d really like to see how much we spent on office supplies and our coffee service. I am being asked to really understand where we can save money
Bookkeeper: Well, I can provide you reports on what we spent last quarter on office supplies and the coffee service, I’ll print it out and give them to you.
— 2 days later—
Office Manager: I forgot to ask, can you send me another report that includes our fuel costs on all the vehicles in the office?
Bookkeeper: Sure, I can do that, I’ll print it and give it to you shortly.
—2 days later—
Office Manager: The reports were interesting, can you give me the same reports going back for the past 2 years? I’d like to see how it changes quarter to quarter and by the way, with the bosses approval, do you think you could install the accounting system on my computer so I can run these reports without bugging you? I’d really like to understand how the accounting works so I can put together a budget for the owners.
Bookkeeper: I am not sure how that would work. If we install it on your computer, you couldn’t see the accounting records because they are on my computer only and there’s no way to really share that data. Talk to the boss to see if there’s a way that his computer guy can make this work on 2 machines so you can see the same accounting data that I see.
Meanwhile, the boss has brought in some technical expertise and they’ve transformed the accounting system. But let’s take a look at how the accounting department looked before the technical expert was brought in. You basically had:
- Single User
- Single Application
- Single Computer
- No outside connections
After the tech expert was called in, the application was setup in client server mode which means the application was installed on 2 computers with these parameters:
- Computer 1 has the application + the accounting data
- Computer 2 has the application and NO accounting data
- Computer 2 reads and writes to computer 1 as needed
- Computer 2 reads and writes to itself as needed
- Our model assumes that the software licensing permitted this type of use
- Our model assumes there was some simple network in the office (remember this was pre-internet!)
Assuming this office properly backed up computer 1 frequently and kept a copy of the data offsite in a secure space this generally worked ok for many organizations. A few issues though:
- Since the data was stored on computer 1, this machine had to be left on
- Poor usage habits of the user on computer 1 could corrupt the accounting data
- Backups had to be manually managed
So the business grows and let’s say this business has a warehouse manager who relied on the bookkeeper to print invoices but one day the boss decides it would be good for efficiency if the warehouse prints their own invoices so that shipments could go out faster in the morning. To do this, the model would look like this:
So in this model, there are 3 machines total. The application is installed on all 3 machines, the data resides on the original computer that was setup. As long as the computer that had the application data was secure and running, this worked well. But, the nature of computers aren’t so easily ignore. Out of nowhere, the app and data computer suffers a catastrophic hard drive loss. Of course, this business was savvy enough to store backups in the office as well as off site. So the office manager purchases a new hard drive, the computer is opened, a new hard drive is installed, all the applications are installed and the data from the accounting system is copied from backup onto this machine. This is good but no one could get access to the accounting data for hours and things got delayed and held up.
So we introduce the next iteration of client server computing where a 4th machine is introduced that we will call the accounting server. This machine has no user on it ever, it sits in a corner of the office and no one is supposed to directly touch this machine except for maintenance.
Here’s what that would look like:
Other Client Server Use Cases
We wanted to outline client server in a simple, relatable manner by using a small business. Interestingly enough, big businesses also used this same model but they used the model in Figure 4 above which includes a dedicated computer that stored all the data and rather than 3 “app only” computers, they could have hundreds. Additionally, they could connect other offices around the world using WAN (Wide Area Networks) which all tied back into that large Data only server.