TR-069协议中RPC方法的实现研究

2012-10-13 13:46顾雅珍唐慧佳
赤峰学院学报·自然科学版 2012年5期
关键词:调用网关报文

顾雅珍,唐慧佳

(1.赤峰学院 计算机系,内蒙古 赤峰 024000;2.西南交通大学 信息科学与技术学院,四川 成都 610031)

TR-069协议中RPC方法的实现研究

顾雅珍1,2,唐慧佳2

(1.赤峰学院 计算机系,内蒙古 赤峰 024000;2.西南交通大学 信息科学与技术学院,四川 成都 610031)

随着电信业务的发展,家庭网关需要更加智能化的管理.应运而生的TR-069协议被应用于网络终端,实现了对网络终端的远程配置与管理.协议中的自动配置服务器ACS和远程终端CPE之间的通信需要通过远程过程调用,即RPC方法来实现.介绍了TR-069协议中的树形数据模型,以此为基础阐述了RPC方法在网关设备上的实现.

TR-069;RPC;ACS;CPE;数据模型

随着社会高度信息化的发展,一些中小企业需要以更智能化、更易于管理的网关设备作为纽带,来实现语音、视频、媒体、信息化等业务的综合服务.中国电信也随之推出了相应的策略,进一步改善和提升管理服务水平.通过ITMS(终端综合管理系统)对企业网关设备进行统一管理,两者之间的交互基于TR-069协议.协议中有两个逻辑主体,一个是自动配置服务器ACS,一个是用户侧设备CPE.ACS与CPE之间通信,传递信息是通过远程过程调用(remote procedure call)即RPC方法实现的.在TR-069协议中定义了基于可扩展标记语言描述的远程过程调用(RPC),目前的Issue 1 Amendment 2版本中为CPE定义了10种基本RPC、7种可选RPC,为ACS定义了2种基本RPC、4种可选RPC.除此之外用户还可根据需要自己定义RPC方法,扩展当前应用.

1 数据模型

TR-069属于协议栈协议,用于描述ACS和CPE之间的通信规范.与之配套的几个协议描述了基于TR-069协议设备的数据模型.其中TR-098协议定义了网关设备的数据模型.

在TR-098中定义了网关设备的树状参数模型.树上的每个节点都代表用户角度的一个参数,参数名的命名使用了类似目录树的层级方式,两个节点名字通过点号(.)连接而成,组成一个参数名.与MIB树不同的是由点号(.)分隔的层级名字之间具有包含与被包含的关系.在TR-098中定义的节点可分为三种类型:索引节点(index),对象节点(object),叶子节点.

如:InternetGatewayDevice.LANDevice.{i}.Hosts.Host.{i}.IPAddress路径中

InternetGatewayDevice.是Object类型的对象节点,对应一个网关设备

InternetGatewayDevice.LANDevice.{i}.是Index类型的索引节点,对应一个Lan设备实例.

InternetGatewayDevice.LANDevice.{i}.Hosts.Host.{i}.IPAddress是叶子节点,表示一个属性或配置,此处对应Lan设备下连接的主机的IP地址.

每个节点定义时都有五个属性:Name(参数名)、Type(类型)、Write(可写性)、Default(默认值)、Vertion(版本).比如在协议中有如下表-1的定义:

表1

InternetGatewayDevice.LANDevice.{i}.LANHostConfig-Management.IPInterface.{i}.是节点名,类型为object,可读写,无默认值.TR-098就是按上述方式定义了网关设备的各方面的配置参数.当然协议中还规定可以由用户自己定义节点,并对节点命名方式给出了定义.

2 RPC方法介绍

在TR-069协议中,使用远程过程调用机制来实现CPE与ACS两端的通信,即RPC方法.RPC方法按是否为REQUIRED分为标准RPC和可选RPC,按支持对象分为ACS的RPC方法、CPE的RPC方法和通用RPC方法.通用RPC方法目前定义的只有一个GetRpcMethod,此方法既可以由ACS调用也可以由CPE端调用,来获取对方支持的RPC方法集.返回的值是字符串列表,若是ACS发送请求,则由CPE给予响应,返回CPE支持的RPC方法列表.ACS支持的RPC方法由CPE负责调用,如:Inform、TransferComplete,相应的CPE支持的RPC方法由ACS来调用,如:SetParameterValues、GetParameterValues、AddObject、Download 等.

3 RPC方法实现

在企业网关中支持TR-069协议可以分模块实现.RPC方法的实现可以作为单独的模块来处理.在模块中首先要将RPC方法注册到系统中,组成一个链表,被系统所认识,再由处理模块调用.注册与使用流程见图1:

图1 RPC方法注册与使用流程

3.1 RPC方法的注册

