有鉴于此,本发明的主要目的在于提供一种压缩版权的传输方法和系统,以减少ROAP通信的数据量,提高数字版权对象传输的可靠性和用户体验。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种压缩版权的传输方法,该方法包括:
终端与
服务器协商版权信息(rights)的压缩
算法;
所述终端在版权对象
请求(RORequest)消息中,通过扩展字段向所述服务器请求传输压缩格式的rights;
所述服务器按照标准方式生成版权对象应答(ROResponse)消息,根据协商的压缩算法对所述ROResponse消息中的rights进行压缩,并生成压缩后的ROResponse消息发送给所述终端;
所述终端接收压缩后的ROResponse消息,根据协商的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
所述终端与服务器协商rights的压缩算法,具体为:
终端发送设备握手请求(DeviceHello)消息给服务器,并通过所述DeviceHello消息中新增的支持压缩算法(Supported Compress Algorithm)字段将自身所支持的压缩算法通知给所述服务器;
所述服务器根据Supported Compress Algorithm字段的内容,选择协商同意的压缩算法,并通过版权服务器握手响向应(RIHello)消息中新增的选择压缩算法(Selected Compress Algorithm)字段通知所述终端。
所述终端在RORequest消息中通过扩展字段向服务器请求传输压缩格式的rights,具体为:
终端发送RORequest消息给服务器,并通过所述RORequest消息的扩展(Extensions)字段中新增的需要压缩版权信息(Need Compress Rights)字段,通知所述服务器传输压缩格式的rights。
所述服务器生成ROResponse消息,对ROResponse消息中的rights进行压缩,并生成压缩后的ROResponse消息发送给终端,具体为:
服务器接收终端发送的RORequest消息,并根据所述RORequest消息中的Need Compress Rights字段得知需要传输压缩格式的rights;
服务器按照标准方式生成ROResponse消息,根据Selected CompressAlgorithm字段中的压缩算法对所述ROResponse消息中的rights进行压缩得到Compress Rights字段,并依据所述Compress Rights字段生成压缩后的ROResponse消息发送给所述终端。
所述ROResponse消息中的rights进行压缩后的数据以base64格式存在。
所述终端解压缩并生成解压缩后的ROResponse消息,具体为:
所述终端接收到压缩后的ROResponse消息,根据Selected CompressAlgorithm字段中的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
所述终端对接收的ROResponse消息中的rights进行解压缩后,该方法进一步包括:根据hash值进行数据完整性验证。
本发明还提供了一种压缩版权的传输系统,该系统包括:终端和服务器,其中,
所述终端,用于与所述服务器协商rights的压缩算法,并在RORequest消息中,通过扩展字段向所述服务器请求传输压缩格式的rights;还用于接收来自所述服务器的压缩后的ROResponse消息,根据协商的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息;
所述服务器,用于与所述终端协商rights的压缩算法,并在接收到来自所述终端的RORequest消息时,按照标准方式生成ROResponse消息,根据协商的压缩算法对所述ROResponse消息中的rights进行压缩,并生成压缩后的ROResponse消息发送给所述终端。
所述终端进一步用于,发送DeviceHello消息给服务器,并通过DeviceHello消息中新增的Supported Compress Algorithm字段将自身所支持的压缩算法通知给所述服务器;
相应的,所述服务器进一步用于,根据Supported Compress Algorithm字段的内容,选择协商同意的压缩算法,并通过RIHello消息中新增的SelectedCompress Algorithm字段通知所述终端。
所述终端进一步用于,发送RORequest消息给服务器,并通过所述RORequest消息的Extensions字段中新增的Need Compress Rights字段,通知所述服务器传输压缩格式的rights。
所述服务器进一步用于,接收终端发送的RORequest消息,并根据所述RORequest消息中的Need Compress Rights字段得知需要传输压缩格式的rights;按照标准方式生成ROResponse消息,根据Selected Compress Algorithm字段中的压缩算法对所述ROResponse消息中的rights进行压缩得到CompressRights字段,并依据所述Compress Rights字段生成压缩后的ROResponse消息发送给所述终端。
所述ROResponse消息中的rights进行压缩后的数据以base64格式存在。
所述终端进一步用于,接收到压缩后的ROResponse消息,根据SelectedCompress Algorithm字段中的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
所述终端进一步用于,对接收的ROResponse消息中的rights进行解压缩后,根据hash值进行数据完整性验证。
本发明所提供的一种压缩版权的传输方法和系统,在ROAP的版权对象应答(ROResponse)消息中,根据约定的算法压缩可扩展标识语言(XML)格式的版权信息(rights),以减少ROResponse数据在传输过程中的数据量;终端在接收到ROResponse消息后,根据约定的算法对压缩数据进行解压缩,还原出真是的ROResponse消息。
本发明的方法和系统,很好地利用了XML格式具有良好扩展性的特点,通过扩展XML对ROResponse数据进行有效地压缩,减少了ROAP通信的数据量,提高了数字版权对象传输的可靠性和用户体验;另外,本发明中的方法也很好地利用了ROAP具备握手安全协议的特点,无缝地实现了终端和服务器间压缩版权的传输。
附图说明
图1为本发明一种压缩版权的传输方法的
流程图;
图2为本发明的传输方法在服务器侧的实现流程图;
图3为本发明的传输方法在终端侧的实现流程图;
图4为本发明一种压缩版权的传输系统的组成结构示意图。
下面结合附图和具体
实施例对本发明的技术方案进一步详细阐述。
为实现数字版权对象的压缩传输,本发明的核心思想为:在ROAP的版权对象应答(ROResponse)消息中,根据约定的算法压缩可扩展标识语言(XML,Extensible Markup Language)格式的版权信息(rights),以减少ROResponse数据在传输过程中的数据量;终端在接收到ROResponse消息后,根据约定的算法对压缩数据进行解压缩,还原出真实的ROResponse消息。
基于上述的核心思想,本发明提供一种压缩版权的传输方法,如图1所示,该方法主要包括以下步骤:
步骤101,终端与服务器协商rights的压缩算法。
具体的,在执行ROAP注册协议过程中,终端发送设备握手请求(DeviceHello)消息给服务器,并通过DeviceHello消息中新增的支持压缩算法(Supported Compress Algorithm)字段将自身所支持的压缩算法通知给服务器;服务器根据Supported Compress Algorithm字段的内容,选择协商同意的压缩算法,并通过版权服务器握手响应(RIHello)消息中新增的选择压缩算法(Selected Compress Algorithm)字段通知终端。
步骤102,终端在版权对象请求(RORequest)消息中,通过扩展字段向服务器请求传输压缩格式的rights。
具体的,在执行ROAP版权获取协议时,终端发送RORequest消息给服务器,并通过RORequest消息的扩展(Extensions)字段中新增的需要压缩版权信息(Need Compress Rights)字段,通知服务器传输压缩格式的rights。
步骤103,服务器按照标准方式生成ROResponse消息,根据协商的压缩算法对ROResponse消息中的rights进行压缩,并生成压缩后的ROResponse消息发送给终端。
具体的,服务器接收终端发送的RORequest消息,并根据RORequest消息中的Need Compress Rights字段得知需要传输压缩格式的rights;服务器按照现有的标准方式生成ROResponse消息,根据Selected Compress Algorithm字段中的压缩算法对ROResponse消息中的rights进行压缩得到Compress Rights字段,并依据Compress Rights字段生成压缩后的ROResponse消息发送给终端。
步骤104,终端接收压缩后的ROResponse消息,根据协商的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
具体的,终端接收到压缩后的ROResponse消息,根据Selected Compres sAlgorithm字段中的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
为适应图1所述的传输方法,本发明中DeviceHello消息的格式如表1所示:
Parameter ROAP-DeviceHello Version M(Mandatory) Device ID M Supported Algorithms O(Optional) Supported Compress Algorithms O Extensions O
表1
其中增加了Supported Compress Algorithms字段信息,M表示必选,O表示可选,Supported Compress Algorithms字段信息的XML的格式定义如下:
minOccurs=“0”maxOccurs=“unbounded”/>
相应的,本发明中需要对DeviceHello消息的XML格式定义进行修改,修改后的DeviceHello消息的XML格式定义如下:
Message sent from Device to RI to establish an RI Context.
“unbounded”/>
maxOccurs=“unbounded”/>
minOccurs=“0”maxOccurs=“unbounded”/>
/>
同样的,为适应图1所述的传输方法,本发明中RIHello消息的格式如表2所示:
表2
其中增加了Selected Compress Algorithms字段信息,其XML的格式定义如下:
“0”maxOccurs=“unbounded”/>
相应的,本发明中需要对RIHello消息的XML格式定义进行修改,修改后的RIHello消息的XML格式定义如下:
Message sent from RI to Device in response to a deviceHello message.
“unbounded”mi nOccurs=“0”/>
“0”maxOccurs=“unbounded”/>
minOccurs=“0”/>
/>
此外,在RORequest消息的格式中,需要在Extension字段中增加NeedCompress Rights字段信息,其XML的格式定义如下:
即如果RORequest消息中有Need Compress Rights字段,则表示终端要求服务器返回经过压缩的ROResponse消息;否则,表示终端不要求服务器返回经过压缩的ROResponse消息。
在ROResponse消息的格式中,需要增加Compress Rights字段信息,其XML的格式定义如下:
其中,compressData字段为经过压缩算法压缩后的rights数据,该数据以base64格式存在,hash字段为经安全散列算法(SHA-1,Secure Hash Algorithm-1)计算所得的原rights数据的摘要值。Compress Righs字段的id属性必须与rights字段的id属性一致,compressAlgorithm属性表示压缩rights所采用的压缩算法。
从而,ROResponse消息中经过修改后的ROPayload字段的格式如下:
<!--Rights Object Definitions-->
minOccurs=“0”/>
/>
其中,rights字段变成可选字段,若采用了压缩方式,则该rights字段可以不出现;compress Rights字段在采用压缩方式的时必须出现,未采用压缩方式时,可以不出现;rights Compressed属性用以指示该ROPayload字段所带的rights是否经过压缩。
下面结合具体实施例对上述图1所示的传输方法进一步详细阐述。
本发明的实施例一主要描述该传输方法在服务器侧的实现流程,如图2所示,主要包括以下步骤:
步骤201,服务器接收到来自终端的RORequest消息,生成对应的ROResponse消息。
步骤202,服务器判断RORequest消息中是否含有Need Compress Rights字段,如果是,执行步骤203,否则,执行步骤206。
如果RORequest消息中含有Need Compress Rights字段,则表示终端要求服务器返回经过压缩的ROResponse消息;否则,表示终端不要求服务器返回经过压缩的ROResponse消息。
步骤203,服务器判断是否已经与终端协商好压缩算法,如果是,执行步骤204;否则,执行步骤206。
服务器根据RIHello消息中的Selected Compress Algorithms字段的内容,判断是否已经与终端协商好压缩算法。
步骤204,根据协商好的压缩算法对ROResponse消息中所有的rights字段的内容进行压缩,并生成对应的Commpress Rights字段。
步骤205,根据Commpress Rights字段生成压缩后的ROResponse消息。执行完后,转到步骤206。
步骤206,服务器将生成的ROResponse消息发送给终端。
需要指出的是,如果步骤206是在步骤202或203后执行,那么服务器发送的是未经压缩的ROResponse消息;如果步骤206是在步骤205后执行,那么服务器发送的是压缩后的ROResponse消息。
本发明的实施例二主要描述该传输方法在终端侧的实现流程,如图3所示,主要包括以下步骤:
步骤301~302,终端接收到来自服务器的ROResponse消息,判断该ROResponse消息的ROPayload字段中的rights Compressed属性是否为true,如果是,执行步骤303;否则执行步骤306。
步骤303,终端判断自身是否支持Selected Compress Algorithms字段中所表示的压缩算法,如果是,执行步骤304;否则,终端处理ROResponse消息失败,结束整个流程。
步骤304,终端根据Selected Compress Algorithms字段中所表示的压缩算法,对ROResponse消息中的Compress Rights字段进行解压缩,并根据hash值进行数据的完整性验证。
步骤305,验证通过后,还原出压缩前的rights字段,并依据rights字段生成ROResponse消息。
步骤306,对ROResponse消息进行标准处理。
为实现上述版权压缩的传输方法,本发明还提供了一种版权压缩的传输系统,如图4所示,该系统包括:终端10和服务器20。其中,终端10,用于与服务器20协商rights的压缩算法,并在RORequest消息中,通过扩展字段向服务器20请求传输压缩格式的rights;还用于接收来自服务器20的压缩后的ROResponse消息,根据协商的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。服务器20,用于与终端10协商rights的压缩算法,并在接收到来自终端10的RORequest消息时,按照标准方式生成ROResponse消息,根据协商的压缩算法对ROResponse消息中的rights进行压缩,并生成压缩后的ROResponse消息发送给终端10。
较佳的,终端10进一步用于,发送DeviceHello消息给服务器20,并通过DeviceHello消息中新增的Supported C ompress Algorithm字段将自身所支持的压缩算法通知给服务器20;相应的,服务器20进一步用于,根据SupportedCompress Algorithm字段的内容,选择协商同意的压缩算法,并通过RIHello消息中新增的Selected Compress Algorithm字段通知终端10。
终端10还用于,发送RORequest消息给服务器20,并通过RORequest消息的Extensions字段中新增的Need Compress Rights字段,通知服务器20传输压缩格式的rights。
服务器20还用于,接收终端10发送的RORequest消息,并根据RORequest消息中的Need Compress Rights字段得知需要传输压缩格式的rights;按照标准方式生成ROResponse消息,根据Selected Compress Algorithm字段中的压缩算法对ROResponse消息中的rights进行压缩得到Compress Rights字段,并依据Compress Rights字段生成压缩后的ROResponse消息发送给终端10。
终端10还用于,接收到压缩后的ROResponse消息,根据Selected CompressAlgorithm字段中的压缩算法对接收的ROResponse消息中的rights进行解压缩,并生成解压缩后的ROResponse消息。
综上所述,本发明的方法和系统,很好地利用了XML格式具有良好扩展性的特点,通过扩展XML对ROResponse数据进行有效地压缩,减少了ROAP通信的数据量,提高了数字版权对象传输的可靠性和用户体验;另外,本发明中的方法也很好地利用了ROAP具备握手安全协议的特点,无缝地实现了终端和服务器间压缩版权的传输。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。