APP下载

基于北斗卫星定位的物流平台的设计与实现

2016-11-11陈启锋莫家勤

大众科技 2016年1期
关键词:北斗终端服务器

陈启锋莫家勤

(1.广西壮族自治区公安厅交警总队高速公路管理支队,广西 南宁 530000;2.桂林大为通信技术有限公司,广西 桂林 541004)

基于北斗卫星定位的物流平台的设计与实现

陈启锋1莫家勤2

(1.广西壮族自治区公安厅交警总队高速公路管理支队,广西 南宁 530000;2.桂林大为通信技术有限公司,广西 桂林 541004)

基于北斗卫星导航系统在定位、导航方面的广泛应用以及国家对北斗应用的大力推广,面对我国物流行业存在的回程车辆难以找到货源,发货方难以找到空闲运力,造成的资源浪费情况,以及物流车辆难以定位、难以调控的问题。基于北斗卫星定位技术,结合无线通信、WebGIS、WebSocket等技术,建立物流平台,提供物流车辆精确定位、车辆的统一调控管理、车辆跟踪、发货收货等功能,充分解决物流车辆管理问题,提高空闲资源利用率,推动北斗导航和物流行业的融合,提升物流行业信息化程度。

北斗;物流平台;定位;信息化

1 引言

北斗卫星导航系统(下称北斗)是我国自主研发和运行的全球卫星导航系统,它具有定位精度高、可全天候使用、通信快捷和运营价格低廉等特点,可广泛应用于交通、水利、石化和海洋等国民经济领域。我国的北斗二代已具备区域服务能力,卫星导航与无线通信进入一体化融合发展,形成集定位、无线通信和互联网于一体的应用,将迅速提高人们对导航与位置服务的认知度和依赖程度。2013年我国自行研制的北斗开始为中国和周边亚太地区提供定位导航授时服务,在定位、导航、授时、识别、事件检查方面有了广泛的应用[1]。

目前,我国交通运输的机动性、可达性和效率还比较低,经济发展和社会运转成本相对较高。我国全国道路运输货运车辆运输效率和规模化、组织化、集约化程度不高,运输协调、调度及综合控制能力较弱,使得货运车辆平均实载率较低。存在的普遍问题是:一方面,货运车辆在长途运输运抵货物后,表现为外地的返程车,具有极强的目的性(须返回出发地)和时效性(不能等太长时间),导致寻找货源面临着许多困难,空载率相当高[2-3]。另一方面,拥有大量货物的货主因为无法有效找到合适的车辆承运,负担着较高的运输费用,使生产成本上升。这就形成了一个怪圈,一方是“货找车”,想多快好省地把货运出去,而另一方是“车找货”,充分利用空闲资源获取更多效益。物流车辆的管理面临的问题主要有:难以实时掌握车辆具体位置,回程车难以找到货物配载,车辆难以调度[4]。

基于此,笔者提出了建设一套基于北斗卫星定位的物流平台的解决方案,用于解决物流车辆管理过程中面临的问题。此平台是一个集北斗卫星定位技术[5-7]、GSM通信、WEBGIS技术[8]、物联网及计算机技术于一体的物流车辆管理平台,提供物流车辆管理、人员及货物追踪管理、北斗定位跟踪等,能有效解决物流企业管车难、找车难、配货难、跟踪难、信息断层等问题,提升物流车辆的利用率,提高车辆配载率,对车辆、人员及货物的有效管理和跟踪定位。

2 系统概述

基于北斗的物流平台是软硬件集成的系统,硬件模块负责车辆运行状态、实时图片、定位数据的获取,同时需要完成将数据上传到服务中心的任务,硬件模块的关键是基于北斗卫星定位的车载终端;软件模块是系统的核心,需要实现所有信息的统一管理,同时提供给用户和管理者使用和管理的接口,满足用户参与到物流运输环节的所有需求,软件模块一套是基于.NET技术开发的系统,整体架构如图1所示,终端通过北斗卫星定位,通过 GSM网络将数据发送到服务器,通信服务器通过监听特定的端口接收终端上报的数据并对数据进行处理、存储,用户和管理中心通过向应用服务器发送网络请求获取信息,并使用系统的各项功能。

图1 系统总体架构

车载终端生产厂家较多,选用的时候需要考虑终端的使用性能,经过多次对比选型,本系统选用的是厦门雅迅网络生产的汽车行驶记录仪 GK-110R7,该终端具有系统精确定位、音频采集、视频接入、各类信息采集、数据存储、安全告警等重要功能,符合本平台的要求。

