基于物联网的药品数据存储方法

文档序号:10580190阅读:773来源:国知局
基于物联网的药品数据存储方法
【专利摘要】本发明提供了一种基于物联网的药品数据存储方法,该方法包括:将感知数据在药品数据存储系统的数据接收端口进行整合,将所有的采集节点在该药品数据存储系统中注册,进行药品数据的检索、分析和管理。本发明提出了一种基于物联网的药品数据存储方法,对药品数据的存储、访问以及管理进行模块化、标准化和统一化,并节约了存储空间。
【专利说明】
基于物联网的药品数据存储方法
技术领域
[0001]本发明涉及大数据计算,特别涉及一种基于物联网的药品数据存储方法。
【背景技术】
[0002]随着物联网技术的发展和成熟,物联网应用日趋广泛,在医药产品生产、分发和销售领域有着广泛应用。越来越多的数据不断产生。如何存储和管理物联网数据,成为物联网发展的一大核心。医药物联网产生的药品数据具有海量、多源、异构、高度动态性和不确定性等特点,使得数据存储和管理更加复杂化。在物联网中,嵌入式感知或控制设备一般都采用不同的硬件平台、操作系统、数据库和中间件,并且都部署在无法自由交换信息的多种异构网络环境中,通过专用的业务系统和管理平台为上层应用提供数据和服务,在业务层面难以兼容互通。从技术层面上来说,当前的物联网平台耦合度很高,导致其扩展性和通用性较差,终端应用的多样化使得异构网络的通信变得复杂,无法使用统一的标准和接口对其进行操作。

【发明内容】

