WO2000022816A1 - Software application lifecycle and management for broadcast applications - Google Patents

Software application lifecycle and management for broadcast applications Download PDF

Info

Publication number
WO2000022816A1
WO2000022816A1 PCT/US1999/023721 US9923721W WO0022816A1 WO 2000022816 A1 WO2000022816 A1 WO 2000022816A1 US 9923721 W US9923721 W US 9923721W WO 0022816 A1 WO0022816 A1 WO 0022816A1
Authority
WO
WIPO (PCT)
Prior art keywords
applications
terminal
application
api
api enables
Prior art date
Application number
PCT/US1999/023721
Other languages
French (fr)
Inventor
Petr Peterka
Branislav N. Meandzija
Geetha Mangalore
Samuel A. Iacovera
Original Assignee
General Instrument Corporation
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 General Instrument Corporation filed Critical General Instrument Corporation
Priority to AU64264/99A priority Critical patent/AU766782B2/en
Priority to KR1020017004614A priority patent/KR20010080122A/en
Priority to CA002346483A priority patent/CA2346483A1/en
Priority to JP2000576614A priority patent/JP2002527844A/en
Priority to EP99951932A priority patent/EP1119963A1/en
Priority to BR9914557-0A priority patent/BR9914557A/en
Publication of WO2000022816A1 publication Critical patent/WO2000022816A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Definitions

  • the present invention provides a software architecture for managing applications at a television set-top terminal.
  • the following acronyms and terms are used:
  • API Application Programming Interface
  • ATSC Advanced Television Systems Committee
  • DASE ATSC T3/S17 Digital TV Application Software Environment
  • DAVIC Digital Audio-Visual Council
  • DTV Digital Television
  • EPG Electronic Program Guide
  • IRD Integrated Receiver Decoder
  • ISO International Standards Organization
  • JVM Java Virtual Machine
  • a set-top terminal also referred to as an IRD or a subscriber terminal, is a device that receives and decodes television signals for presentation by a television.
  • the signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast, for example.
  • VOD video on demand
  • voice mail voice mail
  • audio mail e.g., audio mail
  • telephony services stock ticker
  • weather data e.g., weather data
  • travel information e.g., travel information
  • games e.g., gambling, banking, shopping, voting, and others.
  • applications may also enable Internet connectivity and possibly Internet-based telephony.
  • the set top functionality is enabled through specialized hardware and software.
  • the applications may be communicated to a set- top terminal via a network, loaded locally (e.g., via a smart card) , or installed at the time of manufacture, for example.
  • a network loaded locally (e.g., via a smart card) , or installed at the time of manufacture, for example.
  • System Service requirements propose a number of requirements for managing the applications at a set- top terminal .
  • This is a section from the ATSC T3/S17 draft specification which describes application management related requirements (Section 13) . Accordingly, it would be desirable to provide set-top software for managing applications at a set- top terminal .
  • the software should provide an API for retrieving and registering new applications that are received at the terminal, e.g., via a download from a headend, and providing an identifier for each application.
  • the API should be independent of the operating system and hardware of the terminal . It would be desirable to provide an ITU-T
  • the mechanism should control starting, stopping, pausing and resuming of the applications.
  • the mechanism should enable an application to advertise its state to other applications, and allow the other applications to access the advertised state .
  • the mechanism should allow retrieving of application and resource version information.
  • the mechanism should allow accessing of application location information.
  • the mechanism should provide verification of the integrity of an application, and validation of the suitability of the application for use in the set-top terminal.
  • the mechanism should notify the user of the existence of a new application after it is registered.
  • the mechanism should provide an administrative locking or unlocking of an application.
  • the mechanism should advertise the operational state, alarm status, and availability status of an application.
  • the architecture should be compatible with Java(tm), ActiveX (tm) or an equivalent type of component based object-oriented technology.
  • the mechanism should be suitable for use with any application at a terminal, regardless of how it was received or installed.
  • the present invention provides a system having the above and other advantages .
  • the present invention provides a software architecture for managing applications in a set-top television terminal .
  • a television set-top terminal includes a computer readable medium having computer program code means, and means for executing the computer program code means to implement an Application Programming Interface (API) .
  • API Application Programming Interface
  • application data which defines applications is recovered at the terminal according to locators associated with the applications.
  • the locator may be a PID, channel number, channel name, Transport Stream ID, Service ID, a combination thereof, or something else.
  • the locator may be in the form of a Uniform Resource Locator (URL) .
  • URL Uniform Resource Locator
  • the applications are registered and installed at the terminal, and a user is notified of the presence of the applications after registration and installation thereof. Thus, the user is notified when the application is made available locally at the terminal and is ready to be invoked/started.
  • An application may use a resource, usually a device, function or a process on the receiver (e.g. tuner, modem, database, etc.)
  • a resource usually a device, function or a process on the receiver (e.g. tuner, modem, database, etc.)
  • the API enables the retrieval of the applications as downloadable software applications, or broadcast software applications.
  • the API may be independent of an operating system and hardware of the terminal.
  • the API may provide an ITU-T X.731-based mechanism for monitoring and controlling the applications .
  • the API may enable running and subsequent stopping of the applications.
  • the API may enable pausing of the applications once they are running, and subsequent resuming of the applications.
  • the API may enable particular ones of the applications to advertise their respective states to other applications .
  • the API may enable at least one of the other applications to access the advertised state of at least one of the particular advertising applications.
  • An application state may have several different values (enabled, disabled, etc.) To access a state means to have the ability to learn about the current state value .
  • the API may enable retrieval of version information associated with the applications.
  • the API may enable verification of the integrity of the applications. Integrity in this case may mean that the code that was received by the receiver is legal and valid based on the programming language specification used to code the application (e.g., Java programming language, etc.)
  • the API may enable validation of the suitability of the applications for the terminal.
  • the API may enable administrative locking and unlocking of the applications.
  • the API may enable particular ones of the applications to advertise respective alarm statuses, availability statuses, procedural statuses, operational states, administrative states and usage states thereof to other ones of the applications.
  • FIG. 1 shows package relationships and dependencies in accordance with the present invention.
  • FIG. 2 represents application-related classes and interfaces and their relationships in accordance with the present invention.
  • FIG. 3 describes those classes and interfaces related to state management in accordance with the present invention.
  • FIG. 4 depicts relationships between the utility classes and interfaces in accordance with the present invention.
  • FIG. 5 is an interaction/sequence diagram showing how an EPG application, which displays video as well as data channels with applications available on them to the user, can invoke a download and subsequent execution of the downloaded application in accordance with the present invention.
  • FIG. 6 shows a set of interactions/sequences that demonstrates how one application can be managed by an application manager and monitored by an agent in accordance with the present invention.
  • the present invention provides a software architecture for managing applications in a set-top television terminal .
  • the present invention specifies an API which satisfies the DASE Application Management System Service requirements.
  • FIGs 1-4 are class diagrams and FIGs 5 and 6 are sequence (or interaction) diagrams.
  • a class diagram represents the static structure of a system, and shows a pattern of behaviors that the system exhibits. This is accomplished by showing the existence of classes and their relationships.
  • Each class is represented by a box with three sections. The top section lists the class name. The middle section denotes a list of attributes, and the bottom section denotes a list of operations .
  • a solid or dashed line between classes denotes an association or dependency.
  • a white diamond tip denotes aggregation by reference, while a black diamond tip denotes aggregation by value.
  • a triangular arrowhead denotes a restricted navigation, e.g., inheritance of operation but not of structure.
  • a class is a template that defines a data structure, method and function calls for an object.
  • An interface defines a set of methods/function calls that can be manipulated by a class. The class provides the code for implementing an interface.
  • the proposed API addresses the following requirements :
  • the API will provide a mechanism to retrieve a downloadable or broadcast application. This is done via a registration mechanism, which can specify a URL of an application (obtained from the PSIP API or its extensions based on T3/S13 and S16 work) to be downloaded and made available.
  • ATSC T3/S13 and T3/S16 specifications define protocols for delivering applications to the receiver, signaling their presence in the transport stream and providing information about the applications.
  • the URL is used as an identifier for applications in an example embodiment, but other identifiers may be used.
  • the API will provide a mechanism to install and uninstall an application.
  • the Registration mechanism installs the application so that it can be invoked/started. 3.
  • the API will provide a mechanism to initialize (launch), start, and stop an application.
  • the Application interface provides methods to perform these actions. 4.
  • the API will provide a mechanism to pause and resume an application.
  • the Application interface provides methods to perform these actions .
  • the API will provide a mechanism for applications to maintain an access state.
  • ITU-T X.731 is an international standard which defines management states, status codes and state transitions for manageable objects (devices, resources, applications, etc.)
  • the API will provide a mechanism to retrieve version information for the application and its resources, including required APIs.
  • the Applicationlnfor ation interface allows the retrieval of the above information.
  • the API will provide a mechanism to access application location information.
  • the application location information can be represented in a URL format (to be standardized by ATSC) in the DAVIC Locator class.
  • a locator is an opaque object which encapsulates a URI (Universal Resource Identifier) of a particular resource (an application in this case) .
  • the API will provide a mechanism to verify an application's integrity and validate its correctness. For example, this may mean that it does not include viruses or will not do any damage to the receiver.
  • the JVM verifier satisfies this requirement; therefore, it is not necessary define a specific API to do so .
  • the API will provide a registration mechanism allowing the application to notify the user of its existence .
  • S13 APIs which provide information about a specific application. This information can be used to download an application by registering it with the
  • ApplicationRegistry Once registered, a user can use it.
  • This proposal consists of two main packages: org.atsc .application and org .a sc .management , and a helper package org.atsc .utility .
  • the first package includes application-specific classes and interfaces.
  • the other package represents classes and interfaces that are related to managing application states based on the ITU-T management standard. The latter is separated into its own package since it can be applied to any manageable object such as DTV receiver resources, or downloadable applications.
  • An application is free to support a subset of the defined states and status attributes as appropriate to the specific application. DASE may mandate a subset of these in order to provide for a better interoperability between applications with respect to management.
  • ATSC may define a minimal set of states and status codes that are supported by all applications. Some, more complex, applications may support more. For example, some applications may not support the "degraded" Availability Status - they either work or they don't - nothing in between.
  • FIG. 1 shows the package relationships and dependencies in accordance with the present invention.
  • the org .atsc . application package 105 uses classes and interfaces defined in the org.atsc .management package 110, org.atsc .utility package 115 and org.davic.net package 120.
  • the packages are logically related by the dashed arrows, which denote dependency.
  • FIG. 2 represents application-related classes and interfaces and their relationships in accordance with the present invention.
  • An interface is labeled by ⁇ interface>> , while those not so labeled are classes.
  • the classes include: RegistryFactory 215, Exception 220, ApplicationAvailabilityException 225, ApplicationAlreadyRegisteredException 230 , ApplicationNotRegisteredException 235, ApplicationRegistryEvent 245, and EventObject 250.
  • the interfaces include: ApplicationRegistry 205, Registry 210, ApplicationCause 240, ApplicationRegistryListener 255, StateChangeListener 260, ObjectStates 265, Application 270, and Applicationlnformation 275.
  • FIG. 3 describes those classes and interfaces related to state management in accordance with the present invention. Like-numbered elements correspond to one another in the figures.
  • the classes and interfaces include: AdministrativeState 305, OperationalState 310, UsageState 315, ObjectState 320, AlarmStatus 325, AvailabilityStatus 330, ProceduralStatus 335, ResourceStateException 340, Sourcelndicator 345, and StateChangeEvent 350.
  • FIG. 4 depicts relationships between the utility classes and interfaces in accordance with the present invention.
  • the classes and interfaces include RegistryType 405.
  • FIG. 5 is an interaction/sequence diagram showing how an EPG application, which displays video as well as data channels with applications available on them to the user, can invoke a download and subsequent execution of the downloaded application in accordance with the present invention.
  • the diagram was generated using Rational Rose(tm) software .
  • a number of example objects are provided, including "user” 505, "EPG: Application” 270' (an example of the Application interface 270 of FIG. 2), "PSIP Database” 515, “dataChannel” 520, "factory -.Registry Factory” 215, “registry application Registry” 205, “downloader”
  • the EPG retrieves the application information including the URL (Locator) , gets access to the ApplicationRegistry via the RegistryFactory and requests a registration of the new application.
  • the application locator URL
  • the registry fires (e.g., sends/emits) an event to all listeners to indicate that the new application is registered and available.
  • the EPG application listens to these events and notifies the user of the new application availability. Once the application is downloaded and installed, the user can request its execution via the registry. The registry actually starts the application.
  • the "EPG: Application” object 270' calls the “getDataApps” method from the "dataChannel” object 520;
  • the "EPG:Application” object 270' calls the “displayApps” method from the "user” object 505;
  • the "user" object 505 calls the "selectApp” method from the "EPG: Application” object 270' ;
  • the "EPG:Application” object 270' calls the “getRegistry (String) " method from the "factory : Registry Factory” object 215;
  • the "EPG:Application” object 270' calls the “registerApplication (Locator) " method from the
  • the "registry application Registry” object 205 calls the “download” method from the "downloader” object 525; 8.
  • the "EPG:Application” object 270' calls the “getApplicationlnformation (Locator) " method from the "registry application Registry” object 205; 10.
  • the "EPG:Application” object 270' calls the “displayAppinfo” method from the "user” object 505;
  • the "user" object 505 calls the "invokeApp” method from the "EPG : Application” object 270' ;
  • the "user" object 505 calls the
  • FIG. 6 shows a set of interactions/sequences that demonstrates how one application can be managed by an application manager and monitored by an agent in accordance with the present invention.
  • Agent StateChangeListener 260'' (or 270'').
  • the agent registers as a StateChangeListener to a specific application.
  • the application changes its internal states based on internal or external causes.
  • the application was suspended, which changed its OperationalState to DISABLED.
  • the application creates a StateChangeEvent and sends it to all registered listeners; in this case the agent.
  • the agent can determine the state that changed and its old and new values by interrogating the event, e.g., by calling the methods available on the StateChangeEvent object, such as getOldValue ( ) , getnewValue () , etc.
  • the above sequence may be implemented via the following example steps 1-11:
  • the "appManager: StateChange” object 260' calls the “ star ()” method from the "appl application” object 270''; 2.
  • the "appManager -.StateChange” object 260' calls the “suspendO” method from the "appl -.Application” object 270'';
  • the "appl application” object 270'' calls the “stateChange (StateChangeEvent) " method from the
  • the "agent : StateChangeListener” object 260'' calls the “getStateO” method from the "event -.StateChangeEvent” object 350',- 7.
  • the "agent : StateChangeListener” object 260'' calls the “getNewValue ( ) " method from the "event : StateChangeEvent” object 350', • 9.
  • the "appManager : StateChange” object 260' calls the “resumed " method from the
  • the "appl application” object 270'' calls the "StateChangeEvent” method from the
  • the "appl application” object 270'' calls the “stateChange (StateChangeEvent) " method from the "agent : StateChangeListener” object 260''.
  • APIs as possible are defined as interfaces rather than as classes . This provides more freedom and fewer restrictions for the API implementation. Since Java interfaces don't have constructors or static methods, some interfaces such as the ApplicationRegistry have an associated RegistryFactory class that returns the appropriate implementation of the ApplicationRegistry interface.
  • the RegistryFactory class may be based on the Factory Method pattern, which, as is known from the field of object-oriented programming, is a methodology and structure for solving a problem.
  • Section 6.1 describes the application-related packages .
  • This package includes classes and interfaces related to application lifecycle, registration and management .
  • This class represents a base class of all downloadable applications. It provides a basic application lifecycle support and additional descriptive information about the application in the form of an Applicationlnfo class.
  • This class implements the GenericStates interface to add management capability to a downloadable application.
  • This interface provides a uniform mechanism to manage any object in a standard way.
  • An Application can support a subset of these states as appropriate to the specific application.
  • the class is derived from ObjectStates. Public Operations: start () :
  • the application can acquire any needed resources, perform its initialization and start execution. If this application supports the Administrative
  • Public operations are those methods that may be called and used by other objects since they are visible outside of the object (e.g., class). In contrast, private operations are visible only to the class itself.
  • getVendor 0 String Returns the name of the application vendor or author .
  • getVersion () String
  • Version numbers use a "Dewey Decimal" syntax that consists of positive decimal integers separated by periods
  • the source is where the application came from (e.g., channel 39, HBO, CNBC, etc.)
  • This interface provides a limited access to the Application Registry. It allows other applications to get information about existing applications, to show an interest in a particular application
  • the interface is derived from Registry.
  • registerApplication applicationID : Locator
  • Locator Called to add this application from the registry.
  • the application is specified via its Locator (URL) .
  • the registry is responsible for locating the application, downloading it and notifying the caller of its availability.
  • This method is protected via the security mechanisms in order to protect unauthorized access to applications.
  • getApplications () Application!] This method allows a retrieval of all registered applications .
  • This method is protected via the security mechanisms in order to protect unauthorized access to applications.
  • startApplicatio applicationID:Locator
  • the method call returns as soon as the requested application starts executing in its own thread space .
  • This method of all registered ApplicationRegistryListeners is called by the ApplicationRegistry object when an ApplicationRegistryEvent is fired.
  • Short is one format for integers (2 bytes vs. 4 bytes) .
  • This package includes classes and interfaces related to object management. It can be applied in its entirety or as a subset as relevant to the specific managed entity. It is applicable for managing state and status attributes of DTV receiver resources as well as applications.
  • the resource is administratively prohibited from performing services for its users. This could relate to a local lockout, such as a parental lockout of certain channels or applications, but can also be used to remotely (from the headend, uplink or cable operator) "lock" the application so that the user cannot start it, e.g., if a problem with an application is detected.
  • a local lockout such as a parental lockout of certain channels or applications
  • remotely from the headend, uplink or cable operator
  • -Unlocked The resource is administratively permitted to perform the services to users. This is independent of its inherent operability.
  • -Shutting down Use of resource is administratively permitted to the existing instances of users only. The manager may at any time cause the object to revert to Unlocked state.
  • ADMIN_TYPE : short 1
  • getOperationalState () int Called to get the current value of the
  • -under repair The resource is currently being repaired. When the under repair value is present, the operational state is either disabled or enabled.
  • -critical One or more critical alarms indicating a fault have been detected in the resource, and have not been cleared.
  • the operational state of the managed object can be disabled or enabled.
  • -major- One or more major alarms indicating a fault have been detected in the resource, and have not yet been cleared.
  • the operational state of the managed object can be disabled or enabled.
  • -minor One or more minor alarms indicating a fault have been detected in the resource, and have not yet been cleared.
  • the operational state of the managed object can be disabled or enabled.
  • -alarm outstanding One or more alarms have been detected in the resource.
  • the condition may or may not be disabling. If the operational state is enabled, additional attributes, particular to the managed object class, may indicate the nature and cause of the condition and the services that are affected.
  • -in test The resource is undergoing a test procedure. If the administrative state is locked or shutting down, then normal users are precluded from using the resource and the control status attribute has the value reserved for test. Tests that do not exclude additional users can be present in any operational or administrative state but the reserved for test condition should not be present. -failed: The resource has an internal fault that prevents it from operating. The operational state is disabled.
  • -power off The resource requires power to be applied and is not powered on. For example, a fuse or other protection device is known to have removed power, or a low voltage condition has been detected. The operational state is disabled.
  • the resource requires a routine operation to be performed to place it online and make it available for use.
  • the operation may be manual or automatic, or both.
  • the operational state is disabled.
  • -off duty The resource has been made inactive by an internal control process in accordance with a predetermined time schedule. Under normal conditions the control process can be expected to reactivate the resource at some scheduled time, and it is therefore considered to be optional.
  • the operational state is enabled or disabled.
  • -dependency The resource cannot operate because some other resource on which it depends (e.g., a resource not represented by the same managed object) is unavailable. For example, a device is not accessible because its controller is powered off.
  • the operational state is disabled, -degraded: The service available from the resource is degraded in some respect, such as in speed or operating capacity. Failure of a test or an unacceptable performance measurement has established that some or all services are not functional or are degraded due to the presence of a defect.
  • the resource remains available for service, either because some services are satisfactory or because degraded service is preferable to no service at all.
  • Object-specific attributes may be defined to represent further information indicating, for example, which services are not functional and the nature of the degradation.
  • the operational state is enabled. -not installed: The resource represented by the managed object is not present, or is incomplete. For example, a plug- in module is missing, a cable is disconnected or a software module is not loaded. The operational state is disabled.
  • getAvailabilityStatus () int Called to get the current set of values of the
  • the procedural status attribute is supported only by those classes of managed objects that represent some procedure (e.g., a test process) which progresses through a sequence of phases .
  • the procedure may be required to reach certain phase for the resource to be operational and available for use (i.e., for the managed object to be enabled) . Not all phases may be applicable to every class of managed object. If the value of this attribute is an empty set, the managed object is ready, for example, the initialization is complete.
  • the resource requires initialization to be invoked by the manager before it can perform its normal functions, and this procedure has not been initiated.
  • the manager may be able to invoke such initialization through an action.
  • the terminating condition may also be present.
  • the operational state is disabled, -not initialized: The resource requires initialization before it can perform its normal functions, and this procedure has not been initiated.
  • the resource initializes itself autonomously, but the operational state may be either disabled or enabled, depending upon the managed object class definition.
  • -initializing The resource requires initialization before it can perform its normal functions, and this procedure has been initiated but is not yet complete. When this condition is present, the initialization required condition is absent, since initialization has already begun.
  • the operational state may be disabled or enabled, depending upon the managed object class definition.
  • -reporting The resource has completed some processing operation and is notifying the results of the operation, e.g., a test process is sending its results.
  • the operational state is enabled.
  • -terminating The resource is in a termination phase. If the resource does not reinitialize itself autonomously, the Initialization Required condition is also present and the operational state is disabled. Otherwise, the operational state may be either disabled or enabled, depending upon the managed object class definition.
  • PROCEDURAL_TYPE : short 16
  • This interface defines the Mask for Usage State.
  • -Active The resource is in use, but has spare operating capacity to provide additional users at this instant.
  • -Busy The resource is in use, but has no spare operating capacity to provide additional users at this instant.
  • This interface allows objects which are meant to be managed in a standard way to implement a unified interface that supports all, or a suitable subset of, states and status values.
  • the defined state and status attributes are specified by the ITU-T standard X.731 for State Management. Derived from AlarmStatus, ProceduralStatus,
  • the event parameter provides information about what state has changed.
  • the class is derived from Exception.
  • This Event is fired when a state changes its value. It is distributed to all registered StateChangeListeners . The event is derived from EventObject . Public Operations: getState () : short
  • This package provides a set of supporting and utility classes and interfaces used by other packages.
  • This interface provides a common root to all specialized registry interfaces, such as ApplicationRegistry, ResourceRegistry, etc. It is provided so that the RegistryFactory can return a base type.
  • the interface is derived from RegistryType .
  • getRegistryType () String Called to determine the type of registry implemented by the object returned by the RegistryFatory ' s method getRegistry ( ) .
  • This class provides a mechanism to create objects that implement specific Registry interfaces, such as the ApplicationRegistry.
  • RegistryFactory () Public Operations: RegistryFactory () :
  • This interface defines names for different registry types, such as an application registry, etc .
  • the present invention provides a software architecture for managing applications at a television set-top terminal.
  • Application data such as a program guide, stock ticker or the like, is recovered at the terminal according to a locator associated with the application data.
  • the application data is registered and installed at the terminal, and a user is notified of the presence of the application data after registration and installation thereof.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof .

