GoogleAppEngine是什么?

这两天仔细思考了一下,GAE到底是什么?
我做事情,喜欢探讨一点背后的东东,抽象的东东,主要是因为这样可以更深地帮助我理解这个系统。我的理解,一个系统,只要对其有了一定了解,建立了世界观,知道它能做什么,不能做什么,写程序就会容易一点,起码大面上不会有什么错误。
最开始,我以为GAE是个虚拟主机,提供CGI功能,可以定制一些比较强大的网站。不过后来从深层次理解,发现这个理解并不正确。因为我发现,仅仅从虚拟主机的角度理解,可以说,GAE连1%的功能都没有发挥出来。
我们来看一台PC机有什么。有键盘鼠标,这是输入设备,有显示器,输出设备,内部有CPU,总线,内存,硬盘,有的还有光驱,然后有声卡,显卡,网卡,USB的其他设备连接手段。当然,电源机箱就不说了。
OK,我们来为这个PC机分分类,看我们大家花了几千块钱,到底买了什么东东:
1、输入,输出不说了,这是人机交互的必要手段。USB连接槽大约也是为这个目的服务的,那么,我们可以抽象一下,一台计算机需要人机交互能力。
2、网线,这个我的理解是“机机交互”能力,大家说是不是,就是两台计算设备之间实现数据交互的手段。
3、CPU、总线,我的理解是计算资源,就是完成我们最核心的数据计算业务。这个不用多说,没有就不叫计算机了。
4、硬盘,光盘,这个我的理解是永固性存储手段,其实计算机最大的应用,还是信息服务,就是把信息存下来,等需要用的时候,调出来使用。因此,永固存储能力几乎是每个完整的计算系统必须的。
5、内存,这个最难以理解,肯定不是永固存储,但说临时存储吧,它又是不可或缺的,一般不能用永固存储替代,因为硬盘什么的速度和内存比,还是太慢。同时,里面存储的数据很杂,很难归类,有操作系统的内核代码,有我们的程序,有程序的数据。不过,我认为,如果抽象到业务逻辑来说,内存更像是本次运行,本笔交易,以及某一个系统不同交易之间的一个临时数据存储区和共享变量交互区。
ok,当我们把一台PC机大卸八块之后,我们来看一个能干活的计算机系统需要啥,我的理解包含:计算能力,永固存储能力,计算中临时变量存储能力,多任务多用户系统中,跨服务,跨交易的数据交互能力,人机交互能力和机机交互能力。
那好,我们再来看看GAE
1、GAE提供程序开发手段,每一次用户访问能确保执行相应的程序模块,这说明什么?计算能力有了。
2、GAE提供最低500M永固存储,以数据库方式开发(不是关系型,是哈希型),需要的话,用户还可以进一步购买,并以Google的商业信誉做数据安全担保,这是永固存储能力,并且,我发现,这比我们PC机安全,因为硬盘可能坏,光盘可能发霉,病毒可能重做系统,而Google的商业化云计算运行保证,能最大可能保护资料不会丢失。
3、虽然GAE提供的是脚本式执行环境,看似每次用户访问交易,彼此之间互相看不到,但GAE同时提供的数据库访问和MemoryCache访问能力,其实已经跨交易实现了共享变量,这很重要,因为不同计算元之间的数据互动,是商业化大型系统的基本保证。一个没有共享变量区的多任务多用户系统毫无意义,充其量只能是n个小计算机的集合,不能起到1+1>2的作用。
4、机机交互不说了吧,这是网络服务器集群哦,天生的。另一方面,GAE从一开始就没有局限在Http服务器的范畴,它叫AppEngine,应用服务引擎,这意味着,客户端不管是人操作的浏览器,还是一个我们自己写的Client,都无所谓,只要符合协议标准,都可以请求服务。
5、人机交互,这个比较灵活,可能这也是GAE最不像计算机的地方。不过,当我们用浏览器打开一个服务,我们想想看,浏览器的窗口,是不是就是GAE的屏幕?我们的键盘和鼠标,这会是不是已经可以通过浏览器和GAE交互?
6、比较重要的来了。所有开发过多用户应用程序,尤其是网络应用程序的程序员,应该都有体会。系统要提供个性化服务,首先要能区别每个客户,这需要一整套用户管理系统,大家可能都做过类似的练习。用户管理系统,做起来其实很简单,就是个简单的数据库应用,但实施起来,最大的难度不在技术上,在商业信誉上,为什么呢,人家不信你,不愿意把隐私资料交给你,很多网络,拼命地用垃圾邮件,拉大家入伙,其实就是想解决这“最后一下回车”的问题。但使用GAE开发部署应用,GAE提供google自己的用户数据库验证访问,一个客户,只要注册过google的邮箱,天生就可以成为我们的客户,并且,这个有google的商业信誉担保,用户比较放心,这其实已经帮助大家解决了一个很大的运营商的难题:用户不肯入网。
7、最重要的来了,GAE提供GData服务,可以无缝整合Google提供的网页Office,企业办公平台的功能,这意味着什么,GAE开发的应用,一开始就可以提供Office办公能力。大家想想,目前哪个公司提供的ERP、EIP平台,能内置一套Office?说不要自己造轮子,呵呵,这么大的轮子,我也愿意用啊。
综上所述,我们来理解一下,GAE到底是什么?
1、GAE是一台计算机,一台完整的计算设备,其提供的永固存储能力,安全性还强于目前的PC个人计算设备。
2、GAE提供多任务多用户访问能力,应用开发者无需关心用户管理和个性化服务的困难,并且无需关心服务能力的扩容,一切都是无缝可获得的,并且,价格不贵。
3、GAE是一台按需定制的计算机,我们服务的客户群小,就免费,客户多了,就收费,并且可以无级增加,一点点增加,既满足我们当前的应用需求,又不会浪费钱。
4、GAE这台计算机不会贬值。Google建设了一个计算云,我们的GAE应用是运行在云上,我们不用担心PC升级换代导致的淘汰成本。
5、针对目前计算机的两大应用领域,办公和娱乐,GAE主要针对办公应用提出完整解决方案。
这就是目前我想到的几点GAE的看法,当然,可能还很不完整,这里我抛砖引玉啊,希望大家多多补充。

你可能感兴趣的:(职场,休闲,GoogleAppEngine)