欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

更新JAVA應(yīng)用服務(wù)的系統(tǒng)及方法與流程

文檔序號(hào):11677303閱讀:883來(lái)源:國(guó)知局
更新JAVA應(yīng)用服務(wù)的系統(tǒng)及方法與流程

本發(fā)明涉及軟件開(kāi)發(fā)領(lǐng)域以及java領(lǐng)域,更為具體而言,涉及一種更新java應(yīng)用服務(wù)的系統(tǒng)及方法。



背景技術(shù):

現(xiàn)在較為普遍的升級(jí)java應(yīng)用服務(wù)的做法是重啟服務(wù)器方式,具體而言,采用如下步驟:

(1)停java應(yīng)用服務(wù)器。

(2)升級(jí)部署java應(yīng)用服務(wù)。

(3)啟java應(yīng)用服務(wù)器,讓新部署的java應(yīng)用服務(wù)生效。

這種升級(jí)方式存在諸多缺陷,下面以中國(guó)建設(shè)銀行所面臨的問(wèn)題為例進(jìn)行說(shuō)明。

一方面,在項(xiàng)目開(kāi)發(fā)過(guò)程中,如果該項(xiàng)目是總分行協(xié)同開(kāi)發(fā)模式(例如,總行開(kāi)發(fā)總體框架及公共業(yè)務(wù)模塊,分行開(kāi)發(fā)分行差異化的模塊),則在系統(tǒng)集成測(cè)試時(shí),30多家分行隨時(shí)都有可能更換版本以解決測(cè)試問(wèn)題。每天頻繁地重啟服務(wù),會(huì)影響整體的測(cè)試進(jìn)度及測(cè)試效果,導(dǎo)致項(xiàng)目進(jìn)度失控。

另一方面,目前系統(tǒng)上收至總行,集中開(kāi)發(fā)、集中部署是一個(gè)趨勢(shì)。在代理業(yè)務(wù)領(lǐng)域,中國(guó)建設(shè)銀行總行集中的代理業(yè)務(wù)平臺(tái)系統(tǒng)是一個(gè)7x24小時(shí)提供服務(wù)的系統(tǒng)。當(dāng)有新的代理業(yè)務(wù)產(chǎn)品上線時(shí),如果繼續(xù)采用重啟服務(wù)器的方式,會(huì)降低銀行的服務(wù)質(zhì)量、不利于提升客戶體驗(yàn)。

再一方面,中國(guó)建設(shè)銀行總行集中的代理業(yè)務(wù)平臺(tái)系統(tǒng)采用的是總分行協(xié)同開(kāi)發(fā)模式,總行開(kāi)發(fā)總體框架及公共業(yè)務(wù)模塊,分行開(kāi)發(fā)分行差異化的模塊。當(dāng)有新的代理業(yè)務(wù)需求時(shí),分行針對(duì)新的代理業(yè)務(wù)進(jìn)行差異化開(kāi)發(fā),如果采用重啟服務(wù)器的方式,則需要等待統(tǒng)一的時(shí)間窗口進(jìn)行版本上線操作,這無(wú)疑延遲了新產(chǎn)品的投產(chǎn)時(shí)間,削弱了行業(yè)競(jìng)爭(zhēng)力。



技術(shù)實(shí)現(xiàn)要素:

鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明實(shí)施方式提供了一種更新java應(yīng)用服務(wù)的系統(tǒng)和方法,能夠提高java應(yīng)用服務(wù)在升級(jí)方面的靈活性并且在項(xiàng)目開(kāi)發(fā)等方面具有諸多優(yōu)勢(shì)。

具體地,本發(fā)明實(shí)施方式提供了一種更新java應(yīng)用服務(wù)的系統(tǒng),其包括:

文件獲取模塊,用于獲取待更新的jar文件;

更新處理模塊,用于創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器,并通過(guò)所述第一類加載器加載所述jar文件;

其中,所述第一類加載器用于加載所述jar文件并與java類加載器綁定父子關(guān)系。

相應(yīng)地,本發(fā)明實(shí)施方式還提供了一種用于更新java應(yīng)用服務(wù)的方法,其包括:

獲取待更新的jar文件;

創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器,并通過(guò)所述第一類加載器加載所述jar文件;

其中,所述第一類加載器用于加載所述jar文件并與java類加載器綁定父子關(guān)系。

此外,本發(fā)明實(shí)施方式還提供了一種更新java應(yīng)用服務(wù)的系統(tǒng),,其包括:

更新jar文件服務(wù),用于接收jar文件并發(fā)送更新請(qǐng)求;

