自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

踏出云應(yīng)用程序規(guī)劃的第一步

云計(jì)算
清華資工所博士班研究生王建興曾寫(xiě)過(guò)一篇博文《踏出云應(yīng)用程序規(guī)劃的第一步》,文中他為我們分享了“云計(jì)算”在應(yīng)用程序設(shè)計(jì)上會(huì)帶來(lái)哪些改變和影響。

清華資工所博士班研究生王建興曾寫(xiě)過(guò)一篇博文《踏出云應(yīng)用程序規(guī)劃的第一步》,文中他為我們分享了“云計(jì)算”在應(yīng)用程序設(shè)計(jì)上會(huì)帶來(lái)哪些改變和影響?,F(xiàn)把全文轉(zhuǎn)載以此,全文如下:

雖說(shuō)“云計(jì)算”有著和過(guò)去歷史相似的觀念,其中卻也有著一些新的想法,而這些想法具備了新的時(shí)代意義,也對(duì)程序設(shè)計(jì)產(chǎn)生了一些沖擊。

本文我們將來(lái)討論一下“云計(jì)算”在應(yīng)用程序設(shè)計(jì)上,究竟會(huì)有什么樣的改變和影響。

云計(jì)算最核心的觀念,在于將計(jì)算的重心擺在云。

何謂“云”即云所在的那一端。在網(wǎng)絡(luò)領(lǐng)域中,時(shí)常用云朵的圖案來(lái)代表網(wǎng)際網(wǎng)絡(luò),所以,“云計(jì)算”一詞,即代表透過(guò)網(wǎng)際網(wǎng)絡(luò)取用計(jì)算資源的一種計(jì)算型態(tài)。

倘若只抽象化到站在這個(gè)觀點(diǎn)上來(lái)看,便是從歷史的脈絡(luò)中可以理解,這種計(jì)算方式早在之前,便是人們已經(jīng)使用過(guò)的模式。

不過(guò),現(xiàn)今的云計(jì)算,有一些新的元素在里頭,這些元素不見(jiàn)得是新技術(shù)、新想法,在過(guò)去的研究文獻(xiàn)或探討中,這些想法或技術(shù)或許早就出現(xiàn)過(guò),但如今“云計(jì)算”這個(gè)詞語(yǔ),將所需的相關(guān)觀念集合在一塊,形成一個(gè)整體的想法。

我們處于一個(gè)可以持續(xù)連網(wǎng)的時(shí)代

為什么在這個(gè)階段,將計(jì)算擺到云上,又再度成為一個(gè)趨勢(shì)呢?

其中有一個(gè)重要的關(guān)鍵在于行動(dòng)裝置的盛行。這些行動(dòng)裝置,像是智能型手機(jī)、平板計(jì)算機(jī)、小筆電等等,計(jì)算力雖然還是遠(yuǎn)勝昔日的桌上型計(jì)算機(jī),但是相較于今日的個(gè)人計(jì)算機(jī),仍然算是計(jì)算力薄弱的計(jì)算裝置,這使得在此類(lèi)的裝置上進(jìn)行大量沉重的計(jì)算并不恰當(dāng)。

同時(shí),由于無(wú)線區(qū)域網(wǎng)絡(luò)愈來(lái)愈普及,加上3G網(wǎng)絡(luò)基礎(chǔ)建設(shè)愈來(lái)愈完備,這構(gòu)成了一個(gè)重要的先決條件──裝置幾乎無(wú)時(shí)無(wú)刻都能處理連網(wǎng)的狀態(tài)。這么一來(lái),計(jì)算力較為薄弱的行動(dòng)裝置透過(guò)網(wǎng)絡(luò)取用計(jì)算資源,便成了順理成章的選擇。

此外,因?yàn)槭褂谜叽蠖鄷?huì)在不同的裝置間切換,例如,在辦公室中使用筆記型計(jì)算機(jī)工作,接著在離開(kāi)辦公室后,可能還會(huì)透過(guò)手上的智能型手機(jī)讀取電子郵件,或者是利用實(shí)時(shí)通軟件和同事、朋友交換訊息?;氐郊液螅蛟S還會(huì)打開(kāi)像iPad之類(lèi)的平板計(jì)算機(jī),在客廳中閱讀、上網(wǎng)、順便回復(fù)郵件。由于每個(gè)使用者都可能運(yùn)用多個(gè)裝置處理事務(wù),但是,使用者又會(huì)希望在這些不同的裝置上都能處理相同的一組資料(例如電子郵件、或者是自己的記帳試算表)。

