RIA(一):B/S的三大弊端

网人说网   评论

业界巨头Adobe, Microsoft, Sun,接下来是Google; Apollo,Silverlight, JavaFX, 然后是Gear。互联网似乎似乎也加入了时装业30年复古的潮流。

apollo.jpg在讨论这个话题之前,让我们先看看传统计算机使用的变革过程。计算机刚刚出现的时候,由于其非常昂贵,个人只是面对一个用来显示和输入的终端,终端本身没有计算能里,只是键盘和显示器的组合,其背后是一台非常强大的主机,以划分CPU时间的方式轮流为用户服务(当然用户是不会感觉到的),这就是终端/主机(terminal/host)方式,所有的数据和程序都是集中在主机上保存和运行的。随着PC的出现使个人计算成为可能,随之出现了客户端/服务器(Cilent/Server)方式。客户端主要负责逻辑和计算,而服务器一般用来集中保存数据(数据库)

互联网的兴起,一种新的浏览器/服务器(Browser/Serve)方式出现在人们面前,最初只是浏览静态的web页面,随着互联网应用(如电子商务)和数据交换(如web邮箱)需求的增加,越来越多的技术出现了,首先是浏览器器客户端技术,如javascript,更复杂点的应用则需要java applet, activex, flash等浏览器本地化控件来完成。接着是web服务器端的技术,重量级如的J2EE,ASP.Net, 轻量级的如PHP等,但是我们可以发现,所有的数据和计算依然是跑在web服务器上,此时的互联网犹如计算机发明最初的主机时代,浏览器就好似当年的终端只是用来显示和接受输入。所有的数据储存,计算,以及格式化的页面代码生成都在web服务器上。

mainframe.jpg如果仅仅如此,也许并没有什么不妥,mainframe主机方式的应用在金融,电信等大型行业依然存在。但是以浏览静态页面发展而来的web应用有着天生的缺陷和对应用的滞绊。

首先web是以一问一答(request/response)的方式来完成信息交互的,并且是同步方式。如果有一问而没一答,我们就必须等待,等待答复完成才提出下一问。所谓web的一个页面就好像书本的一页那样,你一页没看完不能翻到下一页去,除非你放弃本页的浏览或功能。举个电子邮件的例子,在使用web邮箱时,你写完一封邮件提交,只有当此邮件提交完成,页面刷新到“邮件提交已完成”时,你才可以进入下一封邮件的书写。这不由得让人怀念起C/S的架构。当你使用本地邮件客户端(如outlook)书写邮件完成后,你可以按一下发送按钮,然后继续下一封邮件的书写,让客户端自行在后台完成邮件发送任务。这就是异步方式:先满足你书写下一封邮件的需求,邮件的提交至少不需要马上,而可以在后台偷偷进行。电子商务的购物车也是个例子,用户应当不必等待选购物品的提交刷新,就能继续购物。异步方式,让ajax成为了近两年互联网上改善用户浏览感受而最火的技术,但是所带来的技术成本,是BS的第一大弊端

firefox_ie.jpgweb的问题还不仅仅于此。在浏览静态页面时,各个静态页面并不构成一个需要前后关联的事务(transacton),因此不需要保存当前页面的状态,这好比你可以在一本书前后页随便翻阅。但是,这样的无状态方式在一个电子商务的应用中,就会存在问题。假如,一次完整的网上购物需要涉及4个页面,1)商品陈列选购; 2)货物总计结帐; 3)付款/送货方式确认;4)在线付款及交易确认。这就是一个有严格前后次序的事务,即前后步骤不可以颠倒也不可以缺失任何一个步骤直接到下一步,否则交易就不可能完成。当然,现今的技术并非不能控制(否则现在哪来的这么成熟的电子商务?),无论是客户端的cookie还是服务器端的session control,都是为了保证用户不可以在没有完成某一前置步骤的情况下,在地址栏里直接输入下一步地址跳转。服务器除了储存数据以外还需要额外的开销来保存用户状态(哪一步),程序开发人员也需要精心设计保证事务提交的次序和完整性。而这种大费周折的控制,对于C/S来说,因为程序流程本身就在本地实现,根本就是小菜一碟,只需要将整个流程完成的最后数据一次性提交给数据库就行了。无状态方式带来的会话控制成本,是BS的第二大弊端。

静态页浏览时代带给你的只是数据,比如你在网上书库看书,服务器对浏览器传输的数据就是书的内容本身。但人们慢慢发现,web应用不仅仅传送数据。整个网站的布局,修饰图片,大小button,CSS都是由服务器传送给浏览器用来生成显示的,而且随着每次页面的刷新,就要再次传送(虽然浏览器cache可以减轻这种反复传送)。这些界面控制信息,在用户的一次浏览体验中,往往是不变的。网络发展到今天,似乎已经失去了其数据交换的本意。office以writely的方式出现在我们面前,又一个”一切上网”和”web2.0″的大泡泡,难道,你真的用的很爽吗?但回过头来,我们很矛盾的发现,如果要界面漂亮,我们就必须忍受更长的页面调入时间,反之,同样的数据交换功能但纯文本的界面,则会让我们以为回到了远古时代。在C/S方式下,可充分利用个人计算能力显示出漂亮的界面,同时又与服务器端的数据分离,网络仅用来实现数据交换和共享。界面信息的冗余传输成本是BS的第三大弊端。

明日继续。。。

相关日志

发布评论

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS 登录
This blog is protected by Dave's Spam Karma 2: 8435 Spams eaten and counting...