一种共享设备系统的配货和计算方法与流程

文档序号:12035452阅读:208来源:国知局

【技术领域】

本发明属于共享设备和计算机领域,尤其涉及一种共享设备系统的配货和计算方法。



背景技术:

近年来,随着计算机行业的快速发展,计算机技术已经深入人们的生活,已经开始逐渐和我们的居住环境结合起来,出现了共享设备的概念。所谓共享设备,就是利用计算机、通信、传感器等技术,将公共设备都连接到一起,由一个中央控制器进行控制,从而给人们提供一个极其便利的生活环境。

由于中央控制器的核心作用,各个设备的通常都需要与中央控制器通信,请求上传数据、处理数据等,无论是哪种请求,中央控制器会根据各个设备的配货任务请求,对请求的任务进行处理。由于共享设备系统中设备众多,中央控制器很可能会同时接收到大量配货任务请求,中央控制器需要尽快对这些任务进行处理,然而,共享设备系统中的中央控制器往往只是一个嵌入式系统,通常不具有大规模并行处理的能力。

现有技术中,面对上述情况,一种做法是由中央控制器进行轮询,另一种做法是让设备在中央控制器忙的时候等待,这两种做法的实现效率都比较低,没有充分利用中央控制器的处理能力,影响了共享设备系统的效率和实时性,因此亟需一种尽可能利用中央控制器处理能力的任务处理方法。



技术实现要素:

为了解决现有技术中的上述问题,本发明提出了一种共享设备系统的配货和计算方法。

本发明采用的技术方案如下:

一种共享设备系统的配货和计算方法,其改进之处在于,所述共享设备系统包括中央控制器、监控单元和多个设备,其中,所述中央控制器分别与所述监控单元和多个设备连接,每台设备上均设有预定编号;每台设备内存放不同货物,所述监控单元监控所述共享设备,当所述多个设备中的任意某一设备被打开,关门后设备监控单元系统都会自动扫描内部货物并将库存数量及价格信息等上传中央控制器。无论任一单品货物得到补货(或增加新商品),造成货物存量增加,还是任意单品货物因销售等其它情况造成库存减少,中央控制器都会生成新的共享设备内货物库存数量及价格等新信息内容,并将此实时信息内容通过系统权限审核后分享给不同货物生产企业、供货单位及设备对应的仓储、物流服务单位及不同服务单位或部门。若设备货物库存是减少的数据信息,中央控制器则根据货物信息及共享设备编号及定位,同时向设备对应的仓储、物流服务单位发出配送指令;向不同货物生产企业、供货单位生成采购订单,保证共享设备内货物的库存数量。

其中,所述配货需求包括:所述多个设备中的设备中的货物售罄。

所述共享设备系统包括中央控制器和多个设备,所述中央控制器包括队列模块、任务分配模块和任务处理模块;该方法包括如下步骤:

所述队列模块接收配货任务请求,在接收到一个配货任务请求后,所述队列模块首先判断是否已经建立了任务队列,如果还未建立任务队列,则队列模块就新建一个任务队列,然后将该配货任务请求加入任务队列。如果已经建立了任务队列,则队列模块判断任务队列的排队数量是否已达到最大值,如果已达到最大值,则队列模块放弃所述配货任务请求,并通知发出该配货任务请求的设备;如果未达到最大值,则队列模块根据该配货任务请求计算其任务排队值,根据该任务排队值,将该配货任务请求插入任务队列,并向所述任务分配模块发送一个任务增加消息;

所述任务处理模块在完成任务处理时,向所述任务分配模块发送一个空闲消息;所述任务分配模块在接收到所述空闲消息后,首先检查是否存在任务队列,如果有任务队列且任务队列不为空,则任务分配模块进行任务分配,即取出任务队列中的第一个配货任务请求,将其发送给任务处理模块;如果没有任务队列,或者任务队列为空,则任务分配模块进入等待状态;处于等待状态的任务分配模块在接收到任务增加消息时,就脱离等待状态,进行任务分配。

