張秦雪,周建偉,安志遠,李國洪,金永濤,魏艷娜
(1.北華航天工業學院,河北 廊坊 065000;2.河北省航天遙感信息處理與應用協同創新中心,河北 廊坊 065000)
隨著網絡技術的不斷發展,對于數據安全的要求也不斷提升,數字水印技術在不影響數據使用價值的情況下通過將標識信息直接嵌入數字載體實現了對信息的隱匿,達到了數據安全的要求,但是由于工作環境及網絡環境的復雜性,帶有隱匿信息的文件在獲取、訪問、傳播、分發、應用等階段都有可能丟失、擴散或泄漏[1-5],因此對于數字水印的質量監控需要貫穿整個處理流程。在傳統web開發的模式中,一般采用Socket實現協議溝通和數據請求,其基于TCP/IP傳輸協議,傳輸數據時間短,適用于高性能數據的傳輸,是開發者常使用的網絡數據傳輸方法。但是,Socket不支持面向對象,傳輸的數據需手動處理,其構建了水印嵌入庫。而WebService是基于http協議傳輸數據,應用層級的接口方便了開發者的快速開發,且使用soap協議進行通信,不需專門針對數據流的發送和接收進行處理,支持面向對象和跨平臺開發[6-11]。
遙感數據流監控系統是由中心服務器和節點機構建的,其地理空間分布離散,網絡環境和開發環境相對復雜,在B/S架構下,采用WebService提供面向對象的跨平臺應用層服務接口,使用JQuery框架下的Ajax技術實現前端界面的實時顯示,用戶通過瀏覽器可以對數字水印的嵌入及提取情況進行獲取,在遇到安全事故時可以及時響應并做出輿情分析,顯示追蹤到的可疑水印文件的流轉過程,找到安全問題源頭,幫助管理用戶實現及時、準確、高效的應急反應。
WebService是一種基于http協議的、跨平臺的、低耦合的web應用程序。實現WebService分布式應用程序的創建需要結構化的數據格式、協議及傳輸方式等規則,這些規則有:
XML(extensible markup language)是一種獨立的結構化數據描述方式。WebService是基于http協議進行數據傳輸的,其發送的請求和結果都是需要用結構化數據XML語言來進行封裝的[12]。XML支持多種平臺的調用,是實現WebService跨平臺訪問服務的基礎。
SOAP(simple object access protocol)是一種基于http協議和XML數據格式的簡單對象存取協議,其本質是http使用XML在進行請求和接收結果時在http頭部加入的一些特定的http消息頭,SOAP規范了調用方式[13],使XML可以在不同平臺、不同軟件之間傳遞。
WSDL(WebService description language)是基于XML的網絡服務描述語言,實現WebService服務器端和客戶端之間的溝通。WebService通過WSDL將自己提供的服務中的方法、參數、返回值、地址等信息暴露給客戶端,客戶端根據自己需要的服務進行請求及訪問。
WebService支持跨平臺的服務訪問,不同操作系統、不同軟件、不同語言、不同通信協議都可以使用WebService來進行服務的提供及訪問[14]。WebService可以異地調用[15],在分布式的環境中通過SOAP協議可以實現不同地點、不同項目調用應用程序。WebService可以實現跨防火墻的通信,通常服務器和客戶端之間會通過防火墻和代理服務器關閉80端口以外的其他端口。WebService基于http協議,可以通過80端口進行通信,使服務可以更自由地被調用。
2.1.1 系統結構
該系統主要包括水印操作情況統計模塊、數字水印實時監控模塊及叛逆者追溯模塊,實現了對數字水印的嵌入、提取、分發過程的實時監控、動態刷新、可疑文件追蹤等功能。系統采用B/S三層架構設計,由Web網頁界面體現整體實現效果,具體服務功能由WebService接口提供。WebService技術在整個系統中處于核心樞紐的位置,對于上層應用層而言,將WebService服務部署在Web應用服務器上,使Web瀏覽器可以通過http協議向服務器進行功能服務請求;同時,WebService服務接口訪問底層服務器可以實現對水印指紋庫的操作。遙感數據流監控系統總體結構如圖1所示。

圖1 遙感數據流監控系統總體結構
2.1.2 數據庫結構
對用戶需求進行客觀分析,設計出系統中的實體及關聯,能夠更清晰地構建系統邏輯結構。該系統針對數字水印加密監控過程建立了水印指紋庫,包含遙感數據指紋、水印指紋兩個實體,其中實體的屬性及關聯由E-R圖關系轉化得到。遙感數據指紋實體及水印指紋實體的E-R圖如圖2所示。
遙感數據指紋實體的屬性包括數據名稱、數據入庫時間、節點、用戶、數據類型、文件大小。遙感數據指紋實體可以進行添加、刪除、查詢操作,用戶根據GUID可以獲取實體信息及流轉過程信息,從而實現對數據流轉的監控。水印指紋實體的屬性包括GUID、水印文件名、嵌入及提取時間、狀態。水印指紋實體可以進行添加、刪除、查詢操作,用戶可以根據水印文件的唯一標識GUID對水印實體進行查詢,從而獲取水印信息,實現對數字水印操作的監控。水印指紋可以引用得到遙感數據指紋的各項信息,實現對被嵌入或提取數字水印的遙感數據的監控。

