GoogleAppEngine是什么?
這兩天仔細(xì)思考了一下,GAE到底是什么?
我做事情,喜歡探討一點背后的東東,抽象的東東,主要是因為這樣可以更深地幫助我理解這個系統(tǒng)。我的理解,一個系統(tǒng),只要對其有了一定了解,建立了世界觀,知道它能做什么,不能做什么,寫程序就會容易一點,起碼大面上不會有什么錯誤。
最開始,我以為GAE是個虛擬主機,提供CGI功能,可以定制一些比較強大的網(wǎng)站。不過后來從深層次理解,發(fā)現(xiàn)這個理解并不正確。因為我發(fā)現(xiàn),僅僅從虛擬主機的角度理解,可以說,GAE連1%的功能都沒有發(fā)揮出來。
我們來看一臺PC機有什么。有鍵盤鼠標(biāo),這是輸入設(shè)備,有顯示器,輸出設(shè)備,內(nèi)部有CPU,總線,內(nèi)存,硬盤,有的還有光驅(qū),然后有聲卡,顯卡,網(wǎng)卡,USB的其他設(shè)備連接手段。當(dāng)然,電源機箱就不說了。
OK,我們來為這個PC機分分類,看我們大家花了幾千塊錢,到底買了什么東東:
1、輸入,輸出不說了,這是人機交互的必要手段。USB連接槽大約也是為這個目的服務(wù)的,那么,我們可以抽象一下,一臺計算機需要人機交互能力。
2、網(wǎng)線,這個我的理解是“機機交互”能力,大家說是不是,就是兩臺計算設(shè)備之間實現(xiàn)數(shù)據(jù)交互的手段。
3、CPU、總線,我的理解是計算資源,就是完成我們最核心的數(shù)據(jù)計算業(yè)務(wù)。這個不用多說,沒有就不叫計算機了。
4、硬盤,光盤,這個我的理解是永固性存儲手段,其實計算機最大的應(yīng)用,還是信息服務(wù),就是把信息存下來,等需要用的時候,調(diào)出來使用。因此,永固存儲能力幾乎是每個完整的計算系統(tǒng)必須的。
5、內(nèi)存,這個最難以理解,肯定不是永固存儲,但說臨時存儲吧,它又是不可或缺的,一般不能用永固存儲替代,因為硬盤什么的速度和內(nèi)存比,還是太慢。同時,里面存儲的數(shù)據(jù)很雜,很難歸類,有操作系統(tǒng)的內(nèi)核代碼,有我們的程序,有程序的數(shù)據(jù)。不過,我認(rèn)為,如果抽象到業(yè)務(wù)邏輯來說,內(nèi)存更像是本次運行,本筆交易,以及某一個系統(tǒng)不同交易之間的一個臨時數(shù)據(jù)存儲區(qū)和共享變量交互區(qū)。
ok,當(dāng)我們把一臺PC機大卸八塊之后,我們來看一個能干活的計算機系統(tǒng)需要啥,我的理解包含:計算能力,永固存儲能力,計算中臨時變量存儲能力,多任務(wù)多用戶系統(tǒng)中,跨服務(wù),跨交易的數(shù)據(jù)交互能力,人機交互能力和機機交互能力。
那好,我們再來看看GAE
1、GAE提供程序開發(fā)手段,每一次用戶訪問能確保執(zhí)行相應(yīng)的程序模塊,這說明什么?計算能力有了。
2、GAE提供最低500M永固存儲,以數(shù)據(jù)庫方式開發(fā)(不是關(guān)系型,是哈希型),需要的話,用戶還可以進(jìn)一步購買,并以Google的商業(yè)信譽做數(shù)據(jù)安全擔(dān)保,這是永固存儲能力,并且,我發(fā)現(xiàn),這比我們PC機安全,因為硬盤可能壞,光盤可能發(fā)霉,病毒可能重做系統(tǒng),而Google的商業(yè)化云計算運行保證,能最大可能保護(hù)資料不會丟失。
3、雖然GAE提供的是腳本式執(zhí)行環(huán)境,看似每次用戶訪問交易,彼此之間互相看不到,但GAE同時提供的數(shù)據(jù)庫訪問和MemoryCache訪問能力,其實已經(jīng)跨交易實現(xiàn)了共享變量,這很重要,因為不同計算元之間的數(shù)據(jù)互動,是商業(yè)化大型系統(tǒng)的基本保證。一個沒有共享變量區(qū)的多任務(wù)多用戶系統(tǒng)毫無意義,充其量只能是n個小計算機的集合,不能起到1+1>2的作用。
4、機機交互不說了吧,這是網(wǎng)絡(luò)服務(wù)器集群哦,天生的。另一方面,GAE從一開始就沒有局限在Http服務(wù)器的范疇,它叫AppEngine,應(yīng)用服務(wù)引擎,這意味著,客戶端不管是人操作的瀏覽器,還是一個我們自己寫的Client,都無所謂,只要符合協(xié)議標(biāo)準(zhǔn),都可以請求服務(wù)。
5、人機交互,這個比較靈活,可能這也是GAE最不像計算機的地方。不過,當(dāng)我們用瀏覽器打開一個服務(wù),我們想想看,瀏覽器的窗口,是不是就是GAE的屏幕?我們的鍵盤和鼠標(biāo),這會是不是已經(jīng)可以通過瀏覽器和GAE交互?
6、比較重要的來了。所有開發(fā)過多用戶應(yīng)用程序,尤其是網(wǎng)絡(luò)應(yīng)用程序的程序員,應(yīng)該都有體會。系統(tǒng)要提供個性化服務(wù),首先要能區(qū)別每個客戶,這需要一整套用戶管理系統(tǒng),大家可能都做過類似的練習(xí)。用戶管理系統(tǒng),做起來其實很簡單,就是個簡單的數(shù)據(jù)庫應(yīng)用,但實施起來,最大的難度不在技術(shù)上,在商業(yè)信譽上,為什么呢,人家不信你,不愿意把隱私資料交給你,很多網(wǎng)絡(luò),拼命地用垃圾郵件,拉大家入伙,其實就是想解決這“最后一下回車”的問題。但使用GAE開發(fā)部署應(yīng)用,GAE提供google自己的用戶數(shù)據(jù)庫驗證訪問,一個客戶,只要注冊過google的郵箱,天生就可以成為我們的客戶,并且,這個有g(shù)oogle的商業(yè)信譽擔(dān)保,用戶比較放心,這其實已經(jīng)幫助大家解決了一個很大的運營商的難題:用戶不肯入網(wǎng)。
7、最重要的來了,GAE提供GData服務(wù),可以無縫整合Google提供的網(wǎng)頁Office,企業(yè)辦公平臺的功能,這意味著什么,GAE開發(fā)的應(yīng)用,一開始就可以提供Office辦公能力。大家想想,目前哪個公司提供的ERP、EIP平臺,能內(nèi)置一套Office?說不要自己造輪子,呵呵,這么大的輪子,我也愿意用啊。
綜上所述,我們來理解一下,GAE到底是什么?
1、GAE是一臺計算機,一臺完整的計算設(shè)備,其提供的永固存儲能力,安全性還強于目前的PC個人計算設(shè)備。
2、GAE提供多任務(wù)多用戶訪問能力,應(yīng)用開發(fā)者無需關(guān)心用戶管理和個性化服務(wù)的困難,并且無需關(guān)心服務(wù)能力的擴容,一切都是無縫可獲得的,并且,價格不貴。
3、GAE是一臺按需定制的計算機,我們服務(wù)的客戶群小,就免費,客戶多了,就收費,并且可以無級增加,一點點增加,既滿足我們當(dāng)前的應(yīng)用需求,又不會浪費錢。
4、GAE這臺計算機不會貶值。Google建設(shè)了一個計算云,我們的GAE應(yīng)用是運行在云上,我們不用擔(dān)心PC升級換代導(dǎo)致的淘汰成本。
5、針對目前計算機的兩大應(yīng)用領(lǐng)域,辦公和娛樂,GAE主要針對辦公應(yīng)用提出完整解決方案。
這就是目前我想到的幾點GAE的看法,當(dāng)然,可能還很不完整,這里我拋磚引玉啊,希望大家多多補充。
本文轉(zhuǎn)自?tonyxiaohome?51CTO博客,原文鏈接:http://blog.51cto.com/tonyxiaohome/198761?,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的GoogleAppEngine是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle存储过程的简单学习2
- 下一篇: FortiAnalyzer-VM 安装使