软件工程课程设计——远程监控系统.doc

上传人:good****022 文档编号:116512934 上传时间:2022-07-05 格式:DOC 页数:31 大小:1.69MB
返回 下载 相关 举报
软件工程课程设计——远程监控系统.doc_第1页
第1页 / 共31页
软件工程课程设计——远程监控系统.doc_第2页
第2页 / 共31页
软件工程课程设计——远程监控系统.doc_第3页
第3页 / 共31页
点击查看更多>>
资源描述
基于 CS 模式远程监控系统软件的实现 编号:04 软件工程软件工程课程设计课程设计 题目题目:基于基于 CSCS 模式远程监控系统软件的实现模式远程监控系统软件的实现 系系 (院):信息工程学院(院):信息工程学院 专专 业:计算机科学与技术业:计算机科学与技术 班班 级:计科级:计科 0901B0901B 组组 长:谢永路长:谢永路 组组 员:赵春乐员:赵春乐 胡园胡园 刘燕三刘燕三 指导教师:王娟娟指导教师:王娟娟 目录目录 一、可行性分析报告一、可行性分析报告.4 引言4 1.2 可行性分析的前提 4 1.3对现有系统的分析 .5 通过综合各个方面的资料,我们了解到基于 BS 模式的系统尚未成形普及,这说明基于 BS 模 式的系统的需求很大!5 1.4 所建议的系统 5 可以使用 CS 模式,但这使用起来有一定的局限性,不能满足用户的需要!也不符合 INTENET 的快速发展的需要!5 1.5 可选择的其他系统方案.5 如果 CS 模式开发出现问题,我们可以现开发 BS 模式,虽然与我们的期望南辕北辙,但可以 把这看成第一个版本,这样也可以为 CS 模式垫定基础!这只是一种方案!.5 1.6 投资及效益分析 5 开发这款软件投资较小,我们需要的只是在电脑上进行编程,投资较小!而且这个系统又是 当今社会所需要的,他能满足我们各个方面的需求!所以未来的效益也是非常可观的!.5 1.7 社会因素方面的可行性.5 1.8 结论5 二、二、 需求规格说明书需求规格说明书 .6 1概述(SUMMARY) 6 2问题初始分析(EARLY ANALYSIS).7 3目标系统功能需求(FUNCTION OF TARGET SYSTEM) .7 4目标系统性能需求(PERFORMANCE OF TARGET SYSTEM).7 5目标系统界面与接口需求(INTERFACE OF TARGET SYSTEM)8 6目标系统其他需求(OTHER REQUIREMENTS OF TARGET SYSTEM).8 7目标系统假设与约束条件(SUPPOSE AND RESTRICTION OF TARGET SYSTEM).9 三、总体设计说明书三、总体设计说明书.9 1.1 远程监控的背景知识 10 1 2 远程监控软件的原理.10 2 系统需求分析及理论基础系统需求分析及理论基础10 2.1 系统需求分析 10 2.2 系统开发原理及关键技术.11 2.3 系统的开发平台 11 2.4 编程运行环境 13 四、详细设计说明书四、详细设计说明书 .13 3.1 系统总体结构设计和分析.13 3.2 程序流程及分析 14 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 3 五、源程序清单五、源程序清单.18 4.1 系统主要模块设计 18 4.2 连续获得被监控端机器屏幕变化功能实现.18 六、用户手册六、用户手册.22 1前言(PREFACE) 22 2功能(FUNCTION).23 七、测试报告七、测试报告.24 1. 概述(SUMMARY).24 2. 组件测试(MODULE TEST)24 3功能测试(FUNCTION TEST).25 4. 测试结论(TEST VERDICT) 25 5 系统运行及测试结果 28 5.1 测试方法28 5.2 测试环境28 5 3 系统运行实例.28 八、软件开发总结报告八、软件开发总结报告30 参考文献参考文献31 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 4 一、可行性分析报告一、可行性分析报告 引言引言 1.1.11.1.1 编写目的编写目的 看这个方案是否可行,是否满足经济可行性,操作可行性,和技术可行性,只有各个 方面都可行,才可以进行下面软件的开发,否则以后做的所有工作都白搭! 项目的目标:该项目的目标是能够实现 B/S 模式的远程监控,对局域网乃至整个网络 都能够实现远程监控,让用户在任何一个地方都能够对提前设定的区域进行监控和管理。 1.1.2 背景 目前所有的系统都是在 CS 模式下完成,基于 BS 模式的远程监控系统尚未出现,在互 联网发展的大背景下,基于 CS 模式的远程监控系统也就应用而生! 1.1.3 定义 基于 BS 模式的远程监控系统:就是让用户在任何地方,通过已经联网的浏览器,对提 前设定的区域进行监控和管理! 用户 PC 机:一台普普通通的电脑,具体点这里指能够上网的电脑。 普通摄像头:他不具有网络摄像头的功能,只是有某种接口的普通摄像头。 后台服务器:他对用户数据进行分析与处理。管理真个网站。 1.1.4 参考资料 web 程序设计 (美)Robert W.Sebesta 著 JSP 基础教程耿祥义 张跃平 编著 软件工程导论 (第五版) 张海藩 编著 UML 基础、案例与应用 (第三版) (美)Joseph Schmuller 著 1.2 可行性分析的前提 1.2.1 要求 他必须的完成以下功能: (1) 、视频数据的实时传输 (2) 、视频数据的存盘与管理 (2) 、视频数据的分析以及图像数据的分析 1.3 对现有系统的分析 通过综合各个方面的资料,我们了解到基于 BS 模式的系统尚未成形普及,这说明 基于 BS 模式的系统的需求很大! 1.4 所建议的系统 可以使用 CS 模式,但这使用起来有一定的局限性,不能满足用户的需要!也不符合 Intenet 的快速发展的需要! 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 5 1.5 可选择的其他系统方案 如果 CS 模式开发出现问题,我们可以现开发 BS 模式,虽然与我们的期望南辕北辙, 但可以把这看成第一个版本,这样也可以为 CS 模式垫定基础!这只是一种方案! 1.6 投资及效益分析 开发这款软件投资较小,我们需要的只是在电脑上进行编程,投资较小!而且这个系 统又是当今社会所需要的,他能满足我们各个方面的需求!所以未来的效益也是非常可观 的! 1.7 社会因素方面的可行性 我们从三个方面分析该项目的可行性: 在操作方面:首先,在全校范围内没有该系统,或类似于该系统的东西出现。而我们 又非常的渴望这样的系统。比如,对于机房,机房管理员或任课教师就不用去机房,就能 对整个机房的情况进行监控。对于宿舍或者其他居住场所,我们可以随时随地的通过网络, 对这些地方进行远程监控和管理。也就是说,用户只需要通过浏览器,输入自己的账号和 密码,就可以实现对现场设备状态的安全监控!在操作上是行的通的。 在技术方面:我们采用 java web 程序设计,它是基于 JAVA 面向对象的。并且我们采 用学习过的三种框架技术,实现整个网络编程。这些技术都是我们学习过,并且都已经掌 握的。我们会涉及到图像识别,数据的分析与处理等这些前沿的东西。我们相信,在技术 上我们完全可以做到。 在经济方面:我们不需要学校的补助,我们小组每个人都有电脑,如果可以的话,我 们也能去机房,完成项目的编码与测试。可以说我们不需要什么费用,就可以完成这个项 目。所以我们共同认为经济上绝对不是一个问题! 1.8 结论 开发这个系统是可行的,不管从我们小组个人能力,还是从未来发展方向,都能为我们 在 web 方向的学习,垫定基础! 二、二、 需求规格说明书需求规格说明书 完成人完成人: 谢永路 1 1概述(概述(SummarySummary) 1.11.1 项目的目的与目标(项目的目的与目标(PurposePurpose andand AimAim ofof ProjectProject) 项目名称是:基于 web 技术的远程安全监控系统。项目的目的是用户可以在任何一个 地方,通过网络就能对提前设置的区域进行监控和管理,而不用去监控室里,这样非常的 方便,他是随着 Internet 发展,应用而生,他是基于 B/S 模式的,而传统的监控系统是基 于 C/S 模式。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 6 项目的目标:该项目的目标是能够实现 B/S 模式的远程监控,对局域网乃至整个网络 都能够实现远程监控,让用户在任何一个地方都能够对提前设定的区域进行监控和管理。 整个该系统的工作流程如上图所示,服务器从摄像头获得数据,PC 机能够访问服务器,并 可以得到实时数据和已经存盘的数据。并且用户也可以通过服务器对远程摄像头进行控制。 另外系统所实现的功能远不止这些,他要对后台服务器进行全面管理。又类似一个网站的 功能。所有的这些都是该项目的目的。 1.21.2 术语定义(术语定义(TermsTerms GlossaryGlossary) 用户 PC 机:一台普普通通的电脑,具体点这里指能够上网的电脑。 普通摄像头:他不具有网络摄像头的功能,只是有某种接口的普通摄像头。 后台服务器:他对用户数据进行分析与处理。管理真个网站。 1.31.3 相关文档(相关文档(RelatedRelated DocumentsDocuments) 说明用户需求报告的变更,以及可能受变更影响的其他相关文档,如:项目开发计划 和设计说明书。 web 程序设计 (美)Robert W.Sebesta 著 JSP 基础教程耿祥义 张跃平 编著 软件工程导论 (第五版) 张海藩 编著 UML 基础、案例与应用 (第三版) (美)Joseph Schmuller 著 Java 核心技术Cay S.Horstmann Gary Cornell 编著 数据库系统概论王珊 萨师煊 著 2 2问题初始分析(问题初始分析(EarlyEarly AnalysisAnalysis) 我们对整个项目进行全面分析以后,发现该项目面临的问题如下: (1) 、如何把摄像头中的数据传到服务器中,并每隔一段时间进行保存,如果是多个摄像 头,又该如何传输,这涉及到多线程并发的操作。 (2) 、用户如何通过网络从服务器上获得数据,以及获得的是实时数据。如果该用户又多 个摄像头,又该获得每个摄像头中的数据。 (3) 、后台服务器,如何管理。 (4) 、用户如何通过服务器对远程摄像头进行控制。 2.12.1 场景描述(场景描述(SceneScene DescriptionDescription) 用户所处的位置可以是任何一个地点,首先用户的电脑必须能够上网。也就是说能够 普通摄像头 服务器 用户 PC 机 数据传输 发出请求 数据传输 控制命令 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 7 通过浏览器进行访问,用户不需要安装任何软件。 用户必须在某个区域配置有摄像头,该摄像头并且能够连接到服务器中去。 2.22.2 初始功能提取(初始功能提取(EarlyEarly FunctionFunction DistillDistill) (1) 、视频数据的实时传输 (2) 、视频数据的存盘与管理 (2) 、视频数据的分析以及图像数据的分析 3 3目标系统功能需求(目标系统功能需求(FunctionFunction ofof TargetTarget SystemSystem) 3.13.1 功能需求分析(功能需求分析(FunctionFunction AnalysisAnalysis) 创建用例模型与域模型,要求采用用例表进行用例规约描述,必要时采用活动图进行 检验。 用户 查看视频 注册登录 管理摄像头 查询视频 管理视频 4 4目标系统性能需求(目标系统性能需求(PerformancePerformance ofof TargetTarget SystemSystem) 在 B/S 模式下采用传统的三层体系结构来设计监控组态软件,并不能直接实现与被控 对象进行数据通信,因此基于 Web 技术的监控组态软件采用四层体系结构进行设计,如图 2 所示。它是在一般的三层体系结构的基础上增加了控制层,用来实现 Web 服务器与被控 对象的通信,进一步控制被控对象。这样既充分利用了现有的网络资源和工业现场资源, 也使得两者有机地结合在一起,达到了 Web 服务器与现场设备通过现场总线进行远程通信 的目的。 4.14.1 时间要求(时间要求(TimeTime RequestRequest) 如: (1)响应时间,如查询的最长等待时间。 (2)更新处理时间,如记账的最长时间。 (3)数据的转换和传送时间,如远程数据传输的时间要求。 (4)解题时间。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 8 以上的时间要求,我们会控制在 2s 内完成。可能这个时间有些长,但是必须考虑到, 网络的流量以及网络阻塞情况。就好比你上网看视频,如果网速很慢,你等的时间会很长 些,如果网速快,你可能不用等很长时间。实时视频的传输速率也和网络状况有关。 4.24.2 空间要求(空间要求(SpaceSpace RequestRequest) 如: (1)支持的终端数。 (2)支持的并行操作的使用者数。 (3)处理的文件和记录数。 (4)处理任务的数量。 (5)对输入和输出数据的精度要求。 (6)对处理和传输过程中的精度要求。 5 5目标系统界面与接口需求(目标系统界面与接口需求(InterfaceInterface ofof TargetTarget SystemSystem) 5.15.1 界面需求(界面需求(InterphaseInterphase RequirementRequirement) 界面的原则要求,如方便、简洁、美观、一致等。整个系统的界面风格定义,某些功 能模块的特殊的界面要求。 (1)输入设备:键盘、鼠标、条码扫描器、扫描仪等; (2)输出设备:显示器、打印机、光盘刻录机、磁带机、音箱等; (3)显示风格:图形界面、字符界面、IE 界面等; (4)显示方式:1024*768、640*480 等; (5)输出格式:显示布局、打印格式等。 我们设计的界面一定要达到美观,易懂,并且会有相应的提示说明。在输入、输出设 备上,没有太大的要求。该系统采用的显示风格是 IE 界面。至于显示方式,他会根据用户 电脑的分辨率进行调节,以适应任何形式的显示方式。在输出格式方面,该系统会兼顾各 个方面,我们的输出格式会达到形式多样化。 总之,他会让用户看着舒心,用着放心。任何人都可以使用。 5.25.2 接口需求(接口需求(InterfaceInterface RequirementRequirement) 与其他系统的接口,如监控系统、控制系统、银行结算系统、税控系统、财务系统、 政府网络系统及其他系统等。 (1)与系统特殊外设的接口,如 CT 机、磁共振、柜员机(ATM) 、IC 卡、盘点机等。 (2)与中间件的接口,要列出接口规范、入口参数、出口参数、传输频率等。 应在此列举出所有的外部接口名称、接口标准、规范。外部接口列表,如表 2-3 所示。 6 6目标系统其他需求(目标系统其他需求(OtherOther RequirementsRequirements ofof TargetTarget SystemSystem) (1) 、统进行扩展、该系统会对区域人员进行图像辨别,数据分析。会判断入境人员 的身份,并及时做出相应的处理。 (2) 、用户信息的安全保护。 6.16.1 安全性(安全性(SecuritySecurity) 用户的账号,该系统会做到最高级别的保护。 远程监控系统会利用新技术全面的保护用户账号的安全。尽量会保证用户信息的保密 性。及时用户的账号外漏,该系统也会采用相应的措施,进一步保护! 6.26.2 可靠性(可靠性(DependabilityDependability) 系统能够稳定可靠地运行,能够防止外界的一切干扰,稳定性方面相当优秀! 6.36.3 灵活性(灵活性(AgilityAgility) 该系统在视频分析,图像数据分析,摄像头处理时想当灵活的,他采用人性的设计方 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 9 式,按照人的思维处理问题。并且用户可以通过网络对远程的摄像头进行管理,这些都是 该系统灵活性的体现。方便用户的操作! 6.46.4 特殊需求(特殊需求(SpecialSpecial RequirementsRequirements) 如: (1)进度需求:系统的阶段进度要求。 (2)运行环境需求:平台、体系结构、设备要求。 (3)培训需求:用户对培训的需求,是否提供多媒体教学光盘。 (4)推广需求:推广的要求,如在上百个远程部门推广该系统,是否要有推广的支持 软件。 7 7目标系统假设与约束条件(目标系统假设与约束条件(SupposeSuppose andand RestrictionRestriction ofof TargetTarget SystemSystem) 假设与约定条件是对预计的系统风险的描述, 如: (1)法律、法规和政策方面的限制。 (2)硬件、软件、运行环境和开发环境方面的条件和限制。 (3)可利用的信息和资源。 (4)系统投入使用的最晚日期。 三、总体设计说明书三、总体设计说明书 远程监控技术,始于 DOS 时代,因为当时网络不发达,这门技术没有得到 很多重视,但是随着网络的高度发展,电脑的管理及技术支持的需要,远程监 控技术越来越引起人们的关注。 网络技术的不断发展,也为远程监控技术的发展创造了条件。远程监控软 件一般分两个部分:一部分是客户端程序 Client,另一部分是服务器端程序 Server,多数远程监控软件把被监控端作为服务器,主控端作为客户端。考虑 到在监控过程中,如果把主控端作为客户端向被监控端发送 TCP 连接请求,容 易被防火墙或者杀毒软件阻止,监控过程就不能够成功进行。因此,本毕业设 计将被监控端设计为客户端,向主控端发连接请求,建立连接后,主控端向被 监控端发送远程控制命令,控制被监控端电脑中的各种应用程序运行,被监控 端对主控端发送来的命令进行处理,并将命令处理结果返回给主控端。 远程监控软件顺应时代发展的需求,它实用、使用简便,是非常不错的软 件。 1.11.1 远程监控的背景知识远程监控的背景知识 远程监控是在网络上由一台电脑(主控端 Remote)远距离去监控另一台电脑 (被监控端 Host)的技术,这里的远程不是字面意思的远距离,一般指通过网络 监控远端电脑,不过,大多数时候我们所说的远程监控往往指在局域网中的远 程监控而言。 电脑中的远程控制技术,始于 DOS 时代,只不过当时由于技术上没有什么 大的变化,网络不发达,市场没有更高的要求,所以远程控制技术没有引起更 多人的注意。但是,随着网络的高度发展,电脑的管理及技术支持的需要,远 程操作及控制技术越来越引起人们的关注。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 10 远程控制一般支持下面的这些网络方式:LAN、WAN、拨号方式、互联网方 式。此外,有的远程控制软件还支持通过串口、并口、红外端口来对远程机进 行控制(不过,这里说的远程电脑,只能是有限距离范围内的电脑了)。传统的 远程控制软件一般使用 NETBEUI、NETBIOS、IPX/SPX、TCP/IP 等协议来实现远 程控制,不过,随着网络技术的发展,目前很多远程控制软件提供通过 Web 页 面以 Java 技术来控制远程电脑,这样可以实现不同操作系统下的远程控制,例 如数技通科技有限公司在就推出了全球第一套基于中文 JAVA 的跨平台远程控制 软件易控。 1 1 2 2 远程监控软件的原理远程监控软件的原理 远程监控软件一般分两个部分:一部分是客户端程序 Client,另一部分是 服务器端程序 Server,由于本毕业设计的通信模块有别于传统的远程监控软件, 在使用前需要将客户端程序安装到被监控端电脑上,将服务器端程序安装到主 控端电脑上。 在进行一台电脑对多台远端电脑进行控制时,我们发现,远程监控软件似 乎更像一个局域网的网络管理员,而提供远程控制的远程终端服务就像极了办 公室局域网的延伸。这种一对多的连接方式在节省了调制解调器的同时,还使 得网络的接入更加安全可靠,网络管理员也更易于管理局域网上的每一台电脑。 本文所论述的远程监控系统就是依照这种方式进行的。 2 2 系统需求分析及理论基础系统需求分析及理论基础 2.12.1 系统需求分析系统需求分析 2.1.12.1.1 系统功能需求系统功能需求 1连续获得被控端机器屏幕变化。 2实现被控端硬盘文件的上传、下载。 3实现对鼠标、键盘的模拟。 4实现在被控端机器上执行任意 DOS 命令。 5远程关机、远程重启计算机。 2.1.22.1.2 其他需求其他需求 1系统实用,界面操作简便。 2被监控端自动隐藏运行。 被监控端将随电脑启动而自动运行,运行时默认无任何可见界面。 2.22.2 系统开发原理及关键技术系统开发原理及关键技术 2.2.12.2.1 系统开发原理系统开发原理 本系统是利用类 java.awt.robot 中的屏幕截取和鼠标、键盘自动控制功能, 然后加上网络传输功能来完成来完成截屏和远程控制的。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 11 2.2.22.2.2 系统运行概述系统运行概述 1启动被监控端,打开指定的 UDP 端口号。用于读取命令。 2被监控端读取命令(命令格式为 ordername:port)ordername 为命令名 字,port 为主控端打开的 TCP 端口。 3接到主控端连接后,被监控端就对当前用户的桌面采用屏幕截取,然后 发送给主控端。依被监控端设计的不同,可以设定屏幕截取的时间间隔,时间 间隔短一点就可以获得连续屏幕变化了。 4主控端在画布上对鼠标、键盘事件进行监听,被监控端重演主控端上的 事件 5主控端和被监控端读取和发送数据,分别来实现文件上传和下载。 6在被监控端实现 DOS 命令的执行。 2.2.32.2.3 系统的关键技术系统的关键技术 系统使用的关键技术就是 Java 网络编程和 Java 图形编程。用 Java 网络编 程实现主控端和被监控端的通讯(命令收发、数据传送) ,用 Java 图形编程完 成主控端控制界面的编写。具体应用如下: 1实现主控端(服务器)与被监控端(客户端)之间的通讯。 用 Java Socket 来实现。 2用 Java 采集事件,封装成消息,用于发送。 在主控端机器上采集事件(一般只不过是键盘和鼠标的事件),然后封 装成消息类传输到被监控端。 3在被监控端上重演主控端的动作事件。 在被监控端运行 client 端,接收消息,如果主控端有请求操作的消息, 用 Robot 截下当前屏幕,传给主控端,主控端显示被监控端的屏幕,是一个位 图;然后接收在这个位图上的鼠标事件和键盘事件,并把鼠标位置(位图上的坐 标换算成对应的屏幕上的坐标)和键值送到被监控端上,在被监控端上重演同样 的事件。 2.32.3 系统的开发平台系统的开发平台 JDK1.5.0,MyEclipse8.5,Windows XP Professional 2.3.12.3.1 MyEclipseMyEclipse 介绍介绍 MyEclipse 是一种可扩展的开放源代码 IDE。2001 年 11 月,IBM 公司捐出 价值 4,000 万美元的源代码组建了 MyEclipse 联盟,并由该联盟负责这种工具 的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试” 的周期之中。为了帮助集成开发环境 (IDE)克服目前的局限性,业界厂商合作 创建了 MyEclipse 平台。MyEclipse 允许在同一 IDE 中集成来自不同供应商的 工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发 者可以专注在实际的嵌入式目标上。MyEclipse 为工具开发商提供了更好的灵 活性,使他们能更好地控制自己的软件技术。MyEclipse 是一个开放源代码的 项目,任何人都可以下载 MyEclipse 的源代码,并且在此基础上开发自己的功 能插件。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的 Java 开发环境中加入 Tomcat 服务器插件。可以无限扩展,而且有着统一的外观,操 作和系统资源管理,这也正是 MyEclipse 的潜力所在。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 12 2.3.22.3.2 JavaJava 语言语言 Java 语言是 SUN 公司于 1995 年 5 月推出的新一代面向对象的计算机通用 编程语言,是继 WWW 之后又一引起世界轰动的产品。Java 语言的特点是跨平台 和强大的网络编程功能。在 Java 语言诞生之前,Internet 已存在,所以 Java 语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又 简化了网络编程的操作。因此利用 Java 语言可以开发出功能强大的网络应用程 序。 2.3.32.3.3 JarJar 命令命令 功能:Java 归档工具 语法:jar 命令选项 manifest destination input-file input- files jar 工具是个 java 应用程序,可将多个文件合并为单个 JAR 归档文件。 jar 是个多用途的存档及压缩工具,它基于 ZIP 和 ZLIB 压缩格式。然而,设计 jar 的主要目的是便于将 java applet 或应用程序打包成单个归档文件。将 applet 或应用程序的组件(.class 文件、图像和声音)合并成单个归档文件时, 可以用 java 代理(如浏览器)在一次 HTTP 事务处理过程中对它们进行下载,而 不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar 还能压缩文 件,从而进一步提高了下载速度。此外,它允许 applet 的作者对文件中的各个 项进行签名,因而可认证其来源。jar 工具的语法基本上与 tar 命令的语法相 同。 命令选项: -c:在标准输出上创建新归档或空归档。 -t:在标准输出上列出内容表。 -xfile:从标准输入提取所有文件,或只提取指定的文件。如果省略了 file,则提取所有文件;否则只提取指定文件。 -f:第二个参数指定要处理的 jar 文件。在-c(创建)情形中,第二个参数 指的是要创建的 jar 文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这 两种情形中,第二个参数指定要列出或抽取的 jar 文件。 -v:在标准错误输出设备上生成长格式的输出结果。 -m:包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile *.class” -0:只储存,不进行 ZIP 压缩。 -M:不创建项目的清单文件。 -u:通过添加文件或更改清单来更新现有的 JAR 文件。例如:“jar -uf foo.jar foo.class”将文件 foo.class 添加到现有的 JAR 文件 foo.jar 中, 而“jar umf manifest foo.jar”则用 manifest 中的信息更新 foo.jar 的清单。 -C:在执行 jar 命令期间更改目录。例如:“jar -uf foo.jar -C classes *”将 classes 目录内的所有文件加到 foo.jar 中,但不添加类目录本 身。 程序示例 1:将当前目录下所有 CLASS 文件打包成新的 JAR 文件: jar cf file.jar *.class 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 13 2:显示一个 JAR 文件中的文件列表: jar tf file.jar 3:将当前目录下的所有文件增加到一个已经存在的 JAR 文件中: jar cvf file.jar * 2.42.4 编程运行环境编程运行环境 硬件环境: CPU: 闪龙 2400 内存:256M 硬盘:80G 软件环境: 操作系统:Windows XP Professional 应用软件:MyEclipse8.5 + JDK1.5.0 四、四、详细设计说明书详细设计说明书 3.13.1 系统总体结构设计和分析系统总体结构设计和分析 本系统设计的方案为 C/S 模式,在主控端电脑上安装服务器端程序,在被 监控端电脑上安装客户端程序。该系统的控制过程是先在主控端电脑上执行服 务器程序,在命令收发过程中,主控端向被监控端配置的 UDP 端口发送命令, 该命令是一个控制命令,要求被监控端来连接其开启的 TCP 端口和要求被监控 端执行的操作,如果被监控端监听到该 UDP 命令,主动开启 TCP 端口向主控端 发送连接请求。这样就建立了一个特殊的远程服务,然后通过这个远程服务, 主控端使用各种远程控制功能发送远程控制命令,控制被监控端电脑中的各种 应用程序运行。系统总体结构如图 1: 图 1 系统总体结构图 图 3.1 把软件功能分解到通信的两个端点上,即客户端和服务器端,采用 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 14 ClientServer 模式。这样能提高设计的灵活性,易于系统的扩展。被监控端 接受主控端命令,并处理命令,然后输出命令处理结果;主控端则提供交互界 面及命令处理结果显示;数据交换通道的建立由双方的数据通信模块负责。从 而实现点到点的直接控制监控,满足实时性要求。 3.1.13.1.1 主控端的主要功能模块主控端的主要功能模块 主控端包括的模块有:消息输入,命令处理结果显示模块,通信模块。消 息输入模块负责将用户界面的事件传送到通信模块,通信模块将命令信息发送 到被监控端;被监控端执行操作后返回的成功或失败信息交由主控端命令处理 结果显示模块根据信息的格式进行显示。 3.1.23.1.2 被监控端的主要功能模块被监控端的主要功能模块 被监控端包括的模块有:通信模块,命令处理模块。被监控端处于侦听状 态,一旦接收到合法的连接请求,就开 UDP 端口,并开启命令接受线程,建立 连接后,通过通信模块接收主控端发来的命令信息,经命令处理模块解释后, 并将结果返回到主控端。 3.23.2 程序流程及分析程序流程及分析 3.2.13.2.1 被监控端启动流程被监控端启动流程 在被监控端安装客户端程序,程序启动的时候,尝试开启 UDP 端口,如果 防火墙或者杀毒软件阻止,尝试开启配置的其它 UDP 端口,如果都尝试完毕, 启动失败。否则,将开启的 UDP 套接字传入,然后开启命令接收线程,目的是 进行命令获取,并对获取的命令进行处理。然后将自己复制到自启动项,并改 名为 Explorer.jar. 流程如图 2。 图 2 被监控端启动流程 3.2.23.2.2 主控端启动流程主控端启动流程 在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形在 主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形显示,然 后用户输入被监控端的 IP 地址。接着主控端开启任意 TCP 端口,并向该 IP 配 置的 UDP 端口发送初始化命令(命令格式为 ordername:port) ,ordername 为命 令名字,port 为主控端打开的 TCP 端口号。主控端对开启的 TCP 端口进行监听, 如果超时,连接失败。否则,主控端读取被监控端的状态对象,接着启动控制 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 15 模块和屏幕监视模块。流程如图 3。 图 3 主控端启动流程 图 4 命令接受和处理流程 3.2.33.2.3 命令接收和处理流程命令接收和处理流程 被监控端 UDP 端口启动成功后,就开始对该 UDP 端口进行监听,如果监听 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 16 到有命令,就读取它,并判断命令是否有效,命令以 ordername:port 为格式, 如果无效,返回继续读取命令,否则,调用相应的命令处理模块对命令进行处 理,命令处理完后将处理结果返回给主控端。流程如图 4。 3.2.43.2.4 图形监视线程启动流程图形监视线程启动流程 主控端开启任意 TCP 端口,向被监控端的 UDP 端口发送“要求被监控端连接” 的 UDP 命令,命令形式为 screen:TCP Port。如果命令超时,命令执行失败, 否则,如果被监视端来连接,生成 Soket 对象,从 Soket 中读取被监视端发送 过来的图形对象,并将图象显示在画布上,每隔一定时间(若干秒) ,重新读取 图象,更 新画布显示,从而实现连续获得对方屏幕变化。流程如图 5。 图 5 图形监视线程启动流程 3.2.53.2.5 远程控制流程远程控制流程 被监控端收到主控端的 UDP 命令:control:TCP Port,获得主控端开放的 TCP 端口号。成功连接主控端的 TCP 端口后,并从中读取事件对象,接着对事 件对象进行类型判断,如果是键盘事件,就对键盘事件重演;如果是鼠标事件, 就对鼠标事件重演。接着判定控制套接是否关闭,如果关闭,控制结束。否则 返回继续读取事件。流程如图 6。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 17 图 6 远程控制流程 3.2.63.2.6 文件上传流程文件上传流程 主控端开启任意 TCP 端口,向被监控端发送文件上传命令,命令格式为: fileup:TCP Port。如果命令超时,文件上传失败,否则,主控端读取文件数据 并发送,发送过程中如果 I/O 错误,文件上传失败,否则,进行文件是否读取 完判断,如果读取完,则上传成功,否则,继续读取文件数据。流程如图 7。 图 7 文 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 18 五、源程序清单五、源程序清单 4.14.1 系统主要模块设计系统主要模块设计 4.1.14.1.1 消息输入,命令处理结果显示模块消息输入,命令处理结果显示模块 主控端消息输入,显示模块的开发采用 JAVA 图形编程,利用模块化、通用 性强的特点,实现远程监控中用户控制界面的编写。 4.1.24.1.2 通信模块实现通信模块实现 1Socket 编程 数据通信模块中的数据通道建立采用 Socket 编程。Socket 支持 TCPIP 协议网络通信的基本操作;它屏蔽了网络底层的通信细节,使编程简单;它对 通信端点进行了抽象,提供发送和接收数据机制及打开、计算和关闭会话的能 力。本项目中,客户端和服务器代表运行在 Windows 操作平台下,采用 Java Socket 来编程实现命令和数据信息的传输。 主控端主要通信代码: ServerSocket server=NewRadomSocket.openNewPort(); /开启新端口 Socket socket=null; server.setSoTimeout(Parameter.TCP_TIME_OUT); /设置超时 socket=server.accept(); /开启 ObjectInputStream readin=new ObjectInputStream(socket.getInputStream(); /封装流,准备读取 一个对象 socket.close(); /关闭 socket,结束通信 被监控端主要通信代码: Socket socket=newnew Socket(serverip, serverport); ObjectOutputStream send=newnew ObjectOutputStream(socket.getOutputStream();/封装流封装流 send.writeObject(cc); /发送发送 send.close(); /关闭流关闭流 socket.close(); / /关闭套接 4.1.34.1.3 命令处理模块命令处理模块 命令处理模块的实现就是通过函数调用,调用各个命令处理类。在命令处 理模块中,被监控端执行以下操作:发送自己的状态信息给主控端;建立图象 传送;开启控制命令套接字;文件上传;文件下载;执行 DOS 命令,获取执行 结果和错误流。 4.24.2 连续获得被监控端机器屏幕变化功能实现连续获得被监控端机器屏幕变化功能实现 4.2.14.2.1 比较几种屏幕截取方法比较几种屏幕截取方法 在 Java 远程监控过程中,我们要截取软件运行 GUI 界面,并将其保存到一 个或一系列图像文件中。 目前,在 Windows 平台下,有关屏幕截取的工具软件有许多,比如: HyperCam 等,当然还可以直接利用 Windows 操作系统支持的屏幕拷贝 Print 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 19 Screen 键,将屏幕拷贝到剪贴板,在保存为图像文件。这些工具软件一定要屏 幕截取者,在操作过程中要“精力集中“并且“伺机捕获“所需要的软件运行界面。 事实上,有时候我们需要 Java 应用程序,自动对运行的 GUI 界面进行“拍照“, 比如:一台计算机要获取网络上另一台计算机正在运行的 GUI 界面,要看看对 方计算机上软件运行情况。这就需要在 Java 应用程序中,自动将运行的 GUI 界 面保存到一个图像文件中,然后通过网络传输到另一台计算机上。而上述 HyperCam 等工具软件无法与我们的 Java 应用融合为一体。因此,我们需要在 Java 应用程序中编写一个屏幕“照相机“。 4.2.24.2.2 Java“Java“屏幕照相机屏幕照相机”的编写原理的编写原理 “屏幕的截取“是比较接近操作系统底层的操作,在 Windows 平台下,该操 作似乎成了 VC、VB 等语言开发的专利。事实上,“屏幕的截取“在 Java 应用程 序中,及其简单。在 Java JDK1.5.0 中提供了一个“机器人“Robot 类。该类用 于产生与本地操作系统有关的底层输入、测试应用程序运行或自动控制应用程 序运行。Robot 类提供了一个方法:.createScreenCapture(),可以直接将 全屏幕或某个屏幕区域的像素拷贝到一个 BufferedImage 对象中,我们只需要 将该对象写入到一个图像文件之中,就完成了屏幕到图像的拷贝过程。 4.2.34.2.3 Java“Java“屏幕照相机屏幕照相机”的实现的实现 为了构造一个比较完善的 Java 屏幕“照相机“,我们构造了一个 ImageProvider JavaBean,其源代码和说明如下: /* 该 JavaBean 可以直接在其他 Java 应用程序中调用,实现屏幕的“拍照“ */ public class ImageProvider private Robot robot=null; /图象采集类 private Rectangle rect=null; /要复制的 屏幕区域 /* 构造函数,输入要采集的屏幕的 矩形信息*/ public ImageProvider() throws AWTException rect=new Rectangle(Toolkit.getDefaultToolkit().getScreenSize(); /要复制的屏幕区 域,这里为全屏 robot=new Robot(); /创建 Robot 对象 /* 复制全屏幕,返回 BufferedImage 对象 */ public BufferedImage CopyScreen() BufferedImage image=robot.createScreenCapture(rect); /截取屏幕,生成 BufferedImage 对象 return image; 4.2.44.2.4 远程屏幕监控的实现远程屏幕监控的实现 实现屏幕监控要完成被监控端发送屏幕截图和主控端接收图片的工作,该 功能的实现中构造了两个类:SendImage Thread 和 GetImageThread,类图分别 为图 8 和图 9。 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 20 图 8 SendImage Thread 类图 SendImage Thread JavaBean 代码和说明如下: /*被监控端将 Java 屏幕“照相机“采集到的图片压缩为 JPEG 文件,发送到主控端*/ public class SendImageThread extends Thread 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 (部分代码略去) public void run() int i=0; OutputStream out=null; JPEGImageEncoder encoder=null; /压缩为 JPEG try out = client.getOutputStream(); /获得 TCP 套接字流 encoder=JPEGCodec.createJPEGEncoder(out);/将流压缩为 JPEG 对象流 catch (IOException e1) e1.printStackTrace(); while(true) image=impv.CopyScreen(); /截取屏幕图象 encoder.encode(image) ; /向网络写入 JPEG 图形对象 图 9 GetImage Thread 类图 GetImage Thread JavaBean 代码和说明如下: /*主控端接收 JPEG 文件,并在画布上显示*/ public class GetImageThread extends Thread 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 21 。 。 。 。 。 。 。 。 。 。 (部分代码略去) public void run() BufferedImage image=null; JPEGImageDecoder de=null; InputStream in=null; try socket.setReceiveBufferSize(1024); /设置接收缓冲 socket.setSoTimeout(60000); /设置 TCP 过期时间 in=socket.getInputStream(); /获取套接字输入流 de=JPEGCodec.createJPEGDecoder(in); /将输入流封装为 JPEG 对象流 catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); int wrongtime=0; while(true) wrongtime+; if(wrongtime=200)break; image=de.decodeAsBufferedImage(); /对 JPEG 对象解码,还原为 BufferedImage 图形 对象 MainFrame.getInstance().ShowImage(image); /在控制窗口的画布上显示图象 4.2.54.2.5 屏幕监视功能测试屏幕监视功能测试 在系统实现过程中,成功完成了连续获得被监控端机器屏幕变化的功能, 下面为测试图片: 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 22 图 10 屏幕监视图片 本节详细介绍了远程屏幕监视的功能实现。对于功能需求中的其他功能, 这里就不逐一介绍了。对于远程控制功能,如果要实现该功能,首先需要主控 端向被监控端发送远程控制命令,被监控端收到命令后,首先返回给主控端一 个包含被监控端屏幕分辨率等的状态信息,主控端根据状态信息更新本机所存 的被控端状态,并调整画布大小,使其比例符合被监控端屏幕分辨率,这样才 可以精确定位。在画布中对事件进行监听,采集事件,封装成消息发送给被监 控端,然后在被监控端使用 Robot 对象控制鼠标对象的位置与动作,实现事件 重演。这样就能实现远程控制。 六、用户手册六、用户手册 完成人完成人: 刘燕三 1 1前言前言(Preface)(Preface) 编写本手册的目的:是用户能够系统的了解本软件的主要功能和程序的流程,使得用 户能够在使用之前能够对软件本身有一定的了解,使得用户在确定是否购买本软件的时候 起到参照的作用。这就是本手册的作用。 1.11.1 内容简介内容简介(Introduction)(Introduction) 在 B/S 模式下采用传统的三层体系结构来设计监控组态软件,在一般的三层体系结构 的基础上增加了控制层,用来实现 Web 服务器与被控对象的通信。该项目的委托单位、开 发单位和主管部门都是小组内部成员。由于小组成员少,并没有形成真正意义上的软件开 基于 CS 模式远程监控系统软件的实现 2012 年 6 月 6 日 23 发机构!值得说明的是该软件系统与其他系统没有直接关系。也就是说他是单独存在的。 。 1.21.2 基本概念基本概念(Basic(Basic Concept)Concept) 用户 PC 机:一台普普通通的电脑,具体点这里指能够上网的电脑。 普通摄像头:他不具有网络摄像头的功能,只是有某种接口的普通摄像头。 后台服务器:他对用户数据进行分析与处理。管理真个网站。 1.31.3 主要功能主要功能(Mostly(Mostly Function)Function) 系统分为两大模块,用户和管理员。在用户方面的主要功能有注册登录、查看视频、 管理视频、管理摄像、查看视频;而管理员方面的主要功能有用户管理、管理视频、注册 管理员、系统信息管理、网站维护等功能。 2 2功能功能(Function)(Function) 命令处理结果显示模块,通信模块。消息输入模块负责将用户界面的事件传送到通信 模块,通信模块将命令信息发送到被监控端;被监控端执行操作后返回的成功或失败信息 交由主控端命令处理结果显示模块根据信息的格式进行显示。 视频捕捉模块根据用户的客户端摄像头的数目,启动相应的摄像头,并进行视频的捕 捉。 视频存在模块记录各个时间段,用户的视频,用户并且可以对此进行管理。 摄像头管理模块,用户可以设置一些摄像头的打开与关闭。 2.12.1 使用流程使用流程(Use(Use Flow)Flow) 在主控端安装服务器程序,主控端首先启动其控制窗口类,初始化图形在主控端安装 服务器程序,主控端首先启动其控制窗口类,初始化图形显示,然后具体描述 (Description) 户输入被监控端的 IP 地址。接着主控端开启任意 TCP 端口,并向该 IP 配 置的 UDP 端口发送初始化命令(命令格式为 ordername:port) ,ordername 为命令名字, port 为主控端打开的 TCP 端口号。主控端对开启的 TCP 端口进行监听,如果超时,连接失 败。否则,主控端读取被监控端的状态对象,接着启动控制模块和屏幕监视模块。 2.32.3 进行此功能的业务介绍进行此功能的业务介绍(Operation(Operation Introduce)Introduce) 用户通过用户管理视屏和用户查看视屏等功能来实现基于 B/S 的远程管理程序的系统, 进而来实现软件的运用。 在 B/S 模式下采用传统的三层体系结构来设计监控组态软件,在一般的三层体系结构 的基础上增加了控制层,用来实现 Web 服务器与
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 电气安装


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!