類加載器管理器,用于響應(yīng)所述更新請(qǐng)求創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器;

其中,所述第一類加載器繼承java類加載器并用于加載所述jar文件。

采用本發(fā)明實(shí)施方式,通過(guò)為待更新的jar文件創(chuàng)建用于加載該文件的類加載器,并通過(guò)創(chuàng)建的類加載器加載jar文件,從而避免了現(xiàn)有技術(shù)為更新java應(yīng)用服務(wù)而重啟java應(yīng)用服務(wù)器所帶來(lái)的諸多不便。更具體而言,具有下述有益效果:

(1)團(tuán)隊(duì)開(kāi)發(fā)時(shí),在系統(tǒng)集成測(cè)試過(guò)程中,通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以保證團(tuán)隊(duì)成員在升級(jí)自己開(kāi)發(fā)的java應(yīng)用服務(wù)時(shí),不影響團(tuán)隊(duì)其他成員所開(kāi)發(fā)的java應(yīng)用服務(wù)。達(dá)到提高測(cè)試效率、保障項(xiàng)目進(jìn)度的目的。

(2)在系統(tǒng)上線投產(chǎn)過(guò)程中,通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以保證在升級(jí)java應(yīng)用服務(wù)時(shí),不需要停止java應(yīng)用服務(wù)器,讓不屬本次升級(jí)范圍內(nèi)的、正在運(yùn)行的java應(yīng)用服務(wù)不受影響。達(dá)到提升服務(wù)質(zhì)量、改善客戶體驗(yàn)的目的。

(3)在總分行協(xié)同開(kāi)發(fā)、系統(tǒng)集中部署在總行時(shí),通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以讓分行通過(guò)交易發(fā)布自己開(kāi)發(fā)的java程序并實(shí)時(shí)生效。達(dá)到快速響應(yīng)業(yè)務(wù)需求、提高行業(yè)競(jìng)爭(zhēng)力的目的。

附圖說(shuō)明

圖1是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的系統(tǒng)的框圖的一例;

圖2是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的方法的流程示意圖的一例;

圖3是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的系統(tǒng)的框圖的另一例;

圖4是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的方法的流程示意圖的另一例;

圖5是根據(jù)本發(fā)明實(shí)施例的一種證明調(diào)用java程序的流程示意圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。

在本發(fā)明的說(shuō)明書(shū)和權(quán)利要求書(shū)及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個(gè)操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來(lái)執(zhí)行或并行執(zhí)行,操作的序號(hào)如101、102等,僅僅是用于區(qū)分開(kāi)各個(gè)不同的操作,序號(hào)本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說(shuō)明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

圖1是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的系統(tǒng)的框圖。參照?qǐng)D1,所述系統(tǒng)包括文件獲取模塊10和更新處理模塊20,下面具體進(jìn)行說(shuō)明。

在本實(shí)施例中,文件獲取模塊10用于獲取待更新的jar文件。例如,由操作人員主動(dòng)上傳jar文件、自動(dòng)上傳jar文件或文件獲取模塊10主動(dòng)請(qǐng)求jar文件,從而獲取jar文件。

在本實(shí)施例中,更新處理模塊20用于創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器,并通過(guò)所述第一類加載器加載所述jar文件。其中,所述第一類加載器用于加載所述jar文件并與java類加載器綁定父子關(guān)系。

采用本實(shí)施例提供的系統(tǒng),通過(guò)為待更新的jar文件創(chuàng)建用于加載該文件的類加載器,并通過(guò)創(chuàng)建的類加載器加載jar文件,從而避免了現(xiàn)有技術(shù)為更新java應(yīng)用服務(wù)而重啟java應(yīng)用服務(wù)器所帶來(lái)的諸多不便。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,如圖1中虛線框所示,更新處理模塊20可以包括預(yù)處理子模塊,該預(yù)處理子模塊用于判斷是否已經(jīng)存在與所述jar文件對(duì)應(yīng)的第二加載器,如果存在,則釋放該第二類加載器,然后再由創(chuàng)建模塊20創(chuàng)建所述第一類加載器。如果不存在,則直接創(chuàng)建所述第一類加載器。

需要說(shuō)明的是,本發(fā)明中提及的“與所述jar文件對(duì)應(yīng)的第一類加載器”是指用于加載所述jar文件的類加載器;本發(fā)明中提及的“與所述jar文件對(duì)應(yīng)的第二類加載器”是指用于加載所述jar文件的更新前的文件的類加載器。示例性地,jar文件在更新前和更新后都具有相同的標(biāo)識(shí)(例如,文件名)。

