发明内容
本发明的实施例提供了一种远程过程调用命令的传输方法、系统和装置,可解决现有技术中不能传输RPC命令的问题。
本发明的实施例提供了一种远程过程调用命令传输的方法,包括:
将远程过程调用命令设置在设备管理规范信息中,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令;
所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令码设置在警报命令的数据元素中,将远程过程调用命令的参数设置在警报命令的项目元素中;
传输设备管理规范信息。
本发明的实施例还提供了另一种远程过程调用命令传输的方法,包括:
将远程过程调用命令设置在设备管理规范信息中,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令识别码、远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令;
所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令识别码设置在警报命令的数据元素中,将远程过程调用命令码和远程过程调用命令的参数设置在警报命令的项目元素中;
传输设备管理规范信息。
本发明的实施例还提供了一种远程过程调用命令传输的系统,包括:
第一设备,用于将远程过程调用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令码设置在警报命令的数据元素中,将远程过程调用命令的参数设置在警报命令的项目元素中;
第二设备,用于接收所述第一设备的设备管理规范信息。
本发明的实施例还提供了另一种远程过程调用命令传输的系统,包括:
第一设备,用于将远程过程调用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令识别码、远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令识别码设置在警报命令的数据元素中,将远程过程调用命令码和远程过程调用命令的参数设置在警 报命令的项目元素中;
第二设备,用于接收所述第一设备的设备管理规范信息。
本发明的实施例还提供了一种设备管理系统,包括:
第一设备,用于将远程过程调用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令码设置在警报命令的数据元素中,将远程过程调用命令的参数设置在警报命令的项目元素中;
第二设备,用于接收所述第一设备的设备管理规范信息,并处理该设备管理规范信息。
本发明的实施例还提供了另一种设备管理系统,包括:
第一设备,用于将远程过程调用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令识别码、远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令识别码设置在警报命令的数据元素中,将远程过程调用命令码和远程过程调用命令的参数设置在警报命令的项目元素中;
第二设备,用于接收所述第一设备的设备管理规范信息,并处理该设备管理规范信息。
本发明的实施例还提供了一种设备管理服务器,包括:
设置单元,用于将远程过程调用命令设置在设备管理规范信息中,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命 令,所述警报命令包括远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令码设置在警报命令的数据元素中,将远程过程调用命令的参数设置在警报命令的项目元素中;
传输单元,用于传输设备管理规范信息。
本发明的实施例还提供了另一种设备管理服务器,包括:
设置单元,用于将远程过程调用命令设置在设备管理规范信息中,所述设备管理规范信息包括现有设备管理命令,所述现有设备管理命令具体为警报命令,所述警报命令包括远程过程调用命令识别码、远程过程调用命令码和远程过程调用命令的参数,其中,每一远程过程调用命令码对应一个远程过程调用命令,所述将远程过程调用命令设置在设备管理规范信息中具体包括:将远程过程调用命令识别码设置在警报命令的数据元素中,将远程过程调用命令码和远程过程调用命令的参数设置在警报命令的项目元素中;
传输单元,用于传输设备管理规范信息。
本发明的实施例还提供了一种终端设备,包括:
接收单元,用于接收设备管理规范信息;
处理单元,用于根据所述接收单元接收的设备管理规范信息进行处理。
根据本发明实施例,可使DM服务器将RPC命令发送给终端设备,以便终端设备执行该RPC命令,从而使得一些基于CWMP的数据模型可以在OMA DM的系统下得到重用。
具体实施方式
为了便于本领域一般技术人员理解和实现本发明,现结合附图描绘本发明的实施例。
在本发明的实施例中,为了利用OMA DM规范实现DM服务器对CWMP系统的终端设备进行管理,需要在DM服务器与终端设备之间传输RPC命令。即,DM服务器采用OMA DM规范信息(以下简称DM信息)向终端设备发送管理终端设备的CWMP数据模型的命令(如RPC命令);终端设备采用OMA DM规范向DM服务器返回该命令的执行结果。在下面实施例中描述通过OMA DM规范传递RPC命令的方法。在实施例一中,描述了通过对DM的命令(如Alert(警报))进行扩展,以进行传输RPC命令的方法;在实施例二中,描述了通过特定的DM MO(Management Object,管理对象)进行传递RPC命令的方法;在实施例三中,描述了通过对DM命令集的扩展,以进行传输RPC命令的方法。
实施例一
本实施例描述扩展DM命令,以通过扩展的DM命令传输RPC命令的方法。下面以Alert命令为例描述传输RPC命令的方法,Alert命令在DM中的使用规范为:
Alert(CmdID,Data?,Correlator?,Item*)
其中,CmdID是DM定义的每条命令发送时设定的ID号。Data(数据)元素用于指示该Alert命令的类型;Item(项目)元素用于指示该Alert命令的内容。例如,Data=1100表示这是一个显示消息,终端设备收到该消息时,会将Item中的内容显示给用户。Correlator参数用于表示与某承载RPC命令的Alert命令对应的一个相关值,当该RPC命令需要一段时间才能获得执行结果时,通信对端可以在回复该RPC命令时使用这个Correlator值,以表示该回复是对该Correlator值对应的RPC命令的回复。
为了在Alert命令中承载RPC命令,首先要为每条RPC命令分配一个AlertCode(该Alert Code称作RPC命令码),将该Alert码设置在Date元素中,以便使通信对端识别该Alert命令承载的是什么RPC命令。然后在Item中承载该RPC 命令的参数,可基于XML(Extensible Markup Language,可扩展标识语言)语言来描述具体的参数。这样,当通信对端接收到Alert命令时,就可确定其承载的RPC命令和参数,然后执行该RPC命令,并通过DM中定义的Status命令、Results命令或Alert命令来回复Alert命令,将回复的参数包含在Status命令、Results命令或Alert命令的Item中。
下面是一个在Alert命令中承载RPC命令的例子。
RPC命令为:GetParameterNames,它用于获取终端设备对象上某些参数的名称。该命令有两个参数:ParameterPath,指示需要获取对象上参数的路径,终端设备可以根据该路径找到这些参数;另一个参数:NextLevel,指示是否需要获取该路径的下级目录,它是一个布尔值。该命令的执行返回一个值:ParameterInfoStruct,该值是一个复合值,包含两个参数:Name、Writable。Name是该参数的名称,Writable指示是否可以对该参数进行赋值,如果该参数是一个子对象,则表示是否可以删除该子对象。
DM服务器向终端设备发送Alert命令,Alert命令如下:
<Alert>
<CmdID>3</CmdID>
<Data>1248</Data>
<Item>
<Type xmlns=″syncml:metinf″>application/dsl.cwmp.rpc</Type>
<Format xmlns=″syncml:metinf″>xml</Format>
<Data>
<rpc:ParameterPath>InternetGatewayDevice.LANDevice.1.Hosts.</rpc:ParameterPath>
</Data>
</Item>
<Item>
<Type xmlns=″syncml:metinf″>application/dsl.cwmp.rpc</Type>
<Format xmlns=″syncml:metinf″>xml</Format>
<Data>
<rpc:NextLevel>true</rpc:NextLevel>
</Data>
</Item>
</Alert>
其中rpc是预先定义好的名字空间,里面指示了如何解析ParameterPath、NextLevel等参数。
在该Alert命令中,1248是Alert码,表示该Alert命令是用于RPC消息中的GetParameterNames命令;两个Item中包含了该命令的两个参数:ParameterPath和NextLevel。因为NextLevel=true;终端设备可利用Status命令或Results命令来返回ParameterPath参数中指定的路径下一级的参数名称:
<Status>
<MsgRef>2</MsgRef><CmdRef>3</CmdRef>
<CmdID>2</CmdID>
<Cmd>Alert</Cmd>
<Data>200</Data>
<Item>
<Type xmlns=″syncml:metinf″>application/dsl.cwmp.rpc</Type>
<Format xmlns=″syncml:metinf″>xml</Format>
<Data>
<rpc:ParameterList>
<rpc:Name>InternetGatewayDevice.LANDevice.1.Hosts.HostNumberOfEntries
</rpc:Name>
<rpc:Writable>true</rpc:Writable>
</rpc:ParameterList>
<rpc:ParameterList>
<rpc:Name>InternetGatewayDevice.LANDevice.1.Hosts.Host.</rpc:Name>
<rpc:Writable>false</rpc:Writable>
</rpc:ParameterList>
</Data>
</Item>
</Status>
上述Status命令用于对GetParameterNames命令进行回复,200表示命令执行成功,返回的结果保存在Item中,表明在Alert命令指示的路径下有两个参数,其中一个为HostNumberOfEntries,可以对该节点进行赋值,另一个为Host.,后面紧跟的“.”表示这是一个子对象,内含其它参数,该子对象不能被删除。
通过该例子表明了利用Alert命令传递RPC命令的方法。
一种类似的方案是设定一个特定的Alert Code(即RPC识别码),假设为 1240。可将该Alert识别码设置在Alert命令的Data元素中,以表示该Alert命令专门用于承载RPC命令。而RPC命令的相关信息,包括命令名称和命令参数全部设置在Item中。下面的Item内容即为上述例子中的RPC命令:
<Item>
<Type xmlns=″syncml:metinf″>application/dsl.cwmp.rpc</Type>
<Format xmlns=″syncml:metinf″>xml</Format>
<Data>
<rpc:GetParameterNames>
<rpc:ParameterPath>InternetGatewayDevice.LANDevice.1.Hosts.</rpc:ParameterPath>
<rpc:NextLevel>true</rpc:NextLevel>
</rpc:GetParameterNames>
</Data>
</Item>
终端设备收到该消息后,从1240获知这是一条RPC命令,从Item中获得该命令的内容。执行后,并将执行的结果通过Status命令、Results命令或Alert命令进行回复。
上面以Alert命令为例描述了传输RPC命令的方法,同理,可采用其它DM命令传输RPC命令。
实施例二
下面通过在OMA DM规范中定义一个新的DM MO,该DM MO称作RPC MO,可利用该RPC MO来传输RPC命令,图1和图2是两个RPC MO的组织结构。在图1中,RPC命令及其参数可位于不同节点,即分开表示,即RPC命令用RPC命令标识来表示,RPC的参数使用XML的方式来描述,所述RPC命令标识可以是RPC命令名称或是与实施例一的Alert码类似的一个标识;而图2所示RPC MO是将整个RPC命令保存于同一节点,用XML方式描述。当终端设备获得RPC命令时,对于图1所示的结构,它可以通过RPC命令标识找到执行该命令的模块,并传递相应参数;对于图2所示的结构,终端设备获得RPC命令后,需要解析命令的描述,从中提取出命令标识和参数,再由相应的执行模块处理该命令。
在该RPC MO中还有两个节点:Result(结果)和Execute(执行)。其中,Result节点用于保存RPC命令执行的结果,Execute命令用于触发执行该RPC命 令。
下面是传递RPC命令的例子:
服务器利用图1所示的结构配置RPC MO。将Name值设置为GetParameterNames,也可以用一个ID值,如1248来表示这个命令。再设定两个参数,分别为:
<rpc:ParameterPath xmlns:rpc=″syncml:metinf″>
InternetGatewayDevice.LANDevice.1.Hosts.
</rpc:ParameterPath>
<rpc:NextLevel>true</rpc:NextLevel>
如果是采用图2所示的结构,则将整个RPC命令保存在Command节点下,如:
<rpc:GetParameterNames xmlns:rpc=″syncml:metinf″>
<rpc:ParameterPath>InternetGatewayDevice.LANDevice.1.Hosts.</rpc:ParameterPath>
<rpc:NextLevel>true</rpc:NextLevel>
</rpc:GetParameterNames>
服务器配置好RPC命令信息后,执行Execute节点,终端设备执行该命令,并将执行结果(参见实施例一中Status命令中Item/Data内所提供的代码)记录到Result节点中,服务器可以通过两种方式获得RPC执行的结果。一是包含在Exec指令的回复消息中,与实施例一中的Status回复一样,可以从所述Status命令的Item中获得;另一种是仅回复200成功消息,服务器通过对Result节点的Get获得执行的结果。即当服务器收到200OK回复后,发送Get指令:
<Get>
<CmdID>5</CmdID>
<Item>
<Target><LocURI>./RPC/Result</LocURI></Target>
</Item>
</Get>
终端设备收到该命令后,将Result中保存的内容发送给服务器。
实施例三
本实施描述了通过对DM命令集的扩展,以进行传输RPC命令的方法。即在DM的指令集中增加RPC命令,这样,DM服务器就可象对待DM命令一样对 待RPC命令,从而可方便地向设备终端传输RPC命令。在DM的命令集中,除Alert命令外,其余命令都是针对设备管理树的,而RPC命令不仅包含对数据模型的操作,还包括对设备的操作,所以可以设计一些类似于Alert的DM命令,完成RPC指令的下发。下面是RPC命令的书写规范(DTD):
RPCCommand(CmdID,Correlator?,Item*)
其中RPCCommand是RPC命令的标识;CmdID是DM定义的每条命令发送时设定的ID号;Correlator用于非同步操作时,如RPC的Download命令,该命令下发时,由于无法立即回复,Status回复中无法包含命令执行的结果,因此在执行结果上报时,需要通过Correlator值告知服务器该结果对应的是哪一条RPC命令;Item是该RPC命令的参数。
本实施例与实施例一中的传送RPC命令的方法相似,唯一的区别在于实施例一可用Alert码(如Data中的Alert码)来区分不同的RPC命令;而在本实施例中用命令标识来区分RPC命令。由于传输RPC的方法与实施例一致,在此不再重复。
在实施例一至实施例三中,当终端设备接收到DM服务器传输的包括RPC命令的DM规范信息后,可执行所述设备管理规范信息中的RPC命令,进而实现DM服务器对终端设备的管理。所述设备管理规范信息包括下列其中之一,或其任意组合:现有设备管理命令、设备管理对象、新增设备管理命令。
实施例四
如图3所示,本实施例公开了一种远程过程调用命令传输的系统,包括:第一设备,用于将远程过程调用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备;第二设备,用于接收所述第一设备的设备管理规范信息。所述第一设备包括设备管理服务器或终端设备,所述第二设备包括设备管理服务器或终端设备。在图3中,第一设备为设备管理服务器;第二设备为终端设备。
本实施例公开了一种设备管理系统,包括:第一设备,用于将远程过程调 用命令设置在设备管理规范信息中,并将所述设备管理规范信息发给第二设备;第二设备,用于接收所述第一设备的设备管理规范信息,并执行该设备管理规范信息。所述第一设备包括设备管理服务器或终端设备,所述第二设备包括设备管理服务器或终端设备。
本实施例还公开了一种设备管理服务器,包括:设置单元,用于将远程过程调用命令设置在设备管理规范信息中;传输单元,用于传输设备管理规范信息。所述设备管理规范信息包括下列其中之一,或其任意组合:现有设备管理命令、设备管理对象、新增设备管理命令,所述设置单元包括下列其中之一,或其任意组合:第一设置子单元,用于将远程过程调用命令设置在现有设备管理命令中;第二设置子单元,用于将远程过程调用命令设置在设备管理对象中;第三设置子单元,用于将远程过程调用命令设置在新增设备管理命令中。
本实施例还公开了一种终端设备,包括:接收单元,用于接收设备管理规范信息;处理单元,用于根据所述接收单元接收的设备管理规范信息进行处理,并将执行结果返回设备管理服务器,以实现设备管理服务器对终端设备的管理。
根据本发明实施例,可使DM服务器可以将RPC命令发送给终端设备,以便终端设备执行该RPC命令,从而使得一些基于CWMP的数据模型可以在OMA DM的系统下得到重用。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。