软件应用程序生存期和广播应用程序的管理的制作方法

文档序号:7587098阅读:178来源:国知局

专利名称::软件应用程序生存期和广播应用程序的管理的制作方法
背景技术
:本发明要求1998年10月13日递交的美国临时申请No.60/103,943的权益。本发明提供了用于在电视机顶盒终端中管理应用程序的软件结构。使用的缩写和术语如下API-应用程序编程接口ATSC-高级电视制式委员会DASE-ATSCT3/S17数字TV应用程序软件环境DAVIC-数字音频-视觉协会DTV-数字电视EPG-电子节目指南IRD-集成接收器解码器ISO-国际标准组织JVM-Java可视机PSIP-节目和制式信息协议(用于地面广播和有线)RAM-随机存储器;和UML-统一模型化语言。机顶盒终端,也被称为IRD或用户终端,是一种接收和解码电视信号,用于由电视呈现的设备。例如,该信号可以在卫星上、通过有线或通过地面广播来传送。经现代机顶盒的各种应用程序已经被提出,或者当前就可以使用,包括视频点播(VOD),音频点播,单次付费收看,交互购物,电子商务,电子节目指南,互联网浏览器,邮件服务(例如,文本电子邮件、声音邮件、音频邮件和/或视频邮件),电话服务,股票行情,天气数据,旅游信息,游戏,赌博,银行,购物,选举,和其他。应用程序也可以实现互联网连接和可能基于互联网的电话。机顶盒的功能是通过专用的硬件和软件来实现的。另外,随着诸如互联网、电话网和宽带分布网的计算机网络的逐渐整合,带来许多提供新类型应用程序的机会。这些应用程序可以经网络被传送到机顶盒终端,被本地装载(例如,经智能卡),或例如在制造时被安装。特别地,DASE应用程序管理系统服务要求提出了许多要求,用于管理在机顶盒终端的应用程序。这是来自ATSCT3/S17草案规范的一部分,其描述了应用程序管理相关的要求(部分13)。相应地,希望提供机顶盒软件,用于管理机顶盒终端的应用程序。该软件应该提供—API,用于检索和注册新的应用程序和为每个应用程序提供一标识符。新的应用程序在终端被接收,例如自头端的下载。API应该独立于终端的操作系统和硬件。希望提供一种基于ITU-TX.731的机制,用于应用程序监视和控制。该机制应该控制应用程序的开始、停止、暂停和恢复。该机制应该能够使一应用程序告知其他应用程序其状态,允许其他应用程序访问所告知的状态。该机制应该允许应用程序和资源版本信息的检索。该机制应该允许对应用程序位置信息的访问。该机制应该提供应用程序完整的确认和在机顶盒终端使用的应用程序的适用性的验证。该机制应该在新的应用程序注册后通知用户其存在。该机制应该提供应用程序的管理锁定和解除锁定。该机制应该告知应用程序的操作状态、警告状况和可用性状况。该软件结构应该和Java(tm),AcitveX(tm)或类似类型的基于部件的面向对象技术相兼容。该机制应该适用于终端的任何应用程序,而与它是如何接收或安装的无关。发明提供了一种系统,具有以上和其他的优点。发明概述本发明提供了用于在机顶盒电视终端中管理应用程序的软件结构。一种电视机顶盒终端,包括计算机可读介质,该介质具有计算机程序代码工具;和用于执行所述计算机程序代码工具,以实现一应用程序编程接口(API)的装置。利用该API,定义应用程序的应用程序数据,根据与这些应用程序相关的定位器在所述终端被恢复。例如,所述定位器可以是PID,频道号,频道名,运输流ID,服务ID,它们的结合或其他。定位器可以是统一资源定位器(URL)的形式的。在所述终端,这些应用程序被注册和安装,在其注册和安装后,用户被通知这些应用程序的存在。因此,当应用程序在终端本地可用,且准备被引用/开始时,通知用户。应用程序可以使用一资源(通常是一设备)、在接收器上(例如,调谐器、调制解调器,数据库等)的功能或过程。所述API使得能够检索作为可下载软件应用程序或者广播软件应用程序的这些应用程序。所述API可以与所述终端的操作系统和硬件无关。所述API可以提供一基于ITU-TX.731的机制,用于监视和控制这些应用程序。所述API可以使得这些应用程序能够运行和随后停止。所述API可以使得这些应用程序一旦运行能够暂停,并使这些应用程序随后能够恢复运行。所述API可以使得这些应用程序中特定的一些能够告知其他应用程序它们各自的状态。所述API可以使得这些其他应用程序中至少一个能够访问这些特定应用程序中至少一个的所告知状态。一应用程序状态可以有几个不同的值(“允许”、“禁止”等)。访问一状态,意味着具有知悉当前状态值的能力。所述API可以使得能够检索与这些应用程序相关的版本信息。所述API可以使得能够确认这些应用程序的完整性。完整性在这里可以意味着,根据用于编码该应用程序的编程语言规范(例如,Java编程语言等),由该接收器接收的代码是合法和有效的。所述API可以使得能够证实这些应用程序对所述终端的适合性。所述API可以使得能够进行这些应用程序的管理的锁定和解除锁定。所述API可以使得这些应用程序中特定的一些能够告知其他一些这些应用程序其各自的警告状况、可用性状况、过程状况、操作状态、管理的状态和使用状态。同时提出了相应的方法。附图简述图1示出根据本发明的程序包的关系和依赖性。图2表示根据本发明的与应用程序相关的类和接口及它们的关系。图3描述了根据本发明的与状态管理相关的那些类和接口。图4描述了根据本发明的实用类和接口之间的关系。图5是根据本发明的一交互/序列图,示出—EPG应用程序如何能引用一下载和所下载的应用程序的后续执行。该EPG应用程序用其上的可用应用程序来显示视频或数据频道。图6示出根据本发明的一组交互/序列,说明一应用程序如何可被一应用程序管理器管理和被一代理(agent)监视。发明详述本发明提供了用于在机顶盒电视终端中管理应用程序的软件结构。1.概况本发明详细说明了一种API,其满足了DASE应用程序管理系统服务的要求。要注意的是,本公开的一些部分是由美国RationalSoftwareCorporation所研发的RationalRose(tm)CASE工具自动生成的。未示出例外和与各个方法相关的前后状态。例外将以Javadoc格式示出。附图使用UML的RationalRose(tm)表述。图1-4是类图,图5和图6是序列(或交互)图。类图表示系统的静态结构,示出系统展示的行为的模式。这是通过示出类的存在和它们的关系来完成的。每个类由带三个部分的框表示。顶部分列出类的名字,中间部分表示属性列表,而底部分表示操作列表。在类之间的实线或虚线表示相关或依赖性。白菱块表示按参考聚合,而黑菱块表示按值聚合。三角尖头表示有限制的导航,例如,操作的继承而不是结构的继承。类是定义一个对象的数据结构、方法和函数调用的模板。接口定义了可以由类操作的一组方法/函数调用。类提供了用于实现接口的代码。2.要求所提出的API考虑了以下的要求1.API将提供一种机制,以检索可下载或广播的应用程序。这是通过一注册机制来达到的,该机制可以指明要下载和使其可用的应用程序的URL(从PSIPAPI或其基于T3/S13和S16协议(work)的扩展来获得)。ATSCT3/S13和T3/S16规范定义了一些协议,这些协议用于将应用程序传送到接收器、信令它们在运送流中的存在和提供关于该应用程序的信息。在实现例中,URL被用作应用程序的标识符,但也可以使用其他标识符。2.API将提供一种机制,以安装和卸装一应用程序。注册机制安装该应用程序以便它能够被引用/开始。3.API将提供一种机制,以初始化(启动)、开始和停止一应用程序。该应用程序接口提供了执行这些动作的方法。4.API将提供一种机制,以暂停和恢复一应用程序。该应用程序接口提供了执行这些动作的方法。5.API将提供一种机制,以使应用程序保持一访问状态。每个完成“0bjectStates(对象状态)”(ObjectStates)接口的应用程序都可以以一种定义为ITU-T的标准方法来管理。ITU-TX.731是一种国际标准,其定义了可管理对象(设备、资源、应用程序等)的管理状态,状态代码和状态转换。API将提供一种机制,以检索应用程序的版本信息及其资源,包括所需要的API。“ApplicationInformation(应用程序信息)”(ApplicationInformation)接口允许以上信息的检索。6.API将提供一种机制,以访问应用程序位置信息。应用程序位置信息可以在DAVIC定位器类中以URL格式表示(由ATSC标准化)。定位器是一模糊对象,其封闭了一特定资源(在该情况中是一应用程序)的URI(通用资源标识符,UniversalResourceIdentifier)。7.API将提供一种机制,以确认应用程序的完整性和证实其正确性。例如这可能意味着其不包含病毒或不会对接收器造成任何损害。JVM验证器(verifier)满足了该要求,因此,不必要定义专门的API来完成它。8.API将提供一种注册机制,允许应用程序通知用户其存在。这是与PSIP和S13API一道完成的,其提供了关于特定应用程序的信息。通过用“应用程序注册处(AppliationRegistry)”注册它,该信息可以被用于下载应用程序。一旦注册,用户就可以使用它。3.描述该建议包含两个主要程序包org.atsc.application和org.atsc.management,以及一个助手程序包org.atsc.utility。第一个程序包包括针对应用程序的类和接口。其他的程序包表示一些类和接口,它们与基于ITU-T管理标准的管理应用程序状态有关。后者被分成为其自己的程序包,是因为其可以被应用到任何可管理对象,诸如DTV接收器资源,或可下载的应用程序。应用程序可以自由支持一子组的状态和状况属性,这些状态和状况属性被定义为对特定应用程序是合适的。DASE可以命令这些子组,以便为应用程序之间相对于管理的更好的协同工作能力提供所需。一些应用程序可能很简单,由X.731标准定义的一些状态和状况可能不适用。ATSC可以定义被所有应用程序支持的最少的一组状态和状况代码。一些更复杂的应用程序可以支持更多。例如,一些应用程序可能不支持“降级”可用性状况(“degraded”AvailabilityStatus),即它们或者工作,或者待用,而没有中间的状况。4.对象模型图1示出根据本发明的程序包的关系和依赖性,org.atsc.application程序包105使用在org.atsc.management程序包110、org.atsc.utility程序包115和org.davic.net程序包120中定义的类和接口。这些程序包逻辑上相关,由表示依赖性的虚线箭头示出。图2表示根据本发明的与应用程序相关的类和接口及它们的关系。接口被标上《interface》,而那些没有这样标的是类。这些类包括“RegistryFactory(注册处工厂)”215,“Exception(例外)”220,“ApplicationAvailabilityException(应用程序可用性例外)225,“ApplicationAlreadyRegisteredException(应用程序已注册例外)”230,“ApplicationNotRegisteredException(应用程序未注册例外)”235,“ApplicationRegistryEvent(应用程序注册处事件)”245,和“EventObject(事件对象)”250。接口包括“ApplicationRegistry(应用程序注册处)”205,“Registry(注册处)”210,“ApplicationCause(应用程序原因)”240,“ApplicationRegistryListener(应用程序注册处收听者)”255,“StateChangeListener(状态改变收听者)”260,“ObjectStates(对象状态)”265,“Application(应用程序)”270,和“ApplicationInformation(应用程序信息)”275。图3描述了根据本发明的与状态管理相关的那些类和接口。相同号码的元素在各图中是彼此对应的。类和接口包括AdminstrativesState(管理状态)305,OperationalState(操作状态)310,UsageState(使用状态)315,ObjectStates(对象状态)320,AlarmStatus(警告状况)325,AvailabilityStatus(可用性状况)330,过程状况ProceduralStatus)335,ResourceStateException(资源状态例外)340,资源指示符(SourceIndicator)345,和StateChangeEvent(状态改变事件)350。图4描述了根据本发明的实用类和接口之间的关系。类和接口包括RegistryType(注册处类型)405。5.交互图下面的部分将描述在与应用程序相关的类之间的交互的例子,以及示出其它对象可以怎样使用应用程序管理API。由于一应用程序是自对象建成的,由其它对象访问的API意味着,该API由其它应用程序的部分(对象)来访问,或者由在终端存在的代码来访问。5.1应用程序注册图5是根据本发明的一交互/序列图,示出一EPG应用程序可以如何引用一下载和所下载的应用程序的后续执行,该EPG应用程序用其上的用户可用的应用程序来显示视频或数据频道。该图是使用RationalRose(tm)软件生成的。提供了许多示例对象,包括“user(用户)”505,“EPGApplication(EPG应用程序)”270’(图2的应用程序接口270的一例),“PSIPDatabase(PSIP数据库)”515,“dataChannel(数据频道)”520,“factoryRegistryFactory(工厂注册处工厂)”215,“registryApplicationRegistry(注册处应用程序注册处)”205,“downloader(下载器)”525,和“appApplication(app应用程序)”270(图2的应用程序接口270的一例)。EPG检索包括URL(定位器)的应用程序信息,通过“RegistryFactory(注册处工厂)”访问“ApplicationRegistry(应用程序注册处)”,请求新应用程序的注册。当应用程序用“ApplicationRegistry(应用程序注册处)”注册时,应用程序定位器(URL)被用于下载该应用程序。当其可用时,“ApplicationRegistry(应用程序注册处)”启动(例如,送出/发射)一事件给所有听众以表明新的应用程序被注册和可用。EPG应用程序收听这些事件,并通知用户新应用程序的可用性。一旦该应用程序被下载和安装,用户可以通过该“ApplicationRegistry(应用程序注册处)”请求其执行。实际上该“ApplicationRegistry(应用程序注册处)”启动该应用程序。上面的序列可以经下面的示例步骤1-13来完成1.“EPGApplication”对象270”从“PSIPDatabase”对象515调用“getVirtualChannels”方法;2.“EPGApplication”对象270”从“dataChannel”对象520调用“getDataApps”方法;3.“EPGApplication”对象270’从“user”对象505调用“displayApps”方法;4.“user”对象505从“EPGApplication”对象270’调用“selectApps”方法;5.“EPGApplication”对象270’从“factoryRegistryFactory”对象215调用“getRegistry(String)”方法;6.“EPGApplication”对象270’从“registryApplicationRegistry”对象205调用“registerApplication(Locator)”方法;7.“registryApplicationRegistry”对象205从“downloader”对象525调用“download”方法;8.“registryApplicationRegistry”对象205从“EPGApplication”对象270’调用“registryChange(ApplicationRegistryEvent)”方法;9.“EPGApplication”对象270’从“registryApplicationRegistry”对象205调用“getApplicationInformation(Locator)”方法;10.“EPGApplication”对象270’从“user”对象505调用“displayAppinfo”方法;11.“user”对象505从“EPGApplication”对象270’调用“invokeApp”方法;12.“user”对象505从“registryApplicationRegistry”对象205调用“StartApplication(Locator)”方法;13.“registryApplicationRegistry”对象205从“appApplication”对象270”调用“start()”方法。5.2管理应用程序状态图6示出根据本发明的一组交互/序列,说明一应用程序可以如何被以应用程序管理器管理和被一代理(agent)监视。提供了许多示例对象,包括“applapplication”270”,“appManagerStateChange(app管理者状态改变)”260’,“eventStateChangeEvent(事件状态改变事件)”350’,和“agentStateChangeListener(代理状态改变收听者)”260”(或270”)。代理作为一”StateChangeListener(状态改变收听者)”注册到特定应用程序。该应用程序基于内部和外部原因改变其内部状态。在该例子中,该应用程序被延缓,这改变其“OperationalState(操作状态)”为DISABLED(禁止)。该应用程序生成一“StateChangeEvent(状态改变事件)”,将其送到所有注册的收听者,在该情况下,是代理。该代理可以确定改变的状态和通过盘问事件,例如通过调用在“StateChangeEvent(状态改变事件)”对象上可用的方法,例如getOldValue()、getnewValue()等来确定其旧值和新值。上面的序列可以经下面的示例步骤1-11来完成1.“appManagerStateChange”对象260’从“applapplication”对象270”调用“start()”方法;2.“agentStateChangeListener”对象260’’从“applapplication”对象270”调用“addStateChangeListener”方法;3.“appManagerStateChange”对象260’从“applapplication”对象270”调用“suspend()”方法;4.“applapplication”对象270”从“eventStateChangeEvent”对象350’调用“StateChangeEvent”方法;5.“applapplication”对象270”从“agentStateChangeListener”对象260’’调用“StateChange(StateChangeEvent)”方法;6.“agentStateChangeListener”对象260’’从“eventStateChangeEvent”对象350’调用“getState()”方法;7.“agentStateChangeListener”对象260’’从“eventStateChangeEvent”对象350’调用“getOldValue()”方法;8.“agentStateChangeListener”对象260’’从“eventStateChangeEvent”对象350’调用“getNewValue()”方法;9.“appManagerStateChange”对象260’从“applapplication”对象270”调用“resume()”方法;10.“applapplication”对象270”从“eventStateChangeEvent”对象350’调用“StateChangeEvent”方法;和11.“applapplication”对象270”从“agentStateChangeListener”对象260”调用“StateChange(StateChangeEvent)”方法。6.类和接口描述尽可能多的API被定义为接口而不是类。这为API的实现提供了更多的自由和更少的限制。由于JAVA接口没有构造器或静态方法,一些诸如“ApplicationRegistry(应用程序注册处)”的接口有一个相关的“RegistryFactory(注册处工厂)”类,其返回“ApplicationRegistry(应用程序注册处)”接口的适当实现。“RegistryFactory(注册处工厂)”类可以基于“工厂”(Factory)方法模式,由面向对象编程领域可知,其是解决问题的方法论和结构。部分6.1描述了与应用程序相关的程序包。6.1org.atsc.application该程序包包括与应用程序生命周期、注册和管理相关的类和接口。6.1.1“Application(应用程序)”该类表示所有可下载应用程序的基类。它以ApplicationInfo类的形式提供了基本应用程序生命周期支持和关于应用程序的附加描述信息。该类实现GenericStates接口,以便将管理能力加到可下载的应用程序。该接口提供了统一的机制,以便以标准的方式管理任何对象。一应用程序可以支持适合于该特定应用程序的一子组的状态。该类从“0bjectStates(对象状态)”导出。公共操作start()由控制过程调用以启动一应用程序的执行。该应用程序可以获得任何需要的资源,执行其初始化和开始执行。如果该应用程序支持“AdminstrativesState(管理状态)”(AdministrativeState),当它处于“锁定状态”(LockedState)时,它将表现出例外。公共操作由于在对象(例如类)之外是可见的,所以是可以由其它对象调用和使用的那些方法。相对而言,专用操作仅对类本身是可见的。stop()由控制过程调用以停止该应用程序的执行。该应用程序应该释放所有资源并终止。suspend()由控制过程调用以暂时暂停该应用程序的执行。该应用程序如果不是使用不同的机制而被要求放弃其资源的话,不需要放弃其资源。如果该应用程序支持”“OperationalState(操作状态)”,则在完成该方法后,它将改变状态为“Disabled(禁止)”。resume()由控制过程调用以恢复前面被延缓的应用程序的执行。如果该应用程序支持“OperationalStates(操作状态)”,则在完成该方法后,它将改变状态为“Enabled(允许)”。getApplicationID()Locator被调用以确定由诸如URL的定位器表示的应用程序标识。6.1.2“ApplicationInformation(应用程序信息)”该类提供了关于应用程序的附加信息,诸如名字、版本号、作者等。公共操作getTitle()String返回应用程序的简短描述,诸如其名字或题目。getVendor()String返回应用程序售方或作者的名字。getVersion()String返回该实现的版本。它包括由该实现的售方指定的一字符串。版本号使用“DeweyDecimal”语法,包括由句点“.”分开的正的十进制整数,例如,“2.0”或“1.2.3.4.5.6.7”。这允许一可扩展的数字被用于表示主、次、微等版本。该版本号必须以数字开始。getRequiredProfile()String返回最小概述标识符,诸如DASE概述ID,其是该应用程序运行所期望的。getSource()Locator以URL格式返回该应用程序的最初来源。该来源是该应用程序从何而来的地方(例如,39频道,HBO,CNBC等)。6.1.3“ApplicationRegistry(应用程序注册处)”该接口提供一到ApplicationRegistry(应用程序注册处)的有限访问。它允许其它应用程序得到关于现在的应用程序的信息,以便示出对特定应用程序的兴趣(注册它)和访问应用程序本身。该接口从“Registry(注册处)”导出。公共操作registerApplication(applicationIDLocator)被调用以便从注册处加入该应用程序。该应用程序经其定位器(URL)指定。注册处负责定位该应用程序,下载它和通知调用者其可用性。这是一非阻塞(blocking)的方法;它将在核查该请求后立即返回。ApplicationAvailableEvent(应用程序可用事件)将被送到所有“ApplicationRegistryListener(应用程序注册处收听者)”,带着一注册该应用程序的结果的标志。deregisterApplication(applicationIDLocator)被调用以从注册处除去该应用程序。getApplicationInfromation(applicationIDLocator)ApplicationInfromation被调用以获得该应用程序的描述。该应用程序由定位器(URL)标识。getApplication(applicationIDLocator)Application被调用以访问特定的装载和安装的应用程序。该方法经安全机制保护以防止对应用程序的未授权的访问。getApplications()Application[]该方法允许所有注册的应用程序的检索。该方法经安全机制保护以防止对应用程序的未授权的访问。startApplication(applicationIDLocator)被调用以引用先前注册的应用程序。一旦所请求的应用程序在其自己的线程空间(threadspace)开始执行,该方法调用返回。该方法经安全机制保护以防止对应用程序的未授权的访问。addApplicationRegistryListener(listenerApplicationRegistryListener)被调用以注册由“ApplicationRegistry(应用程序注册处)”产生的事件。removeApplicationRegistryListener(listenerApplicationRegistryListener)被调用以解除注册由“ApplicationRegistry(应用程序注册处)”产生的事件。6.1.4“ApplicationRegistryListener(应用程序注册处收听者)”(ApplicationRegistryListener)该接口允许一对象收听对”ApplicationRegistry(应用程序注册处)”进行的改变。公共操作registryChange()ApplicationRegistryEvent当”ApplicationRegistryEvent(应用程序注册处事件)”被启动时,所有注册的”ApplicationRegistryListener(应用程序注册处收听者)”的该方法由”ApplicationRegistry(应用程序注册处)”对象调用。6.1.5“ApplicationRegistryEvent(应用程序注册处事件)”从EventObject导出。公共操作getApplicationInformation()ApplicationInformation被调用以确定哪个应用程序引起该事件。getCause()short被调用以确定什么引起该事件。6.1.6“ApplicationAvailablityException(应用程序可用性例外)”当所请求的应用程序可用性条件被违反时,该例外被表现出。它是从“Exception(例外)”导出的。6.1.7“ApplicationNotRegisteredException(应用程序未注册例外)”从“应用程序可用性例外”导出。6.1.8“ApplicationAlreadyRegisteredException(应用程序已注册例外)”从“ApplicationAvailablityException(应用程序可用性例外)”导出。6.1.9“ApplicationCause(应用程序原因)”公共属性REGISTEREDshort=1应用程序在注册处被注册。“short”是一整数格式(2字节对4字节)DEREGISTEREDshort=2应用程序被从注册处解除注册。STARTEDshort=3应用程序被开始。6.2org.atsc.management该程序包包括了与对象管理相关的类和接口。它可以完整地被应用,或者作为与特定的被管理单位相关的一子组而应用。它可用于管理应用程序以及DTV接收器资源的状态和状况属性。它是基于“StateManagement(状态管理)”的ITU-TX.731标准。6.2.1“AdministrativeState(管理的状态)”一接口定义了不同的“AdministrativeState(管理的状态)”的掩码(Mask)-Locked(锁定)该资源在管理上被禁止执行其用户的服务。这可能与本地关闭(lockout)有关,比如某些频道或应用程序的父关闭(parentallockout),但也可能被用于远程(从前端,上联(uplink)或有线接线器)“锁定”该应用程序以使用户不能打开它,例如如果检测到应用程序有问题。-Unlocked(解除锁定)该资源在管理上被允许执行对用户的服务。这独立于其本来的操作性。-Shuttingdown(关闭)资源的使用在管理上仅对现在的用户是允许的。管理者可以在任何时刻使对象转到“解除锁定”状态。公共属性UNLOCKEDint=0x00000001LOCKEDint=0x00000002SHUTTING_DOWNint=0x00000004ADMIN_TYPEshort=1公共操作getAdministrativeState()int被调用以得到“AdministrativeState(管理的状态)”的当前值。setLock(administrativestateint)被调用以改变“AdministrativeState(管理的状态)”的当前值。6.2.2“OperationalState(操作状态)”一接口定义资源和应用程序的“OperationalState(操作状态)”-Disabled(禁止)该资源完全不可操作,不能给用户提供服务。-Enabled(允许)该资源部分可操作,对用户可用。公共属性DISABLEDint=0x8ENABLEDint=0x10OPERATIONAL_TYPEshort=2公共操作getOperationalState()int被调用以得到“OperationalState(操作状态)”的当前值。6.2.3“AlarmStatus(警告状况)”定义所有警告状态的接口。当该属性的值是空时,这意味着下面描述的状况条件都没有存在-underrepair(修补中)资源当前正在被修补。当值“修补中”出现时,操作状态是禁止或允许。-critical(临界)在资源中已经检测到一个或多个表明故障的临界警告,且还没有被清除。管理的对象的操作状态可以是禁止或允许。-major(主要)在资源中已经检测到一个或多个表明故障的主要临界警告,且还没有被清除。管理的对象的操作状态可以是禁止或允许。-minor(次要)在资源中已经检测到一个或多个表明故障的次要临界警告,且还没有被清除。管理的对象的操作状态可以是禁止或允许。-alarmoutstanding(警告显著)在资源中已经检测到一个或多个警告。条件可以是或不是禁止的。如果操作状态是允许,针对所管理的对象类的附加属性可以指示所影响的服务和条件的特性和原因。以上警告状态条件的出现不抑制以后与故障相关的通知的产生。UNDER_REPAIRint=0x00000001CRITICALint=0x00000002MAJORint=0x00000004MINORint=0x00000008ALARM_OUTSTANDINGint=0x0010ALARM_TYPEshort=8公共操作clearAlarm(alarmint)被调用以清除特定警告。该控制过程已经对该警告起作用。getAlarmStatus()int被调用以得到“AlarmStatus(警告状况)”的当前组值。6.2.4“AvailabilityStatus(可用性状况)”定义可用性状况。当该属性的值是空时,这意味着下面描述的状况条件都没有出现-intest(测试中)该资源正在进行一测试过程。如果管理状态是“锁定”或“关闭”,则正常的用户被阻止使用该资源,控制状况属性具有为测试保留的值。不排除附加用户的测试可以出现在任何操作的或管理的状态中,但是为测试条件保留的不应该出现。-failed(失败)该资源有一内部故障,使它不能运行。操作状态是禁止。-poweroff(断电)该资源需要施加电源,且未通电。例如,一保险或其它保护设备已经除去电源,或者已经检测到低电压条件。操作状态是禁止。-offline(离线)该资源需要被执行一程序操作以使它上线,并使它可用。该操作可以是手动或自动,或两者。操作状态是禁止。-offduty(不当班)根据预定时间进度,该资源已经由内部控制过程变为待用。在正常情况下,该控制过程可以在某预定的时刻重新激活该资源,因此它被认为是可选择的。操作状态是允许或禁止。-dependency(依赖性)该资源不能操作,因为其依赖的一些其它资源(例如,不由同一被管理对象表示的资源)不可用。例如,一设备因为其控制器断电而不可访问。操作状态是禁止。-degraded(降级)从该资源可用的服务在一些方面被降级,诸如速度或操作能力。测试的失败或一不可接受的性能测试已经表明,一些或全部的服务由于故障的出现而功能不好,或被降级。然而,该资源对服务仍可用,因为或者一些服务是令人满意的,或者降级的服务也比什么服务都没有要好。针对对象的属性可以被定义为表示进一步的信息,例如,表明哪个服务功能不好或降级的特性。操作状态是允许。-notinstalled(未安装)由所管理的对象表示的资源没出现,或不完全。例如,一插入模块丢失,一线缆断开或一软件模块未装载。操作状态是禁止。-logfull(记录满)这表明一记录满条件,其语义CCITTRec.X.735|ISO/IEC10164-6中被定义。公共属性INTESTint=0x00000400FALLEDint=0x00000800POWEROFFint=0x000010000FFLINEint=0x00002000OFFDUTYint=0x00004000DEPENDENCYint=0x00008000DEGRADEDint=0x00010000NOT_INSTALLEDint=0x00020000L0G_FULLint=0x00040000AVAILABILITY_TYPEshort=32公共操作getAvailabilityStatus()int被调用以得到“AvailabilityStatus(可用性状况)”的当前组值。6.2.5“ProceduralStauts(过程的状况)”一定义过程的状况的接口。过程状态属性仅由那些所管理的对象的表示一些过程(例如,测试过程)的类所支持,这些过程包括一序列的阶段。根据所管理的对象类的定义,过程可以被要求到达某个阶段,以使资源可为用户所操作或为用户所用(即,使所管理的对象为允许)。并非所有的阶段都可以用于所管理的对象的每个类。如果该属性的值是空,则所管理的对象已就绪,例如,初始化已完成。当该属性的值是空时,这意味着下面描述的状况条件都没有出现-initializationrequired(需要初始化)该资源需要由管理者引用初始化,然后它才能执行其正常的功能,而该过程还没有被启动。管理者可能能够通过一动作引用该初始化。正在终止条件也可能出现。操作状态是禁止。-notinitialized(未初始化)该资源需要在其能够执行其正常的功能前被初始化,而该过程还没有被启动。该资源本身自动地初始化,但操作状态可以是禁止或允许,依所管理的对象类的定义而定。-initializing(正在初始化)该资源需要在其能够执行其正常的功能前被初始化,而该过程已经被启动但还未完成。当该条件出现时,需要初始化条件不出现,由于初始化已经开始。操作状态可以是禁止或允许,依所管理的对象类的定义而定。-reporting(正在报告)该资源已经完成一些处理操作,且正在通知该操作的结果,例如,一测试过程正在送出其结果。操作状态是允许。-terminating(正在终止)该资源处在终止阶段。如果该资源不重新自动初始化其自身,需要初始化条件也出现,操作状态是禁止。否则,操作状态可以是禁止或允许,依所管理的对象类的定义而定。公共属性INIT_REQUIREDint=0x00000020NOT_INITIALIZEDint=0x00000040INITIALIZINGint=0x00000080REPORTINGint=0x00000100TERMINATINGint=0x00000200PROCEDURAL_TYPEshort=16公共操作getProceduralStatus()int被调用以得到“ProceduralStauts(过程的状况)”的当前组值。6.2.6“UsageState(使用状态)”该接口定义了使用状态的掩码。-Idle(空闲)该资源当前不在使用中。-Active(工作中)该资源正在使用中,但有富余的操作能力以在此刻提供给额外的用户。-Busy(忙)该资源正在使用中,但没有富余的操作能力以在此刻提供给额外的用户。公共属性IDLEint=0x00000020ACTIVEint=0x00000040BUSYint=0x00000080USAGE_TYPEshort=4公共操作getUsageState()int被调用以得到“UsageState(使用状态)”的当前组值。6.2.7“ObjectStates(对象状态)”该接口允许要以标准方式被管理的对象实现统一的接口,该接口支持所有的状态和状况值,或是适合的一子组的状态和状况值。所定义的状态和状况属性由“状态管理”(StateManagement)的ITU-T标准X.731详细说明。由“AlarmStatus(警告状况)”、“ProceduralStauts(过程的状况)”、“AvailabilityStatus(可用性状况)”、“UsageState(使用状态)”、“操作状态”和“AdministrativeState(管理的状态)”导出。公共操作getStateSupported()short[]被调用以确定哪个状态和状况属性由实现该接口的类所支持。addStateChangeListener(listenerStateChangeListener)被调用以为“StateChangeEvent(状态改变事件)”注册“StateChangeListener(状态改变收听者)”。removeStateChangeListener(listenerStateChangeListener)被调用以解除注册一“StateChangeListener(状态改变收听者)”。getCurrentState()int被调用以得到所有所支持的状态的当前值。返回表示单个状态的一位掩码。getCurrentStatus()int被调用以得到所有所支持的状况属性的当前值。返回表示单个状况属性的一位掩码。6.2.8“StateChangeListener(状态改变收听者)”该接口必须被这些类所实现,即有兴趣被通知实现“GenericState(类属状态)”接口的对象的状态改变的类。如果“StateChangeListener(状态改变收听者)”对象经“加入StateChangeListener(状态改变收听者)”方法而注册,通过调用“状态被改变”方法,它将被通知,而“状态被改变”方法包括适当的“StateChangeEvent(状态改变事件)”。公共操作stateChange(eventStateChangeEvent)被调用以通知“StateChangeListener(状态改变收听者)”状态改变。事件参数提供什么状态已经改变的休息。6.2.9“ResourceStateException(资源状态例外)”一与“GenericState(类属状态)”接口相关的基例外类。当无效状态改变将由方法调用引起时,表现出该例外或其扩展。例如,处于Distabled(禁止)状态的对象如果不被解除锁定,则不能执行某些操作。该类从“Exception(例外)”导出。公共操作getState()short被调用以确定哪个状态一致已经被破坏。getValue()int被调用以确定所破坏的状态的当前值。6.2.10“StateChangeEvent(状态改变事件)”当状态改变其值时,该事件被启动。它被分配给所有注册的“StateChangeListener(状态改变收听者)”。该事件由“EventObject(事件对象)”导出。公共操作getState()short被调用以确定哪个状态已经改变。getOldValue()int被调用以确定该状态的初始值。getNewValue()int被调用以确定该状态的新值。getSourceIndicator()short被调用以确定该事件的原因。6.2.11“SourceIndicator(资源指示符)”公共操作INTERNAL_CAUSEshort=1状态改变由内部活动引起。EXTERNAL_CAUSEshort=2状态改变由外部活动引起。6.3org.atsc.utility该程序包提供了一组支持和实用类和接口,由其它程序包使用。6.3.1“注册处”(Registry)该接口给所有特殊化的注册处接口,诸如“ApplicationRegistry(应用程序注册处)”、“SourceRegistry(资源注册处)”等提供了一公共基础。提供它使得“RegistryFactory(注册处工厂)”可以返回一基类型。该接口从“RegistryType(注册处类型)”导出公共操作GetRegistryType()String被调用以确定由“RegistryFactory(注册处工厂)”的方法getRegistry()返回的对象所实现的注册处的类型。6.3.2“RegistryFactory(注册处工厂)”该类提供一种机制以产生实现特殊注册处接口,诸如“ApplicationRegistry(应用程序注册处)”的对象。公共操作RegistryFactory()构造器getRegistry(registryNameString)Registry返回一对象的例子,其实现指定的注册处接口。当指定的注册处不存在或不能产生时,返回无效。所返回的对象的类型是所导出的注册处类型之一,比如“ApplicationRegistry(应用程序注册处)”。6.3.3“RegistryType(注册处类型)”该接口定义不同注册处类型,比如ApplicationRegistry(应用程序注册处)等的名字。公共属性APPLICATION_REGISTRYString=ApplicationRegistryRESOURCE_REGISTRYString=ResourceRegistry总共3个逻辑程序包23个类逻辑程序包结构逻辑图JavaLangutilorgatscapplication(应用程序)management(管理)utility(实用)davicnet(网)相应地,可以看出本发明提供了一种软件结构,用于管理在电视机机顶盒终端的应用程序。根据与应用程序数据相关的一定位器,应用程序数据,诸如节目指南,股市行情等在终端被恢复。应用程序数据在终端被注册和安装,在其注册和安装后,用户被通知应用程序数据的存在。尽管本发明已经结合各种具体实现例进行了描述,本领域的技术人员应该理解,在不脱离由权利要求书所提出的本发明的精神和范围下,可以对本发明进行各种修改和润饰。例如,尽管各种句法元素(syntaxelements)已经在这里被讨论,但应该注意,它们仅作为示例,任何句法都可以使用。另外,本发明适用于实际上任何类型的网络,包括有线或卫星电视宽带通信网络,局域网络(LANS),城市区域网络(MANS),广域网络(WANS),互连网,内部网,和互联网或它们的结合。另外,已知计算机硬件,固件和/或软件可以被用于实现本发明。权利要求1.一种电视机顶盒终端,包括计算机可读介质,该介质具有计算机程序代码工具;和用于执行所述计算机程序代码工具,以实现一应用程序编程接口(API)的装置,其中定义应用程序的应用程序数据,根据与这些应用程序相关的定位器在该终端被恢复;在该终端,这些应用程序被注册和安装;和在其注册和安装后,用户被通知存在这些应用程序。2.如权利要求1所述的终端,其中所述API使得能够检索这些应用程序作为可下载软件应用程序。3.如权利要求1所述的终端,其中所述API使得能够检索这些应用程序作为广播软件应用程序。4.如权利要求1所述的终端,其中所述API独立于所述终端的操作系统和硬件。5.如权利要求1所述的终端,其中所述API提供一基于ITU-TX.731的机制,用于监视和控制这些应用程序。6.如权利要求1所述的终端,其中所述API使得这些应用程序能够运行和随后停止。7.如权利要求6所述的终端,其中所述API使得这些应用程序一旦运行能够暂停,并使这些应用程序随后能够恢复运行。8.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的状态。9.如权利要求8所述的终端,其中所述API使得这些其他应用程序中至少一个能够访问这些特定应用程序中至少一个的所告知的状态。10.如权利要求1所述的终端,其中所述API使得能够检索与这些应用程序相关的版本信息。11.如权利要求1所述的终端,其中所述定位器是采用统一资源定位器(URL)的形式。12.如权利要求1所述的终端,其中所述API使得能够验证这些应用程序的完整性。13.如权利要求1所述的终端,其中所述API使得能够验证这些应用程序对该终端的适合性。14.如权利要求1所述的终端,其中所述API使得能够进行这些应用程序的管理锁定和解除锁定。15.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的警告状况。16.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的可用性状况。17.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的过程的状况。18.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的操作状态。19.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的管理状态。20.如权利要求1所述的终端,其中所述API使得这些应用程序中特定的一些能够告知其他一些应用程序它们各自的使用状态。21.一种实现用于电视机顶盒终端的软件结构的方法,包括以下步骤提供一计算机可读介质,该介质具有计算机程序代码工具;和执行所述计算机程序代码工具,以实现一应用程序编程接口(API),以根据与定义应用程序的应用程序数据相关的定位器,在该终端恢复该应用程序数据;在所述终端,注册和安装这些应用程序;和在其注册和安装后,通知用户这些应用程序的存在。全文摘要一种用于管理电视机顶盒终端的应用程序的软件结构。应用程序编程接口(API)提供了一种基于ITU-TX.731的机制,用于监视和管理该应用程序。根据相关的定位器,应用程序,诸如节目指南,股市行情等在终端被恢复。应用程序数据在终端被注册(205)和安装,在其注册和安装后,用户被通知应用程序的出现。API(270)使得应用程序能够运行、暂停、恢复和停止。API也使得应用程序能够告知其他应用程序它们各自的状态,诸如警告状况(325)、可用性状况(330)、过程状况(335)、操作状态(310)、管理状态(305)和使用状态(315)。文档编号H04N5/00GK1330832SQ99814369公开日2002年1月9日申请日期1999年10月7日优先权日1998年10月13日发明者彼得·彼得卡,布拉尼斯拉夫·N·梅安季亚,耶特萨·曼加勒尔,塞缪尔·A·亚科拉申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1