色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(上)

  可伸縮性是一種對(duì)軟件系統(tǒng)處理能力的設(shè)計(jì)指標(biāo),高可伸縮性代表一種彈性,在系統(tǒng)擴(kuò)展過(guò)程中,能夠保證旺盛的生命力,通過(guò)很少的改動(dòng),就能實(shí)現(xiàn)整個(gè)系統(tǒng)處理能力的增長(zhǎng)。

  在系統(tǒng)設(shè)計(jì)的時(shí)候,充分地考慮系統(tǒng)的可伸縮性,一方面能夠極大地減少日后的維護(hù)開(kāi)銷,并幫助決策者對(duì)于投資所能獲得的回報(bào)進(jìn)行更加精準(zhǔn)的估計(jì);另一方面,高可伸縮性的系統(tǒng)往往會(huì)具有更好的容災(zāi)能力,從而提供更好的用戶體驗(yàn)。

  WEB交互式系統(tǒng)的可伸縮性主要體現(xiàn)在兩個(gè)方面:

  • 平臺(tái)的可伸縮性:隨著WEB技術(shù)的發(fā)展,越來(lái)越多的平臺(tái)開(kāi)始使用WEB技術(shù)來(lái)構(gòu)建系統(tǒng),一方面不同的平臺(tái)提供的環(huán)境支持存在著各種差異;另一方面隨著平臺(tái)的發(fā)展,不斷的會(huì)有一些舊平臺(tái)退出歷史舞臺(tái),新平臺(tái)轉(zhuǎn)而成為主流平臺(tái);因此構(gòu)建的WEB系統(tǒng)需要能夠快速的響應(yīng)此類變化就需要其具備良好的平臺(tái)伸縮性
  • 模塊的可伸縮性:隨著系統(tǒng)功能不斷增刪更新需求的變化,系統(tǒng)可能會(huì)變得越來(lái)越復(fù)雜,冗余信息也可能會(huì)越來(lái)越多,改動(dòng)所帶來(lái)的影響范圍也可能會(huì)越來(lái)越大,因此良好的模塊伸縮性可保證系統(tǒng)具有良好的可維護(hù)性,讓系統(tǒng)始終處于最佳狀態(tài)

  WEB交互式系統(tǒng)的主要應(yīng)用包括:

  本系列文章主要分為兩個(gè)主要部分對(duì)可伸縮性進(jìn)行闡述,分別是平臺(tái)的可伸縮性和模塊的可伸縮性。本文是系列文章的第一篇,討論平臺(tái)的可伸縮性。

  平臺(tái)的可伸縮性

  WEB交互式系統(tǒng)對(duì)平臺(tái)的可伸縮性主要表現(xiàn)為:

  • 可擴(kuò)展性:對(duì)于新興平臺(tái)能夠快速進(jìn)行支持
  • 可縮減性:對(duì)于過(guò)時(shí)的平臺(tái)冗余信息能夠以最小的修改方式剔除

  我們先介紹一下WEB交互式系統(tǒng)的目標(biāo)平臺(tái)的情況。

  平臺(tái)分類

  根據(jù)系統(tǒng)所在容器的差異,我們將平臺(tái)分為瀏覽器平臺(tái)和混合應(yīng)用平臺(tái)兩大類。各分類的詳細(xì)說(shuō)明見(jiàn)下文所述。

  瀏覽器平臺(tái)

  按引擎劃分

  瀏覽器平臺(tái),按照主流引擎可以劃分為以下幾類:

  混合應(yīng)用平臺(tái)

  根據(jù)混合應(yīng)用的宿主平臺(tái)的差異,我們將混合應(yīng)用的目標(biāo)平臺(tái)分為以下幾類:

宿主

說(shuō)明