為了避免資料同步的麻煩及問(wèn)題,將資料、以及對(duì)資料的計(jì)算操作統(tǒng)一放置在云,同樣也成了十分理所當(dāng)然的想法。

云計(jì)算并非所有應(yīng)用程序的救贖,而從以上的描述不難看出,究竟何種應(yīng)用程序類(lèi)型適用云計(jì)算的觀念來(lái)設(shè)計(jì)、能從云計(jì)算的觀念獲得好處。

#p#

如何規(guī)劃應(yīng)用程序執(zhí)行的所在

云計(jì)算對(duì)應(yīng)用程序開(kāi)發(fā)所產(chǎn)生的第一項(xiàng)沖擊,便是讓?xiě)?yīng)用程序的設(shè)計(jì)者思考,將應(yīng)用程序切割成為兩個(gè)部分,一部分在裝置端,另一部分則擺放至云。

那么究竟應(yīng)當(dāng)如何切割呢?這是程序設(shè)計(jì)者在決定運(yùn)用云計(jì)算觀念來(lái)開(kāi)發(fā)應(yīng)用程序時(shí)馬上會(huì)面臨到的下一個(gè)問(wèn)題。要回答這個(gè)問(wèn)題,你必須思考,將程序擺放到云上,究竟具備了什么優(yōu)勢(shì)。

云相較于行動(dòng)裝置端,計(jì)算力更為充足,而且有值得信賴的電力供應(yīng),網(wǎng)絡(luò)連線不僅更為穩(wěn)定,可運(yùn)用的頻寬也更大,儲(chǔ)存空間當(dāng)然更為穩(wěn)固、容量也高出許多。這便是將程序放置到云可以獲得的好處。如果你的應(yīng)用程序中,有一部分需要重度的計(jì)算、耗時(shí)的計(jì)算,那么將它們放到云上,便會(huì)比擺到裝置端來(lái)得理想;如果你的應(yīng)用程序中,有一部分需要頻寬較大、較穩(wěn)定的連網(wǎng)環(huán)境,或者,需要更大、更保險(xiǎn)的儲(chǔ)存空間,那么要將這部分程序放置于何處,我想答案也很明顯。

例如,你打算開(kāi)發(fā)一套電子書(shū)的系統(tǒng),讓使用者可以透過(guò)各種裝置閱讀電子書(shū)。在你的應(yīng)用程序功能規(guī)劃中,希望讓使用者輸入某個(gè)關(guān)鍵字,就能搜尋出來(lái)文中含有該關(guān)鍵字的書(shū)籍,那么這個(gè)功能會(huì)放在云或者是裝置端呢?裝置端的儲(chǔ)存空間不可能存放所有的書(shū)籍,更別提要提供所有書(shū)籍全文檢索的功能,必須建立索引,而全文檢索的繁重運(yùn)算量也不適合放在裝置端進(jìn)行了?;趦?chǔ)存空間、計(jì)算量的考量,你會(huì)將這一部分的計(jì)算程序劃分至云。

那么什么樣的程序適合劃分至裝置端呢?裝置端的優(yōu)勢(shì)在于能和使用者直接溝通,能呈現(xiàn)聲光效果,能借便利的輸入方式獲得使用者的操作命令。換言之,處理使用者界面的程序碼十分適合劃分到裝置端。此外,如果計(jì)算量不是很繁重,而計(jì)算本身又必須有實(shí)時(shí)的反應(yīng),那么此種類(lèi)型的程序碼,也適合放在裝置端。

#p#

用MVC的模式來(lái)協(xié)助劃分程序責(zé)任范圍

有一個(gè)設(shè)計(jì)模式叫做MVC,將應(yīng)用程序畫(huà)分為三個(gè)責(zé)任各異的部分──Model(資料模型)、View(檢視)、Controller(控制器),其中Model代表的資料本身的表示方式以及操作資料的事務(wù)邏輯、View則負(fù)責(zé)資料的呈現(xiàn)。Controller則處于Model及View之間,負(fù)責(zé)控制應(yīng)用程序的流程,它負(fù)責(zé)處理事件并回應(yīng)事件“事件”,當(dāng)Model中的資料改變時(shí),負(fù)責(zé)更新View中的內(nèi)容,相反的,當(dāng)使用者透過(guò)View操作資料時(shí),也將他所做的變動(dòng)同步反映至Model中的資料。

