?

基于云“微服務”裝配軟件開發方法的研究

2024-01-14 09:54左海春苑俊英張鑒新吳恒志
電腦與電信 2023年9期
關鍵詞:微服務數據服務視圖

左海春 苑俊英 張鑒新 王 虓 吳恒志

(廣州南方學院,廣東 廣州 510970)

1 引言

隨著云計算的迅速發展,云服務已成為許多組織和企業構建和交付軟件應用的關鍵方法。微服務架構作為一種軟件架構風格,通過將應用程序拆分為小型、自治的服務單元,為構建和擴展云應用提供了靈活性和可伸縮性。然而,隨著云微服務規模的不斷增長,如何高效地開發和裝配云微服務是當前一個重要挑戰[1-3]。

盡管已經有一些研究關注云微服務的開發和部署,但對于基于云微服務的軟件開發方法中的裝配過程仍然存在一些關鍵問題。這些問題可能包括如何有效組織和協調大規模的微服務集合、如何確保微服務之間的適配性和互操作性,以及如何在開發過程中提供有效的工具和支持[4,5]。因此,本研究旨在提供基于云微服務的軟件開發方法中裝配過程的深入理解和解決方案。

通過深入研究基于云微服務的軟件開發方法的裝配過程,可以為企業和組織提供更可靠、靈活和高效的軟件開發方法,推動云計算和微服務架構的進一步發展。

2 基于云微服務的軟件開發設計

2.1 建立基于云環境的軟件開發方法的層級結構體系

建立以云環境為基礎、微服務群為平臺與服務裝配為開發三層體系結構,如表1所示。對于安全性、性能要求較高的企業我們可以自建云環境。對于學校實驗、研究可以選擇公有云。微服務群平臺基于容器發布微服務組件,構建一個可伸縮的微服務容器,從而為上層提供服務組件與平臺,并且微服務組件可以實現二次開發,以滿足不同場景開發需求。裝配開發層,可以基于服務接口實現軟件系統開發,并提供可視化與腳本兩種開發選擇。

表1 云環境、微服務群平臺、裝配開發三層級結構體系

2.2 云微服務裝配過程設計

研究構建出一種基于云服務支撐環境下的微服務裝配軟件開發方法,其基本開發流程如圖1所示。

圖1 云微服務的軟件開發流程

其整個開發過程都是基于云環境下進行的,開發階段實現微服務功能,然后自動推送至代碼庫,通過編譯后智能配置與自動打包成鏡像,然后運行實體拉取鏡像與裝配系統并運行,從而完成系統開發。整個過程可以不斷迭代,持續開發部署與運行。

2.3 微數據服務編程模型

基于“縱橫分離,織入系統”思想構建微服務??v:指微服務業務邏輯;橫:指微服務輔助公共代碼,織入:縱橫代碼進行裝配,從而完整微服務系統開發。這種編程模型設計可降低耦合度,減少代碼,增加復用,便于擴展,提高靈活性,并對系統的可操作性和可維護性更加友好。在微數據服務編程模型中,編碼的具體實現分為拆分、實現和織入三個過程,如圖2所示。

圖2 微數據服務編程模型

(1)拆分:從系統需求中抽取公共服務點,并建立核心業務點。它們具有明確的分工與合作關系。公共服務點是指公共復用代碼部分,核心業務點是指業務核心代碼部分。

(2)實現:通過核心業務點實現業務模塊的開發;通過公共服務點實現公共模塊的開發。

(3)織入:將公共模塊編織入業務模塊(目標對象),在指定的業務目標處執行公共模塊代碼,從而整合二個模塊,實現微服系統。

2.4 界面服務模型開發

基于H5+Javascript 技術,以及本地緩存技術LocalStorage與SessionStor-age技術、SQLite技術,建立交互服務模型,容器服務模型,積木式自由組合界面模型。

(1)交互服務模型:交互界面上的供用戶輸入數據的元素、將數據輸出到其他元素或者系統的元素。

(2)容器服務模型:形態為資源容器。例如,一個數據結構、一個文件、一個記錄集、一張關系數據庫表、一項NoSQL數據、一項GrigDoc文檔元素,以及由它們組合而成的集合、記錄集及JSON格式的數據。

(3)積木式自由組合界面模型,采用Javascript+H5 技術開發實現。

(4)界面服務模型原理:通過數據視圖模型,建立視圖模型與數據業務模型,實現雙向綁定,如圖3所示。

圖3 界面服務模型原理

界面模型采用發布者/訂閱者模式,數據變化將被數據視圖所監聽,觸發相應的監聽回調函數,并更新視圖中的數據。同時,數據視圖接收用戶交互事件操作。數據視圖模型主要工作過程如圖4所示。

