WO2001031442A2 - Management of volatile and non-volatile memory resources in digital communications terminals - Google Patents

Management of volatile and non-volatile memory resources in digital communications terminals Download PDF

Info

Publication number
WO2001031442A2
WO2001031442A2 PCT/US2000/041083 US0041083W WO0131442A2 WO 2001031442 A2 WO2001031442 A2 WO 2001031442A2 US 0041083 W US0041083 W US 0041083W WO 0131442 A2 WO0131442 A2 WO 0131442A2
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
application
application data
memory resources
applications
Prior art date
Application number
PCT/US2000/041083
Other languages
French (fr)
Other versions
WO2001031442A3 (en
Inventor
Robert Charles Booth
Donald Tavoletti
Thomas F. Bates, Iv
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
Priority claimed from PCT/US1999/024745 external-priority patent/WO2001031920A1/en
Application filed by General Instrument Corporation filed Critical General Instrument Corporation
Priority to AU16320/01A priority Critical patent/AU1632001A/en
Publication of WO2001031442A2 publication Critical patent/WO2001031442A2/en
Publication of WO2001031442A3 publication Critical patent/WO2001031442A3/en

Links

Classifications

    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4786Supplemental services, e.g. displaying phone caller identification, shopping application e-mailing
    • 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/47End-user applications
    • H04N21/482End-user interface for program selection
    • 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
    • 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
    • H04N21/8173End-user applications, e.g. Web browser, game

Definitions

  • the present invention relates to a method and apparatus for managing memory resources in consumer terminals (e.g., set-top boxes) that utilize multiple applications .
  • Such applications can be provided in different service tiers on a fee basis.
  • the invention is compatible with a "Multiple Application Management
  • broadband digital terminal networks to efficiently support more than one software application.
  • this single software application is an electronic program guide.
  • existing digital terminals cannot support additional software applications that can enhance the user's experience and increase revenue for the service provider.
  • the system should manage the authorization and enabling of the different applications in different digital terminals in a terminal population.
  • the system should inform the user as to what applications are authorized and available for use. Generally, the system should:
  • Billing System e.g., at a headend
  • the present invention provides a system having the above and other advantages.
  • the present invention relates to a method and apparatus for managing memory resources in consumer terminals that utilize multiple applications.
  • Significant features of the present invention include :
  • Software application specific information (such as a Virtual Application Table, or VAT) , including, but not limited to: i) Application authorization requirements used to authorize the download of an application to a digital terminal ; ii) Index or reference to an authorized application (such as on a broadband network multiplex or on the Internet) ; iii) Application authorization requirements used to authorize the execution of (or enabling of) an application in a digital terminal; iv) Application feature authorization requirements used to authorize such features on a digital terminal
  • Application-specific commands and operations to be executed prior to the download and/or launch of an application such as tuning to a specific channel (or channels, if multiple tuners are available)
  • Application menu data used by a digital terminal for creating a menu of authorized applications available for selection by an end user such as text data describing one or more authorized applications (i.e., the names of the applications);
  • Initialization and configuration information allowing: i) A digital terminal to be configured for multiple applications; ii) A digital terminal to be allocated a specified amount of volatile memory for the download of multiple applications; and iii) A digital consumer terminal to receive the software.
  • the invention also provides dynamic creation of user application selection menu(s) containing a list of applications which are currently authorized for a digital terminal.
  • the invention also provides removal of application data in non-volatile or volatile memory based upon the current authorization state of application versions. 4. The invention also provides authorization of the following via a billing system interface:
  • a terminal that manages multiple applications includes memory resources, means for determining whether the memory resources as currently configured are sufficient to accommodate downloading of application data received by the terminal , and memory managing means for managing the memory resources to configure the memory resources to accommodate the downloading of the application data received by the terminal .
  • the memory resources may be managed by determining whether space is available to store a new application. Data can be deleted, or transferred between a nonvolatile memory and a volatile memory, to make space available for a new application.
  • a user interface may allow the user to assist in this process by identifying currently-stored applications that are less desired than the new application.
  • FIG. 1 illustrates an overview of a digital network for providing multiple application management in accordance with the present invention.
  • FIG. 2 illustrates a digital terminal with a multiple application management capability in accordance with the present invention.
  • FIG. 3 illustrates the creation of a local virtual application table (VAT) for a terminal based on the terminal's authorized tiers in accordance with the present invention.
  • VAT virtual application table
  • FIG. 4 illustrates an example dynamically-created menu of the available applications at a terminal in accordance with the present invention.
  • FIG. 5 illustrates a method for providing multiple application management in a digital network in accordance with the present invention.
  • FIG. 1 illustrates an overview of a digital network for providing multiple application management in accordance with the present invention.
  • a business system 105 which may be located at, or otherwise be in communication with, the headend 115 of a network such as a cable or satellite television network, manages the billing and authorization of applications for each specific terminal in a network.
  • Users of the network can make arrangements to receive authorizations for the applications using conventional techniques, e.g., by phoning an operator and authorizing a credit card payment, or by use of an upstream communication path on the network, if available.
  • a user may request an authorization for an e-mail application, assuming the terminal has the capability to access a network such as the Internet.
  • the user may have the option of requesting a basic or an enhanced e-mail capability for different fees.
  • a virtual application can be viewed as a "service” from the perspective of the Business System 105.
  • the network operator has the capability to authorize specific terminals to receive an application without a user request, e.g., as a promotion, or as part of a package deal when other programming services are ordered, or some other goal is reached, such as the user purchasing a certain dollar value of video-on-demand programs.
  • the business system 105 can be implemented with a computer and known record-keeping and billing procedures .
  • the business system 105 communicates with a controller 120, which communicates with a download server 110.
  • the download server 110 transmits the application data via an interface 130, and physical network and intermediate equipment 140 to a terminal 150.
  • the example terminal 150 is assumed to be part of a large terminal population.
  • the application data may be broadcast to all terminals, but preferably can only be recovered by the terminals based on control data from the controller 120.
  • control data can be provided to the terminal 150 by other means, such as locally using a smart card, or at the time of installation or manufacture of the terminal.
  • control data can be provided via a controller that is under the direct control of a headend 115 is believed to provide the greatest flexibility since updated control data can be transmitted immediately to the terminal 150.
  • known decoder addressing and conditional access techniques can be used to deliver specific control data to specific terminals or groups of terminals.
  • the control data can be encrypted under a key that has been assigned to the specific terminal. 10
  • the controller 120 thus configures and authorizes the terminals under the control of the Business System 105.
  • Programming services e.g., conventional television programs, or other video, audio or other data, is provided by a programming services function 125.
  • the application and control data can be encapsulated in transport packets, for example, such as MPEG-2 packets, using known techniques.
  • the application and control data can be carried in-band, with the programming services, or out-of-band, apart from the programming services.
  • the application data can be sent via any reliable transport mechanism, for example via TCP/IP.
  • the physical network and intermediate equipment 140 may include cable and/or optical fiber, as well as required switches, amplifiers and other conventional components .
  • FIG. 2 illustrates a digital terminal with multiple application management capability in accordance with the present invention. Like-numbered elements correspond to one another in the figures.
  • the terminal 150 receives MPEG messages (packets) , such as an example packet 205, from a communication channel . Use of MPEG packets is discussed herein only as an example. Any digital data transport protocol may be used.
  • An MPEG packet processor and packet identifier (PID) filter 210 processes the packet 205 to recover the control data from the controller 120 of FIG. 1, which is provided to a security processor 250 and a Multiple
  • MAM Application Manager
  • terminal functions can be implemented using any known software, firmware and/or hardware techniques.
  • the control data can be stored at a memory associated with the terminal 150.
  • the packet processor 210 also recovers the application data and forwards it to a downloader 230.
  • the downloader 230 has associated memory, such as a volatile memory 232 and/or a non-volatile memory 234, for storing the downloaded application data, including the applications themselves, such as code objects, and related data. Note that these memories 232 and 234 are examples of memory spaces, and do not necessarily designate a single hardware component.
  • the memory space may be shared by one or more hardware components that are located anywhere in, or associated with, the terminal 150.
  • Downloading refers to recovering and storing.
  • the downloader 230 also receives a "Tune Download Channel" message that commands it to download particular applications, and/or particular versions of the same application from a specific channel.
  • the channel may be identified by a PID in a known manner.
  • the packet processor 210 may also recover conventional programming services for decoding, e.g., at an MPEG video decoder 215, and display on a display/user interface 200.
  • the MAM 240 can output data to the display 200 for launching the applications, such as e-mail or web browser, stock ticker, or the like, separately or together with data from a programming service. 12
  • the MAM 240 can also output data to the display 200 for providing an on-screen menu of available applications (see FIG. 4) .
  • a user may interact with the menu via a user command processor 255, e.g., which receives input signals from a keyboard, infra-red remote control of the like.
  • Home VAT data refers to common VAT table that is downloaded to all terminals, while local VAT data refers to data that is used by each terminal, and is derived as a subset of the home VAT data based on the terminal's authorization state. Essentially, the local VAT data designates the latest version of each application that a terminal is authorized to download and access . The local VAT data can therefore be different for different terminals.
  • the message filter/router 225 sends data such as control data and authorization data, including the home
  • control data is used to authorize terminals to acquire multiple applications, and to enable the applications for use within the terminal .
  • the MAM 240 can be implemented by using new messages in the terminal 150, as well as some existing messages that are modified and/or interpreted differently. 13
  • the MAM 240 receives and processes these messages, and uses the security processor 250 to determine which of the multiple applications is authorized for acquisition and enabling at the terminal.
  • Virtual applications are applications that can be identified, downloaded, and enabled under the control of the MAM 240.
  • the virtual applications can be transported to the terminal 150 in download messages. However, the applications could downloaded via other means, such as via HTTP.
  • Virtual Application configuration messages and Virtual Object messages which contain Virtual Application Tables, are examples of messages which can be used in a digital network, such as the one depicted in FIG. 1, for managing multiple applications, and for configuring a terminal for multiple application management .
  • the data structures and information contained in the messages also provide authorization requirements needed by a terminal for downloading an application, and for enabling and executing an application or any special characteristics that may be associated with the application.
  • the terminal receives authorization rights for an application or for any special characteristics associated with an application.
  • EMMs sent from the controller can authorize a terminal for an application or its characteristics. This is done in the same manner that a terminal is authorized for a video service. 14
  • the MAM 240 uses the security processor module 250 within the terminal 150 to determine the authorization state, or other special characteristics, of any given version of an application. In one possible implementation, the MAM 240 maintains the required authorization state of a virtual application in the non-volatile memory 234 within the terminal 150.
  • the authorization state of an application determines if an application can be downloaded by the downloader 230 at the terminal 150, i.e., whether an application (or a specific version of the application) is preserved in, purged from, or deleted from, the downloader' s memory.
  • the authorization state of an application may determine whether or not specified resources can be pre- allocated for the application in the terminal, such as the amount of volatile memory 232 and non-volatile memory 234. For example, an appropriate amount of memory can be allocated for a new application which is to be downloaded. A determination can be made as to whether there is enough memory space prior to downloading the new application. If there is enough space, the application data is downloaded and stored, if there is not enough memory available, a number of options are possible for configuring the memory resources. For example, downloading of the application can be bypassed. Or, a currently-stored application can be deleted to make room for the new application. Or, a currently-stored application can be moved from a non- 15
  • volatile memory to a volatile memory to make room for the new application in the non-volatile memory.
  • the application can be stored in volatile memory instead of non-volatile memory. To this end, a determination is made of the available space in both the volatile and non-volatile memories.
  • the user can be given a warning message, e.g., via an on-screen display, to select an appropriate action when the memory resources are not sufficient to store an application, or transfer of data between volatile and non-volatile memories is needed.
  • the user may be given the option of deleting, or transferring from non-volatile memory to volatile memory, an existing application that is not as important to the user as the new application.
  • Appropriate fields can be provided in the download message that inform the terminal of the memory requirements of the associated application.
  • the terminal can determine the space available in memory using known techniques, and compare this to the field of the download message to determine if there is enough space to store the application.
  • the memory resources of the terminal are managed by configuring them to accommodate the download of application data for a new application, including a new version of an application.
  • the messages from the controller 120 also provide the terminals with additional information pertaining to the applications, such as an index or reference to an application code object on a network.
  • the messages also provide information regarding the specific channel or channels which the terminal 150 may tune to for acquiring video, audio, and/or data content associated with the applications.
  • the VAT data may be stored in the non-volatile memory 234, which may be, e.g., non-volatile flash memory, battery-backed SRAM, a hard drive if available, or any other non-volatile memory available in the terminal.
  • the VAT data may be stored in the volatile memory 232, in which case it is simply re- acquired from the network each time the terminal is powered on.
  • the VAT data may be sent to the terminal 150 from the controller 120 on a cyclic basis, e.g., every twenty seconds. However, this time frame can be adjusted based upon specific network configurations and demands .
  • a virtual application can be configured and enabled as follows.
  • the terminal 150 may optionally receive a configuration message ("Virtual Application Config") that informs it that it is configured in a MAM state.
  • the terminal can receive a "virtual object message", which provides the home VAT to the terminal.
  • the terminal 150 derives it's own local VAT 260 based on the received home VAT data 265 and the received control data, which sets the terminal's authorized tier(s) (e.g., authorization state). 17
  • the MAM 240 can maintain the information from the Virtual Application Config. and the Virtual Object messages in non-volatile memory. The information would thus be preserved through any warm resets of the terminal.
  • a warm reset causes volatile memory, such as DRAM to be cleared/reset. This may be caused by unplugging the terminal from its power supply, for example .
  • the MAM 240 communicates with the security processor 250 to check the required authorization tiers for applications, which are specified in the received VAT data.
  • the authorization state information is typically maintained in non-volatile memory.
  • the downloader 230 maintains a directory of the versions of the code objects that are already stored. If the Tune Download Channel message for a virtual application is received by the downloader 230, the downloader 230 checks its object directory to determine if the version of the code object specified in the message is already present. If the code object (e.g., application) is not already present, the downloader 230 will check with the MAM 240 to determine if the version of the application is authorized for downloading.
  • the code object e.g., application
  • the downloader 230 tunes to a download channel for the application and attempts to acquire the specified application version. After acquiring a virtual application, the downloader 230 de-tunes from the download channel. 18
  • the applications can be assigned a default "disabled" status when first recovered.
  • the MAM 240 also informs the downloader 230 whether to enable the applications or to leave them disabled.
  • the applications can be automatically enabled when they are recovered by the downloader 230.
  • only one application is enabled at any given time. This may be the case when current applications do not gracefully share resources, such as memory, queues, and so forth, so the MAM 240 has to disable an application to reacquire these resources for use by another application.
  • the terminal has the capability of enabling more than one application at a time.
  • a second set of states, or modes of operation can be added for applications that are enabled. This set would consist of foreground and background modes. In this type of implementation, only one application will ever be the "foreground" application at any time.
  • the MAM can also dynamically prepare an on-screen menu based upon the authorized virtual applications, as discussed further in connection with FIG. 4.
  • the MAM 240 can tune, if specified, to a channel (or channels) that are associated with a virtual application prior to, concurrent with, or after launching the virtual application.
  • the virtual application may comprise a banner of sports scores, in which case the MAM 240 can cause a specific sports-oriented programming service (e.g., ESPN(tm)) to be tuned and displayed.
  • a specific sports-oriented programming service e.g., ESPN(tm)
  • sports scores may be automatically launched when the programming service is tuned.
  • the MAM 240 can re-check the required authorizations of all virtual applications if the terminal 150 receives a new VAT, receives a change in its existing VAT, or receives new authorization rights, e.g., via an EMM.
  • the VAT data and control messages can be transmitted to the terminals on an on-going basis, at regular intervals, or only at specific times.
  • each VAT may have revision data, such as a sequence number, that changes whenever application versions are added or removed.
  • the MAM 240 is alerted by the revision data to re-check its authorizations and modify its local VAT, if necessary. Or, the MAM 240 may simply recheck its authorizations periodically or based on some other criteria.
  • the MAM 240 can provide control signals to the downloader 230, based upon the existence of and/or the authorization state of a virtual application, which determine whether or not the downloader 230 should remove or maintain the code objects related to the virtual application (s) that are stored in the downloader' s memories 232 and/or 234. Generally, lower versions of an application (authorized or unauthorized) that are being replaced should be deleted when the new highest authorized version is downloaded.
  • configuration data is used to configure or de- configure a terminal for MAM, and to provide MAM configuration settings to a terminal.
  • Information derived from the Virtual Application Config message is typically stored by the terminal in non-volatile memory (e.g., via the MAM 240) to preserve it through (warm) resets of the terminal .
  • the Virtual Application Config message can include the following significant fields in an example syntax: "config_for_mul ti_apps " , when set to "yes", configures a terminal for MAM capability. The terminal is then considered to be in a configured_for_MAM state, and is able to receive other messages which have the conf igured_for_MAM decoder condition in the message preamble. If this field is cleared to "no", the terminal will no longer be configured_for_MAM, nor enabled for MAM;
  • home_VAT_ID identifies a VAT which is used as a terminal's default VAT ( “home_VAT” ) ;
  • defaul t_application_ID identifies an application which will be the default virtual application for a 21
  • This ID correlates to the object_application_ID of a virtual application in the home_VAT.
  • volatile_memory_config specifies the number of bytes of volatile memory that the terminal allocates and make available for the download of virtual applications other than the default virtual application.
  • the present invention can use a message type known as a "Virtual Object message", e.g., to deliver a VAT to a terminal.
  • this message can be carried in a network stream (an MPEG standard that denotes any data delivered on the network PID within a multiplex) , and may be sent either broadcast- addressed (to all terminals in the network) , multicast- addressed (to a group of terminals) or singlecast- addressed (to an individual terminal) .
  • the controller 120 in FIG. 1 prefixes the virtual object message with a configured_for_MAM decoder condition in the message preamble. As a result, only terminals which are configured_for_MAM will process this message. This ensures that terminals which are not running a MAM capable firmware platform code will fail the decoder condition test, and will not acquire a VAT.
  • a terminal is considered to be in a MAM enabled state if it is configured_for_MAM, and has completely acquired the home_VAT.
  • Information derived from the Virtual Object message, including the VAT, is stored typically by the terminal in non-volatile memory (e.g., at the MAM 240), to preserve it through (warm) resets of the terminal. 22
  • table_subtype specifies that this Virtual Object message contains a VAT
  • VAT_ID specifies an identifier for the VAT contained in this message. This ID may be the same as the home_VAT_ID from the Virtual Application Config message
  • seguence_r2u_nber specifies a version number for the VAT. If the seguence_nu_7uber for the VAT included in this message is different from the seguence_numfoer associated with the VAT, and the same VAT_ID is already present in the terminal, this implies that the VAT has changed; " number _of_va_records " specifies how many VAT records are present in the VAT included in this message; and
  • va_record is an array of VAT records constituting the VAT. Each record identifies a virtual application. One of the records may identify the virtual application whose defaul t_application_ID was given in the Virtual Application Config message.
  • Each record of the VAT can include the following significant fields: "object_application_ID" contains a numeric identifier for the virtual application. The identifier should be unique among all va_records within a VAT;
  • VCT_source_ID is a list of identifiers of programming “sources” which are associated with the virtual application. Programming sources include any video, audio, or data “sources” that can be identified 23
  • source_ID typically used to map a source name (e.g., ABC, HBO) to a virtual channel.
  • the terminal may use these values to obtain a virtual channel to be tuned to before enabling the virtual application.
  • VCT_application_ID is a list of identifiers of "services” associated with the virtual application. The values and usage are the same as described for VCT_source_ID above; "object_ version " is a list of version numbers for each of the versions which can exist of a virtual application. The terminal will download the highest authorized version;
  • “virtual_application_tier” is a list of required authorization tiers for the virtual application, one per version. All versions of an application may have the same or different tiers. This specifies the authorization requirements for the versions of the virtual application; and "virtual_rzame” is a multi-lingual text string of printable ASCII characters. The name can be used for on-screen displays at the terminal.
  • Tune Download Channel Message is a sub-command of the Download Control message.
  • a field " tune_download_function_field” can specify whether the message applies to a "virtual_application " or to a standard, non-MAM application.
  • the Tune Download Channel message for all virtual applications should contain the configured_for_MAM decoder condition in the message preamble. As a result, only terminals which are configured_for_MAM will process 24
  • the virtual application is identified by the obj_application_ID field in the message. This virtual application then correlates to the one identified by the obj ect_application_ ID field in one of the records of the VAT (i.e., the home_VAT) maintained by the MAM 240 of FIG. 2. Moreover, the obj _application_ID, tune_ojbject_.na.me and tune_ojbject_version in the Tune Download Channel message should correlate with the application_ID, object_name and object_version, respectively, in the Download message for the virtual application.
  • a Tune Download Channel message can be provided for a system-wide default virtual application.
  • the conf igured_for_MAM decoder condition is not used for this default application. As a result, all terminals will always be able to acquire the system-wide default application.
  • the invention may also replace the use of Download Control messages. Since the MAM 240 has the information (via the VAT) about which applications should be enabled, disabled, purged, etc., the Downloader 230 can no longer directly act on the receipt of the Download Control sub-command message. As a result, if MAM is enabled, the "enable”, “disable”, “delete” and “purge” functions specified in a Download Control message, for virtual applications, are ignored by the Downloader 230. 25
  • the "enable" function specified in a Download Control message for a virtual application causes the Downloader 230 to interrogate the MAM 240 to see if a particular application should indeed be enabled. The MAM responds back with instructions to enable or disable the virtual application.
  • the invention may also use a "Virtual Channel Config Message " . If MAM is enabled, the terminal will disregard the turnon_VC_defined, turnon_VC, turnoff_VC_de fined and turnoff_VC fields specified by this message if the default virtual application has a defined VCT_source_ID . "VC" indicates a virtual channel. In this case, the terminal will tune to the channel associated with the VCT_source_ID given for the default virtual application.
  • the MAM feature requires the presence of versions of software, in the controller 120, and in a terminal 150, which are capable of executing the MAM functionality.
  • the controller 120 should have a version of software which can create and send the new and modified messages to the terminals.
  • the controller should be capable of providing one-way refreshes of specific configuration messages to terminals.
  • the controller should also provide multiple billing system authorization support for multiple applications.
  • the invention implements a MAM while minimizing required changes to existing applications by providing a default virtual application, such as an electronic program guide (EPG) , on a system-wide basis.
  • EPG electronic program guide
  • the Tune Download Channel message for the system- wide default virtual application is the only such message in the system that specifies the object as a virtual application, and does not require a configured_for_MAM decoder condition in the preamble of the message.
  • Each Tune Download Channel message specifies an object to download.
  • the message includes an application name and version as well as a channel where the application object is being transmitted. When a terminal receives this message, it tunes to the specified channel to acquire the object.
  • this message also includes the application_ID for the object in addition to the information included for a standard application.
  • any terminal that is not running a version of software that is MAM capable will acquire and enable the system-wide default application without recognizing it as a virtual application.
  • a terminal which is running a MAM capable version of firmware platform code can also acquire the system- wide default application. However, after acquiring the application, it will be treated as a virtual application to be managed by the MAM 240. 27
  • a MAM enabled terminal ' s default virtual application is downloaded into non-volatile memory at the terminal and also uses non-volatile memory for its settings so that the default is preserved even while another virtual application is enabled.
  • the default virtual application if present in the terminal, is typically enabled after any warm reset of the terminal , or when the terminal transitions from a "Terminal On” to a “Terminal Off” state.
  • FIG. 3 illustrates the creation of a local VAT for a terminal based on the terminal's authorized tiers in accordance with the present invention.
  • VAT data that is received by each MAM configured terminal in the network shown generally at 300, includes a number of rows 310, 330, 350 and 370 of records ( va_records) .
  • Records 312, 332, 352 and 372 contain the identifications ( object_application_ID) of the first, second, third and fourth applications (i.e., Applications No. 1, No. 2, No. 3, and No. 4, respectively) .
  • Records 314, 316 and 318 contain the version identifier ( object_ version) and required tier ( virtual_application_tier) for a first application.
  • record 314 has a version "1.0" and a required tier of "4"
  • record 316 has a version "1.1” and a required tier of "5"
  • record 318 has a version "1.2” and a required tier of "7”.
  • Application No 1. might be an e-mail capability, where version 1.0 is a basic version, version 1.1 is an enhanced version, and version 1.2 is a 28
  • the invention allows a network operator to control which terminals can access which version of Application No. 1. Those who pay a small fee can access version 1.0, those who pay a larger fee can access version 1.1, and others can access version 1.2, e.g., to provide feedback to the network operator as to whether the version 1.2 works properly or provides desirable features.
  • record 334 has a version "2.0” and a required tier of "5"
  • record 336 has a version "2.1” and a required tier of "6”.
  • record 354 has a version "7.5" and a required tier of "8".
  • record 374 has a version "1.0” and a required tier of "3”
  • record 376 has a version "1.1” and a required tier of "4"
  • record 378 has a version "2.0” and a required tier of "7”
  • record 379 has a version "2.1” and a required tier of "8”.
  • the virtual_application_name is a text string that is associated with all versions of a virtual application and is displayed on the dynamically built menu if one of the versions is authorized in the terminal.
  • the local VAT data that is authorized at the terminal is assembled from the received VAT records 300 according to the tier ( virtual_application_tier) with which the particular terminal is authorized.
  • the terminal ' s authorized rights include tiers "4" and "5".
  • the local VAT data 355 and its tiers denote an authorization state of the terminal. 29
  • the matching tier requirements in the VAT records 300 are in records 316, 334 and 376.
  • the terminal's local VAT 355 includes these records, e.g., stored in the VAT memory 260 of FIG. 2, as records 316', 334' and 376'.
  • the required authorization state of an application is said to correspond to the authorization state of a terminal when the terminal's security processor has received a matching tier via an EMM.
  • the terminal If there is no matching tier for the terminal, e.g., as with Application No. 3, the terminal is not authorized to receive that application, and it is not downloaded.
  • the VAT data 300 shown is only an example, and various numbers of applications, versions and tiers may be present in the VAT data. Additionally, the local VAT 355 may include all, some or none of the applications in the received home_VAT 300.
  • FIG. 4 illustrates an example dynamically-created menu of the available applications at a terminal in accordance with the present invention.
  • the menu 400 presents the available authorized applications to the user, e.g., on a television screen. Note that the menu items correspond to the terminal's local VAT 355. 30
  • Each application may have a user-friendly textual data ( virtual_name) associated with it.
  • the messages provided to the terminal provide this textual data that describes the application. This data can be used on the display menu 400 of the terminal.
  • Application Nos . 1, 2 and 4 may have the textual data "E-mail”, “Video-on-Demand, and "Web Browser", respectively.
  • an additional textual string denotes the version of the application, or the corresponding service tier that the user has purchased.
  • the versions may be denotes by bronze, silver or gold or the like.
  • MAM 240 of FIG. 2 can dynamically construct a menu of authorized applications.
  • a user of a terminal can activate this menu and launch (e.g., start) one or more of the available applications by conventional interface techniques, e.g., using a key on a remote control .
  • a particular key may be reserved on the remote control as a "MAM menu button" .
  • the MAM may build a menu consisting of a list of names of the authorized applications. This can be accomplished using known software techniques, for example.
  • the menu may also include an "Exit" item to exit the menu.
  • the menu may be implemented as a full or partial screen overlay with the audio muted.
  • front panel LEDs may be cleared while the menu is displayed.
  • a user can activate the display of the menu by pressing the "MAM menu button” on the remote control, and use the “up” or “down” keys on the remote control or on the front panel to scroll through the menu.
  • a user can select an application for launch by pressing the "select” button on the remote control or the front panel of the terminal .
  • MAM 240 may inform the downloader 230 to enable the application, and the application is started (e.g., launched) .
  • the terminal may tune to a specified channel before enabling the application. If the user selection is not authorized, or is not present in the VAT or in the downloaded objects directory, the MAM 240 will try to re-create the menu and re-display it. After several failed attempts to launch a specific virtual application, the terminal will resort to some type of graceful recovery action.
  • the user can choose to not select any virtual application on the menu, as a result of which the MAM will re-enable the previously enabled (i.e. - prior to the menu being displayed) virtual application, or resort to a graceful recovery action that may enable the terminal's default virtual application.
  • FIG. 5 illustrates a method for providing multiple application management in a digital network in accordance with the present invention. A simplified overview of the method of the present invention is shown. 32
  • control data including terminal authorization rights, and MAM configuration data with an enable signal are sent to each terminal, or selected terminals, in a network.
  • application data i.e., VAT data
  • authorization requirements e.g., required tiers
  • the corresponding authorization rights and configuration data are stored at the terminals.
  • each terminal can have its own authorization state, which may be subsequently replaced or supplemented.
  • the terminal compares it authorization state to the authorization requirements for each version of the applications in the home VAT to build and store its local VAT.
  • the highest versions of the applications whose required authorization state corresponds to the terminal's authorization state i.e., of the versions in the local VAT
  • the highest versions of the applications whose required authorization state corresponds to the terminal's authorization state are downloaded.
  • Lower versions (authorized or unauthorized) of the applications that are being replaced, if any, are erased at the terminal.
  • the terminal continues to monitor the received control data and VAT data to determine if this data has been changed. If so, blocks 520, 530 and 540 are repeated.
  • a change in the terminal's authorization state and/or the VAT data may or may not result in a new home or local VAT and downloading of new applications. Accordingly, it can be seen that the present invention provides a method and apparatus for managing memory resources in consumer terminals that utilize 33
  • Each terminal builds its own "local" VAT that identifies the application/versions for which it is authorized.
  • the invention allows network operators to provide the different applications on a fee basis.
  • a customized on-screen menu for each terminal can be dynamically generated based on the terminal's local VAT data.
  • memory resources are managed by determining whether space is available to store a new application. Data can be deleted, or transferred between non-volatile and volatile memory, to make space available for a new application.
  • a user interface 200 may allow the user to assist in this process by identifying currently-stored applications that are less desired than the new application.
  • DSLs Digital Subscriber Loops
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof, may be used.

