一種雙隊列數(shù)據(jù)采集開發(fā)方法
【專利摘要】本發(fā)明公開了一種雙隊列數(shù)據(jù)采集開發(fā)方法,通過對數(shù)據(jù)采集過程中配置采集對象屬性、執(zhí)行采集任務,返回采集結果這三個環(huán)節(jié)的抽象,實現(xiàn)了一個可擴展的采集引擎接口。通過實現(xiàn)統(tǒng)一的采集配置接口、采集任務執(zhí)行接口、采集任務數(shù)據(jù)發(fā)送接口的方法可以減少對不同任務執(zhí)行的繁瑣開發(fā),快速的開發(fā)采集程序,無需關心采集任務的調度情況,只需要關心具體監(jiān)控對象數(shù)據(jù)的獲取方法,具有跨平臺、執(zhí)行效率高、簡單易用等顯著優(yōu)點。
【專利說明】一種雙隊列數(shù)據(jù)采集開發(fā)方法
【技術領域】
[0001]本發(fā)明屬于監(jiān)控軟件技術,尤其適用于開發(fā)監(jiān)控軟件的設計同時能異步執(zhí)行采集任務和發(fā)送采集結果的數(shù)據(jù)采集引擎接口實現(xiàn)方法,主要是與數(shù)據(jù)提取運行引擎接口實現(xiàn)方法【技術領域】。
【背景技術】
[0002]隨著信息時代的到來,人們對于通信方式、通信效率的要求也越來越高。信息社會對計算機網(wǎng)絡的依賴,使得計算機網(wǎng)絡本身運行的可靠性變得至關重要,同時,也對網(wǎng)絡的管理提出了更高的要求。信息技術在企業(yè)中的應用的不斷深入顯得越來越重要,未來甚至許多企業(yè)就是只依靠信息化建設而生存。保證信息的暢通、安全對于企業(yè)來說越來越重要。目前,出于對資源專業(yè)化、精細化管理的要求,企業(yè)部署了諸多的監(jiān)控管理工具,如網(wǎng)絡監(jiān)控、系統(tǒng)監(jiān)控、數(shù)據(jù)庫監(jiān)控工具、視頻監(jiān)控、安全監(jiān)控等。一般來說,這些監(jiān)控工具往往來自于不同的廠商,彼此之間缺乏信息共享的手段。而一個具體的業(yè)務是由網(wǎng)絡、主機、應用本身所組成,管理信息無法共享,這就造成了當一個故障出現(xiàn)時,無法通過系統(tǒng)直接自動分析并定位故障點,加大了故障的分析難度,降低了解決問題的效率。同時這些軟件一般是按照執(zhí)行采集、執(zhí)行發(fā)送的同步方式進行執(zhí)行采集任務。
【發(fā)明內容】
[0003]本發(fā)明通過對上述這些監(jiān)控軟件、數(shù)據(jù)采集過程的歸納分析,提出了一種雙隊列數(shù)據(jù)采集開發(fā)方法,主要關注與數(shù)據(jù)提取運行引擎。
[0004]本發(fā)明的目的是實現(xiàn)快速搭建監(jiān)控采集平臺、實現(xiàn)統(tǒng)一的數(shù)據(jù)對外接口,簡化監(jiān)控程序的開發(fā)過程,提出了一種能異步執(zhí)行采集任務和發(fā)送采集結果的數(shù)據(jù)采集引擎監(jiān)控程序設計方法。本發(fā)明將采集任務的執(zhí)行分離出來,自己只用專注于監(jiān)控對象處理的業(yè)務邏輯。
[0005]本發(fā)明是通過下列技術方案來實現(xiàn)的。
[0006]一種雙隊列數(shù)據(jù)采集開發(fā)方法,本發(fā)明下列技術方案來實現(xiàn):
O提供統(tǒng)一的任務管理配置數(shù)據(jù)結構,通過統(tǒng)一的數(shù)據(jù)結構進行任務數(shù)據(jù)的管理;
2)提供統(tǒng)一的HTTP請求方式的任務管理接口方法,實現(xiàn)任務的啟動、停止、修改、刪
除;
3)實現(xiàn)統(tǒng)一的任務執(zhí)行接口方法,采集程序通過實現(xiàn)該接口來實現(xiàn)具體的監(jiān)控任務,返回標準格式的數(shù)據(jù);
4)實現(xiàn)統(tǒng)一的數(shù)據(jù)格式發(fā)送接口類,按Base64統(tǒng)一編碼規(guī)則的格式進行數(shù)據(jù)發(fā)送,發(fā)送結果對象通過實現(xiàn)相同接口進行處理;提高數(shù)據(jù)的傳輸效率和安全性;
5)實現(xiàn)統(tǒng)一的雙隊列工作調度類,采用雙隊列工作方式,一個隊列作為任務隊列,一個隊列作為采集結果隊列,一個線程池從任務隊列中取任務執(zhí)行采集,一個線程池從采集結果隊列中取結果進行發(fā)送;通過雙隊列方式實現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)發(fā)送的分離與高效執(zhí)行。
[0007]本發(fā)明實現(xiàn)了統(tǒng)一的數(shù)據(jù)接口設置采集監(jiān)控對象的必要條件,如任務管理端口、數(shù)據(jù)接收地址、端口可靈活配置。
[0008]本發(fā)明的有益效果是,實現(xiàn)了快速搭建監(jiān)控采集平臺、實現(xiàn)了統(tǒng)一的數(shù)據(jù)對外接口,簡化監(jiān)控程序的開發(fā)過程,提出了一種能異步執(zhí)行采集任務和發(fā)送采集結果的數(shù)據(jù)采集引擎監(jiān)控程序設計方法。
【專利附圖】
【附圖說明】
[0009]圖1雙隊列采集方法使用示意圖。
【具體實施方式】
[0010]下面結合附圖及實例進一步闡述本
【發(fā)明內容】
。
[0011]見圖1,一種雙隊列數(shù)據(jù)采集開發(fā)方法,本發(fā)明通過下列技術方案來實現(xiàn):
1)提供統(tǒng)一的任務管理配置數(shù)據(jù)結構,通過統(tǒng)一的數(shù)據(jù)結構進行任務數(shù)據(jù)的管理;
2)提供統(tǒng)一的HTTP請求方式的任務管理接口方法,實現(xiàn)任務的啟動、停止、修改、刪
除;
3)實現(xiàn)統(tǒng)一的任務執(zhí)行接口方法,采集程序通過實現(xiàn)該接口來實現(xiàn)具體的監(jiān)控任務,返回標準格式的數(shù)據(jù);
4)實現(xiàn)統(tǒng)一的數(shù)據(jù)格式發(fā)送接口類,按Base64統(tǒng)一編碼規(guī)則的格式進行數(shù)據(jù)發(fā)送,發(fā)送結果對象通過實現(xiàn)相同接口進行處理;提高數(shù)據(jù)的傳輸效率和安全性;
5)實現(xiàn)統(tǒng)一的雙隊列工作調度類,采用雙隊列工作方式,一個隊列作為任務隊列,一個隊列作為采集結果隊列,一個線程池從任務隊列中取任務執(zhí)行采集,一個線程池從采集結果隊列中取結果進行發(fā)送;通過雙隊列方式實現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)發(fā)送的分離與高效執(zhí)行。
[0012]實施例
O定義任務管理數(shù)據(jù)結構,編寫任務管理類、采集條件屬性類,相關數(shù)據(jù)接口如下(這里試例采用java編程語言實現(xiàn)):
任務管理類:
class AcquisitorInteractiveInfo {
private string acquisitorURI ;// 米集對象類型唯一標不
private string acquisitorDesc ;// 米集器類型描述
private string acquisitorDetail ;//其他描述信息
private string targetURI ;// 米集對象唯一標不
private AcquisitionPropertyInfo [] globalProperties ;//米集條件類(如
端口、IP等)
private AcquisitionItemInfo [] acquisitionlterns ; //米集任務指標類 隹a
朱口
private boolean
}采集條件屬性類:
class AcquisitionPropertyInfo {
private string name ;// 監(jiān)控條件名稱 private string itemDesc ;//描述信息 private string itemDetail ;//詳細描述信息 private boolean required ;// 是否必須 private string dataType; // 條件數(shù)據(jù)類型 }
釆集任務指標類:
class AcquisitionItemInfo {
private string name ;// 監(jiān)控指標名稱
private string itemDesc ;//描述信息
private string itemDetail ;//詳細描述信息
private boolean running ;// 是否執(zhí)行米集
private int32 interval ; // 米集間隔
}
2)編寫HTTP請求方式的任務管理接口方法,實現(xiàn)任務的啟動、停止、修改、刪除。接口如下:
public void runTask (Acqui sitorlnteractive Info task);// 啟動任務
public void updateTask (Acqui si tor Interactive Info task);// 修改、停止米集任
務
public void de IeteTask (Acqui sitorlnteractive Info task) ;//刪除米集任務
3)編寫任務執(zhí)行類的,該類需實現(xiàn)統(tǒng)一的任務執(zhí)行接口方法,返回相同的數(shù)據(jù)結構。如:public void run(AcquisitorInteractiveInfo task)
4)編寫數(shù)據(jù)接口發(fā)送類,該類需實現(xiàn)對發(fā)送內容進行Base64編碼操作和操作接口,以Base64編碼字符發(fā)送釆集結果。如下:
public String encode (String str) ;// 編石馬接口
public void send (String ipAddress,String port, String msg) ;// 發(fā)送接口
5)編寫雙隊列工作類,實現(xiàn)雙隊列釆集任務執(zhí)行和釆集結果發(fā)送調度功能。如: Class DoubleQueueTaskSchedual{
private ArrayBlockQueue taskQueue; // 任務隊列 private ArrayBlockQueue resultQueue;// 結果隊列
public void addTask (Acqui sitorlnteractive Info task) ;//加入米集任務 public void se nd (String msg) ;// 發(fā)送釆集結果
}
【權利要求】
1.一種雙隊列數(shù)據(jù)采集開發(fā)方法,其特征是: 1)提供統(tǒng)一的任務管理配置數(shù)據(jù)結構,通過統(tǒng)一的數(shù)據(jù)結構進行任務數(shù)據(jù)的管理; 2)提供統(tǒng)一的HTTP請求方式的任務管理接口方法,實現(xiàn)任務的注冊、配置、啟動、停止、修改、刪除; 3)實現(xiàn)統(tǒng)一的任務執(zhí)行接口方法,采集程序通過實現(xiàn)該接口來實現(xiàn)具體的監(jiān)控任務,返回標準格式的數(shù)據(jù); 4)實現(xiàn)統(tǒng)一的數(shù)據(jù)格式發(fā)送接口類,按Base64統(tǒng)一編碼規(guī)則的格式進行數(shù)據(jù)發(fā)送,發(fā)送結果對象通過實現(xiàn)相同接口進行處理;提高數(shù)據(jù)的傳輸效率和安全性; 5)實現(xiàn)統(tǒng)一的雙隊列工作調度類,采用雙隊列工作方式,一個隊列作為任務隊列,一個隊列作為采集結果隊列,一個線程池從任務隊列中取任務執(zhí)行采集,一個線程池從采集結果隊列中取結果進行發(fā)送;通過雙隊列方式實現(xiàn)數(shù)據(jù)采集和數(shù)據(jù)發(fā)送的分離與高效執(zhí)行。
【文檔編號】G06F9/46GK103885781SQ201410130407
【公開日】2014年6月25日 申請日期:2014年4月2日 優(yōu)先權日:2014年4月2日
【發(fā)明者】張葉, 趙志宇, 孫北寧, 吳瑋, 余琳, 張勁松, 肖巧, 李兵 申請人:云南電網(wǎng)公司, 云南云電同方科技有限公司