WO2000024192A1 - Television set-top box with configurable functionality - Google Patents

Television set-top box with configurable functionality Download PDF

Info

Publication number
WO2000024192A1
WO2000024192A1 PCT/US1999/021983 US9921983W WO0024192A1 WO 2000024192 A1 WO2000024192 A1 WO 2000024192A1 US 9921983 W US9921983 W US 9921983W WO 0024192 A1 WO0024192 A1 WO 0024192A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
application
api
terminal
set top
Prior art date
Application number
PCT/US1999/021983
Other languages
French (fr)
Inventor
Branislav N. Meandzija
Original Assignee
General Instrument Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Instrument Corporation filed Critical General Instrument Corporation
Priority to AU61584/99A priority Critical patent/AU766861B2/en
Priority to KR1020017004828A priority patent/KR20010080210A/en
Priority to BR9914604-5A priority patent/BR9914604A/en
Priority to JP2000577830A priority patent/JP2002528971A/en
Priority to CA002346891A priority patent/CA2346891A1/en
Priority to EP99948392A priority patent/EP1123620A1/en
Publication of WO2000024192A1 publication Critical patent/WO2000024192A1/en
Priority to HK02104399.7A priority patent/HK1043464A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/20Adaptations for transmission via a GHz frequency band, e.g. via satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4433Implementing client middleware, e.g. Multimedia Home Platform [MHP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Definitions

  • the present invention provides a software architecture framework for the soft set top and associates the different architectural components with the Opencable Advanced Set Top API
  • CA Conditional Access
  • CORBA Common Object Request Broker Architecture
  • DSMCC Digital Storage Media Command and Control ;
  • DTV Digital Television;
  • HOP Internet Inter Orb Protocol
  • IP Internet Protocol
  • JVM Java Virtual Machine
  • MIB Management Information Base
  • RAM Random Access Memory
  • RMI Remote Method Invocation
  • SODA - denotes a security chip proprietary to
  • S-vid - Video connector interface TCP - Transmission Control Protocol; UHF - Ultra High Frequency; UML - Unified Modeling Language; v.34 - a physical interface standard; and xDSL - high-speed Digital Subscriber Loop modem technology.
  • a Set Top box also referred to as an Integrated Received Decoder (IRD) or a subscriber terminal, is a device that receives and decodes television signals for presentation by a television.
  • the signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast.
  • Modern set tops also support video on demand (VOD) , pay-per-view, interactive shopping, electronic commerce, and enable Internet connectivity and possibly Internet-based telephony.
  • VOD video on demand
  • the set top functionality is enabled through specialized hardware and software.
  • Set Top software provided relatively simple functionality, was small and unstructured, and concerned primarily with minimizing the required memory capacity and processing cycles.
  • the support of services such as data, Internet, Internet Telephony, etc. poses a new set of problems, including secure access by multiple users, multiple application management, management of resources, decoding, composition, coordination and presentation, of audio, video, graphics, and other data, etc.
  • Existing Set Top software solutions do not solve these problems. Accordingly, it would be desirable to provide Set Top software that can progress in an evolutionary process from a relatively simple functionality, small, unstructured, memory- and processing cycle-saving software, to software that has a relatively complex functionality, and is larger, structured, and memory- and processing cycle-intensive .
  • the fundamental technology underlying the next generation Set Top software architecture employs Java(tm), ActiveX (tm) or an equivalent type of component based object- oriented technology.
  • the technology should allow the consideration of Set Top application and middleware software functionality independent from the operating system and hardware .
  • the present invention provides a software architecture framework for the soft set top.
  • the Set Top software allows the consideration of Set Top application and middleware software functionality independent from the operating system and hardware .
  • the invention can support various type of functionality, such as multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, and management of audio, video, and data presentations .
  • the invention is used to provide a television set-top terminal with software.
  • the terminal includes a computer readable medium having computer program code means, and means for executing the computer program code means to implement a layered software architecture.
  • an application layer allows a user to interact with the terminal
  • a middleware layer supports the application layer by providing Application Program Interfaces (APIs)
  • an operating system layer supports the middleware layer
  • a hardware layer supports the operating system layer.
  • the layered software architecture allows configuration of a functionality of the application layer and the middleware layer independently of the operating system layer and the hardware layer.
  • the layered software architecture includes a set top management layer that supports the application layer by configuring management services of the terminal .
  • the management services include at least one of application, user, resource and presentation management.
  • the set top management layer may implement a state information module to designate states of resources of the terminal .
  • the state information module may be based on the ITU-T X.731 standard.
  • the software architecture may further provide an application program interface (API) for providing a configurable functionality.
  • the API may enable the terminal to support multiple users, or to secure controlled access of resources.
  • the API may enable the terminal to download, register, start, stop, and monitor applications of the applications layer.
  • the API may also enable the terminal to manage audio, video and/or other data presentations.
  • the software architecture may also provide one or more of: a set top manager, a presentation manager, an application manager, a user manager, a resource manager, a set top agent, and a program view assistant.
  • FIG. 1 illustrates a set top terminal software architecture evolution in accordance with the present invention.
  • FIG. 2 illustrates a detailed set top terminal software architecture in accordance with the present invention.
  • FIG. 3 illustrates a set top management top- level class diagram in accordance with the present invention.
  • FIG. 4 illustrates a set top application manager top-level class diagram in accordance with the present invention.
  • FIG. 5 illustrates a set top applications management relations top-level class diagram in accordance with the present invention.
  • FIG. 6 illustrates a set top control application top-level class diagram in accordance with the present invention.
  • FIG. 7 illustrates a set top user manager top- level class diagram in accordance with the present invention.
  • FIG. 8 illustrates a set top resource manager top-level class diagram in accordance with the present invention.
  • FIG. 9 illustrates a top-level class diagram of available set top devices in accordance with the present invention.
  • FIG. 10 illustrates a set top software architecture framework in accordance with the present invention.
  • the present invention provides a software architecture framework for the soft set top.
  • FIG. 1 illustrates a set top terminal software architecture evolution in accordance with the present invention.
  • Set Top software is seen as an evolutionary process that progresses from relatively simple functionality, small, unstructured, memory- and processing cycle-saving to relatively complex functionality, larger, structured, memory and processing cycles intensive.
  • Java(tm), ActiveX (tm) or an equivalent type of component based object- oriented technology is seen as the fundamental technology underlying next generation Set Top software architectures .
  • STAMP General Instrument Set Top Applications and Middleware Platform
  • STAMP provides an apparatus and machinery for support of multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, management of audio, video, data presentations, and some additional functionality.
  • This technology allows the consideration of Set Top application and middleware software functionality independent from operating system and hardware.
  • FIG. 1 illustrates the Set Top software architecture evolution in a simplified form.
  • a present architecture includes a hardware layer 100, an operating system layer 110, and a native applications and middleware layer 120.
  • the "native" applications and middleware are designed for use with a specific operating system and hardware environment.
  • the applications and middleware layer 120 evolves to include a combination of proprietary applications and middleware 122, and the native applications and middleware 120.
  • the applications and middleware layer 120 evolves to include only proprietary applications and middleware 122, which are independent of the operating system and hardware environment.
  • FIG. 2 illustrates a detailed set top terminal software architecture in accordance with the present invention.
  • the Figure illustrates the layered architecture of the STAMP near- erm solution.
  • the architecture 200 includes a hardware layer 205, a device driver layer 210, and a real-time operating system layer 215.
  • Another layer 222 includes STAMP interpreter tasks 220, compiled STAMP tasks 225, and native application tasks 230.
  • a next layer 232 includes native APIs 265 and a number of sublayers, including a STAMP components sublayer 260, a STAMP application APIs sublayer 255, a standards API sublayer 250, encompassing standards such as DAVIC, DVB, ATSC, etc., a STAMP middleware APIs sublayer 245, and a sublayer with STAMP interpreter tasks 235 and a STAMP compiler 240.
  • a STAMP set top management layer 270 is provided, then a layer 272 with STAMP applications 275 and native applications 280.
  • An applet layer 285 is also provided.
  • the layers within the software architecture indicate possible dependency from higher layer to lower layer.
  • an application will use STAMP components 260, which in turn use some standard APIs 250, which may run on a STAMP interpreter 235 or may be compiled on a STAMP compiler 240.
  • each layer is said to support or service the layers above it .
  • the user interacts with the Set Top through the two topmost layers, the applet layer 285 and the application layers 275, 280. Any type of interaction with the set top is through applications or applets.
  • the different layers have been defined with the following reasoning:
  • the topmost layer contains processing entities which are temporary in nature and run within applications, e.g., such as a browser, and are downloaded over broadcast channels, over the Internet, or are distributed otherwise. Applets run within applications, and therefore take advantage of the applications' resources and can be restricted in their capabilities. Applications can be STAMP applications or native applications.
  • Applications are permanent, or at least long-term. They are the only unit-level application processing entities and are part of the basic Set Top software distribution or some later upgrade through code download or other means .
  • STAMP side they are implemented as lightweight process groups (e.g., Java thread groups) .
  • STAMP Set Top Management controls all Set Top resources and multiplexes them between the different Set Top applications.
  • STAMP component sets e.g., Java Bean Bags
  • Different component sets are defined for different problem domains, e.g., graphics, networking, etc.
  • the advantage of using component sets is the uniformity of components, i.e., it is easier to build a house out of bricks than variable size stones.
  • STAMP components are built using a variety of APIs .
  • the topmost API layer in the software architecture consists of those APIs that have been defined to create suitable abstractions for different domains such as conditional access, set top management, etc.
  • STAMP components can use any of the API layers, but the preferred API access layer is the next lower one, which is the STAMP Applications API layer 255.
  • STAMP Applications APIs are defined using Standard APIs which define industry-wide viable abstractions of common Set Top functionalities such as MPEG PSI, DVB SI, etc. STAMP Application APIs can use any of the API layers, but the preferred API access layer is the next lower one, which is the Standard API layer 250. 7. Standard APIs are defined using STAMP
  • STAMP Middleware APIs execute on an interpreter (such as a JVM) or are compiled. 9. If STAMP Middleware APIs are interpreted, the interpreter executes as a task or a group of tasks within the Operating System 215.
  • the Operating System 215 controls all the Set Top resources and enables interaction between the various tasks and resources.
  • the Operating System 215 uses Device Drivers 210 to control and communicate with a variety of devices .
  • Agents are processing units that enable functionality on behalf of another entity. Examples of agents might be a "Management” agent that allows the IRD to be remotely managed by some headend facility either via MPEG transport, modem, or other method. Or, a "Personal” agent might act on a user's behalf to monitor the user's actions and search for material that matches their behaviors (e.g., ProgramViewAssistant) .
  • the GI SetTop Program consists of a single infinite loop which initializes and starts the processing threads.
  • the first threads started are the "management threads", which service all other threads. These threads also catch exceptions thrown by initialized devices. 3.
  • Application Threads are started as a result of actions by the SetTop Manager Thread Group .
  • the SetTop Manager Thread Group control all tasks on the Set Top, inside or outside of the interpreter.
  • the SetTop Manager Thread Group can stop the JVM and the Set Top itself.
  • the Set Top Management Framework consists of the following management entities: 1.
  • the Set Top Manager (SetTopManager) - controls the Set Top and initiates and starts all functions; configures all management services including application, user, resource, and presentation management; closely interacts with the presentation manager, which controls the presentation of all audio-visual materials; configures, starts, stops, and interacts with the Set Top Agent which enables remote Set Top management through the Internet or over the transport stream; configures, starts, stops, and interacts with the Program View Assistant.
  • Presentation Manager - consists of three types of elements, namely decoders, compositors, and presenters; configures all presentable devices
  • Application Manager manages the life- cycle of applications including, registration (loading) of applications, maintenance of a list of applications available, possibly decryption or decompression and move to address space, assessment of whether application can run based upon its execution attributes, start/stop/monitor application treads and allotted resources, vehicle for intra- application communication, propagates events to applications that care (registered) ; and supports a user interface for application management.
  • User Manager manages a list of users, their preferences, and their access rights with 5 regards to set top resources. Verifies authorizations / security to enable components to operate. Supports a user interface for user preferences, user management, and access control management of the set top. 10 5.
  • Resource Manager Provides access to all set top resources through a variety of resource specific APIs. Manages those resources. Supports a user interface for resource management .
  • Set Top Agent A Java SNMP Agent with a 15 MIB that permits fault, configuration, accounting, performance, and security management of the Set Top.
  • Program View Assistant An intelligent agent utilizing forward chaining based on the unification algorithm; minimally, it allows the
  • UML Unified Modeling Language
  • FIG. 3 illustrates a set top management top- level class diagram in accordance with the present invention.
  • FIG. 3 uses the Unified Modeling Language, developed by Rational Software Corporation, USA.
  • a class diagram represents the static structure of a system, and shows a pattern of behaviors that the system exhibits. This is accomplished by showing the existence of classes and their relationships.
  • Each class is represented by a box with three sections. The top section lists the class name. The middle section denotes a list of attributes, and the bottom section denotes a list of operations. In the figures, only the class names are shown for simplicity.
  • a solid line between classes denotes an association.
  • a solid line with a white diamond tip denotes aggregation by reference, while a black diamond tip denotes aggregation by value .
  • a triangular arrowhead denotes a restricted navigation, e.g., inheritance of operation but not of structure.
  • a number may optionally be shown next to a line end that touches a class box to indicate the cardinality of the relationship, e.g., 0, 1 . . .
  • "*" denotes "or more", e.g., "0. . . *” denotes "0 or more".
  • "0. . .1" denotes an aggregation of 0 or 1.
  • All management entities consist of processing threads (lightweight processes or tasks) . All of the management processing threads are part of the SetTopManager ThreadGroup 305, which is further subdivided into the ApplicationManager 310, PresentationManager 315, UserManager 320, ResourceManager 325, and SetTopAgent 330 ThreadGrou (s) .
  • All management entities interface the set top management information base (SetTopMIB) 335.
  • Each management entity (MngmtEntity) 355 controls a part of the MIB while the SetTopAgent 330 provides external access to the MIB (i.e., SNMP, RMI, CORBA, HOP, etc.) .
  • MngmtEntity 355 is associated with a Thread 360 and a ThreadGroup 365, both from java.lang.
  • the ApplicationManager 310 controls the applications registry (AppRegistry) 340, the presentation manager controls the PresentationRegistry 345, the user manager controls the user registry (UserRegistry) 350, and the resource manager controls the resource registry (ResourceRegistry) 355.
  • the following subsections outline the different management entities in more detail .
  • the invention enables the application of generic state information modules, such as those described in the ITU-T X.731 standard, within applications, resources, and the set-top MIB. This standard is part of the Q3 standard adopted by the Telecommunications Management Network (TMN) .
  • Telecommunications Management Network Telecommunications Management Network
  • TMN The TMN standard was developed by the CCITT (now the ITU-T) to provide an architecture to achieve an interconnection between various types of management systems and telecommunications equipment for the exchange of management information over standardized interfaces.
  • CCITT now the ITU-T
  • TMN is largely based on OSI management standards and includes :
  • ITU-T M.3200 Management Services
  • Management Function ITU-T M.3400
  • Protocol Profiles for Management Interfaces ITU-T Q.811, Q.812, Q.773
  • TMN Network Management Entity
  • TMN functions exchange management information by means of the ITU-T X-700 series (OSI system management) standards.
  • Each software component in a TMN layer represents itself and the resources it manages to the layer above as a managed object.
  • the interactions between manager and agent are defined by means of CMISE/CMIP.
  • the organization of the information architecture, the MIB contains managed objects for specific technologies that can be refined from the general template provided in ITU-T M-3100, the Generic Network Information Model. All TMN communication is based on the Agent-
  • CMIP Common Management Information Service Elements
  • CMIS Common Management Information Service
  • the application manager controls a number of applications which are all built based on the generic applications template which enables the monitoring and control by the application manager.
  • the application management APIs provide the system with application life-cycle and application integrity related functions.
  • Application Verification and Validation API provides the system with functions for TBD.
  • Appli cation Life Cycle API The application life cycle API provides the system with functions for loading, starting, pausing, stopping, and unloading applications.
  • FIG. 4 illustrates a set top application manager top-level UML class diagram in accordance with the present invention.
  • a ResourceClient class 405 is associated with a GenericApp class 410, which is associated with a Modem Proxy class 415, which is associated with a ResourceProxy class 420.
  • the ResourceClient class 405 and ResourceProxy class 420 may be from org.davic . resources .
  • the GenericApp class 410 may be from gi . settop . applications .
  • Generic applications implement resource client 405 and resource proxy 420 interfaces for all resources used by the individual applications 410.
  • FIG. 5 contains a UML class diagram illustrating these dependencies.
  • FIG. 5 illustrates a set top applications management relations top-level UML class diagram in accordance with the present invention.
  • the GenericApp class 410 may be associated with various classes, such as a Download class 505, a WatchTV class 510, an Email class 515, a Ticker class 520, a WebBrowser class 525, and an EPG class 530, each of which may be from gi . settop . applications .
  • the interaction between the user and all management entities is accomplished through the set top control application, which, as are all other applications, is controlled by the application manager 310 through the generic application 410 template.
  • FIG. 6 illustrates a set top control application top-level UML class diagram in accordance with the present invention.
  • the set top control application (SetTopControlApp) 605 coordinates the interaction between the user through a set top control GUI (SetTopControlGUI) 610, and the different set top managers 310, 315, 320 and 325.
  • the SetTopControlApp 605 and SetTopControlGUI 610 may be from gi . settop. applications .
  • the user profile APIs provide the system with user-centric and account-centric functions.
  • Billing API - The billing API provides the system with functions for managing accounts and performing account-related transactions.
  • Preferences API The preferences API provides the system with functions for managing user-centric properties .
  • Favori te Services API The favorite services
  • API provides the system with functions for managing user-defined sets and subsets of services.
  • the security APIs provide the system with functions for controlling and managing access to applications, content, and services.
  • Content Control API The content control API provides the system with functions for controlling access to applications, content, and services based on user-centric criteria (parental locks) .
  • Condi tional Access API The conditional access
  • API provides the system with functions for controlling access to services based on service restrictions and account restrictions.
  • the authentication and certificate management API provides the system with functions for TBD .
  • Cryptography API - The cryptography API provides the system with functions for encrypting and decrypting content broadcast to the system, stored on the system, or sent from the system.
  • User access control of the set top and user preferences management is handled by the user manager.
  • the user manager uses the set top MIB as its information store and interacts with the users through the set top control application.
  • FIG. 7 illustrates a set top user manager UML top-level class diagram in accordance with the present invention.
  • a SecurityManager class 705 may be from java.lang.
  • the resource management APIs provide the system with functions for measuring, allocating, and deallocating the user of constrained hardware systems and services.
  • System Profile API provides the system with functions for determining system resource and configuration information.
  • Synchronization API - The synchronization API provides the system with functions for synchronizing disparate resources such as audio and video decoders .
  • Resource Allocation API The resource allocation API provides the system with functions for requesting, accessing, and releasing hardware systems and services.
  • System Test API provides the system with functions for external applications to test hardware systems and services.
  • System Diagnostic API The system diagnostic API provides the system with functions for built-in- test and diagnosing system faults.
  • FIG. 8 illustrates a set top resource manager UML top-level class diagram in accordance with the present invention.
  • the access to all set top resources by the set top applications is managed through the resource manager 325.
  • the resource manager may use the DAVIC Resource API.
  • FIG. 9 illustrates a UML top-level class diagram of available set top devices in accordance with the present invention.
  • the GenericDevice class 805 may be associated with one or more of the following example classes: HardDrive 902, DiskDrive 904, RAMDisk 906, SmartCard 908, DVD 910, DC2Sat 912, ATSCTerminal 914, MPEG 916, MPEG Video 918, MPEG/AC3Audio 920, Terminal 922, DVBSat 924, Keyboard 926, InputDevice 928, HSSIO 930, VideoOut 932, AudioOut 934, FrontPanelDisplay 936, SODA 938, IEEE1284 Parallel, UHFRemote 942, InfraredRemote 944, IEEE1394 946, AnalogAudio 948, S/PDIG Digital Audio 950, Communications 952, DigitalCable 954, XDSL 956, V34 958, lOBaseT 960, ATM 962, SMPTEVideoOut 964, RGBVideoOut 966, and CCIR16VideoOut 968.
  • Each of the classes may be from gi . set
  • the device control APIs provide the system with functions for managing devices.
  • Media control APIs include:
  • Tuning and Demul tiplexing API The tuning and demultiplexing API provides the system with functions for selecting services and streams.
  • Decoder API - The decoder API provides the system with functions for decoding video streams, audio streams, data streams, and elements within those streams.
  • the playback control API provides the system with functions for managing the playback of streams.
  • Presentation management and the Presentation API play a role in two different types of scenarios within the Set Top: 1. Presentable objects (graphics, video, audio) being created as a result of an application activation or application related processing.
  • Presentation objects being created as a result of a decoding process of data coming over a carrousel, over the Internet, etc.
  • the Presentation API and Presentation Manager (PM) facilitate both scenarios in the same manner, i.e., the same object is created and has the same methods that can be activated.
  • the presentation APIs provide the system with functions for displaying and controlling the display of information, status, content, and control to the user.
  • Video Presentation API provides the system with functions for managing the display of video data to the primary display surface .
  • Front Panel Display Manager API provides the system with functions for managing the display of information, status, and control to front panel display surfaces.
  • the graphic presentation API provides the system with functions for managing the display of graphic data to the primary display surface.
  • Font Management API The font management API provides the system with functions for loading, selecting, and displaying fonts on the primary display surface.
  • Audio Presentation API The audio presentation
  • API provides the system with functions for managing the playback of audio data to the primary audio outputs .
  • a number of applications and applets within STAMP have GUIs. These include: 1. Installation & Diagnostic screens;
  • Set Top option screens which provide access to major Set Top features and applications and implement configuration screens (e.g., rating preferences, language preferences, audio/video modes, etc . ) ;
  • Java Applets are supported on Set Tops that host either a Java enabled Java Browser or a Java enabled Native Browser.
  • the applet is downloaded via http over the Internet or via a DSMCC carrousel service .
  • Watch TV The system provides a simple broadcast television viewing environment. The user may channel up, channel down, return to a previous channel, and select a specific channel. Watch TV wi th Parental Locks - The system may provide a means for the user to limit access to services, channels, or events. A password mechanism may over-ride the access limitations. Access may be based on channel, event rating, event theme, or some other criteria.
  • the system may provide a means to limit access to services, channels, or events based on the access rights of the user as a customer of the service provider.
  • the access rights may pertain to service limitations or account limitations.
  • the system may make available more than one audio stream for a specific video stream. The user has the opportunity to select an alternative audio stream for playback in synchronization with the video stream.
  • the system may make available one or more text or graphic streams that may be synchronized and superimposed upon the video stream.
  • the downloading application scenarios describe situations in which a broadcast application or data service is being bought or stored on the system. Watch TV wi th Persistent Unsynchronized Data
  • the system provides a data service that is not synchronized to the current audio and video stream (for example, a stock ticker) .
  • the application that uses the data service (for example, the stock ticker graphical user interface) is already resident on the system, only the data (the stock quotes) is transmitted in this scenario.
  • Watch TV wi th Persistent Synchronized Data Service The system provides a data service that is synchronized to the current audio and video stream (for example, sport statistics that correspond to the player currently on screen) .
  • the application that uses the data service is already resident on the system, only the data is transmitted in this scenario.
  • the system provides a means of scheduling and subsequently downloading an application located on a service that may not be the current service.
  • Watch TV wi th Impulse Buy of Appli cation The system provides a means for the user to be notified of an available application and a means for the user to purchase and download the application. Watch TV wi th Background Application Update -
  • the system provides a means for the user to download an application in the background (without disrupting the current audio and video presentation) .
  • Teleshopping The teleshopping scenarios describe situations in which the user may request information, products, or services through applications made available on the system.
  • the system provides a means for the user to request information that corresponds to the currently broadcast video and audio. For example, during an automobile commercial, the user may request a brochure.
  • the system provides a means for the user to purchase a product that corresponds to the currently broadcast video and audio. For example, during a commercial for a commemorative plate, the user may purchase the plate .
  • the system provides a means for the user to navigate through a catalog that contains graphics, video, and audio.
  • the user can select and purchase a product or service in the catalog.
  • the system provides a means for the user to navigate through a catalog that contains graphics and audio.
  • the user can select and purchase a product or service in the catalog.
  • the system provides a means for the user to navigate through a catalog that contains graphics.
  • the user can select and purchase a product or service in the catalog. ⁇ 3.4. Near Video on Demand
  • the near video on demand (NVOD) scenarios describe situations in which the user can select movies (or some other audio-video service) from a multiplex of similar movies or service.
  • Pay-per-View - The system provides a means for the user to purchase a service from a multiplex of services. Interactivity is generally limited to the selection and purchasing process.
  • Tnteractive Pay-per-View - The system provides a means for the user to purchase a service from a multiplex of services. The user can "pause" the service until the next availability of the service. ⁇ 3.5.
  • Gaming allow a user to play a game via a network-delivered service. Games may be single-user or multi-user games either located entirely on the system (local) or played over a network.
  • Watch TV and Local Parti cipa te The system provides a means for the user to watch a television program and "play along" with a single-user local application. For example, during “Wheel of Fortune” the user can "spin the wheel” and make their own guess.
  • iVatch TV and Mul ti - user Parti cipa te - The system provides a means for the user to watch a television program and "play along", competing with other users.
  • Single Player Game - The system provides a means for the user to play a system-based game with no additional remotely located participants.
  • Multi-user Game The system provides a means for the user to play a system-based game in which there is additional, remotely located, participants. ⁇ 3.6. Internet Access
  • the internet access scenarios allow the user to access internet-based content or functions: html pages, email, chat, streaming audio, etc.
  • Browse the Web - The system provides a means for the user to browse web-sites.
  • Email The system provides a means for the user to read, write, and respond to electronic mail.
  • Chat The system provides a means for the user to communicate in real-time with other users on the Internet .
  • the system provides a means for the user to simultaneously watch an audio and video service while performing an Internet-based activity that is made available with or through the audio-video service.
  • the system provides a means for the user to watch an audio or video service that is made available from an Internet-based item.
  • Pay-per-View News Service The system provides a means for the user to purchase an audio, video, or text-centric news service. The service might provide a headline-level of detail, an in-depth level of detail, editorial information, or some other level of service.
  • Query for News Item The system provides a means for the user to query multiple available sources for one or more "articles" pertaining to user-defined or user-selected criteria.
  • Personalized News The system provides a means for the user to tailor a news service to their preferred topics.
  • Subscription Services The system provides a means for the user to purchase and schedule a subscription to an audio, video, or text-centric news service.
  • the electronic program guide scenarios allow the user to access channel, service, and event information. Generally the user may also control the system or navigate within the system using this information.
  • the system provides information on what service is currently available on all known channels and what services are available for some predetermined time in the future.
  • Request Preview from Guide - The system provides a means for the user to request a sample of a service. For example, the user might be able to request a trailer for a motion picture or a demo of an application.
  • Purchase Event from Guide - The system provides a means for the user to purchase a future event or service from within the electronic program guide .
  • Setup Program Reminder - The system provides a means for the user to schedule a notification of a future event at a future point in time.
  • the system provides a means for the user to purchase an application for download from within the electronic program guide .
  • the distance learning scenarios describe a virtual classroom in which students and teachers are not co-located.
  • the system provides audio and video of a virtual classroom.
  • the system provides a means for the user to participate with an educator or other students (located at different sites) through chat.
  • the system provides audio and video of a virtual classroom.
  • the system provides a means for the user to participate with an educator or other students (located at different sites) through chat. ⁇ 3.10. Home Banking
  • the home banking scenarios describe services available to the user comparable to services available at a retail bank.
  • Information Retrieval The system provides a means for the user to access information pertaining to banking functions and their personal accounts .
  • Transaction - The system provides a means for the user to perform typical retail bank electronic transfers.
  • the system provides a means for the user to apply for retail bank services such as credit cards, loans, and checking.
  • Steping The system provides a means for the user to get personalized financial assistance. ⁇ 3.11. Navigation
  • the navigation scenarios describe situations in which the user activates services, applications, and content available on the system.
  • Application Activation The system provides a means for the user to activate (run or launch) an application.
  • Application Removal The system provides a means for the user to remove an application from system memory, local storage, or remote storage associated with the system.
  • the system provides a means for user to identify user-centric preferences related to operation of the system or its user interface .
  • the system provides a means for the user to identify or customize the set of or subset of available services.
  • Java Bags are defined to facilitate domain specific (e.g., IPG) application component building sets . These set are NOT disjoint.
  • the Java Bean Bags are:
  • GI Application System Bean Bag this set of components comprises all beans that are generic to all different application component sets. This may include information exchange mechanisms, synchronization mechanisms, timing mechanisms, storage mechanisms, etc.
  • GI GUI Bean Bag this set of components includes all GUI beans that are generic to all different applications; this may include lists, buttons, sliders, etc.
  • GI HotJava Bean Bag this set of components includes all components that can be a part of a browser.
  • GI IPG Bean Bag this set of components includes all components that can be a part of the
  • GI Tuning Bean Bag this set of components includes all components that can be a part of a tuning application. 6.
  • GI E-mail Bean Bag - this set of components includes all components that can be a part of an e-mail application.
  • GI Download Bean Bag this set of components includes all components that can be a part of a download application.
  • GI Ticker Bean Bag this set of components includes all components that can be a part of an information ticker application. .
  • GI Game Player Bean Bag - this set of components includes all components that can be a part of a game player application.
  • APIs Application Programming Interfaces
  • APIs provide the system with a hardware and operating system independent abstraction layer.
  • broadcast applications to be delivered to systems of widely varying processors and operating systems: from set-top boxes with a RISC processor and a real-time operating system to a personal computer with a microprocessor and a non- real-time operating system.
  • Event management APIs provide the system with functions for sending and receiving messages, events, and "interrupts.”
  • Event Dispatch API - The event dispatch API provides the system with functions for sending messages, events, and "interrupts.”
  • the user input API provides the system with functions for receiving and dispatching user-originated events (keyboard, mouse, front panel, remote control, etc.).
  • Inter-Process Communication API provides the system with functions for sending messages and events between applications, processes, and threads.
  • Scheduling API The scheduling API provides the system with functions for establishing time and date triggered events and "interrupts”. ⁇ 5.2. Application Utility APIs
  • the application utili ty APIs provide the system with general purpose functions commonly used by applications .
  • Math API The math API provides the system with functions for performing math routines.
  • Time API - The time API provides the system with functions for accessing time and date and performing common time routines.
  • String API The string API provides the system with functions for loading, unloading, and manipulating strings.
  • List APT The list API provides the system with functions for managing lists and other common dynamic data structures .
  • File API - The file API provides the system with functions for performing file-related operations .
  • the localization API provides the system with functions for performing common localization operations.
  • Communications API High-level interface to all communications and communications management components including dial-up networking, Internet, routing, transport stream, etc.
  • Object Services API Support for information exchange between objects; this includes an information model, types, relationships, operations, characteristics, naming, registry, distribution, etc.
  • Database Services API support for data store and retrieval mechanisms including a generic file system and registry.
  • Download Services API support for download services.
  • the content management APIs provide the system with content life-cycle and content integrity related functions .
  • API provides the system with functions for TBD.
  • Content Download API The content download API provides the system with functions for storing applications broadcast to the system.
  • Content Version Control API The content version control API provides the system with functions for managing the stored or loaded version of content .
  • Content Storage API The content storage API provides the system with functions for storing and retrieving content in the system or with remote storage .
  • the system information APIs provide the system with MPEG-2 system information and program information stream related functions.
  • Event Information API provides the system with functions for interpreting the event information stream.
  • Channel and Service Map API provides the system with functions for interpreting the system and service information streams ⁇ 5.5.
  • This API enables set top management applications by providing component hook-up functionality, component monitoring and control functionality, initialization, startup, shut down and coordination of all internal processes/daemons/applications; processing of asynchronous events as well as events resulting from collecting information; etc.
  • Operations Support API - facilitates the Set
  • Top Management API through Java/non-Java interfaces as well as an SNMP agent API.
  • the MPEG API (org. davic .mpeg) - includes the MPEG Component API, the MPEG Section Filter API, and the MPEG TransportStream API .
  • the Tuning API (org.davic .net . tuning) - tuning of network interfaces including multiple network interfaces (local and/or remote) .
  • the Conditional Access API (org.davic.net .ca) - a CA system independent interface for accessing CA functionality.
  • the DVB SI API (org . davic . net . dvb . si) - an interface to DVB SI database (including the access to the actual transport stream through an optional cache) .
  • the ATSC PSIP API (org . davic . at ⁇ c .psip) - an interface to the ATSC SI and PSI database (including the access to the actual transport stream through an optional cache) .
  • the Media Player API (or . davic .media) - an extension of the Java Media Framework to facilitate Set Tops.
  • the DSM-CC U-U API (davic . dsmccuu) - implements a subset of the DSM-CC-U-U APIs defined in ISO/IEC 13818-6. ⁇ 5.8. Standard Java APIs
  • the JDK 1.1 packages included in PersonalJava are: Java. applet j ava . awt j ava . awt . datatransfer j ava . awt . event j ava . awt . image j ava . awt . peer
  • the Java Text API supports internationalization.
  • Java Security APIs are a framework for developers to easily and securely include security functionality in their applets and applications. This functionality includes cryptography with digital signatures, encryption, and authentication.
  • Java Commerce API will bring secure purchasing and financial management to the Web.
  • JavaWallet is the initial component, which defines and implements a client-side framework for credit card, debit card, and electronic cash transactions.
  • Java Media Framework specifies a unified architecture, messaging protocol and programming interface for media players, capture and conferencing. JMF will be published as three APIs. The Java Media Player will be published first; Java Media Capture and Java Media Conference APIs will be published subsequently. Java Media Player is an API for synchronization, control, processing and presentation of compressed streaming and stored timed media, including video and audio.
  • Java RMI including CORBA
  • object- oriented distributed processing API that supports CORBA.
  • FIG. 10 illustrates a set top software architecture framework in accordance with the present invention.
  • the architecture 1000 corresponds to the architecture 200 of FIG. 2, but provides further details and examples for each layer.
  • the device driver kernel modules in the layer 210' correspond generally to the classes in FIG. 9.
  • Network Protocols are used at all levels of the ASB, to communicate with other clients, applications, and servers. Although applications also make use of network protocols, many of these are actually OS-implemented network stacks called through the OS ⁇ -> Application APIs. Protocols specifically dealing with application-level client- server issues will be covered in the Client ⁇ ->Server section.
  • Video and Data Network / Transport Protocols These protocols are used for network packet routing, connection establishment, control, and teardown. Industry open standards are TCP for connection-oriented transport, UDP for connectionless, real-time traffic transport, and IP for packet routing. RSVP is used for network bandwidth and channel reservation. MPEG-2 is the clear favorite for video transpor .
  • FTP file transfer
  • HTTP for WWW access and HTML transport
  • NNTP for news server access
  • SMTP and IMAP for mail.
  • chat There is no standard for chat, however.
  • LDAP rapidly emerging as the standard directory for TCP/IP networks, is a lightweight version of X.500's more complex Directory Access Protocol. LDAP has been adopted by over 40 major software vendors, and supports access-independent data views, hierarchical storage, multiple storage schemes, rich access control, multiple database types and instances, and network replication.
  • Protocols These APIs control modulation, encoding, and management of data streams over the cable plant. ⁇ 7.1.5. Network Encryption Protocols
  • the operating system provides applications with two sets of crucial services that allow those applications to be implemented on top of the system.
  • Base OS Services such as scheduling, virtual memory, multi-threading, etc.
  • OS Standard Libraries are predefined code modules that applications are encouraged to use when implementing functionality supported by the OS. For example, a network application is encourage to use the OS's network libraries, almost all apps are encouraged to use the OS's GUI libraries, etc.
  • the standard libraries are present to maintain consistency, prevent duplication of effort, and speed up development. Sometimes, applications will bypass certain libraries for aesthetic reasons or to optimize code.
  • APIs control the heart of the set-top box.
  • Native applications (those written specifically for the ASB, requiring maximum performance and hardware interaction) will be implemented based on OS services and libraries, provided through these APIs.
  • APIs control drawing and rendering of 2D and 3D objects.
  • Application programmers use these to simplify graphic functions. They are also used to implement the graphical user interface and windowing tool-kits for applications.
  • HAL Hardware Abstraction Layer
  • the HAL separates the hardware from the OS, and makes the OS portable across any platform that supports the HAL.
  • Registry APIs Storage format and control for local Flash RAM storage .
  • APIs are used when one OS is implemented on top of another, as is the case with virtual machines, or two OSs communicate with each other.
  • the latter case is rare, and is usually handled through network protocols, although some component and object models allow distributed objects to communicate across OSs.
  • Competitors are Microsoft's Distributed Component Object Model (DCOM) and JavaBeans / CORBA (Common Object Request Broker Architecture) .
  • Remote Procedure Call mechanisms (ONC, DCE) also fall within this API . ⁇ 7.5. Client ⁇ -> Server APIs
  • Clients and servers will often pass application data through standard networking protocols, but remote client management, authentication, software downloading, and updating are handled through specific client-server APIs. These APIs usually tend to be closed and fragmented, due to the large number of potential combinations and issues.
  • Network / Remote FileSystem Controls file storage and retrieval methods.
  • Control authentication for users, vendors, and products .
  • Calendar Server Protocols Determines storage and interaction formats for user calendaring and scheduling functions .
  • Synchronization Protocols Synchronization Protocols
  • Audio Document Storage Formats Encoding of sound and music.
  • This set of APIs controls serving and delivery of content from various servers to the client . It is really a subset of the client-server APIs, but is explicitly mentioned since some vendors may attempt to achieve lock- in by requiring proprietary servers to distribute content.
  • This set of APIs controls serving and delivery of content from various servers to the client. It is really a subset of the client-server APIs, but is explicitly mentioned since some vendors may attempt to achieve lock- in by requiring proprietary servers to distribute content.
  • the browser ⁇ -> resident engines interaction is really a sub-category of OS ⁇ -> Applications, and is explicitly broken out due to its strategic importance and the fact that most browser vendors subsume this API into their product.
  • the resident HTML, VRML, Java, and caching engines are services that the OS provides to all interested applications.
  • most browser vendors bundle these important engines into the browser, thereby concealing and controlling these important APIs, even though they should be explicitly exposed.
  • the OS provider should document the APIs used, and provide rights to these APIs for free, in perpetuity.
  • the present invention provides a Set Top software that allows the consideration of Set Top application and middleware software functionality independent from the operating system and hardware.
  • the invention can support various type of functionality, such as multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, management of audio, video, data presentations .
  • the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs), metropolitan area networks (MANs) , wide area networks (WANs) , internets, intranets, and the Internet, or combinations thereof.
  • LANs local area networks
  • MANs metropolitan area networks
  • WANs wide area networks
  • internets intranets
  • intranets and the Internet, or combinations thereof.

