一種服務(wù)優(yōu)化的計算機系統(tǒng)及其方法
【專利摘要】一種服務(wù)優(yōu)化的計算機系統(tǒng)及其方法,包含有:一分流器,提供多重分流機制以提供更適合請求分派及更佳的負載平衡,以及一服務(wù)平臺,提供量化式熱部署機制、保全機制、及模塊分類管理功能。結(jié)合兩者,可運用于分布式系統(tǒng),提供自動實時(熱)備援及永續(xù)服務(wù)的云端運算。
【專利說明】
一種服務(wù)優(yōu)化的計算機系統(tǒng)及其方法
技術(shù)領(lǐng)域
[0001]本發(fā)明為一種服務(wù)優(yōu)化的計算機系統(tǒng)及其方法,目前以Java程序語言企業(yè)版(Java 2 Platform,Enterprises Edit1n,J2EE)實現(xiàn)該方法(但不限定任何程序語言),運用于云端技術(shù),平臺即服務(wù)(PaaS)Platform as a Service。
【背景技術(shù)】
[0002]分布式系統(tǒng)有很多不同的定義,一般認為:“一個分布式系統(tǒng)是一些獨立的計算機集合,但是對這個系統(tǒng)的用戶來說,系統(tǒng)就像一臺電腦一樣?!边@個定義有兩方面的含義:第一,從硬件角度來講,每臺計算機都是自主的;第二,從軟件角度來講,用戶將整個系統(tǒng)看做是一臺電腦。這兩者都是必需的,缺一不可。云端運算Cloud Computing的本質(zhì)其實就是分布式運算Distributed Computing。以現(xiàn)有的架構(gòu)而言是由一循環(huán)分流器做為負載平衡器,將請求以輪替分式分派到應(yīng)用服務(wù)器(AP Sever),進言之,負載平衡算法包括有:LeastConnect1n(最少聯(lián)機數(shù))為依照聯(lián)機數(shù)來判斷,聯(lián)機數(shù)越少代表該主機負載越低;Weighted Least Connect1n(加權(quán)式最小連接)與Least Connect1n相同,但是會再依據(jù)權(quán)重來做調(diào)整。Round Robin(輪循)以輪替式的方式做負載平衡,例如有三臺真實主機,第一條聯(lián)機導(dǎo)至第一臺真實主機,第二條聯(lián)機導(dǎo)至第二臺真實主機,第三條聯(lián)機導(dǎo)至第三臺真實主機,第四條聯(lián)機導(dǎo)至第一臺真實主機,依此類推;Weighted Round Robin(加權(quán)式輪循)與Round Robin(輪循)相同,但是會再依據(jù)權(quán)重來做調(diào)整;Source Hash(來源哈希)以來源IP地址做為判斷負載狀況,當(dāng)客戶端主機聯(lián)機至Virtual Server(虛擬服務(wù)器)時,會使用客戶端主機的來源地址經(jīng)由Hash函式,算出應(yīng)由后端真實主機接受服務(wù),而將聯(lián)機導(dǎo)至該真實主機。而一般運行于應(yīng)用服務(wù)器的程序架構(gòu)是以MVC架構(gòu)為基礎(chǔ),即將一程序分為視圖層(View)及控制層(ControlIer)、商務(wù)邏輯層(BusinessLogic)及數(shù)據(jù)儲存層(DAO),而為了維持分布式系統(tǒng)提供優(yōu)化維運服務(wù),尚有以下議題。
[0003]1.熱部署(Hot Deployment,Hot Swap):即模塊程序更新時,系統(tǒng)不需停機,提供同樣服務(wù)。一般系統(tǒng)程序開發(fā)皆以MVC架構(gòu)為基礎(chǔ),而視圖層(View)依規(guī)范,可自動重新編譯,更新而不需重新開機故不需考慮;若將控制層設(shè)計為模塊的單一入口,撰寫該模塊共享且極少變更的功能;則控制層亦不需因修改而部署,而最常需要變更的程序為商務(wù)邏輯層(BusinessLogic)、數(shù)據(jù)存取層(DAO)及其它相關(guān)檔案,故需解決熱部署的問題為此部分的程序。
[0004]1.1目前雖然J2EE有所謂熱部署(Hot Deployment)的機制,可用以減少版本更新時的停機時間,但使用者仍需重新登入;又由于一般設(shè)計、開發(fā)時將各獨立模塊(子系統(tǒng))合為壹模塊,以致于熱部署時,整個系統(tǒng)需要重新啟動,因重新部署的程序太多而造成內(nèi)存不足已致于無法運作(當(dāng)機)[注:模塊有時亦稱為子系統(tǒng),為功能的集合;壹模塊為包括多個獨立模塊(子系統(tǒng))且由同一個會談(Sess1n)存取]。
[0005]1.2已知相似的發(fā)明尚有如中國申請?zhí)?吧01010114369實現(xiàn)軟件系統(tǒng)熱部署的方法及系統(tǒng),其所提出的發(fā)明方法包括:(I)在軟件系統(tǒng)中設(shè)置用以處理核心業(yè)務(wù)的第一業(yè)務(wù)處理引擎和第二業(yè)務(wù)處理引擎,該第一業(yè)務(wù)處理引擎連接對應(yīng)的第一業(yè)務(wù)規(guī)則儲存單元,第二業(yè)務(wù)處理引擎連接對應(yīng)的第二業(yè)務(wù)規(guī)則儲存單元;(2)設(shè)置第一業(yè)務(wù)處理引擎和第二業(yè)務(wù)處理引擎的其中之一為運行狀態(tài),另一個處于等待狀態(tài);(3)當(dāng)軟件系統(tǒng)的處理設(shè)置發(fā)生變化時,更新處于等待狀態(tài)的業(yè)務(wù)處理引擎對應(yīng)的處理設(shè)置;及(4)將處于等待狀態(tài)的業(yè)務(wù)處理引擎設(shè)定為運行狀態(tài),并將原處于運行狀態(tài)的業(yè)務(wù)處理引擎設(shè)定為等待狀態(tài)。
[0006]簡言之是以切換的方式來解決實現(xiàn)熱部署,但與本案的方法不同。
[0007]1.4在中國專利申請?zhí)枮?00610123883.0的專利申請中提到一種實現(xiàn)熱部署的方法,就是將升級前的服務(wù)器進行備份,同時對外提供服務(wù),等升級完畢后再切換到升級后的web服務(wù)器,從而對外表現(xiàn)為熱部署。但這種實現(xiàn)熱部署的方法需要提供兩臺服務(wù)器來實現(xiàn)熱部署。其不適之處有以下兩點。
[0008]1.4.1將整個服務(wù)器備份為另一個服務(wù)器來實現(xiàn)熱部署的方法,需要增設(shè)新的服務(wù)器,由此增加成本。
[0009]1.4.2引入開放式服務(wù)網(wǎng)關(guān)架構(gòu)來實現(xiàn)熱部署,需要將模式層設(shè)置在開放式服務(wù)網(wǎng)關(guān)架構(gòu)的各個子模塊當(dāng)中,當(dāng)模式層發(fā)生改變時,雖然web應(yīng)用的類加載器能夠?qū)崿F(xiàn)熱部署,但是開放式服務(wù)網(wǎng)關(guān)架構(gòu)的各個子模塊同樣需要重新啟動,不能完全意義上實現(xiàn)熱部署。而且,需要對現(xiàn)有的系統(tǒng)進行大量的改動,存在穩(wěn)定性不高、安全性差的問題,只適合在沒有運行的業(yè)務(wù)系統(tǒng)上適用,不適合現(xiàn)已運行的系統(tǒng)上的應(yīng)用(引用申請?zhí)朇N201010114369 的論述)。
[0010]2.除熱部署外,部署后的議題尚有二,新舊版本是否應(yīng)同時并存,或只執(zhí)行最新版本。
[0011]3.容錯應(yīng)用,一個單元或資源(軟件或硬件)的故障或部署不影響其它資源的正常功能。故應(yīng)該在部署時提供量化式部署(即可使壹模塊分割后、量化為各自獨立的模塊,即以一類(別)加載器一模塊的方式部署)。
[0012]4.為使系統(tǒng)的運行環(huán)境免于因部署、或因其它因素如:請求量迅增、某一請求不當(dāng)執(zhí)行等因素造成系統(tǒng)內(nèi)存存量不足以致系統(tǒng)無法運作,故應(yīng)提供監(jiān)控機制以防止此問題發(fā)生,并且使模塊可即插即用、自動擴充以保全系統(tǒng)的運行。
[0013]5.更佳的分散方式應(yīng)可將商務(wù)邏輯層(BusinessLogic)及數(shù)據(jù)存取層(DAO)再予以分散至其它計算機,且能配合當(dāng)代主流開發(fā)架構(gòu)完成分散運算。
[0014]6.現(xiàn)有系統(tǒng)架構(gòu)皆是設(shè)計以一循環(huán)(Round-Robin)分流器,將請求以輪替的方式分派至應(yīng)用服務(wù)器,因無足夠的信息,以致無法更精準達到負載平衡,以Least Connect1n(最少聯(lián)機數(shù))為例,若一聯(lián)機帶有大量數(shù)據(jù)處理,則Least Connect 1n的負載平衡并不準確;再以Round Robin(輪循)為例,若主機有兩臺,而請求所需處理的筆數(shù)依序為100筆,10筆,100筆,10筆,就會造成分派不均的情況。
[0015]7.應(yīng)能提供特定族群專屬的執(zhí)行環(huán)境(如專屬的CPU或CPU的核心、內(nèi)存空間)。
[0016]8.應(yīng)能提供系統(tǒng)開發(fā)人員分類管理模塊并升級模塊程序庫的功能。
【發(fā)明內(nèi)容】
[0017]本案的目的在于提供一種服務(wù)優(yōu)化的計算機系統(tǒng)及其方法,即能對一般使用者提供多重分流以達更佳的負載平衡,亦能對系統(tǒng)開發(fā)人員提供熱部署(包括模塊的新增、移除以及修改)、以及熱備援以達永續(xù)服務(wù)的系統(tǒng),以及優(yōu)化模塊分類管理功能。
[0018]本案主要以分流器及服務(wù)平臺的組合而提供一種服務(wù)優(yōu)化的計算機系統(tǒng),分流器的結(jié)構(gòu)為一選擇器、一平臺注冊中心、一網(wǎng)絡(luò)服務(wù)器;服務(wù)平臺的結(jié)構(gòu)為一量化式部署器、一模塊過載保全機制、一零請求監(jiān)控機制、一熱部署監(jiān)控機制、一信息記錄器、一服務(wù)平臺目錄、一請求過載保全機制及一網(wǎng)絡(luò)服務(wù)器。
[0019]分流器藉由平臺注冊中心所提供的服務(wù)平臺信息及模塊信息以提供分流策略達成更佳的負載平衡;服務(wù)平臺提供保全機制使得在部署及請求時,免于因服務(wù)平臺內(nèi)存存量不足而無法運作,而且以量化式(熱)部署器部署模塊以縮短部署時間,并加入一信息通知器以同步服務(wù)平臺信息及模塊信息于平臺注冊中心,使分流器得以運用熱部署模塊名稱關(guān)聯(lián)相同功能的模塊及版本,以分流策略中最新版本分流方式達成永續(xù)服務(wù);并在分流器中加入一平臺監(jiān)控機制以提供熱備援機制及服務(wù)平臺中加入一模塊程序庫優(yōu)先機制、一模塊分類管理機制以達成服務(wù)優(yōu)化的計算機系統(tǒng)。
[0020]接下來,以實施方式藉由介紹分流器結(jié)構(gòu)及其運作方式,所提供的相關(guān)機制及功能;服務(wù)平臺結(jié)構(gòu)及其運作方式,所提供的相關(guān)機制及功能,并通過請求過程說明分流器及服務(wù)平臺如何達成永續(xù)服務(wù)及服務(wù)優(yōu)化的理由。
【附圖說明】
[0021]圖1:是分布式系統(tǒng)架構(gòu)及運作示意圖。
[0022]圖2:是分流器結(jié)構(gòu)及其運作示意圖。
[0023]圖3:是服務(wù)平臺結(jié)構(gòu)及運作示意圖。
[0024]圖4:是服務(wù)平臺目錄結(jié)構(gòu)圖。
[0025]圖5:是請求過程及請求保全機制運作示意圖。
【具體實施方式】
[0026]請參考圖1:分布式系統(tǒng)架構(gòu)及運作示意圖,此圖是藉由現(xiàn)有的組件及開發(fā)架構(gòu)加以改良而成?,F(xiàn)有的元件包括有:一網(wǎng)絡(luò)應(yīng)用程序(客戶端)、一循環(huán)分流器(Round-Robin)(伺服端)、一網(wǎng)絡(luò)服務(wù)器(伺服端),并將本發(fā)明的元件分流器及服務(wù)平臺分別安裝在個別的網(wǎng)絡(luò)服務(wù)器,以及將現(xiàn)有開發(fā)架構(gòu)的非視圖層及控制層的程序及相關(guān)檔案移至服務(wù)平臺執(zhí)行,而成為分布式系統(tǒng)架構(gòu),并提供服務(wù)優(yōu)化的計算機系統(tǒng)。其能提供服務(wù)優(yōu)化的理由有以下七點。
[0027]—、提供服務(wù)平臺內(nèi)存存量管控機制,以保全系統(tǒng)運作。
[0028]二、提供多種分流策略,以達更精準的負載平衡。
[0029]三、提供特定族群專屬的執(zhí)行環(huán)境(如專屬的CPU或CPU的核心、內(nèi)存空間)。
[0030]四、提供自動實時(熱)備援的機制,增強系統(tǒng)的服務(wù),以保全系統(tǒng)運作。
[0031 ]五、提供模塊分類管理功能并升級模塊程序庫的功能。
[0032]六、提供服務(wù)不中斷(熱部署及請求時皆能保全系統(tǒng)運作,但有瞬時即逝的暫停服務(wù))。
[0033]七、提供永續(xù)的服務(wù)(熱部署及請求時皆能保全系統(tǒng)運作且持續(xù)服務(wù))。
[0034]而能實現(xiàn)上述的功能,主要是本發(fā)明的元件:一分流器及一服務(wù)平臺。
[0035]請參考圖2:分流器結(jié)構(gòu)及其運作示意圖,分流器,包含有:一選擇器、一平臺注冊中心、一平臺監(jiān)控機制及網(wǎng)絡(luò)服務(wù)器(現(xiàn)有元件)。
[0036]1.選擇器:用以依分流策略,分派請求。
[0037]2.平臺注冊中心:用以提供登錄或同步服務(wù)平臺及模塊信息的記錄。
[0038]3.平臺監(jiān)控機制:用以監(jiān)控服務(wù)平臺狀態(tài),并依設(shè)定自動啟動備援服務(wù)平臺。
[0039]4.網(wǎng)絡(luò)服務(wù)器:用以安裝并啟動分流器,以使分流器可接收請求,為一現(xiàn)有組件。
[0040]5.運作方式:藉由網(wǎng)絡(luò)服務(wù)器的啟動,讀取分流器配置文件各參數(shù)值(請參考分流器配置文件說明),并啟動分流器,創(chuàng)建選擇器及平臺注冊中心以待服務(wù)平臺及模塊注冊,在注冊完成后,啟動平臺監(jiān)控機制,等待請求。
[0041]注:網(wǎng)絡(luò)服務(wù)器為一上位概念,為一可接收請求的服務(wù)器或容器,可為應(yīng)用服務(wù)器、EJB容器等等。
[0042]請參考圖3:服務(wù)平臺結(jié)構(gòu)及其運作示意圖,服務(wù)平臺,包含有:一模塊管理員,包含有:1.量化式部署機制、2.模塊程序庫優(yōu)先機制、3.模塊過載保全機制、4.零請求監(jiān)控機制、5.熱部署監(jiān)控機制、6.信息記錄器、7.信息通知器、8.模塊委任機制、9.請求過載保全機制(請求超時超量保全機制及請求量迅增保全機制),及一網(wǎng)絡(luò)服務(wù)器(現(xiàn)有組件)。
[0043]丨.模塊管理員:
[0044]1.1.量化(細?;?部署機制:用以進行各種模式的部署(請參考部署模式說明),使設(shè)計者可依模塊功能或數(shù)量,規(guī)劃出獨立的模塊(單一功能至多個功能),其用意在于使系統(tǒng)的各功能模塊可依相互獨立、完全窮盡(MECE)的思考原則下設(shè)計,促使各模塊獨立,以利于移植、安裝并縮短啟動時間。
[0045]1.2.模塊程序庫優(yōu)先機制:用以優(yōu)先取得不同版本的相同程序庫,相較于存在共享程序庫目錄下相同程序庫,有利于讓新模塊得以使用新版程序庫部署而不影響原系統(tǒng)運作,有助于系統(tǒng)技術(shù)升級。
[0046]1.3.模塊過載保全機制:用以保全服務(wù)平臺免于部署時因服務(wù)平臺內(nèi)存存量不足而無法運行。
[0047]1.4.零請求監(jiān)控機制:用以防止因模塊需要重新部署或移除而中斷尚在執(zhí)行中的請求。
[0048]1.5.熱部署監(jiān)控機制:用以監(jiān)控運行中的模塊及模塊目錄的相關(guān)檔案異動以及模塊的新增,并調(diào)用量化式部署機制完成熱部署。
[0049]1.6.信息記錄器:用以提供于量化式部署機制及熱部署監(jiān)控機制記錄平臺信息及模塊信息。
[0050]1.6.1平臺信息,包含有:服務(wù)平臺名稱、狀態(tài)、服務(wù)平臺內(nèi)存存量、服務(wù)平臺地址、服務(wù)平臺保全定量、模塊部署預(yù)估量、平臺注冊中心地址、請求過載保全定量、請求期限定量、及模塊監(jiān)控間隔時間。
[0051 ] 1.6.2模塊信息,包含有:模塊名稱(實體名稱)、版本、模塊狀態(tài)、類別加載器、待請求總筆數(shù)、待請求處理總筆數(shù)、熱部署模塊名稱(邏輯名稱)、模塊實際部署所需量等信息。
[0052]1.7.信息通知器:用以向平臺注冊中心登錄及同步服務(wù)平臺及模塊信息,由量化式部署機制、熱部署監(jiān)控機制及請求過載保全機制所觸發(fā)。
[0053]1.8.模塊委任機制:用以將請求委任該模塊執(zhí)行請求。
[0054]1.9.請求過載保全機制:用以保全系統(tǒng)免于因請求過載而無法運行。
[0055]2.網(wǎng)絡(luò)服務(wù)器(現(xiàn)有組件):用以安裝并啟動服務(wù)平臺,以使服務(wù)平臺可接收請求。
[0056]3.運作方式:藉由網(wǎng)絡(luò)服務(wù)器的啟動讀取服務(wù)平臺配置文件各參數(shù)值(請參考服務(wù)平臺配置文件說明),依初始化部署(流程),完成模塊的初始化而成為運行中的模塊,并同步服務(wù)平臺及模塊信息于信息記錄器(平臺/模塊),之后啟動熱部署監(jiān)控機制,以執(zhí)行監(jiān)控部署(流程),而完成服務(wù)平臺的啟動。啟動后,等待客戶端請求或觸發(fā)信息通知器藉由平臺注冊中心地址登錄服務(wù)平臺及模塊信息,并使分流器利用服務(wù)平臺地址與該服務(wù)平臺建立連接,而完成服務(wù)平臺及模塊的注冊,等待由分流器分派請求。
[0057]注:服務(wù)平臺的網(wǎng)絡(luò)服務(wù)器可由分流器啟動或人工啟動;分流器與服務(wù)平臺亦可安裝于同一臺網(wǎng)絡(luò)服務(wù)器,為分散系統(tǒng)的緣故而分別安裝于不同的網(wǎng)絡(luò)服務(wù)器。
[0058]接下來說明服務(wù)平臺的初始化部署(流程)、監(jiān)控部署(流程)、請求過程以及保全機制,并藉此說明服務(wù)優(yōu)化的各點理由。
[0059]請參考圖3:服務(wù)平臺結(jié)構(gòu)及其運作示意圖、圖4:服務(wù)平臺目錄結(jié)構(gòu)圖。
[0060]1.初始化部署(流程):量化式部署機制依部署模式在系統(tǒng)目錄下的平臺目錄,依序搜尋各模塊(即圖3中系統(tǒng)目錄/平臺目錄下的MA、MB、MC、MD)并依目錄層次及目錄名稱的關(guān)系及服務(wù)平臺名稱創(chuàng)建各模塊的名稱,之后以模塊程序庫優(yōu)先機制建立各模塊檔案信息(依序為模塊程序集合、熱部署版本檔案、模塊檔案集合、模塊程序庫集合以及共享程序庫集合)后,創(chuàng)建各模塊的類別加載器,并通過模塊過載保全機制的檢核以完成部署,完成后,同步該平臺信息及其所有模塊信息,并啟動熱部署監(jiān)控機制。
[0061]運作狀態(tài)說明:
[0062]1.1依據(jù)服務(wù)平臺保全定量及模塊部署預(yù)估量的設(shè)定,由模塊過載保全機制判斷目前系統(tǒng)內(nèi)存存量是否足以完成部署。
[0063]1.1.1若足夠則啟動且設(shè)定該模塊狀態(tài)為啟動中,完成部署后設(shè)定模塊狀態(tài)為運行中(即圖3中運行中的模塊MA、MB、MC、MD)且同步該模塊信息。
[0064]1.1.1.1若啟動失敗,則設(shè)定該模塊狀態(tài)為待啟動(由熱部署監(jiān)控機制再啟動)且同步該模塊信息。
[0065]1.1.2若不足夠則不啟動,并設(shè)定該模塊狀態(tài)為待啟動(由熱部署監(jiān)控機制再啟動)且同步該模塊信息。
[0066]注:1.同步平臺信息及模塊信息的對象為信息記錄器及平臺注冊中心。
[0067]2.藉由模塊程序庫優(yōu)先機制升級模塊程序庫的功能。
[0068]2.監(jiān)控部署(流程):熱部署監(jiān)控機制于平臺目錄中依序監(jiān)控搜尋各模塊的模塊程序集合、模塊檔案集合、模塊程序庫集合及共享程序庫集合是否異動、或已移除并監(jiān)控檢查運行中的各模塊的模塊狀態(tài),藉由量化式部署機制、模塊程序庫優(yōu)先機制、模塊過載保全機制及零請求監(jiān)控機制完成重新部署或移除以及模塊的新增,在完成所有模塊檢查后,同步該平臺信息及其所有模塊信息,并依模塊監(jiān)控間隔時間再監(jiān)控。
[0069I運作狀態(tài)說明:
[0070]2.1若該模塊狀態(tài)待啟動,則依步驟1.1重新部署該模塊。
[0071 ] 2.2若該模塊目錄為新增,則依步驟1.1部署該模塊。
[0072]2.3若該模塊目錄已移除且無請求,則設(shè)定模塊狀態(tài)為待移除且立即同步該模塊信息后執(zhí)行移除該模塊,完成后,設(shè)定模塊狀態(tài)為已移除立即同步該模塊信息。
[0073]2.3.1若有請求則設(shè)定該模塊狀態(tài)為待移除(請求中)且立即同步該模塊信息,在該模塊的請求都已執(zhí)行完成后(零請求)執(zhí)行移除該模塊,完成后,設(shè)定模塊狀態(tài)為已移除立即同步該模塊信息。
[0074]2.4若該模塊相關(guān)檔案異動且無請求,設(shè)定該模塊狀態(tài)為待更新且立即同步該模塊信息后依步驟I.I重新部署該模塊,并在完成部署設(shè)定該模塊狀態(tài)為運行中且立即同步該模塊信息。
[0075]2.4.1若有請求則設(shè)定該模塊狀態(tài)為待更新(請求中)且立即同步該模塊信息,使其不得再接受請求,在該模塊的請求都已執(zhí)行完成后(零請求),執(zhí)行該模塊的重新部署,并在完成部署設(shè)定該模塊狀態(tài)為運行中且立即同步該模塊信息,以接收請求。
[0076]注:藉由監(jiān)控部署(流程)達成提供服務(wù)不中斷。
[0077]請參考圖5:請求過程及請求保全機制運作流程圖。
[0078]3.在請求時,選擇器藉由請求信息(熱部署模塊名稱、版本、服務(wù)范疇名稱、請求處理筆數(shù)、請求內(nèi)容)的熱部署模塊名稱(邏輯名稱),至平臺注冊中心,在相同的熱部署模塊名稱中依所設(shè)定的分流策略(依最新版、或依指定版本、或依服務(wù)范疇、或依待請求處理總筆數(shù)最少、或依待請求總筆數(shù)最少、或依服務(wù)平臺內(nèi)存存量存量最多、或依上述分流策略組合)選擇狀態(tài)為運行中的模塊名稱及服務(wù)平臺地址。
[0079]再將模塊名稱、請求內(nèi)容、請求處理筆數(shù),藉由服務(wù)平臺地址轉(zhuǎn)傳至該模塊的服務(wù)平臺,并藉由模塊委任機制,以模塊名稱于信息記錄器中,取得該模塊執(zhí)行請求,并將累計請求數(shù)及累計請求處理筆數(shù)記錄于信息記錄器中,在請求完成后,扣除該請求筆數(shù)及該請求處理筆數(shù),同時取得服務(wù)平臺記憶存量并將請求結(jié)果、待請求處理總筆數(shù)、待請求總筆數(shù)及服務(wù)平臺內(nèi)存存量回傳選擇器,同步于平臺注冊中心(供下一個請求參考),最后回傳請求結(jié)果。
[0080]注:請求處理筆數(shù)為請求內(nèi)容需要商務(wù)邏輯處理的筆數(shù)。
[0081]待請求處理總筆數(shù)=累計請求處理筆數(shù)加上或扣除該請求處理筆數(shù)。
[0082]待請求總筆數(shù)=累計請求筆數(shù)加上或扣除該請求筆數(shù)(一般而言,該請求筆數(shù)=
Do
[0083]若請求筆數(shù)為I,而該請求處理筆數(shù)可為I至多筆。
[0084]注:藉依待請求處理總筆數(shù)最少、或依待請求總筆數(shù)最少、或依服務(wù)平臺內(nèi)存存量最多的分流方式達成提供多種分流策略及更精準的負載平衡。
[0085]注:藉由依服務(wù)范疇的分流方式達成為特定族群提供專屬的執(zhí)行環(huán)境,進言之,藉由預(yù)先將一服務(wù)平臺設(shè)定供其所執(zhí)行的內(nèi)存量及CHJ或CPU的核心,若請求信息中附帶有服務(wù)范疇名稱并與服務(wù)平臺名稱相同,則分派至該服務(wù)平臺;另一種服務(wù)范疇的分流方式為將服務(wù)范疇名稱與模塊名稱比對,找出合適的模塊名稱集合(可能一或多個模塊名稱),或再依其它分流策略分派請求。
[0086]注:藉由分流策略中依最新版的分流方式,而達成永續(xù)的服務(wù),進言之,以圖3中系統(tǒng)目錄/模塊目錄下的MA、MB為例,假設(shè)服務(wù)平臺名稱為SI,若以熱部署模塊名稱為MX,將功能相同的兩模塊S1.MA及S1.MB建立關(guān)聯(lián)(建立關(guān)聯(lián)方式可采用任何可供記錄的電子文件如:檔案、多層次目錄的名稱等等),而在S1.MA重新部署前,立即同步模塊狀態(tài)為待更新,使請求皆由S1.MB完成,在S1.MA完成部署后,同步模塊狀態(tài)為運行中且其版本為最新版,而使得請求皆由S1.MA完成,待S1.MB亦完成部署并與S1.MA為相同的版本,再依其它分流方式完成請求的分派。
[0087]4.保全機制說明:
[0088]4.1模塊過載保全機制
[0089]4.1.1初始化部署時需滿足下列條件:該服務(wù)平臺內(nèi)存存量需大于該服務(wù)平臺保全定量+該模塊部署預(yù)估量,始可部署。
[0090]4.1.2監(jiān)控部署時需滿足下列條件:該服務(wù)平臺內(nèi)存存量需大于該服務(wù)平臺保全定量+該模塊實際部署所需量,始可部署。
[0091]4.2請求過載保全機制
[0092]4.2.1請求超時超量保全,設(shè)定該服務(wù)平臺一請求期限定量及請求過載保全定量,在該服務(wù)平臺的模塊委任機制委任該模塊執(zhí)行該請求時,同時啟動一保全監(jiān)控機制,定期檢查該請求所使用的記憶量,及所花費的時間,若有超時超量則中斷該請求的執(zhí)行,并回報中斷原因,以保全該服務(wù)平臺免于因請求過載而無法運行。
[0093]4.2.2請求量迅增保全,設(shè)定該服務(wù)平臺一服務(wù)平臺保全定量,定期與該服務(wù)平臺內(nèi)存存量相比較,若該服務(wù)平臺內(nèi)存存量低于所設(shè)定的服務(wù)平臺保全定量,則同步該服務(wù)平臺狀態(tài)為暫停服務(wù),待該服務(wù)平臺內(nèi)存存量高于所設(shè)定的服務(wù)平臺保全定量時,再同步該服務(wù)平臺狀態(tài)為服務(wù)中。
[0094]注:藉由4.1及4.2達成服務(wù)平臺內(nèi)存存量管控機制,保全系統(tǒng)運作。
[0095]4.3平臺監(jiān)控機制,依平臺監(jiān)控間隔時間,監(jiān)控服務(wù)平臺為服務(wù)中的數(shù)量,若服務(wù)平臺的狀態(tài)為服務(wù)中的量數(shù)低于服務(wù)平臺服務(wù)定量時,則啟動備援服務(wù)平臺啟動設(shè)定檔,以達成備援服務(wù)平臺的自動擴充;
[0096]若大于或等于服務(wù)平臺服務(wù)定量時,則啟動備援服務(wù)平臺關(guān)閉設(shè)定檔。
[0097]注:藉由4.3達成自動實時(熱)備援的機制,增強系統(tǒng)的服務(wù),保全系統(tǒng)運作。
[0098]5.配置文件說明:
[0099]5.1分流器配置文件參數(shù)說明,包含有:
[0100]5.1.1服務(wù)平臺設(shè)定檔:包含各服務(wù)平臺啟動及關(guān)閉文件路徑的記錄。
[0101]5.1.2備援服務(wù)平臺設(shè)定檔:包含各備援服務(wù)平臺啟動及關(guān)閉文件路徑的記錄。
[0102]5.1.3服務(wù)平臺服務(wù)定量:保全該分布式系統(tǒng)所需服務(wù)平臺的數(shù)量。
[0103]5.1.4平臺監(jiān)控間隔時間:提供于平臺監(jiān)控機制再監(jiān)控平臺注冊中心的間隔時間。
[0104]5.2服務(wù)平臺配置文件參數(shù)說明,包含有:
[0105]5.2.1系統(tǒng)名稱:用以定義系統(tǒng)名稱。
[0106]5.2.2系統(tǒng)目錄:如D:\abc\system。
[0107]5.2.3服務(wù)平臺名稱:該服務(wù)平臺名稱,如:SI。
[0108]5.2.4服務(wù)平臺地址:該服務(wù)平臺地址,提供分流器連接該服務(wù)平臺。
[0109]5.2.5平臺注冊中心地址:提供登錄及同步該服務(wù)平臺信息、模塊信息的平臺注冊中心的地址。
[0110]5.2.6平臺目錄名稱:用以定義存放各模塊的目錄名稱。
[0111]5.2.7部署模式:如部署模式說明。
[0112]5.2.8服務(wù)平臺保全定量:保全服務(wù)平臺運行的內(nèi)存定量。
[0113]5.2.9模塊部署預(yù)估量:模塊部署時,預(yù)估所需的內(nèi)存基本量。
[0114]5.2.10請求過載保全定量:該服務(wù)平臺的請求可執(zhí)行最大內(nèi)存使用量。
[0115]5.2.11請求期限定量:該服務(wù)平臺的請求可執(zhí)行的最久時間。
[0116]5.2.12模塊監(jiān)控間隔時間:提供于熱部署監(jiān)控機制再監(jiān)控的間隔時間。
[0117]6.部署模式說明:假設(shè)一系統(tǒng)目錄(如c:\systemrf,有一包含各模塊的平臺目錄(如:module),若有一模塊,置于一名為MA的目錄,貝Ij依不同的部署模式(Module、Package、Operat1n),其所呈現(xiàn)的目錄結(jié)構(gòu)層次及其模塊名稱(實體名稱),如下所示:
[0118]6.1 Module模式:平臺目錄下包含一層目錄,該模塊所有相關(guān)檔案置于此目錄中,以此方式部署的目錄結(jié)構(gòu)為系統(tǒng)目錄+平臺目錄+該模塊目錄。如例,則其目錄結(jié)構(gòu)為c: \syst em\modu I e \MA,該模塊的模塊名稱為:MA,配合服務(wù)平臺名稱(若為SI ),則模塊名稱為:Sl-MA0
[0119]6.2 Package模式:平臺目錄下包含兩層目錄,該模塊所有相關(guān)檔案置于該模塊目錄的第二層目錄,以此方式部署的目錄結(jié)構(gòu)為系統(tǒng)目錄+平臺目錄+該模塊目錄的第一層目錄+該模塊目錄的第二層目錄。如例,貝lJ其目錄結(jié)構(gòu)可為c: \sy stem\moduI e\X\MA,該模塊的模塊名稱則為:X.MA,配合服務(wù)平臺名稱(若為SI),則模塊名稱為:S1.X.MA。
[0120]6.3 Operat1n模式:平臺目錄下包含三層目錄,該模塊所有相關(guān)檔案置于該模塊目錄的第三層目錄,以此方式部署的目錄結(jié)構(gòu)為系統(tǒng)目錄+平臺目錄+該模塊目錄的第一層目錄+該模塊目錄的第二層+該模塊目錄的第三層目錄。如例,則其目錄結(jié)構(gòu)可為cSyStem\m0dule\X\Y\MA,該模塊的模塊名稱則為:X.Y.MA,配合服務(wù)平臺名稱(若為SI),則模塊名稱為:S1.X.Y.MA。
[0121]注:藉由部署模式所提供的多層目錄結(jié)構(gòu)命名模塊名稱而達成模塊分類管理;亦可以以此建立模塊關(guān)聯(lián)的熱部署模塊名稱,如以S1.X.1及S2.X.2,即可視為不同平臺下對莫塊的不同版本。
[0122]7.服務(wù)平臺目錄說明(請參考圖4:服務(wù)平臺目錄結(jié)構(gòu)圖):
[0123]7.1系統(tǒng)目錄/平臺目錄:即服務(wù)平臺配置文件參數(shù)所設(shè)定的系統(tǒng)目錄名稱及平臺目錄名稱,各模塊至于平臺目錄中。
[0124]7.2模塊目錄:為一模塊的相關(guān)檔案存放目錄。
[0125]7.2.1模塊程序集合:為該模塊的應(yīng)用程序集合如商業(yè)邏輯程序、數(shù)據(jù)存取對象(DAO)等。
[0126]7.2.2熱部署版本檔案:提供設(shè)定熱部署模塊名稱(邏輯名稱)、版本(注:熱部署模塊名稱用以關(guān)聯(lián)相同功能的模塊,而視為同一模塊;版本用以設(shè)定該模塊版本)。
[0127]7.2.3模塊相關(guān)檔案目錄:即存放該模塊設(shè)定文件、多國語言文件等等的目錄。
[0128]7.2.4模塊檔案集合:為該模塊設(shè)定文件、多國語言文件等等。
[0129]7.2.5模塊程序庫目錄:為只提供該模塊所需參考程序庫的目錄。
[0130]7.2.6模塊程序庫集合:為只提供該模塊所需參考的程序庫。
[0131]7.3共享程序庫目錄:為提供各模塊所需參考程序庫的目錄。
[0132]7.3.1共享程序庫集合:為提供各模塊所需參考的各類程序庫。
[0133]以上所述僅為本發(fā)明的較佳實施例,并將方法(機制)、流程名詞化以便說明,任何名詞的修改但其功能相似或依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【主權(quán)項】
1.一種使計算機系統(tǒng)熱部署模塊時服務(wù)不中斷的服務(wù)平臺,其特征在于包含有:一量化式部署器,用以將壹模塊量化部署各獨立模塊,并藉由部署流程而縮短重新部署時間;一模塊過載保全機制,用以保全服務(wù)平臺免于部署時因服務(wù)平臺內(nèi)存存量不足而無法運行;一零請求監(jiān)控機制,用以防止因模塊需要重新部署或移除而中斷尚在執(zhí)行中的請求;一熱部署監(jiān)控機制,用以監(jiān)控運行中的模塊及模塊目錄的相關(guān)檔案異動以及模塊的新增;一信息記錄器,用以記錄各服務(wù)平臺及模塊信息;一模塊委任器,用以將請求依模塊名稱委任該模塊執(zhí)行;一服務(wù)平臺目錄,包含有:用以置放一模塊目錄及一模塊相關(guān)檔案;請求過載保全機制,用以保全系統(tǒng)免于因請求過載而無法運行,以及一網(wǎng)絡(luò)服務(wù)器,用以安裝并啟動服務(wù)平臺,使服務(wù)平臺可接收請求以提供服務(wù)。2.—種使計算機系統(tǒng)熱部署模塊時服務(wù)不中斷的方法,其特征在于包含有:一量化式部署器,用以將壹模塊量化部署各獨立模塊,并藉由部署流程而縮短重新部署時間;一模塊過載保全機制,用以保全服務(wù)平臺免于部署時因服務(wù)平臺內(nèi)存存量不足而無法運行;一零請求監(jiān)控機制,用以防止因模塊需要重新部署或移除而中斷尚在執(zhí)行中的請求;一熱部署監(jiān)控機制,用以監(jiān)控運行中的模塊及模塊目錄的相關(guān)檔案異動以及模塊的新增、刪除;一信息記錄器,用以記錄各服務(wù)平臺及模塊信息;一模塊委任器,用以將請求依模塊名稱委任該模塊執(zhí)行;一服務(wù)平臺目錄,包含有:用以置放一模塊目錄及一模塊相關(guān)檔案;一請求過載保全機制,用以保全系統(tǒng)免于因請求過載而無法運行,以及一網(wǎng)絡(luò)服務(wù)器,用以安裝并啟動服務(wù)平臺,使服務(wù)平臺可接收請求以提供服務(wù)。3.如權(quán)利要求1或2所述的模塊過載保全機制,其特征在于其方法包含步驟:初始化部署時,該服務(wù)平臺內(nèi)存存量需大于該服務(wù)平臺保全定量加上該模塊部署預(yù)估量,始可部署;在監(jiān)控部署時,該服務(wù)平臺內(nèi)存存量需大于該服務(wù)平臺保全定量加上該模塊實際部署所需量,始可部署。4.如權(quán)利要求1或2所述的請求過載保全機制,其特征在于進一步包含有:請求超時超量保全機制,其方法包含步驟:在請求委任后,同時啟動一請求監(jiān)控程序,監(jiān)控該請求的執(zhí)行時間及該請求的內(nèi)存使用量,若超過請求期限定量或請求過載保全定量則中斷該請求的執(zhí)行。5.如權(quán)利要求1或2所述的請求過載保全機制,其特征在于進一步包含有:請求量迅增保全機制,其方法包含步驟:依該服務(wù)平臺保全定量的設(shè)定,定期與該服務(wù)平臺內(nèi)存存量相比較,若該服務(wù)平臺內(nèi)存存量低于所設(shè)定的該服務(wù)平臺保全定量,則設(shè)定該服務(wù)平臺狀態(tài)為暫停服務(wù)。6.如權(quán)利要求1或2所述的零請求監(jiān)控機制,其特征在于其方法包含步驟:在請求時,將該請求累計于該模塊信息記錄器中的待請求總筆數(shù),在該模塊完成請求后,響應(yīng)前,將該模塊信息記錄器中的待請求總筆數(shù)扣除該請求,移除或重新部署時,該模塊待請求總筆數(shù)需為零,始可重新部署或移除。7.一種提供多重分流策略的負載平衡分流器,其特征在于包含有:一選擇器,用以依分流策略,分派請求;一平臺注冊中心,用以提供登錄或同步服務(wù)平臺及模塊信息的記錄;以及一網(wǎng)絡(luò)服務(wù)器,用以安裝并啟動分流器,以使分流器可接收請求。8.如權(quán)利要求7所述的多重分流策略,其特征在于為依最新版本分流、依指定版本、依服務(wù)范疇分流、依待請求處理總筆數(shù)最少、依待請求總筆數(shù)最少、依服務(wù)平臺內(nèi)存存量存量最多及上述分流策略相互組合,包括上述任意兩項分流策略。9.如權(quán)利要求7所述的多重分流策略,其所以能達成是依平臺注冊中心的服務(wù)平臺信息及模塊信息,其特征在于其取得信息的方法包含步驟:藉由定期或不定期同步服務(wù)平臺信息或模塊信息于平臺注冊中心,或藉由請求時或回應(yīng)時,同步服務(wù)平臺信息或模塊信息于平臺注冊中心。10.如權(quán)利要求8所述的依服務(wù)范疇分流,其達成為特定族群提供專屬的執(zhí)行環(huán)境,其特征在于其方法包含步驟:藉由預(yù)先將至少一服務(wù)平臺設(shè)定其所執(zhí)行的內(nèi)存量及CPU或CPU的核心,并使請求信息中附帶有服務(wù)范疇名稱且與服務(wù)平臺名稱或模塊名稱比對,或再配合其它分流策略,以找出該服務(wù)平臺以分派請求。11.一種服務(wù)優(yōu)化的計算機系統(tǒng),其特征在于包含有:一服務(wù)平臺:即請求項第I項所述的服務(wù)平臺并加入一信息通知器,用以登錄或同步平臺信息及模塊信息于平臺注冊中心;一具有依最新版本分流及其它分流策略之一的分流器;一模塊程序庫優(yōu)先機制,用以優(yōu)先取得不同版本的相同程序庫;一模塊分類管理機制,提供至少二層目錄結(jié)構(gòu)以命名模塊名稱而分類模塊;一自動實時備援的機制,用以在服務(wù)中的服務(wù)平臺數(shù)量不足時,自動啟動備援服務(wù)臺;一可供記錄的電子文件以設(shè)定熱部署模塊名稱及版本,將功能相同的模塊建立關(guān)連,藉由分流策略的依最新版本分派請求而達成永續(xù)的服務(wù)。12.一種服務(wù)優(yōu)化的計算機方法,其特征在于包含有:一服務(wù)平臺:即請求項第I項所述的服務(wù)平臺并加入一信息通知器,用以登錄或同步平臺信息及模塊信息于平臺注冊中心;一具有依最新版本分流及其它分流策略之一的分流器;一模塊程序庫優(yōu)先機制,用以優(yōu)先取得不同版本的相同程序庫;一模塊分類管理機制,提供至少二層目錄結(jié)構(gòu)以命名模塊名稱而分類模塊;一自動實時備援的機制,用以在服務(wù)中的服務(wù)平臺數(shù)量不足時,自動啟動備援服務(wù)臺;一可供記錄的電子文件以設(shè)定熱部署模塊名稱及版本,將功能相同的模塊建立關(guān)聯(lián),藉由分流策略的依最新版本分派請求而達成永續(xù)的服務(wù)。13.如權(quán)利要求11或12所述的自動實時備援的機制,其特征在于其方法包含步驟:在服務(wù)平臺中于分流器中加入一平臺監(jiān)控機制,用以監(jiān)控服務(wù)平臺的狀態(tài),若服務(wù)平臺的狀態(tài)為服務(wù)中的數(shù)量低于服務(wù)平臺服務(wù)定量時,則啟動備援服務(wù)平臺啟動設(shè)定檔,使服務(wù)平臺于初始化部署后藉由平臺注冊中心地址向平臺注冊中心登錄完成注冊。14.如權(quán)利要求11或12所述的模塊程序庫優(yōu)先機制,用以優(yōu)先取得不同版本的相同程序庫,存在該模塊程序庫目錄的程序庫將優(yōu)先被取用,相較于存在共享程序庫目錄下相同的程序庫;其特征在于其方法包含步驟:在該模塊目錄結(jié)構(gòu),提供該模塊程序庫目錄及共享程序庫目錄,并置放相關(guān)程序庫,在建立程序庫時,先行建立該模塊程序庫目錄下的程序庫,再建立共享程序庫目錄下的程序庫。
【文檔編號】H04L29/08GK106027591SQ201610177195
【公開日】2016年10月12日
【申請日】2016年3月24日
【發(fā)明人】林勝雄
【申請人】林勝雄