优选的,所述队列模块计算任务排队值,并根据任务排队值将配货任务请求插入任务队列的具体过程如下:

1)队列模块在接收到一个配货任务请求a时,根据配货任务请求a中携带的设备id,从中央控制器的数据库中查询到该设备的任务处理总时间t1、任务等待总时间t2,如果没有查询到,则默认t1=1,t2=0;其中任务处理总时间是在过去一预定时间段内,中央控制器处理该设备的所有配货任务请求所花费的总时间;所述任务等待总时间是在过去一预定时间段内,所述设备发出的所有配货任务请求在任务队列中的等待时间之和;

2)队列模块从该配货任务请求a中获取其任务优先级p,如果p=0,则队列模块将该配货任务请求a插入在队列头,过程结束,否则继续执行下述步骤;所述任务优先级由发出配货任务请求的设备设置,可设置为0或该设备的设备优先级,0表示紧急任务,所述设备优先级有n个等级,分别为等级1到等级n,等级n的设备优先级最高,等级1的设备优先级最低;

3)队列模块计算该配货任务请求a的任务排队值r,即

其中w1和w2都是预定义的权重值;

4)队列模块从当前任务队列的末尾向前开始查找,一直到找到某个配货任务请求b,该配货任务请求b的任务排队值大于r,或者b的任务优先级为0,就将该配货任务请求a插入队列,位置就在b的后面;如果一直到查找到队列头,都找不到这样的配货任务请求b,那么a就插入在队列头;

5)队列模块在任务队列中保存该配货任务请求a的相关信息,包括为其计算的任务排队值r。

优选的,所述过去一预定时间段是过去24小时内。

本发明还提供了一种共享设备系统中的中央控制器,包括队列模块、任务分配模块和任务处理模块,其中

所述队列模块接收所述共享设备系统中各个设备发送的配货任务请求,在接收到一个配货任务请求后,所述队列模块首先判断是否已经建立了任务队列,如果还未建立任务队列,则队列模块就新建一个任务队列,然后将该配货任务请求加入任务队列。如果已经建立了任务队列,则队列模块判断任务队列的排队数量是否已达到最大值,如果已达到最大值,则队列模块放弃所述配货任务请求,并通知发出该配货任务请求的设备;如果未达到最大值,则队列模块根据该配货任务请求计算其任务排队值,根据该任务排队值,将该配货任务请求插入任务队列,并向所述任务分配模块发送一个任务增加消息;

所述任务处理模块用于处理配货任务请求,当任务处理模块完成一个任务处理时,其向任务分配模块发送一个空闲消息;

所述任务分配模块用于根据任务队列和任务处理模块的状态,向任务处理模块分配配货任务请求,在接收到所述空闲消息后,所述任务分配模块首先检查是否存在任务队列,如果有任务队列且任务队列不为空,则任务分配模块进行任务分配,即取出任务队列中的第一个配货任务请求,将其发送给任务处理模块;如果没有任务队列,或者任务队列为空,则任务分配模块进入等待状态;处于等待状态的任务分配模块在接收到任务增加消息时,就脱离等待状态,进行任务分配。

本发明的有益效果包括:针对共享设备系统中不具有大规模并行处理能力的中央控制器,提高了中央控制器处理任务的效率,平衡了不同设备对中央控制器的资源消耗。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明共享设备系统的总体架构图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

参见附图1,是本发明所应用的共享设备系统,该系统包括所述共享设备系统包括中央控制器、监控单元和多个设备,其中,所述中央控制器分别与所述监控单元和多个设备连接,每台设备上均设有预定编号;每台设备内存放不同货物,所述监控单元监控所述共享设备,当所述多个设备中的设备存在配货需求时,所述监控单元通过通信网络向所述中央控制器发出配货任务请求;

其中,所述配货需求包括:所述多个设备中的设备中的货物售罄。