AndroidAndroid系統(tǒng)的混合應(yīng)用,瀏覽器引擎會(huì)自動(dòng)適配至Webkit
iosios系統(tǒng)的混合應(yīng)用,瀏覽器引擎會(huì)自動(dòng)適配至Webkit
WinPhoneWindows Phone系統(tǒng)的混合應(yīng)用,瀏覽器引擎會(huì)自動(dòng)適配至Trident
PC桌面應(yīng)用,采用CEF做為容器,瀏覽器引擎會(huì)自動(dòng)適配至Webkit

  平臺(tái)適配

  AOP(ASPect-Oriented Programming):面向切面的編程范式,其核心思想是將橫切關(guān)注點(diǎn)從主關(guān)注點(diǎn)中分離出來(lái),因此特定領(lǐng)域的問(wèn)題代碼可以從標(biāo)準(zhǔn)業(yè)務(wù)邏輯中分離出來(lái),從而使得主業(yè)務(wù)邏輯和領(lǐng)域性業(yè)務(wù)邏輯之間不會(huì)存在任何耦合性。

  這里我們可以借鑒AOP思想來(lái)實(shí)現(xiàn)平臺(tái)的適配策略,結(jié)合不同的平臺(tái)實(shí)現(xiàn)邏輯,我們可以認(rèn)為對(duì)于使用規(guī)范、標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯的部分為我們的主關(guān)注點(diǎn),而不同平臺(tái)可以做為若干的切面關(guān)注點(diǎn)進(jìn)行封裝,各平臺(tái)只需關(guān)注自己平臺(tái)下對(duì)標(biāo)準(zhǔn)的修正邏輯即可,因此可以通過(guò)增加、刪除平臺(tái)修正的切面邏輯來(lái)實(shí)現(xiàn)對(duì)不同平臺(tái)的適配。

  實(shí)現(xiàn)時(shí)我們首先提取標(biāo)準(zhǔn)業(yè)務(wù)邏輯,然后各平臺(tái)根據(jù)實(shí)際情況實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的修正:

  • 標(biāo)準(zhǔn)業(yè)務(wù)邏輯:主關(guān)注點(diǎn),這里主要是使用根據(jù)W3C、ES標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)的業(yè)務(wù)邏輯
  • 前置平臺(tái)修正邏輯:領(lǐng)域特定關(guān)注點(diǎn),主要是根據(jù)平臺(tái)特性對(duì)標(biāo)準(zhǔn)在該平臺(tái)下的修正,修正邏輯會(huì)先于標(biāo)準(zhǔn)邏輯執(zhí)行
  • 后置平臺(tái)修正邏輯:同前置平臺(tái)修正邏輯,也是領(lǐng)域特定關(guān)注點(diǎn),修正邏輯會(huì)在標(biāo)準(zhǔn)邏輯執(zhí)行后再執(zhí)行

  根據(jù)此思路我們對(duì)比以下兩段代碼:

  代碼一:目前常用的平臺(tái)適配方式

function doSomething(){    if(isTrident){        // TODO trident implement    }else if(isWebkit){        // TODO webkit implement    }else if(isGecko){        // TODO gecko implement    }else if(isPresto){        // TODO presto implement    }else{        // TODO w3c implement    }}// 上層應(yīng)用使用doSomething(1,2,3);

it知識(shí)庫(kù)構(gòu)建高可伸縮性的WEB交互式系統(tǒng)(上),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 乐昌市| 常熟市| 西昌市| 尉氏县| 卓资县| 六安市| 荥经县| 商水县| 宜州市| 阿城市| 合江县| 会泽县| 寻甸| 东山县| 广昌县| 晋江市| 积石山| 平武县| 承德县| 湄潭县| 林甸县| 辛集市| 鸡东县| 合肥市| 榆社县| 济源市| 连城县| 江山市| 鄢陵县| 镶黄旗| 同德县| 天镇县| 榆社县| 晴隆县| 昭苏县| 丰台区| 西宁市| 德化县| 乐昌市| 乌恰县| 建阳市|