交通部的部标过检,所有的测试都是从客户端发起的,也是在客户端体现的,在客户端承载了部标标准所要求的所有的功能,是整个部标平台当中工作量最大的部分,也是最繁琐的部分。

客户端设计面临两个问题:

1.基于CS还是基于BS,这是个问题

萝卜白菜各有所爱,客户要什么,我们就开发什么,从客户来讲,更适应桌面客户端,没有浏览器的七七八八问题,速度感觉上也比网页的快,操作方便。当然网页客户端也有很大的优势,部署和维护方便,不需要开发升级系统。

2.与服务端的交互通信,采用Socket, WebService还是WCF,这也是个问题

WebService的性能很差,这个基本上不考虑,Socket效率高,但开发效率低,难以维护,WCF是面向服务(Service Oriented)应用程序的统一框架,非常灵活,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义。

所以采用WCF框架,将传统的GPS软件转向了面向服务的GPS平台。通常我们在服务端,采用windows服务作为WCF的服务端宿主,采用tcp/ip协议作为传输协议,使得远距离互联网数据传输的性能大大提高,桌面客户端采用windows forms 作为wcf 客户端的宿主。客户端通信设计,参见:基于WCF的GPS平台数据通信设计

确定了两个问题后,开始确定两个设计:

1.服务端接口设计

面向服务开发,首先就要确定服务端为客户端提供什么样的服务,比如报警推送服务,报表分页查询服务,实时数据推送服务,基础数据服务,终端命令服务等。

2.客户端功能和界面设计

客户端的功能和服务端的接口是相辅相成的,功能的设计业决定了界面如何设计。

可以说部标平台的复杂性在于交互的复杂性,很多人对于开发的乐观,是因为在开发初期,无法清晰的看出具体的交互设计,更不能明确的估算工作量,由于交互,客户端的设计和服务端的设计是互相影响的,客户端增加一个功能,往往面临着服务端、通信端的功能逻辑的改变,虽然我们竭力从设计上采用面向服务的设计、面向对象的开发,仍然避免不了这种交互带来的互相影响和工作量的增加、测试难度的增加。购买部标平台源码联系2379423771@qq.com

GPS软件界面设计,参见:GIS、GPS和视频监控界面设计

下面着重说下功能设计。

功能模块主要包括:

1.地图操作

主要包含了拉框放大、缩小、测距、电子围栏、标注、历史轨迹、区域查车等功能,当然了还有些依赖于地图的附加功能。

我们采用基于GMap.NET SDK来作为地图引擎,可以灵活的采用和切换谷歌地图、高德地图等,采用local cache的模式,浏览过的地图图片将会被存储在本地硬盘当中,提升了用户浏览地图的用户体验。GMap.NET具体开发参见:GMap.NET二次开发

对于地图的电子围栏坐标,我们采用地图算法库,直接转换为原生的GPS坐标,存入数据库中,这样便于电子围栏算法模块的判断和分析。

2.终端命令下发

包含了部标808标准中所要求的所有的指令下发功能,以可视化的形式提供给用户操作。

终端命令很多,大部分是用户不常用或不需要的功能,但又是必须的,或者是部标过检必须的,所以设计时,需要要考虑权限功能限制的可伸缩的功能布局。

终端命令下发的用户体验设计也是比较有难度的,从命令下发、服务器执行下发给终端、终端执行后应答、数据上传最后反馈到客户端界面,是个时间未知的异步过程,必须要设计一个超时跟踪的定时器跟踪命令状态,来给用户一种同步的命令执行的感觉,在点击按钮后,可以跟踪到命令执行的最终状态。部标808指令的开发参见:基于部标JT/T 808协议及数据格式的GPS服务器

3.报表查询

部标中规定的所有的报表都需要显示在客户端,提供各种组合查询条件,当然了像BS网页客户端一样,也需要考虑分页查询和报表导出。

4.数据管理

平台所需要的用户、角色、权限分配、基础数据管理、车辆、车组、业户的管理、参数设置这些增删改查的功能,也必须要做入到客户端中;

5.报警推送

报警定义、报警推送、报警处理、报警弹窗声音地图展示的功能。

6.实时数据

实时数据的推送、状态刷新、地图显示等功能

7.图表

各种统计报表以柱状图、曲线等图表的形式显示出来,比如上线率统计、车速曲线图、油耗曲线图等。

8.运管平台对接

平台能够响应政府平台基于交通部部标809协议下发的岗位巡检指令,上报到政府平台。平台在收到车辆上报动态位置信息后,即刻向政府平台实时上报车辆的位置、状态信息和报警信息,响应政府平台对车辆的拍照和监听等车辆远程控制指令,并显示政府平台下发信息。809的开发,参见:基于JT/T 809-2011的(已过检)GPS平台数据交换及转发服务器