例如:当监控单元发现某台设备中的某个货物数量较少时,监控单元生成对该设备进行货物的配货任务请求,任务请求处理完成后,通知配货人员进行货物的配送;

再例如:若监控单元发现其中一台共享设备中的某种货物存货较多,另一台的该种货物存货较少时,则监控单元生成这两台共享设备之间货物进行均匀分配的任务请求,任务请求处理完成后,通知配货人员进行货物的配送,将货物多的设备中的该种货物配送至货物少的设备内。

本发明提供的实施例中,还包括多种配货规则,当满足该多种配货规则时,所述监控单元生成相应的配货任务,例如,共享设备中货物超过一定时间未销售出,则监控单元生成更换货物任务请求,再由配货人员进行货物更换,如肉/水果等生鲜货物超过24小时还未售出,则由配送人员进行全部更换等。

综上所述,共享设备会对不满足销售要求且满足配送规则的货物进行配货或更换,直至共享设备中货物均符合销售要求。

中央控制器和各个设备之间通过通信网络连接,现有技术中常见的是使用zigbee无线网络。所述中央控制器是一个嵌入式系统,通过网络模块和外部通信。用户使用客户端(例如手机)通过互联网和中央控制器远程连接,从而可以通过中央控制器访问和控制家中的各个设备。

所述多个设备通过通信网络向中央控制器发出配货任务请求,所述中央控制器接收各个配货任务请求,并根据配货任务请求建立任务队列,根据当前的处理情况,操作任务队列。由于中央控制器是一个嵌入式系统,本发明的实施例假定该中央控制器同一时间只能处理一个任务,对于同一时间可并行处理多个任务的中央控制器,可以比照本发明的精神进行改进。

当一个设备需要中央控制器处理一个任务时,其首先向中央控制器发送一个配货任务请求。在共享设备系统中,设备向中央控制器请求处理的任务类型不多,通常而言,主要包括以下四种:上传数据任务,即设备将其获取的数据发送到中央控制器请求存储,典型的例如监视摄像头请求存储其拍摄的监视录像;报警任务,即设备发现异常向中央控制器报警,例如煤气检测设备、火灾检测设备等;通知任务,即设备请求中央控制器向另一设备或者用户客户端发送通知或数据;计算型任务,即设备请求中央控制器处理某个计算任务,根据计算结果中央控制器决定设备的下一步操作。

所述中央控制器具有一个队列模块,该队列模块可用于接收各个设备发送来的配货任务请求。在接收到一个配货任务请求后,所述队列模块首先判断是否已经建立了任务队列,如果还未建立任务队列,则队列模块就新建一个任务队列,然后根据该配货任务请求,将该配货任务请求加入任务队列。如果已经建立了任务队列,则队列模块判断任务队列的排队数量是否已达到最大值,如果已达到最大值,则队列模块放弃所述配货任务请求,并通知所述设备,请该设备等待一段时间后再发送配货任务请求。如果未达到最大值,则队列模块根据该配货任务请求,计算一个任务排队值,根据该任务排队值,将该配货任务请求插入任务队列的某个位置。具体的任务排队值的计算方法及插入队列的方法在后面详细说明。

所述中央控制器还具有任务处理模块,该任务处理模块用于处理配货任务请求,为了便于说明,本发明实施例的任务处理模块同时只能处理一个任务。当任务处理模块完成一个任务处理时,其向任务分配模块发送一个空闲消息,用以表明任务处理模块已经进入空闲状态,可以接受新的配货任务请求。

上述任务分配模块用于根据任务队列和任务处理模块的状态,向任务处理模块分配配货任务请求。当任务分配模块接收到任务处理模块的空闲消息后,首先检查是否存在任务队列,如果有任务队列,且任务队列不为空,则任务分配模块进行任务分配,即取出任务队列中的第一个配货任务请求,将其发送给任务处理模块,从而任务处理模块可对该配货任务请求进行处理。如果没有任务队列,或者任务队列为空,则任务分配模块会进入等待状态,等待队列模块的通知,所述队列模块在每次往任务队列中加入一个配货任务请求时,都会向任务分配模块发送一个任务增加消息,处于等待状态的任务分配模块在接收到任务增加消息时,就会脱离等待状态,进行任务分配。

