從手持設備到基于服務器的數(shù)據(jù),使用MBaaS或BaaS開發(fā)端到端的移動計算體驗、應用和服務是快速并且安全的。
不久前,專為移動設備(智能手機,平板電腦或可穿戴設備)而設計的應用還被認為是一種自主的體驗,這樣的體驗和Web或桌面應用不同,通常兩者是松耦合不太相關的關系。這種互相孤立的理念在一定程度上是由當時技術上的限制所決定的,并形成了在隔絕的環(huán)境中開發(fā)單獨的移動應用的做法,使用的工具——以及開發(fā)人員——也只專注在移動體驗上。
時代已經(jīng)改變。移動應用不再僅僅存在于隔離的環(huán)境中。如今,可能略微有些自相矛盾,移動體驗在突飛猛進的同時,也開始融入到整個云的體系里。雖然移動領域已經(jīng)成為無可爭議的用戶交互的卓越渠道,但它的開發(fā)反而不再是過去那樣的完全獨立的工作了。
正是因為移動開發(fā)開始融入到整個應用的創(chuàng)建過程中,長期以來的MBaaS(移動后端即服務)已經(jīng)不再受歡迎,取而代之的是BaaS平臺,后者更寬泛地涵蓋了后端即服務。無論你怎么稱呼它,為移動應用選擇合適的開發(fā)平臺比以往更加重要。供應商越來越多地用BaaS的名字來描述他們的產(chǎn)品,不再強調(diào)MBaaS這一術語,而僅僅將其保留在他們的營銷材料中。我們將專注于BaaS。
為了更好地匹配技術能力和業(yè)務需求,我們必須了解技術,理解它的工作原理,調(diào)研關鍵特性,并將其全部組合在一起,從而做出明智的選擇。
MBaaS技術解析BaaS平臺是一個具有兩個組件的云開發(fā)架構(gòu)。第一個組件是開發(fā)數(shù)字化移動體驗的前端。它為開發(fā)人員提供了創(chuàng)建應用程序所需的工具和架構(gòu),這些應用程序是為各種屏幕大小、外形尺寸和操作系統(tǒng)而設計的。第二個組件是管理和操作服務的后端。它為移動計算和通信設備提供了中央化的方式——通常是通過API——來訪問服務器、存儲、數(shù)據(jù)庫、處理邏輯和其他資源,這些應用程序需要以安全的方式進行互操作,并且和大型云環(huán)境的其他特性集成。
“BaaS實際上是一種中間件,開發(fā)人員使用這些中間件將各種移動設備類型和運行在云基礎設施或本地的后臺服務器上的服務和存儲連接起來。”云咨詢公司Hurwitz&Associates LLC總裁兼首席執(zhí)行官Judith Hurwitz表示,“如今,你希望通過API的力量來構(gòu)建這些連接。”
移動應用開發(fā)的一個明顯的挑戰(zhàn)是處理看似無窮無盡的目標設備和操作系統(tǒng)。 BaaS平臺開發(fā)環(huán)境需要支持多種操作系統(tǒng) ——Android,iOS和Windows 10 Mobile ——而這僅僅是個開始。在各自為政的Android世界中,設備制造商按照自己的時間表發(fā)布操作系統(tǒng)的更新,盡管Lollipop(v 5.x; 2014年11月),Marshmallow(v 6.x; 2015年10月)和 Nougat(v 7.x; 2016年8月)更新一些,但安裝最廣泛的版本仍然是KitKat(4.4版,2013年10月發(fā)布)。在受嚴格控制的iOS世界中情況并不是這樣,根據(jù)蘋果公司自己的數(shù)據(jù),目前79%的設備正在使用這一代的iOS 10.x。蘋果還在運行著BlackBerry 10操作系統(tǒng)的BlackBerry設備中添加了WatchOS。
除了操作系統(tǒng)的混雜之外,BaaS平臺需要讓開發(fā)者有能力為真實的屏幕像素的分辨率和物理尺寸構(gòu)建用戶體驗。在Apple的產(chǎn)品中,iPhone屏幕像素的分辨率涵蓋了一個很大的范圍,包括640×960(iPhone 4)、640×1136(iPhone 5)、750 x 1334(iPhone 6和7)和1080 x 1920(iPhone 6 Plus和7 Plus)。不同的iPad分辨率也需要支持:760 x 1024、1536 x 2048和2048 x 2732。安卓手機和平板電腦也具有同樣令人困惑的分辨率問題。
BaaS如何工作BaaS被實現(xiàn)為一組工具,通過結(jié)合使用軟件開發(fā)工具包(SDK)、API和可重用代碼庫,將移動應用與數(shù)據(jù)庫,服務器和其他應用和服務連接起來。通過在移動設備和其他應用和服務之間進行交互,BaaS充當了一個能夠管理所有手機的后端連接的中介,這樣開發(fā)人員就可以實現(xiàn)最佳的用戶體驗。集成的實現(xiàn)可以通過使用REST API和接口與JSON結(jié)合的方式進行數(shù)據(jù)交換和應用集成。
所需的特性架構(gòu)選項不是特性,但是BaaS平臺本身的設計上,存在兩種非常不同的實現(xiàn)方法。
首先,BaaS平臺及其所有的組成部分都集成到大型云平臺供應商所提供的云服務中。由Amazon Web Services,Google Cloud Platform,IBM Bluemix和Microsoft Azure提供的綜合BaaS環(huán)境,旨在將移動應用程序的開發(fā)工具集成到他們的云操作平臺中。其思想是開發(fā)和測試可以輕松帶來自動化的持續(xù)部署和持續(xù)的運維操作。
另外,一些BaaS平臺供應商將自己的工具作為獨立實體提供,與云平臺或其所在的本地數(shù)據(jù)中心分開。他們的觀點是,這些開發(fā)套件的獨立性使它們具有高度的可配置性,并且更適合單獨業(yè)務的獨特需求。獨立的BaaS平臺是那些不接受公有云的企業(yè)的唯一選擇,他們可以將其安裝在自己的內(nèi)部基礎設施上。Forrester的應用程序開發(fā)和交付專業(yè)的首席分析師Michael Facemire強調(diào),“全合一”和“自己動手”的方法同樣有效。這是哪種方式更適合企業(yè)IT哲學的問題。
以下是選擇BaaS平臺時需要考慮的一些特性:
在云時代,幾乎沒有例外,每個應用都是移動應用。為了滿足用戶的移動體驗,該應用必須具有吸引人的外觀,使用方便,易于導航,并且無滯后時間響應。與駐留在云上或者本地服務器上的數(shù)據(jù)庫的事務和交互必須是安全的,并且與桌面和Web應用的非移動體驗同步。
實現(xiàn)這些需求需要構(gòu)建一個移動應用程序,并且能夠為不同的設備類型、多個操作系統(tǒng)和各種屏幕分辨率提供原生支持的接口。另一個需求是構(gòu)建與私有以及第三方數(shù)據(jù),以及由IT開發(fā)的,或者通過軟件即服務訂閱方式進行訪問的應用和工作負載的集成。最后,需要管理這些流程的工具,以協(xié)助部署和提供性能監(jiān)控。
MBaaS或BaaS平臺是能夠提供廣泛工具的保護傘技術,讓開發(fā)者能夠創(chuàng)造出移動體驗。