 Hi, let's take a look at the architecture with a familiar name – the client-server architecture. Distributed systems that are accessed over the Internet are normally organized as client-server systems. In a client-server system, the user interacts with the program running on their local computer, a web browser or mobile application. The client interacts with another program running on the remote computer, let's say a web server. The remote computer provides services such as access to webpages and files available to external clients. We will not investigate this architecture in detail as it is quite a typical architecture. Let's just review the pros and cons in a form of key points. Also in a client-server architecture, the systems functionality is organized into services with each service delivered from a separate server. The distributed systems that we use every day are normally organized as client-server systems. It is easier to manage system configuration in contrast to peer-to-peer systems. In many cases, it is sufficient to update the software within a server. Better security could be achieved in managed server-based systems because you have full control over the software and data within a server. Now it's time to review the shortcomings. Each service is a single point of failure, so susceptible to denial of service attacks or server failure. It is necessary to use resiliency engineering methods to maintain the quality of the provided services. Performance may be unpredictable because it depends on the network as well as the system. Finally, there may be management problems if different organizations own servers. In the next video, we will discuss the peer-to-peer architecture that uses the opposite approach. See you.