关于计算模式的思考

这个题目好大,是的,确实很大,似乎适合那些在conference上做keynote的、动不动在业界几十年的人。不过如果只是思考,那就人人都可为之。
最近大半年左右的时间,因为工作的原因,也因为个人的兴趣,对cloud computing和mobile方面有一些了解,在看很多资料的同时也有些思考,写出来和大家交流一下。

俗话说,以史为鉴,所以回头看一些东西也许有助于思考现在和将来。
1. 了解计算机历史的人都知道,真正意义上的计算机刚出来的时候是庞然大物,使用的方式是要物理的接触,比如打孔纸带。

2. 后来出现了网络,人们可以远程的来操作,就变成了主机+终端的模式。这种模式下,计算主要还是在主机上完成的,终端充当的是输入和输出的角色。这种模式还有一个特点就是共享,一个主机可以分时的为多个终端服务,每个终端看起来都像自己有一台独立的机器。

3. 后来,PC出现了,每个人有自己的独立的主机了。从计算的模式来看,和最早的大机器没有本质的区别,但是小很多,便宜很多,方便很多。这个时候,很多的计算都是在这样的分散的机器上完成,比如文档的编辑。

4. 慢慢网络开始普及。很多机器连在一起,最初可能是比较平等的,都是不同的节点,可以共享文件,还是host to host的模式。 这些host可能有PC也有早期的其他类型的主机。

5. 有些host,开始专职的充当server的角色,而有些只是client。这就出现了server/client模式,越来越多不同类型的server。这是一种像人类社会一样很自然的演化。

6. C/S模式也有一些变种,比如三层结构,client + middle ware(中间件)+ backend server (such as DB)。举例来说,有段时间很流行的Windows Client + CICS/Tuxedo等事务处理中间件 + Oracle/DB2等数据库构成企业的核心业务系统,例如银行电信等等。甚至有四层的结构,Web client + Web server + middle ware + backend server。如果算是SAN/NAS等存储,可以有更多层了,不过从模式上没有本质的却别。

7. 然后开始流行B/S模式,就是浏览器 + web server,取代传统的windows client + 数据库等模式(比如PC/Delphi/VB client + DB)。
有 段时间一窝蜂都觉得B/S模式比C/S先进,做系统都要往B/S转。是的,B/S确实有不少好处,比如不需要装客户端,使用比较方便,维护起来也简单不 少。不过现在看起来,这两种模式还是并存的,大家去办各种业务的时候可以看看,超市、家电卖场、银行、电信、行政系统等等,你会发现两种都有。以我看到 的,似乎对内的系统C/S的还是蛮多的,但是public出来给用户的基本上是B/S,比如各种网上营业厅,毕竟为了查个话费要先装个电信的客户端不太 make sense。但是有很多对安全性要求很高的应用,比如证券和银行还是有自己独立的客户端。所以看起来,这两种模式应该还是会长期存在下去。

8. 上面说的有不少是企业相关的应用,下面我们来看看个人的应用。
自 PC兴盛起来之后,刚开始很多都是单机的软件,拿软件、光盘、U盘拷上去的。接下来两个方向开始了很大的发展,一个是应用的联网,一个是Web。前面的类 似于C/S的模式,很多工具开始联网来提供服务。后者则是接着互联网的大潮还是汹涌,早期主要是访问静态的网页,BBS,个人邮箱,个人主页等之类的应 用。
在这个时候,很多的工作还是需要本地的客户端来完成的,但是不同类型的应用状况也不太一样,有些是两种模式各自坚守的领域,比如Client做的文字编辑,图像处理,视频播放,Web做的网上购物。
但是到后来,界限原来越模糊,因为很多事情,本地client和web都能做了,比如下面这些。
下 载、听歌、看视频、电子银行、网络聊天、包括后来以gdocs为代表的online office,让大家突然发现办公软件也可以在浏览器里用了(blog里的很多文章都是在gdocs里面写的)。这个时候,两种模式的竞争也很激烈了,也 有很多经典的工具开始在竞争中消失了。

9. 从很多方面来看,在上面提到的模式竞争中,似乎web有比较压倒性的优势。以google为代表的一些厂商开始让web可以做越来越多的事情,于是很多人开始鼓吹browser based,似乎底下的OS开始变得没那么重要。从某些方面来讲似乎也确实是这样。

10. 说到计算模式,就不能不提到云计算。
客户端还在,虽然在变,因为毕竟是人在使用计算,所以还是需要一个交互的工具,尽管这个工具变得多样。粗浅的理解,改变的是两个方面。
一 是数据的存储,前面提到的PC相关的不少模式中,数据都在本地,在本地的PC上,比如文档、邮件、音乐、视频等,或者在本地(本公司)的服务器上。在很多 云计算相关的应用中,一个很大的改变就是数据跑到云端了,或者一开始就是在云端,在你不知道的某个地方的服务器里面,比如上面提到的一些应用。这种改变, 一方面减轻了client的存储压力,另一方面也减轻了计算的压力,也使得使用纯Web的client更容易了。
二是企业的server开始跑到 云端。一个典型的例子就是电子邮件,以前一个稍大的企业如果有自己的电子邮件域名,就必须自己维护电子邮件服务器,有很大的存储,同时还要购买邮件安全扫 描的产品。而后来很多东西跑到云端了,比如可以把安全扫描的防到云端,先滤一遍再收进来,这就是所谓的security hosting。更彻底的是把邮件服务器本身都放到云端了。比如gmail的企业版,看起来是自己的域名,后面其实和个人版的gmail差不多,所有的邮 件都存储在google的服务器里面,提供访问的控制,还有常见的antivirus,antispam等安全服务。管理员还是可以管理自己公司的账号, 但是已经不需要管理服务器,包括软件了。
类似的应用还有很多,比如HR系统(人员管理/工资管理等),CRM系统(例如salesforce.com),还有文档管理等等。这个方面有点类似于外包。目前看起来很多应用还在这种迁移的趋势中,既然是变迁,一定会得到新机会和失去已有的市场。

