專利名稱:一種分布式平臺及平臺中功能模塊的生命周期管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件生命周期管理技術(shù)
背景技術(shù):
分布式平臺是一項基于中間件的技術(shù),中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式平臺通過該技術(shù)在不同的服務(wù)器之間共享資源,統(tǒng)一管理分布于不同服務(wù)器的服務(wù)和資源。用戶在需要使用服務(wù)或資源時,通過客戶端向分布式平臺發(fā)出所需服務(wù)/資源的請求,并由分布式平臺對用戶所請求的服務(wù)/資源進(jìn)行定位,找到該服務(wù)/資源所在的服務(wù)器,將該請求發(fā)送至對應(yīng)的服務(wù)器進(jìn)行處理,服務(wù)器處理完畢后,得出的處理結(jié)果仍然通過此分布式平臺反饋給該客戶端。分布式平臺一般包括注冊模塊、搜索模塊、身份認(rèn)證模塊、資源定位模塊、日志模塊和權(quán)限認(rèn)證模塊等功能模塊,如圖1所示,每個模塊都有其各自的功能,并有序的安插在該分布式平臺上,使得分布式平臺能有效的達(dá)到用戶的基本需求。為了確保分布式平臺的正常運(yùn)行,需要對平臺上的各功能模塊進(jìn)行生命周期管理,包括各模塊的安裝、開啟、關(guān)閉、 更新、升級和卸載?,F(xiàn)有的模塊生命周期管理方法存在較多的不足之處。以模塊更新、升級為例,分布式平臺各模塊需定期或者根據(jù)用戶的不同需求而進(jìn)行內(nèi)容更新或版本升級,現(xiàn)有技術(shù)中,對模塊更新或升級需要關(guān)閉相對應(yīng)的服務(wù)器,重新加載新模塊并卸除對應(yīng)的舊模塊,且重啟該服務(wù)器后才能正常使用。但是分布式系統(tǒng)具有高度的內(nèi)聚性和透明性,任意關(guān)閉或重啟服務(wù)器都會帶來延誤工作進(jìn)度,更嚴(yán)重的甚至?xí)l(fā)生系統(tǒng)癱瘓問題。此時,則需要對各模塊進(jìn)行有效的生命周期管理。
發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問題是提供一種分布式平臺及平臺中的功能模塊生命周期管理方法,使得對分布式平臺中功能模塊(插件)進(jìn)行更新或升級時,新舊模塊可以同時加載在平臺上時,無需關(guān)機(jī)卸載原始模塊,且不會產(chǎn)生模塊訪問沖突。為了解決上述技術(shù)問題,本發(fā)明提供了一種分布式平臺中的功能模塊生命周期管理方法,包含以下步驟在分布式平臺中移入新的功能模塊時,該分布式平臺的服務(wù)注冊模塊進(jìn)行注冊搜索,如果所述移入的新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,則在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中;訪問端根據(jù)所述注冊表訪問對應(yīng)的功能模塊。所述新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,可以包含以下情況名稱完全相同,名稱中不包含版本號;名稱中版本號不同,其他相同;名稱完全相同,且名稱中包含版本號。作為上述技術(shù)方案的改進(jìn),在確定功能模塊名稱相同之后,在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中之前,還可以包含以下步驟如果所述功能模塊名稱中包含的版本號不同,則所述服務(wù)注冊模塊進(jìn)一步判斷版本級別,在判定新移入的功能模塊的版本號級別高于同名現(xiàn)有功能模塊的版本號時,執(zhí)行所述在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中的步驟。作為上述技術(shù)方案的改進(jìn),在所述分布式平臺設(shè)備自然關(guān)機(jī)或自然重啟時,從該分布式平臺卸載所述注冊表中移除的功能模塊。本發(fā)明還提供了一種分布式平臺,包含注冊模塊,用于在注冊表中加載或移除功能模塊;搜索模塊,用于在分布式平臺中移入新的功能模塊時,進(jìn)行注冊搜索,如果所述移入的新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,則指示所述注冊模塊在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中。所述搜索模塊在以下情況,判定新的功能模塊名稱與現(xiàn)有功能模塊名稱相同名稱完全相同,名稱中不包含版本號;名稱中版本號不同,其他相同;名稱完全相同,且名稱中包含版本號。作為上述技術(shù)方案的改進(jìn),所述搜索模塊還可以用于在所述新移入的功能模塊名稱中包含版本號且與現(xiàn)有功能模塊版本號不相同時,進(jìn)一步判斷版本級別,在判定新移入的功能模塊的版本號級別高于同名現(xiàn)有功能模塊的版本號時,指示所述注冊模塊在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中。本發(fā)明實施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于每當(dāng)分布式平臺中加載新的功能模塊(插件)時,服務(wù)注冊模塊均進(jìn)行注冊搜索,檢測該功能模塊是否與現(xiàn)有功能模塊重復(fù),如果重復(fù)則在注冊表中移除現(xiàn)有功能模塊,將新的功能模塊加載到該注冊表中;使得訪問端能夠根據(jù)注冊表信息訪問到正確的功能模塊,即便暫時不卸載原有的功能模塊,也不會造成模塊訪問的沖突,從而無需在分布式平臺中功能模塊(插件)進(jìn)行更新或升級后,立即關(guān)機(jī)卸載原始模塊,確保分布式平臺在升級過程中仍然能夠正常工作。
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)說明。圖1是分布式系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明第一實施方式中的分布式平臺中功能模塊的更新方法流程圖;圖3是本發(fā)明第一實施方式中的分布式平臺上模塊更新示意圖;圖4是本發(fā)明第一實施方式中的分布式平臺上模塊升級示意圖;圖5是本發(fā)明第一實施方式中的注冊表示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的實施方式作進(jìn)一步地詳細(xì)描述。
本發(fā)明第一實施方式涉及一種分布式平臺中的功能模塊生命周期管理方法,本實施方式中生命管理周期方法,其改進(jìn)主要在模塊的內(nèi)容更新和版本更新。而生命周期管理方法中模塊的安裝、開啟、關(guān)閉和卸載方法,與現(xiàn)有技術(shù)并無明顯差別,在此不做詳細(xì)介紹。具體的分布式平臺中功能模塊的更新方法流程如圖2所示,在步驟201中,軟件開發(fā)人員根據(jù)用戶的不同需求,將內(nèi)容更新或版本更新后的新功能模塊移入分布式平臺上。步驟202中,分布式平臺上服務(wù)注冊模塊對現(xiàn)有的模塊進(jìn)行注冊搜索,發(fā)現(xiàn)新功能模塊。如果新功能模塊名稱不包含版本號,則進(jìn)入步驟203,把新移入的模塊名稱與服務(wù)注冊模塊內(nèi)原有的模塊名稱進(jìn)行一一對比,檢查是否有重名,如果新移入的模塊名稱與服務(wù)注冊模塊內(nèi)原有的模塊名稱有重名,則進(jìn)入步驟205 ;如果沒有重名,則進(jìn)入步驟206。如果新功能模塊名稱包含版本號,則進(jìn)入步驟204,把新移入的模塊名稱與服務(wù)注冊模塊內(nèi)原有的模塊名稱及版本號進(jìn)行一一對比,檢查是否重名且版本升級,如果重名且版本號高于該重名模塊,則進(jìn)入步驟205 ;反之則進(jìn)入步驟206。步驟205中,在注冊表中移除所述同名的現(xiàn)有功能模塊。步驟206中,將新移入的功能模塊加載到注冊表中。用戶便可根據(jù)注冊表訪問對應(yīng)的功能模塊。具體地說,假設(shè)分布式平臺上已存在模塊A和模塊B Vl. 0。根據(jù)用戶的某一需求, 需對模塊A進(jìn)行了內(nèi)容上的更新,對模塊B vl. 0進(jìn)行了版本上的更新。由此生成了模塊A 和模塊B v2.0。當(dāng)把這2個新功能模塊移入分布式平臺時,服務(wù)注冊模塊則會對現(xiàn)有的模塊進(jìn)行搜索,同時將新模塊的名稱與服務(wù)注冊模塊內(nèi)已有的模塊名稱進(jìn)行一一比較。此時, 則會發(fā)覺模塊A和模塊B vl. 0已存在于服務(wù)注冊模塊中。與新移入的模塊A名字相同,與模塊B v2.0版本不同,且高于現(xiàn)有版本。于是,用內(nèi)容更新的新模塊A替換原有的模塊A, 如圖3所示;版本更新的新模塊B v2.0替換原有的模塊B vl. 0,如圖4所示。更新后的注冊表如圖5所示。綜上所述,每當(dāng)分布式平臺中加載新的功能模塊(插件)時,服務(wù)注冊模塊均進(jìn)行注冊搜索,檢測該功能模塊是否與現(xiàn)有功能模塊重復(fù),如果重復(fù)則在注冊表中移除現(xiàn)有功能模塊,將新的功能模塊加載到該注冊表中;使得訪問端能夠根據(jù)注冊表信息訪問到正確的功能模塊,即便暫時不卸載原有的功能模塊,也不會造成模塊訪問的沖突,從而無需在分布式平臺中功能模塊(插件)進(jìn)行更新或升級后,立即關(guān)機(jī)卸載原始模塊,確保分布式平臺在升級過程中仍然能夠正常工作。本發(fā)明第二實施方式涉及一種分布式平臺,包含注冊模塊,用于在注冊表中加載或移除功能模塊;搜索模塊,用于在分布式平臺中移入新的功能模塊時,進(jìn)行注冊搜索,如果移入的新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,則指示注冊模塊在注冊表中移除同名的現(xiàn)有功能模塊,將新的功能模塊加載到該注冊表中。作為進(jìn)一步改進(jìn),搜索模塊在以下情況,判定新的功能模塊名稱與現(xiàn)有功能模塊名稱相同名稱完全相同,名稱中不包含版本號;名稱中版本號不同,其他相同;名稱完全相同,且名稱中包含版本號。作為進(jìn)一步改進(jìn),搜索模塊還用于在新移入的功能模塊名稱中包含版本號且與現(xiàn)有功能模塊版本號不相同時,進(jìn)一步判斷版本級別,在判定新移入的功能模塊的版本號級別高于同名現(xiàn)有功能模塊的版本號時,指示注冊模塊在注冊表中移除同名的現(xiàn)有功能模塊,將新的功能模塊加載到該注冊表中。在現(xiàn)有技術(shù)中,需要重啟該服務(wù)器才能使用新移入的功能模塊。而如今,只需通過該分布式平臺上注冊模塊和搜索模塊之間的運(yùn)作,無需重啟服務(wù)器,便可直接使用新功能模塊,給分布式系統(tǒng)帶來了較多便利,不僅避免了由于重啟服務(wù)器帶來的工作效率的降低, 同時也防止了由此引起系統(tǒng)癱瘓等一系列問題。此外,新舊模塊可以同時加載在平臺上時, 無需關(guān)機(jī)卸載原始模塊,且不會產(chǎn)生模塊訪問沖突。舊模塊只需在下次分布式平臺設(shè)備自然關(guān)機(jī)或自然重啟時,從該分布式平臺移除的功能模塊便可。雖然通過參照本發(fā)明的某些優(yōu)選實施方式,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種分布式平臺中的功能模塊生命周期管理方法,其特征在于,包含以下步驟在分布式平臺中移入新的功能模塊時,該分布式平臺的服務(wù)注冊模塊進(jìn)行注冊搜索, 如果所述移入的新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,則在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中;訪問端根據(jù)所述注冊表訪問對應(yīng)的功能模塊。
2.根據(jù)權(quán)利要求1所述的分布式平臺中功能模塊的生命周期管理方法,其特征在于, 所述新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,包含以下情況名稱完全相同,名稱中不包含版本號;名稱中版本號不同,其他相同;名稱完全相同,且名稱中包含版本號。
3.根據(jù)權(quán)利要求2所述的分布式平臺中功能模塊的生命周期管理方法,其特征在于, 在確定功能模塊名稱相同之后,在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中之前,還包含以下步驟如果所述功能模塊名稱中包含的版本號不同,則所述服務(wù)注冊模塊進(jìn)一步判斷版本級別,在判定新移入的功能模塊的版本號級別高于同名現(xiàn)有功能模塊的版本號時,執(zhí)行所述在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中的步馬聚ο
4.根據(jù)權(quán)利要求1所述的分布式平臺中功能模塊的生命周期管理方法,其特征在于, 在所述分布式平臺設(shè)備自然關(guān)機(jī)或自然重啟時,從該分布式平臺卸載所述注冊表中移除的功能模塊。
5.一種分布式平臺,其特征在于,包含注冊模塊,用于在注冊表中加載或移除功能模塊;搜索模塊,用于在分布式平臺中移入新的功能模塊時,進(jìn)行注冊搜索,如果所述移入的新的功能模塊名稱與現(xiàn)有功能模塊名稱相同,則指示所述注冊模塊在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中。
6.根據(jù)權(quán)利要求5所述的分布式平臺,其特征在于,所述搜索模塊在以下情況,判定新的功能模塊名稱與現(xiàn)有功能模塊名稱相同名稱完全相同,名稱中不包含版本號;名稱中版本號不同,其他相同;名稱完全相同,且名稱中包含版本號。
7.根據(jù)權(quán)利要求6所述的分布式平臺,其特征在于,所述搜索模塊還用于在所述新移入的功能模塊名稱中包含版本號且與現(xiàn)有功能模塊版本號不相同時,進(jìn)一步判斷版本級別,在判定新移入的功能模塊的版本號級別高于同名現(xiàn)有功能模塊的版本號時,指示所述注冊模塊在注冊表中移除所述同名的現(xiàn)有功能模塊,將所述新的功能模塊加載到該注冊表中。
全文摘要
本發(fā)明公開了一種分布式平臺及分布式平臺中的功能模塊生命周期管理方法,每當(dāng)分布式平臺中加載新的功能模塊(插件)時,服務(wù)注冊模塊均進(jìn)行注冊搜索,檢測該功能模塊是否與現(xiàn)有功能模塊重復(fù),如果重復(fù)則在注冊表中移除現(xiàn)有功能模塊,將新的功能模塊加載到該注冊表中;使得訪問端能夠根據(jù)注冊表信息訪問到正確的功能模塊,即便暫時不卸載原有的功能模塊,也不會造成模塊訪問的沖突,從而無需在分布式平臺中功能模塊(插件)進(jìn)行更新或升級后,立即關(guān)機(jī)卸載原始模塊,確保分布式平臺在升級過程中仍然能夠正常工作。
文檔編號G06F9/445GK102486725SQ20101057099
公開日2012年6月6日 申請日期2010年12月2日 優(yōu)先權(quán)日2010年12月2日
發(fā)明者梁俊, 蔡清, 錢靖 申請人:上??婶斚到y(tǒng)軟件有限公司