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

全方位認(rèn)識移動后端即服務(wù) MBaaS

譯文
移動開發(fā)
假使你還沒有開始構(gòu)建移動體驗(yàn),就能為自己的移動應(yīng)用程序構(gòu)建一個完整的后端――該后端在數(shù)據(jù)同步、推送通知支持、用戶管理和文件處理等方面功能齊全,那會怎么樣?假使該后端采用的架構(gòu)讓你可以在這個后端上輕松構(gòu)建新的跨平臺的原生應(yīng)用程序和Web應(yīng)用程序,那又會怎么樣?

【51CTO譯文】假使你還沒有開始構(gòu)建移動體驗(yàn),就能為自己的移動應(yīng)用程序構(gòu)建一個完整的后端――該后端在數(shù)據(jù)同步、推送通知支持、用戶管理和文件處理等方面功能齊全,那會怎么樣?假使該后端采用的架構(gòu)讓你可以在這個后端上輕松構(gòu)建新的跨平臺的原生應(yīng)用程序和Web應(yīng)用程序,那又會怎么樣?

雖然這聽起來可能如同天方夜譚,但這正是移動后端即服務(wù)(MBaaS)提供商旨在為廣大應(yīng)用程序開發(fā)人員所提供的。至于這對你構(gòu)建的移動體驗(yàn)而言是不是屬實(shí),就由你來斷定。

我希望通過本文,你能夠獲得四個部分的重要信息:MBaaS提供商多適合現(xiàn)代的移動應(yīng)用程序開發(fā)、評估MBaaS提供商的方法,MBaaS提供商提供的核心功能,以及使用這種解決方案面臨的不足。掌握了這些信息,你就可以很方便地確定MBaaS提供商是不是適合你的數(shù)字化戰(zhàn)略。

為討論設(shè)定基調(diào)

使MBaaS方面的討論規(guī)范化極具挑戰(zhàn)性。雖然MBaaS是一個已得到接受的術(shù)語,但每個人對它的定義各不一樣。Kinvey公司最近以圖形的方式盤點(diǎn)了諸多后端即服務(wù)企業(yè)解決方案提供商(http://www.kinvey.com/enterprise-mobility-ecosystem-map)。這張圖闡明了一個全面而廣泛的生態(tài)系統(tǒng),界定不同的解決方案群組可能極具挑戰(zhàn)性。

企業(yè)移動生態(tài)系統(tǒng)圖

由于市場格局在時時刻刻發(fā)生變化,想在某一個時刻弄清楚所有的玩家并非易事。不過,幾家重要提供商已在這個市場證明了自己的地位。Parse、Kinvey和Salesforce.com等提供商都構(gòu)建了成熟的平臺,人們每天使用的許多應(yīng)用程序目前就依賴這些平臺。其他比較新興的解決方案仍需要時間來加以評估,比如亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)的Cognito、微軟Azure的Mobile Services、蘋果的CloudKit、Kony MobileFabric和Pivotal CF。橫向比較MBaaS提供商面臨的另一個重大挑戰(zhàn)就是,并非所有的提供商都有同樣的功能特性。

請注意:就這篇文章而言,我將側(cè)重介紹Parse和Kinvey,一則是由于它們很成熟,二則是由于它們功能廣泛。這兩款解決方案都適用于大多數(shù)使用場合,從獨(dú)立開發(fā)人員的應(yīng)用程序,到跨多個數(shù)字化項(xiàng)目的企業(yè)解決方案,都適合。

實(shí)際環(huán)境中的MBaaS

為了幫助解釋MBaaS的用途,我將舉一個例子,我們最近從Universal Mind的研究開發(fā)小組獲得了這個例子。我們在Universal Mind的所有辦公室都有靈活的辦公區(qū)。我們想要看一下如何使用iBeacon來跟蹤可用的辦公區(qū)。

