基於App-Hub實現微應用架構

作者:李宏訓,前端工程師,GE數字集團

如果您還沒有Predix試用帳號,請訪問https://supportcentral.ge.com/esurvey/GE_survey/takeSurvey.html?form_id=18446744073709715720 申請。請務必準確提供您的信息,我們會以郵件方式通知您註冊結果。

什麼是微應用

如果我們想實現一個功能很複雜的大型應用程序,經常會隨着代碼體積的增加而慢慢變得非常難以維護。微應用(microapp)架構的提出,正是爲了解決這個問題。
我們可以把一個大型應用根據功能拆成很多個小的應用,然後通過app-hub把這些小應用集成到一起形成一個大型應用。這樣的好處是,每個微應用完全可以獨立開發、部署、升級,可以選用不同的技術框架,互相之間不會產生直接的影響。即使一個微應用崩潰,也不會影響其他微應用正常使用。

App-Hub

App-hub 是一個nodejs/express 編寫的應用,他主要提供如下功能:

  • 提供統一的用戶登錄/認證流程,在微應用中不用處理登錄邏輯
  • 提供一個統一的導航欄,可以在不用的微應用中進行切換
  • 提供一些JS工具,比如通知欄

使用App-hub之後,我們的應用結構如圖所示,不同的功能會通過不用的微應用來提供:

這裏寫圖片描述

App hub 的工作流程如圖所示

這裏寫圖片描述

  1. 當用戶打開應用後,app hub 會首先從 tenant-config-service 獲取 tenant config, 主要包含UAA的配置信息以及UI-config-service 的地址
  2. 根據UAA配置引導用戶進行登錄認證
  3. 登錄完成後,從 UI-Config-Service 獲取用戶可以訪問的微應用列表
  4. 根據URL對應的微應用,請求微應用的內容並返回給用戶

App hub 對集成的微應用會有一定的要求:

  • 微應用的html中應該只有content內容,不包含 html 和 body 等標籤
  • 微應用中請求資源的url必須是相對於當前頁面的路徑
  • 微應用應該符合app-hub的樣式規範

感謝使用Predix
- 在使用中您有任何問題,請訪問我們的論壇http://bbs.csdn.net/forums/GEPredix GE數字集團的技術專家們會在線回答您的問題。
- 也請訪問我們在CSDN的Predix專區http://predix.csdn.net 瞭解更多Predix的內容和相關活動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章