Abstract

Memory resources, such as volatile memory (232) and non-volatile memory (234), are managed in a consumer terminal (150), such as a set-top box. The terminal is authorized to use one or more of a number of available applications, such as e-mail, video on demand, stock ticker, or a web browser. The memory resources are managed by determining whether space is available to store a new application. Data can be deleted, or transfered between the non-volatile memory (234) and the volatile memory (232), to make space available for a new application. A user interface (200) may allow the user to assist in this process by identifying currently-stored applications that are less desired than the new application.

Description

For two-letter codes and other abbreviations, refer to the "Guidance Notes on Codes and Abbreviations" appearing at the beginning of each regular issue of the PCT Gazette.
MANAGEMENT OF VOLATILE AND NON-VOLATILE MEMORY RESOURCES IN DIGITAL COMMUNICATIONS TERMINALS
BACKGROUND OF THE INVENTION
This application is a continuation-in-part of International Application No. PCT/US99/24745, filed October 22, 1999, and claims priority of U.S. Provisional Application No. 60/161,176, filed October 22, 1999.
The present invention relates to a method and apparatus for managing memory resources in consumer terminals (e.g., set-top boxes) that utilize multiple applications .
Such applications can be provided in different service tiers on a fee basis. The invention is compatible with a "Multiple Application Management
(MAM) " feature that defines mechanisms, messages and data structures.
The communication of data via digital networks, including broadband communication networks such as cable and satellite television networks, has become increasingly popular. Such networks allow consumers and others to receive high quality video and audio programming services. Moreover, commonly an application such as an Electronic Program Guide (EPG) which lists the available programming services has been made available.
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, such as electronic program guides, Internet browsers, video on demand, audio on demand, mail services (e.g., text e- mail, voice mail, audio mail, and/or video mail), telephony services, stock prices, weather data, travel information, games, gambling, banking, shopping, voting, and others .
However, currently there is a lack of capability within broadband digital terminal networks to efficiently support more than one software application. As mentioned, typically this single software application is an electronic program guide. Thus, existing digital terminals cannot support additional software applications that can enhance the user's experience and increase revenue for the service provider.
Accordingly, it would be desirable to provide the capability for a digital terminal to download more than one application, and to manage the resources used by different applications. The system should manage the authorization and enabling of the different applications in different digital terminals in a terminal population.
The system should inform the user as to what applications are authorized and available for use. Generally, the system should:
1. allow a digital terminal to support multiple applications;
2. inform the terminal and end user, e.g., via an on-screen menu, which applications are authorized in a given terminal, and allow the user to select (e.g., "launch") an application; 3. indicate to a digital terminal if an application has special features (e.g., such as built-in e-mail) , and authorize these features in the digital terminal ; 4. indicate that a specific programming source or channel should be tuned to before an application is launched;
5. effectively manage volatile and non-volatile memory (terminal resources) used by an application; 6. authorize an application on a terminal via a
Billing System (e.g., at a headend), and provide the different applications on a fee basis, including the provision of different service tiers;
7. provide conditional downloading of applications while avoiding unnecessary expense in terms of security processing;
8. provide backward compatibility with existing terminals in the network (e.g., operator's plant) to allow the terminals to continue to operate without any detrimental side effects; and
9. provide updated and test versions of applications to specific terminals, and manage the enabling thereof at the terminals.
The present invention provides a system having the above and other advantages. SUMMARY OF THE INVENTION
The present invention relates to a method and apparatus for managing memory resources in consumer terminals that utilize multiple applications. Significant features of the present invention include :
1. Use of a digital message (such as a Virtual Object message encapsulated within an MPEG message) , transmitted across any network (such as a broadband cable network) , to deliver the following to a digital consumer terminal :
1-A. Software application specific information (such as a Virtual Application Table, or VAT) , including, but not limited to: i) Application authorization requirements used to authorize the download of an application to a digital terminal ; ii) Index or reference to an authorized application (such as on a broadband network multiplex or on the Internet) ; iii) Application authorization requirements used to authorize the execution of (or enabling of) an application in a digital terminal; iv) Application feature authorization requirements used to authorize such features on a digital terminal
(e.g., built-in e-mail, video-on-demand, or web browsing capabilities associated with an application such as an electronic program guide) ; v) Application-specific commands and operations to be executed prior to the download and/or launch of an application, such as tuning to a specific channel (or channels, if multiple tuners are available) ; vi) Application menu data used by a digital terminal for creating a menu of authorized applications available for selection by an end user, such as text data describing one or more authorized applications (i.e., the names of the applications); and
1-B. Initialization and configuration information allowing: i) A digital terminal to be configured for multiple applications; ii) A digital terminal to be allocated a specified amount of volatile memory for the download of multiple applications; and iii) A digital consumer terminal to receive the software.
2. The invention also provides dynamic creation of user application selection menu(s) containing a list of applications which are currently authorized for a digital terminal.
3. The invention also provides removal of application data in non-volatile or volatile memory based upon the current authorization state of application versions. 4. The invention also provides authorization of the following via a billing system interface:
A. Access to broadcast and/or interactive data servers allowing for access to data objects or data services, such as software applications and associated application features. In accordance with the present invention, a terminal that manages multiple applications includes memory resources, means for determining whether the memory resources as currently configured are sufficient to accommodate downloading of application data received by the terminal , and memory managing means for managing the memory resources to configure the memory resources to accommodate the downloading of the application data received by the terminal . The memory resources may be managed by determining whether space is available to store a new application. Data can be deleted, or transferred between a nonvolatile memory and a volatile memory, to make space available for a new application. A user interface may allow the user to assist in this process by identifying currently-stored applications that are less desired than the new application.
A corresponding method is also presented.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an overview of a digital network for providing multiple application management in accordance with the present invention. FIG. 2 illustrates a digital terminal with a multiple application management capability in accordance with the present invention.
FIG. 3 illustrates the creation of a local virtual application table (VAT) for a terminal based on the terminal's authorized tiers in accordance with the present invention.
FIG. 4 illustrates an example dynamically-created menu of the available applications at a terminal in accordance with the present invention. FIG. 5 illustrates a method for providing multiple application management in a digital network in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention relates to a method and apparatus for managing memory resources in consumer terminals that utilize multiple applications. FIG. 1 illustrates an overview of a digital network for providing multiple application management in accordance with the present invention. A business system 105, which may be located at, or otherwise be in communication with, the headend 115 of a network such as a cable or satellite television network, manages the billing and authorization of applications for each specific terminal in a network.
Users of the network can make arrangements to receive authorizations for the applications using conventional techniques, e.g., by phoning an operator and authorizing a credit card payment, or by use of an upstream communication path on the network, if available. For example, a user may request an authorization for an e-mail application, assuming the terminal has the capability to access a network such as the Internet. Moreover, the user may have the option of requesting a basic or an enhanced e-mail capability for different fees.
Thus, a virtual application can be viewed as a "service" from the perspective of the Business System 105.
Moreover, the network operator has the capability to authorize specific terminals to receive an application without a user request, e.g., as a promotion, or as part of a package deal when other programming services are ordered, or some other goal is reached, such as the user purchasing a certain dollar value of video-on-demand programs.
The business system 105 can be implemented with a computer and known record-keeping and billing procedures .
The business system 105 communicates with a controller 120, which communicates with a download server 110. The download server 110 transmits the application data via an interface 130, and physical network and intermediate equipment 140 to a terminal 150. Note that the example terminal 150 is assumed to be part of a large terminal population. The application data may be broadcast to all terminals, but preferably can only be recovered by the terminals based on control data from the controller 120.
Alternatively, or in addition, control data can be provided to the terminal 150 by other means, such as locally using a smart card, or at the time of installation or manufacture of the terminal. However, the provision of control data via a controller that is under the direct control of a headend 115 is believed to provide the greatest flexibility since updated control data can be transmitted immediately to the terminal 150. Moreover, known decoder addressing and conditional access techniques can be used to deliver specific control data to specific terminals or groups of terminals. For example, the control data can be encrypted under a key that has been assigned to the specific terminal. 10
The controller 120 thus configures and authorizes the terminals under the control of the Business System 105.
Programming services, e.g., conventional television programs, or other video, audio or other data, is provided by a programming services function 125.
The application and control data can be encapsulated in transport packets, for example, such as MPEG-2 packets, using known techniques. The application and control data can be carried in-band, with the programming services, or out-of-band, apart from the programming services. Also, the application data can be sent via any reliable transport mechanism, for example via TCP/IP. The physical network and intermediate equipment 140 may include cable and/or optical fiber, as well as required switches, amplifiers and other conventional components .
FIG. 2 illustrates a digital terminal with multiple application management capability in accordance with the present invention. Like-numbered elements correspond to one another in the figures. The terminal 150 receives MPEG messages (packets) , such as an example packet 205, from a communication channel . Use of MPEG packets is discussed herein only as an example. Any digital data transport protocol may be used.
An MPEG packet processor and packet identifier (PID) filter 210 processes the packet 205 to recover the control data from the controller 120 of FIG. 1, which is provided to a security processor 250 and a Multiple
Application Manager (MAM) 240. The MAM 240 and other 11
terminal functions can be implemented using any known software, firmware and/or hardware techniques.
The control data, including authorization state data, can be stored at a memory associated with the terminal 150. The packet processor 210 also recovers the application data and forwards it to a downloader 230. The downloader 230 has associated memory, such as a volatile memory 232 and/or a non-volatile memory 234, for storing the downloaded application data, including the applications themselves, such as code objects, and related data. Note that these memories 232 and 234 are examples of memory spaces, and do not necessarily designate a single hardware component. The memory space may be shared by one or more hardware components that are located anywhere in, or associated with, the terminal 150.
"Downloading" refers to recovering and storing. The downloader 230 also receives a "Tune Download Channel " message that commands it to download particular applications, and/or particular versions of the same application from a specific channel. The channel may be identified by a PID in a known manner.
The packet processor 210 may also recover conventional programming services for decoding, e.g., at an MPEG video decoder 215, and display on a display/user interface 200.
The MAM 240 can output data to the display 200 for launching the applications, such as e-mail or web browser, stock ticker, or the like, separately or together with data from a programming service. 12
The MAM 240 can also output data to the display 200 for providing an on-screen menu of available applications (see FIG. 4) . A user may interact with the menu via a user command processor 255, e.g., which receives input signals from a keyboard, infra-red remote control of the like.
The security processor 250, a Local Virtual Application Table (VAT) memory 260, a Home VAT data memory 265, and a message router/filter 225 communicate with the MAM 240. Home VAT data refers to common VAT table that is downloaded to all terminals, while local VAT data refers to data that is used by each terminal, and is derived as a subset of the home VAT data based on the terminal's authorization state. Essentially, the local VAT data designates the latest version of each application that a terminal is authorized to download and access . The local VAT data can therefore be different for different terminals.
The message filter/router 225 sends data such as control data and authorization data, including the home
VAT data and Entitlement Management Messages (EMMs) to the MAM 240, while the application code (software) is sent to the downloader 230.
With the present invention, control data is used to authorize terminals to acquire multiple applications, and to enable the applications for use within the terminal .
The MAM 240 can be implemented by using new messages in the terminal 150, as well as some existing messages that are modified and/or interpreted differently. 13
The MAM 240 receives and processes these messages, and uses the security processor 250 to determine which of the multiple applications is authorized for acquisition and enabling at the terminal. Virtual applications are applications that can be identified, downloaded, and enabled under the control of the MAM 240. The virtual applications can be transported to the terminal 150 in download messages. However, the applications could downloaded via other means, such as via HTTP.
Virtual Application configuration messages and Virtual Object messages, which contain Virtual Application Tables, are examples of messages which can be used in a digital network, such as the one depicted in FIG. 1, for managing multiple applications, and for configuring a terminal for multiple application management .
The data structures and information contained in the messages also provide authorization requirements needed by a terminal for downloading an application, and for enabling and executing an application or any special characteristics that may be associated with the application.
In addition, via other messages sent by the controller, the terminal receives authorization rights for an application or for any special characteristics associated with an application.
For example, EMMs sent from the controller can authorize a terminal for an application or its characteristics. This is done in the same manner that a terminal is authorized for a video service. 14
Using the authorization requirements and the authorization rights, the MAM 240 uses the security processor module 250 within the terminal 150 to determine the authorization state, or other special characteristics, of any given version of an application. In one possible implementation, the MAM 240 maintains the required authorization state of a virtual application in the non-volatile memory 234 within the terminal 150. The authorization state of an application determines if an application can be downloaded by the downloader 230 at the terminal 150, i.e., whether an application (or a specific version of the application) is preserved in, purged from, or deleted from, the downloader' s memory.
Also, the authorization state of an application may determine whether or not specified resources can be pre- allocated for the application in the terminal, such as the amount of volatile memory 232 and non-volatile memory 234. For example, an appropriate amount of memory can be allocated for a new application which is to be downloaded. A determination can be made as to whether there is enough memory space prior to downloading the new application. If there is enough space, the application data is downloaded and stored, if there is not enough memory available, a number of options are possible for configuring the memory resources. For example, downloading of the application can be bypassed. Or, a currently-stored application can be deleted to make room for the new application. Or, a currently-stored application can be moved from a non- 15
volatile memory to a volatile memory to make room for the new application in the non-volatile memory. Or, the application can be stored in volatile memory instead of non-volatile memory. To this end, a determination is made of the available space in both the volatile and non-volatile memories.
While data stored in non-volatile memory will be lost when the terminal is de-powered, this may acceptable in many cases, particularly when the time to re-acquire the application when the terminal is powered again is relatively brief.
Optionally, the user can be given a warning message, e.g., via an on-screen display, to select an appropriate action when the memory resources are not sufficient to store an application, or transfer of data between volatile and non-volatile memories is needed. The user may be given the option of deleting, or transferring from non-volatile memory to volatile memory, an existing application that is not as important to the user as the new application.
Appropriate fields can be provided in the download message that inform the terminal of the memory requirements of the associated application. The terminal can determine the space available in memory using known techniques, and compare this to the field of the download message to determine if there is enough space to store the application.
Thus, the memory resources of the terminal are managed by configuring them to accommodate the download of application data for a new application, including a new version of an application. 16
Furthermore, the messages from the controller 120 also provide the terminals with additional information pertaining to the applications, such as an index or reference to an application code object on a network. The messages also provide information regarding the specific channel or channels which the terminal 150 may tune to for acquiring video, audio, and/or data content associated with the applications.
The VAT data may be stored in the non-volatile memory 234, which may be, e.g., non-volatile flash memory, battery-backed SRAM, a hard drive if available, or any other non-volatile memory available in the terminal. Alternatively, the VAT data may be stored in the volatile memory 232, in which case it is simply re- acquired from the network each time the terminal is powered on.
Moreover, the VAT data may be sent to the terminal 150 from the controller 120 on a cyclic basis, e.g., every twenty seconds. However, this time frame can be adjusted based upon specific network configurations and demands .
A virtual application can be configured and enabled as follows. The terminal 150 may optionally receive a configuration message ("Virtual Application Config") that informs it that it is configured in a MAM state.
When so configured, the terminal can receive a "virtual object message", which provides the home VAT to the terminal. The terminal 150 derives it's own local VAT 260 based on the received home VAT data 265 and the received control data, which sets the terminal's authorized tier(s) (e.g., authorization state). 17
The MAM 240 can maintain the information from the Virtual Application Config. and the Virtual Object messages in non-volatile memory. The information would thus be preserved through any warm resets of the terminal. A warm reset causes volatile memory, such as DRAM to be cleared/reset. This may be caused by unplugging the terminal from its power supply, for example .
The MAM 240 communicates with the security processor 250 to check the required authorization tiers for applications, which are specified in the received VAT data. The authorization state information is typically maintained in non-volatile memory.
The downloader 230 maintains a directory of the versions of the code objects that are already stored. If the Tune Download Channel message for a virtual application is received by the downloader 230, the downloader 230 checks its object directory to determine if the version of the code object specified in the message is already present. If the code object (e.g., application) is not already present, the downloader 230 will check with the MAM 240 to determine if the version of the application is authorized for downloading.
If the MAM 240 informs the downloader 230 that a specific virtual application version is authorized, the downloader 230 tunes to a download channel for the application and attempts to acquire the specified application version. After acquiring a virtual application, the downloader 230 de-tunes from the download channel. 18
The applications can be assigned a default "disabled" status when first recovered. In this case, the MAM 240 also informs the downloader 230 whether to enable the applications or to leave them disabled. Alternatively, the applications can be automatically enabled when they are recovered by the downloader 230.
In one possible implementation, only one application is enabled at any given time. This may be the case when current applications do not gracefully share resources, such as memory, queues, and so forth, so the MAM 240 has to disable an application to reacquire these resources for use by another application. Preferably, the terminal has the capability of enabling more than one application at a time. To accomplish this, a second set of states, or modes of operation, can be added for applications that are enabled. This set would consist of foreground and background modes. In this type of implementation, only one application will ever be the "foreground" application at any time.
The MAM can also dynamically prepare an on-screen menu based upon the authorized virtual applications, as discussed further in connection with FIG. 4.
Moreover, the MAM 240 can tune, if specified, to a channel (or channels) that are associated with a virtual application prior to, concurrent with, or after launching the virtual application. For example, the virtual application may comprise a banner of sports scores, in which case the MAM 240 can cause a specific sports-oriented programming service (e.g., ESPN(tm)) to be tuned and displayed. Conversely, the application of 19
sports scores may be automatically launched when the programming service is tuned.
The MAM 240 can re-check the required authorizations of all virtual applications if the terminal 150 receives a new VAT, receives a change in its existing VAT, or receives new authorization rights, e.g., via an EMM. The VAT data and control messages can be transmitted to the terminals on an on-going basis, at regular intervals, or only at specific times. Optionally, each VAT may have revision data, such as a sequence number, that changes whenever application versions are added or removed. The MAM 240 is alerted by the revision data to re-check its authorizations and modify its local VAT, if necessary. Or, the MAM 240 may simply recheck its authorizations periodically or based on some other criteria.
Efficient management of a terminal ' s memory resources is an important part of the present invention. Accordingly, the MAM 240 can provide control signals to the downloader 230, based upon the existence of and/or the authorization state of a virtual application, which determine whether or not the downloader 230 should remove or maintain the code objects related to the virtual application (s) that are stored in the downloader' s memories 232 and/or 234. Generally, lower versions of an application (authorized or unauthorized) that are being replaced should be deleted when the new highest authorized version is downloaded.
Advantageously, it is possible to upgrade only a subset of the terminals in a terminal population by providing a decoder conditional, "configured_for_MAM" , 20
that determines whether each terminal will acquire a VAT and become MAM enabled, and tune to a download channel to acquire a virtual application. Thus, terminals that have not been upgraded with MAM-capable firmware platform code can continue to operate without any detrimental side effects caused by the innovations involved with MAM. On the other hand, " configured_for_MAM" can be set to allow progressive upgrading of a terminal population. The "Virtual Application Config" message (e.g.,
"configuration data") is used to configure or de- configure a terminal for MAM, and to provide MAM configuration settings to a terminal. Information derived from the Virtual Application Config message is typically stored by the terminal in non-volatile memory (e.g., via the MAM 240) to preserve it through (warm) resets of the terminal .
The Virtual Application Config message can include the following significant fields in an example syntax: "config_for_mul ti_apps " , when set to "yes", configures a terminal for MAM capability. The terminal is then considered to be in a configured_for_MAM state, and is able to receive other messages which have the conf igured_for_MAM decoder condition in the message preamble. If this field is cleared to "no", the terminal will no longer be configured_for_MAM, nor enabled for MAM;
"home_VAT_ID" identifies a VAT which is used as a terminal's default VAT ( "home_VAT" ) ; "defaul t_application_ID" identifies an application which will be the default virtual application for a 21
terminal . This ID correlates to the object_application_ID of a virtual application in the home_VAT; and
"volatile_memory_config" specifies the number of bytes of volatile memory that the terminal allocates and make available for the download of virtual applications other than the default virtual application.
Furthermore, the present invention can use a message type known as a "Virtual Object message", e.g., to deliver a VAT to a terminal. Moreover, this message can be carried in a network stream (an MPEG standard that denotes any data delivered on the network PID within a multiplex) , and may be sent either broadcast- addressed (to all terminals in the network) , multicast- addressed (to a group of terminals) or singlecast- addressed (to an individual terminal) .
The controller 120 in FIG. 1 prefixes the virtual object message with a configured_for_MAM decoder condition in the message preamble. As a result, only terminals which are configured_for_MAM will process this message. This ensures that terminals which are not running a MAM capable firmware platform code will fail the decoder condition test, and will not acquire a VAT.
A terminal is considered to be in a MAM enabled state if it is configured_for_MAM, and has completely acquired the home_VAT.
Information derived from the Virtual Object message, including the VAT, is stored typically by the terminal in non-volatile memory (e.g., at the MAM 240), to preserve it through (warm) resets of the terminal. 22
The Virtual Object message can include the following significant fields:
" table_subtype " specifies that this Virtual Object message contains a VAT; "VAT_ID" specifies an identifier for the VAT contained in this message. This ID may be the same as the home_VAT_ID from the Virtual Application Config message;
"seguence_r2u_nber" specifies a version number for the VAT. If the seguence_nu_7uber for the VAT included in this message is different from the seguence_numfoer associated with the VAT, and the same VAT_ID is already present in the terminal, this implies that the VAT has changed; " number _of_va_records " specifies how many VAT records are present in the VAT included in this message; and
"va_record" is an array of VAT records constituting the VAT. Each record identifies a virtual application. One of the records may identify the virtual application whose defaul t_application_ID was given in the Virtual Application Config message.
Each record of the VAT can include the following significant fields: "object_application_ID" contains a numeric identifier for the virtual application. The identifier should be unique among all va_records within a VAT;
"VCT_source_ID" is a list of identifiers of programming "sources" which are associated with the virtual application. Programming sources include any video, audio, or data "sources" that can be identified 23
by a "source_ID", which is typically used to map a source name (e.g., ABC, HBO) to a virtual channel. The terminal may use these values to obtain a virtual channel to be tuned to before enabling the virtual application.
"VCT_application_ID" is a list of identifiers of "services" associated with the virtual application. The values and usage are the same as described for VCT_source_ID above; "object_ version " is a list of version numbers for each of the versions which can exist of a virtual application. The terminal will download the highest authorized version;
"virtual_application_tier" is a list of required authorization tiers for the virtual application, one per version. All versions of an application may have the same or different tiers. This specifies the authorization requirements for the versions of the virtual application; and "virtual_rzame" is a multi-lingual text string of printable ASCII characters. The name can be used for on-screen displays at the terminal.
The Tune Download Channel Message is a sub-command of the Download Control message. A field " tune_download_function_field" can specify whether the message applies to a "virtual_application " or to a standard, non-MAM application.
The Tune Download Channel message for all virtual applications should contain the configured_for_MAM decoder condition in the message preamble. As a result, only terminals which are configured_for_MAM will process 24
this message. This ensures that terminals which are not running a MAM-capable firmware platform code will fail the decoder condition test, and will not acquire a virtual application. If a virtual application is specified in the Tune
Download Channel message, the virtual application is identified by the obj_application_ID field in the message. This virtual application then correlates to the one identified by the obj ect_application_ ID field in one of the records of the VAT (i.e., the home_VAT) maintained by the MAM 240 of FIG. 2. Moreover, the obj _application_ID, tune_ojbject_.na.me and tune_ojbject_version in the Tune Download Channel message should correlate with the application_ID, object_name and object_version, respectively, in the Download message for the virtual application.
A Tune Download Channel message can be provided for a system-wide default virtual application. The conf igured_for_MAM decoder condition is not used for this default application. As a result, all terminals will always be able to acquire the system-wide default application.
The invention may also replace the use of Download Control messages. Since the MAM 240 has the information (via the VAT) about which applications should be enabled, disabled, purged, etc., the Downloader 230 can no longer directly act on the receipt of the Download Control sub-command message. As a result, if MAM is enabled, the "enable", "disable", "delete" and "purge" functions specified in a Download Control message, for virtual applications, are ignored by the Downloader 230. 25
Also, if MAM is enabled, the "enable" function specified in a Download Control message for a virtual application causes the Downloader 230 to interrogate the MAM 240 to see if a particular application should indeed be enabled. The MAM responds back with instructions to enable or disable the virtual application.
The invention may also use a "Virtual Channel Config Message " . If MAM is enabled, the terminal will disregard the turnon_VC_defined, turnon_VC, turnoff_VC_de fined and turnoff_VC fields specified by this message if the default virtual application has a defined VCT_source_ID . "VC" indicates a virtual channel. In this case, the terminal will tune to the channel associated with the VCT_source_ID given for the default virtual application.
The MAM feature requires the presence of versions of software, in the controller 120, and in a terminal 150, which are capable of executing the MAM functionality. The controller 120 should have a version of software which can create and send the new and modified messages to the terminals. The controller should be capable of providing one-way refreshes of specific configuration messages to terminals.
The controller should also provide multiple billing system authorization support for multiple applications.
All current terminals executing out of ROM code cannot be configured_for_MAM, because reserved entries and fields are used for implementing the MAM functionality. Likewise, all terminals currently executing non-MAM capable software from flash memory should be downloaded 26
with a version of software which is MAM capable that can acquire, understand and process the new and modified messages related to MAM functionality.
The invention implements a MAM while minimizing required changes to existing applications by providing a default virtual application, such as an electronic program guide (EPG) , on a system-wide basis.
The Tune Download Channel message for the system- wide default virtual application is the only such message in the system that specifies the object as a virtual application, and does not require a configured_for_MAM decoder condition in the preamble of the message. Each Tune Download Channel message specifies an object to download. For standard applications, the message includes an application name and version as well as a channel where the application object is being transmitted. When a terminal receives this message, it tunes to the specified channel to acquire the object. For virtual applications, this message also includes the application_ID for the object in addition to the information included for a standard application.
As a result, any terminal that is not running a version of software that is MAM capable, will acquire and enable the system-wide default application without recognizing it as a virtual application.
A terminal which is running a MAM capable version of firmware platform code can also acquire the system- wide default application. However, after acquiring the application, it will be treated as a virtual application to be managed by the MAM 240. 27
A MAM enabled terminal ' s default virtual application is downloaded into non-volatile memory at the terminal and also uses non-volatile memory for its settings so that the default is preserved even while another virtual application is enabled.
When MAM is enabled, the default virtual application, if present in the terminal, is typically enabled after any warm reset of the terminal , or when the terminal transitions from a "Terminal On" to a "Terminal Off" state.
FIG. 3 illustrates the creation of a local VAT for a terminal based on the terminal's authorized tiers in accordance with the present invention.
VAT data that is received by each MAM configured terminal in the network, shown generally at 300, includes a number of rows 310, 330, 350 and 370 of records ( va_records) . Records 312, 332, 352 and 372 contain the identifications ( object_application_ID) of the first, second, third and fourth applications (i.e., Applications No. 1, No. 2, No. 3, and No. 4, respectively) .
Records 314, 316 and 318 contain the version identifier ( object_ version) and required tier ( virtual_application_tier) for a first application. For example, record 314 has a version "1.0" and a required tier of "4", record 316 has a version "1.1" and a required tier of "5", and record 318 has a version "1.2" and a required tier of "7".
As an example, Application No 1. might be an e-mail capability, where version 1.0 is a basic version, version 1.1 is an enhanced version, and version 1.2 is a 28
test version. Therefore, the invention allows a network operator to control which terminals can access which version of Application No. 1. Those who pay a small fee can access version 1.0, those who pay a larger fee can access version 1.1, and others can access version 1.2, e.g., to provide feedback to the network operator as to whether the version 1.2 works properly or provides desirable features.
For Application No. 2, record 334 has a version "2.0" and a required tier of "5", and record 336 has a version "2.1" and a required tier of "6".
For Application No. 3, record 354 has a version "7.5" and a required tier of "8".
For Application No. 4, record 374 has a version "1.0" and a required tier of "3", record 376 has a version "1.1" and a required tier of "4", record 378 has a version "2.0" and a required tier of "7", and record 379 has a version "2.1" and a required tier of "8".
Versions and tiers are always numeric values. The virtual_application_name is a text string that is associated with all versions of a virtual application and is displayed on the dynamically built menu if one of the versions is authorized in the terminal.
The local VAT data that is authorized at the terminal, shown at 355, is assembled from the received VAT records 300 according to the tier ( virtual_application_tier) with which the particular terminal is authorized. In the present example, it is assumed that the terminal ' s authorized rights include tiers "4" and "5". The local VAT data 355 and its tiers denote an authorization state of the terminal. 29
In this case, the matching tier requirements in the VAT records 300 are in records 316, 334 and 376. Accordingly, the terminal's local VAT 355 includes these records, e.g., stored in the VAT memory 260 of FIG. 2, as records 316', 334' and 376'. Note that when a terminal is authorized to receive two or more versions of the same application (e.g., records 314 and 316), it is generally desirable to select the most recent version (e.g., record 316). Generally, the required authorization state of an application is said to correspond to the authorization state of a terminal when the terminal's security processor has received a matching tier via an EMM.
If there is no matching tier for the terminal, e.g., as with Application No. 3, the terminal is not authorized to receive that application, and it is not downloaded.
It is possible to provide a required tier and/or authorized tier that allows a terminal to receive the highest version of all available applications.
Note that the VAT data 300 shown is only an example, and various numbers of applications, versions and tiers may be present in the VAT data. Additionally, the local VAT 355 may include all, some or none of the applications in the received home_VAT 300.
FIG. 4 illustrates an example dynamically-created menu of the available applications at a terminal in accordance with the present invention. The menu 400 presents the available authorized applications to the user, e.g., on a television screen. Note that the menu items correspond to the terminal's local VAT 355. 30
Each application may have a user-friendly textual data ( virtual_name) associated with it. The messages provided to the terminal provide this textual data that describes the application. This data can be used on the display menu 400 of the terminal.
For example, referring to the example of FIG. 3, Application Nos . 1, 2 and 4 may have the textual data "E-mail", "Video-on-Demand, and "Web Browser", respectively. Optionally, an additional textual string denotes the version of the application, or the corresponding service tier that the user has purchased. For example, for marketing purposes the versions may be denotes by bronze, silver or gold or the like. Using the text associated with applications, the
MAM 240 of FIG. 2 can dynamically construct a menu of authorized applications.
A user of a terminal can activate this menu and launch (e.g., start) one or more of the available applications by conventional interface techniques, e.g., using a key on a remote control . A particular key may be reserved on the remote control as a "MAM menu button" .
Upon receiving VAT data from the controller 120, the MAM may build a menu consisting of a list of names of the authorized applications. This can be accomplished using known software techniques, for example. The menu may also include an "Exit" item to exit the menu. The menu may be implemented as a full or partial screen overlay with the audio muted. In 31
addition, the front panel LEDs may be cleared while the menu is displayed.
A user can activate the display of the menu by pressing the "MAM menu button" on the remote control, and use the "up" or "down" keys on the remote control or on the front panel to scroll through the menu. A user can select an application for launch by pressing the "select" button on the remote control or the front panel of the terminal . When an application is selected from the menu, the
MAM 240 may inform the downloader 230 to enable the application, and the application is started (e.g., launched) . The terminal may tune to a specified channel before enabling the application. If the user selection is not authorized, or is not present in the VAT or in the downloaded objects directory, the MAM 240 will try to re-create the menu and re-display it. After several failed attempts to launch a specific virtual application, the terminal will resort to some type of graceful recovery action.
The user can choose to not select any virtual application on the menu, as a result of which the MAM will re-enable the previously enabled (i.e. - prior to the menu being displayed) virtual application, or resort to a graceful recovery action that may enable the terminal's default virtual application.
FIG. 5 illustrates a method for providing multiple application management in a digital network in accordance with the present invention. A simplified overview of the method of the present invention is shown. 32
As shown at block 500, control data including terminal authorization rights, and MAM configuration data with an enable signal are sent to each terminal, or selected terminals, in a network. At block 510, application data (i.e., VAT data) with the version identifiers and authorization requirements (e.g., required tiers) for each application are transmitted to the terminals.
At block 520, the corresponding authorization rights and configuration data are stored at the terminals. As discussed, each terminal can have its own authorization state, which may be subsequently replaced or supplemented. At block 530, the terminal compares it authorization state to the authorization requirements for each version of the applications in the home VAT to build and store its local VAT. At block 540, the highest versions of the applications whose required authorization state corresponds to the terminal's authorization state (i.e., of the versions in the local VAT) are downloaded. Lower versions (authorized or unauthorized) of the applications that are being replaced, if any, are erased at the terminal.
At block 550, the terminal continues to monitor the received control data and VAT data to determine if this data has been changed. If so, blocks 520, 530 and 540 are repeated. A change in the terminal's authorization state and/or the VAT data may or may not result in a new home or local VAT and downloading of new applications. Accordingly, it can be seen that the present invention provides a method and apparatus for managing memory resources in consumer terminals that utilize 33
multiple applications. Different terminals are authorized individually to download and access one or more of a number of available applications according to the authorization requirements of the application/version combination, and the authorized state of the terminal. Each terminal builds its own "local" VAT that identifies the application/versions for which it is authorized. The invention allows network operators to provide the different applications on a fee basis. Moreover, a customized on-screen menu for each terminal can be dynamically generated based on the terminal's local VAT data.
Additionally, memory resources are managed by determining whether space is available to store a new application. Data can be deleted, or transferred between non-volatile and volatile memory, to make space available for a new application. A user interface 200 may allow the user to assist in this process by identifying currently-stored applications that are less desired than the new application.
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 proposed herein, note that they are examples only, and any syntax may be used. Moreover, while the invention was discussed in connection with a cable or satellite television 34
broadband communication networks, it will be appreciated that other networks such as Digital Subscriber Loops (DSLs) , local area networks (LANs) , metropolitan area networks (MANs) , wide area networks (WANs) , internets, intranets, and the Internet, or combinations thereof, may be used.

