專利名稱:一種用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)軟件維護(hù)技術(shù)領(lǐng)域,具體涉及一種以黑板為數(shù)據(jù)中心的推動(dòng)網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法。
背景技術(shù):
隨著信息技術(shù)的飛速發(fā)展,具有豐富基礎(chǔ)軟件資源的互聯(lián)網(wǎng)已成為一種主要的軟件運(yùn)行平臺(tái),網(wǎng)構(gòu)軟件就是運(yùn)行在此平臺(tái)上的,能根據(jù)特定應(yīng)用需求,聚合分散于互聯(lián)網(wǎng)上的多個(gè)自治軟件實(shí)體并使其協(xié)同工作,從而共同完成特定應(yīng)用目標(biāo)的一種新型應(yīng)用系統(tǒng)構(gòu)造模式。由于互聯(lián)網(wǎng)開放、動(dòng)態(tài)、多變的特點(diǎn)以及用戶使用方式的個(gè)性化需求,網(wǎng)構(gòu)軟件不可能采用類似于傳統(tǒng)軟件的“一次定型”式的開發(fā)方法,它應(yīng)當(dāng)在發(fā)布運(yùn)行之后實(shí)時(shí)感知外部網(wǎng)絡(luò)環(huán)境、軟件運(yùn)行平臺(tái)、用戶個(gè)性需求的動(dòng)態(tài)變化,并隨著這種變化按照功能指標(biāo)、非功能指標(biāo)進(jìn)行靜態(tài)的調(diào)整和動(dòng)態(tài)的演化,從而提高最終應(yīng)用的服務(wù)質(zhì)量。經(jīng)過(guò)對(duì)現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國(guó)專利申請(qǐng)?zhí)?00910236492.3,記載了一種基于本體的上下文感知應(yīng)用平臺(tái)及其工作方法,提供一種通用的獲取上下文信息的處理模型,該平臺(tái)包括采集器通信模塊、上下文信息處理模塊、管理模塊、知識(shí)信息庫(kù)、上下文應(yīng)用處理模塊和上下文應(yīng)用通信模塊;該發(fā)明還提出了兩種相互獨(dú)立而又相互協(xié)調(diào)的上下文信息處理流程,它們彼此透明,通過(guò)同步控制機(jī)制,共享知識(shí)信息,使用本體描述上下文信息,達(dá)到了普適計(jì)算領(lǐng)域內(nèi)知識(shí)信息的共享。進(jìn)一步檢索發(fā)現(xiàn),中國(guó)專利申請(qǐng)?zhí)?01010250627.4,記載了一種網(wǎng)構(gòu)軟件上下文感知系統(tǒng)及方法,感知系統(tǒng)具體包括:上下文感知引擎服務(wù)器,用于從網(wǎng)絡(luò)環(huán)境中獲得上下文信息,并將上述上下文信息映射到已建成的網(wǎng)構(gòu)軟件上下文信息模型中;以及上下文信息管理服務(wù)器,用于存儲(chǔ)已映射到網(wǎng)構(gòu)軟件上下文信息模型中的上下文信息,解決了網(wǎng)構(gòu)軟件上下文信息的感知和管理的難題。進(jìn)一步檢索發(fā)現(xiàn),中國(guó)專利申請(qǐng)?zhí)?01110020844.9,記載了一種基于情境感知的網(wǎng)構(gòu)軟件演化方法。在服務(wù)的初始聚合關(guān)系確定的情況下,解決了互聯(lián)網(wǎng)環(huán)境中服務(wù)提供者運(yùn)行時(shí)情境的獲取與傳播,以及根據(jù)情境變化確定備用服務(wù)實(shí)體并告知不服請(qǐng)求者的相關(guān)問(wèn)題,以支持面向網(wǎng)構(gòu)軟件的應(yīng)用系統(tǒng)動(dòng)態(tài)演化。上述方法主要關(guān)注網(wǎng)構(gòu)軟件運(yùn)行時(shí)情境信心的收集、傳播、存儲(chǔ),并沒(méi)有涉及情境信息的層次分類關(guān)系和情境發(fā)布者和訂閱者之間的層次分類關(guān)系。在開放的互聯(lián)網(wǎng)環(huán)境下,構(gòu)件運(yùn)行時(shí)的情境信息往往繁多而復(fù)雜,如何不加以層次化,很容易導(dǎo)致信息混亂問(wèn)題,不利于大型軟件的演化,所以應(yīng)當(dāng)對(duì)龐雜的情境信息進(jìn)行層次化分類,并由一個(gè)中央控制者來(lái)管理層內(nèi)及層間信息的發(fā)布/訂閱關(guān)系,這樣才有利于信息的管理維護(hù)、緩解信息的不一致問(wèn)題、最終為軟件體系結(jié)構(gòu)演化提供高質(zhì)量的情境信息
發(fā)明內(nèi)容
本發(fā)明技術(shù)解決問(wèn)題:針對(duì)現(xiàn)有技術(shù)存在的不足,提供一種用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,該方法在互聯(lián)網(wǎng)環(huán)境下對(duì)軟件構(gòu)件運(yùn)行時(shí)情境信息的進(jìn)行獲取和分發(fā),利用這種分層感知技術(shù)可以使軟件體系結(jié)構(gòu)對(duì)情境信息有清晰的分類,并通過(guò)給以不同層次情境信息不同的優(yōu)先級(jí)別保證體系結(jié)構(gòu)演化過(guò)程中的信息一致性,解決了信息不一致問(wèn)題,為網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化提供了很好的支持。本發(fā)明的技術(shù)解決方案:一種用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,具體步驟如下:步驟一、構(gòu)造網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)。所述網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)是指一種由多個(gè)層次組成的、區(qū)別于常規(guī)的由構(gòu)件和連接件組成的扁平體系結(jié)構(gòu)的軟件體系結(jié)構(gòu),自下而上依次為基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件;所述構(gòu)件是指語(yǔ)義完整、語(yǔ)法正確和有可重用價(jià)值的單位軟件,是軟件重用過(guò)程中可以明確辨識(shí)的系統(tǒng),結(jié)構(gòu)上,它是語(yǔ)義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體;所述基礎(chǔ)層構(gòu)件是指與業(yè)務(wù)無(wú)關(guān)的基礎(chǔ)功能構(gòu)件組成的集合;所述業(yè)務(wù)層構(gòu)件是指加入了領(lǐng)域知識(shí)、與具體業(yè)務(wù)相關(guān)的構(gòu)件組成的集合;所述應(yīng)用層構(gòu)件是指根據(jù)用戶偏好選擇業(yè)務(wù)層構(gòu)件中合適的構(gòu)件進(jìn)行組轉(zhuǎn),形成一定的業(yè)務(wù)流程,為用戶提供完整服務(wù)的層次;步驟二、確定基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件運(yùn)行時(shí)需要感知的情境信息。所述基礎(chǔ)層構(gòu)件情境信息包括:基礎(chǔ)功能構(gòu)件運(yùn)行狀態(tài)的轉(zhuǎn)變、基礎(chǔ)功能構(gòu)件版本升級(jí)事件、基礎(chǔ)功能構(gòu)件加入、退出等事件、運(yùn)行平臺(tái)環(huán)境信息的改變、來(lái)自于業(yè)務(wù)層構(gòu)件的情境信息;所述業(yè)務(wù)層構(gòu)件情境信息包括:業(yè)務(wù)相關(guān)構(gòu)件運(yùn)行狀態(tài)的轉(zhuǎn)變、業(yè)務(wù)相關(guān)構(gòu)件版本升級(jí)事件、業(yè)務(wù)相關(guān)構(gòu)件加入、退出等事件、運(yùn)行平臺(tái)系統(tǒng)環(huán)境的變化、來(lái)自于基礎(chǔ)層構(gòu)件和應(yīng)用層構(gòu)件的情境信息;所述應(yīng)用層構(gòu)件情境信息包括:用戶需求的改變、來(lái)自于業(yè)務(wù)層構(gòu)件的情境信息;步驟三、確定體系結(jié)構(gòu)中不同構(gòu)件對(duì)情境信息的發(fā)布/訂閱關(guān)系,由黑板負(fù)責(zé)管理所有的發(fā)布/訂閱關(guān)系,為各層的情境信息在整個(gè)網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)中有序傳播作準(zhǔn)備。根據(jù)網(wǎng)構(gòu)軟件的分層體系結(jié)構(gòu)的層內(nèi)與層間構(gòu)件之間的調(diào)用關(guān)系、業(yè)務(wù)流程關(guān)系確定情境信息的發(fā)布/訂閱關(guān)系,并向黑板注冊(cè)這種發(fā)布/訂閱關(guān)系(哪種關(guān)系),黑板以此為依據(jù)為各信息發(fā)布者確定發(fā)布主題及該主題對(duì)應(yīng)的訂閱者列表,為情境信息在分層體系結(jié)構(gòu)中進(jìn)行有序傳播以觸發(fā)體系結(jié)構(gòu)演化程序作準(zhǔn)備;所述層內(nèi)構(gòu)件之間的調(diào)用關(guān)系是指某一構(gòu)件調(diào)用同一層次內(nèi)的一個(gè)或多個(gè)其他構(gòu)件提供的功能來(lái)實(shí)現(xiàn)自身的完整功能;所述層間構(gòu)件之間的調(diào)用關(guān)系是指某一構(gòu)件調(diào)用其自身所處層次的下一相鄰層次中的一個(gè)或多個(gè)構(gòu)件提供的功能來(lái)實(shí)現(xiàn)自身的完整功能,一個(gè)構(gòu)件可以同時(shí)調(diào)用同層和下一層的其他構(gòu)件提供的功能以完成自身功能;所述業(yè)務(wù)流程關(guān)系是指由業(yè)務(wù)相關(guān)的構(gòu)件按照某種嚴(yán)格的先后順序和層次關(guān)系組合在一起從而完成特定的業(yè)務(wù)功能;所述的情境信息的發(fā)布/訂閱關(guān)系是指:層內(nèi)或?qū)娱g有直接調(diào)用關(guān)系或業(yè)務(wù)流程關(guān)系的構(gòu)件,能夠互為情境信息的發(fā)布者和訂閱者;步驟四、實(shí)時(shí)捕捉基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件、應(yīng)用層構(gòu)件運(yùn)行時(shí)情境信息,提交給黑板,由黑板將不同的情境信息發(fā)布到對(duì)應(yīng)的主題上,并由該主題的訂閱者接收,這樣便完成了情境信息在體系結(jié)構(gòu)中的實(shí)時(shí)有序的傳播,進(jìn)而觸發(fā)網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)演化程序;步驟五、解決情境信息傳播過(guò)程中引起的信息不一致問(wèn)題。情境信息傳播過(guò)程中,當(dāng)訂閱者接收到的情境信息滿足特定規(guī)則時(shí)就會(huì)觸發(fā)演化程序?qū)W(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)進(jìn)行演化,從而使網(wǎng)構(gòu)軟件系統(tǒng)保持穩(wěn)定且優(yōu)良的運(yùn)行性能;但如果情境信息的訂閱者同時(shí)接收到多則沖突信息,這時(shí)如果不作任何處理會(huì)導(dǎo)致演化程序在同一時(shí)刻會(huì)采取相悖的演化決策,即產(chǎn)生了不一致問(wèn)題,此時(shí)應(yīng)當(dāng)根據(jù)情境信息的優(yōu)先級(jí)別決定信息取舍,以保證觸發(fā)演化程序的情境信息是一致的,從而防止產(chǎn)生相悖的演化決策;所述情境信息的優(yōu)先級(jí)別是指:應(yīng)用層構(gòu)件情境信息的級(jí)別高于業(yè)務(wù)層構(gòu)件,業(yè)務(wù)層構(gòu)件的情境信息高于基礎(chǔ)層構(gòu)件,同層構(gòu)件內(nèi)情境信息由信息自身攜帶的時(shí)間戳決定優(yōu)先級(jí)別,時(shí)間戳大的信息優(yōu)先級(jí)高;所述時(shí)間戳由黑板以信息采集的最大頻率進(jìn)行廣播,從而保證全局范圍內(nèi)有統(tǒng)一的時(shí)間戳;所述沖突信息是指:會(huì)使構(gòu)件采取相悖的演化決策的情境信息,無(wú)沖突的情境信息就是一致性信息;步驟六、若網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)演化過(guò)程中基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件、應(yīng)用層構(gòu)件之間的層內(nèi)、層間調(diào)用關(guān)系或者業(yè)務(wù)流程關(guān)系發(fā)生改變,應(yīng)將變化關(guān)系通知黑板(此處黑板,沒(méi)有結(jié)構(gòu),與前的黑板是什么關(guān)系,如果含義相同,請(qǐng)采用相同的技術(shù)術(shù)語(yǔ)),使黑板能及時(shí)更新發(fā)布/訂閱關(guān)系,使情境信息的傳播路徑始終保持正確;步驟七、由黑板存儲(chǔ)歷史情境信息。黑板不丟棄已經(jīng)發(fā)布出去的情境信息,而將情境信息以發(fā)布者,消息內(nèi)容,消息產(chǎn)生時(shí)間,訂閱者列表的格式保存在黑板維護(hù)的中央數(shù)據(jù)庫(kù)中,并對(duì)已經(jīng)存儲(chǔ)的情境信息每隔一段時(shí)間按指數(shù)衰減規(guī)律采樣,距離當(dāng)前時(shí)間越久的信息被采樣的幾率越小,未被采樣的情境信息可以直接丟棄,以節(jié)省存儲(chǔ)空間,同時(shí)提供相應(yīng)的情境信息查詢接口,方便系統(tǒng)管理員隨時(shí)查詢系統(tǒng)的歷史情境信息,了解系統(tǒng)的整體運(yùn)行狀況。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:本發(fā)明提供的技術(shù)方案建立了互聯(lián)網(wǎng)環(huán)境下網(wǎng)構(gòu)軟件運(yùn)行時(shí)分層體系結(jié)構(gòu)各層對(duì)應(yīng)的運(yùn)行時(shí)情境,建立了黑板全局管理情境信息,并維護(hù)信息的發(fā)布/訂閱關(guān)系,解決了情境信息的獲取和傳播問(wèn)題,緩解了大量信息的混亂和不一致問(wèn)題,為軟件體系結(jié)構(gòu)的演化提供了高質(zhì)量的有序情境信息。
圖1是本發(fā)明的情境感知流程圖;圖2是本發(fā)明實(shí)施例的框架結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明,本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出另外詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)局范圍不限于下述的實(shí)施例。如圖1所示,本發(fā)明的用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法主要分為7個(gè)步驟,圖中各個(gè)步驟按時(shí)間先后為順序結(jié)構(gòu),這對(duì)于單則情境信息而言是完全符合的,但對(duì)于整個(gè)網(wǎng)構(gòu)軟件體系結(jié)構(gòu)而言,由于情境信息繁多復(fù)雜、信息傳輸與處理延時(shí)不定等因素,針對(duì)不同情境信息的各個(gè)處理步驟是相互交錯(cuò)執(zhí)行的,每個(gè)步驟的意義已在發(fā)明內(nèi)容中詳細(xì)闡述,此處不再贅述。如圖2所示,本發(fā)明以網(wǎng)上購(gòu)物系統(tǒng)為例說(shuō)明本發(fā)明的工作原理。圖2中包括用于網(wǎng)構(gòu)軟件系統(tǒng)情境感知的三大模塊:網(wǎng)上購(gòu)物系統(tǒng)的分層軟件體系結(jié)構(gòu)、黑板、歷史信息數(shù)據(jù)庫(kù)。軟件體系結(jié)構(gòu)共分為三層:基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件、應(yīng)用層構(gòu)件;基礎(chǔ)層構(gòu)件包括諸如數(shù)據(jù)庫(kù)操作構(gòu)件、短信服務(wù)構(gòu)件、文字聊天構(gòu)件等與業(yè)務(wù)無(wú)關(guān)的基本功能構(gòu)件;業(yè)務(wù)層構(gòu)件包括諸如商品瀏覽構(gòu)件、訂單生成構(gòu)件、物流跟蹤構(gòu)件、買賣方交流構(gòu)件等購(gòu)物領(lǐng)域獨(dú)有的業(yè)務(wù)相關(guān)構(gòu)件;應(yīng)用層構(gòu)件是根據(jù)用戶的需求和偏好,從業(yè)務(wù)層構(gòu)件中選擇一系列合適的業(yè)務(wù)相關(guān)構(gòu)件構(gòu)造業(yè)務(wù)流程,為用戶提供完整的網(wǎng)上購(gòu)物服務(wù),圖2中為用戶選取了商品瀏覽構(gòu)件、訂單生成構(gòu)件、付款構(gòu)件、送貨構(gòu)件、確認(rèn)付款構(gòu)件按照時(shí)間先后順序組成完整的網(wǎng)絡(luò)購(gòu)物業(yè)務(wù)流程;當(dāng)分層軟件體系結(jié)構(gòu)構(gòu)建完成后,可按照說(shuō)明書步驟二所述構(gòu)造各層的情境信息,確定信息封裝格式,比如本體格式、XML格式等,然后按時(shí)間推移不斷收集各類情境信息;從圖2中可以看到,分層體系結(jié)構(gòu)層內(nèi)和層間的構(gòu)件之間都會(huì)產(chǎn)生調(diào)用關(guān)系,比如基礎(chǔ)功能構(gòu)件“數(shù)據(jù)庫(kù)查詢構(gòu)件”、“數(shù)據(jù)庫(kù)增加構(gòu)件”和“數(shù)據(jù)庫(kù)刪除構(gòu)件”都會(huì)調(diào)用同層“數(shù)據(jù)庫(kù)連接構(gòu)件”提供的數(shù)據(jù)庫(kù)連接功能,此為層內(nèi)構(gòu)件之間的調(diào)用關(guān)系;業(yè)務(wù)相關(guān)構(gòu)件“買賣方交流構(gòu)件”會(huì)調(diào)用基本功能構(gòu)件“文字聊天構(gòu)件”提供的功能,業(yè)務(wù)相關(guān)構(gòu)件“物流跟蹤構(gòu)件”會(huì)調(diào)用“數(shù)據(jù)庫(kù)查詢構(gòu)件”和“短信服務(wù)構(gòu)件”提供的功能,將查詢所得的物流結(jié)果以短信方式通知買方,此為層間構(gòu)件之間的調(diào)用關(guān)系,當(dāng)然只有上層構(gòu)件可以調(diào)用下層構(gòu)件提供的功能,反之不行;應(yīng)用層所選取的各個(gè)業(yè)務(wù)相關(guān)的構(gòu)件按一定次序所組成的就是網(wǎng)絡(luò)購(gòu)物的業(yè)務(wù)流程;根據(jù)圖中的層內(nèi)和層構(gòu)件之間的調(diào)用關(guān)系和業(yè)務(wù)流程就可以確定構(gòu)件之間的直接關(guān)聯(lián)關(guān)系,有直接關(guān)聯(lián)關(guān)系的構(gòu)件之間可以形成相互的發(fā)布/訂閱關(guān)系,發(fā)布/訂閱關(guān)系在黑板中體現(xiàn)為一個(gè)發(fā)布者對(duì)應(yīng)一個(gè)發(fā)布主題,每個(gè)發(fā)布主題下都有一個(gè)訂閱者列表,比如與“數(shù)據(jù)庫(kù)刪除構(gòu)件”有直接關(guān)聯(lián)關(guān)系的構(gòu)件有“訂單生成構(gòu)件”和“數(shù)據(jù)庫(kù)連接構(gòu)件”,那么“數(shù)據(jù)庫(kù)刪除構(gòu)件”所產(chǎn)生的主題下就有由“訂單生成構(gòu)件”和“數(shù)據(jù)庫(kù)連接構(gòu)件”所組成的訂閱者列表,一旦“數(shù)據(jù)庫(kù)刪除構(gòu)件”有情境信息分發(fā)時(shí),就是自動(dòng)發(fā)送給“訂單生成構(gòu)件”和“數(shù)據(jù)庫(kù)連接構(gòu)件”,當(dāng)然,發(fā)布/訂閱關(guān)系是相互的,“數(shù)據(jù)庫(kù)刪除構(gòu)件”也可以成為“訂單生成構(gòu)件”和“數(shù)據(jù)庫(kù)連接構(gòu)件”情境信息的訂閱者;如果“數(shù)據(jù)庫(kù)刪除構(gòu)件”發(fā)出“負(fù)載過(guò)大”的情境信息,那么“訂單生成構(gòu)件”就會(huì)接受到該情境信息,如果該“訂單生成構(gòu)件”對(duì)可靠性的要求比較高,不希望“數(shù)據(jù)庫(kù)刪除構(gòu)件”因負(fù)載過(guò)大對(duì)自己提供服務(wù)的可靠性產(chǎn)生影響,則此時(shí)“訂單生成構(gòu)件”會(huì)引發(fā)某種特定演化操作,比如調(diào)用負(fù)載較小且同樣提供數(shù)據(jù)庫(kù)刪除功能的其他構(gòu)件等等,此時(shí)演化過(guò)程引起了構(gòu)件調(diào)用關(guān)系的改變,進(jìn)一步導(dǎo)致原有的情境信息發(fā)布/訂閱關(guān)系發(fā)生改變,所以“訂單生成構(gòu)件”要將情境信息發(fā)布/訂閱關(guān)系的變化通知黑板,黑板及時(shí)更新相關(guān)主題下的訂閱者列表;由于網(wǎng)構(gòu)軟件系統(tǒng)中的情境信息繁多而復(fù)雜,所以難免會(huì)有相互沖突的情境信息,導(dǎo)致演化程序同一時(shí)刻會(huì)產(chǎn)生相悖的演化決策,比如基本功能構(gòu)件“數(shù)據(jù)庫(kù)查詢構(gòu)件”監(jiān)測(cè)到了“負(fù)載過(guò)大”的情境信息,但是后一時(shí)刻由于一大批用戶因某種原因不在使用該“數(shù)據(jù)庫(kù)查詢構(gòu)件”,則又會(huì)監(jiān)測(cè)到該構(gòu)件“負(fù)載正?!钡那榫承畔?,正常情況下“物流跟蹤構(gòu)件”將相繼接收到“數(shù)據(jù)庫(kù)查詢構(gòu)件”發(fā)布的“負(fù)載過(guò)大”和“負(fù)載正?!眱蓜t情境信息,最后演化程序會(huì)決定仍繼續(xù)時(shí)候該“數(shù)據(jù)庫(kù)查詢構(gòu)件”,但如果因網(wǎng)絡(luò)延時(shí)等原因,造成“負(fù)載過(guò)大”比“負(fù)載正?!备淼竭_(dá)訂閱者“物流查詢構(gòu)件”端,或兩者同時(shí)到達(dá),那么如果不消除不一致性,演化程序?qū)a(chǎn)生兩種相悖的演化決策:繼續(xù)調(diào)用該“數(shù)據(jù)庫(kù)查詢構(gòu)件”或者調(diào)用其他相似功能的構(gòu)件,所以如果發(fā)布者在發(fā)布情境信息的時(shí)候已經(jīng)給不同的信息打上時(shí)間戳,“負(fù)載正常”的時(shí)間戳比“負(fù)載過(guò)大”的時(shí)間戳大,訂閱者就很容易判斷“負(fù)載正?!辈攀菓?yīng)該接收的情境信息,而“負(fù)載過(guò)大”這則信息應(yīng)當(dāng)被丟棄,演化程序還是會(huì)作出正確的演化決策:繼續(xù)調(diào)用該“數(shù)據(jù)庫(kù)查詢構(gòu)件”提供的服務(wù),這便是由時(shí)間戳來(lái)解決同層情境信息沖突的情況;當(dāng)然也有來(lái)自不同層的情境信息產(chǎn)生不一致的情況,這時(shí)應(yīng)當(dāng)選取具有高優(yōu)先級(jí)別的上層情境信息,而將會(huì)產(chǎn)生沖突的下層情境信息丟棄,比如一開始構(gòu)件業(yè)務(wù)流程的時(shí)候用戶要求送貨時(shí)配送員以短信方式聯(lián)系自己,但在配送過(guò)程中用戶又改變主意想讓配送員以電話的方式通知自己,而與此同時(shí)基本功能構(gòu)件“短信服務(wù)構(gòu)件”又向“送貨構(gòu)件”發(fā)布了 “退出”的情境信息,那么如果不考慮用戶的需求,“送貨構(gòu)件”會(huì)默認(rèn)在網(wǎng)絡(luò)上另外選擇一個(gè)運(yùn)行正常且同樣提供短信服務(wù)的新構(gòu)件,但是這樣就無(wú)法滿足用戶想被電話通知的個(gè)性化需求,所以當(dāng)“送貨構(gòu)件”同時(shí)接收到來(lái)自應(yīng)用層構(gòu)件的“用戶想使用電話通知”情境信息和來(lái)自基本功能構(gòu)件“短信服務(wù)構(gòu)件”的“退出”情境信息時(shí),應(yīng)當(dāng)首先考慮來(lái)自應(yīng)用層的情境信息,而將低層的短信服務(wù)退出的情境信息丟棄,這便是高層情境信息的優(yōu)先級(jí)別高于底層情境信息優(yōu)先級(jí)別的體現(xiàn);黑板在接收到發(fā)布者發(fā)送過(guò)來(lái)的情境信息時(shí),一方面將其發(fā)送給其對(duì)應(yīng)的訂閱者,另一方面將其存儲(chǔ)在數(shù)據(jù)庫(kù)中,對(duì)比較陳舊的信息可以進(jìn)行指數(shù)衰減式的遺忘,而近期的信息最好全部保存,同時(shí)給出相應(yīng)的查詢接口供系統(tǒng)管理員隨時(shí)查詢,比如系統(tǒng)管理員通過(guò)分析歷史情境信息數(shù)據(jù),發(fā)現(xiàn)某個(gè)構(gòu)件發(fā)生故障的次數(shù)太多,但仍然運(yùn)行于軟件系統(tǒng)中,這時(shí)系統(tǒng)管理員可能會(huì)通知整個(gè)系統(tǒng)暫停使用該構(gòu)件,等待該構(gòu)件升級(jí)完畢再使用;系統(tǒng)管理員也有可能發(fā)現(xiàn)某種功能的構(gòu)件只有一家軟件開發(fā)商處于主導(dǎo)地位,其他開發(fā)商提供的類型功能的構(gòu)件基本未被使用過(guò),那么為了平衡市場(chǎng)利益,系統(tǒng)管理員可能會(huì)推薦網(wǎng)構(gòu)軟件系統(tǒng)多使用其他開發(fā)者的相似功能的構(gòu)件;本發(fā)明未詳細(xì)闡述部分屬于本領(lǐng)域技術(shù)人員的公知技術(shù)。以上所述,僅為本發(fā)明中的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到的變換或替換,都應(yīng)涵蓋在本發(fā)明的包含范圍之內(nèi),因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,其特征在于包括以下步驟: 步驟一、構(gòu)造網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu) 所述網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)是指一種由多個(gè)層次組成的、區(qū)別于常規(guī)的由構(gòu)件和連接件組成的扁平體系結(jié)構(gòu)的軟件體系結(jié)構(gòu),自下而上依次為基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件;所述基礎(chǔ)層構(gòu)件是指與業(yè)務(wù)無(wú)關(guān)的基礎(chǔ)功能構(gòu)件組成的集合;所述業(yè)務(wù)層構(gòu)件是指加入了領(lǐng)域知識(shí)、與具體業(yè)務(wù)相關(guān)的構(gòu)件組成的集合;所述應(yīng)用層構(gòu)件是指根據(jù)用戶偏好選擇業(yè)務(wù)層構(gòu)件中合適的構(gòu)件進(jìn)行組轉(zhuǎn),形成一定的業(yè)務(wù)流程,為用戶提供完整服務(wù)的層次; 步驟二、確定基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件運(yùn)行時(shí)需要感知的情境信息所述基礎(chǔ)層構(gòu)件情境信息包括:基礎(chǔ)功能構(gòu)件運(yùn)行狀態(tài)的轉(zhuǎn)變、基礎(chǔ)功能構(gòu)件版本升級(jí)事件、基礎(chǔ)功能構(gòu)件加入、退出事件、運(yùn)行平臺(tái)環(huán)境信息的改變、來(lái)自于業(yè)務(wù)層構(gòu)件的情境信息;所述業(yè)務(wù)層構(gòu)件情境信息包括:業(yè)務(wù)相關(guān)構(gòu)件運(yùn)行狀態(tài)的轉(zhuǎn)變、業(yè)務(wù)相關(guān)構(gòu)件版本升級(jí)事件、業(yè)務(wù)相關(guān)構(gòu)件加入、退出事件、運(yùn)行平臺(tái)系統(tǒng)環(huán)境的變化、來(lái)自于基礎(chǔ)層構(gòu)件和應(yīng)用層構(gòu)件的情境信息;所述應(yīng)用層構(gòu)件情境信息包括:用戶需求的改變、來(lái)自于業(yè)務(wù)層構(gòu)件的情境信息; 步驟三、確定體系結(jié)構(gòu)中不同層構(gòu)件,即基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件對(duì)情境信息的發(fā)布/訂閱關(guān)系,由黑板負(fù)責(zé)管理所有的發(fā)布/訂閱關(guān)系,為各層,即基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件和應(yīng)用層構(gòu)件的情境信息在整個(gè)網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)中有序傳播作準(zhǔn)備; 根據(jù)網(wǎng)構(gòu)軟件的分層體系結(jié)構(gòu)的層內(nèi)與層間構(gòu)件之間的調(diào)用關(guān)系、業(yè)務(wù)流程關(guān)系確定情境信息的發(fā)布和訂閱關(guān)系,并向黑板注冊(cè)這種發(fā)布/訂閱關(guān)系,黑板以此為依據(jù)為各信息發(fā)布者確定發(fā)布主題及該主題對(duì)應(yīng)的訂閱者列表,為情情境信息在分層體系結(jié)構(gòu)中進(jìn)行有序傳播以觸發(fā)體系結(jié)構(gòu)演化程序作準(zhǔn)備;所述層內(nèi)構(gòu)件之間的調(diào)用關(guān)系是指某一構(gòu)件調(diào)用同一層次內(nèi)的一個(gè)或多個(gè)其他構(gòu)件提供的功能來(lái)實(shí)現(xiàn)自身的完整功能;所述層間構(gòu)件之間的調(diào)用關(guān)系是指某一構(gòu)件調(diào)用其自身所處層次的下一相鄰層次中的一個(gè)或多個(gè)構(gòu)件提供的功能來(lái)實(shí)現(xiàn)自身的 完整功能,一個(gè)構(gòu)件能夠同時(shí)調(diào)用同層和下一層的其他構(gòu)件提供的功能以完成自身功能;所述業(yè)務(wù)流程關(guān)系是指由業(yè)務(wù)相關(guān)的構(gòu)件按照某種嚴(yán)格的先后順序和層次關(guān)系組合在一起從而完成特定的業(yè)務(wù)功能; 步驟四、實(shí)時(shí)捕捉基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件、應(yīng)用層構(gòu)件運(yùn)行時(shí)情境信息,提交給黑板,由黑板將不同的情境信息發(fā)布到對(duì)應(yīng)的主題上,并由該主題的訂閱者接收,這樣便完成了情境信息在體系結(jié)構(gòu)中的實(shí)時(shí)有序的傳播,進(jìn)而觸發(fā)網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)演化程序;步驟五、解決情境信息傳播過(guò)程中引起的信息不一致問(wèn)題 情境信息傳播過(guò)程中,當(dāng)訂閱者接收到的情境信息相互沖突,會(huì)觸發(fā)演化程序采取相悖的演化決策時(shí),根據(jù)情境信息的不同優(yōu)先級(jí)別,將沖突信息中低優(yōu)先級(jí)別的信息丟棄,而保留高優(yōu)先級(jí)別的信息;所述情境信息的優(yōu)先級(jí)別是指:應(yīng)用層構(gòu)件情境信息的級(jí)別高于業(yè)務(wù)層構(gòu)件,業(yè)務(wù)層構(gòu)件的情境信息高于基礎(chǔ)層構(gòu)件,同層構(gòu)件內(nèi)情境信息由信息自身攜帶的時(shí)間戳決定優(yōu)先級(jí)別,時(shí)間戳大的信息優(yōu)先級(jí)高;所述沖突信息是指:會(huì)使構(gòu)件采取完全不同的演化決策的情境信息,無(wú)沖突的情境信息就是一致性信息; 步驟六、若網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)演化過(guò)程中基礎(chǔ)層構(gòu)件、業(yè)務(wù)層構(gòu)件、應(yīng)用層構(gòu)件之間的層內(nèi)、層間調(diào)用關(guān)系或者業(yè)務(wù)流程關(guān)系發(fā)生改變,應(yīng)將變化關(guān)系通知黑板,使黑板能及時(shí)更新發(fā)布/訂閱關(guān)系,使情境信息的傳播路徑始終保持正確; 步驟七、由黑板存儲(chǔ)歷史情境信息 黑板不丟棄已經(jīng)發(fā)布出去的情境信息,而將情境信息以發(fā)布者,消息內(nèi)容,消息產(chǎn)生時(shí)間,訂閱者列表的格式保存在黑板維護(hù)的中央數(shù)據(jù)庫(kù)中,并對(duì)已經(jīng)存儲(chǔ)的情境信息每隔一段時(shí)間按指數(shù)衰減規(guī)律采樣,距離當(dāng)前時(shí)間越久的信息被采樣的幾率越小,未被采樣的情境信息可以直接丟棄,以節(jié)省存儲(chǔ)空間,同時(shí)提供相應(yīng)的情境信息查詢接口,方便系統(tǒng)管理員隨時(shí)查詢系統(tǒng)的歷史情境信息,了解系統(tǒng)的整體運(yùn)行狀況。
2.根據(jù)權(quán)利要求1所述的用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,其特征在于:所述步驟三中的情境信息的發(fā)布/訂閱關(guān)系是指:構(gòu)件調(diào)用和被調(diào)用者,即同層或者相鄰層間有直接關(guān)聯(lián)關(guān)系的構(gòu)件,能夠互為情境信息的發(fā)布者和訂閱者。
3.根據(jù)權(quán)利要求1所述的用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,其特征在于:所述步驟五中的時(shí)間戳由黑板以信息采集的最大頻率進(jìn)行廣播,從而保證全局范圍內(nèi)有統(tǒng)一的 時(shí)間戳。
全文摘要
本發(fā)明屬于計(jì)算機(jī)軟件維護(hù)技術(shù)領(lǐng)域,具體涉及用于網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化的分層情境感知方法,構(gòu)造網(wǎng)構(gòu)軟件分層體系結(jié)構(gòu)并確定各層的運(yùn)行時(shí)情境;通過(guò)體系結(jié)構(gòu)層內(nèi)或?qū)娱g構(gòu)件的調(diào)用關(guān)系或業(yè)務(wù)流程關(guān)系確定情境信息的發(fā)布/訂閱關(guān)系,并向中央黑板注冊(cè)這種關(guān)系;感知到構(gòu)件運(yùn)行時(shí)的情境信息后將其提交到黑板中對(duì)應(yīng)的主題上,由該主題訂閱者接收;若一個(gè)構(gòu)件同時(shí)接收到相互沖突的信息,根據(jù)信息的層次優(yōu)先級(jí)別或者信息攜帶的時(shí)間戳信息決定信息取舍;黑板可以對(duì)歷史信息進(jìn)行統(tǒng)一存儲(chǔ),對(duì)過(guò)時(shí)的歷史信息進(jìn)行遺忘,并提供歷史信息查詢接口,本發(fā)明緩解了信息不一致問(wèn)題,為網(wǎng)構(gòu)軟件體系結(jié)構(gòu)演化提供了很好的支持。
文檔編號(hào)G06F9/44GK103164224SQ20131007857
公開日2013年6月19日 申請(qǐng)日期2013年3月12日 優(yōu)先權(quán)日2013年3月12日
發(fā)明者彭啟民, 胡堰, 胡曉惠 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所