Abstract

A software architecture framework for the soft set top box. A Set Top software architecture (200, 1000) allows the consideration of Set Top application and middleware software functionality (120) independent from the operating system (110) and hardware (100). Various types of functionality can be supported, such as multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, and management of audio, video, and data presentations.

Description

TELEVISION SET-TOP BOX WITH CONFIGURABLE FUNCTIONALITY
BACKGROUND OF THE INVENTION
This application claims the benefit of U.S. Provisional Application No. 60/104,777, filed
October 19, 1998.
The present invention provides a software architecture framework for the soft set top and associates the different architectural components with the Opencable Advanced Set Top API
Classification.
The current OpenCable API classification is summarized in section 7 of the detailed description, below. The following acronyms and terms are used:
API - Application Program Interface;
ATSC - Advanced Television Systems Committee;
ATM - Asynchronous Transfer Mode;
CA - Conditional Access; CORBA - Common Object Request Broker Architecture;
CSLIP - Connectionless Serial Line Interface
Protocol ;
DASE - ATSC T3/S17 Digital TV Application Software
Environment ; DAVIC - Digital Audio-Visual Council;
DC-2 - Digicipher II (tm), digital video standard proprietary to General Instrument (GI) Corporation;
DSMCC - Digital Storage Media Command and Control ; DTV - Digital Television;
DVB - Digital Video Broadcast;
DVD - Digital Video Disc;
EPG - Electronic Program Guide; FTP - File Transfer Protocol;
GUI - Graphical User Interface;
HSSIO - High-Speed Serial I/O
I/O - Input/Output;
HOP - Internet Inter Orb Protocol; IP - Internet Protocol;
IPG - Interactive Program Guide;
IRD - Integrated Receiver Decoder;
ISO - International Standards Organization;
JVM - Java Virtual Machine; MIB - Management Information Base;
MPEG - Moving Picture Experts Group;
PSIP - Program and System Information Protocol (for
Terrestrial Broadcast and Cable) ;
RAM - Random Access Memory; RMI - Remote Method Invocation;
Sat - Satellite;
SI - (DVB) Service Information;
SMPTE - Society of Motion Picture and Television
Engineers ; SNMP - Simple Network Management Protocol;
SODA - denotes a security chip proprietary to
General Instrument Corporation;
S/PDIG -
STAMP - Set Top Applications and Middleware Platform;
S-vid - Video connector interface; TCP - Transmission Control Protocol; UHF - Ultra High Frequency; UML - Unified Modeling Language; v.34 - a physical interface standard; and xDSL - high-speed Digital Subscriber Loop modem technology.
A Set Top box, also referred to as an Integrated Received Decoder (IRD) or a subscriber terminal, is a device that receives and decodes television signals for presentation by a television. The signals can be delivered over a satellite, through a cable plant, or by means of terrestrial broadcast. Modern set tops also support video on demand (VOD) , pay-per-view, interactive shopping, electronic commerce, and enable Internet connectivity and possibly Internet-based telephony. The set top functionality is enabled through specialized hardware and software.
In the past, Set Top software provided relatively simple functionality, was small and unstructured, and concerned primarily with minimizing the required memory capacity and processing cycles. However, the support of services such as data, Internet, Internet Telephony, etc. poses a new set of problems, including secure access by multiple users, multiple application management, management of resources, decoding, composition, coordination and presentation, of audio, video, graphics, and other data, etc. Existing Set Top software solutions do not solve these problems. Accordingly, it would be desirable to provide Set Top software that can progress in an evolutionary process from a relatively simple functionality, small, unstructured, memory- and processing cycle-saving software, to software that has a relatively complex functionality, and is larger, structured, and memory- and processing cycle-intensive . Preferably, the fundamental technology underlying the next generation Set Top software architecture employs Java(tm), ActiveX (tm) or an equivalent type of component based object- oriented technology.
The technology should allow the consideration of Set Top application and middleware software functionality independent from the operating system and hardware .
Moreover, it would be desirable to provide an apparatus and machinery for support of multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, management of audio, video, data presentations, and some additional functionality . The present invention provides a system having the above and other advantages . We refer to this technology as the General Instrument "Set Top Applications and Middleware Platform (STAMP) " . SUMMARY OF THE INVENTION
The present invention provides a software architecture framework for the soft set top.
The Set Top software allows the consideration of Set Top application and middleware software functionality independent from the operating system and hardware .
The invention can support various type of functionality, such as multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, and management of audio, video, and data presentations . In a particular implementation, the invention is used to provide a television set-top terminal with software. The terminal includes a computer readable medium having computer program code means, and means for executing the computer program code means to implement a layered software architecture. In the layered software architecture, an application layer allows a user to interact with the terminal, a middleware layer supports the application layer by providing Application Program Interfaces (APIs) , an operating system layer supports the middleware layer, and a hardware layer supports the operating system layer. Additionally, the layered software architecture allows configuration of a functionality of the application layer and the middleware layer independently of the operating system layer and the hardware layer.
The layered software architecture includes a set top management layer that supports the application layer by configuring management services of the terminal . The management services include at least one of application, user, resource and presentation management.
The set top management layer may implement a state information module to designate states of resources of the terminal . The state information module may be based on the ITU-T X.731 standard.
The software architecture may further provide an application program interface (API) for providing a configurable functionality. The API may enable the terminal to support multiple users, or to secure controlled access of resources. The API may enable the terminal to download, register, start, stop, and monitor applications of the applications layer. The API may also enable the terminal to manage audio, video and/or other data presentations.
The software architecture may also provide one or more of: a set top manager, a presentation manager, an application manager, a user manager, a resource manager, a set top agent, and a program view assistant.
A corresponding method is also presented. BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a set top terminal software architecture evolution in accordance with the present invention. FIG. 2 illustrates a detailed set top terminal software architecture in accordance with the present invention.
FIG. 3 illustrates a set top management top- level class diagram in accordance with the present invention.
FIG. 4 illustrates a set top application manager top-level class diagram in accordance with the present invention.
FIG. 5 illustrates a set top applications management relations top-level class diagram in accordance with the present invention.
FIG. 6 illustrates a set top control application top-level class diagram in accordance with the present invention. FIG. 7 illustrates a set top user manager top- level class diagram in accordance with the present invention.
FIG. 8 illustrates a set top resource manager top-level class diagram in accordance with the present invention.
FIG. 9 illustrates a top-level class diagram of available set top devices in accordance with the present invention. FIG. 10 illustrates a set top software architecture framework in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a software architecture framework for the soft set top.
FIG. 1 illustrates a set top terminal software architecture evolution in accordance with the present invention.
Set Top software is seen as an evolutionary process that progresses from relatively simple functionality, small, unstructured, memory- and processing cycle-saving to relatively complex functionality, larger, structured, memory and processing cycles intensive. Java(tm), ActiveX (tm) or an equivalent type of component based object- oriented technology is seen as the fundamental technology underlying next generation Set Top software architectures .
We refer to this technology as the "General Instrument Set Top Applications and Middleware Platform (STAMP) " . This technology allows the consideration of Set Top application and middleware software functionality independent from the operating system and hardware.
STAMP provides an apparatus and machinery for support of multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, management of audio, video, data presentations, and some additional functionality. This technology allows the consideration of Set Top application and middleware software functionality independent from operating system and hardware.
STAMP is architected based on the Java API platform. Therefore, its most straightforward STAMP realization is using Java. FIG. 1 illustrates the Set Top software architecture evolution in a simplified form. A present architecture includes a hardware layer 100, an operating system layer 110, and a native applications and middleware layer 120. The "native" applications and middleware are designed for use with a specific operating system and hardware environment. In a near-term future architecture, the applications and middleware layer 120 evolves to include a combination of proprietary applications and middleware 122, and the native applications and middleware 120. In a long-term future architecture, the applications and middleware layer 120 evolves to include only proprietary applications and middleware 122, which are independent of the operating system and hardware environment. For example, an application such as a browser is written to an abstraction layer that is independent of the operating system and hardware environment . The approach taken in the design of the STAMP is to use STAMP components unless it is not feasible due to performance or other requirements, in which case the STAMP components can be replaced with native components . FIG. 2 illustrates a detailed set top terminal software architecture in accordance with the present invention. The Figure illustrates the layered architecture of the STAMP near- erm solution.
The architecture 200 includes a hardware layer 205, a device driver layer 210, and a real-time operating system layer 215. Another layer 222 includes STAMP interpreter tasks 220, compiled STAMP tasks 225, and native application tasks 230. A next layer 232 includes native APIs 265 and a number of sublayers, including a STAMP components sublayer 260, a STAMP application APIs sublayer 255, a standards API sublayer 250, encompassing standards such as DAVIC, DVB, ATSC, etc., a STAMP middleware APIs sublayer 245, and a sublayer with STAMP interpreter tasks 235 and a STAMP compiler 240. Next, a STAMP set top management layer 270 is provided, then a layer 272 with STAMP applications 275 and native applications 280. An applet layer 285 is also provided.
The layers within the software architecture indicate possible dependency from higher layer to lower layer. For example, an application will use STAMP components 260, which in turn use some standard APIs 250, which may run on a STAMP interpreter 235 or may be compiled on a STAMP compiler 240.
Generally, each layer is said to support or service the layers above it .
The user interacts with the Set Top through the two topmost layers, the applet layer 285 and the application layers 275, 280. Any type of interaction with the set top is through applications or applets. The different layers have been defined with the following reasoning:
1. The topmost layer contains processing entities which are temporary in nature and run within applications, e.g., such as a browser, and are downloaded over broadcast channels, over the Internet, or are distributed otherwise. Applets run within applications, and therefore take advantage of the applications' resources and can be restricted in their capabilities. Applications can be STAMP applications or native applications.
2. Applications are permanent, or at least long-term. They are the only unit-level application processing entities and are part of the basic Set Top software distribution or some later upgrade through code download or other means . On the STAMP side, they are implemented as lightweight process groups (e.g., Java thread groups) .
3. STAMP Set Top Management controls all Set Top resources and multiplexes them between the different Set Top applications.
4. Applications, applets, and management components are built out of STAMP component sets (e.g., Java Bean Bags). Different component sets are defined for different problem domains, e.g., graphics, networking, etc. The advantage of using component sets is the uniformity of components, i.e., it is easier to build a house out of bricks than variable size stones. 5. STAMP components are built using a variety of APIs . The topmost API layer in the software architecture consists of those APIs that have been defined to create suitable abstractions for different domains such as conditional access, set top management, etc. STAMP components can use any of the API layers, but the preferred API access layer is the next lower one, which is the STAMP Applications API layer 255.
6. STAMP Applications APIs are defined using Standard APIs which define industry-wide viable abstractions of common Set Top functionalities such as MPEG PSI, DVB SI, etc. STAMP Application APIs can use any of the API layers, but the preferred API access layer is the next lower one, which is the Standard API layer 250. 7. Standard APIs are defined using STAMP
Middleware APIs 245, e.g., Standard Java APIs such Personal Java, Java Security API, etc.
8. STAMP Middleware APIs execute on an interpreter (such as a JVM) or are compiled. 9. If STAMP Middleware APIs are interpreted, the interpreter executes as a task or a group of tasks within the Operating System 215.
10. The Operating System 215 controls all the Set Top resources and enables interaction between the various tasks and resources.
11. The Operating System 215 uses Device Drivers 210 to control and communicate with a variety of devices .
12. The bottom layer is the actual hardware. Agents are processing units that enable functionality on behalf of another entity. Examples of agents might be a "Management" agent that allows the IRD to be remotely managed by some headend facility either via MPEG transport, modem, or other method. Or, a "Personal" agent might act on a user's behalf to monitor the user's actions and search for material that matches their behaviors (e.g., ProgramViewAssistant) .
§1. Execution and Management Framework
STAMP assumes the following sequence of steps after a Set Top is turned on:
1. After the OS is up and running, the STAMP Interpreter is started with the GI SetTop Program.
2. The GI SetTop Program consists of a single infinite loop which initializes and starts the processing threads.
The first threads started are the "management threads", which service all other threads. These threads also catch exceptions thrown by initialized devices. 3. Application Threads are started as a result of actions by the SetTop Manager Thread Group .
4. Applets are started by Applications.
5. The SetTop Manager Thread Group control all tasks on the Set Top, inside or outside of the interpreter.
6. The SetTop Manager Thread Group can stop the JVM and the Set Top itself.
The Set Top Management Framework consists of the following management entities: 1. The Set Top Manager (SetTopManager) - controls the Set Top and initiates and starts all functions; configures all management services including application, user, resource, and presentation management; closely interacts with the presentation manager, which controls the presentation of all audio-visual materials; configures, starts, stops, and interacts with the Set Top Agent which enables remote Set Top management through the Internet or over the transport stream; configures, starts, stops, and interacts with the Program View Assistant.
2. Presentation Manager - consists of three types of elements, namely decoders, compositors, and presenters; configures all presentable devices
(video, audio, etc.); controls the decoding of all presentable materials; composes all presentable materials for audio and/or video presentation; presents all presentable materials; possibly interacts with event processing and forwarding to all registered applications; supports a user interface for presentation preferences .
3. Application Manager - manages the life- cycle of applications including, registration (loading) of applications, maintenance of a list of applications available, possibly decryption or decompression and move to address space, assessment of whether application can run based upon its execution attributes, start/stop/monitor application treads and allotted resources, vehicle for intra- application communication, propagates events to applications that care (registered) ; and supports a user interface for application management.
4. User Manager - manages a list of users, their preferences, and their access rights with 5 regards to set top resources. Verifies authorizations / security to enable components to operate. Supports a user interface for user preferences, user management, and access control management of the set top. 10 5. Resource Manager - Provides access to all set top resources through a variety of resource specific APIs. Manages those resources. Supports a user interface for resource management .
6. Set Top Agent - A Java SNMP Agent with a 15 MIB that permits fault, configuration, accounting, performance, and security management of the Set Top.
7. Program View Assistant - An intelligent agent utilizing forward chaining based on the unification algorithm; minimally, it allows the
20. association of users with different types of presentation materials using the IPG database; it supports an interactive display that can be started as an application or assists the user in background mode through alerts, operations short cuts, and
25 other types of help.
The figure discussed below is a Unified Modeling Language (UML) class diagram depicting the class relations between various set top management components .
30 FIG. 3 illustrates a set top management top- level class diagram in accordance with the present invention. FIG. 3 uses the Unified Modeling Language, developed by Rational Software Corporation, USA. A class diagram represents the static structure of a system, and shows a pattern of behaviors that the system exhibits. This is accomplished by showing the existence of classes and their relationships. Each class is represented by a box with three sections. The top section lists the class name. The middle section denotes a list of attributes, and the bottom section denotes a list of operations. In the figures, only the class names are shown for simplicity.
A solid line between classes denotes an association. A solid line with a white diamond tip denotes aggregation by reference, while a black diamond tip denotes aggregation by value . A triangular arrowhead denotes a restricted navigation, e.g., inheritance of operation but not of structure. Additionally, a number may optionally be shown next to a line end that touches a class box to indicate the cardinality of the relationship, e.g., 0, 1 . . . Also, "*" denotes "or more", e.g., "0. . . *" denotes "0 or more". "0. . .1" denotes an aggregation of 0 or 1.
All management entities consist of processing threads (lightweight processes or tasks) . All of the management processing threads are part of the SetTopManager ThreadGroup 305, which is further subdivided into the ApplicationManager 310, PresentationManager 315, UserManager 320, ResourceManager 325, and SetTopAgent 330 ThreadGrou (s) .
All management entities interface the set top management information base (SetTopMIB) 335. Each management entity (MngmtEntity) 355 controls a part of the MIB while the SetTopAgent 330 provides external access to the MIB (i.e., SNMP, RMI, CORBA, HOP, etc.) . MngmtEntity 355 is associated with a Thread 360 and a ThreadGroup 365, both from java.lang.
The ApplicationManager 310 controls the applications registry (AppRegistry) 340, the presentation manager controls the PresentationRegistry 345, the user manager controls the user registry (UserRegistry) 350, and the resource manager controls the resource registry (ResourceRegistry) 355. The following subsections outline the different management entities in more detail . Note that the invention enables the application of generic state information modules, such as those described in the ITU-T X.731 standard, within applications, resources, and the set-top MIB. This standard is part of the Q3 standard adopted by the Telecommunications Management Network (TMN) . The TMN standard was developed by the CCITT (now the ITU-T) to provide an architecture to achieve an interconnection between various types of management systems and telecommunications equipment for the exchange of management information over standardized interfaces. TMN is largely based on OSI management standards and includes :
Principles for TMN (ITU-T M.3010 and M.3020), which defines the architecture; Generic Network Information model (ITU-T
M.3100) ;
Management Services (ITU-T M.3200) ; Management Function (ITU-T M.3400); and Protocol Profiles for Management Interfaces (ITU-T Q.811, Q.812, Q.773).
It is intended that all networks, telecommunications services, and major type of equipment may be managed by TMN.
TMN functions exchange management information by means of the ITU-T X-700 series (OSI system management) standards. Each software component in a TMN layer represents itself and the resources it manages to the layer above as a managed object. The interactions between manager and agent are defined by means of CMISE/CMIP. The organization of the information architecture, the MIB, contains managed objects for specific technologies that can be refined from the general template provided in ITU-T M-3100, the Generic Network Information Model. All TMN communication is based on the Agent-
Manager paradigm. The Q3 interface relies on the OSI management model using the OSI Common Management Information protocol . CMIP is used between Common Management Information Service Elements (CMISE) to provide Common Management Information Service (CMIS) . §1.1. Applications Management
The application manager controls a number of applications which are all built based on the generic applications template which enables the monitoring and control by the application manager. The application management APIs provide the system with application life-cycle and application integrity related functions.
Application Verification and Validation API - The application verification and validation API provides the system with functions for TBD.
Appli cation Life Cycle API - The application life cycle API provides the system with functions for loading, starting, pausing, stopping, and unloading applications.
Application Registration API - The application registration API provides the system with functions for registering application version and application source information. FIG. 4 illustrates a set top application manager top-level UML class diagram in accordance with the present invention.
Like-numbered elements correspond to one another in the various figures. Here, a ResourceClient class 405 is associated with a GenericApp class 410, which is associated with a Modem Proxy class 415, which is associated with a ResourceProxy class 420.
The ResourceClient class 405 and ResourceProxy class 420 may be from org.davic . resources . The GenericApp class 410 may be from gi . settop . applications .
Generic applications implement resource client 405 and resource proxy 420 interfaces for all resources used by the individual applications 410.
All applications, although managed by the application manager only, have to interact with the presentation 315, the user 320, and the resource manager 325. FIG. 5 contains a UML class diagram illustrating these dependencies.
FIG. 5 illustrates a set top applications management relations top-level UML class diagram in accordance with the present invention.
The GenericApp class 410 may be associated with various classes, such as a Download class 505, a WatchTV class 510, an Email class 515, a Ticker class 520, a WebBrowser class 525, and an EPG class 530, each of which may be from gi . settop . applications . The interaction between the user and all management entities is accomplished through the set top control application, which, as are all other applications, is controlled by the application manager 310 through the generic application 410 template.
FIG. 6 illustrates a set top control application top-level UML class diagram in accordance with the present invention.
The set top control application (SetTopControlApp) 605 coordinates the interaction between the user through a set top control GUI (SetTopControlGUI) 610, and the different set top managers 310, 315, 320 and 325.
The SetTopControlApp 605 and SetTopControlGUI 610 may be from gi . settop. applications .
§1.2. User Management
The user profile APIs provide the system with user-centric and account-centric functions.
Billing API - The billing API provides the system with functions for managing accounts and performing account-related transactions.
Preferences API - The preferences API provides the system with functions for managing user-centric properties . Favori te Services API - The favorite services
API provides the system with functions for managing user-defined sets and subsets of services.
The security APIs provide the system with functions for controlling and managing access to applications, content, and services.
Content Control API - The content control API provides the system with functions for controlling access to applications, content, and services based on user-centric criteria (parental locks) . Condi tional Access API - The conditional access
API provides the system with functions for controlling access to services based on service restrictions and account restrictions.
Authentication and Certificate Management API - The authentication and certificate management API provides the system with functions for TBD .
Cryptography API - The cryptography API provides the system with functions for encrypting and decrypting content broadcast to the system, stored on the system, or sent from the system.
User access control of the set top and user preferences management is handled by the user manager. The user manager uses the set top MIB as its information store and interacts with the users through the set top control application.
FIG. 7 illustrates a set top user manager UML top-level class diagram in accordance with the present invention.
A SecurityManager class 705 may be from java.lang.
§1.3. Resource Management
The resource management APIs provide the system with functions for measuring, allocating, and deallocating the user of constrained hardware systems and services.
System Profile API - The system profile API provides the system with functions for determining system resource and configuration information.
Synchronization API - The synchronization API provides the system with functions for synchronizing disparate resources such as audio and video decoders .
Resource Allocation API - The resource allocation API provides the system with functions for requesting, accessing, and releasing hardware systems and services.
System Test API - The system test API provides the system with functions for external applications to test hardware systems and services.
System Diagnostic API - The system diagnostic API provides the system with functions for built-in- test and diagnosing system faults.
FIG. 8 illustrates a set top resource manager UML top-level class diagram in accordance with the present invention.
A GenericDevice class 805, which may be from gi . settop. devices, is associated with the ResourceManager class 325. The access to all set top resources by the set top applications is managed through the resource manager 325. The resource manager may use the DAVIC Resource API.
FIG. 9 illustrates a UML top-level class diagram of available set top devices in accordance with the present invention.
The GenericDevice class 805 may be associated with one or more of the following example classes: HardDrive 902, DiskDrive 904, RAMDisk 906, SmartCard 908, DVD 910, DC2Sat 912, ATSCTerminal 914, MPEG 916, MPEG Video 918, MPEG/AC3Audio 920, Terminal 922, DVBSat 924, Keyboard 926, InputDevice 928, HSSIO 930, VideoOut 932, AudioOut 934, FrontPanelDisplay 936, SODA 938, IEEE1284 Parallel, UHFRemote 942, InfraredRemote 944, IEEE1394 946, AnalogAudio 948, S/PDIG Digital Audio 950, Communications 952, DigitalCable 954, XDSL 956, V34 958, lOBaseT 960, ATM 962, SMPTEVideoOut 964, RGBVideoOut 966, and CCIR16VideoOut 968. Each of the classes may be from gi . settop . devices .
Available resources are being interacted with through the concept of a generic device. The device control APIs provide the system with functions for managing devices. Media control APIs include:
Tuning and Demul tiplexing API - The tuning and demultiplexing API provides the system with functions for selecting services and streams.
Decoder API - The decoder API provides the system with functions for decoding video streams, audio streams, data streams, and elements within those streams.
Playback Control API - The playback control API provides the system with functions for managing the playback of streams.
§1.4. Presentation Management
Presentation management and the Presentation API play a role in two different types of scenarios within the Set Top: 1. Presentable objects (graphics, video, audio) being created as a result of an application activation or application related processing.
2. Presentation objects being created as a result of a decoding process of data coming over a carrousel, over the Internet, etc. The Presentation API and Presentation Manager (PM) facilitate both scenarios in the same manner, i.e., the same object is created and has the same methods that can be activated. The presentation APIs provide the system with functions for displaying and controlling the display of information, status, content, and control to the user.
Video Presentation API - The video presentation API provides the system with functions for managing the display of video data to the primary display surface .
Front Panel Display Manager API - The front panel display manager API provides the system with functions for managing the display of information, status, and control to front panel display surfaces.
Graphics Presentation API - The graphic presentation API provides the system with functions for managing the display of graphic data to the primary display surface.
Font Management API - The font management API provides the system with functions for loading, selecting, and displaying fonts on the primary display surface. Audio Presentation API - The audio presentation
API provides the system with functions for managing the playback of audio data to the primary audio outputs .
A number of applications and applets within STAMP have GUIs. These include: 1. Installation & Diagnostic screens;
2. Set Top option screens which provide access to major Set Top features and applications and implement configuration screens (e.g., rating preferences, language preferences, audio/video modes, etc . ) ;
3. Banners and detailed information for Watch
TV;
4. IPG screens; 5. Web Browser screens;
6. E-mail screens;
7. Ticker (e.g., for stock prices);
8. Applet Screens; and
9. Downloadable application screens. All these GUIs are built out of a set of components which are defined through the Presentation API. §2. Applets
Java Applets are supported on Set Tops that host either a Java enabled Java Browser or a Java enabled Native Browser. The applet is downloaded via http over the Internet or via a DSMCC carrousel service .
§3. Applications §3.1. Watch TV
Watch TV - The system provides a simple broadcast television viewing environment. The user may channel up, channel down, return to a previous channel, and select a specific channel. Watch TV wi th Parental Locks - The system may provide a means for the user to limit access to services, channels, or events. A password mechanism may over-ride the access limitations. Access may be based on channel, event rating, event theme, or some other criteria.
Watch TV wi th Condi tional Access - The system may provide a means to limit access to services, channels, or events based on the access rights of the user as a customer of the service provider.
The access rights may pertain to service limitations or account limitations.
Watch TV wi th Al ternate Audio- The system may make available more than one audio stream for a specific video stream. The user has the opportunity to select an alternative audio stream for playback in synchronization with the video stream.
Watch TV wi th Subti tling- The system may make available one or more text or graphic streams that may be synchronized and superimposed upon the video stream.
§3.2. Downloading Applications
The downloading application scenarios describe situations in which a broadcast application or data service is being bought or stored on the system. Watch TV wi th Persistent Unsynchronized Data
Service - The system provides a data service that is not synchronized to the current audio and video stream (for example, a stock ticker) . The application that uses the data service (for example, the stock ticker graphical user interface) is already resident on the system, only the data (the stock quotes) is transmitted in this scenario. Watch TV wi th Persistent Synchronized Data Service - The system provides a data service that is synchronized to the current audio and video stream (for example, sport statistics that correspond to the player currently on screen) . The application that uses the data service is already resident on the system, only the data is transmitted in this scenario.
Watch TV wi th Scheduled Download of Application
- The system provides a means of scheduling and subsequently downloading an application located on a service that may not be the current service.
Watch TV wi th Impulse Buy of Appli cation - The system provides a means for the user to be notified of an available application and a means for the user to purchase and download the application. Watch TV wi th Background Application Update -
The system provides a means for the user to download an application in the background (without disrupting the current audio and video presentation) . §3.3. Teleshopping The teleshopping scenarios describe situations in which the user may request information, products, or services through applications made available on the system.
Watch TV and Request Information - The system provides a means for the user to request information that corresponds to the currently broadcast video and audio. For example, during an automobile commercial, the user may request a brochure.
Watch TV and Impulse Buy - The system provides a means for the user to purchase a product that corresponds to the currently broadcast video and audio. For example, during a commercial for a commemorative plate, the user may purchase the plate . Browse and Buy from a Video-centri c Catalog -
The system provides a means for the user to navigate through a catalog that contains graphics, video, and audio. The user can select and purchase a product or service in the catalog. Browse and Buy from a Audio-centric Catalog -
The system provides a means for the user to navigate through a catalog that contains graphics and audio. The user can select and purchase a product or service in the catalog. Browse and Buy from a Graphi cs -centric Catalog
- The system provides a means for the user to navigate through a catalog that contains graphics.
The user can select and purchase a product or service in the catalog. §3.4. Near Video on Demand
The near video on demand (NVOD) scenarios describe situations in which the user can select movies (or some other audio-video service) from a multiplex of similar movies or service. Pay-per-View - The system provides a means for the user to purchase a service from a multiplex of services. Interactivity is generally limited to the selection and purchasing process. Tnteractive Pay-per-View - The system provides a means for the user to purchase a service from a multiplex of services. The user can "pause" the service until the next availability of the service. §3.5. Gaming The gaming scenarios allow a user to play a game via a network-delivered service. Games may be single-user or multi-user games either located entirely on the system (local) or played over a network. Watch TV and Local Parti cipa te - The system provides a means for the user to watch a television program and "play along" with a single-user local application. For example, during "Wheel of Fortune" the user can "spin the wheel" and make their own guess. iVatch TV and Mul ti - user Parti cipa te - The system provides a means for the user to watch a television program and "play along", competing with other users. Single Player Game - The system provides a means for the user to play a system-based game with no additional remotely located participants.
Multi-user Game - The system provides a means for the user to play a system-based game in which there is additional, remotely located, participants. §3.6. Internet Access
The internet access scenarios allow the user to access internet-based content or functions: html pages, email, chat, streaming audio, etc. Browse the Web - The system provides a means for the user to browse web-sites.
Email - The system provides a means for the user to read, write, and respond to electronic mail. Chat - The system provides a means for the user to communicate in real-time with other users on the Internet .
Watch TV wi th Internet Conten t - The system provides a means for the user to simultaneously watch an audio and video service while performing an Internet-based activity that is made available with or through the audio-video service.
Browse Web wi th TV Content - The system provides a means for the user to watch an audio or video service that is made available from an Internet-based item.
§3.7. Information on Demand
The information on demand scenarios allow the user to access information-related content when they desire or customized to their preferences. Pay-per-View News Service - The system provides a means for the user to purchase an audio, video, or text-centric news service. The service might provide a headline-level of detail, an in-depth level of detail, editorial information, or some other level of service. Query for News Item - The system provides a means for the user to query multiple available sources for one or more "articles" pertaining to user-defined or user-selected criteria. Personalized News - The system provides a means for the user to tailor a news service to their preferred topics.
Subscription Services - The system provides a means for the user to purchase and schedule a subscription to an audio, video, or text-centric news service.
§3.8. Electronic Program Guide
The electronic program guide scenarios allow the user to access channel, service, and event information. Generally the user may also control the system or navigate within the system using this information.
Current Channel Now and Next - The system provides information on what service is currently available on the current channel and what service is following.
All Channels Now and Next - The system provides information on what service is currently available on all known channels and what services are following.
All Channels Now and Future - The system provides information on what service is currently available on all known channels and what services are available for some predetermined time in the future. Request Preview from Guide - The system provides a means for the user to request a sample of a service. For example, the user might be able to request a trailer for a motion picture or a demo of an application.
Purchase Event from Guide - The system provides a means for the user to purchase a future event or service from within the electronic program guide . Setup Program Reminder - The system provides a means for the user to schedule a notification of a future event at a future point in time.
Purchase Application from Guide - The system provides a means for the user to purchase an application for download from within the electronic program guide .
§3.9. Distance Learning
The distance learning scenarios describe a virtual classroom in which students and teachers are not co-located.
Watch TV wi th Chat - The system provides audio and video of a virtual classroom. The system provides a means for the user to participate with an educator or other students (located at different sites) through chat.
Watch TV wi th Test - The system provides audio and video of a virtual classroom. The system provides a means for the user to participate with an educator or other students (located at different sites) through chat. §3.10. Home Banking
The home banking scenarios describe services available to the user comparable to services available at a retail bank. Information Retrieval - The system provides a means for the user to access information pertaining to banking functions and their personal accounts .
Transaction - The system provides a means for the user to perform typical retail bank electronic transfers.
Servi ce Applications - The system provides a means for the user to apply for retail bank services such as credit cards, loans, and checking.
Counseling - The system provides a means for the user to get personalized financial assistance. §3.11. Navigation
The navigation scenarios describe situations in which the user activates services, applications, and content available on the system. Application Activation - The system provides a means for the user to activate (run or launch) an application.
Application Removal - The system provides a means for the user to remove an application from system memory, local storage, or remote storage associated with the system.
System Preferences - The system provides a means for user to identify user-centric preferences related to operation of the system or its user interface .
Favori te Channel Setup - The system provides a means for the user to identify or customize the set of or subset of available services.
§4. STAMP Component Architecture
Component Groups (Bean Bags) are defined to facilitate domain specific (e.g., IPG) application component building sets . These set are NOT disjoint. The Java Bean Bags are:
1. GI Application System Bean Bag - this set of components comprises all beans that are generic to all different application component sets. This may include information exchange mechanisms, synchronization mechanisms, timing mechanisms, storage mechanisms, etc.
2. GI GUI Bean Bag - this set of components includes all GUI beans that are generic to all different applications; this may include lists, buttons, sliders, etc.
3. GI HotJava Bean Bag - this set of components includes all components that can be a part of a browser.
4. GI IPG Bean Bag - this set of components includes all components that can be a part of the
IPG application.
5. GI Tuning Bean Bag - this set of components includes all components that can be a part of a tuning application. 6. GI E-mail Bean Bag - this set of components includes all components that can be a part of an e-mail application.
7. GI Download Bean Bag - this set of components includes all components that can be a part of a download application.
8. GI Ticker Bean Bag - this set of components includes all components that can be a part of an information ticker application. . GI Game Player Bean Bag - this set of components includes all components that can be a part of a game player application.
§5. Applications Programming Interfaces (APIs)
APIs provide the system with a hardware and operating system independent abstraction layer.
This permits broadcast applications to be delivered to systems of widely varying processors and operating systems: from set-top boxes with a RISC processor and a real-time operating system to a personal computer with a microprocessor and a non- real-time operating system.
All APIs are usable from native applications as well as from Java applications. The Following APIs need to be defined outside the scope of those APIs defined by DAVIC and those standardized by JavaSoft: §5.1. Event Management APIs
The event management APIs provide the system with functions for sending and receiving messages, events, and "interrupts." Event Dispatch API - The event dispatch API provides the system with functions for sending messages, events, and "interrupts."
User Input API - The user input API provides the system with functions for receiving and dispatching user-originated events (keyboard, mouse, front panel, remote control, etc.).
Inter-Process Communication API - The interprocess communication API provides the system with functions for sending messages and events between applications, processes, and threads.
Scheduling API - The scheduling API provides the system with functions for establishing time and date triggered events and "interrupts". §5.2. Application Utility APIs
The application utili ty APIs provide the system with general purpose functions commonly used by applications .
Math API - The math API provides the system with functions for performing math routines.
Time API - The time API provides the system with functions for accessing time and date and performing common time routines.
String API - The string API provides the system with functions for loading, unloading, and manipulating strings.
List APT - The list API provides the system with functions for managing lists and other common dynamic data structures . File API - The file API provides the system with functions for performing file-related operations .
Localization API - The localization API provides the system with functions for performing common localization operations.
Communications API - High-level interface to all communications and communications management components including dial-up networking, Internet, routing, transport stream, etc.
Object Services API - Support for information exchange between objects; this includes an information model, types, relationships, operations, characteristics, naming, registry, distribution, etc.
Database Services API - support for data store and retrieval mechanisms including a generic file system and registry.
Download Services API - support for download services.
§5.3. Content Management APIs
The content management APIs provide the system with content life-cycle and content integrity related functions . Content Integri ty API - The content integrity
API provides the system with functions for TBD.
Content Download API - The content download API provides the system with functions for storing applications broadcast to the system. Content Version Control API - The content version control API provides the system with functions for managing the stored or loaded version of content . Content Storage API - The content storage API provides the system with functions for storing and retrieving content in the system or with remote storage .
§5.4. System Information APIs The system information APIs provide the system with MPEG-2 system information and program information stream related functions.
Event Information API - The event information API provides the system with functions for interpreting the event information stream.
Channel and Service Map API - The channel and service map API provides the system with functions for interpreting the system and service information streams §5.5. GI Presentation APIs
See Set Top Management Section. Enables the building of presentation manager components such as the decoders, compositors, and presenters; access to all presentation subsystems including graphics, audio, video as needed in addition to DAVIC and
Standard Java APIs; manipulation of all presentation subsystems as needed in addition to DAVIC and Standard Java APIs; initialization, startup, manipulation, shut down and coordination of all presentation components; etc. §5.6. GI Set Top Management APIs
See Set Top Management Section. This API enables set top management applications by providing component hook-up functionality, component monitoring and control functionality, initialization, startup, shut down and coordination of all internal processes/daemons/applications; processing of asynchronous events as well as events resulting from collecting information; etc. Operations Support API - facilitates the Set
Top Management API through Java/non-Java interfaces as well as an SNMP agent API.
§5.7. DAVIC APIs
The following DAVIC APIs are supported: 1. Resource Notification API
(org.davic . resources) - a standard mechanism for applications to register interest in scarce resources and to be notified of changes in those resources or removal of those resources in the environment.
2. The MPEG API (org. davic .mpeg) - includes the MPEG Component API, the MPEG Section Filter API, and the MPEG TransportStream API .
3. The Tuning API (org.davic .net . tuning) - tuning of network interfaces including multiple network interfaces (local and/or remote) .
4. The Conditional Access API (org.davic.net .ca) - a CA system independent interface for accessing CA functionality. 5. The DVB SI API (org . davic . net . dvb . si) - an interface to DVB SI database (including the access to the actual transport stream through an optional cache) . 6. The ATSC PSIP API (org . davic . atεc .psip) - an interface to the ATSC SI and PSI database (including the access to the actual transport stream through an optional cache) .
7. The Media Player API (or . davic .media) - an extension of the Java Media Framework to facilitate Set Tops.
8. The DSM-CC U-U API (davic . dsmccuu) - implements a subset of the DSM-CC-U-U APIs defined in ISO/IEC 13818-6. §5.8. Standard Java APIs
1. Personal Java - This API is a subset of the JDK 1.1 API, supplemented by a small number of new APIs designed to meet the needs of networked embedded applications. Java APIs introduced after JDK 1.1 will not automatically become a part of the PersonalJava API. New APIs will be reviewed and evaluated for appropriateness before being added to PersonalJava .
The JDK 1.1 packages included in PersonalJava are: Java. applet j ava . awt j ava . awt . datatransfer j ava . awt . event j ava . awt . image j ava . awt . peer
Java.beans
Figure imgf000045_0001
java.10 Java . lang java . lang . reflect java.net java.util
2. The Java Text API - supports internationalization.
3. The Java Security APIs are a framework for developers to easily and securely include security functionality in their applets and applications. This functionality includes cryptography with digital signatures, encryption, and authentication.
4. Java Commerce API will bring secure purchasing and financial management to the Web. JavaWallet is the initial component, which defines and implements a client-side framework for credit card, debit card, and electronic cash transactions.
5. Java Media Framework (JMF) specifies a unified architecture, messaging protocol and programming interface for media players, capture and conferencing. JMF will be published as three APIs. The Java Media Player will be published first; Java Media Capture and Java Media Conference APIs will be published subsequently. Java Media Player is an API for synchronization, control, processing and presentation of compressed streaming and stored timed media, including video and audio.
6. Java RMI (including CORBA) - object- oriented distributed processing API that supports CORBA.
§6. The Set-Top Software Architecture FIG. 10 illustrates a set top software architecture framework in accordance with the present invention.
The architecture 1000 corresponds to the architecture 200 of FIG. 2, but provides further details and examples for each layer.
The device driver kernel modules in the layer 210' correspond generally to the classes in FIG. 9.
§7. Relationship to OpenCable APIs
The following Sections summarize the current
OpenCable API classification.
§7.1. Operating System <-> Network APIs
Network Protocols are used at all levels of the ASB, to communicate with other clients, applications, and servers. Although applications also make use of network protocols, many of these are actually OS-implemented network stacks called through the OS <-> Application APIs. Protocols specifically dealing with application-level client- server issues will be covered in the Client<->Server section.
§7.1.1. Video and Data Network / Transport Protocols These protocols are used for network packet routing, connection establishment, control, and teardown. Industry open standards are TCP for connection-oriented transport, UDP for connectionless, real-time traffic transport, and IP for packet routing. RSVP is used for network bandwidth and channel reservation. MPEG-2 is the clear favorite for video transpor .
§7.1.2. Session / Presentation Protocols
These protocols are used for session maintenance, and to provide applications with a common procedure for requesting and receiving data from content servers. FTP is used for file transfer, HTTP for WWW access and HTML transport, NNTP for news server access, and SMTP and IMAP for mail. There is no standard for chat, however.
§7.1.3. Directory Services Protocols
Directories are mostly read-only distributed databases that are designed for attribute lookup to locate, authenticate, and update network objects. LDAP, rapidly emerging as the standard directory for TCP/IP networks, is a lightweight version of X.500's more complex Directory Access Protocol. LDAP has been adopted by over 40 major software vendors, and supports access-independent data views, hierarchical storage, multiple storage schemes, rich access control, multiple database types and instances, and network replication.
§7.1.4. Data-Link, Physical, MAC Layer
Protocols These APIs control modulation, encoding, and management of data streams over the cable plant. §7.1.5. Network Encryption Protocols
These protocols are used to encrypt and decrypt video, data, and transactions schemes. §7.1.6. Multi-user / Network Broadcast Protocols
Required for broadcasting of data streams efficiently over the network. §7.2. OS <-> Applications APIs
The operating system provides applications with two sets of crucial services that allow those applications to be implemented on top of the system. Base OS Services, such as scheduling, virtual memory, multi-threading, etc., are essential services that are provided to almost all applications without much effort on the programmer's part. The APIs for the these services are largely invisible. OS Standard Libraries, on the other hand, are predefined code modules that applications are encouraged to use when implementing functionality supported by the OS. For example, a network application is encourage to use the OS's network libraries, almost all apps are encouraged to use the OS's GUI libraries, etc. In essence, the standard libraries are present to maintain consistency, prevent duplication of effort, and speed up development. Sometimes, applications will bypass certain libraries for aesthetic reasons or to optimize code.
§7.2.1. Application Services and Libraries
These APIs control the heart of the set-top box. Native applications (those written specifically for the ASB, requiring maximum performance and hardware interaction) will be implemented based on OS services and libraries, provided through these APIs.
§7.2.2. Computer Graphics
These APIs control drawing and rendering of 2D and 3D objects. Application programmers use these to simplify graphic functions. They are also used to implement the graphical user interface and windowing tool-kits for applications.
§7.2.3. Remote Execution Environments / Virtual Machines
Allows applications stored on the network to be downloaded, executed, and discarded. Encapsulates runtime environment, security model, and object model. Current competitors are platform-independent Java, and Windows- specific ActiveX. Scripting versions include JavaScript and VBScript.
§7.3. Operating System <-> Hardware APIs
These APIs, commonly referred to as device drivers, allow the operating system to control various pieces of hardware. They are usually implemented in software by the device manufacturer, who plugs them into the operating system via a well defined device-driver architecture API proposed by the operating-system vendor. For well-defined categories of devices, the operating system vendor will sometimes provide a generic device driver for an entire class of devices. This generic driver can provide lowest common denominator functionality when the manufacturer's driver is unavailable, i.e., the Macintosh OS provides a generic Laser Writer driver for all laser printers, but printers that have their own driver available can take advantage of vendor / model-specific features. Systems that automatically recognize devices and load the appropriate driver are classified as plug-and-play . §7.3.1. Hardware Abstraction Layer (HAL) APIs
The HAL separates the hardware from the OS, and makes the OS portable across any platform that supports the HAL.
§7.3.2. Registry APIs Storage format and control for local Flash RAM storage .
§7.4. Operating System <-> Operating System APIs
These APIs are used when one OS is implemented on top of another, as is the case with virtual machines, or two OSs communicate with each other. The latter case is rare, and is usually handled through network protocols, although some component and object models allow distributed objects to communicate across OSs.
§7.4.1. Remote Execution Environments / Virtual Machines (VM) links to OS
Controls implementation details of virtual machines on existing RTOS . Important for VM portability if a proprietary VM is implemented, or if an open VM is implemented with proprietary ties to the OS .
§7.4.2. Distributed Object Model
Allows applications to store and exchange data with other networked applications in a common object format. Competitors are Microsoft's Distributed Component Object Model (DCOM) and JavaBeans / CORBA (Common Object Request Broker Architecture) . Remote Procedure Call mechanisms (ONC, DCE) also fall within this API . §7.5. Client <-> Server APIs
Clients and servers will often pass application data through standard networking protocols, but remote client management, authentication, software downloading, and updating are handled through specific client-server APIs. These APIs usually tend to be closed and fragmented, due to the large number of potential combinations and issues.
§7.5.1. Network Management
Remote network management of all network elements .
§7.5.2. Software Management and Updates
An API that controls software downloads and module loaders .
§7.5.3. Network / Remote FileSystem Controls file storage and retrieval methods.
§7.5.4. Digital Certificates
Control authentication for users, vendors, and products .
§7.5.5. Calendar Server Protocols Determines storage and interaction formats for user calendaring and scheduling functions . §7.5.6. Synchronization Protocols
Required for clock synchronization and timing. §7.5.7. Usage Data Gathering APIs Defines methods and formats for usage data collection, storage, and transmission. §7.5.8. Billing System APIs
Defines methods and formats for billing data collection, storage, and transmission.
§7.6. Application <-> File APIs Applications use specific formats to store and retrieve data that they use. With the exception of a few, high-visibility formats (ASCII, HTML), these formats are often closed and proprietary in nature. Besides just static-data, some applications also support the storage, retrieval, and execution of plug-in code modules, and release APIs that allow 3rd party vendors to construct such plug-ins. §7.6.1. Text Document Storage Formats
Storage format for plain text documents. §7.6.2. Hyperlinked Document Storage Formats
Storage format for rich, hyperlinked text. §7.6.3. Image Storage Formats
Compression format for images.
§7.6.4. 3D Graphics Document Storage Formats Storage formats for 3D data
§7.6.5. Video Clip Storage Formats
Encoding of streaming and non-streaming video clips .
§7.6.6. Audio Document Storage Formats Encoding of sound and music.
§7.6.7. Animation Document Storage Formats
Animation encoding.
§7.6.8. Web / Video Integration Formats
Defines libraries and methods to integrate web- based content with traditional TV offerings. Examples include hyperlinked ads, buttonbar and ticker overlay, virtual web channels, etc. §7.6.9. Personal Information Storage
Storage of user identification information, preferences, and access control information. §7.7. Client <-> Content APIs
This set of APIs controls serving and delivery of content from various servers to the client . It is really a subset of the client-server APIs, but is explicitly mentioned since some vendors may attempt to achieve lock- in by requiring proprietary servers to distribute content.
§7.7.1. Web Data Serving
Format for serving web conten . Beyond standard HTTP, some web servers may use proprietary serving methods (i.e., Active Server Pages) . §7.7.2. Video Data Serving
Format for serving video content . §7.7.3. Integrated Data Serving Serving and coordination of integrated web / data content .
§7.8. Content <-> Access APIs
This set of APIs controls serving and delivery of content from various servers to the client. It is really a subset of the client-server APIs, but is explicitly mentioned since some vendors may attempt to achieve lock- in by requiring proprietary servers to distribute content.
§7.8.1. Video Access Control Access control and encryption of video streams. §7.8.2. Data Access Control
Authentication for data content transmission. §7.9. Browser <-> Resident Engine APIs
Not really a separate set of APIs per se, the browser <-> resident engines interaction is really a sub-category of OS <-> Applications, and is explicitly broken out due to its strategic importance and the fact that most browser vendors subsume this API into their product. In a well- designed operating system, the resident HTML, VRML, Java, and caching engines are services that the OS provides to all interested applications. However, most browser vendors bundle these important engines into the browser, thereby concealing and controlling these important APIs, even though they should be explicitly exposed.
§7.9.1. Explicit HTML Engine Control
Controls to access and use the HTML rendering engine once it has been separated from the browser. Alternatively, if a proprietary format is used, the OS provider should document the APIs used, and provide rights to these APIs for free, in perpetuity.
§7.9.2. Explicit Cache Control Controls to access and use the caching engine once it has been separated from the browser.
Accordingly, it can be seen that the present invention provides a Set Top software that allows the consideration of Set Top application and middleware software functionality independent from the operating system and hardware.
The invention can support various type of functionality, such as multiple users, secure controlled access of resources, application download, registration, start, stop, and monitoring, resource download, registration, start, stop, and monitoring, management of audio, video, data presentations .
Although the invention has been described in connection with various specific embodiments, those skilled in the art will appreciate that numerous adaptations and modifications may be made thereto without departing from the spirit and scope of the invention as set forth in the claims. For example, while various syntax elements have been discussed herein, note that they are examples only, and any syntax may be used.
Moreover, the invention is suitable for use with virtually any type of network, including cable or satellite television broadband communication networks, local area networks (LANs), metropolitan area networks (MANs) , wide area networks (WANs) , internets, intranets, and the Internet, or combinations thereof.

