一种调用临界资源服务的方法及装置与流程

文档序号:11707462阅读:203来源:国知局
一种调用临界资源服务的方法及装置与流程
本发明涉及临界资源调用领域,尤其涉及一种调用临界资源服务的方法及装置。
背景技术
:通常情况下,在数据资源的处理中存在临界资源,临界资源是指每次只允许一个进程调用的资源。为避免出现多个进程同时调用一个临界资源的情形,在现有的软件集成框架设计中,普遍采用在服务层面对控制对临界资源的互斥调用控制,在某段时间内保证该服务只有一个进程在调用,即将临界资源的调用集成到服务中,通过控制服务的调用方式实现临界资源的正常调用。具体来说,当某个进程需要调用临界资源服务中的临界资源时,首先判断设定时间段内是否存在调用该临界资源服务的进程,如果有进程正在调用该临界资源服务,则阻塞将要调用该临界资源服务的进程,等设定时间段过后,再启动被阻塞的进程调用该临界资源服务。以调用移动通信领域的票据资源为例,将对票据资源的调用封装到一个服务中,在一个时刻只允许一个进程调用该服务。然而,对于临界资源服务来说,例如移动通信领域的票据资源服务,每一个票据资源都有唯一的编号,并且一个票据编号都已经分配到各个部门,即在同一时刻,不同部门的两个或两个以上的进程对票据资源服务进行调用,不会影响票据资源服务的调用。采用上述调用方式,在一个时刻只允许一个进程调用票据资源服务,明显降低了调用临界资源服务的效率。因此,目前亟需一种能够实现高效率地调用临界资源服务的方法。技术实现要素:本发明实施例提供一种调用临界资源服务的方法及装置,用以提高调用临界资源的效率。本发明实施例提供的一种调用临界资源服务的方法,包括:接收第n进程的调用请求消息;所述调用请求消息中包括临界资源服务的标识信息以及临界资源的标识信息;n为正整数;所述临界资源服务中包括多个临界资源;根据所述临界资源服务的标识信息,获取所述临界资源服务的调用信息;所述调用信息中包括调用所述临界资源服务的进程的运行状态信息;根据调用所述临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及所述有效进程调用的临界资源的标识信息;确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同,若相同,则阻塞所述第n进程。较佳地,所述确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同之前,还包括:确定所述调用请求消息中临界资源的标识信息为所述临界资源服务中的一个临界资源的标识信息。较佳地,所述调用信息中还包括设定时间间隔内允许调用所述临界资源服务的最大进程个数;该方法还包括:确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息不相同后,调用所述临界资源服务的进程的运行状态信息,获取当前时刻之前的设定时间间隔内运行的进程个数;确定所述进程个数小于所述最大进程个数后,指示所述第n进程调用所述临界资源服务。较佳地,若确定所述调用请求消息中临界资源的标识信息不是所述临界资源服务中的临界资源的标识信息,则删除所述第n进程。较佳地,该方法还包括:确定第k进程结束调用所述临界资源服务的情况下,获取所述第k进程对应的第k临界资源的标识信息;k为正整数;根据所述第k临界资源的标识信息,从各个被阻塞的进程中确定出目标进程;所述目标进程为与所述第k临界资源的标识信息对应的被阻塞的进程中被阻塞时间最长的进程;指示所述目标进程调用所述临界资源服务。本发明实施例提供一种调用临界资源服务的装置,该装置包括:接收模块,用于接收第n进程的调用请求消息;所述调用请求消息中包括临界资源服务的标识信息以及临界资源的标识信息;n为正整数;所述临界资源服务中包括多个临界资源;获取模块,用于根据所述临界资源服务的标识信息,获取所述临界资源服务的调用信息;所述调用信息中包括调用所述临界资源服务的进程的运行状态信息;根据调用所述临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及所述有效进程调用的临界资源的标识信息;处理模块,用于确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同,若相同,则阻塞所述第n进程。较佳地,所述处理模块还用于:确定所述调用请求消息中临界资源的标识信息为所述临界资源服务中的一个临界资源的标识信息。较佳地,所述调用信息中还包括设定时间间隔内允许调用所述临界资源服务的最大进程个数;所述处理模块还用于:确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息不相同后,调用所述临界资源服务的进程的运行状态信息,获取当前时刻之前的设定时间间隔内运行的进程个数;确定所述进程个数小于所述最大进程个数后,指示所述第n进程调用所述临界资源服务。较佳地,所述处理模块还用于:若确定所述调用请求消息中临界资源的标识信息不是所述临界资源服务中的临界资源的标识信息,则删除所述第n进程。较佳地,所述处理模块还用于:确定第k进程结束调用所述临界资源服务的情况下,获取所述第k进程对应的第k临界资源的标识信息;k为正整数;根据所述第k临界资源的标识信息,从各个被阻塞的进程中确定出目标进程;所述目标进程为与所述第k临界资源的标识信息对应的被阻塞的进程中被阻塞时间最长的进程;指示所述目标进程调用所述临界资源服务。本发明的上述实施例中,接收第n进程的调用请求消息;调用请求消息中包括临界资源服务的标识信息以及临界资源的标识信息;临界资源服务中包括多个临界资源;根据临界资源服务的标识信息,获取临界资源服务的调用信息,并根据调用信息中包括的调用临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及有效进程调用的临界资源的标识信息;确定调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同,若相同,则将第n进程确定为被阻塞的进程。本发明实施例中,对于一个临界资源服务,在接收到第n进程的调用请求消息后,根据调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同来判断是否阻塞第n进程,而不是仅根据当前是否存在调用该临界资源服务的进程来判断是否阻塞第n进程,使得对应不同临界资源的进程仍有机会调用该临界资源服务,从而在满足一个时刻内仅允许一个进程调度一个临界资源的基础上,大大提高了调用临界资源服务的效率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种调用临界资源服务的方法所对应的流程示意图;图2为本发明实施例提供的一种调用临界资源服务的装置的结构示意图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。图1为本发明实施例提供的一种调用临界资源的方法所对应的流程示意图,如图1所示,该方法包括:步骤101,接收第n进程的调用请求消息;所述调用请求消息中包括临界资源服务的标识信息以及临界资源的标识信息;n为正整数;所述临界资源服务中包括多个临界资源;步骤102,根据所述临界资源服务的标识信息,获取所述临界资源服务的调用信息;所述调用信息中包括调用所述临界资源服务的进程的运行状态信息;步骤103,根据调用所述临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及所述有效进程调用的临界资源的标识信息;步骤104,确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同,若相同,则阻塞所述第n进程。本发明实施例中,对于一个临界资源服务,在接收到第n进程的调用请求 消息后,根据调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同来判断是否阻塞第n进程,而不是仅根据当前是否存在调用该临界资源服务的进程来判断是否阻塞第n进程,使得对应不同临界资源的进程仍有机会调用该临界资源服务,从而在满足一个时刻内仅允许一个进程调度一个临界资源的基础上,大大提高了调用临界资源服务的效率。本发明实施例中,临界资源的标识信息是指能够唯一标识该临界资源的信息,具体地,临界资源的标识信息可通过特征参数来表示,相应地,特征参数值即为临界资源的标识信息。针对于一个临界资源服务,以车票系统服务为例,若以车次对车票系统中的资源进行划分,则可设置特征参数为车次,一个车次对应一个临界资源;进一步地,若以车次和车厢对车票系统中的资源进行划分,则可设置特征参数为车次和车厢,一个车次的一个车厢对应一个临界资源。因此,对于一个临界资源服务,设置的特征参数的个数越多,则对临界资源服务中的临界资源划分的粒度越细。具体地,特征参数的设置可由本领域技术人员根据实际情况来确定。本发明实施例中,优选特征参数的个数为1-3。对于超过3个的临界资源服务,需要考虑重新设计临界资源服务。进一步地,临界资源服务的特征参数可以通过以下方式来确定:首先,根据各个进程调用临界资源服务涉及到的变量参数,得到一个向量x(x1,x2,...,xn)。如果两个进程携带向量x的向量值除分量xi位置的值相同外,其他分量的值可以相同也可以不同,这两个进程同时调用临界服务,不会引起临界资源死锁,则将分量xi从向量x中剔除,否则保留;对于向量x中的每一个分量,均按照上述方式进行判断是否剔除,并将保留下来的分量确定为临界资源服务的特征参数。本发明实施例中,为每个临界资源服务设置一个参数表,该参数表中可包括临界资源服务的标识信息、设定时间间隔、设定时间间隔内允许调用该临界资源服务的最大进程个数以及临界资源服务的特征参数等信息,如表1所示, 为临界资源服务的参数表示例。表1:临界资源服务的参数表示例serviceidtcountcharacteristicparam表1中,serviceid表示临界资源服务的标识信息,该标识信息用于唯一标识临界资源服务,通常情况下,可用于代表一类临界资源服务。t表示设定时间间隔,其中,设定时间间隔的具体取值可由本领域技术人员根据经验或实际情况来设置,例如可以为5秒或10秒;count表示设定时间间隔内允许调用该临界资源服务的最大进程个数;characteristicparam表示临界资源服务的特征参数。本发明实施例中,设定时间间隔内调用临界资源服务的进程包括在该设定时间间隔内持续调用该临界资源服务的进程、在该设定时间间隔内调用过该临界资源服务的进程以及在该设定时间间隔内开始调用该临界资源服务的进程。例如,进程1调用临界资源服务的时间为4:30-5:30,即四分三十秒到五分三十秒,进程2调用临界资源服务的时间为5:30-6:30,进程3调用临界资源服务的时间为5:00-6:10。若设定时间间隔为一分钟,则在4:01-5:00的时间间隔内调用临界资源服务的进程个数为1,即进程1,在5:01-6:00的时间间隔内调用临界资源服务的进程个数为3,即进程1、进程2、进程3,在6:01-7:00的时间间隔内调用临界资源服务的进程个数为2,即进程2、进程3。表1仅为临界资源服务的参数表的一种示例,在实际应用中,根据需要可在表1的基础上进行增删。本发明实施例中,临界资源服务的调用信息中可以包括临界资源服务的标识信息以及调用该临界资源服务的进程的信息,其中,调用该临界资源服务的进程包括已经调用过该临界资源服务的进程、尚未调用该临界资源服务的被阻塞的进程、当前正在调用该临界资源服务的进程。调用该临界资源服务的进程的信息包括:调用该临界资源服务的进程的标识信息、调用该临界资源服务的 进程对应的特征参数值(即为调用该临界资源服务的进程对应的临界资源的标识信息)、调用该临界资源服务的进程的运行状态信息,调用该临界资源服务的进程的开始调用临界资源服务的时间等。如表2所示,为调用信息的内容示例。表2:调用信息的内容示例serviceidstpncharacteparamvalueps表2中,serviceid表示临界资源服务的标识信息,st表示进程开始调用临界资源服务的时间,一般情况下,进程开始调用临界资源服务的时间即为发送调用请求的时间。pn表示进程的标识信息,一般情况下,进程的标识信息可以为进程的id号。characteparamvalue表示进程对应的特征参数值,ps表示进程的状态,例如,运行状态(正在调用的状态)和未运行状态(结束调用或尚未调用的状态),其中,处于运行状态的进程为有效进程,处于未运行状态的进程为无效进程。本发明实施例中,在步骤104之前,还包括确定调用请求消息中临界资源的标识信息是否为临界资源服务中的一个临界资源的标识信息,具体地,可根据临界资源服务的标识信息得到临界资源服务的特征参数,判断第n进程对应的第n特征参数值与临界资源服务的特征参数是否匹配,若不匹配,则说明第n进程不符合调用该临界资源服务的前提条件,此时,可将第n进程确定为黑名单进程,即删除第n进程;若匹配,则可执行步骤404,确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同,具体地,可判断第n进程对应的第n特征参数值与有效进程的特征参数值是否相同,若相同,则阻塞所述第n进程,即暂停所述第n进程的调用,若不相同,则根据调用调用请求消息中临界资源的进程的运行状态信息,获取当前时刻之前的设定时间间隔内运行的进程个数,确定该进程个数小于设定时间间隔内允许调用该临界资源服务的最大进程个数后,指示第n进程调用临界资源服务。本发明实施例中,首先判断第n进程的第n特征参数值与临界资源服务的特征参数是否匹配,并在不匹配的情况下,直接确定第n进程为黑名单进程,从而无需再对黑名单进程进行后续的判断过程,节省判断时间,提高调用临界资源服务的效率。本发明实施例中,确定第k进程结束调用临界资源服务的情况下,获取第k进程对应的第k临界资源的标识信息;根据第k临界资源的标识信息,从各个被阻塞的进程中确定出特征参数值与第k特征参数值相同的进程,作为备选进程;根据各个备选进程被阻塞的时间的时间长短,确定被阻塞时间最长的一个进程为目标进程。若被阻塞时间最长的进程有两个或两个以上,则可随机选取一个确定为目标进程。其中,各个被阻塞的进程被阻塞的时间可根据临界资源服务的调用信息中所记录的进程开始调用临界资源服务的时间与当前时间的差值得到。进一步地,在确定第k进程结束调用临界资源服务时,及时更新临界资源服务的调用信息,将第k进程的状态设置为无效状态,即未运行状态。本发明实施例中,为节省存储空间,也可以在第k进程结束调用临界资源服务设定时长后,将第k进程对应的信息从临界资源服务的调用信息中删除。其中,设定时长可由本领域技术人员根据经验确定,为避免确定设定时间间隔内调用临界资源服务的进程个数出现误差,优选设定时长大于一个设定时间间隔。本发明的上述实施例中,接收第n进程的调用请求消息;调用请求消息中包括临界资源服务的标识信息以及调用请求消息中临界资源的标识信息;根据临界资源服务的标识信息,获取临界资源服务的调用信息,并根据调用信息中包括的调用临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及有效进程调用的临界资源的标识信息;确定调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同,若相同,则将第n进程确定为被阻塞的进程。本发明实施例中,对于一个临界资源服务,在接收 到第n进程的调用请求消息后,根据调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同来判断是否阻塞第n进程,而不是仅根据当前是否存在调用该临界资源服务的进程来判断是否阻塞第n进程,使得对应不同临界资源的进程仍有机会调用该临界资源服务,从而在满足一个时刻内仅允许一个进程调度一个临界资源的基础上,大大提高了调用临界资源服务的效率。本发明实施例可实现多个进程对临界资源服务中不同的临界资源进行调用,有效提高了临界资源服务的调度效率,并从软件框架级层面降低临界资源调用设计的难度,维护系统的稳定性。针对上述方法流程,本发明实施例还提供一种调用临界资源服务的装置,该装置的具体内容可以参照上述方法实施。图2为本发明实施例提供的一种调用临界资源服务的装置,该装置包括:接收模块201,用于接收第n进程的调用请求消息;所述调用请求消息中包括临界资源服务的标识信息以及临界资源的标识信息;n为正整数;所述临界资源服务中包括多个临界资源;获取模块202,用于根据所述临界资源服务的标识信息,获取所述临界资源服务的调用信息;所述调用信息中包括调用所述临界资源服务的进程的运行状态信息;根据调用所述临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及所述有效进程调用的临界资源的标识信息;处理模块203,用于确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息是否相同,若相同,则阻塞所述第n进程。较佳地,所述处理模块203还用于:确定所述调用请求消息中临界资源的标识信息为所述临界资源服务中的一个临界资源的标识信息。较佳地,所述调用信息中还包括设定时间间隔内允许调用所述临界资源服务的最大进程个数;所述处理模块203还用于:确定所述调用请求消息中临界资源的标识信息与所述有效进程调用的临界资源的标识信息不相同后,调用所述临界资源服务的进程的运行状态信息,获取当前时刻之前的设定时间间隔内运行的进程个数;确定所述进程个数小于所述最大进程个数后,指示所述第n进程调用所述临界资源服务。较佳地,所述处理模块还用于:若确定所述调用请求消息中临界资源的标识信息不是所述临界资源服务中的临界资源的标识信息,则删除所述第n进程。较佳地,所述处理模块203还用于:确定第k进程结束调用所述临界资源服务的情况下,获取所述第k进程对应的第k临界资源的标识信息;k为正整数;根据所述第k临界资源的标识信息,从各个所述被阻塞的进程中确定出目标进程;所述目标进程为与所述第k临界资源的标识信息对应的被阻塞的进程中被阻塞时间最长的进程;指示所述目标进程调用所述临界资源服务。从上述内容可以看出:本发明的上述实施例中,接收第n进程的调用请求消息;调用请求消息中包括临界资源服务的标识信息以及调用请求消息中临界资源的标识信息;根据临界资源服务的标识信息,获取临界资源服务的调用信息,并根据调用信息中包括的调用临界资源服务的进程的运行状态信息,获取当前时刻运行的有效进程以及有效进程调用的临界资源的标识信息;确定调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同,若相同,则将第n进程确定为被阻塞的进程。本发明实施例中,对于一个临界资源服务,在接收到第n进程的调用请求消息后,根据调用请求消息中临界资源的标识信息与有效进程调用的临界资源的标识信息是否相同来判断是否阻塞第n进程,而不是仅根据当前是否存在调用该临界资源服务的进程来 判断是否阻塞第n进程,使得对应不同临界资源的进程仍有机会调用该临界资源服务,从而在满足一个时刻内仅允许一个进程调度一个临界资源的基础上,大大提高了调用临界资源服务的效率。本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1