王榮海



摘 要:隨著移動互聯網的迅猛發展,企業移動信息化已成為大多數企業的共識。研究快速構建企業移動應用系統具有重要的實際意義。本文在剖析目前對混合模式移動應用Hybrid App技術研究及應用的基礎上,給出Hybrid App應用開發模型。針對目前企業移動信息化的需求,提出了一個利用Hybrid App技術構建企業移動應用系統的方案。該方案包括系統總體架構,Hybrid App開發平臺選型,模板與插件應用,現有業務系統集成及云端部署等內容。
關鍵詞:Hybrid App;企業移動應用;模板;插件;移動代理服務
中圖分類號:TP311.5 文獻標識碼:A
1 引言(Introduction)
根據中國互聯網絡信息中心2016年1月發布的統計報告,截至2015年12月,我國手機網民規模達6.20億。隨著手機網民不斷增加,各種移動應用層出不窮,大眾移動應用的普及基本完成。企業移動應用需求開始爆發,企業移動信息化成為大部分企業的必然選擇,大型企業已在紛紛規劃各自的移動戰略,很多企業也開始考慮允許BYOD(員工自帶設備)使用企業的內部應用。隨著移動互聯網的快速發展,企業目前的現有信息系統及新開發的信息系統必然要與移動應用結合,由此引發了企業移動應用開發的熱潮,近十幾年來國外對企業移動信息化的研究也在不斷持續深入[1-3]。根據IDC的一份報告,2014年中國企業級移動應用解決方案市場規模達到16.3億美元,到2017年這個數字將達到48億美元,2014至2017年復合增長率將達到43.5%[4]。
移動應用開發主要有移動Web應用程序、Native App原生本機應用程序,以及近年來興起的Hybrid App混合模式移動應用。Hybrid App綜合了前兩者的優點,它使用HTML5來創建用戶界面,但將HTML包裝到本機的容器中。它既具有移動Web應用程序易于開發的特點,又能夠像Native App具有訪問設備的能力,同時具有很好的跨平臺特性,使得一次開發能夠在多種移動操作系統中部署。
2 Hybrid App技術研究及應用現狀(Present
situation of technology research and application
of Hybrid App)
Hybrid App技術是近年來才出現的跨平臺移動開發技術,目前已經出現了多個基于Hybrid App技術的開發平臺,國內外學者也對相關的技術及應用進行了研究。
2.1 主流Hybrid App開發平臺
目前主流的Hybrid App開發平臺包括:
(1)PhoneGap:國外的開源移動開發平臺,目前為Adobe公司擁有。它基于HTML、CSS和JavaScript,可以使用一些開源的框架如jQuery Mobile、Dojo Mobile、SenchaTouch等來提高用戶體驗,同時提供了比較豐富的原生插件調用。
(2)AppCan:國內移動開發中使用最廣的移動平臺,AppCan不僅封裝了類似于PhoneGap的本地調用功能,而且封裝了uexWindow多窗口機制,實現了移動端的iframe效果,目前AppCan已擁有80萬人次的注冊開發者,創建的應用的用戶已經達到幾千萬,并且提供了定位于企業用戶的企業版套裝版本。
(3)Titanium:將JavaScript和本地庫鏈接在一起,編譯成字節碼,針對iOS和Android兩個平臺分別構建一個軟件包。
(4)Ionic:提供了Hybrid App的基礎CSS、UI控件、工程架構和最佳實踐,主要關注移動應用的UI展示和UI交互。
(5)ExMobi:國內移動開發平臺,實現與Appcan類似功能。ExMobi從開發、集成、打包、發布、管理上提供了一套完整的移動化應用解決方案。
2.2 國內外研究現狀
近年來國內外學者對Hybrid App相關技術及應用的研究也逐步展開。研究的方向主要集中在對相關開發平臺的剖析及應用,文獻[5]—[8]對PhoneGap及其應用進行了相關研究,文獻[9]和文獻[10]對AppCan及其應用進行了研究,文獻[11]對Titanium及其應用進行了研究,通過對這些研究進行剖析,結合筆者對這些平臺的應用與研究,可總結出Hybrid App的應用開發模型如圖1所示。
各種Hybrid App開發平臺在性能、開發效率、支持的原生應用等方面略有差別,就目前來看,在國外PhoneGap應用最為廣泛,而國內則是AppCan。而在應用研究方面,幾個文獻中給出的應用案例都相對較為簡單,沒有涉及大型的應用系統。
3 企業移動應用系統構建方案(Construction
solution of enterprise mobile application system)
通過搜索與分析國內招聘網站,單獨招聘Android或iOS開發工程師的職位大大超過了Hybrid App開發工程師的職位。這從一個側面反映了目前國內大部分的移動開發仍然不能支持跨平臺。對于企業移動應用,這造成了一套應用需要多個技術團隊支持,延長了項目的交付周期,同時造成項目成本的增加。
3.1 Hybrid App技術與企業移動信息化需求
企業移動信息化的終極目標是實現員工在任何時間(Anytime)、任何地點(Anywhere)處理與業務相關的任何事情(Anything)的3A模式,使企業全員都處于3A狀態下,可大大提升企業運作效率、決策質量及企業整體快速應變能力,更好地了解和滿足客戶需求[12]。企業對移動應用的需求將越來越大,對移動應用的管理也將越來越復雜,傳統的開發方式將不利于企業移動應用戰略的實施。
Hybrid App技術能夠屏蔽移動設備的技術差異,使開發人員專注于具體業務實現,不用考慮過多底層技術細節。同時便于建立統一的技術架構和設計、開發、測試及運行維護規范,有助于提升項目開發效率和交付質量。并且有利于企業移動應用門戶的建立,可以有效掌控每類應用的使得情況,實現集中管控的目的。通過Hybrid App技術構建企業移動應用門戶,將成為今后一段時間內企業實施移動信息化戰略的一個發展方向。
3.2 系統架構
目前對利用Hybrid App技術構建企業移動應用系統的研究相對較少。文獻[13]對利用跨平臺移動技術構建企業CRM系統提出了一個指導性的方案,但側重于對功能的分析,對系統架構的描述相對比較簡略。國內的文獻基本上都是針對Hybrid App技術在小型系統上的應用進行研究,極少結合云平臺。本文嘗試性地給出一個結合Hybrid App技術和云平臺的構建企業移動應用系統的解決方案,其系統總體架構如圖2所示。
(1)利用Hybrid App技術開發的移動程序通過Hybrid引擎的打包服務可以生成Android、iOS等不同平臺移動App,也可以生成供微信公眾號訪問的代碼,還可以生成供移動設備Web端訪問的代碼。
(2)服務器使用云服務器,Web服務器與數據庫服務器分開部署。
(3)各客戶端與云端進行數據交換。
(4)通過MAS移動業務整合使得開發的移動應用可以訪問企業原有業務系統,如ERP、CRM、OA系統等。
3.3 開發平臺選型
針對主流的Hybrid App開發平臺,結合企業移動應用的實際需求,需要在技術先進性、平臺完備性、數據連通性、移動安全性、部署便利性、定制服務能力及成功案例等方面進行研究與比較,在研究中可以采用如下方法:
(1)理論評測。針對開發平臺所需的產品特性,橫向比較各個開發平臺的功能特性,檢查平臺的完備性。
(2)POC原型驗證。在固定周期內,對開發平臺進行一項或多項功能原型進行驗證,考核開發平臺基礎技術特性以及平臺開發商的客戶服務能力。
(3)綜合實力考核。考察開發商的綜合實力包括成立時間、人員規模、成功案例、業界口碑、技術服務能力及深度合作意愿等。
3.4 模板與插件機制
為提高開發效率,可以充分利用Hybrid App開發平臺的模板與插件機制。
模板是在集成開發環境中預置的一些界面及代碼,比如AppCan開發環境集成了多套應用模板,可以在新建項目時生成電商、新聞、閱讀、移動OA及空模板,供開發者套用和定制,完成快速開發,如圖3所示。另外還預置了上百套頁面布局模板,支持各種形式的布局樣式。如頁面只有頂部欄、頁面既有頂部欄又有底部欄、抽屜等;支持內容區域布局樣式,如列表、表單、九宮格、表格等。
如果應用比較復雜,或者需要采用更多移動設備的本地功能,或者某些特定平臺具有其他平臺沒有的一些特性時,就需要用到插件機制。不同Hybrid開發平臺編寫插件的步驟略有不同,比如對于PhoneGap通常插件至少包括兩個部分:
(1)獲得原生功能的JavaScript鉤子文件。
(2)使用原生語言編寫代碼,對于Android使用Java,iOS使用Objective-C或Swift,Windows Phone使用C#,用于和設備底層進行交互。
插件編寫完后,利用開發平臺的功能生成插件包,就可以在移動應用系統的開發中使用了。
為了與企業原有的業務系統相集合,一些Hybrid App開發平臺提供了MAS服務即移動代理服務用來實現移動業務整合。以AppCan為例,AppCan的MAS服務構建了統一的接口平臺,可以通過Web Service、SOAP、ODBC、LDAP等協議整合原有業務系統各類服務接口,使得前端移動應用程序可以通過這些接口訪問原有業務系統數據。通過MAS進行移動業務整合通常包括以下步驟:
(1)新建一個MAS服務。
(2)在MAS服務下面新建一個MAS項目。
(3)在MAS項目下面新建一個接口。
(4)調試并且部署接口。
(5)開發人員調用接口。
3.6 云端部署
云端部署依賴于所采用的Web服務器及數據庫服務器。本文建議Web服務器采用Node JavaScript服務器,這樣可以使得移動應用開發的前端與服務端使用統一的語言,可以極大地提高開發的效率。Node沒有線程,但可以很方便地處理多個并發客戶端的請求,比如移動應用程序要訪問數據庫并顯示一些產品詳細信息,其過程如下[14]:
(1)移動應用程序發送一個HTTP GET的請求,整個請求包括報頭一共500字節。
(2)Node先接收250字節,其余被延遲接收,接收到的數據存儲在臨時緩沖區中,接著等待其他客戶端的請求。
(3)其他幾個客戶端同時進行并發請求,它們數據一部分也已到達,Node緩存這些請求。這與多線程服務器類似,但沒有線程化的開銷。
(4)這時,第一個請求剩余250個字節到達。Node調用事件處理函數處理該請求。
(5)事件處理函數處理請求,通過產品標識符請求數據庫加載產品信息。
(6)將請求發給數據庫后,Node立即回來繼續處理客戶端請求,無須等待數據庫響應結果,這是Node可同時處理多個并發請求的原因。
(7)經過一段時間,數據庫發回產品詳細信息,這些從數據庫返回的字節和從移動應用程序發來的字節采用同樣方式處理。當所有數據傳送完畢后,Node調用數據庫事件處理程序。
(8)將數據庫結果集格式化成HTML發送回移動客戶端。
本文建議數據庫使用基于NoSQL的MongoDB,MongoDB內置了對JSON的支持,可以與Node很好地配合使用。使用MongoDB不需要預先定義表和列就可以按需存儲新的數據實體,向MongoDB發送JSON格式文檔,MongoDB就會保存,可以根據這些JSON文檔屬性來進行搜索,方便了使用JavaScript編寫服務器代碼。
4 結論(Conclusion)
本文在研究Hybrid App相關技術及企業移動信息化現狀的基礎上,提出了一個基于Hybrid App技術的企業移動應用系統構建方案,同時對該方案涉及的關鍵技術做了分析與研究。初步的實踐表明,這個方案具有一定的可行性,對目前企業移動應用系統的開發具有一定的借鑒作用。
參考文獻(References)
[1] Ragnar Schierholz,Lutz Kolbe,Walter Brenner.Strategy Alignment of Mobile Solutions in Customer-Oriented Processes[J].Wirtschafts informatik,2005,47(1):17-24.
[2] Jitendra Maan.Enterprise Mobility-A Future Transformation Strategy for Organizations[C].Proceedings of the Second International Conference on Computer Science,Engineering & Applications(ICCSEA 2012),2012:559-567.
[3] N.Shenbagavadivu,I.Bremnavas,B.Lakshmi.A Generalized Distributed Delegate Object Model for E-com and M-com Applications[J].Arabian Journal for Science and Engineering,
2016,41(8):2903-2910.
[4] 陳其偉,李易,趙慶華.移動平臺——托起企業“互聯網+”的基石[M].北京:電子工業出版社,2015.
[5] 潘春華,等.基于PhoneGap的智能手機跨平臺應用[J].計算機系統應用,2014,23(7):106-109.
[6] 李張永,陳和平,顧進廣.跨平臺移動Web開發框架與數據交互方法[J].計算機工程與設計,2014,35(5):1827-1832.
[7] Paulo R.M.de Andrade,Adriano B.Albuquerque.Cross Platform App A Comparative Study[J].International Journal of Computer Science & Information Technology,2015,7(1):33-40.
[8] 楊葉,陳琳,董啟標.基于PhoneGap的跨平臺移動學習資源設計與開發探究[J].現代教育技術,2014,24(2):100-107.
[9] 郭毅棋.基于AppCan平臺的迎新系統設計與實現[J].電腦編程技巧與維護,2015(6):35-36;50.
[10] 徐毅,田春燕.基于Android的移動英語學習平臺的研究與實現[J].中國教育信息化,2014(4):87-89.
[11] Cosmina Ivan1,Razvan Popa.Cloud based Cross Platform Mobile Applications Building and integrating cloud services with mobile client applications[J].Advances in Computer Science:an International Journal,2014,3(2):69-77.
[12] 任永學,等.企業移動信息化發展研究[J].無線通信,2014(10):
43-46.
[13] Shalini Sharma,Satyajit Padhy Vikram Verma.Multi-Functional Social CRM in Cloud with Cross-Platform Mobile Application[J].International Journal of Computer Applications,2014,93(13):8-15.
[14] Richard Rodger.王英群,趙松德,譯.移動云計算應用開發入門經典[M].北京:清華大學出版社,2013:126-127.