基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法
【專利摘要】本發(fā)明涉及一種基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法,其中系統(tǒng)包括元數(shù)據(jù)分析客戶端、元數(shù)據(jù)分析服務端、分布式緩存框架服務器和分布式緩存服務器,方法為:分布式緩存框架服務器將元數(shù)據(jù)庫中的數(shù)據(jù)加載至分布式緩存服務器中并創(chuàng)建連接池;元數(shù)據(jù)分析客戶端將對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端;元數(shù)據(jù)分析服務端根據(jù)解析后的元數(shù)據(jù)分析任務查詢分布式緩存服務器,并將所對應的分析結(jié)果消息發(fā)送至元數(shù)據(jù)分析客戶端;元數(shù)據(jù)分析客戶端解析分析結(jié)果消息并顯示元數(shù)據(jù)分析結(jié)果。采用發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及發(fā)明,提高了數(shù)據(jù)訪問的性能,加快了元數(shù)據(jù)分析的響應速度,提高了用戶體驗,具有更廣泛的應用范圍。
【專利說明】基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法
【技術(shù)領域】
[0001]本發(fā)明涉及元數(shù)據(jù)分析領域,尤其涉及元數(shù)據(jù)分布式緩存及分析的領域,具體是指一種基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,產(chǎn)生了海量的數(shù)據(jù),如何有效地管理和組織這些海量數(shù)據(jù)已經(jīng)成為一個突出的問題。元數(shù)據(jù)是解決這一問題的有效手段,能支持系統(tǒng)對數(shù)據(jù)的管理和維護。具體來說,在數(shù)據(jù)倉庫系統(tǒng)中,元數(shù)據(jù)機制主要支持以下五類系統(tǒng)管理功能:
[0003](I)描述哪些數(shù)據(jù)在數(shù)據(jù)倉庫中;
[0004](2)定義要進入數(shù)據(jù)倉庫中的數(shù)據(jù)和從數(shù)據(jù)倉庫中產(chǎn)生的數(shù)據(jù);
[0005](3)記錄根據(jù)業(yè)務事件發(fā)生而隨之進行的數(shù)據(jù)抽取工作時間安排;
[0006](4)記錄并檢測系統(tǒng)數(shù)據(jù)一致性的要求和執(zhí)行情況;
[0007](5)衡量數(shù)據(jù)質(zhì)量。
[0008]元數(shù)據(jù)管理系統(tǒng)中,對元數(shù)據(jù)的有效分析至關(guān)重要。元數(shù)據(jù)分析功能主要實現(xiàn)針對元數(shù)據(jù)的基本分析功能。包括血緣分析(血統(tǒng)分析)、影響分析、實體關(guān)聯(lián)分析、實體影響分析、主機拓撲分析、指標一致性分析等。
[0009]當前的元數(shù)據(jù)分析系統(tǒng)的數(shù)據(jù)關(guān)聯(lián)關(guān)系的查找都是通過關(guān)系數(shù)據(jù)庫來完成,最終形成數(shù)據(jù)的來源與去向關(guān)系圖。在此過程中需要執(zhí)行多條SQL (Structured QueryLanguage,結(jié)構(gòu)化查詢語言)語句,往往后一條SQL語句的查詢條件是前一條SQL語句得到的結(jié)果,因此這些SQL語句只能順序執(zhí)行,不能并發(fā)執(zhí)行,而數(shù)據(jù)庫的查詢操作需要大量的磁盤I/O (輸入/輸出)操作,磁盤操作非常耗時,生成元數(shù)據(jù)的關(guān)聯(lián)圖通常都需要很長的響應時間。而且,元數(shù)據(jù)的分析往往要涉及到多個表的連接操作,對多表進行連接操作非常耗費計算機的資源如CPU、內(nèi)存等,如果表中還存儲了海量的數(shù)據(jù),數(shù)據(jù)查詢的響應時間會非常慢。
[0010]通常的數(shù)據(jù)庫優(yōu)化技術(shù)是將查詢結(jié)果放在本地緩存中來提高性能,但是本地的緩存容量有限,不能存放大量的數(shù)據(jù),另外,只有查詢條件與存放在本地緩存中數(shù)據(jù)的查詢條件完全一致時才能使用緩存的數(shù)據(jù),否則就必須查詢數(shù)據(jù)庫。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)的缺點,提供了一種通過將元數(shù)據(jù)庫中的數(shù)據(jù)通過分布式緩存技術(shù)加載到分布式緩存服務器中并提供了相應的查詢方法,節(jié)約系統(tǒng)資源,提高數(shù)據(jù)訪問的性能,加快元數(shù)據(jù)分析的響應速度,提高用戶體驗的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法。
[0012]為了實現(xiàn)上述目的,本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法具有如下構(gòu)成:
[0013]該基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其主要特點是,所述的系統(tǒng)包括:
[0014]元數(shù)據(jù)分析客戶端,用以響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,以及解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果;
[0015]元數(shù)據(jù)分析服務端,用以根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端;
[0016]分布式緩存框架服務器,用以將元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,并為所述的分布式緩存服務器創(chuàng)建連接池;
[0017]分布式緩存服務器,用以緩存所述的元數(shù)據(jù)庫。
[0018]進一步地,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊、解析消息接收隊列和解析消息發(fā)送隊列,其中:
[0019]所述的圖形化界面模塊,用以響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務,以及將所對應元數(shù)據(jù)分析任務的數(shù)據(jù)發(fā)送至所述的任務解析模塊,和顯示所述的任務解析模塊發(fā)送的所述的元數(shù)據(jù)分析結(jié)果;
[0020]所述的任務解析模塊,用以將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列,以及解析所述的解析消息接收隊列接收到的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊;
[0021]所述的解析消息發(fā)送隊列,用以將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端;
[0022]所述的解析消息接收隊列,用以接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消肩、O
[0023]進一步地,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口、分析消息發(fā)送隊列和分析消息接收隊列,其中:
[0024]所述的任務調(diào)度模塊,用以解析所述的分析消息接收隊列接收到的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務,以及根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器,并通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器,并得到所述的元數(shù)據(jù)分析任務對應的元數(shù)據(jù)分析結(jié)果,以及將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息;
[0025]所述的分布式緩存接口,用以訪問所述的分布式緩存框架服務器;
[0026]所述的分析消息發(fā)送隊列,用以發(fā)送所對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端;
[0027]所述的分析消息接收隊列,用以接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息。
[0028]進一步地,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊、連接池管理模塊和應用程序編程接口,其中:
[0029]所述的數(shù)據(jù)加載模塊,用以將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中;
[0030]所述的連接池管理模塊,用以為所述的分布式緩存服務器創(chuàng)建連接池;
[0031]所述的應用程序編程接口,用以訪問所述的分布式緩存框架服務器的應用程序。
[0032]更進一步地,所述的分布式緩存框架服務器還包括緩存配置模塊,所述的緩存配置模塊用以存儲并管理所述的分布式緩存服務器的相關(guān)配置信息。
[0033]更進一步地,所述的分布式緩存框架服務器還包括緩存管理模塊,所述的緩存配置模塊用以對所述的分布式緩存服務器進行注冊、加入、監(jiān)控和故障檢測的管理。
[0034]進一步地,所述的元數(shù)據(jù)分析指令包括元數(shù)據(jù)分析功能類型、元數(shù)據(jù)類型和元數(shù)據(jù)名稱的信息,所述的元數(shù)據(jù)分析任務為血緣分析任務、影響分析任務、關(guān)聯(lián)分析任務、拓撲分析任務或指標分析任務,所述的元數(shù)據(jù)分析任務包括客戶端互聯(lián)網(wǎng)協(xié)議地址信息、客戶端端口號信息、任務序列號信息、任務名稱信息、任務類型信息和任務信息。
[0035]進一步地,所述的元數(shù)據(jù)庫包括元數(shù)據(jù)實例表、元數(shù)據(jù)組合關(guān)系表和元數(shù)據(jù)依賴關(guān)系表。
[0036]更進一步地,所述的分布式緩存服務器由數(shù)個緩存子服務器組成,各個緩存子服務器的下標根據(jù)所述的元數(shù)據(jù)實例序列號對應的哈希值對所述的緩存子服務器的數(shù)量取模得到。
[0037]其中,所述的分布式緩存框架服務器根據(jù)Java對象的HashCodeO函數(shù)方法、MD5算法或SHA-1算法計算得到所述的元數(shù)據(jù)實例序列號對應的哈希值。
[0038]此外,本發(fā)明還提供一種實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,所述的方法包括以下步驟:
[0039](I)所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中并為所述的分布式緩存服務器創(chuàng)建連接池;
[0040](2)所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端;
[0041](3)所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果;
[0042](4)所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端;
[0043](5)所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果。
[0044]進一步地,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊,所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟:
[0045](1.1)所述的數(shù)據(jù)加載模塊連接所述的元數(shù)據(jù)庫;
[0046](1.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表;
[0047](1.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中。
[0048]更進一步地,所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表,包括以下步驟:
[0049](1.2.1)所述的數(shù)據(jù)加載模塊創(chuàng)建哈希值映射表;
[0050](1.2.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并獲取元數(shù)據(jù)實例序列號、元數(shù)據(jù)類型和元數(shù)據(jù)名稱三個字段所對應的數(shù)據(jù);
[0051](1.2.3)所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,并獲得所述的元數(shù)據(jù)實例序列號對應的哈希值;
[0052](1.2.4)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)實例序列號與所對應的哈希值保存至所述的哈希值映射表。
[0053]更進一步地,所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,具體為:
[0054]所述的數(shù)據(jù)加載模塊根據(jù)Java對象的HashCode O函數(shù)方法、MD5算法或SHA-1算法對元數(shù)據(jù)實例序列號進行哈希運算。
[0055]更進一步地,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟:
[0056](1.3.1)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中;
[0057](1.3.2)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中;
[0058](1.3.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中。
[0059]更進一步地,所述的分布式緩存服務器包括數(shù)個緩存子服務器,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中,包括以下步驟:
[0060](1.3.1.1)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模,并用取模后的值作為該元數(shù)據(jù)實例表中的數(shù)據(jù)對應緩存的緩存子服務器的下標。
[0061](1.3.1.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和所述的元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)實例表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0062]更進一步地,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟:
[0063](1.3.2.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表,并獲取元數(shù)據(jù)實例序列號和組合關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù);
[0064](1.3.2.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的組合關(guān)系元數(shù)據(jù)序列號為變量將所述的元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0065]更進一步地,所述的步驟(1.3.2.1)和(1.3.2.2)之間,還包括以下步驟:
[0066](1.3.2.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模;
[0067](1.3.2.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
[0068]更進一步地,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟:
[0069](1.3.3.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表,并獲取元數(shù)據(jù)實例序列號和依賴關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù);
[0070](1.3.3.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0071]更進一步地,所述的步驟(1.3.3.1)和(1.3.3.2)之間,還包括以下步驟:
[0072](1.3.3.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存服務器的數(shù)量取模;
[0073](1.3.3.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
[0074]更進一步地,所述的分布式緩存框架服務器包括連接池管理模塊和緩存配置模塊,所述的為所述的分布式緩存服務器創(chuàng)建連接池,具體為:
[0075]所述的連接池管理模塊根據(jù)所述的緩存配置模塊中存儲的所述的分布式緩存服務器的相關(guān)配置信息,為所述的分布式緩存服務器創(chuàng)建連接池。
[0076]更進一步地,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口和分析消息接收隊列,所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,包括以下步驟:
[0077](3.1)所述的分析消息接收隊列接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息;
[0078](3.2)所述的任務調(diào)度模塊解析所述的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務;
[0079](3.3)所述的任務調(diào)度模塊根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器;
[0080](3.4)所述的任務調(diào)度模塊通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器。
[0081]更進一步地,所述的分布式緩存框架服務器包括應用程序編程接口,所述的獲得對應的元數(shù)據(jù)分析結(jié)果,包括以下步驟:
[0082](3.5)所述的任務調(diào)度模塊獲得所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例序列,并將所述的分布式緩存服務器中以元數(shù)據(jù)實例序列號為鍵值的緩存數(shù)據(jù)為根節(jié)點,并將所述的根節(jié)點加入到分析結(jié)果對象樹中;
[0083](3.6)所述的任務調(diào)度模塊將元數(shù)據(jù)實例序列號加入到任務集中作為進行元數(shù)據(jù)分析的初始對象;
[0084](3.7)所述的任務調(diào)度模塊以元數(shù)據(jù)實例序列號為參數(shù),并通過調(diào)用所述的應用程序編程接口在所述的元數(shù)據(jù)組合關(guān)系模塊和所述的元數(shù)據(jù)依賴關(guān)系模塊中查找組合關(guān)系元數(shù)據(jù)序列號和依賴關(guān)系元數(shù)據(jù)序列號,形成組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集;
[0085](3.8)所述的任務調(diào)度模塊為所述的組合關(guān)系元數(shù)據(jù)序列號集中的各個組合關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個組合關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中;
[0086](3.9)所述的任務調(diào)度模塊為所述的依賴關(guān)系元數(shù)據(jù)序列號集中的各個依賴關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個依賴關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中;
[0087](3.10)所述的任務調(diào)度模塊從所述的任務集中刪除元數(shù)據(jù)實例序列號,將所述的組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集加入到所述的任務集中;
[0088](3.11)所述的任務調(diào)度模將所述的任務集中的各個關(guān)系元數(shù)據(jù)序列號作為元數(shù)據(jù)實例序列號,返回上述步驟(3.6),直到所述的任務集為空。
[0089]進一步地,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊,所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,包括以下步驟:
[0090](2.1)所述的圖形化界面模塊顯示圖形化界面;
[0091](2.2)所述的圖形化界面模塊響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務;
[0092]更進一步地,所述的元數(shù)據(jù)分析客戶端還包括任務解析模塊和解析消息發(fā)送隊列,所述的將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,包括以下步驟:
[0093](2.3)所述的任務解析模塊將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列;
[0094](2.4)所述的解析消息發(fā)送隊列將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端。
[0095]進一步地,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊和分析消息發(fā)送隊列,所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端,包括以下步驟:
[0096](4.1)所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息;
[0097](4.2)所述的分析消息發(fā)送隊列發(fā)送所述的對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端。
[0098]更進一步地,所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息,具體為:
[0099]所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果以XML方式進行封裝,并得到所對應分析結(jié)果消息
[0100]進一步地,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊和解析消息接收隊列,所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果,包括以下步驟:
[0101](5.1)所述的解析消息接收隊列接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息;
[0102](5.2)所述的任務解析模塊解析所述的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊;
[0103](5.3)所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果。
[0104]進一步地,所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果,具體為:
[0105]所述的圖形化界面模塊以圖形的方式顯示所述的元數(shù)據(jù)分析結(jié)果。
[0106]采用了該發(fā)明中的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法,通過分布式緩存將元數(shù)據(jù)庫中的元數(shù)據(jù)信息加載到分布式緩存服務器中,實現(xiàn)了在分布式緩存服務器中直接查詢元數(shù)據(jù)間的關(guān)系,不需查詢數(shù)據(jù)庫,不產(chǎn)生磁盤1/0,查詢效率極高,由于不使用元數(shù)據(jù)庫中元數(shù)據(jù)表結(jié)構(gòu),因此不需要數(shù)據(jù)表連接運算,從而需要大量計算資源,大大降低了系統(tǒng)使用的計算資源。
[0107]同時,本系統(tǒng)通過創(chuàng)建連接池提高對分布式緩存服務器的訪問性能,由于數(shù)據(jù)訪問連接的創(chuàng)建和銷毀都是非常消耗系統(tǒng)資源的,通過提供數(shù)據(jù)連接池,預先創(chuàng)建好多個數(shù)據(jù)連接,需要建立連接的時候直接從池中取一個連接使用,使用完成后還回池中,避免數(shù)據(jù)連接頻繁地創(chuàng)建、釋放連接的資源消耗。
[0108]通過上述優(yōu)勢可知,本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法架構(gòu)簡單,具有極高的可伸縮性,可以根據(jù)需要增加分布式緩存服務器;使用維護方便快捷,工作性能穩(wěn)定可靠,為企業(yè)元數(shù)據(jù)分析應用的進一步發(fā)展奠定了堅實的基礎,具有更廣泛的應用范圍。
【專利附圖】
【附圖說明】
[0109]圖1為本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)的結(jié)構(gòu)示意圖。
[0110]圖2為本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的方法的流程圖。
【具體實施方式】
[0111]為了能夠更清楚地描述本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例來進行進一步的描述。
[0112]如圖1所示,在一種實施方式中,本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)包括:
[0113]元數(shù)據(jù)分析客戶端,用以響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,以及解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果;
[0114]元數(shù)據(jù)分析服務端,用以根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端;
[0115]分布式緩存框架服務器,用以將元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,并為所述的分布式緩存服務器創(chuàng)建連接池;
[0116]分布式緩存服務器,用以緩存所述的元數(shù)據(jù)庫。
[0117]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊、解析消息接收隊列和解析消息發(fā)送隊列,其中:
[0118]所述的圖形化界面模塊,用以響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務,以及將所對應元數(shù)據(jù)分析任務的數(shù)據(jù)發(fā)送至所述的任務解析模塊,和顯示所述的任務解析模塊發(fā)送的所述的元數(shù)據(jù)分析結(jié)果;
[0119]所述的任務解析模塊,用以將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列,以及解析所述的解析消息接收隊列接收到的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊;
[0120]所述的解析消息發(fā)送隊列,用以將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端;
[0121]所述的解析消息接收隊列,用以接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消肩、O
[0122]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口、分析消息發(fā)送隊列和分析消息接收隊列,其中:
[0123]所述的任務調(diào)度模塊,用以解析所述的分析消息接收隊列接收到的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務,以及根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器,并通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器,并得到所述的元數(shù)據(jù)分析任務對應的元數(shù)據(jù)分析結(jié)果,以及將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息;
[0124]所述的分布式緩存接口,用以訪問所述的分布式緩存框架服務器;
[0125]所述的分析消息發(fā)送隊列,用以發(fā)送所對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端;
[0126]所述的分析消息接收隊列,用以接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息。
[0127]在一種優(yōu)選的實施方式中,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊、連接池管理模塊和應用程序編程接口,其中:
[0128]所述的數(shù)據(jù)加載模塊,用以將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中;
[0129]所述的連接池管理模塊,用以為所述的分布式緩存服務器創(chuàng)建連接池;
[0130]所述的應用程序編程接口,用以訪問所述的分布式緩存框架服務器的應用程序。
[0131]在一種更優(yōu)選的實施方式中,所述的分布式緩存框架服務器還包括緩存配置模塊,所述的緩存配置模塊用以存儲并管理所述的分布式緩存服務器的相關(guān)配置信息。
[0132]在一種更優(yōu)選的實施方式中,所述的分布式緩存框架服務器還包括緩存管理模塊,所述的緩存配置模塊用以對所述的分布式緩存服務器進行注冊、加入、監(jiān)控和故障檢測的管理。
[0133]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析指令包括元數(shù)據(jù)分析功能類型、元數(shù)據(jù)類型和元數(shù)據(jù)名稱的信息,所述的元數(shù)據(jù)分析任務為血緣分析任務、影響分析任務、關(guān)聯(lián)分析任務、拓撲分析任務或指標分析任務,所述的元數(shù)據(jù)分析任務包括客戶端互聯(lián)網(wǎng)協(xié)議地址信息、客戶端端口號信息、任務序列號信息、任務名稱信息、任務類型信息和任務信肩、O
[0134]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)庫包括元數(shù)據(jù)實例表、元數(shù)據(jù)組合關(guān)系表和兀數(shù)據(jù)依賴關(guān)系表。
[0135]在一種更優(yōu)選的實施方式中,所述的分布式緩存服務器由數(shù)個緩存子服務器組成,各個緩存子服務器的下標根據(jù)所述的元數(shù)據(jù)實例序列號對應的哈希值對所述的緩存子服務器的數(shù)量取模得到。
[0136]其中,所述的分布式緩存框架服務器根據(jù)Java對象的HashCodeO函數(shù)方法、MD5算法或SHA-1算法計算得到所述的元數(shù)據(jù)實例序列號對應的哈希值。
[0137]此外,本發(fā)明還提供一種實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,如圖2所示,所述的方法包括以下步驟:
[0138](I)所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中并為所述的分布式緩存服務器創(chuàng)建連接池;
[0139](2)所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端;
[0140](3)所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果;
[0141](4)所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端;
[0142](5)所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果。
[0143]在一種優(yōu)選的實施方式中,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊,所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟:
[0144](1.1)所述的數(shù)據(jù)加載模塊連接所述的元數(shù)據(jù)庫;
[0145](1.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表;
[0146](1.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中。
[0147]在一種更優(yōu)選的實施方式中,所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表,包括以下步驟:
[0148](1.2.1)所述的數(shù)據(jù)加載模塊創(chuàng)建哈希值映射表;
[0149](1.2.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并獲取元數(shù)據(jù)實例序列號、元數(shù)據(jù)類型和元數(shù)據(jù)名稱三個字段所對應的數(shù)據(jù);
[0150](1.2.3)所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,并獲得所述的元數(shù)據(jù)實例序列號對應的哈希值;
[0151](1.2.4)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)實例序列號與所對應的哈希值保存至所述的哈希值映射表。
[0152]其中,所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,具體為:
[0153]所述的數(shù)據(jù)加載模塊根據(jù)Java對象的HashCode O函數(shù)方法、MD5算法或SHA-1算法對元數(shù)據(jù)實例序列號進行哈希運算。
[0154]在一種更優(yōu)選的實施方式中,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟:
[0155](1.3.1)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中;
[0156](1.3.2)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中;
[0157](1.3.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中。
[0158]在一種更優(yōu)選的實施方式中,所述的分布式緩存服務器包括數(shù)個數(shù)個緩存子服務器,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中,包括以下步驟:
[0159](1.3.1.1)
[0160]所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模,并用取模后的值作為該元數(shù)據(jù)實例表中的數(shù)據(jù)對應緩存的緩存子服務器的下標。
[0161](1.3.1.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和所述的元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)實例表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0162]在一種更優(yōu)選的實施方式中,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟:
[0163](1.3.2.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表,并獲取元數(shù)據(jù)實例序列號和組合關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù);
[0164](1.3.2.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的組合關(guān)系元數(shù)據(jù)序列號為變量將所述的元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0165]在一種更優(yōu)選的實施方式中,所述的步驟(1.3.2.1)和(1.3.2.2)之間,還包括以下步驟:
[0166](1.3.2.1.1)所述的數(shù)據(jù)加載模塊通過查詢所述的哈希值映射表得到所述的元數(shù)據(jù)實例序列號所對應的哈希值;
[0167](1.3.2.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模;
[0168](1.3.2.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
[0169]在一種更優(yōu)選的實施方式中,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟:
[0170](1.3.3.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表,并獲取元數(shù)據(jù)實例序列號和依賴關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù);
[0171](1.3.3.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
[0172]在一種更優(yōu)選的實施方式中,所述的步驟(1.3.3.1)和(1.3.3.2)之間,還包括以下步驟:
[0173](1.3.3.1.1)所述的數(shù)據(jù)加載模塊通過查詢所述的哈希值映射表得到所述的元數(shù)據(jù)實例序列號所對應的哈希值;
[0174](1.3.3.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存服務器的數(shù)量取模;
[0175](1.3.3.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
[0176]在一種更優(yōu)選的實施方式中,所述的分布式緩存框架服務器包括連接池管理模塊和緩存配置模塊,所述的為所述的分布式緩存服務器創(chuàng)建連接池,具體為:
[0177]所述的連接池管理模塊根據(jù)所述的緩存配置模塊中存儲的所述的分布式緩存服務器的相關(guān)配置信息,為所述的分布式緩存服務器創(chuàng)建連接池。
[0178]在一種更優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口和分析消息接收隊列,所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,包括以下步驟:
[0179](3.1)所述的分析消息接收隊列接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息;
[0180](3.2)所述的任務調(diào)度模塊解析所述的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務;
[0181](3.3)所述的任務調(diào)度模塊根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器;
[0182](3.4)所述的任務調(diào)度模塊通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器。
[0183]在一種更優(yōu)選的實施方式中,所述的分布式緩存框架服務器包括應用程序編程接口,所述的獲得對應的元數(shù)據(jù)分析結(jié)果,包括以下步驟:
[0184](3.5)所述的任務調(diào)度模塊獲得所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例序列,并將所述的分布式緩存服務器中以元數(shù)據(jù)實例序列號為鍵值的緩存數(shù)據(jù)為根節(jié)點,并將所述的根節(jié)點加入到分析結(jié)果對象樹中;
[0185](3.6)所述的任務調(diào)度模塊將元數(shù)據(jù)實例序列號加入到任務集中作為進行元數(shù)據(jù)分析的初始對象;
[0186](3.7)所述的任務調(diào)度模塊以元數(shù)據(jù)實例序列號為參數(shù),并通過調(diào)用所述的應用程序編程接口在所述的元數(shù)據(jù)組合關(guān)系模塊和所述的元數(shù)據(jù)依賴關(guān)系模塊中查找組合關(guān)系元數(shù)據(jù)序列號和依賴關(guān)系元數(shù)據(jù)序列號,形成組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集;
[0187](3.8)所述的任務調(diào)度模塊為所述的組合關(guān)系元數(shù)據(jù)序列號集中的各個組合關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個組合關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中;
[0188](3.9)所述的任務調(diào)度模塊為所述的依賴關(guān)系元數(shù)據(jù)序列號集中的各個依賴關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個依賴關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中;
[0189](3.10)所述的任務調(diào)度模塊從所述的任務集中刪除元數(shù)據(jù)實例序列號,將所述的組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集加入到所述的任務集中;
[0190](3.11)所述的任務調(diào)度模將所述的任務集中的各個關(guān)系元數(shù)據(jù)序列號作為元數(shù)據(jù)實例序列號,返回上述步驟(3.6),直到所述的任務集為空。
[0191]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊,所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,包括以下步驟:
[0192](2.1)所述的圖形化界面模塊顯示圖形化界面;
[0193](2.2)所述的圖形化界面模塊響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務;
[0194]在一種更優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析客戶端還包括任務解析模塊和解析消息發(fā)送隊列,所述的將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,包括以下步驟:
[0195](2.3)所述的任務解析模塊將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列;
[0196](2.4)所述的解析消息發(fā)送隊列將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端。
[0197]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊和分析消息發(fā)送隊列,所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端,包括以下步驟:
[0198](4.1)所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息;
[0199](4.2)所述的分析消息發(fā)送隊列發(fā)送所述的對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端。
[0200]在一種更優(yōu)選的實施方式中,所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息,具體為:
[0201]所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果以XML(Extensible MarkupLanguage,可擴展標記語言)方式進行封裝,并得到所對應分析結(jié)果消息
[0202]在一種優(yōu)選的實施方式中,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊和解析消息接收隊列,所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果,包括以下步驟:
[0203](5.1)所述的解析消息接收隊列接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息;
[0204](5.2)所述的任務解析模塊解析所述的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊;
[0205](5.3)所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果。
[0206]在一種優(yōu)選的實施方式中,所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果,具體為:
[0207]所述的圖形化界面模塊以圖形的方式顯示所述的元數(shù)據(jù)分析結(jié)果。
[0208]以下為上述方法在一種具體實施例中的處理流程:
[0209]1、元數(shù)據(jù)分析系統(tǒng)服務端進行初始化;
[0210]11、啟動元數(shù)據(jù)分析系統(tǒng)服務端的消息接收隊列和消息發(fā)送隊列;
[0211]12、啟動元數(shù)據(jù)分析任務調(diào)度線程;
[0212]2、分布式緩存框架服務器進行初始化;
[0213]21讀取配置文件,獲得元數(shù)據(jù)庫的IP地址與端口 ;
[0214]22調(diào)用數(shù)據(jù)加載模塊將數(shù)據(jù)庫中的數(shù)據(jù)加載到分布式緩存框架服務器中;
[0215]2.3調(diào)用連接池管理模塊為緩存服務器創(chuàng)建連接池;
[0216]其中,分布式緩存框架服務器中數(shù)據(jù)加載模塊的執(zhí)行步驟:
[0217]221、通過數(shù)據(jù)庫客戶端連接元數(shù)據(jù)庫;
[0218]222、查詢元數(shù)據(jù)實例表,根據(jù)元數(shù)據(jù)類型創(chuàng)建元數(shù)據(jù)類型映射表,保存元數(shù)據(jù)類型與元數(shù)據(jù)實例ID集合的映射關(guān)系;
[0219]223、將元數(shù)據(jù)實例表加載到分布式緩存框架服務器中;
[0220]224、將元數(shù)據(jù)組合關(guān)系表加載到分布式緩存框架服務器中;
[0221]225、將元數(shù)據(jù)依賴關(guān)系表加載到分布式緩存框架服務器中;
[0222]其中,分布式緩存服務器是由多臺緩存子服務器組成的集群,每臺子服務器上都運行有緩存軟件,提供數(shù)據(jù)緩存服務,元數(shù)據(jù)庫中的每條數(shù)據(jù)根據(jù)Hash算法保存到集群中的一臺緩存子服務器上,集群中所有的緩存子服務器根據(jù)服務器名排列成一個緩存子服務器列表數(shù)組,數(shù)組下標指明是集群中第幾臺服務器,
[0223]根據(jù)上述內(nèi)容,元數(shù)據(jù)實例表加載到分布式緩存框架服務器中的步驟具體如下:
[0224](a)創(chuàng)建元數(shù)據(jù)Hash (哈希)值映射表,用于保存元數(shù)據(jù)實例ID (序列號)與Hash值的對應關(guān)系;
[0225](b)查詢元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,批量獲取元數(shù)據(jù)實例ID、元數(shù)據(jù)類型、元數(shù)據(jù)名稱三個字段的數(shù)據(jù);
[0226](c)對元數(shù)據(jù)實例ID進行Hash運算,獲得Hash值,將元數(shù)據(jù)實例ID與Hash值的映射關(guān)系加入到映射表,再用Hash值與緩存子服務器數(shù)量取模,用取模后的值作為該元數(shù)據(jù)將要存放的緩存子服務器的下標;
[0227](d)以元數(shù)據(jù)實例ID為key (鍵值),以元數(shù)據(jù)類型、元數(shù)據(jù)名稱為value (變量)將數(shù)據(jù)批量存儲到元數(shù)據(jù)實例緩存服務器列表中下標為取模后值的緩存子服務器上;
[0228]其次,元數(shù)據(jù)組合關(guān)系表加載到分布式緩存框架服務器中的步驟如下:
[0229](a)查詢元數(shù)據(jù)組合關(guān)系表,批量獲取元數(shù)據(jù)實例ID和組合關(guān)系元數(shù)據(jù)ID兩個字段的數(shù)據(jù);
[0230](b)根據(jù)元數(shù)據(jù)實例ID在元數(shù)據(jù)Hash值映射表中查找相應Hash值,再使用Hash值與緩存子服務器的數(shù)量取模,用取模后的值作為該元數(shù)據(jù)將要存放的緩存子服務器的下標;
[0231](c)以元數(shù)據(jù)實例ID為Key,組合關(guān)系元數(shù)據(jù)ID為value將數(shù)據(jù)批量存儲到元數(shù)據(jù)組合關(guān)系緩存服務器列表中下標為取模后值的緩存子服務器上;
[0232]其中,元數(shù)據(jù)依賴關(guān)系表加載到分布式緩存框架服務器的步驟如下:
[0233](a)查詢元數(shù)據(jù)依賴關(guān)系表,批量獲取元數(shù)據(jù)實例ID和依賴關(guān)系元數(shù)據(jù)ID兩個字段的數(shù)據(jù);
[0234](b)根據(jù)元數(shù)據(jù)實例ID在元數(shù)據(jù)Hash值映射表中查找相應Hash值,再使用Hash值與緩存子服務器的數(shù)量取模,用取模后的值作為該元數(shù)據(jù)將要存放的緩存子服務器的下標;
[0235](c)以元數(shù)據(jù)實例ID為key,以元數(shù)據(jù)類型、元數(shù)據(jù)名稱為value將數(shù)據(jù)批量存儲到緩存子服務器列表中下標為取模后值的緩存子服務器上;
[0236]4、用戶提交要分析的數(shù)據(jù)給元數(shù)據(jù)分析客戶端;
[0237]41、用戶通過圖形化界面選中元數(shù)據(jù)節(jié)點并決定要進行的元數(shù)據(jù)分析功能;
[0238]42、元數(shù)據(jù)分析功能類型包括:血緣分析、影響分析、關(guān)聯(lián)分析、拓撲分析、指標分析等。
[0239]43、圖形化界面接收用戶的動作并提交相關(guān)數(shù)據(jù)給元數(shù)據(jù)分析客戶端;
[0240]44、圖形化界面提交的數(shù)據(jù)格式:元數(shù)據(jù)分析功能類型元數(shù)據(jù)類型元數(shù)據(jù)名稱
[0241]5、元數(shù)據(jù)分析客戶端將分析數(shù)據(jù)提交給服務端進行分析;
[0242]51、元數(shù)據(jù)分析客戶端接收到圖形化界面發(fā)送的數(shù)據(jù);
[0243]52、元數(shù)據(jù)分析客戶端將數(shù)據(jù)封裝到元數(shù)據(jù)分析任務中;
[0244]53、元數(shù)據(jù)分析任務的格式:客戶端IP地址客戶端端口號任務ID任務名稱任務類型任務信息
[0245]54、元數(shù)據(jù)分析客戶端將任務通過發(fā)送消息發(fā)送到服務端的接收任務消息隊列中;
[0246]6、元數(shù)據(jù)分析服務端執(zhí)行元數(shù)據(jù)分析方法,得到分析結(jié)果;
[0247]61、元數(shù)據(jù)分析服務端的任務調(diào)度模塊讀取接收消息隊列中的任務信息,啟動新的分析線程執(zhí)行元數(shù)據(jù)分析任務;
[0248]62、元數(shù)據(jù)分析服務端解析任務信息中的參數(shù),得到要進行分析的元數(shù)據(jù)信息
[0249]其中,元數(shù)據(jù)信息的格式為:元數(shù)據(jù)分析功能類型元數(shù)據(jù)類型元數(shù)據(jù)名稱
[0250]63、元數(shù)據(jù)分析服務端根據(jù)元數(shù)據(jù)分析功能的類型使用不同的查詢策略,生成不同的查詢?nèi)蝿眨?br>
[0251]其中,由于元數(shù)據(jù)分析功能的類型主要包括:血緣分析(血統(tǒng)分析)、影響分析、實體關(guān)聯(lián)分析、實體影響分析、主機拓撲分析、指標一致性分析等,因此對應的查詢策略包括:血緣分析策略、影響分析策略、關(guān)聯(lián)分析策略、拓撲分析策略、一致性分析策略等;
[0252]64、元數(shù)據(jù)分析服務端根據(jù)生成的查詢?nèi)蝿?,使用分布式緩存框架服務器提供的API(應用程序編程接口)訪問元數(shù)據(jù)實例緩存數(shù)據(jù),獲得要進行分析的元數(shù)據(jù)實例ID ;
[0253]65、元數(shù)據(jù)分析服務端獲得元數(shù)據(jù)實例ID后,將分布式緩存服務器中以元數(shù)據(jù)實例ID為key的鍵一值對象作為根節(jié)點,加入到分析結(jié)果對象樹中;
[0254]66、元數(shù)據(jù)分析服務端將元數(shù)據(jù)實例ID加入到任務集中,作為進行元數(shù)據(jù)分析的初始對象;
[0255]67、元數(shù)據(jù)分析服務端以元數(shù)據(jù)實例ID為參數(shù),通過調(diào)用API在元數(shù)據(jù)組合關(guān)系緩存集群和元數(shù)據(jù)依賴關(guān)系緩存集群中查找組合關(guān)系元數(shù)據(jù)ID和依賴關(guān)系元數(shù)據(jù)ID,形成組合關(guān)系元數(shù)據(jù)ID集與依賴關(guān)系元數(shù)據(jù)ID集;
[0256]68、為組合關(guān)系元數(shù)據(jù)ID集中的每個組合關(guān)系元數(shù)據(jù)ID啟動一個查詢線程,以組合關(guān)系元數(shù)據(jù)ID為參數(shù)在元數(shù)據(jù)實例緩存集群中查找到元數(shù)據(jù)實例對象并加入到分析結(jié)果對象樹中,以元數(shù)據(jù)實例ID為父節(jié)點;
[0257]69、為依賴關(guān)系元數(shù)據(jù)ID集中的每個依賴關(guān)系元數(shù)據(jù)ID啟動一個查詢線程,以依賴關(guān)系元數(shù)據(jù)ID為參數(shù)在元數(shù)據(jù)實例緩存集群中查找到元數(shù)據(jù)實例對象并加入到分析結(jié)果對象樹中,以元數(shù)據(jù)實例ID為父節(jié)點;
[0258]610、從任務對象集中刪除元數(shù)據(jù)實例ID,將組合關(guān)系元數(shù)據(jù)ID集與依賴關(guān)系元數(shù)據(jù)ID集加入到任務集中;
[0259]611、將任務集中的每個關(guān)系元數(shù)據(jù)ID作為元數(shù)據(jù)實例ID,執(zhí)行上面的查詢步驟,直到任務集為空
[0260]7、元數(shù)據(jù)分析服務端將分析結(jié)果返回至元數(shù)據(jù)分析客戶端;
[0261]71、元數(shù)據(jù)分析服務端將分析結(jié)果對象樹以XML形式進行封裝,形成分析結(jié)果消息內(nèi)容;
[0262]72、將分析結(jié)果消息發(fā)送到元數(shù)據(jù)分析客戶端的解析接收消息隊列;
[0263]8、元數(shù)據(jù)分析客戶端進行展現(xiàn);
[0264]81、元數(shù)據(jù)分析客戶端從解析接收消息隊列接收消息,解析后將分析結(jié)果對象樹發(fā)送給圖形化界面模塊;
[0265]82、圖形化界面模塊將分析結(jié)果對象樹以圖形化形式進行展現(xiàn)。
[0266]采用了該發(fā)明中的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法,通過分布式緩存將元數(shù)據(jù)庫中的元數(shù)據(jù)信息加載到分布式緩存服務器中,實現(xiàn)了在分布式緩存服務器中直接查詢元數(shù)據(jù)間的關(guān)系,不需查詢數(shù)據(jù)庫,不產(chǎn)生磁盤1/0,查詢效率極高,由于不使用元數(shù)據(jù)庫中元數(shù)據(jù)表結(jié)構(gòu),因此不需要數(shù)據(jù)表連接運算,從而需要大量計算資源,大大降低了系統(tǒng)使用的計算資源。
[0267]同時,本系統(tǒng)通過創(chuàng)建連接池提高對分布式緩存服務器的訪問性能,由于數(shù)據(jù)訪問連接的創(chuàng)建和銷毀都是非常消耗系統(tǒng)資源的,通過提供數(shù)據(jù)連接池,預先創(chuàng)建好多個數(shù)據(jù)連接,需要建立連接的時候直接從池中取一個連接使用,使用完成后還回池中,避免數(shù)據(jù)連接頻繁地創(chuàng)建、釋放連接的資源消耗。
[0268]通過上述優(yōu)勢可知,本發(fā)明的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng)及方法架構(gòu)簡單,具有極高的可伸縮性,可以根據(jù)需要增加分布式緩存服務器;使用維護方便快捷,工作性能穩(wěn)定可靠,為企業(yè)元數(shù)據(jù)分析應用的進一步發(fā)展奠定了堅實的基礎,具有更廣泛的應用范圍。
[0269]在此說明書中,本發(fā)明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應被認為是說明性的而非限制性的。
【權(quán)利要求】
1.一種基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的系統(tǒng)包括: 元數(shù)據(jù)分析客戶端,用以響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,以及解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果; 元數(shù)據(jù)分析服務端,用以根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端; 分布式緩存框架服務器,用以將元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,并為所述的分布式緩存服務器創(chuàng)建連接池; 分布式緩存服務器,用以緩存所述的元數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊、解析消息接收隊列和解析消息發(fā)送隊列,其中: 所述的圖形化界面模塊,用以響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務,以及將所對應元數(shù)據(jù)分析任務的數(shù)據(jù)發(fā)送至所述的任務解析模塊,和顯示所述的任務解析模塊發(fā)送的所述的元數(shù)據(jù)分析結(jié)果; 所述的任務解析模塊,用以將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列,以及解析所述的解析消息接收隊列接收到的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊; 所述的解析消息發(fā)送隊列,用以將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端; 所述的解析消息接收隊列,用以接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息。
3.根據(jù)權(quán)利要求1所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口、分析消息發(fā)送隊列和分析消息接收隊列,其中: 所述的任務調(diào)度模塊,用以解析所述的分析消息接收隊列接收到的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務,以及根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器,并通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器,并得到所述的元數(shù)據(jù)分析任務對應的元數(shù)據(jù)分析結(jié)果,以及將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息; 所述的分布式緩存接口,用以訪問所述的分布式緩存框架服務器; 所述的分析消息發(fā)送隊列,用以發(fā)送所對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端; 所述的分析消息接收隊列,用以接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息。
4.根據(jù)權(quán)利要求1所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊、連接池管理模塊和應用程序編程接口,其中: 所述的數(shù)據(jù)加載模塊,用以將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中; 所述的連接池管理模塊,用以為所述的分布式緩存服務器創(chuàng)建連接池; 所述的應用程序編程接口,用以訪問所述的分布式緩存框架服務器的應用程序。
5.根據(jù)權(quán)利要求4所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的分布式緩存框架服務器還包括緩存配置模塊,所述的緩存配置模塊用以存儲并管理所述的分布式緩存服務器的相關(guān)配置信息。
6.根據(jù)權(quán)利要求4所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的分布式緩存框架服務器還包括緩存管理模塊,所述的緩存配置模塊用以對所述的分布式緩存服務器進行注冊、加入、監(jiān)控和故障檢測的管理。
7.根據(jù)權(quán)利要求1至6中任一項所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的元數(shù)據(jù)分析指令包括元數(shù)據(jù)分析功能類型、元數(shù)據(jù)類型和元數(shù)據(jù)名稱的信息,所述的元數(shù)據(jù)分析任務為血緣分析任務、影響分析任務、關(guān)聯(lián)分析任務、拓撲分析任務或指標分析任務,所述的元數(shù)據(jù)分析任務包括客戶端互聯(lián)網(wǎng)協(xié)議地址信息、客戶端端口號信息、任務序列號信息、任務名稱信息、任務類型信息和任務信息。
8.根據(jù)權(quán)利要求1至6中任一項所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的元數(shù)據(jù)庫包括元數(shù)據(jù)實例表、元數(shù)據(jù)組合關(guān)系表和元數(shù)據(jù)依賴關(guān)系表。
9.根據(jù)權(quán)利要求8所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的分布式緩存服務器由數(shù)個緩存子服務器組成,各個緩存子服務器的下標根據(jù)所述的元數(shù)據(jù)實例序列號對應的哈希值對所述的緩存子服務器的數(shù)量取模得到。
10.根據(jù)權(quán)利要求9所述的基于分布式緩存實現(xiàn)元數(shù)據(jù)分析的系統(tǒng),其特征在于,所述的分布式緩存框架服務器根據(jù)Java對象的HashCode O函數(shù)方法、MD5算法或SHA-1算法計算得到所述的元數(shù)據(jù)實例序列號對應的哈希值。
11.一種利用權(quán)利要求1至6中任一項所述的系統(tǒng)實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的方法包括以下步驟: (1)所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中并為所述的分布式緩存服務器創(chuàng)建連接池; (2)所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,并將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端; (3)所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器,并獲得對應的元數(shù)據(jù)分析結(jié)果; (4)所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端; (5)所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果。
12.根據(jù)權(quán)利要求11所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的分布式緩存框架服務器包括數(shù)據(jù)加載模塊,所述的分布式緩存框架服務器將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟: (1.D所述的數(shù)據(jù)加載模塊連接所述的元數(shù)據(jù)庫; (1.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表; (1.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中。
13.根據(jù)權(quán)利要求12所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并根據(jù)所述的元數(shù)據(jù)實例表創(chuàng)建并保存哈希值映射表,包括以下步驟: (1.2.1)所述的數(shù)據(jù)加載模塊創(chuàng)建哈希值映射表; (1.2.2)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表,并獲取元數(shù)據(jù)實例序列號、元數(shù)據(jù)類型和元數(shù)據(jù)名稱三個字段所對應的數(shù)據(jù); (1.2.3)所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,并獲得所述的元數(shù)據(jù)實例序列號對應的哈希值; (1.2.4)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)實例序列號與所對應的哈希值保存至所述的哈希值映射表。
14.根據(jù)權(quán)利要求13所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的數(shù)據(jù)加載模塊對元數(shù)據(jù)實例序列號進行哈希運算,具體為: 所述的數(shù)據(jù)加載模塊根據(jù)Java對象的HashCode O函數(shù)方法、MD5算法或SHA-1算法對元數(shù)據(jù)實例序列號進行哈希運算。
15.根據(jù)權(quán)利要求13所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的數(shù)據(jù)加載至所述的分布式緩存服務器中,包括以下步驟: (1.3.1)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中; (1.3.2)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中; (1.3.3)所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中。
16.根據(jù)權(quán)利要求15所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的分布式緩存服務器包括數(shù)個緩存子服務器,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例表加載到所述的分布式緩存服務器中,包括以下步驟: (1.3.1.1)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模,并用取模后的值作為該元數(shù)據(jù)實例表中的數(shù)據(jù)對應緩存的緩存子服務器的下標。 (1.3.1.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和所述的元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)實例表的數(shù)據(jù)保存至所對應的緩存子服務器中。
17.根據(jù)權(quán)利要求16所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟: (1.3.2.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)組合關(guān)系表,并獲取元數(shù)據(jù)實例序列號和組合關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù); (1.3.2.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的組合關(guān)系元數(shù)據(jù)序列號為變量將所述的元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
18.根據(jù)權(quán)利要求17所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的步驟(1.3.2.1)和(1.3.2.2)之間,還包括以下步驟: (1.3.2.1.1)所述的數(shù)據(jù)加載模塊通過查詢所述的哈希值映射表得到所述的元數(shù)據(jù)實例序列號所對應的哈希值; (1.3.2.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存子服務器的數(shù)量取模; (1.3.2.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)組合關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
19.根據(jù)權(quán)利要求18所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的數(shù)據(jù)加載模塊將所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表加載到所述的分布式緩存服務器中,包括以下步驟: (1.3.3.1)所述的數(shù)據(jù)加載模塊查詢所述的元數(shù)據(jù)庫中的元數(shù)據(jù)依賴關(guān)系表,并獲取元數(shù)據(jù)實例序列號和依賴關(guān)系元數(shù)據(jù)序列號兩個字段的數(shù)據(jù); (1.3.3.2)所述的數(shù)據(jù)加載模塊以所述的元數(shù)據(jù)實例序列號為鍵值,以所述的元數(shù)據(jù)類型和元數(shù)據(jù)名稱為變量將所述的元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)保存至所對應的緩存子服務器中。
20.根據(jù)權(quán)利要求19所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的步驟(1.3.3.1)和(1.3.3.2)之間,還包括以下步驟: (1.3.3.1.1)所述的數(shù)據(jù)加載模塊通過查詢所述的哈希值映射表得到所述的元數(shù)據(jù)實例序列號所對應的哈希值; (1.3.3.1.2)所述的數(shù)據(jù)加載模塊根據(jù)所述的哈希值對所述的緩存服務器的數(shù)量取模; (1.3.3.1.3)所述的數(shù)據(jù)加載模塊根據(jù)取模后的值查詢各個緩存子服務器的下標,并找到該元數(shù)據(jù)依賴關(guān)系表的數(shù)據(jù)對應緩存的緩存子服務器。
21.根據(jù)權(quán)利要求20所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的分布式緩存框架服務器包括連接池管理模塊和緩存配置模塊,所述的為所述的分布式緩存服務器創(chuàng)建連接池,具體為: 所述的連接池管理模塊根據(jù)所述的緩存配置模塊中存儲的所述的分布式緩存服務器的相關(guān)配置信息,為所述的分布式緩存服務器創(chuàng)建連接池。
22.根據(jù)權(quán)利要求20所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊、分布式緩存接口和分析消息接收隊列,所述的元數(shù)據(jù)分析服務端根據(jù)所述的元數(shù)據(jù)分析任務通過分布式緩存框架服務器查詢分布式緩存服務器,包括以下步驟: (3.1)所述的分析消息接收隊列接收所述的元數(shù)據(jù)分析客戶端發(fā)送的所述的元數(shù)據(jù)分析消息; (3.2)所述的任務調(diào)度模塊解析所述的元數(shù)據(jù)分析消息并得到所述的元數(shù)據(jù)分析任務; (3.3)所述的任務調(diào)度模塊根據(jù)所述的元數(shù)據(jù)分析任務通過所述的分布式緩存接口調(diào)用所述的分布式緩存框架服務器; (3.4)所述的任務調(diào)度模塊通過所述的分布式緩存框架服務器查詢所述的分布式緩存服務器。
23.根據(jù)權(quán)利要求22所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的分布式緩存框架服務器包括應用程序編程接口,所述的獲得對應的元數(shù)據(jù)分析結(jié)果,包括以下步驟: (3.5)所述的任務調(diào)度模塊獲得所述的元數(shù)據(jù)庫中的元數(shù)據(jù)實例序列,并將所述的分布式緩存服務器中以元數(shù)據(jù)實例序列號為鍵值的緩存數(shù)據(jù)為根節(jié)點,并將所述的根節(jié)點加入到分析結(jié)果對象樹中; (3.6)所述的任務調(diào)度模塊將元數(shù)據(jù)實例序列號加入到任務集中作為進行元數(shù)據(jù)分析的初始對象; (3.7)所述的任務調(diào)度模塊以元數(shù)據(jù)實例序列號為參數(shù),并通過調(diào)用所述的應用程序編程接口在所述的元數(shù)據(jù)組合關(guān)系模塊和所述的元數(shù)據(jù)依賴關(guān)系模塊中查找組合關(guān)系元數(shù)據(jù)序列號和依賴關(guān)系元數(shù)據(jù)序列號,形成組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集; (3.8)所述的任務調(diào)度模塊為所述的組合關(guān)系元數(shù)據(jù)序列號集中的各個組合關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個組合關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中; (3.9)所述的任務調(diào)度模塊為所述的依賴關(guān)系元數(shù)據(jù)序列號集中的各個依賴關(guān)系元數(shù)據(jù)序列號啟動一個查詢線程,以所述的各個依賴關(guān)系元數(shù)據(jù)序列號為參數(shù)在所述的元數(shù)據(jù)實例模塊中查詢得到對應的元數(shù)據(jù)實例并加入到以所述的元數(shù)據(jù)實例序列號為根節(jié)點的分析結(jié)果對象樹中; (3.10)所述的任務調(diào)度模塊從所述的任務集中刪除元數(shù)據(jù)實例序列號,將所述的組合關(guān)系元數(shù)據(jù)序列號集與依賴關(guān)系元數(shù)據(jù)序列號集加入到所述的任務集中; (3.11)所述的任務調(diào)度模將所述的任務集中的各個關(guān)系元數(shù)據(jù)序列號作為元數(shù)據(jù)實例序列號,返回上述步驟(3.6),直到所述的任務集為空。
24.根據(jù)權(quán)利要求11所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊,所述的元數(shù)據(jù)分析客戶端響應用戶提交的元數(shù)據(jù)分析指令,包括以下步驟: (2.1)所述的圖形化界面模塊顯示圖形化界面; (2.2)所述的圖形化界面模塊響應用戶提交的元數(shù)據(jù)分析指令并得到所對應的元數(shù)據(jù)分析任務。
25.根據(jù)權(quán)利要求24所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的元數(shù)據(jù)分析客戶端還包括任務解析模塊和解析消息發(fā)送隊列,所述的將所述的元數(shù)據(jù)分析指令對應的元數(shù)據(jù)分析消息發(fā)送至元數(shù)據(jù)分析服務端,包括以下步驟: (2.3)所述的任務解析模塊將所述元數(shù)據(jù)分析任務的數(shù)據(jù)封裝為對應的元數(shù)據(jù)分析消息,并將所對應的元數(shù)據(jù)分析消息發(fā)送至所述的解析消息發(fā)送隊列; (2.4)所述的解析消息發(fā)送隊列將所述的元數(shù)據(jù)分析消息發(fā)送至所述的元數(shù)據(jù)分析服務端。
26.根據(jù)權(quán)利要求11所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的元數(shù)據(jù)分析服務端包括任務調(diào)度模塊和分析消息發(fā)送隊列,所述的元數(shù)據(jù)分析服務端將所述的元數(shù)據(jù)分析結(jié)果對應的分析結(jié)果消息發(fā)送至所述的元數(shù)據(jù)分析客戶端,包括以下步驟: (4.1)所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息; (4.2)所述的分析消息發(fā)送隊列發(fā)送所述的對應的分析結(jié)果消息至所述的元數(shù)據(jù)分析客戶端。
27.根據(jù)權(quán)利要求26所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果封裝為所對應分析結(jié)果消息,具體為: 所述的任務調(diào)度模塊將所對應的元數(shù)據(jù)分析結(jié)果以XML方式進行封裝,并得到所對應分析結(jié)果消息。
28.根據(jù)權(quán)利要求11所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的元數(shù)據(jù)分析客戶端包括圖形化界面模塊、任務解析模塊和解析消息接收隊列,所述的元數(shù)據(jù)分析客戶端解析所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息得到元數(shù)據(jù)分析結(jié)果,并顯示所述的元數(shù)據(jù)分析結(jié)果,包括以下步驟: (5.1)所述的解析消息接收隊列接收所述的元數(shù)據(jù)分析服務端發(fā)送的分析結(jié)果消息;(5.2)所述的任務解析模塊解析所述的分析結(jié)果消息并得到所述的元數(shù)據(jù)分析結(jié)果,以及將所述的元數(shù)據(jù)分析結(jié)果發(fā)送至所述的圖形化界面模塊; (5.3)所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果。
29.根據(jù)權(quán)利要求28所述的實現(xiàn)基于分布式緩存的元數(shù)據(jù)分析方法,其特征在于,所述的圖形化界面模塊顯示所述的元數(shù)據(jù)分析結(jié)果,具體為: 所述的圖形化界面模塊以圖形的方式顯示所述的元數(shù)據(jù)分析結(jié)果。
【文檔編號】G06F17/30GK104239572SQ201410521926
【公開日】2014年12月24日 申請日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】馬捷 申請人:普元信息技術(shù)股份有限公司