iBeacon是一類傳感器,遵守蘋果公司的iBeacon規(guī)范。它們使用藍(lán)牙4低能耗協(xié)議來進(jìn)行通訊,這讓應(yīng)用程序可以在不消耗用戶電池電量的情況下不斷搜尋iBeacon。說到確定用戶的鄰近性(用戶離某物體有多近),它們是再理想不過的傳感器;在某些環(huán)境下(比如室內(nèi)),它們比使用GPS更合適。

作為概念證明,我們想建立一個快速的跨平臺應(yīng)用程序原型,闡明可以如何大規(guī)模地運(yùn)用這個概念。應(yīng)用程序本身相當(dāng)基本。下面簡單概述了描述應(yīng)用程序?qū)⑷绾握_\(yùn)行的數(shù)據(jù)關(guān)系:

•用戶擁有帳戶。

•如果用戶離位于某個站點(diǎn)的iBeacon的位置足夠近,用戶可以被分配給工作區(qū)。

•工作區(qū)可能被占用,也可能空著。

•工作區(qū)位于在特定位置的辦公室。

•用戶可以列出那個點(diǎn)附近的所有空著的工作區(qū)。

在這個應(yīng)用程序例子中,我將介紹兩種不同的場景。首先,我們會看一下如何不用MBaaS解決方案來構(gòu)建該應(yīng)用程序。然后,我會介紹如何使用MBaaS解決方案來實(shí)際構(gòu)建應(yīng)用程序,以此作為比較。這樣一來,你就會清楚地看到需要的工作量大不一樣。

[[126985]]

這是Universal Mind的研究開發(fā)小組開發(fā)的移動應(yīng)用程序原型的視圖。

不用MBaaS

為了構(gòu)建這個跨平臺應(yīng)用程序,我們需要落實(shí)一些核心的組件:

•服務(wù)器

我可以啟動一個AWS彈性計算云(EC2)實(shí)例,并運(yùn)行Node.js服務(wù)器。我甚至可以使用Elastic Beanstalk或OpsWorks,處理一些常見的部署過程。

•數(shù)據(jù)庫

由于我著眼于AWS,可以使用關(guān)系數(shù)據(jù)庫服務(wù)(RBS)或DynamoDB作為數(shù)據(jù)存儲區(qū)。還有一個選擇就是在AWS上部署另一個解決方案,比如MongoLab。

•服務(wù)

我可以構(gòu)建與數(shù)據(jù)庫之間的全面整合,然后暴露基于REST的服務(wù),那樣就便于對數(shù)據(jù)執(zhí)行創(chuàng)建讀取更新刪除(CRUD)操作。

•用戶管理和安全

我需要加入作為數(shù)據(jù)一部分的用戶實(shí)體,然后將服務(wù)里面的許可權(quán)限與某個用戶及/或某個用戶組擁有的數(shù)據(jù)聯(lián)系起來。此外,我需要為用戶賦予進(jìn)行注冊、重置密碼、刪除帳戶等操作的功能。

•推送通知

在部署到EC2服務(wù)器上的這個Node.js應(yīng)用程序里面,我需要整合允許面向iOS和安卓,實(shí)現(xiàn)跨平臺通知的幾個模塊中的一個。雖然大多數(shù)繁重任務(wù)將在這些開源模塊里面進(jìn)行處理,但我仍需要將應(yīng)用程序邏輯與通知整合起來。

•iOS服務(wù)整合

由于iOS是一個目標(biāo)操作系統(tǒng),我需要用Swift或 Objective-C,與iOS上的這個服務(wù)器整合起來。此外,我還需要確定如何處理服務(wù)緩存、數(shù)據(jù)存儲、離線處理、推送通知處理等操作。

•安卓服務(wù)整合

由于安卓是一個全然不同的平臺,我同樣需要在該平臺上建立同樣的服務(wù)器整合。我還需要處理在iOS上處理的所有同樣問題。

