新四季網

業務系統中業務動態加載系統及方法

2023-10-07 01:46:24

專利名稱:業務系統中業務動態加載系統及方法
技術領域:
本發明涉及一種業務加載的方法,尤其涉及一種業務系統中業務動態加載系統及
方法。
背景技術:
目前的業務系統均是根據用戶的需求而設計的,業務系統為用戶提供了各種各樣 的業務服務,這大大方便了用戶對業務系統的應用。隨著技術的進步、環境的變化,對於任 一客戶群而言,其需求也總是變化的。為滿足用戶需求,即使是同一業務,經常進行更新也 是必要的。這裡所指的業務系統,是指各種具體的應用系統,特別是網絡上的伺服器端的應 用系統,支持相關業務的應用系統等。業務更新包括業務升級、業務擴展、新增業務等。例如 目前的電信業務系統中,除了一些正常的電信業務外,運營商針對用戶的需求,還推出有相 關的增值業務如電話聲訊業務、服務查詢業務、網絡服務等。對於運營商來說,增值服務的 推出或更新一般能拓展其收入,運營商樂意進行業務升級的操作,但對於業務系統而言,升 級操作往往需要伺服器重新啟動,這必然導致所有的業務中斷,將對運營商造成收入損失, 同時對用戶而言也會因服務中斷而導致不必要的損失,為降低運營損失及避免給用戶帶來 服務上的不便,電信業務的升級是相當謹慎的,不得不升級的操作往往選擇在凌晨使用用 戶較少的時候,即便如此,中斷業務的損失也是相當大,這對於業務系統的用戶特別是運營 商級的用戶而言,是相當棘手的一對矛盾。針對於此,目前常用的技術手段多是採用冗餘備 份的方式,即同時配備兩套系統,當需要升級更新時,在冗餘系統上進行更新,而當更新完 畢後,用冗餘設備替換當前使用的設備。這種方式雖然能大大縮短中斷的時間,但更換設備 時還是得中斷所有的業務,如果操作不熟練,比更新設備花費的時間還要長。能直接在業 務系統運行的設備上進行業務加載而不必重啟系統,是當前業務系統用戶所渴望解決的問 題。

發明內容
有鑑於此,本發明的主要目的在於提供一種業務系統中業務動態加載系統及方 法,能在不停止系統業務的情況下實現新增或更新業務的加載,加載完畢後不必重啟業務 系統。 為達到上述目的,本發明的技術方案是這樣實現的 —種業務系統中業務動態加載的方法,在所述業務系統中指定新增及更新業務存 放的文件夾,對配置新增JAVA類文件及更新JAVA類文件的配置文件進行初始化配置,並設 置監控所述文件夾中設定的JAVA類文件更新狀況的線程;根據用戶需求確定所述業務系 統的新增業務或/和更新業務,在所述業務系統的開發環境下編譯所述新增業務或/和更 新業務的應用,對所述新增業務或/和更新業務的應用進行調試,調試成功後將所述新增 業務或/和更新業務的應用對應的JAVA源文件生成JAVA類文件;所述方法包括以下步驟
A、將所述新增業務或/和更新業務的應用的JAVA類文件存儲於所述業務新增及
4更新指定的文件夾中,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置指令,從而實現配置文件的編寫,並用新編寫完成的配置文件直接覆蓋舊的配置文件;所述配置文件分為兩個, 一個是監控新增文件的配置文件, 一個是完成更新映射的配置文件;
B、所述線程監控文件夾中設定種類的JAVA類文件的實時新增和更新狀況,在有新的JAVA類文件導入時,提取新的JAVA類文件,存儲到業務系統所在的內存中;
C、接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行解析,根據所述配置文件調用業務系統所在的內存中相應的JAVA類文件,在業務系統的執行環境下,JAVA類文件按其自身的邏輯被執行,將JAVA類文件的執行結果提供至用戶,使用戶獲得業務支持;其中,被執行的JAVA類文件包括新增業務或/和更新業務的JAVA類文件。
其中,所述步驟B中提取所述新的JAVA類文件存儲到所述業務系統所在的內存中,具體為通過解析監控新增文件的配置文件中配置的路徑名自動發現該路徑下的新增JAVA類文件,並通過類加載器將其加載到業務系統所在的內存中。 其中,所述設置所述JAVA類文件新增到所述業務系統中的配置模板,具體為根據所述JAVA類文件的路徑、存儲地址的信息建立所述JAVA類文件發現的模板,將新增JAVA類文件所在的路徑或存儲地址信息替換所述模板中的路徑、存儲地址信息,即編寫所述新增JAVA類文件的配置文件;設置所述JAVA類文件替換所述業務系統中原JAVA類文件的配置模板,具體為根據所述JAVA類文件的名稱、存儲地址的信息建立欲更新的JAVA類文件的調用及阻止待替換的JAVA類文件調用的應用的模板,將更新JAVA類文件及待更新JAVA類文件的名稱或存儲地址分別替換所述應用的模板中的更新JAVA類文件及待更新JAVA類文件的名稱、存儲地址,即編寫所述更新JAVA類文件的配置文件。 其中,所述步驟A中用新編寫完成的配置文件直接覆蓋舊的配置文件,具體為將編寫好的已測試成功的配置文件覆蓋掉原先的配置文件,以避免直接進行配置而導致配置中出現異常。 其中,所述業務系統為JAVA支持的業務系統,所述業務包括各種Web服務業務、電信服務業務、基於各種作業系統的服務業務。 其中,所述步驟B中提取所述新的JAVA類文件存儲到所述業務系統所在的內存中,具體為查找具有設定名稱的類或所述類的接口的二進位表示,構造供JAVA虛擬機的執行引擎引用和解釋執行的與所述類或類的接口對應的內存結構。
—種業務系統中業務動態加載系統,包括 設置單元,用於在所述業務系統中設置新增及更新業務指定的文件夾; 線程監控單元,用於監控配置文件的改變及所述文件夾中JAVA類文件的新增和
更新狀況; JAVA類文件生成單元,用於根據用戶需求確定所述業務系統的新增業務或/和更新業務,在所述業務系統的開發環境下編譯所述新增業務或/和更新業務的應用,對所述新增業務或/和更新業務的應用進行調試,調試成功後生成所述新增業務或/和更新業務相應JAVA類文件;將所述新增業務或/和更新業務的應用的JAVA類文件存儲於所述業務新增及更新指定的文件夾中; 配置模板設置單元,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置指令完成配置文件的編寫,並用新編寫完成的配置文件直接覆蓋舊的配置文件;
JAVA類文件新增及更新單元,在所述線程監控單元監控到所述文件夾中有設定種類的新的JAVA類文件導入時,提取所述新的JAVA類文件,存儲到所述業務系統所在的內存中;
執行單元,接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行解析,根據配置文件調用業務系統所在的內存中相應的JAVA類文件,在業務系統的執行環境下,JAVA類文件按其自身的邏輯被執行,將JAVA類文件的執行結果提供至用戶,使用戶獲得業務支持;其中,被執行的JAVA類文件包括新增業務或/和更新業務的JAVA類文件。
其中,所述業務系統為JAVA支持的業務系統,所述業務包括各種Web服務業務、電信服務業務、基於各種作業系統的服務業務。 本發明在為業務系統加載新業務或進行業務更新時,將所編譯的業務應用生成的
文件導入到事先指定的文件夾中,同時初始化設置待加載文件的配置文件,將描述所述配
置文件的配置文件存放到業務系統中,同時設置監控文件夾中設定的文件的變更情況的線
程,運行所述業務系統時,線程監控所設置文件夾中設定的文件的變更情況,當有新的文件
導入時,提取所述文件並存儲到業務系統所在的內存中,業務系統進行業務提供時,根據各
業務的配置文件調用業務系統所在的內存中的業務文件,解析所述文件並執行之,從而完
成業務系統中的業務支持。在業務文件導入業務系統後,所設置的線程即刻將其導入到業
務系統所在的內存中,業務系統根據所述業務的配置文件查找內存中存儲的業務文件,通
過對其解析並執行而實現其業務。這樣,無論導入多少業務文件,只要該文件的編譯沒有問
題,均可直接獲得執行,從而不必重新啟動業務系統即可實現業務的加載。本發明在不重啟
系統的情況下實現了業務的加載。本發明的技術方案實現簡單,加載業務後可以不重啟業
務系統,從而在業務系統不中斷業務的情況下實現了業務加載,對於如電信運營系統而言,
大大降低了其業務加載所受的損失,同時也避免了這些業務系統的普通用戶因業務中斷所
造成的損失。


