Chapter 3 The Client-Server
Model and Software Design
Why the Client Server Model?
•TCP/IP provides peer-to-peer communication
channels for data transfer
•But, it does not dictate when, why, how
programmers should organize application
•To ensure that computers are ready to
communicate (background process) and start
automatically when the OS boots (daemon).
Terminology & Concepts
Usually, server provides some additional
functions for access control or security,
such as authentication, authorization, data
security, privacy and protection.
Two broad classes of client applications
(1) TCP/IP standard services
Telnet, FTP, and SMTP (e-mail)
(2) TCP/IP non standard services, built by users.
Protocols: TCP or UDP
Stateless and Stateful servers
Solution of Stateless Server - Idempotent operation
Server as client
Concurrent processing in Client-
Concurrency in networks
Concurrency in servers
•A sequential C program
•A concurrent version
•Making processes diverge
•System call - select