首页 > 范文大全 > 正文

基于Web的数据采集查询系统设计①

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Web的数据采集查询系统设计①范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:随着我国计算机技术的迅猛发展,远程实时采集查询数据已经在工业和农业生产中迅速得到应用。数据采集与查询是信息技术的重要分支,它研究实时信息数据的采集、存储、查询等功能,对数据的获取并显示可以让用户更好地掌握生产状况,传统的人工现场监控浪费人力、物力,效率低下,所以,有必要开发一款低成本、高可靠性、高并发性、适用范围广的实时数据查询系统,对农业生产进行有效的监控,提高生产效率,使农业生产实现现代化。该文采用了Spring、Spring MVC、Mybatis、shiro安全框架。为了提高系统的容量,该文采用nginx实现负载均衡、动静分离,No-sql中的redis实现缓存,队列Rabbitmq实现邮箱发送处理,数据库ameoba实现读写分离,数据库mysql主从复制等配置来提升系统的并发量。

关键词:大数据技术 Web后台框架 查询系统

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2017)06(c)-0037-03

随着电子信息技术不断进步,人们利用Web技术开发出一系列相关产品,促使人们对产品的需求逐渐增加,这样极大地推动了互联网技术的发展。如今的物联网、云计算、智能家居、实时监控等新技术已逐步进入工业、农业的生产生活,使得Web的应用研发成为当代未来发展的热点和重点。未来互联网的主要发展趋势就是通过互联网。因而该文提出的是基于web和App的数据采集及其操作系统的设计,采用了SSM+shiro框架作为服务器端,配合nginx+rabbitmq等开源软件形成一个较完整的数据采集操作系统,利用这些技术使得本系统具有稳定、高效、占用内存少、并发性强、性能高等特点,再结合通过浏览器对现场数据进行实时查看和对历史记录进行查询,这将会给用户提供更加高效和丰富的应用。

1 系统整体说明

为了构建对设备采集数据进行查看,对设备进行开关操作以及视频传输的功能,在硬件上使用了树莓派作为采集数据终端,而单片机作为操控结果终端,树莓派读取串口数据,发送请求到服务器进行数据采集及操作。在软件上使用Web和App作为操作平台,服务器采用tomcat,使用开发工具为eclipse、myeclipse、maven插件来完成的。

2 系统客户端设计

用户具有登录、注销、通过浏览器实时查看现场数据信息、查看历史数据、实现将视频由android端传输到Web页面。如图2所示。

具体是实现方法如下。

(1)使用shiro框架的安全登录实现登录与注销。

使用LogoutFilterM行登出操作subject.logout()操作。

AuthorizingRealm中的方法doGetAuthenticationInfo进行登陆认证,SimpleCredentialsMatcher进行加密操作使用的是shiro的shiro.crypto.hash.Md5Hash加密操作进行密码加密。

(2)采用了EL表达式来进行数据显示等操作。

(3)使用echarts进行图表显示操作。

百度的图表js,可以很好地展示各个页面的操作使用,传递json数据进行解析获得图表界面。

(4)shiro框架实现粗粒度的权限管理操作。

AuthorizingRealm中方法doGetAuthorizationInfo对不同的用户添加权限,以及在页面中添加权限列表,确定不同权限的用户显示不同的页面。

(5)使用jquery的ajax获取视频流来显示视频。

3 系统服务器端设计

服务器端是整个系统的核心部分,通过服务器响应客户端的服务请求,从而系统消息,Web服务器主要根据不同用户发出的请求,做出相应的数据处理,并返回给用户。

该文是Web服务器端,通过各种组件使得整个系统具有稳定、占用内存小、高并发、高可用性的特点。

Web服务器端的实现如下。

该服务器端主要使用MVC框架、shiro安全框架、rabbitmq队列、ameoba数据库、Nginx技术,通过使用ameoba+Nginx,使得Web服务器具有稳定、并发能力强、性能高的特点。具体的实现方法如下。

第一,框架结构使用的是MVC,pojo层,controller层,service层,mapper层。

配置文件大致内容如下。

(1)web.xml文件。

①里面配置了读取spring配置的目录。

②Spring监听。

③编码过滤器CharacterEncodingFilter。

④配置springmvc配置目录。

⑤Shiro过滤器。

(2)Spring配置文件整合shiro+mybatis。

①配置导入的外部文件(数据库信息)。

②配置扫描的service层目录。

③配置数据源。