物流车辆管理平台软件包含用户平台、中心平台和数据存储平台三个主体部分。通过用户平台考验查看可用的运力或者可供运输的货源,实现发货或运货,同时可以管理个人的运单信息,以及实时查看本人货运的实时运输情况。中心平台负责车辆管理调度,以及查看车辆的实时视频或者图片信息,并对车辆状态进行异常报警监管,车辆指派管理,实现据进行统计分析,提供报表展示。数据存储平台包括数据库服务器、通讯服务器、应用服务器等,负责获取车载终端实时上报的视频、图片、位置信息,并进行数据分析和处理,提交到数据库中存储,同时需要响应用户由网页端发送过来的请求信息,将信息及时提交到前端进行显示。

3 物流平台软件设计

3.1 系统架构层次设计

基于北斗卫星定位的物流管理平台集成了北斗卫星定位技术、无线通信技术、GIS位置信息技术和计算机数据处理技术,由于系统平台的复杂性,经过对各个子系统功能的抽象分解,以及考虑系统中关键环节对系统性能和容量的影响,从应用和程序实现的角度出发,最大限度的保证系统中的数据共享和低耦合度。将系统分为不同的层次结构进行开发实现,即UI层、业务处理层、访问接口层、通信接入层、数据存取层和转发接入层。分层结构如图2所示,此分层机制在保证系统性能稳定,逻辑清晰的同时,也给系统的扩展带来了极大方便。

图2 系统架构层次图

通信接入层,主要负责和物流车载终端之间通信链路的管理,位置数据、图片数据的接收,命令的下发。将该层次与业务处理层明显地分离开,可以将数据获取和业务处理分离开。

业务处理层负责数据处理,包括来自于物流车载终端的数据处理和UI层提交的业务数据请求处理。并负责把各类业务数据提交给数据存储层进行数据存储。

数据存储层负责系统的数据存取操作,系统用SQL Server数据库管理系统数据,数据库主要由系统数据库和百度地图数据库组成,系统数据库包括车辆信息表、位置信息表、用户信息表、终端信息表、告警信息表等。

访问接口层负责接收客户端请求,用户的所有数据请求、数据接收操作均通过此层次进行转发处理,用户请求会通过该层次转发到业务处理层进行处理,访问量过大时,此处会成为系统瓶颈,需要采用负载均衡技术实现请求的分发,提升系统并发能力。

转发接入层将UI层对终端的命令下发请求进行转发,通过此层次实现UI层和车载终端的数据通信。

按照分层的设计,UI层将无需过分关心系统内部的复杂实现,只需要按照规定好的接口获取需要展现的数据即可,专注于用户交互和UI体验方面的问题。

3.2 系统功能设计

本系统的研发是为了解决“货找车”和“车找货”的问题,同时需要实现对车辆运输路线的实时跟踪,因此在功能设计的时候需要满足用户和企业两个方面的需求,既要包含针对用户使用的平台功能,也要包含企业管理的功能,基于此,我们完成了如图3所示的功能结构。

图3 系统功能结构图

用户平台提供给用户查看平台上的空闲运力和货物资源,给用户提供资源信息的获取,用户注册后可以进行信息发布和个人信息管理,同时可以查看订单信息以及运输车辆的实时运行情况。

企业管理平台是平台运营企业进行货运管理的接口,可以对车辆、终端、客户、订单等信息进行统一管理,有效实现车辆的运行状态实时监控和调控。

4 关键技术分析

物流车辆管理系统需要获取大量车载终端上报的数据,系统最关键问题是如何保证系统的高效性、稳定性和实时性,这需要系统能够快速、精确、全面的获取车辆状态和定位数据,同时将处理后的信息实时动态地传递到监控中心,因此,数据接收处理和实时传送成为本系统的两大关键技术问题。本文在解决这些关键问题时,基于SuperSocket开源框架实现终端接收服务[9]、MSMQ作为消息队列[10-11]、WebSocket页面接收服务[12-14],通过三者的结合,构建车载终端与前端页面、数据库之间的数据通道,保证数据在车载终端、用户页面、数据库之间实时传递。

4.1 数据接收处理

SuperSocket是一个Socket服务器框架,框架内部实现了对Socket编程操作的封装,在性能上、可拓展性上都有很出色的表现。该框架底层实现基于SocketAsyncEventArgs和线程池技术。主要为高性能通信服务器应用程序而设计,能够显著的改善服务器程序的性能。Supersocket通过以下三个步骤实现数据接收和处理:

4.1.1 定义连接类

在SuperSocket中,每个TCP连接都对应着一个Session对象,通过Session对象实现对TCP连接的操作,SuperSocket连接类中实现了连接接入、连接断开、连接请求处理等方法,通过这些方法可以很方便的对TCP连接进行处理。

4.1.2 定义接收过滤器协议