Abstract

A software architecture for managing applications at a television set-top terminal. An Application Programming Interface (API) provides an ITU-T X.731-based mechanism for monitoring and controlling the applications. Applications, such as a grogram guide, stock ticker or the like, are recovered at the terminal according to an associated locator. The applications are registered (205) and installed at the terminal, and a user is notified of the presence of the applications after registration thereof. The API (270) enables running, pausing, resuming and stopping of the applications. The API also enables the applications to advertise their respective states to other applications, such as alarm statuses (325), availability statuses (330), procedural statuses (335), operational states (310), administrative states (305), and usage states (315).

Description

SOFT WARE APPLICATION LIFE CYCLE AND MANAGEMENT FOR BROADCAST APPLICATIONS
BACKGROUND OF THE INVENTION
This application claims the benefit of U.S. Provisional Application No. 60/103,943, filed October 13, 1998.
The present invention provides a software architecture for managing applications at a television set-top terminal. The following acronyms and terms are used:
API - Application Programming Interface; ATSC - Advanced Television Systems Committee; DASE - ATSC T3/S17 Digital TV Application Software Environment; DAVIC - Digital Audio-Visual Council;
DTV - Digital Television; EPG - Electronic Program Guide; IRD - Integrated Receiver Decoder; ISO - International Standards Organization; JVM - Java Virtual Machine,-
PSIP - Program and System Information Protocol (for Terrestrial Broadcast and Cable) ; RAM - Random Access Memory; and UML - Unified Modeling Language. A set-top terminal, also referred to as an IRD or a subscriber terminal, is a device that receives and decodes television signals for presentation by a television. The signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast, for example. Various applications have been proposed, or are currently available, via modern set tops, including video on demand (VOD) , audio on demand, pay-per-view, interactive shopping, electronic commerce, electronic program guides, Internet browsers, mail services (e.g., text e-mail, voice mail, audio mail, and/or video mail), telephony services, stock ticker, weather data, travel information, games, gambling, banking, shopping, voting, and others. Applications may also enable Internet connectivity and possibly Internet-based telephony. The set top functionality is enabled through specialized hardware and software.
Moreover, with the increasing integration of computer networks such as the Internet, telephony networks, and broadband distribution networks, many opportunities arise for providing new types of applications .
The applications may be communicated to a set- top terminal via a network, loaded locally (e.g., via a smart card) , or installed at the time of manufacture, for example. In particular, the DASE Application Management
System Service requirements propose a number of requirements for managing the applications at a set- top terminal . This is a section from the ATSC T3/S17 draft specification which describes application management related requirements (Section 13) . Accordingly, it would be desirable to provide set-top software for managing applications at a set- top terminal . The software should provide an API for retrieving and registering new applications that are received at the terminal, e.g., via a download from a headend, and providing an identifier for each application.
The API should be independent of the operating system and hardware of the terminal . It would be desirable to provide an ITU-T
X.731-based mechanism for application monitoring and control .
The mechanism should control starting, stopping, pausing and resuming of the applications. The mechanism should enable an application to advertise its state to other applications, and allow the other applications to access the advertised state .
The mechanism should allow retrieving of application and resource version information. The mechanism should allow accessing of application location information.
The mechanism should provide verification of the integrity of an application, and validation of the suitability of the application for use in the set-top terminal.
The mechanism should notify the user of the existence of a new application after it is registered. The mechanism should provide an administrative locking or unlocking of an application. The mechanism should advertise the operational state, alarm status, and availability status of an application.
The architecture should be compatible with Java(tm), ActiveX (tm) or an equivalent type of component based object-oriented technology.
The mechanism should be suitable for use with any application at a terminal, regardless of how it was received or installed. The present invention provides a system having the above and other advantages .
SUMMARY OF THE INVENTION
The present invention provides a software architecture for managing applications in a set-top television terminal . A television set-top terminal includes a computer readable medium having computer program code means, and means for executing the computer program code means to implement an Application Programming Interface (API) . With the API, application data which defines applications is recovered at the terminal according to locators associated with the applications. For example, the locator may be a PID, channel number, channel name, Transport Stream ID, Service ID, a combination thereof, or something else. The locator may be in the form of a Uniform Resource Locator (URL) .
The applications are registered and installed at the terminal, and a user is notified of the presence of the applications after registration and installation thereof. Thus, the user is notified when the application is made available locally at the terminal and is ready to be invoked/started.
An application may use a resource, usually a device, function or a process on the receiver (e.g. tuner, modem, database, etc.)
The API enables the retrieval of the applications as downloadable software applications, or broadcast software applications.
The API may be independent of an operating system and hardware of the terminal. The API may provide an ITU-T X.731-based mechanism for monitoring and controlling the applications .
The API may enable running and subsequent stopping of the applications.
The API may enable pausing of the applications once they are running, and subsequent resuming of the applications.
The API may enable particular ones of the applications to advertise their respective states to other applications .
The API may enable at least one of the other applications to access the advertised state of at least one of the particular advertising applications. An application state may have several different values (enabled, disabled, etc.) To access a state means to have the ability to learn about the current state value .
The API may enable retrieval of version information associated with the applications. The API may enable verification of the integrity of the applications. Integrity in this case may mean that the code that was received by the receiver is legal and valid based on the programming language specification used to code the application (e.g., Java programming language, etc.)
The API may enable validation of the suitability of the applications for the terminal. The API may enable administrative locking and unlocking of the applications. The API may enable particular ones of the applications to advertise respective alarm statuses, availability statuses, procedural statuses, operational states, administrative states and usage states thereof to other ones of the applications.
A corresponding method is also presented.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows package relationships and dependencies in accordance with the present invention. FIG. 2 represents application-related classes and interfaces and their relationships in accordance with the present invention.
FIG. 3 describes those classes and interfaces related to state management in accordance with the present invention.
FIG. 4 depicts relationships between the utility classes and interfaces in accordance with the present invention.
FIG. 5 is an interaction/sequence diagram showing how an EPG application, which displays video as well as data channels with applications available on them to the user, can invoke a download and subsequent execution of the downloaded application in accordance with the present invention. FIG. 6 shows a set of interactions/sequences that demonstrates how one application can be managed by an application manager and monitored by an agent in accordance with the present invention. DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a software architecture for managing applications in a set-top television terminal .
1. Overview
The present invention specifies an API which satisfies the DASE Application Management System Service requirements.
Note that portions of the disclosure were generated automatically from Rational Rose(tm) CASE tool, developed by Rational Software Corporation, USA. Exceptions and pre- and post-conditions associated with individual methods are not shown. Exceptions will be shown in a Javadoc format. The figures use the Rational Rose (tm) depiction of the UML . FIGs 1-4 are class diagrams and FIGs 5 and 6 are sequence (or interaction) diagrams. A class diagram represents the static structure of a system, and shows a pattern of behaviors that the system exhibits. This is accomplished by showing the existence of classes and their relationships. Each class is represented by a box with three sections. The top section lists the class name. The middle section denotes a list of attributes, and the bottom section denotes a list of operations .
A solid or dashed line between classes denotes an association or dependency. A white diamond tip denotes aggregation by reference, while a black diamond tip denotes aggregation by value. A triangular arrowhead denotes a restricted navigation, e.g., inheritance of operation but not of structure. A class is a template that defines a data structure, method and function calls for an object. An interface defines a set of methods/function calls that can be manipulated by a class. The class provides the code for implementing an interface.
2. REQUIREMENTS
The proposed API addresses the following requirements :
1. The API will provide a mechanism to retrieve a downloadable or broadcast application. This is done via a registration mechanism, which can specify a URL of an application (obtained from the PSIP API or its extensions based on T3/S13 and S16 work) to be downloaded and made available. ATSC T3/S13 and T3/S16 specifications define protocols for delivering applications to the receiver, signaling their presence in the transport stream and providing information about the applications. The URL is used as an identifier for applications in an example embodiment, but other identifiers may be used.
2. The API will provide a mechanism to install and uninstall an application.
The Registration mechanism installs the application so that it can be invoked/started. 3. The API will provide a mechanism to initialize (launch), start, and stop an application.
The Application interface provides methods to perform these actions. 4. The API will provide a mechanism to pause and resume an application.
The Application interface provides methods to perform these actions .
5. The API will provide a mechanism for applications to maintain an access state.
Each application which implements the ObjectStates interface can be managed in a standard way defined by ITU-T. ITU-T X.731 is an international standard which defines management states, status codes and state transitions for manageable objects (devices, resources, applications, etc.) The API will provide a mechanism to retrieve version information for the application and its resources, including required APIs.
The Applicationlnfor ation interface allows the retrieval of the above information.
6. The API will provide a mechanism to access application location information. The application location information can be represented in a URL format (to be standardized by ATSC) in the DAVIC Locator class. A locator is an opaque object which encapsulates a URI (Universal Resource Identifier) of a particular resource (an application in this case) . 7. The API will provide a mechanism to verify an application's integrity and validate its correctness. For example, this may mean that it does not include viruses or will not do any damage to the receiver.
The JVM verifier satisfies this requirement; therefore, it is not necessary define a specific API to do so .
8. The API will provide a registration mechanism allowing the application to notify the user of its existence .
This is done in conjunction with the PSIP and
S13 APIs, which provide information about a specific application. This information can be used to download an application by registering it with the
ApplicationRegistry . Once registered, a user can use it.
3. DESCRIPTION
This proposal consists of two main packages: org.atsc .application and org .a sc .management , and a helper package org.atsc .utility . The first package includes application-specific classes and interfaces. The other package represents classes and interfaces that are related to managing application states based on the ITU-T management standard. The latter is separated into its own package since it can be applied to any manageable object such as DTV receiver resources, or downloadable applications. An application is free to support a subset of the defined states and status attributes as appropriate to the specific application. DASE may mandate a subset of these in order to provide for a better interoperability between applications with respect to management. Some applications may be very simple, and some of the states and statuses defined by the X.731 standard may not be applicable. ATSC may define a minimal set of states and status codes that are supported by all applications. Some, more complex, applications may support more. For example, some applications may not support the "degraded" Availability Status - they either work or they don't - nothing in between.
4. OBJECT MODEL FIG. 1 shows the package relationships and dependencies in accordance with the present invention. The org .atsc . application package 105 uses classes and interfaces defined in the org.atsc .management package 110, org.atsc .utility package 115 and org.davic.net package 120. The packages are logically related by the dashed arrows, which denote dependency.
FIG. 2 represents application-related classes and interfaces and their relationships in accordance with the present invention. An interface is labeled by <<interface>> , while those not so labeled are classes. The classes include: RegistryFactory 215, Exception 220, ApplicationAvailabilityException 225, ApplicationAlreadyRegisteredException 230 , ApplicationNotRegisteredException 235, ApplicationRegistryEvent 245, and EventObject 250. The interfaces include: ApplicationRegistry 205, Registry 210, ApplicationCause 240, ApplicationRegistryListener 255, StateChangeListener 260, ObjectStates 265, Application 270, and Applicationlnformation 275.
FIG. 3 describes those classes and interfaces related to state management in accordance with the present invention. Like-numbered elements correspond to one another in the figures. The classes and interfaces include: AdministrativeState 305, OperationalState 310, UsageState 315, ObjectState 320, AlarmStatus 325, AvailabilityStatus 330, ProceduralStatus 335, ResourceStateException 340, Sourcelndicator 345, and StateChangeEvent 350.
FIG. 4 depicts relationships between the utility classes and interfaces in accordance with the present invention. The classes and interfaces include RegistryType 405.
5. INTERACTION DIAGRAMS
The following sections will describe example interactions between the application-related classes, and show how other objects can use the Application Management API. Since an application is built from objects, an API accessed by other objects means that the API is accessed by parts (objects) of other applications, or by code present on the terminal . 5.1 Application Registration
FIG. 5 is an interaction/sequence diagram showing how an EPG application, which displays video as well as data channels with applications available on them to the user, can invoke a download and subsequent execution of the downloaded application in accordance with the present invention. The diagram was generated using Rational Rose(tm) software . A number of example objects are provided, including "user" 505, "EPG: Application" 270' (an example of the Application interface 270 of FIG. 2), "PSIP Database" 515, "dataChannel" 520, "factory -.Registry Factory" 215, "registry application Registry" 205, "downloader"
525, and "app application" 270'' (an example of the Application interface 270 of FIG. 2) .
The EPG retrieves the application information including the URL (Locator) , gets access to the ApplicationRegistry via the RegistryFactory and requests a registration of the new application. When an application is registered with the Application Registry, the application locator (URL) is used to download the application. When it is available, the registry fires (e.g., sends/emits) an event to all listeners to indicate that the new application is registered and available. The EPG application listens to these events and notifies the user of the new application availability. Once the application is downloaded and installed, the user can request its execution via the registry. The registry actually starts the application.
The above sequence may be implemented via the following example steps 1-13: 1. The "EPG:Application" object 270' calls
(e.g., invokes) the "getVirtualChannels" method from the "PSIP Database" object 515;
2. The "EPG: Application" object 270' calls the "getDataApps" method from the "dataChannel" object 520;
3. The "EPG:Application" object 270' calls the "displayApps" method from the "user" object 505;
4. The "user" object 505 calls the "selectApp" method from the "EPG: Application" object 270' ;
5. The "EPG:Application" object 270' calls the "getRegistry (String) " method from the "factory : Registry Factory" object 215;
6. The "EPG:Application" object 270' calls the "registerApplication (Locator) " method from the
"registry application Registry" object 205;
7. The "registry application Registry" object 205 calls the "download" method from the "downloader" object 525; 8. The "registry application Registry" object
205 calls the
"registryChange (ApplicationRegistryEvent) " method from the "EPG-.Application" object 270',-
9. The "EPG:Application" object 270' calls the "getApplicationlnformation (Locator) " method from the "registry application Registry" object 205; 10. The "EPG:Application" object 270' calls the "displayAppinfo" method from the "user" object 505;
11. The "user" object 505 calls the "invokeApp" method from the "EPG : Application" object 270' ;
12. The "user" object 505 calls the
" startApplication (Locator) " method from the "registry application Registry" object 205; and 13. The "registry application Registry" object
205 calls the "star ()" method from the "app application" object 270
5.2 Managing Application States
FIG. 6 shows a set of interactions/sequences that demonstrates how one application can be managed by an application manager and monitored by an agent in accordance with the present invention.
A number of example objects are provided, including "appl : application" 270'', "appManager:StateChange" 260',
"event :StateChangeEvent" 350', and
"agent : StateChangeListener" 260'' (or 270'').
The agent registers as a StateChangeListener to a specific application. The application changes its internal states based on internal or external causes. In this example, the application was suspended, which changed its OperationalState to DISABLED. The application creates a StateChangeEvent and sends it to all registered listeners; in this case the agent. The agent can determine the state that changed and its old and new values by interrogating the event, e.g., by calling the methods available on the StateChangeEvent object, such as getOldValue ( ) , getnewValue () , etc. The above sequence may be implemented via the following example steps 1-11:
1. The "appManager: StateChange" object 260' calls the " star ()" method from the "appl application" object 270''; 2. The "agent : StateChangeListener" object
260'" calls the "addStateChangeListener" method from the "appl application" object 270'';
3. The "appManager -.StateChange" object 260' calls the "suspendO" method from the "appl -.Application" object 270'';
4. The "appl application" object 270'' calls the "StateChangeEvent" method from the
"event : StateChangeEvent" object 350' ,-
5. The "appl application" object 270'' calls the "stateChange (StateChangeEvent) " method from the
"agent : StateChangeListener" object 260'';
6. The "agent : StateChangeListener" object 260'' calls the "getStateO" method from the "event -.StateChangeEvent" object 350',- 7. The "agent : StateChangeListener" object
260'' calls the "getOldValue () " method from the "event : StateChangeEvent" object 350',-
8. The "agent : StateChangeListener" object 260'' calls the "getNewValue ( ) " method from the "event : StateChangeEvent" object 350', 9. The "appManager : StateChange" object 260' calls the "resumed " method from the
"appl application" object 270'';
10. The "appl application" object 270'' calls the "StateChangeEvent" method from the
"event : StateChangeEvent" object 350'; and
11. The "appl application" object 270'' calls the "stateChange (StateChangeEvent) " method from the "agent : StateChangeListener" object 260''.
6. Class And Interface Description
As many APIs as possible are defined as interfaces rather than as classes . This provides more freedom and fewer restrictions for the API implementation. Since Java interfaces don't have constructors or static methods, some interfaces such as the ApplicationRegistry have an associated RegistryFactory class that returns the appropriate implementation of the ApplicationRegistry interface. The RegistryFactory class may be based on the Factory Method pattern, which, as is known from the field of object-oriented programming, is a methodology and structure for solving a problem.
Section 6.1 describes the application-related packages .
6.1 org.atsc .application
This package includes classes and interfaces related to application lifecycle, registration and management . 6.1.1 Application
This class represents a base class of all downloadable applications. It provides a basic application lifecycle support and additional descriptive information about the application in the form of an Applicationlnfo class.
This class implements the GenericStates interface to add management capability to a downloadable application. This interface provides a uniform mechanism to manage any object in a standard way. An Application can support a subset of these states as appropriate to the specific application. The class is derived from ObjectStates. Public Operations: start () :
Called by the controlling process to initiate an execution of an application. The application can acquire any needed resources, perform its initialization and start execution. If this application supports the Administrative
State, it will throw an exception when it is in the Locked state.
Public operations are those methods that may be called and used by other objects since they are visible outside of the object (e.g., class). In contrast, private operations are visible only to the class itself.
Stop ( ) :
Called by the controlling process to stop an execution of this application. The application should release all resources and terminate. suspend ( ) :
Called by the controlling process to temporarily pause an execution of this application. The application is not required to give up its resources unless it is requested to do so using a different mechanism.
If this application supports the Operational State, it will change the state to Disabled upon completion of this method. resume 0 :
Called by the controlling process to resume an execution of the application that was previously suspende .
If this application supports the Operational State, it will change the state to Enabled upon completion of this method. getApplicationID () : Locator
Called to determine application identification represented as a Locator such as a URL.
6.1.2 Applicationlnformation
This class provides additional information about an Application, such as a name, version number, author, etc. Public Operations: getTitle 0 : String
Returns a short description of the application, such as its name or title. getVendor 0 : String Returns the name of the application vendor or author . getVersion () : String
Returns the version of this implementation. It consists of a string assigned by the vendor of this implementation , Version numbers use a "Dewey Decimal" syntax that consists of positive decimal integers separated by periods
".", for example, "2.0" or "1.2.3.4.5.6.7". This allows an extensible number to be used to represent major, minor, micro, etc. versions. The version number must begin with a number. getRequiredProfile () : String
Returns the minimum profile identifier, such as DASE profile ID, that is expected by this application to run. getSource 0 : Locator
Returns the original source of the application in a URL format. The source is where the application came from (e.g., channel 39, HBO, CNBC, etc.)
6.1.3 ApplicationRegistry
This interface provides a limited access to the Application Registry. It allows other applications to get information about existing applications, to show an interest in a particular application
(registering it) and getting access to applications themselves. The interface is derived from Registry.
Public Operations: registerApplication (applicationID : Locator) : Called to add this application from the registry. The application is specified via its Locator (URL) . The registry is responsible for locating the application, downloading it and notifying the caller of its availability.
This is a non-blocking method; it will return immediately after checking the request. The ApplicationAvailableEvent will be sent to all ApplicationRegistryListeners with an indication of the result of registering this application. deregisterApplication (applicationID :Locator) : Called to remove this application from the registry . getApplicationlnformation (applicationID: Locator) : Applicationlnformation
Called to obtain a description of this application. The application is identified by a Locator (URL) . getApplication (applicationID rLocator) : Application
Called to get access to a specified loaded and installed application.
This method is protected via the security mechanisms in order to protect unauthorized access to applications. getApplications () : Application!] This method allows a retrieval of all registered applications . This method is protected via the security mechanisms in order to protect unauthorized access to applications. startApplicatio (applicationID:Locator) : Called to invoke a previously registered application. The method call returns as soon as the requested application starts executing in its own thread space .
This method is protected via the security mechanisms in order to protect unauthorized access to applications. addApplicationRegistryListener (listener :
ApplicationRegistryListener) :
Called to register for events generated by the ApplicationRegistry . removeApplicationRegistryListener (listener :
ApplicationRegistryListener) :
Called to deregister for events generated by the ApplicationRegistry.
6.1.4 ApplicationRegistryListener This interface allows an object to listen to changes made to the ApplicationRegistry. Public Operations: registryChange () : ApplicationRegistryEvent
This method of all registered ApplicationRegistryListeners is called by the ApplicationRegistry object when an ApplicationRegistryEvent is fired.
6.1.5 ApplicationRegistryEvent
Derived from EventObject. Public Operations: getApplicationlnformatio () :
Applicationlnformation
Called to determine which application caused the event . getCauseO : short
Called to determine what caused this event.
6.1.6 ApplicationAvailabilityException
This exception is thrown when the requested application availability condition was violated. It is derived from Exception.
6.1.7 ApplicationNotRegisteredException
Derived from ApplicationAvailabilityException
6.1.8 ApplicationAlreadyRegisteredException Derived from ApplicationAvailabilityException
6.1.9 ApplicationCause
Public Attributes: REGISTERED : short = 1 Application was registered in the registry.
"Short" is one format for integers (2 bytes vs. 4 bytes) .
DEREGISTERED : short = 2
Application was deregistered from the registry. STARTED : short = 3
Application was started.
6.2 org.atsc.management
This package includes classes and interfaces related to object management. It can be applied in its entirety or as a subset as relevant to the specific managed entity. It is applicable for managing state and status attributes of DTV receiver resources as well as applications.
It is based on the ITU-T X.731 standard for State Management.
6.2.1 AdministrativeState
An interface that defines Masks for different Administrative States:
-locked: The resource is administratively prohibited from performing services for its users. This could relate to a local lockout, such as a parental lockout of certain channels or applications, but can also be used to remotely (from the headend, uplink or cable operator) "lock" the application so that the user cannot start it, e.g., if a problem with an application is detected.
-Unlocked: The resource is administratively permitted to perform the services to users. This is independent of its inherent operability. -Shutting down: Use of resource is administratively permitted to the existing instances of users only. The manager may at any time cause the object to revert to Unlocked state.
Public Attributes: UNLOCKED : int = 0x00000001 LOCKED : int = 0x00000002
SHUTTING_DOWN : int = 0x00000004
ADMIN_TYPE : short = 1
Public Operations: getAdministrativeState () : int
Called to get the current value of the Administrative State. setLock (administrativeState : int) : Called to change the value of the
Administrative State.
6.2.2 OperationalState
An interface that defines the Operational state for Resources and Applications: -Disabled: The resource is totally inoperable and unable to provide the service to the users.
-Enabled: The resource is partially operable and available for use. Public Attributes: DISABLED : int = 0x8
ENABLED : int = 0x10 OPERATIONAL TYPE : short = 2
Public Operations: getOperationalState () : int Called to get the current value of the
Operational State.
6.2.3 Alarms atus
Interface that defines all the alarm states. When the value of this attribute is an empty set, this implies that none of the status conditions described below are present:
-under repair: The resource is currently being repaired. When the under repair value is present, the operational state is either disabled or enabled. -critical: One or more critical alarms indicating a fault have been detected in the resource, and have not been cleared. The operational state of the managed object can be disabled or enabled.
-major-. One or more major alarms indicating a fault have been detected in the resource, and have not yet been cleared. The operational state of the managed object can be disabled or enabled. -minor: One or more minor alarms indicating a fault have been detected in the resource, and have not yet been cleared. The operational state of the managed object can be disabled or enabled.
-alarm outstanding: One or more alarms have been detected in the resource. The condition may or may not be disabling. If the operational state is enabled, additional attributes, particular to the managed object class, may indicate the nature and cause of the condition and the services that are affected.
The presence of the above alarm state conditions do not suppress the generation of future fault related notifications.
Public Attributes: UNDER_REPAIR : int = 0x00000001
CRITICAL : int = 0x00000002 MAJOR : int = 0x00000004 MINOR : int = 0x00000008 ALARM_OUTSTANDING : int = 0x0010 ALARM_TYPE : short = 8
Public Operations: clearAlarm (alarm : int) :
Called to clear a specific alarm. The controlling process has acted on the alarm. getAlarmStatus () : int Called to get the current set of values of the
Alarm Status.
6.2.4 AvailabilityStatus
Defines the Availability status. When the value of this attribute is an empty set, this implies that none of the status conditions described below are present :
-in test: The resource is undergoing a test procedure. If the administrative state is locked or shutting down, then normal users are precluded from using the resource and the control status attribute has the value reserved for test. Tests that do not exclude additional users can be present in any operational or administrative state but the reserved for test condition should not be present. -failed: The resource has an internal fault that prevents it from operating. The operational state is disabled.
-power off: The resource requires power to be applied and is not powered on. For example, a fuse or other protection device is known to have removed power, or a low voltage condition has been detected. The operational state is disabled.
-off line: The resource requires a routine operation to be performed to place it online and make it available for use. The operation may be manual or automatic, or both. The operational state is disabled.
-off duty: The resource has been made inactive by an internal control process in accordance with a predetermined time schedule. Under normal conditions the control process can be expected to reactivate the resource at some scheduled time, and it is therefore considered to be optional. The operational state is enabled or disabled. -dependency: The resource cannot operate because some other resource on which it depends (e.g., a resource not represented by the same managed object) is unavailable. For example, a device is not accessible because its controller is powered off. The operational state is disabled, -degraded: The service available from the resource is degraded in some respect, such as in speed or operating capacity. Failure of a test or an unacceptable performance measurement has established that some or all services are not functional or are degraded due to the presence of a defect. However, the resource remains available for service, either because some services are satisfactory or because degraded service is preferable to no service at all. Object-specific attributes may be defined to represent further information indicating, for example, which services are not functional and the nature of the degradation. The operational state is enabled. -not installed: The resource represented by the managed object is not present, or is incomplete. For example, a plug- in module is missing, a cable is disconnected or a software module is not loaded. The operational state is disabled.
-log full: This indicates a log full condition, the semantics of which are defined in CCITT Rec . X.735 I ISO/IEC 10164-6.
Public Attributes:
INTEST : int = 0x00000400
FAILED : int = 0x00000800 POWEROFF : int = 0x00001000
OFFLINE : int = 0x00002000
OFFDUTY : int = 0x00004000
DEPENDENCY : int = 0x00008000
DEGRADED : int = 0x00010000 NOT_INSTALLED : int = 0x00020000
LOG_FULL : int = 0x00040000
AVAILABILITY_TYPE : short = 32
Public Operations: getAvailabilityStatus () : int Called to get the current set of values of the
Availability Status.
6.2.5 ProceduralStatus
An interface that defines the Procedural status . The procedural status attribute is supported only by those classes of managed objects that represent some procedure (e.g., a test process) which progresses through a sequence of phases . Depending upon the managed object class definition, the procedure may be required to reach certain phase for the resource to be operational and available for use (i.e., for the managed object to be enabled) . Not all phases may be applicable to every class of managed object. If the value of this attribute is an empty set, the managed object is ready, for example, the initialization is complete.
When the value of this attribute is an empty set, this implies that none of the status conditions described below are present . -initialization required: The resource requires initialization to be invoked by the manager before it can perform its normal functions, and this procedure has not been initiated. The manager may be able to invoke such initialization through an action. The terminating condition may also be present. The operational state is disabled, -not initialized: The resource requires initialization before it can perform its normal functions, and this procedure has not been initiated. The resource initializes itself autonomously, but the operational state may be either disabled or enabled, depending upon the managed object class definition.
-initializing: The resource requires initialization before it can perform its normal functions, and this procedure has been initiated but is not yet complete. When this condition is present, the initialization required condition is absent, since initialization has already begun. The operational state may be disabled or enabled, depending upon the managed object class definition. -reporting: The resource has completed some processing operation and is notifying the results of the operation, e.g., a test process is sending its results. The operational state is enabled. -terminating: The resource is in a termination phase. If the resource does not reinitialize itself autonomously, the Initialization Required condition is also present and the operational state is disabled. Otherwise, the operational state may be either disabled or enabled, depending upon the managed object class definition.
Public Attributes:
INIT_REQUIRED : int = 0x00000020
NOT_INITIALIZED : int = 0x00000040 INITIALIZING : int = 0x00000080
REPORTING : int = 0x00000100
TERMINATING : int = 0x00000200
PROCEDURAL_TYPE : short = 16
Public Operations: getProceduralStatus () : int
Called to get the current set of values of the Procedural Status .
6.2.6 UsageState
This interface defines the Mask for Usage State.
-Idle: The resource is not currently in use.
-Active: The resource is in use, but has spare operating capacity to provide additional users at this instant. -Busy: The resource is in use, but has no spare operating capacity to provide additional users at this instant.
Public Attributes: IDLE : int = 0x00000020
ACTIVE : int = 0x00000040
BUSY : int = 0x00000080
USAGE_TYPE : short = 4
Public Operations: getUsageState () : int
Called to get the current value of the Usage State.
6.2.7 ObjectStates
This interface allows objects which are meant to be managed in a standard way to implement a unified interface that supports all, or a suitable subset of, states and status values. The defined state and status attributes are specified by the ITU-T standard X.731 for State Management. Derived from AlarmStatus, ProceduralStatus,
AvailabilityStatus, UsageState, OperationalState, and AdministrativeState . Public Operations: getStatesSupported () : short [] Called to determine which state and status attributes are supported by the class implementing this interface. addStateChangeListener (listener : StateChangeListener) :
Called to register a StateChangeListener for StateChangeEvents . removestateChangeListener (listener :
StateChangeListener) :
Called to deregister a StateChangeListener. getCurrentState () : int
Called to get the current value of all supported states. Returns a bit mask representing the individual states . getCurrentStatus () : int
Called to get the current value of all supported status attributes. Returns a bit mask representing the individual status attributes.
6.2.8 StateChangeListener
This interface must be implemented by classes interested in being notified of state changes of objects that implement the GenericStates interface. If an object that is a StateChangeListener registers via the addStateChangeListener method, it will be notified by calling the stateChanged method, which includes the appropriate StateChangeEvent. Public Operations: stateChange (event : StateChangeEvent) :
Called to notify a StateChangeListener about a state change. The event parameter provides information about what state has changed.
6.2.9 ResourceStateException A base Exception class related to the GenericState interface. This exception or its extensions are thrown when a invalid state change would be caused by a method call. Example: an object in a Disabled state cannot perform a certain operation unless it is Unlocked.
The class is derived from Exception.
Public Operations: getState () : short Called to determine which state consistency has been violated. getValue () : int
Called to get the current value of the violated state .
6.2.10 StateChangeEvent
This Event is fired when a state changes its value. It is distributed to all registered StateChangeListeners . The event is derived from EventObject . Public Operations: getState () : short
Called to determine which state has changed. getOldValue () : int
Called to determine the original value of the state. getNewValue () : int
Called to determine the new value of the state. getSourcelndica or () : short
Called to determine the cause of the event. 6.2.11 Sourcelndicator
Public Attributes: INTERNAL_CAUSE : short = 1
State change caused by an internal activity. EXTERNAL_CAUSE : short = 2
State change caused by an external activity.
6.3 org.atsc .utility
This package provides a set of supporting and utility classes and interfaces used by other packages.
6.3.1 Registry
This interface provides a common root to all specialized registry interfaces, such as ApplicationRegistry, ResourceRegistry, etc. It is provided so that the RegistryFactory can return a base type. The interface is derived from RegistryType .
Public Operations: getRegistryType () : String Called to determine the type of registry implemented by the object returned by the RegistryFatory ' s method getRegistry ( ) .
6.3.2 RegistryFactory
This class provides a mechanism to create objects that implement specific Registry interfaces, such as the ApplicationRegistry.
Public Operations: RegistryFactory () :
Constructor getRegistry (registryName : String) : Registry
Returns an instance of an object that implements the specified registry interface. Returns null when specified registry does not exist or cannot be created. The type of the returned object will be one of the derived Registry types, such as the ApplicationRegistry.
6.3.3 RegistryType
This interface defines names for different registry types, such as an application registry, etc .
Public Attributes: APPLICATION_REGISTRY : String = ApplicationRegis ry RESOURCE_REGISTRY : String = ResourceRegistry
Totals :
3 Logical Packages
23 Classes
Logical Package Structure: Logical View java lang util org atsc application management utility davic net
Accordingly, it can be seen that the present invention provides a software architecture for managing applications at a television set-top terminal. Application data, such as a program guide, stock ticker or the like, is recovered at the terminal according to a locator associated with the application data. The application data is registered and installed at the terminal, and a user is notified of the presence of the application data after registration and installation thereof.
Although the invention has been described in connection with various specific embodiments, those skilled in the art will appreciate that numerous adaptations and modifications may be made thereto without departing from the spirit and scope of the invention as set forth in the claims.
For example, while various syntax elements have been discussed herein, note that they are examples only, and any syntax may be used. Moreover, the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs) , metropolitan area networks (MANs) , wide area networks (WANs) , internets, intranets, and the Internet, or combinations thereof .
Additionally, known computer hardware, firmware and/or software may be used to implement the invention.

