專(zhuān)利名稱(chēng):基于情境感知的網(wǎng)構(gòu)軟件演化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種軟件維護(hù)技術(shù)領(lǐng)域的方法,具體是一種基于情境感知的網(wǎng)構(gòu) 軟件演化方法。
背景技術(shù):
在互聯(lián)網(wǎng)已成為主要的軟件運(yùn)行平臺(tái)的情況下,利用互聯(lián)網(wǎng)上多個(gè)自治的軟件實(shí) 體進(jìn)行按需聚合以實(shí)現(xiàn)應(yīng)用目標(biāo),已成為一個(gè)新的應(yīng)用系統(tǒng)構(gòu)造模式。網(wǎng)構(gòu)軟件的概念就 是在這個(gè)背景下,由北京大學(xué)、南京大學(xué)等研究機(jī)構(gòu)的學(xué)者提出的,目標(biāo)是形成一種支持柔 性可演化、連續(xù)反應(yīng)式和適應(yīng)多目標(biāo)的軟件構(gòu)造和運(yùn)行維護(hù)的新形態(tài)。由于開(kāi)放互聯(lián)網(wǎng)環(huán)境下自治軟件實(shí)體的運(yùn)行質(zhì)量不可控,使得跟蹤實(shí)體運(yùn)行的情 境變化并據(jù)此驅(qū)動(dòng)軟件實(shí)體聚合關(guān)系的演化,以提高最終應(yīng)用的服務(wù)質(zhì)量變得十分迫切。 因此,如何獲取和傳播服務(wù)提供者的運(yùn)行時(shí)情境,如何基于情境的變化和服務(wù)請(qǐng)求者的需 求,確定用于演化的軟件實(shí)體和策略,并將這些信息反饋給服務(wù)的請(qǐng)求者,都是必須解決的 問(wèn)題。經(jīng)過(guò)對(duì)現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國(guó)專(zhuān)利申請(qǐng)?zhí)?1136385. 1,記載了一種構(gòu)件化軟 件的在線(xiàn)演化方法。通過(guò)引入構(gòu)件的同步狀態(tài)、截流狀態(tài)和緩沖狀態(tài)建立起構(gòu)件的細(xì)粒度 管理機(jī)制,利用構(gòu)造新加載程序的方法,并借助于構(gòu)件接口來(lái)進(jìn)行構(gòu)件重載,以實(shí)現(xiàn)在運(yùn)行 過(guò)程中進(jìn)行構(gòu)件的替換、增加和刪除等操作。進(jìn)一步檢索發(fā)現(xiàn),中國(guó)專(zhuān)利申請(qǐng)?zhí)?004100481 . 1,記載了一種構(gòu)件化軟件中非 功能特征組裝方法,采用基于側(cè)面的方法建立軟件的體系結(jié)構(gòu),實(shí)現(xiàn)與構(gòu)件相獨(dú)立的、提供 非功能特征的側(cè)面,在建模階段建立側(cè)面和構(gòu)件之間的關(guān)聯(lián)描述,自動(dòng)生成包括構(gòu)件實(shí)現(xiàn) 與側(cè)面實(shí)現(xiàn)的可運(yùn)行代碼以及相應(yīng)的部署描述符的軟件包,并在運(yùn)行階段根據(jù)體系結(jié)構(gòu)規(guī) 約建立和調(diào)整構(gòu)件實(shí)例和側(cè)面實(shí)例之間的關(guān)聯(lián)。進(jìn)一步檢索發(fā)現(xiàn),中國(guó)專(zhuān)利申請(qǐng)?zhí)?00810207687. 0,記載了一種基于體系結(jié)構(gòu)的 軟件產(chǎn)品線(xiàn)演化方法。以統(tǒng)一的軟件產(chǎn)品線(xiàn)體系結(jié)構(gòu)與構(gòu)件版本模型為基礎(chǔ),在體系結(jié)構(gòu) 和構(gòu)件兩個(gè)層面上實(shí)現(xiàn)統(tǒng)一、協(xié)調(diào)的產(chǎn)品線(xiàn)演化支持。上述的方法主要關(guān)注軟件實(shí)體的組裝與集成方法,以及在演化策略和對(duì)象明確條 件下實(shí)現(xiàn)在線(xiàn)重構(gòu)的組裝方法。沒(méi)有涉及軟件實(shí)體運(yùn)行時(shí)情境的獲取和傳播,沒(méi)有涉及在 情境發(fā)生變化時(shí)如何確定備用的軟件實(shí)體并告知服務(wù)請(qǐng)求者的方法。而在一個(gè)開(kāi)放的環(huán)境 下軟件實(shí)體的實(shí)現(xiàn)技術(shù)和交互協(xié)議的選擇權(quán)在用戶(hù)手上,支撐系統(tǒng)根據(jù)這些信息確定服務(wù) 提供者以完成應(yīng)用聚合。然后只有在有能力監(jiān)控服務(wù)提供者的情境變化,并將這一變化傳 播到服務(wù)請(qǐng)求者一端,由支撐系統(tǒng)進(jìn)一步確定用于演化的實(shí)體對(duì)象和策略后,上述的在線(xiàn) 組裝和重構(gòu)的方法才能發(fā)揮作用。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的上述不足,提供一種基于情境感知的網(wǎng)構(gòu)軟件演化方法,在服務(wù)的初始聚合關(guān)系確定的情況下,解決了互聯(lián)網(wǎng)環(huán)境中服務(wù)提供者運(yùn)行時(shí)情境的 獲取和傳播,以及根據(jù)情境變化確定備用服務(wù)實(shí)體并告知服務(wù)請(qǐng)求者的相關(guān)問(wèn)題,以支持 面向網(wǎng)構(gòu)軟件的應(yīng)用系統(tǒng)動(dòng)態(tài)演化。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明包括以下步驟步驟一、構(gòu)造互聯(lián)網(wǎng)環(huán)境下服務(wù)的運(yùn)行時(shí)情境;步驟二、根據(jù)服務(wù)的聚合關(guān)系確定情境變化的生產(chǎn)者和消費(fèi)者,并完成對(duì)所關(guān)注 之情境變化的訂閱;步驟三、捕獲運(yùn)行時(shí)情境的變化,并根據(jù)上述的生產(chǎn)者/消費(fèi)者關(guān)系完成情境變 化的發(fā)布;步驟四、根據(jù)服務(wù)請(qǐng)求者明確的演化策略實(shí)施相應(yīng)的動(dòng)作,當(dāng)需要更新使用的服 務(wù)實(shí)體時(shí),通過(guò)預(yù)定義的回調(diào)接口將選擇的結(jié)果告知給服務(wù)請(qǐng)求者;步驟五、當(dāng)備用的服務(wù)實(shí)體被選擇和通告后,服務(wù)請(qǐng)求者自主地進(jìn)行調(diào)用關(guān)系的 重定向,以完成面向網(wǎng)構(gòu)軟件的動(dòng)態(tài)重組與演化。所述的服務(wù)運(yùn)行時(shí)情境包括服務(wù)的生命周期中的服務(wù)實(shí)體運(yùn)行狀態(tài)的轉(zhuǎn)變、服 務(wù)實(shí)體運(yùn)行平臺(tái)的負(fù)載變化以及網(wǎng)絡(luò)連接狀態(tài)的變化。所述的聚合關(guān)系是指開(kāi)放環(huán)境下服務(wù)實(shí)體間的調(diào)用與被調(diào)用的關(guān)系。所述的情境變化的生產(chǎn)者是指提供服務(wù)的軟件實(shí)體,消費(fèi)者是指請(qǐng)求服務(wù)的軟件 實(shí)體。所述的演化策略是指在獲得被發(fā)布的情境變化后服務(wù)請(qǐng)求者一端的支撐系統(tǒng)可 以遵照實(shí)施的規(guī)則。所述的動(dòng)作包括改變服務(wù)質(zhì)量等級(jí)、設(shè)置服務(wù)狀態(tài)、啟動(dòng)重新搜索、獲取本地緩 存的備選服務(wù)引用、告知某情境的當(dāng)前值。所述的回調(diào)接口是指用于通知服務(wù)請(qǐng)求者關(guān)鍵情境的變化或者備選服務(wù)實(shí)體的 引用的接口。所述的調(diào)用關(guān)系的重定向是指當(dāng)產(chǎn)生了新的服務(wù)實(shí)體并進(jìn)行了通告之后,服務(wù) 請(qǐng)求者將應(yīng)用邏輯中對(duì)原有服務(wù)提供者的調(diào)用改變?yōu)閷?duì)備選服務(wù)實(shí)體的調(diào)用。本發(fā)明提供的技術(shù)方案建立了互聯(lián)網(wǎng)環(huán)境下服務(wù)運(yùn)行時(shí)情境的構(gòu)造方法,建立了 服務(wù)請(qǐng)求者和提供者之間的基于情境的生產(chǎn)與消費(fèi)關(guān)系,建立了情境信息的訂閱與發(fā)布機(jī) 制,建立了基于策略的演化機(jī)制,解決了互聯(lián)網(wǎng)環(huán)境下服務(wù)情境的獲取和傳播問(wèn)題,實(shí)現(xiàn)了 面向網(wǎng)構(gòu)軟件的應(yīng)用聚合關(guān)系的動(dòng)態(tài)演化。本發(fā)明便于互聯(lián)網(wǎng)資源的共享和復(fù)用,支持在 線(xiàn)調(diào)整服務(wù)實(shí)體間的聚合關(guān)系,也有利于整體應(yīng)用服務(wù)質(zhì)量的提高。
圖1是本發(fā)明實(shí)施例1的方法示意圖。圖2是本發(fā)明實(shí)施例2的工作原理示意圖。
具體實(shí)施例方式下面對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行 實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。實(shí)施例1如圖1所示,圖中①分析互聯(lián)網(wǎng)服務(wù)實(shí)體的生命周期和所處的環(huán)境,給出其運(yùn)行時(shí)情境規(guī)范。②在服務(wù)實(shí)體注冊(cè)時(shí)生成其本地的情境庫(kù)實(shí)例。③根據(jù)服務(wù)實(shí)體間的初始聚合關(guān)系確立情境變化的生產(chǎn)者與消費(fèi)者,完成對(duì)所關(guān) 心情境的訂閱。④當(dāng)被訂閱的情境發(fā)生變化時(shí),向訂閱者定向發(fā)布該情境變化。⑤根據(jù)預(yù)設(shè)的演化策略實(shí)施相應(yīng)的演化動(dòng)作。⑥將演化的結(jié)果通過(guò)回調(diào)接口告知服務(wù)請(qǐng)求者實(shí)體。⑦服務(wù)請(qǐng)求者更新服務(wù)提供者的引用,完成服務(wù)調(diào)用的重定向。實(shí)施例2如圖2所示,本實(shí)施例中包括三種不同角色的服務(wù)實(shí)體及其支撐平臺(tái),分別是服 務(wù)提供者、服務(wù)請(qǐng)求者和備用服務(wù)提供者,他們通過(guò)互聯(lián)網(wǎng)相連接。服務(wù)實(shí)體間通過(guò)其自身 實(shí)現(xiàn)的互操作協(xié)議實(shí)施自主交互。支撐平臺(tái)提供對(duì)基于情境的實(shí)體間聚合關(guān)系演化的支 持,通過(guò)ffeb Service方式向服務(wù)實(shí)體提供調(diào)用接口。服務(wù)實(shí)體根據(jù)預(yù)設(shè)的定義按照自身 的交互協(xié)議實(shí)現(xiàn)回調(diào)接口,支撐平臺(tái)為此提供多協(xié)議支持。所述的支撐平臺(tái)包括情境管理組件、服務(wù)注冊(cè)組件、服務(wù)選擇組件、規(guī)則生成組 件、動(dòng)態(tài)演化組件。其中服務(wù)注冊(cè)組件與情境管理組件相連接以生成服務(wù)實(shí)體的本體情境 庫(kù)實(shí)例,服務(wù)選擇組件與情境管理組件相連接以完成分布式的服務(wù)發(fā)現(xiàn)和服務(wù)運(yùn)行情境的 訂閱,動(dòng)態(tài)演化組件與情境管理組件相連接以獲取訂閱之情境的變化,動(dòng)態(tài)演化組件與服 務(wù)選擇組件相連接以啟動(dòng)可能的備用服務(wù)發(fā)現(xiàn),規(guī)則生成組件生成的演化規(guī)則集被動(dòng)態(tài)演 化組件所使用。所述的情境管理組件負(fù)責(zé)生成和管理本地服務(wù)實(shí)體的運(yùn)行時(shí)情境庫(kù),并提供服務(wù) 實(shí)體狀態(tài)的管理接口。同時(shí)服務(wù)請(qǐng)求者一端的情境管理組件負(fù)責(zé)訂閱和接收遠(yuǎn)程服務(wù)提供 者實(shí)體的運(yùn)行時(shí)情境變化,在服務(wù)提供者一端則負(fù)責(zé)發(fā)布被訂閱的情境變化。另外互聯(lián)網(wǎng) 上所有的情境管理組件構(gòu)成了一個(gè)P2P覆蓋網(wǎng),提供分布式的服務(wù)發(fā)現(xiàn)。所述的服務(wù)注冊(cè)組件、服務(wù)選擇組件、規(guī)則生成組件提供ffeb Service接口供服務(wù) 實(shí)體調(diào)用。其中服務(wù)注冊(cè)接收服務(wù)實(shí)體的注冊(cè)請(qǐng)求,通過(guò)情境管理組件完成注冊(cè)并生成本 地運(yùn)行情境庫(kù)。服務(wù)選擇組件接收服務(wù)實(shí)體或動(dòng)態(tài)演化組件的服務(wù)選擇請(qǐng)求,通過(guò)情境管 理組件構(gòu)成的P2P覆蓋網(wǎng)完成服務(wù)發(fā)現(xiàn),按照服務(wù)實(shí)體的要求選擇匹配的服務(wù)提供者并完 成對(duì)情境變化的訂閱。規(guī)則生成組件接收服務(wù)實(shí)體的演化策略,生成用于動(dòng)態(tài)演化的規(guī)則
結(jié)合。所述的動(dòng)態(tài)演化組件根據(jù)獲得的服務(wù)提供者情境變化,查找演化規(guī)則集合中匹配 的規(guī)則執(zhí)行。在產(chǎn)生了替代的服務(wù)提供者情況下,通過(guò)回調(diào)接口將新的服務(wù)提供者引用告 知服務(wù)實(shí)體。所述的服務(wù)實(shí)體的角色根據(jù)服務(wù)間的一對(duì)一調(diào)用關(guān)系確定,調(diào)用者是服務(wù)請(qǐng)求 者,被調(diào)用者是服務(wù)提供者。一個(gè)服務(wù)實(shí)體可以同時(shí)具備請(qǐng)求者和提供者兩種角色。本實(shí)施例與現(xiàn)有技術(shù)相比,并不限制服務(wù)實(shí)體自身的實(shí)現(xiàn)技術(shù)與交互協(xié)議,大大增加了演化方法和支撐平臺(tái)的適用范圍。
權(quán)利要求
1.一種基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征在于,包括以下步驟步驟一、構(gòu)造互聯(lián)網(wǎng)環(huán)境下服務(wù)的運(yùn)行時(shí)情境;步驟二、根據(jù)服務(wù)的聚合關(guān)系確定情境變化的生產(chǎn)者和消費(fèi)者,并完成對(duì)所關(guān)注之情 境變化的訂閱;步驟三、捕獲運(yùn)行時(shí)情境的變化,并根據(jù)上述的生產(chǎn)者/消費(fèi)者關(guān)系完成情境變化的 發(fā)布;步驟四、根據(jù)服務(wù)請(qǐng)求者明確的演化策略實(shí)施相應(yīng)的動(dòng)作,當(dāng)需要更新使用的服務(wù)實(shí) 體時(shí),通過(guò)預(yù)定義的回調(diào)接口將選擇的結(jié)果告知給服務(wù)請(qǐng)求者;步驟五、當(dāng)備用的服務(wù)實(shí)體被選擇和通告后,服務(wù)請(qǐng)求者自主地進(jìn)行調(diào)用關(guān)系的重定 向,以完成面向網(wǎng)構(gòu)軟件的動(dòng)態(tài)重組與演化。
2.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的服務(wù) 運(yùn)行時(shí)情境包括服務(wù)的生命周期中的服務(wù)實(shí)體運(yùn)行狀態(tài)的轉(zhuǎn)變、服務(wù)實(shí)體運(yùn)行平臺(tái)的負(fù) 載變化以及網(wǎng)絡(luò)連接狀態(tài)的變化。
3.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的聚合 關(guān)系是指開(kāi)放環(huán)境下服務(wù)實(shí)體間的調(diào)用與被調(diào)用的關(guān)系。
4.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的情境 變化的生產(chǎn)者是指提供服務(wù)的軟件實(shí)體,消費(fèi)者是指請(qǐng)求服務(wù)的軟件實(shí)體。
5.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的演化 策略是指在獲得被發(fā)布的情境變化后服務(wù)請(qǐng)求者一端的支撐系統(tǒng)可以遵照實(shí)施的規(guī)則。
6.根據(jù)權(quán)利要求1或5所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的動(dòng) 作包括改變服務(wù)質(zhì)量等級(jí)、設(shè)置服務(wù)狀態(tài)、啟動(dòng)重新搜索、獲取本地緩存的備選服務(wù)引用、 告知某情境的當(dāng)前值。
7.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的回調(diào) 接口是指用于通知服務(wù)請(qǐng)求者關(guān)鍵情境的變化或者備選服務(wù)實(shí)體的引用的接口。
8.根據(jù)權(quán)利要求1所述的基于情境感知的網(wǎng)構(gòu)軟件演化方法,其特征是,所述的調(diào)用 關(guān)系的重定向是指當(dāng)產(chǎn)生了新的服務(wù)實(shí)體并進(jìn)行了通告之后,服務(wù)請(qǐng)求者將應(yīng)用邏輯中 對(duì)原有服務(wù)提供者的調(diào)用改變?yōu)閷?duì)備選服務(wù)實(shí)體的調(diào)用。
全文摘要
一種軟件維護(hù)技術(shù)領(lǐng)域的基于情境感知的網(wǎng)構(gòu)軟件演化方法,通過(guò)構(gòu)造互聯(lián)網(wǎng)環(huán)境下服務(wù)的運(yùn)行時(shí)情境;并根據(jù)服務(wù)的聚合關(guān)系確定情境變化的生產(chǎn)者和消費(fèi)者,完成對(duì)所關(guān)注之情境變化的訂閱;根據(jù)上述的生產(chǎn)者/消費(fèi)者關(guān)系完成情境變化的發(fā)布;根據(jù)服務(wù)請(qǐng)求者明確的演化策略實(shí)施相應(yīng)的動(dòng)作,通過(guò)預(yù)定義的回調(diào)接口將選擇的結(jié)果告知給服務(wù)請(qǐng)求者;服務(wù)請(qǐng)求者自主地進(jìn)行調(diào)用關(guān)系的重定向,以完成面向網(wǎng)構(gòu)軟件的動(dòng)態(tài)重組與演化。本發(fā)明在服務(wù)間初始聚合關(guān)系確定的情況下,解決了互聯(lián)網(wǎng)環(huán)境中服務(wù)提供者運(yùn)行時(shí)情境的獲取和傳播,以及根據(jù)情境變化和演化策略進(jìn)行相關(guān)操作并告知服務(wù)請(qǐng)求者的一系列問(wèn)題,實(shí)現(xiàn)了面向網(wǎng)構(gòu)軟件的應(yīng)用系統(tǒng)動(dòng)態(tài)演化。
文檔編號(hào)G06F9/44GK102073503SQ20111002084
公開(kāi)日2011年5月25日 申請(qǐng)日期2011年1月19日 優(yōu)先權(quán)日2011年1月19日
發(fā)明者吳剛, 張乎興, 王珊珊, 高健 申請(qǐng)人:上海交通大學(xué)