移動(dòng)應(yīng)用中間件PhoneGap與mastudio的本質(zhì)和來(lái)源分析
本文以兩種典型的移動(dòng)中間件類型作為支點(diǎn)進(jìn)行分析其本質(zhì)和來(lái)源,并以此作為延伸來(lái)描述更多中間件的定位和特點(diǎn)。
一、mastudio是什么?
mastudio是一個(gè)專業(yè)的企業(yè)級(jí)移動(dòng)應(yīng)用中間件,是一個(gè)綜合全面的移動(dòng)開(kāi)發(fā)平臺(tái),提供了從客戶端到服務(wù)器端完整的開(kāi)發(fā)環(huán)境和數(shù)據(jù)接入能力。其在實(shí)現(xiàn)企業(yè)信息移動(dòng)化上提供了便利的開(kāi)發(fā)手段。
企業(yè)級(jí)移動(dòng)信息化的一個(gè)重要特點(diǎn)就是原有的企業(yè)信息系統(tǒng)不希望受到影響,不希望在原有系統(tǒng)上進(jìn)行二次開(kāi)發(fā)來(lái)實(shí)現(xiàn)移動(dòng)化。這就需要移動(dòng)中間件能夠具有單向接入的能力。mastudio平臺(tái)在服務(wù)器端提供較強(qiáng)的接入能力,可以透過(guò)http協(xié)議訪問(wèn)各種企業(yè)級(jí)系統(tǒng)。
二、PhoneGap是什么?
PhoneGap是一個(gè)專業(yè)的移動(dòng)應(yīng)用開(kāi)發(fā)框架,是一個(gè)全面的WEB APP開(kāi)發(fā)的框架,提供了以WEB形式來(lái)訪問(wèn)終端設(shè)備的API的功能。這對(duì)于采用WEB APP進(jìn)行開(kāi)發(fā)者來(lái)說(shuō)是個(gè)福音,這可以避免了原生開(kāi)發(fā)的某些功能。
三、開(kāi)發(fā)模式和技術(shù)要求
在開(kāi)發(fā)模式上mastudio于PhoneGap有著截然不同的模式,下面以典型的hello world!為示范看兩者各實(shí)現(xiàn)的過(guò)程。
PhoneGap的Hello world!
開(kāi)發(fā)硬件需求:Mac 電腦+ iPhone手機(jī)+ Xcode 系統(tǒng)
開(kāi)發(fā)者技術(shù)需求:熟悉xcode object c++ html js css
以下開(kāi)發(fā)截圖來(lái)自phoneGap官方網(wǎng)站,首先打開(kāi)xcode 創(chuàng)建工程,然后添加index.html文件作為首頁(yè)顯示界面,最后編譯啟動(dòng)模擬器執(zhí)行。
mastudio的Hello world!
開(kāi)發(fā)硬件需求:PC 電腦+ iPhone手機(jī)
開(kāi)發(fā)者技術(shù)需求:html js css
以下開(kāi)發(fā)截圖來(lái)自mastudio開(kāi)發(fā)平臺(tái),首先打開(kāi)腳本編輯器,增加一個(gè)新文件helloWorld.mas,然后在其中調(diào)用wxWEBPAGE組件,組件中定義調(diào)用helloWorld.html文件,然后直接打開(kāi)手機(jī)登陸訪問(wèn)。
從上面的過(guò)程可以看出PhoneGap是基于xcode的原生開(kāi)發(fā)框架,需要開(kāi)發(fā)者使用mac電腦熟悉object c++開(kāi)發(fā)語(yǔ)言,而mastudio則是腳本開(kāi)發(fā)框架,開(kāi)發(fā)者使用普通PC電腦,熟悉一般性web基礎(chǔ)知識(shí)即可。
四、優(yōu)于PhoneGap的客戶端優(yōu)化
mastudio在客戶端方面有優(yōu)于PhoneGap的地方,其針對(duì)腳本使用方便性的特點(diǎn)進(jìn)行了優(yōu)化使用。這類優(yōu)化的調(diào)用通過(guò)html js可以很方便的實(shí)現(xiàn)了多窗口交互以及彈出新窗口等功能。
多窗口交互
啟動(dòng)彈出窗口
五、弱于PhoneGap的客戶端API
而PhoneGap的側(cè)重是客戶端的API調(diào)用,其提供了全面的終端上的開(kāi)發(fā)能力,比如調(diào)用手機(jī)的通訊錄、攝像、文件操作等??蛻舳薃PI是PhoneGap的全部,這是優(yōu)于mastudio的,而mastudio平臺(tái)則提供了一般常用的API調(diào)用,如短信、撥打電話燈。
六、PhoneGap所不具有的
PhoneGap只是單純的客戶端,mastudio中間件包含了客戶端和服務(wù)器部分,其提供的服務(wù)器具有強(qiáng)大的數(shù)據(jù)接入能力。
數(shù)據(jù)庫(kù)訪問(wèn)能力
mastudio服務(wù)器提供了訪問(wèn)sql server、oracle等各種數(shù)據(jù)庫(kù)的能力,客戶端可以很輕松的通過(guò)服務(wù)器獲取到數(shù)據(jù)。
http協(xié)議驅(qū)動(dòng)能力
對(duì)于OA一類的WEB系統(tǒng),需要登錄身份驗(yàn)證后才能訪問(wèn)到頁(yè)面內(nèi)容,mastudio服務(wù)器提供了wxEXPLORE組件能夠輕松訪問(wèn)各種web系統(tǒng),驅(qū)動(dòng)各種流程引擎、進(jìn)行身份認(rèn)證。
數(shù)據(jù)安全能力
PhoneGap提供了網(wǎng)絡(luò)訪問(wèn)協(xié)議的API,但是無(wú)法提供數(shù)據(jù)安全性的處理,因?yàn)檫@是需要服務(wù)器協(xié)作進(jìn)行的。mastudio服務(wù)器提供了客戶端數(shù)據(jù)流的安全加密處理,而這個(gè)處理是不需要開(kāi)發(fā)者介入就自動(dòng)集成擁有的。
七、兩種類型的總結(jié)
客戶端類型
PhoneGap屬于客戶端類型移動(dòng)中間件,其核心價(jià)值在于客戶端的全面的API,提供了跨平臺(tái)的開(kāi)發(fā)便利性,但其近限于客戶端應(yīng)用。
平臺(tái)類型
mastudio屬于綜合的移動(dòng)中間件,其核心價(jià)值在于提供了業(yè)務(wù)數(shù)據(jù)的接入能力,并和客戶端融合為一臺(tái),其客戶端的API僅為業(yè)務(wù)數(shù)據(jù)展現(xiàn)而準(zhǔn)備和封裝。
八、移動(dòng)中間件的延生
根據(jù)以上兩種類型的移動(dòng)中間件,市場(chǎng)還有眾多的延生產(chǎn)品,以客戶端類型為主導(dǎo)線的,如appCan、rexcee一類,他們的共同點(diǎn)在于針對(duì)PhoneGap的API模式進(jìn)行的高一層封裝,雖然還是提供了大量的API,但是讓開(kāi)發(fā)者方便的免去了原生開(kāi)發(fā)環(huán)境的搭建。這是一個(gè)進(jìn)步,但是由于進(jìn)行了高一層封裝,又導(dǎo)致了不可避免的調(diào)試問(wèn)題,當(dāng)封裝層出現(xiàn)問(wèn)題的時(shí)候,開(kāi)發(fā)者無(wú)能為力。
以平臺(tái)類型為主導(dǎo)的市場(chǎng)也有眾多延生產(chǎn)品,筆者根據(jù)各自官方網(wǎng)站的資料分析,以平臺(tái)類型的移動(dòng)中間件多用于企業(yè)級(jí)行業(yè)用戶,比如xmap、map、mkey一類,這類延生多是開(kāi)發(fā)項(xiàng)目中的模塊的簡(jiǎn)單提煉,并沒(méi)有形成產(chǎn)品化的平臺(tái),雖然官方資料號(hào)稱中間件產(chǎn)品,筆者認(rèn)為這類產(chǎn)品還不夠成熟,尚且達(dá)不到公開(kāi)發(fā)版測(cè)試的程度。
總結(jié):
作為移動(dòng)應(yīng)用,如果計(jì)劃采用移動(dòng)中間件,作為選型的標(biāo)準(zhǔn),筆者認(rèn)為應(yīng)當(dāng)根據(jù)自身的業(yè)務(wù)特點(diǎn)類型來(lái)選擇。如游戲、社交、電商、等類型則建議采用PhoneGap一類型的API客戶端中間件,而對(duì)于企業(yè)數(shù)據(jù)應(yīng)用、OA、Erp一類型,則建議采用mastudio一類型的中間件,這可以獲得成熟的網(wǎng)絡(luò)和數(shù)據(jù)接口基礎(chǔ)。