# Palm Pre全胡话之6 —和普通人说话：没有AppServer，也不一定有WebServer

- 作者：李楠
- 发布时间：2009-02-03 17:04
- 分类：公司
- 原文：https://www.ifanr.com/1346

软硬件皆没摸到，所以行文全无根据，毫不负责。   
本文有技术术语，但是一定有解释。不一定专业贴切，但是对于普通人，这么理解并不算错。

**术语**   
术语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](http://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](http://www.google.com)，不是在本地的。   
不知道下面的协议你看着眼熟不？![](http://bbs.ifanr.com/images/smilies/default/smile.gif)   
ed2k://\|server\|222.186.8.70\|4089\|/…

**本地功能**   
下面进入关键部分了。Firefox是可以理解http协议的，但是luna协议是他没学过的。怎么办？？？   
不知道也没啥，ed2k协议Firefox本来也不知道。   
但是，如果你装了电驴，再点这个协议，Firefox会启动电驴，把下载xx节目这件事，交给电驴这个本地程序完成。   
浏览器，在安装了本地程序（还包括浏览器插件或者系统注册之类的东西）之后，通过一个协议串，调用了本地功能。   
聪明的你一定能想到，Pre的OS，调用浏览器显示地址簿的时候，如果点发短信，这个协议串出现之后（luna://com.palm.messaging:…）将要发生些什么。   
系统整合的浏览器，通过插件/扩展/本地Service之类的东西，调用了本地功能（发短信）。   
这个过程，没Server什么事。

**最后的话**   
本文不是对[Uglee文章](http://bbs.ifanr.com/viewthread.php?tid=926&extra=page%3D1)的否定。![](http://bbs.ifanr.com/images/smilies/default/smile.gif)   
他的观点完全可以圆上（把本地资源调用和HTMLJavascript的发布都用（或者其中之一）Server解决。）。和本文一样，是一种能成立的可能性。都有可能对，也都有可能错。。。Time will tell.   
甚至，如果那个“App Server”的原意是本地Service（本地Service，本地程序，或者本地浏览器扩展或者什么，本地的都不太重要：））是一回事，那和本文在大构架上是差不多的。   
总之，分层的意义之一，就是在最合适的地方，做该做的事。而不是在手机上作所有的事。   
手机今天的任务就是扩展浏览器。Server级别的东西最终会出现在手机上，未来网络分散发布的结果，而不是Pre上市的时候。
