需求分析
需求背景
不管是出于安防的目的,还是出于管理的目的,或者是出于增值服务的目的,基于位置服务的定位系统越来越受到各行各业的重视。在安防领域,定位系统的应用可以变被动式安防为主动式安防,彻底告别事后追责式的安防管理。在管理领域,不管是最简单的考勤管理还是盘点管理,或者是活动管理(比如监狱内的放风管理),甚至流程管理(比如动车的复杂检修流程管理),加上位置管控,可以更加科学和高效地完成管理工作。在增值服务领域,比如儿童乐园的儿童兴趣分析、工厂工人执行任务效率分析,借助位置服务,也就是定位系统后,可以提供有理有据并且精准的增值服务。
所以,不管定位对象是人、物资、车辆,还是高附加值的商品,基于位置服务的定位系统都可以在各种维度成为丰富的管理工具,并且定位系统除了基础的位置移动、轨迹回放等,还需要支持包括视频监控系统的联动、IP广播系统的联动、继电器控制门禁或报警器、平台触发报警或其他业务的短信通知等。
需求分析
基于需求背景,我们通过以下几个维度去分析需求,分别为:技术开发需求、用户使用需求、业务流程需求、隐私安全需求、法律法规约束需求。
1.技术开发需求
因为要对接外部硬件的数据,并且很多项目会收取大量的数据,所以采集端有高性能要求,并且有跨平台的需求,所以采集端我们采用C++编写,并使用QT。算法层面,要兼容性能和采用大量的数学工具,因此算法层采用C语言编写。前端交互或第三方有大量的数据交互,为了保证实时性和速度,我们采用了消息队列的形式,消息队列使用了比较成熟的rabbitmq。网站部分我们采用了大量的成熟稳定的框架和插件,包括springboot,mybatisPlus,vue2等。移动端,考虑到终端设备的覆盖情况,我们适配了Android操作系统,因此使用了JAVA语言。由于有跨平台的需求,以及所见即所得地展示需求,地图构建我们采用了leaflet框架。
2.用户使用需求
根据我开发和项目经验,我们搜集了大量的用户需求,包括但不限于平台功能的丰富性需求,平台的易用性需求、平台的可靠性和安全性需求,这部分需求,我们已经通过十几年的开发升级日臻完善。还有部分拥有特定的使用需求,统一定位平台保留了为用户定制开发的选项。
3.业务流程需求
不同的应用场景对应着不同的业务需求,比如有些访客定位管理的用户对访客的行走路线和停留时间需求旺盛,养老院的老人定位的用户对老人是否按时吃饭、吃药、洗澡等需求旺盛,纺织厂布车管理的用户对布车是否按照流程进行生产需求旺盛……针对不同业务场景下不同的业务需求,统一定位平台已经高度封装和抽象了业务逻辑,并且不同的业务逻辑完全可以自定义。
4.隐私安全需求
统一定位平台需要采集应用场景的建筑物地图信息,因此对于使用方的隐私拥有较高的需求,所以我们的统一定位平台支持本地部署,远程部署支持数据加密。另一方面,统一定位平台的定位对象的基础资料和位置数据也属于隐私,统一定位平台专门对用户的基础资料和位置数据进行了加密。统一定位平台算法及应用服务器程序均部署在用户指定的本地或远端,所有数据只在用户端流转,不会流向任何其他地方。
5.法律法规约束需求
不同的用户由于法律法规,拥有众多约束需求。比如数据库不允许使用非国产数据库,操作系统不允许使用非国产操作系统,插件或框架在发现安全漏洞后需要快速替换,产生的数据需要分布式存储等等。统一定位平台在众多约束需求领域已经充分考虑,比如数据库可以支持国产数据库,操作系统支持国产操作系统,插件框架拥有多种选择,数据存储可以多次备份和存储……
设计原则
跨平台
统一定位平台考虑到不同用户使用的操作系统和不同使用终端的差别,在开发之初就通盘考虑,可以在Windows、Linux、Android等不同操作平台上运行。
开放性
根据不同用户定制化系统的需求,以及与现有系统的融合与交叉,统一定位平台提供包含所有数据的详尽的调用接口,同时也具有不同数据类型的消息订阅模式。
自由性
由于不同用户需要的功能模块不同,对不同功能模块呈现方式的需求也不尽相同,统一定位平台的绝大部分功能模块都可以自由配置,以最贴合用户使用需求的方式做出最终呈现。
稳定性
系统软、硬件架构科学合理,统一定位平台的引擎采用服务器级别的开发框架,数据接口采用轻量级的消息发布模式,前端展示采用多级缓存机制,确保统一定位平台能够支持7×24小时稳定运行的要求。
简易性
系统操作流程明晰、高效,用户界面简洁、友好,力求做到所见即所得。对于统一定位平台,用户不需要进行复杂的配置和运维,简单培训即可上手操作、维护。
拓展性
统一定位平台除了最核心的位置服务外,同时兼容了视频监控、继电器控制、IP广播、短信网关等设备;另外在业务逻辑层,我们抽象和概括了绝大多数的应用场景,提前封装了很多业务逻辑在统一定位平台之内。
平台架构
统一定位平台由设备层、数据运算层、数据存储层、应用逻辑层、数据接口层以及展示交互层组成。
设备层包含定位基站和外围设备(比如视频监控、继电器、IP广播、短信网关等),联动设备(比如声光报警器等)。数据层只和数据运算层产生连接,这样做的好处是外部设备不直接和核心数据产生联系,切断了外部通过设备干扰平台的可能性。
数据运算层除了接收设备层的数据,还可以下发控制命令给外部设备,然后数据运算层会计算定位对象位置,生成一系列应用数据,提交或者接受数据存储层的核心数据。
数据存储层包含了消息队列、数据库和缓冲中间件,连接数据运算层和应用逻辑层。
应用逻辑层包含所有的应用逻辑,比如报警规则的定义和监测,位置服务的定义和监测,其他应用逻辑等。应用逻辑层连接数据存储层和数据接口层。
数据接口层是平台向外暴露数据的唯一接口,不管是平台自带的网站、手机APP还是第三方定制应用,只能通过这一层连接统一定位平台的核心数据。
展示交互层包含了网站、手机APP、桌面应用程序等向用户展示数据以及和用户进行交互的模块。展示交互层是可视化的集中展现,也是用户进行增删改查的模块。
平台模块
设备层
1. 定位基站:兼容的不同定位技术的定位基站。
2. 视频监控:海康、大华等主流视频监控设备。
3. 外围设备:继电器、IP广播、短信网关等设备。
4. 网络设备:将以上设备接入统一定位平台的交换机等设备。
数据运算层
1. 网络通讯:通过网络接收或下发消息给对接的设备。
2. 定位算法:集成的不同技术的定位算法。
3. 应用数据生成:根据基础场景生成定位对象的位置,根据业务逻辑生成的业务结果。
数据存储层
1. 消息队列:数据运算层或应用逻辑层需要实时暴露的数据以消息的形式分发出去。
2. 数据库:基础档案和业务逻辑、用户权限、各种统计记录的存储。
3. 缓存中间件:展示交互层经常使用到的一些数据存储在缓存中间件中。
应用逻辑层
1. 位置逻辑:非法进入、长时逗留等的规则逻辑,位置活动或位置流程等的规则逻辑。
2. 业务逻辑:用户自定义的涉及自身业务的逻辑单元。
3. 联动逻辑:联动外围设备或联动第三方应用系统的联动规则逻辑。
数据接口层
1. 定位接口:平台中所有涉及到位置相关的数据对外接口。
2. 档案接口:平台中场景地图的基础档案,定位对象、部门等的基础档案,联动的外围设备的用户名、密码等档案的数据对外接口。
展示交互层
1. 手机APP:手机APP的所有功能。
2. 网站:网站提供的所有功能。
3. 桌面APP:桌面应用的所有功能。
功能详解
场景规划
场景规划是统一定位平台的使用者最先需要接触的功能,在场景规划菜单下,使用者可以完成全局地图的构建,建筑物的管理、建筑物内部地图的增删改查,电子地图上的区域和围栏的划分,进出组别的建立。
设备管理
设备管理功能包括定位标签的增删改查、绑定定位对象,在场景规划中构建的建筑物及地图上新增定位基站、视频监控、继电器、IP广播、短信网关等设备。
定位档案
定位档案的目的是将定位对象添加进统一定位平台,为后续实时定位、轨迹回放、活动管理做基础的数据准备,为了进一步细化定位对象的管理,新增了定位类型管理和部门管理。
报警管理
报警管理功能是奔骝定位根据十几年的定位项目经验,封装提炼的用的比较多的管理规则,可以根据不同的定位类型定制专属的报警规则,然后定位对象违反相应的报警规则触发报警,同时会联动在场景中添加的视频监控、IP广播、继电器、短信网关等设备。
定位查看
定位查看是统一定位平台最重要的功能,其中包括了实时定位、轨迹回放和实时追踪,在这个功能模块下,可以直观地在地图下查看定位对象的位置或历史走向。
位置服务
位置服务是基于定位和轨迹等基础位置之后衍生出来的服务,现有包含了考勤管理、盘点管理、活动管理、流程管理,以及进行定位部门或者对象批量操作的位置服务组别管理,同时包含了这些位置服务的统计。
统计报表
统计报表是将统一定位平台中产生的数据以图表的形式展示给用户的功能模块,涵盖了历史报警、区域热点、进出统计、联动日志、考勤统计、盘点统计、活动统计、流程统计,这些丰富的数据图表可以让使用者快速地了解管理对象或部门在一段时间内的总体情况。
BI看板
BI看板是结合了当下项目管理中比较热门的BI数据展示,考虑到不同用户间 的需求差异,我们设计了BI看板设计功能,每一个位置采用哪种数据都可以进行自定义。
数据分析
数据分析是我们内置的一款BD工具,可以自动根据对象或部门过往位置信息和所绑定的业务逻辑,在安全、效率、增值服务三个维度自动进行分析的功能,其中分析报告可打印为PDF格式,作为留档保存。
系统设置
系统设置是关于系统用户、角色、数据备份和系统属性设置的模块。
手机APP
为了方便用户使用移动终端查看并使用统一定位平台,我们的平台支持安卓平台下的手机APP应用,选取一些适合在小屏幕展示和运行的功能(已做自适应,可以在平板模式下完美运行)。
设备展示
区域定位设备
区域定位设备包括2.4G定位基站、125K锚点基站、双频定位标签。2.4G定位基站的作用为搜集定位标签发来的定位数据,并通过网络发往服务器;125K锚点基站的作用是将定位标签锚定到3-5米的区域内,以完成区域定位;定位标签附着在定位对象身上,完成位置追踪。区域定位系统的精度为125K锚点基站所调节的锚点距离。
高精度定位设备
高精度定位设备包括蓝牙AOA基站、蓝牙定位标签。蓝牙AOA基站搜集蓝牙标签发来的一系列到达角度,其中起到核心作用的是蓝牙AOA基站内的阵列天线,然后发往服务器;蓝牙定位标签附着在定位对象身上,完成位置追踪。高精度定位系统的定位精度为米左右。
超高精度定位设备
超高精度定位设备包括UWB主基站、UWB从基站,UWB定位标签。UWB主基站向周围所属于他一组的UWB从基站发送同步信号,完成各个UWB从基站的时间同步,同时也接收UWB定位标签的定位数据;UWB从基站接收UWB定位标签的定位数据,发往服务器;UWB定位标签附着在定位对象身上,完成定位追踪。超高精度定位系统的精度为30厘米左右。
外围拓展设备
外围拓展设备是为了基于定位系统的位置服务而衍生出来的一系列其他应用,包括视频监控设备的联动、IP广播的联动、继电器控制门禁或报警器的开关、触发的各种短信通知等。