這些部分落實(shí)到位后,我可以開始實(shí)際構(gòu)建應(yīng)用程序的視圖,并將它們與數(shù)據(jù)聯(lián)系起來。我還可以開始處理iBeacon整合,根據(jù)用戶的鄰近性,將工作區(qū)設(shè)為“已占用”。不過,要做到這一點(diǎn),并將基礎(chǔ)架構(gòu)落實(shí)到位,需要我花大量的時間、做大量的配置。這時候,MBaaS的優(yōu)點(diǎn)充分體現(xiàn)出來。

使用MBaaS

MBaaS在這方面的優(yōu)點(diǎn)在于,它為我處理了最主要的部分:我根本沒必要處理這些事務(wù):配置服務(wù)器、安裝和配置數(shù)據(jù)庫、安裝服務(wù)、管理用戶、確保數(shù)據(jù)安全、設(shè)置推送通知或整合原生服務(wù)。所有這一切都作為MBaaS的一部分來加以提供。我的步驟現(xiàn)在看起來有點(diǎn)不一樣:

1. 借助MBaaS提供商構(gòu)建應(yīng)用程序。

2. 把原生軟件開發(fā)工具包(SDK)加入到每個應(yīng)用程序中。

這些部分落實(shí)到位后,我就可以處理兩個主要的服務(wù)整合,只需要極少的代碼:獲取附近的工作區(qū),以及將工作區(qū)的狀態(tài)從空著改為已占用(反之亦然)。下面,我使用這些示例,詳細(xì)給出了一些示例的iOS Objective-C代碼,使用Parse作為MBaaS提供商:

 

  1. // 在頭文件或類擴(kuò)展中 
  2.  
  3. @property (nonatomic,strong) NSArray *workstations; 
  4.  
  5. // 在實(shí)現(xiàn)里面 
  6.  
  7. /* 

視圖裝入后,我們可以異步獲取用戶的位置,

然后使用該位置,查詢附近工作區(qū)列表。

 

  1. */ 
  2.  
  3. - (void)viewDidLoad 
  4.  
  5.  
  6.   [super viewDidLoad]; 
  7.  
  8.   // 獲得用戶的位置,作為Parse PFGeoPoint 
  9.  
  10.   [PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) { 
  11.  
  12.     if (!error) { 
  13.  
  14.       [self fetchWorkstationsNearPoint:geoPoint]; 
  15.  
  16.     } 
  17.  
  18.   }]; 
  19.  
  20.  
  21. /* 
  22.  
  23.   該方法異步獲取離用戶的當(dāng)前位置在兩英里之內(nèi)的所有工作區(qū)。 
  24.  
  25. */ 
  26.  
  27. - (void)fetchWorkstationsNearPoint:(PFGeoPoint *)geoPoint 
  28.  
  29.  
  30.   PFQuery *query = [PFQuery queryWithClassName:@"Workstations"]; 
  31.  
  32.   [query whereKey:@"location" nearGeoPoint:userLocation withinMiles:2]; 
  33.  
  34.   [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
  35.  
  36.     if (!error) 
  37.  
  38.     { 
  39.  
  40.       self.workstations = objects; 
  41.  
  42.     } 
  43.  
  44.   }]; 
  45.  

在上述代碼中,我解決了第一個難題:獲取離該用戶的當(dāng)前位置兩英里之內(nèi)的工作區(qū)的數(shù)據(jù)。這首先是在應(yīng)用程序完成裝入后,調(diào)用以獲取用戶的當(dāng)前位置。Parse提供了獲得該數(shù)據(jù)的一個helper類,那樣我們就沒必要直接依賴CLLocationManager。下一步,調(diào)用fetchWorkstationsNearPoint方法,該方法異步查詢Parse的數(shù)據(jù)存儲區(qū)。SDK在幕后進(jìn)行了REST調(diào)用,以便從Parse的數(shù)據(jù)存儲區(qū)獲取數(shù)據(jù)。

 

  1. /* 
  2.  
  3.   該方法獲取被賦予iBeacon標(biāo)識符的工作區(qū)數(shù)據(jù)對象。 
  4.  
  5. 然后,它設(shè)置已占用屬性,并異步保存對象。 
  6.  
  7. */ 
  8.  
  9. - (void)setWorkstationState:(BOOL)isOccupied 
  10.  
  11. withBeaconIdentifier:(NSString *)beacon 
  12.  
  13. completionHandler:^(NSError *error)completion 
  14.  
  15.  
  16.   PFQuery *query = [PFQuery queryWithClassName:@"Workstations"]; 
  17.  
  18.   [query whereKey:@"beaconIdentifier" equalTo:beaconIdentifier]; 
  19.  
  20.     [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
  21.  
  22.     if (!error) 
  23.  
  24.     { 
  25.  
  26.       POWorkstation *workstation = [objects firstObject]; 
  27.  
  28.       workstation[@"occupied"] = [NSNumber numberWithBool:isOccupied]; 
  29.  
  30.       [workstation saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { 
  31.  
  32.         completion(error); 
  33.  
  34.       }]; 
  35.  
  36.     } 
  37.  
  38.   }]; 
  39.  

