基于Struts+Spring+Hibernate的天线监控系统设计与实现.docx_第1页
基于Struts+Spring+Hibernate的天线监控系统设计与实现.docx_第2页
基于Struts+Spring+Hibernate的天线监控系统设计与实现.docx_第3页
基于Struts+Spring+Hibernate的天线监控系统设计与实现.docx_第4页
基于Struts+Spring+Hibernate的天线监控系统设计与实现.docx_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

基于Struts+Spring+Hibernate的天线监控系统设计与实现作者姓名 指导教师姓名、职称 教授 申请学位类别 工学硕士 基于Struts+Spring+Hibernate的天线监控系统设计与实现作者姓名:李维超一级学科:机械工程二级学科:机械电子工程学位类别:工学硕士指导教师姓名、职称: 教授 学院:机电工程学院提交日期:2015年11月西安电子科技大学硕士学位论文学号 1304121953 密级 公开 学校代码 10701 分类号 TN82 ByLi WeichaoSupervisor: Chen Guangda ProfessorNovember 2015A thesis submitted toXIDIAN UNIVERSITYin partial fulfillment of the requirementsfor the degree of Masterin Electromechanical Science and TechnologyDesign and Implementation of the Antenna Monitoring System Based on the Framework of Struts + Spring + Hibernate西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。学位论文若有不实之处,本人承担一切法律责任。本人签名: 日 期: 西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权属于西安电子科技大学。学校有权保留送交论文的复印件,允许查阅、借阅论文;学校可以公布论文的全部或部分内容,允许采用影印、缩印或其它复制手段保存论文。同时本人保证,结合学位论文研究成果完成的论文、发明专利等成果,署名单位为西安电子科技大学。保密的学位论文在 年解密后适用本授权书。本人签名: 导师签名: 日 期: 日 期: 摘要摘要近些年,随着计算机Web技术的飞速发展,单纯在现场对设备进行控制和监视已然无法满足现代生产力的要求,实际中人们需要将分散在不同地方的不同设备统一进行管理,希望能共享信息资源和协同工作,而传统的监控技术无法满足这些需求,结合先进管理技术和网络技术的现代监控系统应运而生。它是一种基于网络的监控技术,能有效提高设备的系统工作能力和效率。对于网络信息最好的呈现方式就是Web网页了,它具有访问便捷,使用简单,维护成本低等特点。至此,Web应用程序设计成为其中的重中之重,而现在的软件系统功能需求复杂多变,而且开发周期越来越短,在保证软件质量的前提下,如何快速构建一个实用性强、稳定高、可扩展性好的Web应用成为我们不得不面临的问题。针对以上问题,研究分析市场上主流的Web开发技术、框架和MVC设计模式。Struts是实现MVC设计模式中一个非常经典的技术框架,它通过控制器将表现层和业务逻辑分离开来,提高了系统的灵活性和可扩展性。Hibernate是一个主流的对象/关系数据库映射框架,它有效解决了面向对象编程与关系型数据库之间配合使用很不协调的问题,它将开发人员从关系型数据库中解放出来。Spring框架是Java EE领域一款优秀的开源轻量级容器,它能将表现层、业务逻辑层、持久层等各层组件以松耦合的方式无缝整合起来统一管理,它自己负责协调各层解决方案,使系统层次结构更加清晰合理,方便合作开发和后期维护工作。结合系统实际功能需求,本文提出基于Struts + Spring + Hibernate集成框架的多层架构模型,并在此基础上设计实现了一个天线监控系统。首先,分析本文研究意义,和使用以上设计理念实现本软件系统的优势;其次,分析Java和Java Web开发技术,确定使用Java EE应用开发平台,并在研究MVC设计模式后,详细介绍Struts、Spring和Hibernate框架以及它们的优势和不足,提出基于此集成框架的主流设计模型;最后,论述天线监控平台的总体设计流程和思路,结合以上的设计要求和功能需求,将Struts、Spring和Hibernate框架整合成一个多层框架模型,并把这种MVC设计模式具体应用到本系统的设计开发中,Struts负责表现层的实现,Spring负责业务逻辑层和DAO层实现,Hibernate负责数据持久层实现,并详细论述了模型中各个层的具体技术细节实现,从而实现一个结构灵活、思路清晰、可扩展性良好的天线监控系统。最终的系统测试验证表明,本文基本实现了设计目标。关 键 词:B/S架构, MVC设计模式, Struts, Spring, Hibernate, 天线监控XIIIABSTRACTABSTRACTIn recent years, with the rapid development of computer Web technology, the fact that equipment is simply controlled and monitored at the scene has already unable to meet the requirements of modern productivity, People actually need to unified management of different equipment scattered in different places, hope to be able to share information resources and work together, but the traditional monitoring technology cant meet these requirements, modern monitoring system combined with advanced management techniques and network technology arises at this moment. It is a kind of monitoring technology based on network, which improves equipment work ability and efficiency. The best presentation for the network information is a Web page, it is convenient to access, simple to use, low cost to maintain. At this point, Web application design become one of the most important thing, but now the software system have complicated function demand, and a shorter development cycle, on the premise of guarantee the quality of software, how to quickly build a strong practicability, high stability and good extensibility Web applications becomes a problem we have to face.To solve above problems, mainstream Web development technology, framework on the market and MVC design pattern were studied and analyzed in this paper. Struts is one of the most classic frameworks that realized MVC design pattern, the presentation layer and business logic are separated from through controller, the flexibility and scalability of the system are effectively improved. Hibernate is a mainstream object/relational database mapping framework, it effectively solves the questions that the use of object-oriented programming and relational database are uncoordinated, it frees developers from the relational database. Spring Framework is an excellent open-source lightweight containers in Java EE field, it can put the components of each layer seamless integration in a loosely coupled way and unified management of them, it is responsible for the coordination of each layer solution to make the system hierarchy more clear and reasonable, to facilitate cooperation development and later maintenance work.In this paper, according to the actual system requirements, a multi-tier architecture model based on Struts + Spring + Hibernate integrated framework is proposed, and on this basis an antenna antenna monitoring system is designed and implemented. Firstly, the significance of the research is described in this paper, the advantages of using the above design idea to realize the software system are explained; Secondly, the Java and Java Web development technology are analyzed, it is determined to use Java EE application development platform, and through the analysis and research of the MVC design pattern, the Struts, Spring, Hibernate framework and their advantages and disadvantages are discussed in detail, a mainstream design model based on the integrated framework is put forward; Finally, the overall design process and ideas of the antenna antenna monitoring system is discussed, according to the above design and functional requirements, Struts, Spring and Hibernate are integrated into a multi-frame model, and this kind of MVC design patterns is specifically applied to the design and development of this system, Struts is responsible for the implementation of the presentation layer, Spring is responsible for the implementation of the business logic layer and the DAO, Hibernate is responsible for the implementation of the data persistence layer, the specific technical implementation details of each model layer are discussed in detail, and a flexible structure, clear thinking, good scalability antenna monitoring system is realized. The final system testing and validation show the design goal is basically realized in this paper.Keywords: B/S architecture, MVC design pattern, Struts, Spring, Hibernate, antenna monitoring插图索引插图索引图2.1 OSI和TCP /IP模型对比6图2.2 计算机网络通信示意图7图2.3 TCP/IP协议对应的七层模型8图2.4 TCP/IP网络通信示意图9图2.5 面向连接的典型socket调用11图2.6 面向非连接的socket调用12图2.7 C/S架构通信示意图13图2.8 B/S架构网络通信示意图14图2.9 Java EE 应用开发方式分类16图2.10 Java EE应用的分层架构17图2.11 MVC工作流程图18图2.12 Struts 1的工作流程图21图2.13 拦截器的工作原理23图2.14 Struts 2工作流程图24图3.1 天线监控系统功能模块图27图3.2 远程监控系统框图29图3.3 数据包解析截取流程图32图3.4 一种常见网页布局图37图4.1 Eclipse软件开发界面42图4.2 系统三大框架SSH的集成关系43图4.3 系统应用结构图45图4.4 系统实际需要完成的工作46图4.5 数据持久层与上层交互结构图47图4.6 轻量级Java EE中DAO组件的地位49图4.7 系统类与接口UML关系图51图4.8 系统主框架页面图60图5.1 系统登录界面65图5.2 系统首页66图5.3 系统首页布局图66图5.4 用户管理下拉菜单67图5.5 用户信息浏览67图5.6 用户信息添加68图5.7 用户权限信息详情68图5.8 天线交换操作界面69图5.9 软件测试的瀑布模型70图5.10 软件测试的V模型71图5.11 用户名合法+密码错误72图5.12 用户名非法+密码错误72图5.13 用户名合法+密码为空73图5.14 用户名为空+密码为空73表格索引表格索引表2.1 常见协议对应端口和用途11表3.1 通信协议格式31表3.2 系统数据库表33表3.3 用户信息表34表3.4 角色信息表35表3.5 通道信息表35表4.1 系统开发环境总结41表4.2 系统部署环境详情41表5.1 用户登录模块测试用例设计71表5.2 用户管理模块测试用例设计74表5.3 权限管理模块测试用例设计74表5.4 平台管理模块测试用例设计74缩略语对照表缩略语对照表缩略语 英文全称 中文对照B/S Browser/Server 浏览器/服务器模式C/S Client/Server 客户端/服务器MVC Model/View/Controller 业务逻辑层/表示层/控制层OSI Open System Interconnection 开放式系统互联TCP Transmission Control Protocol 传输控制协议UDP User Datagram Protocol 用户数据报协议DAO Data Access Object 数据访问对象IoC Inversion of Control 控制反转DI Dependency Injection 依赖注入AOP Aspect Oriented Programming 面向切面编程OOP Object Oriented Programming 面向对象编程POJO Plain Ordinary Java Object 简单的Java对象PO Persistant Object 持久对象UML Unified Modeling Language 统一建模语言目录目录摘要IABSTRACTIII插图索引V表格索引VII缩略语对照表IX目录XI第一章绪论11.1课题研究背景和意义11.2国内外研究现状21.2.1国外发展现状21.2.2国内发展现状21.3论文主要内容及章节安排3第二章系统相关技术概述52.1网络通信技术52.1.1网络分层模型52.1.2网络通信协议62.1.3网络通信的过程72.2Socket套接字102.2.1Socket套接字介绍102.2.2TCP/IP中Socket的类型102.2.3Socket工作原理和流程102.3软件体系架构122.3.1C/S架构通信模式概述122.3.2B/S架构通信模式概述132.4Java和Java EE技术152.4.1Java 产生的历史和现状152.4.2Java EE技术介绍152.4.3Java EE 应用开发分类162.4.4Java EE应用的分层162.5MVC设计模式172.5.1MVC的概念172.5.2MVC的工作流程182.5.3MVC的优点192.5.4MVC的不足192.6Struts框架介绍202.6.1Struts 1的介绍202.6.2Struts 2的产生原因222.6.3Struts 2的优点222.6.4Struts 2的工作原理242.7Spring框架介绍252.8Hibernate框架介绍25第三章系统总体设计273.1需求分析273.2设计目标283.3系统架构设计293.4Web服务器程序设计303.5通信数据包结构设计313.6数据库设计333.7页面布局设计36第四章系统总体实现414.1系统开发环境414.2系统部署环境414.3软件开发平台424.4SSH框架集成424.5系统的软件结构454.6Hibernate实现数据持久层464.6.1数据持久层概念464.6.2持久化实体类实现484.6.3持久化实体类映射484.7Spring实现DAO层494.7.1DAO组件概念494.7.2DAO组件抽象504.7.3DAO组件接口定义524.7.4DAO组件接口实现534.8Spring实现业务逻辑层544.8.1业务逻辑控制544.8.2事务管理554.9Struts 2实现控制表现层564.10Tiles 2实现页面布局58第五章系统展示和测试655.1系统展示655.2系统测试695.2.1软件测试的原则和方法695.2.2典型模块测试715.2.3测试结果分析74第六章总结与展望756.1总结756.2展望75参考文献77致谢81作者简介83第一章 绪论第一章 绪论1.1 课题研究背景和意义近些年,随着信息技术和互联网的迅猛发展,一种新兴的自动化监控技术网络远程监控技术应运而生。当今的网络监控技术已是集通信、计算机网络、智能传感器、自动控制、机械设计和制造于一体的跨学科跨领域的综合技术,它的应用领域迅速覆盖了国防、企业、学校、工厂等场景,更有甚者慢慢向智能家居、可穿戴设备等很多新兴领域渗透1 陆璐, 刘发贵. 基于Web的远程监控系统M. 北京: 清华大学出版社, 2008.。如今,对现场设备的控制和操作已经不再局限于小范围内,对实时监控获得的信息也不局限于现场分析2 贾二东基于Internet和Web技术的远程控制系统研究与实现D. 西安: 长安大学, 2012.。在实际中,一些现场设备分布广泛,而且获取的信息需要远程传输,这时传统的监控技术就不能满足现在的需求了,而远程监控技术就是为解决这个问题而诞生的3 林光云. 基于Web的倒立摆远程监控系统研究D. 浙江: 浙江工业大学. 2004.。网络监控技术通过网络将需要监控的设备连接在一起,这样分散在不同地方的不同设备(比如传感器、采集系统、操作设备等),就可以共享信息协同工作。如今的网络监控技术结合了先进的管理技术和网络技术,不仅提高了系统的运行效率,而且有效的节省了人力、财力和物力4 任作新. 网络化监督与控制系统M. 北京: 国防工业出版社, 2007.。在如今开放互连的网络环境下,我们要充分利用这种优势,将分散的设备资源联系到一起,进行统一管理和调度,通过整合可以有效提高设备的利用率和生产率,提升产品竞争力。这种网络监控技术在使用很少的人力资源情况下,可以同时监控多台多地设备,并能在某些情况下,可以达到无人坚守,就能记录和控制设备状态,并且获得工人手工无法达到的精确度和速度,前者对于高精度产品生产至关重要,而后者对于设备发生突发故障采取应急措施尤为重要5 牛温佳, 周旭, 杨兴华等. 移动网络视频监控系统M. 北京: 电子工业出版社, 2013.。据BBC报道,美国电商巨头亚马逊宣布将于2016采用无人机进行送货,它能实时更新行进路线,自动追踪收货人位置,提取收货人信息,并能互相通信交换天气、交通等信息;而随后不久,全球顶级科技公司搜索巨擘谷歌拟于2017年推出无人机送货服务,两大科技巨头在无人机领域的角力拉开了序幕。而这些新兴技术的出现,背后无不有网络监控技术的身影,网络监控技术成为了以后各行各业的发展趋势。而对于网络监控技术,网络信息的最好展现方式,便是Web网页,它满足了远程监控需要的一切特点,并且访问便捷,使用简单,维护成本低。所以在网络监控技术中软件技术占据举足轻重的地位,它是监控者与被监控对象中间的桥梁,它是用户评判网络监控体验的最直接体现。而软件设计完全是基于项目需求和当前技术水平的,前者的改变将直接带来软件设计乃至实现的调整6 Shari Lawrence Pfleeger, Joanne M. Atlee. Software engineering: theory and practiceM. 4th ed. Prentice Hall, 2009.。如何在满足用户需求的情况下,保证开发效率和软件质量的平衡成为了关注的焦点,此外我们还要考虑到软件后期的可扩展性能和是否易于维护等问题。良好的软件设计架构成为所有开发者孜孜以求的目标,市场的需求推动了技术的发展,技术的发展引领着市场需求的变化,各种优秀的技术开发框架如雨后春笋般诞生了,日益成熟的开发框架尽量在满足上面这种需求,许多大大小小的软件项目开始采用满足自身需求的技术开发框架7 孙玉山, 刘旭东. 软件设计模式与体系结构M. 北京: 高等教育出版社, 2013.。基于B/S架构的Web应用程序也引入了一种优秀的设计模式MVC,其优点吸引了大批软件设计人员,它的设计理念得到了越来越多人的认可和效仿8 牛德雄, 陈华政等 基于MVC的JSP软件开发案例教程M. 北京: 清华大学出版社, 2014.。1.2 国内外研究现状借助于网络技术的工业监控系统,在最近几年才慢慢变成人们关注的焦点,这主要得益于人们看到了它无以伦比的技术优势,它兼具传统控制系统的可靠性和稳定性,也具备网络产业的开放性和灵活性,这些带给人们巨大的想象空间。1.2.1 国外发展现状随着Internet的飞速普及,催生出各种各样的Web相关技术,同时人们也尝试着在各个领域中去应用和实践。这种尝试最开始出现在医学研究领域9 陈少波. 基于Internet的网络远程监控系统D. 湖南: 中南大学, 2007.,在上世纪九十年代,一种将医生诊断、会诊,以及病人信息管理集中管理的系统,在美国率先出现了,这种方式大大简化了管理流程,也提高了数据的可用性10 Z.Doulgeri, T.Matiakis. A Web telerobotic system to teach industrial robot path planning and controlJ. IEEE Transaction on Education, 2006, 9(2): 263-270.。而在其他领域中,远程监控技术出现的更晚了,在医疗领域的应用已经取得显著成果时,工业控制领域才只是刚刚处于起步阶段。1993年在Johnson航天中心,德州的四所大学和美国国家航空航天局合作,借助Internet顺利地完成在异地控制和监视两个不同地域的机器人,并进行试验数据和性能分析11 彭刚. 基于网络的遥操作机器人系统关键技术研究D. 湖北: 华中科技大学, 2002.。另外,因特网模块越来越多的出现在了许多国际知名大公司的工控产品中,如:悉亚特的CITECT、西门子的WINCC等陆陆续续发布了支持网络的产品,方便其远程控制使用12 杨瑞宇. 基于Web的远程监控系统研究及软件实现D. 天津: 天津理工大学, 2008.。大名鼎鼎的LabView也新增了Internet模块,方便用户借助网络远程发送指令和接收数据信息。1.2.2 国内发展现状国内在很多新兴技术方面往往起步比国外更晚,在许多高科技产业方面还处于起步阶段,和发达国家有着不小的差距13 赵金峰. 基于GSM网络的远程就爱你看终端的设计与实现D. 武汉理工大学, 2007.。我们在网络远程监控技术领域的发展依然处于技术方案设计、实验和高校试点研究阶段,对于工程实际应用方面经验积累仍然不够深厚,我们在通信、计算机网络、智能传感器、自动控制、机械设计和制造等领域还需要继续努力,想要把这种技术推广到市场各个领域还要继续奋斗。目前,主要还是国家电力、能源、国防和国内部分高校等在研究和应用,例如:贾志平等通过结合网络技术和传统电力控制监测技术实现远程电力监控系统14 贾智平, 李明. 基于Internet的电力监控组态软件的关键技术J. 电力系统自动化, 2002,26(16): 62-65.,吕浩杰、谢志明等采用ASP、ADO等Web相关技术实现基于B/S多层架构的远程油田实时监控系统等15 吕浩杰, 谢志明, 侯学军. 基于B/S模式的油田监控系统研究J. 制造业自动化, 2005, 27(12): 540-542.。然而,远程监控系统不能只局限于高校研究和某些领域中16 廖丽芳. 基于GPRS的特种设备远程监控系统的研究与实现D. 湖北: 武汉邮电科学研究院, 2007.,我们需要深入探索和研究,从理论渐渐走向实践,在商业化的应用中才能不断促进该技术的成熟和完善,让技术改变生活,造福所有人。1.3 论文主要内容及章节安排本论文根据实际项目需求,设计并实现一个天线监控系统,论文的章节安排如下:第一章,主要介绍了网络化远程监控技术的研究背景和研究意义,以及使用MVC框架实现软件系统的优势所在,最后分析本文研究的课题在当前国内外发展的现状。第二章,讲述实现天线远程监控采用的相关技术,比如通信技术选择,平台体系架构选择,网络通信协议选择,Java Web技术的介绍,以及MVC设计模式和SSH实现框架相关技术的介绍。第三章,讲述天线监控平台的总体设计流程和思路,比如用户需求分析、系统设计目标、系统架构设计、软件功能模块划分,以及数据库设计等。第四章,确定本系统软硬件环境,以及使用的软件开发平台和编程语言,并分析采用这些设计的原因,讲述天线监控平台的具体实现过程,比如配置SSH开发环境,SSH实现系统软件结构中的各层的细节,以及如何使用Tiles框架实现页面布局。第五章,展示系统设计结果并进行测试分析。第六章,总结和展望。89第二章 系统相关技术概述第二章 系统相关技术概述2.1 网络通信技术计算机网络就像一张无形的大网一样,将人类生活中越来越多的功能独立、位置分散的计算机连接到了一起,拉近了人与物、物与物之间的距离,实现了信息资源的更高效率的共享。2.1.1 网络分层模型OSI(Open System Interconnection,开放式系统互联)是由ISO(国际标准化组织)制定的网络参考模型,它把网络通信的工作划分为物理层(Physical Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)和应用层(Application Layer)这七个层17 王群主. 计算机网络技术M. 北京: 清华大学出版社,2012.。它是学习网络通信技术中必不可少的一环,它将网络划分为七层,每一层都有对应的功能服务,以及向上提供的接口。它没有规定每一层中的具体协议,只是从逻辑上对每一层进行定义,并规范它们各层之间的接口18 Shen Jianqiao,Nie HuabeiIntroduction to Software ArchitectureJComputer Development and Application,2008(21)49-52.。这种清晰的分层方式,极大地方便了我们的学习和研究。TCP/IP(传输控制协议/因特网互联协议),是我们熟知的连接Internet的关键协议,但它其实并不是一个协议的名称,而是许多协议的一个集合,它们共同组成一个TCP/IP协议族(TCP/IP Protocol Suite)19 武奇生. 网络与TCP/IP协议M. 西安: 西安电子科技大学出版社, 2010.。TCP/IP参考模型大致可以分为四个层面,网络接口层(Link Layer)、网络互联层(Internet Layer)、传输层(Transport Layer)、应用层(Application Layer)20 谢希仁. 计算机网络M. 北京: 电子工业出版社, 2013.。图2.1 OSI和TCP /IP模型对比OSI模型是设计先于实现,过于庞大和复杂,许多设计过于理想,不太方便计算机软件实现。而TCP/IP模型是技术人员在Unix系统下,进行Internet网络实践研究时开发实现的,非常适合在计算领域推广和使用。因此,在现实网络世界里,TCP/IP参考模型赢得了更多企业、生产厂家以及普通开发者的青睐。现如今的网络世界,TCP/IP协议几乎无所不在,我们目前所熟知的微软操作系统、Linux、Unix都内部默认安装包含它的实现,目前不管是广域网、城域网还是局域网都离不开它的存在,它允许开发人员只需关注上层的抽象协议,而不需要花费精力去关心硬件底层设备的配置和差异性。2.1.2 网络通信协议TCP和UDP协议都是TCP/IP协议族中的协议,它俩都工作在四层模型中的传输层,但两者从原理到功能都还是具有天壤之别的21 Joe Casad. TCP/IP入门经典著M. 北京: 人民邮电出版社, 2012.。TCP协议是一种需要通过“三次握手”建立连接才能通信的可靠协议,而断开连接也需要“四次挥手”才能通信断开。并且它能保证在网络正常的情况下发送数据包准确到达接收端而不丢包,同时保证数据的发送顺序在到达接收端之后不会错乱。它对于数据传输的种种保护带来了性能上的损失,并且相对UDP协议会占用更多的计算机系统和网络宽带资源。UDP协议是一种在通信前不需要双方建立连接的协议,由于不需要建立连接,它无法保证数据能够确定到达接收端,但是也带来一些好处,它不需要维护连接和收发状态,这让其发送接收数据的速度明显快于TCP协议,反而占用更少的计算机系统和网络宽带资源22 晋玉星. 计算机网络技术M. 北京: 科学出版社,2012.。在基于网络的远程监控系统中,我们控制的对象是现场设备,我们看中操作的实时性,但是我们更看中操作的可靠性和稳定性,在如今网络宽带能力越来越强大的今天,网速问题的影响越来越小,因此在这里,我们更青睐于使用TCP作为系统的通信协议23 申普兵. 计算机网络与通信M. 北京: 人民邮电出版社,2012.。2.1.3 网络通信的过程多台通过网络设备相连的计算机设备之间进行数据交互和信息共享的过程就是网络通信的过程,其中也伴随着数据的封装和解析的过程,它们组成的系统就是计算机网络。我们通过OSI网络参考模型解释两个计算机之间的网络通信过程,它的具体过程如下图。图2.2 计算机网络通信示意图设备A上的某个应用程序使用应用层的协议(应用层协议http、ftp、smtp、pop3、telnet、dns等)作为接口,使得应用程序可以使用网络服务接入互联网;然后,数据在表示层被转换、加密和压缩,在会话层建立、维护和管理应用程序之间的会话;随后,传输层将给数据提供可靠的进程到进程的报文传输和差错恢复,网络层将数据分组从源端传送到目的端,提供网络互联,数据链路层负责网络寻址、错误排查和修正,最终保证将数据帧可靠的传送,而物理层,从名字就可以看到,它是负责将数据比特流转化成特定电气参数通过物理介质(如同轴电缆、双绞线、网线等设备)发送到特定地址24 王建珍. 计算机网络应用基础(第3版). 北京: 人民邮电出版社, 2013.。接收端接收数据的过程与上面类似,只是所有环节从最底层的物理层到最顶层的应用层倒着走了一遍,这里我们就不在详细说明了。本文中的天线监控系统我们采用的是TCP/IP网络参考模型,相对于OSI七层模型的数据传输过程更加简洁一些,协议族中的常见协议在七层模型中对应的位置具体如下图所示。图2.3 TCP/IP协议对应的七层模型在TCP/IP协议族中的将网络协议划分到了四个单独的层,其中TCP和IP协议是这个体系的关键所在,起到承上启下的作用。应用层一般都是面向用户的服务,我们大多数时候都是和应用层的协议打交道,比如发送电子邮件使用的SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),上传下载文件使用FTP(File Transmision Protocol,文件传输协议),提供用户远程登录服务的Telnet等等。在传输层主要是我们耳熟能详的TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),它们也是Java语言唯一支持的传输层的协议。网络层包括IP(Internet Protocol,网际协议,又称互联网协议)、ICMP(Internet Control Message Protocol,控制报文协议)、ARP(Address Resolution Protocol,地址转换协议)、RARP(Reverse ARP,反向地址转换协议),其中的IP协议是网络层的核心,它定义了寻址方法和数据包的封装结构,是一种无需提前建立通信的“不可靠的”数据传输机制。在TCP/IP网络参考模型中,网络通信可以相对简化成如下的通信流程。远程用户通过网络浏览器向Web服务器发送请求,这个操作生成的请求数据将通过应用层的HTTP协议来处理。浏览器通过DNS获取到Web服务器的真实IP地址,将这些数据转交给了TCP协议进行数据封装,然后将请求传递给本地的网际层,它将数据再分成IP数据报,并传递到主机网络层,它将数字数据编码为合适特定物理介质的模拟信号以便通过线缆传输数据。接收端服务器的主机网络层再将模拟信号解码为数字信号,将生成的IP数据报传递到网际层,以此类推到达应用层的Web服务器,其读取信息后响应这个请求,再通过服务器系统的各个分层发回响应,再通过Internet传输发回给Web客户端的用户浏览器25 Elliotte Rusty Harold. Java Network Programming. 4th ed. OReilly Media, 2013.。图2.4 TCP/IP网络通信示意图2.2 Socket套接字2.2.1 Socket套接字介绍Socket套接字就是将唯一能标识网络中不同计算机中不同进程的ip地址、协议和端口这三个参数封装进一个接口。它是应用程序所在的进程和网络协议之间的接口,它为计算机使用同一个TCP协议端口为多个应用程序提供服务提供了解决方案,能有效地区分应用程序进程和连接。在Java中Socket编程主要指基于TCP/IP协议的网络编程,它允许程序员将网络连接看做一种可以读/写的字节流,它很好的掩藏了网络底层的细节,如包分解、包重传、网络地址解析、错误检查等。Socket主要是由协议、IP地址、端口号这三部分组成,通过设置这三个参数,应用程序就可以在通信过程中,互相区分开来。2.2.2 TCP/IP中Socket的类型TCP/IP中有流式套接字(Stream Socket)、数据包套接字(Datagram Socket)和原始套接字(Raw Socket)三种Socket套接字类型,下边分别做一简单介绍。流式套接字是一种面向连接的、可靠的数据传输服务,可以为发送数据排序标号,保证接收端数据的顺序,并且是一种全双工的连接,双方都可以同时接收和发送数据,从以上特点我们可以看出TCP协议是通过它来实现的一个典型例子。数据包套接字是一种无连接的、数据收发无序的并不保证数据准确到达的数据传输服务,UDP协议是通过它来实现的一个典型例子。原始套接字允许绕过传输层协议直接访问网际层,ICMP协议就是通过它来实现的一个典型例子,

温馨提示

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

评论

0/150

提交评论