|CITS3002 Computer Networks|
|next →||CITS3002||help3002||CITS3002 schedule|
What Are Client/Server Software Architectures?
Client/server computing is the logical extension of modular programming.
Modular programming has as its fundamental assumption that separation of a large piece of software into its constituent parts ("modules") creates the possibility for easier development and better maintainability.
Client/server computing takes this a step farther by recognizing that those modules need not all be executed within the same memory space.
With this architecture, the calling module becomes the client (that which requests a service), and the called module becomes the server (that which provides the service).
The logical extension of this is to have clients and servers running on the appropriate hardware and software platforms for their functions.
For example, database management system servers running on platforms specially designed and configured to perform queries, or file servers running on platforms with special elements for managing files.
For a long time it was widely-held myth that client/server computing had something to do with PCs or Unix machines. Cloud-computing, and mobile-computing, are contemporary examples demonstrating that the choice of hardware and operating system platforms has become quite irrelevant, and that interoperability through standards is all-important for success.
CITS3002 Computer Networks, Lecture 9, Client/server design, p1, 6th May 2020.