TR-069保存点 【技术领域】
本发明涉及一种用于改进由在DSL电信系统的客户端设备CPE与自动配置服务器ACS之间的TR-069远程管理协议会话期间被调用的远程过程调用RPC执行的动作的安全性的方法,所述TR-069会话包括执行关于对象模型参数的动作的多个所述远程过程调用。
背景技术
这种方法是现有技术中已知的。TR-069远程管理协议包括在其上调用远程过程调用RPC的对象模型。
远程管理协议是由DSL论坛的技术报告TR-069针对安全自动配置以及其他CPE管理功能而定义的CPE WAN管理协议CWMP。换言之,TR-069是一种用于在CPE与包含公共框架内的安全自动配置以及其他CPE管理功能的自动配置服务器ACS之间进行通信的协议。技术报告TR-069及其修改例如公布在下面的网址上:
<http://www.broadband-forum.org/technical/trlist.php>。
远程过程调用RPC作为原子动作而被执行的,即或者是RPC成功并且动作完全有效,或者是RPC失败并且最终部分更改直到执行RPC那一点仍未完成。例如,SetParameterValues、SetParameterAttributes、AddObject等在执行RPC期间发生差错的情况下将不会影响对象模型。
尽管RPC原子性保护了在单个RPC级上发生的更改,然而没有在会话级上提供相似的方法。然而,这种会话范围原子性在下面描述的例子中是必要的:
-一些参数值更改会以不可逆的方式中断与ACS的连通性,其结果是CPE被围砌(bricked),例如通过将不可到达的ACS URL或错误的ACS证书置入InternetGatewayDevice.ManagementServer对象中;
-开放服务网关标准OSGi束(特别是在提供本机代码的情况下)将服务平台带入不稳定状态(例如高CPU负载,内存溢出或连接中断),因为其对于平台或运行软件而言是不合适的;
-错误的或不适当的DSL配置、IP路由、防火墙参数等。
在这些情况下,所有RPC都成功执行,但是其会话本身未生效。
最佳的现有解决方案是通过软件/硬件看门狗定时器来提供一些安全性。看门狗定时器的目的是在检测到不稳定性(传统上是由CPU或内核过载造成的)时重新启动整个平台,以期望它解决该平台遭遇的问题。
然而,在该情况下,典型的看门狗机制失败。CPE被围砌,因为错误的配置参数转储。重新启动不能解决问题,因为有害的更改已经在上一次TR-069远程管理协议会话期间被隐性地处理(committed),并且TR-069协议中没有预见回退机制以及TR-069与看门狗定时器之间的反馈链路。
【发明内容】
本发明的目的是提供一种用于改进在TR-069远程管理协议会话期间被调用的动作的安全性的上述已知类型的方法。
根据本发明,这个目的由于所述方法包括下列步骤而得以实现:
-开始TR-069远程管理协议会话,其中调用远程过程调用;
-打开事务TR-069会话,由此由远程过程调用处理的所述对象模型的参数通过保存点机制而被保护;
-由所述自动配置服务器ACS关闭所述事务TR-069会话;
并且所述方法还包括下列步骤:
-通过由所述自动配置服务器调用的StoreSavePoint RPC来处理所述事务TR-069会话,或
-通过由所述自动配置服务器调用的RestoreSavePoint RPC来回退远程过程调用的动作。
这样,如果RPC成功并且动作完全生效,则由ACS调用的StoreSavePoint RPC处理更改并且命令CPE关闭事务TR-069会话,该会话之后仅称为事务。所有更改因而保持持续。
另一方面,如果RPC失败,由ACS调用的RestoreSavePoint RPC请求CPE退回先前通过保存点机制所保存的状态。所有更改因而未完成。
结果,阻止了CPE在TR-069远程管理协议会话期间被围砌或锁定。
本发明的另一个特征实施例在于在所述TR-069远程管理协议会话开始时隐性地打开所述事务TR-069会话。
在这种情况下,当TR-069远程管理协议会话的第一远程过程调用RPC在客户端设备CPE上被调用时,事务TR-069会话被隐性地打开。这意味着从此刻起,每个TR-069会话都是事务的。
本发明的另一特征实施例在于所述事务TR-069会话通过由所述自动配置服务器ACS调用的StartRecording RPC而被显性地打开。
这是比在TR-069会话开始时隐性打开更灵活的方法。自动配置服务器ACS通知客户端设备CPE打开事务TR-069会话,因为将在TR-069会话期间执行的动作或更改可能是有害的。
本发明的又一特征实施例在于所述事务TR-069会话是通过由所述自动配置服务器ACS在所述TR-069远程管理协议会话期间或在后续TR-069远程管理协议会话期间调用的正常保存点处理RPC来处理地。
这样,事务TR-069会话或事务在所建立的TR-069远程管理协议会话期间被处理,或者当事务未在运行的TR-069会话中显性处理时,它必须在后续TR-069会话中被处理。
在本发明的变型特征实施例中,所述事务TR-069会话是通过由所述自动配置服务器ACS调用的定时保存点处理RPC来处理的,并且所述定时保存点处理RPC固定了所建立的和后续的TR-069远程管理协议会话之间的延迟。
为了使客户端设备CPE免于锁定(lockout),下一个TR-069会话可以在由是通过由所述自动配置服务器ACS调用所确定的给定时期之后被调度。
在本发明的优选特征实施例中,所述自动配置服务器ACS在相同的事务TR-069会话期间调用多个定时保存点处理RPC,并且每个后续定时保存点处理RPC固定了比由所述多个定时保存点处理RPC中的在先定时保存点处理RPC所固定的延迟更短的延迟。
这个嵌套保存点系统实现了部分的恢复。
本发明的另一个特征实施例在于当所述事务TR-069会话没有在第一TR-069远程管理协议会话期间被处理时,所述客户端设备CPE在下一个TR-069远程管理协议会话期间发送具有事件代码OpenSavePoint的Inform给所述自动配置服务器ACS,并且所述自动配置服务器ACS将附加字段包含于InformResponse中以关闭事务TR-069会话并且处理所述第一TR-069远程管理协议会话。
当没有在运行的TR-069会话中显性地处理事务时,它必须在下一个TR-069会话中被处理。在这种情况下,CPE发送具有新的事件代码OpenSavePoint的Inform以提醒ACS具有更改的事务等待被处理。ACS因而将附加字段包含于InformResponse中以关闭该事务并且处理之前的TR-069会话。
应当指出,ACS可以触发CPE通过ConnectionRequest来建立会话。在这种情况下,CPE也应当在Inform消息中发送OpenSavePoint事件代码。
本发明的又一特征实施例在于所述保存点机制保存在任何远程过程调用之前处理的所述对象模型的参数值。
这样,如果事务没有由StoreSavePoint RPC处理,则CPE应当恢复其状态至上一次处理的保存点。
本发明的又一特征实施例在于所述保存点机制通过将所述参数值存储在所述DSL电信系统的客户端设备CPE来保存所述参数值。
这使得服务器不必再存储每个CPE的更改并且支持相对复杂的回退场景。
所附的权利要求中描述了本发明方法的其他特征实施例。
应当指出,权利要求中使用的术语“包括”不应当被解释成限于其后列出的装置。因此,“包括装置A和B的设备”这一表述的范围不应当限于仅由部件A和B组成的设备。它意味着设备中仅与本发明有关的部件是A和B。
类似地,应当指出,也用在权利要求中的术语“耦合”不应当解释为限于仅直接连接。因此,“设备A耦合到设备B”这一表述的范围不应当限于其中设备A的输出直接连接到设备B的输入的设备或系统。它意味着在A的输出和B的输入之间存在路径,该路径可以是包括其他设备或装置的路径。
【附图说明】
参考附图,通过阅读下面对实施例的描述,本发明的上述和其他目的和特征将变得更加明显并且本发明本身将得到最好的理解,其中:
图1示出了根据本发明的用于改进由在TR-069会话期间调用的RPC呼叫所执行的动作的安全的方法;
图2示出了图1的方法的特定步骤;和
图3示出了图2所示的特定步骤的变型。
【具体实施方式】
图1示出的方法被用来改进由在TR-069远程管理协议会话期间调用的远程过程调用RPC所执行的动作的安全,所述会话之后仅称为TR-069会话,该会话是在DSL电信系统的客户端设备CPE和自动配置服务器ACS之间进行的。该TR-069会话包括几个执行关于对象模型的参数的动作的远程过程调用RPC。
远程过程调用RPC作为原子动作被执行,即或者是RPC成功并且动作完全生效,或者是RPC失败并且最终部分更改直到执行RPC那一点仍未完成。例如,SetParameterValues、SetParameterAttributes、AddObject等将不会在执行RPC期间发生错误的情况下影响对象模型。
尽管RPC原子性保护了发生在单个RPC级上的更改,然而本发明提供了会话级上的类似方法,因为在一些情况下所有RPC可以成功地执行,但是会话本身可能并未生效。
改进在TR-069会话期间调用的动作的安全的基本思想是引入TR-069“保存点”。TR-069保存点可以被最佳地描述成是在特定时刻捕获的快照,其中TR-069对象模型被看作是稳定的。
TR-069保存点具有下列特征:
-它们优选地被存储在CPE侧,这通常是在ACS的请求下,但是在一些情况下如果ACS未发起则由CPE发起也是可行的,例如在ACS URL更改的情况下;
-保存点可以在最开始时、在TR-069会话期间或在TR-069会话结束时、或者是在一个或不止一个TR-069会话之间被设置;
-恢复至前一保存点可以包括对更改的参数值和属性的盖写,和/或对撤销操作的执行,例如对于作为“卸载”的下载的RPC回退。
此外,TR-069保存点可以被用来:
-对CPE的当前状态(例如对象模型)做备份;
-为了使得CPE不必再存储保存点,它们可以被上载至远程文件服务器,并且稍后下载回CPE;
-转储配置简档(profile),这包括将较大的参数集合设置成一个,使用标准的SetParameterValue方法将占用过长的时间或消耗过多的处理或带宽,这个方法的变型可以是通过执行配置动作的保存点来选择CPE上的预先提供的像OEM的简档。
最后,恢复至前一保存点或接受新的保存点应当进一步由轻量事务机制所支持,这支持显性事务处理或定时器监视的处理。定时处理使得CPE能够在至ACS的连接由于更改而丢失的情况下退回稳定的保存点。
详细来讲,TR-069保存点处理是由轻量事务机制所支持的,该机制如下操作;方括号之间的标记与图1中的标记的相似。
首先,事务TR-069会话(此后称为事务)被打开[100],由此由远程过程调用RPC处理的对象模型的参数通过保存点机制而被保护。
自动配置服务器ACS然后调用[110]客户端设备CPE侧上的RPC。
一方面,当ACS已完成[120]调用RPC时,它进行[130]TR-069事务会话。
另一方面,如果RPC失败[140],则ACS决定[150]是否退回到之前的稳定状态[是]或[否]。
如果ACS决定退回到之前的状态[是],则这个ACS调用[160]RestoreSavePoint RPC。由ACS调用的RestoreSavePoint RPC请求CPE退回至先前通过保存点机制所保存的状态。所有更改因而未完成并且过程返回[170]到由ACS在状态[110]调用的RPC。
如果ACS决定不退回[否],则过程立即返回[170]至由ACS在状态[110]调用的RPC。
通过ACS对于在该阶段是否处理更改的决定[180]来完成事务的进行[130]。
如果RPC成功,则ACS决定处理[是]更改并且调用[190]StoreSavePoint RPC。动作因而完全生效,由ACS调用的StoreSavePointRPC处理更改并且命令CPE关闭事务TR-069会话。所有更改因而保持持续。TR-069会话因而也终止[200]。
如果ACS决定不处理[否]更改,则TR-069会话立即终止[200]。
应当指出,在保存点没有被存储在已建立的或当前的TR-069会话中的情况下,它必须被存储在下一会话中。
通过这个保存点机制,其中防止CPE在TR-069会话期间被围砌或锁定,引入两个新的RPC:
-StoreSavePoint RPC:当ACS处理更改并且命令CPE关闭事务时:所有更改保持持续;和
-RestoreSavePoint RPC:当ACS请求CPE退回上一次存储的保存点时:所有更改未完成。
在图2所示的TR-069保存点处理的基本实现中,事务TR-069会话[100]在TR-069会话的开始
被隐性地打开,即当第一RPC在CPE上被调用时。这意味着从现在开始,每个TR-069会话都是事务性的。
然而,由于不总希望连同TR-069远程管理协议会话一起打开事务,图3示出了一种更加灵活的方法,其中优选地使用显性事务标记。其中,ACS通知CPE打开
事务,因为将执行的更改可能是有害的。详细来讲,事务TR-069会话然后通过由自动配置服务器ACS调用的StartRecording RPC而被显性地打开
。
可以实现两种类型的处理:
-正常保存点处理:这是关于隐性和显性打开由ACS调用的事务的如上所述的处理类型,在这种情况下,保存点可以在已建立的会话中被处理,或者如果当下一会话被建立时事务未在运行的TR-069会话中被显性地处理,则保存点可以被处理;和
-定时保存点处理:为了防止CPE锁定,下一个TR-069会话可以立即被调度,或者在给定时期后被调度,定时保存点处理RPC被ACS调用并且固定了已建立TR-069会话与下一TR-069会话之间的延迟,换句话说,下一个TR-069会话在给定时期后被调度,该给定时期是由定时保存点处理RPC确定的延迟,这防止了CPE被锁定。
优选地,自动配置服务器ACS在同一事务期间调用几个定时保存点处理RPC。这些连续的或嵌套的定时保存点处理RPC中的每一个都固定了比由在先定时保存点处理RPC固定的延迟更短的延迟。这个嵌套保存点系统实现了部分的恢复并且促进了故障检测。
保存点机制保存在任何远程过程调用RPC之前处理的对象模型的参数值。结果,如果事务未被StoreSavePoint RPC处理,则怀疑发生故障并且CPE应当恢复其状态至上一次处理的保存点。
更一般地说,当事务未在运行的TR-069会话中被显性地处理时,它必须在下一个TR-069会话中被处理。
这可以例如通过下列会话外事务处理递送机制之一来实现。
当事务TR-069会话未在第一TR-069会话远程管理协议会话期间被处理时,客户端设备CPE在下一个TR-069会话期间发送具有事件代码的Inform至自动配置服务器ACS,例如OpenSavePoint,从而提醒ACS具有更改的事务等待被处理。ACS然后可以通过将附加字段包含到InformResponse中来进行答复,从而关闭该事务并且处理保存点以及第一TR-069会话。
ACS也可以决定通过StoreSavePoint RPC进行显性处理,或者通过RestoreSavePoint RPC在评估回退之后进行显性处理。
也许不是对象模型的所有参数都需要通过保存点被保护。在该情况下,可以定义新的参数属性,例如指定的事务或保存点。仅其属性被标记成事务或保存点的参数应当在这个细密的选择中被考虑。
保存点必须被存储在CPE侧。最明显的方式是在包含参数值、属性等的文件系统上针对每个保存点创建一个文件。
也可以为了备份/恢复的目的、或者当CPE消耗完文件系统上的空间时将这些文件上载到远程文件服务器。
最后,保存点机制可以在CPE侧保存在事务TR-069会话期间调用的远程过程调用的历史记录,从而能够在必要时恢复参数。
最后应当指出,上面就功能块描述了本发明的实施例。根据上面给出的对这些块的功能描述,如何利用已知电子元件制造这些块的实施例对于设计电子设备领域的技术人员而言是显而易见的。因此并未给出功能块的内容的详细结构。
尽管上面结合指定装置描述了本发明的原理,然而应当清楚地理解,这个描述仅作为例子而不作为对本发明范围的限制,本发明范围由所附权利要求限定。