GPS部标平台的架构设计(九)-GPS监控客户端设计的更多相关文章

  1. GPS部标平台的架构设计(四)-百度地图设计

    部标GPS软件平台之百度地图设计 地图是客户端中不可缺少的一个模块,很多人在设计和画图时候,喜欢加上地图引擎这样高大上的字眼,显得自己的平台有内涵,说白了就是用第三方的SDK来开发,早期的GPS监 控 ...

  2. GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台

    在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的 ...

  3. GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台

    注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...

  4. GPS部标平台的架构设计(一)

    设计和开发一个GPS系统似乎并不太难,很多人马上就想到了地图,放大,缩小之类的功能,最多就是在加点报表之类的东西,就成了. 这种观点造成了业界内,很多GPS系统粗制滥造,不堪大用. 事实上,设计和开发 ...

  5. GPS部标平台的架构设计(六)-Android手机客户端和手机查车设计

    对于GPS软件平台,虽然有功能非常丰富的PC端或BS客户端,但是客户也是需要移动客户端来作为自己的辅助工具,也是需要的.做为GPS平台的设计者和开发者,在开发移动客户端的时候,也需要从常规的服务器开发 ...

  6. GPS部标平台的架构设计(五)-地图服务算法库

    GPS平台,需要和各种地图打交道,需要解决以下的问题: 1.坐标偏移,这个不用多说,需要将原始坐标加偏,然后在百度地图或谷歌上显示出来,需要注意的是百度地图的加偏是偏上再偏,谷歌.高德地图等是火星坐标 ...

  7. GPS部标平台的架构设计(二) 可扩展性设计

    在设计的前夕,设计人员喜欢把领导对未来业务的期望带入到设计目标当中,比如当前业务也不过是接入几千辆车,未来业务增长也不过几万台,但领导很多激情,强势要求二期平台的接入能力要达到20万台,这个要求带入到 ...

  8. GPS部标监控平台的架构设计(八)-基于WCF的平台数据通信设计

    总体来讲,GPS部标平台的软件开发是一个对网络通信和应用程序之间通信的技术应用密集型的开发工作,也是有一定设计技术含量的工作. 1.设计通信接口 在设计的时候,根据职责划分,拆分成不同的应用子系统,对 ...

  9. 基于C#和Asp.NET MVC开发GPS部标监控平台

    基于交通部796标准开发部标监控平台,选择开发语言和技术也是团队要思考的因素,其实这由团队自己擅长的技术来决定,如果擅长C#和Asp.NET, 当然开发效率就高很多.当然了技术选型一定要选用当前主流的 ...

随机推荐

  1. Merge的用法

    merge的使用说明: merge [into] [目标表] using <源表> on 条件 when matched 操作 when not matched 操作; 首先,请参看两张表 ...

  2. asp.net c# 网上搜集面试题目大全(附答案)

    1.String str=new String("a")和String str = "a"有什么区别? String str = "a"; ...

  3. Shell 编程基础之 [ 与 [[ 的异同

    一.简介 [ 与 test 等价,是 bash 的内部命令,GNU/linux 系统的 coreutils 软件包通常带 /usr/bin/test 和 /usr/bin/[ 命令.如果我们不用绝对路 ...

  4. 【Oracle】oracle10g以后利用q-quote特性简化包含单引号后双引号的字符串写法

    The Q-quote delimiter can be any single- or multibyte character except space, tab, and return. If th ...

  5. [转] 前端中的MVC

    MVC是一种设计模式,它将应用划分为3个部分:数据(模型).展现层(视图)和用户交互(控制器).其中: M - MODEL(模型) V - VIEW(视图) C - CONTROLLER(控制器) 一 ...

  6. Linux CentOS中使用SQL*Plus启动和关闭数据库

    启动和关闭数据库的常用工具有三个 一.SQL*Plus 在SQL*Plus环境中,用户以SYSDBA身份连接到Oracle后,可以通过命令行方式启动或关闭数据库. 二.OEM(企业管理器) 利用OEM ...

  7. openx中如何使用site-variable(参数)限制(关键词)广告显示

    openx是个很强大的广告管理系统,可以根据不同的情况显示不同的广告.其中可以根据get参数值的不同来显示,即delivery limitation中的site-variable选项,name表示变量 ...

  8. 【noip 2004】 合并果子

    noip2016结束后的第一份代码--优先队列的练习 合并果子 原题在这里 #include <iostream> #include <queue> #include < ...

  9. asp.net在线预览txt文件(简单实现)

    最近在做文件的在线预览,发现txt文件没有一个较好的方法去实现,想了想可能是比较简单就直接在后台输出了 txt文件

  10. 浅谈iOS触摸事件理解

    iOS的触摸事件个人总结,分为两步: 第一步:是找到哪个视图上触摸 第二步:分析由谁去响应(响应者连) 1.寻找被触摸的视图原理如下图 hitText:withEvent:的方法处理流程: 首先会在当 ...