Claims

What is claimed is:
1. A television set-top terminal, comprising: a computer readable medium having computer program code means ; and means for executing said computer program code means to implement an Application Programming Interface (API) wherein: application data which defines applications is recovered at the terminal according to locators associated with the applications; the applications are registered and installed at the terminal ; and a user is notified of the presence of the applications after registration and installation thereof .
2. The terminal of claim 1, wherein: said API enables the retrieval of the applications as downloadable software applications .
3. The terminal of claim 1, wherein: said API enables the retrieval of the applications as broadcast software applications.
4. The terminal of claim 1, wherein: said API is independent of an operating system and hardware of the terminal .
5. The terminal of claim 1, wherein: said API provides an ITU-T X.731-based mechanism for monitoring and controlling the applications .
6. The terminal of claim 1, wherein: said API enables running and subsequent stopping of the applications.
7. The terminal of claim 6, wherein: said API enables pausing of the applications once they are running, and subsequent resuming of the applications.
8. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise their respective states to other applications.
9. The terminal of claim 8, wherein: said API enables at least one of the other applications to access the advertised state of at least one of the particular advertising applications .
10. The terminal of claim 1, wherein: said API enables retrieval of version information associated with the applications.
11. The terminal of claim 1, wherein: said locator is in the form of a Uniform
Resource Locator (URL) .
12. The terminal of claim 1, wherein: said API enables verification of the integrity of the applications.
13. The terminal of claim 1, wherein: said API enables validation of the suitability of the applications for the terminal .
14. The terminal of claim 1, wherein: said API enables administrative locking and unlocking of the applications.
15. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective alarm statuses thereof to other ones of the applications.
16. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective availability statuses thereof to other ones of the applications.
17. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective procedural statuses thereof to other ones of the applications.
18. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective operational states thereof to other ones of the applications.
19. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective administrative states thereof to other ones of the applications.
20. The terminal of claim 1, wherein: said API enables particular ones of the applications to advertise respective usage states thereof to other ones of the applications.
21. A method for implementing a software architecture for a television set-top terminal, comprising the steps of: providing a computer readable medium having computer program code means ; and executing said computer program code means to implement an Application Programming Interface (API) to: recover application data which defines applications at the terminal according to a locator associated with the application data; register and install the applications at the terminal ; and notify a user of the presence of the applications after registration and installation thereof .
PCT/US1999/023721 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications WO2000022816A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
AU64264/99A AU766782B2 (en) 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications
KR1020017004614A KR20010080122A (en) 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications
CA002346483A CA2346483A1 (en) 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications
JP2000576614A JP2002527844A (en) 1998-10-13 1999-10-07 Software application life cycle and management for broadcast applications
EP99951932A EP1119963A1 (en) 1998-10-13 1999-10-07 Software application life cycle and management for broadcast applications
BR9914557-0A BR9914557A (en) 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10394398P 1998-10-13 1998-10-13
US60/103,943 1998-10-13

