宋 鑫,樊志強,2
(1.華北計算技術(shù)研究所,北京 100083; 2.軍事科學(xué)院,北京 100091)
系統(tǒng)架構(gòu)是大型、復(fù)雜信息系統(tǒng)的設(shè)計和藍圖,處于系統(tǒng)生命周期的早期,依據(jù)系統(tǒng)架構(gòu)開展仿真驗證,可以預(yù)先估計所建設(shè)的系統(tǒng)能否滿足用戶的預(yù)期或關(guān)注點,從而對設(shè)計方案進行決策[1-2]。
隨著服務(wù)化技術(shù)的發(fā)展,面向服務(wù)的架構(gòu)(SOA)成為系統(tǒng)架構(gòu)設(shè)計的一種主流架構(gòu)。SOA架構(gòu)將系統(tǒng)按照實際業(yè)務(wù)拆分成大小合適、獨立部署的服務(wù)模塊,每個服務(wù)模塊之間相互獨立,通過在這些服務(wù)模塊之間定義良好的接口和協(xié)議來組織系統(tǒng)架構(gòu)[3-4]。
SOA架構(gòu)在信息系統(tǒng)中也得到了廣泛的應(yīng)用,把信息系統(tǒng)拆分成實現(xiàn)不同子功能的信息服務(wù)模塊,通過模塊之間的協(xié)作實現(xiàn)規(guī)劃的系統(tǒng)功能。SOA架構(gòu)是一種基于服務(wù)組件的模型,在采用SOA架構(gòu)的信息系統(tǒng)架構(gòu)設(shè)計過程中,組件是以信息服務(wù)的形式提供給架構(gòu)師和開發(fā)者。因此對信息服務(wù)性能的建模是SOA架構(gòu)信息系統(tǒng)仿真的關(guān)鍵,決定了架構(gòu)仿真的準(zhǔn)確性、可信性。
本文以信息服務(wù)的性能建模為研究目標(biāo),旨在以信息從產(chǎn)生到被使用過程中經(jīng)歷的不同生命周期為依據(jù),按照服務(wù)的功能對其進行3個層次的分類,并對每個類別進行定義,分析影響該類服務(wù)性能屬性的因素。并進一步提出基于Laguerre前向神經(jīng)網(wǎng)絡(luò)的信息服務(wù)性能建模方法。并且以信息檢索服務(wù)為例,通過實驗驗證所提出的6個影響因素的正確性和必要性以及信息服務(wù)性能建模方法的可行性。
對于信息服務(wù)性能建模的研究可按照信息服務(wù)系統(tǒng)開發(fā)前和開發(fā)后分為2類,第一類是在開發(fā)前就可以進行的基于架構(gòu)的仿真,第二類是在開發(fā)后依據(jù)服務(wù)運行時數(shù)據(jù)進行的服務(wù)性能預(yù)測,如表1所示。
表1 信息服務(wù)性能建模相關(guān)工作
針對以上研究中存在的問題,本文提出一種基于信息活動類別的性能建模方法,以期能夠在架構(gòu)設(shè)計階段對還未進行開發(fā)的服務(wù)進行性能仿真分析,對于預(yù)測的性能屬性給出相關(guān)配置下的準(zhǔn)確數(shù)值,進而支持包含該服務(wù)的系統(tǒng)架構(gòu)仿真。
由于信息服務(wù)的功能不同,影響其性能的因素有很大差別,為了實現(xiàn)支持SOA架構(gòu)的信息服務(wù)性能建模方法,本文基于信息生命周期理論,分析信息處理過程,對信息服務(wù)進行3個層次的分類,最終得到25個細分類別以及每個類別的定義和影響其性能屬性的因素。并且提出基于 Laguerre前向神經(jīng)網(wǎng)絡(luò)的性能建模方法,以實現(xiàn)利用同類型服務(wù)運行時的數(shù)據(jù)對新服務(wù)運行時性能屬性的預(yù)測。
面向服務(wù)是一種設(shè)計范式,用于創(chuàng)建單獨形成的解決方案邏輯單元,以便能夠集中地、重復(fù)地使用它們,以支持基于SOA和面向服務(wù)計算的具體戰(zhàn)略目標(biāo)的實現(xiàn)[16]。信息系統(tǒng)是一個以人為主導(dǎo),利用計算機硬件、軟件、網(wǎng)絡(luò)通信設(shè)備以及其他辦公設(shè)備,進行信息的收集、傳輸、加工、存儲、更新和維護,支持決策、控制和運作的集成化系統(tǒng)[17]。信息服務(wù)分類以信息為主導(dǎo),結(jié)合面向服務(wù)的設(shè)計理念,基于信息活動過程[18]對信息服務(wù)進行分類。從信息生產(chǎn)和信息消費2個角度出發(fā),分3層逐級細化,其中信息生產(chǎn)細分為14類,如表2所示,信息消費細分為11類,如表3所示。
表2 信息生產(chǎn)服務(wù)分類
表3 信息消費服務(wù)分類
針對信息生產(chǎn)的14個細分類別給出具體說明如下:
1)源信息創(chuàng)建。通過人工方式,對信息生產(chǎn)節(jié)點進行觀察記錄以獲得原始信息。
2)源數(shù)據(jù)記錄。通過自動化方式,對信息生產(chǎn)節(jié)點進行實時監(jiān)控和記錄。
3)數(shù)據(jù)庫提取。從已有信息數(shù)據(jù)庫獲取信息。
4)數(shù)據(jù)上傳。數(shù)據(jù)上傳的目的是將收集到的數(shù)據(jù)上傳到上級節(jié)點。
5)信息轉(zhuǎn)換。信息轉(zhuǎn)換將多源異構(gòu)數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的結(jié)構(gòu)化格式。
6)數(shù)據(jù)清洗。數(shù)據(jù)清洗是發(fā)現(xiàn)并糾正數(shù)據(jù)中可識別錯誤的一道程序,包括檢查數(shù)據(jù)一致性,處理無效值和缺失值等。
7)信息集成。信息集成是把不同來源、格式、特點性質(zhì)的信息數(shù)據(jù)在邏輯上或物理上有機的集中。
8)信息編目。信息編目對信息進行分類,組織成統(tǒng)一的信息目錄,以方便信息的共享訪問。
9)數(shù)據(jù)準(zhǔn)備。準(zhǔn)備好信息資源向眾多受眾中的一個或多個發(fā)布。
10)信息分發(fā)。收集和整理好的信息數(shù)據(jù)由系統(tǒng)統(tǒng)一進行分配,主動發(fā)布到有相關(guān)需求的用戶,(對應(yīng)于用戶的訂閱)。
11)信息保存。為了確保信息的長期訪問,將信息按照一定的格式和順序存儲在特定的載體中。
12)信息備份。信息備份是指為防止系統(tǒng)數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)從應(yīng)用主機的硬盤或陣列復(fù)制到其它的存儲介質(zhì)的過程。
13)信息恢復(fù)。信息恢復(fù)是指當(dāng)計算機存儲介質(zhì)損壞或文件丟失的情況下,通過一定的方法和手段將數(shù)據(jù)重新找回,使信息得以再生的技術(shù)。
14)信息遷移。信息遷移是為了符合存儲環(huán)境,或者確保數(shù)據(jù)不受硬件或軟件過時的影響,將數(shù)據(jù)遷移到不同的格式和存儲介質(zhì)的過程。
針對信息收集的11個細分類別給出說明如下:
1)信息檢索。使用者通過(按屬性)關(guān)鍵字查找或按目錄逐級查找的方式檢索所需信息的過程。
2)信息瀏覽。信息瀏覽是指提供文字、圖像及其他信息的瀏覽功能,并且讓用戶能與這些信息進行交互操作。
3)信息挖掘。以大量數(shù)據(jù)樣本為基礎(chǔ),通過算法發(fā)現(xiàn)隱藏于數(shù)據(jù)集中的規(guī)律和信息,得到數(shù)據(jù)(集)的內(nèi)在特征,并以此為依據(jù)進行有目的的信息提取。
4)信息訂閱。信息訂閱是指用戶根據(jù)需求,向系統(tǒng)訂閱感興趣的信息,之后系統(tǒng)會通過內(nèi)部的推送機制,將用戶關(guān)心的最新信息及時主動地推送給用戶。
5)信息訪問。數(shù)據(jù)訪問是使用者實現(xiàn)對數(shù)據(jù)表的增、刪、改、查等操作。
6)信息下載。使用者從服務(wù)節(jié)點將數(shù)據(jù)下載到本地的過程。
7)信息分析。信息分析是為了提取有用信息和形成結(jié)論而采用統(tǒng)計分析方法對收集來的大量數(shù)據(jù)進行分析,將它們加以匯總、理解并消化的過程。
8)信息評估。信息評估是對大量相關(guān)信息進行質(zhì)量評估、相關(guān)性評估和適用性評估,然后經(jīng)過優(yōu)化選擇和比較評價,形成能滿足需求的信息集合的過程。
9)信息展示。采用列表、圖文(諸如柱狀圖、餅狀圖、曲線圖)等方式對使用者關(guān)心的內(nèi)容進行展示。
10)輔助決策。輔助決策是指以形成決策參考方案和應(yīng)對突發(fā)事件的快速反應(yīng)為目的,為決策者提供確定問題,挑選和評價方案等功能。
11)模型構(gòu)建。利用信息數(shù)據(jù)建立數(shù)學(xué)模型或過程模型等。
信息活動分類的目的是便于針對每個細分類別,研究影響其性能屬性的因素,并對每一類信息服務(wù)模型進行性能建模,以實現(xiàn)對信息服務(wù)性能屬性的精準(zhǔn)預(yù)測,進而支持面向服務(wù)架構(gòu)的性能可信仿真。
信息服務(wù)的性能屬性主要包括服務(wù)在系統(tǒng)中運行時的響應(yīng)時間、吞吐量以及資源利用率。以2.1節(jié)中總結(jié)的信息服務(wù)類別為基礎(chǔ),總結(jié)出影響信息服務(wù)性能屬性的4大類因素,如圖1所示。具體到每一個細分類別,應(yīng)在4大類因素的引導(dǎo)下進行細化或增改。
圖1 信息服務(wù)性能屬性影響因素
其中,信息和設(shè)備相關(guān)的因素幾乎影響每一個細分類別,信息相關(guān)的因素包含待處理的數(shù)據(jù)大小、數(shù)據(jù)格式等;設(shè)備相關(guān)的因素包含設(shè)備類型、硬件屬性等;另外,協(xié)議相關(guān)的因素主要影響傳輸相關(guān)服務(wù),包括數(shù)據(jù)傳輸協(xié)議、數(shù)據(jù)交換協(xié)議等;方法相關(guān)的因素包括服務(wù)采用的算法和工具等,主要影響采用特定算法或工具(編譯器等)的服務(wù)性能。
在圖1提出的性能屬性模型的基礎(chǔ)上,要建立影響因素和性能屬性的關(guān)系,實際上是在做函數(shù)擬合,利用神經(jīng)網(wǎng)絡(luò)做函數(shù)擬合已經(jīng)被證明是有效的,深度神經(jīng)網(wǎng)絡(luò)理論上可以擬合任何復(fù)雜的函數(shù)關(guān)系[19-21]。
冉均均等[22]提出了一種改進的Chebyshev 神經(jīng)網(wǎng)絡(luò),通過實驗驗證了擬合精度比最小二乘法以及以往的前向神經(jīng)網(wǎng)絡(luò)擬合方法都要高。肖秀春等[23]提出了基于梯度下降法的Chebyshev前向神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)參數(shù)訓(xùn)練算法,該方法能夠有效地調(diào)整網(wǎng)絡(luò)參數(shù),使之以較高的精度逼近具有復(fù)雜模式的樣本數(shù)據(jù)集。
由于正交多項式的正交屬性,保證了每個激勵函數(shù)的獨立性,因此在訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時有利于降低隱藏層數(shù)量和提升訓(xùn)練速度。但是Chebyshev正交多項式只在[-1,1]之間存在兩兩正交關(guān)系,而實際處理數(shù)據(jù)的范圍可能較大;因此本文采用在[-,+]上兩兩正交的Laguerre 正交多項式[24]作為激勵函數(shù),并且將文獻[23]提出的從x到y(tǒng)的曲線擬合拓展到多輸入的函數(shù)擬合;即在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中采用Laguerre 正交多項式作為隱含層的激活函數(shù),Laguerre 正交多項式遞推關(guān)系如式(1):
(1)
在構(gòu)建具體神經(jīng)網(wǎng)絡(luò)時,神經(jīng)網(wǎng)絡(luò)輸入層的維度應(yīng)與影響因素的個數(shù)相同。第1層隱含層采用Laguerre 正交多項式作為激活函數(shù);第2層隱含層采用ReLU作為激活函數(shù)。整個神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖如圖2所示。
圖2 基于Laguerre多項式的前向神經(jīng)網(wǎng)絡(luò)
圖2中,輸入向量x∈Rm,m等于影響因素數(shù)量;w1、w2、w3分別是隱含層1、隱含層2和輸出層的權(quán)重矩陣。隱含層1神經(jīng)元的輸出為Pj(w1jx),其中j表示隱含層1中的第j個神經(jīng)元,w1j為權(quán)重矩陣中對應(yīng)的第j列。最終實現(xiàn)對輸入的輸出為:
Q(x)=w3max(0,w2P(x))
(2)
其中,P(x)∈Rn為神經(jīng)網(wǎng)絡(luò)隱含層1的輸出向量,定義為:
P(x)=[P1(w11x)P2(w12x) ...Pn(w1nx)]T
(3)
Pi對應(yīng)第i個Laguerre 正交多項式,由輸入x經(jīng)過網(wǎng)絡(luò)后的實際輸出Q(x)與期望輸出y,采用均方差計算Laguerre前向神經(jīng)網(wǎng)絡(luò)的目標(biāo)函數(shù)為:
(4)
其中,M為批次訓(xùn)練中每個批次的樣本數(shù)。以圖2的網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),基于目標(biāo)函數(shù)E采用均梯度下降的方法學(xué)習(xí)各層參數(shù)。3.2節(jié)中的實驗驗證了該方法在進行函數(shù)擬合時優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)和采用Chebyshev正交多項式作為隱含層的神經(jīng)網(wǎng)絡(luò)。
為了驗證本文所提方法的有效性,選取25個信息服務(wù)類別中的信息檢索服務(wù),以其為例,明確影響信息檢索服務(wù)所需機器周期數(shù)的6個因素。雖然每個服務(wù)類別的影響因素不盡相同,但本節(jié)選取的6個因素涵蓋了信息相關(guān)、方法相關(guān)、設(shè)備相關(guān)的因素,具有一定的代表性。
信息檢索服務(wù)采用SQL Server作為數(shù)據(jù)庫管理系統(tǒng)(DBMS),以單次檢索需要執(zhí)行的機器周期數(shù)為預(yù)測目標(biāo),分析在不同硬件配置和檢索條件下影響所需機器周期數(shù)的因素。目前只考慮單個服務(wù)在一臺服務(wù)器上獨立工作的情況,即沒有分布式應(yīng)用以及其他服務(wù)的影響??偨Y(jié)影響信息檢索服務(wù)的因素包括服務(wù)器的CPU基準(zhǔn)速度、CPU最大線程數(shù)、硬盤順序讀取速度、硬盤順序?qū)懭胨俣纫约皺z索比例、數(shù)據(jù)庫規(guī)模共6個因素,如圖3所示。
圖3 信息檢索服務(wù)影響因素
其中CPU基準(zhǔn)速度、硬盤順序讀取速度、硬盤順序?qū)懭胨俣扔绊憜未螜z索的執(zhí)行速度。數(shù)據(jù)庫規(guī)模用數(shù)據(jù)庫中全部數(shù)據(jù)的總行數(shù)表示。另外,為了衡量單次檢索的復(fù)雜度,引入檢索比例的概念,即單次檢索涉及的行數(shù)的平均值占數(shù)據(jù)庫總行數(shù)的比例。因為估計一次檢索需要的CPU指令數(shù)和硬盤讀寫次數(shù)是較難的,所以采用檢索比例來代替它們度量單次檢索的復(fù)雜度。該比例可以通過在檢索服務(wù)開發(fā)之前通過建立小規(guī)模的模擬數(shù)據(jù),執(zhí)行模擬檢索進行估計,在第3.2節(jié)的實驗中就是這樣獲得檢索比例數(shù)據(jù)的。
信息檢索服務(wù)的響應(yīng)時間以ms為單位,CPU基準(zhǔn)速度以GHz為單位,硬盤讀寫速度以MB/s為單位,采用2.2節(jié)中的Laguerre 前向神經(jīng)網(wǎng)絡(luò)做函數(shù)擬合訓(xùn)練,輸入層采用6個維度對應(yīng)6個影響因素作為輸入。
為了驗證本文提出的信息服務(wù)性能建模方法的正確性和其采用的Laguerre 前向神經(jīng)網(wǎng)絡(luò)算法的有效性,采用Pytorch機器學(xué)習(xí)庫分別進行影響因素的消融實驗和改進的神經(jīng)網(wǎng)絡(luò)算法與傳統(tǒng)算法的對比實驗。
實驗數(shù)據(jù)采用列車時刻檢索服務(wù)、郵編檢索服務(wù)和經(jīng)緯度檢索服務(wù)進行訓(xùn)練,基于6個因素構(gòu)建不同的運行環(huán)境和數(shù)據(jù)檢索要求。另外,采用軍事術(shù)語檢索服務(wù)構(gòu)建測試集。機器周期數(shù)根據(jù)服務(wù)進程在每個時刻的CPU利用率和當(dāng)前時刻CPU頻率計算,滿足式(5):
Mc=∑Ri×Fi
(5)
其中,Ri是每個時刻進程的CPU利用率,F(xiàn)i是每個時刻的CPU頻率,對服務(wù)運行時的所有時刻的CPU利用率和頻率的乘積求和,即得到該次服務(wù)執(zhí)行的機器周期數(shù)的估計值。
最終獲得本地運行時數(shù)據(jù)共21376條作為訓(xùn)練和驗證數(shù)據(jù),隨機取其中20%數(shù)據(jù)作為驗證集。
實驗數(shù)據(jù)給出了6個影響因素運行時的值和在相應(yīng)環(huán)境下運行一次信息檢索服務(wù)需要執(zhí)行的機器周期數(shù)。實驗?zāi)繕?biāo)是實現(xiàn)機器周期數(shù)的準(zhǔn)確預(yù)測。實驗過程中不同的網(wǎng)絡(luò)結(jié)構(gòu)采用相同神經(jīng)單元數(shù)量的隱含層、學(xué)習(xí)率和批次大小。模型最好的訓(xùn)練結(jié)果的平均預(yù)測誤差可以達到0.93%,即所有誤差的絕對值均值占所有實際響應(yīng)時間均值的比例。
3.2.1 影響因素的消融實驗
為了驗證本文提出的性能模型的正確性,在6個影響因素中分別剔除1個因素,即輸入層神經(jīng)元數(shù)量為5,與完整利用6個影響因素做預(yù)測進行對比實驗。采用預(yù)測結(jié)果均方誤差(單位為兆)作為衡量標(biāo)準(zhǔn)。訓(xùn)練集的機器周期均值為65.75 兆。對比實驗結(jié)果如表4所示。
表4 影響因素消融實驗結(jié)果
表4中每行分別表示采用全部6個影響因素和分別剔除CPU基準(zhǔn)速度、硬盤順序讀取速度、硬盤順序?qū)懭胨俣?、CPU最大線程數(shù)、檢索比例、數(shù)據(jù)庫規(guī)模時得到的驗證集和測試集預(yù)測誤差。
從表4的實驗數(shù)據(jù)中可以看出(值越小說明預(yù)測精度越高),數(shù)據(jù)庫規(guī)模對預(yù)測結(jié)果的影響最大,在不考慮數(shù)據(jù)庫規(guī)模時測試集誤差達到15.63 兆,基本無法實現(xiàn)準(zhǔn)確的預(yù)測。另外2個對預(yù)測結(jié)果有顯著影響的因素是CPU基準(zhǔn)速度和檢索比例,測試集誤差分別達到了5.01 兆和4.25 兆,明顯高于采用全部6個影響因素的測試集誤差1.59 兆。
實驗結(jié)果表明去除任何一個因素的預(yù)測結(jié)果都不如6個影響因素全部采用時的預(yù)測表現(xiàn)的好,驗證了本文提出的6個影響因素在進行檢索服務(wù)響應(yīng)時間預(yù)測時都是必要且有幫助的。
3.2.2 收斂速度對比實驗
在其他參數(shù)相同時,分別對Laguerre前向神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)CNN在驗證集的的收斂速度進行對比,結(jié)果如圖4和圖5所示。
圖4 Laguerre 前向神經(jīng)網(wǎng)絡(luò)迭代80次的結(jié)果
圖5 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)CNN迭代80次的結(jié)果
通過對比實驗容易看出,在同樣10次迭代以后,Laguerre 前向神經(jīng)網(wǎng)絡(luò)的誤差已經(jīng)達到1.80 兆,低于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的2.40 兆。并且在20次迭代后,Laguerre 前向神經(jīng)網(wǎng)絡(luò)的誤差已經(jīng)趨于平穩(wěn),基本達到了最小值;而傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在50次迭代后才能趨于平穩(wěn)。
由以上分析容易看出Laguerre前向神經(jīng)網(wǎng)絡(luò)相對于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)CNN具有更快的收斂速度,在同樣的迭代次數(shù)下能得到更好的預(yù)測精度。
以支持基于架構(gòu)的信息服務(wù)系統(tǒng)建模為目標(biāo),本文提出了3個層次的信息服務(wù)分類和基于Laguerre 前向神經(jīng)網(wǎng)絡(luò)的信息服務(wù)性能建模方法,以二者為基礎(chǔ),采用信息檢索服務(wù)為案例,闡述并驗證了方法的實用效果。后續(xù)工作,將繼續(xù)完善其他類別服務(wù)的影響因素。并以響應(yīng)周期數(shù)為基礎(chǔ),研究在多個服務(wù)同時運行時,即存在資源爭奪的情況下各服務(wù)的性能指標(biāo)的預(yù)測方法。