上述队列模块、任务分配模块和任务处理模块都是独立运行的模块,因此在理论上,中央控制器只需要并行运行上述三个模块即可,对于共享设备系统中没有大规模并行能力的中央控制器而言,是非常适合的。本领域技术人员可以理解,上述模块可以使用程序模块实现,也可以使用硬件模块来实现。

以下对任务队列的任务排队值进行说明,本发明的任务排队值考虑了三种因素:

任务优先级:任务优先级基本取决于设备优先级,用户可以根据每个设备的重要程度,给予不同的设备优先级,因此设备在发出配货任务请求时,在配货任务请求中携带一个任务优先级,一般情况下,该任务优先级等于发出配货任务请求的设备优先级。但是,为了处理某些紧急情况,例如煤气检测、火灾检测中发现的紧急情况,允许设备将配货任务请求中的任务优先级标记为紧急等级。本发明将设备优先级划分为n个等级,分别为等级1到等级n,等级n的设备优先级最高,等级1的设备优先级最低。另外,设置等级0为紧急等级。设备等级是预先设置的,并且可以由系统或管理员修改。

任务处理总时间:每个设备请求任务的处理时间是不同的,同一设备每次任务的处理时间也是不同的,为了防止某个设备耗费中央控制器的资源过多,需要在各个设备之间进行平衡。因此,我们使用任务处理时间来进行平衡。对于一个设备a,其任务处理总时间指的是过去一段时间内(优选的,过去24小时内),中央控制器处理该设备a的所有配货任务请求所花费的总时间。基于所述任务处理总时间,如果设备a的任务处理总时间越长,其在任务队列中的排队位置越靠后,从而可以平衡各个设备的资源消耗。

任务等待总时间:一般情况下,每个设备向中央控制器发出配货任务请求,该配货任务请求都很可能在任务队列中等待一段时间,因此可以对任务等待时间进行平衡。具体地,对于一个设备a,其任务等待总时间指的是过去一段时间内(优选的,过去24小时内),其发出的所有配货任务请求在任务队列中的等待时间之和。已有的任务等待总时间越长,就可以在下次的任务队列中排队位置相应靠前,这是对各个设备任务等待时间的平衡。

综合考虑上述三个因素,本发明根据每次任务处理的相关情况,统计各个设备的任务处理总时间、任务等待总时间,并保存在中央控制器的数据库中,作为计算任务排队值的依据。队列模块可以根据配货任务请求中携带的设备id,查询到相应的任务处理总时间、任务等待总时间,再加上配货任务请求中携带的任务优先级,进行任务排队值的计算,并将配货任务请求插入任务队列,其具体的步骤如下:

1)队列模块在接收到一个配货任务请求a时,根据配货任务请求a中携带的设备id,从中央控制器的数据库中查询到该设备的任务处理总时间t1、任务等待总时间t2,如果没有查询到,则说明该设备是个新设备,默认t1=1,t2=0。上述时间的单位都是秒。

2)队列模块从该配货任务请求a中获取其任务优先级p,如果p=0,则说明该任务是紧急任务,队列模块将该配货任务请求a插入在队列头,过程结束,否则继续执行下述步骤。

3)队列模块计算该配货任务请求a的任务排队值r,即

其中w1和w2都是预定义的权重值。

4)队列模块从当前任务队列的末尾向前开始查找,一直找到某个配货任务请求b,b的任务排队值大于r,或者b的任务优先级为0,就将该配货任务请求a插入队列,位置就在b的后面;如果一直到查找到队列头,都找不到这样的配货任务请求b,那么a就插入在队列头。

5)队列模块在任务队列中保存该配货任务请求a的相关信息,包括为其计算的任务排队值r,以用于后续计算。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1