CN100346648C - 数字电视通用用户管理***与授权管理***接口通讯方法 - Google Patents
数字电视通用用户管理***与授权管理***接口通讯方法 Download PDFInfo
- Publication number
- CN100346648C CN100346648C CNB2004100006199A CN200410000619A CN100346648C CN 100346648 C CN100346648 C CN 100346648C CN B2004100006199 A CNB2004100006199 A CN B2004100006199A CN 200410000619 A CN200410000619 A CN 200410000619A CN 100346648 C CN100346648 C CN 100346648C
- Authority
- CN
- China
- Prior art keywords
- management system
- sms
- request
- thread
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明是一种数字电视通用SMS与SAS接口通讯方法,包括设置SMS密钥集、网络协议、端口、SMS标示符;设置计数器,并SMS创建读取数据库线程、发送线程、接收线程、分析回应线程;判断SMS是否向SAS发送请求,如果是,则SMS读取数据库线程启动并从SMS数据库中读出需要请求的数据,并把读出的请求信息放入请求智能数组中等待发送;SMS发送线程根据SMS请求格式检测发送的网络协议数据包,把格式正确的请求数据发送给SAS;SAS对数据处理后,SMS接收线程对回应数据进行接收处理,如果格式数据正确,送入回应智能数组中等待数据分析;SMS分析回应线程对回应数据进行分析处理,如果是合法数据,把正确处理结果回传给数据库。
Description
技术领域
本发明属于数字电视技术领域,特别是一种数字电视通用用户管理***(SMS)与授权管理***(SAS)接口通讯方法,该接口可以和多个用户管理***(SMS)数据库通讯,也可和多个用户授权管理***(SAS)之间进行网络通讯。
背景技术
在数字电视广播条件接收***(CA,Condition Access)中,用户授权***(SAS,Subscriber Authorization System)的授权管理信息(EMM)从根本上来说是来自于用户管理***(SMS,Subscriber Management System)的业务操作如用户订购某项业务产品、取消订购和发送解码数据发生器(DDG,Decode Data Generator)消息等所产生的请求,所以需要在用户管理***和用户授权***之间建立SMS-SAS接口,用户管理***可以通过接口将业务操作所产生的授权请求传送给用户授权***,用户授权***对用户管理***的授权请求进行处理后也通过接口将处理结果返回给用户管理***。
在现有技术中,不同CA产品供应商的SAS***都有面向各自的SMS通讯接口,由于没有统一的标准,各个厂商的SMS-SAS接口的规范各不相同,使得SAS***的适应性不高,造成一种SAS***只能使用固定的一种SMS***局面。一方面,由于国情不同,国外CA供应商的SMS***在国内根本无法使用,需要寻求国内的SMS***支持其SAS***。另一方面,对于开发SMS***的厂商来说,为了支持不同的SAS***,需要针对不同SAS供应商提供的SMS-SAS接口规范进行无休止的二次开发,不但费时费力,还容易发生错误,造成不必要的损失。
普通的SMS-SAS接口都是做成可执行程序且和SMS安装在一起,由于各CA厂商定义的SMS-SAS接口规范不一样,如果SMS要和多个CA同时通讯的话,则要同时安装多个SMS-SAS接口,占用***资源比较大,通讯效率比较低下,而且很难进行有效的远程通讯,也就达不到SMS远程授权控制、管理的目的。
发明内容
为克服现有技术的不足,本发明的目的在于提供一种数字电视通用用户管理***与授权管理***接口通讯方法。
为完成上述发明目的,本发明的数字电视通用用户管理***与授权管理***接口通讯方法,所述数字电视包括一套前端用户管理子***,两套不同条件接收前端子***,用户管理***与授权管理***接口组件访问客户机和远程发布用户管理***与授权管理***接口组件服务器,该方法包括以下步骤:
a.设置授权管理***的密钥集、网络协议、端口、用户管理***的标示符;
b.根据授权管理***的密钥集、网络协议、端口、用户管理***的标示符设置计数器,并在用户管理***创建读取数据库线程、发送线程、接收线程、分析回应线程;
c.判断用户管理***是否向授权管理***发送请求,如果是,则用户管理***读取数据库线程启动并从用户管理***数据库中读出需要请求的数据,并把读出的请求信息放入请求智能数组中等待发送;
d.用户管理***发送线程根据用户管理***请求格式检测发送的网络协议数据包,把格式正确的请求数据发送给授权管理***;
e.授权管理***对数据处理后,用户管理***接收线程对回应数据进行接收处理,如果格式数据正确,送入回应智能数组中等待数据分析;
f.用户管理***分析回应线程对回应数据进行分析处理,如果是合法数据,把正确处理结果回传给数据库。
所述步骤a中的网络协议采用传输控制网络协议,使用端口为4000-6999。
所述步骤b中的发送线程发送的请求数据采用网际协议包格式,包头长度为17位,包括用户管理***的标示符、请求标示符和请求类型码,授权管理***也采用网际协议包格式,包头加包体长度为12位,包括用户管理***的标示符、请求标示符和授权管理***响应类型码。
所述步骤c中的请求包括连接测试请求、增加授权请求、取消授权请求、覆盖原有授权请求、发送消息请求、发送邮件请求、密码复位请求,除连接测试请求外,所有请求的格式包括包头和包体,包体包括智能卡数量、智能***码列表字段,增加授权请求、取消授权请求、覆盖原有授权请求的包体还包括产品标示符列表字段。
所述增加授权请求字段中,‘00’表示对所有智能卡授权,‘01’为单卡授权,‘02’-‘50’表示批量授权。
所述取消授权请求中,‘01’表示取消一张智能卡的产品授权,‘02’-‘50’表示取消一批智能卡的产品授权。
所述覆盖原有授权请求中,‘01’表示覆盖一张智能卡的原有授权,‘02’-‘50’表示覆盖一批智能卡的原有授权。
所述步骤c和e中的智能数组相当于进程间的共享区域,用于把各线程联系起来,智能数组可以动态增加。
所述步骤c中的发送请求和所述步骤e中的对回应数据进行接收处理采用周期轮寻方式,发送线程和接收线程有一段时间的阻塞,阻塞由计时器和同步事件完成。
所述计时器有时间间隔计时器、连接检查计时器、定时检查网络计时器三种,分别控制访问数据库的时间间隔、控制定时向用户授权管理***发送检查连接是否有效以避免网络连接已中断时程序仍发送请求访问数据库的错误操作,或与时间间隔计时器配合使用定时检查网络是否正常,保证程序正常运行。
所述同步事件包括发送事件、接收事件、分析事件、驱动数据库事件,发送事件驱动发送线程,接收事件驱动接收线程,分析事件驱动分析回应线程,驱动数据库事件驱动读取数据库线程。
所述步骤a、b中授权管理***的密钥集、网络协议、端口、用户管理***标示符,计数器,和读取数据库线程、发送线程、接收线程、分析回应线程采用全球唯一标识器设置或创建,之后生成动态链接库文件,并通过注册表发布协议信息。
本发明具有明显的优点和有益效果是:1、相对独立。使用通用的SMS-SAS接口规范可以使得用户管理***(SMS)和用户授权***(SAS)的开发可以分散、独立的进行。SMS***只需要按照既定规范向SMS-SAS接口发送授权、消息请求和接收返回信息,SAS***只需按照规范从SMS-SAS接口接收授权、消息请求,处理完毕后再向SMS-SAS接口返回处理结果即可完成授权、消息等的处理过程。此外,SMS***和SAS***之间相对独立的关系,可以保证SMS***和SAS***的开放性,即一种用户管理***(SMS)可以支持任何用户授权***(SAS),一种用户授权***(SAS)可以选择任意合适的SMS***。这样不但可以规范SMS***和SAS***的开发过程,而且使得运营商拥有非常宽松的选择范围。2、安全。SMS与SAS互相独立的结构以及组件的应用,使得SMS的请求即可以来自局域网(LAN),也可以来自广域网(WAN),提高了用户管理***分布的广泛性。另外,SMS-SAS接口将SMS和SAS隔离开来,通过接口既可以对授权、消息等请求进行验证,而且还可以在安装SMS-SAS接口的计算机上安装防火墙对授权、消息等请求进行过滤,防范恶意攻击,提高了CA***的安全性。3、快速授权。在SMS进行批量用户的授权操作时,例如对某一集体下的所有用户赋予某项或多项业务产品的授权时,一般的操作方法是SMS***从自身的数据库中检索出归属该集体下的所有智能卡数据,然后针对每张卡向SMS-SAS接口逐一发送相同的授权请求。但是由于网络及硬件的限制,连续的授权请求之间必须有一定的时间间隔才能保证传输数据的完整性与规范性,这样既增加了网络的负载,也降低了批量授权的速度。如果在规范中采用合理的定义,那么在一条授权请求中就可以包含多个智能卡的授权信息,可以大大提高授权操作的速度。4、通讯效率高。当遇到SMS-SAS接口升级只需重新注册、发布新的SMS-SAS接口组件,访问新的接口组件即可,不用修改代码,提高了用户管理***软件的开发效率。接口组件跟开发语言无关,是基于二进制代码,所以给开发者有了更多的选择,它占用***资源少,可以同时被多个SMS连接使用,链接速度快,提高了通讯效率。
附图说明
图1为本发明通讯的主流程图;
图2为SMS-SAS接口组件化前后的对比图;
图3为SMS和SAS之间的网络通讯示意图。
具体实施方式
下面结合附图对本发明再作进一步详细的说明。
参阅图1本发明的主流程图所示,首先设置SAS的密钥集(keyset),网络协议(ip)、端口、SMS的标示符(id),然后,在读取SMS数据库时,要根据密钥集、SAS的IP、端口、SMS的ID设置计时器,创建四条线程和SAS建立连接,进行数据请求、回应的分析处理。这四条线程是:读取数据库线程、发送线程、接收线程、分析回应线程。
本发明提出一种数字电视通用用户管理***与授权管理***接口通讯方法,依据通用接口规范实现组件化的SMS-SAS通讯接口,所述数字电视包括一套前端用户管理子***,两套不同条件接受子前端***,SMS-SAS接口组件访问客户机和远程发布SMS-SAS接口组件服务器。
通用SMS-SAS接口通讯规范的定义包括以下一些内容:
1、网络协议:用户管理***(SMS)采用TCP/IP协议与SMS-SAS接口进行通信,面向SMS***的一端采用TCP协议,使用端口4000-6999,IP包内容使用ASCII码,数据类型代码说明见表1。
2、SMS请求IP包格式及SAS响应IP包格式
表1 数据类型代码说明
代码 | 数据类型 | 说明 | 实例 |
D | Decimal(十进制数) | 一个十进制数,每一位包含一个从‘0’-‘9’的ASCII码。具体长度在IP包格式‘字段长度’一项中定义,字段值位数不够左补0。 | 4位的D值‘0014’→代表十进制数值14 |
A | ASCII字符串 | 一个ASCII字符串,具体长度在IP包格式‘字段长度’一项中定义 | 3位的A值‘DVB’→代表ASCII字符串DVB |
SMS请求IP包格式见表2,在任何请求命令中,包头的长度始终为17位。
表2 SMS请求IP包格式
构成部分 | 字段名称 | 数据类型 | 字段长度 | 说明 |
包头 | 包体长度 | D | 4 | IP包中包体部分的长度,不包括包头 |
SMS ID | D | 5 | SMS编号 | |
SMS请求ID | D | 5 | SMS请求编号 | |
请求类型码 | A | 2 | 通过此字段表示不同的授权请求 | |
包头结束符 | A | 1 | 常量‘E’,表示包头部分的结束(End) | |
包体 | 请求具体内容 | 视具体内容而定 | <包体长度> | 具体内容根据请求类型而有所不同,具体格式参见随后的请求类型列表 |
SAS响应的IP包格式见表3。在任何请求命令中,包头加包体的长度始终为12位。
表3 SAS响应IP包格式
SAS响应码格式见表4。
构成部分 | 字段名称 | 数据类型 | 字段长度 | 说明 |
包头 | SMS ID | D | 5 | SMS编号 |
SMS请求ID | D | 5 | SMS请求编号 | |
包体 | 响应码 | A | 2 | 提示SAS处理授权请求的结果,具体意义见表4 |
表4 SAS响应码列表
响应码 | 表示的意义 |
00 | SMS请求执行成功 |
01 | SMS请求格式有错误 |
02 | SMS包中的<智能***码>没有注册 |
03 | 致命的***错误,请重新连接 |
3、SMS请求类型列表及SAS响应码
(1)连接测试(Are You Alive)
SMS连接测试请求格式见表5,此命令用于检测SAS是否正常运行,SAS响应码参见表4。
(2)增加授权(Add Product(s))
SMS增加授权请求格式见表6。其功能是将“产品ID列表”中列出的业务产品授权给“智能***码列表”中列出的智能卡。SAS响应码参见表4。
(3)取消授权(Cancel Product(s))
SMS取消授权请求格式见表7,其功能是取消“智能***码列表”中列出的智能卡上所载的“产品ID列表”中列出的业务产品授权。SAS响应码参见表4。
表5 SMS连接测试请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 |
包头 | 包体长度(4) | D | 0000 | IP包中包体部分的长度,不包括包头 |
SMS ID (5) | D | <SMS ID> | SMS编号 | |
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |
请求类型码(2) | A | 01 | 询问SAS是否正常运行 | |
包头结束符(1) | A | E | 表示包头部分的结束(End) |
表6 SMS增加授权请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | ||
包头 | 包体长度(4) | D | 3+13*<智能卡数量>+6*<业务产品数量> | IP包中包体部分的长度,不包括包头 | ||
SMS ID(5) | D | <SMS ID> | SMS编号 | |||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |||
请求类型码(2) | A | 11 | 增加授权的请求码 | |||
包头结束符(1) | A | E | 包头结束的标志 | |||
包体 | 智能卡数量(2) | D | <智能卡数量>(00-50) | 进行增加授权操作的智能卡 | ‘00’对所有智能卡授权‘01’单卡授权 | |
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***码的列表当<智能卡数量>为‘00’时,没有***列表当<智能卡数量>为‘01’时,只有一个*** | ||
智能***2(13) | D | <智能***码> | ||||
| | | ||||
智能***<智能卡数量>(13) | D | <智能***码> | ||||
业务产品数量(1) | D | <业务产品数量>(1-9) | 要增加授权的业务产品数量 | |||
产品ID列表 | 业务产品1(6) | D | <产品ID> | 要增加授权的产品ID列表 | ||
业务产品2(6) | D | <产品ID> | ||||
| | | ||||
业务产品<业务产品数量>(6) | D | <产品ID> |
表7 SMS取消授权请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | |||
包头 | 长度(4) | D | 3+13*<智能卡数量>+6*<业务产品数量> | IP包中包体部分的长度,不包括包头 | |||
SMS ID(5) | D | <SMS ID> | SMS编号 | ||||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | ||||
请求类型码(2) | A | 12 | 取消授权的请求码 | ||||
包头结束符(1) | A | E | 包头结束的标志 | ||||
包体 | 智能卡数量(2) | D | <智能卡数量>(01-50) | 进行取消授权操作的智能卡数量。 | ‘01’取消一张智能卡的产品授权 | ||
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***码的列表当<智能卡数量>为‘01’时,只有一个*** | |||
智能***2(13) | D | <智能***码> | |||||
| | | |||||
智能***<智能卡数量>(13) | D | <智能***码> | |||||
业务产品数量(1) | D | <业务产品数量>(0-9) | 要取消授权的业务产品数量 | ‘0’取消智能卡上原有的所有产品的授权 | |||
产品ID列表 | 业务产品1(6) | D | <产品ID> | 要取消授权的产品ID列表当业务产品数量为‘0’时,没有产品ID列表 | |||
业务产品2(6) | D | <产品ID> | |||||
| | | |||||
业务产品<业务产品数量>(6) | D | <产品ID> |
(4)覆盖原有授权(Overwrite Entitlement)
SMS覆盖原有授权请求格式见表8,其功能使用“产品ID列表”中列出的业务产品将“智能***码列表”中列出的智能卡上的原有业务产品授权覆盖,即取消智能卡上原有的所有授权,重新赋予其新的产品授权。SAS响应码参见表4。
表8 SMS覆盖原有授权请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | ||
包头 | 长度(4) | D | 3+13*<智能卡数量>+6*<业务产品数量> | IP包中包体部分的长度,不包括包头 | ||
SMS ID(5) | D | <SMS ID> | SMS编号 | |||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |||
请求类型码(2) | A | 13 | 覆盖授权的请求码 | |||
包头结束符(1) | A | E | 包头结束的标志 | |||
包体 | 智能卡数量(2) | D | <智能卡数量>(01-50) | 进行覆盖授权操作的智能卡数量。受IP包大小的限制,批量请求时的智能卡数量应小于50 | ‘01’覆盖一张智能卡的原有授权‘02’-‘50’覆盖一批智能卡的原有授权 | |
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***的列表当<智能卡数量>为‘01’时,只有一个*** | ||
智能***2(13) | D | <智能***码> | ||||
| | | ||||
智能***<智能卡数量>(13) | D | <智能***码> | ||||
业务产品数量(1) | D | <业务产品数量>(1-9) | 要增加授权的业务产品数量 | |||
产品ID列表 | 业务产品1(6) | D | <产品ID> | 要增加授权的产品ID列表 | ||
业务产品2(6) | D | <产品ID> | ||||
| | | ||||
业务产品<业务产品数量>(6) | D | <产品ID> |
(5)发送消息(Send IRD Message)
SMS发送消息请求格式见表9,其功能是向“智能***码列表”中列出的智能卡发送消息,消息内容立刻显示在用户的电视屏幕上。SAS响应码参见表4。
表9 SMS发送消息请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | ||
包头 | 长度(4) | D | 13*<智能卡数量>+<消息内容> | IP包中包体部分的长度,不包括包头 | ||
SMS ID(5) | D | <SMS ID> | SMS编号 | |||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |||
请求类型码(2) | A | 21 | 发送消息的请求码 | |||
包头结束符(1) | A | E | 包头结束的标志 | |||
包体 | 智能卡数量(2) | D | <智能卡数量>(00-50) | 需发送消息的智能卡数量。受IP包大小的限制,智能卡数量应小于50 | ‘00’向所有智能卡发送消息‘01’向某张智能卡发送消息‘02’-‘50’向一批智能卡发送消息 | |
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***的列表当<智能卡数量>为‘00’时,没有***列表当<智能卡数量>为‘01’时,只有一个*** | ||
智能***2(13) | D | <智能***码> | ||||
| | | ||||
智能***<智能卡数量>(13) | D | <智能***码> | ||||
消息的内容(<300) | A | <消息内容> | 消息的具体内容,如‘晚上好’受IP包大小的限制,其长度应小于300字节 |
(6)发送邮件(Send IRD Mail)
SMS发送邮件请求格式见表10,其功能是向“智能***码列表”中列出的智能卡发送邮件,邮件内容不直接显示在用户的电视屏幕上,而是存储在机顶盒中等待用户查看。SAS响应码参见表4。
表10 SMS发送邮件请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | ||
包头 | 长度(4) | D | 13*<智能卡数量>+<邮件内容> | IP包中包体部分的长度,不包括包头 | ||
SMS ID(5) | D | <SMS ID> | SMS编号 | |||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |||
请求类型码(2) | A | 22 | 发送邮件的请求码 | |||
包头结束符(1) | A | E | 包头结束的标志 | |||
包体 | 智能卡数量(2) | D | <智能卡数量>(00-50) | 需发送邮件的智能卡数量。受IP包大小的限制,智能卡数量应小于50 | ‘00’向所有智能卡发送邮件‘01’向某张智能卡发送邮件‘02’-‘50’向一批智能卡发送邮件 | |
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***的列表当<智能卡数量>为‘00’时,没有***列表当<智能卡数量>为‘01’时,只有一个*** | ||
智能***2(13) | D | <智能***码> | ||||
| | | ||||
智能***<智能卡数量>(13) | D | <智能***码> | ||||
邮件的内容(<300) | A | <邮件内容> | 邮件的具体内容,如‘生日快乐’受IP包大小的限制,其长度应小于300字节 |
(7)重设密码(Reset Password)
SMS重设密码请求格式见表11,其功能重新设置智能卡<智能***码>的密码为初始密码,SAS响应码参见表4。
表11 SMS重设密码请求格式
构成部分 | 字段名称(长度) | 数据类型 | 字段值 | 说明 | ||
包头 | 长度(4) | D | 13*<智能卡数量>+<邮件内容> | IP包中包体部分的长度,不包括包头 | ||
SMS ID(5) | D | <SMS ID> | SMS编号 | |||
SMS请求ID(5) | D | <请求ID> | SMS请求编号 | |||
请求类型码(2) | A | 31 | 把智能卡的密码重新设置为初始密码 | |||
包头结束符(1) | A | E | 包头结束的标志 | |||
包体 | 智能卡数量(2) | D | <智能卡数量>(00-50) | 需要重新设置密码的智能卡数量。受IP包大小的限制,智能卡数量应小于50 | ‘00’把所有智能卡的密码设置为初始密码‘01‘重设某张智能卡的密码‘02’-‘50’重设一批智能卡的密码 | |
智能***码列表 | 智能***1(13) | D | <智能***码> | 智能***的列表当<智能卡数量>为‘00’时,没有***列表当<智能卡数量>为‘01’时,只有一个*** | ||
智能***2(13) | D | <智能***码> | ||||
| | | ||||
智能***<智能卡数量>(13) | D | <智能***码> |
4、保留的指令类型码资源及指令集扩展规定
以上列出了SMS请求的一些基本命令格式,各厂商可以根据自身的需要,在遵循以上命令格式的基础上增加命令进行命令集扩展。同时,为了此标准扩展的需要,请求类型码00-49保留给此标准使用,各厂商可以使用50-99的请求类型码进行命令集扩展。
SMS请求类型代码列表见表12。
如图2所示,上部分左边的SMS1、SMS2、SMS3连线只能选择一个,同一时刻SMS-SAS接口只能被唯一的SMS访问进行连接通讯。下部分说明同一时刻通用SMS-SAS接口组件能被多个SMS访问进行连接通讯,与普通SAS接口通讯连接对比,本发明的通用SMS-SAS接口组件较普通的SAS接口有更大的灵活性和链接的便利性。SMS能同时和多个不同CA的SAS进行连接通讯,多个SMS能同时访问同一个SMS-SAS接口组件,普通的SMS-SAS接口只能和一个SMS连接通讯,同一个SMS要和多个不同CA的SAS通讯必须建立多个连接,这必然增加资源占有率,降低通讯效率。
表12 SMS请求类型代码列表
请求类型码 | 说明 |
00 | 保留 |
01 | 询问SAS是否正常运行 |
02-10 | 保留 |
11 | 增加授权 |
12 | 取消授权 |
13 | 覆盖原有授权 |
14-20 | 保留 |
21 | 发送消息 |
22 | 发送邮件 |
23-30 | 保留 |
31 | 重新设置密码 |
32-49 | 保留 |
50-99 | 厂商扩展指令 |
本发明提出根据不同CA提供的接口规范,把接口类型、接口指令、调用接口方式等具体的接口功能进行抽象分离,建立了一套通用的授权、消息管理接口规范,在此基础上,实现其通用接口组件化,则可达到不同CA***采用通用的SMS-SAS接口组件通讯进行授权、消息等管理的目的。SMS-SAS接口通讯体现在两个方面:一是SMS-SAS接口和SMS数据库之间的通讯,二是SMS-SAS接口和SAS之间的网络通讯。
如图3所示为,SMS数据库和SMS-SAS接口的操作流程,程序中有读取数据库线程和分析回应线程,处理位置都在数据库和智能数组之间,程序中的智能数组相当于进程间的共享区域,利用这些数组把各线程联系起来,MS-Visual C++的类库(MFC,Microsoft Foundation Class)中的智能数组可以动态增加,所以在这里非常适用,增加了程序的灵活性如图中虚线所包括所示。读取数据库线程(nettoDB)执行读取oracle数据库,然后把读出的请求信息放入相应的智能回应数组中等待发送。在读取数据库内容时,用开放式数据库连接性(ODBC,Open Database Connectivity,)和数据库连接,所以要保证运行程序的主机上要有ORACLE ODBC驱动,并和数据源建立连接。读取数据的通讯用MFC的CRECODERSET类,该类对象对应数据库表中的相应元素,在加进相应数组中时可能要进行转换。
由于发送请求数组数据是要涉及到数组查询,所以如果数组变的过大,在查询时会影响效率,所以在每次访问数据库时,先检查数组大小并将其限制在50个元素的范围之内。
每次连接数据库后,要进行请求的发送、回应的接收,并且数据库是不必连续访问,可周期轮寻,所以线程要阻塞一段时间,具体的通讯由计时器和同步事件完成。
分析回应线程(analysis Thread)分析回应数组中的回应信息,和发送的请求相对应并把请求的处理结果反馈给SMS端数据库,等待SMS用户的进一步处理,在这条线程中与数据库的连接,由于要向数据库中写入信息,不再适合用MFC的CRECODERSET类来通讯,而用Cdatabase类对象来通讯,这样用SQL&PLUS语句把回应信息和操作进行写回数据库比较灵活而且有效率。
由于程序执行时要不断的收到回应并写回数据库,而访问数据库并发送请求是间歇性的,所以该线程的执行也是有阻塞的,具体的通讯由计时器和同步事件控制。
上述所述的计时器包括宏定义的RDBDATA、CHECKNET、ALIVETIMER三个计时器,利用这三个计时器来驱动线程的运行,其中RDBDATA控制访问数据库的时间间隔,CHECKNET用来控制定时向SAS发送检查连接是否有效信息,重而避免网络连接已经中断,程序仍然发送请求访问数据库的错误操作,ALIVETIMER定时检查网络是否正常,和CHECKNET配合使用,保证程序正常运行。
上述所述的同步事件是指,程序中线程有阻塞,除了计时器外,还要利用同步事件来驱动线程,程序中有sendEvent、recvEvent、analysisEvent、DBEvent四个同步事件,当等到事件则相应的线程启动。sendEvent驱动发送线程,recvEvent驱动接收线程,analysisEvent驱动分析回应线程,DBEvent驱动读取数据库线程。
由于各线程共享数组,所以要引入临界量来保护数据安全,本发明用临界量criticalprotect完成保护功能,criticalprotect是CcriticalSection类的变量。
二、SMS-SAS接口和SAS***的通讯
如图3所示,SMS-SAS接口和SAS***的通讯实现主要是:判断用户管理***是否向授权管理***发送请求,如果是,则用户管理***读取数据库线程启动并从用户管理***数据库中读出需要请求的数据,并把读出的请求信息放入请求智能数组中等待发送。用户管理***发送线程根据用户管理***请求格式检测发送的网络协议数据包,把格式正确的请求数据发送给授权管理***。
发送线程(sendThread)检查请求数组,看是否有请求数组需要发送,如果有,则利用TCP\IP网络通讯协议,通过WINSOCK连接将请求发往SAS,如果没有请求需要发送,则等待一段时间后再次检查。
每发送一条请求后,需要给程序留出一点时间让接收线程接收数据,因为各请求在SAS端的处理时间不一样,所以请求的回应时间有延迟,并且回应次序并不和发送次序一致,所以在发送一条请求后应给接收线程留点时间接收回应。
请求数组中已被发送但尚未收到回应的请求信息不应当再次发送,所以在数组中的各元素中有一流水号来分辨是否此请求已经发送。
与读取数据库线程一样,该线程有阻塞,同样由计时器和同步事件通讯。
SAS对数据处理后,SMS接收线程对回应数据进行接收处理,如果格式数据正确,送入回应智能数组中等待数据分析,SMS分析回应线程对回应数据进行分析处理,如果是合法数据,把正确处理结果回传给数据库。
接收线程(recvThread)接收网络传来的数据并分析是否是合法回应信息,如不是,则忽略,是则放入回应数组中,等待分析回应线程的处理。
由于接收线程接收网络来的数据,而网络传来的数据不定时有随机性,所以该线程不应被阻塞,应一直监听端口,随时准备接收数据。
在请求、回应的过程中出现异常则进行异常处理,如没有处理完毕,重复执行上述步骤,否则结束。
SMS-SAS接口组件化的实现关键技术表现在三个方面:实现Iunknown接口,实现自定义接口,实现接口查询,管理对象生命周期(记数)。因为Iunknown接口是纯虚类,它所包含的函数都是纯虚函数,而且他们没有成员变量,SAS自定义接口是从这些纯虚类继承下来的派生类,所以通讯这些虚函数就变的由为重要,虚函数都是通过调用虚函数表来通讯的。
Iunknown包含三个非常重要的函数,分别是QueryInterface、AddRef、Release。而且它们的排列顺序也是不可改变的。QueryInterface用于查询组件通讯的其它接口,也就是查询组件的父类中还有哪些接口类,AddRef用于增加引用计数,Release用于减少引用计数。利用好这三个函数能对com组件进行有效管理,使得客户可以从组件内的任一接口查询到任何其他接口,这种灵活性使客户可以轻易获取他所能知道的有关接口,且能够更合理、安全、有效的管理组件的生存期问题。通讯了以上步骤,可以通讯类工厂了,继承IclassFactory接口,用于创建通用SAS接口组件实例。
为保证接口的唯一性,采用GUID(Globally Unique IDentifier,全球唯一标识器)的方法产生通用SAS接口组件,当创建好通用SAS接口组件实例后,经过编译,生成动态连接库(dll)文件,通过注册表发布组件的信息,对象的信息,接口的信息。
SMS组件是一个DLL,有两种运行模式:本地、远程。本地是指DLL进程和调用者在同一个机器上但在不同的进程内;远程是指DLL进程根本就和调用者在两台机器上。
访问本地SAS接口组件时,由于客户程序和被调用的SMS组件是处在不同的进程间,它们有各自不同的编址空间,所以在传递接口指针到客户程序必须要经过调度。Windows已经提供了现成的调度函数。
访问远程SAS接口组件时,DCOM(分布式组件)以RPC为基础,在网络间传递数据必须遵守标准的网上数据传输协议,数据传递前要先打包,传递到目的地后解包。
本发明提出通用的用户管理***与授权管理***接口规范,依据通用接口规范实现组件化的SMS-SAS通讯接口。SMS-SAS组件通过一定的方式注册、发布,在SMS客户端通过访问SMS-SAS组件,SMS就可以和需要连接的CA进行通讯,完成产品订购或发送消息等的整个业务处理过程。
最后所应说明的是:以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,对于不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.数字电视通用用户管理***与授权管理***接口通讯方法,所述数字电视包括一套前端用户管理子***,两套不同条件接收前端子***,用户管理***与授权管理***接口组件访问客户机和远程发布用户管理***与授权管理***接口组件服务器,其特征在于:包括以下步骤:
a.设置授权管理***的密钥集、网络协议、端口、用户管理***的标示符;
b.根据授权管理***的密钥集、网络协议、端口、用户管理***的标示符设置计数器,并在用户管理***创建读取数据库线程、发送线程、接收线程、分析回应线程;
c.判断用户管理***是否向授权管理***发送请求,如果是,则用户管理***读取数据库线程启动并从用户管理***数据库中读出需要请求的数据,并把读出的请求信息放入请求智能数组中等待发送;
d.用户管理***发送线程根据用户管理***请求格式检测发送的网络协议数据包,把格式正确的请求数据发送给授权管理***;
e.授权管理***对数据处理后,用户管理***接收线程对回应数据进行接收处理,如果格式数据正确,送入回应智能数组中等待数据分析;
f.用户管理***分析回应线程对回应数据进行分析处理,如果是合法数据,把正确处理结果回传给数据库。
2.根据权利要求1所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤a中的网络协议采用传输控制网络协议,使用端口为4000-6999。
3.根据权利要求1所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤b中的发送线程发送的请求数据采用网际协议包格式,包头长度为17位,包括用户管理***的标示符、请求标示符和请求类型码,授权管理***也采用网际协议包格式,包头加包体长度为12位,包括用户管理***的标示符、请求标示符和授权管理***响应类型码。
4.根据权利要求1所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤c中的请求包括连接测试请求、增加授权请求、取消授权请求、覆盖原有授权请求、发送消息请求、发送邮件请求、密码复位请求,除连接测试请求外,所有请求的格式包括包头和包体,包体包括智能卡数量、智能***码列表字段,增加授权请求、取消授权请求、覆盖原有授权请求的包体还包括产品标示符列表字段。
5.根据权利要求4所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述增加授权请求字段中,‘00’表示对所有智能卡授权,‘01’为单卡授权,‘02’-‘50’表示批量授权。
6.根据权利要求4所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述取消授权请求中,‘01’表示取消一张智能卡的产品授权,‘02’-‘50’表示取消一批智能卡的产品授权。
7.根据权利要求4所述的数字电视通用用户管理***与授权管理***接口通讯方法,其特征在于:所述覆盖原有授权请求中,‘01’表示覆盖一张智能卡的原有授权,‘02’-‘50’表示覆盖一批智能卡的原有授权。
8.根据权利要求1所述的数字电视***通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤c和e中的智能数组相当于进程间的共享区域,用于把各线程联系起来,智能数组可以动态增加。
9.根据权利要求1所述的数字电视***通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤c中的发送请求和所述步骤e中的对回应数据进行接收处理采用周期轮寻方式,发送线程和接收线程有一段时间的阻塞,阻塞由计时器和同步事件完成。
10.根据权利要求9所述的数字电视***通用用户管理***与授权管理***接口通讯方法,其特征在于:所述计时器有时间间隔计时器、连接检查计时器、定时检查网络计时器三种,分别控制访问数据库的时间间隔、控制定时向用户授权管理***发送检查连接是否有效以避免网络连接已中断时程序仍发送请求访问数据库的错误操作,或与时间间隔计时器配合使用定时检查网络是否正常,保证程序正常运行。
11.根据权利要求9所述的数字电视***通用用户管理***与授权管理***接口通讯方法,其特征在于:所述同步事件包括发送事件、接收事件、分析事件、驱动数据库事件,发送事件驱动发送线程,接收事件驱动接收线程,分析事件驱动分析回应线程,驱动数据库事件驱动读取数据库线程。
12.根据权利要求1所述的数字电视***通用用户管理***与授权管理***接口通讯方法,其特征在于:所述步骤a、b中授权管理***的密钥集、网络协议、端口、用户管理***标示符,计数器,和读取数据库线程、发送线程、接收线程、分析回应线程采用全球唯一标识器设置或创建,之后生成动态链接库文件,并通过注册表发布协议信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100006199A CN100346648C (zh) | 2004-01-13 | 2004-01-13 | 数字电视通用用户管理***与授权管理***接口通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100006199A CN100346648C (zh) | 2004-01-13 | 2004-01-13 | 数字电视通用用户管理***与授权管理***接口通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1642264A CN1642264A (zh) | 2005-07-20 |
CN100346648C true CN100346648C (zh) | 2007-10-31 |
Family
ID=34866819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100006199A Expired - Fee Related CN100346648C (zh) | 2004-01-13 | 2004-01-13 | 数字电视通用用户管理***与授权管理***接口通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100346648C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107659379B (zh) * | 2016-08-03 | 2020-09-18 | 平安科技(深圳)有限公司 | 请求反馈方法及业务服务器 |
CN106790035A (zh) * | 2016-12-15 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种协议分析装置、方法及*** |
CN107197018B (zh) * | 2017-05-23 | 2020-01-21 | 北京奇艺世纪科技有限公司 | 一种***间数据同步的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998043426A1 (en) * | 1997-03-21 | 1998-10-01 | Canal+ Societe Anonyme | Broadcast and reception system, and conditional access system therefor |
CN1254476A (zh) * | 1997-03-21 | 2000-05-24 | 卡纳尔股份有限公司 | 信号生成与广播 |
CN1284818A (zh) * | 2000-09-29 | 2001-02-21 | 清华大学 | 一种用于有线电视网上视频广播的全数字有条件接收方法 |
WO2001099423A1 (en) * | 2000-06-19 | 2001-12-27 | On Command Corporation | Secure multimedia communications system |
CN1358024A (zh) * | 2000-12-15 | 2002-07-10 | 上海南广电子技术有限公司 | 宽带数据广播中窄带条件接收方案 |
CN1413024A (zh) * | 2001-10-08 | 2003-04-23 | 北京中视联数字***有限公司 | 数字电视用户管理*** |
CN1422080A (zh) * | 2001-11-26 | 2003-06-04 | 国家广播电影电视总局广播科学研究院 | 数字电视用户管理***与多个条件接收***连接实现方法 |
-
2004
- 2004-01-13 CN CNB2004100006199A patent/CN100346648C/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998043426A1 (en) * | 1997-03-21 | 1998-10-01 | Canal+ Societe Anonyme | Broadcast and reception system, and conditional access system therefor |
CN1254476A (zh) * | 1997-03-21 | 2000-05-24 | 卡纳尔股份有限公司 | 信号生成与广播 |
WO2001099423A1 (en) * | 2000-06-19 | 2001-12-27 | On Command Corporation | Secure multimedia communications system |
CN1284818A (zh) * | 2000-09-29 | 2001-02-21 | 清华大学 | 一种用于有线电视网上视频广播的全数字有条件接收方法 |
CN1358024A (zh) * | 2000-12-15 | 2002-07-10 | 上海南广电子技术有限公司 | 宽带数据广播中窄带条件接收方案 |
CN1413024A (zh) * | 2001-10-08 | 2003-04-23 | 北京中视联数字***有限公司 | 数字电视用户管理*** |
CN1422080A (zh) * | 2001-11-26 | 2003-06-04 | 国家广播电影电视总局广播科学研究院 | 数字电视用户管理***与多个条件接收***连接实现方法 |
Non-Patent Citations (1)
Title |
---|
"基于DVB-C平台的用户管理***(SMS)" 徐东生,李斐,广播电视信息,第12期 2003 * |
Also Published As
Publication number | Publication date |
---|---|
CN1642264A (zh) | 2005-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1269033C (zh) | 数据处理***中逻辑分区之断电和/或再启动的方法和仪器 | |
CN101034990A (zh) | 权限管理方法及装置 | |
US20060200802A1 (en) | Systems, methods and architecture for facilitating software access to acceleration technology | |
CN1933425A (zh) | 实现设备访问接口的模块和方法、设备访问***和方法 | |
CN1658608A (zh) | 用于提供可修改通用应用内容的***和方法 | |
CN1405689A (zh) | 便携式存储介质和利用便携式存储介质 | |
CN1943160A (zh) | 用于在一装置中调用一特权函数的*** | |
CN1609810A (zh) | 向有高保证执行环境的***的可信代理提供安全输入/输出 | |
CN1926525A (zh) | 多突发协议设备控制器 | |
CN100346298C (zh) | 远程加载或升级程序的***及其方法 | |
CN111651738B (zh) | 基于前后端分离架构的细粒度角色权限统一管理方法及电子装置 | |
CN111142910B (zh) | 一种面向多界面的资源调配处理方法及*** | |
CN1632774A (zh) | Usb接口设备的识别方法 | |
CN1595903A (zh) | 用于自动建立资源网格的方法及装置 | |
CN1826810A (zh) | 用于监控广播内容的使用的方法 | |
CN1698320A (zh) | 设备间认证***及设备间认证方法、通信设备和计算机程序 | |
CN100346648C (zh) | 数字电视通用用户管理***与授权管理***接口通讯方法 | |
CN1256663C (zh) | 一种嵌入式***中具有实时帮助功能的命令行管理方法 | |
CN1292115A (zh) | 分布***中动态验证信息的装置和方法 | |
CN1100299C (zh) | 面向对象***中对被保护对象进行访问控制的***和方法 | |
CN1885266A (zh) | 用于协作处理的***,设备及方法 | |
CN1643868A (zh) | 路径密封的软件对象条件访问控制 | |
CN101819524B (zh) | Rfid阅读器的访问方法及其接口驱动设备 | |
CN1637706A (zh) | 组件处理***和组件处理方法 | |
CN1298506A (zh) | 便于访问查询服务的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |