永利yl23411|官方网站|欢迎您

永利yl23411|官方网站
专注电子产品研发外包服务 基于客户要求的个性化设计
021-51360000

宠物定位服务器软件设计

浏览数:483 


宠物定位服务器软件设计


1 总体要求............................................................................

总体功能要求..............................................................

软件开发平台要求..........................................................

2 软件开发................................................................................

2.1 软件的需求分析.............................................................

2.2 系统总体框架.................................................................

2.3 软件的设计概要............................................................

2.4 软件的详细设计............................................................









1 总体要求

1.1总体功能要求

该产品主要是一个宠物定位系统的服务器端,所以服务器要能够在外网访问,使得不同的宠物定位设备,能够访问服务器,上传信息,注册信息,并且有效跟踪、监管每一个需要定位的对象(宠物)的实施情况。

开发者应在充分分析需求的基础上,选择采用B/S结构或者C/S结构。

总体的功能需求如下:

宠物定位信号发射器是指内置了GPS模块和移动通信模块的终端,下文称宠物定位器各类的宠物定位器,可以向定位服务器进行注册,包括宠物定位设备的基本信息,定位器的设备型号,定位器的工作模式。

监护人可以通过自己的终端,如:手机,定位接收器手持终端,电脑等向服务器进行注册和定位器信息的访问,也可以定制自己宠物的电子围栏等。

宠物定位器,可以向服务器定时报告宠物定位的信息。

同时服务器可以告知宠物的主人(监护人),该宠物定位器的基本信息,实时的定位信息(地理位置)。

如果遇到特殊情况,比如:宠物定位器信号变弱,信号丢失。服务器要即时向监护人的终端(手机,手持定位接收器)发出警报,告知无法提供技术服务,需要监护人对宠物定位器当前的状态进行检查,定位器设备重启或定位设备进行维修。



服务器可以具有宠物历史定位信息的保存,将历史轨迹告知宠物的主人。

服务器可以具有电子围栏报警功能,当发现宠物超出电子围栏范围向宠物的主人的各类终端发出警报,也可以向具有接受警报功能的定位器发出警报。

服务器可以根据宠物的监护人的需求,以不同形式下发各类,下发方式不限于终端的网络访问,也可以是短信,彩信,电话语音提醒。

1.2软件开发平台要求

数据库管理系统:

MySQL5.6以上版本

网络架构:

完全支持TCP/IP协议

开发工具或技术体系:

为保证软件的上下兼容性,开发时应选择比较通用的开发工具的较新版本进行开发,如J2EE(Java2 Platform Enterprise Edition),Eclipse,NetBeans,Microsoft Visual Studio等。






2 软件开发

2.1软件的需求分析

随着人们物质生活水平的不断提升,养宠物已经成为越来越多的人在面对业余生活时的一种选择。主人像对待“宝贝”一般去溺爱它们的同时,也获得了情感和精神方面的满足。然而养宠物也意味着多了一份责任,不光是闲暇之余人们喜欢带着自家宠物出去遛弯;其实每天定期定时让宠物到户外去活动,也是宠物健康的必要方式。不过,户外的环境毕竟更为复杂,因此主人们常常会担心宠物的安危,害怕它们走丢或发生意外情况。然而,在主人们百般小心的呵护下,宠物丢失的事情也依然时有发生。  有需求的地方,就会有市场,智能宠物定位器的应运而生,让主人能够随时掌握自家宠物的具体位置,再也不用担心它们走丢的问题。可以相信,随着宠物市场的蓬勃发展,会有更多更好的智能宠物定位产品出现,其市场的发展也会越来越红火。

开发这个宠物定位系统,主要是为了方便饲养宠物的主人,可以实时监管自己的宠物。








2.2 系统的总体架构

逻辑架构










功能用例图






2.3 软件的概要设计




2.3.1主人信息管理模块

主人信息管理模块为宠物的主人提供信息注册,账户登录,宠物定位设备绑定,定位设备解绑,主人基本信息修改等功能。

2.3.2宠物定位设备信息管理

宠物定位设备信息管理模块,用于宠物定位设备向服务器进行设备注册,定位设备认证,以及解绑定位设备。


2.3.3宠物定位历史轨迹管理