在TR-069的初始化函数Initdata()中完成RPC方法的注册.注册的意思,就是将每个RPC方法的基本信息进行赋值后,通过RegRPCMds()函数将RPC方法结构体挂到全局链表上,注册完毕.RPC方法结构体成员基本信息如下:

RPC方法名字,即协议中定义的RPC方法名称,如“GetParameterValues”.当一个报文解析时,就通过RPC方法名字和长度两个参数确定RPC方法在链表中的位置.注册时要设置各处理函数的函数指针,RPC方法的处理函数分为两种,一种是处理请求(RPC request)的函数,比如SetParameterValues方法,CPE会调用它的请求处理函数进行处理;另一种是处理ACS响应(RPC response)的函数,例如Inform方法,CPE发送Inform消息后ACS会回复Inform response报文,CPE端调用Inform响应处理函数处理该消息.

由于ACS只支持3种RPC方法,CPE调用ACS的RPC时,只可能发出这三种类型的调用请求.所以对于CPE端只有 GetRpcMethod,Inform,TransferComplete这三个 RPC方法会有请求类型,这三个方法除了有请求类型外,与其他不同的还有处理构造请求的函数,处理ACS响应的函数.同时,这三个方法的处理请求的函数都为空函数.

其余的RPC方法都是CPE支持的,只能被ACS调用,CPE端请求类型均设为空.只有处理ACS请求的函数,而没有处理响应和处理构造请求的函数,特别的GetRPCMethods方法ACS端和CPE端都支持,所以这个方法既有处理请求的回调函数又有处理响应的回调函数.

3.2 RPC方法的应用

当CPE端收到报文时,从SOAP消息体的标签中找到RPC方法.首先验证RPC方法的合法性,判断解析得到的RPC方式是否是已注册方法,如果该RPC方法未知,则构造不支持的RPC方法报文并发送,结束处理.对于已注册的RPC方法,会通过RPC注册的链表找到该RPC方法的处理函数.

ACS端欲查询InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Uptime叶子节点的值,发送GetParameterValues Request报文,报文中SOAP消息体为:

CPE中TR-069的处理模块解析得到的报文是请求报文,调用GetParameterValues的RPC请求处理函数,在函数中获取节点的信息并验证数据的合法性,验证成功则构造统一格式的配置管理消息,下发给配置管理平面.配置管理平面通知应用模块—WAN模块处理,WAN模块找到设备的第一个WAN口下的第二个子接口,并查询此口下PPP连接持续的时间.查询的结果通过配置管理平面返回给TR-069模块,构造相应的响应报文,发送给ACS.

4 结束语

目前,TR-069协议已经在家庭网关与小型企业网关中得到应用.对于TR-069的树模型结构,虽然是从用户角度定义,很容易理解,可是对于编程人员来说实现庞大的树型结构,还存在一定弊端.RPC方法是ACS和CPE之间通信的关键手段,具有很大的灵活性,可由用户自己定义,方便以后进行扩充.相信RPC方法的实现会成为研究TR-069协议的一个重点,会得到更多的关注.

〔1〕TechnicalReportDSL Forum.TR- 098 Internet Gateway Device Data Model For TR-069 [R].A-mendment1.DSLHome- TechnicalWorkingGroup,November 2006.

〔2〕Technical Report DSL Forum.TR-069 CPE WAN Management Protocol v1.1 [R].Issue 1 Amendment 2.DSLHome-TechnicalWorkingGroup,November 2007.

〔3〕W3C.Simple ObjectAccessProtocol(SOAP)1.1.May 2000.

〔4〕李维.C++Builder 6 SOAP/Web Service 开发[M].武汉:华中科技大学出版社,2002.

〔5〕唐珂,王民.TR-069在家庭网关中的应用.中兴通讯技术,2006(8).

〔6〕孟德峰,郑崇苏,王俊宝.TR-069 协议实现研究[J].中国新通信,2008(12).

〔7〕陈毅文,刘同佩,孙晶.基于TR-069的终端管理系统的设计和实现[J].计算机工程与设计,2008,29(5):1108-1109

〔8〕熊琦.TR-069协议在家庭网关中的实现[D].武汉:华中科技大学,2007.

〔9〕马千里.CWMP协议在网关设备上的实现 [D].北京:北京邮电大学,2010.

TN393.2

A

1673-260X(2012)03-0024-02

四川省科技支撑计划(2010GZ0189)

猜你喜欢
调用网关报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
核电项目物项调用管理的应用研究
浅析反驳类报文要点
LabWindows/CVI下基于ActiveX技术的Excel调用
信号系统网关设备的优化
基于系统调用的恶意软件检测技术研究
ATS与列车通信报文分析
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”