一种面向移动设备的服务请求选择与调度方法技术领域
本发明属于软件优化技术领域,具体涉及一种面向移动设备的服务请求选择与调
度方法。
背景技术
服务计算技术是一种分布式计算模式,它可以实现服务的快速、灵活调用以及多
个系统之间的无缝结合和相互合作。近年来,服务计算受到工业界和学术界的广泛关注,服
务计算技术飞速发展,服务数量迅猛增加,给我们的工作和生活带来了极大便利。
随着移动设备和无线通信技术的不断发展,以智能手机为代表的移动系统在我们
的生活中扮演着越来越重要的角色。与此同时,移动设备在内存容量、计算能力、存储容量
以及传感器等方面不断取得突破。然而,强大的移动设备大部分时间都处于空闲状态,这使
得共享这些闲置的计算能力、资源、数据和传感器等成为可能。移动设备可以将这些暂时不
用的资源和数据封装成服务提供给其它用户,这种方式即可以提高资源的利用率又可以获
得额外的收益。移动设备提供服务的方式具有诸多优势,移动设备可以随时随地、方便快捷
地提供服务,并可以提供移动云服务器所不能提供的服务,比如应用传感器提供周围环境
的温度等信息。服务的传递可以通过蓝牙、近场通讯等免费技术,即便在无网络可用的情况
下,仍然可用。
然而,目前的服务提供技术仅适用于云服务器,移动设备提供服务的方式需要解
决服务请求选择、服务请求调度与资源分配等问题,云端服务提供方式对于移动服务提供
方式并不适用。云服务往往接收所有的服务请求,不做选择,对移动设备来说,虽然能力已
大大提高,然而相对于强大的云服务器相比,仍然能力有限,不能处理大量的服务请求,服
务请求过多时要做服务请求选择,拒绝部分请求。云服务器采用的调度与资源分配算法虽
然效果较好,但过于复杂,对移动设备来说,开销太大。另外,移动设备的服务提供不能影响
到移动设备的正常使用,由于移动设备是动态使用的,因此闲置资源也随宿主对移动设备
的使用情况而改变,由此需要一套适用于移动设备的请求处理技术来进行服务请求的选
择、调度和资源分配。
发明内容
鉴于上述,本发明提供了一种面向移动设备的服务请求选择与调度方法,能够解
决移动设备宿主的服务请求选择、调度以及资源分配等问题。
一种面向移动设备的服务请求选择与调度方法,包括如下步骤:
(1)实时监测移动设备的可用资源情况信息;
(2)对于任一新到来的服务请求,通过分析判断选择接收该服务请求并将其插入
服务执行队列的合适位置,或将该服务请求丢弃;
(3)按服务执行队列的排列顺序执行其中各请求所对应的服务。
所述的可用资源情况信息包括移动设备关于CPU、内存、带宽的剩余可用数量;所
述服务请求包含有服务的截止完成时间、所需要的资源及其数量、执行占用时长。
所述步骤(2)的具体实现过程如下:
2.1对于任一新到来的服务请求,通过对其进行解析确定该服务请求的最晚执行
时间,若当前时间已经超过了最晚执行时间,则将该服务请求丢弃,否则执行步骤2.2;
2.2计算该服务请求在服务执行队列中的标准插入时间点;
2.3判断服务执行队列从起始时间点(即当前时间)至标准插入时间点之间是否存
在有时间间隔片段,该片段未被其他外来服务请求占用且该片段内设备的可用资源能够满
足本服务请求:若存在,则将本服务请求插入至该时间间隔片段内;否则执行步骤2.4;
2.4判断服务执行队列从标准插入时间点开始的时间片段内设备的可用资源能否
满足本服务请求:若能够,则将本服务请求插入至该时间片段内,并使标准插入时间点之后
已分配的服务请求依次顺延;否则执行步骤2.5;
2.5判断服务执行队列从标准插入时间点至本服务请求最晚执行时间之间是否存
在有时间片段且该片段内设备的可用资源能够满足本服务请求:若存在,则将本服务请求
插入至该时间片段内,并使该时间片段内以及之后已分配的服务请求依次顺延;否则执行
步骤2.6;
2.6对服务执行队列做溢出处理。
所述步骤2.2中计算服务请求在服务执行队列中的标准插入时间点,具体实现方
法为:从服务执行队列的末尾开始往前查找,逐个比较已分配的服务请求与本服务请求的
最晚执行时间,如果已分配服务请求的最晚执行时间晚于本服务请求的最晚执行时间则继
续往前查找,直到找到某个已分配的服务请求,其最晚执行时间早于本服务请求的最晚执
行时间,则使该已分配服务请求的下一个服务请求的开始执行时间作为本服务请求在服务
执行队列中的标准插入时间点;若寻至队列起始位置都未找到,则使服务执行队列的起始
时间点作为本服务请求在服务执行队列中的标准插入时间点。
所述步骤2.6中对服务执行队列做溢出处理,具体实现方法为:从服务执行序列的
起始开始往后查找直至本服务请求的最晚执行时间,若存在有被本服务请求支配的已分配
服务请求或已分配服务请求集合,则丢弃其中收益最小的已分配服务请求或已分配服务请
求集合,并将本服务请求插入对应的时间片段中;若不存在有被本服务请求支配的已分配
服务请求或已分配服务请求集合,则丢弃本服务请求。
若某一已分配服务请求的执行占用时长大于等于本服务请求的执行占用时长,所
需的各种资源数量均大于等于本服务请求所需的各种资源数量,且收益小于本服务请求的
收益,则表明该已分配服务请求被本服务请求支配;对于某一已分配服务请求集合,若存在
一个时间片段且该时间片段大于等于本服务请求的执行占用时长,在该时间片段内该已分
配服务请求集合所需的各种资源数量均大于等于本服务请求所需的各种资源数量,收益总
和小于本服务请求的收益,则表明该已分配服务请求集合被本服务请求支配。
本发明的整体思想为:首先判断服务请求能在最晚开始时间之前利用闲置资源与
其它服务请求并发执行,如果闲置资源能满足则将其插入;否则将其按最晚开始时间插入,
允许剥夺其他请求已分配的资源,如仍不能满足,则继续搜索后面的时间间隔能否满足;如
果不能插入或插入后产生溢出,则表明移动设备处理的请求过多,需要进行选择,拒绝部分
请求;服务选择时,丢弃收益最低的请求或请求集合。
相对于现有技术,本发明方法可以在服务请求数量过多、移动设备不能满足所有
服务请求时对服务请求进行选择;本发明从收益的角度出发对服务进行选择,可以使移动
设备获得较高的收益,是一种轻量级的调度方法,时间开销较小。
附图说明
图1为本发明将服务请求插入服务执行队列的实施流程示意图。
图2为本发明溢出处理方法的实施流程示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案
进行详细说明。
现有的服务调度方法不适用于移动设备提供服务,经过研究发现,主要是因为云
服务器默认能处理所有的服务请求,因此,云服务提供方式不做服务选择,而是接收所有的
服务,对其进行调度执行。而相比于云服务器,移动设备资源有限,当服务请求过多而无法
满足时,需要对服务请求进行选择。服务提供者提供服务通常是为了某种收益,为此本发明
提出收益驱动的服务请求选择与调度方法,当服务请求过多而无法满足时淘汰收益较小的
服务请求。
本发明面向移动设备的服务请求选择与调度方法,包括如下步骤:
(1)对移动设备在每个时间间隔的可用资源情况进行描述;对移动设备在每个时
间间隔的可用资源情况进行描述,具体表示为每种资源(CPU、内存、带宽)在每个时间间隔
的可用数量,为了刻画移动设备可用资源的动态性,本发明采用按时间间隔的资源描述方
式,对每个时间间隔内的资源进行量化描述。
(2)对每个新到来的服务请求进行处理,选择接收并插入到服务执行队列中或丢
弃;具体流程如图1所示:
S201:对服务请求所需要的资源及数量、执行时间进行描述,计算最晚开始时间,
并判断是否已经超过最晚开始时间,如超过则不能满足该服务请求,将该请求丢弃,否则执
行下一步;服务的最晚开始时间可以通过以下公式计算:
服务最晚开始时间=服务截止时间-服务执行时间
其中,服务截止时间由服务请求指明,服务执行时间由服务设备根据请求的种类
预知。如当前时间已超过截止时间,表示设备在截止时间之前不能完成该服务,因此,不能
选择该服务,将其丢弃。
S202:将服务请求按照最晚开始时间在服务执行队列中进行查找,计算该服务请
求的标准插入时间点;标准插入时间点是指服务请求按照最晚开始时间排序时在服务执行
队列中的时间点。具体过程为:从服务执行队列的队尾开始往前查找,比较已分配的服务请
求与当前服务请求的最晚开始时间,如果已分配服务请求的最晚开始时间晚于当前服务则
继续往前查找,直到找到某个已分配服务请求,其最晚开始时间早于当前服务请求或到队
列开始,此时执行队列的时间点,即为服务请求的标准插入时间。
服务调度可以按照最晚开始时间执行,因为按最晚开始时间顺序调度服务请求的
方式,可以保证在无溢出的情况下处理尽可能多的服务请求。为了加快服务执行的效率,可
以在设备资源允许的情况下,并发执行多个服务。因此在后面步骤插入服务请求的时候,首
先判断能否与前面的请求并发执行,如不能并发执行则按标准插入时间插入。
由于服务并发执行的存在,标准插入时间点之前的服务请求的最晚开始时间可能
会晚于当前服务请求,但标准插入时间点之后的服务请求的最晚开始时间一定晚于当前服
务请求。
S203:从当前时间点开始往后查找设备的服务执行队列,如果在标准插入时间点
之前存在时间间隔片段,在该片段内设备的空闲资源能满足服务请求,即该时间片段长度
等于服务执行时间,并且设备在每个时间间隔的每种空闲资源数量都能满足对应的服务请
求,则表示该服务请求可以在该时间间隔内完成,将请求插入到该时间片段内,否则执行下
列步骤;设备的空闲资源是指当前可用且没有被分配给服务请求的资源,如果不存在这样
的时间片段,则表示该服务请求不能与已分配的服务请求并发执行。
S204:查找设备的服务执行队列,如果在从标准插入时间点开始的时间片段内,设
备的可用资源能满足服务请求,表示服务请求可以从插入时间点开始执行,则将请求插入
到该时间片段内,该时间片段内已分配的服务请求需要后移,具体操作为从当前节点开始,
重新插入执行队列中;否则执行下列步骤。
值得注意的是,此处的可用资源是指设备的所有可用资源,即包括已经分配给其
它服务请求的资源。因为此处已经分配的服务器请求的最晚开始时间晚于当前服务请求,
所以允许其剥夺被分配的资源。
S205:继续往后查找设备的服务执行队列,如果在标准插入时间点之后服务最晚
开始时间之前存在时间片段,在该片段内设备能满足服务请求,则将请求插入到该时间片
段内,该时间片段内已分配的服务请求从当前节点开始重新插入执行队列,否则执行下列
步骤。
S206:对服务请求做溢出处理。服务请求溢出表示根据设备的可用资源情况以及
当前的服务请求调度情况,在新的请求到来时,设备已经不能满足所有的服务请求,需要对
服务请求进行选择,拒绝部分请求,具体步骤如图2所示:
a.从服务执行序列的当前时间节点开始,查找被当前服务请求支配的且收益最小
的服务请求或服务请求集合;
b.如果存在被当前服务请求支配的服务请求或服务请求的集合,则丢弃被支配且
收益最小的服务请求或服务请求集合,并将当前服务请求插入到该时间片段中;
c.如果不存在被支配的服务请求或服务请求集合,则拒绝当前服务请求。
支配关系表示为:对于服务请求A和B,如果服务请求B所需时间片段长于等于A,所
需的每种资源数量都多于等于A,且收益小于A,则称服务请求A支配B。对于多个服务请求组
成的集合,如果存在一个长于等于A的时间片段,在该片段中,这些服务请求所需的资源数
量之和多于等于A,且收益之和小于A,则称服务请求A支配这个服务请求集合。
如果存在可以被当前服务请求支配的服务请求或服务请求的集合,则表示可以通
过用当前服务请求替换被支配请求或集合并增加收益。
(3)按照服务执行队列执行服务。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。
熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般
原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实例,本领域
技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之
内。