Claims

What is claimed is:
1. A television set-top terminal with software, comprising: a computer readable medium having computer program code means ; and means for executing said computer program code means to implement a layered software architecture wherein : an application layer allows a user to interact with the terminal ; a middleware layer supports the application layer by providing Application Program Interfaces (APIs) ; an operating system layer supports the middleware layer; a hardware layer supports the operating system layer; and said layered software architecture allows configuration of a functionality of the application layer and the middleware layer independently of the operating system layer and the hardware layer.
2. The terminal of claim 1, wherein: the layered software architecture includes a set top management layer that supports the application layer by configuring management services of the terminal .
3. The terminal of claim 2, wherein: said management services include at least one of application, user, resource and presentation management .
4. The terminal of claim 2, wherein: the set top management layer implements a state information module to designate states of resources of the terminal .
5. The terminal of claim 4, wherein: said state information module is based on the ITU-T X.731 standard.
6. The terminal of claim 1, further comprising: an application program interface (API) for providing a configurable functionality.
7. The terminal of claim 6, wherein: said API enables said terminal to support multiple users.
8. The terminal of claim 6, wherein: said API enables said terminal to secure controlled access of resources.
9. The terminal of claim 6, wherein: wherein said API enables said terminal to download, register, start, stop, and monitor applications of the applications layer.
10. The terminal of claim 6, wherein: said API enables said terminal to manage audio, video and/or other data presentations.
11. The terminal of claim 1, further comprising at least one of: a set top manager; a presentation manager; an application manager; a user manager; a resource manager; a set top agent; and a program view assistant.
12. A method for implementing a layered software architecture for a television set-top terminal, comprising the steps of: providing a computer readable medium having computer program code means ; and executing said computer program code means to implement a layered software architecture wherein: an application layer allows a user to interact with the terminal ; a middleware layer supports the application layer by providing Application Program Interfaces (APIs) ; an operating system layer supports the middleware layer; a hardware layer supports the operating system layer; and said layered software architecture allows configuration of a functionality of the application layer and the middleware layer independently of the operating system layer and the hardware layer.
13. The method of claim 12, wherein: the layered software architecture includes a set top management layer that supports the application layer by configuring management services of the method.
14. The method of claim 13, wherein: said management services include at least one of application, user, resource and presentation management .
15. The method of claim 13, wherein: the set top management layer implements a state information module to designate states of resources of the method.
16. The method of claim 15, wherein: said state information module is based on the ITU-T X.731 standard.
17. The method of claim 12, wherein: said layered software architecture provides an application program interface (API) for providing a configurable functionality.
18. The method of claim 17, wherein: said API enables support of multiple users.
19. The method of claim 17, wherein: said API enables secure controlled access of resources .
20. The method of claim 17, wherein: said API enables downloading, registering, starting, stopping, and monitoring of applications of the applications layer.
21. The method of claim 17, wherein: said API enables managing of audio, video and/or other data presentations.
22. The method of claim 12, where in said layered software architecture provides at least one of: a set top manager; a presentation manager; an application manager; a user manager; a resource manager; a set top agent ; and a program view assistant.
PCT/US1999/021983 1998-10-19 1999-09-22 Television set-top box with configurable functionality WO2000024192A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
AU61584/99A AU766861B2 (en) 1998-10-19 1999-09-22 Television set-top box with configurable functionality
KR1020017004828A KR20010080210A (en) 1998-10-19 1999-09-22 Television set-top box with configurable functionality
BR9914604-5A BR9914604A (en) 1998-10-19 1999-09-22 TV set top box with configurable functionality
JP2000577830A JP2002528971A (en) 1998-10-19 1999-09-22 Television set-top box with configurable features
CA002346891A CA2346891A1 (en) 1998-10-19 1999-09-22 Television set-top box with configurable functionality
EP99948392A EP1123620A1 (en) 1998-10-19 1999-09-22 Television set-top box with configurable functionality
HK02104399.7A HK1043464A1 (en) 1998-10-19 2002-06-12 Television set-top box with configurable functionality

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10477798P 1998-10-19 1998-10-19
US60/104,777 1998-10-19

