买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于共享内存的GPS数据信息查询方法及系统_深圳广联赛讯股份有限公司_201710171845.0 

申请/专利权人:深圳广联赛讯股份有限公司

申请日:2017-03-21

公开(公告)日:2021-01-19

公开(公告)号:CN106970964B

主分类号:G06F16/29(20190101)

分类号:G06F16/29(20190101);G06F16/2453(20190101);G06F16/2458(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.01.19#授权;2017.08.15#实质审查的生效;2017.07.21#公开

摘要:本发明公开了一种基于共享内存的GPS数据信息查询方法,本发明还公开了一种基于共享内存的GPS数据信息查询系统,属于共享内存计算机技术领域。本发明通过响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息,根据所述设备标识查找共享内存中与所述设备标识对应的内存区,从所述内存区中提取与所述目标位置信息对应的GPS数据信息,将提取的GPS数据信息发送至所述终端设备从而降低了对持久化数据库集群的读写,并提高服务性能。

主权项:1.一种基于共享内存的GPS数据信息查询方法,其特征在于,所述方法包括:响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;根据预设映射关系表查找共享内存中与所述设备标识对应的内存区;从所述内存区中提取与所述目标位置信息对应的GPS数据信息;将提取的GPS数据信息发送至所述终端设备。

全文数据:基于共享内存的GPS数据信息查询方法及系统技术领域[0001]本发明涉及共享内存计算机技术领域,尤其涉及一种基于共享内存的GPS数据信息查询方法及系统。背景技术[0002]目前设备的全球定位系统GPS数据都存储于持久化数据库集群Mysql关系型数据库管理系统、Hbase分布式的、面向列的开源数据库)中,持久化数据库集群容量大,能存储海量数据。[0003]但该方案存在如下缺陷:[0004]1大量的读写持久化数据库会导致服务器磁盘输入输出IO负载高,性能损失大,而且会影响到服务器的其它服务;[0005]2持久化数据库集群存在重启或故障宕机的情况,会导致整个服务系统瘫痪,无法正常提供服务。[0006]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。发明内容[0007]本发明的主要目的在于提供一种基于共享内存的GPS数据信息查询方法及系统,旨在解决现有技术中大量读写持久化数据库会导致服务系统瘫痪,无法正常提供服务的技术问题。[0008]为实现上述目的,本发明提供一种基于共享内存的GPS数据信息查询方法,所述方法包括以下步骤:[0009]响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;[0010]根据所述设备标识查找共享内存中与所述设备标识对应的内存区;[0011]从所述内存区中提取与所述目标位置信息对应的GPS数据信息;[0012]将提取的GPS数据信息发送至所述终端设备。[0013]优选地,所述响应于终端设备发送的信息查询请求,从所述信息查询请求中提取设备标识和目标位置信息之前,所述方法还包括:[0014]响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中提取当前设备标识;[0015]根据所述当前设备标识查找到共享内存中对应的当前内存区;[0016]将所述当前GPS数据信息存储在所述当前内存区。[0017]优选地,所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;[0018]相应地,所述将所述当前GPS数据信息存储在所述当前内存区,具体包括:[0019]按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;[0020]将遍历到的已写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;[0021]若所述已写入GPS数据信息的数据采集时间早于所述当前GPS数据信息的数据采集时间,则在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当前GPS数据信息写入所述目标内存单元中;[0022]若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,则返回所述按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历的步骤。h[0023]优选地,所述在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元之前,所述方法还包括:[0024]判断所述当前内存区中被写入GPS数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。[0025]优选地,所述响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中提取当前设备标识之前,所述方法还包括:[0026]根据预设的终端设备数量、预设GPS数据信息的条数和单条GPS数据信息的大小计算所述共享内存的空间大小,根据所述共享内存的空间大小分配所述共享内存。[0027]此外,为实现上述目的,本发明还提供一种基于共享内存的GPS数据信息查询系统,所述系统包括:[0028]第一信息获取模块,用于响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;[0029]第一内存区查找模块,用于根据所述设备标识查找共享内存中与所述设备标识对应的内存区;[0030]信息提取模块,用于从所述内存区中提取与所述目标位置信息对应的GPS数据信息;[0031]信息发送模块,用于将提取的GPS数据信息发送至所述终端设备。[0032]优选地,所述系统还包括:[0033]第二信息获取模块,用于响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中获取当前设备标识;[0034]第二内存区查找模块,用于根据所述当前设备标识查找到共享内存中对应的当前内存区;[0035]信息存储模块,用于将所述当前GPS数据信息存储在所述当前内存区。[0036]优选地,所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;[0037]所述信息存储模块包括:[0038]第一信息遍历子模块,用于按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;[0039]采集时间比较子模块,用于将遍历到的已写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;[004°]信息写入子模块,用于若所述己写入GPS数据信息的数据采集时间早于所述当前GPS数据信息的数据采集时间,则在所述己写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当前GPS数据信息写入所述目标内存单元中;[0041]第二信息遍历子模块,用于若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,则返回所述按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历的步骤。[0042]优选地,所述系统还包括:[0043]数量判断模块,用于判断所述当前内存区中被写入GPS数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。[0044]优选地,所述系统还包括:[0045]共享内存分配模块,用于根据预设的终端设备数量、预设Gps数据信息的条数和单条GPS数据信息的大小计算所述共享内存的空间大小,根据所述共享内存的空间大小分配所述共享内存。[〇046^本发明通过响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息,根据所述设备标识查找共享内存中与所述设备标识对应的内存区、,从所述内存区中提取与所述目标位置信息对应的GPS数据信息,将提取的Gps数据信息发送至所述终端设备从而降低了对持久化数据库集群的读写,并提高服务性能。附图说明Si为本发明針共享内_GPS麵儲、賴施第—实酬程示麵;[0048]图2为本发明一种实施例中的数据存储结构示意图;[0049]图3为本发明一种实施例中的多线程数据传输示意图.发腦于共軸雜奶麵能苗舫絲二实翻醜程示細;图5为本发明一种实施例中的单条Gps数据写入共享内存流程示意图;明基于共巧棚GPS醜儲、雜方總三实酬_程示細;「。。541明基于共,存的GPS醜信息查询方法細实施_流程示細;于共神雜GPS麵儲、顏施魅实酬醜程示麵;图.图9为本发明基于共孚内存的6?3数_息查询系统第—实施例的功能模块示意^;56]IS1G为本針共軸雜Gpsm_g、雜織第二錢働繼模块示意=〇5]图11为本发明基于共孚内存的GPS数据信息查询系统第三实施例的功能模块示意=8]图I2为本发明基于共孚内存的GPS数据信息查询系统第四实施例的功能模块示意^。]图I3为本发明基于共孚内存的GPS数据信息查询系统第五实酬的功能模块示意[0060]本发明的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式[0061]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0062]参照图1,本发明第一实施例提供一种基于共享内存的GPS数据信息查询方法,所述方法包括:[0063]S10:响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;[0064]需要说明的是,本实施例的方法的执行主体为用于存储GPS数据信息的数据服务器,当然,还可为其他具有类似功能的设备,本实施例对此不加以限制。[0065]可理解的是,所述终端设备为需要查询GPS数据信息的设备,例如:智能手机、平板电脑、笔记本电脑、PC机、导航仪或服务器等需要查询GPS数据信息的设备,也可为能够实现上述功能的专用设备,本实施例对此不加以限制。[0066]在具体实现中,所述设备标识为用于反映终端设备身份的标识,其用于区别与其他终端设备,并且所述设备标识具有唯一性,可将其简称为UID。[0067]应理解的是,所述目标位置信息可包括一个位置信息,即对应一条GPS数据信息,参照图2,所述数据服务器可对外提供查询接口,即图2中的GetLastGpsData接口函数,其可用于获取最新的一条GPS数据信息;[0068]当然,所述目标位置信息可包括多个位置信息,即对应多条GPS数据信息,参照图2,即图2中的GetGpsDatas接口函数,用于获取最新的多条GPS数据信息。[0069]S20:根据所述设备标识查找共享内存中与所述设备标识对应的内存区;[0070]需要说明的是,所述设备标识在共享内存中对应一段内存区域,该内存区域用共享内存索引来标识,在设备标识和共享内存索引之间存在映射关系表,反映设备标识与内存区的对应关系,所述设备标识与内存区的对应关系具有唯一性,即一个终端设备的设备标识对应一个内存区域。[0071]S30:从所述内存区中提取与所述目标位置信息对应的GPS数据信息。[0072]需要说明的是,如图2所不UID表不终2而设备的设备标识,“Currentlndex”表内存区头部的位置游标,“GpsOne”表不单条GPS数据信息,例如在进行单条GPS数据信息提取,首先获取待查询终端设备的设备标识,根据设备标识与内存区索引的关系映射表,获取设备标识对应的内存索引,根据内存索引查找到对应的内存区,所述内存区为头部位置游标为75的内存区,并根据查询输入的参数,即通过GetLastGpsData接口函数查询最新的位置游标75对应的GpsOne存储单元内的GPS数据信息。[0073]相应地,如图2所示,在进行多条GPS数据信息提取,即通过GetGpsDatas1000接口函数查询最新的位置游标1到1000对应的1000个GpsOne存储单元内的GPS数据信息。[0074]可理解的是,数据服务器对外提供RFC远程过程调用协议(RemoteProcedureCal1服务,并对外提供服务接口,以使外部通过应用程序或者通过与所设信息系统的服务器联接的不同内存空间的其他服务器使用命令行进行查询。[0075]在具体实现中,参照图3,图3是基于共享内存的GPS数据信息查询方法中的多线程流程示意图,数据服务器对外提供Ice接口,所述Ice为高性能的中间件,支持分布式的部署管理,用户可以使用应用程序通过Ice接口读取共享内存数据,所述应用程序可为第三方软件,还可为其他具有类似功能的软件,例如通过GetLastGpsData接口函数进行数据查询;还可以通过联接的其他服务器使用Linux系统命令行进行数据查询和服务状态查询,例如selectfrom等。[0076]S40:将提取的GPS数据信息发送至所述终端设备。[0077]本实施例通过响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息,根据所述设备标识查找共享内存中与所述设备标识对应的内存区,从所述内存区中提取与所述目标位置信息对应的GPS数据信息,将提取的Gps数据信息发送至所述终端设备从而降低了对持久化数据库集群的读写,并提高服务性能。[0078]参照图4,图4为本发明基于共享内存的GPS数据信息查询方法第二实施例的流程示意图,基于上述图1所示的实施例,提出本发明基于共享内存的GPS数据信息查询方法的第二实施例。[0079]在本实施例中,步骤S10之前,所述方法还包括:[0080]S01:响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中提取当前设备标识;[0081]S02:根据所述当前设备标识查找到共享内存中对应的当前内存区;[0082]S03:将所述当前GPS数据信息存储在所述当前内存区。[0083]如图5所不,终i而设备上报设备标识uid和对应的GPS位置"[目息,根据所述设备标识查找在共享内存中对应一段内存区,该段内存区域用共享内存索引index来标识,通过建立设备标识与共享内存索引的映射关系来进行查找,例如uid为x时对应共享内存索引index为y的映射关系,根据所述共享内存索引查找到相应的内存区,所述内存区用头部游标currentlndex来标识,例如查找到uid为x时对应头部游标currentlndex为j的内存区,另外在查找之前,首先查询设备标识与共享内存索引的映射关系表是否存在,如存在,则查找对应的内存区,如果不存在,则对所述设备标识分配新的共享内存索引,并将所述设备标识与新的共享内存索引关系插入到关系映射表中。[0084]需要说明的是,接收到终端设备上报的GPS数据信息,对上报的GPS数据信息分进行两部分处理,一部分将接收到所有GPS数据信息存储在持久化数据数据库集群中并对上报的GPS数据信息进行判断,另一部分将热点GPS数据信息存储在共享内存中。[0085]可理解的是,对上报的GPS数据信息进行判断,根据接收的GPS数据信息的时间来确定存储的GPS热点数据信息,也可为根据业务需要存储最新的GPS热点数据信息,本实施例在此不作限制。[0086]在具体实现中,对于热点GPS数据信息的查询只需要访问共享内存进行查询,而无需访问持久化数据数据库集群,在共享内存查询不到的情况下再对持久化数据数据库集群进行查询,从而减少对持久化数据库集群的依赖,提高系统的稳定性。[0087]继续参照图3,其中Kafka集群”表不设备上报GPS数据的分布式消息列队,例如PartO表示设备上报GPS数据信息,所述Kafka集群以pb格式来表示,“ReadThread”表示读取设备上报GPS数据的线程,“C〇ncurrent_hash_map”表示uid与内存索引的关系映射表,例如uidl:lg卩uid为1时对应内存索引为丨的关系映射表,“GpsRec〇rd,,表示每个设备存储Gps数据的内存区,终端设备上报GPS数据信息通过kafka集群进行管理,即对数据进行分布式消息队列,系统读取设备上报GPS数据的线程,例如将gps数据信息写入到共享内存中。^088]参照图6,图6为本发明基于共享内存的GPS数据信息查询方法第三实施例的流程示意图,基于上述图4所示的实施例,提出本发明基于共享内存的GPS数据信息查询方法的第三实施例。[0089]所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;[0090]相应地,所述将所述当前GPS数据信息存储在所述当前内存区,具体包括:[0091]S04:判断待写入GPS数据信息位置并对己写入GPS数据信息进行排序。[0092]按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;[0093]将遍历到的已写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;[0094]若所述已写入GPS数据信息的数据采集时间早于所述当前GPS数据信息的数据采集时间,则在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当目UGPS数据彳目息与入所述目标内存单元中。[0095]需要说明的是,本实施例采用二分查找法查找当前GPS数据信息待插入的位置;[0096]若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,贝返回所述按照位置游标从大到小的顺序对所述当前内存区中的Gps数据信息进行遍历的步骤。[0097]需要说明的是,在存储GPS数据信息之后,更新当前的位置游标,以待下—条GpS数据的写入。[0098]参照图7,图7为本发明基于共享内存的GPS数据信息查询方法第四实施例的流程示意图,基于上述图6所示的实施例,提出本发明基于共享内存的GPS数据信息查询方法的第四实施例。[00"]在本实施例中,所述步骤S04之前,所述方法还包括:[0100]S05:判断所述当前内存区中被写入GPS数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。[0101]需要说明的是,所述预设数量为进行合理配置的数量,对所述数量进行判断,有利于提高内存的利用率,一方面如果存储的GPS数据信息过多,会导致整个服务器系统瘫痪,无法正常提供服务,另一方面如果预留的GPS数据信息存储数量较多,则浪费内存空间,降低内存利用率。[0102]^具体实现中,在对所述当前内存区中的GPS数据信息按照数据采集时间进行排序之后,采用游标记录最新记录在内存区的索引,所述游标为在内存区索引中进行查找的游标。[0103]参照图8,图8为本发明基于共享内存的GPS数据信息查询方法第五实施例的流程不意图,基于上述图7所示的实施例,提出本发明基于共享内存的GPS数据信息查询方法的第五实施例。[0104]在本实施例中,所述步骤SOI之前,所述方法还包括:[0105]S00:根据预设的终端设备数量、预设GPS数据信息的条数和单条GPS数据信息的大小计算所述共享内存的空间大小,根据所述共享内存的空间大小分配所述共享内存。[0_需要说明的是,预设GPS数据信息的条数可以进行配置,通过公式:共享内存空间大小=预设的终端设备数量X预设GPS数据信息的条数NX单条GPS数据大小,计算出分配共享空间的大小。[0107]可理解的是,内存读写比磁盘高效得多,既降低了系统1〇,又提高了服务性能,共享内存生命周期则比进程长,因此服务重启并不会导致内存数据丢失。[0108]在具体实现中,本实施例就采用Linux系统提供共享内存存储GPS热点数据根据业务需要存储最新N条GPS数据),并对外提供RPC服务,以查询共享内存来获取GPS执占数…、、、[0109]参照图9,本发明第一实施例提供一种基于共享内存的GPS数据信息查询系统,所述系统包括:[0110]第一信息获取模块10,用于响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;需要说明的是,本实施例的系统部署于用于存储GPS数据信息的数据服务器上,当然,还可部署于其他具有类似功能的设备上,本实施例对此不加以限制。[0112]可理解的是,所述终端设备为需要查询GPS数据信息的设备,例如:智能手机、平板电脑、笔记本电脑、PC机、导航仪或服务器等需要查询GPS数据信息的设备,也可为能够实现上述功能的专用设备,本实施例对此不加以限制。[0113]在具体实现中,所述设备标识为用于反映终端设备身份的标识,其用于区别与其他终端设备,并且所述设备标识具有唯一性,可将其简称为UID。'[01M]应理解的是,所述目标位置信息可包括一个位置信息,即对应一条GPS数据信息,参照图2,所述数据服务器可对外提供查询接口,即图2中的GetLastGpsData接口函数,其可用于获取最新的一条GPS数据信息;、[0115]当然,所述目标位置信息可包括多个位置信息,即对应多条GPS数据信息,参照图2,即图2中的GetGpsDatas接口函数,用于获取最新的多条GPS数据信息。[0116]第一内存区查找模块20,用于根据所述设备标识查找共享内存中与所述设备标识对应的内存区;[0117]需要说明的是,所述设备标识在共享内存中对应一段内存区域,该内存区域用共享内存索引来标识,在设备标识和共享内存索引之间存在映射关系表,反映设备标识与内存区的对应关系,所述设备标识与内存区的对应关系具有唯一性,即一个终端设备的设备标识对应一个内存区域。[0118]信息提取模块30,用于从所述内存区中提取与所述目标位置信息对应的GPS数据伯息;[0119]需要说明的是,如图2所不UID表不终端设备的设备标识,Currentlndex表示内存区头部的位置游标,GpsOne表示单条GPS数据信息,例如在进行单条GPS数据信息提取,首先获取待查询终端设备的设备标识,根据设备标识与内存区索引的关系映射表,获取设备标识对应的内存索引,根据内存索引查找到对应的内存区,所述内存区为头部位置游标为75的内存区,并根据查询输入的参数,即通过GetLastGpsData接口函数查询最新的位置游标75对应的GpsOne存储单元内的GPS数据信息。[0120]相应地,如图2所示,在进行多条GPS数据信息提取,即通过GetGpsDatas1000接口函数查询最新的位置游标1到1〇〇〇对应的1000个GPs0ne存储单元内的GPS数据信息。[0121]可理解的是,数据服务器对外提供RFC远程过程调用协议(Rem〇teProcedureCall服务,并对外提供服务接口,以使外部通过应用程序或者通过与所设信息系统的服务器联接的不同内存空间的其他服务器使用命令行进行查询。[0122]在具体实现中,参照图3,图3是基于共享内存的GPS数据信息查询方法中的多线程流程示意图,数据服务器对外提供Ice接口,所述Ice为高性能的中间件,支持分布式的部署管理,用户可以使用应用程序通过Ice接口读取共享内存数据,所述应用程序可为第三方软件,还可为其他具有类似功能的软件,例如通过GetLastGpsData接口函数进行数据查询;还可以通过联接的其他服务器使用Linux系统命令行进行数据查询和服务状态查询,例如selectfrom等。[0123]信息发送模块40,用于将提取的GPS数据信息发送至所述终端设备。[0124]本实施例通过响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息,根据所述设备标识查找共享内存中与所述设备标识对应的内存区,从所述内存区中提取与所述目标位置信息对应的GPS数据信息,将提取的GPS数据信息发送至所述终端设备从而降低了对持久化数据库集群的读写,并提高服务性能。[0125]参照图10,图10为本发明基于共享内存的GPS数据信息查询系统第二实施例的功能模块示意图,基于上述图9所示的实施例,提出本发明基于共享内存的GPS数据信息查询系统第二实施例。[0126]本实施例中,所述系统包括:[0127]第二信息获取模块01,用于响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中获取当前设备标识;[0128]第二内存区查找模块〇2,用于根据所述当前设备标识查找到共享内存中对应的当前内存区;[0129]信息存储模块03,用于将所述当前GPS数据信息存储在所述当前内存区。[0130]如图5所示,终端设备上报设备标识Uid和对应的GPS位置信息,根据所述设备标识查找在共享内存中对应一段内存区,该段内存区域用共享内存索引index来标识,通过建立设备标识与共享内存索引的映射关系来进行查找,例如uid为x时对应共享内存索引index为y的映射关系,根据所述共享内存索引查找到相应的内存区,所述内存区用头部游标currentlndex来标识,例如查找到uid为x时对应头部游标currentlndex为j的内存区,另外在查找之前,首先查询设备标识与共享内存索引的映射关系表是否存在,如存在,则查找对应的内存区,如果不存在,则对所述设备标识分配新的共享内存索引,并将所述设备g识与新的共享内存索引关系插入到关系映射表中。需要说明的是,接收到终端设备上报的GPS数据信息,对上报的GPS数据信息分进行两部分处理,一部分将接收到所有GPS数据信息存储在持久化数据数据库集群中并对上报的GPS数据信息进行判断,另一部分将热点GPS数据信息存储在共享内存中。[01^2]可理解的是,对上报的GPS数据信息进行判断,根据接收的GPS数据信息的时间来确定存储的GPS热点数据信息,也可为根据业务需要存储最新的Gps热点数据信息,本实施例在此不作限制。[0133]在具体实现中,对于热点GPS数据信息的查询只需要访问共享内存进行查询,而无需访问持久化数据数据库集群,在共享内存查询不到的情况下再对持久化数据数据库集群进行查询,从而减少对持久化数据库集群的依赖,提高系统的稳定性。[0134]继续参照图3,其中“Kafka集群”表示设备上报Gps数据的分布式消息列队,例如PartO表示设备上报GPS数据信息,所述Kafka集群以pb格式来表示,“ReadThread”表示读取设备上报GPS数据的线程,“Concurrent_hash_map”表示uid与内存索引的关系映射表,例如uidl:lg卩uid为1时对应内存索引为1的关系映射表,“GpsRecord”表示每个设备存储GPS数据的内存区,终端设备上报GPS数据信息通过kafka集群进行管理,即对数据进行分布式消息队列,系统读取设备上报GPS数据的线程,例如将GPS数据信息写入到共享内存中。[0135]参照图11,图11为本发明基于共享内存的GPS数据信息查询系统第三实施例中信息存储模块的具体功能子模块示意图,基于上述图10所示的实施例,提出本发明基于共享内存的GPS数据信息查询系统的第三实施例。[0136]所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;[0137]所述信息存储模块03包括:[0138]第一信息遍历子模块3〇1,用于按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;[0139]采集时间比较子模块302,用于将遍历到的已写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;[0M0]信息写入子模块303,用于若所述已写入GPS数据信息的数据采集时间早于所述当前GPS数据信息的数据采集时间,则在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当前GPS数据信息写入所述目标内存单元中;[0141]需要说明的是,本实施例采用二分查找法查找当前Gps数据信息待插入的位置;[0142]第二信息遍历子模块304,用于若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,则返回所述按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历的步骤。[0143]需要说明的是,在存储GPS数据信息之后,更新当前的位置游标,以待下一条GPS数据的写入。[0144]_参照图12,图I2为本发明基于共享内存的GPS数据信息查询系统第四实施例的功能模块示意图,基于上述图10所示的实施例,提出本发明基于共享内存的GPS数据信息查询系统的第四实施例。[0145]在本实施例中,所述系统还包括:[0146]数量判断模块〇4,用于判断所述当前内存区中被写入Gps数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。[0147]^需要说明的是,所述预设数量为进行合理配置的数量,对所述数量进行判断,有利于提高内存的利用率,一方面如果存储的GPS数据信息过多,会导致整个服务器系统瘫痪,无法正常提供服务,另一方面如果预留的GPS数据信息存储数量较多,则浪费内存空间,降低内存利用率。[0148]^具体实现中,在对所述当前内存区中的GPS数据信息按照数据采集时间进行排序之后,采用游标记录最新记录在内存区的索引,所述游标为在内存区索引中进行查找的游标。^[0149]参照图13,图13为本发明基于共享内存的GPS数据信息查询系统第五实施例的功能検块不意图,基于上述图12所不的实施例,提出本发明基于共享内存的gps数据信息查询系统的第五实施例。~[0150]在本实施例中,所述系统还包括:[0151]共享内存分配模块00,用于根据预设的终端设备数量、预设GPS数据信息的条数和单条GPS数据信息的大小计算所述共享内存的空间大小,根据所述共享内存的空间大小分配所述共享内存。[0152]需要说明的是,预设GPS数据信息的条数可以进行配置,通过公式:共享内存空间大小二预设的终端设备数量X预设GPS数据信息的条数⑽X单条GPS数据大小,计算出分配共享空间的大小。[0153]可理解的是,内存读写比磁盘高效得多,既降低了系统1〇,又提高了服务性能,共享内存生命周期则比进程长,因此服务重启并不会导致内存数据丢失。[0154]在具体实现中,本实施例就采用Linux系统提供共享内存存储GPS热点数据根据业务需要存储最新N条GPS数据),并对外提供RPC服务,以查询共享内存来获取GPS热点数据。[0155]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。[0156]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0157]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如R0MRAM、磁碟、光盘中,包括若干指令用以使得一台终端设备可以是手机,计算机,月艮务器,空调器,或者网络设备等执行本发明各个实施例所述的方法。[0158]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。[0159]说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