在上述代碼中,我克服了第二個難題:為某個特定的工作區(qū)設(shè)置已占用狀態(tài)。該代碼就與第一個代碼片段一樣簡潔。雖然你看不到觸發(fā)這個整合的iBeacon代碼,但我想捕獲與Parse之間的所有交互。首先,根據(jù)信標(biāo)標(biāo)識符,獲取特定的工作區(qū)。該字符串值是數(shù)據(jù)存儲區(qū)中工作區(qū)的一個屬性。下一步,我設(shè)置對象的已占用屬性,然后將該值保存回到后臺的數(shù)據(jù)存儲區(qū)。

只需要極少的代碼就可以完成這些任務(wù),因?yàn)榇蠖鄶?shù)邏輯都是在Parse的iOS SDK里面進(jìn)行的。這可以處理諸多任務(wù),比如服務(wù)委托、數(shù)據(jù)轉(zhuǎn)換及緩存數(shù)據(jù)存儲,因而大大減少了開發(fā)人員在一段時間后需要編寫和維護(hù)的代碼。雖然這不是什么萬靈藥,但它為最常見的移動使用場合提供了一種可靠的解決方案。

核心前提

通過上面這個例子,你就能明白MBaaS的核心前提是,它一次性克服了支持移動后端這個艱巨挑戰(zhàn),那樣可以跨多個項(xiàng)目,始終始一地使用它。你不需要啟用基于云的數(shù)據(jù)庫、推送通知服務(wù)器和用戶管理系統(tǒng)――你需要管理這些系統(tǒng),而是可以借助MBaaS提供商,它將直接提供所有這一切功能。此外,你再也沒必要為后端的正常運(yùn)行時間和可擴(kuò)展性負(fù)責(zé),而是這方面完全可以依賴提供商。

雖然MBaaS肯定也遭到懷疑,但毫無疑問,過去一年MBaaS備受關(guān)注。早期的MBaaS提供商Parse已被Facebook收購;此后,蘋果、微軟、亞馬遜和谷歌都各自收購了云平臺。此外,現(xiàn)有的提供商已發(fā)展壯大;由于平臺日趨成熟,它們的采用率已有了明顯上升。

區(qū)別選擇方案

沒有兩種MBaaS解決方案是一樣的,所以知道如何進(jìn)行比較很關(guān)鍵。提供商之間的主要區(qū)別在于三大方面:平臺支持、部署方法和功能重心。

跨平臺支持

MBaaS的一個主要優(yōu)點(diǎn)是,能夠跨多個平臺支持某個應(yīng)用程序。說到在單一平臺上提供深入整合的數(shù)據(jù)存儲區(qū)(MBaaS的一個組件),iCloud和CloudKit等一些解決方案做得很到位。雖然這很適合單一平臺,但它也大大限制了應(yīng)用程序在將來成為跨平臺應(yīng)用程序的功能。不然而,如果某應(yīng)用程序?qū)碇辉趩我黄脚_上運(yùn)行,這可能是一種很好的解決方案。