Publications (1)

Publication Number Publication Date
WO2000022816A1 true WO2000022816A1 (en) 2000-04-20

Family

ID=22297831

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/023721 WO2000022816A1 (en) 1998-10-13 1999-10-07 Software application lifecycle and management for broadcast applications

Country Status (8)

Country Link
EP (1) EP1119963A1 (en)
JP (1) JP2002527844A (en)
KR (1) KR20010080122A (en)
CN (1) CN1330832A (en)
AU (1) AU766782B2 (en)
BR (1) BR9914557A (en)
CA (1) CA2346483A1 (en)
WO (1) WO2000022816A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002076101A1 (en) * 2001-02-13 2002-09-26 Shanghai Dazheng (Group) Co., Ltd. A system and an on-demand method for the same which achieves the random selected video on-demand on a cable tv one-way network
EP1500267A1 (en) * 2002-03-29 2005-01-26 Digeo, Inc. Interactive television ticker having pvr-like capabilities
EP2338279A2 (en) * 2008-09-30 2011-06-29 TQTVD Software Ltda Digital file manager and method for management of digital files in an apparatus for reception of digital television
WO2014073912A1 (en) * 2012-11-11 2014-05-15 엘지전자 주식회사 Method and apparatus for processing digital service signal
US8798612B2 (en) 2003-09-30 2014-08-05 Kyocera Corporation Mobile communication terminal for controlling startup of application based on received message and information providing system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100574317C (en) * 2004-06-02 2009-12-23 华为技术有限公司 The network device management device
EP2109045B1 (en) * 2007-02-02 2017-05-03 Sony Corporation Information processing device, method, and program
CN102012887B (en) * 2010-11-30 2013-02-13 广东星海数字家庭产业技术研究院有限公司 Multi-hardware compatible card swiping driving system
CN106897077B (en) * 2013-12-02 2020-11-10 海信视像科技股份有限公司 Application program control method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
DE19650515A1 (en) * 1996-12-05 1998-06-25 Inst Rundfunktechnik Gmbh Additional data decoding for MPEG2 data stream of image and sound information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
DE19650515A1 (en) * 1996-12-05 1998-06-25 Inst Rundfunktechnik Gmbh Additional data decoding for MPEG2 data stream of image and sound information

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
EVAIN J -P: "THE MULTIMEDIA HOME PLATFORM", EBU REVIEW- TECHNICAL,BE,EUROPEAN BROADCASTING UNION. BRUSSELS, no. 275, pages 4-10, XP000767493, ISSN: 0251-0936 *
RATH K ET AL: "Set-top box control software: a key component in digital video", PHILIPS JOURNAL OF RESEARCH,NL,ELSEVIER, AMSTERDAM, vol. 50, no. 1, pages 185-199, XP004008210, ISSN: 0165-5817 *
WALL W. E.: "An Advanced Video Platform for the Cable Industry", FOURTH INTERNATIONAL WORKSHOP ON COMMUNITY NETWORKING PROCESSING, 11 September 1997 (1997-09-11) - 12 September 1997 (1997-09-12), Atlanta, GA, USA, pages 31 - 33, XP002128740 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002076101A1 (en) * 2001-02-13 2002-09-26 Shanghai Dazheng (Group) Co., Ltd. A system and an on-demand method for the same which achieves the random selected video on-demand on a cable tv one-way network
EP1500267A1 (en) * 2002-03-29 2005-01-26 Digeo, Inc. Interactive television ticker having pvr-like capabilities
EP1500267A4 (en) * 2002-03-29 2006-02-08 Digeo Inc Interactive television ticker having pvr-like capabilities
US8798612B2 (en) 2003-09-30 2014-08-05 Kyocera Corporation Mobile communication terminal for controlling startup of application based on received message and information providing system
US8995953B2 (en) 2003-09-30 2015-03-31 Kyocera Corporation Mobile communication terminal that stores accumulated communication charge for an application
US9008627B2 (en) 2003-09-30 2015-04-14 Kyocera Corporation Mobile communication terminal and information providing system
US9203634B2 (en) 2003-09-30 2015-12-01 Kyocera Corporation Mobile communication terminal, information providing system, program, and computer readable recording medium
EP2338279A2 (en) * 2008-09-30 2011-06-29 TQTVD Software Ltda Digital file manager and method for management of digital files in an apparatus for reception of digital television
EP2338279A4 (en) * 2008-09-30 2013-05-22 Tqtvd Software Ltda Digital file manager and method for management of digital files in an apparatus for reception of digital television
WO2014073912A1 (en) * 2012-11-11 2014-05-15 엘지전자 주식회사 Method and apparatus for processing digital service signal
US9602877B2 (en) 2012-11-11 2017-03-21 Lg Electronics Inc. Method and apparatus for processing digital service signal

