H5-APP在企業系統中的架構應用

sas???發表於2018-12-06

喜歡從業的專注,七分學習的態度。

概述


H5-APP:場景提出是應對當前企業系統中面臨的主要問題而提出來的。原生APP在企業系統中面臨的主要問題包括:重複研發,差異與同步,升級更新,外系統互動等問題。利用H5整合的方案將ios和andorid的人員需求集中在Java+H5上,解決差異和互動問題的基礎上還能實現對需求的快速響應。

2164261-49fecb06c7e433bb.png
原生APP與H5整合研發投入比對

問題


H5構建APP確實能從直觀上聚合人力,更高效的研發和響應以及釋出,但H5的方式也存在一些重要問題。面對H5嵌入到APP框架的方式至少會碰到這些問題:安全性、攔截問題、載入慢、分發性、https限制,在一些硬體呼叫的場景還需要解決原生互動的問題。

實現架構


針對H5需要解決的問題以及H5本身存在的問題,在利用H5特性的同時原生APP框架也需提供部分通用API來彌補H5的問題。整體的實現從外到裡用三層來實現:分發層、介面層、業務層

  • 分發層--架構層:
    分發層將外部的訪問請求進行轉換和轉派,可以利用ngnix來處理,需要處理和轉換的請求包括http、https、ipv6,處理完後的請求根據分發規則到配置的Server服務上。外部頁面整合介面和APP框架整合地址均配置ngnix的地址和埠。


    2164261-c339c65a5255d641.png
    分發架構

特別對於二維碼掃描,小程式嵌入等有https安全訪問要求的情況,該層的轉換顯得尤為重要,利用nginx將外部的https請求轉換成內部伺服器間的http請求,應用叢集可以使用統一的http服務配置.

  • 介面層--嵌入層和安全控制層:
    介面層是主要的應用入口層,模組上分為原生框架APIH5的Web應用介面。原生框架API包括獲取裝置資訊、控制相機、控制音訊,觸控點選、選單事件、攔截以及異常反饋等API。H5的Web應用介面包括H5釋出地址、H5整合介面、金鑰控制、其它介面(webservice、http介面)、原生API互動。既要保證H5介面的訪問性,又要保證H5頁面的安全性。金鑰控制針對H5的釋出地址和H5的整合介面,對於URL的訪問來源和時效性進行控制,H5釋出地址的金鑰串由原生框架建立,H5整合介面的介面的金鑰由外系統建立傳入。 H5的釋出地址由原生框架的WebView進行URL嵌入訪問。
2164261-7610e44d28591b23.png
介面層

對於原生框架的URL嵌入,android系統可以使用騰訊的TBS瀏覽服務,IOS使用UIWebView進行嵌入。原生框架最初可以提供最常用的API,之後再進行擴充套件,最常用的API如:IP等網路資訊獲取的API、拍照的API、裝置規格資訊獲取的API。

  • 業務層--業務邏輯實現:
    業務層包含業務邏輯、介面呼叫,業務層與其它企業系統沒有什麼不同,但H5的業務層保持更簡單的業務處理,複雜的業務處理通過介面呼叫其它系統實現。
2164261-86f7692fa35b2728.png
業務層

對於業務層的原則,簡單的邏輯DAO層直接操作DB處理,複雜的業務邏輯呼叫其它系統介面完成。


總結:對於H5構建APP在企業系統中的應用是可靠和效率的,但針對H5的缺陷也需結合原生APP的功能來進行彌補。

<small>堅持積累,堅持學習。</small>

相關文章