Publications (1)

Publication Number Publication Date
WO2000024192A1 true WO2000024192A1 (en) 2000-04-27

Family

ID=22302320

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/021983 WO2000024192A1 (en) 1998-10-19 1999-09-22 Television set-top box with configurable functionality

Country Status (9)

Country Link
EP (1) EP1123620A1 (en)
JP (1) JP2002528971A (en)
KR (1) KR20010080210A (en)
CN (1) CN1326638A (en)
AU (1) AU766861B2 (en)
BR (1) BR9914604A (en)
CA (1) CA2346891A1 (en)
HK (1) HK1043464A1 (en)
WO (1) WO2000024192A1 (en)

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001015431A1 (en) * 1999-08-25 2001-03-01 Deutsche Telekom Ag Terminal to be connected to different networks
WO2001086536A1 (en) * 2000-05-09 2001-11-15 Cadmus Limited Electronic user pays product and/or service controller
FR2809914A1 (en) * 2000-06-06 2001-12-07 Sagem TELEVISION DECODER WITH ASSISTANCE
WO2002009422A1 (en) * 2000-07-25 2002-01-31 Digeo, Inc. Method and system to defer transactions conducted via interactive television
FR2815807A1 (en) * 2000-10-23 2002-04-26 Thomson Multimedia Sa Receptor for interactive systems comprises selector for interactive programme, device to store programmes and device to select them subsequently
EP1223747A2 (en) * 2000-12-29 2002-07-17 Nokia Corporation Method for storing information
WO2002063851A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A digital television application protocol for interactive television
WO2002063879A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A service gateway for interactive television
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
GB2385952A (en) * 2001-10-24 2003-09-03 Imagine Broadband Ltd Middleware providing an API for an interactive user interface application
US6665489B2 (en) 1999-04-21 2003-12-16 Research Investment Network, Inc. System, method and article of manufacturing for authorizing the use of electronic content utilizing a laser-centric medium and a network server
EP1392052A1 (en) * 2002-05-08 2004-02-25 Broadcom Corporation System and method for secure controlling the configuration of device functions
WO2004040890A1 (en) * 2002-11-01 2004-05-13 Fujitsu Limited Access request control method, driver program for communication device, and communication device
EP1569103A2 (en) 2004-02-18 2005-08-31 Time Warner Cable, Inc. Media extension apparatus and methods for use in an information network
WO2006064252A1 (en) * 2004-12-15 2006-06-22 Symbian Software Limited A method of maintaining applications in a computing device
WO2006075884A1 (en) * 2005-01-12 2006-07-20 Electronics And Telecommunications Research Institute Apparatus and method for resource management in data broadcast receiver
US7143347B2 (en) 2001-02-02 2006-11-28 Opentv, Inc. Method and apparatus for reformatting of content for display on interactive television
US7194754B2 (en) 2000-07-25 2007-03-20 Digeo, Inc. Method and system to defer transactions conducted via interactive television
EP1816852A1 (en) 2006-02-01 2007-08-08 LG Electronics Inc. Method for managing applications related to data broadcasting, class/interface structure for controlling the same, and broadcast receiver for controlling the class/interface structure
EP1872213A1 (en) * 2005-04-18 2008-01-02 Research In Motion Limited Method and system for hosting and executing a component application
US7555715B2 (en) 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US7643456B2 (en) 2002-04-09 2010-01-05 Nokia Corporation Transfer of packet data to wireless terminal
US7681043B1 (en) 2002-05-08 2010-03-16 Broadcom Corporation System and method for configuring device features via programmable memory
US7810152B2 (en) 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
CN102256176A (en) * 2011-06-29 2011-11-23 四川金网通电子科技有限公司 Method for achieving card-free certificate authority (CA) information security
WO2010025531A3 (en) * 2008-09-03 2012-05-31 Tqtvd Software Ltda Application execution system for digital television, apparatus for application execution for digital television and method to implement said system
US8302111B2 (en) * 2003-11-24 2012-10-30 Time Warner Cable Inc. Methods and apparatus for hardware registration in a network device
US8495178B1 (en) 2011-04-01 2013-07-23 Symantec Corporation Dynamic bandwidth discovery and allocation to improve performance for backing up data
US8713300B2 (en) 2011-01-21 2014-04-29 Symantec Corporation System and method for netbackup data decryption in a high latency low bandwidth environment
JP2014529382A (en) * 2011-01-27 2014-11-06 エルジー シーエヌエス カンパニー リミテッドLG CNS Co., Ltd. Smart set-top box providing smart service and digital TV service on a single operating system and driving method thereof
EP1972122A4 (en) * 2006-01-11 2015-05-13 Samsung Electronics Co Ltd Security management method and apparatus in multimedia middleware, and storage medium therefor
US9258619B2 (en) 2008-07-24 2016-02-09 Samsung Electronics Co., Ltd. Method and apparatus for performing IPTV communication service
US9271053B2 (en) 2008-03-28 2016-02-23 Samsung Electronics Co., Ltd. Data receiving method and device for applications providing an IPTV communications service
US9563420B2 (en) 2006-12-02 2017-02-07 Time Warner Cable Enterprises Llc Methods and apparatus for analyzing software interface usage
US9674287B2 (en) 2003-11-24 2017-06-06 Time Warner Cable Enterprises Llc Methods and apparatus for event logging in an information network
US9774904B2 (en) 2007-11-30 2017-09-26 Samsung Electronics Co., Ltd. Method and apparatus for searching for IPTV service relay devices and method and apparatus for interacting with devices
US9788049B2 (en) 1998-07-30 2017-10-10 Tivo Solutions Inc. Multimedia signal processing system
US9800823B2 (en) 1998-07-30 2017-10-24 Tivo Solutions Inc. Digital security surveillance system
US9992118B2 (en) 2014-10-27 2018-06-05 Veritas Technologies Llc System and method for optimizing transportation over networks
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US10359922B2 (en) 2004-02-06 2019-07-23 Time Warner Cable Inc. Methods and apparatus for display element management in an information network
US11029903B2 (en) 2000-11-01 2021-06-08 Flexiworld Technologies, Inc. Output systems, such as television controllers, televisions, display devices, or audio output devices, operable for playing digital content wirelessly received either from a digital content service over the internet or wirelessly received from a client device that is in the same network as the output system
US11096056B2 (en) 2000-11-01 2021-08-17 Flexiworld Technologies, Inc. Output devices, such as televisions, output controllers, or audio output devices, that are setup to wirelessly receive digital content from a digital content service over the internet or from a wireless information apparatus that is in the same network as the output devices
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US11662918B2 (en) 2002-12-12 2023-05-30 Flexiworld Technologies, Inc. Wireless communication between an integrated circuit memory device and a wireless controller device
US11811681B1 (en) 2022-07-12 2023-11-07 T-Mobile Usa, Inc. Generating and deploying software architectures using telecommunication resources
US11818676B2 (en) 2019-10-23 2023-11-14 Charter Communications Operating, Llc Methods and apparatus for device registration in a quasi-licensed wireless system
US11829776B2 (en) 2002-12-12 2023-11-28 Flexiworld Technologies, Inc. Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface
US11889492B2 (en) 2019-02-27 2024-01-30 Charter Communications Operating, Llc Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system
US11903049B2 (en) 2018-10-12 2024-02-13 Charter Communications Operating, Llc Apparatus and methods for cell identification in wireless networks

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1550332B1 (en) * 2002-09-23 2010-08-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and device for extending the functionality of a mobile platform using plug-in software
AU2004202425A1 (en) * 2003-06-04 2004-12-23 Panasonic Corporation Program replacing method
CN101256496B (en) * 2003-06-04 2011-07-20 松下电器产业株式会社 Program replacing method and device
CN100367778C (en) * 2003-11-26 2008-02-06 厦门华侨电子股份有限公司 A control device for set-top box and host computer
KR100725386B1 (en) 2004-09-25 2007-06-07 삼성전자주식회사 Method for executing virtual machine application, and the digital broadcast receiver thereof
KR101029813B1 (en) * 2004-12-29 2011-04-20 엘지전자 주식회사 Apparatus for software upgrade in Digital receiver
KR100654087B1 (en) * 2005-02-16 2006-12-05 주식회사 씨씨미디어 System for action log in settop box and method for generation the action log
CA2622900C (en) * 2005-09-15 2014-04-29 Biap, Inc. Self-contained mini-applications system and method for digital television
KR100731359B1 (en) * 2006-01-09 2007-06-21 삼성전자주식회사 Broadcast receiving device supplying non standard functions and method thereof
CN100409662C (en) * 2006-02-14 2008-08-06 深圳创维数字技术股份有限公司 Automatically projected file making method and playing method for the same
CN101505253B (en) * 2008-02-05 2013-03-20 突触计算机系统(上海)有限公司 Method and apparatus for providing data to network appliance in auxiliary appliance of network appliance
US8621520B2 (en) 2009-05-19 2013-12-31 Qualcomm Incorporated Delivery of selective content to client applications by mobile broadcast device with content filtering capability
CN101742065B (en) * 2009-10-30 2014-05-07 康佳集团股份有限公司 Integrated set-top box device and integration method thereof
CN102668498A (en) * 2009-12-09 2012-09-12 交互数字专利控股公司 Method and apparatus for session duplication and session sharing
CN101986694A (en) * 2010-10-29 2011-03-16 广东星海数字家庭产业技术研究院有限公司 Linux system-based digital television system
CN102026031B (en) * 2010-12-28 2013-09-04 张朝晖 Set top box
CN102164314B (en) * 2011-01-30 2012-12-05 青岛海信传媒网络技术有限公司 Data management method and device based on digital television terminal middleware
CN102170586A (en) * 2011-03-04 2011-08-31 深圳Tcl新技术有限公司 IPTV (Internet Protocol Television) video communication-based multi-account number management method and system
KR101260185B1 (en) * 2011-09-22 2013-05-06 주식회사 엘지씨엔에스 Smart settop box and operating method for providing smart service and digital television service using default media player included in single operating systme
CN103297838B (en) * 2012-02-23 2017-02-01 华为终端有限公司 Processing method and equipment of EPG
US9264648B2 (en) * 2012-10-09 2016-02-16 Sony Corporation Receiving device, receiving method, transmitting device, and transmitting method
US9338522B2 (en) * 2012-10-18 2016-05-10 Broadcom Corporation Integration of untrusted framework components with a secure operating system environment
US10002206B2 (en) 2012-10-26 2018-06-19 Saturn Licensing Llc Information processing device and information processing method
CN106550234A (en) * 2016-12-26 2017-03-29 中国电信股份有限公司四川分公司 A kind of dress ties up easily Set Top Box and IPTV service quality detecting method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0813147A2 (en) * 1996-06-10 1997-12-17 Lsi Logic Corporation Object oriented multi-media architecture
EP0852443A2 (en) * 1997-01-03 1998-07-08 Texas Instruments Inc. An apparatus for producing interactive television programs
EP0869447A1 (en) * 1997-03-31 1998-10-07 Compaq Computer Corporation Device with combined Internet and TV/Video functionality
EP0908821A1 (en) * 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digital code interpreter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0813147A2 (en) * 1996-06-10 1997-12-17 Lsi Logic Corporation Object oriented multi-media architecture
EP0852443A2 (en) * 1997-01-03 1998-07-08 Texas Instruments Inc. An apparatus for producing interactive television programs
EP0869447A1 (en) * 1997-03-31 1998-10-07 Compaq Computer Corporation Device with combined Internet and TV/Video functionality
EP0908821A1 (en) * 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digital code interpreter

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
EVAIN J -P: "THE MULTIMEDIA HOME PLATFORM", EBU REVIEW- TECHNICAL,BE,EUROPEAN BROADCASTING UNION. BRUSSELS, no. 275, - 21 March 1998 (1998-03-21), pages 4-10, XP000767493, ISSN: 0251-0936 *
ITOH J -I ET AL: "A NEW SOFTWARE ARCHITECTURE FOR EVOLVABLE MULTIMEDIA SOFTWARE", EUROPEAN TRANSACTIONS ON TELECOMMUNICATIONS,IT,EUREL PUBLICATION, MILANO, vol. 8, no. 4, - July 1997 (1997-07-01), pages 423-435, XP000695449, ISSN: 1124-318X *
RATH K ET AL: "SET-TOP BOX CONTROL SOFTWARE: A KEY COMPONENT IN DITITAL VIDEO", PHILIPS JOURNAL OF RESEARCH,NL,ELSEVIER, AMSTERDAM, vol. 50, no. 1/02, - July 1996 (1996-07-01), pages 185-199, XP000627669, ISSN: 0165-5817 *
WILLIAMS T: "STB OPERATING SYSTEMS GEAR UP FOR FLOOD OF DATA SERVICES", COMPUTER DESIGN,US,PENNWELL PUBL. LITTLETON, MASSACHUSETTS, vol. 35, no. 2, - February 1996 (1996-02-01), pages 67-68,72,74-76, XP000555483, ISSN: 0010-4566 *