宠物定位历史轨迹管理,给宠物的主人查询自己的宠物在某一个时段的定位轨迹。用户不仅可以查询历史轨迹的记录,也可以删除历史轨迹的记录。同时因为服务器存储空间数据有限,也会进行定时删除(三个月前的)记录。

2.3.4宠物实时定位管理

宠物实时定位管理,主要用于接收宠物定位设备上发的实时定位信号,并对定位信号判别是否在电子围栏之内。服务器接收到实时信号,需要广播给所有绑定该宠物定位设备的用户终端,告知该宠物的实时定位信息。



用户可以根据自己的实际需要定位宠物的电子围栏。电子围栏可以是以主人当前位置为半径的圆形,不规则的多边形或矩形。

2.3.5特殊警报管理模块

当宠物离开电子围栏范围时,向对应的主人的终端发出电子围栏警报,提醒用户注意宠物动向,防止宠物丢失等意外发生。

当宠物定位设备信号弱,电源储能不足,或定位信号故障时,可以向服务器通知该故障,服务器把定位设备故障实时通知给主人的终端。提醒主人对定位设备进行检查和维修。

2.3.6通信管理模块

通信管理模块是一个中间件,它的功能包括宠物定位设备间的连接通讯,断线重连,设备心跳检测,也负责与电话语音平台,短信平台之间的连接。当需要向用户下发电话语音通知、短信通知时需通过通信管理模块。

2.4 软件的详细设计

总控程序

总控程序是整个服务端的启动Main程序,它主要负责整个系统的启动(配置读取,模块载入)和关闭工作,并对程序的运行进行日志Log记录。当运行总控程序时,它会从配罝文件中读入各种参数Params,并加载所有模块Modules,包括数据库模块Database Module、主人信息管理模块、宠物定位设备信息模块、宠物定位历史轨迹模块、宠物实时定位模块、特殊警报模块、通信管理并将系统的运行情况记录在Log日志中,以备管理员査看6其中,为检测模块是否运行正确,需要运行测试程序,测试程序(TestPmgram)中包含服务中心的一些服 务函数以及测试数据,根据返回值是否正确来判断系统运行情况。


Figure 1总控程序的运行流程图

2.4.1主人信息管理模块

主人信息管理模块负责对宠物主人的权限进行认证,主要判断用户是否是注册了的会员,是否具有享受服务的权利,是否与某用户为好友关系等。服务器服务器再数据的持久层方面使用了Hibernate层,其中用户信息类(User)是服务平台商传递最频繁的公共参数质疑。主人信息管理模块负责对用户信息进行初始化,填写一些基本的信息。

鉴权的过程很简单,主要是在数据库的用户信息表和服务定制表中进行查询,找到用户的当前服务状态,并填充User用户类,返回给系统,系统会根据鉴权借故偶选择不同的服务路径。注意,刚注册的用户需要绑定自己的宠物定位设备才能,查询到自己的宠物定位信息

Figure 2 User类主要数据成员表

类名

user

 

主要数据成员

主要数据成员名

说明

String userName

用户名

String nickName

用户昵称

String passMD5

用户密码密文,md5加密

String sex

用户性别

Date birthday

用户出生日期

String address

用户通讯地址

Datetime regDate

用户注册时间

String ip

用户最后一次登录ip

unsigned int deviceListID

用户绑定的定位设备列表

2.4.2宠物定位设备信息管理

宠物定位设备信息管理模块负责对定位设备的权限进行认证,主要判断该设备是否是注册了的设备,是否具有享受服务的权利。服务器服务器再数据的持久层方面使用了Hibernate层,其中定位设备信息类(LocatorDevice)是服务平台商传递最频繁的公共参数质疑。宠物定位设备信息管理对设备信息进行初始化。

Figure 3 LocatorDevice类主要数据成员表

类名

LocatorDevice

 

主要数据成员

主要数据成员名

说明

String deviceName

设备名称

String deviceID

定位设备的ID号,唯一

String deviceToken

定位设备的token,特别说明该token用于验证登录类似于密码

2.4.3宠物定位历史轨迹管理

宠物定位历史轨迹管理模块,包含一个管理器类LocationHistoryManager,首先定义了定位历史数据的基本格式 Location 。当用户需要查询宠物定位设备的历史轨迹时,调用getHistoryByDate 方法来获得定位设备的历史轨迹。

