基于物联网的远程监控.doc_第1页
基于物联网的远程监控.doc_第2页
基于物联网的远程监控.doc_第3页
基于物联网的远程监控.doc_第4页
基于物联网的远程监控.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文毕业论文 基于物联网的远程监控基于物联网的远程监控 2015 年年 6 月月 日日 摘要摘要 现代工业的远程监控需求越来越旺盛 未来的工业化进程中 基于网络技术 VCN 虚拟计算机网络技术的远程监控必将伴随着增值服务的理念而广泛应用 首先 分析了本课题的研究背景与发展意义 通过对现有的远程监控系统的发 展现状和应用前景进行了研究和分析 结合传统远程监控系统模型提出一套利用 3G 网 络实现远程设备的状态监控 系统设计主要由 java 程序控制 通过设置两个模块 Server 和 Client 来实现 Server 模块模拟被监控的得设备 Client 模块模拟监控设备 然后通过简单的自动截屏 自动发送 自动显示等来完成 Server 模块的动作 这样在 Client 模块上就能时时的看 见 Server 模块上的操作 本系统基于实现远程监控的目的 打破传统的监控数据 通过手录的方式 将 远程设备的状态参数和运行情况 通过互联网实时的发送给客户端 实现现代化的远 程监控 关键词 关键词 远程监控 java 编程 物联网通信 ABSTRACT Modern industrial remote monitoring demand more and more strong The future in the process of industrialization based on network technologym by the concept of value added services and a wide range of applications First of all I analyzed the research background of this topic and the meaning of development based on the existing ermote monitoring system development present the traditional remote monitoring system model puts forward a set of 3G network is used to Realize the remote equipment condition condition monitoring System design is mainly controlled by Java program by setting The two modules Server and Client Server module simulation by monitoring equipment the Client module simulation monitoring equipment Then through simple automatic screenshots sent automaticallym automatic display and so on to complete the Server Keywords remote control Internet communication 目 录 第一章第一章 绪论绪论 1 1 1 选题背景 1 1 2 国内外研究现状 1 1 3 选题目的与意义 1 第二章第二章 工具介绍工具介绍 2 2 1 JAVA 的简述 2 2 2 开发语言的选择 2 2 3 系统架构模式 2 2 4 系统的应用技术 3 第三章第三章 系统分析系统分析 4 3 1 系统需求分析 4 3 2 系统总体结构 4 3 3 系统的实现方针 5 第四章第四章 系统设计系统设计 6 4 1 功能概要设计 6 4 2 性能设计 7 4 3 功能划分 7 4 4 客户操作 9 4 5 系统总体功能结构 10 第五章第五章 实验及测试实验及测试 11 第六章第六章 结论结论 17 参考文献参考文献 18 附录附录 19 部分程序代码部分程序代码 21 外文资料外文资料 30 中文翻译中文翻译 32 谢辞谢辞 34 天津工业大学本科毕业论文 0 第一章第一章 绪论绪论 1 1 选题背景选题背景 物联网是新一代信息技术的重要组成部分 物联网的英文名称是 The Internet of things 顾名思义 物联网就是 物物相连的互联网 随着国际物联网业的快速发展 大量的信息技术被采用 并且信息技术提高了监控系统的准确性和实时性 现代的物 联网发展趋势 物联网的系统化趋势 物联网的信息化趋势 物联网与商业流 信息 流一体化趋势等等 并且 物联网可以提高经济发展 大大降低成本 物联网将广泛 应用于智能交通 环境保护 公共安全的领域 1 2 国内外研究现状国内外研究现状 首先 远程监控技术是从 20 世纪 60 年代美国发展的故障诊断技术研究的基础和 前提下发展而来的 随着传感技术 移动通信技术和计算机技术的发展 它已经打破 了监测终端和控制中心的地域限制 现在的远程监控都是经过物联网进行远程的监控 这样可以保持人员的安全和信息的及时有效 随着技术的发展 远程监控已经从单机 远程监控 到基于 Internet 远程监控 再到现在的基于移动通信网络的远程监控 3G computer 计算机 communication 通信 control 自动控制 时代的到来 基于移动通 信网络的远程监控系统是近几年来发展最快的一种远程监控技术 1 3 选题目的与意义选题目的与意义 物联网数字化建设的基础工作之一就是基础数据的采集问题 基础数据的真实与 完备是关系到监控系统数字化建设成功与否的关键与瓶颈 物联网的出现恰恰解决了 这一难题 所以我想研究并学习一些物联网领域的应用和展望物联网的发展 我开始 是想基于 B S 的网络结构来实现监控的功能 但是做起来需要的精力和技术要求都比 较高 即使使用现在最流行的企业级框架 spring hibernate 来搭建环境也是需要一定的 时间 我担心毕业前不能完成任务 所以就用了简单的模拟程序来完成一些功能 天津工业大学本科毕业论文 1 第二章第二章 工具介绍工具介绍 2 1 JAVA 的简述的简述 1 Java 有两方面的含义 Java 语言和 Java 平台 作为一种开发语言 Java 是一种跨平台的开发语言 能开发出跨平台的应用对象和应 用程序 Java 语言具有封装 继承 多态和抽象的特点 2 Java 开发环境 Java 是面向对象的编程语言 JDK Java DevelopmentKit 作为其开发包 可以在 Web 上 开发相关的 Web 应用 也可以开发出各种类型的桌面程序 在此课题中我用的是 JDK1 7 现在的 Oracle 公司推出了最新版本 JDK1 8 并且增加了十个新特性 interface 的默认方式 Lambda 表达式 函数方式接口 方法与构造函数引用 Lambda 作 用域 访问局部变量 访问对象字段与静态变量 访问接口的默认方法 Data API Annotation 注解 2 2 开发语言的选择开发语言的选择 Java 是一种通过解释方式来执行的语言 其语法规则和 C 类似 同时 Java 也 是一种跨平台的程序设计语言 与目前常用的 C 相比 Java 语言简洁的多 而且提 高了额可靠性 除去了最大的程序错误根源 此外它还有较高的安全性 可以说它是 有史以来最为卓越的编程语言 基于这些 Java 自身的优势 所以我选择了使用 Java 语 言进行开发 Java 语言程序代码的编程和运行过程如图 2 2 1 所示 图 2 2 1 java 汇编原理 2 3 系统架构模式系统架构模式 B S 架构的全称为 Browser Server 即浏览器 服务器结构 B S 模式的优点 程序源代码编译器 字节码 JVM Java 虚 拟机 机器码 010010 计算机 天津工业大学本科毕业论文 2 B S 应用系统对客户端计算机的要求比较低 客户端计算机只需要具有网卡和浏览器即 可使用本系统 并且系统的分成明确 现在最流行的就是 MVC Model View Controller 三层结构 即模型层 显示层和控制层 这样编写程序的时候快速便捷 B S 模式的缺点 1 在跨浏览器上 B S 架构还有些兼容性问题没有解决 2 速度和安全需要 是 B S 架构的最大问题 但是这个问题可以用高性能的设 备来解决 在此课题中 我用的是 B S 结构 为了更加方便的实现本课题的功能 我的是 Servlet JSP 来实现了后台功能 前台用到了 easyui 这个漂亮框架 不过现在前台最流 行的框架有 angularJS 和 bootstrap 响应式布局 这两套框架做出来的程序会让客户的体 验感 大大提升 其中 Servlet 实现了若干个 Action 的实现方法 在 getPost 方法里面 实现了来前台的相关数据处理后又反给前台显示 这一模式有点模仿 MVC 模式 现在 J2EE 企业级框架的 MVC 模式都比较成熟 常见的有 struts2 MVC 和 spring MVC 2 4 系统的应用技术系统的应用技术 本系统用到的技术后台 struts2 spring hibernate 前台技术有 javascript ajax jquery html css Stuts2 是 webwork 的基础上进行了合并的全新的 struts2 框架 采用拦截器的机制 来处理用户的请求 这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开 Spring 框架是由于软件开发的复杂性而创建的 Spring 使用的基本是 JavaBean 来完成 以前可能由 EJB 完成的事情 然而 Spring 的用途不仅仅限于服务端的开发 从简单性 可测试性和松耦合性的角度而言 绝大部分 Java 应用都可以从 spring 中受益 Hibernate 是一个快放源代码的对象关系映射框架 它对 JDBC 进行了非常轻量级的对 象封装 使得 Java 程序员可以随心所欲的使用对象编程思想来操纵数据库 Hibernate 可以应用在任何使用 JDBC 的场合 既可以在 Java 的客户端程序使用 也可以在 Servlet JSP 的 web 应用中使用 最具革命意义的是 hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP 完成数据持久化的重任 天津工业大学本科毕业论文 3 第三章第三章 系统分析系统分析 3 1 系统需求分析系统需求分析 基于物联网的远程监控系统 能够实现两台设备 计算机 之间的数据交换 主要还 是从服务端到客户端的数据传递 并将数据实时的展现给客户的计算机 达到一种点 对 点的远程监控功能 通过物联网实现远程监控的功能 我是通过编写两个模块组 来模拟实现远程监控 即启动服务 Server 然后通过客户端 Client 来查看 Server 计算机上的操作和情况 达 到一种远程监控的功能 为了实现远程监控功能 Client 端每隔一段时间向 Server 端 发送一次请求 这样 Server 端就可以把它的操作时时的发送给 Client 端 供客户端查 看 在这个模块组的基础上 为了让软件更加健壮和日后的快速维护 我使用了流行 的框架 easyui 来显示相关信息 供软件的使用者更加清晰明了的观察远程设备的相关 状态 这不仅仅可以使软件有顽强的生命力 而且可以使软件的日后维护起来更加的 方便快捷 3 2 系统总体结构系统总体结构 基于物联网的远程监控 也需要有互联网作为强有力的后台支持 在这里我用的协 议互联网上更加方便和普遍的 http 协议 这种协议是一次请求一次连接 可以更加高 效的利用网络带宽 远程监控启动后 系统会不间断的向客户端发送请求 可以让客 户端的客户人员时时刻刻知道远程设备的相关状态和参数变化情况 以便做出相应的 支持供远程设备使用 此系统的重要之一就是数据库的使用 现在最流行的数据库有 Oracle 数据库 mySQL 数据库 SQL Server 数据库 我在这里用的是 mySQL 数据库 因为此数据库是免费使用 而且更加流行 系统的客户端 用户可以随时随地的打开浏览器就可以访问本系统 并且从服务端 传来的数据会以列表的形式展现给用户端 在这种典型的 B S 结构中浏览器的解析功 能 也非常重要 因为每家浏览器生产商所使用的内核都各不相同 导致会出现用不 同的浏览器出现不同的展现效果 尤其是 IE6 的兼容性是最差的 下面我列出了系统 的常规结构如图 3 2 所示 天津工业大学本科毕业论文 4 图 3 2 web 系统示意图 3 3 系统的实现方针系统的实现方针 为了实现本课题的功能和业务 首先 需要设计一些数据库表格 现在比较流行的 关系型数据库有 Oracle 数据库 mySQL 数据库 和 SQL Server 数据库 对于一个选 定的数据库管理系统 DBMS 数据库系统性能的表现可以有很大差异 它和 DBMS 参 数的选择 数据模式的设计 应用系统的设计 软硬件环境的配置等多个因素密切相 关 本系统选用的是 mySQL 数据库 是基于它的简单便捷和高性能的查询机制 选定数据库后 还要有能够接收任何系统访问的服务器 而 Tomcat 服务器就是一 个免费的开放源代码的 Web 应用服务器 属于轻量级应用服务器 所以在本课题中我 选用了这款 apache tomcat 服务器 作为服务端 在整个系统的开发过程中 使用的核心开发语言还是 Java 语言 但是任何事物都 有它的使用范围 和能力范围 Java 语言也是一样的 所以还需要一些 Servlet JSP 容 器作为后台的容器 和 javascript html 这些前台技术的支持 SQL Server 数据库 天津工业大学本科毕业论文 5 第四章第四章 系统设计系统设计 4 1 功能概要设计功能概要设计 本可以使基于物联网的远程监控 为了更好的实现本系统的功能 我是完成本 地电脑对另外一台电脑的屏幕进行监控 在这里我是通过 Client 模块监控 Server 模块 完成 的 具体操作是 Server 模块启动一个线程 等待 Client 的请求 然后 Client 模块 也启动一个线程后 Server 模块就会每隔一段时间向 Client 模块发送一个截屏信息 其中 Java 代码为了清晰明了 我将其分成了若干个 class 文件 这样便于读者的阅读和 理解 今后在写其他程序的时候还用注意相关的分层情况 否则一旦系统出现了故障 那维护起来是相当快困难 并且不利于维护人员的理解 其中还有一部分显示层 View 的 文件 在这里因为不是主要知识点 我就没有做过多的解释和使用 显示层需要使用 相关的 CSS 样式和 JavaScript 文件 但是由于 javascript 比较复杂而且对 DOM 的处理 也不尽人意 所以我使用的是 jQuery 来代替了 javascript 的功能 Java 代码的结构如图 4 1 所示 图 4 1 监控代码结构图 这里我通过两个包来区分两个模块 便于理解和阅读 在系统的使用的开发过程 中应该更加清晰的使用封装和分层的思想 这里的封装是为了保证代码的重复利用 不至 天津工业大学本科毕业论文 6 于同样的代码太多到时系统看起特别的冗余和沉重 设计模式是一个需要认真学 习的思想 并且要有自己的设计思想融入到项目系统中去 这样开发出来的代码才会 有生命力和魅力 4 2 性能设计性能设计 为了保证系统能够长期 安全 稳定 可靠 高效的运行 系统应该满足一下的性 能需求 1 监控系统的准确性和及时性 这一要求是为了让 Server 模块快速准确的给 Client 模块发送远程设备的状态 如果有网络延迟或者系统的其他故障导致了信息的延迟 那么传到 Client 的 信息也就属于垃圾信息 不在具备参考价值 所以我在考虑到这一点 保证 了系统的安全稳定运行 2 监控系统的开放性和系统的可扩展性 其中开放性是本系统发布后 使用者可以自行修改代码和添加自己想要的功 能 其中甚至接口模块都可以自己定义 为了使系统日后的升级换代 还要 为系统的发展空间留下空余 在这里我使用最多的配置文件方式 使用者可 以自行更改相关的 xml 配置文件 3 监控系统的易用性和易维护性 现在的软件系统要求使用越简单越好 因为在当今快节奏的生活中 每个人 的工作越来越单一也越来越专业化 所以为了保证每个人都能快速的使用软 件 我也是做了相关的简单化处理 是每个人都能在几分钟的时间里了解本 软件的使用方式 4 3 功能功能划分划分 其中 Server 模块是服务层 主要负责开启一个指定端口服务 我设定的是 30012 端口实现监听请求 该端口用于接收客户端传来的 http 请求 在每一次请求完成之后 Server 模块都会做一次截屏的操作 然后将截取的得图片发送给 Client 客户端 以便 让当前客户能够知道 Server 计算机的状态和操作进度等一些相关的信息 功能的划分 在日常生活中也非常常见 软件的功能划分不仅是为了让客户使用的更加方便 而且 可以使软件开发过程中适应团队的模式开发 而且现在市面上有很多版本控制器 其 中我最喜欢的 SVN Subversion 版本控制器 因为太具有小巧便捷 这种 Subversion 版 本控制器 不仅仅是为了使软件开发的过程中实时记录自己的代码开发情况 而且可 以更好的团队开发 将项目划分给若干个小组进行同时开发 然后每个人将开发好的 代码提交到公共 天津工业大学本科毕业论文 7 的开发平台进行整合 整合完成的代码就是将来要发布到服务器上的程序 服务器可 以随便使用 免费方便的服务器就可以使 tomcat 服务器进行相关开发和测试过程 在 测试 的过程中需要注意的地方我再后面的章节会具体讲解 具体代码如图 4 3 1 所示 图 4 3 1 开发代码 Client 模块是客户端 主要负责发送 http 请求到服务器 Server 这样就形成了 Client 时时监控 Server 的操控功能 不过为了减轻 CPU 的压力我将请求设置为 3 秒发 送一起 作为示意信息交互 在 Client 第一次发送请求的时候 Server 已经提前准备 到相应的 Sokcet 端口等待处理来自 Client 发送过来的请求 再后面的请求送过过来的 时候 Server 会做一次判断 如果不是停止服务 Server 服务器会源源不断的截屏 把 图片发送给 Client 客户端 这样就完成了通过物联网的实现远程监控的功能 是客户 端能够时时的观察 Server 服务的一起操作 在 Client 模块是为了给客户提供显示远程 设备的状态情况和相关参数 也就是相当于软件的门面 这一部分的好与坏会直接关 系到软件的舒适感 在这里我就没有使用现在最流的 bootstrap 响应式布局 这种响应 式布局可以保证软件的美观度和舒适感 而且它不局限于浏览器的厂家和版本 甚至 使用不同的手机去运行同一款代码 也不会出现杂乱的现象 这在以前是很难做到的 尤其是当今社会 人们用的浏览器 和手机五花八门 如果没有响应式布局 那开发 人员将面对一场灾难性的战斗 实现远程监控 具体代码如图 4 3 2 天津工业大学本科毕业论文 8 图 4 3 2 开发代码 4 4 客户操作客户操作 如果将系统部署 就应该保持 Server 服务器的长期启动状态 以保持所有的 Client 客户都可以随时随地的去访问 Server 服务器 但是我这里只是示意的完成这一过程 首先启动 Server 模块的主函数 这样就 Server 就会自动启动一个线程和一个 Socket 负 责端口的监听 等待 Client 发来的 http 请求 然后进行相应的处理 Server 服务器启 动结束之后 再启动 Client 客户端 并且会自动的发送 http 协议的请求 这是 Server 就会每隔一定的时间就向 Client 发送一张桌面截屏 不难理解 如果这个时间间隔无 限断 图片就可以变成动态的视频了 不过我这里还是以示意完成功能为主 以 3 秒 发送一次请求 这样只是为了保证所以的 CPU 都成承受 以后有什么需求可以更改发 送请求时间就可以完成了 客户打开任意浏览器 然后输入http localhost 8080 workcontrol 就可以访问服务器 在这里是典型的 B S 系统模式 也是使用了现在最流行的 MVC 思 想去编写程序 所以可以给用户最简单的操作功能 不至于传统的系统软件 需要用 户十分了解自己的所使用软件的功能才能熟练的掌握使用 那样不潜移默化的前提下 就浪费的用户的宝贵时间 本系统的权限管理也做了简单的处理 因为不同角色的用 户登录会有不同的展现效果和不同的使用功能 在这种前提下 拦截器的使用就显得 格外重要 天津工业大学本科毕业论文 9 了 只需要本系统的管理员在权限设置的页面上选择不角色的使用权限 就可以完成 权限设置的功能了 因为这个功能我在后台做了相应的封装管理 就大大减少了用户 管理员的操作流程和操作复杂程度 让系统的使用变得舒适简单 4 5 系统总体功能结构系统总体功能结构 系统的总体结构分为七大部分 其中首先是要启动服务器的 Server 模块组 在 本系统中也可以启动 tomcat 的 startup bat 让服务器先启动 等待客户端的访问 服 务器的功能就算是完成了一大部分 然后是客户端的启动 客户端只需要打开浏览器 输入上面的写的浏览器地址就可以访问到本系统的额服务器 这种情况下 服务器就 会不间断的做截屏的操作 将远程设备的状态和相关的信息发送给使用浏览器访问服 务的用户面前 在此过程中所涉及的数据交互信息量不是特别大 所是对带宽的要求 也不是特别的高 只要能够正常的展现有用信息就可以了 在系统的启动和使用过程中难免会发生更种各样的错误 那么的错误日志的使 用就非常的重要了 在这里我要说明的是 常见的错误处理一共分为五大类 在开发 过程中和测试过程中都会使用相关的错误信息 在这里为了非常友好的客户体验 所 以要做的事情就是把系统错误的信息进行优化和隐藏 不能把恶意的错误信息展现给 使用者 那样可能会让使用者感到不舒服或者畏惧使用软件的心理 动态展现部分 是使用 ajax 异步的操作功能实现的 在这用异步的数据交换过 程中 很给客户端的使用者良好的体验感和舒适感 因为传统的同步数据交换 每次 接受到服务器传来的信息 客户端的电脑都会进行一次刷屏操作 这样不仅会伤害用 户的眼睛 还会让客户感觉特别的不舒服 ajax 异步数据交换能够给客户良好的感觉 因为它不会使显示器刷屏 更不会导致软件的浪费资源 最后停止系统 关闭浏览器就可以了 即使不关闭浏览器也可以 因为现在打 开着浏览器也不会占用网上带宽 浪费资源 系统的总体结构如图 4 5 所示 天津工业大学本科毕业论文 10 基于物联网的远程监控 用户启动 服务器启动 数据 交换 错误 记录 动态展现操作 图片 保存 停止 系统 图 4 5 系统模块 第五章第五章 实验及测试实验及测试 程序在编译前或者运行过程中会出现各种各样的问题 遇见程序错误 最重要 的就是看控制台的错误信息 通过错误提示去分析错误的原因 例如在我实验的过程 中就出现过编译前的错误 如图 5 1 所示 在这次的错误中 是因为某些变量的取值 发生错误 在 java 程序中的传递都是值传递 所以一定要明确的知道变量之间的作用 域 即使用范文 否则经常会出现空指针异常 java lang NullPointerException 这样的错误 所以需要通过控制台的提示信息去分析错 误的大概位置 实验过程中 学会看懂错误提示信息也是非常重要的能力 在系统实验过程中错误 信息有多种多样的显示情况 可以打印在控制台 也可以专门的准备一个 Log4 properties 文件接收系统产生的错误 在这里我就使用的是 Log4 properties 文件来 接收系统实验运行过程中产生的错误信息 在日常生活中像这样的记录错误方式非常 常见 因为用这种记录文件来收集错误信息 不仅可以避免恶意的错误提示信息 暴 露在客户端的面前 而且这也是一种远程监控的应用 在错误信息日志中可以设定指 定的时间 每隔一定的时间 错误日志就可以将电脑记录的错误信息发送给维修人员 系统维修人员可以根据 错误日志中所记录的错误信息和时间来判断 产生错误的可 能性 并且大大降低了错误查询的盲目性 使工作效率得到提高 在当今快节奏的生 活中 提高工作效率是一件迫 在眉睫的事情 天津工业大学本科毕业论文 11 图 5 1 测试代码 程序在编译过程中也会出现一些错误 我在这里出现了 如图 5 2 ConnectException Connection refused 这样的错误 不能连接服务器 经过我 的分析错误原因有两个 一是服务器虽然启动了 但是是一种异常性的启动 第二 个原因就是 Client 端出现了编译过程中的代码错误 所以我提出的解决方案就是 先通过服务器端去查找错误 保证了服务器 Server 的正常启动 然后又仔细排查了 客户端 Client 的相关错误 程序在编译过程出现的错误 有的时候是不会影响系统正常工作的 比如内存 的使用 如果系统设计不合理 或者系统对硬件的要求比较苛刻 要求用户的电脑 内存比较高 那么客户端使用了小内存进行访问系统 就会出现内存溢出的现象 但是在本系统中 因为系统本省比较小 而且使用的 CPU 时间片时间也比较短 所 以基本上不会出现内存溢出的现象 一旦出现内存溢出 那么用户在不想更新自己 硬件的前提呀 可以适当的选择减小特效效果 那样对内存的消耗也是比较小的 自然就避免的错误的产生 从而达到正常运行系统的目的 天津工业大学本科毕业论文 12 图 5 2 错误提示 在排除系统的所有错误后 就可以正常启动系统了 首先要登录 apache 的 tomcat 服务器 进行服务器配置的测试 保证服务器正常工作后 才能将系统发布到服务器 上 系统一旦发布到 apache tomcat 服务器上 就可以正常的运行 供客户端访问使 用了 在这里需要注意的是 因为 apache tomcat 服务器默认的端口号是 8080 所以 如果电脑上有 apache tomcat 其他类似的软件处于启动状态 可能会出现端口号被占用 的错误 所以在确保端口号正常 而且服务器正常启动的条件下 才能进行系统的整 体测试功能 Apache tomcat 的正常启动如图 5 3 所示 图 5 3 tomcat 服务器 最后 将系统做了一下完成的测试 首先是启动服务器 Server 为了明显的体 天津工业大学本科毕业论文 13 现 我在控制台打印出了 等待服务器启动的字样 在显示的服务器启动的过程是比 较复杂的 当今比较流行的服务器有 jBoss weblogic 等 而我个人经常使用的是 Tomcat 服务器 这个服务器比较轻 而且使用便捷 只需要把项目部署到 Tomcat 上 就可以直接运行 这里为了方便 我就做了示意的服务器启动 如图 5 3 所示 图 5 4 系统自动截屏 当服务器启动后 客户端 Client 就可以随时的进行访问了 现在的系统基本上都 是 B S Browser Server 结构 这种结果是随着 Internet 技术的兴起 逐渐走上了历史舞 台 为了操作简单 我在这里只是做了示意性的连接服务器 并且为了明显显示 我 将连接服务器后 线程的操作流程打印到了控制台 当控制台上出现 目的主机的 ip 127 0 0 1 port port 30012 operateStr mouseMoved 655 589 表示正常连接服务器 并且开始截屏将图片发送给客户端 Client 其中图片如果足够快足够多 就成了视频的现象 然而具体的远程设备状态和相 关参数 我以数据表格 datagrid 的形式展现给客户端 客户端也可以通过产看数据 表格上面参数的变化来判断远程设备的状态和操作 在当今社会中数据表格是最好的 显示数据的形式 而动态的数据表格更是受到所有人的一致青睐 其中这里的动态显 示依然需 要使用 AJAX 的异步数据交换技术 使远程设备的数据和本地客户端的数据实现 天津工业大学本科毕业论文 14 实时异步交换 达到双方互不影响 而且客户端实时监控远程设备的目的 具体情况 如图 5 4 所示 图 5 5 Client 连接 Server 最后 我将开发工具 eclipse 最小化 等待程序截取了我得整个屏幕和 3 秒前 Java 自己的 JFrame 面板一起被截屏显示 这些操作都是程序自动执行的 并且会将截 取的图标发送给客户端 还是像开始我所讲述的那样 如果服务器 Server 的截屏速度 无限短 达到每帧 24 帧以上 在客户端 Client 就可以看见一个动态的视频效果 而不 是像现在这样的图片形式 并且通过时时监控客户端就可以轻易的了解服务器的一切 状态 下面的截图是系统自行完成的 基于本系统的目的 达到远程监控的目的 我设 置了本地客户端操作远程电脑 并且让远程电脑进行截屏行为 将截屏后的图片发送 给客户端 像这样的截屏操作 客户端可以设置远程设备的截屏时间 从而使传过来的信息 成为一种动态的视屏效果 远程设备的工作状态报表会实时显示在 datagrid 表格中 这 样就形成了完成的远程监控的效果 在日常生活中像这样的远程监控功能比比皆是 不过有的是利用远程摄像头实现的 在本课题 基于物联网的远程监控 我已经实现 了本课题的基本功能 并且明确本课题的具体意义 从实际出发 不断学习 总结学 习过程中的经验 最终完成了本课题的任务 具体截屏效果如图 5 5 所示 天津工业大学本科毕业论文 15 图 5 6 截屏效果图 天津工业大学本科毕业论文 16 第六章第六章 结论结论 通过本系统 可以实现远程点对点的监控功能 但是主要还是由服务器实时向客户 端发送远程设备的状态信息和操作情况 并且以列表的形式展现给客户端显示 通过 此设计 可以知道当今最流行的三大框架 Struts2 Spring Hibernate 以及工作流 Jbpm4 workflow 的重要作用 在软件开发的过程中 秉承 MVC 三层结构 但是 MVC 只是一 种设计思想 而不是设计模式 这样开发出来的程序可读性和维护性会大大提高 本系统可以应用在 所有的 web 应用服务器上 实现远程数据交换 动态显示 可以以报表的形式清晰的展现远程设备的工作状态 并且以视频的形式实时显示远程 设备的工作状态 天津工业大学本科毕业论文 17 参考文献参考文献 1 卢潇 软件工程 M 清华大学出版社 北京交通大学出版社 2005 20 50 2 张京华 Java 实用教程 M 清华大学出版社 2010 01 01 3 黄凯漩 基于 B S 模式远程监控系统的研究与实现 南京大学 2011 04 11 4 Donald A Neamen Electronic Circuits Analysis and Design 2nd ed McGrawHill Companies Inc 2001 5 Thomas L Floyd Fundamentals of Analog Circuits 2nd ed Prentic Hall Inc 2002 6 P L Jones P J Spreadbury Analogue electronic circuits and Systems Cambridge University Press New York 1991 7 汪惠 王志华 电子电路的计算机辅助分析与设计 北京 清华大学出版社 1996 8 孙卫琴 精通 Hibernate Java 对象持久化技术详解 电子工业出版社 2009 9 9 胡奇 jBPM4 工作流开发指南 电子工业出版社 2011 4 2 10 Chad Michael Davis 著 Struts2 实战 人民邮电出版社 2010 2 天津工业大学本科毕业论文 18 附录附录 此图是我为了接收远程设备状态信息 画的一个页面表格 用到了 easyui html css jquery 等一些前台网页设计的技术 作为一名 Java 程序员还是需要了解 一些前台页面技术 比方当下最流行的 angularJS 框架 angularJS 之所以能够在 extJS bootstrap 等这些优秀的前台框架中脱颖而出 基于两种原因 1 angularJS 拥有独 特的双向数据绑定功能 其他框架全是单向数据绑定 2 angularJS 拥有独特的 命 令行 功能 图 1 easyUI 实例 天津工业大学本科毕业论文 19 Eclipse 作为一款经典的 java 开发工具 就其本身而言 它只是一个框架和一组 服务 用于通过插件组件构建开发工具 随着时代的进步 eclipse 越来越不能满足当 代开发人员的需求 最终 Google 终于抛弃了 Eclipse 转向了 Intellij IDEA 在 2013 年 Google I O 大会上 推出了新的集成 IDE 最大的转变就是从 Eclipse 时代切换到了 Intellij IDEA 时代 本系统 在 Intellij IDEA 上也可以进行开发 如图 2 所示 图 2 SSH 框架 AngularJS 诞生于 2009 年 由 Misko Hevery 等人创建 后被 Google 收购 天津工业大学本科毕业论文 20 AngularJS 是一款优秀的前端 JS 框架 AngualrJS 有着诸多特性 最为核心的是 MVVM 模块 化 自动化双向数据绑定 语义化标签 依赖注入等等 在毕业设计期间 为了能有一个更好的前台展示页面 和多样化的远程设备状态参 数的展示 我也做了许多了 AngularJS 的相关练习 具体的练习代码如图 3 所示 图 3 Intellij 开发 部分程序代码部分程序代码 package com tjpu Client 天津工业大学本科毕业论文 21 import java awt Dimension import java awt Toolkit import java awt event KeyAdapter import java awt event KeyEvent import java awt event MouseAdapter import java awt event MouseEvent import java awt event MouseMotionAdapter import java awt event WindowAdapter import java awt event WindowEvent import javax swing JFrame import javax swing JLabel import javax swing JScrollPane serverManage 的辅助窗体 内部事件封装了 sendOperate 的实现 public class ServerGUI extendsJFrame private static final long serialVersionUID 2273190419221320707L public JLabel jlabel public JScrollPane scroll private String ip private int port private boolean boo public boolean getBoo return this boo public int getPort return this port public void changePort int port this port port public String getIP 天津工业大学本科毕业论文 22 return this ip public boolean changeIP String ip if UtilServer checkIp ip this setTitle this getTitle replace this ip ip this ip ip return true return false public ServerGUI String IP String sub this boo true this ip IP this port SendOperate DEFAULT PORT this setTitle 远程监控 IP IP 主题 sub this jlabel new JLabel this scroll new JScrollPane this scroll add this jlabel scroll addMouseListener new MouseAdapter public void mousePressed MouseEvent e super mousePressed e int x int e getX int ServerGUI this scroll getHorizontalScrollBar getValue int y int e getY int ServerGUI this scroll getVerticalScrollBar getValue String operateStr mousePressed x y e getModifiers SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start public void mouseReleased MouseEvent e 天津工业大学本科毕业论文 23 super mouseReleased e int x int e getX int ServerGUI this scroll getHorizontalScrollBar getValue int y int e getY int ServerGUI this scroll getVerticalScrollBar getValue String operateStr mouseReleased x y e getModifiers SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start scroll addMouseMotionListener new MouseMotionAdapter public void mouseDragged MouseEvent e super mouseDragged e int x int e getX int ServerGUI this scroll getHorizontalScrollBar getValue int y int e getY int ServerGUI this scroll getVerticalScrollBar getValue String operateStr mouseDragged x y e getModifiers SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start public void mouseMoved MouseEvent e super mouseMoved e int x int e getX int ServerGUI this scroll getHorizontalScrollBar getValue int y int e getY int ServerGUI this scroll getVerticalScrollBar getValue String operateStr mouseMoved x y SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start 天津工业大学本科毕业论文 24 this addKeyListener new KeyAdapter public void keyPressed KeyEvent e super keyPressed e String operateStr keyPress e getKeyCode SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start public void keyReleased KeyEvent e super keyReleased e String operateStr keyReleas e getKeyCode SendOperate sender new SendOperate ServerGUI this ip operateStr sender changeIP ServerGUI this ip 同步 ip sender changePort ServerGUI this port 同步 port sender start public void keyTyped KeyEvent e this add scroll this setAlwaysOnTop false Dimension screenSize Toolkit getDefaultToolkit getScreenSize this setBounds 100 75 int screenSize getWidth 200 int screenSize getHeight 150 this setDefaultCloseOperation DO NOTHING ON CLOSE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论