接收过滤器作用是根据设定的格式接收固定形式的数据,过滤器的定义可以继承框架中提供的模板,也可以根据自己的需求自定义新的数据形式。过滤器协议负责接收符合形式的用户请求,接收数据时,还需要对用户请求类型进行分析,每种请求都需要进行专门的业务处理。SuperSocket中,所有的客户端请求都会被实例化为RequestInfo类,该类包含了key和body属性的定义,根据key属性可以判断请求的类型,从而进行相应的业务处理。因此在过滤器中还需要将客户端请求实例化为RequestInfo类型。由于在北斗终端中,消息格式是由标准规范严格定义的,因此RequestInfo类中的key属性可以和消息ID对应起来,根据消息ID判断请求的类型,从而实现业务处理的分发。

4.1.3 定义命令类

命令类其实就是业务处理类,每一种请求都由一种命令类对应,处理该请求的具体业务,因此在服务器设计中,需要定义多个命令类。SuperSocket要求每个命令类在定义时都需要继承 CommandBase类,该基类中实现了抽象方面ExecuteCommand,所有的业务操作都在该方法中完成。由于车载终端的消息ID都为数字形式,命令类类名无法直接使用数字定义,难以实现类名和消息ID的对应,因此需要对命令类的Name属性进行重写,将消息ID和命令类类名对应。对应的方法如下代码段所示:

public override string Name { get { return "00-02"; } }

其中return语句之后的字符串为消息的ID。

4.2 MSMQ消息队列

在进行系统设计时,考虑到系统的业务处理速度有可能跟不上接收请求的速度,导致系统无法及时处理请求,甚至会丢失部分用户请求。本文引入消息队列的处理机制,将获取的请求全部存放到队列中,业务模块处理时,直接从队列中获取请求信息,这样保证了数据的完整性,同时,当数据量增大时,可以方便地拓展系统的业务处理能力,实现异步处理数据,提升系统的总体性能。

MSMQ是微软的消息队列,能够实现不同应用间的异步通信,消息的发送者把自己需要发送的信息放入一个叫做Message的容器中,并将其保存至系统公用空间的消息队列中,本地或者是异地的消息接收程序从该队列中取出消息进行处理。开发时,先添加windows组件中的消息队列组件,引入命名空System.Messaging,MSMQ消息队列支持同步和异步两种消息类型,同步方法使用的是Peek()和Receive(),异步使用的是:Beginpeek()和 Beginreceive(),两者没有本质区别,都是封装好的方法,只要在程序中直接创建MessageQueue对象,通过对象来调用这个方法就能完成数据的收发。

4.3 WebSocket实时更新

在WebSocket出现之前,网页数据的实时更新实现方式都是通过轮询来完成,最常见的是采用AJAX技术实现长轮询,完成页面的异步刷新,实际上,这种方式不能算是真正的实时。WebSocket能在浏览器和服务器之间进行全双工通讯,其本质是维护一个介于浏览器和服务器的TCP连接,保证数据在两者间的快速实时传递,以主动的方式进行数据更新,保证了信息的实时显示。

采用WebSocket进行进行数据更新,需要完成服务器端和客户端的设计,服务器端本质上是TCP服务器,但是有别于通用的TCP服务器,此服务器需要处理WebSocket握手信息,负责处理页面发送过来的TCP请求并建立起服务器和浏览器的数据连接通道,才能进行数据收发。本文中,通过在SuperSocket框架中加入WebSocket协议并完成相应的浏览器数据请求处理来建立服务器端。客户端负责发送浏览器与服务器建立连接的请求,以及数据收发工作。客户端的实现相对简单,WebSocket提供了一套基于JavaScript 的API,通过调用该API中包含的send、onopen、onmessage和 onclose等方法就可以实现页面请求发送和数据的收发。

5 系统测试

系统测试是保证系统稳定而可靠运行的必备环节,需要对系统的每个功能进行全面的测试,本节选取了其中的两个功能进行说明。

5.1 通信服务器测试

通信服务器是保障系统获取数据的关键环节,服务器需要从容应对大量终端接入的情况,不能因为终端的增加而降低处理能力,因此测试时需要对服务器进行压力测试,通过测试查看通信服务器能终端接收能力和资源占用情况。本测试中使用压力测试工具TcpServer模拟车载终端,用一台PC电脑作为通信服务器,通过模拟终端发起连接,压力测试工具不断增加TCP连接数,同时观察服务器的运行情况,主要观察的两个指标,一个是TCP有效连接数,另一个是CPU使用率,经过测试,本系统的通信服务器在接收到10000的终端连接时都能一如既往保持着100%的有效连接率,对于单台PC来说,处理10000个连接已经是很优越的性能了,从这可以看出本系统的通信服务器的有效连接率还是很高的。而CPU占用率随着连接数的增加会略有增加,接入3000个连接时达到32%,当接入7000个连接时占用率为63%,这是一个必然的结果,因为维持每个连接都是需要占用CPU资源的,而且测试时用的是单台的计算机,资源占用率会比较大,在实际中,接入大量终端时,需要部署服务器集群进行分流,只要保证硬件资源足够,就系统就能运行正常并能够处理不断增加的终端接入,能有效的保证系统的拓展能力。