Claims

Figure imgf000037_0001
36
the downloading of the application data received by the terminal .
4. The terminal of claim 1, wherein: the managing means manages the memory resources by at least one of deleting data and transferring data.
5. The terminal of claim 1, wherein: the memory resources comprise a volatile memory and a non-volatile memory.
6. The terminal of claim 1, wherein: the managing means manages the memory resources by deleting currently-stored application data to make room for downloading of the application data received by the terminal .
7. The terminal of claim 1, wherein the applications include at least one of: electronic program guide, Internet browser, video- on-demand, audio-on-demand, mail service, telephony service, stock prices, weather data, travel information, games, gambling, banking, shopping, and voting.
8. The terminal of claim 1, wherein: the digital network comprises a broadband television communication network.
9. The terminal of claim 1, wherein: 37
the determining means recovers a field associated with the application data received by the terminal that indicates a storage requirement thereof; and the managing means is responsive to the field for allocating at least a portion of the memory resources for downloading of the application data received by the terminal .
10. The terminal of claim 1, wherein: the managing means manages the memory resources by allocating at least a portion of the memory resources for downloading application data for versions of the applications for which the terminal is authorized to access .
11. The terminal of claim 1, wherein: the terminal is assigned an authorization state for accessing application data for authorized ones of the applications; and the managing means manages the memory resources by deleting currently-stored application data of at least one previously-authorized application when the authorization state of the terminal is downgraded such that the at least one previously-authorized application is no longer authorized.
12. The terminal of claim 1, wherein: the managing means manages the memory resources by transferring currently-stored application data to make room for downloading of the application data received by the terminal . 38
13. The terminal of claim 12, wherein: the currently-stored application data is transferred from a non-volatile memory to a volatile memory to make room in the non-volatile memory for the downloading of the application data received by the terminal .
14. The terminal of claim 1, wherein: the managing means comprises a user interface for presenting options to the user to configure the memory resources to accommodate the downloading of the application data received by the terminal.
15. The terminal of claim 14, wherein: the options include at least one of deleting data and transferring data.
16. The terminal of claim 14, wherein: the options include identifying a currently-stored application that is less desirable to the user than the application associated with application data received by the terminal .
17. The terminal of claim 14, wherein: the options include storing the application data received by the terminal in a volatile memory or a nonvolatile memory of the memory resources.
18. The terminal of claim 1, wherein: 39
the application data comprises at least one of code objects, and data for use by the code objects.
19. A method for managing memory resources in a terminal that manages multiple applications, said terminal being provided in a digital network having a headend that provides programming services and application data to a terminal population, via a communication channel, comprising the steps of: determining whether the memory resources as currently configured are sufficient to accommodate downloading of application data received by the terminal ; and managing the memory resources, responsive to said determining step, to configure the memory resources to accommodate the downloading of the application data received by the terminal .
PCT/US2000/041083 1999-10-22 2000-10-05 Management of volatile and non-volatile memory resources in digital communications terminals WO2001031442A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU16320/01A AU1632001A (en) 1999-10-22 2000-10-05 Management of volatile and non-volatile memory resources in digital communications terminals

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16117699P 1999-10-22 1999-10-22
US60/161,176 1999-10-22
USPCT/US99/24745 1999-10-22
PCT/US1999/024745 WO2001031920A1 (en) 1999-10-22 1999-10-22 Method and apparatus for managing multiple applications in large scale networks