有些提供商致力于原生移動平臺,而另一些提供商支持移動Web體驗(yàn)、甚至桌面應(yīng)用程序。從本質(zhì)上來說,大多數(shù)MBaaS體驗(yàn)提供了REST服務(wù),這樣允許在幾乎任何平臺上使用,但針對特定技術(shù)的SDK對開發(fā)人員來說是一大優(yōu)點(diǎn)。如果挑選的一家MBaaS提供商提供的SDK可支持你想要支持的所有平臺,那就再理想不過了。

•Parse目前提供的SDK支持iOS、安卓、Windows Phone 8、Windows 8、PHP、JavaScript、Mac OS X和Unity。

•Kinvey目前提供的SDK支持iOS、安卓、JavaScript、AngularJS、Backbone.js、Ember.js、Node.js、PhoneGap和Titanium。

部署方法

除了跨平臺支持外,MBaaS解決方案在如何部署方面也有所差異。想確定哪些選擇方案適合企業(yè),這取決于幾個因素,包括現(xiàn)有的基礎(chǔ)架構(gòu)、數(shù)據(jù)存儲方面的監(jiān)管(針對敏感數(shù)據(jù))以及成本門檻。

下面是MBaaS解決方案最流行的幾種部署方法:

•托管型多租戶

如果使用托管型多租戶MBaaS解決方案,你沒必要為在你的基礎(chǔ)架構(gòu)上部署環(huán)境而操心。在大多數(shù)情況下,提供商會使用現(xiàn)有的云服務(wù)提供商(比如AWS),將你的應(yīng)用程序部署到一種可擴(kuò)展的環(huán)境上。在這種環(huán)境中,你的后端將在服務(wù)器上與面向該平臺其他用戶的其他應(yīng)用程序一塊運(yùn)行。

•托管型專用

如果使用托管型專用解決方案,提供商仍使用公有云(比如AWS),但你將確保MBaaS環(huán)境部署到專門供你使用的服務(wù)器上。

•托管型內(nèi)部

如果使用內(nèi)部解決方案,提供商將把MBaaS環(huán)境部署到你擁有的服務(wù)器上。在大多數(shù)情況下,這需要你使用一種特定的虛擬化平臺,比如VMware vCloud Air。對一些處理敏感的管制數(shù)據(jù)的企業(yè)來說,可能要求這么做。在大多數(shù)情況下,提供商將與企業(yè)的內(nèi)部IT團(tuán)隊(duì)一起共同管理平臺。

•開源

如果使用開源MBaaS解決方案(比如OpenKit和Helios),你將把解決方案自行部署到所選擇的任何基礎(chǔ)架構(gòu)上,并自行管理。這可能是一種內(nèi)部的解決方案或基于云的解決方案。不過,你仍得自行維護(hù)和更新系統(tǒng)。雖然這種解決方案讓你擁有全面的控制權(quán),但它們也抵消了MBaaS解決方案具有的諸多優(yōu)點(diǎn)。

對大多數(shù)小企業(yè)來說,托管型多租戶方案最適合不過了。大企業(yè)可能面臨隱私問題、州和聯(lián)邦監(jiān)管以及企業(yè)要求,這些因素決定了它只能使用某一種解決方案。比如說,金融機(jī)構(gòu)通常在帳戶數(shù)據(jù)存儲在哪里方面有嚴(yán)格的限制。在這種情況下,托管型內(nèi)部解決方案可能是唯一的選擇。

Parse目前提供托管型多租戶方案。Kinvey目前提供托管型多租戶方案、托管型專用方案和托管型內(nèi)部方案。

功能重心

幾乎每一款MBaaS解決方案都有其側(cè)重的方面。有些主要針對獨(dú)立的應(yīng)用程序開發(fā)人員,而另一些提供商專注于企業(yè)。明白自己的精力主要花在何處,也將幫助你確定哪種MBaaS解決方案值得為之投入時間和資金。