圖1為本發明實施例的業務系統中業務動態加載的方法的流程圖; 圖2為本發明實施例的業務系統中業務動態加載系統的結構示意圖; 圖3為本發明實施例的業務系統中業務動態加載系統中各單元核心模塊邏輯結
構示意圖; 圖4為本發明實施例的業務系統中業務動態加載系統中配置文件監控模塊的實現結構示意圖; 圖5為本發明實施例的業務系統中業務動態加載系統中新增及更新JAVA類文件監控模塊的實現結構示意圖; 圖6為本發明實施例的業務系統中業務動態加載系統中新增及更新文件註冊加載模塊的實現結構示意圖; 圖7為本發明實施例的業務系統中業務動態加載系統中配置文件解析模塊的實現結構示意圖。
具體實施例方式
以下結合附圖對本發明作進一步詳細描述。
圖l為本發明實施例的業務系統中業務動態加載的方法的流程圖,如圖l所示,本發明業務系統中業務動態加載的方法包括以下步驟 步驟101 :指定新增文件及更新文件所需存放的文件夾,對配置新增JAVA類文件及更新JAVA類文件的配置文件進行初始化配置,在業務系統中設置監控文件夾中設定的JAVA類文件新增和更新狀況的線程;根據用戶需求確定業務系統的新增業務或/和更新業務,在業務系統的開發環境下編譯新增業務或/和更新業務的應用,對新增業務或/和更新業務的應用進行調試,調試成功後新增業務或/和更新業務的應用對應的類生成相應的JAVA類文件。 這裡,業務系統即是支持各種業務的應用系統,如電信運營系統、會員管理信息系統、Web服務系統、各種伺服器上裝載的服務業務等,這些業務系統均是通過JAVA語言開發實現的。由於業務的編譯不是本發明的重點,各種語言所執行的邏輯運算及編譯理論基本相同,這裡不再對業務系統作更多描述。 所述的文件夾根據業務系統中新增和更新的情況進行設定,以系統開發的邏輯結構為主要方向在配置文件中進行相應的配置即可,以JAVA語言的業務系統為例,解釋一下JAVA類文件。在JAVA業務系統的標準實現中,JAVA編譯器為每個JAVA類(業務)生成一個JAVA類文件,這種文件採用JAVA虛擬機(JVM)定義的JAVA類文件格式保存,並由JAVA虛擬機加載並解釋執行。針對當前的業務系統,系統維護人員確定要加載或更新的業務,根據業務所需的功能,進行相應的開發即編譯支持所述業務的應用,編譯調試完畢後,通過JAVA編譯器或類似的語言編譯器將所述業務的應用生成相應的JAVA類文件。需要說明的是,JAVA類文件是一個格式文件,並不受編譯環境的限制,任何JAVA編譯環境均可生成相應的JAVA類文件。 設置JAVA類文件新增到業務系統中的配置模板根據所述JAVA類文件的路徑、存儲地址的信息建立所述JAVA類文件發現的模板,將新增JAVA類文件所在的路徑或存儲地址信息替換所述模板中的路徑、存儲地址信息,即編寫所述新增JAVA類文件的配置文件;設置所述JAVA類文件替換所述業務系統中原JAVA類文件的配置模板,具體為根據所述JAVA類文件的名稱、存儲地址的信息建立欲更新的JAVA類文件的調用及阻止待替換的JAVA類文件調用的應用的模板,將更新JAVA類文件及待更新JAVA類文件的名稱或存儲地址分別替換所述應用的模板中的更新JAVA類文件及待更新JAVA類文件的名稱、存儲地址,即編寫所述更新JAVA類文件的配置文件。 這裡所述替換並不是通常的將新文件覆蓋舊文件,而是指在一段時間內,兩個文
件同時存在,更新時,只是在邏輯上進行替換即程序調用新文件而不調用舊文件,進而完成
替換。當功能更新完成後,之後登錄的用戶訪問的是新功能。而更新之前已經進行訪問的
用戶訪問的仍然是舊功能,但是在業務中端後的下一次訪問的便是新功能,這也正是更新
系統不影響已登錄用戶訪問舊功能,新登錄用戶訪問新功能的原理所在。所述JAVA類文件
替換所述業務系統中原JAVA類文件的配置模板如下 以網頁所支持業務為例,在updatedes. xml文件配置如下 〈update> 〈classdir> 〈imload>cn. bupt. pj. add. Jcorm〈/imload>
7
〈reload>cn. bupt. pj. add. NewJcorm〈/reload> 〈/classdir>
〈/update> 其中,cn. b卯t. pj. add. Jco皿為被更新的類;cn. bupt. pj. add. Newjco皿為更新類。 以會員管理系統中的投票業務的更新為例,在沒有使用本系統之前,業務程序初始化一個業務JAVA類文件的對象和進行這個類方法的配置文件(程序一)為
1. ChartService chartServ = New ChartService ; 2. String file謹e = chartServ. ge證atorPieChart ( 〃會員滿意度投票結果〃 ,session, request, new PrintWriter (out)); 上面程序中第一條語句是初始化一個ChartService類的對象,第二條語句是該對象調用ChartService類中的generatorPieChart方法,("會員滿意度投票結果〃 ,session, request, new PrintWriter (out))裡的內容為該方法的參數。該方式只使用於對ChartService這個類的使用,故無法實現新舊功能類之間的切換。 本發明的業務程序時初始化一個業務JAVA類文件的對象和進行這個類方法的配置文件(程序二)為 1. Init init = new Init;〃系統提供的一個類對象的初始化 2. Object chartServ = init. new0bject (〃 com. jun. service.
ChartService");〃使用該函數及類的全名字符串來進行對象的初始化,代替new關鍵
字,該例為使用無參數構造方法,若使用帶參數構造方法需在其後追加兩個參數,分別為參
數對象數組和參數類型數組。 3.String filename = (String)init. InvokeMethod( 〃 generatorPieChart 〃 , chartServ,固Object [] { 〃會員滿意度投票結果〃 ,session, request,new PrintWriter(out)} , newClass[] {String, class, HttpSession. class,HttpServletRequest. class, PrintWriter. class}); 〃使用該函數調用某個方法,參數依次為方法名,調用該方法的對象名,方法的參數對象數組,方法的參數類型數組。 以上三條語句中第一條語句為使用本發明提供的配置模板對一個類對象的初始化,用這個類中的函數來代替原先的方式來初始化一個業務JAVA類文件的對象和進行這個類方法的調用。第二條語句即是使用該類對象初始化一個ChartService類的對象,第三條語句即是使用該類對象調用chartServ對象的generatorPieChart方法。
在配置文件中沒有配置對ChartService類的更新時,程序二實現的功能與程序一實現的功能完全相同,在配置文件中配置了對ChartService類的更新時,例如更新後的類為NewChartService,程序二將執行xml配置文件中進行了與ChartService映射的NewChartService類,由此便實現了從執行ChartService類到NewChartService類的切換。
設置配置模板的優點是業務系統的維護人員只需根據模板進行業務配置即可,本發明相當於提供了一個動態的接口,維護人員只需預留一個被更新的位置而無需知道將要被更新成什麼樣的類,只需要在xml配置文件中進行映射配置,系統便自己去解析配置文件而執行相應的新類的功能。
新增JAVA類文件的監測線程可設置為周期性監控實現方式,如每20分鐘對待監測的文件夾掃描一次等。 以上只是作為示例的說明,任何種類的JAVA類文件的配置模板均可參照上述示例進行設置。 步驟102 :將新增業務或/和更新業務的應用的JAVA類文件存儲於業務新增及更
新指定的文件夾中,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置指令
完成配置文件的編寫,並用新的配置文件覆蓋原先的配置文件,以上所述配置文件分為兩
個, 一個是監控新增文件的配置文件, 一個是完成更新映射的配置文件。 步驟101生成業務的JAVA類文件之後,將其導入到設定的文件夾中,同時,根據配
置模板設置所述JAVA類文件的配置文件。設置完配置文件後,將其覆蓋原先業務系統中的
配置文件。具體地,即將編寫完成並通過測試的新的配置文件覆蓋掉舊的配置文件即可。由
於舊配置文件已被存儲於業務系統所在的內存中,因此其所支持的舊業務仍可被用戶所調
用,但在新用戶所請求的該業務的新的申請時,由於系統中舊配置文件已被覆蓋,因此,新
的業務申請的用戶將被提供更新或新增的業務。 步驟103 :線程監控文件夾中設定種類的JAVA類文件的實時新增和更新狀況,在有新的JAVA類文件導入時,提取新的JAVA類文件,存儲到業務系統所在的內存中。
以JAVA業務系統為例,說明JAVA類文件更新到系統的情況。 每一個JAVA虛擬機都由一個類加載器子系統(Class Loader Subsystem),負責加載程序的JAVA類文件。類的裝載就是尋找一個具有特定名稱的類或接口的二進位表示(即JAVA類文件),並構造與之對應的內存結構,以供JAVA虛擬機的執行引擎引用和解釋執行。JAVA虛擬機的動態加載是通過JAVA系統類Java. lang. ClassLoader及其子類實現的。ClassLoader類是一個抽象類,其實例或其子類的實例被稱為類加載器。當指定了一個類名後,類加載器會尋找相對應的JAVA類文件並將其加載到JAVA虛擬機環境中,同時為該類創建一個對應的類對象。 一般情況下,JAVA虛擬機從本地文件系統中加載JAVA類文件,JAVA虛擬機也允許應用程式通過實現ClassLoader的子類從網絡加載JAVA類文件。
線程實時監控待監控的文件夾,當有所設定的JAVA類文件插入時,立刻提取其相應信息,存儲到業務系統所在的內存中。所存儲到業務系統所在內存中的信息,包括JAVA類文件的名稱、存儲地址、JAVA類文件生成時間等相關屬性信息,以使業務系統能調用該JAVA類文件。用於存儲JAVA類文件的文件監控線程(JAVA環境下)可按以下設置
假設待監控的文件夾的路徑設置為 monitor, path = \\com\\jim\\service ;\\com\\jim\\struts\\action
monitor, pack = \\com\\jim
說明 monitor, path為檢測新增和更新JAVA類文件所在的目錄,多個目錄之間用分號分開,目錄須嚴格按照從應用名的下一個目錄開始。monitor, pack是為了從文件的路徑中截取出類的包名,為了描述文件較好的容錯性需為其定義規則如下JAVA類文件所在的包應建在三層以上,而且被檢測的所有JAVA類文件必須至少有兩層公共目錄。
updatedes. xml配置文件 〈? xml version = ,, 1. 0" encoding = "UTF-8" >
〈update>
〈classdir> 〈imload>com. j皿.service. ChartService〈/imload> 〈reload>com. j皿.service. NewChartService〈/reload> 〈/classdir>
〈classdir>〈unload>com. jun. service. RegisterService〈/unload>
〈reload>com. jun. service. NewRegisterService〈/reload>
〈/classdir>
〈classdir>〈imload>com. j皿.service. LogonService〈/imload>
〈reload>com. j皿.service. NewLogonService〈/reload>
〈/classdir>
〈/update>
說明 〈updateX/update〉將整個描述文件的內容包含在裡面,它可以包含多個 〈classdirX/classdir》每個〈classdirX/classdir>中表示一個更新映射,〈皿loadX/ unload〉用來顯示被更新的類,類必須為包含包名在內的完整類名,〈reload〉〈/reload〉 用來顯示所有的更新後的類,類必須為包含包名在內的完整類名,其必須與同一個 〈classdir〉中的〈unload〉裡的類名一一對應,以得知此類對象為哪個類的更新版本。
本發明中,一個類用其完全匹配類名作為標識,這裡指的完全匹配類名包括包名 和類名。但在JAVA虛擬機中一個類用其全名和一個加載類ClassLoader的實例作為唯一 標識,不同類加載器加載的類將被置於不同的命名空間。 如果用同一加載器加載一個同名的JAVA文件,或者直接用更新後的文件覆蓋原 有文件,該加載器首先會檢查給類是否被加載過,如果被加載過就不再進行加載,也就無法 被引用。這使得無法在同一個加載器下進行源文件的更新。如果用不同的加載器來加載更 新後的文件,那麼因為不同類加載器加載的類將被置於不同的命名空間,這些類之間也無 法相互訪問。這使得無法在不同加載器下進行源文件的更新。業務動態加載系統的加載過 程是通過以下方式來實現的 假定系統原有的JAVA類文件為A. class,要對其進行更新,並且把修改後的更新 文件命名為B. class (B和A不相同),並將B. class放入監控目錄下。事實上B. class和 A. class具有相同的類結構,只是名稱不同而已。更新時,在配置文件updatedes.xml中描 述新舊功能的映射關係,這樣在更新過程結束後,當程序調用A.class時,業務動態加載系 統會到updatedes. xml中查找A. class所對應的更新類,如果沒有就直接加載A. class,否 則用當前加載器(同一個類加載器)加載其所對應的B. class,這樣同一個類加載器加載的 類就可以相互調用,程序調用A. class時,實際上調用的是B. class,這些對用戶是透明的。 系統由此便實現了在新舊業務之間的動態切換,便實現了業務系統的動態更新功能。
步驟104 :接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行 解析,根據配置文件調用業務系統所在內存中相應的JAVA類文件,在業務系統的執行環境下,JAVA類文件按其自身的邏輯被執行,將JAVA類文件的執行結果提供至用戶,使用戶獲 得業務支持。其中,被執行的JAVA類文件包括新增業務或/和更新業務的JAVA類文件。步 驟104主要用於說明業務執行的詳細過程,以下仍以JAVA業務系統為例進行說明。
在JAVA虛擬機規範中,加載和連接被定義為兩個相互遞歸的過程。加載是指JAVA 虛擬機根據指定的類文件名或接口名查找相應的JAVA類文件,並將JAVA類文件裝載到 運行環境中的過程。連接是指JAVA虛擬機對JAVA類文件進行驗證和解析符號引用的過 程。JAVA虛擬機通過JAVA系統的類Java. lang. ClassLoader及其子類實現這一加載過程。 ClassLoader類是一個抽象類,其實例或其子類的實例被稱為類加載器。當指定了一個類名 後,類加載器會尋找相對應的JAVA類文件並將其加載到JAVA虛擬機環境中,同時為該類創 建一個對應的類對象。 一般情況下,JAVA虛擬機從本地文件系統中加載JAVA類文件,JAVA 虛擬機也允許應用程式通過實現ClassLoader的子類從網絡加載JAVA類文件。在JAVA平 臺中,所有類都是由類加載器加載的。JAVA中的類加載器可以分為四類
1. Bootstrp loader Bootstrp加載器是用C++語言寫的,它是在JAVA虛擬機啟動後初始化的,它主要 負責加載% JAVA_H0ME% /jre/lib以及% JAVA_H0ME% /jre/classes中的類。
2. ExtClassLoader Bootstrp loader力口載ExtClassLoader,並且將ExtClassLoader的父力口載器設置 為Bootstrp loader. ExtClassLoader主要力口載% JAVA—HOME % /jre/lib/ext中的jar文 檔,以及此路徑下的所有classes目錄。
3. AppClassLoader Bootstrp loader力口載完ExtClassLoader後,就會力口載AppClassLoader,並且 將AppClassLoader的父力口載器指定為ExtClassLoader。 AppClassLoader主要負責力口載 classpath所指定的位置的類或者是jar文檔。
4.亂Classlxiader URLClassLoader是可以自定義的加載器,可以通過指定一個URL對象來創建此加 載器,它所加載路徑就是URL所代表的邏輯位置。並且它的父加載器是A卯ClassLoader。 很多時候都是通過類加載器來控制JAVA虛擬機中的類加載行為。 JAVA虛擬機的類加載機制採用委託模型。所謂委託模型就是指當一個加載器 在加載某個類的時候先讓父加載器去加載,父加載器再讓其父加載器加載,依此類推,如果 所有的父加載器都不能加載,再由自己來加載,而如果此時自己也不能加載,則產生Java, lang. NoClassDefFoundError錯誤。委託模型最大的好處就是提高了 JAVA的安全性,比如 如果加載器的父加載器已經加載了某個類,那麼自己就不能再加載此類了,這樣就使得一 些與JAVA類庫中同名的類不能加載進來。 需要說明的是,業務系統實現新業務的更新工作之後,新接入用戶訪問的是新功 能,一直未退出的已接入用戶使用的仍然是舊功能。兩種用戶之間均可獲得相應的業務支 持,並互不影響,當已接入用戶執行的舊功能完成之後,下次接入時將全部執行新功能。當 該某業務的在線用戶全部退出後,舊功能所佔內存將由JAVA虛擬機自動進行回收。JAVA虛 擬機的這種垃圾回收機制可以如下表述 —個對象,可以有一個或多個引用變量指向它。當一個對象不再有任何一個引用變量指向它時,這個對象可以被JAVA虛擬機的垃圾回收機制回收了。 JAVA虛擬機的垃圾回 收機制對堆空間做實時檢測。當發現某對象可以被回收時,就將該對象列入待回收列表中。 在合適的時機內,JAVA虛擬機會對回收列表中的垃圾進行回收。 圖2為本發明實施例的業務系統中業務動態加載系統的結構示意圖,如圖2所示, 本發明實施例的業務系統中業務動態加載系統包括設置單元20、線程監控單元21、JAVA類 文件生成單元22、配置模板設置單元23、 JAVA類文件新增及更新單元24以及執行單元25, 其中,設置單元20用於在所述業務系統中設置新增及更新業務專用的文件夾。設置單元20 為本發明的系統設置指定文件夾,以存儲更新或新增業務功能的JAVA類文件。線程監控 單元21用於監控所述文件夾中設定的JAVA類文件新增及更新狀況。線程監控單元21用 於監控配置文件的改變及文件夾中所設定JAVA類文件的變換情況,在有更新JAVA類文件 加入到文件夾中時,通知JAVA類文件更新單元24。線程監控單元21實現的主要功能是在 系統啟動時啟動監控線程,該監控線程用於不斷的監控配置文件及配置文件中指定的文件 夾,以發現新增的及更新的JAVA類文件。其配置過程為在web. xml中配置一個servlet,隨 伺服器的啟動同時啟動,其配置結構如下
〈servlet> 線程監控單元21主要分為兩個模塊,一個為配置文件監控模塊30,一個為新增及 更新的JAVA類文件監控模塊32。配置文件監控模塊30主要負責監控配置文件的改變,配置 文件一旦有所變動系統便重新加載新的配置文件。新增及更新JAVA類文件監控模塊32主 要負責監控配置文件中指定的監控文件夾,一旦配置文件中描述的文件夾下面的JAVA類 文件有所增加,便通知JAVA類文件新增及更新單元24進行JAVA類文件的加載。JAVA類文 件生成單元22用於根據用戶需求確定所述業務系統的新增業務或/和更新業務,在所述業 務系統的開發環境下編譯所述新增業務或/和更新業務的應用,對所述新增業務或/和更 新業務的應用進行調試,調試成功後生成所述新增業務或/和更新業務相應JAVA類文件; 將所述新增業務或/和更新業務的應用的JAVA類文件存儲於所述業務新增及更新指定的 文件夾中。配置模板設置單元23用於參照配置模板編寫新增業務或/和更新業務的JAVA 類文件的配置指令完成配置文件的編寫,並用新編寫完成的配置文件直接覆蓋舊的配置文 件。 更新JAVA類文件的配置文件模板(卯datedes. xml)的實現如下



[O川]
〈servlet_name>StartDaemon〈/servlet_name> 〈servlet_class>
cn. edu. bupt. extend, monitor. StartDaemon



〈? xml version =,, 1. 0,, encoding = "UTF-8 〈update> 〈classdir>
〈imload>com. j皿.service. ChartService〈/imload> 〈reload>com. j皿.service. NewChartService〈/reload>
12
〈/classdir>
〈classdir> 〈unload>com. jun. service. RegisterService〈/unload> 〈reload>com. jun. service. NewRegisterService〈/reload> 〈/classdir>
〈classdir> 〈imload>com. j皿.service. lx>gonService〈/imload> 〈reload>com. j皿.service. NewLogonService〈/reload> 〈/classdir>
〈/update> 通過對完成更新映射的配置文件進行類名之間一對一的映射描述,被配置文件監 控模塊30檢測到改變以後加載到系統所在內存中並對配置文件進行解析,並提取出配置 文件中描述的一對一的映射關係交給JAVA類文件新增及更新模塊載入系統所在內存中, 待執行模塊執行程序時在系統所在內存中對關係映射表進行查詢。JAVA類文件新增及更新 單元24在所述線程監控單元21監控到所述文件夾中有設定種類的新的JAVA類文件導入 時,提取所述新的JAVA類文件,存儲到所述業務系統所在的內存中。對於JAVA類的業務系 統而言,更新到所述業務系統所在的內存中具體為查找具有設定名稱的類或所述類的接 口的二進位表示,構造供JAVA虛擬機的執行引擎引用和解釋執行的與所述類或類的接口 對應的內存結構。JAVA類文件新增及更新單元24實現方式為首先通過線程監控單元21 發現的最新監控新增文件的配置文件的描述,交給配置模板設置單元23獲取相應的路徑, 並交回線程監控單元21發現該路徑下面增加和更新的相應的JAVA類文件,使用JAVA虛擬 機中的動態類加載機制對新增及更新的JAVA類文件進行加載。JAVA語言具有一個重要特 性——動態類加載,它使JAVA程序可以在運行的過程中安裝程序組件。JAVA的動態加載 具有惰性加載、用戶自定義加載策略以及動態命名空間的特徵。動態加載是JAVA語言平臺 的一種非常重要的底層實現機制。在標準的實現中,JAVA編譯器為每個JAVA類生成一個 JAVA類文件,這種文件採用JAVA虛擬機定義的JAVA類文件格式保存,並由JAVA虛擬機加 載並解釋執行。在JAVA平臺中,所有類都是由類加載器加載的。類加載器的實現可參見前 述本發明方法中的相關描述,這裡不再贅述。JAVA類文件新增及更新單元24利用新增功能
的實現將新的業務文件加載至內存,並不斷讀取配置文件中的內容,將新舊文件的信息存 入一個hash表中,鍵為舊文件,值為新文件。用戶在開發程序的時候使用為其提供的代碼 進行類的初始化和方法的調用,每次初始化一個類時,便會在hash表中尋找鍵值對。如果 初始化的類有更新類,則初始化更新類;否則使用原有舊業務功能類。JAVA類文件新增及 更新單元24中包括有新增及更新文件註冊加載模塊33。執行單元25接收到用戶的業務請 求後,業務系統獲取系統的配置文件並自動進行解析,根據配置文件調用業務系統所在內 存中相應的JAVA類文件,在業務系統的執行環境下,JAVA類文件按其自身的邏輯被執行, 將JAVA類文件的執行結果提供至用戶,使用戶獲得業務支持;其中,被執行的JAVA類文件 包括新增業務或/和更新業務的JAVA類文件。執行單元25從配置模板設置單元23獲取 已載入內存的更新映射表,並從JAVA類文件新增及更新單元24中獲取已載入內存的相應 JAVA類文件,當系統接到用戶的請求後,如果請求訪問的是新增的業務邏輯,則直接訪問已經加載到內存的新增JAVA類文件,如果請求訪問的不是新增的業務邏輯,則執行單元25先 進入業務系統所在內存中的更新映射表進行查詢,如果更新映射表中不存在需要訪問類的 映射關係則直接執行該類的業務邏輯並將執行結果返回給用戶,如果更新映射表中存在需 要訪問的類的映射關係,則通過該映射關係執行更新後的JAVA類文件中的業務邏輯,並將 執行結果返回給用戶。在JAVA虛擬機規範中,加載和連接被定義為兩個相互遞歸的過程。 加載是指JAVA虛擬機根據指定的類名或接口名查找相應的JAVA類文件,並將JAVA類文件 裝載到運行環境中的過程。連接指JAVA虛擬機對JAVA類文件進行驗證和解析符號引用的 過程。JAVA虛擬機的動態加載是通過JAVA系統類Java. lang. ClassLoader及其子類實現 的。ClassLoader類是一個抽象類,其實例或其子類的實例被稱為類加載器。當指定了一個 類名後,類加載器會尋找相對應的JAVA類文件並將其加載到JAVA虛擬機環境中,同時為該 類創建一個對應的類對象。 一般情況下,JAVA虛擬機從本地文件系統中加載JAVA類文件, JAVA虛擬機也允許應用程式通過實現ClassLoader的子類從網絡加載JAVA類文件。執行 單元25可通過JAVA虛擬機的連接過程而實現,從而實現對JAVA類文件的解析執行,為用 戶提供新增或更新的業務,提供了相應的業務支持。執行單元25中還包括有配置文件解析 模塊31。 圖3為本發明實施例的業務系統中業務動態加載系統中各單元核心模塊邏輯結 構示意圖,如圖3所示,本發明實施例的業務系統中業務動態加載系統的核心模塊包括配 置文件監控模塊30、配置文件解析模塊31、新增及更新的JAVA類文件監控模塊32以及新 增及更新文件註冊加載模塊33,其中,業務動態加載系統包含四個包,每個包劃分為一個模 塊,各個包的成分包括 common包包含了其它模塊用到的公共類,比如常量數據聲明類、封裝插件類、業 務配置改變時的通知接口實現類等。 monitor包包含了與監控線程相關的類,比如監控線程類、監控器類等。 parse包包含了解析updatedes. xml文件用到的相關類,以及初始化及反射調用
某個對象的方法的相關類。 register包包含了與註冊相關的類,即如果能正常創建實例對象,則將該文件 封裝為插件類型。最後將該文件封裝成可用插件類型,更新已有文件集合。
以下詳細說明上述各模塊是如何實現的。 圖4為本發明實施例的業務系統中業務動態加載系統中配置文件監控模塊的 實現結構示意圖,如圖4所示,StartDaemon類為系統入口 ,觸發監視目錄程序的執行。 FileMonitor類負責不斷的檢測監視目錄是否發生改變,並喚醒對新增業務和更新業務的 發現和註冊的操作。Notifier類負責從監視目錄中獲取新增業務文件和更新業務文件,進 行合法性檢驗並將文件路徑轉換為類名,並調用註冊模塊。圖5為本發明實施例的業務系 統中業務動態加載系統中新增及更新的JAVA類文件監控模塊的實現結構示意圖,如圖5所 示,ClassOb jectlnterface接口負責力口載類的接口 ,由register包中ClassOb jectFactory 類實現。ConfigWr即per類負責讀取配置文件,從配置文件中獲取監控目錄。Records類負 責保存新增業務和更新業務的發現記錄。Plugln類負責保存新增業務和更新業務的相關信 息。AvailPlugln類負責保存合法的新增業務和更新業務的相關信息。FilePool類負責發 現新增業務和更新業務,並保存其文件信息和合法業務文件的信息,更新內存中新增業務和更新業務的列表。圖6為本發明實施例的業務系統中業務動態加載系統中新增及更新文 件註冊加載模塊的實現結構示意圖,如圖6所示,ClassObjectFactory類實現common包中 的Class0b jectlnterface接口 ,加載新增業務文件和更新業務文件。register類負責提取 內存中新增業務和更新業務,並調用ClassObjectFactory類對新增業務文件和更新業務 文件進行註冊加載。圖7為本發明實施例的業務系統中業務動態加載系統中配置文件解析 模塊的實現結構示意圖,如圖7所示,ClassSet類負責存儲被更新業務的列表和新舊業務 更新的映射表。ParseDescriptionlnterface接口負責獲取被更新業務的列表和新舊業務 更新的映射表的接口 。 ParseDescription類實現ParseDescriptionlnterface接口 ,負責 獲取被更新業務的列表和新舊業務更新的映射列表。ParseResult類負責解析更新業務功 能的配置文件,獲取新舊業務更新的配置信息,並將其信息存儲到ClassSet類中。Init類 提供為程式設計師開發使用的對象初始化的方法和方法調用的方法,程式設計師通過使用這些方法 對對象進行初始化和方法調用可通過配置文件實現新舊業務的自動切換。
本發明業務動態加載系統就是為了實現不影響用戶對現有業務的使用的前提下 對新業務進行動態的加載以及對升級更新業務進行實時替換的系統,其主要功能包括
實現系統集成業務動態加載系統包含一個入口供業務系統調用,能夠被任何業 務系統調用執行以使得該系統能夠正常運行在伺服器上,從而可以通過該系統發現新的業 務或發現更新過的業務。 向運行的業務系統中添加新的業務在原有業務平臺上添加新的業務,可以採用 插件的實現方法,發現的每個新業務都作為一個新的插件來使用,通過對插件的發現,合法 性檢查,註冊添加後,可以對新業務進行調用。 對插件的發現業務動態加載系統能夠檢測到指定的新業務所在目錄,對新業務 所在目錄中的所有JAVA類文件進行掃描,主動發現業務系統中新添加的業務,並提取出所 有JAVA類文件的文件名,將所有文件的文件名保存在一張列表裡,並輸出對新插件的發現 記錄。對新業務進行合法性檢查系統對列表中的新插件進行合法性檢查,檢查掃描列表中 的文件名是否為合法的JAVA類文件,如果不是則不進行加載操作,避免出現無法進行動態 加載的文件加入到列表中而在對新業務註冊添加時出現加載錯誤。 新業務註冊添加業務動態加載系統對通過合法性檢查的JAVA類文件進行註冊 添加,通過JAVA的反射機制及類加載機制,從列表中將所有的JAVA類文件名取出,並查找 到相應的文件目錄,啟動類加載器,對列表中的JAVA類文件逐一加載,並輸出對文件的注
冊信息。 在運行的業務系統中更新業務在原有業務平臺上更新業務,也可以採用插件的 實現方法,發現的每個經過更新的業務都作為一個新的插件來使用,通過對插件的發現,合 法性檢查,註冊添加後,通過與舊業務對比與舊業務進行切換,對舊業務反註冊,使新業務 上線,舊業務下線。 更新業務的插件發現業務動態加載系統能夠檢測到指定的存放更新業務所在的
目錄,對更新業務所在目錄中的所有JAVA類文件進行掃描,通過描述文件中配置的新舊業
務文件的映射主動發現更新後的文件,並提取出所有更新後的JAVA類文件的文件名,並將
所有更新後的文件的文件名保存在一張列表裡,並輸出對新插件的發現記錄。
對更新業務的合法性檢查系統對列表中的插件進行合法性檢查,掃描列表中的文件名是否為合法的JAVA類文件,如果不是則不進行加載操作,避免出現無法進行動態加 載的文件加入到列表中而在對新業務註冊添加時出現加載錯誤。 新舊業務的替換業務動態加載系統對通過合法性檢查的JAVA類文件進行註冊
添加,通過JAVA的反射機制及類加載機制,從列表中將所有的JAVA類文件名取出,並查找
到相應的文件目錄,啟動類加載器,對列表中的JAVA類文件逐一加載,並輸出對文件的注
冊信息,新業務註冊加載完畢後,若有新的訪問者訪問業務則直接轉入到更新後的業務中
執行,已經連接到舊業務的將舊業務執行完畢,直到舊業務已經無人使用時對舊業務進行
反註冊,即將舊業務廢除,使舊業務下線。上述所述JAVA的反射機制是JAVA被視為動態語
言的關鍵,它允許程序於執行期取得任何已知名稱的類的內部信息,包括包名、參數、超類、
執行接口、內部類、外部類、域名、構造器、方法及修飾符,並可於執行期生成實例、變更域的
內容或喚起方法。根據JAVA的反射機制可以在執行過程中決定某個對象所屬的類,取得類
的修飾符、域名、方法、構造器和超類的相關信息,找出接口中的約束和方法聲明,為一個執
行期才得知名稱的類產生對象,以及喚起執行期才能獲得的對象的方法。 本發明業務動態加載系統中,在新業務的註冊添加以及新舊業務的替換中都使用
到了 JAVA的反射機制,在新業務的註冊添加過程中通過JAVA的反射機制在加載過程中獲
取類的包名及其類名並將其存儲在業務系統所在的內存中,在新舊業務的替換中,系統通
過解析配置文件updates, xml,將該配置文件中被更新的類以及更新的類的類名映射關係
載入業務系統所在內存中,在新舊業務進行替換時從內存中取出映射關係中存儲的新業務
的類名並獲取該類名對應類的構造器,用獲取的構造器以及構造器中使用的參數及參數類
型動態地初始化類的對象,從而實現了在運行期中舊類和新類之間的切換,並通過在運行
期中獲取的類的對象及類中的方法名和方法中使用的參數及參數類型來動態調用某個對
象中的方法,從而實現了在運行期對某個對象中方法的動態調用,從而實現了業務之間的
切換,即新舊業務之間的替換。 本發明業務動態加載系統中,JAVA類文件生成單元22以及執行單元25是現有的 處理單元,其中,執行單元25是JAVA應用系統的基本功能單元;JAVA類文件生成單元22由 業務維護人員根據業務需要來生成,並不是本發明業務動態加載系統改進所涉及的。
以下簡單介紹本發明業務動態加載系統是如何被用戶使用的,具體是通過向用戶 提供接口來實現的,以支持用戶的業務動態加載。 系統為用戶提供了一個名為Init的類,該類有三個方法,分別為
1. public Object newObject (String classname); 2. public Object newObject (String classname, Object [] Obpara, Class [] Clpa:ra); 3.public Object InvokeMethod(String methodName, Object obj, Object[] Obpa:ra, Class [] Clpa:ra)。 第一個方法的作用是通過無參數的構造器初始化一個類對象,第二個方法的作用 是初始化一個帶參數構造器類的對象,第三個方法的作用是調用某個對象的類方法。系 統在啟動後會不斷的檢測解析updatedes. xml配置文件,並把進行過更新配置的所有舊 功能類保存在內存的一個列表unloadList裡,把所有新舊類的映射關係保存在內存的一 個映射表reLoadTable裡,在用戶通過前兩個方法來初始化一個對象時會首先去判斷在
16unloadList裡是否存在要初始化的類,如果unloadList裡沒有該類則直接對該類進行初 始化,如果unloadList裡存在該類,則從reLoadTable裡獲取對應該類的新類,並對新類進 行初始化。在使用上述的第三個方法進行方法調用時第二個參數Object obj會將初始化 的類對象傳遞進來,以確定是調用舊類的某個方法還是新類的某個方法。前兩個方法與第 三個方法搭配使用,實現了由舊業務向新業務之間的切換。 本發明的業務系統為JAVA支持的業務系統,所述業務包括各種Web服務業務、電 信服務業務、基於各種作業系統的服務業務等。 本發明的業務系統中業務動態加載系統是實現圖1所示方法的系統,其各單元的 功能及實現方式可參照圖1所示方法加以理解。本領域技術人員應當理解,圖2所示的各 單元可通過編寫程序而實現。 目前,對於用JAVA開發的已經上線運行的業務系統,如果對其增加新功能或者對 原有功能進行更新,必須停止伺服器的運行,並對新業務或更新業務進行重新編譯或發布, 這必然導致業務服務在一定時間內處於停滯狀態,從而影響用戶對系統的使用,並會造成 一部分經濟損失。本發明業務動態加載系統能夠在不停機的情況下動態的對新增功能進行 加載投入使用,動態的加載更新業務並進行舊業務向新業務的切換,將舊業務逐漸拋棄使 新業務投入使用,這個過程不會影響已經在使用舊業務的用戶,新來的用戶請求也可以直 接執行新的業務,該系統對於訪問業務系統的用戶來說是透明的,克服了對JAVA開發的業 務系統新增業務或更新業務時必須停機的缺陷。本發明向用戶提供業務支持的接口,用戶 可以根據自身業務的特點,自己設計新增業務或更新業務,所支持業務的靈活度相當大,並 提供標準的配置文件,大大方便了用戶新增及更新業務。 以上所述,僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。
權利要求
一種業務系統中業務動態加載方法,其特徵在於,在所述業務系統中指定新增及更新業務存放的文件夾,對配置新增JAVA類文件及更新JAVA類文件的配置文件進行初始化配置,並設置監控所述文件夾中設定的JAVA類文件更新狀況的線程;根據用戶需求確定所述業務系統的新增業務或/和更新業務,在所述業務系統的開發環境下編譯所述新增業務或/和更新業務的應用,對所述新增業務或/和更新業務的應用進行調試,調試成功後將所述新增業務或/和更新業務的應用對應的JAVA源文件生成JAVA類文件;所述方法包括以下步驟A、將所述新增業務或/和更新業務的應用的JAVA類文件存儲於所述業務新增及更新指定的文件夾中,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置指令,從而實現配置文件的編寫,並用新編寫完成的配置文件直接覆蓋舊的配置文件;所述配置文件分為兩個,一個是監控新增文件的配置文件,一個是完成更新映射的配置文件;B、所述線程監控文件夾中設定種類的JAVA類文件的實時新增和更新狀況,在有新的JAVA類文件導入時,提取新的JAVA類文件,存儲到業務系統所在的內存中;C、接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行解析,根據所述配置文件調用業務系統所在的內存中相應的JAVA類文件,在業務系統的執行環境下,JAVA類文件按其自身的邏輯被執行,將JAVA類文件的執行結果提供至用戶,使用戶獲得業務支持;其中,被執行的JAVA類文件包括新增業務或/和更新業務的JAVA類文件。
2. 根據權利要求1所述的方法,其特徵在於,所述步驟B中提取所述新的JAVA類文件 存儲到所述業務系統所在的內存中,具體為通過解析監控新增文件的配置文件中配置的 路徑名自動發現該路徑下的新增JAVA類文件,並通過類加載器將其加載到業務系統所在 的內存中。
3. 根據權利要求1所述的方法,其特徵在於,所述設置所述JAVA類文件新增到所述 業務系統中的配置模板,具體為根據所述JAVA類文件的路徑、存儲地址的信息建立所述 JAVA類文件發現的模板,將新增JAVA類文件所在的路徑或存儲地址信息替換所述模板中 的路徑、存儲地址信息,即編寫所述新增JAVA類文件的配置文件;設置所述JAVA類文件替 換所述業務系統中原JAVA類文件的配置模板,具體為根據所述JAVA類文件的名稱、存儲 地址的信息建立欲更新的JAVA類文件的調用及阻止待替換的JAVA類文件調用的應用的模 板,將更新JAVA類文件及待更新JAVA類文件的名稱或存儲地址分別替換所述應用的模板 中的更新JAVA類文件及待更新JAVA類文件的名稱、存儲地址,即編寫所述更新JAVA類文 件的配置文件。
4. 根據權利要求l所述的方法,其特徵在於,所述步驟A中用新編寫完成的配置文件直 接覆蓋舊的配置文件,具體為將編寫好的已測試成功的配置文件覆蓋掉原先的配置文件, 以避免直接進行配置而導致配置中出現異常。
5. 根據權利要求l所述的方法,其特徵在於,所述業務系統為JAVA支持的業務系統,所 述業務包括各種Web服務業務、電信服務業務、基於各種作業系統的服務業務。
6. 根據權利要求5所述的方法,其特徵在於,所述步驟B中提取所述新的JAVA類文件 存儲到所述業務系統所在的內存中,具體為查找具有設定名稱的類或所述類的接口的二 進位表示,構造供JAVA虛擬機的執行引擎引用和解釋執行的與所述類或類的接口對應的內存結構。
7. —種業務系統中業務動態加載系統,其特徵在於,包括 設置單元,用於在所述業務系統中設置新增及更新業務指定的文件夾; 線程監控單元,用於監控配置文件的改變及所述文件夾中JAVA類文件的新增和更新狀況;JAVA類文件生成單元,用於根據用戶需求確定所述業務系統的新增業務或/和更新業 務,在所述業務系統的開發環境下編譯所述新增業務或/和更新業務的應用,對所述新增 業務或/和更新業務的應用進行調試,調試成功後生成所述新增業務或/和更新業務相應 JAVA類文件;將所述新增業務或/和更新業務的應用的JAVA類文件存儲於所述業務新增 及更新指定的文件夾中;配置模板設置單元,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置 指令完成配置文件的編寫,並用新編寫完成的配置文件直接覆蓋舊的配置文件;JAVA類文件新增及更新單元,在所述線程監控單元監控到所述文件夾中有設定種類的 新的JAVA類文件導入時,提取所述新的JAVA類文件,存儲到所述業務系統所在的內存中;執行單元,接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行解析, 根據配置文件調用業務系統所在的內存中相應的JAVA類文件,在業務系統的執行環境下, JAVA類文件按其自身的邏輯被執行,將JAVA類文件的執行結果提供至用戶,使用戶獲得業 務支持;其中,被執行的JAVA類文件包括新增業務或/和更新業務的JAVA類文件。
8. 根據權利要求7所述的系統,其特徵在於,所述業務系統為JAVA支持的業務系統,所 述業務包括各種Web服務業務、電信服務業務、基於各種作業系統的服務業務。
全文摘要
本發明公開了一種業務系統中業務動態加載的方法,包括A將新增業務或/和更新業務的應用的JAVA類文件存儲於業務新增及更新指定的文件夾中,參照配置模板編寫新增業務或/和更新業務的JAVA類文件的配置文件,並用新編寫完成的配置文件直接覆蓋舊的配置文件;B線程監控文件夾中設定種類的JAVA類文件的實時新增和更新狀況,在有新的JAVA類文件導入時,提取新的JAVA類文件,存儲到業務系統所在的內存中;C接收到用戶的業務請求後,業務系統獲取系統的配置文件並自動進行解析,根據配置文件調用業務系統所在的內存中相應的JAVA類文件,JAVA類文件按其自身的邏輯被執行,將執行結果提供至用戶,使用戶獲得業務支持。本發明同時公開了一種實現上述方法的系統。本發明實現了業務的動態加載。
文檔編號H04M3/42GK101771762SQ20091007621
公開日2010年7月7日 申請日期2009年1月6日 優先權日2009年1月6日
發明者劉俊, 孟祥武, 張玉潔, 張立達 申請人:北京郵電大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