圖2 遙感數據指紋實體及水印指紋實體E-R圖
2.2.1 異步調用
該系統在請求服務時采用WebService中的異步調用方式,在不影響下一進程的前提下對服務調用進行輪訓,大大提高了系統的運行效率,提高了資源利用率。Axis2框架下的異步調用在服務器端無需多余配置,在客戶端使用RPCServiceClient類提供的invokeNonBlocking方法實現客戶端異步訪問WebService。
2.2.2 跨平臺性
面對復雜的語言環境,不同對等體之間的編譯語言可能不同,將WebService發布到服務器,在客戶機在服務請求時通過WSDL語言打破編譯語言的屏障,保證了服務的可用率。在Java客戶端使用Axis2提供的wsdl2java.bat腳本命令可以根據服務上的Axis2服務的WSDL文件自動產生ServiceStub.java類,Java客戶端通過調用ServiceStub.java類來訪問服務。在C#客戶端可根據服務器中的WSDL文件地址添加Web引用,從而使客戶端可以訪問到WebService服務。
2.2.3 快速開發
遙感數據流監控系統分為服務器和節點機,其功能需要實時地向水印庫進行數據請求,復雜的網絡環境及不同的開發語言使得服務的提供成為了困難。該系統使用WebService的axis2框架,在解決開發語言異構性問題的前提下,提高了開發的效率。Axis2提供了類似于J2EE的部署機制,可以方便地對相關的依賴文件和屬性文件進行打包,提高了部署效率。使用Axis2 Service Archiver控件,通過簡單地對服務接口進行選擇,將所需發布的getFileSize、getTime、getnode、getzFilename、Insert、retrospect等方法進行發布,并設置服務發布地址,生成war文件,最后將war文件部署進tomcat服務器實現對WebService的簡單部署。通過Axis2框架提供的administration管理頁面,可以更為便捷地對發布的服務進行管理。
2.2.4 熱部署及熱更新
該系統對于穩定運行要求較高,短時間的重啟關機更新或維護會帶來極大的損失,而Axis2框架提供了熱部署及熱更新的機制,可以保證在系統正常運行的同時進行部署和更新。使用Axis2對WebService進行部署時會產生一個全局配置文件Axis2.xml,在此配置文件中加入“
2.2.5 hash算法生成GUID
GUID為水印指紋的唯一標識,在水印操作統計模塊、水印實時監控模塊及叛逆者追溯模塊中起著重要的作用。針對GUID的全局唯一性,在Java中使用hash算法自動生成了GUID。GUID的生成代碼如下:

2.2.6 實時性
遙感數據流監控系統的前端監控界面中使用ajax技術實現數據的實時動態更新。Jquery框架下的ajax()方法利用HTTP請求服務器數據,通過$.ajax()實時返回創建的XMLHttpRequest對象列表,使用highchart和qunee中的節點添加方法繪制出動態曲線圖及動態拓撲圖。由于客戶的需求,系統需要每天對數據庫進行大量的操作,因此,Java后臺在對數據庫訪問時采用Dbutils框架提供的連接池對數據庫的連接進行優化,避免因為數據庫初始化和釋放過程的時間開銷對系統實時性產生影響。
遙感數據流監控系統采用模塊化編程,根據數字水印的可監控性和可追溯性,主要分為水印操作情況統計模塊、數字水印實時監控模塊、叛逆者追溯模塊。
水印操作情況統計功能實現了對數字水印每次嵌入提取記錄的統計與可視化。用戶通過節點機向服務器進行數據請求,在獲取數據的同時進行水印的提取,對文件的再次傳輸則要進行水印嵌入,在水印嵌入或提取時通過WebService所提供的getFileSize、getTime、getnode、getzFilename等網絡服務接口獲取各個分支節點機的水印的GUID、嵌入時間、用戶、狀態、文件大小等信息,并執行相應的統計核算功能,使用戶可以更為直觀地檢測水印嵌入及提取情況。
數字水印實時監控功能用于量化數據的存儲和轉發以及水印的嵌入和提取操作,并將結果進行可視化展示。通過Jquery框架下的ajax()方法使Web頁面可以通過http協議實時請求到服務器后臺數據,從而以無刷新動態更新的拓撲圖、柱狀圖、折線圖、餅圖等方式統計展示出數字水印嵌入提取量、同比增長量活躍節點數量、節點流轉、嵌入提取狀態占比。采用兼容性、動態交互性強的highchart圖表庫對Web頁面中圖表的UI進行優化,提高可視化效果及用戶體驗。
叛逆者追溯模塊功能基于hash算法生成的水印指紋唯一標識對數字水印的嵌入提取記錄進行動態提取,通過基于html5的qunee圖形組件技術構建水印流轉圖進行可視化展示,使用戶可以直觀檢測數字水印的流轉情況,針對可疑文件及時彈出警告,明顯標注其可疑問題節點信息,以便用戶能及時發現問題并提供問題排查思路。這樣通過水印的流轉信息獲取、動態監控及可疑文件的追蹤,在保證遙感數據的安全性的前提下,提高了安全工作效率。叛逆者追溯功能如圖3所示。

圖3 叛逆者追溯功能
文中提出了一種基于WebService的遙感數據流監控系統,通過使用WebService技術打破了平臺和地域的限制,在復雜的網絡環境中實現了對數字水印文件嵌入及提取的監控功能及叛逆者文件的追溯功能。節點機作為客戶端通過WebService向服務器請求和獲取服務,通過Ajax技術用戶可以使用瀏覽器界面直觀地對數字水印的流轉及嵌入提取情況進行實時監控。系統具有較高的穩定性及可擴展性。