|
If you think that a client is a businessperson's typical customer, a server is someone who waits on
tables at your local Denny's, or LAN is a Vietnamese name, you're absolutely right on all three
counts.
|
|
Fig. 1: Layers of an Application
|
 |
But then, what do all these have to do with distributed computing? Recall that distributed
computing spreads the workload across several different computers. Typical applications, like
Corel WordPerfect, can run on one computer without a hitch. Other applications, though, are so
computer-intensive that they need to use distributed computing, lest it chug along at a sluggish
pace. How can a programmer split the application?
 |
Application Split! |
| It turns out that applications are typically composed of three
layers (please see Figure 1), according to Will Fastie of PC Magazine. The presentation layer handles the basic user
input and output. It is responsible for providing the graphical user interface, recording the
keystrokes, and tracking the user's mouse movement. At a fancy restaurant, the waiter handles this
"presentation layer" by providing the customer with a menu — the interface — and
writes down the customer's order, similar to Figure 2. A bowl of noodles, perhaps.
|
|
Fig. 2: The presentation layer.
|
 |
The application or business logic is the actual core of the application.
It takes the user's input and interprets it accordingly. If the user makes a request through the
presentation layer — say, if he clicks on a "Delete This File" button — the
application logic would interpret that. It also tells the presentation layer what to output. Back to
our restaurant: the waiter gives the order to the head waiter, who then proceeds to the kitchen with
the order, read it, then shout to the chef that a customer wants a bowl of noodles.
|
|
|
Fig. 3: The application or business logic layer.
|
 |
|
The bottom layer provides the basic services for the application logic,
taking care of printing, communications, files, and databases. The request would be handed down
to this bottom layer for processing. After fulfilling the request, the layer hands it to the application
logic. In the restaurant analogy, the chef would prepare some noodles, place it in a bowl, and hand
it to the head waiter, or the application logic. The head waiter would give the noodles to the
regular waiter, who presents the fulfilled request to the customer.
A small restaurant could run this just fine with one customer, one waiter, one head waiter, and one
chef. If there were fifty customers each with a food request — or one customer with fifty
food requests — then the employees would get a bit bogged down. This sounds like a good
time to hire more waiters and chefs!
Similarly, a regular home computer can run one application to do
one task, whether it be opening or printing a document. If the computer has to fulfill fifty
commands from the user at once — or opening fifty files at once — then the
computer would get a bit bogged down too and crash in the confusion. This, too, sounds like a
good time to purchase some more computers!
|
|
Fig. 4: The Bottom Layer
|
 |
|