基于WebService的遥感数据流监控系统
2020-04-08张秦雪周建伟安志远李国洪金永涛魏艳娜
张秦雪,周建伟,安志远,李国洪,金永涛,魏艳娜
(1.北华航天工业学院,河北 廊坊 065000;2.河北省航天遥感信息处理与应用协同创新中心,河北 廊坊 065000)
0 引 言
随着网络技术的不断发展,对于数据安全的要求也不断提升,数字水印技术在不影响数据使用价值的情况下通过将标识信息直接嵌入数字载体实现了对信息的隐匿,达到了数据安全的要求,但是由于工作环境及网络环境的复杂性,带有隐匿信息的文件在获取、访问、传播、分发、应用等阶段都有可能丢失、扩散或泄漏[1-5],因此对于数字水印的质量监控需要贯穿整个处理流程。在传统web开发的模式中,一般采用Socket实现协议沟通和数据请求,其基于TCP/IP传输协议,传输数据时间短,适用于高性能数据的传输,是开发者常使用的网络数据传输方法。但是,Socket不支持面向对象,传输的数据需手动处理,其构建了水印嵌入库。而WebService是基于http协议传输数据,应用层级的接口方便了开发者的快速开发,且使用soap协议进行通信,不需专门针对数据流的发送和接收进行处理,支持面向对象和跨平台开发[6-11]。
遥感数据流监控系统是由中心服务器和节点机构建的,其地理空间分布离散,网络环境和开发环境相对复杂,在B/S架构下,采用WebService提供面向对象的跨平台应用层服务接口,使用JQuery框架下的Ajax技术实现前端界面的实时显示,用户通过浏览器可以对数字水印的嵌入及提取情况进行获取,在遇到安全事故时可以及时响应并做出舆情分析,显示追踪到的可疑水印文件的流转过程,找到安全问题源头,帮助管理用户实现及时、准确、高效的应急反应。
1 WebService技术概念
WebService是一种基于http协议的、跨平台的、低耦合的web应用程序。实现WebService分布式应用程序的创建需要结构化的数据格式、协议及传输方式等规则,这些规则有:
1.1 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将自己提供的服务中的方法、参数、返回值、地址等信息暴露给客户端,客户端根据自己需要的服务进行请求及访问。
1.2 WebService的优势
WebService支持跨平台的服务访问,不同操作系统、不同软件、不同语言、不同通信协议都可以使用WebService来进行服务的提供及访问[14]。WebService可以异地调用[15],在分布式的环境中通过SOAP协议可以实现不同地点、不同项目调用应用程序。WebService可以实现跨防火墙的通信,通常服务器和客户端之间会通过防火墙和代理服务器关闭80端口以外的其他端口。WebService基于http协议,可以通过80端口进行通信,使服务可以更自由地被调用。
2 系统结构及实现
2.1 系统构架设计
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 系统实现
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框架提供的连接池对数据库的连接进行优化,避免因为数据库初始化和释放过程的时间开销对系统实时性产生影响。
3 系统运行
遥感数据流监控系统采用模块化编程,根据数字水印的可监控性和可追溯性,主要分为水印操作情况统计模块、数字水印实时监控模块、叛逆者追溯模块。
3.1 水印操作情况统计模块
水印操作情况统计功能实现了对数字水印每次嵌入提取记录的统计与可视化。用户通过节点机向服务器进行数据请求,在获取数据的同时进行水印的提取,对文件的再次传输则要进行水印嵌入,在水印嵌入或提取时通过WebService所提供的getFileSize、getTime、getnode、getzFilename等网络服务接口获取各个分支节点机的水印的GUID、嵌入时间、用户、状态、文件大小等信息,并执行相应的统计核算功能,使用户可以更为直观地检测水印嵌入及提取情况。
3.2 数字水印实时监控模块
数字水印实时监控功能用于量化数据的存储和转发以及水印的嵌入和提取操作,并将结果进行可视化展示。通过Jquery框架下的ajax()方法使Web页面可以通过http协议实时请求到服务器后台数据,从而以无刷新动态更新的拓扑图、柱状图、折线图、饼图等方式统计展示出数字水印嵌入提取量、同比增长量活跃节点数量、节点流转、嵌入提取状态占比。采用兼容性、动态交互性强的highchart图表库对Web页面中图表的UI进行优化,提高可视化效果及用户体验。
3.3 叛逆者追溯模块
叛逆者追溯模块功能基于hash算法生成的水印指纹唯一标识对数字水印的嵌入提取记录进行动态提取,通过基于html5的qunee图形组件技术构建水印流转图进行可视化展示,使用户可以直观检测数字水印的流转情况,针对可疑文件及时弹出警告,明显标注其可疑问题节点信息,以便用户能及时发现问题并提供问题排查思路。这样通过水印的流转信息获取、动态监控及可疑文件的追踪,在保证遥感数据的安全性的前提下,提高了安全工作效率。叛逆者追溯功能如图3所示。
图3 叛逆者追溯功能
4 结束语
文中提出了一种基于WebService的遥感数据流监控系统,通过使用WebService技术打破了平台和地域的限制,在复杂的网络环境中实现了对数字水印文件嵌入及提取的监控功能及叛逆者文件的追溯功能。节点机作为客户端通过WebService向服务器请求和获取服务,通过Ajax技术用户可以使用浏览器界面直观地对数字水印的流转及嵌入提取情况进行实时监控。系统具有较高的稳定性及可扩展性。