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的看法,當然,可能還很不完整,這里我拋磚引玉啊,希望大家多多補充。
本文轉自?tonyxiaohome?51CTO博客,原文鏈接:http://blog.51cto.com/tonyxiaohome/198761?,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的GoogleAppEngine是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle存储过程的简单学习2
- 下一篇: FortiAnalyzer-VM 安装使