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