5.2 功能测试

第二个测试的功能是车辆定位,这个在查看车辆运行状态过程中最为关键的两个功能,通过车辆定位功能可以实时查看车辆运行位置和运行情况,轨迹回放功能可以回看车辆行走过的完整路程。对于车辆定位,在用户点击具体车辆时,会自动获取该车辆的基本信息和定位信息,同时弹出信息窗口,信息窗口如图4所示:

图4 车辆定位功能展示

6 结语

本文针对物流运输行业中管理者、货主和车主遇到的难以找到空车、难以实时掌握车辆具体位置,回程车难以找到货物配载,车辆难以调度等问题,从用户实际需求出发,基于斗卫星定位技术、GSM通信、WEBGIS技术、物联网及计算机技术,研究并实现了一套物流管理平台,给用户提供了一个容易找车,容易找货,容易管理的平台,充分解决物流管理中用户碰到的问题,提升效率的同时能充分降低成本。同时拓展了北斗导航技术的应用领域,以技术提升产业能力,优化物流行业资源配置,推进现代物流信息化的发展,提升物流行业整体经济效益和竞争力。

[1] 宋诗斌,钱军琪.基于北斗导航的智能交通系统设计[A].第三届中国卫星导航学术年会电子文集-S01北斗/GNSS导航应用[C].中国卫星导航学术年会组委会,2012.

[2] 赵燕.基于云计算的运输车辆远程实时监测与管理系统设计[D].太原:太原理工大学,2014.

[3] 黄旭.基于 BD2/GPS双模应用的危化品物流车辆远程监控系统[D].重庆:重庆大学通信工程学院,2014.

[4] 滕志军,张明儒,许建军,等.北斗卫星导航系统在物流监控管理中的应用研究[J].自动化仪表,2015,36(12):1-4.

[5] 张向南,赵庆展,何启峰,等.基于北斗的物流车辆监控系统[J].物流技术,2015,34(8):251-254.

[6] 胡亚芳,刘荣.基于北斗导航的物流监控定位服务平台预设计[J].北京测绘,2015,(2):47-49.

[7] 朱俊涛,张颖.基于北斗导航的现代物流综合运输服务系统[J].数字通信世界,2012,(12):74-76.

[8] 李鉴海.基于WebGIS架构的北斗/GPS车辆监控系统设计与实现[D].长沙:国防科学技术大学,2010.

[9] SuperSocket.可拓展的 Socket服务器框架[EB/OL]. http://www.supersocket.net/About.2013-6-30.

[10] 郭海伟,张晓燕,李青龙,等.使用.NET服务队列组件进行通讯[J].内蒙古石油化工,2005,(7):18-19.

[11] 朱大群, 范秋霞. 使用MSMQ实现应用程序间异步通讯[J].电脑编程技巧与维护,2004,(8):73-78.

[12] 黄晓安,何亮,许宁.使用 HTML5 WebSocket 构建实时Web应用[EB/OL].http://www.ibm.com/developerworks/ cn/web/1112_huangxa_websocket/.2011-12-15.

[13] 肖在昌,杨文晖,刘兵.基于WebSocket的实时技术[J].电脑与电信,2012,1(1):40-42.

[14] 郑玲,郑晓天.基于 WebSocket的电力系统实时数据更新研究[J].计算机与现代化,2013,(1):85-87.

Logistics platform design and implementatation based on Beidou satellite positioning

Based on the situation of heavily promotion of our country and widely used of Beidou satellite navigation system in positioning and navigation. At the same time, in logistics industry, there exists problems like the return trip vehicle difficult to find suppliers, shipper difficult to find spare capacity, logistics vehicles difficult to locate and control, all these will cause the waste of resources and inconvenient to manage vehicles. Based on the technology like Beidou satellite positioning, wireless communication,WebGIS and WebSocket, establishing a logistics management system which can positioning logistics vehicles accurately, control the vehicles unified, track vehicles and also can help delivery the goods. The system will fully solve the problem of logistics vehicles management, raise the utilization ratio of idle resources, promote the inosculation of Beidou navigation and logistics industry, improve the informatization level of logistics industry.

Beidou; logistics platform; positioning; informatization

F253

A

1008-1151(2016)01-0001-04

2015-12-11

陈启锋,男,广西壮族自治区公安厅交警总队高速公路管理支队工程师。

猜你喜欢

北斗终端服务器
北斗时钟盘
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
“北斗”离我们有多远
中国服务器市场份额出炉
多功能北斗船载终端的开发应用
得形忘意的服务器标准
首个北斗全球“厘米级”定位系统开建
中国的北斗 世界的北斗
计算机网络安全服务器入侵与防御