




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于WebGIS物流信息系统设计与实现作者姓名: 张三一指引教师: 李四二专家单位名称: 信息科学与工程学院专业名称: 计算机科学与技术东北大学6月DesignandImplementationofWebGIS-BasedLogisticsInformationSystembyZHANGSanyiSupervisor:ProfessorLISierNortheasternUniversityJune毕业设计(论文)任务书毕业设计(论文)题目:基于WebGIS物流信息系统设计与实现设计(论文)基本内容:(1)理解项目开发背景,分析项目进度管理系统功能需求,研究其设计及实现技术。(2)设计基于WebGIS物流信息系统总体构造,实现物流公司中业务流程所有必须功能。作为物流公司管理软件,系统必须可以实现诸如发送货品、运送货品、装载货品、卸载货品、车辆线路编辑等功能。(3)总结归纳所完毕任务,弥补局限性,以最短时间用至少投入实现项目开发。毕业设计(论文)专项某些:题目:设计或论文专项基本内容:学生接受毕业设计(论文)题目日期第1周指引教师签字:3月5日基于WebGIS物流信息系统设计与实现摘要随着经济发展和通信技术提高,物流作为一种先进组织方式和管理技术,被广泛以为是公司在减少消耗和提高劳动生产率以外重要利润源泉,在国民经济和社会发展中发挥着重要作用。本文在物流公司正常运营中,基于GIS信息系统已经成为不可或缺管理工具。在对WebGIS技术和物流公司需求进行分析基本上,结合不同公司业务流程详细特点,设计了一套扩展性较强基于WebGIS物流信息系统。系统重要功能是将公司管理人员与运送车辆之间通过服务器连接起来,实现物流系统监控和管理。系统采用B/S架构,服务器端通过网络与车辆终端通信,向车辆发送控制信息并获取车辆当前状态。同步它还和Web客户端进行交互,向客户端提供地图服务,并执行Web客户端祈求。Web客户端采用Ajax技术与服务器端进行通信,通过动态地图监控车辆。它还实现了发送货品、编辑线路、发送消息等功能。考虑到可扩展性,系统重点实现了服务器端进行消息中转消息队列,建立了Web客户端到车辆终端之间消息通路,并可以随时更新消息队列中消息解决方式。本系统实现了物流系统重要功能,极大提高了公司管理水平。本文一方面进行了系统需求获取和业务分析。然后,采用分层办法对系统进行设计,论述了消息队列框架详细设计与实现,并论述了服务器端和客户端功能模块设计和实现。并通过对系统测试,对其功能和性能进行评估。最后,进行了总结,简介了系统特点和局限性之处,指出了下一步工作方向。核心词:物流;WebGIS;消息队列DesignandImplementationofWebGIS-BasedLogisticsInformationSystemAbstractWithdevelopmentofeconomyandimprovementofcommunicationtechnology,asanadvancedmodeoforganizationandmanagementskill,logisticsiswidelyconsideredtobethemajorsourceofprofitsintheenterprisebesidesreducingconsumptionandraisinglaborproductivity.Itplaysanimportantroleinthenationaleconomyandsocialdevelopment.TheGIS-basedinformationsystemhasbecomeanindispensablemanagementtoolintheregularbusinessoflogisticsenterprise.BasedontheanalysisoftheWebGIStechnologyandrequirementsoflogisticsenterprise,aWebGIS-basedlogisticsinformationsystemwithhighexpansibilityisdesigned,accordingtospecificbusinessprocessesofvariouslogisticsenterprises.Themajorfunctionofthesystemistomakemanagercommunicatedwithvehiclesviatheserver,andtorealizemonitoringandmanagementoflogisticssystem.TheB/Sarchitectureisadoptedinthesystem.Theservercommunicateswithvehiclesthroughnetwork,sendingthemcontroldataandreceivingstatusdatafromthem.Atthesametime,serverinteractswithWebclients,providingwebmapserviceandexecutingclientrequests.WebclientcommunicateswithserverwithAjaxtechnology,monitoringvehiclesbywatchingdynamicmaps.Italsoimplementsfunctionssuchassendingcargo,editingroute,sendingmessage,etc.Aimingathighexpansibilityofthesystem,messagequeuekeptinserverisseriouslyimplemented.ItmeansthatamessagechannelbetweentheWebclientandvehiclesisestablished,andthehandlingmethodsofthemessagesinmessagequeuecanbeupdatedatanytime.Thesystemmeetsprimaryrequirementsandenhancesmanagementqualityofcustomer.Firstly,inthisthesistherequirementelicitationandthebusinessanalysisarecompleted.Thensystemisdesignedintomulti-layerarchitecture.Theparticulardesignandimplementationofmessagequeueframeworkaredescribed.Designandimplementationofthefunctionalmodulesofserverandclientarepresented.Functionandcapabilityofthesystemareevaluatedthroughtest.Atlast,systemtraitsanddeficienciesaresummarized,andnexttasksarepointedout.Keywords:Logistics;WebGIS;MessageQueue目录毕业设计(论文)任务书 I摘要 IIAbstract III第1章引言 51.1课题研究背景和来源 51.2课题研究成果应用实际意义 51.3本文内容及重要工作 5第2章有关技术简介 52.1GIS技术 52.2WebGIS技术 52.2.1WebGIS简介 52.2.2WebGIS合同简介 52.2.3WebGIS开源平台 52.3Ajax架构 52.4Spring架构 52.5本章小结 5第3章需求分析 53.1系统实现目的 53.2系统运营环境 53.3系统开发环境 53.4功能性需求描述 53.4.1发送货品 53.4.2查询货品状态 53.4.3提货 53.4.4查询系统信息 53.4.5配备车辆线路 53.4.6实时显示系统信息 53.4.7传递消息 53.4.8发送实时状态信息 53.4.9车辆完毕运送段 53.4.10操作货品 53.4.11补充需求 53.5非功能性需求描述 53.6系统术语表 53.7本章小结 5第4章系统设计 54.1系统设计原则 54.2系统总体设计 54.3数据访问层设计 54.4服务层设计 54.5Web服务层设计 54.6消息解决某些设计 54.6.1消息队列设计 54.6.2消息解决详细功能设计 54.6.3Socket控制层详细设计 54.7系统业务功能设计 54.7.1货品发送功能设计 54.7.2线路编辑功能设计 54.7.3货品运送功能设计 54.7.4权限操作功能设计 54.8数据库设计 54.8.1发货操作模块表设计 54.8.2线路编辑模块表设计 54.8.3货品运送模块表设计 54.8.4权限控制模块表设计 54.8.5消息解决模块表设计 54.9本章小结 5第5章系统实现 55.1地图数据传播与显示 55.2客户端设计与实现 55.2.1JavaScript语言面向对象编程 55.2.2客户端祈求合同和祈求流程实现 55.2.3客户端框架实现 55.3系统安全控制实现 55.4货品解决模块实现 55.5消息解决模块实现 55.6本章小结 5第6章系统测试 56.1单元测试 56.2集成测试 56.3系统测试 56.4本章小结 5第7章结论 57.1本文工作总结 57.2进一步展望 5参照文献 5致谢 5引言课题研究背景和来源随着当代科学技术迅猛发展,全球经济一体化趋势加强,各国都面临着前所未有机遇和挑战。物流作为一种先进组织方式和管理技术,被广泛以为是公司在减少物资消耗,提高劳动生产率以外重要利润源泉,在国民经济和社会发展中发挥着重要作用。物流业产生于20世纪60年代,发展到90年代,是以满足客户规定为目,对货品、服务和有关信息在产出地和销售之间实现高效率和低成本正向和逆向流动和存储所进行筹划执行和控制过程。由于当代生产技术发展,产品生命周期越来越短,在社会生产开始由单一品种大批量生产向小批量、多品种定制化生产同步,物流业开始由大批量、长周期物流向小批量、多频次方向发展,使物流控制越来越复杂。随着科学技术特别是信息技术发展,信息化物流使公司可以在全球范畴内进行超时空交易,又增进了物流业进一步发展与繁华。在整个物流决策中,运送成本占到物流总成本35%~50%左右。因此,物流信息化重点在于物流运送系统信息化[1]。物流信息化技术重要涉及:全球定位系统(GPS)、地理信息系统(GeographicInformationSystem,GIS)、射频(RF)、条形码和电子数据互换技术等。其中GIS技术起到一种非常重要作用。GIS是一种以采集、贮存、管理、分析和描述整个或某些地球表面与空间地理分布关于数据空间信息系统。在当代信息社会里,GIS作为一种集地理空间特性和各种记录信息为一体特殊信息系统,是信息高速公路上节点和基本设施,受到全社会广泛关注,成为当前国内热门研究课题。GPRS,GPS技术发展又为GIS数据实时获取和实时传播奠定了坚实基本。基于GIS系统已经开始在各个领域浮现。特别以交通运送、物流、森林数据分布等与地理数据关系最为紧密领域为甚。在物流系统中,GIS技术可以在模型参照数据、车辆监控和实时调度、监控车辆位置与状态、车辆导航以及选取最佳途径等大量涉及空间数据和属性数据世纪应用中,提供有效管理和科学决策根据[2]。对于基于C/S架构GIS系统来说,服务器负责收集实时地理数据,客户端负责访问。这种架构虽然可以充分运用客户端计算机计算能力,减少服务器所承受到压力。但是弊端也是很明显,客户端过度臃肿,数据完整性不可控,不能适应复杂网络环境,安全性得不到保障,功能可扩展性低,代码维护困难重重和服务器资源挥霍等。无法胜任分布式应用系统复杂性,客户端软件系统只能运营在单一操作系统平台上,采用相似网络传播合同等局限都大大影响了软件系统可布置环境,这样就增长了公司在硬件及网络资源重复性投入成本。可扩展性受到限制,软件系统被安装在客户端,一旦软件发现Bug,软件需要升级,对软件修改将是公司一笔不小开支。对于GIS系统来说,数据源也许分布在各种不同地点,客户端也分布在不同地点,那么整个系统在物理架构上来说就是一种分布式系统。对于这种系统来说,要提高系统运营效率、适应复杂网络环境、减少维护费用,那么B/S架构相对于C/S架构有更大潜力。随着Web技术发展,Web技术与GIS相结合产生WebGIS成为GIS技术发展必然趋势。相对于老式C/S架构GIS系统。WebGIS系统采用B/S架构。布置和升级时只需要对服务器进行操作,节约了公司资源。当前Web软件架构发展,使得B/S架构已经向多层架构方向发展,普通由客户端、Web服务层、应用服务层、数据层等构成。客户端即浏览器,负责顾客输入和成果显示;Web服务层提供JSP或者Servlet等开发、布置和运营,为客户端准备前端显示页面代码;应用服务层实现公司业务逻辑和业务实体,并提供开发、布置和运营环境,同步该层也提供对分布式网络环境支持,使得Web软件架构具备跨操作系统平台和跨网络传播合同等优势;数据层封装了数据库底层操作,涉及添加、查询、修改和删除等。B/S可分布式架构可以明显减轻各个服务器负载,提高系统整体运营速度。通过B/S架构提供WebService服务,客户端可以运用JavaScript代码控制对各个WebService访问顺序,从而轻松地修改业务操作实现流程,这对于业务流程比较相似物流公司来说,意味着开发出来系统通过简朴配备可以以便地运用到其她公司运营管理中,大大提高了可系统扩展性和复用性。综上所述,需要一套基于WebGIS物流信息系统来优化物流系统流程,提高公司运营效率,减少运营成本。课题研究成果应用实际意义本文研究重要目是实现一种Web客户端到GIS数据源之间进行消息传播通用框架,并在此基本上实现物流系统需求功能。由于各个公司有各自业务流程和数据表达办法,平时开发过程中需要对不同公司实现不同数据构造和业务流程。而在系统开发时候往往针对一种公司进行数据定义和建模开发。这种开发方式偏重于应用,没有过多考虑系统复用。如果需求有了变化,往往要大面积地修改代码,甚至是重新开发。这样就挥霍了大量人力物力。要达到减少开发成本目,最直接办法就是复用此前系统。但是公司之间业务流程和数据表达方式差别提高了系统复用门槛,减少了不同公司之间软件复用也许性。但是对于物流系统来说,它们解决货品业务流程过程中数据流向和解决解决方式是相似,只是存在不多差别。而在基于WebGIS系统中,由于GIS数据源和Web客户端抽象化,使得它们与服务器之间数据流动更加清晰。最后可以整顿出一份关于Web客户端和服务器进行交互通用需求和一份物流系统货品解决流程通用需求。在软件复用中,如果一系列系统共享特定领域中明确需求,那么这一系列系统构成软件产品线。它们之间可以共享架构,从而缩短类似系统开发时间,提高开发效率[3]。因此本系统可以侧重架构设计,从而产生一种可以复用,支持GIS数据源、服务器、Web客户端之间进行数据流动和数据解决架构。架构拟定了系统整体构造、层次划分、不同某些之间协作关系后来,所形成详细实现构成了可复用框架。框架作用,在于拟定公司各种业务详细技术实现,并规定它们在系统中组织方式和协作方式,从而构成完整公司应用解决方案,迅速完毕系统开发[4]。在框架基本上,实现物流系统解决货品流程通用需求,提供尽量小WebService接口。这样,Web客户端可以运用Ajax技术和服务器交互,将WebService提供服务连接起来,构成详细业务流程。本课题研究系统,就是要通过Web服务器在公司不同GIS数据源和Web客户单管理人员之间搭建一种实时数据传播和解决架构,产生合用于WebGIS系统通用模板。并在此基本上添加数据构造和业务解决流程,实现物流公司中货品输入、线路定义、车辆监控、实时消息传播等功能。考虑到物流公司需求之间相似性,本系统构建框架可以通过简朴配备并添加恰当数据构造,直接应用到其她公司中。本文内容及重要工作本文在分析简介了WebGIS技术,WMS/WMF合同、WebGIS有关组件基本上,基于物流系统需求特点,简介了GIS数据转发传播和解决架构,并且实现了物流系统基本功能。各章内容组织如下:第2章简介了GIS技术、WebGIS技术合同和开源平台、Ajax技术以及Spring框架技术;第3章分析了系统开发环境,运用用例建模分析系统功能需求,并且依照实际状况补充了某些需求,提出了非功能性需求,并描述了系统术语表;第4章对系统进行总体设计,并对服务层、Web服务层、数据访问层、消息解决某些、socket控制层等进行详细设计,对系统中货品运送、线路编辑、权限控制、发送货品等功能进行了详细设计,对简介了系统中数据库表;第5章重要简介了JavaScript语言面向对象和事件驱动实现,展示了Web客户端依照有关合同与服务器交互流程,并简介了客户端框架实现以及定期更新机制实现。最后是服务器端详细实现,展示了安全控制机制下顾客访问服务器流程、货品从发货到最后提货整个解决流程,重点简介了消息在管理人员、服务器端、车辆终端之间进行交互传播和解决流程;第6章简介了运用工具进行测试状况,并对浮现错误进行了分析解决;第7章结论某些是对整个论文工作总结以及下一步工作展望,指出咱们工作中有待改进地方,同步指明了下一步研究方向。有关技术简介GIS技术GIS是以采集、存储、管理、分析、描述和应用整个或某些地球表面(涉及大气层在内)与空间和地理分布关于数据计算机系统。它由硬件、软件、数据和顾客有机结合而构成。GIS要实现五个基本功能为:数据输入、数据编辑、数据存储与管理、空间查询与空间分析以及图形输出与交互操作。GIS始于60年代加拿大与美国,尔后各国相继投入了大量研究工作,自80年代末以来,随着计算机技术飞速发展,地理信息解决、分析手段日趋先进,GIS技术日臻成熟,已广泛地应用于环境、资源、石油、电力、土地、交通、公安、急救、航空、市政治理、都市规划、经济征询、劫难损失猜测、投资评价、政府治理和军事等与地理坐标有关几乎所有领域。GIS技术依托重要工具和平台是计算机及其有关设备。进入90年代以来,随着计算机技术发展,计算机微解决器解决速度愈来愈快,性能价格比更高;其存储器能实现将大型文献映射至内存能力,并且能存储海量数据。此外,随着多媒体技术、空间技术、虚拟实景、数字测绘技术、数据仓库技术、计算机图形技术、三维图形芯片、大容量光盘技术及宽频光纤通讯技术突破性进展,消除数据通讯瓶颈卫星互联网建立,以及可以提供接近实时对地观测图像高辨别、高光谱、短周期遥感卫星大量发射,这些为GIS技术广泛、进一步应用展示了更加光明前景。同步,也使当前GIS已不能满足信息时代、数字时代规定,当前GIS总体上呈现网络化、开放性、虚拟现实、集成化、空间多维性等发展趋势。WebGIS技术WebGIS简介WebGIS是GIS技术与WWW技术结合,是在Internet网络环境下一种传播、存储、解决、分析和显示与应用地理信息计算机系统。称之为WebGIS因素是大多数客户端应用采用了WWW合同。在Internet支持下,依照TCP/IP和HTTP合同,WebGIS把支持原则HTML浏览器作为统一客户端,因此狭义地讲WebGIS是一种在Internet上发展起来新技术,其核心是将GIS功能嵌入到满足HTTP和TCP/IP原则Internet应用体系中,实现Internet环境下地理信息有效管理和解决。与老式地理信息系统相比较,WebGIS有如下特点:(1)更广泛客户访问范畴。客户可以同步访问各种位于不同地方服务器上最新数据,而Internet所特有优势大大扩展了GIS数据解决能力,增强了空间数据时效性。(2)客户端平台独立性。无论客户机是何种操作系统,只要支持通用Web浏览器,顾客就可以访问GIS数据及服务器所提供服务。(3)更简朴操作。要推广GIS,使GIS系统为广大普通顾客所接受,而不但仅局限于少数受过专业培训顾客,就要减少对系统操作难度。通过Web浏览器提供和谐顾客界面无疑是一种较好选取。(4)更高效计算负载平衡。老式GIS大都使用文献服务器构造解决方式,其解决能力完全依赖客户端,效率较低。而当今某些高档WebGIS能充分运用网络资源,将复杂解决交由服务器解决,而简朴操作则由客户端直接完毕。这种计算能灵活地在服务器端和客户端之间合理地分派解决任务,提高网络资源运用效率,提高了系统性能。(5)分布式系统。Internet一种特点就是它可以访问分布式数据库和执行分布式解决,即信息和应用可以布置在跨越整个Internet不同计算机上。GIS数据和分析工具是独立组件和模块,WebGIS运用Internet这种分布式系统把GIS数据和分析工具布置在网络不同计算机上,顾客可以从网络任何地方访问这些数据和应用程序,不需要在本地计算机上安装GIS数据和应用程序,只要把祈求发送到服务器,服务器就会把数据和分析工具模块传送给顾客,达到实时布置性能。(6)动态性。由于WebGIS是分布式系统,数据与应用程序布置在不同计算机上,随时也许被管理员更新,对于Internet上每一种顾客来说,都能得到最新数据和应用程序最新版本,只要数据源发生变化,和数据源动态连接将保持数据实时性。(7)交互性。WebGIS可使顾客在Internet上操作GIS地图和数据,用Web浏览器(IE,Netscape等)执行某些基本GIS功能:如缩放,漫游,查询和标注,甚至可以执行空间查询:如“离你近来旅馆或饭店在哪儿”,或者更先进空间分析:例如缓冲分析和网络分析等。在Web上使用WebGIS就和在本地计算机上使用桌面GIS软件同样。(8)经济性。普通专业GIS软件非常昂贵,而对于普通顾客来说,只使用某些最基本功能,想购买专业软件显得不太也许,也不经济。WebGIS在客户端只需要浏览器,GIS数据和GIS软件管理与维护基本上由服务器完毕,因而系统成本比以往全套GIS软件平台要少得多,客户端软件简朴化节约维护费用也是很可观。WebGIS合同简介开放式地理信息系统协会(OpenGISConsortium,OGC)是非营利、国际自发性、研究地理信息系统原则国际组织。OGC所提供规范是协助GIS开发者创造一种高效、无隔阂和透明地理信息系统使用、分析、解决环境[5]。开放式地理信息系统(OpenGIS)正是由OGC提出一种为了实现开放式地理信息系统而提出开放式地理空间数据互操作规范。按照OpenGIS规范,可以构造一种能获取分布式地理空间数据和空间服务资源软件框架。OpenGIS给全世界软件开发商一种详细通用界面模板,使得不同开发商依照OpenGIS开发出来不同GIS软件可以进行互操作。OpenGIS环绕着地理空间信息共享和提供地理空间解决服务两个技术目的,重要涉及三某些内容:开放式地理空间数据模型、OpenGIS服务模型和信息团队模型。其中与WebGIS关于合同重要有:GML(GeographyMarkupLanguage),WFS(WebFeatureService),WMS(WebMapService),SLD(StyledLayerDescriptor),WCS(WebCoverageService)和WSCS(WebServicesCommonSpecification)等规范[6]。其中GML、WMS、WFS和WCS可以作为Web服务空间数据服务规范,又可以作为空间数据互操作实现。只要某一种GIS软件支持这个接口,布置在本地服务器上,其她GIS软件就可以通过这个接口得到所需要数据。GML合同GML是一种用于建模、传播和存储地理及与地理有关信息XML编码语言,它涉及了地理要素(Feature)与层(Coverage)空间与非空间特性。GML建立在W3C系列原则之上,以一种互联网上容易共享方式来描述、表达地理信息,是第一种被GIS界广泛接受元标记语言。在这之前开发各种用于存储和互换地理信息文献格式或原则,由于缺少相应支持工具,而没有被广泛接受。GML一种重要优势就是它可以让开发者或顾客非常灵活地使用已被广泛接受XML技术,它建立在XML、XMLSchema、XLink和XPointer基本之上,GML数据可以很容易地与非空间数据集成使用。GML使用XML对地理数据进行编码,为开发商和顾客提供了一种开放、中立于任何厂商地理数据建模框架,使地理信息可以在不同领域、不同部门进行语义共享。GML采用要素来描述地理实体和地理现象,GML要素是通过其属性(property)来描述,这些属性涉及:空间属性、时态属性及其她非空间时态属性。OGC先后推出了3个版本GML,GML1.0版本于4月正式推出,GML2.0版本于2月推出,GML2.12版本于9月推出,年1月推出GML3.0版本。3.0版增长了对复杂几何实体、拓扑、空间参照系统、元数据、时间特性和动态要素等支持,使其更加适合描述现实世界问题。GML作为一种空间数据编码规范,它并没有强制采用它顾客使用规定XML标记,而是提供了一套基本标签、公共数据模型,以及顾客构建应用模式(GMLApplicationSchemas)机制[7]。WMS合同WMS从动态地理信息中位置数据,产生空间参照数据地图。地图格式可觉得PNG/GIF/JPEG/SVG/WebCGM中任意一种。这个规范定义了三个操作:GetCapabilities操作返回XML格式服务级元数据,它是对服务信息内容和可接受祈求参数一种描述;GetMap用来从地图服务器得到一副具备特定地理位置坐标范畴地图图像,在构造祈求时需要设立图层名称、坐标范畴、返回图像高宽和格式等;GetFeatureInfo是WMS可选服务,用来提供进一步查询地图上某些特殊要素信息接口[8]。WFS合同WFS向顾客提供使用GML编码地理空间要素数据,并支持在HTTP合同分布式计算机平台上对地理要素进行查询、插入、更新和删除操作等。这个规范定义了五个操作:GetCapabilities返回WFS性能描述文档(用XML描述);DescribeFeatureType向顾客提供一种列表,表达WFS服务器能提供服务要素类型。列表还定义了祈求详细要素实例时祈求格式以及输出时生成要素实例办法。;GetFeature为一种获取要素实例祈求提供服务;Transaction为事务祈求提供服务;LockFeature解决在一种事务期间对一种或各种要素类型实例上锁祈求[9]。在详细GIS应用当中,WFS经惯用来实现对地图上数据查询与修改,并经常与系统领域层中模型进行交互。WCS合同WCS合同是面向空间影像数据,它将包括地理位置值地理空间数据作为“覆盖(coverage)”在网上互相互换。WCS规范由三种操作构成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服务和数据集XML文档。WCS中GetCoverage操作是在GetCapabilities拟定什么样查询可以执行、什么样数据可以获取之后执行,它使用通用覆盖格式返回地理位置值或属性。客户端可以指定获取哪些覆盖,以及对空间和非空间查询进行约束。DescribeCoverageType操作容许客户端祈求由详细WCS服务器提供任一覆盖层完全描述[10]。在MapBuilder库文献中,运用WCS进行地理空间数据数据互换。WebGIS开源平台GeoServer地图服务器GeoServer是全面遵循OGC开放原则J2EE实现,可以以便地发布地图数据,并且容许顾客对特性数据进行更新、删除、插入等操作,通过GeoServer可以比较容易地在顾客之间迅速共享空间地理信息。GeoServer支持PostGIS、oracle,mysql等数据库数据源以及shapefile,mapinfo等格式文献数据源;可以运营在任何基于J2EE/Servlet容器上;可以通过WMS将数据采用maps/images方式发布,也可以通过WFS合同直接发布实际数据。GeoServer集成了GeoTools工具。GeoTools是一款基于Java开源GIS工具集,容许顾客对地理数据进行基本操作。通过GeoTools各种接口和helper类,可以写入新数据格式,通过GeoTools为GeoServer提供插件,在不进行重新编译状况下,可以让GeoServer支持更多数据格式,甚至只需要通过GUIoption设立即可。PostGIS数据库管理系统PostGIS是由RefractionsResearchInc开发,它是对象关系型数据库系统PostgreSQL一种扩展,容许数据库存储解决GIS对象。PostGIS提供了基于WKT和WKB格式EWKT和EWKB格式,存储与访问Geometry对象功能;同步,也提供了丰富维护、检索和空间运算函数,保证能对矢量格式空间数据及其属性数据进行有效地组织、索引,并能依照顾客需求进行自定义函数扩充。PostGIS旨在支持开发PostGIS以支持重要GIS功能,涉及对OpenGIS完整支持,高档拓扑构建,用于显示和编辑GIS数据左面顾客界面工具和基于网络访问工具。与单纯使用PostgreSQL相比,开发人员应用PostGIS更易于实现空间几何对象,PostGIS重要长处有:(1)在3D扩展下支持OpenGISWKT空间数据对象,支持3DZ、3DM、4D坐标表达。(2)支持SQL及空间查询解决空间数据对象。(3)提供大量空间算子进行空间操作,并提供了支持各种原则投影类型开源投影库(Proj4)。PostGIS支持GIS对象是OGC定义“简朴要素”超集[11]。MapBuilderMapBuilder是一种基于Ajax(AsynchronousJavaScriptandXML)技术地图解决显示Web开源客户端。它支持InternetExplorer6+、Mozilla1.3+、Netscape6+等浏览器。支持WMS和WFS-T服务。它依照WMS合同实现了地图显示、缩放、移动等操作,并且可以运用WFS-T合同修改服务器上地图数据。通过简朴配备,MapBuilder中组件可以轻松嵌入到网页文献中。在详细实现上采用MVC模式,MVC是ModelViewController(模型,视图,控制器)缩写。这个模式目是为了简化应用程式实现。此模式涉及三个独立组件。Model表达数据,顾客期待看到数据。View负责展示模型。视图在文本编辑器中也许按照恰当格式显示一段文本,在多数状况下,试图在Web应用中生成HTML,以便客户端浏览器解释浏览。Controller是一段逻辑,负责解决祈求和按照客户祈求行动,创立恰当模型,并将其传递到视图以供显示。在MapBuilder中分别相应于模式(Model)、饰件(Widget)、工具(Tool)三种类型JavaScript对象,实现了数据管理、信息表达和交互操作模块化。MVC模式中一种重要问题是数据组织管理,对于MapBuilder而言就是数据模型。MapBuilder不提供普通点、线、面等几何对象封装,整个数据流完全通过XML配备与解析进行管理,其长处是原则化限度高、客户端使用便捷、无需编码。这些数据流涉及系统配备、地图配备以及服务器端交互所产生各种GML数据。其中系统配备文献按照资源描述框架(ResourceDescriptionFramework,RDF)语法以Object-Property-Value格式定义所需对象,每个对象被赋予一种唯一标记ID,通过ID在全局域中可直接以config.objects.id来应用指定对象实例。地图配备文献则按照OGCWMC(WebMapContext)规范定义地图所需各参数,所有配备文献都将在页面加载时被自动解析,映射成为所定义对象实例。系统配备自身被映射为模型对象Config,所有模型对象都派生自抽象类ModelBase,统一调用GET办法获取数据信息,并以SET办法设立、修改模型信息和状态。GML数据仅作为中间互换数据存在,普通需要进行XPath或XSLT转换解决。MVC模式另一种重要问题就是消息传递和相应。MapBuilder中由两种消息类型:一种是浏览器定义各类系统消息,如鼠标按下事件等;另一种是自定义消息,如加载模型事件loadModel等。系统消息由派生自ToolBase类工具对象解决,如响应鼠标点击事件。这些工具对象常作为饰件对象一种属性配备在系统文献。事件对象则通过DIV等标记与网页建立关联来呈现模型信息,普通派生自WidgetBase类。WidgetBase类与ModelBase类拥有共同父类Listener,因而饰件对象注册给一种模型对象即可通过调用事件监听器互通自定义信息。模型修改会影响饰件状态,饰件同样可以将系统事件影响传递给模型解决[12]。Ajax架构 Ajax是一种创立交互网页技术,由AdaptivePath征询顾问JesseJamesGarrett一方面提出。它不是单一技术,而是JavaScript、CSS、DOM、XMLHttpRequest对象集合。其中JavaScript是通用脚本语言,Web浏览器中嵌入JavaScript解释器容许通过程序与浏览器诸多内建功能进行交互。CSS(层叠样式表)为Web页面元素提供了一种可重用可视化样式定义办法。它提供了简朴而强大办法,以一致方式定义和使用可视化式样。DOM(文档对象模型)以一组可以使用JavaScript操作可编程对象展示出Web页面构造。XMLHttpRequest对象容许Web程序从Web服务器后来台活动方式获取数据。在Ajax使用当中,JavaScript定义了业务规则和程序流程。应用程序使用XMLHttpRequest对象后来台方式从服务器获得数据。DOM对象依照服务器得到数据修改客户端Web页面中元素值。CSS运用规定好样式将DOM对象显示到浏览器中[13]。Spring架构Spring是一种开源架构,由RodJohnson开发并在她著作ExpertOne-on-One:J2EEDesignandDevelopment中进行描述。它用来简化公司应用程序开发,使得程序仅仅运用JavaBean就可以完毕此前只能由EJB来完毕工作。任何Java应用程序都能从Spring框架简朴、可测试性和松耦合中得到好处,而不但仅限定为服务器端程序。在J2EE中,EJB原意是为理解决诸如分布式对象和远程事务等问题而设计复杂组件。对于复杂度不高公司项目,在开发时也必要要承担EJB众多Java源文献、繁杂布置描述以及重型容器等不便。虽然要解决问题很简朴,EJB使用也会使得公司系统复杂度大大增长。因此使用Spring来代替EJB,它使得系统复杂度依赖于要解决问题,减少了容器对设计侵蚀。在简化开发同步,它尽量提供了和EJB相似功能。Spring信条是:J2EE应当是易于使用。简朴来说,Spring是一种轻型、控制反转并且支持面向方面容器框架[14]。轻量级容器意味着对程序代码做至少改动,就可以获得Spring核心带来好处。Spring框架核心基于依赖注入(DependencyInjection,DI)技术。在Spring中,所有类资源都被应用为Bean,只需要遵循JavaBean命名规则,DI机制就可以类属性配备操作与代码相分离。对于基于接口编程程序,通过采用DI,为基于接口设计而编写辅助代码大大减少,接近于零。Spring框架中DI带来好处重要有:(1)减少“粘合”代码。DI可以消除为了连接应用程序各个某些而编写大量代码。(2)依赖外置化。Spring中DI通过外置配备文献来实现,因此可以将依赖外置化。要变化依赖只需要修改配备文献而不需要修改代码。(3)在统一地方管理依赖。采用老式方式管理依赖时,依赖关系会在代码中散布开,变化它们普通会带来问题。当时用DI时候,所关于于依赖信息都通过一种简朴库进行管理,使得管理依赖变得既简朴又不容易出错。(4)提高可测试性。当面向DI设计类时,类之间依赖可以以便进行变化。这一点在系统进行测试时特别以便[15]。除了DI之外,Spring框架还提供:面向方面(AOP)编程机制、对数据访问优化、事务管理、Web层MVC架构、简化整合J2EE功能、远程访问(Demoting)支持、Mail支持、筹划任务支持以及源代码级Metadata(元数据)等功能。本章小结本章一方面对GIS技术进行了简介,涉及GIS技术基本功能、应用范畴、以及将来发展趋势等。然后简介了WebGIS,阐明了WebGIS概念和长处;简介了OGC组织以及它所提出来GML、WMS、WFS、WCS等WebGIS所用到OpenGIS合同,分析了每个合同作用和互有关系;同步简介了支持WebGIS开发开源平台,涉及WebGIS服务器软件GeoServer、支持GIS操作数据库PostGIS以及实现了WMS/WFS合同采用MVC模式架构MapBuilder地图操作组件。最后对用于Web2.0开发Ajax架构,以及用于简化J2EE开发Spring做了简介。由本章分析可知,J2EE平台下WebGIS开发合同已经徐徐规范,有助于GIS系统开发和不同系统互相访问;支持软件也日渐增多,功能越发强大。其中Spring框架浮现更使得J2EE服务器编程变得愈发简朴化和自动化。需求分析需求分析是软件开发流程中重要一种环节,需求分析基本任务是依照顾客需求,准拟定义要完毕系统目的,回答系统必要“做什么”问题。它重要用途是明确系统需求,是顾客和开发人员之间进行讨论基本,并作为系统设计、实现以及测试根据。只有精确全面需求获取与分析才干保证系统设计、系统实现顺利进行,为后期测试提供必要支持。在参照了既有GIS物流监控系统功能,并且考虑到了系统扩展性和成本基本上,最后制定了本系统详细需求。系统实现目的物流公司中,一方面要对货品从发货人发送货品到收货人提取货品整个过程进行管理和记录,规定可以随时理解货品位置、状态等属性。同步管理人员通过系统可以获取公司里运送车辆位置、速度、方向、所载货品等参数,并可以发送命令给车辆,实时监控和管理整个货品运送流程。为保证物流系统可以有效地为物流公司管理人员服务,从功能上必要达到如下目的:(1)必要实现物流公司中业务流程所有必须功能。作为物流公司管理软件,系统必须可以实现诸如发送货品、运送货品、装载货品、卸载货品、车辆线路编辑等功能。保证系统实现功能有效性。(2)必要保证管理人员得到信息及时性和真实性。管理人员作为整个系统调度者,系统信息必要及时地显示给管理人员。对于重要信息,系统应当使用弹出警告窗口、修改显示信息字体颜色等手段引起管理人员注意,保证系统调度及时性。(3)必要保证管理人员和运送车辆之间进行有效地、及时地通信。对于物流系统来说,系统实时调度和管理是十分重要,其中对车辆调度特别重要。因此,要保证管理人员和运送车辆之间通信及时性,提高系统调度效率。系统运营环境为了充分使用物流公司既有软硬件资源,在保障物流信息系统稳定、高效运营前提下,达到减少成本目。依照系统需求,设定了物流信息系统运营环境。网络环境:服务器和操作主机都需要采用Internet,车辆终端通过GPRS-Internet网关最后连接到Internet。硬件环境:(1)服务器主机配备:CPU使用IntelP4Xeon,双CPU,内存为2GB,选用2块120GBSCSI硬盘进行同步读写。(2)客户端机器配备:CPU最低IntelP=3\*ROMANIII800MHz以上,内存128MB以上。(3)车辆终端配备:每个车辆配备GPS数据收发器一种,用来获取GPS数据,通过GPRS网络和服务器进行通信。(4)其她配备:GPRS-Internet数据转换网关若干,用来将GPRS网络中车辆数据转换为Internet网络中数据。软件环境:服务器:Windows服务器版操作系统,Tomcat5.5服务器,GeoServer1.5.0地图服务器,PostGIS1.2.1数据库。客户端:Windows操作系统以上,IE6.0以上、Mozilla1.3以上或者Netscape6以上。系统开发环境考虑到系统成本问题,所有采用开源软件和框架来构建此系统。相对来说,开源软件成本低,功能相对简朴。服务器端软件环境:Web服务器采用Tomcat5.5,它布置和使用起来都很以便,支持功能对本系统来说已经足够。地图服务器采用GeoServer1.5.0,它是一种全面支持OGC开放性合同开源地图服务器,可以分别以图片和实际数据方式发布地图数据。数据库服务器采用PostGIS1.2.1,它是对PostgreSQL8.2补充,有丰富数据类型和解决地理数据函数,并且GeoServer与PostGIS之间操作通过一定优化。客户端环境搭建:地图显示采用MapBuilder地图操作组件,它是由Javascript语言实现一种库文献,可以以便嵌入到网页中去。系统信息实时显示与实时更新实现,需要采用Ajax技术支持。开发工具与支持环境:系统开发采用Eclipse。考虑到系统扩展性和实体类独立性,采用Spring作为J2EE实现服务器端容器,数据库访问则采用Ibatis组件实现。这些开源软件采用,减少了系统开发难度,提高了软件可复用性。功能性需求描述在面向对象系统分析中,获取功能需求最惯用技术就是用例建模技术。它可以直观地向客户展示系统功能,以便技术人员精确地获取需求。在项目开发前期,它协助开发人员理解系统需求而不考虑详细实现办法。用例,表达系统一种行为或者某个功能。它是在特定条件下,为了达到某种目,系统和顾客之间进行交互一种序列。用例模型由参加者和用例构成。参加者是与系统进行交互外部实体,也许是某个人或者是某个事物[16]。图3.1显示就是本系统用例图。本系统中,参加者有五个,管理人员、发货人、收货人、车辆和定期器。对于用例分析来说,只有用例图和用例描述相结合才干表达系统需求,有关用例描述如下。图3.SEQ图_3.\*ARABIC1物流信息系统用例图发送货品用例标记:1.0 参加者:发货人简要阐明:发货人在系统规定下提供发送货品所需信息,实现发货操作。基本领件流:(1)发货人提供货品基本信息,涉及货品类别、大小、目地、发货人信息、收货人信息等。(2)经有关人员检查货品状态,货品可以运送。(3)系统记录发货人和收货人信息,分派货品编号,计算货品运送费用,配备货品运送路经,将有关记录存储到系统中。(4)打印发货回执给发货人。查询货品状态用例标记:2.0 参加者:管理人员,发货人简要阐明:此用例中操作者也许为管理人员或者发货人。操作者向系统提供货品编号,系统以列表方式显示货品当前状态以及其她基本信息。基本领件流:(1)操作者提供货品编号进行查询。(2)系统进行查询,显示当前货品状态、位置等信息。提货用例标记:3.0 参加者:收货人简要阐明:货品到达站点后来,由收货人将货品提走。基本领件流:(1)货品在卸货操作后来检测当前位置,若当前站点和目站点相似,则提示有关人员货品已经到达目地。(2)管理人员联系收货人完毕提货操作。系统修改货品状态。查询系统信息用例标记:4.0 参加者:管理人员简要阐明:管理人员通过输入要查询项和查询条件,来完毕对系统中某类信息查询,成果采用列表方式显示。基本领件流:(1)管理人员选取要查询信息项,一共分为公司,站点,员工,车辆,货品,收发货人等几项。(2)管理人员从系统返回可以选取查询条件中选取一种,填写查询参数,进行查询。(3)管理人员得到最后要查询项详细信息列表。配备车辆线路用例标记:5.0 参加者:管理人员简要阐明:线路是若干站点之间有序一种组合,是车辆运营重要依照。管理人员依照公司运营状况来编辑线路,并设立车辆运营线路。基本领件流:(1)管理人员依照当前公司运营状况来添加、删除线路。(2)管理人员选定一条线路。(3)管理人员更新线路上所运营车辆列表。实时显示系统信息用例标记:6.0 参加者:管理人员,定期器简要阐明:管理人员登录系统后,定期器会定期更新管理员看到系统信息,涉及地图信息、实时消息、其她信息等。基本领件流:(1)管理人员登录系统,系统初始化,定期器开始运营。(2)定期器触发,向系统发出更新信息祈求。(3)Web客户端发送祈求信息到服务器,将获取成果显示给管理人员。(4)为下一次更新信息设立定期器。传递消息用例标记:7.0 参加者:管理人员,车辆简要阐明:管理人员和车辆通过消息进行沟通,系统运用传递消息通道可以对车辆进行实时调度,传递实时线路等。此用例中消息发送者也许为管理人员或车辆。基本领件流:(1)消息发送者编辑消息并发送到系统中。(2)系统依照消息目地对消息进行解决。(3)如果消息目地为有关管理人员,则在Web客户端获取最新消息时,将消息显示给管理人员。如果消息目地为车辆,直接通过系统发送到车辆上接受装置。发送实时状态信息用例标记:8.0 参加者:车辆简要阐明:车辆定期将自己状态发送给系统。系统运用车辆传回信息进行车辆实时控制和调度。基本领件流:(1)车辆依照通信装置设立每个一段时间将自己状态,涉及经纬度、方向、速度、油量等发送给系统。(2)系统将有关信息存储到指定位置。车辆完毕运送段用例标记:9.0 参加者:车辆简要阐明:车辆在两个站点之间运营称为一种运送段,车辆在运营线路上运营时,会完毕若干个运送段。基本领件流:(1)车辆在出发站点装载可以用此车辆进行运送货品。(2)车辆出发,驶往下一种站点。(3)车辆到达运送段目站点,卸载车辆上需要在此站点卸载货品。操作货品用例标记:10.0 参加者:车辆简要阐明:操作货品表达在货品运送过程中装货和卸货操作。基本领件流:(1)车辆到达站点,依照货品运送路线和车辆运营线路,列出可以在此车辆上进行装载货品信息。(2)按照货品快慢速度将货品进行排序,优先装载“特快”级别货品。(3)车辆离开站点,开始一种运送段。(4)车辆到达另一种站点,依照货品运送线路和车辆线路,列出要在此站点进行卸载货品信息。(5)对于所有需要进行卸载货品,所有完毕卸载。补充需求在车辆上设备发生故障状况下,会失去与系统地联系。在这种状况下系统要判断出哪辆车失去了联系,发送告知短消息到客户端,并且在客户端地图上显示出来。提示管理人员采用其她方式与车辆获得联系,理解车辆当前状态,保证系统正常运营。客户端要可以显示如下信息:总公司以及各个分公司信息,公司站点信息,车辆信息,公司员工信息以及其她信息等等。客户端采用浏览器操作,需要定期向服务器发送各种祈求才干保持当前信息对的性。然而,考虑到服务器负载状况,客户端没必要每一次都申请所有信息。像车辆位置、实时消息等信息需要在10秒之内就要更新一次,而像公司简介、车辆运营线路等信息普通几种小时更新就可以了。因此规定客户端可以设立不同信息项更新时间间隔。非功能性需求描述非功能性需求在整个系统中占有非常重要位置,对系统非功能性需求满足是系统成功基本,下面列出本系统非功能性需求:(1)系统可以长时间持续工作。对于公司应用级系统来说,软件稳定性与对的性同样重要。考虑到本系统实际状况,服务器端软件必要可以在24*7小时内不间断地稳定运营。(2)客户端信息更新更新等待时间不能不不大于5秒。客户端对系统响应是有时间限制,普通查询等待时间不能超过2秒,地图数据更新不能超过5秒。(3)系统要采用B/S架构进行构建。考虑到B/S架构布置以及升级简朴化,因此规定采用B/S架构进行构建。系统术语表系统开发过程中使用某些名词也许和平时代表意义不同或者是表达范畴不同,系统中还会依照实际状况创造某些专有名词表达系统中某些概念。为了不导致误解,加快系统开发进度,因此有必要列举系统术语表,声明系统开发过程中可以遇到重要概念和容易误解概念。下面是本系统术语表:货品:物流系统中进行运送单位,普通是若干需要运送物品集合。它们在系统中使用一种编号,作为一种物品解决。客户:发货人和收货人在系统中都称为客户。消息:本系统中消息表达车辆与所属公司、车辆与车辆之间、不同公司管理人员之间互相联系文本消息、对车辆进行控制命令消息以及车辆发送到系统中状态消息等。车辆:也叫做车辆终端,系统中用来运送货品车辆,但是在与管理人员进行实时短消息交互时候,表达是车辆驾驶员与管理人员交互。站点:系统中用来进行车辆停靠和货品中转站点。线路段:任意两个站点之间都可以形成两个运送有向序列,这种序列在系统中被称为线路段。车辆运营线路就是由若干线路段构成。客户端:也叫做Web客户端,表达管理人员登录远程Web浏览器进程,与系统进行交互。运送段:车辆在一种站点装货,出发到达下一种站点,卸货。这个过程被称为一种车辆运送过程,运送段表达车辆实际运送过程中产生成果。管理人员:也叫做顾客,在系统中指登录到Web客户端进行系统进行操作员工。运营线路:车辆进行行驶所要遵从线路,表达车辆应当在哪几种站点停靠。客户端子系统:实现客户端系统架构和有关代码等,和客户端概念比较起来,更侧重与系统设计和代码实现。货品运送线路:货品要从起始站点到达目站点,需要在系统中站点之间中转,而中转站点之间形成线路即为货品运送线路,属于筹划线路。本章小结本章一方面简介了系统实现目的、运营环境和开发环境。然后通过用例分析方式获取和分析了系统功能性需求,对需求进行了补充,提出了系统非功能性需求。从而对系统整体需求有了完整顿解。最后依照对需求分析中专有名词解释,得出了系统术语表。从本章需求分析中可以得出,系统功能性需求相对来说比较易于实现,而非功能性需求比较严格。对于非功能性需求影响最大就是系统架构,因此在设计和实现系统时,要在对系统架构予以充分注重前提下,实现功能性需求。系统设计系统设计原则(1)低成本。随着技术进步和系统复杂性增长,软件成本在整个系统中所占比重越来越大,公司应用中已经达到25%左右,并且有继续增长趋势。为了减少系统成本,系统中各个模块都采用开源项目中组件完毕。它们不但可以提供比较完善功能,并且还能依照系统需求进行恰当扩展。(2)规范性。从软件周期上来考虑,软件维护阶段在软件生命周期或生存期中占较大比重,有可达软件生存周期50-70%。因此需要软件在设计过程中积极遵循各种规范,保证后期维护和开发人员可以迅速理解系统。本系统在各个方面都要遵从有关规范:客户端与服务器之间交互合同要使用HTML/XML规定、系统内部交互采用Message类和其她接口、传播Map数据采用OGCWMS/WFS开放合同、与车辆交互采用有关UDP包构造规定。(3)易扩展。系统设计直接决定可扩展性。可扩展性是软件工程追求目的,可以大大提高软件复用限度,较低开发成本。本系统中采用SpringFramework作为服务器端容器,其DI机制可以最大限度保持类独立性。此外系统采用面向接口编程,这在很大限度上增长了系统扩展性。系统采用分层机制设计,建立专门数据访问层、服务层、消息队列控制层等,采用设计模式中思想优化设计,从而最大限度上提高系统可扩展性。系统总体设计在分解复杂软件系统时,用最多技术之一就是分层。分层设计好处有:在无需过多理解其她层基本上,可以将某一层作为一种有机整体来理解;只要先后提供服务相似,可以替代某一种层详细实现;可以将层次间依赖降到最低,有助于原则化;一旦建设好了某一种层次,就可以用它为诸多上层服务提供支持[17]。在本系统中,一方面要完毕工作就是设计系统总体架构,将系统分解为几种层,规定每个层功能、互相之间依赖关系和调用接口。通过对系统分析与设计,得到图4.1所示系统总体设计图。本系统重要由客户端子系统、Web服务层、服务层、数据访问层、实体类层、消息队列控制层和Socket控制层等构成。客户子系统位于客户端Web浏览器,用来向管理人员提供人机接口。在本系统中调用MapBuilder库操作地图信息,运用JavaScript语言动态更新客户端信息,通过Web浏览器显示信息。实体类层是由实体类与值对象构成,是系统中最基本概念集合。涉及:货品类、车辆类、站点类、公司类等,实体类设计过程在功能设计时进行描述。图4.SEQ图_4.\*ARABIC1系统总体设计图数据访问层由仓储(Repository)和数据访问对象(DAO)两个模块构成。其中DAO通过Spring接口调用Ibatis组件来实现各个实体类数据库操作。仓储模块依赖于DAO,向服务层提供透明对象访问和修改接口,将对象保存、修改、重建等操作彻底与表达业务逻辑服务层分离。服务层(Service)用来实现系统中各项业务功能类集合,在系统业务流程中处在核心地位。其她层与实体层交互完全通过服务层,就好像应用程序API同样。在提供一种清晰API同步,服务层也是放置事务控制和安全等功能好场合。这样做可以是获得一种简朴、包括了服务层中所有办法并描述了其事务和安全特性模型[17]。Web服务层(WebService)是直接和客户子系统进行交互Servlet接口集合。Web服务层中详细类被布置为Web服务器上Servlet,通过HTTP祈求接受客户端祈求,调用服务层有关服务完毕操作,并将成果转换为XML/HTTP格式返回给客户端子系统。消息队列控制层参照观测者模型实现一种消息队列,用来控制系统与车辆之间消息解决。Socket控制层用来控制与车辆之间Socket通信,并且提供车辆与否掉线监控功能。数据访问层设计数据访问层是面向对象设计中重要一种模块,它将对数据库操作逻辑封装到指定对象中,从而将对关系型数据库操作转换为对数据访问层对象操作,提高了系统可扩展性和可移植性。本系统数据访问层采用仓储设计思想,全面地封装了对数据库各种操作,提供对数据操作统一接口,其中大某些操作都直接被服务层用来获取系统对象以及操作对象。图4.2所示为货品有关数据访问设计图。SqlMapClientDaoSupport类是Spring框架为支持Ibatis提供数据库访问类,它通过读取XML文档为指定类提供数据库访问操作,详细实现由XML文档中SQL语句决定。CargoDAO接口提供了从数据库中访问货品与货品运送线路段基本访问办法。因此实现接口CargoDAO并继承SqlMapClientDaoSupport类SqlMapCargoDao类用来提供货品数据库访问操作详细实现。CargoRepositoryI接口提供了服务层访问货品实体类时用到接口。实现此接口RealCargoRepository类运用CargoDAO接口实现,向服务层提供了操作Cargo对象操作办法。它内部维持一种cargoList列表,将经常访问货品信息保存在内存中,不经常访问信息存储到数据库中,可以大大提高系统运营速度。同步系统为车辆、站点、员工、公司等其她实体类也设计了类似数据访问模块,从而保证了数据访问层对内存中和数据库中对象操作能力,保证了调用层功能实现。图4.SEQ图_4.\*ARABIC2货品数据库访问设计图服务层设计面向对象设计过程中,领域中某些概念不能作为模型中对象来解决。将领域需要功能强加给实体和值对象,不但会破坏模型中对象定义,并且还会人为地添加没故意义对象。当领域中一种重要进程或转换操作不是实体和值对象自身职责时,把操作作为一种独立接口加入模型,并声明为服务。依照模型中使用语言来定义接口,保证操作名是通用语言中一某些。使这个服务变为无状态[18]。这个时候,所定义服务接口负责和外界进行交互,由于它还会与实体类进行交互,会变化实体类属性和状态,因此相称于控制类一种。在本系统中,这些类都被放置到服务层中,继承ServiceI接口,实现详细业务流程。服务层定义了应用边界和从接口客户层角度能看到可用操作集。它封装了应用业务逻辑、事务控制及其操作实现中响应协调。服务层是由一组相对复杂类构成,这些类直接实现应用逻辑,但将领域逻辑委托给封装好领域对象类,在本系统中指数据访问层中仓储模块。服务层客户所能使用操作以脚本方式实现,数个脚本构成一种类,一种类定义与某一种主题有关逻辑。每一种类构成一种应用程序“服务”,类继承统一接口,以”XXService”命名[17]。图4.3所示为服务层设计图。服务层中所有服务类所有实现自ServiceI接口,提供execute()办法执行此服务类要实现业务流程。同步声明执行器接口Runner,它以ServiceI为参数,并运用run()办法调用服务类中execute()办法实现详细解决流程。服务类普通状况下会涉及到数据检索、更改以及保存等。因此服务类中都保持数据访问层中仓储类引用,来对数据库以及内存中对象实例属性进行修改。图4.SEQ图_4.\*ARABIC3服务层设计图服务层所实现业务操作如下所示:(1)货品有关操作:添加货品,删除货品,编辑货品位置,编辑货品状态,编辑货品运送路线,添加客户。(2)线路有关:添加线路段,添加线路,添加线路段联系,删除线路段,删除线路。(3)车辆有关:设立车辆驾驶员,添加车辆移动段,设立车辆移动段,设立车辆移动段货品,设立车辆位置,设立车辆状态,设立车辆线路。(4)其她:添加车辆装卸记录,查询货品运送途径,添加消息,解决接受到消息,存储消息等。Web服务层设计对于一种Web应用来说,Web层是十分核心。SpringWeb框架很自然采用了“控制反转”来管理控制器依赖。整个Web框架采用MVC模式进行设计。图4.4所示是Web应用范畴内MVC架构一种实现模式。控制器负责解释顾客祈求,准备模型,并将其传递到视图以供展示。JSP页面不包括解决祈求逻辑,仅展示由控制器准备好模型。图4.SEQ图_4.\*ARABIC4MVC架构图SpringMVC架构采用就是图4.4中所示架构,环绕着DispatcherServlet。该Servlet解决祈求,并调用恰当控制器以执行祈求。DiapatcherServlet拦截顾客祈求,判断哪一种Controller来执行该祈求。Spring控制器办法执行后返回ModelAndView类。ModelAndView实例包括一种对视图和模型引用。模型就是一种简朴Map实例,包括了试图用以展示JavaBean。视图是一种接口,实现它时候,指定一种展示办法。事实上,只要客户端可以解释,视图实现可以是任何形式[15]。图4.5所示为Web服务层控制器设计图。继承自Spring中AbstractController控制器类重写handleRequestInternal(request,response)办法,接受HTTP祈求,分析祈求内容与祈求参数。控制器可以通过返回ModelAndView形式,将特定JSP页面返回给顾客,同步还可以通过直接向response中写入内容进行返回。在本系统中登录页面和主页面祈求采用返回JSP页面方式返回,其她祈求采用将XML文档写入response实例办法返回给客户端。控制器内部包括一种继承自Runner接口实例,此实例控制实现流程并引用服务类实例完毕操作。图4.SEQ图_4.\*ARABIC5控制器设计图消息解决某些设计消息解决某些设计目是用来解决管理人员、车辆以及定期器等外部参加者与系统交互数据。系统可以依照传递入数据进行解决,实现功能为:解决车辆传递回来状态数据、使管理人员与车辆之间可以进行双向通信。不同参加者输入数据在系统中采用统一Message类进行表达,它定义了direct属性,表达消息传递方向。out值表达消息要传递给车辆数据收发终端,in值表达消息要传播到系统内部进行解决,系统中除非要发送到车辆终端消息,方向都设立为in。由于Web客户端也是由本系统负责实现,因此以各个公司为目Message实例方向也定义为in。服务器与Web客户端采用XML格式合同进行通信,服务器与车辆之间采用合用于UDP传播数据表达办法。如图4.6所示,为了Message类格式和其她格式进行转换,定义MessageSwitchI接口,switchToMessage()办法实现其她格式信息转换到消息格式,switchFromMessage()办法将消息格式信息转换为其她格式。实现MessageSwitchI接口两个类分别负责消息与XML格式数据、消息与UDP报文格式数据之间进行转换,同步为了调用以便,采用单态模式来保证有关实例唯一性。图4.SEQ图_4.\*ARABIC6消息格式转换设计图消息队列设计设计模式中观测者模式,定义了对象间一种一对多依赖关系,当一种对象状态变化时,所有依赖于它对象都得到告知并被自动更新。它合用一种状况为:当一种对象变化需要同步变化其她对象,而不懂得详细有多少对象有待变化状况[19]。物流系统中对消息解决被封装为消息解决类,它数量会随着业务复杂性而增长。因此消息队列定义为观测者模式中目的对象是使用。在Java语言中,有专门支持观测者模式类和接口存在。java.util包内Observable类是一种基类,从此类继承而来派生类都可以记录并管理所有但愿得到告知观测者。在Observable类中,办法addObserver()可以被其她对象调用,以注册新观测者。如果一种类想成为一种被观测者,它必要是Observable类派生类,当这个类告知所有观测者时,一方面调用setChanged()办法表白被观测者状态已经发生变化,然后调用基类notifyObservers()办法即可。java.util包内接口Observer是所有观测者必备接口。但愿成为观测者类可直接实现该接口,并在update()办法中,填写接受消息及有关解决代码[20]。图4.7所示为系统中消息队列设计图。RealObservableObject继承自Observable基类,它notifyObservers(Objecto)办法重写了基类中办法,一方面调用setChanged()办法表达被观测者已经变化,然后调用基类中notifyObservers(Objecto)。从而在继承类中直接调用notifyObservers(Objecto)办法,就可以将传入对象发送给所有观测者。在消息队列设计中,RealObservableObject负责对观测者注册和唤醒,当新消息进入系统时告知相应观测者进行解决。图4.SEQ图_4.\*ARABIC7消息队列设计图MessageMediatorI接口提供了消息队列正常工作所需要接口。pushMsg()办法将新消息加入到消息队列中。regInObserver()办法用来注册对方向为inMessage感兴趣观测者,regOutObserver()用来注册对方向为outMessage进行监控观测者。详细消息队列实现类为RealMessageM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 1618-2021迷你型甘薯春提早生产技术规程
- DB31/T 946-2021绿色工业园区评价导则
- DB31/T 936-2015车载终端与手机互联应用规范第1部分:通用技术规范
- DB31/T 591-2012城市公共交通车辆车身广告技术规范
- DB31/T 1360-2022民防工程安全管理工作导则
- DB31/ 405-2012集中空调通风系统卫生管理规范
- 金属卫生器具的环保新型材料研究考核试卷
- 领导者在业务发展中的关键作用分析试题及答案
- 电子产品可靠性测试与认证服务补充协议
- 2025年中国边云协同行业市场现状及未来发展前景预测分析报告
- 2025-2030年辣椒素产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025中国铁路南宁局集团有限公司招聘高校毕业生58人三(本科及以上学历)笔试参考题库附带答案详解
- 新疆开放大学2025年春《国家安全教育》形考作业1-4终考作业答案
- 大国工匠活动方案
- 《脑炎护理查房》课件
- 职业院校技能大赛教学能力比赛备赛策略与实践经验分享
- 成人重症患者人工气道湿化护理专家共识
- 2025年全国国家版图知识竞赛题库及答案(中小学组)
- 端午养生与中医智慧
- 大数据时代的互联网信息安全题库
- DL∕T 1776-2017 电力系统用交流滤波电容器技术导则
评论
0/150
提交评论