這方面的一個典例就是,Kinvey格外注重企業(yè)。Kinvey提供了數(shù)據(jù)連接件規(guī)范,讓企業(yè)可以將外部數(shù)據(jù)源連接到現(xiàn)有的MBaaS數(shù)據(jù)存儲區(qū),另外提供了AuthLink,以便與企業(yè)驗(yàn)證和授權(quán)整合起來。這些功能對大多數(shù)獨(dú)立的應(yīng)用程序開發(fā)人員來說不太重要,但是它們對期望把MBaaS解決方案整合到現(xiàn)有系統(tǒng)中的企業(yè)來說卻絕對必不可少。

Parse的重心則不一樣。自從被Facebook收購以來,它并不像過去那么關(guān)注企業(yè),但由于被Facebook整合,現(xiàn)在它大大加強(qiáng)了與這個社交巨頭的整合。Parse的SDK現(xiàn)在提供了專門用來簡化訪問某些部分的Facebook數(shù)據(jù)的七個實(shí)用工具。

MBaaS的核心功能

通過MBaaS解決方案提供的大多數(shù)核心服務(wù)可滿足移動應(yīng)用程序的基本要求。主要的MBaaS提供商都提供了四大功能:用戶管理、安全的同步數(shù)據(jù)、推送通知和文件處理。明白這些主要的功能方面,將幫助你了解MBaaS提供商如何能成為你數(shù)字化戰(zhàn)略的一部分。

用戶管理

大多數(shù)提供商提供了用戶管理這一核心功能。有了這項(xiàng)功能,你就能為每個用戶分配以便與帳戶關(guān)聯(lián)起來的帳戶。一些服務(wù)在此基礎(chǔ)上更進(jìn)一步:讓你可以輕松整合電子郵件驗(yàn)證、密碼重置、社交網(wǎng)站登錄和支持匿名用戶。這是MBaaS功能的核心方面,因?yàn)樗苯雨P(guān)系到整個平臺的安全性。 

就面向企業(yè)的MBaaS而言,這類解決方案更進(jìn)一步。Kinvey等提供商提供了與現(xiàn)有的LDAP提供商整合的功能,甚至讓用戶能夠使用Salesforce.com登錄信息來驗(yàn)證身份。這里的關(guān)鍵在于,很少有企業(yè)客戶想重新處理用戶管理工作,而是就想與現(xiàn)有的解決方案整合起來。一些企業(yè)級MBaaS提供商正好滿足這個要求。

安全的同步數(shù)據(jù)

在如今的數(shù)字化領(lǐng)域,用戶很少只與一種設(shè)備或者甚至只與一種平臺交互。雖然iCloud等解決方案讓開發(fā)人員能夠?yàn)橥黄脚_上使用多種設(shè)備的用戶確保數(shù)據(jù)持久性,但根本無力應(yīng)對這種情形:用戶需要從網(wǎng)站訪問與從移動應(yīng)用程序訪問的同樣的數(shù)據(jù)。同步的跨平臺數(shù)據(jù)對任何旨在方方面面將自己暴露在用戶面前的應(yīng)用程序而言必不可少。正由于如此,同步數(shù)據(jù)是幾乎每款MBaaS解決方案的核心。

推送通知

實(shí)時推送通知是許多移動應(yīng)用程序的一個必要部分。然而,與蘋果推送通知服務(wù)(APN)或谷歌Cloud Messaging整合常常需要一種專用的服務(wù)器應(yīng)用程序。許多企業(yè)搭建了自己的跨平臺通知服務(wù)器來管理這  種交互。

Parse和Kinvey都為安卓和iOS提供了基本的推送通知整合。

文件存儲和分發(fā)

從用戶生成的內(nèi)容上傳到遠(yuǎn)程應(yīng)用程序內(nèi)容的全球分發(fā),應(yīng)用程序需要與文件進(jìn)行交互。許多應(yīng)用程序用到現(xiàn)有的服務(wù)(比如亞馬遜CloudFront),以便充分利用全球內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN),從而分發(fā)遠(yuǎn)程內(nèi)容。大多數(shù)MBaaS提供商提供CDN解決方案的抽象機(jī)制,好讓應(yīng)用程序開發(fā)人員能夠使用邊緣服務(wù)器網(wǎng)絡(luò),以便確保其內(nèi)容以一種始終如一、高性能的方式在全球分發(fā)。

