一種云服務(wù)起源數(shù)據(jù)的捕獲方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種云服務(wù)起源數(shù)據(jù)的捕獲方法包括以下步驟:根據(jù)服務(wù)框架和調(diào)用協(xié)議設(shè)計服務(wù)調(diào)用攔截器;將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中;當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系,并標(biāo)識每個任務(wù)的服務(wù)組合;服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào)用依賴關(guān)系和經(jīng)過標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件;將起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。該方法關(guān)注服務(wù)狀態(tài)和依賴的監(jiān)控,通過捕獲服務(wù)的執(zhí)行狀態(tài)和路徑為云服務(wù)運維和管理提供技術(shù)支撐。
【專利說明】一種云服務(wù)起源數(shù)據(jù)的捕獲方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云服務(wù)【技術(shù)領(lǐng)域】,尤其涉及一種云服務(wù)起源數(shù)據(jù)的捕獲方法和裝置。
【背景技術(shù)】
[0002] 云計算的核心是提供云服務(wù),從平臺到應(yīng)用,服務(wù)無處不在。服務(wù)起源描述了服務(wù) 的動態(tài)執(zhí)行歷史和過程。捕獲和理解云服務(wù)的動態(tài)行為特征成為提高服務(wù)質(zhì)量(QoS)、資源 彈性分配、保障服務(wù)安全的關(guān)鍵。
[0003] 服務(wù)起源通過捕獲服務(wù)的執(zhí)行狀態(tài)和路徑,可以追蹤服務(wù)失敗的根本原因,當(dāng)前 的服務(wù)故障可能由于所依賴的其他服務(wù)異常引起;通過跟蹤服務(wù)執(zhí)行路徑耗時,可以發(fā)現(xiàn) 系統(tǒng)的瓶頸;通過捕獲服務(wù)的輸入和輸出,可以驗證服務(wù)分布式執(zhí)行過程的正確性,實現(xiàn)分 布式Debug ;通過分析服務(wù)調(diào)用特征,包括峰值規(guī)律,作為計算資源動態(tài)分配的依據(jù);通過 分析服務(wù)依賴形成的圖結(jié)構(gòu),劃分子群,作為優(yōu)化云部署結(jié)構(gòu)的參考。
[0004] 服務(wù)起源對于云服務(wù)運維、管理具有重要價值。當(dāng)前,云環(huán)境下的服務(wù)起源數(shù)據(jù)管 理仍然面臨了很多挑戰(zhàn)。由于云系統(tǒng)已經(jīng)成為大數(shù)據(jù)中心和分布式集群,服務(wù)不僅僅部署 在大量分布式節(jié)點上,還根據(jù)任務(wù)需要動態(tài)組合,調(diào)用模式會根據(jù)用戶行為特征進(jìn)行演化, 構(gòu)成一個類生態(tài)系統(tǒng),這就給服務(wù)起源的獲取、存儲和分析帶來了困難,具體包括: 自動、透明化和支持異構(gòu)服務(wù)起源捕獲; 區(qū)別于傳統(tǒng)的人工記錄和輸出服務(wù)起源,系統(tǒng)可以支持自動捕獲,通過可管理的配置, 自動捕獲服務(wù)的狀態(tài)和依賴關(guān)系,保持系統(tǒng)的透明性。與此同時,需要支持異構(gòu)的系統(tǒng),能 夠作為第三方平臺,為不同的平臺的系統(tǒng)提供起源數(shù)據(jù)捕獲和管理方法。
[0005] 輕量級的服務(wù)捕獲方法; 服務(wù)起源的捕獲不能夠影響服務(wù)的正常運行,捕獲服務(wù)起源帶來的開銷應(yīng)具有低消耗 特征,針對不同的服務(wù)特征,設(shè)計輕量級的捕獲方法,例如,對于高頻率調(diào)用服務(wù),在很短的 時間內(nèi)服務(wù)會運行成千上萬次,需要設(shè)計合適的抽樣策略。
[0006] 服務(wù)起源屬于數(shù)據(jù)起源范疇,數(shù)據(jù)起源的定義一般認(rèn)為是描述了數(shù)據(jù)的演化歷 史。本方法給出的服務(wù)起源的定義為,描述了服務(wù)的動態(tài)執(zhí)行歷史和過程,體現(xiàn)了服務(wù)運行 的狀態(tài)(耗時、頻率等)和動態(tài)依賴關(guān)系。
[0007] 現(xiàn)有的服務(wù)監(jiān)控,主要關(guān)注的是服務(wù)本身的運行狀態(tài),很少關(guān)注服務(wù)之間的依 賴關(guān)系。專利"一種WEB服務(wù)監(jiān)控參數(shù)的調(diào)整裝置和方法"(申請?zhí)?:200910094000. 1) 主要關(guān)注特定的web服務(wù)監(jiān)控方法,專利"一種分布式應(yīng)用系統(tǒng)的服務(wù)監(jiān)控方法及裝置" (申請?zhí)枺?01310625603. 6)關(guān)注應(yīng)用系統(tǒng)的服務(wù)調(diào)用次數(shù),發(fā)現(xiàn)調(diào)用異常。專利"云計算 服務(wù)監(jiān)控系統(tǒng)及方法"(申請?zhí)枺?01310625603. 6)和"服務(wù)監(jiān)控方法及系統(tǒng)"(申請?zhí)枺?201210009234. 3)主要關(guān)注服務(wù)監(jiān)控系統(tǒng)的體系結(jié)構(gòu)和通訊,沒有關(guān)注服務(wù)狀態(tài)和依賴的 監(jiān)控。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明要解決的技術(shù)問題在于針對現(xiàn)有技術(shù)中的缺陷,提供一種云服務(wù)起源數(shù)據(jù) 的捕獲方法和裝置,該方法關(guān)注服務(wù)狀態(tài)和依賴的監(jiān)控,通過捕獲服務(wù)的執(zhí)行狀態(tài)和路徑 為云服務(wù)運維和管理提供技術(shù)支撐。
[0009] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種云服務(wù)起源數(shù)據(jù)的捕獲方法, 包括以下步驟: 1) 根據(jù)服務(wù)框架和調(diào)用協(xié)議設(shè)計服務(wù)調(diào)用攔截器; 2) 將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 3) 當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù)動態(tài)調(diào)用依賴關(guān) 系,并標(biāo)識每個任務(wù)的服務(wù)組合; 4) 服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào)用依賴關(guān)系和經(jīng)過 標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件;其中服務(wù)起源數(shù)據(jù)規(guī)范為一個9元 組: BasicProv (token, InvokingService, Servicelnvoked, location, elapsed time, timestamp, input, output, status);其中Token為一個32位的字符串,用于標(biāo)識一個動 態(tài)的組合任務(wù); InvokingService為服務(wù)調(diào)用者,也稱為服務(wù)消費者,其數(shù)據(jù)格式為一個32位的字符 串; Servicelnvoked為服務(wù)被調(diào)用者,也稱為服務(wù)提供者,其數(shù)據(jù)格式為一個32位的字符 串; Location為服務(wù)調(diào)用發(fā)生的位置,在云服務(wù)環(huán)境,為IP地址。
[0010] Elapsed time為服務(wù)調(diào)用的耗時,該耗時為從服務(wù)調(diào)用者的視角看,完成一次服 務(wù)調(diào)用所需要的時間,包含了被調(diào)用服務(wù)的嵌套執(zhí)行時間,其數(shù)據(jù)格式為一個8位的整型; Timestamp為服務(wù)調(diào)用事件發(fā)生的時間戳; Input為服務(wù)調(diào)用的輸入?yún)?shù),數(shù)據(jù)存儲格式為32位的字符串; Output為服務(wù)調(diào)用的輸出數(shù)據(jù)文件,為一個XML對象,或者一個json數(shù)據(jù)對象; Status為服務(wù)執(zhí)行的狀態(tài),數(shù)據(jù)格式為一個布爾值,1表不成功,0表不失敗。
[0011] 5)將起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
[0012] 按上述方案,所述服務(wù)調(diào)用攔截器的設(shè)計方法包括以下步驟: 1. 1)創(chuàng)建用于存儲服務(wù)起源信息的文件; 1. 2)服務(wù)調(diào)用者產(chǎn)生一個唯一的token值,作為識別服務(wù)動態(tài)依賴的標(biāo)志; 1. 3)創(chuàng)建用于讀取并存儲服務(wù)調(diào)用開始時間的參量; 1. 4)創(chuàng)建用于讀取和存儲當(dāng)前的IP地址的參量; 1.5)創(chuàng)建用于存儲所調(diào)用的服務(wù)名稱的參量; 1. 6)創(chuàng)建用于存儲所調(diào)用的服務(wù)的入口參數(shù)的參量; 1. 7)上述參量、文件和token值共同構(gòu)成服務(wù)調(diào)用攔截器。
[0013] 按上述方案,所述唯一 token值根據(jù)時間和網(wǎng)卡產(chǎn)生。
[0014] 按上述方案,在收集攔截器的信息過程中,采用攔截器和攔截器管理分離的方式, 管理模塊負(fù)責(zé)所有攔截的注冊、日志收集和處理。
[0015] 按上述方案,所述步驟3)中,通過服務(wù)調(diào)用請求獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系的具 體步驟為: 3. 1)解析服務(wù)調(diào)用協(xié)議的頭部信息; 3. 2)獲取頭部信息中的token值,并存儲到本地線程變量中; 3. 3)根據(jù)token值獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系。
[0016] 按上述方案,所述步驟3)中,標(biāo)識每個任務(wù)的服務(wù)組合的具體步驟包括: 3. 4)選取具有相同數(shù)值的token的服務(wù),該服務(wù)組合共同完成某個任務(wù); 3. 5)根據(jù)任務(wù)形成的動態(tài)服務(wù)組合過程,可以通過token進(jìn)行查詢后,進(jìn)行迭代運算 得到每個任務(wù)的服務(wù)組合. 按上述方案,所述步驟5)中對起源日志文件進(jìn)行數(shù)據(jù)處理包括:讀取服務(wù)起源日志 記錄,檢查是否符合當(dāng)前的服務(wù)起源數(shù)據(jù)規(guī)范。
[0017] 按上述方案,所述步驟5)中對起源日志文件進(jìn)行數(shù)據(jù)處理包括: 檢查起源數(shù)據(jù)信息的完整性,丟棄不符合要求的數(shù)據(jù),然后把符合要求的服務(wù)起源數(shù) 據(jù)規(guī)范化,然后插入數(shù)據(jù)庫;將起源日志匯聚和存儲于云數(shù)據(jù)庫。這種結(jié)構(gòu)實現(xiàn)了采集的可 擴(kuò)展性。
[0018] 按上述方案,所述步驟3)中服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求時,根據(jù)不同的服 務(wù)調(diào)用頻率,確定服務(wù)調(diào)用攔截器的攔截頻率。
[0019] 一種云服務(wù)起源數(shù)據(jù)的捕獲裝置,包括: 攔截器生成模塊,用于根據(jù)服務(wù)框架和調(diào)用協(xié)議生成服務(wù)調(diào)用攔截器; 攔截器內(nèi)置模塊,用于將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 數(shù)據(jù)收集模塊,用于當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù) 動態(tài)調(diào)用依賴關(guān)系,并標(biāo)識每個任務(wù)的服務(wù)組合; 起源日志模塊,用于服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào) 用依賴關(guān)系和經(jīng)過標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件; 數(shù)據(jù)存儲模塊,用于對起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
[0020] 本發(fā)明產(chǎn)生的有益效果是: 1. 通過服務(wù)狀態(tài)和依賴的監(jiān)控,捕獲服務(wù)的執(zhí)行狀態(tài)和路徑為云服務(wù)運維和管理提供 有效的技術(shù)支撐; 2. 根據(jù)不同的服務(wù)調(diào)用頻率,設(shè)計不同的抽樣方法,降低系統(tǒng)開銷; 3. 通過服務(wù)起源數(shù)據(jù)規(guī)范化,實現(xiàn)異構(gòu)系統(tǒng)服務(wù)起源的支持。
【專利附圖】
【附圖說明】
[0021] 下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明,附圖中: 圖1是本發(fā)明實施例的方法流程圖; 圖2是本發(fā)明實施例的服務(wù)框架CXF下服務(wù)調(diào)用攔截器的設(shè)計步驟流程圖; 圖3是本發(fā)明實施例的服務(wù)框架CXF下服務(wù)調(diào)用請求獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系的流 程圖; 圖4是本發(fā)明實施例的捕獲實例服務(wù)組合示意圖; 圖5是本發(fā)明實施例的捕獲實例中攔截服務(wù)輸出的數(shù)據(jù)集大小對攔截器的影響示意 圖; 圖6是本發(fā)明實施例的捕獲實例中攔截器的耗時示意圖; 圖7是捕獲實例中服務(wù)起源日志采集對資源的占用情況示意圖。
【具體實施方式】
[0022] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明 進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限 定本發(fā)明。
[0023] 如圖1所示,一種云服務(wù)起源數(shù)據(jù)的捕獲方法,包括以下步驟: 1)根據(jù)服務(wù)框架和調(diào)用協(xié)議設(shè)計服務(wù)調(diào)用攔截器; 服務(wù)調(diào)用攔截器的設(shè)計方法包括以下步驟: 1. 1)創(chuàng)建用于存儲服務(wù)起源信息的文件; 1. 2)服務(wù)調(diào)用者產(chǎn)生一個唯一的token值,作為識別服務(wù)動態(tài)依賴的標(biāo)志; 1. 3)創(chuàng)建用于讀取并存儲服務(wù)調(diào)用開始時間的參量; 1. 4)創(chuàng)建用于讀取和存儲當(dāng)前的IP地址的參量; 1.5)創(chuàng)建用于存儲所調(diào)用的服務(wù)名稱的參量; 1. 6)創(chuàng)建用于存儲所調(diào)用的服務(wù)的入口參數(shù)的參量; 1. 7)上述參量、文件和token值共同構(gòu)成服務(wù)調(diào)用攔截器。
[0024] 服務(wù)調(diào)用者在生成全局唯一的token值,作為識別服務(wù)動態(tài)依賴的標(biāo)志,該token 值和IP地址、時間等服務(wù)起源信息植入調(diào)用協(xié)議消息的頭部,以開源的服務(wù)框架CXF為例, 具體的實現(xiàn)流程如圖2所示。
[0025] 2)將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 透明性和自動化捕獲程度取決于攔截器的部署位置,一種形式是:Dapper方法把攔截 器部署在庫函數(shù),所有的通過核心庫函數(shù)的調(diào)用將自動被攔截,具有高透明性,但由于不同 平臺的庫函數(shù)差異很大,且不易修改,所以難以支持異構(gòu)平臺。另一種形式是使用基于應(yīng)用 程序標(biāo)記方法,攔截器部署在應(yīng)用程序,具有很好的靈活性,但是不支持自動捕獲。
[0026] 3)當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù)動態(tài)調(diào)用依 賴關(guān)系,并標(biāo)識每個任務(wù)的服務(wù)組合; 3. 1)解析SOAP消息頭部信息; 3. 2)獲取消息頭部信息中的token值,并存儲到本地線程變量中; 3. 3)根據(jù)token值獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系; 3. 4)選取具有相同數(shù)值的token的服務(wù),該服務(wù)組合共同完成某個任務(wù); 3. 5)根據(jù)任務(wù)形成的動態(tài)服務(wù)組合過程,可以通過token進(jìn)行查詢后,進(jìn)行迭代運算 得到每個任務(wù)的服務(wù)組合。
[0027] 在收集攔截器的信息過程中,為了提供對異構(gòu)系統(tǒng)的支持,采用攔截器和攔截器 管理分離的方式,管理模塊負(fù)責(zé)所有攔截的注冊、日志收集和處理,攔截器負(fù)責(zé)捕獲服務(wù)起 源并按照規(guī)范輸出日志,可以根據(jù)不同的服務(wù)協(xié)議設(shè)計不同的攔截器,攔截器和管理模塊 是松耦合關(guān)系,攔截器運行的策略和方式通過讀取一個XML配置文件實現(xiàn),該文件由管理 模塊進(jìn)行管理和維護(hù),通過更新和修改該文件,攔截器實施不同的抽樣策略和執(zhí)行方式。所 有攔截器采用公共標(biāo)準(zhǔn)的數(shù)據(jù)規(guī)范和傳輸協(xié)議。
[0028] 以開源的服務(wù)框架CXF為例,服務(wù)調(diào)用請求獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系的流程圖 如圖3所示。
[0029] 服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求時,根據(jù)不同的服務(wù)調(diào)用頻率,確定服務(wù)調(diào)用 攔截器的攔截頻率。
[0030] 在云平臺中,熱門的服務(wù)往往調(diào)用的頻率很高,在很短的時間內(nèi)容,往往會被調(diào)用 成千上萬次,如果攔截每一次的調(diào)用,即使單次攔截的時間很短,例如,單次攔截耗時2ms, 但是如果在1秒攔截100次服務(wù)調(diào)用,則需要耗時2ms*100=200ms=0. 2s,這將給系統(tǒng)帶來較 大的開銷。所以需要設(shè)計合適的抽樣策略,降低服務(wù)起源捕獲代價。
[0031] 另外一個問題是,服務(wù)之間的調(diào)用頻率差異巨大,有些非常用服務(wù)調(diào)用頻率很低, 如果采用統(tǒng)一的調(diào)用抽樣策略,要么將丟掉服務(wù)調(diào)用模式特征,要么將帶來較高的攔截代 價。
[0032] 本實施例中采用了一種分層的抽樣策略,具體為 調(diào)用頻率大于100次/秒,抽樣頻率為:向下取整(調(diào)用頻率/100)每秒; 調(diào)用頻率小于100次/秒,且大于1次/秒,抽樣頻率為:1次每秒; 調(diào)用頻率小于1次/秒,抽樣頻率為:根據(jù)調(diào)用次數(shù)抽樣 我們可以根據(jù)服務(wù)調(diào)用頻率的實際情況,修改抽樣策略,使之在降低采集代價的同時, 保持服務(wù)起源的模式特征。
[0033] 4)服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào)用依賴關(guān)系和 經(jīng)過標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件;其中服務(wù)起源數(shù)據(jù)規(guī)范為一個 9元組: BasicProv (token, InvokingService, Servicelnvoked, location, elapsed time, timestamp, input, output, status);服務(wù)起源的數(shù)據(jù)規(guī)范參數(shù)含義如下: Token :-個32位的字符串,用于標(biāo)識一個動態(tài)的組合任務(wù) InvokingService :服務(wù)調(diào)用者,也可以稱為服務(wù)消費者。數(shù)據(jù)格式為一個32位的字符 串 Servicelnvoked :服務(wù)被調(diào)用者,也可以稱為服務(wù)提供者。數(shù)據(jù)格式為一個32位的字 符串。
[0034] Location:服務(wù)調(diào)用發(fā)生的位置,在云服務(wù)環(huán)境,主要是IP地址。
[0035] Elapsed time :服務(wù)調(diào)用的耗時,該耗時為從服務(wù)調(diào)用者的視角看,完成一次服務(wù) 調(diào)用所需要的時間,包含了被調(diào)用服務(wù)的嵌套執(zhí)行時間。數(shù)據(jù)格式為一個8位的整型,單位 為毫秒。
[0036] Timestamp :服務(wù)調(diào)用事件發(fā)生的時間戳,格式為年/月/日小時/分鐘/秒/毫 秒 Input :服務(wù)調(diào)用的輸入?yún)?shù),數(shù)據(jù)存儲格式為32位的字符串。
[0037] Output :服務(wù)調(diào)用的輸出數(shù)據(jù)文件,一般為一個XML對象,或者一個json數(shù)據(jù)對 象。
[0038] Status :服務(wù)執(zhí)行的狀態(tài),數(shù)據(jù)格式為一個布爾值,1表示成功,0表示失敗。
[0039] 5)將起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
[0040] 讀取服務(wù)起源日志記錄,檢查是否符合當(dāng)前的服務(wù)起源數(shù)據(jù)規(guī)范,用戶可以根據(jù) 需要設(shè)置服務(wù)起源數(shù)據(jù)的規(guī)范要求,例如,當(dāng)不需要分布式debug的時候,可以不攔截服務(wù) 的輸入和輸出,在進(jìn)行格式檢查的時候不檢查相關(guān)信息。
[0041] 對于不符合要求的數(shù)據(jù)(包括信息不完整、超出位數(shù)長度等)進(jìn)行丟棄,不插入遠(yuǎn) 端數(shù)據(jù)庫; 對于符合要求的數(shù)據(jù),調(diào)用插入數(shù)據(jù)庫模塊,把信息插入到遠(yuǎn)程數(shù)據(jù)庫中; 對系統(tǒng)支持異構(gòu)的服務(wù)起源數(shù)據(jù),如果當(dāng)前數(shù)據(jù)標(biāo)簽和名稱不符合數(shù)據(jù)規(guī)范,則采用 數(shù)據(jù)映射的方式實現(xiàn)語義轉(zhuǎn)換,具體的方式為,建立待轉(zhuǎn)化數(shù)據(jù)信息字段名稱和服務(wù)起源 數(shù)據(jù)格式字段名稱的映射關(guān)系,在插入數(shù)據(jù)之前,進(jìn)行映射,然后根據(jù)匹配的信息插入到數(shù) 據(jù)庫中; 將服務(wù)起源日志存儲到服務(wù)所在的本地服務(wù)器上,通過日志采集工具,實現(xiàn)數(shù)據(jù)的讀 取、傳輸和插入數(shù)據(jù)庫。
[0042] 一種云服務(wù)起源數(shù)據(jù)的捕獲裝置,包括: 攔截器生成模塊,用于根據(jù)服務(wù)框架和調(diào)用協(xié)議生成服務(wù)調(diào)用攔截器; 攔截器內(nèi)置模塊,用于將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 數(shù)據(jù)收集模塊,用于當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù) 動態(tài)調(diào)用依賴關(guān)系,并標(biāo)識每個任務(wù)的服務(wù)組合; 起源日志模塊,用于服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào) 用依賴關(guān)系和經(jīng)過標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件; 數(shù)據(jù)存儲模塊,用于對起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
[0043] 以下使用一個簡單的捕獲實例對本捕獲方法的有效性進(jìn)行說明: 一個簡單的捕獲實例: 某學(xué)校的教務(wù)系統(tǒng)中的選課業(yè)務(wù),由以下服務(wù)組合而成,如圖4所示,該服務(wù)運行于開 源的webservice框架CXF,具體的攔截步驟為: (1)在服務(wù)框架CXF中部署攔截器模塊 (2 )在服務(wù)發(fā)布的時候,引用服務(wù)攔截器模塊 (3) 當(dāng)服務(wù)調(diào)用發(fā)生時候,自動產(chǎn)生如下的服務(wù)起源數(shù)據(jù),如下表所示:
【權(quán)利要求】
1. 一種云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,包括以下步驟: 1) 根據(jù)服務(wù)框架和調(diào)用協(xié)議設(shè)計服務(wù)調(diào)用攔截器; 2) 將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 3) 當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù)動態(tài)調(diào)用依賴關(guān) 系,并標(biāo)識每個任務(wù)的服務(wù)組合; 4) 服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào)用依賴關(guān)系和經(jīng)過 標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件; 5) 將起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
2. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟4)中,其 中服務(wù)起源數(shù)據(jù)規(guī)范為一個9元組: BasicProv (token, InvokingService, Servicelnvoked, location, elapsed time, timestamp, input, output, status); 其中Token為一個32位的字符串,用于標(biāo)識一個動態(tài)的組合任務(wù); InvokingService為服務(wù)調(diào)用者,也稱為服務(wù)消費者,其數(shù)據(jù)格式為一個32位的字符 串; Servicelnvoked為服務(wù)被調(diào)用者,也稱為服務(wù)提供者,其數(shù)據(jù)格式為一個32位的字符 串; Location為服務(wù)調(diào)用發(fā)生的位置,在云服務(wù)環(huán)境,為IP地址; Elapsed time為服務(wù)調(diào)用的耗時,該耗時為從服務(wù)調(diào)用者的視角看,完成一次服務(wù)調(diào) 用所需要的時間,包含了被調(diào)用服務(wù)的嵌套執(zhí)行時間,其數(shù)據(jù)格式為一個8位的整型; Timestamp為服務(wù)調(diào)用事件發(fā)生的時間戳; Input為服務(wù)調(diào)用的輸入?yún)?shù),數(shù)據(jù)存儲格式為32位的字符串; Output為服務(wù)調(diào)用的輸出數(shù)據(jù)文件,為一個XML對象,或者一個json數(shù)據(jù)對象; Status為服務(wù)執(zhí)行的狀態(tài),數(shù)據(jù)格式為一個布爾值,1表不成功,0表不失敗。
3. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟1)中服 務(wù)調(diào)用攔截器的設(shè)計方法包括以下步驟: 1. 1)創(chuàng)建用于存儲服務(wù)起源信息的文件; 1. 2)服務(wù)調(diào)用者產(chǎn)生一個唯一的token值,作為識別服務(wù)動態(tài)依賴的標(biāo)志; 1. 3)創(chuàng)建用于讀取并存儲服務(wù)調(diào)用開始時間的參量; 1. 4)創(chuàng)建用于讀取和存儲當(dāng)前的IP地址的參量; 1.5)創(chuàng)建用于存儲所調(diào)用的服務(wù)名稱的參量; 1. 6)創(chuàng)建用于存儲所調(diào)用的服務(wù)的入口參數(shù)的參量; 1. 7)上述參量、文件和token值共同構(gòu)成服務(wù)調(diào)用攔截器。
4. 根據(jù)權(quán)利要求3所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述唯一 token值 根據(jù)時間和網(wǎng)卡產(chǎn)生。
5. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟3)中,通 過服務(wù)調(diào)用請求獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系的具體步驟為: 3. 1)解析服務(wù)調(diào)用協(xié)議的頭部信息; 3. 2)獲取頭部信息中的token值,并存儲到本地線程變量中; 3. 3)根據(jù)token值獲得服務(wù)動態(tài)調(diào)用依賴關(guān)系。
6. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟3)中,標(biāo) 識每個任務(wù)的服務(wù)組合的具體步驟包括: 3. 4)選取具有相同數(shù)值的token的服務(wù),該服務(wù)組合共同完成某個任務(wù); 3. 5)根據(jù)任務(wù)形成的動態(tài)服務(wù)組合過程,可以通過token進(jìn)行查詢后,進(jìn)行迭代運算 得到每個任務(wù)的服務(wù)組合。
7. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟5)中對 起源日志文件進(jìn)行數(shù)據(jù)處理包括:讀取服務(wù)起源日志記錄,檢查是否符合當(dāng)前的服務(wù)起源 數(shù)據(jù)規(guī)范。
8. 根據(jù)權(quán)利要求7所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟5)中對 起源日志文件進(jìn)行數(shù)據(jù)處理包括: 檢查起源數(shù)據(jù)信息的完整性,丟棄不符合要求的數(shù)據(jù),然后把符合要求的起源數(shù)據(jù)規(guī) 范化,然后插入數(shù)據(jù)庫;將起源日志匯聚和存儲于云數(shù)據(jù)庫。
9. 根據(jù)權(quán)利要求1所述的云服務(wù)起源數(shù)據(jù)的捕獲方法,其特征在于,所述步驟3)中服 務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求時,根據(jù)不同的服務(wù)調(diào)用頻率,確定服務(wù)調(diào)用攔截器的攔 截頻率。
10. -種云服務(wù)起源數(shù)據(jù)的捕獲裝置,包括: 攔截器生成模塊,用于根據(jù)服務(wù)框架和調(diào)用協(xié)議生成服務(wù)調(diào)用攔截器; 攔截器內(nèi)置模塊,用于將服務(wù)調(diào)用攔截器內(nèi)置在服務(wù)調(diào)用協(xié)議中; 數(shù)據(jù)收集模塊,用于當(dāng)服務(wù)調(diào)用發(fā)生時,服務(wù)調(diào)用攔截器攔截服務(wù)調(diào)用請求,獲得服務(wù) 動態(tài)調(diào)用依賴關(guān)系,并標(biāo)識每個任務(wù)的服務(wù)組合; 起源日志模塊,用于服務(wù)調(diào)用攔截器按照服務(wù)起源數(shù)據(jù)規(guī)范,根據(jù)獲得的服務(wù)動態(tài)調(diào) 用依賴關(guān)系和經(jīng)過標(biāo)識的每個任務(wù)的服務(wù)組合生成并輸出起源日志文件; 數(shù)據(jù)存儲模塊,用于對起源日志文件進(jìn)行數(shù)據(jù)處理后,存儲在云數(shù)據(jù)庫中。
【文檔編號】H04L29/08GK104092755SQ201410323340
【公開日】2014年10月8日 申請日期:2014年7月7日 優(yōu)先權(quán)日:2014年7月7日
【發(fā)明者】李濤 申請人:武漢科技大學(xué)