权利要求:1.一种基于共享内存的GPS数据信息查询方法,其特征在于,所述方法包括:响应于终端设备发送的彳目息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;根据所述设备标识查找共享内存中与所述设备标识对应的内存区;从所述内存区中提取与所述目标位置信息对应的GPS数据信息;将提取的GPS数据信息发送至所述终端设备。2.如权利要求1所述的方法,其特征在于,所述响应于终端设备发送的信息查询请求,从所述信息查询请求中提取设备标识和目标位置信息之前,所述方法还包括:响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中提取当前设备标识;根据所述当前设备标识查找到共享内存中对应的当前内存区;将所述当前GPS数据信息存储在所述当前内存区。3.如权利要求2所述的方法,其特征在于,所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;相应地,所述将所述当前GPS数据信息存储在所述当前内存区,具体包括:按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;将遍历到的己写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;若所述已写入GPS数据信息的数据采集时间早于所述当前GPS数据信息的数据采集时间,则在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当前GPS数据信息写入所述目标内存单元中;若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,则返回所述按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历的步骤。4.如权利要求3所述的方法,其特征在于,所述在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元之前,所述方法还包括:判断所述当前内存区中被写入GPS数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。5.如权利要求4所述的方法,其特征在于,所述响应于终端设备上报的当前GpS数据信息,从所述当前GPS数据信息中提取当前设备标识之前,所述方法还包括:根据预设的终端设备数量、预设GPS数据信息的条数和单条GPS数据信息的大小计算所述共孚内存的空间大小,根据所述共享内存的空间大小分配所述共享内存。6.—种基于共享内存的GPS数据信息查询系统,其特征在于,所述系统包括:第一信息获取模块,用于响应于终端设备发送的信息查询请求,从所述信息查询请求中获取设备标识和目标位置信息;第一内存区查找模块,用于根据所述设备标识查找共享内存中与所述设备标识对应的内存区;信息提取模块,用于从所述内存区中提取与所述目标位置信息对应的GPS数据信息;信息发送模块,用于将提取的GPS数据信息发送至所述终端设备。7.如权利要求6所述的系统,其特征在于,所述系统还包括:第二信息获取模块,用于响应于终端设备上报的当前GPS数据信息,从所述当前GPS数据信息中获取当前设备标识;第二内存区查找模块,用于根据所述当前设备标识查找到共享内存中对应的当前内存区;信息存储模块,用于将所述当前GPS数据信息存储在所述当前内存区。8.如权利要求7所述的系统,其特征在于,所述内存区包括位置游标和对应的内存单元,所述内存单元用于存储GPS数据信息,所述GPS数据信息还包括数据采集时间;所述信息存储模块包括:第一信息遍历子模块,用于按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历;采集时间比较子模块,用于将遍历到的已写入GPS数据信息的数据采集时间与所述当前GPS数据信息的数据采集时间进行比较;信息写入子模块,用于若所述已写入GPS数据信息的数据采集时间早于所述当前Gps数据信息的数据采集时间,则在所述已写入GPS数据信息所处内存单元后插入一个与其相邻的目标内存单元,并将所述当前GPS数据信息写入所述目标内存单元中;第二信息遍历子模块,用于若所述已写入GPS数据信息的数据采集时间晚于所述当前GPS数据信息的数据采集时间,则返回所述按照位置游标从大到小的顺序对所述当前内存区中的GPS数据信息进行遍历的步骤。9.如权利要求8所述的系统,其特征在于,所述系统还包括:数量判断模块,用于判断所述当前内存区中被写入GPS数据信息的内存单元是否超过预设数量,若是,则将所述当前GPS数据信息替换所述当前内存区中数据采集时间最早的GPS数据信息,并对所述当前内存区中的GPS数据信息按照数据采集时间进行排序。10.如权利要求9所述的系统,其特征在于,所述系统还包括:共享内存分配模块,用于根据预设的终端设备数量、预设GPS数据信息的条数和单条GPS数据信息的大小计算所述共享内存的空间大小,根据所述共享内存的空间大小分配所述共孚内存。

百度查询: 深圳广联赛讯股份有限公司 基于共享内存的GPS数据信息查询方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。