Figure 4 Location 的主要数据成员表

类名

Location

 

主要数据成员

主要数据成员名

说明

Datetime utctime

所有的定位服务都是用统一utc时间

float latitude

纬度,格式度分.ddmm.mmmm(度分)格式

char latitudeHemisphere

纬度半球,取值为E(东经)或W(西经)

float longitude

经度dddmm.mmmm(度分)格式

char longitudeHemisphere

经度半球E(东经)或W(西经)


类名

LocationHistoryManager

 

主要成员函数

主要成员函数名

 

getHistoryByDate()

获得定位的历史数据,以日期节点

addLocationHistory()

增加定位的历史数据

removeLocationHistory()

删除定位的历史数据

2.4.4宠物实时定位管理

宠物实时定位管理模块负责接收定位设备的实时定位数据并存储在数据库和内存当中。首先设计了管理器类 PetRealLocationManager 。用于管理宠物的实时定位信息


Figure 5 PetRealLocationManager  的主要成员函数

类名

PetRealLocationManager

 

主要成员函数

主要成员函数名

 

AddPetRealLocationByDeviceID

增加一条宠物的实时定位信息

UpdateRealLocationByDeviceID

更新宠物的实时定位信息

SetElectronicFenceByDeviceID

设置宠物的电子围栏信息

ElectronicFence类用于定义宠物的电子围栏类型和基本信息

Figure 6 ElectronicFence 的主要数据成员

类名

ElectronicFence

电子围栏

主要数据成员

主要数据成员名

说明

int type

围栏类型 0 圆形, 1 矩形, 2, 多边形

int radius

围栏半径,用于圆形围栏

int length

围栏长, 用于矩形围栏

int width

围栏宽,用于矩形围栏

List Polygon

用于多边形围栏


Figure 7 实时定位信息的处理流程

2.4.5特殊警报管理

特殊警报管理模块设计了特殊警报类SpecialAlert

类名

SpecialAlert

特殊警报

主要成员函数

主要成员函数名

 

CheckDeviceLocation

每一帧调用此方法检查设备的当前位置

IsLocationOutOfFence

调用这个方法检查设备是否出了围栏

SendFenceAlertToUser

向用户发围栏警报,告知用户宠物在围栏之外

ReciveDeviceAlertFromDevice

接受定位设备的故障警报

SendDeviceAlertToUser

向用户发送设备故障警报



数据库设计

Figure 8 User表结构

名称

数据类型

说明

ID

INTEGER

用户id

userName

CHAR(100)

用户名

passMD5

CHAR(32)

用户密码

sex

CHAR(2)

用户性别

birthday

DATETIME

用户出生日期

address

CHAR(255)

用户通信地址

regDate

DATETIME

注册日期

ip

CHAR(12)

ip地址

deviceListID

CHAR(12)

绑定设备列表id


Figure 9 LocatorDevice 表结构

名称

数据类型

说明

deviceName

CHAR(100)

设备

deviceID

CHAR(32)

定位设备的ID号,唯一

deviceToken

CHAR(2)

定位设备的token,特别说明该token用于验证登录类似于密码


Figure 10 Location 表结构

名称

数据类型

说明

localtionId

INTEGER

定位信息id

utctime

INTEGER

所有的定位服务都是用统一utc时间

latitude

DOUBLE

纬度,格式度分.ddmm.mmmm(度分)格式

latitudeHemisphere

CHAR(1)

纬度半球,取值为E(东经)或W(西经)

longitude

DOUBLE

经度dddmm.mmmm(度分)格式

longitudeHemisphere

CHAR(1)

经度半球E(东经)或W(西经)


Figure 11 LocationHistory 表结构

名称

数据类型

说明

historyId

INTEGER

定位历史id

utctime

INTEGER

所有的定位服务都是用统一utc时间

deviceID

CHAR(32)

定位设备的ID号,唯一


Figure 12 Log表结构

名称

数据类型

说明

LogID

int

标识(自增)

UserCode

varchar(50)

用户代码

UserName

varchar(100)

用户名

LoginIP

varchar(20)

登录IP

Type

int

操作类型

Operation

varchar(1000)

操作内容

CreateDate

datetime

操作时间

Remark

varchar(500)

备注




Baidu
sogou