Publications (2)

Publication Number Publication Date
WO2001031442A2 true WO2001031442A2 (en) 2001-05-03
WO2001031442A3 WO2001031442A3 (en) 2002-07-11

Family

ID=26795844

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/041083 WO2001031442A2 (en) 1999-10-22 2000-10-05 Management of volatile and non-volatile memory resources in digital communications terminals

Country Status (2)

Country Link
AU (1) AU1632001A (en)
WO (1) WO2001031442A2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375689A (en) * 2001-05-15 2002-11-20 Inventec Appliances Corp Programming communication apparatus
GB2380358A (en) * 2001-09-28 2003-04-02 Nokia Corp Capacity management
EP1345416A1 (en) * 2002-03-14 2003-09-17 Sony Service Center (Europe) N.V. Method and digital television unit for operating broadcast applications
WO2004072791A2 (en) * 2003-02-07 2004-08-26 General Instrument Corporation Method and apparatus for conveying network data and quasi-static data using a single data stream filter at the receiver
WO2005060255A1 (en) * 2003-12-18 2005-06-30 Matsushita Electric Industrial Co., Ltd. Method for storing, authenticalting and executing an application program
EP1625742A2 (en) * 2003-03-19 2006-02-15 Concurrent Computer Corporation Multi-tiered content management system
WO2006129813A1 (en) * 2005-05-31 2006-12-07 Matsushita Electric Industrial Co., Ltd. Broadcast recording and reproduction apparatus with expiration date management unit
EP2109045A1 (en) * 2007-02-02 2009-10-14 Sony Corporation Information processing device, method, and program
US7698562B2 (en) 2003-12-18 2010-04-13 Panasonic Corporation Authenticated program execution method
EP2403246A2 (en) * 2009-02-27 2012-01-04 LG Electronics Inc. Architecture of a network device for processing applications, and control method for the network device
US8276073B2 (en) 2007-02-02 2012-09-25 Sony Corporation Information processing apparatus, information processing method, and program
EP2530950A1 (en) * 2011-06-02 2012-12-05 Samsung Electronics Co., Ltd. Display apparatus and implementation method thereof for installing applications for services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0797159A1 (en) * 1996-03-18 1997-09-24 International Business Machines Corporation Graphic user interface apparatus and method for computer networking
EP0811911A2 (en) * 1996-06-05 1997-12-10 Sun Microsystems, Inc. Computer system and method for executing network mobile code with reduced run-time memory space requirements
WO1999053401A2 (en) * 1998-04-15 1999-10-21 Bull Cp8 Chip card comprising means for managing a virtual memory, associated communication method and protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0797159A1 (en) * 1996-03-18 1997-09-24 International Business Machines Corporation Graphic user interface apparatus and method for computer networking
EP0811911A2 (en) * 1996-06-05 1997-12-10 Sun Microsystems, Inc. Computer system and method for executing network mobile code with reduced run-time memory space requirements
WO1999053401A2 (en) * 1998-04-15 1999-10-21 Bull Cp8 Chip card comprising means for managing a virtual memory, associated communication method and protocol

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2375689B (en) * 2001-05-15 2004-07-07 Inventec Appliances Corp Method of downloading application programs on the editing system platform of an electronic communication apparatus
GB2375689A (en) * 2001-05-15 2002-11-20 Inventec Appliances Corp Programming communication apparatus
US6842839B2 (en) 2001-09-28 2005-01-11 Nokia Corporation Capacity management
GB2380358B (en) * 2001-09-28 2006-04-05 Nokia Corp Capacity management
GB2380358A (en) * 2001-09-28 2003-04-02 Nokia Corp Capacity management
EP1345416A1 (en) * 2002-03-14 2003-09-17 Sony Service Center (Europe) N.V. Method and digital television unit for operating broadcast applications
WO2004072791A2 (en) * 2003-02-07 2004-08-26 General Instrument Corporation Method and apparatus for conveying network data and quasi-static data using a single data stream filter at the receiver
WO2004072791A3 (en) * 2003-02-07 2004-09-30 Gen Instrument Corp Method and apparatus for conveying network data and quasi-static data using a single data stream filter at the receiver
EP1625742A2 (en) * 2003-03-19 2006-02-15 Concurrent Computer Corporation Multi-tiered content management system
EP1625742A4 (en) * 2003-03-19 2006-12-20 Concurrent Comp Corp Multi-tiered content management system
US8086862B2 (en) 2003-12-18 2011-12-27 Panasonic Corporation Program data file storage method in broadcast receiver and broadcast receiver
WO2005060255A1 (en) * 2003-12-18 2005-06-30 Matsushita Electric Industrial Co., Ltd. Method for storing, authenticalting and executing an application program
US7698562B2 (en) 2003-12-18 2010-04-13 Panasonic Corporation Authenticated program execution method
US8060749B2 (en) 2003-12-18 2011-11-15 Panasonic Corporation Authenticated program execution method
WO2006129813A1 (en) * 2005-05-31 2006-12-07 Matsushita Electric Industrial Co., Ltd. Broadcast recording and reproduction apparatus with expiration date management unit
EP2109045A1 (en) * 2007-02-02 2009-10-14 Sony Corporation Information processing device, method, and program
EP2109045A4 (en) * 2007-02-02 2012-06-27 Sony Corp Information processing device, method, and program
US8276073B2 (en) 2007-02-02 2012-09-25 Sony Corporation Information processing apparatus, information processing method, and program
US8977716B2 (en) 2007-02-02 2015-03-10 Sony Corporation Information processing device, method, and program
EP2403246A2 (en) * 2009-02-27 2012-01-04 LG Electronics Inc. Architecture of a network device for processing applications, and control method for the network device
CN102334344A (en) * 2009-02-27 2012-01-25 Lg电子株式会社 Architecture of a network device for processing applications, and control method for the network device
EP2403246A4 (en) * 2009-02-27 2012-11-07 Lg Electronics Inc Architecture of a network device for processing applications, and control method for the network device
EP2530950A1 (en) * 2011-06-02 2012-12-05 Samsung Electronics Co., Ltd. Display apparatus and implementation method thereof for installing applications for services
US9397889B2 (en) 2011-06-02 2016-07-19 Samsung Electronics Co., Ltd. Display apparatus and implementation method thereof