Cited By (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9788049B2 (en) 1998-07-30 2017-10-10 Tivo Solutions Inc. Multimedia signal processing system
US9800823B2 (en) 1998-07-30 2017-10-24 Tivo Solutions Inc. Digital security surveillance system
US9854199B2 (en) 1998-07-30 2017-12-26 Tivo Solutions Inc. Multiple outlet digital video recording system
US10021446B2 (en) 1998-07-30 2018-07-10 Tivo Solutions Inc. Multimedia stream processing system
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
US6944621B1 (en) 1999-04-21 2005-09-13 Interactual Technologies, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US6665489B2 (en) 1999-04-21 2003-12-16 Research Investment Network, Inc. System, method and article of manufacturing for authorizing the use of electronic content utilizing a laser-centric medium and a network server
WO2001015431A1 (en) * 1999-08-25 2001-03-01 Deutsche Telekom Ag Terminal to be connected to different networks
GB2379774A (en) * 2000-05-09 2003-03-19 Cadmus Ltd Electronic user pays product and/or service controller
GB2379774B (en) * 2000-05-09 2004-08-11 Cadmus Ltd Electronic user pays product and/or service controller
WO2001086536A1 (en) * 2000-05-09 2001-11-15 Cadmus Limited Electronic user pays product and/or service controller
AU2001260831B2 (en) * 2000-05-09 2007-03-29 Cadmus Payment Solutions Limited Electronic user pays product and/or service controller
FR2809914A1 (en) * 2000-06-06 2001-12-07 Sagem TELEVISION DECODER WITH ASSISTANCE
EP1162835A1 (en) * 2000-06-06 2001-12-12 Sagem SA Digital television decoder with assistance
WO2002009422A1 (en) * 2000-07-25 2002-01-31 Digeo, Inc. Method and system to defer transactions conducted via interactive television
US7194754B2 (en) 2000-07-25 2007-03-20 Digeo, Inc. Method and system to defer transactions conducted via interactive television
FR2815807A1 (en) * 2000-10-23 2002-04-26 Thomson Multimedia Sa Receptor for interactive systems comprises selector for interactive programme, device to store programmes and device to select them subsequently
US11416197B2 (en) 2000-11-01 2022-08-16 Flexiworld Technologies, Inc. Wireless controllers connectable to televisions, wireless televisions, wireless output controllers, or wireless output devices for receiving digital content from one or more servers over the internet
US11029903B2 (en) 2000-11-01 2021-06-08 Flexiworld Technologies, Inc. Output systems, such as television controllers, televisions, display devices, or audio output devices, operable for playing digital content wirelessly received either from a digital content service over the internet or wirelessly received from a client device that is in the same network as the output system
US11204729B2 (en) 2000-11-01 2021-12-21 Flexiworld Technologies, Inc. Internet based digital content services for pervasively providing protected digital content to smart devices based on having subscribed to the digital content service
US11096056B2 (en) 2000-11-01 2021-08-17 Flexiworld Technologies, Inc. Output devices, such as televisions, output controllers, or audio output devices, that are setup to wirelessly receive digital content from a digital content service over the internet or from a wireless information apparatus that is in the same network as the output devices
US11169756B2 (en) 2000-11-20 2021-11-09 Flexijet Technologies, Inc. Method for capturing, storing, accessing, and outputting digital content
EP1223747A3 (en) * 2000-12-29 2004-02-04 Nokia Corporation Method for storing information
EP1223747A2 (en) * 2000-12-29 2002-07-17 Nokia Corporation Method for storing information
US7143347B2 (en) 2001-02-02 2006-11-28 Opentv, Inc. Method and apparatus for reformatting of content for display on interactive television
WO2002063851A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A digital television application protocol for interactive television
AU2002240200B2 (en) * 2001-02-02 2006-06-15 Opentv, Inc. A digital television application protocol for interactive television
US7017175B2 (en) 2001-02-02 2006-03-21 Opentv, Inc. Digital television application protocol for interactive television
US10826748B2 (en) 2001-02-02 2020-11-03 Opentv, Inc. Service gateway for interactive television
AU2002240200B8 (en) * 2001-02-02 2006-08-31 Opentv, Inc. A digital television application protocol for interactive television
US20020169885A1 (en) * 2001-02-02 2002-11-14 Rachad Alao Digital television application protocol for interactive television
WO2002063879A2 (en) * 2001-02-02 2002-08-15 Opentv, Inc. A service gateway for interactive television
WO2002063879A3 (en) * 2001-02-02 2003-12-18 Opentv Inc A service gateway for interactive television
US7882533B2 (en) 2001-02-02 2011-02-01 Opentv, Inc. Digital television application protocol for interactive television
US7305697B2 (en) 2001-02-02 2007-12-04 Opentv, Inc. Service gateway for interactive television
WO2002063851A3 (en) * 2001-02-02 2003-09-18 Opentv Inc A digital television application protocol for interactive television
US9369330B2 (en) 2001-02-02 2016-06-14 Opentv, Inc. Service gateway for interactive television
US7490346B2 (en) 2001-02-02 2009-02-10 Opentv, Inc. Digital television application protocol for interactive television
US7669212B2 (en) 2001-02-02 2010-02-23 Opentv, Inc. Service platform suite management system
US7484236B2 (en) 2001-02-02 2009-01-27 Opentv, Inc. Service gateway for interactive television
GB2385952A (en) * 2001-10-24 2003-09-03 Imagine Broadband Ltd Middleware providing an API for an interactive user interface application
AU2002337307B2 (en) * 2001-10-24 2008-04-17 Accenture Global Services Limited Data processing system and method
GB2385952B (en) * 2001-10-24 2006-05-31 Imagine Broadband Ltd Data processing system and method
WO2003036471A3 (en) * 2001-10-24 2004-08-19 Imagine Broadband Ltd Data processing system and method
US7643456B2 (en) 2002-04-09 2010-01-05 Nokia Corporation Transfer of packet data to wireless terminal
US7810152B2 (en) 2002-05-08 2010-10-05 Broadcom Corporation System and method for securely controlling access to device functions
US7681043B1 (en) 2002-05-08 2010-03-16 Broadcom Corporation System and method for configuring device features via programmable memory
EP1414233A1 (en) * 2002-05-08 2004-04-28 Broadcom Corporation System and method for configuring device features via programmable memory
EP1392052A1 (en) * 2002-05-08 2004-02-25 Broadcom Corporation System and method for secure controlling the configuration of device functions
US7448069B2 (en) 2002-11-01 2008-11-04 Fujitsu Limited Access-request control method, driver program for communication device, and communication device
WO2004040890A1 (en) * 2002-11-01 2004-05-13 Fujitsu Limited Access request control method, driver program for communication device, and communication device
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US11829776B2 (en) 2002-12-12 2023-11-28 Flexiworld Technologies, Inc. Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface
US11662918B2 (en) 2002-12-12 2023-05-30 Flexiworld Technologies, Inc. Wireless communication between an integrated circuit memory device and a wireless controller device
US9674287B2 (en) 2003-11-24 2017-06-06 Time Warner Cable Enterprises Llc Methods and apparatus for event logging in an information network
US8302111B2 (en) * 2003-11-24 2012-10-30 Time Warner Cable Inc. Methods and apparatus for hardware registration in a network device
US11252055B2 (en) 2003-11-24 2022-02-15 Time Warner Cable Enterprises Llc Methods and apparatus for hardware registration in a network device
US9479404B2 (en) 2003-11-24 2016-10-25 Time Warner Cable Enterprises Llc Methods and apparatus for hardware registration in a network device
US11287962B2 (en) 2004-02-06 2022-03-29 Time Warner Cable Enterprises Llc Methods and apparatus for display element management in an information network
US10359922B2 (en) 2004-02-06 2019-07-23 Time Warner Cable Inc. Methods and apparatus for display element management in an information network
EP1569103A3 (en) * 2004-02-18 2010-04-28 Time Warner Cable, Inc. Media extension apparatus and methods for use in an information network
US8078669B2 (en) 2004-02-18 2011-12-13 Time Warner Cable Inc. Media extension apparatus and methods for use in an information network
US9414116B2 (en) 2004-02-18 2016-08-09 Timer Warner Cable Enterprises LLC Media extension apparatus and methods for use in an information network
EP1569103A2 (en) 2004-02-18 2005-08-31 Time Warner Cable, Inc. Media extension apparatus and methods for use in an information network
GB2421323B (en) * 2004-12-15 2009-07-22 Symbian Software Ltd A method of maintaining applications in a computing device
WO2006064252A1 (en) * 2004-12-15 2006-06-22 Symbian Software Limited A method of maintaining applications in a computing device
WO2006075884A1 (en) * 2005-01-12 2006-07-20 Electronics And Telecommunications Research Institute Apparatus and method for resource management in data broadcast receiver
EP1872213A1 (en) * 2005-04-18 2008-01-02 Research In Motion Limited Method and system for hosting and executing a component application
EP1872213A4 (en) * 2005-04-18 2008-11-05 Research In Motion Ltd Method and system for hosting and executing a component application
US8392826B2 (en) 2005-10-25 2013-03-05 Sonic Solutions Llc Methods and systems for use in maintaining media data quality upon conversion to a different data format
US7555715B2 (en) 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
EP1972122A4 (en) * 2006-01-11 2015-05-13 Samsung Electronics Co Ltd Security management method and apparatus in multimedia middleware, and storage medium therefor
US7853982B2 (en) * 2006-02-01 2010-12-14 Lg Electronics Inc. Method for managing applications related to data broadcasting, class/interface structure for controlling the same, and broadcast receiver for controlling the class/interface structure
EP1816852A1 (en) 2006-02-01 2007-08-08 LG Electronics Inc. Method for managing applications related to data broadcasting, class/interface structure for controlling the same, and broadcast receiver for controlling the class/interface structure
US9563420B2 (en) 2006-12-02 2017-02-07 Time Warner Cable Enterprises Llc Methods and apparatus for analyzing software interface usage
US9774904B2 (en) 2007-11-30 2017-09-26 Samsung Electronics Co., Ltd. Method and apparatus for searching for IPTV service relay devices and method and apparatus for interacting with devices
US9271053B2 (en) 2008-03-28 2016-02-23 Samsung Electronics Co., Ltd. Data receiving method and device for applications providing an IPTV communications service
US9258619B2 (en) 2008-07-24 2016-02-09 Samsung Electronics Co., Ltd. Method and apparatus for performing IPTV communication service
CN102239701B (en) * 2008-09-03 2014-12-03 Tqtvd软件有限公司 Application execution system for digital television, apparatus for application execution for digital television and method to implement said system
WO2010025531A3 (en) * 2008-09-03 2012-05-31 Tqtvd Software Ltda Application execution system for digital television, apparatus for application execution for digital television and method to implement said system
US8713300B2 (en) 2011-01-21 2014-04-29 Symantec Corporation System and method for netbackup data decryption in a high latency low bandwidth environment
JP2014529382A (en) * 2011-01-27 2014-11-06 エルジー シーエヌエス カンパニー リミテッドLG CNS Co., Ltd. Smart set-top box providing smart service and digital TV service on a single operating system and driving method thereof
US8495178B1 (en) 2011-04-01 2013-07-23 Symantec Corporation Dynamic bandwidth discovery and allocation to improve performance for backing up data
CN102256176A (en) * 2011-06-29 2011-11-23 四川金网通电子科技有限公司 Method for achieving card-free certificate authority (CA) information security
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US9992118B2 (en) 2014-10-27 2018-06-05 Veritas Technologies Llc System and method for optimizing transportation over networks
US11903049B2 (en) 2018-10-12 2024-02-13 Charter Communications Operating, Llc Apparatus and methods for cell identification in wireless networks
US11889492B2 (en) 2019-02-27 2024-01-30 Charter Communications Operating, Llc Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system
US11818676B2 (en) 2019-10-23 2023-11-14 Charter Communications Operating, Llc Methods and apparatus for device registration in a quasi-licensed wireless system
US11811681B1 (en) 2022-07-12 2023-11-07 T-Mobile Usa, Inc. Generating and deploying software architectures using telecommunication resources

Also Published As

Publication number Publication date
CA2346891A1 (en) 2000-04-27
KR20010080210A (en) 2001-08-22
AU766861B2 (en) 2003-10-23
EP1123620A1 (en) 2001-08-16
HK1043464A1 (en) 2002-09-13
JP2002528971A (en) 2002-09-03
CN1326638A (en) 2001-12-12
BR9914604A (en) 2001-12-11
AU6158499A (en) 2000-05-08

Similar Documents

Publication Publication Date Title
AU766861B2 (en) Television set-top box with configurable functionality
EP1322084B1 (en) Scaling and delivering distributed applications
CA2508747C (en) Apparatus and methods for implementation of network software interfaces
JP4895424B2 (en) Multi-user multimedia terminal
US6185602B1 (en) Multi-user interaction of multimedia communication
Dorward et al. The Inferno™ operating system
US20070261090A1 (en) Interactive television application distribution, control, and communication system and methods
US20030005019A1 (en) Application frameworks for mobile devices
JP2002526991A (en) Application data table for multi-service digital transmission systems
Jones The Microsoft Interactive TV System: An Experience Report
Peng et al. Digital television application manager
de Lucena et al. Designing an extension API for bridging Ginga iDTV applications and home services
US9681178B2 (en) Distributed presentation software for multiple instantiations in home network
De Jong et al. A vod application implemented in java
KR20070063571A (en) System and method for reducing the start-up time of mhp applications
MXPA01003903A (en) Television set-top box with configurable functionality
Peng et al. Integration of applications into digital television environment
Viana et al. iDTV Home Gateway convergence: an open software model integrating the Ginga middleware and the OSGi framework
Borelli et al. An XML-based component specification model for an adaptive middleware of interactive digital television systems
López-Ardao et al. Experiences from implementing a MHP receiver
Reimers et al. The Multimedia Home Platform (MHP)
DE A VoD Application Implemented in Java

Legal Events

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

Ref document number: 99813491.0

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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)
WWE Wipo information: entry into national phase

Ref document number: 09807215

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2346891

Country of ref document: CA

Ref document number: 2346891

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020017004828

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/003903

Country of ref document: MX

ENP Entry into the national phase

Ref document number: 2000 577830

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 61584/99

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1999948392

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1999948392

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020017004828

Country of ref document: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWG Wipo information: grant in national office

Ref document number: 61584/99

Country of ref document: AU

WWW Wipo information: withdrawn in national office

Ref document number: 1020017004828

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1999948392

Country of ref document: EP