11. mobile application
从上面来看,似乎事情已经很复杂了。加上移动应用,会稍微更复杂一点。
Gartner 预计2013之后,移动互联网访问量会超过PC。这两年,移动智能终端更加如火如荼。iphone的火热,android系统越来越多的出货 量,windows phone 7也来势汹汹的刚发布,还有symbian和blackberry等老兵。除了智能手机之外,平板也开始在上网本之后开始蓬勃发展,ipad无疑加速了这 一进程,看看近期发布和将要发布的平板设备就知道了。
在这些设备上,上网,用浏览器上网无疑是一个很重要的功能,但是不可忽视的另一个趋势是 app。比如apple的iOS上的app,还有android的,数量也开始暴涨。对比PC,这个就相当于windows上的local client,当然多半也是可以联网的。很多的组织都开始推出自己的iphone版,android版,比如很多的报纸杂志、银行证券,还有很多面向大众 消费的公司,有愈演愈烈之势。这似乎是一种时尚,昨天看到汽车之家也出了iphone版的app。

我的ipad上的app已经快到200了,我已经开始遇到一个问题就是找应用,找到evernote或者goodreader都要翻好几屏。于是我在想:
a. 很多功能app和browser都能做,如何取舍?只做web或者app,还是如很多组织两个都做?还有一个变通的做法是web的移动版,比如sina出 了个ipad版,当web server检测到(通过http request的header)连上来的设备是ipad的时候,你可以选择切到ipad版,分辨率和内容组织都帮你调好了,阅读体验好很多。
b. 真的有做app的必要,还是赶时髦?因为发现有些app运行后很多功能还是打开浏览器来做的。
c. app越来越多怎么办?想想一个智能手机上装几百个app就觉得累。

相比而言,智能手机上的应用还没有PC上的那么成熟和丰富,所以早期有大量的跟风也很正常。不过我觉得经历这一段时间之后,应该会不太一样。
这里面可能涉及很多的问题,包括:
开发和维护一个或者多个平台的app的成本?
安全性的考虑。app会更好?
用户体验的考虑。app的定制程度更高?

说到移动方面,最近有个问题也觉得很有趣,那就是关于Google的Android的Chrome OS。
Chrome OS在去年发布了一个很初级的预览版之后今年马上就要发布第一个正式版本了,看起来它是一个web based的OS,设想应用都是在browser里面,而且据说他们要退出web app。粗浅的理解就是browser plugin,类似于在chrome browser上面的。所以还是主推web based的应用。另一方面,Android上似乎更多的还是app,当然你也可以用web的。这两个方向似乎是不太一样的。Chrome OS最早说是定位在上网本,现在看起来上网本已经被平板弄得不行了,而且有很多的厂家开始推出了基于Andriod的平板,比如三星,还有国内的中兴华 为。这个看起来很自然,因为从硬件上,高端的智能手机和ipad为代表的平板差不多,平板的屏幕通常大一些而已。因为时机和成熟度,Android在这上 面看来还会继续的发展,所以留给Chrome OS的空间在哪里?当然,这不是我们要烦的问题,而是他们自己要去想的。

不过从业界来看, 还是很有趣的一件事情,如果把PC和移动设备连在一起看,一边是Web主导OS不重要,另一方面是OS越来越多,除了 Windows,Linux,MacOS,又有iOS, Android,WM, Plam,Symbian,Blackberry等,还有马上要出来的Chrome,都在试图大量的发展。而且在平板这个中间地带,争夺会更加激烈。


只看这么多的平台是很乱,不过另一方面,可以用下面的几个基本的问题来思考。
1. 和用户直接打交道的终端,什么样的比较好?
    这一部分除了技术的原因,还有很大一部分是由人的生理决定的,人的视力、人的手掌和手指有多大、人的口袋大小,etc。

2. 数据在哪儿产生?存在哪儿?在哪儿使用?
    不同类型的应用特点不太一样。

3. 在哪里进行主要的计算?
    有些是计算密集型的,有些则不是,有些是可以放到云端的,有些必须在终端做,比如视频的解码和游戏的渲染(当然,带宽到一定程度也不一定)。

4. 通信的方式
    特别是对于移动设备而言,这也是一个很重要的因素。网络的可用性、延迟、带宽和资费也会影响到使用的方式。

后来三个方面还是没有离开计算机行业的三个基本方向: 运算、存储和传输。


因为个人的知识和眼界局限,可能很多也是很片面的看法,所以也欢迎大家补充讨论。:)

Ricky Q.

10/16/2010

 

你可能感兴趣的:(android,Web,server,chrome,browser,邮件服务器)