當(dāng)我們運(yùn)用云的觀念時(shí),我認(rèn)為MVC的模式能協(xié)助我們劃分應(yīng)用程序的所在究竟在云或裝置端。最極端的情況,我們可以把View全部都放在裝置端,Model全部都放在云,當(dāng)然Controller介于其中。

也就是說(shuō),裝置端僅負(fù)責(zé)做畫(huà)面的呈現(xiàn)、接收來(lái)自于使用者的輸入或操作。操作、計(jì)算資料的工作,全部都丟上云來(lái)完成。當(dāng)裝置端需要存取資料,便透過(guò)網(wǎng)絡(luò),要求位在遠(yuǎn)端的云程序處理,并由它們回傳計(jì)算結(jié)果,接著再由裝置端的程序進(jìn)行計(jì)算結(jié)果的呈現(xiàn)。

當(dāng)然,正如前段所述,這是“極端”的情況,幾乎不讓裝置端上的程序處理太過(guò)“正經(jīng)”的程序碼。但裝置端并非毫無(wú)計(jì)算能力,只是較弱罷了,但真要上場(chǎng)殺敵,也不是全無(wú)辦法。

有時(shí)候,你還是會(huì)選擇將部分的資料、以及部分處理資料的程序碼放置在裝置端。主要的原因是,透過(guò)網(wǎng)絡(luò)連系云上的程序碼,會(huì)需要付出網(wǎng)絡(luò)通訊的延遲作為代價(jià),當(dāng)應(yīng)用程序需要呈現(xiàn)的資料結(jié)果必須反應(yīng)速度夠快時(shí),便不太適合總是調(diào)派云上的程序碼相助。

在這種情況,可以將少部分的資料及處理資料的程序碼置放在裝置端。舉例來(lái)說(shuō),應(yīng)用程序可能需要頻繁的取用資料,雖然“正港”的資料在云,但是,為了提供更快的反應(yīng)速度,可以在裝置端設(shè)計(jì)資料的快取機(jī)制,當(dāng)使用者界面要呈現(xiàn)資料時(shí),便可徑自快速取用,如此,存取速度便較透過(guò)網(wǎng)絡(luò)取得來(lái)得快上許多。

當(dāng)我們打算套用云計(jì)算的概念時(shí),所面對(duì)的第一個(gè)問(wèn)題,便是如何劃分程序的責(zé)任范圍。
 

【編輯推薦】

  1. 如何讓70%被閑置計(jì)算能力可獲運(yùn)用?
  2. 企業(yè)高管必問(wèn)的六個(gè)云計(jì)算問(wèn)題剖析
  3. 誰(shuí)更勝一籌 技術(shù)解析Google App Engine和Amazon EC2
  4. 一幅圖對(duì)比2010和2011十大技術(shù) 云計(jì)算排第一
  5. 當(dāng)微軟Azure遭遇亞馬遜EC2:五大關(guān)鍵區(qū)別
責(zé)任編輯:王勇 來(lái)源: IThome online
相關(guān)推薦

2021-01-15 18:17:06

網(wǎng)絡(luò)協(xié)議分層

2020-11-17 14:55:36

亞馬遜云科技遷移

2012-08-30 11:14:11

云計(jì)算虛擬化

2010-07-12 17:10:23

Android應(yīng)用程序

2013-04-03 09:22:14

虛擬化網(wǎng)絡(luò)虛擬化

2015-06-02 11:42:00

Cloud FoundAzure

2009-01-18 08:49:04

Java入門(mén)JDK

2019-11-20 10:54:46

無(wú)密碼身份驗(yàn)證網(wǎng)絡(luò)安全

2012-07-11 16:43:14

飛視美

2013-01-15 09:17:11

2010-07-01 13:44:12

2011-07-25 14:17:46

BSMIT運(yùn)維北塔

2018-02-10 11:24:39

Python數(shù)據(jù)程序

2021-08-24 05:07:25

React

2020-07-22 22:10:34

互聯(lián)網(wǎng)物聯(lián)網(wǎng)IOT

2013-04-03 14:25:22

虛擬化網(wǎng)絡(luò)網(wǎng)絡(luò)應(yīng)用網(wǎng)絡(luò)架構(gòu)

2015-10-28 22:25:45

SwiftAndroid應(yīng)用開(kāi)發(fā)

2010-11-30 17:42:10

2020-11-11 07:09:05

隔離直播系統(tǒng)

2024-02-26 10:08:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)