TWI494855B - Methods and systems for implementing hot deployment of software systems - Google Patents
Methods and systems for implementing hot deployment of software systems Download PDFInfo
- Publication number
- TWI494855B TWI494855B TW099117424A TW99117424A TWI494855B TW I494855 B TWI494855 B TW I494855B TW 099117424 A TW099117424 A TW 099117424A TW 99117424 A TW99117424 A TW 99117424A TW I494855 B TWI494855 B TW I494855B
- Authority
- TW
- Taiwan
- Prior art keywords
- service
- processing engine
- processing
- service processing
- processing unit
- Prior art date
Links
Landscapes
- Stored Programmes (AREA)
Description
本請案關於一種熱部署的方法及系統,尤其關於一種熱部署時不停止對外提供服務的軟體系統熱部署的方法及系統。
對於大型的業務關鍵型系統,如金融系統、電子商務系統等,系統可用性是一個非常關鍵的指標,通常需要24小時不間斷服務。系統一旦停止,就有可能會帶來巨大的損失。然而,這類系統的業務規則又複雜多變,經常需要進行各種各樣的升級,在業務規則發生變化時,需要重新啟動系統來進行系統升級,這樣就極大的降低了系統可用性。
為了避免在系統升級時重新啟動系統進而造成損失,實現軟體系統熱部署的方法應運而生,所謂熱部署是指在軟體系統運行時升級軟體,而不需要重新啟動系統。在申請號為200610123883.0的中國專利中提到一種實現熱部署的方法,就是將升級前的伺服器進行備份,同時對外提供服務,等升級完畢後再切換到升級後的web伺服器,從而對外表現為熱部署。這種實現熱部署的方法需要提供兩台伺服器來實現熱部署。
在上述的專利申請文件中,還揭示了一種實現熱部署的方法。現介紹如下:
在現有系統通常採用的基於流覽器/伺服器(Browser/Server,簡稱B/S)架構的平臺中,一般採用基於Java的Web伺服器,該伺服器採用MVC架構(model(模式)、view(視圖)、control(控制))模式,就是將其分為以下幾個層次:視圖層、控制層和模式層。其中:
視圖層:為用戶交互介面,也就是Web的介面。視圖層一般都是靜態的文字檔案或JSP(Java Server Page,簡稱JSP)頁面,根據JavaEE的規範,如果它們被修改,不需要重新啟動Web應用就可以生效。
控制層:用於從用戶接收請求,將模式層和視圖層進行匹配,共同完成用戶的請求。由於這部分與業務邏輯無關,僅僅是對視圖層請求的轉發至相應的模型層處理,因此控制層的變化僅僅在轉發的配置上,轉發規則上基本不會發生變化。如果轉發的配置發生改變,只需要重新載入一下配置檔就可以完成,而不需要重啟。
模式層:用於業務流程/狀態的處理以及業務規則的制定,是業務邏輯模組。在傳統的Web服務端,所有的模式層都被載入至同一個Web應用的類載入器中。因此要更新已載入的類,就需要重新載入Web應用的類載入器,這就導致了添加\更新、刪除模組要重新啟動Web應用。而申請號為200610123883.0中揭示的方案是在傳統的基於MVC的Web伺服器端,將開放式服務閘道架構於B/S架構伺服器端,並將B/S架構伺服器端的模式層置於開放式服務閘道架構的各個子模組中,由於開放式服務閘道架構的各個子模組都具有自己的類載入器,在某個模組發生變化的時候,僅僅需要重新啟動模組自身的類載入器即可,從而避免重新啟動Web應用的類載入器,因而使用Web應用的類載入器的熱部署得以實現。上述實現熱部署的方式雖然能夠實現熱部署,但是,還是存在以下的問題:
第一種將整個伺服器備份為另一個伺服器來實現熱部署的方法,需要增設新的伺服器,由此增加成本。
第二種引入開放式服務閘道架構來實現熱部署,需要將模式層設置在開放式服務閘道架構的各個子模組當中,當模式層發生改變時,雖然web應用的類載入器能夠實現熱部署,但是開放式服務閘道架構的各個子模組同樣需要重新啟動,不能完全意義上實現熱部署。而且,需要對現有的系統進行大量的改動,存在穩定性不高,安全性差的問題,只適合在沒有運行的業務系統上適用,不適合現已運行的系統上的應用。
也就是說,在成本低且改動小的情況下,現有的軟體系統中不停機的情況下如何進行軟體更新是目前還需要解決的課題。
本案的目的在於提供一種實現軟體系統熱部署的方法,以解決現有技術中系統升級時不能對外提供服務且升級成本高、穩定性不高的技術問題。
本案的另一目的在於提供一種實現軟體系統熱部署的系統,以解決現有技術中系統升級時不能對外提供服務且升級成本高、穩定性不高的技術問題。
一種實現軟體系統熱部署的系統,包括伺服器和資料庫,該伺服器與該資料庫連接,該資料庫進一步包括:第一業務規則儲存單元:用於儲存業務規則;第二業務規則儲存單元:用於儲存業務規則;該伺服器進一步包括:第一業務處理引擎,連接第一業務規則儲存單元,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則;當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態;第二業務處理引擎,連接第二業務規則儲存單元,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則;當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態;並且,第一業務處理引擎/第二業務處理引擎始終是一個處於運行狀態,一個處於等待狀態。
檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置進一步包括:
檢測對應的業務規則儲存單元儲存的規則是否發生變化,若是,則直接更新對應的業務規則儲存單元。
檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置進一步包括:
檢測本業務處理引擎的處理設置是否發生變化,若是,則直接更新本業務處理引擎。
另外,本系統還包括:輸入資料處理單元,分別連接第一業務處理引擎和第二業務處理引擎,用於接收業務處理請求,並將業務處理請求發送至處於運行狀態的業務處理引擎;輸出資料處理單元:分別連接第一業務處理引擎和第二業務處理引擎,用於接收處於運行狀態的業務處理引擎輸出業務處理結果。
還有,第一業務處理引擎/第二業務處理引擎進一步包括:業務處理單元:分別連接輸入資料處理單元和輸出資料處理單元,用於判斷從輸入資料處理單元接收到的業務處理請求是否符合對應業務規則儲存單元儲存的規則,並將結果輸出至輸出資料處理單元;掃描處理單元,用於檢測對應的業務規則儲存單元儲存的業務規則是否發生變化和/或本處理引擎的處理設置是否發生變化;更新處理單元:用於直接更新對應的業務規則儲存單元儲存的規則和/或更新本處理引擎;交換處理單元:用於當本業務處理引擎處於等待狀態時,在接收到更新處理單元的更新信號後向另一業務處理引擎發送下線通知,再將本業務處理引擎設置為運行狀態使業務處理單元工作,並向掃描處理單元發送停止工作信號;在接收到另一業務處理引擎發送的下線通知時,將本業務處理引擎設置為等待狀態,並分別向業務處理單元發送停止工作信號和向掃描處理單元發送啟動工作資訊。
第一業務規則儲存單元/第二業務規則儲存單元,設置在對應的第一業務處理引擎/第二業務處理引擎中。
本系統還可以包括熱部署處理單元,其分別連接第一業務處理引擎和第二業務處理引擎,用於決定第一業務處理引擎和第二業務處理引擎當前所處的狀態。
第一業務處理引擎/第二業務處理引擎進一步包括:業務處理單元:分別連接輸入資料處理單元和輸出資料處理單元,用於判斷從輸入資料處理單元接收到的業務處理請求是否符合對應的業務規則儲存單元儲存的規則,並將判斷的結果輸出至輸出資料處理單元;掃描處理單元,用於檢測對應的業務規則儲存單元儲存的業務規則是否發生變化和/或本處理引擎的處理設置是否發生變化;更新處理單元:用於直接更新第一業務規則儲存單元/第二業務規則儲存單元儲存的規則或直接更新本處理引擎;交換處理單元:連接熱部署處理單元,用於當本業務處理引擎處於等待狀態時,在接收更新處理單元的更新信號後,通過熱部署處理單元向另一業務處理引擎發送下線通知,再將本業務處理引擎設置為運行狀態使業務處理單元工作,並向掃描處理單元發送停止工作信號;在接收到另一業務處理引擎通過熱部署處理單元發送的下線通知時,將本業務處理引擎設置為等待狀態,並發送停止工作信號至業務處理單元以及使掃描處理單元停止工作。
該交換處理單元進一步包括:狀態子單元:用於保存當前業務處理引擎處於運行狀態還是等待狀態;啟動子單元:用於在接收更新處理單元的更新信號後,並通過熱部署處理單元向另一業務處理引擎或直接向另一業務處理引擎發送下線通知,再將本業務處理引擎設置為運行狀態使業務處理單元工作,再發送停止工作信號至掃描處理單元;下線處理子單元:在接收到另一業務處理引擎/熱部署處理單元發送下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元以及使掃描處理單元工作。
該交換處理單元還包括:
更新處理觸發子單元:用於在本業務處理引擎處於等待狀態時,當接收掃描處理單元的掃描信號後向更新處理單元發送啟動信號。
本系統還包括:
下線更新子單元:連接下線處理子單元,用於接收到下線處理子單元下發的觸發信號後,直接將本引擎對應的業務規則儲存單元進行更新或更新本引擎。
該資料庫還包括:
標記處理單元:用於對該業務規則進行更新方式標記處理,標記該業務規則為自動更新業務規則或觸發式更新業務規則。
一種實現軟體系統熱部署的方法,用於完成軟體處理系統中核心業務的熱部署,包括:
(1)在軟體系統中設置用以處理核心業務的第一業務處理引擎和第二業務處理引擎,該第一業務處理引擎連接對應的第一業務規則儲存單元,第二業務處理引擎連接對應的第二業務規則儲存單元;
(2)設置第一業務處理引擎和第二業務處理引擎的其中之一為運行狀態,另一個處於等待狀態;
(3)當軟體系統的處理設置發生變化時,更新處於等待狀態的業務處理引擎對應的處理設置;
(4)將處於等待狀態的業務處理引擎設定為運行狀態,並將原處於運行狀態的業務處理引擎設定為等待狀態。
步驟(4)之後還包括:
處於等待狀態的業務處理引擎更新對應的業務規則儲存單元儲存的規則。
本方法還包括:步驟(3)之前還包括:設置業務規則庫,每一次業務規則發生變化時,直接更新業務規則庫;步驟(3)業務規則發生變化進一步包括:處於等待狀態的第一業務處理引擎/第二業務處理引擎檢測業務規則庫和其對應的業務規則儲存單元中儲存的規則,若存在不相同,則業務規則發生變化。
本方法中步驟(4)進一步包括:處於等待狀態的業務處理引擎向另一業務處理引擎發送下線通知,並將本業務處理引擎設置處於運行狀態,停止檢測業務規則庫和其對應的業務規則儲存單元中儲存的規則是否相同的掃描操作;第一業務處理引擎/第二業務處理引擎接收到下線通知後,開始檢測對應的業務規則儲存單元儲存的業務規則是否發生變化和/或本處理引擎的處理設置是否發生變化。
本方法還包括:
在接收到另一業務處理引擎發送下線通知時,將本業務處理引擎設置為等待狀態。
本方法還包括:設置熱部署處理單元;第一業務處理引擎/第二業務處理引擎,檢測業務規則發生變化和/或處理引擎的處理設置發生變化時,直接更新對應的業務規則儲存單元和/或直接更新本處理引擎,並向熱部署處理單元發送請求;熱部署處理單元將發出請求的業務處理引擎所處的狀態設置為運行狀態,並將另一業務處理引擎所處的狀態設置為等待狀態,並向該業務處理引擎發出下線通知;另一個業務處理引擎接收到下線通知後,更新本業務處理引擎對應的業務規則儲存單元中的規則。
本案可以在每台伺服器內設置兩個業務處理引擎,每個伺服器系統內交替運行著兩個業務處理引擎,一個處於運行狀態時,另一個處於等待狀態,對於用戶的業務請求,只有處於運行狀態的業務處理引擎可以接受處理。當系統的業務規則發生變化,需要進行更新時,處於等待狀態的業務處理引擎以新業務規則進行更新後啟動並與處於運行狀態的業務處理引擎進行業務交換,接受處理用戶的業務請求,同時,將原來處於運行狀態的業務處理引擎下線,使之處於等待狀態,等待下一次更新,從而實現了軟體系統核心業務功能的熱部署。與現有技術相比,本案具有以下有益效果:
1、本案在升級系統時所有伺服器可同時進行升級,不需要重新啟動系統,並且在更新過程中仍然可以對外提供服務,單台伺服器也可實現熱部署,真正實現了動態更新,提高了系統可用性。最為重要的是,本案在升級時,不需要對整個伺服器進行啟動,只需要啟動對應的業務處理引擎即可,非常方便,而且也節省升級的時間。
2、本案實現了所有伺服器同時升級,因此不必再備份伺服器,有效節約了升級成本。
以下結合附圖,具體說明本案。
考慮到通過兩個伺服器來實現整個軟體系統的熱部署,需要增加一個新的設備,增加新的成本。為此,本案只需要設置一新的業務處理引擎即可實現同樣的功能,不需要額外增加硬體成本。
第一實例
請參閱圖1,其為本案的一種實現軟體系統熱部署的系統的第一實例的原理結構示例圖。它包括伺服器11和資料庫12。伺服器11與資料庫12連接。
資料庫12進一步包括:
業務規則庫21,用於儲存業務規則。業務規則主要是指數據需要滿足的條件。資料可以是一個也可以是多個,同樣,需要滿足的條件也可以是多個。業務規則庫21經常需要更新,可以由用戶直接輸入。
第一業務規則儲存單元22:連接業務規則庫21,用於儲存業務規則。
第二業務規則儲存單元23:連接業務規則庫21,用於儲存業務規則。
業務規則庫21中儲存有所有的業務規則。當需要修改業務規則時,操作者直接修改業務規則庫21中的內容。需要說明的是,第一業務規則儲存單元22與後續談到的第一業務處理引擎32相對應,第二業務規則儲存單元23與後續談到的第二業務處理引擎33相對應。
伺服器11進一步:
輸入資料處理單元31,用於接收業務處理請求。輸入資料處理單元31可以接收到很多介面發送的業務處理請求,可以將上述業務處理請求處理成統一格式的資料包發送給後續處於運行狀態的業務處理引擎。也就是說,輸入資料處理單元31類似於預處理操作。預處理操作包括接收業務處理請求,從中解析出對應的資料。比如,有二個介面發送業務處理請求,其中一個發送的內容包括A1、A2、A3、A4,而另一個介面發送的業務處理請求包括A2、A3、A4、A5。輸入資料處理單元31接收到業務處理請求,先判斷是哪個介面發送的,並從中解析出對應的內容,並將該些內容發送至後續的處於運行狀態的業務處理引擎進行規則判定。
第一業務處理引擎32,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則;當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態。第一業務處理引擎32處於運行狀態時,不只做判斷接收到的請求符合儲存單元儲存的規則這一操作,還可以根據對判斷結果進行歸總計算等操作。總之,第一業務處理引擎32根據輸入處理具體的業務邏輯,並產生業務處理結果。
軟體系統的處理設置發生變化包括業務規則發生變化,還包括處理引擎的處理設置發生變化。
第一業務處理引擎32根據輸入處理具體的業務邏輯,並產生業務處理結果至少包括以下工作:先判斷接收到的業務處理請求是否符合對應業務規則儲存單元的規則,再根據判斷的結果按照預先設定的流程進行處理,最後再將業務處理結果返回。
舉個例子來說,比如,業務處理請求為A,對應的業務規則儲存單元儲存的規則為A>1時,直接輸出該業務處理結果,否則將其求反後再輸出。也就是說,第一業務處理引擎32預先設定好各種操作流程,後根據具體的業務處理請求進行處理,並按照對應的操作流程進行操作。
第二業務處理引擎33,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第二業務規則儲存單元儲存的規則;當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態。也就是說,當處於等待狀態時,檢測業務規則和/或處理引擎的處理設置是否發生變化,如果有變化,直接更新第二業務規則儲存單元23和/或本處理引擎33,然後將本業務處理引擎33設置為運行狀態。
第一業務處理引擎32和第二業務處理引擎33至少需要處理接收到的業務處理請求是否是符合預先設定的規則。為了實現熱部署,本案採用至少兩個業務處理引擎來完成該熱部署功能。在本實例中,是兩個業務處理引擎採用主動方式完成熱部署功能。
輸出資料處理單元34,用於輸出業務處理結果。主要是處於運行狀態的業務處理引擎處理好業務處理請求後,並將結果發送至輸出資料處理單元34,以便輸出資料處理單元34能夠將其轉換成按照預先設定的格式後返回至對應的請求端或者是發送至對應的結果地。
軟體系統中包括上述模組,用於判斷某些請求是否符合預先設定的規則。軟體系統可以完成各種功能,該些模組只不過是其中若干組成模組。
另外,在本案中,業務規則庫21是作為一個參考業務規則庫,當需要修改業務規則時,直接在業務規則庫21中進行修改,當需要檢測規則是否發生變化時,第一業務規則儲存單元22和第二業務規則儲存單元23是和業務規則庫21去做比較,若有不同,則說明已修改。這種方式,系統的穩定性最好。
當然,還有其他的實現方式,比如,修改業務規則是直接修改處於等待狀態下的業務處理引擎對應的業務規則儲存單元22,一旦有修改,表明規則發生了變化。這種實現方式雖然系統穩定性稍差,但是同樣也能實現類似的功能。
並且,第二業務處理引擎33/第一業務處理引擎32始終是一個處於運行狀態,一個處於等待狀態。從硬體上有多種實現方式。比如,伺服器上設置一控制器,用於控制第一業務處理引擎32和第二業務處理引擎33的狀態,使它們一個處於運行狀態,一個處於等待狀態。比如,第一業務處理引擎32和第二業務處理引擎33上分別設置一狀態控制單元,即第一業務處理引擎32上設置第一狀態控制單元,第二業務處理引擎33上設置一第二狀態控制單元,通過第一狀態控制單元和第二狀態控制單元的相互通信,控制兩個業務處理引擎一個處於運行狀態,一個處理等待狀態。
請參閱圖2,其為本案第二業務處理引擎33/第一業務處理引擎32內部結構的一實例原理圖。
該第二業務處理引擎33/第一業務處理引擎32進一步包括:
業務處理單元41:用於分別連接輸入資料處理單元31和輸出資料處理單元34,並根據輸入處理具體的業務邏輯,並產生業務處理結果,後將結果輸出至輸出資料處理單元34。該業務處理單元41主要是比對該業務處理請求中攜帶的資料是否符合對應的第一業務規則儲存單元22/第二業務規則儲存單元23儲存的規則。還是以上述有二個介面發送業務處理請求為例,第一業務規則儲存單元22/第二業務規則儲存單元23中可以分別儲存A1、A2、A3、A4、A5這些欄位需要滿足的條件,當接收到輸入資料處理單元31發送的資料時,分別判斷對應的欄位是否滿足對應的條件,並將結果傳送至輸出資料處理單元34。根據輸入處理具體的業務邏輯,並產生業務處理結果包括但不限於以下步驟:判斷從輸入資料處理單元31接收到的業務處理請求是否符合對應業務規則儲存單元儲存的規則。
掃描處理單元42,用於檢測業務規則和/或處理引擎的處理設置是否發生變化。掃描處理單元42可以分別檢測對應的業務規則儲存單元和/或對應的引擎的處理設置是否發生變化。在本實例中,掃描處理單元42可以只檢測對應的業務規則。掃描處理單元42檢測業務規則庫21中儲存的內容及本處理引擎的設定是否發生變化,若發生變化,發出更新觸發信號至後續的交換處理單元44,由交換處理單元44來控制向更新處理單元43發送更新觸發信號。或者是,掃描處理單元42檢測到發生變化後,發出更新觸發信號至後續的更新處理單元43,由更新處理單元43在更新完畢操作後再發送至後續的交換處理單元44。
更新處理單元43:用於直接更新第一業務規則儲存單元22/第二業務規則儲存單元23儲存的規則,使之與業務規則庫21一致。以及,更新處理單元43直接更新本處理引擎。也就是說,更新處理單元43的更新操作可以包括僅更新對應的業務規則儲存單元中的儲存規則,使之和業務規則庫21中儲存的規則一致。更新處理單元43還可以將對應的處理引擎進行重新啟動的操作,使修改後的處理引擎的設置生效。
另外,更新處理單元43的觸發可以由掃描處理單元42發起,就是接收到掃描處理單元42發送的觸發信號後進行更新操作,並在更新操作完畢後發送更新完畢信號至後續的交換處理單元44。更新處理單元43的觸發也可以由交換處理單元44發起,就是接收到交換處理單元44發送的觸發信號後進行更新操作,並在更新操作完畢後發送更新完畢信號至交換處理單元44。
在本實例中,業務處理單元41和掃描處理單元42不會同時工作,在處理引擎處於等待狀態時,掃描處理單元42在工作。在處理引擎處於運行狀態時,業務處理單元41在工作。在本實例中,由交換處理單元44來決定掃描處理單元42和業務處理單元41誰處於工作狀態。
具體地說,可以下述的實例來具體實現:
A1:當掃描處理單元42在工作狀態時,假設檢測到業務規則庫21中的規則有更改,則可以發送觸發信號至更新處理單元43;
A2:更新處理單元43將對應的業務規則儲存單元中的業務規則更新至與業務規則庫21一致,更新處理單元43將更新完成的更新完畢信號發送至交換處理單元44;
A3:交換處理單元44接收到更新完畢信號後向另一業務處理引擎發送下線通知,再將本業務處理引擎設置處於運行狀態,並發送停止工作信號至掃描處理單元42,使業務處理單元41工作。
當本業務引擎處於運行狀態時,交換處理單元44接收到另一業務處理引擎發送的下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元41,並使掃描處理單元42工作。另外,還需要使更新處理處理單元43進行更新操作。
或者,也可以通過下述的另一實例來具體實現:
B1:當掃描處理單元42在工作狀態時,假設檢測到業務規則庫21中的規則有更改,則可以發送觸發信號至交換處理單元44;
B2:交換處理單元44接收到觸發信號,發送信號至更新處理單元43,由更新處理單元43進行更新操作,並返回更新完畢信號至交換處理單元44;
B3:交換處理單元44接收到更新完畢信號後,向另一業務處理引擎發送下線通知,再將本業務處理引擎設置處於運行狀態,發送停止工作信號至掃描處理單元42,使業務處理單元41工作。
還有,當本業務引擎處於運行狀態時,交換處理單元44接收到另一業務處理引擎發送的下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元41,並使掃描處理單元42工作。另外,還需要使更新處理單元43進行更新操作。
在本實例中,第一業務規則儲存單元22/第二業務規則儲存單元23,可以集成在對應的第一業務處理引擎32/第二業務處理引擎33中,而不是單獨設置在資料庫中。
在本實例中,通過第一業務處理引擎32和第二業務處理引擎33來主動決定當前處於運行狀態下是哪個業務處理引擎。
請參閱圖3,其為本實例中交換處理單元可進一步細化為:
狀態子單元441:用於保存當前業務處理引擎處於運行狀態還是等待狀態。
更新處理觸發子單元442:用於在本業務處理引擎處於等待狀態時,接收掃描處理單元42的信號後,發送觸發信號至更新處理單元43來啟動更新處理單元43的更新操作。
啟動子單元443:用於在接收更新處理單元43的更新完畢信號後,向另一業務處理引擎發送下線通知,再將本業務處理引擎的狀態子單元441設置為本處理引擎為運行狀態,發送停止工作信號至掃描處理單元42。
下線處理子單元444:在接收到另一業務處理引擎發送的下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元41,使掃描處理單元42工作。
下線更新子單元445:連接下線處理子單元444,用於接收到下線處理子單元444下發的觸發信號後,發送觸發信號至更新處理單元43。
當由掃描處理單元42直接通知更新處理單元43進行更新操作時,更新處理觸發子單元442可以省略。
基於上述的結構,本實例揭示了一種對應的熱部署的流程(請參閱圖4)。
S110:設置第一業務處理引擎和第二業務處理引擎,該第一業務處理引擎和第二業務處理引擎分別對應第一業務規則儲存單元和第二業務規則儲存單元。第一業務規則儲存單元和第二業務規則儲存單元同樣是用於儲存規則。第一業務處理引擎和第一業務規則儲存單元對應,主要是指第一業務處理引擎根據輸入處理具體的業務邏輯,並產生業務處理結果,根據輸入處理具體的業務邏輯包括一個操作:判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則。從邏輯上來看,第一業務處理引擎是連接第一業務規則儲存單元,或者是將第一業務規則儲存單元直接設置在第一業務處理引擎中,第二業務處理引擎也是如此,在此就不同詳細敍述。
在本實例中,若設置有業務規則庫,則初始狀態下,第一業務規則儲存單元的內容與業務規則庫中的內容完全相同,同理,第二業務規則儲存單元的內容與業務規則庫中的內容也完全相同。
若沒有設置業務規則庫,則在初始狀態下,第一業務規則儲存單元和第二業務規則儲存單元分別儲存所有的業務規則。
S120:在軟體處理系統中設置第一業務處理引擎和第二業務處理引擎其中之一為等待狀態,另一個為運行狀態。
設置為運行狀態的業務處理引擎根據輸入處理具體的業務邏輯,並產生業務處理結果。該步驟包括設置為運行狀態的業務處理引擎檢測接收到的業務處理請求是否符合對應業務規則儲存單元儲存的規則,並將結果輸出。
設置在等待狀態的業務處理引擎即時或定週期檢測業務規則和/或本處理引擎的處理設置是否發生變化。
當有業務規則庫存在時,該業務規則發生變化是指對應的業務規則儲存單元的規則和業務規則庫儲存的規則不一致。
當沒有業務規則庫存在時,一旦對應的業務規則儲存單元的規則被修改、被刪除等變化時,就可以啟動後續的步驟。
S130:設置在等待狀態的業務處理引擎檢測到軟體系統的設置發生變化時,更新對應的軟體系統設置。
軟體系統的設置發生變化包括業務規則的變化和本業務處理引擎的處理設置發生變化。
S140:設置在等待狀態的業務處理引擎向另一個業務處理引擎發送下線通知,並將本業務處理引擎設置為運行狀態。根據輸入處理具體的業務邏輯,並產生業務處理結果。該步驟包括設置為運行狀態的業務處理引擎檢測接收到的業務處理請求是否符合對應業務規則儲存單元儲存的規則,並將結果輸出。
S150:另一個業務處理引擎停止檢測接收到的業務處理請求是否符合本業務規則儲存單元儲存的規則的操作,再將本業務處理引擎設置為等待狀態,後將軟體系統進行更新操作。設置為等待狀態的業務處理引擎是需要即時或定週期檢測業務規則和/或本處理引擎的處理設置是否發生變化。
通過上述的實例可知,不需要重新啟動即可以完成更新,並且,本案還具有穩定性強,變動小的技術效果。
第二實例
請參閱圖5,其為本案的另一個實例。在該實例中,是通過熱部署處理單元來控制當前處於運行狀態下的是哪個業務處理引擎。
本案也包括資料庫和伺服器。伺服器進一步包括輸入資料處理單元51、第一業務處理引擎52、第二業務處理引擎53、輸出資料處理單元54之外,還包括一熱部署處理單元55。熱部署處理單元55分別連接第一業務處理引擎52和第二業務處理引擎53,用於接收到請求時,更改發出請求所在的第一業務處理引擎52/第二業務處理引擎53的狀態,並向該業務處理引擎發出下線通知。這種情況下,是由熱部署處理單元55來控制第一業務處理引擎52、第二業務處理引擎53哪個處於運行狀態,哪個處於等待狀態。
第一業務處理引擎52/第二業務處理引擎53可以如第一實施例一樣包括業務處理單元、交換處理單元、更新處理單元和掃描處理單元。第一業務處理引擎52/第二業務處理引擎53還可以只包括業務處理單元、掃描處理單元和更新單元,交換處理單元的功能集成在熱部署處理單元55即可。
當第一業務處理引擎52/第二業務處理引擎53可以如第一實施例一樣包括業務處理單元、交換處理單元、更新處理單元和掃描處理單元時,第一業務處理引擎52/第二業務處理引擎53進一步包括:
業務處理單元:用於分別連接輸入資料處理單元51和輸出資料處理單元54,並判斷從輸入資料處理單元51接收到的業務處理請求是否符合本業務規則儲存單元儲存的規則,並將結果輸出至輸出資料處理單元53。
掃描處理單元,用於檢測業務規則和/或處理引擎的處理設置是否發生變化。
更新處理單元:掃描處理單元檢測到業務規則和/或處理引擎的處理設置發生變化時,用於直接更新第一業務規則儲存單元22/第二業務規則儲存單元23和/或直接更新本處理引擎。
交換處理單元:用於接收到熱部署處理單元55的指令後,使業務處理單元61工作,或者是使掃描處理單元62工作。
第一業務處理引擎52/第二業務處理引擎53還可以只包括業務處理單元、掃描處理單元和更新單元。熱部署處理單元55分別連接各個處理引擎的業務處理單元、掃描處理單元和更新單元。也就是說,熱部署處理單元55控制各個單元的工作。
假設第一業務處理引擎52包括第一業務處理單元521、第一掃描處理單元522和第一更新單元523。第二業務處理引擎53包括第二業務處理單元531、第二掃描處理單元532和第二更新處理單元533。並且,假設第一業務處理引擎52處於運行狀態,第二業務處理引擎53處於等待狀態。
熱部署處理單元55接收到第二掃描處理單元531的觸發信號後,使第二更新單元533的更新操作,當接收到第二更新單元533的更新完畢信號後,發送停止工作信號至第一業務處理單元521和第二掃描處理單元,並使第一掃描處理單元522和第一業務處理單元工作。
通過上述的實例可知,不需要重新啟動即可以完成更新,並且,本案還具有穩定性強,變動小的技術效果。
請參閱圖7,其為本實例實現軟體系統熱部署的對應方法的流程圖。它包括:
S210:在軟體系統中設置用以處理核心業務的第一業務處理引擎和第二業務處理引擎,該第一業務處理引擎和第二業務處理引擎分別對應第一業務規則儲存單元和第二業務規則儲存單元。
第一業務規則儲存單元和第二業務規則儲存單元同樣是用於儲存規則。第一業務處理引擎和第一業務規則儲存單元對應,主要是指第一業務處理引擎根據輸入處理具體的業務邏輯,並產生業務處理結果,根據輸入處理具體的業務邏輯包括一個操作:判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則。從邏輯上來看,第一業務處理引擎是連接第一業務規則儲存單元,或者是將第一業務規則儲存單元直接設置在第一業務處理引擎中,第二業務處理引擎也是如此,在此就不同詳細敍述。
S220:在軟體處理系統中設置第一業務處理引擎和第二業務處理引擎其中之一為運行狀態,一個處於等待狀態。
S230:當軟體系統的處理設置發生變化時,更新對應的軟體系統的處理設置。
S240:將處於等待狀態的業務處理引擎設定為運行狀態,並將原處於運行狀態的業務處理引擎設定為等待狀態。
在第一業務處理引擎和第二業務處理引擎通過熱部署處理單元來實現熱部署時,其可以通過以下步驟來實現:設置熱部署處理單元;第一業務處理引擎/第二業務處理引擎,檢測業務規則發生變化或處理引擎的處理設置發生變化時,直接更新第二業務規則儲存單元或直接更新本處理引擎,並向熱部署處理單元發送請求;熱部署處理單元更改發出請求所在的第一業務處理引擎/第二業務處理引擎處於運行狀態,並更新另一業務處理引擎處於等待狀態,並向該業務處理引擎發出下線通知;另一個業務處理引擎接收到下線通知後,將本業務處理引擎設置為等待狀態,並更新本業務處理引擎對應的業務規則儲存單元中的規則或更新對應的業務處理引擎的軟體設定的更新。
應用例
目前,檢測一個公司或一個人的信用,是一件非常重要的事情,本案就可以適用到網路信用認證體系中。
輸入資料處理單元接收需要進行信用認證的請求,第一業務處理引擎和第二業務處理引擎中其中處於運行狀態的業務處理引擎對其進行認證。當業務規則庫的規則(主要是指個人信用規則)發生變化時,可以在不停止業務處理引擎工作時完成各引擎的規則更新,具有極強的實用性。
本案在伺服器內設置兩個業務處理引擎,每個伺服器系統內交替運行著兩個業務處理引擎,一個處於運行狀態時,另一個處於等待狀態,對於用戶的業務請求,只有處於運行狀態的業務處理引擎可以接受處理。當系統的業務規則發生變化,需要進行更新時,處於等待狀態的業務處理引擎以新業務規則進行更新後啟動並與處於運行狀態的業務處理引擎進行業務交換,接受處理用戶的業務請求,同時,將原來處於運行狀態的業務處理引擎下線,使之處於等待狀態,等待下一次更新,從而實現了軟體系統核心業務功能的熱部署。一般來說,處於等待狀態的業務處理引擎更新新的業務規則後需要重新啟動該業務處理引擎。
與現有技術相比,本案具有以下有益效果:
1、本案在升級系統時所有伺服器可同時進行升級,不需要重新啟動系統,並且在更新過程中仍然可以對外提供服務,單台伺服器也可實現熱部署,真正實現了動態更新,提高了系統可用性。
2、本案實現了所有伺服器同時升級,因此不必再備份伺服器,有效節約了升級成本。
以上揭示的僅為本案的幾個具體實施例,但本案並非侷限於此,任何本領域的技術人員能思之的變化,都應落在本案的保護範圍內。
11...伺服器
12...資料庫
21...業務規則庫
22...第一業務規則儲存單元
23...第二業務規則儲存單元
31...輸入資料處理單元
32...第一業務處理引擎
33...第二業務處理引擎
34...輸出資料處理單元
41...業務處理單元
42...掃描處理單元
43...更新處理單元
44...交換處理單元
441...狀態子單元
442...更新處理觸發子單元
443...啟動子單元
444...下線處理子單元
445...下線更新子單元
51...輸入資料處理單元
52...第一業務處理引擎
53...第二業務處理引擎
54...輸出資料處理單元
55...熱部署處理單元
521...第二掃描處理單元
522...第一掃描處理單元
523...第一更新單元
531...第二業務處理單元
532...第二掃描處理單元
533...第二更新單元
圖1為本案實現軟體系統熱部署的系統的結構原理圖;
圖2為本案第二業務處理引擎/第一業務處理引擎內部結構的一實例原理圖;
圖3為交換處理單元的具體細分結構示意圖;
圖4為本案的一種實現軟體系統熱部署的系統的第二實例的原理結構示例圖;
圖5為圖4中第二業務處理引擎/第一業務處理引擎內部結構的原理圖;
圖6為圖4中系統的另一原理示意圖;
圖7為基於圖4結構實現軟體系統熱部署的流程示意圖。
Claims (15)
- 一種實現軟體系統熱部署的系統,包括伺服器和資料庫,該伺服器與該資料庫連接,其特徵在於:該資料庫進一步包括:第一業務規則儲存單元,用於儲存業務規則;及第二業務規則儲存單元,用於儲存業務規則;該伺服器進一步包括:第一業務處理引擎,連接第一業務規則儲存單元,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第一業務規則儲存單元儲存的規則,當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態;第二業務處理引擎,連接第二業務規則儲存單元,用於當其處於運行狀態時,判斷接收到的業務處理請求是否符合第二業務規則儲存單元儲存的規則,當其處於等待狀態時,檢測到軟體系統的處理設置發生變化時,先直接更新對應的設置,再將本業務處理引擎設置為運行狀態;並且,第一業務處理引擎/第二業務處理引擎始終是一個處於運行狀態,一個處於等待狀態。
- 如申請專利範圍第1項所述的系統,其中,軟體系統的處理設置發生變化進一步包括:對應的業務規則儲存單元儲存的規則發生變化。
- 如申請專利範圍第1或2項所述的系統,其中,軟體系統的處理設置發生變化進一步包括:本業務處理引 擎的處理設置發生變化。
- 如申請專利範圍第1項所述的系統,其中,還包括:輸入資料處理單元,分別連接第一業務處理引擎和第二業務處理引擎,用於接收業務處理請求,並將業務處理請求發送至處於運行狀態的業務處理引擎;以及輸出資料處理單元,分別連接第一業務處理引擎和第二業務處理引擎,用於接收處於運行狀態的業務處理引擎輸出業務處理結果。
- 如申請專利範圍第4項所述的系統,其中,第一業務處理引擎/第二業務處理引擎進一步包括:業務處理單元,分別連接輸入資料處理單元和輸出資料處理單元,用於判斷從輸入資料處理單元接收到的業務處理請求是否符合對應業務規則儲存單元儲存的規則,並將結果輸出至輸出資料處理單元;掃描處理單元,用於檢測對應的業務規則儲存單元儲存的業務規則是否發生變化和/或本處理引擎的處理設置是否發生變化;更新處理單元,用於直接更新對應的業務規則儲存單元儲存的規則和/或更新本處理引擎;以及交換處理單元,用於決定本業務處理引擎處於等待狀態還是處於空閒狀態。
- 如申請專利範圍第5項所述的系統,其中,交換處理單元進一步包括: 狀態子單元,用於保存當前業務處理引擎處於運行狀態還是等待狀態;更新處理觸發子單元,用於在本業務處理引擎處於等待狀態時,接收掃描處理單元的信號後,發送觸發信號至更新處理單元來啟動更新處理單元的更新操作;啟動子單元,用於在接收更新處理單元的更新完畢信號後,向另一業務處理引擎發送下線通知,再將本業務處理引擎的狀態子單元設置為本處理引擎為運行狀態,發送停止工作信號至掃描處理單元;下線處理子單元,在接收到另一業務處理引擎發送的下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元,使掃描處理單元工作;以及下線更新子單元,連接下線處理子單元,用於接收到下線處理子單元下發的觸發信號後,發送觸發信號至更新處理單元。
- 如申請專利範圍第1項所述的系統,其中,還包括熱部署處理單元,其分別連接第一業務處理引擎和第二業務處理引擎,用於決定第一業務處理引擎和第二業務處理引擎當前所處的狀態。
- 如申請專利範圍第7項所述的系統,其中,第一業務處理引擎/第二業務處理引擎進一步包括:業務處理單元,分別連接輸入資料處理單元和輸出資料處理單元,用於判斷從輸入資料處理單元接收到的業務處理請求是否符合對應的業務規則儲存單元儲存的規則, 並將判斷的結果輸出至輸出資料處理單元;掃描處理單元,用於檢測對應的業務規則儲存單元儲存的業務規則是否發生變化和/或本處理引擎的處理設置是否發生變化;更新處理單元:用於直接更新第一業務規則儲存單元/第二業務規則儲存單元儲存的規則或直接更新本處理引擎;以及交換處理單元:連接熱部署處理單元,用於當本業務處理引擎處於等待狀態時,在接收更新處理單元的更新信號後,通過熱部署處理單元向另一業務處理引擎發送下線通知,再將本業務處理引擎設置為運行狀態使業務處理單元工作,並向掃描處理單元發送停止工作信號;在接收到另一業務處理引擎通過熱部署處理單元發送的下線通知時,將本業務處理引擎設置為等待狀態,並發送停止工作信號至業務處理單元以及使掃描處理單元停止工作。
- 如申請專利範圍第8項所述的系統,其中,該交換處理單元進一步包括:狀態子單元,用於保存當前業務處理引擎處於運行狀態還是等待狀態;啟動子單元,用於在接收更新處理單元的更新信號後,並通過熱部署處理單元向另一業務處理引擎或直接向另一業務處理引擎發送下線通知,再將本業務處理引擎設置為運行狀態使業務處理單元工作,再發送停止工作信號至掃描處理單元;以及 下線處理子單元,在接收到另一業務處理引擎/熱部署處理單元發送下線通知時,將本業務處理引擎設置為等待狀態,發送停止工作信號至業務處理單元以及使掃描處理單元工作。
- 一種實現軟體系統熱部署的方法,用於完成軟體處理系統中核心業務的熱部署,其特徵在於,包括:(1)在軟體系統中設置用以處理核心業務的第一業務處理引擎和第二業務處理引擎,該第一業務處理引擎和第二業務處理引擎分別對應第一業務規則儲存單元和第二業務規則儲存單元;(2)設置第一業務處理引擎和第二業務處理引擎始終是其中之一為運行狀態,另一個處於等待狀態;(3)判斷接收到的業務處理請求是否符合第一/第二業務規則儲存單元儲存的規則,當軟體系統的處理設置發生變化時,更新處於等待狀態的業務處理引擎對應的處理設置;以及(4)將原處於等待狀態的業務處理引擎設定為運行狀態,並將原處於運行狀態的業務處理引擎設定為等待狀態,其中,步驟(3)之前還包括預先設置業務規則庫,每一次業務規則發生變化時,直接更新業務規則庫。
- 如申請專利範圍第10項所述的方法,其中,(4)之後還包括:處於等待狀態的業務處理引擎更新對應的軟體系統。
- 如申請專利範圍第10或11項所述的方法,其中,軟體系統的處理設置發生變化包括:業務規則儲存單元儲存的規則發生變化。
- 如申請專利範圍第10或11項所述的方法,其中,軟體系統的處理設置發生變化包括:本業務處理引擎的處理設置發生變化。
- 如申請專利範圍第10項所述的方法,其中,步驟(3)業務規則發生變化進一步包括:處於等待狀態的第一業務處理引擎/第二業務處理引擎檢測業務規則庫和其對應的業務規則儲存單元中儲存的規則,若存在不相同,則業務規則發生變化。
- 如申請專利範圍第10項所述的方法,其中,設置熱部署處理單元;第一業務處理引擎/第二業務處理引擎,檢測業務規則發生變化和/或處理引擎的處理設置發生變化時,直接更新對應的業務規則儲存單元和/或直接更新本處理引擎,並向熱部署處理單元發送請求;熱部署處理單元將發出請求的業務處理引擎所處的狀態設置為運行狀態,並將另一業務處理引擎所處的狀態設置為等待狀態,並向該業務處理引擎發出下線通知;以及另一個業務處理引擎接收到下線通知後,更新本業務處理引擎對應的業務規則儲存單元中的規則。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099117424A TWI494855B (zh) | 2010-05-31 | 2010-05-31 | Methods and systems for implementing hot deployment of software systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099117424A TWI494855B (zh) | 2010-05-31 | 2010-05-31 | Methods and systems for implementing hot deployment of software systems |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201142708A TW201142708A (en) | 2011-12-01 |
TWI494855B true TWI494855B (zh) | 2015-08-01 |
Family
ID=46765125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099117424A TWI494855B (zh) | 2010-05-31 | 2010-05-31 | Methods and systems for implementing hot deployment of software systems |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI494855B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105988A1 (en) * | 2001-12-04 | 2003-06-05 | Vedvyas Shanbhogue | Rolling software upgrades for fault tolerant systems |
US20070130341A1 (en) * | 2005-12-06 | 2007-06-07 | Cisco Technology, Inc. | System for power savings in server farms |
TW200813749A (en) * | 2006-01-10 | 2008-03-16 | Ted Impact Co Ltd | Resource exploitation supporting method, information processor constituting network system for supporting resource exploitation, and computer program for supporting resource exploitation |
US20080271008A1 (en) * | 2007-04-27 | 2008-10-30 | Paolo Dettori | System and method for dynamic discovery and definition of mappings of parameters used by service oriented architecture services at runtime |
US20080288547A1 (en) * | 2007-05-18 | 2008-11-20 | International Business Machines Corporation | Apparatus, system, and method for a data server-managed web services runtime |
-
2010
- 2010-05-31 TW TW099117424A patent/TWI494855B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105988A1 (en) * | 2001-12-04 | 2003-06-05 | Vedvyas Shanbhogue | Rolling software upgrades for fault tolerant systems |
US20070130341A1 (en) * | 2005-12-06 | 2007-06-07 | Cisco Technology, Inc. | System for power savings in server farms |
TW200813749A (en) * | 2006-01-10 | 2008-03-16 | Ted Impact Co Ltd | Resource exploitation supporting method, information processor constituting network system for supporting resource exploitation, and computer program for supporting resource exploitation |
US20080271008A1 (en) * | 2007-04-27 | 2008-10-30 | Paolo Dettori | System and method for dynamic discovery and definition of mappings of parameters used by service oriented architecture services at runtime |
US20080288547A1 (en) * | 2007-05-18 | 2008-11-20 | International Business Machines Corporation | Apparatus, system, and method for a data server-managed web services runtime |
Also Published As
Publication number | Publication date |
---|---|
TW201142708A (en) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5674825B2 (ja) | ソフトウェアのホットデプロイメント | |
EP2866420B1 (en) | Method and device for content synchronization | |
US10127028B2 (en) | Cancel and rollback update stack requests | |
US9058229B2 (en) | Method and apparatus for maintaining operability with a cloud computing environment | |
US20090158292A1 (en) | Use of external services with clusters | |
CN103164256A (zh) | 一种实现单机支持高并发处理方法及系统 | |
US20070130342A1 (en) | Allocating management method of computer | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
US20200045139A1 (en) | Remote procedure call using quorum state store | |
US9069632B2 (en) | Message processing | |
US10846033B2 (en) | Print server, control method, and storage medium | |
CN111090442B (zh) | 一种应用更新方法、装置和存储介质 | |
TWI494855B (zh) | Methods and systems for implementing hot deployment of software systems | |
CN116627444A (zh) | 用于自动同步设备上响应与条件的系统和方法 | |
JP2015176494A (ja) | 情報処理システム及び情報処理方法 | |
JP2008250427A (ja) | 情報処理システムに用いられるバージョンアップ装置及び該装置を備えた情報処理システム並びに情報処理システムをバージョンアップするためのプログラム | |
US20060155830A1 (en) | Configuration mediator for a multi-component software solution environment | |
TWI690849B (zh) | 應用升級與關閉應用之方法及裝置 | |
JP2009020863A (ja) | 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム | |
CN113259378B (zh) | 区块链系统的运行方法、装置、设备和存储介质 | |
US20230319559A1 (en) | Enrollment of enrollee devices to a wireless network | |
JP5263358B2 (ja) | 情報処理装置、プログラム制御方法、及び制御プログラム | |
EP3993458A1 (en) | Enrollment of enrollee devices to a wireless network | |
CN118132111A (zh) | 一种基板管理控制器bmc的软件升级方法、bmc及计算设备 | |
JP2000322393A (ja) | 運用管理システム |