(1)數據視圖模型構建,使用事件監聽器實現,由觀察者監聽到數據的變化??梢酝ㄟ^遍歷方法對數據對象添加setter和getter方法。對象數據賦值回調setter方法,獲取對象數據通過調用getter方法完成。

(2)編譯者解析指令。通過數據解析數據,并初始化渲染頁面視圖,當數據發生變化時,會觸發相應的更新函數來更新視圖。隨著數據的變化和訂閱者的通知,能夠動態更新網頁視圖,以反映最新的數據狀態。

(3)訂閱者。當對象收到通知時,調用自己持有的update方法,完成視圖更新。

(4)數據視圖模型對象作為界面服務模型的核心,基于觀察者、編譯者和訂閱者實現:觀察者監聽model數據變化,并通過編譯者來解析指令,完成視圖更新;同時,它還實現了視圖交互變化和數據模型變更的雙向綁定效果。

2.5 客戶云引擎研究與開發

基于AJAX 技術原理,解決客戶與服務數據模型通信,及數據更新等技術問題。(1)基于事件驅動拉取數據,并自動渲染到界面組件。(2)注冊服務信息,創建客戶信息。(3)界面模型加載與抽取數據服務。

3 云微服務裝配方法的實現

云微服務裝配方法,它通過微代碼開發,容器對象生成,對象裝配組成,具體過程詳細見圖5 云微服務裝配,它可分為微服務的編程、請求與獲取、裝配與部署三個階段。

圖5 云微服務裝配

(1)編程階段

編程階段主要是微服務的設計與實現,將微服務代碼上傳到微服務資源庫中,編譯并測試。資源庫可以分類管理微代碼,如公共類、業務類等。

(2)請求與獲取階段

軟件開發人員根據需求模型、工具,自動生成微服務請求配置腳本,并向微服務資源庫申請云數據服務模型(包括核心服務模型與公共服務模型),資源庫接受相應的請求,然后解析,并選擇對應的微服務模塊,再選取微服務,加載到容器中。

(3)裝配與部署階段

根據軟件實施流程邏輯,把容器中的界面服務對象(前端)、數據服務對象等裝配在一起,形成初步的軟件框架。在微服務裝配過程中,基于配置文件自動裝配后,再由研發人員手動裝配與優化,進一步完善軟件框架功能。

各種開發團隊可以基于云服務的模式按需使用,個人開發者也可以通過網站注冊申請來使服務。開發者通過軟件開發云可隨時隨地在云端進行項目管理等以上工作,這讓開發者能夠專注快速創新和應對永無止境的需求變化,讓軟件開發更加簡單高效,提升了個人和團隊的交付能力和效率,也能進一步幫助企業提高競爭力。

4 基于微服務在教學實踐的應用

將本研究成果應用于軟件工程的專業實踐,基于微服務方式開發各類應用系統,能提升學生實驗的積極性與開發效率,如圖6所示。微服務的開發分為教師開發與學生開發,教師與學生開發的微服務存入代碼庫中。學生根據企業項目需求,配置實驗環境,在集群上分割出獨立安全的實驗環境,并為每個實驗環境進行資源分配。學生根據不同的實驗場景申請額外資源,主要包括申請與項目相關的“微服務”項,完成項目組合,并進行實驗。

圖6 教學實踐的應用

5 結語

本研究旨在探索基于云微服務的軟件開發方法中的裝配過程,并提供相關的方法和指導。本研究對基于云微服務的軟件開發方法的裝配過程進行了深入研究,并提供了一套系統化和規范化的方法和指導。通過理論分析和實證研究的結合,為開發人員和組織提供了在云環境下構建高質量、可擴展和靈活的軟件應用的有效方式。

然而,在實踐中也意識到本研究存在一些局限性。首先,實證研究的規模和范圍可能受限于資源和時間的限制,可能無法涵蓋所有可能的應用場景。其次,本研究的方法和指導仍需要在更廣泛的實踐中進行驗證和推廣。最后,云計算和微服務領域的快速發展可能會導致研究結果的時效性問題。

因此,未來的研究可以繼續深化基于云微服務的軟件開發方法的研究,并結合實踐經驗進一步改進和優化方法。同時,應密切關注云計算和微服務領域的最新發展,并及時調整研究方向,以滿足不斷變化的需求和挑戰。

猜你喜歡
微服務數據服務視圖
地理空間大數據服務自然資源調查監測的方向分析
5.3 視圖與投影
視圖
Y—20重型運輸機多視圖
SA2型76毫米車載高炮多視圖
微信公眾平臺在醫院圖書館的應用現狀調查
如何運用稅收大數據服務供給側結構性改革
基于微信企業號的校園移動服務
從單一模式系統架構往微服務架構遷移轉化技術研究
基于頻繁子圖挖掘的數據服務Mashup推薦
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合