Also Published As

Publication number Publication date
AU1632001A (en) 2001-05-08
WO2001031442A3 (en) 2002-07-11

Similar Documents

Publication Publication Date Title
KR100564273B1 (en) Multimedia terminal adapted for multiple users
RU2321965C2 (en) Mpeg-table structure
US5826166A (en) Digital entertainment terminal providing dynamic execution in video dial tone networks
JP5010803B2 (en) Content distribution system, receiver and method
ES2467971T5 (en) Interactive multimedia content distribution using a separate return channel communications network
KR100686967B1 (en) Application Data Table for a Multiservice Digital Transmission System
EP1010320B1 (en) Broadcast receiving system comprising a computer and a decoder
WO2001031442A2 (en) Management of volatile and non-volatile memory resources in digital communications terminals
EP1234451B1 (en) Method and apparatus for managing multiple applications in large scale networks
US20020184351A1 (en) Information access in user model-based interactive television
JP4693319B2 (en) Method and receiver for managing service list consistency in a digital television system
US6832323B1 (en) Object and feature authorization for digital communication terminals
KR100595603B1 (en) Configuring method and device
EP1224799B1 (en) Object and feature authorization for digital communication terminals
US20020152472A1 (en) Access device interface for user model-based interactive television
WO2001031924A1 (en) Method and apparatus for authorization of software applications and features in digital communication terminals via a central billing system
EP1222818B1 (en) Tuning of multiple application enabled digital communication terminals to access services

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref country code: US

Ref document number: 2000 679994

Date of ref document: 20001005

Kind code of ref document: A

Format of ref document f/p: F

AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ 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

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

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ 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

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)