在該實(shí)現(xiàn)方式中,預(yù)處理子模塊可以在確定存在第二類加載器時(shí),向第二類加載器發(fā)送關(guān)閉請(qǐng)求以便第二類加載器卸載其當(dāng)前加載的jar文件(即,所述jar文件在更新前的文件)。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,第一類加載器用于加載和/或重新加載指定路徑下的jar文件。

圖2是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的方法的流程示意圖,參照?qǐng)D2,所述方法包括:

200:獲取待更新的jar文件。

202:創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器。

204:通過(guò)所述第一類加載器加載所述jar文件。

在本實(shí)施例中,所述第一類加載器用于加載所述jar文件并與java類加載器綁定父子關(guān)系。

采用本實(shí)施例提供的方法,通過(guò)為待更新的jar文件創(chuàng)建用于加載該文件的類加載器,并通過(guò)創(chuàng)建的類加載器加載jar文件,從而避免了現(xiàn)有技術(shù)為更新java應(yīng)用服務(wù)而重啟java應(yīng)用服務(wù)器所帶來(lái)的諸多不便。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,在處理202中,在獲取所述jar文件之后,判斷是否已經(jīng)存在與所述jar文件對(duì)應(yīng)的第二類加載器;如果存在所述第二類加載器,則釋放該第二類加載器,然后創(chuàng)建所述第一類加載器。

示例性地,在本實(shí)現(xiàn)方式中,在確定存在第二類夾雜器時(shí),向所述第二類加載器發(fā)送關(guān)閉請(qǐng)求以便所述第二類加載器卸載當(dāng)前加載的jar文件。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,第一類加載器用于加載和/或重新加載指定路徑下的所述jar文件。

圖3是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的系統(tǒng)的框圖。由于本發(fā)明提供的系統(tǒng)在更新java應(yīng)用服務(wù)時(shí)無(wú)需重啟java應(yīng)用服務(wù)器,所以,也可以將本實(shí)施例提供的系統(tǒng)稱作熱升級(jí)java應(yīng)用服務(wù)系統(tǒng)。參照?qǐng)D3,該系統(tǒng)包括更新jar文件服務(wù)和類加載器管理器。下面進(jìn)行具體說(shuō)明。

在本實(shí)施例中,更新jar文件服務(wù)用于接收jar文件并發(fā)送更新請(qǐng)求,具體而言,例如,在接收jar文件完成后,通知類加載器管理器加載所述jar文件。

在本實(shí)施例中,類加載器管理器用于響應(yīng)所述更新請(qǐng)求創(chuàng)建與所述jar文件對(duì)應(yīng)的第一類加載器(如虛線框所示),其中,所述第一類加載器繼承java類加載器并用于加載所述jar文件。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,所述類加載器管理還用于執(zhí)行以下處理中的至少一種:保存類加載器、獲取類加載器、獲取類對(duì)象。

可選地,在本實(shí)施例的一種實(shí)現(xiàn)方式中,類加載器管理器可提供類加載器(包括自定義類加載器)的管理功能,這些功能可以包括:為指定的jar文件(例如,jar歸檔文件)創(chuàng)建自定義類加載器;為指定的jar歸檔文件重新創(chuàng)建自定義類加載器;保存一個(gè)自定義類加載器;獲取一個(gè)自定義類加載器;獲取類對(duì)象。

在本實(shí)施例的一種變形例中,提供一種更新java應(yīng)用服務(wù)的系統(tǒng),該系統(tǒng)包括類加載器、類加載器管理器和更新jar文件服務(wù),其中,類加載器可以由類加載器管理創(chuàng)建,也可以是從第三方獲取。此外,關(guān)于各個(gè)部分的具體說(shuō)明,請(qǐng)參照?qǐng)D3所示實(shí)施例中的描述。此處不再贅述。

圖4是根據(jù)本發(fā)明實(shí)施例的一種更新java應(yīng)用服務(wù)的方法的流程示意圖。參照?qǐng)D4,所述方法包括:

步驟a:操作員需要更新(例如,升級(jí))java應(yīng)用服務(wù)時(shí),通過(guò)調(diào)用更新jar文件服務(wù)上傳jar文件。

步驟b:更新jar文件服務(wù)接收完jar文件后,通知類加載器管理器執(zhí)行更新處理。

步驟c:類加載器管理器收到更新請(qǐng)求后,首先判斷請(qǐng)求更新的jar文件所對(duì)應(yīng)的自定義類加載器是否存在,如果存在,則通知該類加載器關(guān)閉后釋放該類加載器。

步驟d:自定義類加載器收到關(guān)閉請(qǐng)求后,卸載所對(duì)應(yīng)的jar文件。

