分布式環(huán)境下面向服務(wù)質(zhì)量評價的OSGi容錯策略的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)容錯技術(shù)領(lǐng)域,特別涉及一種分布式環(huán)境下面向服務(wù)質(zhì)量評價 的OSGi容錯策略。
【背景技術(shù)】
[0002] 計(jì)算機(jī)科學(xué)是21世紀(jì)發(fā)展最快、對人類生活影響最大的學(xué)科之一。軟件工程作為 其中重要的一個組成部分,也越來越受到重視。隨著近年來計(jì)算機(jī)軟件技術(shù)的迅猛發(fā)展,基 于組件的開發(fā)模式逐漸成為軟件工程領(lǐng)域的發(fā)展趨勢。
[0003] 0SGi(open service gateway initiative)是一種基于服務(wù)的組件技術(shù)框架,因 其具有易用、輕量級、動態(tài)更新、構(gòu)件生命周期管理等特性,受到了廣大開發(fā)者的重視。OSGi 為Java應(yīng)用提供了一個動態(tài)化、面向服務(wù)的構(gòu)建模型,彌補(bǔ)了 Java語言標(biāo)準(zhǔn)缺乏模塊化支 持的不足,使Java成為軟件集成和軟件開發(fā)的首選環(huán)境。
[0004] 隨著物聯(lián)網(wǎng)逐漸成為計(jì)算機(jī)領(lǐng)域的重要發(fā)展方向,OSGi也進(jìn)行了分布式擴(kuò)展改造 以適應(yīng)發(fā)展潮流,然而這對OSGi的可靠性提出了挑戰(zhàn)。由于OSGi最初面向嵌入式環(huán)境設(shè)計(jì), 因此并不能提供分布式環(huán)境下的容錯機(jī)制。由于分布式系統(tǒng)一般應(yīng)用于工業(yè)控制、企業(yè)服 務(wù)器等大型重要項(xiàng)目中,其微小的錯誤都會造成難以估量的損失。因此提高OSGi的容錯能 力,提高OSGi系統(tǒng)容錯效率是十分重要的任務(wù)。
【發(fā)明內(nèi)容】
[0005] 針對現(xiàn)有技術(shù)中OSGi不能提供分布式環(huán)境下容錯機(jī)制的問題,本發(fā)明提供了一種 分布式環(huán)境下面向服務(wù)質(zhì)量評價的OSGi容錯策略,該策略采用主動甄別服務(wù)和被動出錯修 復(fù)相結(jié)合的容錯方式,可有效完成分布式OSGi環(huán)境的容錯工作,可在保證容錯效果的前提 下減少系統(tǒng)開銷。
[0006] 為解決上述技術(shù)問題,本發(fā)明采用如下的技術(shù)方案:
[0007] -種分布式環(huán)境下面向服務(wù)質(zhì)量評價的OSGi容錯策略,包括:
[0008] 步驟1,主動甄別服務(wù),本步驟依次包括:
[0009] 1.1根據(jù)需求選擇備選服務(wù)集和若干服務(wù)質(zhì)量指標(biāo);
[0010] 1.2根據(jù)服務(wù)、服務(wù)運(yùn)行平臺和/或服務(wù)運(yùn)行網(wǎng)絡(luò)的歷史運(yùn)行數(shù)據(jù)得備選服務(wù)集中 各備選服務(wù)的服務(wù)質(zhì)量指標(biāo)數(shù)據(jù);
[0011] 1.3標(biāo)準(zhǔn)化服務(wù)質(zhì)量指標(biāo)數(shù)據(jù)獲得服務(wù)質(zhì)量指標(biāo)標(biāo)準(zhǔn)化數(shù)據(jù);
[0012] 1.4對各備選服務(wù)的服務(wù)質(zhì)量指標(biāo)標(biāo)準(zhǔn)化數(shù)據(jù)分別加權(quán)求和,得各備選服務(wù)的服 務(wù)評價成績;服務(wù)質(zhì)量指標(biāo)標(biāo)準(zhǔn)化數(shù)據(jù)的權(quán)值根據(jù)應(yīng)用場景和需求人為設(shè)定;
[0013] 1.5根據(jù)服務(wù)評價成績從大到小對備選服務(wù)排序,并計(jì)算各備選服務(wù)的被調(diào)用概 _
^中,InvPri為排序第i個的備選服務(wù)的概率;Qsi和Q sj分別為排序 第i個和第j個的備選服務(wù)的服務(wù)評價成績;Wi和Wj分別為Qsi和Qsj的修正權(quán)值,Wi = n-i,Wi = n-j; η為備選服務(wù)數(shù);
[0014] 1.6根據(jù)被調(diào)用概率從備選服務(wù)集中獲得調(diào)用目標(biāo)服務(wù)進(jìn)行調(diào)用,并從備選服務(wù) 集中剔除作為調(diào)用目標(biāo)服務(wù)的備選服務(wù);
[0015] 步驟2,檢測調(diào)用目標(biāo)服務(wù)的運(yùn)行狀況,若運(yùn)行成功,直接結(jié)束或重啟被停止運(yùn)行 的備選服務(wù)后結(jié)束;否則,執(zhí)行步驟3;
[0016] 步驟3,被動出錯修復(fù),本步驟進(jìn)一步包括:
[0017] 3.1停止運(yùn)行調(diào)用目標(biāo)服務(wù);
[0018] 3.2若當(dāng)前備選服務(wù)集為空集,結(jié)束并返回錯誤信息;否則,對當(dāng)前備選服務(wù)集執(zhí) 行子步驟1.2~1.6。
[0019] 服務(wù)質(zhì)量指標(biāo)是服務(wù)質(zhì)量信息的具體表現(xiàn)形式。本發(fā)明中服務(wù)質(zhì)量指標(biāo)是能夠體 現(xiàn)服務(wù)在調(diào)用過程中所能提供的表現(xiàn)情況的信息,可以為下述指標(biāo)中的多種:(1)服務(wù)的歷 史運(yùn)行狀況相關(guān)的指標(biāo)、(2)服務(wù)運(yùn)行平臺的運(yùn)行表現(xiàn)相關(guān)的指標(biāo)、(3)服務(wù)運(yùn)行平臺的配 置水平相關(guān)的指標(biāo)、(4)服務(wù)運(yùn)行網(wǎng)絡(luò)的穩(wěn)定性和傳輸效率相關(guān)的指標(biāo)。服務(wù)質(zhì)量指標(biāo)根據(jù) 需求人為選擇。
[0020] 上述,服務(wù)的歷史運(yùn)行狀況相關(guān)的指標(biāo)可以為服務(wù)的平均成功率、平均運(yùn)行時長 等;服務(wù)運(yùn)行平臺的運(yùn)行表現(xiàn)相關(guān)的指標(biāo)可以為穩(wěn)定運(yùn)行時長、歷史崩潰率等;服務(wù)運(yùn)行網(wǎng) 絡(luò)的穩(wěn)定性與傳輸效率相關(guān)的指標(biāo)可以為網(wǎng)絡(luò)平均傳輸速率等。
[0021] 子步驟1 . 3中,對數(shù)值型服務(wù)評價指標(biāo),采用公?
和
:寸效益型和成本型的服務(wù)評價指標(biāo)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,其中,Xk表示當(dāng) 前備選服務(wù)的第k個服務(wù)評價指標(biāo)數(shù)據(jù),xl表示處的標(biāo)準(zhǔn)化數(shù)據(jù),maxk和mink分別為所有備 選服務(wù)的第k個服務(wù)評價指標(biāo)數(shù)據(jù)中的最大值和最小值。
[0022] 上述效益型的服務(wù)評價指標(biāo)是指,當(dāng)效益型的服務(wù)評價指標(biāo)的值越大時,表示服 務(wù)表現(xiàn)越好,例如,服務(wù)的平均成功率;成本型的服務(wù)評價指標(biāo)則正好相反,當(dāng)成本型的服 務(wù)評價指標(biāo)的值越小時,表示服務(wù)表現(xiàn)越好,例如,服務(wù)的平均運(yùn)行時長。
[0023] 子步驟1.3中,對非數(shù)值型服務(wù)評價指標(biāo),先人工賦值,再進(jìn)行標(biāo)準(zhǔn)化。
[0024] 例如,若非數(shù)值型服務(wù)評價指標(biāo)為布爾型,其值包括"真"和"假"兩種,可人為將數(shù) 值1賦值給"真",將數(shù)值〇賦值給"假"。對計(jì)算機(jī)配置,由于配置有多種情況,則針對各情況 分別賦值。
[0025]步驟2中,采用基于java的代理機(jī)制檢測調(diào)用目標(biāo)服務(wù)的運(yùn)行狀況。
[0026] 本發(fā)明中,服務(wù)質(zhì)量信息意義重大,服務(wù)質(zhì)量指標(biāo)即服務(wù)質(zhì)量信息的具體形式。圖 1為服務(wù)質(zhì)量信息的組成示意圖。服務(wù)質(zhì)量信息的真實(shí)性直接決定了本發(fā)明容錯策略的執(zhí) 行效率。每次服務(wù)調(diào)用及服務(wù)出錯后所產(chǎn)生的運(yùn)行數(shù)據(jù)均第一時間記錄,以保證服務(wù)評價 成績的真實(shí)性與有效性。
[0027] 當(dāng)服務(wù)為新注冊服務(wù)時,由于其從未運(yùn)行過,因此服務(wù)質(zhì)量信息不可知。這時需要 查詢環(huán)境中是否有同名服務(wù)存在,若存在同名服務(wù),則將同名服務(wù)的服務(wù)評價成績平均值 賦值給該新注冊服務(wù),作為新注冊服務(wù)的服務(wù)評價成績。若不存在同名服務(wù),則根據(jù)經(jīng)驗(yàn)對 新注冊服務(wù)賦予臨時服務(wù)評價成績。由于新注冊服務(wù)從未運(yùn)行過,因此其沒有對應(yīng)的服務(wù) 質(zhì)量信息,所以賦予其臨時服務(wù)評價成績;當(dāng)該新注冊服務(wù)被系統(tǒng)調(diào)用后,則根據(jù)其具體表 現(xiàn)更新服務(wù)質(zhì)量信息。
[0028] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下特點(diǎn)和有益效果:
[0029] 1、本發(fā)明采用主動甄別服務(wù)和被動出錯修復(fù)相結(jié)合的方式達(dá)到容錯目的,在服務(wù) 調(diào)用前,通過主動甄別服務(wù)方式選擇合適的調(diào)用目標(biāo)服務(wù),以提高本次服務(wù)調(diào)用的成功率 和運(yùn)行效率。在服務(wù)調(diào)用過程中,通過服務(wù)檢測收集服務(wù)的運(yùn)行參數(shù)并捕捉服務(wù)調(diào)用的出 錯信息;當(dāng)捕捉到出錯信息時,利用出錯修復(fù)方法對調(diào)用過程進(jìn)行修復(fù),以提高系統(tǒng)穩(wěn)定 性,從而被動保證服務(wù)成功。
[0030] 2、本發(fā)明中,服務(wù)質(zhì)量信息十分重要,該信息越真實(shí)有效,越能幫助系統(tǒng)提高容錯 效率,優(yōu)化調(diào)用;調(diào)用的優(yōu)化可保證系統(tǒng)運(yùn)行的高效性和恢復(fù)的有效性,從而減少不必要的 容錯開銷。
【附圖說明】
[0031 ]圖1為服務(wù)質(zhì)量信息的組成示意圖;
[0032]圖2為本發(fā)明流程示意圖;
[0033] 圖3為本發(fā)明實(shí)施例的系統(tǒng)結(jié)構(gòu)圖;
[0034] 圖4為實(shí)施例中主動服務(wù)甄選流程圖;
[0035] 圖5為實(shí)施例中被動出錯修復(fù)示意圖。
【具體實(shí)施方式】
[0036] 下面將詳細(xì)描述本發(fā)明的具體實(shí)施例。應(yīng)當(dāng)注意,這里描述的實(shí)施例只用于舉例 說明,并不用于限制本發(fā)明。
[0037] 本發(fā)明通過主動甄選服務(wù)提高服務(wù)調(diào)用的先驗(yàn)成功率,通過被動出錯修復(fù)提高服 務(wù)調(diào)用的運(yùn)行實(shí)際運(yùn)行成功率。圖2為本發(fā)明容錯策略流程示意圖,其中被動出錯修復(fù)是容 錯策略得以成功運(yùn)行的有力保證,主動甄選服務(wù)是容錯策略效率與可靠性有力提升的保 證。僅有甄選服務(wù)方案的容錯策略不能保證服務(wù)運(yùn)行的可靠性,而僅具有出錯修復(fù)方案的 容錯策略不能保證系統(tǒng)運(yùn)行的執(zhí)行效率。兩者結(jié)合是有效完成容錯工作的必要保證。
[0038] 本實(shí)施例中,將面向服務(wù)質(zhì)量評價的OSGi容錯策略應(yīng)用于存儲管理平臺。該平臺 中,運(yùn)行著若干不同版本文件的上傳服務(wù)與下載服務(wù),各版本服務(wù)具有不同的運(yùn)行表現(xiàn),其 運(yùn)行成功率、運(yùn)行速度等指標(biāo)不相同。容錯策略用于維護(hù)系統(tǒng)正常運(yùn)行,保證用戶上傳下載 正確完成。
[0039]圖3為本發(fā)明實(shí)施例的系統(tǒng)結(jié)構(gòu)圖,以O(shè)SGi R5作為框架環(huán)境,以R-〇SGi作為分布 式擴(kuò)展方案。系統(tǒng)基礎(chǔ)層代表基礎(chǔ)硬件與軟件環(huán)境。系統(tǒng)中間部分包括服務(wù)池和實(shí)現(xiàn)容錯 策略的容錯中間層,服務(wù)池用來維護(hù)系統(tǒng)中所有服務(wù),容錯中間層具有實(shí)現(xiàn)了上述所有功 能的代理模塊、調(diào)度模塊、信息中心以及實(shí)現(xiàn)分布式環(huán)境維護(hù)的管理