具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
图1示出了本发明实施例的一种服务发现方法的流程示意图,
如图1所示,在一些说明性的实施例中,所述一种资源发现方法,包括以下几个步骤:
步骤S101,根据第二设备发送的资源发现请求,进行资源发现;
在一些说明性的实施例中,若所述资源发现请求携带过滤规则(FilterCriteria,或者称为过滤器、筛选器,用于对需要获取的资源进行规定),所述根据第二设备发送的资源发现请求,进行资源发现,具体包括:根据所述过滤规则,进行资源发现;
步骤S102,根据所述资源发现请求创建临时资源,并将发现到的至少部分资源的信息存储于所述临时资源中;
在一些说明性的实施例中,步骤S102,具体包括:
若所述资源发现请求携带用以规定反馈结果大小的第一上限值,则创建所述临时资源,并将发现到的全部资源的信息中超过所述第一上限值的部分存储到所述临时资源中;若反馈结果是以资源列表的形式呈现,在所述资源列表中至少包括本设备发现到的全部资源的信息(例如多个资源的URI),则所述第一上限值是用来限定所述资源列表的大小;若发现的资源列表的大小超过此第一上限值,则仅将资源列表中超过所述第一上限值的部分以列表或其它方式存于所述临时资源中;
下面对上述将资源列表中超过所述第一上限值的部分以列表或其它方式存于所述临时资源中的过程,举例进行解释说明:本设备发现的全部资源的信息需要以资源列表(各资源的URI列表)的形式反馈给第二设备,第二设备发来的第一上限值是200KB,而全部资源的URI(假设共发现300条资源)形成的列表的大小为350KB,那么反馈给第二设备的实际资源列表的大小不超过200KB(包括190条资源),则剩下的110条资源(大约150KB),以资源列表的形式存储于临时资源中;或,
若所述资源发现请求携带创建指示,则根据所述创建指示,创建所述临时资源,并将全部发现到的资源的信息的存储到所述临时资源中;
步骤S103,向所述第二设备发送用于反馈所述资源发现请求的反馈消息;所述反馈消息携带所述临时资源的标识(如临时资源的URI);
在一些说明性的实施例中,在上述过程中,若将发现到的全部资源的信息中超过所述第一上限值的部分存储到所述临时资源中,则所述向所述第二设备发送用于反馈所述资源发现请求的反馈消息,包括:
向所述第二设备发送第一回复消息,所述第一回复消息包括:所述发现到的全部资源的信息中不超过所述第一上限值的部分(资源列表),和,所述临时资源的标识(例如临时资源的URI);
在一些说明性的实施例中,在上述过程中,若将全部发现到的资源的信息存储到所述临时资源中,则所述向所述第二设备发送用于反馈所述资源发现请求的反馈消息,包括:
向所述第二设备发送第二回复消息,所述第二回复消息包括:所述临时资源的标识和所述全部发现到的资源的信息的大小,用于告知所述第二设备临时资源的大小;
此外,可选的,在上述本设备返回资源的信息的过程中,本设备会将发现到的资源的信息,按照预设的规则进行返回,这个规则可以是用户预先设定的,或者是设备出厂时预置的;
其中,这个规则可以是按照资源发现的时间顺序,如:
情景1,所述资源发现请求携带用以规定反馈结果大小的第一上限值:
本设备在发现资源的过程中按照时间顺序将发现到的各资源的URI依次记录到资源列表A(列表A中记录的信息的大小受所述第一上限制大小的限制,如200KB)中,在资源列表A容量已满后,创建临时资源,并依然按照资源发现的时间的先后顺序,依次将各资源的URI记录到临时资源的资源列表B中;在向所述第二设备发送第一回复消息的过程中,将资源列表A和临时资源的标识一起反馈给所述第二设备;
情景2,所述资源发现请求携带所述指示信息:
创建临时资源,本设备在发现资源的过程中按照时间顺序将发现到的各资源的URI依次记录到临时资源的资源列表C中,直至全部资源发现完毕,此时资源列表C中记录了发现到的全部资源的URI;在发送所述第二回复消息过程中,将该临时资源的标识反馈给所述第二设备;若后续第二设备根据该临时资源标识取用资源列表C中的资源的信息时,可以按照列表中资源的排列顺序(即资源的发现顺序)进行反馈;
当然这个规则也可以是其它的规则,例如:按照资源所在设备的优先级顺序,即优先将优先级高的设备的资源的信息反馈给第二设备;或者,按照资源的设备的位置,优先将距离近的设备上的资源的信息反馈给第二设备;或者,按照资源的信号的强弱,优先将信号强的资源的信息反馈给第二设备等等;
在一些说明性的实施例中,在所述向所述第二设备发送用于反馈所述资源发现请求的反馈消息之后,还包括:删除所述临时资源;
触发所述删除所述临时资源的步骤可以是:
接到所述第二设备发送的携带所述临时资源的标识的删除指令;或,
所述临时资源的存储时间超过设定的过期时间;或,
将所述临时资源中存储的所有资源的信息均已反馈至所述第二设备;
在一些说明性的实施例中,在所述向所述第二设备发送第一回复消息之后,或,在所述向所述第二设备发送第二回复消息之后,还包括:
接收所述第二设备发送的获取资源请求,所述获取资源请求携带所述临时资源的标识;
将所述临时资源中的至少部分资源的信息发送至所述第二设备;
在一些说明性的实施例中,若所述获取资源请求携带第二上限值,则:
将所述临时资源中存储的至少部分资源的信息中不超过所述第二上限值的部分,和,用于表示所述临时资源中存储信息剩余情况的剩余指示发送至所述第二设备;
可选的,所述第二上限值可以与所述第一上限值的大小相同或不同;
在一些说明性的实施例中,若将所述临时资源中部分资源的信息发送至所述第二设备,则在所述将所述临时资源中部分资源的信息发送至所述第二设备之后,还包括:刷新所述临时资源的过期时间;
可以理解为:在整个向所述第二设备提供临时资源信息的过程中,若仅将临时资源中存储的部分资源的信息发送给所述第二设备,即临时资源中还有资源未传送给所述第二设备,则更新当前的过期时间,以免因到达原始的过期时间而删除该临时资源,以备所述第二设备再次取用;
在一些说明性的实施例中,还包括:
将所述临时资源当前的过期时间告知所述第二设备;只要为临时资源设置了过期时间,或者,刷新了过期时间,则需要将当前的过期时间告知给所述第二设备,过期时间可以通过上述第一回复消息或第二回复消息发送。
图2示出了本发明实施例的一种服务发现方法的流程示意图,
如图2所示,在一些说明性的实施例中,所述一种资源发现方法,应用于第二设备,包括以下几个步骤:
步骤S201,向所述第一设备发送资源发现请求;
所述资源发现请求携带过滤规则,以使所述第一设备根据所述资源发现请求进行资源发现;
可选的,所述资源发现请求携带用以规定反馈结果大小的第一上限值;其中,所述第一上限值用以指示所述第一设备向本设备返回资源发现结果时,不高于所述第一上限值;或,
所述资源发现请求携带用于告知所述第一设备将发现到的全部资源的信息中超过所述第一上限值的部分存储到所述临时资源中的指示信息;
步骤S202,接收所述第一设备发送的反馈消息,所述反馈消息包括临时资源的标识,所述临时资源存储所述第一设备发现的至少部分所述资源的信息;
可选的,所述反馈消息还携带所述临时资源的过期时间;
在一些可选的实施例中,在接收所述第一设备发送的反馈消息之后,还包括:
若需要从临时资源获取相应的资源的信息,则向所述第二设备发送获取资源请求,所述获取资源请求携带所述临时资源的标识;
进一步的,在接收所述第一设备发送的反馈消息之后,还包括:
向所述第二设备发送携带所述临时资源的标识的删除指令,指示所述第一设备删除所述临时资源。
下面以两个具体的实施例对本方案做进一步解释说明:
如图3所示,在一些说明性的实施例中,所述一种资源发现方法,包括以下几个步骤:
步骤S301,请求者(第二设备)向接收者(第一设备)发送获取资源命令Retrieve1;
请求者通过Retrieve1命令发送资源发现请求给接收者,携带过滤规则,过滤规则中包含返回资源列表的上限值;
步骤S302,接收者根据请求者的请求进行资源发现,当发现的资源组成的列表超过上限值时,接收者为请求者创建临时资源,并设置过期时间,存储超过上限值剩下的资源列表;
步骤S303,接收者向请求者发送反馈消息Response1;
接收者通过Response1应答请求者,并将上限值内的资源列表返回给请求者,同时携带临时资源的通用资源标识URI和临时资源的过期时间;
步骤S304,请求者向接收者发送获取资源命令Retrieve2;
接收者根据自身需求,看是否需要获取剩下的资源列表:如果需要则发送Retrieve2命令到接收者,携带临时资源的通用资源标识URI和上限值,并触发步骤S305;如果不需要,可以触发步骤S306;
步骤S305,接收者向请求者发送反馈消息Response2;
接收者收到Retrieve2命令后,通过Response2将临时资源里的列表返回给请求者:如果列表超过上限,则返回上限值限制的列表,剩下的继续存储,并刷新过期时间;如果列表小于或者等于上限值,则全部返回;
步骤S306,请求者发送删除Delete命令到接收者,并携带要删除的临时资源的URI或者不做任何操作;
步骤S307,接收者向请求者发送反馈消息Response3;
接收者通过Response3回复请求者收到Delete命令,并触发执行步骤S308;
步骤S308,接收者根据Delete命令,删除此临时资源;可选的,到达过期时间,再或者所有资源列表都被取走,则删除此临时资源。
如图4所示,在一些说明性的实施例中,所述一种资源发现方法,包括以下几个步骤:
步骤S401,请求者(第二设备)向接收者(第一设备)发送获取资源命令Retrieve1;
请求者通过Retrieve1命令发送资源发现请求给接收者,携带过滤规则和创建临时资源指示;
步骤S402,接收者根据请求者的请求进行资源发现,并创建临时资源,将发现的资源列表存储在此资源中;
步骤S403,接收者向请求者发送反馈消息Response1;
接收者通过Response1应答请求者,携带临时资源的通用资源标识URI、资源列表的大小和临时资源的过期时间;
步骤S404,请求者向接收者发送获取资源命令Retrieve2;
接收者根据自身需求,是否需要获取资源列表:如果需要则发送Retrieve2命令到接收者,携带临时资源的通用资源标识URI和上限值(可选);如果不需要,可以触发步骤S406;
步骤S405,接收者向请求者发送反馈消息Response2;
接收者收到Retrieve2命令后,通过Response2将临时资源里的列表返回给请求者,并刷新过期时间;
步骤S406,请求者发送删除Delete命令到接收者,并携带要删除的临时资源的URI或者不做任何操作;
步骤S407,接收者向请求者发送反馈消息Response3;
接收者通过Response3回复请求者收到Delete命令,并触发执行步骤S308;
步骤S408,接收者根据Delete命令,删除此临时资源;可选的,到达过期时间,再或者所有资源列表都被取走,则删除此临时资源。
图5示出了本发明实施例的一种资源发现装置500的结构示意图,
在一些说明性的实施例中,所述资源发现装置500,应用于第一设备,包括:
发现单元501,用于根据第二设备发送的资源发现请求,进行资源发现;
记录单元502,用于根据所述资源发现请求创建临时资源,并将发现到的至少部分资源的信息存储于所述临时资源中;
反馈单元503,用于向所述第二设备发送用于反馈所述资源发现请求的反馈消息;所述反馈消息携带所述临时资源的标识;
在一些说明性的实施例中,若所述资源发现请求携带用以规定反馈结果大小的第一上限值,则所述记录单元502包括:第一记录子单元5021,用于创建所述临时资源,并将发现到的全部资源的信息中超过所述第一上限值的资源的信息存储到所述临时资源中;或,
若所述资源发现请求携带创建指示,则所述记录单元502包括:第二记录子单元5022,用于创建所述临时资源,并根据所述创建指示,将全部发现到的资源的信息存储到所述临时资源中;
在一些说明性的实施例中,所述资源发现装置500,还包括:
删除单元504,用于若接到所述第二设备发送的携带所述临时资源的标识的删除指令,或,所述临时资源的存储时间超过设定的过期时间,或,所述反馈单元503将所述临时资源中存储的所有资源的信息均已反馈至所述第二设备,执行:删除所述临时资源;
在一些说明性的实施例中,所述资源发现请求携带过滤规则,所述发现单元501,包括:
发现子单元5011,用于根据所述过滤规则,进行资源发现;
在一些说明性的实施例中,若所述第一记录子单元5021将发现到的全部资源的信息中超过所述第一上限值的部分存储到所述临时资源中,则所述反馈单元503,包括:
第一反馈子单元5031,用于向所述第二设备发送第一回复消息,所述第一回复消息包括:所述发现到的全部资源的信息中不超过所述第一上限值的部分,和,所述临时资源的标识;
在一些说明性的实施例中,若所述第二记录子单元5022将全部发现到的资源的信息的存储到所述临时资源中,则所述反馈单元503,包括:
第二反馈子单元5032,用于向所述第二设备发送第二回复消息,所述第二回复消息包括:所述临时资源的标识和所述全部发现到的资源的信息的大小;
在一些说明性的实施例中,所述资源发现装置500,还包括:
接收单元505,用于所述第一反馈子单元5031向所述第二设备发送第一回复消息之后或第二反馈子单元5032向所述第二设备发送第二回复消息之后,接收所述第二设备发送的获取资源请求,所述获取资源请求携带所述临时资源的标识;
发送单元506,用于将所述临时资源中的至少部分资源的信息发送至所述第二设备;
在一些说明性的实施例中,所述获取资源请求还携带第二上限值,则所述发送单元506包括:
发送子单元5061,用于将所述临时资源中存储的至少部分资源的信息中不超过所述第二上限值的部分,和,用于表示所述临时资源中存储信息剩余情况的剩余指示发送至所述第二设备;
在一些说明性的实施例中,所述资源发现装置500,还包括:
刷新单元507,用于所述发送单元506将所述临时资源中部分资源的信息发送至所述第二设备之后,刷新所述临时资源的过期时间;
在一些说明性的实施例中,所述资源发现装置500,还包括:
时间单元508,用于将所述临时资源当前的过期时间发送所述第二设备。
图6示出了本发明实施例的一种资源发现装置600的结构示意图,
在一些说明性的实施例中,所述资源发现装置600,应用于第二设备,包括:
请求单元601,用于向所述第一设备发送资源发现请求,以使所述第一设备根据所述资源发现请求进行资源发现;
接收单元602,用于接收所述第一设备发送的反馈消息,所述反馈消息包括临时资源的标识,所述临时资源存储所述第一设备发现的至少部分所述资源的信息;
在一些说明性的实施例中,所述资源发现请求携带用以规定反馈结果大小的第一上限值;或,
所述资源发现请求携带用于告知所述第一设备将发现到的全部资源的信息中超过所述第一上限值的部分存储到所述临时资源中的指示信息;
在一些说明性的实施例中,所述资源发现装置600,还包括:
发送单元603,用于所述接收单元602接收所述第一设备发送的反馈消息之后,向所述第一设备发送获取资源请求,所述获取资源请求携带所述临时资源的标识;
在一些说明性的实施例中,所述资源发现装置600,还包括:
指令单元604,用于所述接收单元602接收所述第一设备发送的反馈消息之后,向所述第一设备发送携带所述临时资源的标识的删除指令,指示所述第一设备删除所述临时资源。
采用上述实施例,可达到以下效果:
提供了详细的临时资源创建方法和删除方法;
只需进行一次资源发现,就将所有发现的资源进行记录,避免了现有技术中因上限值引起的资源发现效率低下的问题。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。