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

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)
主站蜘蛛池模板: 黔南| 清镇市| 石嘴山市| 双城市| 甘德县| 綦江县| 六盘水市| 天台县| 五莲县| 六安市| 阿鲁科尔沁旗| 格尔木市| 成都市| 渝中区| 德州市| 华亭县| 宁津县| 沂南县| 兴义市| 三亚市| 无为县| 鄂温| 广饶县| 边坝县| 漳平市| 孝感市| 临夏市| 温泉县| 龙井市| 筠连县| 奈曼旗| 临高县| 望都县| 广德县| 叙永县| 翁源县| 全南县| 黄冈市| 昌宁县| 长春市| 蕉岭县|