專利名稱:業(yè)務處理方法和相關裝置及相關系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信技術領域,具體涉及ー種業(yè)務處理方法和相關裝置及相關系統(tǒng)。
背景技術:
當前,互聯(lián)網(wǎng)使得網(wǎng)民無論何時、何地都能方便的通過瀏覽器訪問需要的資源。例如,查找資料用百度搜索或google搜索、買物品到淘寶、聽音樂到蘋果的AppStore、社交到facebook或天涯。這些網(wǎng)絡應用針對全球用戶,24小時在線,任何中斷對企業(yè)還是用戶都可能是災難性的。但是,互聯(lián)網(wǎng)發(fā)展的日新月異,用戶數(shù)還在不斷增多,系統(tǒng)需擴容、業(yè)務需發(fā)展;而新特性不停增加或修改bug,也需要經(jīng)常更新版本。傳統(tǒng)C/S系統(tǒng),版本更新過程需要中斷業(yè)務(用戶在系統(tǒng)升級過程中是不能訪問 的),此時往往需提前通知用戶,在什么時間段內(nèi)系統(tǒng)不可用(類似于停水、停電通知)。B/S系統(tǒng)出現(xiàn)后,由于瀏覽器端的零部署,一定程度上簡化了系統(tǒng)更新的復雜性,雖然沒有客戶端的升級過程,但服務器端進行軟件升級時,服務仍會中斷,難以保證瀏覽器24小時都能訪問服務器。
發(fā)明內(nèi)容
本發(fā)明實施例提供業(yè)務處理方法和相關裝置及相關系統(tǒng),以在盡量不中斷服務的情況下,實現(xiàn)服務節(jié)點的組件包的升級服務。為解決上述技術問題,本發(fā)明實施例提供以下技術方案本發(fā)明實施例一方面提供一種業(yè)務處理方法,可包括服務節(jié)點接收客戶端發(fā)送的攜帯有服務組件包版本信息的服務請求;所述服務節(jié)點若確定出所述服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝,則獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,所述第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且所述第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。本發(fā)明實施例另一方面還提供ー種服務節(jié)點,可包括接收模塊,用于接收客戶端發(fā)送的攜帯有服務組件包版本信息的服務請求;處理模塊,用于在確定出所述接收模塊接收的服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝時,獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,所述第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且所述第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。本發(fā)明實施例另一方面還提供ー種分布式服務系統(tǒng),可包括ー個或多個服務節(jié)點;其中,所述服務節(jié)點,用于接收客戶端發(fā)送的攜帯有服務組件包版本信息的服務請求;若確定出所述服務請求對應的第一版本的服務組件包當前還未安裝,則獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,所述第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務。本發(fā)明實施例另一方面還提供ー種業(yè)務處理系統(tǒng),可包括客戶端,用于發(fā)送攜帯有服務組件包版本信息的服務請求;至少ー個服務節(jié)點,用于接收所述客戶端發(fā)送的攜帯有服務組件包版本信息的服務請求;若確定出該服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。由上可見,本發(fā)明實施例中服務節(jié)點接收到來自客戶端的服務請求后,若確定出該服務請求對應的第一版本的服務組件包當前還未安裝,則獲取該第一版本的服務組件包 進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且所述第一版本的服務組件包和第二版本的服務組件包能夠獨立運行,基于上述機制,由于服務節(jié)點在升級提供某類型服務的服務組件包的過程中,服務節(jié)點中當前已安裝的提供相同類型服務的ー個或多個版本的服務組件包仍然在線運行,這樣就有利于實現(xiàn)在服務節(jié)點升級服務組件包時也盡量不中斷相應類型的服務。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例提供的ー種業(yè)務處理方法的流程示意圖;圖2是本發(fā)明實施例提供的另ー種業(yè)務處理方法的流程示意圖;圖3是本發(fā)明實施例提供的ー種網(wǎng)絡架構示意圖;圖4是本發(fā)明實施例提供的ー種服務節(jié)點的架構示意圖;圖5_a是本發(fā)明實施例提供的另ー種服務節(jié)點的架構示意圖;圖5_b是本發(fā)明實施例提供的另ー種服務節(jié)點的架構示意圖;圖5-c是本發(fā)明實施例提供的另ー種服務節(jié)點的架構示意圖;圖5_d是本發(fā)明實施例提供的另ー種服務節(jié)點的架構示意圖;圖6_a是本發(fā)明實施例提供的ー種分布式服務系統(tǒng)的架構示意圖;圖6_b是本發(fā)明實施例提供的另ー種分布式服務系統(tǒng)的架構示意圖;圖7_a是本發(fā)明實施例提供的ー種業(yè)務處理系統(tǒng)的示意圖;圖7_b是本發(fā)明實施例提供的另ー種業(yè)務處理系統(tǒng)的示意圖。
具體實施例方式本發(fā)明實施例提供業(yè)務處理方法和相關裝置及相關系統(tǒng),以在盡量不中斷服務的情況下,實現(xiàn)服務節(jié)點的組件包的升級服務。為使本技術領域的人員更好地理解本發(fā)明方案,下面結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三” “第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該 理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例例如能夠以除了在這里圖示的或否則描述的那些以外的順序?qū)嵤?。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列単元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它單元。以下通過實施例分別進行詳細說明。本發(fā)明ー種業(yè)務處理方法的一個實施例,可包括服務節(jié)點接收來自客戶端的服務請求;服務節(jié)點若確定出該服務請求對應的第一版本的服務組件包該服務節(jié)點當前還未安裝,則獲取該第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。參見圖1,本發(fā)明實施例提供的ー種業(yè)務處理方法,可包括101、服務節(jié)點接收來自客戶端的服務請求;其中,例如可將I臺物理服務器看做是I個服務節(jié)點,分布式服務系統(tǒng)可包括ー個或多個物理服務器,也就是說,ー個分布式服務系統(tǒng)可包括ー個或多個服務節(jié)點?;蛘呖蓪⒛軌蛱峁┓盏钠渌鼘ο罂醋鍪欠展?jié)點。在本發(fā)明ー些實施例中,來自客戶端的服務請求可攜帶服務組件包的版本信息(其中,該版本信息可以是能夠指示出該服務請求所對應服務組件包的版本的任何信息,例如,該版本信息可為版本號,或者不同數(shù)據(jù)格式的服務請求對應不同版本的服務組件包,則此時服務請求的數(shù)據(jù)格式可作為版本信息,又或者服務請求攜帯的其它能夠間接指示出對應服務組件包的信息,可看成是版本信息,以此類推),當然該服務請求還可攜帶該服務請求對應的服務類型信息等等。例如,若該服務請求對應第一版本的服務組件包,則該服務請求攜帯的服務組件包的版本信息指示出服務組件包版本為第一版本;若該服務請求所請求服務對應的服務類型為搜索服務,則該服務請求攜帯的服務組件包的服務類型信息指示出服務類型為搜索服務,以此類推。102、服務節(jié)點若確定出該服務請求對應的第一版本的服務組件包當前還未安裝,則獲取該第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務(即,保持當前已安裝的第二版本的服務組件在線運行),其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務。其中,第一版本的服務組件包可包括ー個或多個版本的服務組件包(即第一版本的服務組件包并非一定是指ー個版本的服務組件包,也可能指多個版本的服務組件包),第ニ版本的服務組件包也可包括ー個或多個版本的服務組件包,當然,第一版本的服務組件包和第二版本的服務組件包是不同版本的服務組件包。第一版本的服務組件包和第二版本的服務組件包之間可獨立運行,即提供同類型服務的不同版本的服務組件包之間可獨立運行(即,具有物理隔離特點)。其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,例如,第一版本的服務組件包和第二版本的服務組件包對應服務類型都為搜索服務、郵件服務、注冊服務或下載服務等。在本發(fā)明ー些實施例中,服務組件包(如第一版本的服務組件包和第二版本的服務組件包)中可包含服務執(zhí)行程序(服務執(zhí)行程序例如可包括可執(zhí)行的腳本、庫文件、ニ進制文件等,通過運行服務執(zhí)行程序以提供對應服務)和描述文件,其中,該描述文件例如可用于描述該服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ,當然服務組件包中的描述文件還可用于描述該服務組件包的其它相關信息。服務組件包被安裝到服務節(jié)點后,服務節(jié)點可將該服務組件包中的描述文件加載到內(nèi)存,以便通過查詢內(nèi)存中加載的描述文件來獲知對應服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。由上可見,本實施例中服務節(jié)點接收到來自客戶端的服務請求后,若確定出該服 務請求對應的第一版本的服務組件包當前還未安裝,則獲取該第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行,基于上述機制,由于服務節(jié)點在升級提供某類型服務的服務組件包的過程中,服務節(jié)點中當前已安裝的提供相同類型服務的ー個或多個版本的服務組件包仍然在線運行,這樣就有利于實現(xiàn)在服務節(jié)點升級服務組件包時也盡量不中斷相應類型的服務。在本發(fā)明ー些實施例中,服務節(jié)點確定服務請求對應的第一版本的服務組件包是否已安裝的方式可以是多種多樣的,例如,假設服務節(jié)點將已安裝的服務組件包中的描述文件加載到內(nèi)存中,則服務節(jié)點可在內(nèi)存中查找是否有描述服務組件包的版本為第一版本的描述文件,若有(即內(nèi)存中有描述文件描述的服務組件包的版本為第一版本),則表不服務請求對應的第一版本的服務組件包已安裝,若沒有(即內(nèi)存中沒有任何描述文件描述的服務組件包的版本為第一版本),則表示服務請求對應的第一版本的服務組件包未安裝。當然,服務節(jié)點還可通過其它方式來記錄已安裝的服務組件包的版本信息,通過查詢服務節(jié)點記錄的已安裝服務組件包的版本信息,來確定服務請求對應的第一版本的服務組件包是否已安裝。此外,在本發(fā)明的一個實施例中,服務節(jié)點若確定出服務請求對應的第一版本的服務組件包已安裝,則服務節(jié)點可利用第一版本的服務組件包中描述文件所描述的業(yè)務接ロ,調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并可得到對應的服務結果數(shù)據(jù)??梢岳斫?,提供同類型服務的不同版本的服務組件包具有不同的業(yè)務接ロ,服務節(jié)點根據(jù)提供同類型服務的不同版本的服務組件中的描述文件來獲取相應版本服務組件包的業(yè)務接ロ,進而利用該業(yè)務接ロ調(diào)用相應版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并可得到對應的服務結果數(shù)據(jù),這就實現(xiàn)了基于版本的服務請求分發(fā)控制。在本發(fā)明的一個實施例中,服務節(jié)點獲取第一版本的服務組件包進行安裝的方式可以是多種多樣的,假設服務節(jié)點與分布式服務系統(tǒng)組件倉庫以可通信方式連接,該服務節(jié)點還與互聯(lián)網(wǎng)軟件中心以可通信方式連接(其中,例如服務節(jié)點與互聯(lián)網(wǎng)軟件中心可直接通信,或,服務節(jié)點與互聯(lián)網(wǎng)軟件中心可通過分布式服務系統(tǒng)組件倉庫通信,或,服務節(jié)點與互聯(lián)網(wǎng)軟件中心可通過其它一個或多個設備通信);服務節(jié)點可先在本地磁盤組件庫(其中,服務節(jié)點的本地磁盤組件庫中可包含與該服務節(jié)點相關的多個服務組件包等)中查找第一版本的服務組件包;若在本地磁盤組件庫中查找到了第一版本的服務組件包,則服務節(jié)點從該本地磁盤組件庫中獲取查找到的第一版本的服務組件包進行安裝;若在該本地磁盤組件庫中未查找第一版本的服務組件包,則服務節(jié)點可在分布式服務系統(tǒng)組件倉庫(其中,分布式服務系統(tǒng)組件倉庫中例如可包含與該分布式服務系統(tǒng)中的各服務節(jié)點相關的多個服務組件包等)中查找第一版本的服務組件包(或,服務節(jié)點此時也可不到分布式服務系統(tǒng)組件倉庫查找第一版本的服務組件包,而是請求分布式服務系統(tǒng)組件倉庫下發(fā)第一版本的服務組件包,若分布式服務系統(tǒng)組件倉庫當前存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可將第一版本的服務組件包,下發(fā)到該服務節(jié)點及分布式服務系統(tǒng)的其它ー個或多個服務節(jié)點的本地磁盤組件庫,若分布式服務系統(tǒng)組件倉庫當前不存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可先從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,并在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的 服務組件包下發(fā)至該服務節(jié)點及分布式服務系統(tǒng)的其它ー個或多個其它服務節(jié)點的本地磁盤組件庫,而后該服務節(jié)點再從其本地磁盤組件庫中獲取第一版本的服務組件包進行安裝);若在該分布式服務系統(tǒng)組件倉庫中查找到了第一版本的服務組件包,則服務節(jié)點可從分布式服務系統(tǒng)組件倉庫中獲取查找到的第一版本的服務組件包進行安裝(服務節(jié)點還可將從分布式服務系統(tǒng)組件倉庫中獲取到的第一版本的服務組件包寫入其本地磁盤組件庫);若服務節(jié)點在分布式服務系統(tǒng)組件倉庫中未查找到第一版本的服務組件包,則月艮務節(jié)點可從互聯(lián)網(wǎng)軟件中心(其中,互聯(lián)網(wǎng)軟件中心例如可包含當前已發(fā)布的各種常用版本的服務組件包)獲取第一版本的服務組件包進行安裝(或,服務節(jié)點此時也可通知分布式服務系統(tǒng)組件倉庫下載第一版本的服務組件包,而后分布式服務系統(tǒng)組件倉庫從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,分布式服務系統(tǒng)組件倉庫在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的服務組件包下發(fā)給該服務節(jié)點及分布式服務系統(tǒng)的其它ー個或多個其它服務節(jié)點的本地磁盤組件庫,此后,服務節(jié)點再從本地磁盤組件庫或從分布式服務系統(tǒng)組件倉庫獲取第一版本的服務組件包進行安裝)??梢岳斫?,若基于本地磁盤組件庫、分布式服務系統(tǒng)組件倉庫(其中,分布式服務系統(tǒng)組件倉庫可配置多個互聯(lián)網(wǎng)軟件中心鏡像)、互聯(lián)網(wǎng)軟件中心多級部署方式,服務節(jié)點可從分布式服務系統(tǒng)組件倉庫或者互聯(lián)網(wǎng)軟件中心下載服務組件包到本地磁盤組件庫,而分布式服務系統(tǒng)組件倉庫又可從互聯(lián)網(wǎng)軟件中心下載服務組件包,這樣有利于簡化服務組件包的管理并提高抗災能力。在本發(fā)明ー些實施例中,可采用異步響應方式進行請求響應,例如在接收到來自客戶端的服務請求后,服務節(jié)點可先向該客戶端發(fā)送服務請求對應的請求響應(服務節(jié)點從接收到服務請求,到向客戶端發(fā)送該服務請求對應請求響應之間的時間間隔可很短,例如不超過O. I秒、O. 5秒、I秒或其它時長),在調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)之后,向該客戶端推送服務結果數(shù)據(jù);或,在接收到來自客戶端的服務請求后,服務節(jié)點可先向該客戶端發(fā)送該服務請求對應的攜帯有服務應答標識的請求響應(服務節(jié)點從接收到服務請求,到向客戶端發(fā)送該服務請求對應的攜帯有服務應答標識的請求響應之間的時間間隔可很短,例如不超過O. I秒、O. 5秒、I秒或其它的時長);若接收到來自客戶端根據(jù)請求響應發(fā)送的結果查詢請求(攜帯該服務應答標識的結果查詢請求,客戶端可利用該服務應答標識向服務節(jié)點輪詢服務結果數(shù)據(jù)),則在調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,則服務節(jié)點可向該客戶端發(fā)送該服務結果數(shù)據(jù)。當然,服務節(jié)點亦可采用其它方式向客戶端反饋服務結果數(shù)據(jù),若無需向客戶端反饋服務結果數(shù)據(jù),則可省略上述步驟。
為便于更好的理解和實施本發(fā)明實施例的上述方案,下面通過ー個具體應用場景來進行舉例描述。參見圖2,本發(fā)明實施例提供的另ー種業(yè)務處理方法,可包括201、客戶端Al向服務節(jié)點BI發(fā)送服務請求ql ;其中,例如可將I臺物理服務器看做是I個服務節(jié)點,分布式服務系統(tǒng)可包括ー個或多個物理服務器,也就是說,ー個分布式服務系統(tǒng)可包括ー個或多個服務節(jié)點?;蛘呖蓪⒛軌蛱峁┓盏钠渌鼘ο罂醋鍪欠展?jié)點。在本發(fā)明的一個實施例中,客戶端Al向服務節(jié)點BI發(fā)送的服務請求ql可攜帯服務組件包的版本信息(其中,該版本信息可為任何可指示出該服務請求ql所對應服務組件包的版本的信息)和該服務請求ql對應的服務類型信息(其中,該服務類型信息指示出該服務請求ql所對應請求服務的類型)等。例如若該服務請求ql對應S2. O版本的服務組件包(為便于引述,在下面的描述中以服務請求ql對應服務組件包的版本為S2. O版本為例),則該服務請求ql攜帯的服務組件包的版本信息指示出服務組件包的版本為S2. O版本;若該服務請求ql所請求服務的服務類型為搜索服務,則該服務請求ql攜帯的服務組件包的服務類型信息指示出服務類型為搜索服務,以此類推。202、服務節(jié)點BI接收來自客戶端Al的服務請求ql,服務節(jié)點BI確定服務請求ql對應的S2. O版本的服務組件包是否已安裝;若未安裝,則執(zhí)行步驟203 ;若已經(jīng)安裝,則執(zhí)行步驟205。在本發(fā)明ー些實施例中,服務組件包(如S2. O版本的服務組件包和第二版本的服務組件包)中可包含服務執(zhí)行程序(服務執(zhí)行程序例如可包括可執(zhí)行的腳本、庫文件、ニ進制文件等,通過運行服務執(zhí)行程序以提供對應服務)和描述文件,其中,該描述文件例如可用于描述該服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ,當然服務組件包中的描述文件還可用于描述該服務組件包的其它相關信息。服務組件包被安裝到服務節(jié)點后,服務節(jié)點可將該服務組件包中的描述文件加載到內(nèi)存,以便通過查詢內(nèi)存中加載的描述文件來獲知對應服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。在本發(fā)明ー些實施例中,服務節(jié)點BI確定服務請求對應的S2. O版本的服務組件包是否已安裝的方式可以是多種多樣的,例如,假設服務節(jié)點將已安裝的服務組件包中的描述文件加載到內(nèi)存中,則服務節(jié)點可在內(nèi)存中查找是否有描述服務組件包的版本為S2. O版本的描述文件,若有(即內(nèi)存中有描述文件描述的服務組件包的版本為S2. O版本),則表示服務請求對應的S2. O版本的服務組件包已安裝,若沒有(即內(nèi)存中沒有任何描述文件描述的服務組件包的版本為S2. O版本),則表示服務請求對應的S2. O版本的服務組件包未安裝。當然,服務節(jié)點還可通過其它方式來記錄已安裝的服務組件包的版本信息,通過查詢服務節(jié)點記錄的已安裝服務組件包的版本信息,來確定服務請求對應的S2. O版本的服務組件包是否已安裝。203、服務節(jié)點BI向客戶端Al發(fā)送服務請求ql對應的請求響應Rql ;其中,請求響應Rql可攜帶請求服務失敗標識,服務節(jié)點BI利用請求響應Rql攜帶的請求服務失敗標識,向客戶端Al指示當前無法提供服務請求ql對應的服務;執(zhí)行步驟
204。204、服務節(jié)點BI獲取該S2. O版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務(即,保持當前已安裝的第二版本的服務組件包在線運行)。其中,S2. O版本的服務組件包和第二版本的服務組件包對應相同類型的服務。例如,S2. O版本的服務組件包和第二版本的服務組件包對應服務類型都為搜索服務、郵件服務、注冊服務或下載服務等。在本發(fā)明的一個實施例中,服務節(jié)點BI當前已安裝的第二版本的服務組件包可包括I個或多個版本的服務組件包,也就是說,在服務節(jié)點BI獲取該S2. O版本的服務組件包進行安裝的過程中,可保持當前已安裝的提供同類型服務的I個或多個版本的服務組件包(服務類型與S2. O版本的服務組件包相同)在線運行;S2. O版本的服務組件包和第二版本的服務組件包之間可獨立運行。在本發(fā)明的一個實施例中,服務節(jié)點BI獲取S2. O版本的服務組件包進行安裝的方式可以是多種多樣的。例如參見圖3,服務組件包例如可采用多級部署方式,本地磁盤組件庫部署在服務節(jié)點BI (此處服務節(jié)點BI為一臺物理服務器為例)中,分布式服務系統(tǒng)組件倉庫部署在分布式服務系統(tǒng)中,分布式服務系統(tǒng)組件倉庫和互聯(lián)網(wǎng)軟件中心可通過英特網(wǎng)(internet)連接,其中,互聯(lián)網(wǎng)軟件中心例如可包含當前已發(fā)布的各種常用版本的服務組件包;分布式服務系統(tǒng)組件倉庫中例如可包含多個與該分布式服務系統(tǒng)相關的服務組件包等,分布式服務系統(tǒng)組件倉庫可配置多個互聯(lián)網(wǎng)軟件中心鏡像;本地磁盤組件庫中可包含多個與服務節(jié)點BI相關的服務組件包等。例如,服務節(jié)點BI可先在本地磁盤組件庫中查找是否存在S2. O版本的服務組件包;若在該本地磁盤組件庫中查找到了 S2. O版本的服務組件包,則服務節(jié)點BI從本地磁盤組件庫中獲取查找到的S2. O版本的服務組件包進行安裝;若在本地磁盤組件庫中未查找S2. O版本的服務組件包,則服務節(jié)點BI可在分布式服務系統(tǒng)組件倉庫中查找S2. O版本的服務組件包(或者,服務節(jié)點BI此時也可不到分布式服務系統(tǒng)組件倉庫查找S2. O版本的服務組件包,而是請求分布式服務系統(tǒng)組件倉庫下發(fā)第一版本的服務組件包,若分布式服務系統(tǒng)組件倉庫當前存在S2. O版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可將S2. O版本的服務組件包下發(fā)到服務節(jié)點BI及分布式服務系統(tǒng)的其它ー個或多個其它服務節(jié)點的本地磁盤組件庫,若分布式服務系統(tǒng)組件倉庫當前不存在S2. O版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可先從互聯(lián)網(wǎng)軟件中心獲取S2. O版本的服務組件包,并在從互聯(lián)網(wǎng)軟件中心獲取到S2. O版本的服務組件包之后,將S2. O版本的服務組件包下發(fā)至該服務節(jié)點BI及分布式服務系統(tǒng)的其它ー個或多個其它服務節(jié)點的本地磁盤組件庫,而后該服、務節(jié)點BI再從其本地磁盤組件庫中獲取S2. O版本的服務組件包進行安裝);若在該分布式服務系統(tǒng)組件倉庫中查找到了 S2. O版本的服務組件包,則服務節(jié)點BI從分布式服務系統(tǒng)組件倉庫中獲取查找到的S2. O版本的服務組件包進行安裝(服務節(jié)點BI還可將從分布式服務系統(tǒng)組件倉庫中獲取到的S2. O版本的服務組件包寫入本地磁盤組件庫);若服務節(jié)點BI在分布式服務系統(tǒng)組件倉庫中未查找到S2. O版本的服務組件包,則服務節(jié)點BI可從互聯(lián)網(wǎng)軟件中心獲取S2. O版本的服務組件包進行安裝(或者,服務節(jié)點BI此時也可通知分布式服務系統(tǒng)組件倉庫下載S2. O版本的服務組件包,而后分布式服務系統(tǒng)組件倉庫從互聯(lián)網(wǎng)軟件中心獲取S2. O版本的服務組件包,并在從互聯(lián)網(wǎng)軟件中心獲取到S2. O版本的服務組件包之后,將S2. O版本的服務組件包下發(fā)給服務節(jié)點BI及分布式服務系統(tǒng)的其它一個或多個其它服務節(jié)點的本地磁盤組件庫,此后,服務節(jié)點BI再從本地磁盤組件庫或從分布式服務系統(tǒng)組件倉庫獲取S2. O版本的服務組件包進行安裝)??梢岳斫獾氖?,若基于本地磁盤組件庫、分布式服務系統(tǒng)組件倉庫、互聯(lián)網(wǎng)軟件中心多級部署方式,服務節(jié)點可從分布式服務系統(tǒng)組件倉庫或者互聯(lián)網(wǎng)軟件中心下載服務組 件包到本地磁盤組件庫,分布式服務系統(tǒng)組件倉庫可從互聯(lián)網(wǎng)軟件中心下載服務組件包,有利于簡化服務組件包的管理并提聞抗災能力??梢岳斫獾氖牵谄渌鼘嵤┓绞街?,服務組件包也可采用其它的分級式或集中式部署,而服務節(jié)點BI可采用與之對應的方式獲取需要的服務組件包進行安裝??梢岳斫獾氖牵襟E203和204之間沒有必然的先后順序,或者步驟204也可先于步驟203執(zhí)行,或者步驟204和步驟203也可同步執(zhí)行。當然也可省略步驟203。205、服務節(jié)點BI向客戶端Al發(fā)送服務請求ql對應的請求響應Rq2 ;在本發(fā)明的一個實施例中,服務節(jié)點BI向客戶端Al發(fā)送的服務請求ql對應的請求響應Rq2中例如可攜帯服務應答標識Rq2_ID,而客戶端Al可利用該服務應答標識Rq2_ID來向服務節(jié)點BI獲取服務請求ql對應的服務結果數(shù)據(jù)(若有需要反饋的服務結果數(shù)據(jù))。在本發(fā)明的一個實施例中,服務節(jié)點BI從接收到服務請求ql,到向客戶端Al發(fā)送該服務請求ql對應請求響應Rq2之間的時間間隔可很短,例如時間間隔可不超過O. I秒、
O.5秒、O. 8秒、I秒、5秒或其它時長)。206、服務節(jié)點BI利用已經(jīng)安裝的S2. O版本的服務組件包中的描述文件所描述的業(yè)務接ロ,調(diào)用S2. O版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并可得到對應的服務結果數(shù)據(jù),執(zhí)行步驟207??梢岳斫獾氖?,步驟205和206之間沒有必然的先后順序,或者步驟205也可先于步驟206開始執(zhí)行,或者步驟206和步驟205也可同步開始執(zhí)行。當然也可省略步驟205。207、在調(diào)用S2. O版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并得到對應的服務結果數(shù)據(jù)之后,服務節(jié)點BI若接收到來自客戶端Al的攜帯有服務應答標識Rq2_ID的結果查詢請求(其中,客戶端可利用該服務應答標識Rq2_ID向服務節(jié)點輪詢服務請求ql對應的服務結果數(shù)據(jù)),則服務節(jié)點BI可向客戶端Al發(fā)送該服務結果數(shù)據(jù)。在本發(fā)明另一實施例中,在調(diào)用S2. O版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并得到對應的服務結果數(shù)據(jù)之后,服務節(jié)點BI也可直接向客戶端Al推送該服務結果數(shù)據(jù)。
本實施例下面舉例提供ー種服務節(jié)點的模塊架構。參見圖4,本發(fā)明實施例的一種服務節(jié)點可包括內(nèi)核401 (kernel)、部署代理402 (deployagent)、本地磁盤組件庫403和已安裝組件包404。內(nèi)核401可在初始化時通過配置信息加載所需的多個服務組件包,可將服務組件包的描述文件加載到內(nèi)存中,以便利用內(nèi)存中的描述文件來控制服務請求的分發(fā);部署代理402,主要負責服務節(jié)點的服務組件包管理,包括所在服務節(jié)點的服務組件包、內(nèi)核401加載的服務組件包的查詢,以及服務組件包的下載等等功能。本地磁盤組件庫403,存放服務組件包的數(shù)據(jù)庫。下面舉例圖4所示架構服務節(jié)點的ー種可能的業(yè)務處理流程。
例如,當服務節(jié)點接收到來自客戶端的服務請求ql后,kernel 401可確定服務請求對應的S2. O版本的服務組件包當前是否已安裝,若已安裝,則將服務請求ql加入請求隊列中,kernel 401還可向客戶端反饋請求響應Rq2 (其中可攜帯服務應答標識Rq2_ID),隊列線程從請求隊列中取出服務請求ql,并調(diào)用S2. O版本的服務組件包中的服務處理程序來處理服務請求ql,服務請求ql對應的處理結果數(shù)據(jù)可放入返回隊列中,kernel 401可直接向客戶端推送服務請求ql對應的處理結果數(shù)據(jù)(或可在客戶端利用服務應答標識Rq2_ID來輪詢時向客戶端發(fā)送服務請求ql對應的處理結果數(shù)據(jù))。若kernel 401確定S2. O版本的服務組件包當前還未安裝,kernel 401可向客戶端發(fā)送攜帶請求服務失敗標識的請求響應Rql,kernel 401可進ー步指示部署代理402獲取S2. O版本的服務組件包(或kernel 401也可提示用戶需安裝S2. O版本的服務組件包,部署代理402可在用戶指令的指示下獲取S2. O版本的服務組件包,部署代理402可先到本地磁盤倉庫查找,若查找到,則kernel 401可將S2. O版本的服務組件包的描述文件加載到內(nèi)存;若沒查找到,則部署代理402可從分布式服務系統(tǒng)組件倉庫下載S2. O版本的服務組件包到本地磁盤組件庫(其中,若分布式服務系統(tǒng)組件倉庫當前也沒有S2. O版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可從互聯(lián)網(wǎng)軟件中心下載),部署代理402將S2. O版本的服務組件包下載到本地磁盤組件庫之后可通知kernel 401安裝加載;kernel 401安裝加載S2. O版本的服務組件包后便可處理需S2. O版本的服務組件包來處理的服務請求。由上可見,本實施例中服務節(jié)點接收到來自客戶端的服務請求后,若確定出該服務請求對應的某版本的服務組件包當前還未安裝,則獲取該某版本的服務組件包進行安裝,并保持基于當前已安裝的其它版本的服務組件包運行的服務,其中,上述某版本的服務組件包和上述其它版本的服務組件包對應相同類型的服務,且服務節(jié)點中提供某類型服務的各版本的服務組件包能夠獨立運行,基于上述機制,由于服務節(jié)點在升級提供某類型服務的服務組件包的過程中,服務節(jié)點中當前已安裝的提供相同類型服務的ー個或多個版本的服務組件包還在線運行,這樣就有利于實現(xiàn)在服務節(jié)點升級服務組件包時也盡量不中斷相應類型的服務。進ー步的,通過多個版本的服務組件包同時在線運行,解決服務節(jié)點軟件不中斷升級和特性増加;通過在服務請求中攜帯服務類型信息、版本信息等來區(qū)別不同服務類型和版本的服務組件包;通過異步控制請求反饋和多級組件倉庫的部署,有利于保證多版本服務組件包運行和在線特性増加的可靠性;通過本地磁盤組件庫到分布式服務系統(tǒng)組件倉庫的部署,有利于簡化分布式系統(tǒng)的服務組件包管理。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。為便于更好的實施本發(fā)明實施例的上述方案,下面還提供可用于實施上述方案的相關裝置和分布式服務系統(tǒng)。參見圖5-a,本發(fā)明實施例提供的ー種服務節(jié)點500,可包括接收模塊510和處理模塊520。其中,接收模塊510,用于接收客戶端發(fā)送的攜帯有服務組件包版本信息的服務請求。在本發(fā)明ー些實施例中,來自客戶端的服務請求可攜帶服務組件包的版本信息(其中,該版本信息指示出該服務請求所對應服務組件包的版本),當然該服務請求還可攜帶該服務請求對應的服務類型信息等等。例如,若該服務請求對應第一版本的服務組件包,則該服務請求攜帯的服務組件包的版本信息指示出服務組件包版本為第一版本;若該服務請求所請求服務對應的服務類型為搜索服務,則該服務請求攜帯的服務組件包的服務類型信息指示出服務類型為搜索服務,以此類推。處理模塊520,用于若確定出接收模塊510接收的服務請求對應的第一版本的服務組件包服務節(jié)點500當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。在本發(fā)明的一個實施例中,服務組件包中例如可包含服務執(zhí)行程序和描述文件,其中,描述文件用于描述該服務組件包的版本和服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。在本發(fā)明的一個實施例中,處理模塊還用于,若確定出接收模塊510接收的服務請求對應的第一版本的服務組件包已安裝,則利用第一版本的服務組件包中的描述文件所描述的業(yè)務接ロ,調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,并可得到對應的服務結果數(shù)據(jù)。參見圖5_b,在本發(fā)明的一個實施例中,服務節(jié)點500還可包括第一響應模塊530,其中,第一響應模塊530,用于向上述客戶端發(fā)送服務請求對應的請求響應,并可在處理模塊520調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向該客戶端推送所述服務結果數(shù)據(jù)。參見圖5-c,在本發(fā)明的另ー個實施例中,服務節(jié)點500還可包括第二響應模塊540,其中,第二響應模塊540,用于向上述客戶端發(fā)送服務請求對應的攜帶有服務應答標識的請求響應;若接收到來自該客戶端攜帯服務應答標識的結果查詢請求,則可在處理模塊520調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向該客戶端發(fā)送該服務結果數(shù)據(jù)。其中,第一版本的服務組件包可包括ー個或多個版本的服務組件包,第二版本的服務組件包也可包括ー個或多個版本的服務組件包,當然,第一版本的服務組件包和第二版本的服務組件包是不同版本的服務組件包,第一版本的服務組件包和第二版本的服務組件包之間可獨立運行,即,提供同類型服務的不同版本的服務組件包可獨立運行(即具有物理隔離特點)。第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,例如,第一版本的服務組件包和第二版本的服務組件包對應服務類型都為搜索服務、郵件服務、注冊服務或下載服務等。在本發(fā)明ー些實施例中,服務組件包(如第一版本的服務組件包和第二版本的服務組件包)中可包含服務執(zhí)行程序(服務執(zhí)行程序例如可包括可執(zhí)行的腳本、庫文件、ニ進制文件等,通過運行服務執(zhí)行程序以提供對應服務)和描述文件,其中,該描述文件例如可用于描述該服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ,當然服務組件包中的描述文件還可用于描述該服務組件包的其它相關信息。服務組件包被安裝到服務節(jié)點后,處理模塊520可將該服務組件包中的描述文件加載到內(nèi)存,以便通過查詢內(nèi)存中加載的描述文件來獲知對應服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。在本發(fā)明ー些實施例中,處理模塊520確定服務請求對應的第一版本的服務組件 包是否已安裝的方式可以是多種多樣的,例如,假設處理模塊520將已安裝的服務組件包中的描述文件加載到內(nèi)存中,則處理模塊520可在內(nèi)存中查找是否有描述服務組件包的版本為第一版本的描述文件,若有(即內(nèi)存中有描述文件描述的服務組件包的版本為第一版本),則表示服務請求對應的第一版本的服務組件包已安裝,若沒有(即內(nèi)存中沒有任何描述文件描述的服務組件包的版本為第一版本),則表示服務請求對應的第一版本的服務組件包當前還未安裝。當然,處理模塊520還可通過其它方式來記錄已安裝的服務組件包的版本信息,通過查詢服務節(jié)點500記錄的已安裝服務組件包的版本信息,來確定服務請求對應的第一版本的服務組件包是否已安裝。此外,在本發(fā)明的一個實施例中,處理模塊520若確定出服務請求對應的第一版本的服務組件包已安裝,則處理模塊520可利用第一版本的服務組件包中描述文件所描述的業(yè)務接ロ,調(diào)用第一版本的服務組件包中的服務執(zhí)行程序處理該服務請求??梢岳斫?,提供同類型服務的不同版本的服務組件包具有不同的業(yè)務接ロ,處理模塊520根據(jù)提供同類型服務的不同版本的服務組件中的描述文件來獲取相應版本服務組件包的業(yè)務接ロ,進而利用該業(yè)務接ロ調(diào)用相應版本的服務組件包中的服務執(zhí)行程序根據(jù)服務請求提供業(yè)務服務,這就實現(xiàn)了基于版本的服務請求分發(fā)控制。參見圖5-d,在本發(fā)明的一個實施例中,服務節(jié)點500還可包括本地磁盤組件庫550。在本發(fā)明的一個實施例中,處理模塊520獲取第一版本的服務組件包進行安裝的方式可以是多種多樣的,舉例來說,假設服務節(jié)點500與分布式服務系統(tǒng)組件倉庫以可通信方式連接,服務節(jié)點500還與互聯(lián)網(wǎng)軟件中心以可通信方式連接(其中,例如服務節(jié)點500與互聯(lián)網(wǎng)軟件中心可直接通信,或,服務節(jié)點500與互聯(lián)網(wǎng)軟件中心可通過分布式服務系統(tǒng)組件倉庫通信,或,服務節(jié)點500與互聯(lián)網(wǎng)軟件中心可通過其它一個或多個設備通信);處理模塊520可先在本地磁盤組件庫550 (其中,本地磁盤組件庫550中可包含與該處理模塊520相關的多個服務組件包等)中查找第一版本的服務組件包;若在本地磁盤組件庫550中查找到了第一版本的服務組件包,則處理模塊520從該本地磁盤組件庫550中獲取查找到的第一版本的服務組件包進行安裝;若在該本地磁盤組件庫550中未查找第一版本的服務組件包,則處理模塊520可在分布式服務系統(tǒng)組件倉庫(其中分布式服務系統(tǒng)組件倉庫中例如可包含與該分布式服務系統(tǒng)中的各服務節(jié)點相關的多個服務組件包等)中查找第一版本的服務組件包(或處理模塊520此時也可不到分布式服務系統(tǒng)組件倉庫查找第一版本的服務組件包,而是請求分布式服務系統(tǒng)組件倉庫下發(fā)第一版本的服務組件包,若分布式服務系統(tǒng)組件倉庫當前存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可將第一版本的服務組件包,下發(fā)到該服務節(jié)點500及分布式服務系統(tǒng)的其它ー個或多個服務節(jié)點的本地磁盤組件庫550,若分布式服務系統(tǒng)組件倉庫當前不存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫可先從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,并在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的服務組件包下發(fā)至該服務節(jié)點及分布式服務系統(tǒng)的其它ー個或多個服務節(jié)點的本地磁盤組件庫550,而后該處理模塊520再從其本地磁盤組件庫550中獲取第一版本的服務組件包進行安裝);若在該分布式服務系統(tǒng)組件倉庫中查找到了第一版本的服務組件包,則處理模塊520可從分布式服務系統(tǒng)組件倉庫中獲取查找到的第一版本的服務組件包進行安裝(處理模塊520還可將從分布式服務系統(tǒng)組件倉庫中獲取到的第一版本的服務組件包寫入其本地磁盤組件庫550);若處理模塊520在分布式服務系統(tǒng)組件倉庫中未查找到第一版本的服務組件包,則處理模塊520可從互聯(lián)網(wǎng)軟件中心(其中,互聯(lián)網(wǎng)軟件中心例如可包含當前已發(fā)布的各 種常用版本的服務組件包)獲取第一版本的服務組件包進行安裝(或,處理模塊520此時也可通知分布式服務系統(tǒng)組件倉庫下載第一版本的服務組件包,而后分布式服務系統(tǒng)組件倉庫從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,分布式服務系統(tǒng)組件倉庫在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的服務組件包下發(fā)給該服務節(jié)點500及分布式服務系統(tǒng)的其它ー個或多個服務節(jié)點的本地磁盤組件庫550,此后,處理模塊520再從本地磁盤組件庫550或從分布式服務系統(tǒng)組件倉庫獲取第一版本的服務組件包進行安裝)。可以理解,若基于本地磁盤組件庫550、分布式服務系統(tǒng)組件倉庫(其中,分布式服務系統(tǒng)組件倉庫可配置多個互聯(lián)網(wǎng)軟件中心鏡像)、互聯(lián)網(wǎng)軟件中心多級部署方式,服務節(jié)點500可從分布式服務系統(tǒng)組件倉庫或者互聯(lián)網(wǎng)軟件中心下載服務組件包到本地磁盤組件庫550,而分布式服務系統(tǒng)組件倉庫又可從互聯(lián)網(wǎng)軟件中心下載服務組件包,這樣有利于簡化服務組件包的管理并提高抗災能力??梢岳斫獾氖?,本實施例的服務節(jié)點500可以是如上述方法實施例中的服務節(jié)點,其各個功能模塊上述的功能可以根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參見上述方法實施例中的相關描述,在此不再以一一贅述。由上可見,本實施例中服務節(jié)點500接收到來自客戶端的服務請求后,若確定出該服務請求對應的某版本的服務組件包當前還未安裝,則獲取該某版本的服務組件包進行安裝,并保持基于當前已安裝的其它版本的服務組件包運行的服務,其中,上述某版本的服務組件包和上述其它版本的服務組件包對應相同類型的服務,且服務節(jié)點中提供某類型服務的各版本的服務組件包能夠獨立運行,基于上述機制,由于服務節(jié)點500在升級提供某類型服務的服務組件包的過程中,服務節(jié)點500中當前已安裝的提供相同類型服務的ー個或多個版本的服務組件包還在線運行,這樣就有利于實現(xiàn)在服務節(jié)點升級服務組件包時也盡量不中斷相應類型的服務。參見圖6_a,本發(fā)明實施例還提供ー種分布式服務系統(tǒng),可包括
ー個或多個服務節(jié)點610 (圖中是以分布式服務系統(tǒng)包括多個服務節(jié)點610為例的);其中,服務節(jié)點610,用于接收來自客戶端的服務請求;若確定出該服務請求對應的第一版本的服務組件包當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務。在本發(fā)明ー些實施例中,服務組件包(如S2. O版本的服務組件包和第二版本的服務組件包)中可包含服務執(zhí)行程序(服務執(zhí)行程序例如可包括可執(zhí)行的腳本、庫文件、ニ進制文件等,通過運行服務執(zhí)行程序以提供對應服務)和描述文件,其中,該描述文件例如可用于描述該服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ,當然服務組件包中的描述文件還可用于描述該服務組件包的其它相關信息。服務組件包被安裝到服務節(jié)點后,服務節(jié)點可將該服務組件包中的描述文件加載到內(nèi)存,以便通過查詢內(nèi)存中加載的描述文件來獲知對應服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。參見圖6_b,在本發(fā)明的一個實施例中,分布式服務系統(tǒng)還包括分布式服務系統(tǒng)組件倉庫620 ;其中,分布式服務系統(tǒng)組件倉庫620存儲有與分布式服務系統(tǒng)中的多個服務節(jié) 點相關的多個服務組件包;服務節(jié)點610的本地磁盤組件庫中存儲有該服務節(jié)點需要的一個或多個服務組件包。在本發(fā)明的一個實施例中,服務節(jié)點610獲取第一版本的服務組件包進行安裝的方式可以是多種多樣的,例如,假設服務節(jié)點610與分布式服務系統(tǒng)組件倉庫620以可通信方式連接,服務節(jié)點610還與互聯(lián)網(wǎng)軟件中心以可通信方式連接(其中,例如服務節(jié)點610與互聯(lián)網(wǎng)軟件中心可直接通信,或,服務節(jié)點610與互聯(lián)網(wǎng)軟件中心可通過分布式服務系統(tǒng)組件倉庫620通信,或,服務節(jié)點610與互聯(lián)網(wǎng)軟件中心可通過其它一個或多個設備通信);服務節(jié)點610可先在本地磁盤組件庫(其中,本地磁盤組件庫中可包含與服務節(jié)點610相關的多個服務組件包等)中查找第一版本的服務組件包;若在本地磁盤組件庫中查找到了第一版本的服務組件包,則服務節(jié)點610從該本地磁盤組件庫中獲取查找到的第一版本的服務組件包進行安裝;若在該本地磁盤組件庫中未查找第一版本的服務組件包,則服務節(jié)點610可在分布式服務系統(tǒng)組件倉庫620 (其中,分布式服務系統(tǒng)組件倉庫620中例如可包含與該分布式服務系統(tǒng)中的各服務節(jié)點610相關的多個服務組件包等)中查找第一版本的服務組件包(或,服務節(jié)點610此時也可不到分布式服務系統(tǒng)組件倉庫620查找第一版本的服務組件包,而是請求分布式服務系統(tǒng)組件倉庫620下發(fā)第一版本的服務組件包,若分布式服務系統(tǒng)組件倉庫620當前存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫620可將第一版本的服務組件包,下發(fā)到分布式服務系統(tǒng)的ー個或多個服務節(jié)點的本地磁盤組件庫,若分布式服務系統(tǒng)組件倉庫620當前不存在第一版本的服務組件包,則分布式服務系統(tǒng)組件倉庫620可先從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,并在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的服務組件包下發(fā)至分布式服務系統(tǒng)的一個或多個其它服務節(jié)點610的本地磁盤組件庫,而后該服務節(jié)點610再從其本地磁盤組件庫中獲取第一版本的服務組件包進行安裝);若在該分布式服務系統(tǒng)組件倉庫620中查找到了第一版本的服務組件包,則服務節(jié)點610可從分布式服務系統(tǒng)組件倉庫620中獲取查找到的第一版本的服務組件包進行安裝(其中,服務節(jié)點610還可將從分布式服務系統(tǒng)組件倉庫620中獲取到的第一版本的服務組件包寫入其本地磁盤組件庫);若服務節(jié)點610在分布式服務系統(tǒng)組件倉庫620中未查找到第一版本的服務組件包,則服務節(jié)點610可從互聯(lián)網(wǎng)軟件中心(其中,互聯(lián)網(wǎng)軟件中心例如可包含當前已發(fā)布的各種常用版本的服務組件包)獲取第一版本的服務組件包進行安裝(或服務節(jié)點610此時也可通知分布式服務系統(tǒng)組件倉庫620下載第一版本的服務組件包,而后分布式服務系統(tǒng)組件倉庫620從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包,分布式服務系統(tǒng)組件倉庫620在從互聯(lián)網(wǎng)軟件中心獲取到第一版本的服務組件包之后,將第一版本的服務組件包下發(fā)給該分布式服務系統(tǒng)的ー個或多個服務節(jié)點610的本地磁盤組件庫,此后,服務節(jié)點610再從本地磁盤組件庫或從分布式服務系統(tǒng)組件倉庫620獲取第一版本的服務組件包進行安裝)。可以理解,若基于本地磁盤組件庫、分布式服務系統(tǒng)組件倉庫620(其中,分布式服務系統(tǒng)組件倉庫620可配置多個互聯(lián)網(wǎng)軟件中心鏡像)、互聯(lián)網(wǎng)軟件中心多級部署方式,服務節(jié)點610可從分布式服務系統(tǒng)組件倉庫620或者互聯(lián)網(wǎng)軟件中心下載服務組件包到本地磁盤庫,而分布式服務系統(tǒng)組件倉庫620又可從互聯(lián)網(wǎng)軟件中心下載服務組件包,這樣有利于簡化服務組件包的管理并提高抗災能力。 可以理解的是,本實施例的服務節(jié)點610可如上述實施例中的服務節(jié)點500,或可如上述方法實施例中的服務節(jié)點,其各個功能模塊上述的功能可以根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參見上述方法實施例中的相關描述,在此不再贅述。參見圖7_a、本發(fā)明實施例還提供ー種業(yè)務處理系統(tǒng),可包括客戶端720和至少ー個服務節(jié)點710 (圖7中以包括I個服務節(jié)點710為例進行說明);其中,客戶端720,用于發(fā)送攜帯有服務組件包版本信息的服務請求;服務節(jié)點710,用于接收來自客戶端720的服務請求;若確定出該服務請求對應的第一版本的服務組件包該服務節(jié)點710當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,并且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。參見圖7_b,在本發(fā)明一些實施例中,業(yè)務處理系統(tǒng)還包括分布式服務系統(tǒng)組件倉庫730 ;其中,分布式服務系統(tǒng)組件倉庫存儲有與分布式服務系統(tǒng)中的各個服務節(jié)點相關的多個服務組件包。在本發(fā)明ー些實施例中,服務節(jié)點710可具體用于,接收來自客戶端720的服務請求;若確定出該服務請求對應的第一版本的服務組件包該服務節(jié)點710當前還未安裝,則在服務節(jié)點710的本地磁盤組件庫中查找第一版本的服務組件包;若在本地磁盤組件庫中查找到了第一版本的服務組件包,則從該本地磁盤組件庫中獲取查找到的第一版本的服務組件包進行安裝;若在本地磁盤組件庫中未查找第一版本的服務組件包,則在分布式服務系統(tǒng)組件倉庫730中查找第一版本的服務組件包;若在分布式服務系統(tǒng)組件倉庫730中查找到了第一版本的服務組件包,則從分布式服務系統(tǒng)組件倉庫730中獲取查找到的第一版本的服務組件包進行安裝;若在分布式服務系統(tǒng)組件倉庫730中未查找到第一版本的服務組件包,則從互聯(lián)網(wǎng)軟件中心獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行,互聯(lián)網(wǎng)軟件中心與服務節(jié)點710通信連接,且包含當前已發(fā)布的各種版本的服務組件包。在本發(fā)明ー些實施例中,服務組件包(如第一版本的服務組件包和第二版本的服務組件包)中可包含服務執(zhí)行程序(服務執(zhí)行程序例如可包括可執(zhí)行的腳本、庫文件、ニ進制文件等,通過運行服務執(zhí)行程序以提供對應服務)和描述文件,其中,該描述文件例如可用于描述該服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ,當然服務組件包中的描述文件還可用于描述該服務組件包的其它相關信息。服務組件包被安裝到服務節(jié)點710后,服務節(jié)點710可將該服務組件包中的描述文件加載到內(nèi)存,以便通過查詢內(nèi)存中加載的描述文件來獲知對應服務組件包的版本、服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接ロ等。在本發(fā)明ー些實施例中,服務節(jié)點710確定服務請求對應的第一版本的服務組件包是否已安裝的方式可以是多種多樣的,例如,假設服務節(jié)點710將已安裝的服務組件包中的描述文件加載到內(nèi)存中,則服務節(jié)點710可在內(nèi)存中查找是否有描述服務組件包的版本為第一版本的描述文件,若有(即,內(nèi)存中有描述文件描述的服務組件包的版本為第一版本),則表示服務請求對應的第一版本的服務組件包已安裝,若沒有(即內(nèi)存中沒有任何 描述文件描述的服務組件包的版本為第一版本),則表示服務請求對應的第一版本的服務組件包未安裝。當然,服務節(jié)點710還可通過其它方式來記錄已安裝的服務組件包的版本信息,通過查詢服務節(jié)點710記錄的已安裝服務組件包的版本信息,來確定服務請求對應的第一版本的服務組件包是否已安裝。此外,在本發(fā)明的一個實施例中,服務節(jié)點710若確定出服務請求對應的第一版本的服務組件包已安裝,則服務節(jié)點710還可用干,利用第一版本的服務組件包中描述文件所描述的業(yè)務接ロ,調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)??梢岳斫猓峁┩愋头盏牟煌姹镜姆战M件包具有不同的業(yè)務接ロ,服務節(jié)點710可根據(jù)提供同類型服務的不同版本的服務組件中的描述文件來獲取相應版本服務組件包的業(yè)務接ロ,進而利用該業(yè)務接ロ調(diào)用相應版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù),這就實現(xiàn)了基于版本的服務請求分發(fā)控制。在本發(fā)明ー些實施例中,可采用異步響應方式進行請求響應,例如在接收到來自客戶端720的服務請求后,服務節(jié)點710還可用干,向該客戶端720發(fā)送服務請求對應的請求響應(其中,服務節(jié)點710從接收到服務請求,到向客戶端720發(fā)送該服務請求對應請求響應之間的時間間隔可很短,例如不超過O. I秒、O. 5秒、I秒或其它時長),調(diào)用第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)之后,向該客戶端720推送服務結果數(shù)據(jù);或,在接收到來自客戶端720的服務請求后,服務節(jié)點710可先向該客戶端720發(fā)送該服務請求對應的攜帶有服務應答標識的請求響應(服務節(jié)點710從接收到服務請求,到向客戶端720發(fā)送該服務請求對應的攜帶有服務應答標識的請求響應之間的時間間隔可很短,如不超過O. I秒、O. 5秒、I秒或其它的時長);若接收到來自客戶端720根據(jù)所述請求響應發(fā)送的結果查詢請求(攜帯服務應答標識的結果查詢請求,其中,客戶端720可利用該服務應答標識向服務節(jié)點710輪詢服務結果數(shù)據(jù)),則在調(diào)用第一版本的服務組件包中的服務執(zhí)行程序基于該服務請求得到服務結果數(shù)據(jù)后,服務節(jié)點710可向該客戶端720發(fā)送該服務結果數(shù)據(jù)。當然,服務節(jié)點710亦可采用其它方式向客戶端720反饋服務結果數(shù)據(jù),若無需向客戶端720反饋服務結果數(shù)據(jù),則可省略上述步驟。可以理解的是,本實施例的服務節(jié)點710可如上述實施例中的服務節(jié)點500,或可如上述方法實施例中的服務節(jié)點,其各個功能模塊上述的功能可以根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可以參見上述方法實施例中的相關描述,在此不再贅述。在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。綜上,本發(fā)明實施例中服務節(jié)點接收到來自客戶端的服務請求后,若確定出該服務請求對應的某版本的服務組件包當前還未安裝,則獲取該某版本的服務組件包進行安裝,并保持基于當前已安裝的其它版本的服務組件包運行的服務,其中,上述某版本的服務
組件包和上述其它版本的服務組件包對應相同類型的服務,且服務節(jié)點中提供某類型服務的各版本的服務組件包能夠獨立運行,基于上述機制,由于服務節(jié)點在升級提供某類型服務的服務組件包的過程中,服務節(jié)點中當前已安裝的提供相同類型服務的ー個或多個服務組件包還在線運行,這樣就有利于實現(xiàn)在服務節(jié)點升級服務組件包時也盡量不中斷相應類型的服務。進ー步的,通過多個版本的服務組件包同時在線運行,解決服務節(jié)點軟件不中斷升級和特性増加;通過在服務請求中攜帯服務類型信息、版本信息等來區(qū)別不同服務類型和版本的服務組件包;通過異步控制請求反饋和多級組件倉庫的部署,有利于保證多版本服務組件包運行和在線特性増加的可靠性;通過本地磁盤組件庫到分布式服務系統(tǒng)組件倉庫的部署,有利于簡化分布式系統(tǒng)的服務組件包管理。本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于ー計算機可讀存儲介質(zhì)中,存儲介質(zhì)例如可以包括只讀存儲器、隨機存儲器、磁盤或光盤等。以上對本發(fā)明實施例所提供的業(yè)務處理方法和相關裝置及相關系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1.一種業(yè)務處理方法,其特征在于,包括 服務節(jié)點接收客戶端發(fā)送的攜帶有服務組件包版本信息的服務請求; 所述服務節(jié)點若確定出所述服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝,則獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,所述第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且所述第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。
2.根據(jù)權利要求I所述的方法,其特征在于,所述服務組件包中包含服務執(zhí)行程序和描述文件,其中,所述描述文件用于描述該服務組件包的版本和所述服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接口。
3.根據(jù)權利要求2所述的方法,其特征在于, 所述方法還包括所述服務節(jié)點若確定出所述服務請求對應的第一版本的服務組件包已安裝,則利用所述第一版本的服務組件包中的描述文件所描述的業(yè)務接口,調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)。
4.根據(jù)權利要求I至3任一項所述的方法,其特征在于, 所述獲取第一版本的服務組件包進行安裝,包括 在所述服務節(jié)點的本地磁盤組件庫中查找所述第一版本的服務組件包; 若在所述本地磁盤組件庫中查找到了所述第一版本的服務組件包,則從所述本地磁盤組件庫中獲取查找到的所述第一版本的服務組件包進行安裝;若在所述本地磁盤組件庫中未查找所述第一版本的服務組件包,則在與所述服務節(jié)點通信連接的分布式服務系統(tǒng)組件倉庫中查找所述第一版本的服務組件包;若在所述分布式服務系統(tǒng)組件倉庫中查找到了所述第一版本的服務組件包,則從所述分布式服務系統(tǒng)組件倉庫中獲取查找到的所述第一版本的服務組件包進行安裝;若在所述分布式服務系統(tǒng)組件倉庫中未查找到所述第一版本的服務組件包,則從互聯(lián)網(wǎng)軟件中心獲取所述第一版本的服務組件包進行安裝,所述互聯(lián)網(wǎng)軟件中心與所述服務節(jié)點通信連接,且包含當前已發(fā)布的各種版本的服務組件包。
5.根據(jù)權利要求3所述的方法,其特征在于, 所述方法還包括在調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向所述客戶端推送所述服務結果數(shù)據(jù)。
6.根據(jù)權利要求3所述的方法,其特征在于, 所述方法還包括所述服務節(jié)點向所述客戶端發(fā)送與所述服務請求對應且攜帶有服務應答標識的請求響應;接收來自所述客戶端根據(jù)所述請求響應發(fā)送的結果查詢請求,在調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向所述客戶端發(fā)送所述服務結果數(shù)據(jù)。
7.一種服務節(jié)點,其特征在于,包括 接收模塊,用于接收客戶端發(fā)送的攜帶有服務組件包版本信息的服務請求; 處理模塊,用于在確定出所述接收模塊接收的服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝時,獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,所述第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且所述第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。
8.根據(jù)權利要求7所述的服務節(jié)點,其特征在于,所述服務組件包中包含服務執(zhí)行程序和描述文件,其中,所述描述文件用于描述該服務組件包的版本和所述服務執(zhí)行程序?qū)ν馓峁┑臉I(yè)務接口; 所述處理模塊還用于,若確定出所述接收模塊接收的服務請求對應的第一版本的服務組件包已安裝,則利用所述第一版本的服務組件包中的描述文件所描述的業(yè)務接口,調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)。
9.根據(jù)權利要求8所述的服務節(jié)點,其特征在于, 所述服務節(jié)點還包括 第一響應模塊,用于在所述處理模塊調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向所述客戶端推送所述服務結果數(shù)據(jù);
10.根據(jù)權利要求8所述的服務節(jié)點,其特征在于, 所述服務節(jié)點還包括第二響應模塊,用于向所述客戶端發(fā)送與所述服務請求對應且攜帶有服務應答標識的請求響應;接收來自所述客戶端根據(jù)所述請求響應發(fā)送的結果查詢請求,在調(diào)用所述第一版本的服務組件包中的服務執(zhí)行程序以提供相應的業(yè)務服務,得到對應的服務結果數(shù)據(jù)后,向所述客戶端發(fā)送所述服務結果數(shù)據(jù)。
11.一種業(yè)務處理系統(tǒng),其特征在于,包括 客戶端,用于發(fā)送攜帶有服務組件包版本信息的服務請求; 至少一個服務節(jié)點,用于接收所述客戶端發(fā)送的攜帶有服務組件包版本信息的服務請求;若確定出該服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。
12.根據(jù)權利要求11所述的業(yè)務處理系統(tǒng),其特征在于, 所述業(yè)務處理系統(tǒng)還包括分布式服務系統(tǒng)組件倉庫; 其中,所述分布式服務系統(tǒng)組件倉庫存儲有與分布式服務系統(tǒng)中的各個服務節(jié)點相關的多個服務組件包; 所述服務節(jié)點,具體用于接收所述客戶端發(fā)送的攜帶有服務組件包版本信息的服務請求,若確定出該服務請求對應的第一版本的服務組件包所述服務節(jié)點當前還未安裝,則在所述服務節(jié)點的本地磁盤組件庫中查找所述第一版本的服務組件包;若在所述本地磁盤組件庫中查找到了所述第一版本的服務組件包,則從所述本地磁盤組件庫中獲取查找到的所述第一版本的服務組件包進行安裝;若在所述本地磁盤組件庫中未查找所述第一版本的服務組件包,則在所述分布式服務系統(tǒng)組件倉庫中查找所述第一版本的服務組件包;若在所述分布式服務系統(tǒng)組件倉庫中查找到了所述第一版本的服務組件包,則從所述分布式服務系統(tǒng)組件倉庫中獲取查找到的所述第一版本的服務組件包進行安裝;若在所述分布式服務系統(tǒng)組件倉庫中未查找到所述第一版本的服務組件包,則從互聯(lián)網(wǎng)軟件中心獲取所述第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,第一版本的服務組件包和第二版本的服務組件包能夠獨立運行,所述互聯(lián)網(wǎng)軟件中心與所述服務 節(jié)點通信連接,且包含當前已發(fā)布的各種版本的服務組件包。
全文摘要
本發(fā)明公開了一種業(yè)務處理方法和相關裝置及相關系統(tǒng)。其中,一種業(yè)務處理方法,可包括服務節(jié)點接收客戶端發(fā)送的攜帶有服務組件包版本信息的服務請求;服務節(jié)點若確定出該服務請求對應的第一版本的服務組件包服務節(jié)點當前還未安裝,則獲取第一版本的服務組件包進行安裝,并保持基于當前已安裝的第二版本的服務組件包運行的服務,其中,第一版本的服務組件包和第二版本的服務組件包對應相同類型的服務,且第一版本的服務組件包和第二版本的服務組件包能夠獨立運行。本發(fā)明實施例提供技術方案有利于在盡量不中斷服務的情況下,實現(xiàn)服務節(jié)點的組件包的升級服務。
文檔編號H04L12/24GK102684913SQ201210121208
公開日2012年9月19日 申請日期2012年4月23日 優(yōu)先權日2012年4月23日
發(fā)明者程建杰 申請人:華為技術有限公司