本發明涉及計算機技術領域,尤其涉及一種利用HTTP接口控制設備的實現方法及系統。
背景技術:
拒絕服務攻擊(DoS, Denial of Service)是指利用各種服務請求耗盡被攻擊網絡的系統資源,從而使被攻擊網絡無法處理合法用戶的請求。而隨著僵尸網絡的興起,同時由于攻擊方法簡單、影響較大、難以追查等特點,又使得分布式拒絕服務攻擊(DDoS,Distributed Denial of Service)得到快速壯大和日益泛濫。成千上萬主機組成的僵尸網絡為DDoS攻擊提供了所需的帶寬和主機,形成了規模巨大的攻擊和網絡流量,對被攻擊網絡造成了極大的危害。
隨著DDoS攻擊技術的不斷提高和發展,ISP、ICP、IDC等運營商面臨的安全和運營挑戰也不斷增多,運營商必須在DDoS威脅影響關鍵業務和應用之前,對流量進行檢測并加以清洗,確保網絡正常穩定的運行以及業務的正常開展。同時,對DDoS攻擊流量的檢測和清洗也可以成為運營商為用戶提供的一種增值服務,以獲得更好的用戶滿意度。
目前普遍使用的檢測清洗架構是,旁路部署檢測設備接收鏡像流量,清洗設備使用引流方式過濾攻擊流量的方式,為了使檢測設備和清洗設備更好地協同工作,也為了簡便地管理更大規模的多個檢測設備和清洗設備,需要部署一個管理中心,而這個管理中心,往往有著比較人性化的操作管理系統,其系統通常是一個前端系統,而如何方便穩定地控制著這些設備,至關重要。
前端系統一般使用HTTP協議與各個設備通訊,由于設備是使用Linux作為操作系統并且運行的底層程序一般使用C語言等所編寫,這類語言并不適合使用HTTP進行通訊,目前前端系統使用HTTP方式控制設備的方式有很多種,比如在設備上部署數據庫,前端系統連接上數據庫生成任務列表來指揮設備工作;或者在設備上部署HTTP服務,編寫HTTP接口,以此HTTP接口接收前端的指令并調用本地程序直接修改相關文件或者系統數據達到控制設備的目的;
目前諸多方式都存在各自的缺陷,首先C這一類語言編寫的核心程序不善于處理HTTP協議,如果大費周章的去開啟HTTP處理,將帶來巨大的維護麻煩;而數據庫的方式,數據庫本身應該用于大量數據的存儲管理和查找,部署和維護數據庫也可能會成為設備本身最大的故障點;而HTTP調用本地程序直接達到目的的方式,因為設備使用Linux系統,此種方式涉及文件權限的問題,修改核心文件和設備接口等都需要較高權限,若提高HTTP接口的權限或者降低文件的權限都會為系統埋下很大的安全隱患。
技術實現要素:
為了解決上述技術問題,本發明的目的是提供一種不需調整權限,且能減少安全隱患的一種利用HTTP接口控制設備的實現方法及系統。
本發明所采取的技術方案是:
一種利用HTTP接口控制設備的實現方法,包括以下步驟:
通過核心程序開辟共享內存塊,并等待指令;
通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統。
作為所述的一種利用HTTP接口控制設備的實現方法的進一步改進,所述通過核心程序開辟共享內存塊,并等待指令,這一步驟具體包括:
以root身份運行核心程序;
在核心程序中開辟共享內存塊;
通過核心程序監測共享內存塊中的數據變動,并等待指令。
作為所述的一種利用HTTP接口控制設備的實現方法的進一步改進,所述通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統,這一步驟具體包括:
通過HTTP接口接收外部前端系統的指令;
調用控制程序并接收從HTTP接口得到的指令;
所述控制程序連接核心程序的共享內存塊,把接收的指令和相關數據傳輸至共享內存塊中,并等待核心程序返回結果;
所述核心程序監測到共享內存塊中的指令,則執行指令并把得到的結果寫入共享內存塊中;
所述控制程序從共享內存塊中讀取結果,并將其返回至外部前端系統。
本發明所采用的另一技術方案是:
一種利用HTTP接口控制設備的實現系統,包括:
共享內存單元,用于通過核心程序開辟共享內存塊,并等待指令;
程序交互單元,用于通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統。
作為所述的一種利用HTTP接口控制設備的實現系統的進一步改進,所述共享內存單元具體包括:
核心程序運行單元,用于以root身份運行核心程序;
共享內存開辟單元,用于在核心程序中開辟共享內存塊;
指令監測單元,用于通過核心程序監測共享內存塊中的數據變動,并等待指令。
作為所述的一種利用HTTP接口控制設備的實現系統的進一步改進,所述程序交互單元具體包括:
指令接收單元,用于通過HTTP接口接收外部前端系統的指令;
控制程序調用單元,用于調用控制程序并接收從HTTP接口得到的指令;
指令傳輸單元,用于所述控制程序連接核心程序的共享內存塊,把接收的指令和相關數據傳輸至共享內存塊中,并等待核心程序返回結果;
指令執行單元,用于所述核心程序監測到共享內存塊中的指令,則執行指令并把得到的結果寫入共享內存塊中;
結果返回單元,用于所述控制程序從共享內存塊中讀取結果,并將其返回至外部前端系統。
本發明的有益效果是:
本發明一種利用HTTP接口控制設備的實現方法及系統通過增加中間的控制程序,其利用共享內存塊與核心程序進行通信,間接連接HTTP接口和核心程序,而控制程序只負責傳遞指令,由以root身份運行的核心程序來執行指令,完成所有修改核心文件或者設備硬件數據等操作,不需要再部署額外的數據庫或者第三方數據庫等軟件,也不必調高HTTP接口調用者的權限或者降低需要操作對象的權限而帶來的安全隱患,而且整個架構和實現流程簡單清晰,不僅具有良好的擴展性也免去了部署和維護的麻煩,大大提高工作效率。
附圖說明
下面結合附圖對本發明的具體實施方式作進一步說明:
圖1是本發明一種利用HTTP接口控制設備的實現方法的步驟流程圖;
圖2是本發明一種利用HTTP接口控制設備的實現方法中共享內存的步驟流程圖;
圖3是本發明一種利用HTTP接口控制設備的實現方法中程序交互的步驟流程圖;
圖4是本發明一種利用HTTP接口控制設備的實現系統的模塊方框圖。
具體實施方式
參考圖1,本發明一種利用HTTP接口控制設備的實現方法,包括以下步驟:
通過核心程序開辟共享內存塊,并等待指令;
通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統。
參考圖2,進一步作為優選的實施方式,所述通過核心程序開辟共享內存塊,并等待指令,這一步驟具體包括:
以root身份運行核心程序;
在核心程序中開辟共享內存塊;
通過核心程序監測共享內存塊中的數據變動,并等待指令。
參考圖3,進一步作為優選的實施方式,所述通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統,這一步驟具體包括:
通過HTTP接口接收外部前端系統的指令;
調用控制程序并接收從HTTP接口得到的指令;
所述控制程序連接核心程序的共享內存塊,把接收的指令和相關數據傳輸至共享內存塊中,并等待核心程序返回結果;
所述核心程序監測到共享內存塊中的指令,則執行指令并把得到的結果寫入共享內存塊中;
所述控制程序從共享內存塊中讀取結果,并將其返回至外部前端系統。
參考圖4,本發明一種利用HTTP接口控制設備的實現系統,包括:
共享內存單元,用于通過核心程序開辟共享內存塊,并等待指令;
程序交互單元,用于通過HTTP接口接收外部前端系統的指令,并調用控制程序與核心程序進行交互,進而返回結果至外部前端系統。
進一步作為優選的實施方式,所述共享內存單元具體包括:
核心程序運行單元,用于以root身份運行核心程序;
共享內存開辟單元,用于在核心程序中開辟共享內存塊;
指令監測單元,用于通過核心程序監測共享內存塊中的數據變動,并等待指令。
進一步作為優選的實施方式,所述程序交互單元具體包括:
指令接收單元,用于通過HTTP接口接收外部前端系統的指令;
控制程序調用單元,用于調用控制程序并接收從HTTP接口得到的指令;
指令傳輸單元,用于所述控制程序連接核心程序的共享內存塊,把接收的指令和相關數據傳輸至共享內存塊中,并等待核心程序返回結果;
指令執行單元,用于所述核心程序監測到共享內存塊中的指令,則執行指令并把得到的結果寫入共享內存塊中;
結果返回單元,用于所述控制程序從共享內存塊中讀取結果,并將其返回至外部前端系統。
本發明實施例中,所述核心程序和控制程序均為所需控制的設備本身對應的程序,其具體實施例如下:
S1、以root身份運行核心程序;
S2、在核心程序中開辟共享內存塊;
S3、通過核心程序監測共享內存塊中的數據變動,并等待指令;
S4、通過HTTP接口接收外部前端系統的指令;
S5、調用控制程序并接收從HTTP接口得到的指令;
S6、所述控制程序連接核心程序的共享內存塊,把接收的指令和相關數據傳輸至共享內存塊中,并等待核心程序返回結果;
S7、所述核心程序監測到共享內存塊中的指令,則執行指令并把得到的結果寫入共享內存塊中;
S8、所述控制程序從共享內存塊中讀取結果,并將其返回至外部前端系統。
本發明在設備中部署HTTP接口、控制程序和核心程序,所述HTTP接口負責接收前端的指令并調用控制程序,而控制程序負責通過共享內存的通訊方式與核心程序交互,把指令傳遞給核心程序,讓核心程序去執行指令,這樣不需要修改任何的文件權限,僅僅修改HTTP接口具有控制程序的執行權限,就能最終達到通過HTTP接口控制設備的目的,部署方便、維護簡單且安全。
以上是對本發明的較佳實施進行了具體說明,但本發明創造并不限于所述實施例,熟悉本領域的技術人員在不違背本發明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權利要求所限定的范圍內。