MBaaS深度評(píng)測(cè):構(gòu)建移動(dòng)應(yīng)用程序的五朵云
譯文【51CTO譯文】MBaaS(移動(dòng)后端即服務(wù))是一類很新的產(chǎn)品,它在很大程度上取代了MEAP(移動(dòng)企業(yè)應(yīng)用程序平臺(tái))。在過(guò)去的幾個(gè)月間,我認(rèn)真仔細(xì)地分析了五種MBaaS系統(tǒng):AnyPresence、Appcelerator、FeedHenry、Kinvey和Parse。我在本文中將總結(jié)這五種系統(tǒng),介紹它們的共同之處和主要區(qū)別,并給出相應(yīng)結(jié)論。
MBaaS的基本想法是,移動(dòng)應(yīng)用程序需要可以在諸應(yīng)用程序之間共享的常用服務(wù),而不是專門針對(duì)每個(gè)應(yīng)用程序開(kāi)發(fā)服務(wù)。使用MBaaS的移動(dòng)應(yīng)用程序遵循了松散耦合的分布式架構(gòu),而MBaaS系統(tǒng)本身通常擁有比MEAP系統(tǒng)更加分布式的架構(gòu),后者往往采用統(tǒng)一的中間件服務(wù)器。
MBaaS系統(tǒng)通常提供這些功能特性:推送通知、文件存儲(chǔ)及共享、與Facebook和推特等社交網(wǎng)絡(luò)整合、位置服務(wù)、消息傳遞及聊天功能、用戶管理、運(yùn)行業(yè)務(wù)邏輯的功能以及使用情況分析工具。面向企業(yè)的MBaaS系統(tǒng)還提供了與現(xiàn)有的應(yīng)用軟件和數(shù)據(jù)庫(kù)整合的功能。
后端并不是孤立存在的,所以MBaaS系統(tǒng)提供了某種級(jí)別的移動(dòng)客戶端支持。這種支持包括:從將REST API(應(yīng)用編程接口)暴露在所有來(lái)者面前,到為iOS、安卓、某些版本的JavaScript以及可能其他移動(dòng)平臺(tái)提供應(yīng)用程序生成功能,不一而足。
此外,后端需要加以定制和編程,于是MBaaS系統(tǒng)提供了結(jié)合在線開(kāi)發(fā)環(huán)境和桌面開(kāi)發(fā)環(huán)境的機(jī)制。最后,后端服務(wù)的目的在于確保持續(xù)運(yùn)作,所以它們需要一定程度的應(yīng)用程序監(jiān)控和錯(cuò)誤日志機(jī)制,另外還有使用情況分析機(jī)制。監(jiān)控和分析可能由MBaaS廠商直接提供,也可能通過(guò)與第三方服務(wù)整合來(lái)提供。
另外一個(gè)優(yōu)點(diǎn)是,MBaaS系統(tǒng)可生成移動(dòng)SDK(軟件開(kāi)發(fā)工具包)。當(dāng)廠商將其服務(wù)暴露在從事移動(dòng)應(yīng)用程序開(kāi)發(fā)的合作伙伴面前時(shí),這極其有用。此外,MBaaS系統(tǒng)能夠支持移動(dòng)應(yīng)用程序的離線運(yùn)作和離線/在線數(shù)據(jù)庫(kù)同步。MBaaS系統(tǒng)可能提供自己的移動(dòng)設(shè)備管理,或者與移動(dòng)設(shè)備管理(MDM)廠商實(shí)現(xiàn)整合。MBaaS系統(tǒng)可能還在適當(dāng)情況下支持針對(duì)特定設(shè)備的服務(wù),比如iOS設(shè)備上的iBeacon。
共性與區(qū)別
在測(cè)評(píng)FeedHenry、Kinvey、Appcelerator、Parse和AnyPresence的過(guò)程中,某些功能和實(shí)現(xiàn)方法顯得非常熟悉。比如說(shuō),所有五種MBaaS產(chǎn)品都提供了使用MongoDB存儲(chǔ)數(shù)據(jù)的機(jī)制,這是一種存儲(chǔ)JSON對(duì)象的開(kāi)源NoSQL文檔數(shù)據(jù)庫(kù)。所有這些產(chǎn)品都為各自的MongoDB數(shù)據(jù)存儲(chǔ)區(qū)提供了數(shù)據(jù)設(shè)計(jì)用戶界面(UI),這些UI外觀都很相似。要是這些UI都基于相同的MongoDB示例代碼,我也不會(huì)感到驚訝。
這五種MBaaS系統(tǒng)在多租戶模式云環(huán)境下均可使用。它們都有在線說(shuō)明文檔,都提供了推送通知和用戶驗(yàn)證API,都在某種程度上支持原生的iOS和安卓應(yīng)用程序,都為開(kāi)發(fā)人員實(shí)現(xiàn)自定義服務(wù)器邏輯提供了某種方式。
這些產(chǎn)品之間的差異頗為顯著。比如說(shuō),它們支持與企業(yè)應(yīng)用程序和數(shù)據(jù)庫(kù)整合的程度不一,有的只提供調(diào)用返回JSON的外部REST接口這一基本功能,有的與常見(jiàn)應(yīng)用程序和數(shù)據(jù)庫(kù)深度整合。開(kāi)發(fā)人員實(shí)現(xiàn)某一種與MBaaS整合的企業(yè)機(jī)制所需的時(shí)間長(zhǎng)短不一,長(zhǎng)的需要數(shù)天,短的只要幾分鐘,這取決于某一家MBaaS廠商之前為特定的整合做了多少量的工作。
一些MBaaS系統(tǒng)可在企業(yè)內(nèi)部使用,另一些可在私有云中使用。還有一些采用托管模式,符合《健康保險(xiǎn)可攜性及責(zé)任性法案》(HIPAA)、支付卡行業(yè)(PCI)、聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)和歐盟數(shù)據(jù)安全等標(biāo)準(zhǔn)。有些有自己的測(cè)試功能,有些提供了移動(dòng)應(yīng)用程序的云構(gòu)建功能。
有些支持HTML5和混合應(yīng)用程序。有些可將JavaScript編譯成原生設(shè)備代碼。有些支持PhoneGap,有些支持Apache Cordova,有些避免這兩種包裝器來(lái)編寫混合應(yīng)用程序,改而采用其他解決方案,比如生成原生應(yīng)用程序。
有些在Node.js上運(yùn)行后端,有些在Rails上運(yùn)行,還有一些在未特定規(guī)定的平臺(tái)上運(yùn)行。有些支持黑莓、Windows Phone 8、Windows 8或Unity等客戶端。
有些將應(yīng)用程序和后端集成開(kāi)發(fā)環(huán)境(IDE)托管在云端,有些提供支持多平臺(tái)的桌面IDE,有些有桌面命令行接口,用于云控制。有些支持多種流行的JavaScript框架,比如Backbone和Angular;有些使用自己的JavaScript框架,這些框架可能對(duì)特定的開(kāi)源框架進(jìn)行了改動(dòng)。
MBaaS五虎將
正如我們所見(jiàn),不同的MBaaS廠商瞄準(zhǔn)的市場(chǎng)略有不同,做出的技術(shù)選擇也略有不同。不過(guò),它們都存在很大的重疊和共性。
AnyPresence
AnyPresence的目的不僅僅是幫助企業(yè)為移動(dòng)應(yīng)用程序構(gòu)建后端。AnyPresence結(jié)合了應(yīng)用程序構(gòu)建功能、后端服務(wù)和API網(wǎng)關(guān)。
AnyPresence有一個(gè)在線設(shè)計(jì)器,可以生成后端代碼、移動(dòng)應(yīng)用程序代碼,甚至定制的移動(dòng)API代碼。所有生成的代碼都可以下載到兼容平臺(tái)上,并且在上面編輯和運(yùn)行。以AnyPresence經(jīng)常提到的一個(gè)客戶為例,萬(wàn)事達(dá)卡(MasterCard)就使用AnyPresence,讓合作伙伴能夠按照萬(wàn)事達(dá)卡的Open API服務(wù),輕松地構(gòu)建移動(dòng)應(yīng)用程序。
AnyPresence可以為jQuery、安卓(XML布局)和iOS(故事版)生成應(yīng)用程序UI(或入門套件,如果你希望的話),它還可以為Java、安卓、HTML5、Windows Phone、Xamarin和iOS生成應(yīng)用程序SDK。設(shè)計(jì)環(huán)境將生成的JavaScript/HTML5 SDK稱為“jQuery”。事實(shí)上,AnyPresence其實(shí)生成的CoffeeScript使用Underscore庫(kù)、Backbone庫(kù)和jQuery庫(kù)。
AnyPresence可以為Ruby on Rails生成后端服務(wù)器軟件。在未來(lái),它還有望生成Node.js后端,這將是一件好事。AnyPresence環(huán)境生成的程序可以部署到Heroku(通常用面向Rails后端)、亞馬遜S3(通常面向HTML5應(yīng)用程序)以及原生iOS和安卓應(yīng)用程序,有沒(méi)有Apperian安全不好說(shuō)。不過(guò),你并不受制于AnyPresence的部署選擇。生成的代碼總是可以下載并部署到別處,假設(shè)你擁有兼容的部署環(huán)境。
AnyPresence的應(yīng)用程序構(gòu)建選擇屏幕。請(qǐng)注意:可以生成種類廣泛的SDK和種類較少的原型應(yīng)用程序UI。
AnyPresence設(shè)計(jì)環(huán)境處于在線,可在大多數(shù)瀏覽器里面運(yùn)行。設(shè)計(jì)環(huán)境有儀表板,設(shè)置屏幕,創(chuàng)建及監(jiān)控環(huán)境、部署和代碼構(gòu)建的屏幕,生成和部署應(yīng)用程序、后端和SDK的屏幕,添加及管理數(shù)據(jù)源和數(shù)據(jù)對(duì)象的屏幕,用于授權(quán)、角色和驗(yàn)證策略的屏幕,用于自帶和自定義插件的屏幕,接口設(shè)計(jì)器以及一套可以定制的主題。
我覺(jué)得數(shù)據(jù)源的種類很廣泛,所提供的MongoDB數(shù)據(jù)存儲(chǔ)區(qū)的實(shí)現(xiàn)與其他MBaaS系統(tǒng)大同小異。AnyPresence的過(guò)人之處在于數(shù)據(jù)模型在整個(gè)設(shè)計(jì)環(huán)境當(dāng)中的整合方式以及整合到所有已生成代碼中的方式。
你可以添加大多數(shù)監(jiān)控整合(比如Airbrake和New Relic)的地方藏在Deployments/Add-ons選項(xiàng)卡的深處。很自然,監(jiān)控依賴運(yùn)行時(shí)環(huán)境,而AnyPresence旨在做到與環(huán)境無(wú)關(guān)。想與Splunk整合,你就得在后端上啟用syslog輸出,以便將所有的日志/事件推送到Splunk系統(tǒng),用于報(bào)告和監(jiān)控。
Appcelerator
Appcelerator Titanium扎根移動(dòng)開(kāi)發(fā)領(lǐng)域已有好幾個(gè)年頭了,本地開(kāi)發(fā)環(huán)境能夠?qū)avaScript編譯成針對(duì)iOS、安卓及其他目標(biāo)平臺(tái)的原生代碼。該公司在2014年7月份發(fā)布了Appcelerator Studio 3.3和Appcelerator平臺(tái)2.0,之后添加了一款MBaaS,擁有大約25套API、支持Node.js以及在線分析功能。此外,Appcelerator發(fā)布了MBaaS接口,廣大開(kāi)發(fā)人員可以將這些接口添加到用原生SDK構(gòu)建的應(yīng)用程序中,不過(guò)它還沒(méi)有在其自己的Appcelerator Studio IDE中支持原生SDK。
開(kāi)發(fā)人員在在線Appcelerator儀表板的概覽頁(yè)上一眼就能看清應(yīng)用程序安裝、會(huì)話、API調(diào)用和崩潰的概況。儀表板的其他部分便于云管理、測(cè)試、性能度量和分析。
Cloud面板顯示使用情況、暴露數(shù)據(jù)管理、顯示API請(qǐng)求及推送通知日志、列出自定義服務(wù)以及允許云配置。測(cè)試面板使用了SOASTA的TouchTest作為一種整合的移動(dòng)測(cè)試解決方案。性能面板讓你可以監(jiān)控自己的應(yīng)用程序,并排查性能、崩潰和異常情況。它還讓你可以查看崩潰趨勢(shì)、與錯(cuò)誤跟蹤系統(tǒng)整合起來(lái)以及配置你的監(jiān)控機(jī)制。
Appcelerator平臺(tái)的儀表板顯示了演示的Field Service應(yīng)用程序的概況。崩潰有意被編碼到應(yīng)用程序中。
開(kāi)發(fā)人員可以在線定義和查看Appcelerator分析工具,另外可以視需要,將所選擇的分析工具發(fā)布到iPad版Appcelerator Insights應(yīng)用程序,通常供管理人員使用。
Appcelerator平臺(tái)讓你可以使用Studio和Appcelerator的Node.ACS MVC(模型/視圖/控制器)框架,構(gòu)建自定義的后端服務(wù)。Node.ACS結(jié)合了Node.js、Express以及Appcelerator云服務(wù)的接口。Appcelerator還讓你可以在其云平臺(tái)上運(yùn)行普通的Node.js應(yīng)用程序。
Appcelerator在客戶端有多個(gè)框架以及面向云端的多個(gè)API類型。在客戶端的基本層面,Appcelerator提供了Titanium SDK,該SDK在JavaScript和原生服務(wù)之間提供了一種接口。在較高層面,Appcelerator提供了Alloy框架,該框架基于模型/視圖/控制器架構(gòu),包含對(duì)Backbone和Underscore的內(nèi)置支持。你通過(guò)Studio構(gòu)建一個(gè)新的客戶端應(yīng)用程序時(shí),通常生成的是使用Ally的應(yīng)用程序。
Alloy框架可以處理你對(duì)離線/在線數(shù)據(jù)同步的一部分需要,但無(wú)法滿足全部需要。除了面向SAP和Salesforce.com的數(shù)據(jù)連接器外,Appcelerator缺少預(yù)先配置的、經(jīng)過(guò)審查的企業(yè)數(shù)據(jù)連接器。不過(guò),由于它可以在其Node.ACS服務(wù)上運(yùn)行Node模塊,開(kāi)發(fā)人員可以利用來(lái)自Node.js社區(qū)的模塊。Appcelerator唯一的商用同步服務(wù)器目前僅限于微軟Dynamics連接器。
FeedHenry
FeedHenry致力于支持企業(yè)業(yè)務(wù)應(yīng)用程序,這是一種基于Node.js、面向企業(yè)的MBaaS和移動(dòng)應(yīng)用程序平臺(tái)。它提供了一系列廣泛的整合,同時(shí)擁有在線和離線開(kāi)發(fā)選項(xiàng),協(xié)作式應(yīng)用程序構(gòu)建以及拖放式表單構(gòu)建器。FeedHenry在2010年從愛(ài)爾蘭研究所(Irish Research Institute)分離出來(lái),2014年9月被紅帽收購(gòu)。
FeedHenry聲稱在各大云上都有全球性基礎(chǔ)設(shè)施,支持內(nèi)部后端部署。FeedHenry在線環(huán)境直接與GitHub整合,實(shí)現(xiàn)協(xié)作和版本控制功能。
FeedHenry 3為iOS、安卓和Windows Phone 8支持原生的SDK,另外支持使用Apache Cordova的混合應(yīng)用程序、HTML5移動(dòng)Web應(yīng)用程序、Sencha、Xamarin和Appcelerator Titanium。鑒于FeedHenry云的JavaScript接口的工作方式,很難找到不兼容的JavaScript框架。
用JavaScript為FeedHenry編寫應(yīng)用程序時(shí),你可以在HTML中添加feedhenry.js腳本,用$fh.init來(lái)初始化,然后從$fh名稱空間調(diào)用云功能。FeedHenry可以從Zip文件或Git軟件庫(kù)導(dǎo)入現(xiàn)有的應(yīng)用程序。
FeedHenry包括一個(gè)在線編輯器,支持離線工具,還有一個(gè)命令行接口。我們?cè)谶@里看到的是移動(dòng)應(yīng)用程序,屏幕中間是代碼編輯器,右邊是預(yù)覽圖。你可以在在線界面的另一個(gè)面板中配置后端服務(wù)。
FeedHenry構(gòu)建服務(wù)的功能與Adobe PhoneGap Build如出一轍,可以將HTML5應(yīng)用程序變成二進(jìn)制代碼程序,適用于安卓、黑莓、iPhone、iPad、iOS(通用)以及Windows Phone。每個(gè)二進(jìn)制程序可以連接到你的一個(gè)MBaaS實(shí)例,它可以針對(duì)開(kāi)發(fā)、分發(fā)或發(fā)行等應(yīng)用而構(gòu)建,具體視平臺(tái)而定。
FeedHenry有一個(gè)拖放式表單構(gòu)建器,擁有種類豐富的模板,可以用作起始點(diǎn)。不過(guò)我在測(cè)評(píng)FeedHenry時(shí),功能完備的應(yīng)用程序模板數(shù)量并不多。
FeedHenry在精選模塊列表中列出了50多個(gè)Node.js插件。該列表包括大多數(shù)主要關(guān)系數(shù)據(jù)庫(kù)和NoSQL數(shù)據(jù)庫(kù)的接口。要是該精選列表上沒(méi)有你所要找的模塊,那么全面得多的Node社區(qū)模塊列表可能會(huì)列有與之匹配的模塊。
FeedHenry可在各大公有云和私有云上運(yùn)行,還可以在一系列廣泛的IaaS和PaaS基礎(chǔ)設(shè)施上運(yùn)行。FeedHenry在歐洲和北美都運(yùn)行一個(gè)符合HIPAA的云環(huán)境和多個(gè)活動(dòng)集群。
Kinvey
Kinvey自稱是一個(gè)完整的移動(dòng)和Web應(yīng)用程序平臺(tái)。它提供廣泛的客戶端支持,與主要的企業(yè)數(shù)據(jù)庫(kù)整合,還提供后端數(shù)據(jù)存儲(chǔ)區(qū)、文件存儲(chǔ)區(qū)、推送通知、移動(dòng)分析、iBeacon支持以及在后端運(yùn)行自定義代碼的功能。
Kinvey推銷時(shí)將IT部門視作主要的客戶群,因?yàn)樗峁┝似髽I(yè)平臺(tái),不是面向一兩個(gè)應(yīng)用程序,而是面向企業(yè)里面的成千上萬(wàn)個(gè)應(yīng)用程序。不過(guò),它還積極支持眾多應(yīng)用程序的開(kāi)發(fā)者社區(qū)。
Kinvey支持原生應(yīng)用程序、混合應(yīng)用程序和HTML5應(yīng)用程序。它為iOS和安卓提供了原生工具包支持。此外,它還支持Angular、Backbone、Node.js、Apache Cordova/PhoneGap和Appcelerator Titanium,它還提供了一套R(shí)EST API。Kinvey通過(guò)代碼庫(kù)和API調(diào)用與應(yīng)用程序整合起來(lái),期望你在本地編輯應(yīng)用程序。
Kinvey云代碼用JavaScript編寫,不過(guò)不是Node.js,實(shí)現(xiàn)在線編輯。除了使用標(biāo)準(zhǔn)的JavaScript和外部服務(wù)外,它還可以使用Kinvey API實(shí)現(xiàn)眾多功能,比如日志、訪問(wèn)組合、發(fā)送推送通知、發(fā)送電子郵件、驗(yàn)證請(qǐng)求、日志和時(shí)間功能、異步處理、顯示Mustache模板以及獲取后端上下文。云代碼可以在駐留在處理鉤子的函數(shù)和自定義端點(diǎn)中。云代碼在Kinvey中實(shí)現(xiàn)內(nèi)部版本控制。
Kinvey組合使用MongoDB,MongoDB提供了供應(yīng)用程序使用的無(wú)模式、非SQL數(shù)據(jù)庫(kù)。該屏幕讓你可以創(chuàng)建和設(shè)計(jì)組合(只需要?jiǎng)?chuàng)建步驟),并選擇是啟用還是繞過(guò)你的數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯。
Kinvey支持部署在幾乎任何云上,當(dāng)然包括私有云。這包括部署到符合HIPAA的設(shè)施以及完全位于歐盟國(guó)家的設(shè)施。連Kinvey的多租戶模式云也被認(rèn)為對(duì)大多數(shù)應(yīng)用程序來(lái)說(shuō)足夠安全,因?yàn)樵摴緦?shí)現(xiàn)了端到端加密,使用數(shù)據(jù)鏈路的客戶可以將數(shù)據(jù)庫(kù)里面的數(shù)據(jù)放在本企業(yè)的防火墻后面保管起來(lái)。如果你有一臺(tái)Google App Engine服務(wù)器,可以將它連接到你的Kinvey后端。
驗(yàn)證工作可以由Kinvey在內(nèi)部完成,也可以通過(guò)商務(wù)版和企業(yè)版中的LDAP或活動(dòng)目錄來(lái)完成。Kinvey還通過(guò)OAuth,支持Facebook、推特、Google+和LinkedIn身份。
Kinvey數(shù)據(jù)鏈路連接到Kinvey的MongoDB數(shù)據(jù)存儲(chǔ)區(qū)。在大多數(shù)情況下,客戶將CRUD(創(chuàng)建、讀取、更新和刪除)請(qǐng)求直接轉(zhuǎn)發(fā)到實(shí)際后端,但一些客戶將數(shù)據(jù)緩存在MongoDB中。Kinvey目前為微軟Dynamics CRM、Salesforce CRM、甲骨文數(shù)據(jù)庫(kù)和微軟SQL Server提供了相應(yīng)的數(shù)據(jù)鏈路。
Kinvey提供了自動(dòng)化控制機(jī)制,實(shí)現(xiàn)離線數(shù)據(jù)同步:要是應(yīng)用程序處于離線狀態(tài),就自動(dòng)從緩存獲取數(shù)據(jù)。要是應(yīng)用程序處于在線狀態(tài),就從網(wǎng)絡(luò)獲取數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在緩存中。使用自動(dòng)化控制,只要設(shè)備再次處于在線狀態(tài),你的Kinvey應(yīng)用程序就會(huì)試圖同步任何本地存儲(chǔ)的數(shù)據(jù),但如果服務(wù)器數(shù)據(jù)也出現(xiàn)了變化,就會(huì)發(fā)生沖突。你可以將設(shè)置沖突解決策略設(shè)置成clientAlwaysWins、serverAlwaysWins或自定義沖突解決功能。
Parse
Parse一度是MBaaS領(lǐng)域的典范,盡管已被Facebook收購(gòu),但它對(duì)容積有限的消費(fèi)級(jí)應(yīng)用程序來(lái)說(shuō),仍是一種切實(shí)可行、容易見(jiàn)效的移動(dòng)后端。說(shuō)到優(yōu)點(diǎn)方面,其說(shuō)明文檔完備,提供了良好的原生客戶端支持和基于Backbone的JavaScript客戶端SDK。Parse還可以在后端運(yùn)行JavaScript代碼,這為開(kāi)發(fā)人員提供了全是JavaScript應(yīng)用程序堆棧這一選項(xiàng)。至于缺點(diǎn)方面,Parse遺漏了企業(yè)應(yīng)用程序必不可少的重要功能,比如數(shù)據(jù)整合、離線操作以及在線/離線同步。與此同時(shí),其價(jià)格似乎針對(duì)容積較小的應(yīng)用程序。
Parse支持原生移動(dòng)應(yīng)用程序、JavaScript應(yīng)用程序和桌面應(yīng)用程序。在移動(dòng)端,它為iOS、安卓和Windows Phone 8提供了原生支持。在桌面端,它支持OS X和Windows 8(.Net),另外還支持Unity游戲。
Parse讓你可以在云端運(yùn)行JavaScript代碼,使用與客戶端一樣的Parse JavaScript SDK。Parse提供了一款命令行工具,可用于管理Parse云中的代碼,還讓你可以使用電腦上經(jīng)常使用的JavaScript編輯器,而不是像FeedHenry和Kinvey那樣,經(jīng)常在瀏覽器中編輯云代碼。不過(guò),你可以在儀表板中查看代碼和日志。命令行工具集多種角色于一體:應(yīng)用程序框架生成器、應(yīng)用程序部署工具、日志打印器、應(yīng)用程序回滾工具以及自動(dòng)更新器。
Parse云數(shù)據(jù)瀏覽器讓你可以導(dǎo)入批量數(shù)量,添加類、列和欄,以及查看過(guò)濾后的數(shù)據(jù)。
Parse可以將推送通知發(fā)送到iOS、安卓、Windows 8和Windows Phone 8。不管在哪種情況下,你都要配置推送服務(wù)器,然后將一個(gè)或多證書提供給你的應(yīng)用程序。
Parse有一個(gè)相當(dāng)全面的預(yù)定義用戶系統(tǒng),包括為匿名用戶提供了通常的注冊(cè)機(jī)制,帶有電子郵件驗(yàn)證和條款。訪問(wèn)控制列表(ACL)系統(tǒng)控制著每個(gè)用戶可以讀取和寫入什么數(shù)據(jù)。至于那些較為復(fù)雜的使用場(chǎng)合,Parse支持角色層次體系,為每個(gè)角色提供了一層單獨(dú)的ACL。
Parse與其他服務(wù)共有九種整合。其中三種:Mailgun、Mandrill和SendGrid用于發(fā)送電子郵件。Stripe用于信用卡收費(fèi)。Twilio負(fù)責(zé)發(fā)送短信和語(yǔ)音消息。第三方模塊還可用來(lái)將Parse與Cloudinary、Instagram和Paymill整合起來(lái)。
據(jù)我所知,實(shí)現(xiàn)企業(yè)數(shù)據(jù)與Parse整合需要為數(shù)據(jù)源編寫REST Web服務(wù)包裝器、為Parse編寫JavaScript模塊。除了使用Parse自己的多租戶模式云外,我還沒(méi)有見(jiàn)過(guò)托管Parse的任何辦法。
大大改進(jìn)的MBaaS
正如你從本文末尾列出的評(píng)測(cè)分?jǐn)?shù)可以看到,AnyPresence得分最高:總分9.1分,并獲得了“編輯選擇獎(jiǎng)”。我覺(jué)得,AnyPresence為需要將現(xiàn)有系統(tǒng)與移動(dòng)應(yīng)用程序整合起來(lái)的企業(yè)提供的價(jià)值超過(guò)其他產(chǎn)品,因?yàn)槌藨?yīng)用程序和后端外,它還可以通過(guò)你的模型和設(shè)計(jì)生成定制的SDK。不過(guò),每年收費(fèi)“高達(dá)六位數(shù)”,因而并不適合每家企業(yè)的預(yù)算。
FeedHenry的總分為8.6分,也是一款面向企業(yè)的MBaaS。FeedHenry與Git實(shí)現(xiàn)了很好的整合,可用于協(xié)作和版本控制;它的托管應(yīng)用程序構(gòu)建服務(wù)、Node.js后端和精選Node模塊列表,還有拖放式表單構(gòu)建器,我都很喜歡。與AnyPresence一樣,F(xiàn)eedHenry可能也不適合每家公司的預(yù)算。
Kinvey的產(chǎn)品總分為8.3分,這家公司既吸引著開(kāi)發(fā)者社區(qū),又吸引著企業(yè)的IT部門。我喜歡Kinvey通過(guò)其內(nèi)部的NoSQL數(shù)據(jù)庫(kù)API提供企業(yè)數(shù)據(jù)鏈路的方式,也喜歡其為后端業(yè)務(wù)邏輯設(shè)計(jì)鉤子的方式。
我批評(píng)Appcelerator的地方是,它顯然沒(méi)有竭力精選數(shù)據(jù)整合模塊;我認(rèn)為,它相對(duì)于FeedHenry和Kinvey較高的價(jià)格可能會(huì)降低總體價(jià)值,因而總分只有7.8分。不過(guò),Appcelerator這家公司只是最近才轉(zhuǎn)戰(zhàn)MBaaS領(lǐng)域。它可能需要填補(bǔ)產(chǎn)品的缺失功能,調(diào)整價(jià)格,才能提高競(jìng)爭(zhēng)力。
最后,我認(rèn)為Parse很適合為面向消費(fèi)者的移動(dòng)應(yīng)用程序、而不是企業(yè)應(yīng)用程序構(gòu)建和運(yùn)行后端,那是由于它缺少任何數(shù)據(jù)連接器,只有一個(gè)基本的REST客戶軟件。我對(duì)Parse所持的另一大保留意見(jiàn)是按使用收費(fèi)的價(jià)格,雖然這讓開(kāi)發(fā)人員很容易上手,但是可能讓一家資金不足的初創(chuàng)公司很苦惱:要是初創(chuàng)公司突然有一款熱門應(yīng)用程序,卻沒(méi)有正兒八經(jīng)的商業(yè)模式,更是如此。得分僅7.6分,在這組產(chǎn)品中墊底。
這倒不是說(shuō)你不該使用Parse。這是一種切實(shí)可行、容易見(jiàn)效的入門方式,后端作為服務(wù)來(lái)提供。不過(guò),如果你選擇使用它,就要睜大眼睛,密切關(guān)注費(fèi)用。
就企業(yè)應(yīng)用程序而言,AnyPresence和FeedHenry在易用性和功能方面一路領(lǐng)先。Kinvey并非遠(yuǎn)遠(yuǎn)落在后面,其價(jià)格對(duì)小公司來(lái)說(shuō)更實(shí)惠。
記分卡 |
后端服務(wù) (20%) |
客戶端支持 (20%) |
易用性 (20%) |
整合 (20%) |
監(jiān)控 (10%) |
價(jià)值 (10%) |
總分 |
Parse |
8 |
8 |
8 |
6 |
8 |
8 |
7.6 ★★★ |
Kinvey |
9 |
9 |
8 |
7 |
8 |
9 |
8.3 ★★★★ |
FeedHenry 3 |
9 |
9 |
8 |
9 |
8 |
8 |
8.6 ★★★★ |
Appcelerator平臺(tái) 2.0.0 |
8 |
8 |
8 |
7 |
9 |
7 |
7.8 ★★★ |
AnyPresence |
9 |
9 |
9 |
10 |
8 |
9 |
9.1 ★★★★★ |
布加迪編譯