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

注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已再也不提供源码升级的服务,由于目前咱们开发的主流新版本是2015-2016年近一年推出的基于spring4+springMVC4+mybatis3+Hibernate4+junit4框架构建高性能企业级的部标GPS监控平台,相对于原来的2014年研发的旧版的struts版本,从性能和功能上有了较大的提高,融合了大量客户的需求意见,相对于Struts版本,主要的特色,请点击文章详细阅读和比对:

基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

 在开发一个基于Java的、BS架构的GPS平台的时候,咱们老是要花费不少心思去选择框架,在此基础上进行封装提供易用的功能,来做为咱们快速开发的平台。

有的公司有积累,可能在此上面花费的时间比较少,有的没积累,可能为了选择什么样的框架,为了优缺点争论不休,耽误个把月时间都有可能。前端

我但愿在此给出一个GPS平台的标准模版,供你们参考,统一思想,快速进入状态。mysql

平台天然是基于传统的MVC模式的思想来开发,自不待言,而MVC框架,我选择专一于控制层的Struts2,框架,专一于容器管理,面向接口和服务开发的Spring框架,专一于持久层的Hibernate、iBatis框架。专一于通讯层开发的Mina框架。spring

采用框架,我首先想到的一点,就是约束和统一,在团队开发中,最忌讳的就是不统一,团队中咱们总有些开发技术稍微落后,思想跟不上的成员,靠沟通是没有用的,而是要小孩子的学步车同样,强行把他框在一个范围内作开发,让他跟上整体的开发水平和节奏。不懂得MVC什么意思,也勉强能作出MVC的东西。因此如今的所谓的架构师,不少都是对这些东东玩的转,玩的多了就慢慢有了架构的思想,就想玩游戏,玩多了,就对游戏体验关卡设计有了感受,再深刻了解后,就开始有了格局,开始注重设计了.sql

1) Hibernate框架数据库

  这个只要是作Java开发的,基本都在用,除了基本的ORM映射功能以外,我选用它,主要是很方便的自动建立表,在更新实体类的属性后,自动更新库表字段,以及能够方便移植到不一样的数据库中,使用Hibernate框架,维护多个关系数据库。只须要维护不一样的数据库配置的xml文件,而不是维护多个代码版本。mybatis

  若是使用PowerDesigner工具结合起来,从建模到代码自动生成到逆向更新模型,简直是后台开发人员的最爱。架构

2) Ibatis框架框架

  这个是将开发人员从写SQL,根据查询条件,动态生成SQL的地狱中,拯救出来。工具

  不少平台代码量貌似很大,其实都是唬人的,由于重复的写代码,代码行数能不大吗。好比GPS平台中,几十个、上百个报表,每一个报表都有四五个动态组合查询条件,你若是本身在代码中拼SQL,代码量很壮观,可是很低级,工做很低级,很容易出错,错了也很难跟踪。也不容易移植。若是要SQL分散在不一样的代码文件中,从mysql一直到Oracle,多是又是一个脏活。性能

  我对Ibatis进行了改造,自动加上分页代码,开发人员就不用管分页,由Ibatis获得SQL后,自动根据不一样的数据,加上不一样的分页机制。

  如mysql分页,就是在select 语句后面加上limit , SQLserver的分页,则是根据rowNum分页,等等。

 

3)struts的规划和应用

    struts是面向前端请求的处理框架,咱们首先要概括前端的功能请求,并分类,以此做为规划struts的依据。

    首先GPS的请求,主要有:登陆,实时数据,报警,报表,基础信息增删改,报表分页查询,地图持久化操做请求,终端指令下发,

    在设计Action的时候,尽可能以单元造成进行规划,对XML文件按功能模块划分。对URL命名造成标准规范。

 

 

购买GPS平台或GPS监控系统源码,联系我 2379423771@qq.com

4)quartz定时器框架

    不少GPS平台,大量使用了存储过程了,我见过有家公司维护100多个存储过程,太壮观了,我都不知道若是写存储过程的人走了,接手的人是否是要哭了。连分页也要用存储过程,估计负责的人很擅长存储过程。但他只顾本身爽了,即便不考虑移植,也得考虑维护、调试、SVN库提交、单元测试等等。

    其实代码中,能够作到零存储过程,对于报表统计类的,能够彻底采用定时统计的方式进行。如上线率,能够半小时统计一次,也能够一个小时统计一次,彻底不用写存储过程,经过漫长的计算,对大量的数据进行聚合运算,得出一个结果来。

  定时统计是一种规划收到,经过对将来数据增加量的估计,来设计现阶段的数据生成行为,经过规划来避免对数据库大开大合的查询。当车辆数和数据量达到必定层级的时候,就显示出定时统计的威力了。好比报警次数统计,若是容许用户统计任意时间端的报警次数,虽然很灵活,也知足用户需求,可是一个大型GPS平台,每个月要产生出巨量的垃圾报警。一个报警统计的SQL查询或存储过程查询就把数据库的CPU推向高潮。

5) Spring框架

    做为JAVA开发的人,就不用说了,是一个容器,一个粘合剂,将各个层的功能,经过配置和依赖注入,达到粘合的做用。

    做为GPS平台,咱们推崇的是面向服务开发,因此不可避免的要使用RMI,而Spring很容易将一个Service类,转换成一个远程RMI调用接口,开通接口服务。

    有了Spring框架,咱们就能够专心致志的规划咱们的服务了,而不用关心是远程调用仍是本地调用的底层机制了。

    同时Spring的面向接口开发,自然不自觉的是咱们的程序具有了初级的可扩展性。

    如地图API服务,咱们可能用Java经过http请求后台调用百度地图的API来逆向地理解析,也能够用高德或谷歌的,那咱们就规划一个LocationService, 定义这个服务提供加偏、地址转换等功能。至于服务是如何实现的,调用者不用关心。  

    固然了在Spring中,也很是享受工厂模式的灵活运用,经过在配置文件中配置。咱们能够根据调用参数不一样,生产出不一样的接口类,如一个终端数据包上来,多是部标808协议,也多是DB44,也可能厂商自定义协议,咱们能够根据spring的配置,调用不一样的解析插件来进行解析。让整个代码结构都显得简洁有气质。

 
 
主界面:
 
 
2.实时车辆状态树
 
 
3.丰富的地图功能
  1)支持百度、高德和四维三种地图,其中,高德地图和四维地图是部标检测时要求必需要选用其一的地图;
  
  2)  圆形、矩形、多边形电子围栏标注,线路支持分段限速;
  3)车辆地图图标支持后台风格选择,目前支持Arrow和Car两种模式,根据车辆的行驶状态,变换成不一样的颜色;
  
  4) 基于模版定制车辆信息窗口
 
4.充分支持jt/t808 2013协议中的所有协议栈
 
5.丰富的报表支持
 
 
6.强大的系统配置功能,经过系统配置,能够灵活适用于各类场景的支持。
 
7。基于saas模式的平台架构,支持多企业,多部门的架构,企业和部门能够独立设定角色。
 
相关文章
相关标签/搜索