編者按:在過去,移動應用一直被分為本地應用程序或網絡應用程序兩類。在本文中,我們把網絡應用程序歸類為移動云應用范疇,因為網絡應用程序在移動設備之外運行,而其數據存儲也在移動設備以外。“移動云計算”一詞通常是指被擴展以處理移動設備的企業云計算基礎設施。被提供給用戶使用的數據存儲和計算處理資源都在云計算平臺端而不是在移動設備本身。
當開發人員開發移動應用時,他們可以選擇采用本地應用程序(即安裝和運行在本地移動設備上的應用程序)或移動云應用(即在移動云計算環境中運行的應用程序)。本地應用程序和移動云應用都有著各自的優缺點,下面就讓我們來逐一分析下。
本地應用程序在諸如智能手機和平板電腦這樣的遠程設備上運行,它們是專為某一設備及其操作系統而編寫開發的。本機應用程序能夠使用特定的設備硬件,這就意味著本機應用程序能夠充分利用移動設備上的最新技術,例如全球定位系統(GPS)、相機、定位和運動等功能。這一點可以被認為是本機應用程序優于移動云應用的地方。
移動云應用在服務器上運行,同時它們的數據存儲在云計算中。用戶通過設備上的瀏覽器窗口訪問應用程序。移動云應用的開發通常與操作系統無關,而且其性能表現要優于本地應用程序,這是因為部署在云計算端的計算能力和存儲資源都遠優于小得多的移動設備。因為安全性和其他管理方面更易于集中,所以移動云應用在這些方面的優越性要超過本地應用程序。
這里有一些最佳實踐可以有助于確保移動云應用開發過程能夠盡可能地更為順暢和成功:
一次開發 跨多平臺運行
因為很多企業都在采用BYOD(使用你自己的設備)策略,這對于設計和實施“一次開發,跨多平臺運行”的移動應用是非常重要的,即所開發的移動應用可以在多個遠程設備上運行而無須考慮設備的特性。對于專為在目標設備上本地運行而開發的移動應用來說,如果要在另一臺設備上運行則必須進行移植或代碼重寫。移動云應用運行在云端,其開發與操作系統和特定設備功能無關。通過使用諸如HTML5和移動企業應用程序平臺(MEAP)這樣不同的技術,就可以開發出移動云應用,這樣的應用程序可在多個設備上運行而無需重寫代碼。
實施混合應用程序以充分利用設備硬件
混合應用程序能夠允許移動云應用充分利用移動設備的硬件。通過混合移動應用,移動云應用的用戶界面出現在瀏覽器窗口,而其中的本地應用程序就可提供對設備硬件功能的訪問,而這一點是通過瀏覽器無法實現的。
對于用戶來說,混合應用程序就如同一個本地應用程序一樣。用戶可從應用程序商店購買下載應用程序,將其存儲在移動設備中并進行初始化。但是,從開發人員的角度來看,這其中還是存在著區別的。開發人員無需對每一種設備重寫整個移動應用的代碼。采用HTML5、CSS以及JavaScript等語言編寫的部分代碼可以實現跨多個不同移動設備的重用。
使用諸如HTML5和MEAP之類的技術
HTML5是一組包括CSS3、規則、屬性以及JavaScript API的技術。通過讓開發人員使用跨多個設備平臺的相同技術堆棧,它簡化了應用程序開發并縮短了其開發周期。對于目前種類不斷快速發展擴張的移動設備來說,通過開發移動云應用而不是本地應用程序,你就可以更快、更輕松地把應用程序部署在更多的移動設備上。HTML5支持遠程設備功能,提供與本地應用程序相同或極其接近的外觀與應用體驗,同時它還允許你實現“一次開發,跨多平臺運行”。它能夠發現識別遠程設備的特點,從而自動對顯示信息進行調整以符合遠程設備的顯示尺寸、分辨率、顯示方向、高度以及其他特性。
雖然并不是所有的瀏覽器、智能手機和平板電腦都支持HTML5的所有功能,但是其中大部分的主流瀏覽器還是支持HTML5的部分功能的。因此,你應當確保你所使用的瀏覽器支持HTML5。
移動平臺是指位于移動設備與應用程序之間的軟件。它在移動云計算中運行,同時完成一些與移動設備相關的特定任務,例如將數據轉換至一個用戶友好的界面并確保所有的內容都符合設備的屏幕。它還有一個直達設備硬件的認證機制,因此如果有設備遺失或被盜,該機制就能夠實現遠程數據刪除。
通過重用代碼,MEAP允許企業實現跨多種設備的移動應用部署,而不必為某一特定設備準備應用程序。當有需要利用到遠程設備上的關鍵功能時,或者當無法在移動云計算服務器上仿真本地功能時,它們還允許管理員有選擇性地在遠程設備本地運行應用程序。目前已有大量MEAP或類MEAP平臺,其中包括Sybase Unwired平臺、WebMobi和Appcelerator Titanium。
同步開發和測試
即便移動云應用在移動云計算服務器上運行,你還應當同步應用程序的開發與測試,在移動設備上完成開發以實現移動云應用“一次開發,跨平臺運行”。
技術公司Lionbridge認為,目前移動設備的評價使用壽命是一年,而移動軟件技術的壽命則更短。這一極具挑戰性的環境需要有一個新的軟件開發與測試方法。所以,我們不應坐等移動云應用開發完成,在云計算開發的同時就應同步進行應用程序測試和設備測試以便于在項目周期中盡可能早地發現和糾正缺陷。
利用移動云計算的安全性
在移動設備上運行諸如Kaspersky和McAfee這樣的安全軟件和防病毒軟件是檢測安全威脅的最簡單方法之一。但是移動設備的電源和處理功能是比較有限的,因此保護它們免受威脅的影響是困難的。例如,在移動設備上保持病毒檢測軟件持續不斷地運行即便不是不可能的,那也是非常困難的,因為設備的電源是有限的。
大部分的安全威脅檢測功能都可以從移動設備遷移至移動云計算。然后就可以使用多個虛擬化惡意軟件檢測引擎(在移動云計算端運行)進行實際的威脅檢測。這就涉及在每個移動設備上部署一個簡單的軟件代理,并在移動云計算端部署復雜的、特定的移動設備檢測軟件。該代理會檢查設備上的文件活動,并把活動記錄在一個文件中,并將其發送至一個移動云計算服務以供進一步分析。云計算服務將周期性地從代理處接收活動文件,并確定是否有惡意或有害的內容。多個虛擬化檢測引擎可以分析單一代理活動文件以確定該文件是否包含對移動設備有威脅的攻擊。
這個基于云計算的方法有幾個好處,其中包括增強的病毒檢測覆蓋面、不太復雜的移動軟件以及減少的移動設備資源消耗。隨著移動威脅的規模和復雜性不斷增加,這個方法將變得更具價值。