In the text book software engineering by Sommerville , there is an example where he uses it to illustrate the famous type of software architecture "Client-Server Architecture", here it is :

"a Client server model for a multi user, web based system for providing a film and photograph library. In this system, several servers manage and display the different types of media. Video frames need to be transmitted quickly and in synchrony but at relatively low resolution. They may be compressed in a store, so the video server can handle video compression and decompression in different formats. Still pictures, however, must be maintained at a high resolution, so it is appropriate to maintain them on a separate server. The catalog must be able to deal with a variety of queries and provide links into the web information system that includes data about the film and video clips, and an e commerce system that supports the sale of photographs, film, and video clips. The client program is simply an integrated user interface, constructed using a web browser, to access these services."

enter image description here

Now my question is to test my understanding regarding this diagram, according to my understanding this system is a web system and we access it as a client through this system's web server which provides web pages for these videos and photographs. This means that we can't contact directly the other servers in this system which are video, picture and catalog servers, since they only provide information to this web server and this information is visible to me as a client through the retrieved web pages from this web server. Then this means that the bi directional arrows that exist between the network and the other servers (video, photo and catalog) are due to the fact that they communicate with the other servers including the web server not with clients, the only server that communicates with client is the web server. Is that right?

  • 1
    Replace "Client 1," 2, 3, and 4 with "the web browser" for a more accurate picture. Dec 14, 2020 at 23:44
  • And who is the "we" in "we cant contact directly the other servers"? Dec 14, 2020 at 23:47
  • @GregBurghardt I am mean the clients
    – John adams
    Dec 14, 2020 at 23:53
  • Well, that could be the case (e.g. if these servers are internal to a company), but neither the diagram nor the accompanying text explicitly indicate that. For example, the clients could normally access these resources through a web page, but as the web page contains links towards images and videos, if you view the source of the page and obtain the link, you could access the source server directly. E.g., the image you posted here is hosted on imgur.com. So, human users could go through the web server, while a program might use an API exposed by some of these other servers directly. Dec 15, 2020 at 10:02

1 Answer 1


No. Each server is accessible directly to the clients.

The functionality of this film/photo library system is organized into services, with each service delivered from a separate server. Each of the stand-alone servers provides specific services (category info, film with its backend db, and photo with its backend db). Clients are users of these services and access each server based on their specific requests.

The disadvantage of that is obvious too: each service is a single point of failure, so performance may be unpredictable because it depends on the network as well as the system. Also if services are owned by different organizations, there could be management issue too.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.