两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

構(gòu)件化軟件系統(tǒng)在線增加新功能的方法

文檔序號(hào):6378444閱讀:444來源:國(guó)知局
專利名稱:構(gòu)件化軟件系統(tǒng)在線增加新功能的方法
技術(shù)領(lǐng)域
本發(fā)明適用于軟件的維護(hù)與演化,屬于軟件技術(shù)領(lǐng)域。
背景技術(shù)
軟件正在從以產(chǎn)品為核心向以服務(wù)為核心進(jìn)行轉(zhuǎn)化(Software As Service)。為了更好地為最終用戶提供支持,軟件服務(wù)系統(tǒng)(例如Web Service)需要在保持現(xiàn)有功能的前提下,不斷增加新功能,以保持老用戶、吸引新用戶,從而在競(jìng)爭(zhēng)中保持有利的局面。目前的軟件服務(wù)系統(tǒng)增加新功能一般采用的方法是,對(duì)用戶的訪問量進(jìn)行周期性分析,然后選取用戶訪問量最低的時(shí)間進(jìn)行離線演化,例如在晚上進(jìn)行等等,待演化結(jié)束后重新啟動(dòng)軟件服務(wù)系統(tǒng)。但是,隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,軟件服務(wù)系統(tǒng)的全球化過程十分迅速,周期性訪問量的最低值將不斷上升,因此在保持系統(tǒng)持續(xù)的前提下增加系統(tǒng)的功能變得逐步重要起來。
另外,考慮到系統(tǒng)一旦提供某種服務(wù)供客戶訪問后,不能輕易將服務(wù)內(nèi)容減少,或者改變服務(wù)接口方法的調(diào)用方式,因此,本發(fā)明僅考慮增加服務(wù)功能的情形,不考慮其它形式的接口演化。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種構(gòu)件化軟件系統(tǒng)的功能在線增加方法接口在線演化方法,使得軟件服務(wù)系統(tǒng)具有在線增加新功能的目的。
構(gòu)件化軟件系統(tǒng)在線增加新功能可以采用兩種方案其一,通過增加新構(gòu)件的途徑增加新功能。該方案的主要方式是向軟件系統(tǒng)部署新構(gòu)件實(shí)現(xiàn)體。具體的加載方法與系統(tǒng)啟動(dòng)過程中加載構(gòu)件的方法完全相同,構(gòu)件引用的注冊(cè)方法也相同。
其二,通過在現(xiàn)有構(gòu)件接口中增加新方法的途徑增加新功能。
如果需要增加的功能與現(xiàn)有的功能在邏輯上耦合度不是很大,則采用第一種方案比較合適;如果需要增加的功能與軟件系統(tǒng)現(xiàn)有功能中的某一個(gè)功能密切相關(guān),則采用第二種方案比較合適。
本發(fā)明涉及第二種方案。
本發(fā)明的技術(shù)方案如下構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,包括以下步驟(1)開發(fā)支持新功能的新構(gòu)件。
(2)在線演化現(xiàn)有構(gòu)件的實(shí)現(xiàn)體,向軟件系統(tǒng)加載新構(gòu)件的實(shí)現(xiàn)體;然后,與部署新構(gòu)件的過程類似,在構(gòu)件容器中的消息與具體實(shí)現(xiàn)函數(shù)之間的映射表中增加代表新功能的消息與新構(gòu)件實(shí)現(xiàn)體中新具體方法之間的關(guān)聯(lián)。具體的演化方法,可以參照中國(guó)專利“構(gòu)件化軟件的在線演化方法”(專利號(hào)ZL01136385.1)。
(3)為新的構(gòu)件接口生成骨架程序并加載到系統(tǒng)中,替換老的骨架程序,用于接收來自客戶的各種請(qǐng)求消息。
(4)更新與運(yùn)行時(shí)刻軟件系統(tǒng)對(duì)應(yīng)的文件形態(tài)的軟件系統(tǒng),使軟件系統(tǒng)中包含新的構(gòu)件。
所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,步驟(1)中開發(fā)新構(gòu)件的方法包括以下步驟(1)根據(jù)現(xiàn)有系統(tǒng)中各個(gè)功能與構(gòu)件的對(duì)應(yīng)關(guān)系,對(duì)需要增加的新功能進(jìn)行分析,確定一個(gè)對(duì)應(yīng)功能與新功能耦合度最大的現(xiàn)有構(gòu)件為基礎(chǔ)構(gòu)件,由基礎(chǔ)構(gòu)件對(duì)新功能進(jìn)行支持。
(2)確定新的構(gòu)件接口,即確定在接口目前的方法集合中,增加哪些新的方法;然后根據(jù)新的構(gòu)件接口,重新開發(fā)該基礎(chǔ)構(gòu)件,在構(gòu)件代碼中增加必要的新方法以提供對(duì)新功能的支持,形成新構(gòu)件。
所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,如果新功能的增加影響的不僅是被演化的構(gòu)件,還調(diào)用了現(xiàn)有系統(tǒng)中的其他構(gòu)件或者資源,所述步驟(2)和(3)之間增加步驟建立新構(gòu)件與其他現(xiàn)有構(gòu)件、新構(gòu)件與系統(tǒng)其他部分之間的新關(guān)聯(lián)。
所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,如果現(xiàn)有系統(tǒng)中各構(gòu)件的接口已經(jīng)發(fā)布到查找服務(wù)器上,所述步驟(3)和(4)之間增加步驟根據(jù)對(duì)新構(gòu)件的接口描述更新查找服務(wù)器上被演化的基礎(chǔ)構(gòu)件的接口描述,以便于新客戶可以獲得新的構(gòu)件接口。
本發(fā)明的優(yōu)點(diǎn)和積極效果采用本發(fā)明的方法,可以使軟件服務(wù)系統(tǒng)的維護(hù)人員方便地在保持系統(tǒng)運(yùn)行的前提下為系統(tǒng)增加新的功能。此外,本發(fā)明與申請(qǐng)者已獲授權(quán)的另一專利——“構(gòu)件化軟件的在線演化方法”(專利號(hào)01136385.1)密切相關(guān)。在“構(gòu)件化軟件的在線演化方法”中,系統(tǒng)的功能、構(gòu)件的接口等在系統(tǒng)演化過程中是不變的,變化的是實(shí)現(xiàn)構(gòu)件功能的具體對(duì)象。而在本發(fā)明中,由于系統(tǒng)的功能需要增加,因此,從系統(tǒng)總體角度看,可能需要增加新的接口,或者增加現(xiàn)有接口中的方法。兩個(gè)發(fā)明所采用的低層技術(shù)也有很強(qiáng)的關(guān)聯(lián)。
具體實(shí)施例方式本節(jié)給出一個(gè)基于J2EE應(yīng)用服務(wù)器的實(shí)施方式,

