CN101304473B - 一种基于散列表的双向机顶盒会话信息维护方法 - Google Patents

一种基于散列表的双向机顶盒会话信息维护方法 Download PDF

Info

Publication number
CN101304473B
CN101304473B CN2008100289105A CN200810028910A CN101304473B CN 101304473 B CN101304473 B CN 101304473B CN 2008100289105 A CN2008100289105 A CN 2008100289105A CN 200810028910 A CN200810028910 A CN 200810028910A CN 101304473 B CN101304473 B CN 101304473B
Authority
CN
China
Prior art keywords
channel
top box
session
user profile
class
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
Application number
CN2008100289105A
Other languages
English (en)
Other versions
CN101304473A (zh
Inventor
罗笑南
周轶伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Zhongheng Electronic Technology Co., Ltd.
Sun Yat Sen University
Original Assignee
GUANGZHOU ZHONGHENG ELECTRONIC TECHNOLOGY Co Ltd
National Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GUANGZHOU ZHONGHENG ELECTRONIC TECHNOLOGY Co Ltd, National Sun Yat Sen University filed Critical GUANGZHOU ZHONGHENG ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN2008100289105A priority Critical patent/CN101304473B/zh
Publication of CN101304473A publication Critical patent/CN101304473A/zh
Application granted granted Critical
Publication of CN101304473B publication Critical patent/CN101304473B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了数字电视双向IP机顶盒与应用服务器AS之间一种基于散列表的会话信息维护的方法。在该方法中,应用服务器AS通过在内存中建立并维护散列表,描述机顶盒用户、所在频道与频道会话信息之间的映射关系,从而达到在无需访问数据库的条件下动态获取和设置机顶盒用户会话信息的目的。相比起直接使用HTTP协议中的session进行机顶盒会话维护的传统方法,本发明提高了通信的安全性与灵活性,避免了不同的应用频道模块之间共享同一个session对象造成的耦合,降低了频道开发的难度,并提高了频道会话数据与频道处理流程的内聚性。

Description

一种基于散列表的双向机顶盒会话信息维护方法
技术领域
本发明涉及数字电视通信技术领域,尤其涉及在数字电视双向IP机顶盒与应用服务器AS之间一种基于散列表的会话信息维护方法。
背景技术
随着数字电视双向IP机顶盒的出现,节目点播、信息查询与浏览等各种丰富的业务也可通过数字电视的渠道展现给用户,由于互动频道和用户数量的增多,双向机顶盒与应用服务器AS之间交互的重要性日益凸显。目前,许多数字电视机顶盒与后台之间仍然采用面向无连接和无会话状态的方式进行通信,这样的通信方式只适应传统的广播式数字电视网络,不足以胜任双向互动的任务。一部分基于HTTP协议的双向IP机顶盒业务提供商采用了HTTP协议的内建对象session进行会话状态的保存,这种方法虽然可以满足互动较为简单的机顶盒应用,然而对于集视频点播、数字医疗、刷卡支付、三表查询等多种复杂业务于一体的双向机顶盒应用来说,各个频道业务共享一个内建对象session,势必造成系统的高耦合,导致系统安全性与灵活性上的不足。一旦互动系统的结构较为复杂,采用HTTP协议内建对象session进行会话维护可能引发意想不到的错误。
发明内容
针对现存技术的不足,本发明的目的是提供一种基于散列表的双向机顶盒会话信息维护方法。利用散列表结构存取速度快的特点,在常数级的时间内完成会话信息的维护,减少用户访问互动频道带来的系统开销。同时,避免不同频道之间共享session对象造成的安全问题,使得频道会话信息与频道处理流程得以结合,进而满足各个数字电视应用频道之间低耦合、高内聚的要求,以提高数字电视系统的效率与安全性。
为达到以上目的,本发明采用的技术方案是:一种基于散列表的双向机顶盒会话信息维护方法,该方法包括以下步骤:
1、从服务器的表示层对业务层的调用信息之中,获取发出请求的机顶盒用户的用户信息,以及所在频道对应的类名;根据用户信息与所在频道,删除会话表中用户信息相同但所在频道不同的会话;
2、以用户信息与所在频道为键,在会话表中查找对应的频道对象;用户信息与所在频道进行连接操作之后,共同作为会话表的键,而频道类对象向上转型为频道基类对象,作为值保存在会话表之中,所述会话表是一个散列表;
3、判断频道对象是否为空值;如果不为空,则表示机顶盒用户仍然处于当前会话的频道之中,转向步骤(6)继续操作,如果为空,继续以下操作;
4、表示机顶盒用户进入了一个新的频道,为机顶盒用户创建一个新的频道类的对象;
5、在会话表中插入新的会话对象映射关系,其中键为用户信息与所在频道的连接,值为新的频道类对象向上转型之后的频道基类对象;
6、更新该会话的上一次通信时间;
7、以机顶盒调用何种方法为依据,结束会话或者调用频道对象的方法进行操作,并将结果通过服务器的表示层返回给机顶盒。
上面所述的用户信息是一个容器类Vector对象,该对象唯一标志机顶盒的身份信息,包括用户名、密码以及机顶盒物理地址。
上面所述会话表是一个散列表,是一个从用户信息与所在频道连接向频道类的映射关系的集合。该映射中,用户信息与所在频道的散列码hashCode由用户信息Vector对象的散列码与所在频道名字符串的散列码运算获得的整数,运算公式为:
hashCode(usrInfoAndChannel)=n×hashCode(usrInfo)+hashCode(channel)
其中n为常数,实际应用中可设置为频道的个数。
用户信息对象usrInfo的散列码由各项用户信息字符串的散列码之和运算得到,运算公式为:
hashCode ( usrInfo ) = Σ i = 0 m - 1 n i hashCode ( usrInfo . elementAt [ i ] )
其中n为常数,m为用户信息项的数目。用户各项信息以及频道名的散列码按字符串类String默认的散列码算法得到。
对于散列码相同的对象,通过链地址法解决冲突,所述会话表的初始大小设置为最大同时在线的机顶盒数目,可随着机顶盒用户的增加动态进行扩充。
上面所述频道类由频道会话信息与频道操作流程组成,该类依据其中的频道会话信息,调用数据层的接口,为机顶盒用户提供频道数据信息,不同的频道类均继承频道基类,基类中包含该次频道会话的上一次通信时间等通用信息。
上面所述守护程序是由应用服务器AS创建的一个线程,该线程每隔一定时间检测一次会话表中各会话元素的上一次通信时间,关闭连续若干小时未进行通信的会话,并从会话表中删除该会话。
由上述本发明采用的技术方案可以看出,本发明有以下有益效果:
1、采用散列表的会话信息维护方法,在查找从用户信息与所在频道所对应的频道对象时只需访问内存,不需额外的I/O操作,在散列表较大而冲突不明显的理想情况下,只需要O(1)的时间便可完成散列表的查找、删除和修改,从而避免了用数据库读写完成会话信息维护的方法在时间上带来开销巨大的缺点,显著提高了系统的性能。
2、由于各频道对象各自保存各自的会话信息,避免了共享HTTP协议内建对象session造成的频道模块之间高耦合带来的意外错误。
3、将会话信息与频道内部流程控制结合,使得表示层信息和其它频道信息对频道开发者透明化,有利于开发者方便迅速的开发新的频道而无需考虑其它频道。
附图说明
图1是双向机顶盒后台服务器AS中应用层的子模块图;
图2是双向机顶盒后台服务器AS接收到一次机顶盒请求之后运行的流程图。
具体实施方式
下面将结合附图对本发明的结构和实施方式组成作进一步的详细描述:
如图1所示,应用服务器AS的应用层由以下几个模块组成:
1、RMI服务模块,该模块负责建立一个RMI服务供表示层进行调用,该模块通过会话散列表映射,与频道模块进行交互。该模块在应用服务器启动时开始运行。
2、会话表模块,该模块由散列表构成,散列表的映射关系为用户信息、所在频道向频道对象的映射。该映射中,用户信息与所在频道的散列码hashCode由用户信息Vector对象的散列码与所在频道名字符串的散列码运算获得的整数,运算公式为:
hashCode(usrInfoAndChannel)=n×hashCode(usrInfo)+hashCode(channel)
其中n为常数,实际应用中可设置为频道的个数。
用户信息对象usrInfo的散列码由各项用户信息字符串的散列码之和运算得到,运算公式为:
hashCode ( usrInfo ) = Σ i = 0 m - 1 n i hashCode ( usrInfo . elementAt [ i ] )
其中n为常数,m为用户信息项的数目。用户各项信息以及频道名的散列码按字符串类String默认的散列码算法得到。
会话表模块在RMI服务开启之后建立。
3、守护程序模块,该模块为一单独的线程,在会话表创建之后启动,该程序负责每隔若干时间对会话表中的项目进行轮询,一旦该会话对应的频道对象显示用户已经连续若干小时未继续进行请求,则关闭该会话,并且将对应项目由会话表中移除。导致会话超时的原因一般是网络的异常中断,该守护程序目的是为了防止异常中断的会话耗费服务器过多的资源。在实施上,超时时间一般设置为8小时。
4、频道对象模块,该模块由互动频道的类组成,每一个互动频道对应一个类。例如,电影点播频道对应电影点播类Movie。该类中包含用户的会话信息,Movie类的movie对象包含了某一用户当前所关注的电影名称movieName,缴费账号account,以及是否已经缴费标志paid,一旦用户已经刷卡缴费,则计算账号余额并回显,并将paid设置为true,允许用户进行播放。所有的频道类都对频道基类进行继承,频道基类中包含所有频道对象共享的信息,例如用户上一次会话的时间,以提供给守护程序进行超时判断。频道对象在机顶盒用户对后台进行请求之后建立,其建立的过程见下文。
在双向机顶盒对后台进行一次请求之后,服务器的表示层将请求信息传递给应用层,应用层对该请求作出的运行过程如图2所示。
1、当应用层收到表示层的RMI调用之后,取出RMI调用参数之中的用户信息与所在频道信息;例如,用户名为user01,密码为123456,机顶盒物理地址为00-E0-4D-02-2A-49,访问频道为电影点播Movie。这些信息都包含在一个容器Vector当中。若之前存在用户信息相同,但所在频道为远程医疗Hospital的项,则将该会话项删除。
2、根据用户信息与所在频道,在会话表中查找频道对象obj,该步可以调用散列表的get()方法进行实施,以在步骤1中获取的容器vector作为键,调用会话表的成员方法hashMap.get(vector),获取频道对象obj。
3、判断频道对象obj是否空,若为空有两个原因,机顶盒用户刚进入第一个频道或者机顶盒用户退出了旧的频道进入了新的频道。若不为空则表示机顶盒用户仍处于刚才的频道之中,跳转到步骤6,否则继续如下操作。
4、新创建访问频道名所对应的频道,例如频道名为Movie,则新建Movie类的对象obj。
5、将用户信息与频道名向频道对象的映射加入会话表。该步骤可以调用散列表的add()方法进行实施,例如,调用会话表的成员方法hashMap.add(vector,obj),将映射关系加入会话表,创建新的会话。
6、更新该会话的上一次通信时间,交由守护程序进行超时判断处理。该步骤可以由设置频道类基类的成员变量进行实施,该成员变量必须是守护程序有权限进行读取的。
7、以机顶盒调用何种方法为依据,结束会话或者调用频道对象的方法进行操作,并将结果通过服务器的表示层返回给机顶盒。该步骤如何操作,取决于机顶盒用户进行操作所调用的方法名。例如用户按下了获取最新电影列表按钮,调用方法名为getNewestMovieList,RMI服务模块在接收到该请求之后,调用频道对象的getNewestMovieList方法,进行数据读取,并将结果返回给表示层。又例如用户按下了退出电影点播频道的按钮,调用方法名为quitChannel,后台则将会话表中对应项去除,结束会话,该步骤可以调用散列表的remove()方法进行实施。

Claims (5)

1.一种基于散列表的双向机顶盒会话信息维护方法,其特征在于,该方法包括以下步骤:
(1)从服务器的表示层对业务层的调用信息之中,获取发出请求的机顶盒用户的用户信息,以及所在频道对应的类名;根据用户信息与所在频道,删除会话表中用户信息相同但所在频道不同的会话;
(2)以用户信息与所在频道为键,在会话表中查找对应的频道对象;用户信息与所在频道进行连接操作之后,共同作为会话表的键,而频道类对象向上转型为频道基类对象,作为值保存在会话表之中,所述会话表是一个散列表;
(3)判断频道对象是否为空值;如果不为空,则表示机顶盒用户仍然处于当前会话的频道之中,转向步骤(6)继续操作,如果为空,继续以下操作;
(4)表示机顶盒用户进入了一个新的频道,为机顶盒用户创建一个新的频道类的对象;
(5)在会话表中插入新的会话对象映射关系,其中键为用户信息与所在频道的连接,值为新的频道类对象向上转型之后的频道基类对象;
(6)更新该会话的上一次通信时间;
(7)以机顶盒调用何种方法为依据,结束会话或者调用频道对象的方法进行操作,并将结果通过服务器的表示层返回给机顶盒。
2.根据权利要求1所述的一种基于散列表的双向机顶盒会话信息维护方法,其特征在于,所述用户信息是一个容器类Vector对象,该对象唯一标志机顶盒的身份信息,包括用户名、密码以及机顶盒物理地址。
3.根据权利要求1或2所述的一种基于散列表的双向机顶盒会话信息维护方法,其特征在于,所述会话表用散列表容器类HashMap实现,所述会话表是一个从用户信息与所在频道连接向频道类的映射关系的集合,该映射中,用户信息与所在频道的散列码hashCode由用户信息Vector对象的散列码与所在频道对象字符串的散列码运算获得的整数,运算公式为:
hashCode(usrInfoAndChannel)=n×hashCode(usrInfo)+hashCode(channel)
其中n为常数,实际应用中可设置为频道的个数;
用户信息Vector对象usrInfo的散列码由各项用户信息字符串的散列码之和运算得到,运算公式为:
hashCode ( usrInfo ) = Σ i = 0 m - 1 n i hashCode ( usrInfo . elementAt [ i ] )
其中n为常数,m为用户信息项的数目;用户各项信息以及的散列码按字符串类String默认的散列码算法得到;
对于散列码相同的对象,通过链地址法解决冲突,所述会话表的初始大小设置为最大同时在线的机顶盒数目,可随着机顶盒用户的增加动态进行扩充。
4.根据权利要求1所述的一种基于散列表的双向机顶盒会话信息维护方法,其特征在于,所述频道类由频道会话信息与频道操作流程组成,该类依据其中的频道会话信息,调用数据层的接口,为机顶盒用户提供频道数据信息,不同的频道类均继承频道基类,基类中包含该次频道会话的上一次通信时间等通用信息。
5.根据权利要求1或4所述的一种基于散列表的双向机顶盒会话信息维护方法,其特征在于,守护程序是由应用服务器AS创建的一个线程,该程序每隔一定时间检测一次会话表中各会话元素的上一次通信时间,关闭连续若干小时未进行通信的会话,并从会话表中删除该会话。
CN2008100289105A 2008-06-20 2008-06-20 一种基于散列表的双向机顶盒会话信息维护方法 Expired - Fee Related CN101304473B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100289105A CN101304473B (zh) 2008-06-20 2008-06-20 一种基于散列表的双向机顶盒会话信息维护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100289105A CN101304473B (zh) 2008-06-20 2008-06-20 一种基于散列表的双向机顶盒会话信息维护方法

Publications (2)

Publication Number Publication Date
CN101304473A CN101304473A (zh) 2008-11-12
CN101304473B true CN101304473B (zh) 2010-09-08

Family

ID=40114160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100289105A Expired - Fee Related CN101304473B (zh) 2008-06-20 2008-06-20 一种基于散列表的双向机顶盒会话信息维护方法

Country Status (1)

Country Link
CN (1) CN101304473B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117217B (zh) * 2010-11-29 2012-10-03 福建新大陆通信科技股份有限公司 一种机顶盒脚本扩充函数的方法
CN102546808B (zh) * 2012-01-17 2014-06-25 深圳天源迪科信息技术股份有限公司 服务端基于tcp的交互处理方法
US10198248B2 (en) 2012-07-11 2019-02-05 Intel Corporation Parallel processing of a single data buffer

Also Published As

Publication number Publication date
CN101304473A (zh) 2008-11-12

Similar Documents

Publication Publication Date Title
CN101969391B (zh) 一种支持融合网络业务的云平台及其工作方法
CN104378304B (zh) 灰度发布的控制方法、装置及系统
CN102067126B (zh) 对分布式搜索的结果进行货币化和优先级区分
CN103959285A (zh) 远程浏览会话管理
CN104025084B (zh) 历史浏览会话管理
CN1460369A (zh) 智能电器的基于令牌的个性化
WO2006044046A2 (en) Method and apparatus for management of video on demand client service
CN104427398A (zh) 一种智能电网交互电视播控平台
CN104040995B (zh) 多媒体重定向方法以及多媒体服务器以及计算机系统
CN106940880A (zh) 一种美颜处理方法、装置和终端设备
CN109636307B (zh) 河长app系统
CN104410875A (zh) 实现iptv盒端业务零配置自动开通的系统及方法
CN101304473B (zh) 一种基于散列表的双向机顶盒会话信息维护方法
CN102348135A (zh) 基于智能电视多用户定制各自应用列表的方法和智能电视
CN103870727A (zh) 一种统一管理权限的方法及系统
CN103563298B (zh) 在通用即插即用家庭网络环境中管理联系信息的方法和系统
CN101222496A (zh) 一种网络电视系统中搜索和启动业务的系统及方法
CN114567600A (zh) 流量管理方法及相关设备
CN110493661A (zh) 一种视频文件的处理方法以及服务器
CN106600321A (zh) 一种基于ios的移动广告平台系统
CN101888525B (zh) 一种基于网络数据库的数字电视用户管理系统
CN103034632A (zh) 一种信息传送方法和系统
CN109194759B (zh) 一种在前端降级的网络访问方法及系统
CN106487653A (zh) 一种消息处理方法及服务器
CN106453494A (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
ASS Succession or assignment of patent right

Owner name: GUANGZHOU ZHONGHENG ELECTRONIC TECHNOLOGY CO., LTD

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20100721

Address after: 510275, room 415, 401 Garden Road, Zhongshan University, Xingang West Road, No. 135, Guangzhou West Road, Guangzhou, Guangdong

Applicant after: Sun Yat-sen University

Co-applicant after: Guangzhou Zhongheng Electronic Technology Co., Ltd.

Address before: 510275, room 415, 401 Garden Road, Zhongshan University, Xingang West Road, No. 135, Guangzhou West Road, Guangzhou, Guangdong

Applicant before: Sun Yat-sen University

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100908

Termination date: 20140620

EXPY Termination of patent right or utility model