額外功能

除了這一批核心功能外,MBaaS提供商在許多不同的功能特性方面開始有所差異。比如說,Kinvey具有iBeacon整合功能,而Parse擁有針對發(fā)送短信等功能的第三方整合。如果你期望利用特定的功能,找到一種適合你應(yīng)用程序路線圖的平臺很重要。這方面橫向評估解決方案變得很困難,因?yàn)榭捎玫姆桨覆⒉煌耆龅焦δ軐Φ取?/p>

缺點(diǎn)和懷疑

雖然這種功能對期望縮短應(yīng)用程序的總體上市時間,并跨數(shù)字化項(xiàng)目確保后端一致性的企業(yè)來說似乎很理想,但也要考慮幾個方面:

•在大多數(shù)情況下,MBaaS解決方案旨在在成本方面提供一個非常低的準(zhǔn)入門檻。然而,隨著應(yīng)用程序的使用越來越廣泛,成本曲線通常也會出現(xiàn)相當(dāng)陡峭的斜坡。

•由于MBaaS解決方案并不完全對應(yīng)于標(biāo)準(zhǔn)規(guī)范,又由于大批數(shù)據(jù)遷移并不總是很簡單,應(yīng)用程序被最初選擇的那種MBaaS解決方案牢牢束縛。這倒不是說它沒法更換,而是說在許多情況上更換起來成本很高、很費(fèi)勁。

•MBaaS提供商眼下是搶手貨。你只要看一下Facebook收購Parse的案例,就明白MBaaS提供商肯定會被收購。全面審查一下你所考慮的每家MBaaS提供商的條款,弄清楚這對你的應(yīng)用程序會有何影響。

不過,在許多情況下,優(yōu)點(diǎn)壓倒缺點(diǎn)。正是由于MBaaS存在缺點(diǎn),要全面地調(diào)查可能適合的MBaaS解決方案,之后將某一款解決方案納入到你的應(yīng)用程序開發(fā)計劃中。

MBaaS無疑同樣遭到懷疑。我在MBaaS的早期階段經(jīng)常遇到這類懷疑人士。他們擔(dān)心的主要問題是,單單一款解決方案如何才能提供每個應(yīng)用程序所需的那種靈活性?事實(shí)上,沒有哪種解決方案具有滿足各種要求的靈活性。體驗(yàn)的所有者需要選擇最適合所需功能以及將用來提供這種體驗(yàn)的平臺的解決方案。在一些情況下,會發(fā)現(xiàn)找不到合適的,這時候自定義后端將是最佳辦法。

在我前面提到的那個使用場合下,這種辦法恐怕為了我減少了幾周的開發(fā)工作。此外,它還讓我沒必要監(jiān)控和管理作為整個解決方案一部分的服務(wù)器實(shí)例。對我來說,好處就是為這個原型縮短了上市時間。然而,正如我們會在下一個章節(jié)中討論的那樣,這并非唯一的好處。

MBaaS和數(shù)字化標(biāo)準(zhǔn)

我竭力推崇在企業(yè)內(nèi)部確立數(shù)字化標(biāo)準(zhǔn)(不管企業(yè)規(guī)模大小如何)。數(shù)字化標(biāo)準(zhǔn)確實(shí)需要深謀遠(yuǎn)慮,但是如果實(shí)施得當(dāng),它們會為整個企業(yè)的數(shù)字化項(xiàng)目確保很高的效率和一致性。然而,大多數(shù)企業(yè)只致力于用戶界面標(biāo)準(zhǔn)。在許多情況下,跨多個數(shù)字化項(xiàng)目使用MBaaS的企業(yè)還有望帶來后端交互方面實(shí)現(xiàn)類似的標(biāo)準(zhǔn)化。

