徐 健
(中國移動通信集團(tuán)福建有限公司,福州 350003)
隨著微服務(wù)架構(gòu)技術(shù)的發(fā)展,為了避免重復(fù)開發(fā),提升開發(fā)效率,各大企業(yè)在開發(fā)功能模塊時,通過搭建微服務(wù)平臺將企業(yè)的各功能模塊微服務(wù)化,每個服務(wù)都具有自己獨立的生命周期和服務(wù)邊界,可以獨立部署、獨立維護(hù)、獨立擴(kuò)展,服務(wù)與服務(wù)之間通過統(tǒng)一的API進(jìn)行相互通信,實現(xiàn)功能模塊的快速部署和調(diào)用.然而,在微服務(wù)完成部署應(yīng)用一段時間后,隨著對業(yè)務(wù)需求的不斷變更,該微服務(wù)對業(yè)務(wù)的支撐價值逐漸變小,為了促使開發(fā)人員對低應(yīng)用價值的微服務(wù)進(jìn)行優(yōu)化和升級,定期對微服務(wù)進(jìn)行公開、公正的評價.當(dāng)前,針對這些微服務(wù)管理是根據(jù)微服務(wù)的調(diào)用頻率及最后一次調(diào)用時間,判斷該微服務(wù)的應(yīng)用價值,缺乏一定的公正性,且數(shù)據(jù)容易被篡改.為了對每個微服務(wù)進(jìn)行公開透明的評價,本文基于區(qū)塊鏈的技術(shù)定期對微服務(wù)發(fā)起評價,并授權(quán)多個節(jié)點對微服務(wù)進(jìn)行多維度打分評價,保障微服務(wù)各維度的評分結(jié)果不可篡改、可追溯;然后,基于微服務(wù)各維度不可篡改的評價分?jǐn)?shù),結(jié)合層次分析法和熵權(quán)法構(gòu)建微服務(wù)的評價模型,計算微服務(wù)的綜合得分,最終實現(xiàn)微服務(wù)的智能化管理.
區(qū)塊鏈的去中心化、可追溯、防篡改等特性已受到了各行各業(yè)的關(guān)注,其核心技術(shù)主要由加密算法、共識算法、智能合約、P2P 網(wǎng)絡(luò)等組成.其中,共識機(jī)制算法主要有以下幾種:工作量證明(Proof of work,PoW)[1,2],權(quán)益證明(Proof of Stake,PoS)[3]和拜占庭容錯(PBFT)[4-6]等.區(qū)塊鏈?zhǔn)怯烧麄€網(wǎng)絡(luò)節(jié)點進(jìn)行記賬,而并非某一個中心機(jī)構(gòu),確保了多個參與方之間在數(shù)據(jù)層面不可篡改,且能夠追溯歷史數(shù)據(jù)[7],基于區(qū)塊鏈技術(shù)可構(gòu)建多方參與去信任化的交易系統(tǒng)[8].“中本聰”于2008年首次發(fā)表了關(guān)于比特幣的文章[9],首個區(qū)塊鏈貨幣加密系統(tǒng)——比特幣(Bitcoin)也在次年發(fā)布,實現(xiàn)了網(wǎng)絡(luò)上互不信任的個體可以在無中介的情況下使用比特幣進(jìn)行貨幣交易.2014年,以太坊(Ethereum)[10]在比特幣的基礎(chǔ)上首次將智能合約應(yīng)用到區(qū)塊鏈.在對區(qū)塊鏈技術(shù)的不斷完善過程中,其適用的范圍也在擴(kuò)大,為了適用于商業(yè)應(yīng)用場景,出現(xiàn)了去中心化程度較低的聯(lián)盟鏈和私有鏈.2017年,Linux 基金會發(fā)起了開源的區(qū)塊鏈項目超級賬本(Hyperledger)[11],其主要有5 個子項目:Fabric、Sawtooth、Indy、Burrow和Iroha.其中,最受關(guān)注的是Fabric[12]聯(lián)盟鏈,不同與比特幣和以太坊,Hyperledger Fabric是專門針對于企業(yè)級的區(qū)塊鏈應(yīng)用而設(shè)計的聯(lián)盟鏈平臺,成員節(jié)點必須經(jīng)過授權(quán)才可以加入[13].區(qū)塊鏈作為數(shù)字貨幣的底層技術(shù)支持,保障了數(shù)字貨幣的隱私和匿名性[14].當(dāng)今,各企業(yè)對區(qū)塊鏈研究現(xiàn)狀呈現(xiàn)指數(shù)型的增長,在共識機(jī)制、數(shù)據(jù)管理、信息安全等方面的應(yīng)用都有較多的研究[15-18],但在評價系統(tǒng)中的應(yīng)用研究較少.
本文利用Hyperledger Fabric 區(qū)塊鏈技術(shù),授權(quán)參與微服務(wù)評分用戶節(jié)點對指定的微服務(wù)的維度進(jìn)行打分,系統(tǒng)利用Hyperledger Fabric的智能合約對用戶節(jié)點的打分進(jìn)行記賬,這樣保障了微服務(wù)的評價數(shù)據(jù)不可篡改,且后期可進(jìn)行追溯,在得到微服務(wù)各維度的評分后,利用綜合評價的方法計算微服務(wù)的綜合得分.綜合評價常用的方法有層次分析法(AHP)、熵值法[19]、和逼近理想解排序(TOPSIS)[20]等.然而,層次分析法需要先對采用1-9 標(biāo)度法和判斷矩陣中每一層次各個因素之間的相對重要性數(shù)值,具有一定的主觀性;與層次分析法相比,熵權(quán)法具有較高客觀性,其主要依據(jù)評價數(shù)據(jù)計算權(quán)重,但其對每一次跟新的評價數(shù)據(jù)重新計算權(quán)值,造成每次計算得到的權(quán)數(shù)會發(fā)生變化[21].本文提出一種基于AHP 與熵值法結(jié)合的評價方法構(gòu)建微服務(wù)綜合評價模型,大大提高了評價結(jié)果的合理性,最后,通過微服務(wù)的評價數(shù)據(jù),驗證了本文中評價方法的有效性.為微服務(wù)的智能優(yōu)化管理提供了有效的數(shù)據(jù)支撐.
2015年12月,Linux 基金會和30 家初期公司成立了Hyperledger 項目,以推廣跨行業(yè)區(qū)塊鏈技術(shù),并為透明、開放的企業(yè)級分布式賬本技術(shù)提供了開源代碼實現(xiàn).Hyperledger Fabric 結(jié)構(gòu)采用模塊化的架構(gòu)設(shè)計,并引入了權(quán)限管理,因而具有高度的可擴(kuò)展性和靈活性.從應(yīng)用的角度看,Hyperledger Fabric 結(jié)構(gòu)可分為身份管理、賬本管理、交易管理和智能合約4 個部分;從自下而上的角度看,Hyperledger Fabric 結(jié)構(gòu)分為成員管理、共識服務(wù)、鏈碼服務(wù)3 個部分.安全性問題是企業(yè)級區(qū)塊鏈關(guān)心的問題,需要底層加密技術(shù)的支持,Fabric 專門定義了一個BCCSP (BlockChain Cryptographic Service Provider),使其實現(xiàn)密鑰生成、哈希運算、加密解密等基礎(chǔ)功能.Hyperledger Fabric的邏輯架構(gòu)如圖1所示.
圖1 Hyperledger Fabric 邏輯架構(gòu)圖
Hyperledger Fabric 作為一種聯(lián)盟鏈,其主要由對等節(jié)點(Peer node)、鏈碼(Chaincode,即智能合約)、成員服務(wù)提供者(Membership Service Provider,MSP)、通道(Channel)、排序服務(wù)(Ordering Service)、客戶端(Client)等組成.
Peer node 主要分為兩類:背書節(jié)點(Endorser)和確認(rèn)節(jié)點(Committer).其中,Endorser 主要對客戶端發(fā)出的請求按照已制定的策略進(jìn)行模擬交易和簽名背書,然后返回給客戶端.Committer 主要對交易的請求進(jìn)行核查,并向區(qū)塊寫入交易,更新賬本.一般只有部分Peer node 具有確認(rèn)功能.
Chaincode:Hyperledger Fabric 提供了用于系統(tǒng)維護(hù)的系統(tǒng)鏈碼和通過執(zhí)行可編程的代碼邏輯與賬本交互的用戶鏈碼兩種.
MSP:其作為Hyperledger Fabric 網(wǎng)絡(luò)的一個重要組件,定義了相關(guān)的頒發(fā)和校驗數(shù)字證書的標(biāo)準(zhǔn)化規(guī)范,對區(qū)塊鏈網(wǎng)絡(luò)中各組織和成員的權(quán)限進(jìn)行管控,負(fù)責(zé)成員的身份管理和認(rèn)證.在初始化MSP的一個實例,需要在每一個peer node、Ordering Service 指定其配置,包含被授權(quán)組織的MSP 相關(guān)信息,并在Channel上啟用Peer node、Ordering Service 身份驗證和數(shù)字簽名驗證.
Channel:其主要功能是對區(qū)塊鏈網(wǎng)絡(luò)上的交易進(jìn)行隔離,即使對于同一個Peer node,在提交到不同通道的交易中的訪問策略、組織身份及排序服務(wù)也是相互獨立的,這樣,不同通道內(nèi)的交易可并行進(jìn)行,提升了平臺的性能和擴(kuò)展性,同時,通道的外部成員是無法訪問和篡改通道內(nèi)部的數(shù)據(jù),保障了通道內(nèi)數(shù)據(jù)的安全性.
Ordering Service:它是由1 個或多個排序節(jié)點組成,主要負(fù)責(zé)在某段時間內(nèi),收集到由不同客戶端提交的多個合法交易請求,按提交交易請求的時間順序進(jìn)行排序,然后組成區(qū)塊數(shù)據(jù)廣播至通道內(nèi)的區(qū)塊鏈網(wǎng)絡(luò).
Client:其主要對區(qū)塊鏈網(wǎng)絡(luò)底層接口進(jìn)行封裝,一般通過 SDK 進(jìn)行調(diào)用,保障應(yīng)用層各功能模塊和區(qū)塊鏈網(wǎng)絡(luò)中各個組件之間的交互.客戶端能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)中發(fā)起交易、監(jiān)聽消息、更新配置、啟動和停止節(jié)點等功能.
Hyperledger Fabric是由多個不同組織的成員、Peer node、Channel、Ordering Service、Client 組成.每個成員都有一個由MSP 提供的唯一標(biāo)識,同一通道內(nèi)的成員可看到所以組織的身份,并可以對其進(jìn)行驗證.
為了滿足對微服務(wù)進(jìn)行公正、透明及可驗證的評價需求,本文利用區(qū)塊鏈技術(shù)的去中心化、數(shù)據(jù)不可篡改、公開透明等特性,將用戶地址、微服務(wù)評價選項的地址、用戶評價分?jǐn)?shù)等信息寫入?yún)^(qū)塊鏈里,基礎(chǔ)數(shù)據(jù)(如用戶基礎(chǔ)信息、微服務(wù)基礎(chǔ)信息等)存入本地數(shù)據(jù)庫Oracle 中.同時,本文基于用戶對微服務(wù)各維度的評分和微服務(wù)維度間的重要程度,將層次分析法(AHP)和熵值法相結(jié)合計算維度的權(quán)值構(gòu)建微服務(wù)綜合評價模型,計算得到微服務(wù)的綜合得分,將其作為微服務(wù)下線的重要參考依據(jù),為微服務(wù)的智能化管理提供數(shù)據(jù)支撐.微服務(wù)評價系統(tǒng)主要由應(yīng)用層和數(shù)據(jù)層組成,用戶可通過編寫SQL 語句查詢基礎(chǔ)數(shù)據(jù),也可通過調(diào)用接口查詢區(qū)塊鏈數(shù)據(jù).本文基于區(qū)塊鏈的微服務(wù)評價系統(tǒng)架構(gòu)設(shè)計如圖2.
圖2 基于區(qū)塊鏈的微服務(wù)評價系統(tǒng)架構(gòu)圖
本文基于區(qū)塊鏈的微服務(wù)評價系統(tǒng)中的應(yīng)用層采用的是B/S 架構(gòu),其中,Web 應(yīng)用主要呈現(xiàn)微服務(wù)評價系統(tǒng)的功能,該系統(tǒng)分為普通用戶和系統(tǒng)用戶兩個模塊,系統(tǒng)用戶有用戶評價授權(quán)管理、評價管理、新建微服務(wù)評價等模塊;其主要負(fù)責(zé)微服務(wù)的評價事務(wù),創(chuàng)建新的微服務(wù)投票項并進(jìn)行維護(hù),同時對普通用戶進(jìn)行授權(quán)管理.普通用戶有參與評價、查看評價結(jié)果、驗證評價結(jié)果等模塊功能.客戶端負(fù)責(zé)了與Web 服務(wù)器的交互,通過調(diào)用接口實現(xiàn)Web 服務(wù)器與區(qū)塊鏈之間的數(shù)據(jù)流轉(zhuǎn),將用戶評價數(shù)據(jù)打包寫入?yún)^(qū)塊鏈上,同時響應(yīng)對評價結(jié)果數(shù)據(jù)的查詢請求.基于區(qū)塊鏈的微服務(wù)評價的主要過程如下:
(1)系統(tǒng)用戶發(fā)起某個微服務(wù)的評價,系統(tǒng)生成該微服務(wù)評價的區(qū)塊,在發(fā)起評價后,系統(tǒng)用戶授權(quán)普通用戶對該微服務(wù)進(jìn)行評價.
(2)普通用戶在通過系統(tǒng)授權(quán)后,可對該微服務(wù)的各個維度進(jìn)行打分,評價完成后,系統(tǒng)利用加密算法對用戶的評價結(jié)果數(shù)據(jù)進(jìn)行加密并生成密鑰,用戶可根據(jù)密鑰查看并驗證評價結(jié)果,驗證完成后,系統(tǒng)將驗證記錄等執(zhí)行結(jié)果進(jìn)行打包寫入?yún)^(qū)塊鏈中.
(3)綜合評價模型通過調(diào)用區(qū)塊鏈數(shù)據(jù)查詢接口,查詢用戶對微服務(wù)各維度的評價分?jǐn)?shù),并計算微服務(wù)綜合得分.用戶可在客戶端進(jìn)行信息查詢和驗證.
為了快速查詢基礎(chǔ)信息,本文的數(shù)據(jù)層將區(qū)塊鏈數(shù)據(jù)和基礎(chǔ)數(shù)據(jù)分開存儲.其中,本地Oracle 數(shù)據(jù)庫主要存儲用戶和微服務(wù)的基礎(chǔ)信息;區(qū)塊鏈層則由網(wǎng)絡(luò)層和存儲層構(gòu)成,主要通過搭建P2P 網(wǎng)絡(luò)層構(gòu)建分布式數(shù)據(jù)庫,在微服務(wù)評價數(shù)據(jù)打包發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)中時,實現(xiàn)數(shù)據(jù)在區(qū)塊鏈中分布式存儲,保障數(shù)據(jù)去中心化存儲,同時,該區(qū)塊層利用數(shù)字簽名等加密算法以實現(xiàn)數(shù)據(jù)的不可篡改,通過共識算法保證區(qū)塊鏈中數(shù)據(jù)的一致性,同時,根據(jù)時間戳將區(qū)塊以首尾相連的鏈?zhǔn)浇Y(jié)構(gòu)進(jìn)行保存.
與其他采用訂單執(zhí)行交易模型的區(qū)塊鏈網(wǎng)絡(luò)不同,Fabric 將交易處理流程解耦至不同類型的節(jié)點進(jìn)行,這在一定程度上降低了單個節(jié)點的負(fù)載,提升了交易的效率.圖3描述了基于Fabric 區(qū)塊鏈技術(shù),某評價用戶對單個微服務(wù)進(jìn)行評價的具體流程,其主要包括3 個階段:(1)背書階段:在選擇的對等節(jié)點上模擬微服務(wù)各維度的評價結(jié)果并采集修改的狀態(tài);(2)排序階段:通過協(xié)商一致協(xié)議執(zhí)行微服務(wù)各維度的評價;(3)驗證階段:驗證后提交到分類賬本.具體的微服務(wù)評價流程如下:
(1)評價用戶注冊/登錄:評價用戶通過客戶端利用SDK 調(diào)用證書服務(wù)(CA)進(jìn)行注冊,獲取身份證書,在注冊成功之后就擁有了合法身份,并憑借該身份加入聯(lián)盟通道.
(2)發(fā)送微服務(wù)評價提案:客戶端在MSP 獲取身份證書加入通道后,對微服務(wù)各維度進(jìn)行打分,在完成打分后提交評價結(jié)果,系統(tǒng)將發(fā)送本次評價提案(Proposal),把帶有本次評價要調(diào)用的合約標(biāo)識、合約方法、參數(shù)信息、客戶端簽名等信息發(fā)送給背書(Endorser)節(jié)點.
(3)背書和模擬用戶評價:背書節(jié)點收到用戶評價提案后,驗證簽名并確定提交者是否具有執(zhí)行操作的權(quán)限,同時根據(jù)背書策略模擬執(zhí)行智能合約,并將結(jié)果及其CA 證書簽名返回給客戶端.
(4)發(fā)送微服務(wù)評價結(jié)果:客戶端收到背書節(jié)點返回的信息后,判斷提案結(jié)果是否一致,并核查背書的合法性,核查一致后,把數(shù)據(jù)進(jìn)行打包到組成一個交易并簽名,發(fā)送給排序服務(wù)(Orderers),否則中止處理.
(5)微服務(wù)評價排序:排序節(jié)點根據(jù)共識算法對接收到的微服務(wù)評價結(jié)果進(jìn)行排序,并按照接受到的評價結(jié)果時間將一批微服務(wù)的評價數(shù)據(jù)打包進(jìn)對應(yīng)通道的區(qū)塊,然后廣播至通道內(nèi)的確認(rèn)節(jié)點;
(6)微服務(wù)評價結(jié)果驗證和寫入:確認(rèn)節(jié)點收到廣播后,會對區(qū)塊中的每次評價結(jié)果進(jìn)行校驗,檢查微服務(wù)評價依賴的輸入輸出是否符合當(dāng)前區(qū)塊鏈的狀態(tài),核查完成后將區(qū)塊追加到本地的區(qū)塊鏈,并修改世界狀態(tài).
(7)微服務(wù)評價賬本更新公告:告知客戶端該微服務(wù)評價結(jié)果是否成功更新.
圖3 基于 Fabric的微服務(wù)評價流程示意圖
層次分析法 (Analytic Hierarchy Process,AHP)是一種將定性和定量相結(jié)合的主觀賦權(quán)方法,其主要根據(jù)主觀對各評價維度之間的重要度進(jìn)行量化,構(gòu)造一個判斷矩陣,然后利用數(shù)學(xué)相關(guān)計算方法解決了求解多目標(biāo)和多準(zhǔn)則特性的決策問題.AHP 主要適用于對結(jié)果無法通過主觀判斷直接計算的場景,因此,在主觀綜合評價的場景一般選擇AHP 評價方法.然而,基于AHP 計算的評價結(jié)果,其主觀性較強(qiáng),有較為明顯的缺陷,在使用AHP 構(gòu)建綜合評價單模型時,評價者根據(jù)個人主觀對各維度重要度的判斷給出標(biāo)度值,這樣構(gòu)造的判斷矩陣受個人影響較大,并且最后計算各維度的權(quán)值也是固定不變.在所有的評價者對利用AHP 方法計算的一個評價維度進(jìn)行評價的分值都很接近時,會造成該維度的權(quán)值較高,但區(qū)分度較低的情況,這樣最終的評價結(jié)果可信度不高.熵值法作為一種與AHP不同的客觀賦權(quán)法,首先計算評價維度的信息熵,評價維度計算得到的熵值就越小,顯示該評價維度的離散程度越大,反應(yīng)的信息量也就越多,最終計算的權(quán)值就會越大,反之則評價維度最終計算的就越小.本文結(jié)合熵值法和AHP 計算各評價維度的權(quán)值,可將評價維度評價分值區(qū)別度不高的重要維度權(quán)值適當(dāng)降低,將評價值相差較大的維度的權(quán)重適當(dāng)提高,實現(xiàn)固定的主觀賦權(quán)與動態(tài)的客觀賦權(quán)相結(jié)合,提升各評價維度權(quán)值的可信度.
為了對微服務(wù)進(jìn)行合理的價值評估,本文結(jié)合AHP和熵值法根據(jù)微服務(wù)的評價結(jié)果構(gòu)建綜合評價模型,計算微服務(wù)評價的綜合得分,首先通過專家評判構(gòu)建微服務(wù)6 個評價維度的判斷矩陣.微服務(wù)評價維度主要包括:功能可用性(A1)、服務(wù)穩(wěn)定性(A2)、服務(wù)易用性(A3)、服務(wù)擴(kuò)展性(A4)、執(zhí)行效率(A5)、文檔完整度(A6).經(jīng)專家全面分析每個微服務(wù)的地位和作用,再填寫咨詢表并進(jìn)行統(tǒng)計,通過1~9 標(biāo)度法構(gòu)造判斷矩陣,如表1所示.
表1 微服務(wù)評價6 個維度的判斷矩陣
根據(jù)上表微服務(wù)各維度的判斷矩陣,利用AHP 計算各維度的權(quán)值,結(jié)果如下:
然后,根據(jù)微服務(wù)各維度的評價結(jié)果,利用熵值法的計算各維度的信息效用值,具體計算過程如下:
(1)對微服務(wù)的評價結(jié)果數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理:
(2)計算第j個評價維度下第i個評價用戶的評價維度值的比重
(3)計算第j個評價維度的熵值其中k=
(4)計算第j個評價維度的信息效用值dj=1-ej;
最后,結(jié)合AHP和熵值法分別計算的第j個評價維度的權(quán)重值wAj和信息效用值dEj,計算得到一個新的權(quán)重,公式為:w′j=wAj*dEj.再將w′j進(jìn)行歸一化處理,得到最終的第j個評價維度組合賦權(quán)為:
本文基于Fabric 區(qū)塊鏈的微服務(wù)評價系統(tǒng),利用5臺服務(wù)器共搭建了20 臺虛擬主機(jī),每臺的配置為CPU 2核4 GHz,主頻2.0 GHz,硬盤250 GB.其中2 臺用于搭建Oracle 數(shù)據(jù)庫存儲基礎(chǔ)信息,2 臺用于構(gòu)建數(shù)據(jù)中心網(wǎng)絡(luò)共享系統(tǒng),1 臺用于搭建綜合評價模型,15 臺用于構(gòu)造P2P 網(wǎng)絡(luò),虛擬15 個組織,利用Docker 分別構(gòu)建2 個認(rèn)可的對等點,則總共30 個對等節(jié)點,有一個Orderer節(jié)點和一個Kafka Zookeeper 集群支持它,所有節(jié)點和Kafka Zookeeper 都運行在數(shù)據(jù)中心網(wǎng)絡(luò)虛擬機(jī)上.
為了測試基于Fabric 區(qū)塊鏈的微服務(wù)評價系統(tǒng)在多用戶操作時的運行效率,本文分別以5 個、10 個、20個并發(fā)請求對系統(tǒng)進(jìn)行測試,統(tǒng)計從發(fā)起請求到區(qū)塊寫入的時長,以驗證系統(tǒng)的響應(yīng)速度,結(jié)果如表2所示.
表2 基于Fabric 區(qū)塊鏈的微服務(wù)評價系統(tǒng)相應(yīng)速度檢測
由表2可知,基于Hyperledger Fabric的微服務(wù)評價系統(tǒng)可支持多用戶在同一時間進(jìn)行操作發(fā)送請求,其隨著并發(fā)數(shù)的增加,相應(yīng)時長也在增加,但依然在用戶的可接受范圍.Hyperledger Fabric 區(qū)塊鏈與以太坊等公有鏈不同,其挖礦的過程排序節(jié)點完成的,因此交易效率較高,能夠滿足較多用戶同時對微服務(wù)各維度進(jìn)行打分評價的需求.
本文收集10 個區(qū)塊鏈評價用戶對某個微服務(wù)各維度進(jìn)行打分,由于當(dāng)指標(biāo)評分標(biāo)準(zhǔn)超過5 級以后,所增加的標(biāo)度帶來的效用很小[22],因此本文采用5 分制,每個維度的評價等級 α=(5,4,3,2,1).該微服務(wù)6 個維度的評價結(jié)果如表3.
表3 微服務(wù)評價6 個維度的判斷矩陣
利用10 個用戶對微服務(wù)的6 個維度的打分表,計算6 個維度指標(biāo)值的信息效用值,計算結(jié)果如下:
根據(jù)公式w′j=wAj*dEj和式(1),得到結(jié)合層次分析法和熵值法得到各維度最終權(quán)重為:
分別利用AHP、熵值法及其相結(jié)合的方法計算的微服務(wù)各維度權(quán)值結(jié)果如表4.
表4 不同計算方法的微服務(wù)各維度權(quán)值對比
上述結(jié)果顯示,對于維度A1(功能可用性),在僅使用AHP 確定的權(quán)重較大,經(jīng)由熵值法結(jié)合調(diào)整后,權(quán)重值被調(diào)小.這樣既可以保證重要指標(biāo)不被剔除,又可以避免因指標(biāo)值過于相近導(dǎo)致該指標(biāo)失去應(yīng)有的價值.對于維度A4(服務(wù)擴(kuò)展性),是一個重要的指標(biāo),但這一指標(biāo)被評價專家所忽視,不同評價用戶在這一指標(biāo)上的表現(xiàn)差別很大,該指標(biāo)初始AHP 權(quán)重較小,但由于其成為將微服務(wù)區(qū)分出優(yōu)劣的高效度指標(biāo)而被賦以更大的權(quán)重.這些說明在微服務(wù)保障功能可用后,其擴(kuò)展性是評價用戶關(guān)注的重點,在開發(fā)微服務(wù)功能時需要考慮其通用性,提升微服務(wù)的應(yīng)用價值.
本文將Hyperledger Fabric 區(qū)塊鏈的技術(shù)與評價系統(tǒng)相結(jié)合,將用戶對微服務(wù)各維度打分?jǐn)?shù)據(jù)進(jìn)行記賬,保障了微服務(wù)評價數(shù)據(jù)的透明、不可篡改、可追溯,評價數(shù)據(jù)安全可信.Hyperledger Fabric的區(qū)塊鏈類型為聯(lián)盟鏈,其吞吐量相比比特幣和以太坊要高,本系統(tǒng)可同時支持較多評價用戶的并發(fā)量.同時,利用AHP和熵值法相結(jié)合的微服務(wù)維度權(quán)值計算方法,構(gòu)建微服務(wù)綜合評價模型,保證重要指標(biāo)的權(quán)值過大,又避免了因維度的評價值過于相近導(dǎo)致該指標(biāo)失去應(yīng)有的價值.更加合理的反應(yīng)了微服務(wù)的真實價值,為微服務(wù)的智能化管理提供有效的數(shù)據(jù)支撐.下一步將對系統(tǒng)的共識算法進(jìn)行優(yōu)化,提升達(dá)成共識的速度和吞吐量,并將改評價系統(tǒng)應(yīng)用到其他需要評價的業(yè)務(wù)中.