官术网_书友最值得收藏!

Understanding distributed systems

To understand a distributed system, we need to first distinguish it from traditional centralized systems. Traditional centralized systems consist of two main components: the client and the server. In the simplest setup, the client is the one who makes a request for getting a job done, and a server is the one who gets it done. This was how web 1.0 operated; the one we started calling the World Wide Web. For example, you placed a search request on Google search engine, and it gave you back a set of web links and summarized results.

Now, if two clients want to communicate between each other, they have to place request via the server, which serves as the middleman. A second example might be, for instance, if I send you a message from the client app of my mobile, this message is pushed to the WhatsApp server, which then notifies your client app about my message. Once you see my message, your client app sends back an acknowledgement signal in terms of a blue double tick to my client app, again using the WhatsApp server. This is how the present internet operates and we call it web 2.0, the advent of the social network. In both of these examples, we can see the centralized system works just fine. In Figure 1.1, this centralized setup is represented by the left-side lego block setup. The aggregated middle blocks represent the server, whereas the circumferential isolated blocks represent the clients. However, these centralized servers are generally owned by business organizations and can be influenced by a criminal entity or central authority to leak private data while the clients communicate. To overcome this fundamental flaw, peer-to-peer networking (web 3.0) came into practice (for example, BitTorrent). These were distributed systems, as depicted in the right of Figure 1.1, where each node can be a client or server or both and are not distinguishable from other nodes. Even though these systems were good at privacy, they faced challenges like the Byzantine Generals' Problem and the CAP theorem, which we will discuss in the subsequent sections.

Figure 1.1: Lego block representation of centralized system (left) and distributed system (right)
主站蜘蛛池模板: 阿巴嘎旗| 鄂托克旗| 攀枝花市| 峡江县| 板桥市| 扎囊县| 子长县| 千阳县| 紫云| 沧源| 吉隆县| 饶阳县| 阿拉善右旗| 贞丰县| 凤凰县| 灵璧县| 拜城县| 信丰县| 江孜县| 巴马| 呼和浩特市| 色达县| 丁青县| 当涂县| 广汉市| 景东| 景宁| 遂昌县| 湖南省| 雷波县| 麻城市| 江津市| 永昌县| 吉木乃县| 彰化县| 阿巴嘎旗| 翼城县| 宝鸡市| 康定县| 肥城市| 大安市|