具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
图1示出了本发明实施例的一种自动订阅资源的方法的流程示意图,
如图1所示,在一些说明性的实施例中,所述一种自动订阅资源的方法,应用于订阅侧,包括下述步骤:
步骤S101,发送用于创建第一资源的资源创建请求给业务平台侧,所述资源创建请求携带至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径,指示所述业务平台侧为本侧订阅各所述发布侧的资源;
其中,所述待订阅的所述发布侧的资源是所述业务平台侧未被创建的资源,所述发布侧的资源的路径可以是所述订阅侧根据业务平台侧创建订阅资源的规则预测得到的,即可以理解为所述发布侧的资源的路径对应的是业务平台侧为本订阅侧订阅该资源时创建的订阅资源的路径;由于发布侧的资源的路径的字符数可能较长,因此资源创建请求携带的路径可能只是截取了部分字符,但通过该段字符串即可以使得业务平台侧确定资源的路径是否匹配;
其中,所述订阅侧可以包括用于订阅资源的应用节点,或者包括该应用的实体(如终端、设备、装置等),例如IN-AE(InfrastructureNodeApplicationEntity,平台侧应用实体);所述发布侧可以包括用于发布资源的应用节点,或者包括该应用的实体,例如ADN(ApplicationDedicatedNode,专属应用节点);所述业务平台侧是提供订阅服务的节点,所述业务平台侧通过订阅服务,将所述发布侧的资源提供给所述订阅侧,例如IN(InfrastructureNode);若所述发布侧为应用,则所述发布侧的标识是该应用的标识;若所述发布侧为实体,则所述发布侧的标识是实体的标识,如设备的标识;
在上述过程中,订阅侧需要订阅至少一个发布侧的资源,因此在资源创建请求中携带了所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;携带的待订阅的各所述发布侧的资源的类型和/或路径,是为了让所述业务平台侧对所述发布侧在该平台上创建的资源进行监测,若创建了与携带资源的类型相同的资源,和/或,创建了路径至少部分与携带的所述路径一致的资源,则为所述订阅侧进行订阅;
在一些说明性的实施例中,所述资源创建请求包括所述第一资源的信息,所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径通过所述第一资源的信息中的至少一个资源属性携带;
在资源创建请求中携带用于创建第一资源所需的完整信息(例如第一资源的至少一个资源属性和子资源,各子资源可能还包括至少一个资源属性和子资源),所述发布侧的标识、以及待订阅的所述发布侧的资源的类型和/或路径就是通过这些信息中的资源属性携带;通过该资源创建请求中携带的这些信息,指示所述业务平台侧创建所述第一资源,并通过该所述第一资源对发布侧建立资源的情况进行监测,进而完成相应的订阅操作;
在一些说明性的实施例中,在步骤S101之后,还包括:
接收所述业务平台侧发送的用于告知某所述发布侧已上线的第一通知;若本侧订阅的发布侧为多个,则每当某发布侧上线后,会收到所述业务平台侧发送的第一通知,获知该发布侧已上线;所述第一通知携带该发布侧的标识;
向所述业务平台侧发送收到所述第一通知的第一反馈消息,告知所述业务平台侧已收到所述第一通知,即本侧已获知所述发布侧已上线;
步骤S102,接收所述业务平台侧发送的订阅成功的通知消息,获知已成功订阅某所述发布侧的资源;其中,所述资源的类型与所述资源创建请求携带的所述发布侧的资源的类型一致,和/或,所述资源创建请求携带的所述发布侧的资源的路径与所述资源的路径中的至少部分相一致;
向所述业务平台侧发送携带某所述发布侧的标识的用于更新所述第一资源的更新消息,指示所述业务平台侧执行相应的更新操作;
每当所述业务平台侧成功为本侧创建一个所述发布侧的资源后,订阅侧都会收到业务平台侧发送的通知消息,获知成功订阅该发布侧的资源;
由于本侧已经成功订阅了某发布侧的资源,则需要删除第一资源中记录的用于发现或订阅该发布侧的资源的信息,包括该发布侧的标识、以及已被成功订阅的该发布侧的资源的类型和/或路径;
在一些说明性的实施例中,在步骤S102之前,还包括:
接收所述业务平台侧发送的第二通知,获知所述业务平台侧已创建某所述发布侧的资源;所述第二通知携带该所述发布侧的标识;
若在本侧发送的资源创建请求中携带的创建第一资源的信息中,将待订阅的各所述发布侧的资源的类型和/或路径通过发现资源属性携带,即可理解为创建第一资源的目的是为了发现发布侧的资源,则业务平台侧每次创建一个发布侧的资源(该发布资源的类型与所述资源创建请求携带的该所述发布侧的资源的类型一致,和/或,所述资源创建请求携带的某所述发布侧的资源的路径与所述发布资源的路径中的至少部分相一致),会通知本侧已创建该发布侧的资源;
本侧若是想订阅的话,则向所述业务平台侧发送订阅该所述发布侧的所述资源的订阅消息,即可完成对该发布侧的所述资源的订阅。
图2示出了本发明实施例的一种自动订阅资源的方法的流程示意图,
如图2所示,在一些说明性的实施例中,所述一种自动订阅资源的方法,应用于业务平台侧,包括以下几个步骤:
步骤S201,根据接收到的订阅侧发送的资源创建请求,创建所述第一资源,所述第一资源中包含所述资源创建请求中携带的至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;
步骤S202,通过所述第一资源,对所述至少一个发布侧的资源创建情况进行监测;
步骤S203,当监测到所述发布侧创建了与所述资源创建请求携带的某所述发布侧的资源的类型一致的资源,和/或,创建了路径中的至少部分与所述资源创建请求携带的某所述发布侧的资源的路径相一致的资源,则为所述订阅侧创建该资源的订阅资源;
在本实施例中,所述待订阅的所述发布侧的资源是所述业务平台侧未被创建的资源,业务平台侧根据收到的订阅侧发送的资源创建请求后,创建第一资源,通过创建所述第一资源,对所述资源创建请求中携带的所述至少一个发布侧的资源创建情况进行监测,当检测到所述发布侧创建了订阅侧需要订阅的资源后,为所述订阅侧订阅该资源;在上述监测过程中,通过所述资源创建请求中携带的待订阅的各所述发布侧的资源的类型和/或路径,对订阅侧创建的资源进行监测,当监测到所述发布侧创建了与所述资源创建请求携带的某所述发布侧的资源的类型一致的资源,和/或,创建了路径中的至少部分与所述资源创建请求携带的某所述发布侧的资源的路径相一致的资源时,则确认发布侧已创建了订阅侧需要订阅的资源;
在现有技术中,对业务平台侧未被创建的资源,订阅侧需要先订阅它的上一级别的资源,然后通过该资源监视所需资源的创建情况;如果是多级资源,则需要进行多次的订阅,并且在这个过程中会与业务平台侧进行多次交互,非常繁琐;在本实施例中,通过创建第一资源,完成对订阅侧所需资源的监测,在整个过程中,无论所需资源是否为多级资源,都能通过所述第一资源完成相应的订阅过程,减少与订阅相关的交互次数,节省网络开销,降低设备负载;
在一些说明性的实施例中,所述资源创建请求包括所述第一资源的信息,所述资源创建请求中携带的所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径通过所述第一资源的信息中的至少一个资源属性携带,则所述创建第一资源,包括:
根据所述第一资源的信息,创建包括所述至少一个资源属性的所述第一资源,所述至少一个资源属性中包含所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;
这个过程可以理解为根据资源创建请求中携带的建立完整第一资源的信息,建立第一资源;
若所述第一资源是现有技术中已规定的资源,例如订阅资源(<subscription>),则在所述第一资源中可以通过添加新的资源属性(如,预订阅属性“preSubscription”或发现属性“Discovery”),并将待订阅的各所述发布侧的资源的类型和/或路径储存于新的资源属性中,而将所述至少一个发布侧的标识存放于过滤规则属性(“filterCriteria”);
若所述第一资源不是现有技术中已规定的资源,而是新增的资源,例如新增的预订阅资源(<preSubscription>),在该资源中可以包括元素属性(“element”),所述元素属性用于存储所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;此外,在该资源中还可以包括其它资源属性和/或子资源,为订阅“element”中所记录的发布侧的资源存储相应的所需的参数;
在上述过程中,通过将至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径存储于第一资源的资源属性中,使得所述第一资源对所述发布侧的资源创建情况进行监测,当所述至少一个发布侧在业务平台侧有相应的业务活动时,该第一资源都会监测到,并将与所述订阅侧订阅所需资源相关的通知发送给所述订阅侧;
在一些说明性的实施例中,在步骤S203之后,还包括:
向所述订阅侧发送订阅成功的通知消息,告知所述订阅侧已成功订阅某所述发布侧的资源;
接收所述订阅侧发送的更新所述第一资源的更新消息;
根据所述更新消息携带的该所述发布侧的标识,删除所述第一资源中存储的该所述发布侧的标识、以及已被订阅的该所述发布侧的资源的类型和/或路径,以使业务平台侧不用再根据第一资源中的记录为所述订阅侧监视和创建该发布侧的资源;
例如:将上述实施例中的第一资源(<subscription>)中的预订阅属性“preSubscription”或发现属性“Discovery”中记录的该发布侧的资源的类型和/或路径删除,并且将过滤规则属性(“filterCriteria”)中记录的该发布侧的标识删除;或,将元素属性“element”中记录的该发布侧的标识,以及资源的类型和/或路径删除;
在一些说明性的实施例中,若所述待订阅的各所述发布侧的资源的类型和/或路径存储于所述第一资源的发现属性(“Discovery”,当然这里所述的发现属性也可以是其它名称,只要具有发现资源的功能即可)中,则步骤S202,即在对所述至少一个发布侧的资源创建情况进行监测的过程中,具体包括:
监测到创建了某所述发布侧的所述资源(该资源的类型与所述第一资源的发现属性“Discovery”中存储的订阅侧待订阅的资源的类型一致,和/或,该资源的路径中的至少部分与所述第一资源的发现属性中存储的订阅侧待订阅的资源的路径一致),向所述订阅侧发送第二通知,告知已创建某所述发布侧的所述资源;所述第二通知携带某所述发布侧的标识;
接收所述订阅侧发送的订阅该所述发布侧的所述资源的订阅消息,通过订阅该所述发布侧的所述资源为所述订阅侧创建所述订阅资源,例如在该资源下创建子资源<subscription>,该资源即:为所述订阅侧创建的订阅资源;
或,
若所述待订阅的各所述发布侧的资源的类型和/或路径存储于所述第一资源的除发现属性以外的其它属性(如上述例子中的预订阅属性“preSubscription”或元素属性“element”)中,则业务平台侧监测到所述发布侧的所述资源后,则自动为所述订阅侧进行订阅,无需执行上述向所述订阅侧发送第二通知的步骤;则为所述订阅侧创建该资源的订阅资源(步骤S203),具体包括:
建立所述订阅侧的订阅资源,并将所述第一资源中除了所述用于存储所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径的至少一个资源属性以外的所有数据(即其它资源属性和子资源)复制并添加到所述订阅资源中;
在一些说明性的实施例中,在对所述至少一个发布侧的资源创建情况进行监测的过程中:
如接收某所述发布侧发送的注册请求,则创建该所述发布侧的一级资源;
如接收某所述发布侧发送的创建发布资源请求,则根据所述创建发布资源请求创建所述发布资源;其中,所述发布资源是某所述发布侧的一级资源的子资源;所述创建发布资源请求携带该所述发布侧的资源的类型和/或路径;若创建的所述发布资源的类型与第一资源的属性中存储的(亦是所述资源创建请求携带的)某所述发布侧的资源的类型一致,和/或,创建的所述发布资源的路径中的至少部分与第一资源的属性中存储的(亦是所述资源创建请求携带的)某所述发布侧的资源的路径一致,则触发为所述订阅侧创建该资源的订阅资源的操作;
在上述过程中,所述一级资源和发布资源均是业务平台侧为所述发布侧创建的资源;但所述一级资源是在接收到注册请求后创建的,相当于专门创建了一个用于存储于所述发布侧所有相关信息的资源;而所述发布资源,是所述发布侧在注册成功后,业务平台侧专门根据其发送的创建资源请求相应创建的一个资源;所述发布资源会被创建在所述发布侧的一级资源的下面,即一级资源的子资源;由于创建的第一资源会对发布侧创建资源的情况进行实时的监测,所以当监测到创建的发布资源是订阅侧所要订阅的资源时,则触发执行步骤S203;若创建的发布资源非所述订阅侧所要订阅的资源时,则不触发步骤S203;
在一些说明性的实施例中,在所述创建该所述发布侧的一级资源之后,还包括:
向所述订阅侧发送用于告知该所述发布侧已上线的第一通知;
接收所述订阅侧反馈所述第一通知的第一反馈消息;
在一些说明性的实施例中,为所述订阅侧创建该资源的订阅资源,具体包括:在该资源下创建一个子资源,将该子资源作为所述订阅侧的订阅资源。
下面以几个具体的实施例来说明本方案,包括ADN(发布侧)、IN(业务平台侧)和IN-AE(订阅侧):
方案一:在订阅资源<subscription>上增加新属性(预订阅属性“preSubscription”);如图3所示,具体过程如下:
步骤S301,IN-AE发送订阅请求到IN;
此订阅请求中携带用于创建第一资源的完整资源的信息,包括过滤规则属性“filterCriteria”和预订阅属性“preSubscription”,“preSubscription”中包含IN-AE需要订阅的资源的类型和/或路径,“filterCriteria”中携带IN-AE订阅的资源的来源,即需订阅的能唯一标识AE(ApplicationEntity应用实体)或者设备的标识(下面统一称为ADN的标识);
在本实施例中,IN-AE需要订阅的资源分属于5个ADN,那么“filterCriteria”中携带了5个ADN的标识(ADN1\ADN2\ADN3\ADN4\ADN5),“preSubscription”携带了与各AND相对应的资源的类型和/或路径;例如在此实施例中需要订阅ADN1的资源的类型为container(容器);
步骤S302,IN为IN-AE创建第一资源后,发送响应给IN-AE;
创建的所述第一资源(<subscription>)的树结构如图4所示,包括属性“filterCriteria”和“preSubscription”;根据所述订阅请求中携带的创建<subscription>的信息,所述“filterCriteria”包含ADN1~ADN5的标识;所述预订阅属性“preSubscription”包含与ADN1~ADN5相对应的资源的类型和/或路径;一旦IN成功创建<subscription>后,则会对ADN1~ADN5在IN上的活动进行监测,并会在ADN1~ADN5中任意一个AND创建了IN-AE所需的资源后,自动为IN-AE订阅该资源;可选的,所述<subscription>可以创建于CSEbase(客户化业务执行环境数据库)下;
步骤S303,ADN1发送注册请求到IN;
ADN1注册到IN上,注册请求携带的注册信息包括ADN1的标识;
步骤S304,IN为ADN1创建一级资源;
IN在收到注册请求后,除了记录ADN1的注册信息外,还为ADN1创建一级资源;
步骤S305,IN发送响应到ADN1;
即告知ADN1已注册成功,并为其创建所述一级资源;可选的,与ADN1有关的信息将会统一存放于该一级资源下;
步骤S306,IN通知IN-AE所订阅的设备已上线;
ADN1注册成功后,由于第一资源起到对ADN1的监测作用,所以IN会自动发送通知给IN-A,告知IN-AE订阅的ADN1已上线;其中,此步骤与步骤S305没有必然的顺序关系;
步骤S307,IN-AE发送响应到IN;
该响应对应于步骤S306的上线通知,告知IN已获知ADN1已上线的消息;
步骤S308,ADN1发送创建资源类型为container的资源的请求;
所述请求携带创建类型为container的资源的相关参数;
步骤S309,IN为ADN1创建container资源类型的资源;
IN根据步骤S308中ADN1发送的请求,创建资源类型container的资源(即上述实施例中的发布侧的发布资源);可选的,IN在已为ADN1创建的一级资源下,创建container资源类型的资源;通过第一资源,监测到IN已为ADN1创建了资源类型为container的资源,并且该资源是订阅测所要订阅的资源,因此触发步骤S311;
步骤S310,IN发送响应给ADN1;
该响应对应于步骤S308的请求,告知ADN1已成功为其创建container资源类型的资源;该步骤位于步骤S309之后,但与步骤S311没有必然的顺序关系;
步骤S311,IN在container资源下为IN-AE创建订阅资源(即为IN-AE订阅该container资源),拷贝IN-AE在CSEbase下创建的<subscription>中除了filterCriteria和preSubscription以外的所有信息(包括资源属性,若<subscription>有子资源,则还包括子资源);
步骤S312,IN通知IN-AE已为其订阅了ADN1的资源类型为container的资源(即步骤S311中的订阅资源);
在该通知中携带了AE或设备的标识,即ADN1的标识;
步骤S313,IN-AE给IN发送响应;
IN-AE获知已成功订阅ADN1的资源类型为container的资源后,向IN发送响应;
步骤S314,IN-AE更新<subscription>资源(第一资源);
IN-AE向IN发送用于更新<subscription>资源的更新通知,所述更新通知携带ADN1的标识,通知IN将已订阅container资源的ADN1的标识在“filterCriteria”中删除、将“presubscription”中存储的ADN1的资源的类型container删除,若还包括路径,则同时删除该路径;
步骤S315,IN发送响应给IN-AE;
IN根据更新通知完成了对<subscription>的更新后,发送响应给IN-AE。
方案二:在订阅资源<subscription>上增加新属性(发现属性“Discovery”);方案一与方案二的区别在于,新增的属性是发现属性,即当IN通过创建的第一资源监测到所述订阅侧所需的资源后,IN不会自动为IN-AE订阅该资源,而是通知IN-AE,告知IN-AE发现已创建其所需的资源,IN-AE可以根据该通知决定是否继续订阅该资源;如图5所示,具体过程如下:
步骤S501,IN-AE发送订阅请求到IN;
此订阅请求中携带用于创建第一资源的完整资源的信息,包括过滤规则属性“filterCriteria”和发现属性“Discovery”,“Discovery”中包含IN-AE需要订阅的资源的类型和/或路径,“filterCriteria”中携带IN-AE需要订阅的资源的来源,即需订阅的能唯一标识AE(ApplicationEntity应用实体)或者设备的标识(下面统一称为ADN的标识);
在本实施例中,IN-AE需要订阅的资源分属于5个ADN,那么“filterCriteria”中携带了5个ADN的标识(ADN1\ADN2\ADN3\ADN4\ADN5),“Discovery”携带了与各AND相对应的资源的类型和/或路径;例如在此实施例中需要订阅ADN1的资源的类型为container(容器);
步骤S502,IN为IN-AE创建第一资源后,发送响应给IN-AE;
创建的所述第一资源(<subscription>)的树结构如图4所示,包括属性“filterCriteria”和“Discovery”;根据所述订阅请求中携带的创建<subscription>的信息,所述“filterCriteria”包含ADN1~ADN5的标识;所述“Discovery”包含与ADN1~ADN5相对应的资源的类型和/或路径;一旦IN成功创建<subscription>后,则会对ADN1~ADN5在IN上的活动进行监测,并会在ADN1~ADN5中任意一个AND创建了IN-AE所需的资源后,自动通知IN-AE;
所述<subscription>可以创建于CSEbase下;
步骤S503,ADN1发送注册请求到IN;
ADN1注册到IN上,注册请求携带的注册信息包括ADN1的标识;
步骤S504,IN为ADN1创建一级资源;
IN在收到注册请求后,除了记录ADN1的注册信息外,还为ADN1创建一级资源;
步骤S505,IN发送响应到ADN1;
即告知ADN1已注册成功,并为其创建所述一级资源;可选的,与ADN1有关的信息将会统一存放于该一级资源下;
步骤S506,IN通知IN-AE所订阅的设备已上线;
ADN1注册成功后,由于第一资源起到对ADN1的监测作用,所以IN会自动发送通知给IN-AE,告知IN-AE订阅的ADN1已上线;其中,此步骤与步骤S505没有必然的顺序关系;
步骤S507,IN-AE发送响应到IN;
该响应对应于步骤S506的上线通知,告知IN已获知ADN1已上线的消息;
步骤S508,ADN1发送创建资源类型为container的资源的请求;
所述请求携带创建类型为container的资源的相关参数;
步骤S509,IN为ADN1创建container资源类型的资源;
IN根据步骤S508中ADN1发送的请求,创建资源类型container的资源(即上述实施例中的发布侧的发布资源);可选的,IN在已为ADN1创建的一级资源下,创建container资源类型的资源;通过第一资源,监测到IN已为ADN1创建了资源类型为container的资源,并且该资源是订阅测所要订阅的资源,因此触发步骤S511;
步骤S510,IN发送响应给ADN1;
该响应对应于步骤S508的请求,告知ADN1已成功为其创建container资源类型的资源;该步骤位于步骤S509之后,但与步骤S511没有必然的顺序关系;
步骤S511,IN向IN-AE发送通知;
通知IN-AE,IN已为ADN1创建了资源类型为container的资源,并包含AE或设备的标识(ADN1的标识);
步骤S512,IN-AE给IN发送响应;
IN-AE获知步骤S511发送的通知后,向IN发送响应;
步骤S513,IN-AE订阅container资源;
IN-AE向IN发送订阅通知,在该通知中携带了AE或设备的标识(即ADN1的标识),以及资源类型为container;
步骤S514,IN发送响应给IN-AE;
IN为IN-AE订阅ADN1的资源类型为container的资源(如在container的资源下创建子资源,该子资源即IN为IN-AE创建的订阅资源),并发送通知,通知IN-AE已为其订阅了上述资源;
步骤S515,IN-AE更新<subscription>资源(第一资源);
IN-AE向IN发送用于更新<subscription>资源的更新通知,所述更新通知携带ADN1的标识,通知IN将已订阅container资源的ADN1的标识在“filterCriteria”中删除、将“Discovery”中存储的ADN1的资源的类型container删除,若还包括路径,则同时删除该路径;
步骤S516,IN发送响应给IN-AE;
IN根据更新通知完成了对<subscription>的更新后,发送响应给IN-AE。
方案三:增加新资源:预订阅资源<preSubscription>;方案三与上述方案的区别在于,是创建一个现有技术中没有的新资源,该资源用于为IN-AE进行预订阅;如图7所示,具体过程如下:
步骤S701,IN-AE发送创建预订阅资源<preSubscription>请求;
此请求中携带用于创建第一资源(<preSubscription>)的完整资源的信息,包括元素属性“element”,“element”中包含IN-AE需要订阅的资源的类型和/或路径,以及IN-AE需要订阅的资源的来源,即需订阅的能唯一标识AE(ApplicationEntity应用实体)或者设备的标识(下面统一称为ADN的标识);
在本实施例中,IN-AE需要订阅的资源分属于5个ADN,那么“filterCriteria”中携带了5个ADN的标识(ADN1\ADN2\ADN3\ADN4\ADN5),“element”携带了与各AND相对应的资源的类型和/或路径;例如在此实施例中需要订阅ADN1的资源的类型为container(容器);
步骤S702,IN为IN-AE创建第一资源后,发送响应给IN-AE;
创建的所述第一资源(<preSubscription>)的树结构如图8所示,包括元素属性“element”,所述元素属性“element”包含ADN1~ADN5的标识,以及与ADN1~ADN5相对应的资源的类型和/或路径;一旦IN成功创建<subscription>后,则会对ADN1~ADN5在IN上的活动进行监测,并会在ADN1~ADN5中任意一个AND创建了IN-AE所需的资源后,自动为IN-AE订阅该资源;或者,创建多个“element”,每一个“element”对应一个需订阅的资源(包括AND的标识和相对应的资源的类型和/或路径);
<preSubscription>的树结构可以如图8中所示的两种结构,图8a中<preSubscription>包括资源属性“element”和用于存储订阅“element”中的各资源的相关参数的子资源:订阅资源<subscription>;或者如图8b中<preSubscription>包括资源属性以及其它用于存储订阅“element”中的各资源的相关参数的资源属性和子资源;可见,<preSubscription>的结构以及相应的资源属性可以是多变的,在此处不进行限定;
步骤S703,ADN1发送注册请求到IN;
ADN1注册到IN上,注册请求携带的注册信息包括ADN1的标识;
步骤S704,IN为ADN1创建一级资源;
IN在收到注册请求后,除了记录ADN1的注册信息外,还为ADN1创建一级资源;
步骤S705,IN发送响应到ADN1;
即告知ADN1已注册成功,并为其创建所述第一资源;可选的,与ADN1有关的信息将会统一存放于该一级资源下;
步骤S706,ADN1发送创建资源类型为container的资源的请求;
所述请求携带创建类型container的资源的相关参数;
步骤S707,IN为ADN1创建container资源类型的资源;
IN根据步骤S706中ADN1发送的请求,创建资源类型container的资源(即上述实施例中的发布侧的发布资源);可选的,IN在已为ADN1创建的一级资源下,创建container资源类型的资源;通过第一资源,监测到IN已为ADN1创建了资源类型为container的资源,并且该资源是订阅测所要订阅的资源,因此触发步骤S709;
步骤S708,IN发送响应给ADN1;
该响应对应于步骤S706的请求,告知ADN1已成功为其创建container资源类型的资源;该步骤位于步骤S707之后,但与步骤S709没有必然的顺序关系;
步骤S709,IN在container资源下为IN-AE创建订阅资源(即为IN-AE订阅该container资源),假设<preSubscription>的结构如图8a,则拷贝<preSubscription>下的subscription资源,不包括元素属性“element”;假设<preSubscription>的结构如图8b,则拷贝<preSubscription>下除元素属性“element”以外的其它资源属性和子资源;
步骤S710,IN通知IN-AE已为其订阅了ADN1的资源类型为container的资源(即步骤S709中的订阅资源);
在该通知中携带了AE或设备的标识,即ADN1的标识;
步骤S711,IN-AE给IN发送响应;
IN-AE获知已成功订阅ADN1的资源类型为container的资源后,向IN发送响应;
步骤S712,IN-AE更新<preSubscription>资源(第一资源);
IN-AE向IN发送用于更新<preSubscription>资源的更新通知,所述更新通知携带ADN1的标识,通知IN在“element”中将已订阅container资源的ADN1的标识、资源的类型container删除,若还包括路径,则同时删除该路径;或,若每个“element”对应一个ADN,则将对应于ADN1的“element”删除;
步骤S713,IN发送响应给IN-AE;
IN根据更新通知完成了对<preSubscription>的更新后,发送响应给IN-AE。
图9示出了本发明实施例的一种自动订阅资源的装置900的结构示意图;
在一些说明性的实施例中,所述装置900,应用于订阅侧,包括:
第一发送单元901,用于发送用于创建第一资源的资源创建请求给业务平台侧,所述资源创建请求携带至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径,指示所述业务平台侧为本侧订阅各所述发布侧的资源;
在一些说明性的实施例中,所述资源创建请求包括所述第一资源的信息,所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径通过所述第一资源的信息中的至少一个资源属性携带;
在一些说明性的实施例中,所述装置900,还包括:
第一接收单元902,用于所述第一发送单元901发送用于创建第一资源的资源创建请求给业务平台侧之后,接收所述业务平台侧发送的订阅成功的通知消息,获知已成功订阅某所述发布侧的资源;
更新单元903,用于向所述业务平台侧发送携带某所述发布侧的标识的用于更新所述第一资源的更新消息,指示所述业务平台侧执行相应的更新操作;
在一些说明性的实施例中,所述装置900,还包括:
第二接收单元904,用于所述第一发送单元901发送用于创建第一资源的资源创建请求给业务平台侧之后,接收所述业务平台侧发送的用于告知某所述发布侧已上线的第一通知;
反馈单元905,用于向所述业务平台侧发送收到所述第一通知的第一反馈消息。
在一些说明性的实施例中,所述装置900,还包括:
第三接收单元906,用于所述第一接收单元902接收所述业务平台侧发送的订阅成功的通知消息之前,接收所述业务平台侧发送的第二通知,获知所述业务平台侧已创建某所述发布侧的资源;所述第二通知携带该所述发布侧的标识;
第二发送单元907,用于向所述业务平台侧发送订阅该所述发布侧的资源的订阅消息。
图10示出了本发明实施例的一种自动订阅资源的装置1000的结构示意图;
在一些说明性的实施例中,所述装置1000,应用于业务平台侧,包括:
第一创建单元1001,用于根据接收到的订阅侧发送的资源创建请求,创建所述第一资源,所述第一资源中包含所述资源创建请求中携带的至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;
监测单元1002,用于通过所述第一资源,对所述至少一个发布侧的资源创建情况进行监测;
第二创建单元1003,用于用于当所述监测单元监测到所述发布侧创建了与所述资源创建请求携带的某发布侧的资源的类型一致的资源,和/或,当所述监测单元监测到创建了路径中的至少部分与所述资源创建请求携带的某所述发布侧的资源的路径相一致的资源时,为所述订阅侧创建该资源的订阅资源;
在一些说明性的实施例中,所述资源创建请求包括所述第一资源的信息,所述资源创建请求中的所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径通过所述第一资源的信息中的至少一个资源属性携带,则所述第一创建单元1001,包括:
第一创建子单元10011,用于根据所述第一资源的信息,创建包括所述至少一个资源属性的所述第一资源,所述至少一个资源属性中包含所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径;
在一些说明性的实施例中,所述装置1000,还包括:
第一通知单元1004,用于所述第二创建单元1003为所述订阅侧创建该资源的订阅资源之后,向所述订阅侧发送订阅成功的通知消息,告知所述订阅侧已成功订阅所述发布侧的资源;
更新单元1005,用于接收所述订阅侧发送的更新所述第一资源的更新消息;
删除单元1006,用于根据所述更新消息携带的该所述发布侧的标识,删除所述第一资源中存储的该所述发布侧的标识、以及已被订阅的该所述发布侧的资源的类型和/或路径;
在一些说明性的实施例中,若所述待订阅的各所述发布侧的资源的类型和/或路径存储于所述第一资源的发现属性中,则所述监测单元1002,包括:
第二通知单元10021,用于向所述订阅侧发送第二通知,告知已创建某所述发布侧的所述资源;所述第二通知携带该所述发布侧的标识;
第一接收单元10022,用于接收所述订阅侧发送的订阅该所述发布侧的所述资源的订阅消息,触发所述第二创建单元1003通过订阅该所述发布侧的所述资源为所述订阅侧创建所述订阅资源;
或,
若所述待订阅的各所述发布侧的资源的类型和/或路径存储于所述第一资源的除发现属性以外的其它属性中,则所述第二创建单元1003,具体包括:
数据单元10031,用于建立所述订阅侧的订阅资源,并将所述第一资源中除了所述用于存储所述至少一个发布侧的标识、以及待订阅的各所述发布侧的资源的类型和/或路径的至少一个资源属性以外的所有数据复制并添加到所述订阅资源中;
在一些说明性的实施例中,所述监测单元1002,包括:
第二接收单元10023,用于如接收所述发布侧发送的注册请求,则创建某所述发布侧的一级资源;
第三接收单元10024,用于如接收某所述发布侧发送创建发布资源请求,则根据所述创建发布资源请求创建所述发布资源;其中,所述发布资源是某所述发布侧的一级资源的子资源;所述创建发布资源请求携带该所述发布侧的资源的类型和/或路径;
在一些说明性的实施例中,所述装置1000,还包括:
第三通知单元1007,用于所述第二接收单元10023创建该所述发布侧的一级资源之后,向所述订阅侧发送用于告知该所述发布侧已上线的第一通知;
第四接收单元1008,用于接收所述订阅侧反馈所述第一通知的第一反馈消息;
在一些说明性的实施例中,所述第二创建单元1003,具体包括:
建立单元10032,用于该资源下创建一个子资源,将该子资源作为所述订阅侧的订阅资源。
采用上述实施例,可达到以下效果:
减少订阅通知的交换次数;
节省网络开销;
减轻对业务平台侧和订阅侧业务负载能力的要求。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。