Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

传统的client/server 不如 P2P 架构的 Web

了跳间球
119 0 0
传统的client/server架构的Web。写好网站之后,我们会把它部署到服务器上。用户会通过自己机器上的客户端程序,通常也就是浏览器了,去下载这个网站的文件,然后运行里面的html/css/js代码,得到网页。但是要注意,这种架构本身不是Web的本质。Web的本质是很多网页通过超级链接,来相互连接到组成一个网。
8 w6 L  H4 p& m# f/ T1 j( G0 z
4 O, q9 p  V% W! G4 Z% C7 B    但是后来,所谓的Web2.0来了,用户可以往服务器上提交内容了。例如,用户可以给维基百科添加新内容,或者可以在Twitter上注册新账户,而这些操作需要在服务器上安装数据库,同时网站也拥有了自己的服务器端代码。Web2.0时代,网站拥有了很多功能,变成了WebApp。WebApp跟普通App不一样,普通App是直接安装在用户设备上的,但是WebApp却是存在于服务器上,所以所整个WebApp架构的核心其实是服务器。
5 J$ o+ L- }3 i- P) x1 o0 I
8 o, W2 J& Z# P4 ]1 c. b    最近十几年来,人们对这种服务器为中心架构非常喜欢,提出了云计算的概念,提出了Saas的概念,有大量的文章讨论过这种架构为何大大优于传统App架构。
. n% Y% B" m4 u9 `) o. s& P5 O; V, |; B4 Z3 G( @9 K* z$ ^
    传统架构的中心化问题
- `* i$ j. S" N2 n3 I7 U# K& H$ M' T- u) R
    但是传统的这种Web架构,有着自己的中心化问题。
2 `2 d* r* ?4 R" R7 X" Z  n' g7 A8 j9 J* H7 D% `) {6 H$ i: S9 s
    首先第一个问题是,大家都要去一台服务器上去挤,性能瓶颈明显。比如我要给你传递一个文件,虽然咱俩的计算机其实都是接入互联网的,但是我们是不能直接把文件从我的机器传直接递给你的机器的,而必须要经过服务器,例如Dropbox或者GoogleDrive的服务器。很明显,中间经过服务器这一步是没有必要的,很多人要传互相传文件,都走一个服务器,服务器压力很大。这些都是因为Web架构是client/server模式的,所有的公司的业务也都基于这个模式来运行,尽管本质上这种模式明显是有问题的。1 V; I: V8 L8 N9 I+ T6 g9 `, d5 o

2 j5 g5 x" R. J% a    第二个问题是隐私很难得到有效保护,数据所有权也很不清晰。因为所有的数据传递都经过服务器,所以服务器的拥有者,也就是商业公司,就能把持我们的数据。也就是说,不管我们是发邮件还是聊天,数据都是可以被第三方看到的。数据一般都是直接在服务器上明文存储的,攻击者只要拿下一台服务器,就能获得数以万计的用户数据,所以说用户的隐私是没有安全保障的。另外,用户的数据一旦存到服务器上,公司就会认为这些数据属于他们了,所以数据所有权不清晰,最近几年也成了一个很大的一个社会问题。1 w3 I$ Y$ U$ ?3 e: c4 \

5 Y3 c. h; p) T3 |, a2 \    总之,中心化Web的问题主要表现在性能瓶颈明显,以及数据所有权不清。8 ?; E; e; Z7 }0 G7 c( M7 O' `5 h

. P" k- X  q; V/ n2 y, Y+ p0 K- G    P2PWeb的优势" h6 ^* l+ [& C$ X) ~5 N
5 i. ~1 F  L! f$ L$ }
    如果未来Web改成了P2P架构,那么用户的隐私就可以得到保护,可以真正拥有自己的数据。
* U( }! @1 I: o( D- V; k
: m& S$ l* G% ~$ e4 I) m% w    我们来说说P2PWeb的基本原理。首先网站完全属于用户,没有一个中央服务器。所有文件的存储都是分布式的,都是P2P的,每个用户的机器都同时是客户端和服务器。我们发布网站的时候,只需要发布到自己的计算机上就可以,网站的访客越多,服务器也就越多,因为每个访客的数据都会被缓存,这样他们就成了服务器。同时每个人都会访问就近的服务器,减轻了网络压力。每个网站的链接不再是一个URL,而是一个哈希,或者是默克尔根。这样做的好处是,即使网站的所有文件分散到不同的服务器,而且这些服务器也不能全部保证安全和随时在线,但只要服务器足够多,那么网站数据也照样可以完好的下载到访客的机器上。所以也可以说,所有访问过我网站的机器,会组成一个分部式的服务器集群。
! J4 ?0 f" y$ B3 x( J; E
. x# s  q" \8 H7 _6 H    P2PWeb的好处也非常明显。一个是便宜,因为不用买服务器了。第二个是性能好,如果我的内容真的好,访客多了起来,那么相当与我的分布式服务器集群也会越来越强大,这个不需要我花钱。第三个是可以做很多以前不可想象的事情,同一个网站,例如facebook,可以有无数个版本,每个人都可以拥有自己独一无二的版本。理解默克尔树的概念之后,我们就会知道,其实这样网络上也不会浪费存储资源,因为多出来需要保存的只是数据的差异部分。每个版本通过一个新的哈希来发布,其他人只有拿到哈希,就可以访问到我的这个版本的网站了,也是非常的简单。7 n3 ~% _  f& y. G0 n$ r8 O

  {9 F! H+ \6 Z2 I    P2PWeb最大的一个优势可能就是数据终于掌握在用户自己的手里了。没有了中央服务器,当然也就没有了中心化的数据库。那么如果我们做一个P2P的twitter,然后上去注册一个新用户,那数据到底存放到哪里呢?这里要沿用的还是Unix哲学,一切皆文件。
. O3 M: F2 e+ @7 {( ^) z$ p; t+ G* q: ^. a" J4 R# M
    我自己的各项数据,是保存到一个json文件中的,而这个文件,如果我不去专门授权,也只能被我自己的机器访问,渲染出一个独一无二版本的属于我自己的网站。
# p5 B. v: c" n' M$ w8 j5 x1 N
; D+ i+ N0 a* \0 N    当然,我发布的一条twitter数据后,会授权我的好友去下载的。我的好友会根据我网站的哈希找到数据,下载到他们的机器上生去成他们自己的页面,而他们的点赞和评论数据也可以授权给我,我的机器上就可以用这些数据来渲染我的那个网站了。这样,常规的网站功能一样可以运行,同时数据的所属权是非常清晰的。" J; N! W/ a9 u: o4 v
) }; M7 ]  S% ~3 a1 M' g* E7 D
    总之,有了P2P的Web以前的很多中心化问题现在就变得不是问题了。0 c$ j6 x3 I7 t7 m, n
. M( y  Y7 n. d* h- e6 e# u2 W9 M
    总结
3 e6 b9 L9 Z5 z- t( D- m& E; C
, y) E' s  d0 x4 u- N4 k    关于P2P架构的Web,主体内容就是这些了。总结起来,传统的以HTTP连接起来的client/server模式的Web有着自己的各种中心化问题,例如性能容易遭遇瓶颈和非常不清晰的数据所有权。而P2P架构下,每个人都是服务器,数据就近访问,性能瓶颈不存在了,同时,每个人都只能获得自己的数据以及别人授权访问的数据,所以数据的所有权非常的清晰。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

了跳间球 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    2