[0003]为解决上述现有技术所存在的问题,本发明提出了一种基于物联网的药品数据存储方法,包括:
[0004]将感知数据在药品数据存储系统的数据接收端口进行整合,将所有的采集节点在该药品数据存储系统中注册,进行药品数据的检索、分析和管理。
[0005]优选地,所述药品数据存储系统包括主服务器、数据存储服务器、管理客户端和移动客户端;主服务器包括数据压缩模块、数据更新模块、数据检索模块、数据分析模块、数据监视模块和轮询模块,其中数据监视模块包含了报警数据发布,通过局域网发布报警数据,所述数据存储系统根据感知层数据规模的大小选择集中式数据库存储或分布式数据存储,管理客户端和移动客户端为用户提供对传感设备的数据的检索,管理客户端和移动客户端均包括采集节点管理模块、药品数据显示模块、实时数据显示模块和历史数据检索模块;数据更新包括采集节点的添加、删除和药品数据的存储;采集节点的添加和删除功能由用户添加,并且对采集节点进行管理;感知层采集的药品数据通过串口传送到数据接收端,数据接收端将数据推送到主服务器,然后主服务器将数据保存到数据存储系统中;数据压缩模块将数据保存到数据存储系统前,对数据进行压缩处理;数据检索模块包括药品数据查看、实时数据监测和历史数据检索,由用户通过管理客户端和移动客户端进行操作;数据分析模块是对数据存储系统中的数据按照时间段划分,然后对每个时间段的数据进行报警数据统计和分析,也可以根据实际需求对药品数据进行分析;数据监视模块对数据存储系统中的最新数据即上次轮询结束到本次轮询开始时段所采集的药品数据进行检索和检测,如果数据存在异常,则触发报警数据发布功能,通过局域网将报警数据分发给特定的用户;轮询模块是对用户的局域网账号发布的消息做轮询,解析消息得到药品数据检索请求,然后从数据存储系统中检索相关数据,通过局域网返回给用户。
[0006]优选地,所述药品数据存储系统的数据由两部分组成,用户数据和药品数据;用户在药品数据存储系统上注册时,需要提供自己的信息,包括个人信息和局域网账号信息;药品数据包括采集节点信息;每个采集节点每隔一定的频率采集数据,然后需要将这些数据保存起来,所述药品数据存储系统需要保存每个采集节点从接入药品数据存储系统到从药品数据存储系统断开的所有历史药品数据;药品数据的数据库操作包括在插入和检索;数据采集线程将采集到的数据存储到数据库中,而且主服务器根据采集频率设置计时器,定时触发数据压缩操作和数据库插入操作;数据库由Hadoop集群为基础,主机作为文件系统的名字节点和MapReduce计算框架的资源管理器;从机作为文件系统的数据节点和MapReduce的节点管理器;对获取所有药品数据和获取某个指定采集节点的数据操作中,根据采集节点ID和药品数据类型,用行键检索定位到所需的数据;在获取历史药品数据时,用行键定位到所需的数据,并且根据时间进行筛选;对感知信息表的数据建立一个感知区域索引表,行键为用户ID和区域ID的组合,列为采集节点ID和药品数据类型,对感知区域索引表和感知数据表做两次行键查询来获得需要的数据:I)行键检索感知区域索引表,得到该用户在该区域的拥有的采集节点,值为采集节点ID和药品数据类型;2)将上面的检索结果结合用户ID组成行键,在感知数据表中进行检索。
[0007]本发明相比现有技术,具有以下优点:
[0008]本发明提出了一种基于物联网的药品数据存储方法,对药品数据的存储、访问以及管理进行模块化、标准化和统一化,并节约了存储空间。
【附图说明】
[0009]图1是根据本发明实施例的基于物联网的药品数据存储方法的流程图。
【具体实施方式】
[0010]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0011]本发明的一方面提供了一种基于物联网的药品数据存储方法。图1是根据本发明实施例的基于物联网的药品数据存储方法流程图。本发明将数据的存储、数据的访问以及管理进行模块化、标准化和统一化,将感知层在药品数据存储系统的数据接收端口进行整合,然后将所有的采集节点在该药品数据存储系统中注册,进行药品数据的检索、分析和管理,消除药品数据的时间相关性,节约了存储空间。
[0012]药品数据存储系统由多个组件组成,包括主服务器、数据存储服务器、管理客户端和移动客户端。主服务器包括数据压缩模块、数据更新模块、数据检索模块、数据分析模块、数据监视模块和轮询模块,其中数据监视模块包含了报警数据发布,通过局域网发布报警数据。数据存储系统根据感知层数据规模的大小选择集中式数据库存储和分布式数据存储。管理客户端和移动客户端提供给不同需求的用户对传感设备的数据进行检索,包括采集节点管理模块、药品数据显示模块、实时数据显示模块和历史数据检索模块。
[0013]数据更新模块可以分为采集节点的添加、删除和药品数据的存储。采集节点的添加和删除功能由用户添加属于自己的采集节点,并且对它们进行管理。感知层采集的药品数据通过串口传送到数据接收端,数据接收端将数据推送到主服务器,然后主服务器将数据保存到数据存储系统中。
[0014]数据压缩模块将数据保存到数据存储系统前,对数据进行压缩处理。数据检索模块包括药品数据查看、实时数据监测和历史数据检索,由用户通过管理客户端和移动客户端进行操作。数据分析模块是对数据存储系统中的数据按照时间段划分,然后对每个时间段的数据进行报警数据统计和分析,也可以根据实际需求对药品数据进行分析,然后根据分析结果,可以对环境做出相应的调整。
[0015]数据监视模块对数据存储系统中的最新数据(即上次轮询结束到本次轮询开始时段所采集的药品数据)进行检索和检测,如果数据存在异常,则触发报警数据发布功能,通过局域网将报警数据分发给特定的用户。
[0016]轮询模块是对用户的局域网账号发布的消息做轮询,解析消息得到药品数据检索请求,然后从数据存储系统中检索相关数据,通过局域网返回给用户。
[0017]感知层分为通信模块和传感模块。基于成本考虑,本发明将所有的控制模块都在软件部分实现,如采集节点的采集频率设置等,而且模块的硬件部分只用于满足最基本的通信等需求。感知层通过汇聚节点将感知层的数据通过串口传输到数据接收端的电脑,安装在此电脑上的数据采集线程读取串口数据流,解析药品数据,然后调用主服务器的数据推送接口,将数据推送到主服务器,主服务器连接数据库将数据进行存储。管理客户端和移动客户端检索药品数据通过主服务器提供的接口对数据进行清求。
[0018]如果使用分布式云存储,数据采集线程读取串口数据流并解析药品数据,将数据推送到主服务器中,服务器接收实时数据保存到临时缓冲区中,如果缓冲区满,就调用分布式云存储接口,将数据上传到数据中心的集群中保存。管理客户端和移动客户端检索药品数据通过主服务器提供的接口对数据进行请求。
[0019]系统上电后,各个终端节点需要将自身设备类型、网络地址和父节点的网络地址发送给协调器。协调器收到各个节点的数据信息,建立拓扑结构。组网完成后,用户可以通过串口给协调器发送拓扑命令检索网络拓扑信息。
[0020]协调器使用广播的方式告诉所有终端节点开始采集数据,终端节点接收到协调器发送的广播数据后,开始定时采集数据,然后将采集的数据以单播的方式发送给协调器。协调器再通过串口返回给采集端。协调器完成组网后,要实现数据通信,实现协调器的数据接收功能和终端节点的数据采集和数据发送功能。
[0021]集中式数据库采用MySQL关系型数据库,数据库的设计体现在表结构的设计上;分布式云存储数据库采用Hadoop集群搭建HBase分布式数据库,数据库的设计除了表结构的设计,还包括集群的搭建和配置以及数据库的搭建和配置。
[0022]药品数据存储系统的数据由两部分组成,用户数据和药品数据。用户在药品数据存储系统上注册时,需要提供自己的信息,包括个人信息和局域网账号信息。药品数据是数据存储的核心,包括采集节点信息(采集节点ID,类型、所在位置等数据)。每个采集节点每隔一定的频率采集数据,然后需要将这些数据保存起来,所以说,药品数据是动态的,会根据时间的变化而变化,而且数据量很大。药品数据存储系统需要保存每个采集节点从接入药品数据存储系统到从药品数据存储系统断开的所有历史药品数据。
[0023]药品数据的数据库操作集中在插入和检索。数据采集线程将采集到的数据存储到数据库中,而且主服务器根据采集频率设置计时器,定时触发数据压缩操作和数据库插入操作。本发明的数据库由Hadoop集群为基础,所述集群由4台机器组成,其中一台机器作为主机,其余3台作为从机。主机作为文件系统的名字节点和MapReduce计算框架的资源管理器;从机作为文件系统的数据节点和MapReduce的节点管理器。Hadoop集群部署配置SSH使得主机能够免密码登陆从机,最后设置Hadoop的相关配置文件。
[0024]对获取所有药品数据和获取某个指定采集节点的数据操作中,可以根据采集节点ID和药品数据类型,用行键检索定位到所需的数据;在获取历史药品数据时,可以用行键定位到所需的数据,并且根据有序时间进行筛选。然而,在获取指定地点的药品数据操作中,由于行键中没有区域的信息,而是以列的形式存在,如果不建立索引表,就需要进行全表扫描,扫描的条件是区域ID。如果对感知信息表的数据建立一个感知区域索引表,行键为用户ID和区域ID的组合,列为采集节点ID和药品数据类型,那么只需要对感知区域索引表和感知数据表做两次行键查询就可以获得需要的数据:I)行键检索感知区域索引表,得到该用户在该区域的拥有的采集节点,值为采集节点ID和药品数据类型。2)将上面的检索结果结合用户ID组成行键,在感知数据表中进行检索。
[0025]主服务器采用Web服务实现数据资源检索和存储的接口,提供给上层客户端应用程序使用。将药品数据存储系统中的每一个事物或概念(如采集节点)都抽象成一个资源,用一个唯一的资源标识符来表示,并且从三个方面对资源进行定义:每一个资源对应一个地址,对于资源的请求就是访问该URI;主服务器接受与返回的数据类型为JS0N;主服务器对资源支持HTTP请求,包括POST,数据库访问,数据库插入和DELETE四种类型;请求主服务器的资源是无状态的,不要求服务器在处理请求时检索任何类型的应用程序的上下文或状
??τ O
[0026]采集节点的操作都封装在该类中。如需获取某个采集节点的数据,将所有采集节点路径连接起来,就组成了资源的URI,外部请求只需要访问URI,就可以获取相应的数据。除路径之外,本发明还在配置文件中设置主服务器的地址和模块。
[0027]主服务器接收感知层采集的药品数据,将数据存放在缓冲区中。同时压缩计时器启动,每隔预定义间隔对滑动窗口缓存区中的数据进行压缩,然后将数据存入数据存储系统。如果主服务器接收客户端的检索请求,就会对数据进行检索和分析,将结果返回给客户端。另外,主服务器还会启动监视计时器,每隔预定义间隔对最新数据进行检索,如果发现报警数据就进行发布,而且轮询也会按预定频率进行一次,如果发现用户通过局域网提交检索请求,就会对该请求做出响应。
[0028]数据接收端从串口读取无线感知层的药品数据,然后将数据推送到主服务器中。主服务器接收了药品数据后,对滑动窗口中的数据用以下压缩方法进行压缩:
[0029]主服务器接收的药品数据用表示,其中s表示采集节点id,t表示数据的类型,d表示数据,T表示数据的感知时间。主服务器一次接收一组数据,该组数据的序列如下所示:
[0030]R= {〈Sa,tb,dc,Tm〉,〈Sa,tb+1,dc+1,Tm+1>,…,<Sa+p,tb+q,dc+t,Tm+n> }
[0031]其中数据按照感知时间排序。如果将数据按照采集节点ID和数据类型,S卩<s,t>进行分类,那么每个类别中的数据是相关的。每个序列都表示一个采集节点采集的某一类数据的集合。序列的数据都是按照时间排序的,也就是按照该数据的采集时间进行排序。每个序列由一个基于元组个数的滑动窗口来缓存数据,每个滑动窗口能保存的药品数据是有限的并且数固定的。假定滑动窗口的固定宽度为k,滑动窗口用Wk表示,那么一个滑动窗口保存的药品数据序列的时间是Tm+1-Tm+k。
[0032]Wk= { <Sa,tb,dc+l,Tm+1>,<Sa,tb,dc+i,Tm+i>,…,<Sa,tb,dc+k,Tm+k> }
[0033]每个滑动窗口的药品数据的采集节点ID和药品数据类型是相同的,因为每个滑动窗口只保存一个采集节点的一种类型的数据,所以本发明可以将<sa,tb>属性提取出来,作为滑动窗口的头部,滑动窗口本身只存储药品数据的数值和采集时间,即<(1。+1,5+1>部分。
[0034]药品数据缓存空间可以使用有序双向链表和数组实现。双向链表用来保存滑动窗口的头部<Sa,tb>和指向滑动窗口的指针,滑动窗口用数组表示,并且给数组设置长度大于k。双向链表是有序的,按照sa,tb的字典顺序进行排序。这样可以在主服务器接收一个药品数据时,快速将数据保存到相应的滑动窗口中。
[0035]每当有药品数据进入主服务器,主服务器首先会根据<Sa,tb>判断该数据属于哪一个滑动窗口,在双向链表中找到对应的滑动窗口的头部,然后将〈(1。+^+0保存在滑动窗口的后端,也就是数组的后边第一个空位。如果在双向链表中没有找到对应的采集节点和数据类型,那么在双向链表中创建一个链表块,插入到相应位置,然后再将数据保存在这个链表块的指针指向的数组里。
[0036]主服务器在数据压缩模块完成后,需要将压缩好的数据保存在数据库中。对于数据的查询,主服务器接收客户端的检索请求后,从数据库中查询数据,将结果返回给客户端。首先需要创建一个数据库插入对象,然后为该对象指定需要存储的数据表的行键,以及数据所在的列族、列以及该列需要存储的数据。最后将数据库插入对象用一个数据表对象进行存储操作。
[0037]如果要实现对实时数据的监测,每隔一定时间需要读取某个采集节点的最新数据。检索感知数据表中指定行键的最新值,则只需要使用一次数据库访问操作就能快速检索数据。数据库访问操作只设定行键的值,那么返回的数据是最新的数据;如果设定时间范围或者设定返回数据的条数,就可以实现采集节点的历史数据查询。
[0038]主服务器实现了以下两种连接算法。第一种算法是两张表的每条记录都需要做两两匹配,每次匹配都需要判断两个表的连接属性的是否符合连接条件,如果符合则保留该条连接结果,否则不保留。第二种是利用散列算法对一张表的每一行根据其连接属性做散列映射,另一张表计算散列值,然后和被散列的表进行连接。
[0039]对于第一种连接算法,进行连接的两个数据表分别称为外部表和内部表,首先处理外部表的每一行数据,将它与内部表进行连接匹配操作,构成了两层循环结构,最后返回连接结果数据集。
[0040]在主服务器中,指定时间段数据的检索和指定地点的药品数据的检索这两个功能使用第一种算法进行数据表的连接操作。指定时间段数据的检索是指检索某一时间段内的出现异常的数据,指定地点的药品数据检索是指检索在指定地点中的所有采集节点采集的药品数据。如果检索这部分药品数据,那么本发明需要对感知区域索引表和感知数据表做两次行键查来获得需要的数据。
[0041]对于第二种连接算法,使用散列算法对两个表进行连接,其中一个表(小表)作为散列表,对它的连接属性使用特定的算法进行散列,另一个表(大表)作为探测表,计算其连接属性的散列值,然后到相应的桶中进行匹配。本发明使用连接属性中的每一位转化为ASCII码后相加取模的散列算法,将散列表中的每条数据散列到对应的桶中,其中探测表是感知数据表中检索最新数据得到的结果集。
[0042]药品数据存储系统包括数据监视。感知层每隔一定时间会收集数据并且上传到数据库中,主服务器通过定期监视最新数据,如果发现报警数据,就会将报警数据进行发布。药品数据的检测并不是在主服务器接收到数据时进行的,而是在药品数据存储到数据库后,从数据库中读取数据进行检测。药品数据存储系统在数据发布和分发上结合了局域网。主服务器的事件监视通过Servlet上下文事件来实现。主服务器启动时创建一个上下文监听对象;主服务器关闭时,会销毁该对象。
[0043]综上所述,本发明提出了一种基于物联网的药品数据存储方法,对药品数据的存储、访问以及管理进行模块化、标准化和统一化,并节约了存储空间。
[0044]显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0045]应当理解的是,本发明的上述【具体实施方式】仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
【主权项】
1.一种基于物联网的药品数据存储方法,其特征在于,包括: 将感知数据在药品数据存储系统的数据接收端口进行整合,将所有的采集节点在该药品数据存储系统中注册,进行药品数据的检索、分析和管理。2.根据权利要求1所述的方法,其特征在于,所述药品数据存储系统包括主服务器、数据存储服务器、管理客户端和移动客户端;主服务器包括数据压缩模块、数据更新模块、数据检索模块、数据分析模块、数据监视模块和轮询模块,其中数据监视模块包含了报警数据发布,通过局域网发布报警数据,所述数据存储系统根据感知层数据规模的大小选择集中式数据库存储或分布式数据存储,管理客户端和移动客户端为用户提供对传感设备的数据的检索,管理客户端和移动客户端均包括采集节点管理模块、药品数据显示模块、实时数据显示模块和历史数据检索模块;数据更新包括采集节点的添加、删除和药品数据的存储;采集节点的添加和删除功能由用户添加,并且对采集节点进行管理;感知层采集的药品数据通过串口传送到数据接收端,数据接收端将数据推送到主服务器,然后主服务器将数据保存到数据存储系统中;数据压缩模块将数据保存到数据存储系统前,对数据进行压缩处理;数据检索模块包括药品数据查看、实时数据监测和历史数据检索,由用户通过管理客户端和移动客户端进行操作;数据分析模块是对数据存储系统中的数据按照时间段划分,然后对每个时间段的数据进行报警数据统计和分析,也可以根据实际需求对药品数据进行分析;数据监视模块对数据存储系统中的最新数据即上次轮询结束到本次轮询开始时段所采集的药品数据进行检索和检测,如果数据存在异常,则触发报警数据发布功能,通过局域网将报警数据分发给特定的用户;轮询模块是对用户的局域网账号发布的消息做轮询,解析消息得到药品数据检索请求,然后从数据存储系统中检索相关数据,通过局域网返回给用户。3.根据权利要求2所述的方法,其特征在于,所述药品数据存储系统的存储的数据由两部分组成,用户数据和药品数据;用户在药品数据存储系统上注册时,需要提供自己的信息,包括个人信息和局域网账号信息;药品数据包括采集节点信息;每个采集节点每隔一定的频率采集数据,然后需要将这些数据保存起来,所述药品数据存储系统需要保存每个采集节点从接入药品数据存储系统到从药品数据存储系统断开的所有历史药品数据;药品数据的数据库操作包括在插入和检索;数据采集线程将采集到的数据存储到数据库中,而且主服务器根据采集频率设置计时器,定时触发数据压缩操作和数据库插入操作;数据库由Hadoop集群为基础,主机作为文件系统的名字节点和MapReduce计算框架的资源管理器;从机作为文件系统的数据节点和MapReduce的节点管理器;对获取所有药品数据和获取某个指定采集节点的数据操作中,根据采集节点ID和药品数据类型,用行键检索定位到所需的数据;在获取历史药品数据时,用行键定位到所需的数据,并且根据时间进行筛选;对感知信息表的数据建立一个感知区域索引表,行键为用户ID和区域ID的组合,列为采集节点ID和药品数据类型,对感知区域索引表和感知数据表做两次行键查询来获得需要的数据:I)行键检索感知区域索引表,得到该用户在该区域的拥有的采集节点,值为采集节点ID和药品数据类型;2)将上面的检索结果结合用户ID组成行键,在感知数据表中进行检索。
【文档编号】G06F19/00GK105956141SQ201610312830
【公开日】2016年9月21日
【申请日】2016年5月12日
【发明人】许驰
【申请人】成都鼎智汇科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1