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

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)
主站蜘蛛池模板: 宕昌县| 吉安市| 平安县| 张北县| 棋牌| 交口县| 四子王旗| 清流县| 郴州市| 秭归县| 嘉善县| 平湖市| 吉安县| 黄山市| 彭山县| 邛崃市| 会泽县| 隆昌县| 宁河县| 苍梧县| 怀远县| 肃宁县| 惠来县| 北流市| 安康市| 大足县| 宁远县| 攀枝花市| 宿迁市| 望谟县| 大同市| 南充市| 错那县| 永胜县| 枣阳市| 北川| 米易县| 江华| 鸡东县| 郸城县| 南川市|