专利名称:Iptv终端中的方法和装置的制作方法
技术领域:
本发明的实施例涉及IPTV (因特网协议电视)終端中的事件管理,并且具体地说,涉及在IPTV装置中可用的应用对事件的处理。
背景技术:
对IPTV提供商提供可扩展解决方案的需求在増大,其中,最終用户未被限定到有 限的特征集,而是能够结合传统TV服务下载和运行新应用。对于在IPTV解决方案中使用的万维网应用,主要现存技术是W3C小工具,它定义用于也称为小工具的万维网应用的封装和输送方法及登录小工具的机制。应用框架在客户端侧上运行,并且负责小工具的加载,管理和布局。W3C (万维网联盟)小工具规范未定义小工具执行的应用/小工具框架。相反,不同的细分市场已为适合其特定细分市场的小工具执行定义了其自己的应用管理器。在传统应用模型中,在显示栈的顶部的应用是焦点应用,并且接收来自用户的输入事件。这例如能够在基于Windows的PC上看到,应用(程序)在PC桌面的矩形区域向用户显示。在上面显示的应用是焦点应用,并且因此接收所有输入事件,例如,键和鼠标事件。在适用于IPTV的应用模型中,要求稍有不同。预期应用以类似的方式布局,但不希望最上面的应用始终接收所有输入事件。例如,考虑显示广播的TV频道,在TV上全屏显示的应用。在此应用的上面是在屏幕的小区域中显示的天气小工具。天气小工具在处于焦点中时对按向左/向右键做出反应,但即使它是在焦点中,基础广播应用也必须能够对按向上/向下键做出反应,这是因为它们用于频道转换,并且用户预期频道转换始终有效。
发明内容
因此,最好是实现适用于IPTV解决方案的事件截接,这暗示着允许焦点应用外的其它应用截接事件。为实现适用于IPTV解决方案的事件截接,本发明的实施例引入了允许焦点应用外的其它应用截接事件的概念。根据本发明的实施例,事件截接通过事件封包实现。应用框架可使用基于DOM的模型来构建框架中的所有应用。此基于DOM的模型使用基于DOM事件的模型以便处理在整个事件模型中的事件。由于IPTV解决方案中的例如按键事件等特定事件始终以可能不是焦点应用的特定应用为目标,因此,特定事件必须可由目标特定应用识别但仍可作为普通事件处理。为实现此操作,根据本发明的实施例,引入了事件封包。在以特定应用为目标的事件在应用模型中发生时,应用管理器在eventWrapper结构中封包事件,并且通过事件模型调度它。在它到达目标特定应用时,如进ー步解释的一祥,它被解封并且原事件调度在目标上。特定应用识别预期用于所述特定应用的事件,并且识别的事件因此应不象在现有技术中ー样继续到焦点应用。通过引入事件封包,DOM事件模型扩展到在多文档(S卩,多应用)情形中适用。这意味着来自DOM事件的所有惯例也在多应用环境中变得有用。这些惯例从特征角度而言(应用控制允许其子应用处理的事件类型的能力、多个应用共享事件的能力等)和从实现角度而言(象浏览器等已经包含对DOM事件的支持并且可在支持应用框架时再使用此支持的万维网技术用户代理器)对于应用环境均是十分有用的。本发明的实施例有关的目的因此是即使某个应用不是焦点应用,也使得事件能够由该应用处理。根据第一方面,这由配置用于ITF的万维网引擎中的方法实现,万维网引擎包括 与使能显示应用的API相关联的应用框架。在方法中,存储至少两个应用,其中,应用相对于彼此以分层树结构布置。接收以至少ー个应用为目标的事件,该应用也称为目标应用。方法还包括以至少ー个应用为目标的接收事件的调度的控制。这暗示着不是焦点应用的应用能够接收和处理事件。控制还包括调度接收事件到目标应用,并且为每个应用确定事件是否应由当前应用处理,并且如果它应被处理,则方法包括为当前应用处理事件,并且如果它不应被处理,则方法包括调度事件到分层树结构中的随后应用。根据ー个实施例,控制还包括在调度前将事件封包,并且事件随后在处理前被解封。根据本发明的一个实施例,通过查看事件并且检查事件在当前应用上是否适用,来执行为每个应用确定封包的事件是否应由当前应用处理。备选,确定由应用管理器执行。实施例的目的还根据第二方面由配置用于ITF的万维网引擎实现,万维网引擎包括与使能显示应用的API相关联的应用框架。应用框架包括用于存储至少两个应用的存储器,其中,应用相对于彼此以分层树结构布置。应用管理器包括用于接收以至少ー个应用为目标的事件的接收器和用于控制以至少ー个应用为目标的事件的调度的控制器。应用管理器还包括用于向目标应用调度接收事件的调度器,并且控制器还配置成为每个应用确定接收事件是否应由当前应用处理。根据本发明的ー实施例,控制器包括用于封包和解封接收事件的事件封包器。根据又ー实施例,控制器还配置成查看事件并且检查事件在当前应用上是否适用以确定事件是否应由当前应用处理。备选,应用管理器还配置成存储哪个应用是事件的目标应用的信息。此外,根据ー实施例,应用框架配置成使用基于文档对象模型DOM的模型来构建应用,并且ITF可以是机顶盒、移动终端或PC的任何之一。本发明的实施例有关的优点是它允许在应用之间的共存方面比在现有应用框架中可用内容方面有更大的灵活性。此灵活性在IPTV应用环境中是至关重要的。
图I示出根据本发明的实施例的应用模型和利益相关者优先级的示例。图2示出根据本发明的实施例的应用框架。
图3示出根据本发明的实施例在应用管理器中加载单个文件/文档时的应用模型。图4示出根据本发明的实施例在右侧的在应用管理器中加载多个应用时的应用模型和在左侧的应用模型的可视化。图5示出根据本发明的实施例在应用模型中的DOM俘获气泡阶段。图6示出显示广播的Tv频道的TV应用。图7示出根据本发明的实施例的事件封包。图8和9示出根据本发明的实施例的装置。图10是本发明的一实施例的流程图。
具体实施例方式下面将參照示出本发明的实施例的附图,更全面地描述本发明的实施例。然而,本发明的实施例可以许多不同的形式实施,并且不应视为限于本文所述的实施例;相反,这些实施例的提供使得此公开将是全面和完整的,并且将本发明的范围全面传达给本领域的技术人员。在图形中,类似的标号表示类似的単元。另外,本领域的技术人员将理解,本文下面所述的部件和功能可使用结合按照程序工作的微处理器或通用计算机起作用的软件和/或使用专用集成电路(ASIC)实现。也将理解,虽然当前实施例主要以方法和装置的形式描述,但实施例也可在计算机程序产品中及在包括计算机处理器和耦合到处理器的存储器的系统中实施,其中存储器编码有可执行本文公开功能的ー个或多个程序。本发明的实施例概括定义适用于W3C小工具和万维网应用的应用框架。此外,本发明的实施例设计为可轻松扩展以满足将来要求,并且也能够用于TV环境外的其它环境。OIPF (开放IPTV论坛)DAE (声明型应用环境)规范V. I. I规范包含应用管理器和对应应用模型的定义。OIPF中也有在进行的工作项以添加W3C小工具支持到DAE应用模型。本发明的实施例部分与DAE应用模型一致。然而,能够注意到ー个主要的差別
DAE中的应用管理器只显露应用的扁平列表。然而,在本发明的实施例中,应用布置在分层树模型中,并且树模型直接显露于应用。这暗示着实施例与每个用户代理器已经支持的DOM (文档对象模型)模型一致,并且它也使得基于DOM的事件模型可能用于功能强大并且与现有万维网标准兼容的应用。DOM是用于表示在HTML、XHTML和XML文档中的对象和与其交互的跨平台和语言无关的协定。DOM的方面(如其“元素”)可在使用的编程语言的语法内处理和操控。DOM的公共接ロ在其应用编程接ロ(API)中指定。术语和定义
应用编程接ロ(API)是由软件程序为使能与其它软件的交互而实现的接ロ,类似于用户接ロ促进人与计算机之间交互的方式。API由应用、库和操作系统实现,以确定程序员应该采用以使用其服务的词汇和调用协定。它可包括用于在API接ロ的消费者与实现者之间进行通信的例程、数据结构、对象类、协议的规范,其使得万维网应用能够得到平台上本机实现的功能性。万维网引擎是本机组件,万维网应用在其中执行。万维网浏览器是万维网引擎的典型示例。
应用框架是用于管理和显示万维网应用和小工具的整个客户端侧环境。因此,万维网应用一般被视为包括基于DOM的标记格式与浏览器支持语言的组合,一般为ー个SVG或HTML文档/文件与JavaScript代码。此外,在软件工程中,万维网应用是通过诸如因特网或内部网等网络经万维网浏览器访问的应用。术语万维网应用也可意味着在浏览器控制环境(例如,Java applet)中托管或以浏览器支持的语言(如JavaScript,与象HTML等浏览器渲染标记语言组合)编码并且依赖常见万维网浏览器使应用可执行的计算机软件应用。小工具在W3C小工具规范系列中定义。基本上,小工具能够视为带有可下载并在客户端侧本地存储的定义封装方案的万维网应用。小工具因此适用于在线和离线执行。在此描述的范围中,小工具定义扩展到指出小工具是万维网应用的专用化,即,它具有万维网应用的所有属性和W3C定义的小工具行为。然而,小工具能够在装置上安装(本地存储),不加载到应用框架中,而应用从远程位置直接加载到框架中(无本地存储应用的方式)。要注意的是,虽然小工具鉴于其属性适合在UA (用户代理器)中本地存储(安装),但没有必须安装小工具的要求。用户代理器例如可具有阻止其在本地存储小工具的存储限定,但仍可允许小工具执行。从这个意义上来说,小工具会表现得完全象万维网应用一祥, 但仍受小工具特定属性影响。在本说明书的上下文中,应用被视为是由应用管理器管理并依附于本说明书中定义的接口和机制的万维网应用或小工具。要注意的是,此说明书以此类方式编写,使得万维网应用(例如,基本HTML页面)或小工具能够充当应用而无需在万维网应用/小工具的标记或javascript代码中进行任何修改。因此,在本说明书通篇中,术语“应用”用于万维网应用和小工具两者。术语小エ具只在明确论述的是应用的小工具专用化时使用。应用管理器是控制应用的布局和管理的机制。应用管理器由平台提供商控制。用户代理器(UA)是也可在此说明书适用的范围内称为小工具用户代理器的实现。在IPTV段中的用户代理器经常称为ITF (IPTV終端功能);然而,在本说明书通篇中使用更普遍的术语UA。根据本发明的实施例,下面定义了不同的利益相关者,并且定义了用于利益相关者控制的模型。在图I中示出了用于利益相关者控制的模型。平台利益相关者是平台的提供商,一般是STB或TV设备的提供商。平台利益相关者有兴趣控制应用以便使应用布局与平台的本机用户体验(UX) —致。作为ー个示例,TV设备提供商X可希望在与TV的本机观感一致的菜单中显示可用小工具,而与在特定时间点可能运行的服务无关。服务利益相关者是服务的提供商,一般是提供TV服务到其订户的运营商。运营商有兴趣提供其自己的服务UX (用户体验),并且尽可能多地隐藏本机UX。这包括提供应用控制为服务UX的集成部分的能力。例如,TV服务提供商Y可希望在服务提供商的门户中集成的菜单中显示可用小工具。应用利益相关者是特定应用的提供商。应用利益相关者可有兴趣控制来自本身内的其它应用,例如以显示来自相同应用提供商的应用列表。定义的利益相关者以如下从高到低的顺序被优先处理平台利益相关者一服务利益相关者ー应用利益相关者。最高优先级決定,即,如果平台利益相关者已决定所有应用将通过平台控制的Π (用户接ロ)控制,则服务或应用利益相关者无法推翻此決定。控制利益相关者优先级的基本机制是通过应用管理器和它控制的应用模型。利益相关者控制应用管理器,并且应用管理器又控制来自应用的有关应用属性的修改和其它应用的添加/调用的所有请求。此处,平台利益相关者由于控制应用管理器,因此,它有机会限定其它利益相关者的能力。此外,应用模型具有树结构,并且根节点是平台控制的节点,其中平台利益相关者可添加逻辑以限定其它利益相关者的控制,例如通过停止某些事件遍历模型。类似地,在根节点下的节点一般由服务利益相关者控制,并且能够因此包含类似的逻辑以限定应用利益相关者控制。由应用管理器控制的应用模型可以是普通DOM树模型,模型中所有节点是应用。在此情况下,应用继承D0M3 (D0M第3级核)元素ElementTraversal的子集和使得遍历应用模型和添加以及从中删除应用的节点接ロ。树中的根节点是由应用管理器控制的隐藏系统节点。它能够从不被删除或修改, 并且所有应用添加为隐藏节点的子节点。根节点例如能够是内置本机小工具栏。或者,它能够只是非可视应用,停止某些事件在模型中向下传播以便阻塞所有小工具使用某个功能性,例如,关闭TV。就例如普通SVG文件等由UA显示的单个万维网应用而言,模型会如图3所示,该图示出在应用管理器中加载单个文件/文档时的应用模型。除根应用外,应用框架中的每个应用具有相关联文档对象。文档表示特定应用的D0M,并且与模型中的任何其它应用无关,S卩,应用具有在単独脚本上下文中运行的単独DOM。更大应用树的示例在图4中示出,该图示出在应用管理器中加载多个应用时的应用模型(在右側)。左侧图形示出可在屏幕上如何显示应用。子节点能够从其父节点继承属性。例如,如果删除父项,则删除子项,但能够为即将到来的版本考虑其它属性,例如,透明性。如果用户能够表明应用将是半透明的,则子应用也应是半透明的。根据本发明的实施例的应用管理器可使用基于D0M2事件模型的事件模型。DOM树中ー个且只有ー个节点是在特定时间点输入事件(键事件、鼠标事件……)的目标。这意味着诸如键输入等事件将转到目标应用,但在进行该操作之前,它将自顶向下通过目标节点的所有父项(祖先)到目标应用。这称为俘获阶段。根据本发明的实施例,每个经过的节点可俘获事件,即停止事件。一旦事件已到达目标应用,目标应用便能够俘获事件,即停止事件,或者让它再次向上经过相同节点,这称为气泡阶段。俘获和气泡阶段是DOM事件模型的一部分。与事件目标始终是当前焦点应用的现有技术解决方案不同,本发明的实施例引入了ー种模型,其中,目标应用能够是与作为当前焦点应用的应用无关的任何应用。然而,D0M2的俘获和气泡阶段均受本发明的实施例支持。根据D0M2事件模型,事件从根开始,并且在俘获阶段期间向目标应用遍历树。根据本发明的实施例,通过使用分层模型,如果每个经过的应用是目标应用,则应用可俘获事件,而与应用是否是焦点应用无关。在事件到达目标应用时,它由目标应用处理。如果目标应用不俘获事件,则事件再次向上遍历树直到根,这称为气泡阶段。每个通过的应用可停止(即俘获)事件进ー步起泡。
图5示出D0M2俘获/气泡阶段,其中,事件向称为事件目标的目标应用遍历。为使任何应用能够成为目标应用,而与哪个应用是焦点应用无关,组合了分层应用模型和事件封包器。应用管理器包括事件封包器,并且事件封包器配置成封包应向目标应用遍历的事件。封包的事件因此遍历通过应用树。每个应用配置成查看封包的事件以便检查当前应用是否应处理事件。如果当前应用确定它是目标应用,则应用管理器解封事件,并且当前应用接收解封的事件并将解封的事件作为普通事件处理。如果当前应用确定它不是目标应用,则应用管理器调度封包的事件到树中的随后应用。图2示出根据本发明的一实施例的应用框架203。应用框架203包括应用管理器200和存储以分层顺序布置的应用202的存储器204。此外,应用管理器200包括配置成接收事件的接收器205和配置成控制调度的控制器207。控制器207控制调度器206的调度,并且还包括事件封包器201。由于应用管理器控制应用202,因此,应用管理器200知道它是否应解封封包的事件,或者它是否应将封包的事件调度到随后应用。通过在应用的文档节点添加事件监听器以监听eventWrapper事件,作为目标应用的祖先的所有应用能够登记以监听事件。因此,为使任何万维网应用接收事件,它必须登记用于该事件的监听器。如果用户使用鼠标点击应用,但应用尚未登记鼠标事件监听器,则将不会发生任何情况。这同样适用于eventWrapper事件。eventWrapper事件是由事件封包器201执行的特殊事件,事件封包器201在实际事件通过应用树的路途中将实际事件封包。在eventWrapper事件到达目标应用时,即事件被解封时,将封包的事件调度在与目标应用相关联的文档上,正如会在单文档环境中一祥。解封的事件由文档以普通方式处理。在离开文档时,如果未被俘获,则它在eventWrapper事件中再次被封包并开始沿应用树向上冒泡。事件封包由以下示例例示
I.应用管理器200经接收器205通过系统接收事件(e)(例如,键“I”)。事件的目标是在框架203中的存储器204中存储的应用202之一。2.应用管理器200的事件封包器201创建eventWrapper事件(ew)并将事件封包。3.应用管理器200将封包的事件沿模型树向下朝目标应用传递。封包的事件由它经过的每个应用202查看以便检查封包的事件是否适用于当前应用。如果封包的事件适用于当前应用,则那会暗示当前应用是目标应用。4.在封包的事件到达目标应用时,应用管理器200将事件解封,并且在目标应用上调度解封的事件。5.如果事件未由目标应用俘获,则应用管理器将事件放回事件封包器中,并且将包含实际事件的封包事件沿模型向上起泡。这适用于在该应用不关心其它应用是否处理事件的情況。因此,如果该应用不关心其它应用是否使用事件,则它不应俘获它。
下面结合图6进ー步例示此行为。考虑显示广播的TV频道的TV应用601。天气小工具602在TV应用601的上面显示,并且天气小工具602具有焦点。在天气小工具具有焦点时,天气小工具监听用于在不同日期的广播之间导航的向左/向右按键。
即使天气小工具有焦点,TV应用想要允许用户通过正常向上/向下按键更改频道。由于应用根据本发明的实施例以分层模型布置,因此,除焦点应用外的其它应用能够处理事件。在此情况下,天气小工具由TV应用添加并且是TV应用的子项。因此,TV应用是天气小工具的父项,所有事件将在俘获阶段期间由TV应用沿路向下传递到天气小工具。相应地,TV应用将检查事件是否是按压向上或向下键。如果情况为真,则TV应用将处理事件,否则,应用管理器将进ー步调度事件到天气小工具。如上所解释的一祥,应用管理器将事件封包,并且通过分层树模型调度事件。封包的事件包括目标应用的信息。在封包事件经过的每个应用,当前应用查看封包的事件以确定事件是否应由当前应用处理。如果当前应用应处理事件,这暗示当前应用是目标应用,则应用管理器收到通知,并且将事件解封,使得应用能够将事件作为普通事件处理。在应用中,定义了应用应如何处理事件。这通过下面的代码示例例示
TV应用
** KI. I id。' ι.;'Λ I I *{; Γ..こ.q ...
ニ V deo -CAcica5 ;·-iγ-,re ;"て-:' rc:.,
ι-r: if;·'て vp --- HI^>:i.:. ] I.*.*/-i:. r i p*11 >
*-■ ! r' dppl-SiirしvxpIZt jec:Fdこ·Icry, creatieAppl ;cat:cvr\Υ. ι.\ zer:Ob::;ec■:();
do:Lr-rCz . acd£ve;it ListcriOi i ''eve; t Kidppeijef cap: ^ ^ t rue 3 ;
* ) of. C--^p\::j rerr: ev ;} '
//if the .ニへ'ニ'r.t I; ;t hey ρε:οοε: cp, down the Γ-ゾ Appi i cat icr
'i ] rvLrir.w -- ri';d t hri., rr op . r;^ r'.'er.V . I ^ ;.-
....t h e r eo r e r,そ1 x- r r e a c r t: h e. w e a て tie τ v;:. a g e t
if,r;: , yp^ 'こ”レ,·do.)·.!,丨
: .卜”·.!. ノnvrd., ht· y-1: y: = ニ >ΚΙΗ-''
モ t. = e て,e η t r -< e γ I ck- η II: i e 3. 二 =ャ.rゾ ;
—i i b* V L . η'; η η τ, t ':.\·;ι I ;
-iV t r ;: t O c I r opr^-;i,. : c-' {^ ;
I
.-;ぐ....t ' j·' *■ !-
.h f -τ I .:-
天气应用
权利要求
1.ー种在配置用于IPTV終端功能的万维网引擎中的方法,所述万维网引擎包括与使能显示应用的应用编程接ロ相关联的应用框架,所述方法包括 存储至少两个应用,其中所述应用相对于彼此以分层树结构布置, 接收以至少ー个应用为目标的事件,以及 控制以至少ー个应用为目标的所接收事件的调度,其中所述控制还包括调度所述接收事件到目标应用,为每个应用确定所述事件是否应由当前应用处理,并且如果它应被处理,则所述方法包括为所述当前应用处理所述事件,以及如果它不应被处理,则所述方法包括将所述事件调度到所述分层树结构中的随后应用。
2.根据权利要求I所述的方法,其中所述控制还包括在所述调度前封包所述事件,以及其中在所述处理前解封所述事件。
3.根据权利要求I所述的方法,其中通过查看所述事件并且检查所述事件在所述当前应用上是否适用,来执行为每个应用确定所述事件是否应由所述当前应用处理。
4.根据权利要求I所述的方法,其中为每个应用确定所述事件是否应由所述当前应用处理由所述应用管理器执行。
5.根据权利要求I所述的方法,其中所述应用框架配置成使用基于文档对象模型DOM的模型来构建所述应用。
6.根据权利要求I所述的方法,其中所述ITF是机顶盒、移动终端或PC任何之一。
7.ー种IPTV終端,在显示装置上实现使能显示万维网应用的应用框架,所述应用框架包括 存储器,存储以分层树结构组织的两个或更多个应用;以及 应用管理器,接收以所述分层树结构中的所述应用之一为目标的事件,所述应用管理器包括 控制器,确定所述分层树结构中的第一应用是否是所述目标应用,以及 调度器,如果所述第一应用不是所述目标应用,则调度所述事件到所述分层树结构中的第二应用。
8.如权利要求7所述的计算装置,其中所述应用管理器还包括用于封包和解封事件的事件封包器。
9.如权利要求7所述的计算装置,其中所述控制器存储指示用于所述事件的目标应用的信息。
10.如权利要求7所述的计算装置,其中所述应用框架使用基于文档对象模型(DOM)的模型来组织所述应用。
11.如权利要求7所述的计算装置,被包含在机顶盒、移动终端或个人计算机中。
全文摘要
本发明涉及一种方法和一种万维网引擎。根据本发明的第一方面,提供了配置用于诸如STB(机顶盒)等ITF(IPTV终端功能)的万维网引擎,万维网引擎包括与使能显示应用的API相关联的应用框架。应用框架包括用于存储至少两个应用的存储器,其中,应用相对于彼此以分层树结构布置。应用框架还包括应用管理器,包括用于接收例如按键等事件的接收单元和用于控制调度的控制器。控制器可包括用于封包和解封事件的事件封包器和用于将封包的事件通过应用树向下传送的调度器。对于每个应用节点(根节点也是同样),应用管理器配置成确定事件是否应由当前应用处理。
文档编号H04N21/472GK102870428SQ201180018230
公开日2013年1月9日 申请日期2011年2月2日 优先权日2010年4月9日
发明者O.安德森, N.方德贝格 申请人:瑞典爱立信有限公司