圖1給出了示意圖。應(yīng)用服務(wù)器是網(wǎng)絡(luò)環(huán)境中應(yīng)用程序的高層運(yùn)行平臺(tái),使得應(yīng)用系統(tǒng)的代碼更為簡(jiǎn)潔、開發(fā)更為方便。應(yīng)用服務(wù)器被認(rèn)為是繼操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)之后,隨著計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境的發(fā)展而出現(xiàn)的里程碑式的系統(tǒng)軟件。在基于J2EE的應(yīng)用服務(wù)器中,所有的業(yè)務(wù)構(gòu)件由構(gòu)件容器進(jìn)行管理與支持。
在J2EE應(yīng)用服務(wù)器中,構(gòu)件為EJB(Enterprise JavaBean)構(gòu)件,EJB構(gòu)件狀態(tài)由構(gòu)件容器(Container)進(jìn)行管理,其接口符合EJB規(guī)范。在運(yùn)行過程中,每一個(gè)構(gòu)件都有與其相對(duì)應(yīng)的構(gòu)件容器,專門用于對(duì)該構(gòu)件的管理,構(gòu)件容器中包含關(guān)于構(gòu)件的各種信息,例如構(gòu)件標(biāo)識(shí)、構(gòu)件類型、構(gòu)件狀態(tài)、構(gòu)件安全控制、所需要的構(gòu)件、通信機(jī)制等等。
完成構(gòu)件重載需要定義新的加載類。JAVA平臺(tái)中包含一個(gè)類java.lang.ClassLoader,新定義的加載來類可以通過利用Java的重載機(jī)制,重載java.lang.ClassLoader中的loadClass方法,以解決直接利用java.lang.ClassLoader加載類時(shí)可能遇到的沖突問題,以實(shí)現(xiàn)構(gòu)件的重載。接口的實(shí)現(xiàn)符合EJB規(guī)范,構(gòu)件的實(shí)現(xiàn)也符合EJB規(guī)范。
具體實(shí)施過程為(1)根據(jù)現(xiàn)有系統(tǒng)中各個(gè)功能與構(gòu)件的對(duì)應(yīng)關(guān)系,對(duì)需要增加的新功能進(jìn)行分析,例如,新功能與哪個(gè)功能耦合度最大?最終確定出由哪個(gè)現(xiàn)有構(gòu)件進(jìn)行支持最合適。
(2)確定新的構(gòu)件接口,即確定在接口目前的方法集合中,增加哪些新的方法。然后根據(jù)新的構(gòu)件接口,重新開發(fā)該構(gòu)件,主要是在構(gòu)件代碼中增加必要的新方法,以提供對(duì)新功能的支持。
(3)利用中國(guó)專利“構(gòu)件化軟件的在線演化方法”(專利號(hào)01136385.1)中的方法,在保持系統(tǒng)運(yùn)行的前提下,演化構(gòu)件實(shí)現(xiàn)體,向軟件系統(tǒng)加載新構(gòu)件實(shí)現(xiàn)體。如圖1所示,容器中包含一個(gè)請(qǐng)求方法(消息)與具體實(shí)現(xiàn)函數(shù)之間的映射表,為使客戶的請(qǐng)求消息發(fā)送給正確的函數(shù),需要在該表中增加代表新功能的消息與新實(shí)現(xiàn)體中新具體方法之間的關(guān)聯(lián)。
(4)同時(shí),如果新功能的增加影響的不僅是被演化的構(gòu)件,還調(diào)用了現(xiàn)有系統(tǒng)中的其他構(gòu)件或者資源,則需要建立該構(gòu)件與其他現(xiàn)有構(gòu)件、該構(gòu)件與系統(tǒng)其他部分之間(例如數(shù)據(jù)庫(kù)、消息服務(wù)等等)的新關(guān)聯(lián)。
(5)為新的構(gòu)件接口生成骨架程序(Skeleton)。同樣,通過java.lang.ClassLoader,將其加載到系統(tǒng)中,替換老的骨架程序,用于接收來自客戶的各種請(qǐng)求消息。
(6)如果各構(gòu)件的接口已經(jīng)發(fā)布到查找服務(wù)器上,則更新查找服務(wù)器上被演化構(gòu)件的接口描述,以便于新客戶可以獲得新的構(gòu)件接口??蛻舾鶕?jù)新接口生成對(duì)應(yīng)的指代(Stub),該指代是構(gòu)件在客戶進(jìn)程內(nèi)的代理,客戶程序向指代發(fā)出請(qǐng)求,即可以訪問提供服務(wù)的軟件系統(tǒng)提供的新方法。
(7)更新與運(yùn)行時(shí)刻軟件系統(tǒng)對(duì)應(yīng)的文件形態(tài)的軟件系統(tǒng),使軟件系統(tǒng)中包含新的構(gòu)件,以便于下次重新啟動(dòng)軟件系統(tǒng)時(shí),包含新的功能。
權(quán)利要求
1.構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,包括以下步驟(1)開發(fā)支持新功能的新構(gòu)件;(2)在線演化現(xiàn)有構(gòu)件的構(gòu)件實(shí)現(xiàn)體,向軟件系統(tǒng)加載新構(gòu)件的實(shí)現(xiàn)體;然后,在構(gòu)件容器中的消息與具體實(shí)現(xiàn)函數(shù)之間的映射表中增加代表新功能的消息與新構(gòu)件實(shí)現(xiàn)體中新具體方法之間的關(guān)聯(lián);(3)為新的構(gòu)件接口生成骨架程序并加載到系統(tǒng)中,替換老的骨架程序;(4)更新與運(yùn)行時(shí)刻軟件系統(tǒng)對(duì)應(yīng)的文件形態(tài)的軟件系統(tǒng),使軟件系統(tǒng)中包含新的構(gòu)件。
2.如權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,其特征在于,所述步驟(1)中開發(fā)新構(gòu)件的方法包括以下步驟(1)根據(jù)現(xiàn)有系統(tǒng)中各個(gè)功能與構(gòu)件的對(duì)應(yīng)關(guān)系,對(duì)需要增加的新功能進(jìn)行分析,確定一個(gè)對(duì)應(yīng)功能與新功能耦合度最大的現(xiàn)有構(gòu)件為基礎(chǔ)構(gòu)件,由基礎(chǔ)構(gòu)件對(duì)新功能進(jìn)行支持;(2)確定新的構(gòu)件接口,即確定在接口目前的方法集合中,增加哪些新的方法;然后根據(jù)新的構(gòu)件接口,重新開發(fā)該基礎(chǔ)構(gòu)件,在構(gòu)件代碼中增加必要的新方法以提供對(duì)新功能的支持,形成新構(gòu)件。
3.如權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,其特征在于,新功能的增加還調(diào)用了現(xiàn)有系統(tǒng)中的其他構(gòu)件或者資源,所述步驟(2)和(3)之間增加步驟建立新構(gòu)件與其他現(xiàn)有構(gòu)件、新構(gòu)件與系統(tǒng)其他部分之間的新關(guān)聯(lián)。
4.如權(quán)利要求1所述的構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,其特征在于,現(xiàn)有系統(tǒng)中各構(gòu)件的接口已經(jīng)發(fā)布到查找服務(wù)器上,所述步驟(3)和(4)之間增加步驟根據(jù)對(duì)新構(gòu)件的接口描述更新查找服務(wù)器上被演化的基礎(chǔ)構(gòu)件的接口描述。
全文摘要
本發(fā)明公開了一種構(gòu)件化軟件系統(tǒng)在線增加新功能的方法,屬于軟件技術(shù)領(lǐng)域。該方法包括以下步驟(1)開發(fā)支持新功能的新構(gòu)件;(2)在線演化現(xiàn)有構(gòu)件的實(shí)現(xiàn)體,向軟件系統(tǒng)加載新構(gòu)件的實(shí)現(xiàn)體;然后在構(gòu)件容器中的消息與具體實(shí)現(xiàn)函數(shù)之間的映射表中增加代表新功能的消息與新構(gòu)件實(shí)現(xiàn)體中新具體方法之間的關(guān)聯(lián);(3)為新的構(gòu)件接口生成骨架程序并加載到系統(tǒng)中,替換老的骨架程序;(4)更新與運(yùn)行時(shí)刻軟件系統(tǒng)對(duì)應(yīng)的文件形態(tài)的軟件系統(tǒng),使軟件系統(tǒng)中包含新的構(gòu)件。采用本發(fā)明的方法,可以使軟件服務(wù)系統(tǒng)的維護(hù)人員方便地在保持系統(tǒng)運(yùn)行的前提下為系統(tǒng)增加新的功能。
文檔編號(hào)G06F9/445GK1641574SQ20041000077
公開日2005年7月20日 申請(qǐng)日期2004年1月18日 優(yōu)先權(quán)日2004年1月18日
發(fā)明者王千祥, 王曉鵬, 梅宏, 楊芙清 申請(qǐng)人:北京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
扶风县| 牙克石市| 彰化市| 红桥区| 衡东县| 九江县| 南召县| 龙口市| 尚义县| 全州县| 吴江市| 泾川县| 白山市| 武功县| 定陶县| 苗栗市| 云霄县| 大庆市| 华阴市| 区。| 安乡县| 乌兰浩特市| 沛县| 大英县| 巩留县| 新闻| 罗定市| 凤冈县| 阿城市| 吉首市| 瑞昌市| 麻阳| 巴中市| 锡林浩特市| 南靖县| 辉南县| 五华县| 苍山县| 台前县| 衡山县| 都兰县|