webgis的物流管理信息系统概述设计概述怎么做

基于WebGIS的物流管理信息系统的分析与设计_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于WebGIS的物流管理信息系统的分析与设计
中国最大最早的专业内容网站|
总评分0.0|
&&基于WebGIS的物流管理信息系统是针对中小型物流公司开发的一个专用数据库管理系统。本文阐述了采用结构化分析方法对系统进行分析和设计的过程。
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。基于WebGIS和Web Service的物流信息系统设计与实现_硕士论文_学位论文
> 优秀研究生学位论文题录展示
基于WebGIS和Web Service的物流信息系统设计与实现
关键词: &&&&
类 型: 硕士论文
年 份: 2008年
下 载: 372次
引 用: 0次
随着信息技术的发展和经济的全球化,越来越多的产品作为全球产品在世界范围内流通,生产、销售和消费之间的活动日益庞大和复杂,降低物流成本的要求愈加迫切。而第一、二方物流的组织和经营方式已不能完全满足需要。同时,为参与世界性竞争,企业必须确立核心竞争力,加强供应链管理,把不属于核心业务的物流活动外包出去。于是,第三、四方物流应运而生。较之传统的物流,第三方物流更专业化,综合成本更低,配送效率更高,已经成为国际物流业发展的趋势。与此同时,智能手机、GPS等得到越来越广泛的应用,其提供的功能也越来越多,GPRS的出现使人们可以应用手机在任何时间,任何地点在网上冲浪,给人们的生活带来了很多方便。将手机作为管理动态物流信息和查询线路的工具无疑是十分方便且高效的。所以,开发这样一个基于嵌入式、WebGIS和WebService技术的辅助查询工具,并整合车源、货源、专线等信息服务的综合性物流有着很强的现实意义。该系统基于微软最新的VisualStudio2008平台进行开发,采用了最新的技术、查询技术、基于MVC的开发架构、GPS定位系统、技术以及嵌入式开发技术和网络通信技术,有效的解决了物流配送过程中控制运输成本和提高效率的问题,提升了物流企业的信息化程度,使企业日常运作数字化,使企业拥有的物流设备和客户的货物都能用精确的数字来描述,不仅可以大大提高企业运作效率,而且可以提升企业形象,争取更多的客户。另外,GPS/GIS和无线通信的结合,使得不同地方的流动运输设备变得透明而且可控。结合物流企业的决策模型库的支持并根据物流企业的实际仓储情况,由GPS获取的实时道路信息,可以计算出最佳物流路径,为运输设备导航,减少运行时间,降低运行费用。同时,嵌入式技术和Web Service技术被运用到物流业中,实现了移动设备对远程终端的实时访问,为物流配送过程提供了方便。从需求分析到概要设计、详细设计以及系统的实现和测试,本文详细论述了基于WebGIS和Web Service的物流信息系统的设计与实现过程,并对系统的特色进行了总结。该系统具有较全面的物流信息数据库,能够很好的满足公众对物流信息的查询,也为物流公司提供了一个网上吸收客源的平台,因此具有很好的商业价值。
摘要&&10-12ABSTRACT&&12-14第1章 前言&&14-19&&1.1 项目背景&&14&&1.2 国内外相关研究&&14-16&&1.3 本文解决的主要问题&&16&&1.4 本文的主要工作&&16-17&&1.5 本文结构组织&&17-19第2章 需求分析&&19-28&&2.1 项目需求分析&&19-23&&&&2.1.1.开发模型选择&&19&&&&2.1.2.系统实现的具体要求&&19-20&&&&2.1.3.用户定义&&20-21&&&&2.1.4.系统模块划分&&21-22&&&&2.1.5.不同用户在服务器端功能分析&&22&&&&2.1.6.不同用户在移动终端功能分析&&22-23&&2.2 功能需求&&23-25&&&&2.2.1.服务器端&&23-24&&&&2.2.2.移动终端&&24-25&&2.3 性能要求&&25&&&&2.3.1.基本要求&&25&&&&2.3.2.时间特性要求&&25&&&&2.3.3.故障处理要求&&25&&2.4 相关的开发技术和工具&&25-28&&&&2.4.1.与.net相关技术&&25-26&&&&2.4.2.与移动终端相关技术&&26&&&&2.4.3.与WebService相关技术&&26&&&&2.4.4.数据库访问技术&&26&&&&2.4.5.地图操作相关技术&&26-27&&&&2.4.6.页面美化技术&&27&&&&2.4.7.开发工具和环境&&27-28第3章 系统架构设计&&28-36&&3.1 设计目标&&28&&3.2 系统的体系架构&&28-33&&&&3.2.1.服务器端功能&&29-31&&&&3.2.2.移动设备端功能&&31-33&&3.3 服务端与手机端的通信流程&&33-34&&3.4 系统逻辑结构&&34-36第4章 系统的详细设计&&36-53&&4.1 数据库设计&&36-40&&&&4.1.1.地名管理相关表&&36-37&&&&4.1.2.用户管理相关表&&37-38&&&&4.1.3.文章管理相关表&&38&&&&4.1.4.业务管理相关表&&38-40&&4.2 服务器端设计&&40-50&&&&4.2.1.模块描述&&40&&&&4.2.2.网站设计&&40-42&&&&4.2.3.物流网站中数据层详细设计&&42&&&&4.2.4.物流网站中业务层详细设计&&42-47&&&&4.2.5.WebService设计&&47-49&&&&4.2.6.GPS坐标转换端设计&&49-50&&4.3 移动设备模块设计&&50-53&&&&4.3.1.模块描述&&50&&&&4.3.2.手机端设计&&50&&&&4.3.3.手机端的流程逻辑&&50-52&&&&4.3.4.GPS信息接收模块设计&&52-53&&&&&&1、模块描述&&52&&&&&&2、流程逻辑&&52-53第5章 系统实现与测试&&53-64&&5.1 系统实现&&53-58&&&&5.1.1.数据层的实现&&53-54&&&&5.1.2.业务层的实现&&54-55&&&&5.1.3.WebService的实现&&55-56&&&&5.1.4.GPS坐标转换&&56&&&&5.1.5.GPS信号接收&&56-58&&5.2 测试计划&&58-59&&&&5.2.1.测试对象&&58&&&&5.2.2.测试目标&&58&&&&5.2.3.测试策略&&58&&&&5.2.4.测试环境&&58-59&&5.3 测试过程&&59-60&&&&5.3.1.模块测试&&59-60&&&&5.3.2.模块集成测试&&60&&5.4 系统运行效果&&60-64第6章 结论&&64-65参考文献&&65-68致谢&&68-69学位论文评阅及答辩情况表&&69
> 工业技术 >
& 2012 www.xueweilunwen.com当前位置: >>
基于WebGIS的物流信息系统的设计与实现
基于 WebGIS 的物流信息系统的设计与实现作者姓名: 张三一 指导教师: 李四二 教授 单位名称: 信息科学与工程学院 专业名称: 计算机科学与技术东 北 大 学 2008 年 6 月免责声明:文档在线网中所有的文档资料均由文档在线网会员提供,该文档资料 的版权属于提供者所有。文档在线网会对会员提供的文档资料进行筛选和编辑, 但是并不声明或保证其内容的合法性和正确性。 Design and Implementation of WebGIS-Based Logistics Information Systemby ZHANG SanyiSupervisor: Professor LI SierNortheastern University June 2008免责声明:文档在线网中所有的文档资料均由文档在线网会员提供,该文档资料 的版权属于提供者所有。文档在线网会对会员提供的文档资料进行筛选和编辑, 但是并不声明或保证其内容的合法性和正确性。 东北大学本科毕业设计(论文)毕业设计(论文)任务书毕业设计(论文)任务书毕业设计(论文)题目:基于 WebGIS 的物流信息系统的设计与实现设计(论文)的基本内容:(1) 了解项目开发背景, 分析项目进度管理系统功能需求, 研究其设计及实 现技术。 (2) 设计基于 WebGIS 的物流信息系统总体结构, 实现物流企业中业务流程 的所有必需功能。作为物流企业的管理软件,系统必需能够实现诸如发送货物、 运输货物、装载货物、卸载货物、车辆线路编辑等功能。 (3) 总结归纳所完成的任务, 弥补不足, 以最短的时间用最少的投入实现项 目的开发。毕业设计(论文)专题部分: 题目: 设计或论文专题的基本内容:学生接受毕业设计(论文)题目日期第1周 指导教师签字: 2007 年 3 月 5 日-I- 东北大学本科毕业设计(论文)摘 要基于 WebGIS 的物流信息系统的设计与实现摘要随着经济的发展和通信技术的提高, 物流作为一种先进的组织方式和管理技 术,被广泛认为是企业在降低消耗和提高劳动生产率以外的重要的利润源泉,在 国民经济和社会发展中发挥着重要作用。本文在物流企业的正常运营中,基于 GIS 的信息系统已经成为不可或缺的管理工具。 在对 WebGIS 技术和物流企业需 求进行分析的基础上,结合不同企业的业务流程的具体特点,设计了一套扩展性 较强的基于 WebGIS 的物流信息系统。 系统的主要功能是将企业管理人员与运输车辆之间通过服务器连接起来, 实 现物流系统的监控和管理。系统采用 B/S 架构,服务器端通过网络与车辆终端通 信,向车辆发送控制信息并获取车辆的当前状态。同时它还和 Web 客户端进行 交互, 向客户端提供地图服务, 并执行 Web 客户端的请求。 Web 客户端采用 Ajax 技术与服务器端进行通信,通过动态地图监控车辆。它还实现了发送货物、编辑 线路、发送消息等功能。考虑到可扩展性,系统重点实现了服务器端进行消息中 转的消息队列,建立了 Web 客户端到车辆终端之间的消息通路,并可以随时更 新消息队列中消息处理方式。本系统实现了物流系统的主要功能,极大提高了企 业的管理水平。 本文首先进行了系统的需求获取和业务分析。然后,采用分层的方法对系统 进行设计,叙述了消息队列框架的详细设计与实现,并叙述了服务器端和客户端 功能模块的设计和实现。 并通过对系统的测试, 对其功能和性能进行评估。 最后, 进行了总结,介绍了系统的特点和不足之处,指出了下一步的工作方向。 关键词:物流;WebGIS;消息队列-II- 东北大学本科毕业设计(论文)AbstractDesign and Implementation of WebGIS-Based Logistics Information SystemAbstractWith development of economy and improvement of communication technology, as an advanced mode of organization and management skill, logistics is widely considered to be the major source of profits in the enterprise besides reducing consumption and raising labor productivity. It plays an important role in the national economy and social development. The GIS-based information system has become an indispensable management tool in the regular business of logistics enterprise. Based on the analysis of the WebGIS technology and requirements of logistics enterprise, a WebGIS-based logistics information system with high expansibility is designed, according to specific business processes of various logistics enterprises. The major function of the system is to make manager communicated with vehicles via the server, and to realize monitoring and management of logistics system. The B/S architecture is adopted in the system. The server communicates with vehicles through network, sending them control data and receiving status data from them. At the same time, server interacts with Web clients, providing web map service and executing client requests. Web client communicates with server with Ajax technology, monitoring vehicles by watching dynamic maps. It also implements functions such as sending cargo, editing route, sending message, etc. Aiming at high expansibility of the system, message queue kept in server is seriously implemented. It means that a message channel between the Web client and vehicles is established, and the handling methods of the messages in message queue can be updated at any time. The system meets primary requirements and enhances management quality of customer. Firstly, in this thesis the requirement elicitation and the business analysis are completed. Then system is designed into multi-layer architecture. The particular design and implementation of message queue framework are described. Design and implementation of the functional modules of server and client are presented. Function and capability of the system are evaluated through test. At last, system traits and deficiencies are summarized, and next tasks are pointed out. Keywords:L WebGIS; Message Queue-III- 东北大学本科毕业设计(论文)目 录目摘录毕业设计(论文)任务书 ........................................................................................... I 要........................................................................................................................... II 言 ............................................................................................................. 1ABSTRACT ............................................................................................................... III 第1章 引 1.1 课题研究的背景和来源 ..................................................................................... 1 1.2 课题研究成果应用的实际意义 ......................................................................... 2 1.3 本文的内容及主要工作 ..................................................................................... 3 第 2 章 相关技术简介 ................................................................................................. 5 2.1 GIS 技术 .............................................................................................................. 5 2.2 WEBGIS 技术 ...................................................................................................... 5 2.2.1 WebGIS 介绍 ................................................................................................ 5 2.2.2 WebGIS 协议介绍 ........................................................................................ 7 2.2.3 WebGIS 的开源平台 .................................................................................... 9 2.3 AJAX 架构 .......................................................................................................... 11 2.4 SPRING 架构 ...................................................................................................... 11 2.5 本章小结 ........................................................................................................... 12 第 3 章 需求分析 ....................................................................................................... 13 3.1 系统实现目标 ................................................................................................... 13 3.2 系统运行环境 ................................................................................................... 13 3.3 系统的开发环境 ............................................................................................... 14 3.4 功能性需求描述 ............................................................................................... 14 3.4.1 发送货物.................................................................................................... 15 3.4.2 查询货物状态............................................................................................ 16 3.4.3 提货............................................................................................................ 16 3.4.4 查询系统信息............................................................................................ 16 3.4.5 配置车辆线路............................................................................................ 16 3.4.6 实时显示系统信息.................................................................................... 17 3.4.7 传递消息.................................................................................................... 17 3.4.8 发送实时状态信息.................................................................................... 17 3.4.9 车辆完成运输段........................................................................................ 18 3.4.10 操作货物.................................................................................................. 18 -IV- 东北大学本科毕业设计(论文)目 录3.4.11 补充需求 .................................................................................................. 18 3.5 非功能性需求描述 ........................................................................................... 19 3.6 系统术语表 ....................................................................................................... 19 3.7 本章小结 ........................................................................................................... 20 第 4 章 系统设计 ....................................................................................................... 21 4.1 系统设计原则 ................................................................................................... 21 4.2 系统总体设计 ................................................................................................... 21 4.3 数据访问层设计 ............................................................................................... 22 4.4 服务层设计 ....................................................................................................... 23 4.5 WEB 服务层设计 ............................................................................................... 25 4.6 消息处理部分设计 ........................................................................................... 26 4.6.1 消息队列设计............................................................................................ 27 4.6.2 消息处理具体功能设计............................................................................ 28 4.6.3 Socket 控制层详细设计 ............................................................................. 29 4.7 系统业务功能设计 ........................................................................................... 31 4.7.1 货物发送功能设计.................................................................................... 31 4.7.2 线路编辑功能设计.................................................................................... 33 4.7.3 货物运输功能设计.................................................................................... 34 4.7.4 权限操作功能设计.................................................................................... 35 4.8 数据库设计 ....................................................................................................... 37 4.8.1 发货操作模块的表设计............................................................................ 37 4.8.2 线路编辑模块的表设计............................................................................ 38 4.8.3 货物运输模块的表设计............................................................................ 38 4.8.4 权限控制模块的表设计............................................................................ 41 4.8.5 消息处理模块的表设计............................................................................ 41 4.9 本章小结 ........................................................................................................... 42 第 5 章 系统实现 ....................................................................................................... 43 5.1 地图数据传输与显示 ....................................................................................... 43 5.2 客户端设计与实现 ........................................................................................... 46 5.2.1 JavaScript 语言面向对象编程 ................................................................... 46 5.2.2 客户端请求协议和请求流程实现............................................................ 48 5.2.3 客户端框架实现........................................................................................ 49 5.3 系统安全控制实现 ........................................................................................... 52 -V- 东北大学本科毕业设计(论文)目 录5.4 货物处理模块的实现 ....................................................................................... 53 5.5 消息处理模块的实现 ....................................................................................... 56 5.6 本章小结 ........................................................................................................... 58 第 6 章 系统测试 ....................................................................................................... 59 6.1 单元测试 ........................................................................................................... 59 6.2 集成测试 ........................................................................................................... 60 6.3 系统测试 ........................................................................................................... 61 6.4 本章小结 ........................................................................................................... 63 第7章 结 论 ........................................................................................................... 65 7.1 本文工作总结 ................................................................................................... 65 7.2 进一步展望 ....................................................................................................... 65 参考文献 ..................................................................................................................... 67 致 谢 ..................................................................................................................... 69-VI- 东北大学本科毕业设计(论文)第1章 引 言第1章 引1.1 课题研究的背景和来源言随着现代科学技术迅猛发展,全球经济一体化的趋势加强,各国都面临着前 所未有的机遇和挑战。物流作为一种先进的组织方式和管理技术,被广泛认为是 企业在降低物资消耗,提高劳动生产率以外的重要的利润源泉,在国民经济和社 会发展中发挥着重要作用。 物流业产生于 20 世纪 60 年代,发展到 90 年代,是以满足客户要求为目的, 对货物、 服务和相关信息在产出地和销售之间的实现高效率和低成本的正向和逆 向的流动和存储所进行的计划执行和控制过程。由于现代生产技术的发展,产品 的生命周期越来越短,在社会生产开始由单一品种的大批量生产向小批量、多品 种定制化生产的同时,物流业开始由大批量、长周期的物流向小批量、多频次的 方向发展,使物流的控制越来越复杂。随着科学技术特别是信息技术的发展,信 息化的物流使企业能够在全球范围内进行超时空的交易, 又促进了物流业的进一 步发展与繁荣。在整个物流决策中,运输成本占到物流总成本的 35%~50%左右。 所以,物流信息化的重点在于物流运输系统信息化[1]。 物 流信息化的技术主要包 括:全球定位系统 ( GPS )、地理信息系统 (Geographic Information System , GIS)、射频(RF)、条形码和电子数据交换 技术等。其中 GIS 技术起到一个非常重要的作用。GIS 是一种以采集、贮存、管 理、分析和描述整个或部分地球表面与空间地理分布有关数据的空间信息系统。 在现代信息社会里, GIS 作为一种集地理空间特征和各种统计信息为一体的特殊 信息系统,是信息高速公路上的节点和基础设施,受到全社会的广泛关注,成为 目前国内热门的研究课题。GPRS,GPS 技术的发展又为 GIS 数据的实时获取和 实时传输奠定了坚实的基础。 基于 GIS 的系统已经开始在各个领域出现。 尤其以 交通运输、物流、森林数据分布等与地理数据关系最为紧密的领域为甚。在物流 系统中,GIS 技术可以在模型参考数据、车辆监控和实时调度、监控车辆位置与 状态、车辆导航以及选择最佳路径等大量涉及空间数据和属性数据的世纪应用 中,提供有效的管理和科学决策依据[2]。 对于基于 C/S 架构的 GIS 系统来说, 服务器负责收集实时的地理数据, 客户 端负责访问。这种架构虽然能够充分利用客户端计算机的计算能力,降低服务器 所承受到的压力。 但是弊端也是很明显的, 客户端过分臃肿, 数据完整性不可控, 不能适应复杂网络环境,安全性得不到保障,功能可扩展性低,代码维护困难重 -1- 东北大学本科毕业设计(论文)第1章 引 言重和服务器资源浪费等。无法胜任分布式应用系统的复杂性,客户端软件系统只 能运行在单一操作系统平台上, 采用相同的网络传输协议等局限都大大影响了软 件系统的可部署环境,这样就增加了企业在硬件及网络资源重复性投入的成本。 可扩展性受到限制,软件系统被安装在客户端,一旦软件发现 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 的物流信息系统来优化物流系统的流程, 提高企业的运行效率,降低运营成本。1.2 课题研究成果应用的实际意义本文研究的主要目的是实现一个Web客户端到GIS数据源之间进行消息传输 的通用框架,并在此基础上实现物流系统需求的功能。 由于各个企业有各自的业务流程和数据表示方法, 平时开发的过程中需要对 不同的企业实现不同的数据结构和业务流程。 而在系统开发的时候往往针对一个 企业进行数据定义和建模开发。这种开发方式偏重于应用,没有过多的考虑系统 的复用。如果需求有了变化,往往要大面积地修改代码,甚至是重新开发。这样 -2- 东北大学本科毕业设计(论文)第1章 引 言就浪费了大量的人力物力。要达到降低开发成本的目的,最直接的方法就是复用 以前的系统。 但是企业之间业务流程和数据表达方式的差异提高了系统复用的门 槛,降低了不同企业之间软件复用的可能性。但是对于物流系统来说,它们处理 货物的业务流程过程中数据流向和处理处理方式是相同的,只是存在不多的差 异。而在基于WebGIS的系统中,由于GIS数据源和Web客户端的抽象化,使得它 们与服务器之间的数据流动更加清晰。 最终能够整理出一份关于Web客户端和服 务器进行交互的通用需求和一份物流系统货物处理流程的通用需求。 在软件复用 中,如果一系列的系统共享特定的领域中的明确需求,那么这一系列的系统构成 软件的产品线。它们之间能够共享架构,从而缩短类似系统的开发时间,提高开 发的效率[3]。 所以本系统可以侧重架构设计, 从而产生一个能够复用的, 支持GIS 数据源、服务器、Web客户端之间进行数据流动和数据处理的架构。架构确定了 系统整体结构、层次划分、不同部分之间的协作关系以后,所形成的具体实现组 成了可复用的框架。框架的作用,在于确定企业各种业务的具体技术实现,并规 定它们在系统中的组织方式和协作方式,从而组成完整的企业应用解决方案,快 速的完成系统开发[4]。 在框架的基础上, 实现物流系统处理货物流程的通用需求, 提供尽可能小的WebService接口。这样,Web客户端可以利用Ajax技术和服务器 交互,将WebService提供的服务连接起来,组成具体的业务流程。 本课题研究的系统,就是要通过 Web 服务器在企业的不同 GIS 数据源和 Web 客户单的管理人员之间搭建一个实时的数据传输和处理架构,产生适用于 WebGIS 系统的通用模板。并在此基础上添加数据结构和业务处理流程,实现物 流企业中货物输入、线路定义、车辆监控、实时消息传输等功能。考虑到物流企 业需求之间的相似性, 本系统的构建的框架可以经过简单的配置并添加适当的数 据结构,直接应用到其他的企业中。1.3 本文的内容及主要工作本文在分析介绍了 WebGIS 技术, WMS/WMF 协议、 WebGIS 相关的组件的 基础上,基于物流系统的需求特点,介绍了 GIS 数据转发传输和处理架构,并且 实现了物流系统的基本功能。 各章的内容组织如下: 第 2 章介绍了 GIS 技术、WebGIS 技术的协议和开源平台、Ajax 技术以及 Spring 框架技术; 第 3 章分析了系统的开发环境,利用用例建模分析系统的功能需求,并且根 据实际情况补充了部分需求,提出了非功能性需求,并描述了系统术语表; -3- 东北大学本科毕业设计(论文)第1章 引 言第 4 章对系统进行总体设计,并对服务层、Web 服务层、数据访问层、消 息处理部分、socket 控制层等进行详细设计,对系统中货物运输、线路编辑、权 限控制、发送货物等功能进行了详细设计,对介绍了系统中数据库表; 第5章主要介绍了JavaScript语言的面向对象和事件驱动的实现,展示了Web 客户端根据相关协议与服务器交互的流程, 并介绍了客户端框架的实现以及定时 更新机制的实现。最后是服务器端的具体实现,展示了安全控制机制下用户访问 服务器的流程、货物从发货到最后提货的整个处理流程,重点介绍了消息在管理 人员、服务器端、车辆终端之间进行交互的传输和处理流程; 第 6 章介绍了利用工具进行测试的情况,并对出现的错误进行了分析解决; 第 7 章结论部分是对整个论文工作的总结以及下一步工作的展望, 指出我们 工作中有待改进的地方,同时指明了下一步的研究方向。-4- 东北大学本科毕业设计(论文)第 2 章 相关技术简介第2章 相关技术简介2.1 GIS 技术GIS 是以采集、存储、管理、分析、描述和应用整个或部分地球表面(包括 大气层在内)与空间和地理分布有关的数据的计算机系统。它由硬件、软件、数 据和用户有机结合而构成。 GIS 要实现的五个基本功能为: 数据输入、 数据编辑、 数据存储与管理、空间查询与空间分析以及图形输出与交互操作。 GIS 始于 60 年代的加拿大与美国,尔后各国相继投入了大量的研究工作, 自 80 年代末以来,随着计算机技术的飞速发展,地理信息的处理、分析手段日 趋先进,GIS 技术日臻成熟,已广泛地应用于环境、资源、石油、电力、土地、 交通、公安、急救、航空、市政治理、城市规划、经济咨询、灾难损失猜测、投 资评价、政府治理和军事等与地理坐标相关的几乎所有领域。 GIS 技术依托的主要工具和平台是计算机及其相关设备。 进入 90 年代以来, 随着计算机技术的发展, 计算机微处理器的处理速度愈来愈快, 性能价格比更高; 其存储器能实现将大型文件映射至内存的能力,并且能存储海量数据。此外,随 着多媒体技术、空间技术、虚拟实景、数字测绘技术、数据仓库技术、计算机图 形技术、三维图形芯片、大容量光盘技术及宽频光纤通讯技术的突破性进展,消 除数据通讯瓶颈的卫星互联网的建立, 以及能够提供接近实时对地观测图像的高 分辨、高光谱、短周期遥感卫星的大量发射,这些为 GIS 技术的广泛、深入应用 展示了更加光明的前景。同时,也使当前的 GIS 已不能满足信息时代、数字时代 的要求,目前 GIS 总体上呈现网络化、开放性、虚拟现实、集成化、空间多维性 等发展趋势。2.2 WebGIS 技术2.2.1 WebGIS 介绍WebGIS 是 GIS 技术与 WWW 技术的结合,是在 Internet 网络环境下的一种 传输、存储、处理、分析和显示与应用地理信息的计算机系统。称之为 WebGIS 的原因是大多数客户端应用采用了 WWW 协议。 Internet 的支持下, 在 根据 TCP/IP 和 HTTP 协议,WebGIS 把支持标准的 HTML 的浏览器作为统一的客户端,所以 狭义地讲 WebGIS 是一种在 Internet 上发展起来的新技术,其核心是将 GIS 功能 嵌入到满足 HTTP 和 TCP/IP 标准的 Internet 应用体系中,实现 Internet 环境下地 理信息的有效管理和处理。 与传统的地理信息系统相比较, WebGIS 有如下特点: -5- 东北大学本科毕业设计(论文)第 2 章 相关技术简介(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 软件平台要少得多, 客户端软件的简单化节省的维护费 -6- 东北大学本科毕业设计(论文)第 2 章 相关技术简介用也是很可观的。2.2.2 WebGIS 协议介绍开放式地理信息系统协会(Open GIS Consortium, OGC)是非营利、国际自 发性、研究地理信息系统标准的国际组织。OGC 所提供的规范是帮助 GIS 开发 者创造一个高效、无隔阂和透明的地理信息系统使用、分析、处理的环境[5]。开 放式地理信息系统(OpenGIS)正是由 OGC 提出的一个为了实现开放式地理信 息系统而提出的开放式地理空间数据互操作规范。按照 OpenGIS 的规范,可以 构造一个能获取分布式地理空间数据和空间服务资源的软件框架。 OpenGIS 给全 世界的软件开发商一个详细的通用界面模板,使得不同开发商依照 OpenGIS 开 发出来的不同 GIS 软件能够进行互操作。OpenGIS 围绕着地理空间信息共享和 提供地理空间处理服务两个技术目标,主要包括三部分内容:开放式地理空间数 据模型、 OpenGIS 服务模型和信息团体模型。 其中与 WebGIS 有关的协议主要有: GML(Geography Markup Language) ,WFS(Web Feature Service) ,WMS(Web Map Service) ,SLD(Styled Layer Descriptor) ,WCS(Web Coverage Service) 和 WSCS(Web Services Common Specification)等规范[6]。 其中 GML、WMS、WFS 和 WCS 可以作为 Web 服务的空间数据服务规范, 又可以作为空间数据的互操作实现。 只要某一个 GIS 软件支持这个接口, 部署在 本地服务器上,其他 GIS 软件就可以通过这个接口得到所需要的数据。 2.2.2.1 GML 协议 GML 是一种用于建模、传输和存储地理及与地理相关信息的 XML 编码语 言,它包括了地理要素(Feature)与层(Coverage)的空间与非空间特征。GML 建立在 W3C 系列标准之上,以一种互联网上容易共享的方式来描述、表达地理 信息, 是第一个被 GIS 界广泛接受的元标记语言。 在这之前开发的各种用于存储 和交换地理信息的文件格式或标准,由于缺少相应的支持工具,而没有被广泛接 受。GML 的一个重要优势就是它能够让开发者或用户非常灵活地使用已被广泛 接受的 XML 技术, 它建立在 XML、 XML Schema、 XLink 和 XPointer 基础之上, GML 数据能够很容易地与非空间数据集成使用。GML 使用 XML 对地理数据进 行编码,为开发商和用户提供了一种开放的、中立于任何厂商的地理数据建模框 架,使地理信息能够在不同领域、不同部门进行语义共享。 GML 采用要素来描述地理实体和地理现象, GML 要素是通过其属性 (property)来描述的,这些属性包括:空间属性、时态属性及其他非空间时态 属性。 -7- 东北大学本科毕业设计(论文)第 2 章 相关技术简介OGC 先后推出了 3 个版本的 GML, GML 1.0 版本于 2000 年 4 月正式推出, GML 2.0 版本于 2001 年 2 月推出, GML 2.12 版本于 2002 年 9 月推出, 2003 年 1 月推出 GML 3.0 版本。3.0 版增加了对复杂的几何实体、拓扑、空间参照系统、 元数据、 时间特征和动态要素等的支持,使其更加适合描述现实世界问题。GML 作为一个空间数据编码规范, 它并没有强制采用它的用户使用规定的 XML 标识, 而是提供了一套基本的标签、公共的数据模型,以及用户构建应用模式(GML Application Schemas)的机制[7]。 2.2.2.2 WMS 协议 WMS从动态的地理信息中位置数据,产生空间参考数据的地图。地图的格 式可以为PNG/GIF/JPEG/SVG/WebCGM中的任意一种。这个规范定义了三个操 作:GetCapabilities操作返回XML格式的服务级元数据,它是对服务信息内容和 可接受请求参数的一种描述;GetMap用来从地图服务器得到一副具有特定的地 理位置坐标范围的地图图像,在构造请求时需要设置图层名称、坐标范围、返回 图像的高宽和格式等;GetFeatureInfo是WMS可选的服务,用来提供进一步查询 地图上的某些特殊要素的信息的接口[8]。 2.2.2.3 WFS 协议 WFS 向用户提供使用 GML 编码的地理空间要素数据, 并支持在 HTTP 协议 的分布式计算机平台上对地理要素进行查询、插入、更新和删除操作等。这个规 范定义了五个操作:GetCapabilities 返回 WFS 性能描述文档(用 XML 描述) ; DescribeFeatureType 向用户提供一个列表,表示 WFS 服务器能提供的服务的要 素类型。 列表还定义了请求具体要素实例时的请求格式以及输出时生成要素实例 的方法。 GetFeature 为一个获取要素实例的请求提供服务; ; Transaction 为事务请 求提供服务;LockFeature 处理在一个事务期间对一个或多个要素类型实例上锁 的请求[9]。 在具体的 GIS 应用当中,WFS 经常用来实现对地图上数据的查询与修改, 并经常与系统的领域层中的模型进行交互。 2.2.2.4 WCS 协议 WCS协议是面向空间影像数据的,它将包含地理位置值的地理空间数据作 为 “覆盖 (coverage) 在网上相互交换。 ” WCS规范由三种操作组成: GetCapabilities, GetCoverage和DescribeCoverageType。 GetCapabilities操作返回描述服务和数据集 的XML文档。 WCS中的GetCoverage操作是在GetCapabilities确定什么样的查询可 以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位 置的值或属性。客户端能够指定获取哪些覆盖,以及对空间和非空间的查询进行 -8- 东北大学本科毕业设计(论文)第 2 章 相关技术简介约束。DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任 一覆盖层的完全描述[10]。 在MapBuilder库文件中, 利用WCS进行地理空间数据数 据交换。2.2.3 WebGIS 的开源平台2.2.3.1 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 支持更多的数据格式,甚至只 需要通过 GUI 的 option 设置即可。 2.2.3.2 PostGIS 数据库管理系统 PostGIS 是由 Refractions Research Inc 开发的,它是对象关系型数据库系统 PostgreSQL 的一个扩展,允许数据库存储处理 GIS 对象。PostGIS 提供了基于 WKT 和 WKB 格式的 EWKT 和 EWKB 格式, 存储与访问 Geometry 对象的功能; 同时,也提供了丰富的维护、检索和空间运算函数,确保能对矢量格式的空间数 据及其属性数据进行有效地组织、索引,并能根据用户需求进行自定义函数的扩 充。PostGIS 旨在支持开发 PostGIS 以支持重要的 GIS 功能,包括对 OpenGIS 的 完整支持, 高级拓扑的构建, 用于显示和编辑 GIS 数据的左面用户界面工具和基 于网络的访问工具。 与单纯使用 PostgreSQL 相比,开发人员应用 PostGIS 更易于实现空间几何 对象,PostGIS 主要优点有: (1) 在 3D 扩展下支持 OpenGIS 的 WKT 空间数据对象,支持 3DZ、3DM、 4D 坐标表示。 (2) 支持 SQL 及空间查询处理空间数据对象。 (3) 提供大量空间算子进行空间操作,并提供了支持多种标准投影类型的开 源投影库(Proj4)。 -9- 东北大学本科毕业设计(论文)第 2 章 相关技术简介PostGIS 支持的 GIS 对象是 OGC 定义的“简单要素”的超集[11]。 2.2.3.3 MapBuilder MapBuilder 是一个基于 Ajax(Asynchronous JavaScript and XML)技术的地 图处理显示的 Web 开源客户端。它支持 Internet Explorer6+、Mozilla1.3+、 Netscape6+等浏览器。支持 WMS 和 WFS-T 服务。它根据 WMS 协议实现了地图 显示、缩放、移动等操作,并且能够利用 WFS-T 协议修改服务器上的地图数据。 通过简单的配置,MapBuilder 中的组件能够轻松的嵌入到网页文件中。 在具体实现上采用 MVC 模式, MVC 是 Model View Controller 模型, ( 视图, 控制器)的缩写。这个模式的目的是为了简化应用程式的实现。此模式包括三个 独立组件。Model 表示数据,用户 期待看到的数据。View 负责展示模型。视 图在文本编辑器中可能按照适当格式显示一段文本, 在多数情况下, 试图在 Web 应用中生成 HTML,以便客户端浏览器解释浏览。Controller 是一段逻辑,负责 处理请求和按照客户请求行动,创建适当的模型,并将其传递到视图以供显示。 在 MapBuilder 中分别对应于模式(Model) 、饰件(Widget) 、工具(Tool)三种 类型的 JavaScript 对象,实现了数据管理、信息表达和交互操作的模块化。 MVC 模式中的一个重要问题是数据的组织管理, 对于 MapBuilder 而言就是 数据模型。MapBuilder 不提供通常的点、线、面等几何对象的封装,整个数据流 完全通过 XML 配置与解析进行管理, 其优点是标准化程度高、 客户端使用便捷、 无需编码。这些数据流包括系统配置、地图配置以及服务器端交互所产生的各种 GML 数 据 。 其 中 系 统 配 置 文 件 按 照 资 源 描 述 框 架 (Resource Description Framework, RDF)语法以 Object-Property-Value 格式定义所需对象, 每个对象被赋 予一个唯一标识的 ID, 通过 ID 在全局域中可直接以 config.objects.id 来应用指定 的对象实例。地图配置文件则按照 OGC 的 WMC(Web Map Context)规范定义 地图所需各参数,所有配置文件都将在页面加载时被自动解析,映射成为所定义 的对象实例。 系统配置自身被映射为模型对象 Config,所有模型对象都派生自抽 象类 ModelBase,统一调用 GET 方法获取数据信息,并以 SET 方法设置、修改 模型信息和状态。GML 数据仅作为中间交换数据存在,通常需要进行 XPath 或 XSLT 转换处理。 MVC 模式的另一个重要问题就是消息的传递和相应。MapBuilder 中由两种 消息类型:一种是浏览器定义的各类系统消息,如鼠标按下事件等;另一种是自 定义消息, 如加载模型事件 loadModel 等。 系统消息由派生自 ToolBase 类的工具 对象处理,如响应鼠标点击事件。这些工具对象常作为饰件对象的一个属性配置 在系统文件。事件对象则通过 DIV 等标记与网页建立关联来展现模型信息,一 -10- 东北大学本科毕业设计(论文)第 2 章 相关技术简介般派生自 WidgetBase 类。 WidgetBase 类与 ModelBase 类拥有共同的父类 Listener, 因此饰件对象注册给一个模型对象即可通过调用事件监听器互通自定义信息。 模 型的修改会影响饰件状态,饰件同样可以将系统事件的影响传递给模型处理[12]。2.3 Ajax 架构Ajax 是一种创建交互网页的技术,由 Adaptive Path 的咨询顾问 Jesse James Garrett 首 先 提 出 。 它 不 是 单 一 的 技 术 , 而 是 JavaScript 、 CSS 、 DOM 、 XMLHttpRequest 对象的集合。其中 JavaScript 是通用的脚本语言,Web 浏览器 中嵌入的 JavaScript 解释器允许通过程序与浏览器的很多内建功能进行交互。 CSS(层叠样式表)为 Web 页面元素提供了一个可重用的可视化样式的定义方 法。它提供了简单而强大的方法,以一致的方式定义和使用可视化式样。DOM (文档对象模型) 以一组可以使用 JavaScript 操作的可编程对象展示出 Web 页面 的结构。XMLHttpRequest 对象允许 Web 程序从 Web 服务器以后台活动的方式 获取数据。在 Ajax 的使用当中,JavaScript 定义了业务规则和程序流程。应用程 序使用 XMLHttpRequest 对象以后台方式从服务器获得数据。DOM 对象根据服 务器得到的数据修改客户端 Web 页面中的元素值。CSS 利用规定好的样式将 DOM 对象显示到浏览器中[13]。2.4 Spring 架构Spring 是一个开源的架构,由 Rod Johnson 开发并在他的著作 Expert One-on-One: J2EE Design and Development 中进行描述。它用来简化企业应用程 序的开发,使得程序仅仅利用 JavaBean 就能够完成以前只能由 EJB 来完成的工 作。任何的 Java 应用程序都能从 Spring 框架的简单、可测试性和松耦合中得到 好处,而不仅仅限定为服务器端的程序。在 J2EE 中,EJB 的原意是为了解决诸 如分布式对象和远程事务等问题而设计的复杂的组件。 对于复杂度不高的企业项 目,在开发时也必须要承担 EJB 的众多的 Java 源文件、繁杂的部署描述以及重 型容器等不便。即使要解决的问题很简单,EJB 的使用也会使得企业系统的复杂 度大大增加。 所以使用 Spring 来替代 EJB, 它使得系统的复杂度依赖于要解决的 问题,减少了容器对设计的侵蚀。在简化开发的同时,它尽量提供了和 EJB 相 同的功能。Spring 的信条是:J2EE 应当是易于使用的。 简单来说,Spring 是一个轻型的、控制反转的并且支持面向方面的容器框架[14]。轻量级的容器意味着对程序代码做最少的改动,就可以获得 Spring 核心带来的好处。Spring 框架的核心基于依赖注入(Dependency Injection, DI)技术。 -11- 东北大学本科毕业设计(论文)第 2 章 相关技术简介在 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 (元数据) 等功能。2.5 本章小结本章首先对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服务器编程变得愈发简单化和自动化。-12- 东北大学本科毕业设计(论文)第 3 章 需求分析第3章 需求分析需求分析是软件开发流程中重要的一个环节, 需求分析的基本任务是根据用 户的需求,准确定义要完成的系统的目标,回答系统必须“做什么”的问题。它的 主要用途是明确系统需求,是用户和开发人员之间进行讨论的基础,并作为系统 设计、实现以及测试的依据。 只有准确全面的需求获取与分析才能保证系统设计、系统实现的顺利进行, 为后期测试提供必要的支持。 在参考了现有的 GIS 物流监控系统的功能, 并且考 虑到了系统的扩展性和成本的基础上,最后制定了本系统的具体需求。3.1 系统实现目标物流企业中, 首先要对货物从发货人发送货物到收货人提取货物的整个过程 进行管理和记录,要求能够随时了解货物的位置、状态等属性。同时管理人员通 过系统能够获取企业里运输车辆的位置、速度、方向、所载货物等参数,并能够 发送命令给车辆,实时监控和管理整个货物运输流程。 为保证物流系统能够有效地为物流企业管理人员服务, 从功能上必须达到以 下目标: (1) 必须实现物流企业中业务流程的所有必需功能。作为物流企业的管理软 件,系统必需能够实现诸如发送货物、运输货物、装载货物、卸载货物、车辆线 路编辑等功能。保证系统实现的功能的有效性。 (2) 必须保证管理人员得到信息的及时性和真实性。管理人员作为整个系统 的调度者,系统的信息必须及时地显示给管理人员。对于重要的信息,系统应该 使用弹出警告窗口、修改显示信息的字体颜色等手段引起管理人员的注意,保证 系统调度的及时性。 (3) 必须保证管理人员和运输车辆之间进行有效地、及时地通信。对于物流 系统来说,系统的实时调度和管理是十分重要的,其中对车辆的调度尤其重要。 所以,要保证管理人员和运输车辆之间通信的及时性,提高系统调度的效率。3.2 系统运行环境为了充分使用物流企业的现有软硬件资源,在保障物流信息系统稳定、高效 运行的前提下,达到降低成本的目的。根据系统需求,设定了物流信息系统的运 行环境。 网络环境: -13- 东北大学本科毕业设计(论文)第 3 章 需求分析服务器和操作主机都需要采用 Internet,车辆终端通过 GPRS-Internet 网关最 终连接到 Internet。 硬件环境: (1) 服务器主机配置:CPU 使用 Intel P 4 Xeon, 双 CPU,内存为 2GB,选用 2 块 120GB 的 SCSI 硬盘进行同时读写。 (2) 客户端机器配置:CPU 最低 Intel PIII 800MHz 以上,内存 128MB 以上。 (3) 车辆终端配置:每个车辆配置 GPS 数据收发器一个,用来获取 GPS 数 据,通过 GPRS 网络和服务器进行通信。 (4) 其他配置:GPRS-Internet 数据转换网关若干,用来将 GPRS 网络中车辆 数据转换为 Internet 网络中的数据。 软件环境: 服 务 器 : Windows 2000 服 务 器 版 操 作 系 统 , Tomcat5.5 服 务 器 , GeoServer1.5.0 地图服务器,PostGIS1.2.1 数据库。 客户端:Windows2000 操作系统以上,IE6.0 以上、Mozilla1.3 以上或者 Netscape6 以上。3.3 系统的开发环境考虑到系统成本问题,全部采用开源软件和框架来构建此系统。相对来说, 开源软件成本低,功能相对简单。 服务器端软件环境:Web 服务器采用 Tomcat5.5,它部署和使用起来都很方 便,支持的功能对本系统来说已经足够。地图服务器采用 GeoServer1.5.0,它是 一个全面支持 OGC 开放性协议的开源地图服务器,能够分别以图片和实际数据 的方式发布地图数据。数据库服务器采用 PostGIS1.2.1,它是对 PostgreSQL8.2 的补充,有丰富的数据类型和处理地理数据的函数,而且 GeoServer 与 PostGIS 之间的操作经过一定的优化。 客户端环境搭建: 地图显示采用 MapBuilder 地图操作组件, 它是由 Javascript 语言实现的一个库文件,可以方便的嵌入到网页中去。系统信息实时显示与实时 更新的实现,需要采用 Ajax 技术的支持。 开发工具与支持环境:系统开发采用 Eclipse。考虑到系统的扩展性和实体 类的独立性, 采用 Spring 作为 J2EE 实现的服务器端容器, 数据库访问则采用 Ibatis 组件实现。 这些开源软件的采用, 降低了系统开发难度, 提高了软件的可复用性。3.4 功能性需求描述-14- 东北大学本科毕业设计(论文)第 3 章 需求分析在面向对象的系统分析中,获取功能需求的最常用的技术就是用例建模技 术。它能够直观地向客户展示系统的功能,方便技术人员准确地获取需求。在项 目开发的前期, 它帮助开发人员理解系统的需求而不考虑具体的实现方法。 用例, 表示系统的一种行为或者某个功能。它是在特定条件下,为了达到某种目的,系 统和用户之间进行交互的一个序列。用例模型由参与者和用例组成。参与者是与 系统进行交互的外部实体,可能是某个人或者是某个事物[16]。图 3.1 显示的就是 本系统的用例图。本系统中,参与者有五个,管理人员、发货人、收货人、车辆 和定时器。对于用例分析来说,只有用例图和用例描述相结合才能表示系统的需 求,相关的用例描述如下。系统显示实时信息系统发送实时状态信息定时器 配置车辆险路传递消息完成运输段 车辆 &&uses&&查询系统信息 管理人员 &&include&& 操作货物查询货物状态提货发货人发送货物收货人图 3.1 物流信息系统用例图3.4.1 发送货物用例标识:1.0 参与者: 发货人 简要说明:发货人在系统要求下提供发送货物所需的信息,实现发货操作。 基本事件流: (1) 发货人提供货物基本信息,包括货物类别、大小、目的地、发货人信息、 收货人信息等。 (2) 经相关人员检验货物状态,货物可以运输。 (3) 系统记录发货人和收货人信息,分配货物编号,计算货物运输费用,配 置货物运输路经,将相关记录存储到系统中。 -15- 东北大学本科毕业设计(论文)第 3 章 需求分析(4) 打印发货回执给发货人。3.4.2 查询货物状态用例标识:2.0 参与者:管理人员,发货人 简要说明:此用例中操作者可能为管理人员或者发货人。操作者向系统提供 货物编号,系统以列表的方式显示货物的当前状态以及其他基本信息。 基本事件流: (1) 操作者提供货物编号进行查询。 (2) 系统进行查询,显示当前货物状态、位置等信息。3.4.3 提货用例标识:3.0 参与者: 收货人 简要说明:货物到达站点以后,由收货人将货物提走。 基本事件流: (1) 货物在卸货操作以后检测当前位置,若当前站点和目的站点相同,则提 示相关人员货物已经到达目的地。 (2) 管理人员联络收货人完成提货操作。系统修改货物的状态。3.4.4 查询系统信息用例标识:4.0 参与者: 管理人员 简要说明:管理人员通过输入要查询项和查询条件,来完成对系统中某类信 息的查询,结果采用列表的方式显示。 基本事件流: (1) 管理人员选择要查询信息的项,一共分为公司,站点,员工,车辆,货 物,收发货人等几项。 (2) 管理人员从系统返回的可以选择的查询条件中选择一种,填写查询参 数,进行查询。 (3) 管理人员得到最后要查询的项的具体信息列表。3.4.5 配置车辆线路用例标识:5.0 参与者:管理人员 简要说明:线路是若干站点之间有序的一个组合,是车辆运行的主要根据。 管理人员根据企业运营情况来编辑线路,并设置车辆的运营线路。 基本事件流: -16- 东北大学本科毕业设计(论文)第 3 章 需求分析(1) 管理人员根据当前企业运行状况来添加、删除线路。 (2) 管理人员选定一条线路。 (3) 管理人员更新线路上所运行的车辆的列表。3.4.6 实时显示系统信息用例标识:6.0 参与者:管理人员,定时器 简要说明: 管理人员登录系统后, 定时器会定时更新管理员看到的系统信息, 包括地图信息、实时消息、其他信息等。 基本事件流: (1) 管理人员登录系统,系统初始化,定时器开始运行。 (2) 定时器触发,向系统发出更新信息的请求。 (3) Web 客户端发送请求信息到服务器,将获取的结果显示给管理人员。 (4) 为下一次更新信息设置定时器。3.4.7 传递消息用例标识:7.0 参与者:管理人员,车辆 简要说明:管理人员和车辆通过消息进行沟通,系统利用传递消息的通道可 以对车辆进行实时调度,传递实时线路等。此用例中的消息发送者可能为管理人 员或车辆。 基本事件流: (1) 消息发送者编辑消息并发送到系统中。 (2) 系统根据消息的目的地对消息进行处理。 (3) 如果消息目的地为相关的管理人员,则在 Web 客户端获取最新消息时, 将消息显示给管理人员。如果消息目的地为车辆,直接通过系统发送到车辆上的 接受装置。3.4.8 发送实时状态信息用例标识:8.0 行车辆的实时控制和调度。 基本事件流: (1) 车辆根据通信装置的设置每个一段时间将自己的状态,包括经纬度、方 向、速度、油量等发送给系统。 (2) 系统将相关信息存储到指定的位置。 -17参与者:车辆 简要说明:车辆定时将自己的状态发送给系统。系统利用车辆传回的信息进 东北大学本科毕业设计(论文)第 3 章 需求分析3.4.9 车辆完成运输段用例标识:9.0 运行时,会完成若干个运输段。 基本事件流: (1) 车辆在出发站点装载能够用此车辆进行运输的货物。 (2) 车辆出发,驶往下一个站点。 (3) 车辆到达运输段的目的站点,卸载车辆上需要在此站点卸载的货物。 参与者:车辆 简要说明:车辆在两个站点之间的运行称为一个运输段,车辆在运行线路上3.4.10 操作货物用例标识:10.0 参与者: 车辆 简要说明:操作货物表示在货物运输过程中的装货和卸货操作。 基本事件流: (1) 车辆到达站点,根据货物的运输路线和车辆的运营线路,列出可以在此 车辆上进行装载的货物信息。 (2) 按照货物的快慢速度将货物进行排序,优先装载“特快”级别的货物。 (3) 车辆离开站点,开始一个运输段。 (4) 车辆到达另一个站点,根据货物运输线路和车辆的线路,列出要在此站 点进行卸载的货物信息。 (5) 对于所有需要进行卸载的货物,全部完成卸载。3.4.11 补充需求在车辆上的设备发生故障的情况下,会失去与系统地联系。在这种情况下系 统要判断出哪辆车失去了联系,发送通知短消息到客户端,并且在客户端的地图 上显示出来。 提醒管理人员采取其他方式与车辆取得联系, 了解车辆的当前状态, 保证系统的正常运行。 客户端要能够显示如下信息:总公司以及各个分公司的信息,公司站点的信 息,车辆的信息,公司员工的信息以及其他信息等等。客户端采用浏览器操作, 需要定期向服务器发送各种请求才能保持当前信息的正确性。然而,考虑到服务 器的负载情况,客户端没必要每一次都申请所有的信息。像车辆位置、实时消息 等信息需要在 10 秒之内就要更新一次,而像公司介绍、车辆运营线路等信息一 般几个小时更新就可以了。所以要求客户端能够设置不同信息项的更新时间间 隔。 -18- 东北大学本科毕业设计(论文)第 3 章 需求分析3.5 非功能性需求描述非功能性需求在整个系统中占有非常重要的位置, 对系统的非功能性需求的 满足是系统成功的基础,下面列出本系统的非功能性需求: (1) 系统能够长时间的持续工作。 对于企业应用级的系统来说,软件的稳定性与正确性一样重要。考虑到本系 统的实际情况,服务器端的软件必须能够在 24*7 小时内不间断地稳定运行。 (2) 客户端信息更新更新等待时间不能大于 5 秒。 客户端对系统的响应是有时间限制的,一般的查询等待时间不能超过 2 秒, 地图数据更新不能超过 5 秒。 (3) 系统要采用 B/S 架构进行构建。 考虑到 B/S 架构部署以及升级的简单化,所以要求采用 B/S 架构进行构建。3.6 系统术语表系统开发过程中使用的一些名词可能和平时代表的意义不同或者是表示范 围不同,系统中还会根据实际情况创造一些专有名词表示系统中的某些概念。为 了不造成误解,加快系统开发进度,所以有必要列举系统的术语表,声明系统开 发过程中能够遇到的主要的概念和容易误解的概念。 下面是本系统的术语表: 货物 :物流系统中进行运输的单位,一般是若干需要运输的物品的集合。 它们在系统中使用一个编号,作为一个物品处理。 客户 :发货人和收货人在系统中都称为客户。 消息 :本系统中的消息表示车辆与所属的公司、车辆与车辆之间、不同公 司的管理人员之间相互联系的文本消息、 对车辆进行控制的命令消息以及车辆发 送到系统中的状态消息等。 车辆 :也叫做车辆终端,系统中用来运输货物的车辆,但是在与管理人员 进行实时短消息交互的时候,表示的是车辆驾驶员与管理人员的交互。 站点 :系统中用来进行车辆停靠和货物中转的站点。 线路段:任意两个站点之间都可以形成两个运输的有向序列,这种序列在系 统中被称为线路段。车辆的运行线路就是由若干的线路段组成。 客户端:也叫做 Web 客户端,表示管理人员登录的远程 Web 浏览器进程, 与系统进行交互。 运输段:车辆在一个站点装货,出发到达下一个站点,卸货。这个过程被称 为一个车辆运输过程,运输段表示车辆实际运输过程中产生的结果。 -19- 东北大学本科毕业设计(论文)第 3 章 需求分析管理人员:也叫做用户,在系统中指登录到 Web 客户端进行系统进行操作 的员工。 运营线路: 车辆进行行驶所要遵从的线路, 表示车辆应该在哪几个站点停靠。 客户端子系统:实现客户端的系统架构和相关代码等,和客户端概念比较起 来,更侧重与系统设计和代码的实现。 货物运输线路:货物要从起始站点到达目的站点,需要在系统中的站点之间 中转,而中转的站点之间形成的线路即为货物的运输线路,属于计划线路。3.7 本章小结本章首先介绍了系统的实现目标、运行环境和开发环境。然后通过用例分析 的方式获取和分析了系统的功能性需求,对需求进行了补充,提出了系统的非功 能性需求。从而对系统的整体需求有了完整的了解。最后根据对需求分析中的专 有名词的解释,得出了系统术语表。 从本章的需求分析中可以得出,系统的功能性需求相对来说比较易于实现, 而非功能性需求比较严格。对于非功能性需求影响最大的就是系统的架构,所以 在设计和实现系统时,要在对系统的架构给予充分重视的前提下,实现功能性需 求。-20- 东北大学本科毕业设计(论文)第 4 章 系统设计第4章 系统设计4.1 系统设计原则(1) 低成本。随着技术的进步和系统复杂性的增加,软件成本在整个系统中 所占的比重越来越大,企业应用中已经达到 25%左右,而且有继续增加的趋势。 为了降低系统的成本,系统中各个模块都采用开源项目中的组件完成。它们不仅 能够提供比较完善的功能,而且还能根据系统需求进行适当扩展。 (2) 规范性。从软件周期上来考虑,软件维护阶段在软件生命周期或生存期 中占较大比重,有的可达软件生存周期的 50-70%。所以需要软件在设计的过程 中积极遵循各种规范,保证后期维护和开发人员能够快速理解系统。本系统在各 个方面都要遵从相关规范: 客户端与服务器之间交互协议要使用 HTML/XML 规 定、系统内部交互采用 Message 类和其他接口、传输 Map 数据采用 OGC 的 WMS/WFS 开放协议、与车辆交互采用相关 UDP 包结构的规定。 (3) 易扩展。系统的设计直接决定可扩展性。可扩展性是软件工程追求的目 标,能够大大提高软件的复用程度,较低开发成本。 本系统中采用 Spring Framework 作为服务器端的容器,其 DI 机制可以最大程度的保持类的独立性。 另外系统采用面向接口编程,这在很大程度上增加了系统的扩展性。系统采用分 层机制设计,建立专门的数据访问层、服务层、消息队列控制层等,采用设计模 式中的思想优化设计,从而最大程度上提高系统可扩展性。4.2 系统总体设计在分解复杂的软件系统时,用的最多的技术之一就是分层。分层设计的好处 有:在无需过多了解其他层的基础上,可以将某一层作为一个有机整体来理解; 只要前后提供的服务相同,可以替换某一个层的具体实现;能够将层次间的依赖 降到最低,有利于标准化;一旦建设好了某一个层次,就可以用它为很多上层服 务提供支持[17]。在本系统中,首先要完成的工作就是设计系统的总体架构,将系 统分解为几个层,规定每个层的功能、相互之间的依赖关系和调用接口。 经过对系统的分析与设计,得到图 4.1 所示的系统总体设计图。本系统主要 由客户端子系统、Web 服务层、服务层、数据访问层、实体类层、消息队列控制 层和 Socket 控制层等组成。 客户子系统位于客户端的 Web 浏览器,用来向管理人员提供人机接口。在 本系统中调用 MapBuilder 库操作地图信息, 利用 JavaScript 语言动态更新客户端 -21- 东北大学本科毕业设计(论文)第 4 章 系统设计的信息,通过 Web 浏览器显示信息。 实体类层是由实体类与值对象组成,是系统中最基本概念的集合。包括:货 物类、车辆类、站点类、公司类等,实体类的设计过程在功能设计时进行描述。客户端子系统 *1Web服务层服务层消息队列控制层Socket控制层数据访问层实体类层Ibatis图 4.1 系统总体设计图数据访问层由仓储(Repository)和数据访问对象(DAO)两个模块组成。 其中 DAO 通过 Spring 的接口调用 Ibatis 组件来实现各个实体类的数据库操作。 仓储模块依赖于 DAO,向服务层提供透明的对象访问和修改的接口,将对象保 存、修改、重建等操作彻底与表示业务逻辑的服务层分离。 服务层(Service)用来实现系统中各项业务功能的类的集合,在系统的业务 流程中处于核心地位。其他层与实体层的交互完全通过服务层,就好像应用程序 的 API 一样。在提供一个清晰的 API 的同时,服务层也是放置事务控制和安全 等功能的好场所。这样做可以是获得一个简单的、包含了服务层中所有方法并描 述了其事务和安全特性的模型[17]。 Web 服务层(WebService)是直接和客户子 系统进行交互的 Servlet 接口的集合。Web 服务层中具体的类被部署为 Web 服务 器上的 Servlet, 通过 HTTP 请求接收客户端的请求, 调用服务层的相关服务完成 操作,并将结果转换为 XML/HTTP 格式返回给客户端子系统。 消息队列控制层参考观察者模型实现一个消息队列, 用来控制系统与车辆之 间消息的处理。Socket 控制层用来控制与车辆之间的 Socket 通信,并且提供车 辆是否掉线的监控功能。4.3 数据访问层设计数据访问层是面向对象设计中重要的一个模块, 它将对数据库操作的逻辑封 -22- 东北大学本科毕业设计(论文)第 4 章 系统设计装到指定的对象中, 从而将对关系型数据库的操作转换为对数据访问层的对象的 操作,提高了系统的可扩展性和可移植性。本系统的数据访问层采用仓储的设计 思想,全面地封装了对数据库的各种操作,提供对数据操作的统一接口,其中大 部分操作都直接被服务层用来获取系统对象以及操作对象。 图 4.2 所示的为货物相关的数据访问设计图。SqlMapClientDaoSupport 类是 Spring 框架为支持 Ibatis 提供的数据库访问类,它通过读取 XML 文档为指定的 类提供数据库访问操作,具体实现由 XML 文档中的 SQL 语句决定。CargoDAO 接口提供了从数据库中访问货物与货物运输线路段的基本访问方法。 所以实现接 口 CargoDAO 并继承 SqlMapClientDaoSupport 类的 SqlMapCargoDao 类用来提供 货物的数据库访问操作的具体实现。CargoRepositoryI 接口提供了服务层访问货 物实体类时用到的接口。实现此接口的 RealCargoRepository 类利用 CargoDAO 接口的实现,向服务层提供了操作 Cargo 对象的操作方法。它内部维持一个 cargoList 列表,将经常访问的货物信息保存在内存中,不经常访问的信息存储到 数据库中,能够大大提高系统的运行速度。同时系统为车辆、站点、员工、公司 等其他实体类也设计了类似的数据访问模块, 从而保证了数据访问层对内存中和 数据库中对象操作的能力,确保了调用层的功能实现。&&接口&& CargoRepositoryI +getCargoById() +getCargoListByOriginId() +getCargoListByCustomerId() +addCargo() +deleteCargo() +updateCargoPosition() +updateCargoStatus() +saveLegList() RealCargoRepository -cargoDao -cargoList +loadCargoFromDB() Cargo &&接口&& CargoDAO +getCargoList() +addCargo() +delCargo() +editCargoPosition() +editCargoStatus() +getItineraryLstByCargoId() +addItineraryLeg() +delItineraryLegByCargoId()1 *ItineraryLegSqlMapClientDaoSupportSqlMapCargoDao图 4.2 货物的数据库访问设计图4.4 服务层设计面向对象的设计过程中,领域中的一些概念不能作为模型中的对象来处理。 将领域需要的功能强加给实体和值对象,不仅会破坏模型中的对象的定义,而且 -23- 东北大学本科毕业设计(论文)第 4 章 系统设计还会人为地添加没有意义的对象。 当领域中的一个重要进程或转换操作不是实体 和值对象本身的职责时,把操作作为一种独立的接口加入模型,并声明为服务。 根据模型中使用的语言来定义接口,保证操作名是通用语言中的一部分。使这个 服务变为无状态[18]。这个时候,所定义的服务接口负责和外界进行交互,由于它 还会与实体类进行交互, 会改变实体类的属性和状态, 所以相当于控制类的一种。 在本系统中,这些类都被放置到服务层中,继承 ServiceI 接口,实现具体业务流 程。 服务层定义了应用的边界和从接口客户层角度能看到的可用操作集。 它封装 了应用的业务逻辑、事务控制及其操作实现中的响应协调。服务层是由一组相对 复杂的类组成,这些类直接实现应用逻辑,但将领域逻辑委托给封装好的领域对 象类,在本系统中指数据访问层中的仓储模块。服务层客户所能使用的操作以脚 本的方式实现,数个脚本组成一个类,一个类定义与某一个主题相关的逻辑。每 一个类组成一个应用程序“服务” ,类继承统一的接口,以”XXService”命名[17]。 图 4.3 所示为服务层设计图。服务层中所有的服务类全部实现自 ServiceI 接 口,提供 execute()方法执行此服务类要实现的业务流程。同时声明执行器接口 Runner,它以 ServiceI 为参数,并利用 run()方法调用服务类中的 execute()方法实 现具体的处理流程。服务类一般情况下会涉及到数据的检索、更改以及保存等。 所以服务类中都保持数据访问层中的仓储类的引用, 来对数据库以及内存中的对 象实例的属性进行修改。&&接口&& ServiceI +execute() : object(idl) &&接口&& Runner +setService(in s : ServiceI) +run() : object(idl)XXXService +execute()&&接口&& XXXRepositoryI图 4.3 服务层设计图服务层所实现的业务操作如下所示: (1) 货物相关操作:添加货物,删除货物,编辑货物位置,编辑货物状态, 编辑货物运输路线,添加客户。 (2) 线路相关:添加线路段,添加线路,添加线路段联系,删除线路段,删 除线路。 (3) 车辆相关:设置车辆驾驶员,添加车辆移动段,设置车辆的移动段,设 -24- 东北大学本科毕业设计(论文)第 4 章 系统设计置车辆移动段的货物,设置车辆位置,设置车辆状态,设置车辆线路。 (4) 其他:添加车辆装卸记录,查询货物运输路径,添加消息,处理接收到 的消息,存储消息等。4.5 Web 服务层设计对于一个 Web 应用来说,Web 层是十分关键的。Spring 的 Web 框架很自然 的采用了“控制反转”来管理控制器的依赖。整个 Web 框架采用 MVC 模式进行 设计。 图 4.4 所示的是 Web 应用范围内 MVC 架构的一种实现模式。 控制器负责解 释用户请求,准备模型,并将其传递到视图以供展示。JSP 页面不包含处理请求 的逻辑,仅展示由控制器准备好的模型。Controller: 控制器 Browser 浏览器 View: 视图 Model: JaveBean DataStore: 数据存储 ServiceFacade :服务接口图 4.4 MVC 架构图Spring 的 MVC 架 构 采 用 的 就 是 图 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 接口的实例,此实例控制实现 的流程并引用服务类实例完成操作。-25- 东北大学本科毕业设计(论文)第 4 章 系统设计AbstractController #handleRequestInternal(in request, in response) &&接口&& Runner +setService(in s : ServiceI) +run() : object(idl) XXXController XXXRunner ServiceI +execute() : object(idl)图 4.5 控制器设计图4.6 消息处理部分设计消息处理部分的设计目的是用来处理管理人员、 车辆以及定时器等外部参与 者与系统的交互数据。系统可以根据传递入的数据进行处理,实现的功能为:处 理车辆传递回来的状态数据、使管理人员与车辆之间可以进行双向通信。 不同参与者输入的数据在系统中采用统一的 Message 类进行表示, 它定义了 direct 属性,表示消息的传递方向。out 值表示消息要传递给车辆数据收发终端, in 值表示消息要传输到系统内部进行处理,系统中除非要发送到车辆终端的消 息,方向都设置为 in。由于 Web 客户端也是由本系统负责实现,所以以各个公 司为目的的 Message 实例的方向也定义为 in。 服务器与 Web 客户端采用 XML 格式的协议进行通信, 服务器与车辆之间采 用适用于 UDP 传输的数据表示方法。如图 4.6 所示,为了 Message 类格式和其 他格式进行转换,定义 MessageSwitchI 接口,switchToMessage() 方法实现其他 格式的信息转换到消息格式,switchFromMessage() 方法将消息格式信息转换为 其他格式。实现 MessageSwitchI 接口的两个类分别负责消息与 XML 格式数据、 消息与 UDP 报文格式数据之间进行转换,同时为了调用的方便,采用单态模式 来保证相关实例的唯一性。&&接口&& MessageSwitchI +switchToMessage(in str : String) : Message +switchFromMessage(in msg : Message) : StringXMLMessageSwitch +getInstance() : XMLMessageSwitchUDPMessageSwitch +getInstance() : UDPMessageSwitch图 4.6 消息格式转换设计图-26- 东北大学本科毕业设计(论文)第 4 章 系统设计4.6.1 消息队列设计设计模式中的观察者模式,定义了对象间一种一对多的依赖关系,当一个对 象的状态改变时,所有依赖于它的对象都得到通知并被自动更新。它适用的一种 情况为:当一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有 待改变的情况[19]。 物流系统中对消息的处理被封装为消息处理类, 它的数量会随 着业务复杂性而增加。所以消息队列定义为观察者模式中的目标对象是使用的。 在 Java 语言中,有专门支持观察者模式的类和接口的存在。java.util 包内的 Observable 类是一个基类,从此类继承而来的派生类都可以记录并管理所有希望 得到通知的观察者。 Observable 类中, 在 方法 addObserver()可以被其他对象调用, 以注册新的观察者。 如果一个类想成为一个被观察者, 它必须是 Observable 类的 派生类,当这个类通知所有的观察者时,首先调用 setChanged()方法表明被观察 者的状态已经发生改变,然后调用基类的 notifyObservers()方法即可。java.util 包 内的接口 Observer 是所有观察者的必备接口。希望成为观察者的类可直接实现 该接口,并在 update()方法中,填写接收消息及相关的处理代码[20]。 图 4.7 所示为系统中消息队列的设计图。 RealObservableObject 继承自 Observable 基类,它的 notifyObservers(Object o)方法重写了基类中的方法,首先 调 用 setChanged() 方 法 表 示 被 观 察 者 已 经 改 变 , 然 后 调 用 基 类 中 的 notifyObservers(Object o)。从而在继承类中直接调用 notifyObservers(Object o)方 法,就可以将传入的对象发送给所有的观察者。在消息队列设计中, RealObservableObject 负责对观察者的注册和唤醒,当新的消息进入系统时通知 相应的观察者进行处理。&&接口&& MessageMediatorI +pushMsg(in msg : Message) +regInObserver(in obs : Observer) +regOutObserver(in obs : Observer) +unRegInObserver(in obs : Observer) +unRegOutObserver(in obs : Observer)Thread +run()ObservableRealMessageMediator -in : RealObservableObject -out : RealObservableObject -msgList : List -stopThread : boolean +stopThread() +run()RealObservableObject +notifyObservers(in o : Object)图 4.7 消息队列设计图MessageMediatorI 接口提供了消息队列正常工作所需要的接口。pushMsg() -27- 东北大学本科毕业设计(论文)第 4 章 系统设计方法将新的消息加入到消息队列中。regInObserver()方法用来注册对方向为 in 的 Message 感兴趣的观察者,regOutObserver()用来注册对方向为 out 的 Message 进 行监控的观察者。 具体的消息队列实现类为 RealMessageMediator。它继承了 Thread 类,实现 线程功能,实现了 MessageMediatorI 接口提供对消息管理的支持。内部保持两个 RealObservableObject 实例,对两个方向的消息进行分别监控。内部的 List 实例 msgList 表示消息队列,通过 pushMsg()加入的 Message 实例都被添加到 msgList 列表中。考虑到系统的运行效率,RealMessageMediator 采用线程运行方式对 msgList 中 的 消 息 进 行 顺 序 处 理 , 首 先 根 据 消 息 的 方 向 分 配 给 不 同 的 RealObservableObject }

我要回帖

更多关于 物流信息系统设计 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信