步驟e:類加載器管理器為jar文件創(chuàng)建一個(gè)對(duì)應(yīng)的自定義類加載器,并通知該類加載器加載jar文件中的類對(duì)象。

步驟f:自定義類加載器收到加載請(qǐng)求后,加載所指定的jar文件,并與java類加載器綁定父子關(guān)系。

采用圖4所示方法,能夠避免重新啟動(dòng)java應(yīng)用服務(wù)器而實(shí)現(xiàn)java應(yīng)用服務(wù)的更新,從而解決諸多因重新啟動(dòng)java應(yīng)用服務(wù)器而導(dǎo)致的問(wèn)題。更具體而言,采用本實(shí)施例圖1至圖4所示實(shí)施例中的任意實(shí)施例,具有但不限于以下有意效果:

(1)團(tuán)隊(duì)開(kāi)發(fā)時(shí),在系統(tǒng)集成測(cè)試過(guò)程中,通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以保證團(tuán)隊(duì)成員在升級(jí)自己開(kāi)發(fā)的java應(yīng)用服務(wù)時(shí),不影響團(tuán)隊(duì)其他成員所開(kāi)發(fā)的java應(yīng)用服務(wù)。達(dá)到提高測(cè)試效率、保障項(xiàng)目進(jìn)度的目的。

(2)在系統(tǒng)上線投產(chǎn)過(guò)程中,通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以保證在升級(jí)java應(yīng)用服務(wù)時(shí),不需要停止java應(yīng)用服務(wù)器,讓不屬本次升級(jí)范圍內(nèi)的、正在運(yùn)行的java應(yīng)用服務(wù)不受影響。達(dá)到提升服務(wù)質(zhì)量、改善客戶體驗(yàn)的目的。

(3)在總分行協(xié)同開(kāi)發(fā)、系統(tǒng)集中部署在總行時(shí),通過(guò)本發(fā)明升級(jí)java應(yīng)用服務(wù),可以讓分行通過(guò)交易發(fā)布自己開(kāi)發(fā)的java程序并實(shí)時(shí)生效。達(dá)到快速響應(yīng)業(yè)務(wù)需求、提高行業(yè)競(jìng)爭(zhēng)力的目的。

圖5是根據(jù)本發(fā)明實(shí)施例的一種證明調(diào)用java程序的流程示意圖。該實(shí)施例可以用于證明本發(fā)明提供的更新java應(yīng)用服務(wù)的系統(tǒng)以及方法的可行性。

參照?qǐng)D5,在調(diào)用java程序時(shí),采用以下步驟:

步驟a:當(dāng)java程序熱升級(jí)范疇中的jar歸檔文件中的某個(gè)類(即,申請(qǐng)調(diào)用jar文件中的某個(gè)類)時(shí),該java程序調(diào)用類加載器管理器的獲取類對(duì)象方法。

步驟b:類加載器管理器收到獲取類對(duì)象的請(qǐng)求后,首先判斷jar文件對(duì)應(yīng)的類加載器是否存在,如果不存在,則為jar文件創(chuàng)建一個(gè)類加載器,并通知該類加載器加載jar文件中的類對(duì)象。

步驟c:自定義類加載器接收到類加載器管理發(fā)送的加載請(qǐng)求后,加載所指定的jar文件,并與java類加載器綁定父子關(guān)系。

步驟d:類加載器管理器找到j(luò)ar文件對(duì)應(yīng)的自定義類加載器后,申請(qǐng)所調(diào)用的類對(duì)象。

步驟e:自定義類加載器收到調(diào)用申請(qǐng)后,返回所申請(qǐng)的類,如果所申請(qǐng)的類不存在則嘗試從父類加載器中申請(qǐng)并返回。

采用本實(shí)施例提供的方法即可實(shí)現(xiàn)java程序的調(diào)用,也證明了本發(fā)明前述實(shí)施例提供的更新java應(yīng)用服務(wù)的系統(tǒng)以及方法的可行性。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、模塊的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。

通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
友谊县| 连江县| 崇阳县| 德清县| 安顺市| 东至县| 喀喇沁旗| 门源| 遂溪县| 湘西| 云和县| 康定县| 哈巴河县| 会东县| 鄂托克旗| 裕民县| 高邮市| 邛崃市| 霍林郭勒市| 泽普县| 成安县| 义马市| 长葛市| 吉林省| 济宁市| 九江市| 辽源市| 莫力| 营山县| 漯河市| 西安市| 莱州市| 且末县| 怀安县| 会同县| 焦作市| 安泽县| 桂平市| 凤山市| 宁城县| 福建省|