跨單一項(xiàng)目采用MBaaS顯然對企業(yè)來說有一定的好處,但是最主要的價值還是體現(xiàn)在跨多個項(xiàng)目使用MBaaS所獲得的共享經(jīng)驗(yàn)和一致性。

誰應(yīng)該考慮這種方案?

MBaaS對幾乎任何規(guī)模的企業(yè)來說都有價值,但是優(yōu)點(diǎn)不一樣:

•大企業(yè)

對大企業(yè)而言,企業(yè)級解決方案(比如Kinvey)將為企業(yè)的移動應(yīng)用程序如何執(zhí)行常見任務(wù)方面設(shè)定后端標(biāo)準(zhǔn)。此外,它統(tǒng)一規(guī)范了移動應(yīng)用程序如何訪問MBaaS云外面的數(shù)據(jù)(借助Kinvey的數(shù)據(jù)連接件等解決方案)。

•中小企業(yè)

對許多小企業(yè)來說,MBaaS提供了一套完全無人管理的可擴(kuò)展基礎(chǔ)架構(gòu)。企業(yè)可以部署體驗(yàn),不需要專門的團(tuán)隊(duì)全天候不間斷地監(jiān)控基礎(chǔ)架構(gòu)。此外,它能大大縮短上市時間,并大大減少將來需要維護(hù)的代碼數(shù)量。

如今許多公司在充分利用這種方法。不少公司在充分利用MBaaS,凱迪拉克、Travel Channel和The Food Network就是其中幾個例子。GovTribe、Hipmunk和Timbre等體驗(yàn)的背后都有MBaaS提供商的身影。

Parse和Kinvey都提供了幾個客戶案例,可幫助你評估成功的體驗(yàn)。

結(jié)束語和下幾步

我在下一篇文章中將逐步介紹如何構(gòu)建跨平臺的MBaaS應(yīng)用程序。那篇文章會重點(diǎn)突出利用MBaaS提供商而不是開發(fā)自定義解決方案,從而提高效率的幾個主要方面。

如果你準(zhǔn)備現(xiàn)在就投身于MBaaS,那么下一步就是打量提供商提供的實(shí)例,分析每種平臺的功能和價格。下列資源會幫助你確定哪種解決方案最適合你的體驗(yàn)。

Kinvey資源

•開發(fā)中心:http://devcenter.kinvey.com

•Kinvey的應(yīng)用程序成本評估工具:http://www.kinvey.com/app-cost-estimator

•平臺(概況):http://www.kinvey.com/platform

Parse資源

•說明文檔:https://parse.com/docs

•價格:https://parse.com/plans

•Parse Core:https://parse.com/products/core

英文原文: Understanding Mobile Back End As A Service

布加迪編譯

責(zé)任編輯:閆佳明 來源: 51CTO譯文
相關(guān)推薦

2010-08-04 14:15:44

nfs服務(wù)

2015-08-27 09:19:23

移動后端即服務(wù)MBaaSPaaS

2015-09-02 09:55:03

云服務(wù)MBaaS移動三層架構(gòu)

2010-04-21 16:21:39

2009-05-26 16:50:48

CRM客戶服務(wù)呼叫中心

2010-09-26 11:39:21

DHCP服務(wù)器

2010-09-16 09:07:42

802.11b無線網(wǎng)絡(luò)

2016-12-14 14:43:11

ButterknifeAndroid

2019-06-17 16:47:54

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

2012-06-15 08:56:12

Windows Azu云計算微軟

2015-12-08 14:42:52

2014-01-21 13:22:35

2013-09-18 11:16:27

移動中間件MBaaS企業(yè)級應(yīng)用

2010-03-10 18:29:52

2012-05-08 13:28:56

Marvell云計算解決方案

2009-12-29 11:19:53

2013-12-16 14:07:36

微軟Surface 2航空移動

2012-05-24 13:25:37

TitaniumPhoneGapAppcelerato

2009-12-15 10:10:42

Ruby過程對象

2009-10-26 13:41:49

機(jī)房監(jiān)控
點(diǎn)贊
收藏

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