作者:李宏訓,前端工程師,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 的工作流程如圖所示
- 當用戶打開應用後,app hub 會首先從 tenant-config-service 獲取 tenant config, 主要包含UAA的配置信息以及UI-config-service 的地址
- 根據UAA配置引導用戶進行登錄認證
- 登錄完成後,從 UI-Config-Service 獲取用戶可以訪問的微應用列表
- 根據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的內容和相關活動。