基于个性化互动电视系统框架的单元间信息交互的实现
2014-09-26夏菽兰王吉林
夏菽兰,王吉林
(1.盐城工学院电气工程学院,江苏盐城224051;2.盐城工学院信息工程学院,江苏盐城224051)
基于个性化互动电视系统框架的单元间信息交互的实现
夏菽兰1*,王吉林2
(1.盐城工学院电气工程学院,江苏盐城224051;2.盐城工学院信息工程学院,江苏盐城224051)
在现有HTML交互技术的技术上,实现了应用对用户数据的实时检测及根据用户数据的改变实时更新应用内容的功能。在UPnP AV框架基础上,利用UPnP设备UDN这一参数的唯一性与不变性提出了一种多UPnP设备存在情况下,UPnP设备之间实现双向数据推送的解决方案,并进行了实际测试。
互动电视;信息交互;实时个性化
随着技术发展,广播网络与其他网络的融合,家庭内部设备之间的互连及各种应用根据不同的用户进行个性化定制已经成为可能。由于各种设备上硬件系统,支持的网络协议,数据媒体格式的不同,各设备之间实现互联及信息交互存在许多兼容问题,DLNA(Digital Living Network Alliance)及UPnP(Universal Plug and Play)等概念的提出即为旨在提供一种对各种智能电器,无线设备,各种电脑普遍适用的端到端网络连接,本文将在UPnP协议的基础上实现电视与用户设备的互联。个性化互动电视系统框架中各单元之间信息交互的实现过程,具体包括电视终端与服务器之间的信息交互、TV extension与服务器之间的信息交互及TV extension与用户设备之间的信息交互,其中解决TV extension与用户设备信息交互过程中存在的双向数据推送问题是本文的主要工作内容。
1 电视终端与网页服务器之间的信息交互
电视终端与应用网页服务器之间的信息交互如图1所示。
由图1可知电视终端与网页服务器之间的信息交互主要包括3个方面,分别为初始应用数据的传输,用户偏好数据的传输及应用发送给用户的反馈信息。
1.1 初始应用数据的传输
本文系统中的初始应用数据的传输发生在电视终端解析到广播信息中新的AIT信令信息时,该部分功能电视终端已经完成,本文涉及的部分只包括设定AIT信令中应用数据在网页服务器上的具体位置信息。
1.2 用户偏好数据的传输
此部分的用户偏好数据传输是指电视终端上运行的应用对已经存储在服务器上的用户数据的状态进行实时检测。具体实现方式为通过JavaScript脚本以一定的频率重复使用XMLHTTPRequest对象请求服务器上的用户数据,并将其与前一轮获得的数据进行比较,如果数据发生改变,则认为用户状态发生更新,这时,电视终端上运行的应用将通过本地JavaScript脚本结合获得的最新用户数据对应用进行动态更新。
图1 电视终端与网页服务器之间的信息交互
在实现过程中,本文采用JQuery技术对XMLHTTPRequest进行实际处理,采用JQuery的原因是JQuery较好地解决了XMLHTTPRequest在不同浏览器中的处理方式兼容问题,且简化了处理过程,另外JQuery库体积较小,不会给浏览器带来过多的负担。
1.3 应用发送给用户的反馈信息
由个性化互动电视系统各部分之间的数据传输过程及所采用的通信协议及图1,本文的设计方案中电视终端可以通过应用服务器及TV extension向用户发送反馈信息,此部分仍然利用XMLHTTPRequest对象实现。具体实现方式为应用利用动态加载JavaScript脚本的方式调用服务器端的PHP脚本,该PHP脚本在收到与调用信息一起传来的反馈信息时,通过TCP socket将反馈信息进一步发送给TV extension。其中在动态加载JavaScript请求PHP脚本时采用了JSONP数据传输方式,JSONP本来是用于实现跨域数据交换[1]的一种技巧,而本文的研究内容中应用需要动态请求的数据与原应用数据属于同一服务器来源,但考虑到将来可能的扩展需求,本文直接采用JSONP方式进行数据交换,其中服务器端脚本可以进一步设置是否允许跨域请求。
本文中以动态加载脚本的方式调用服务器端脚本时的源目的地址实例如下:
其中sendTTSCmd.php为服务器端用于向TV extension发送反馈消息的脚本,且可以向应用返回一个简单的处理结果;speechText为应用发送给用户的反馈信息;handleTTSResponse为应用端用来处理返回的JSON数据的方法。
2 TV extension与网页服务器之间的信息交互
根据个性化互动电视系统各部分之间的数据传输过程及所采用的通信协议,TV extension与网页服务器之间的信息交互如图2所示,主要包括服务器通用TV extension向用户发送应用的反馈信息和TV extension向服务器发送用户数据。
图2 TV extension与网页服务器之间的信息交互
2.1 服务器向TV extension发送应用反馈信息
对于这一部分的信息交互实现,本文中采用的为基本的TCP stream socket。因为TV extension无法提前获知服务器何时会向自己发送反馈信息,而服务器只有在运行的应用调用其脚本时才向TV extension发送信息,因此实现过程中服务器端作为TCP client,TV extension作为TCP server实现信息的监听。
2.1.1 服务器端发送数据
具体地,服务器端使用PHP脚本实现的简单TCP socket发送功能实例如下:
其中192.168.0.2:27016为TV extension的IP地址及接收服务器数据的端口号,此处服务器将发送给TV extension的反馈信息(speechText)封装为JSON格式以便于TV extension端对各种收到的数据采用同一规则进行判断。
2.1.2 TV extension端接收数据
在Android设备上,TV extension的功能具体以Android独立应用(app)的形式存在,TV extension app里利用server socket对服务器(此时为TCP client)的数据进行监听。此部分的实现是在 UPnP TV-TTS的项目基础上完成的,UPnP TV-TTS项目中已经实现了中间设备(相当于本文中的TV extension)通过server socket对电视终端发送的数据的监听功能,本文主要的工作为重新定义TV extension收到服务器端数据以后的各种工作步骤,关于server socket与服务器端TCP client之间的通信连接建立过程,可以参见文献[2]。
在本文的实现中,TV extension的server socket在收到数据以后,首先将数据还原为JSON对象,判断其是否含有“ServerData”节点,如果有,则说明该数据来自服务器。接着,TV extension将进一步获取的数据的“ServerDataType”信息,如code example 4.2中的“UseTTS”,如果此时有用户存在,TV extension会将接收到的数据进一步推送给用户设备。
2.2 TV extension向服务器发送用户数据
实现方案中TV extension在收到或删除用户数据时会将新的用户数据或者默认用户设置数据发送给网页服务器,网页服务器收到这一请求后会将其中的用户数据以TV extension的名称保存下来。具体地通过HTTP GET的方式将用户数据作为请求的附加参数进行传送,实例如下:
其中,服务器端的getUserProfile.php可以获得请求参数TVid与profile,并将profile的具体内容保存为名称为TV1的文件。
使用HTTP[3]GET的原因为HTTP GET是网页服务器支持的基本协议类型,其他可用的协议如HTTP PUT,HTTP POST等,可能需要对服务器作进一步的配置,本文实际使用的HTTP协议均为HTTP GET协议。
3 TV extension与用户设备之间的信息交互
TV extension与用户设备之间的信息交互是本文的主要工作内容,具体工作为在UPnP AV框架及TTS(Text To Speech)功能基础[4]之上,完成用户的实时检测,用户数据从用户设备向TV extension方向的传输,TV extension收到用户数据后的处理过程,及应用反馈信息从TV extension向用户设备方向的反向传输。下面将首先对UPnP基本工作过程及UPnP-TTS项目进行简单介绍,并指出其用于本文工作中的不足之处。
3.1 UPnP基本工作过程
根据控制点与设备的连接与交互过程,UPnP网络的工作过程[5]分为六步即寻址、发现、描述、控制、事件及展示。本文的具体工作为在此基础上实现设备之间的双向通信及信息交换。
在现有的UPnP设备框架标准及UPnP AV框架标准中,控制点与设备连接之后,在控制点发送给设备一个信息之后,设备返回的信息内容及返回信息的时间是相对于发来的信息是固定的无法任意修改的,而本文需要实现在设备收到另一设备的信息之后,在一个不可预知的时间延迟之后返回一个自行设定的可变信息参数,为需要在UPnP协议的基础上进行扩展。具体地,本文利用UDN参数的唯一性与固定性,在一个设备(此处仅指物理设备)向另一个设备发送信息时同时将自己的UDN参数发送给该设备,这样该设备就可以判断出在众多的设备中信息是由哪一个设备发出的,且在需要时发送反馈信息给该特定设备。
3.2 UPnP TV-TTS项目基础
基于TCP/IP及UPnP协议实现的TTS功能框架[4]如图3所示。
图3 基于TCP/IP及UPnP协议实现的TTS功能框架
图3中的Philips电视内嵌了为TTS特殊定制的TCP/IP通信模块,当遥控器选中电视屏幕上的文本信息时电视上的TTS模块会将当前选中的文本信息通过TCP socket发送给control point,control point在收到该信息后会将有用的文本信息通过UP-nP连接发送给用户设备(图中的media renderer),用户设备在接收到该信息后会通过内嵌的TTS功能读出接收到的文本信息。
3.3 基于UPnP TV-TTS项目实现的TV extension与用户设备之间的双向通信
3.3.1 TV extension与用户设备之间的基本通信过程
图4 基于本文的个性化互动电视系统实现的TTS功能框架
在本文的工作过程中,TV extension相当于图3中的control point,用户设备相当于图3中的media renderer。与图3不同的是,本文使用的Philips TV没有内嵌TCP/IP TTS通信模块,且本文中设定的电视发送给用户的反馈信息来自运行在电视终端上的应用,因此实际上与TV extension进行通信的为网页服务器。另外图3中的用户设备(media renderer)与中间设备(control point)之间的通信是单向进行的,即用户设备只需要接收中间设备发送来的文本信息并读出。而本文中需要用户设备首先将自己的偏好设置数据通过中间设备(TV extension)传送给应用,为此需要实现中间设备与用户设备的双向数据推送。
相对于图3,以TTS功能为个性化案例,本文基于个性化互动电视系统实现的TTS功能框架如图4所示。
图5 TV extension与用户设备之间的基本通信过程
前述已经阐明了图4中电视终端、网页服务器及TV extension之间的信息交互,TV extension与用户设备之间的信息交互过程如图5所示,其中为方便描述,仍然保留TV extension与服务器之间的信息交互部分,其中假设UPnP设备搜索与描述部分的功能已经完成。用户设备需要向TV extension推送偏好设置数据,同时TV extension需要向用户推送TTS文本信息。由于 media renderer不具备向control point主动推送数据的功能,因此图3中中间设备仅具有 control point功能,用户设备仅具有media renderer功能的实现机制不能满足本文的工作需求。同时由于物理设备在具体实现UPnP功能时可以同时具有多种逻辑功能,因此本文的初步设想是使得TV extension与用户设备均具有control point与media renderer的功能,从而完成双向的数据推送。二者在作为media renderer时都通过Play-Text接口接收传送给自己的数据。
3.3.2 用户向TV extension发送数据的流程
用户设备作为control point向TV extension推送自己的偏好设置信息时的信息交互是TV extension作为media renderer在收到PlayText发来的用户数据信息之后触发PlayTextCB回调函数,PlayTextCB将进一步完成用户数据向应用服务器的推送。
3.3.3 TV extension向用户设备发送数据的流程及用户离开时的数据处理
用户设备作为 media renderer在收到 PlayText发来的TTS文本信息之后触发PlayTextCB回调函数,PlayTextCB将会调用Android设备内嵌的TTS功能读出收到的TTS文本信息。另外本文的TV extension端control point监听了设备离去事件,用户离开时会发送离开消息给TV extension,触发设备离开事件,此时TV extension会将一套应用默认设置数据发送给服务器并覆盖原来的用户数据。
3.3.4 TV extension与用户设备之间实现双向数据推送时存在的问题及本文提出的解决方案
在本文的个性化系统设计中,TV extension向用户设备发送数据的流程及用户离开时的数据传输过程总是在用户向TV extension发送数据之后,因为TV extension只有在已经有用户连接到网络并获得该用户的个人偏好设置数据之后,才有可能发送反馈信息给该设备。这里存在的一个问题是,当系统中有多个相同类型的设备存在时(本文仅考虑media renderer设备类型),TV extension将获得多个设备描述信息,而之前用户设备在使用Play Text发送信息时不会自动将自己的设备位置信息同时发送给TV extension,因此TV extension无从获知之前发送信息的是哪一个用户设备,同时由于TV extension没有获知发来信息的设备是哪一个,因此当检测到设备离开事件时,TV extension也无法确认当前离开的设备是之前发送信息的设备还是无关设备。
基于上述问题描述,本文基于设备device UDN (Unique Device Name)这一参数的唯一性与不变性提出了一种解决方案,具体方式为将用户的device UDN参数也包含在用户向TV extension发送的数据之中,详细描述如图6所示。
如图6用户设备在发送自己的偏好设置数据之前,将自己的device UDN参数也加入到该数据之中,这样TV extension在收到用户数据之后就可以从中获得用户的device UDN参数,并在之后发送反馈信息给用户时利用该device UDN作为PlayText的参数定位到用户设备。另外,当TV extension检测到设备离开事件时,也可以将离开设备的UDN与该当前用户的device UDN参数进行比较,从而判断出离开的设备是否为正在使用的用户设备,如果离开的设备是正在使用的用户设备,TV extension将会发送默认的应用设置参数给应用服务器覆盖之间的用户数据,并将之前存储的用户device UDN参数及用户数据删除。
图6 TV extension与用户设备之间进行双向数据推送的解决方案
4 结语
阐述了个性化互动电视系统框架中各单元即电视终端与服务器之间、TV extension与服务器之间及TV extension与用户设备之间信息交互的实际实现过程,在UPnP AV基础之上提出了一种多UPnP设备存在情况下在UPnP设备之间实现双向数据推送的解决方案,并描述了其实现方式。
[1] http://developer.yahoo.com/javascript/howto-proxy.html[EB/ OL].2010.
[2] 小胖’s Blog.简单的tcp socket编程及分析[EB/OL].http:// eshock.blogbus.com/logs/43398355.html,2009.
[3] Hypertext Transfer Protocol—HTTP/1.1,Internet RFC 2616[S]. http://www.w3.org/Protocols/rfc2616/rfc2616.html,2004.
[4] Yu Weiwei.Text-To-Speech Interface for TV[Z].Internship Report for Fontys University of Applied Sciences,2012.
[5] UPnPTMDevice Architecture v1.1[S].2008.
夏菽兰(1969- ),女,副教授,研究方向为电子技术与信息处理;
王吉林(1966- ),男,江苏盐城人,盐城工学院信息学院教师,副教授,主要研究方向为电子技术与信息处理。
Implementation of Information Interaction among the Units Based on Personalized Interactive Television System
XIA Shulan1*,WANG Jilin2
(1.School of Electrical Engineering,Yancheng Institute of Technology,Yancheng Jiangsu 224051,China; 2.School of Information Engineering,Yancheng Institute of Technology,Yancheng Jiangsu 224051,China)
The communication between assistance device and user device is based on UPnP AV architecture.The paper proposes a solution to realize the two-way data push between two UPnP devices when there are multiple devices existing via taking use of the uniqueness and stability of the deivce parameter UDN.
interactive television;information interaction;real-time personalization
10.3969/j.issn.1005-9490.2014.02.010
TN919.8;TN943
A
1005-9490(2014)02-0215-06
2013-06-07修改日期:2013-07-05
EEACC:6430J