④定义方法级事物控制并应用于service层操作。

⑤配置shiro的权限管理器,加密管理器。

⑥配置shiro的登录地址,登出方法,对那些网址进行放行,拦截等操作。

⑦配置Mybaits的Mapper接口管理器,SqlSessionFactory进行sql.xml配置。

(3)SpringMVC配置。

①配置扫描器。

②试图解析器。

第二,邮件重置密码:使用的是javax.mail.jar包,使用方法是JavaMailWithAttachment.class.getResourceAsStream来获取邮箱账户数据,并进行配置设置字符集,使用Multipart进行邮箱的发送,采用的是自动生成一个url,当点击的时候实现密码重置,实现是用shiro带盐MD5HASH加密方法对自动生成的数据加密之后拼接成url,当点击发送邮件时,将url及其用户账户信息发送至rabbitmq队列,消费者读取数据之后做出发送邮件操作,这样既可以减少系统压力又提高服务器性能。

第三,使用amoeba,mysql主从复制(如图2)。

编辑主master服务器配置文件/etc/f

server-id=1

log-bin=mysql-bin #启用二进制日志;

重新启动服务即可

编辑从slave修改/etc/f增加一行

server-id=2

重启服务即可

这样就实现了mysql的主从复制操作。

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。

配置文件dbServers.xml定义好数据库的所有信息,设定主master或者从slave配置文件amoeba.xml配置监听端口号,并且设定谁可读,可写,这样就会增加系统的并发量。

第四,nginx负载均衡,动静分离。

Nginx是一个高性能的HTTP和方向服务器。

采用C语言编写,其安全性高,外界只能访问nginx所在服务器,nginx将请求转发内部服务器,调用后,返回调用的结果,使用nginx进行网页托管,可以对其实现访问多个服务器(根据权重或者轮询)。

设置多台服务器根据权重访问服务器,实现负载均衡。

server {

listen 8888;

server_name ;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location / {

proxy_pass http://127.0.0.1:8090;

proxy_connect_timeout 600;

proxy_read_timeout 600;

}

}

在这里进行动静分离,对照片等静态资源直接转发至物理地址。

第五,视频接收:通过android发送照片流,进行显示,在服务器端接收数据之后,对其进行base64解码,生成图片,放置在目录下,之后不同用户登录之后通过ajax,每一秒请求7次,获取其指定的照片流得到,并不断循环,接受byte数据来进行数据显示,在这里由于android手机传输的照片是向右旋转90°的,之前想过在android发送阶段,强行将照片左转,但是效率太低,最后采用直接让网页上照片旋转回来即可。通过设置照片的五个属性MozTransform、webkitTransform、msTransform、OTransform、transform。对于传输速度问题,为了达到很快的发送数据的目的,所以使用了压缩方法,使压缩率为50%,这个结果可以达到延时1秒的效果。

第六,利用log4j显示程序报错详细信息。

4 结语

该文对一个较完整的信息采集系统的实现进行了讨论,总体来说,该系统基本实现了预期效果,并经过老师与同学的检查,确定本系统稳定性较好,可以较好地实现蔬菜大棚的管理系统的使用,这样一来,就可以让它服务于农业生产,能够较效率地减少使用者的时间,从而有更多的扩展功能,普及农业生产生活,使其发展成为全自动化的农业生产模式,从而释放更多的劳动力,为社会为国家创造更多的活力。由于能力有限,经验不足,设计中还有许多问题和不足之处,请各位读者给予批评指正。

参考文献

[1] 紫谦,衷卫声,梁凯,等.基于物联网技术的温室集群环境监控系统设计[J].2016,39(14):49-52.

[2] Simon.H A.Artifieial intelligence:an empirical science[J]. Artificial Intelligenee,1995,77(1):95-127.

[3] 吴灿培,胡顺豪,王海航.基于Ajax和SVG的Web远程实时监控系统[J].计算机工程与设计,2011,32(9):3004-3007.

[4] Jianlin Xu,Yifan Yu,Zhen Chen,et al.Cloud Computing Based Forensic Analysis for Massive Mobile Applications Using Data Mining[J].Tsinghua science and technology,2013,18(4).

[5] R.Kirubashankar,K.Krishnamurthy.A Real-time Web-enabled Platform for Informatlon Monitoring and Fault Diagnosis in a Distributed Control System[J].Instrumentation science & technology:Designs and applications for chemistry,biotechnology,and environmental science,2013,41(3):236-250.