Palm Pre全胡话之6 —和普通人说话:没有AppServer,也不一定有WebServer
软硬件皆没摸到,所以行文全无根据,毫不负责。
本文有技术术语,但是一定有解释。不一定专业贴切,但是对于普通人,这么理解并不算错。
术语
术语1 本地Service和Server
以网络的观点,本地Service和Server,是不同的概念。(虽然有时候Server表现为Service的形态)
本地Service,就是本地跑的服务(程序)。比如你按Ctrl+Alt+Del,甭出来的任务管理其中的某些线/进程。
Server,指服务器(上的程序),比如你输入Google.com,某个网络上的Server会处理你的请求,返回一个Google的页面给浏览器。
术语2 本地和服务器
同样,以网络的观点,区分本地和服务器,更是基本当中的基本。
Javascript是本地脚本,意味着它是Download到本地,由浏览器(而不是webserver)解析。
服务器端脚本呢?一个例子是Php,Hipda的读者注意浏览器的URL部分,http://www.hi-pda.com/forum/forumdisplay.php?fid=12中的forumdisplay.php,就是一个服务器端脚本。本地没有forumdisplay.php这个文件。web server解析了php,然后把结果发给浏览器。
术语3 Web server和App server
Web server和App server。J2EE语境下两个词皆有特定含义。你知道他们都是Server就好了。
分层
那么以网络的观点,WebOS,表现为什么样子呢?
1 本地
最不被关心的部分。
管他是什么OS,上面有什么本地Framework,什么类库,什么本地Services。反正统统叫做本地就好了,提供最基本的功能。连接能力,绘图运算和交互能力,存储空间等等。
2 浏览器
是比较重要的部分。所以虽然是本地的一部分,但是被单独提出来。
能多大程度的操作本地资源。怎样和服务器交互。UI表现出怎样的特性等等。
3 网络服务
当然重要。
涉及一些标准协议框架,一些server,应用服务,热部署,分布部署,动态负载平衡,应用服务管理,数据库等等。你都不用管。
手机上用不着这么高级的东西。知道web server大概是啥就行了。
有人怒了,这不是什么都没说吗?但其实,你已经建立起最基本的,清晰的分层了。
OS和浏览器的整合
现在请同学们打开一个本地程序,资源管理器,然后在里面输入www.google.com。。。资源管理器变成IE了~~~
OS和浏览器的整合,自当年MS那个影响深远的反垄断官司始。到臭名昭著的ActiveX,告于段落。之后通过flash,ajax,ff andon,新HTML标准等等,继续发展。
普通人不用管那么多,知道PC上浏览器越来越强大,和OS结合越来越紧密就好了。
手机上不过是重复PC上的事儿。
WebOS,本地和浏览器整合的更加紧密。
有人提到Palm的地址簿也是通过mojo构架写的。说明以前作为本地程序的地址簿,很可能是调用浏览器来表现内容。没错,和刚刚你在资源管理器里看到的差不多。
这里涉及一个问题,浏览器表现人名列表没问题(比如Firefox上也能跑一个WebOS的地址簿),但是如果你再Firefox点发短信,会怎么样?
认为能发出短信的同学可以结束这篇文章了。
协议
发短信的功能,会被一个协议的串描述。
luna://com.palm.messaging:…
如果浏览器会汉语,他会这么读:
luna协议下,调用palm公司的信息程序(or 本地Service or xxx一再说过了,我们不关心本地,你知道他在本地就好了。理由?这里没有制定远程地址。)
类似的
http://www.google.com
也是个协议的串www.google.com,不是在本地的。
不知道下面的协议你看着眼熟不?
ed2k://|server|222.186.8.70|4089|/…
本地功能
下面进入关键部分了。Firefox是可以理解http协议的,但是luna协议是他没学过的。怎么办???
不知道也没啥,ed2k协议Firefox本来也不知道。
但是,如果你装了电驴,再点这个协议,Firefox会启动电驴,把下载xx节目这件事,交给电驴这个本地程序完成。
浏览器,在安装了本地程序(还包括浏览器插件或者系统注册之类的东西)之后,通过一个协议串,调用了本地功能。
聪明的你一定能想到,Pre的OS,调用浏览器显示地址簿的时候,如果点发短信,这个协议串出现之后(luna://com.palm.messaging:…)将要发生些什么。
系统整合的浏览器,通过插件/扩展/本地Service之类的东西,调用了本地功能(发短信)。
这个过程,没Server什么事。
最后的话
本文不是对Uglee文章的否定。
他的观点完全可以圆上(把本地资源调用和HTMLJavascript的发布都用(或者其中之一)Server解决。)。和本文一样,是一种能成立的可能性。都有可能对,也都有可能错。。。Time will tell.
甚至,如果那个“App Server”的原意是本地Service(本地Service,本地程序,或者本地浏览器扩展或者什么,本地的都不太重要:))是一回事,那和本文在大构架上是差不多的。
总之,分层的意义之一,就是在最合适的地方,做该做的事。而不是在手机上作所有的事。
手机今天的任务就是扩展浏览器。Server级别的东西最终会出现在手机上,未来网络分散发布的结果,而不是Pre上市的时候。