Also Published As

Publication number Publication date
JP2002527844A (en) 2002-08-27
KR20010080122A (en) 2001-08-22
CA2346483A1 (en) 2000-04-20
EP1119963A1 (en) 2001-08-01
AU766782B2 (en) 2003-10-23
CN1330832A (en) 2002-01-09
AU6426499A (en) 2000-05-01
BR9914557A (en) 2003-01-07

Similar Documents

Publication Publication Date Title
US7487534B1 (en) Application programming interface (API) for accessing and managing resources in digital television receiver
US9473827B2 (en) Apparatus and methods for implementation of network software interfaces
US8799723B2 (en) Methods and apparatus for event logging in an information network
US20190069027A1 (en) Methods and apparatus for software provisioning of a network device
RU2346407C1 (en) Method and device for updating digital television receiver software
US7149889B2 (en) Proactive reboot
US20030191823A1 (en) System and method for providing customizable device capabilities to network equipment in a non-service affecting manner
EP2362316A1 (en) Monitoring and controlling the operation of devices in a distributed network of broadcast devices
AU766782B2 (en) Software application lifecycle and management for broadcast applications
CN108600841B (en) Parameter operation method of set top box
Peng et al. Digital television application manager
US7917921B2 (en) Control of an interactive application
US20010027464A1 (en) Operating system abstraction interface for broadband terminal platform firmware
AU2002321784A1 (en) Control of an interactive application in a data stream
US20130247123A1 (en) System and method for delivering compressed applications
US10394540B1 (en) Software incremental loader
MXPA01003617A (en) Software application lifecycle and management for broadcast applications
KR20070063571A (en) System and method for reducing the start-up time of mhp applications
KR20080026008A (en) Data broadcasting platform based on gem and its method for the interoperability guarantee of applications among data broadcasting
CA2200010A1 (en) Process management infrastructure
Hendry et al. A dynamically configurable multimedia middleware
GUIDE Green Book
KR20050059351A (en) Method for reporting lock-up information of digital broadcasting receiver
KR20100081408A (en) Broadcasting receiver and method for monitoring a state of return channel

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 99814369.3

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 1999 64264

Country of ref document: AU

Kind code of ref document: A

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2346483

Country of ref document: CA

Ref document number: 2346483

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 09807050

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/003617

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 1020017004614

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2000 576614

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 64264/99

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1999951932

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1999951932

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1020017004614

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 64264/99

Country of ref document: AU

WWW Wipo information: withdrawn in national office

Ref document number: 1020017004614

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1999951932

Country of ref document: EP