Understanding client-server architectures

In client-server architectures, each running process is either a server or a client. They interact with each other using requests that are sent through a defined communication channel, in a network that connects them together. We have all used an email service, and we understand how such a service works; that is the quintessential example of a client-server architecture, illustrated in the following diagram:

Email service components

We will now provide a brief overview of each component in the preceding diagram, in order to explain how it fits within the client-server architectural style. The precedingdiagram is comprised of the following parts: