US7231411B1 - Removable card system with downloadable agent for communicating with a digital television receiver or other host device - Google Patents

Removable card system with downloadable agent for communicating with a digital television receiver or other host device Download PDF

Info

Publication number
US7231411B1
US7231411B1 US09/396,565 US39656599A US7231411B1 US 7231411 B1 US7231411 B1 US 7231411B1 US 39656599 A US39656599 A US 39656599A US 7231411 B1 US7231411 B1 US 7231411B1
Authority
US
United States
Prior art keywords
processor
host device
agent program
removable card
application
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
US09/396,565
Inventor
Jin Lu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Philips North America LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Priority to US09/396,565 priority Critical patent/US7231411B1/en
Assigned to PHILIPS ELECTRONICS NORTH AMERICA CORP. reassignment PHILIPS ELECTRONICS NORTH AMERICA CORP. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LU, JIN
Priority to PCT/EP2000/008721 priority patent/WO2001020899A1/en
Priority to JP2001524349A priority patent/JP2003509788A/en
Priority to EP00956521A priority patent/EP1129572A1/en
Priority to KR1020017006134A priority patent/KR100800271B1/en
Application granted granted Critical
Publication of US7231411B1 publication Critical patent/US7231411B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/418External card to be used in combination with the client device, e.g. for conditional access
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Definitions

  • the present invention relates generally to digital television receivers and other types of host devices for processing video or other multimedia information, and more particularly to techniques for providing interaction between removable cards and such host devices.
  • DTV digital television
  • the trend in such systems is to separate the DTV functions into two categories: (1) the standardized functions, such as MPEG-2 transport stream demultiplexing and decoding; and (2) proprietary and security-related functions, such as conditional access systems and proprietary applications.
  • the standard functions can then be implemented on a DTV receiver host, and the proprietary and security-related functions can be implemented on a removable card that is inserted into and communicates with the host.
  • the host and removable card interact to provide desired programs and/or services to consumers.
  • This type of card-host system architecture increases the reusability and extensibility of the DTV receiver.
  • a consumer is able to purchase a DTV receiver in the form of a set-top box that includes a set of standard features. If the consumer then wants to receive premium programs and/or services from a cable operator, the consumer can purchase or lease a removable card from the cable operator or other source.
  • the removable card in this case contains all of the functions needed to allow the consumer to receive and decrypt the premium programs and/or services provided by the cable operator.
  • the operator can upgrade the removable card, e.g., through a software download or replacement.
  • the consumer can return the removable card to the original operator, and purchase or lease a removable card from the new operator.
  • the investment of the consumer in the DTV receiver is protected without compromising the ability of the consumer to take advantage of new technologies, programs and/or services.
  • Another advantage of the above-described card-host system architecture is that it protects the intellectual property rights of content and service providers against hackers who may try to break the system and “steal” the premium programs and/or services. This is due to the fact that all of the proprietary and security-related functions are in a separate removable card that can be disabled and/or replaced if a hacking attempt is detected.
  • the host and the removable card In order for the card-host system architecture to work properly, the host and the removable card must establish a communication channel and protocol. In conventional systems, the host and card typically communicate through message passing, based on a defined set of data descriptors and/or structures. For example, if a consumer wants to order a video on demand (VOD) service, he or she sends a request through a user interface to the host, and the host in response sends a “VOD requested” data descriptor to the removable card. In such an arrangement, the removable card may then respond by sending a data descriptor that contains the requested list of VODs with the information necessary for ordering.
  • VOD video on demand
  • the data descriptors generally must be standardized, such that the hosts and removable cards, which are usually manufactured by different vendors, can understand each other.
  • Another significant drawback is that the published details regarding data descriptors may reveal information regarding the inner structure of the removable card, or other information that could be used by hackers to break the system.
  • U.S. Pat. No. 5,588,146 describes a system in which a removable card stores software programs with rights of access. The software can be downloaded into a microcomputer after the card is inserted therein.
  • U.S. Pat. No. 5,739,510 describes the interaction between a removable card and a “dumb” terminal that handles user interface operations including input and output. The card performs application-specific operations, and the results are then communicated with the terminal.
  • Another known technique, described in U.S. Pat. No. 5,844,218, relates to a removable card that stores customized information for television receivers, such that different consumers can receive different services bases on the information stored on their cards.
  • the invention provides improved communication between a removable card and a receiver or other host device in a system which is based on a card-host architecture.
  • a removable card is adaptable for insertion into a corresponding receptacle of a host device, and includes a processor for running at least one application.
  • An agent program is downloadable from the removable card to the host device, such that the agent program runs on a processor of the host device and controls communication between the application running on the processor of the removable card and at least one application running on the processor of the host device.
  • a different agent program may be downloaded from the card to the host device for each of the applications running on the removable card processor, and each such agent program controls communications between its corresponding removable card application and one or more application programming interfaces (APIs) of applications running on the host device processor.
  • APIs application programming interfaces
  • a single agent program can be shared by more than one application running on the removable card.
  • the host device may be, e.g., a digital television (DTV) receiver, and the application running on the processor of the removable card may be a processing operation, e.g., a decryption operation, for a transport stream received via a cable signal.
  • DTV digital television
  • a command channel and a data channel are created between the removable card and the host device.
  • the processor of the host device runs an agent manager program which receives a message from the application running on the processor of the removable card. The message identifies a particular agent program to be downloaded, and in response to the message the agent manager program downloads the agent program from a memory of the removable card via the data channel.
  • the agent program after being downloaded to the host device, sends a message to the application running on the processor of the removable card via the command channel. The message indicates that the agent program is ready to control communication between the application running on the processor of the removable card and the application running on the processor of the host device.
  • a given application prior to requesting a download of a particular agent program to the host device, may first query the agent manager program to determine if the particular agent program has already been downloaded by another application. If the particular agent program has already been downloaded, no further downloading is needed and the given application can share the agent program with the other application.
  • the invention allows a removable card and a host device to communicate without the problems associated with the above-described conventional card-host communication techniques.
  • the invention eliminates the need to standardize data descriptors and/or structures between the cards and the host.
  • the details of the communication protocol carried out between the agents and the removable card may be private, i.e., known only to the card and its agents, such that significantly improved resistance to hackers is provided.
  • the invention can be applied to any system or device in which a removable card communicates with a host.
  • FIG. 1 is a block diagram illustrating communication between a removable card and a host in accordance with the invention.
  • FIG. 2 shows a more detailed block diagram of an exemplary digital television (DTV) card-host system configured in accordance with the invention.
  • DTV digital television
  • FIG. 3 is a flow diagram illustrating the operation of the exemplary DTV card-host system of FIG. 2 .
  • FIG. 1 is a block diagram of an illustrative embodiment of a card-host system 10 in accordance with the invention.
  • the system 10 includes a removable card 12 and a host 14 .
  • Applications 16 - 1 and 16 - 2 also denoted App 1 and App 2 , respectively, are running on the removable card 12 .
  • each of the applications 16 - 1 and 16 - 2 that need to communicate with the host 14 has a corresponding agent 18 - 1 and 18 - 2 , respectively, that is deployed from the removable card 12 into the host 14 .
  • the agents 18 - 1 and 18 - 2 are also referred to herein as “smart” agents or removable agents.
  • the card 12 and the host 14 each generally include a processor and a memory, and may include other types and arrangements of conventional processing elements.
  • the term “card” as used herein is intended to include, e.g., memory cards, Personal Computer Memory Card International Association (PCMCIA) cards, or any other type of device adaptable for removable insertion into a corresponding receptacle of a host.
  • PCMCIA Personal Computer Memory Card International Association
  • the agents 18 - 1 and 18 - 2 communicate with their corresponding applications 16 - 1 and 16 - 2 on the removable card, and also communicate with applications in the host 14 . More particularly, agent 18 - 1 communicates with host application 20 - 1 , also denoted H_App 1 , and agent 18 - 2 communicates with host applications 20 - 2 and 20 - 3 , also denoted H_App 2 and H_App 3 , respectively. Inter-application communication between the card applications and the host applications in the system 10 thus takes place through the agents 18 - 1 and 18 - 2 .
  • the communications between the card and host are initialized and established.
  • the removable card 12 then downloads the agents 18 - 1 and 18 - 2 to the host 14 and verifies that the downloading is successful.
  • the downloaded agents 18 - 1 and 18 - 2 then set up communication links between themselves and the respective applications 16 - 1 and 16 - 2 that they represent on the removable card 12 .
  • the applications 20 - 1 , 20 - 2 and 20 - 3 on the host 14 and the applications 16 - 1 and 16 - 2 on the card 12 then begin to communicate through the agents 18 - 1 and 18 - 2 .
  • the agents 18 - 1 and 18 - 2 are thus deployed into the host 14 from the card 12 after the card is inserted into the host, and may be viewed as proxies of their corresponding applications 16 - 1 and 16 - 2 , respectively.
  • the agents can use standardized application programming interfaces (APIs) of host components to communicate with the host applications 20 - 1 , 20 - 2 and 20 - 3 .
  • the agents can be replaced, updated or removed by the removable card 12 as required to enhance existing applications or to implement new applications.
  • the system 10 of FIG. 1 eliminates the need to standardize data descriptors and/or structures between the cards and the host.
  • the details of the communication protocol carried out between the agents and the removable card may be private, i.e., known only to the card and its agents, such that significantly improved resistance to hackers is provided.
  • the communications between the removable card and its agents on the host can be protected by encryption, with the encryption keys replaced as necessary. It is therefore apparent that use of downloadable smart agents to control card-host inter-application communication eliminates the above-described drawbacks associated with conventional card-host communication.
  • the system 10 of FIG. 1 may be viewed as implementing a client-server model between the host and the removable card, with the applications 20 - 1 , 20 - 2 and 20 - 3 on the host 14 representing servers, and the agents 18 - 1 and 18 - 2 downloaded to the host from the removable card 12 representing the clients.
  • the agents call the APIs of the servers to invoke services, such as displaying a certain message on a DTV monitor, retrieving remote control messages, etc. It is expected that these APIs in the DTV system context will be standardized, as indicated by the current practice of DTV-related standards bodies such as ATSC DASE, DAVIC, and Sun JavaTV.
  • any agent that is compliant with that standard will be able to interact with the applications of the host 14 , and yet as previously noted there will be no need for the host vendors and the card vendors to agree on any particular standardized data descriptors and/or structures.
  • the downloading of the agents 18 - 1 and 18 - 2 from the card to the host may be implemented using a host-specific downloading mechanism.
  • FIG. 1 system shows a separate agent associated with each of the applications 16 - 1 and 16 - 2 running on the removable card 12 , in other embodiments one agent may be shared by more than one application running on the removable card.
  • FIG. 2 shows a more detailed viewed of the card-host architecture of the present invention as implemented in a cable-ready DTV receiver 50 .
  • the receiver 50 may represent a set-top box, television, computer or other device, as well as portions or combinations of such devices.
  • the receiver 50 in this implementation includes a removable card 52 , a host 54 and a front end 56 .
  • the removable card 52 in this embodiment is more particularly referred to as a point of deployment (POD) 52 , in accordance with the usual U.S. cable industry terminology for a removable card inserted into a set-top box, as described in OpenCable Set-top Terminal Functional Requirements, FR-OCS-WD01-990422.
  • POD point of deployment
  • the POD 52 includes a central processing unit (CPU) 60 , a conditional access system (CAS) module 64 , a copyright protection system (CPS) module 66 , and an out-of-band (OOB) media access control (MAC)/Datalink module 62 .
  • the POD 52 is responsible for the following operations: (1) descrambling scrambled elementary streams in the incoming transport streams as received from the front end 56 via connection 4 ; (2) copy-protecting the descrambled streams before delivering them to the host via connection 5 and the front end 56 ; (3) processing downstream OOB signals as received from front end 56 via connection 3 , in the OOB MAC/Datalink module 62 ; and (4) supporting applications.
  • the POD 52 in this embodiment of the invention may be viewed as a computer or other processing device with dedicated hardware.
  • the CPU 60 of POD 52 includes a memory that stores running application programs and buffers data.
  • the CPU 70 of host 54 is also assumed to include such a memory. Communication between the CPU 60 in the POD 52 and the CPU 70 in the host 54 is through the control and data connections 6 and 7 , respectively.
  • separate memory devices may be included in the POD 52 and host 54 , external to their respective CPUs 60 and 70 . Such memories may be used to store running applications, to buffer data, and to perform other functions.
  • the host 54 further includes a transport stream demultiplexer 72 , a decoder 741 , and a graphics module 76 .
  • the host 54 is responsible for transport stream demultiplexing, video/audio/data decoding, graphics processing, and on-screen display. The functions and capabilities of the host 54 in this embodiment are thus shared by both terrestrial and cable signal processing operations.
  • the front end 56 includes both a terrestrial signal receiver and a cable signal receiver.
  • the terrestrial signal receiver includes a 6 MHz tuner 80 - 1 , a National Television System Committee (NTSC) demodulator 84 , and a vestigial sideband (VSB) demodulator 85 .
  • the output of the NTSC demodulator 84 passes directly to the graphics module 76 of the host 54 .
  • the cable signal receiver includes a 6 MHz tuner 80 - 2 , a Quadrature Phase-Shift Keyed (QPSK) tuner 82 , a Quadrature Amplitude Modulation (QAM) demodulator 86 , and a QPSK demodulator 87 .
  • the cable signal receiver receives and demodulates in-band QAM-modulated signals, and receives and demodulates out-of-band QPSK-modulated signals.
  • the outputs of the VSB demodulator 85 , QAM demodulator 86 and QPSK demodulator 87 are supplied to a router 90 and can be delivered either to the POD 52 or the host 54 .
  • the output of QAM demodulator 86 can go to the demultiplexer 72 on the host 54 via connection 1 or to the POD 52 via connection 4 depending on whether the POD 52 is inserted in its corresponding slot or other receptacle in the receiver 50 . More particularly, if the POD 52 is not inserted, the output of the QAM demodulator 86 goes to the demultiplexer 72 on the host 54 , and if the POD 52 is inserted, the output of the QAM demodulator 86 goes to the POD 52 through connection 4 .
  • the output of QPSK demodulator 87 comprises in-phase (I) and quadrature (Q) bit streams. If the POD 52 is inserted, these bit streams are supplied to the POD 52 via connection 3 to be further processed for the purpose of execution of MAC/Datalink protocols.
  • a forward error correction (FEC) module may also be included in the POD 52 for processing the I and Q bitstreams from the QPSK demodulator 87 . If the POD 52 is not inserted, the output of the QPSK demodulator 87 is ignored, or optionally goes to OOB MAC/Datalink module 92 in the front end 56 . The output of the OOB MAC/Datalink module 92 is applied to the CPU 70 of host 54 via connection 2 .
  • the front end may also include the above-noted FEC module.
  • the router module 90 in the front end 56 routes the outputs of the QAM demodulator 86 and QPSK demodulator 87 to the proper destinations, depending on the insertion status of the POD 52 . If the transport stream goes to the POD 52 , it will come back from the POD 52 , after being processed there, to be forwarded to the demultiplexer 72 on the host 54 .
  • Connection 6 is referred to herein as a command channel, and is used for transmitting control and configuration commands between the applications in the POD and host.
  • Connection 7 is referred to herein as a data channel, and is used for sending data, such as a file or downloaded code.
  • FIG. 3 is a flow diagram illustrating in greater detail the interaction process between the POD 52 and the host 54 in setting up a smart agent in receiver 50 of FIG. 2 .
  • the POD 52 is inserted into its corresponding slot or other receptacle in the host. After that, both the POD 52 and the host 54 go through an initialization phase to properly set up the host/POD interface.
  • the host 54 creates transport connections over the above-described command and data channels. The transport connections are used for sending transport packets over the channels. All control and command messages and data are sent in the transport packets.
  • step 104 the host 54 starts a smart agent manager program.
  • the smart agent manager program is responsible for downloading a smart agent at the request of an application in the POD 52 .
  • an application running on the POD 52 sends a message over the command channel to the smart agent manager, requesting the smart agent manager to download a smart agent.
  • the smart agent is then placed in a buffer in a memory of the POD 52 .
  • step 108 the smart agent manager “pulls” the smart agent from its buffer in the POD 52 through the data channel, places it in a host memory and starts it.
  • step 110 the smart agent sends a message to its application in the POD 52 , indicating that it is ready to operate.
  • step 112 the application in the POD 52 and the smart agent communicate with each other through the data channel and command channel.
  • the smart agent then interacts with one or more standardized application programming interfaces (APIs) for accessing services in the host.
  • APIs application programming interfaces
  • the smart agent uses these APIs to communicate with the applications on the host.
  • Examples of such APIs include those defined for digital television services by the Data Application Software Environment (DASE) group of the Advanced Television System Committee (ATSC). It is expected that the DASE APIs will become standardized.
  • DASE Data Application Software Environment
  • ATSC Advanced Television System Committee
  • TVPAK or Microsoft TV, also provides standardized APIs for accessing services in a DTV receiver.
  • the invention can be implemented such that one agent may be shared by more than one application running on the removable card.
  • a given application running on the removable card before requesting an agent download, queries the above-described agent manager program to see if the particular agent program it wants to use has already been downloaded to the host, e.g., by another application sharing the particular agent program. If the agent program is already in the host, no downloading is needed and the communication between the given application and the particular agent program can start. Otherwise, the agent program is downloaded in the manner described above.
  • the smart agent and smart agent manager programs described herein can be generated in a straightforward manner, e.g., using conventional programming techniques.
  • the processing operations described in conjunction with the flow diagram of FIG. 3 may be programmed in a straightforward manner using, e.g., the well-known C programming language or other suitable programming language.
  • FIG. 2 in conjunction with a DTV receiver, the invention can be used in many other card-host systems, including systems in applications such as satellite, cable or broadcast telephony or data delivery, computer communications networks such as the Internet, etc.
  • the particular arrangements of system elements shown herein are by way of example, and other embodiments could implement the invention using other types of devices, including desktop, laptop or palmtop computers, personal digital assistant (PDAs), televisions, set-top boxes, as well as portions or combinations of these and other devices.
  • PDAs personal digital assistant
  • a removable card and its corresponding host in accordance with the invention can be implemented in any number of different arrangements.
  • the card itself need not have any particular size, shape or physical configuration.
  • the invention may be implemented using other types and arrangements of CPUs, microprocessors, application specific integrated circuits (ASICs), as well as combinations or portions of these and other processors, in conjunction with many different types of memories, e.g., an electronic memory, an optical or magnetic disk-based memory or other storage device.
  • the invention can be implemented at least in part in the form of one or more software programs stored in a memory and executed by a processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

A removable card is adapted for insertion into a corresponding receptacle of a host device, and includes a processor for running at least one application. An agent program is downloadable from the removable card to the host device. The agent program runs on a processor of the host device and controls communication between the application running on the processor of the removable card and at least one application running on the processor of the host device. A different agent program may be downloaded from the card to the host device for each of the applications running on the removable card processor, and each such agent program controls communications between its corresponding removable card application and one or more application programming interfaces (APIs) of applications running on the host device processor.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to digital television receivers and other types of host devices for processing video or other multimedia information, and more particularly to techniques for providing interaction between removable cards and such host devices.
2. Description of the Related Art
Communication between applications running on physically separate devices is becoming increasingly important as a result of ongoing development in areas such as end-to-end digital communication systems and Internet applications. Robust, flexible and simple inter-application communication mechanisms are desirable in that such mechanisms allow application developers to shorten the time-to-market of products. Examples of existing technologies that have been designed to support inter-application communication include Common Object Request Broker Architecture (CORBA), Distributed Component Object Modeland (DCOM), Java Remote Method Invocation (RMI), and the Sun Microsystems Java-based system known as JINI for networking home appliances, desktop computers and other types of consumer electronics. The particular technology selected will generally depend on factors such as the type of applications and system architecture involved.
One area in which inter-application communication is particularly important is in digital television (DTV) systems. The trend in such systems is to separate the DTV functions into two categories: (1) the standardized functions, such as MPEG-2 transport stream demultiplexing and decoding; and (2) proprietary and security-related functions, such as conditional access systems and proprietary applications. The standard functions can then be implemented on a DTV receiver host, and the proprietary and security-related functions can be implemented on a removable card that is inserted into and communicates with the host. The host and removable card interact to provide desired programs and/or services to consumers.
This type of card-host system architecture increases the reusability and extensibility of the DTV receiver. For example, a consumer is able to purchase a DTV receiver in the form of a set-top box that includes a set of standard features. If the consumer then wants to receive premium programs and/or services from a cable operator, the consumer can purchase or lease a removable card from the cable operator or other source. The removable card in this case contains all of the functions needed to allow the consumer to receive and decrypt the premium programs and/or services provided by the cable operator. In the event that the cable operator adopts new technologies or provides new programs and/or services, the operator can upgrade the removable card, e.g., through a software download or replacement. Alternatively, if the consumer chooses to subscribe to a different cable operator, the consumer can return the removable card to the original operator, and purchase or lease a removable card from the new operator. In any case, the investment of the consumer in the DTV receiver is protected without compromising the ability of the consumer to take advantage of new technologies, programs and/or services.
Another advantage of the above-described card-host system architecture is that it protects the intellectual property rights of content and service providers against hackers who may try to break the system and “steal” the premium programs and/or services. This is due to the fact that all of the proprietary and security-related functions are in a separate removable card that can be disabled and/or replaced if a hacking attempt is detected.
In order for the card-host system architecture to work properly, the host and the removable card must establish a communication channel and protocol. In conventional systems, the host and card typically communicate through message passing, based on a defined set of data descriptors and/or structures. For example, if a consumer wants to order a video on demand (VOD) service, he or she sends a request through a user interface to the host, and the host in response sends a “VOD requested” data descriptor to the removable card. In such an arrangement, the removable card may then respond by sending a data descriptor that contains the requested list of VODs with the information necessary for ordering.
There are a number of significant drawbacks to the conventional card-host communication described above. First, the data descriptors generally must be standardized, such that the hosts and removable cards, which are usually manufactured by different vendors, can understand each other. However, it is often very difficult to specify standardized “generic” data descriptors that will satisfy all of the venders, users and other involved parties. Even if such a descriptor is found that appears acceptable and complete at the time it is defined, as new business needs emerge, it may become necessary to add or to remove some items in an existing data descriptor or add a new data descriptor. In such situations, the parties involved are forced to either change an existing standard or do without the desired change. Another significant drawback is that the published details regarding data descriptors may reveal information regarding the inner structure of the removable card, or other information that could be used by hackers to break the system.
Other techniques have been developed for implementing card-host communications. For example, U.S. Pat. No. 5,588,146 describes a system in which a removable card stores software programs with rights of access. The software can be downloaded into a microcomputer after the card is inserted therein. U.S. Pat. No. 5,739,510 describes the interaction between a removable card and a “dumb” terminal that handles user interface operations including input and output. The card performs application-specific operations, and the results are then communicated with the terminal. Another known technique, described in U.S. Pat. No. 5,844,218, relates to a removable card that stores customized information for television receivers, such that different consumers can receive different services bases on the information stored on their cards.
Unfortunately, these and other known techniques have failed to provide an acceptable solution to the above-described problem of inter-application communication in a card-host architecture. A need therefore exists for improved techniques for implementing communications between a removable card and a host device in a DTV system or other system based on a card-host system architecture.
SUMMARY OF THE INVENTION
The invention provides improved communication between a removable card and a receiver or other host device in a system which is based on a card-host architecture.
In accordance with the invention, a removable card is adaptable for insertion into a corresponding receptacle of a host device, and includes a processor for running at least one application. An agent program is downloadable from the removable card to the host device, such that the agent program runs on a processor of the host device and controls communication between the application running on the processor of the removable card and at least one application running on the processor of the host device. A different agent program may be downloaded from the card to the host device for each of the applications running on the removable card processor, and each such agent program controls communications between its corresponding removable card application and one or more application programming interfaces (APIs) of applications running on the host device processor. As another example, a single agent program can be shared by more than one application running on the removable card. The host device may be, e.g., a digital television (DTV) receiver, and the application running on the processor of the removable card may be a processing operation, e.g., a decryption operation, for a transport stream received via a cable signal.
In accordance with another aspect of the invention, after insertion of the removable card into the receptacle of the host device, a command channel and a data channel are created between the removable card and the host device. The processor of the host device runs an agent manager program which receives a message from the application running on the processor of the removable card. The message identifies a particular agent program to be downloaded, and in response to the message the agent manager program downloads the agent program from a memory of the removable card via the data channel. The agent program, after being downloaded to the host device, sends a message to the application running on the processor of the removable card via the command channel. The message indicates that the agent program is ready to control communication between the application running on the processor of the removable card and the application running on the processor of the host device. A given application, prior to requesting a download of a particular agent program to the host device, may first query the agent manager program to determine if the particular agent program has already been downloaded by another application. If the particular agent program has already been downloaded, no further downloading is needed and the given application can share the agent program with the other application.
Advantageously, the invention allows a removable card and a host device to communicate without the problems associated with the above-described conventional card-host communication techniques. For example, the invention eliminates the need to standardize data descriptors and/or structures between the cards and the host. In addition, the details of the communication protocol carried out between the agents and the removable card may be private, i.e., known only to the card and its agents, such that significantly improved resistance to hackers is provided. Although particularly well suited for use in a DTV receiver, the invention can be applied to any system or device in which a removable card communicates with a host. These and other features and advantages of the present invention will become more apparent from the accompanying drawings and the following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating communication between a removable card and a host in accordance with the invention.
FIG. 2 shows a more detailed block diagram of an exemplary digital television (DTV) card-host system configured in accordance with the invention.
FIG. 3 is a flow diagram illustrating the operation of the exemplary DTV card-host system of FIG. 2.
DETAILED DESCRIPTION IF THE INVENTION
FIG. 1 is a block diagram of an illustrative embodiment of a card-host system 10 in accordance with the invention. The system 10 includes a removable card 12 and a host 14. Applications 16-1 and 16-2, also denoted App1 and App2, respectively, are running on the removable card 12. In accordance with the invention, each of the applications 16-1 and 16-2 that need to communicate with the host 14 has a corresponding agent 18-1 and 18-2, respectively, that is deployed from the removable card 12 into the host 14. The agents 18-1 and 18-2 are also referred to herein as “smart” agents or removable agents. The card 12 and the host 14, although not requiring any specific physical configuration, each generally include a processor and a memory, and may include other types and arrangements of conventional processing elements. The term “card” as used herein is intended to include, e.g., memory cards, Personal Computer Memory Card International Association (PCMCIA) cards, or any other type of device adaptable for removable insertion into a corresponding receptacle of a host.
The agents 18-1 and 18-2 communicate with their corresponding applications 16-1 and 16-2 on the removable card, and also communicate with applications in the host 14. More particularly, agent 18-1 communicates with host application 20-1, also denoted H_App1, and agent 18-2 communicates with host applications 20-2 and 20-3, also denoted H_App2 and H_App3, respectively. Inter-application communication between the card applications and the host applications in the system 10 thus takes place through the agents 18-1 and 18-2.
In operation, when the removable card 12 is inserted into a corresponding slot or other suitable receptacle in the host 14, the communications between the card and host are initialized and established. The removable card 12 then downloads the agents 18-1 and 18-2 to the host 14 and verifies that the downloading is successful. The downloaded agents 18-1 and 18-2 then set up communication links between themselves and the respective applications 16-1 and 16-2 that they represent on the removable card 12. The applications 20-1, 20-2 and 20-3 on the host 14 and the applications 16-1 and 16-2 on the card 12 then begin to communicate through the agents 18-1 and 18-2.
The agents 18-1 and 18-2 are thus deployed into the host 14 from the card 12 after the card is inserted into the host, and may be viewed as proxies of their corresponding applications 16-1 and 16-2, respectively. The agents can use standardized application programming interfaces (APIs) of host components to communicate with the host applications 20-1, 20-2 and 20-3. The agents can be replaced, updated or removed by the removable card 12 as required to enhance existing applications or to implement new applications.
Advantageously, the system 10 of FIG. 1 eliminates the need to standardize data descriptors and/or structures between the cards and the host. In addition, the details of the communication protocol carried out between the agents and the removable card may be private, i.e., known only to the card and its agents, such that significantly improved resistance to hackers is provided. For example, the communications between the removable card and its agents on the host can be protected by encryption, with the encryption keys replaced as necessary. It is therefore apparent that use of downloadable smart agents to control card-host inter-application communication eliminates the above-described drawbacks associated with conventional card-host communication.
The system 10 of FIG. 1 may be viewed as implementing a client-server model between the host and the removable card, with the applications 20-1, 20-2 and 20-3 on the host 14 representing servers, and the agents 18-1 and 18-2 downloaded to the host from the removable card 12 representing the clients. The agents call the APIs of the servers to invoke services, such as displaying a certain message on a DTV monitor, retrieving remote control messages, etc. It is expected that these APIs in the DTV system context will be standardized, as indicated by the current practice of DTV-related standards bodies such as ATSC DASE, DAVIC, and Sun JavaTV. Once an API standard is finalized for DTV or other card-host system, any agent that is compliant with that standard will be able to interact with the applications of the host 14, and yet as previously noted there will be no need for the host vendors and the card vendors to agree on any particular standardized data descriptors and/or structures.
The downloading of the agents 18-1 and 18-2 from the card to the host may be implemented using a host-specific downloading mechanism. Alternatively, it may be desirable to utilize a standard card-host downloading mechanism, although it is believed that no such standard is currently available.
It should be noted that the particular number and arrangement of card applications, host applications and removable agents in the FIG. 1 system is by way of example only. The techniques of the invention may be implemented with other numbers and arrangements of applications and agents. For example, although the FIG. 1 system shows a separate agent associated with each of the applications 16-1 and 16-2 running on the removable card 12, in other embodiments one agent may be shared by more than one application running on the removable card.
FIG. 2 shows a more detailed viewed of the card-host architecture of the present invention as implemented in a cable-ready DTV receiver 50. The receiver 50 may represent a set-top box, television, computer or other device, as well as portions or combinations of such devices. The receiver 50 in this implementation includes a removable card 52, a host 54 and a front end 56. The removable card 52 in this embodiment is more particularly referred to as a point of deployment (POD) 52, in accordance with the usual U.S. cable industry terminology for a removable card inserted into a set-top box, as described in OpenCable Set-top Terminal Functional Requirements, FR-OCS-WD01-990422.
The POD 52 includes a central processing unit (CPU) 60, a conditional access system (CAS) module 64, a copyright protection system (CPS) module 66, and an out-of-band (OOB) media access control (MAC)/Datalink module 62. The POD 52 is responsible for the following operations: (1) descrambling scrambled elementary streams in the incoming transport streams as received from the front end 56 via connection 4; (2) copy-protecting the descrambled streams before delivering them to the host via connection 5 and the front end 56; (3) processing downstream OOB signals as received from front end 56 via connection 3, in the OOB MAC/Datalink module 62; and (4) supporting applications.
The POD 52 in this embodiment of the invention may be viewed as a computer or other processing device with dedicated hardware. In this embodiment, it is assumed that the CPU 60 of POD 52 includes a memory that stores running application programs and buffers data. The CPU 70 of host 54 is also assumed to include such a memory. Communication between the CPU 60 in the POD 52 and the CPU 70 in the host 54 is through the control and data connections 6 and 7, respectively. Although not shown in FIG. 2, separate memory devices may be included in the POD 52 and host 54, external to their respective CPUs 60 and 70. Such memories may be used to store running applications, to buffer data, and to perform other functions.
In addition to the CPU 70, the host 54 further includes a transport stream demultiplexer 72, a decoder 741, and a graphics module 76. The host 54 is responsible for transport stream demultiplexing, video/audio/data decoding, graphics processing, and on-screen display. The functions and capabilities of the host 54 in this embodiment are thus shared by both terrestrial and cable signal processing operations.
The front end 56 includes both a terrestrial signal receiver and a cable signal receiver. The terrestrial signal receiver includes a 6 MHz tuner 80-1, a National Television System Committee (NTSC) demodulator 84, and a vestigial sideband (VSB) demodulator 85. The output of the NTSC demodulator 84 passes directly to the graphics module 76 of the host 54. The cable signal receiver includes a 6 MHz tuner 80-2, a Quadrature Phase-Shift Keyed (QPSK) tuner 82, a Quadrature Amplitude Modulation (QAM) demodulator 86, and a QPSK demodulator 87. The cable signal receiver receives and demodulates in-band QAM-modulated signals, and receives and demodulates out-of-band QPSK-modulated signals.
The outputs of the VSB demodulator 85, QAM demodulator 86 and QPSK demodulator 87 are supplied to a router 90 and can be delivered either to the POD 52 or the host 54. For example, the output of QAM demodulator 86 can go to the demultiplexer 72 on the host 54 via connection 1 or to the POD 52 via connection 4 depending on whether the POD 52 is inserted in its corresponding slot or other receptacle in the receiver 50. More particularly, if the POD 52 is not inserted, the output of the QAM demodulator 86 goes to the demultiplexer 72 on the host 54, and if the POD 52 is inserted, the output of the QAM demodulator 86 goes to the POD 52 through connection 4.
The output of QPSK demodulator 87 comprises in-phase (I) and quadrature (Q) bit streams. If the POD 52 is inserted, these bit streams are supplied to the POD 52 via connection 3 to be further processed for the purpose of execution of MAC/Datalink protocols. Although not shown in FIG. 2, a forward error correction (FEC) module may also be included in the POD 52 for processing the I and Q bitstreams from the QPSK demodulator 87. If the POD 52 is not inserted, the output of the QPSK demodulator 87 is ignored, or optionally goes to OOB MAC/Datalink module 92 in the front end 56. The output of the OOB MAC/Datalink module 92 is applied to the CPU 70 of host 54 via connection 2. The front end may also include the above-noted FEC module.
The router module 90 in the front end 56 routes the outputs of the QAM demodulator 86 and QPSK demodulator 87 to the proper destinations, depending on the insertion status of the POD 52. If the transport stream goes to the POD 52, it will come back from the POD 52, after being processed there, to be forwarded to the demultiplexer 72 on the host 54.
The applications in the POD 52 and host 54 communicate with each other through connections 6 and 7. Connection 6 is referred to herein as a command channel, and is used for transmitting control and configuration commands between the applications in the POD and host. Connection 7 is referred to herein as a data channel, and is used for sending data, such as a file or downloaded code.
FIG. 3 is a flow diagram illustrating in greater detail the interaction process between the POD 52 and the host 54 in setting up a smart agent in receiver 50 of FIG. 2. In step 100, the POD 52 is inserted into its corresponding slot or other receptacle in the host. After that, both the POD 52 and the host 54 go through an initialization phase to properly set up the host/POD interface. In step 102, the host 54 creates transport connections over the above-described command and data channels. The transport connections are used for sending transport packets over the channels. All control and command messages and data are sent in the transport packets.
In step 104, the host 54 starts a smart agent manager program. The smart agent manager program is responsible for downloading a smart agent at the request of an application in the POD 52. In step 106, an application running on the POD 52 sends a message over the command channel to the smart agent manager, requesting the smart agent manager to download a smart agent. The smart agent is then placed in a buffer in a memory of the POD 52. In step 108, the smart agent manager “pulls” the smart agent from its buffer in the POD 52 through the data channel, places it in a host memory and starts it. In step 110, the smart agent sends a message to its application in the POD 52, indicating that it is ready to operate. In step 112, the application in the POD 52 and the smart agent communicate with each other through the data channel and command channel.
The smart agent then interacts with one or more standardized application programming interfaces (APIs) for accessing services in the host. The smart agent uses these APIs to communicate with the applications on the host. Examples of such APIs include those defined for digital television services by the Data Application Software Environment (DASE) group of the Advanced Television System Committee (ATSC). It is expected that the DASE APIs will become standardized. A competing standard known as TVPAK, or Microsoft TV, also provides standardized APIs for accessing services in a DTV receiver.
Of course, the techniques of the present invention can be applied to many other types of APIs, and can also utilize other types of communication protocols for interacting with the applications running on the host 54.
As mentioned previously, the invention can be implemented such that one agent may be shared by more than one application running on the removable card. In such an embodiment, a given application running on the removable card, before requesting an agent download, queries the above-described agent manager program to see if the particular agent program it wants to use has already been downloaded to the host, e.g., by another application sharing the particular agent program. If the agent program is already in the host, no downloading is needed and the communication between the given application and the particular agent program can start. Otherwise, the agent program is downloaded in the manner described above.
As will be apparent to those skilled in the art, the smart agent and smart agent manager programs described herein can be generated in a straightforward manner, e.g., using conventional programming techniques. For example, the processing operations described in conjunction with the flow diagram of FIG. 3 may be programmed in a straightforward manner using, e.g., the well-known C programming language or other suitable programming language.
The embodiments of the invention described herein are intended for purposes of illustration only, and should not be construed as limiting the invention to any particular embodiment or group of embodiments. For example, although illustrated in FIG. 2 in conjunction with a DTV receiver, the invention can be used in many other card-host systems, including systems in applications such as satellite, cable or broadcast telephony or data delivery, computer communications networks such as the Internet, etc. Moreover, the particular arrangements of system elements shown herein are by way of example, and other embodiments could implement the invention using other types of devices, including desktop, laptop or palmtop computers, personal digital assistant (PDAs), televisions, set-top boxes, as well as portions or combinations of these and other devices.
It should also be noted that a removable card and its corresponding host in accordance with the invention can be implemented in any number of different arrangements. For example, the card itself need not have any particular size, shape or physical configuration. In addition, the invention may be implemented using other types and arrangements of CPUs, microprocessors, application specific integrated circuits (ASICs), as well as combinations or portions of these and other processors, in conjunction with many different types of memories, e.g., an electronic memory, an optical or magnetic disk-based memory or other storage device. Moreover, the invention can be implemented at least in part in the form of one or more software programs stored in a memory and executed by a processor. These and numerous other embodiments within the scope of the following claims will be apparent to those skilled in the art.

Claims (24)

1. An apparatus for use with a host device having a receptacle, the apparatus comprising:
a removable card for insertion into the receptacle of the host device, the removable card including a first processor for running a first application, wherein an agent program is downloaded from the removable card to the host device that includes a second processor, such that the agent program runs on the second processor and controls communication between the first application and a second application running on the second processor, the second processor receiving a message from the first processor, the message identifying the agent program to be downloaded, and in response to the message the second processor downloading the agent program from the removable card via a data channel created between the removable card and the host device.
2. The apparatus of claim 1, wherein the first processor runs a plurality of applications, and a plurality of agent programs are downloaded to the host device, one for each of the applications running on the first processor.
3. The apparatus of claim 1, wherein the first processor runs a plurality of applications, and the agent program controls communication between two or more of the applications, at least one application running on the second processor.
4. The apparatus of claim 1, wherein the agent program interacts with an application programming interface (API) of the host device.
5. The apparatus of claim 1, wherein the agent program controls communication between the application running on the first processor and each of a plurality of applications running on the second processor.
6. The apparatus of claim 1, wherein communications between the agent program and the application running on the first processor are at least partially encrypted.
7. The apparatus of claim 1, wherein after insertion of the removable card into the receptacle, a command channel is created between the removable card and the host device.
8. The apparatus of claim 7, wherein the second processor runs an agent manager program for requesting a download of the agent program.
9. The apparatus of claim 8, wherein the agent program after being downloaded to the host device sends a message to the application running on the first processor, the message indicating that the agent program is ready to control communication between the application running on the first processor and the application running on the second processor.
10. The apparatus of claim 1, wherein the host device comprises a digital television receiver, and the application running on the first processor a processing operation for a transport stream.
11. The apparatus of claim 10 wherein the processing operation comprises a decryption operation.
12. A method for use with a host device having a receptacle, the method comprising the step of:
providing a removable card for insertion into the receptacle, the removable card including a first processor for running a first application, wherein an agent program is downloaded from the removable card to the host device that includes a second processor, such that the agent program runs on the second processor and controls communication between the first application and a second application running on the second processor, the second processor receiving a message from the first processor, the message identifying the agent program to be downloaded, and in response to the message the second processor downloading the agent program from the removable card via a data channel created between the removable card and the host device.
13. The method of claim 12, wherein the first processor runs a plurality of applications, and a plurality of agent programs are downloaded to the host device, one for each of the applications running on the first processor.
14. The method of claim 12, wherein the first processor runs a plurality of applications, and the agent program controls communication between two or more of the applications, at least one application running on the second processor.
15. The method of claim 12, wherein the agent program interacts with an application programming interface (API) of the host device.
16. The method of claim 12, wherein the agent program controls communication between the application running on the first processor and each of a plurality of applications running on the second processor.
17. The method of claim 12, wherein communications between the agent program and the application running on the first processor are at least partially encrypted.
18. The method of claim 12, wherein after insertion of the removable card into the receptacle, a command channel is created between the removable card and the host device.
19. The method of claim 18, wherein the second processor runs an agent manager program for requesting a download of the agent program.
20. The method of claim 19, wherein the agent program after being downloaded to the host device sends a message to the application running on the first processor, the message indicating that the agent program is ready to control communication between the application running on the first processor and the application running on the second processor.
21. The method of claim 12, wherein the host device comprises a digital television receiver, and the application running on the first processor includes a processing operation for a transport stream.
22. The method of claim 21 wherein the processing operation comprises a decryption operation.
23. An article of manufacture comprising a machine-readable storage medium containing one or more software programs which, when executed, cause:
downloading an agent program from a removable card for insertion into a receptacle of a host device, the removable card including a first processor for running a first application, such that the agent program runs on a host device processor and controls communication between the first application running on the first processor and the second application running on the host device processor, the host device processor receiving a message from the first processor, the message identifying the agent program to be downloaded, and in response to the message the host device processor downloading the agent program from the removable card via a data channel created between the removable card and the host device.
24. A system, comprising:
a removable card including a first processor for running a first application;
a host device having a receptacle for receiving the removable card, the host device including a second processor for running a second application, wherein an agent program is downloaded from the removable card to the host device, such that the agent program runs on the second processor and controls communication between the first application and the second application, the second processor receiving a message from the first processor, the message identifying the agent program to be downloaded, and in response to the message the second processor downloading the agent program from the removable card via a data channel created between the removable card and the host device.
US09/396,565 1999-09-15 1999-09-15 Removable card system with downloadable agent for communicating with a digital television receiver or other host device Expired - Fee Related US7231411B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US09/396,565 US7231411B1 (en) 1999-09-15 1999-09-15 Removable card system with downloadable agent for communicating with a digital television receiver or other host device
PCT/EP2000/008721 WO2001020899A1 (en) 1999-09-15 2000-09-06 Removable card system with downloadable agent program for communicating with a digital television receiver or other host device
JP2001524349A JP2003509788A (en) 1999-09-15 2000-09-06 Removable card system with downloadable agent program for communicating with digital television receiver or other host device
EP00956521A EP1129572A1 (en) 1999-09-15 2000-09-06 Removable card system with downloadable agent program for communicating with a digital television receiver or other host device
KR1020017006134A KR100800271B1 (en) 1999-09-15 2000-09-06 Removable Card System with Downloadable Agent Program for Communicating with a Digital Television Receiver or Other Host Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/396,565 US7231411B1 (en) 1999-09-15 1999-09-15 Removable card system with downloadable agent for communicating with a digital television receiver or other host device

Publications (1)

Publication Number Publication Date
US7231411B1 true US7231411B1 (en) 2007-06-12

Family

ID=23567747

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/396,565 Expired - Fee Related US7231411B1 (en) 1999-09-15 1999-09-15 Removable card system with downloadable agent for communicating with a digital television receiver or other host device

Country Status (5)

Country Link
US (1) US7231411B1 (en)
EP (1) EP1129572A1 (en)
JP (1) JP2003509788A (en)
KR (1) KR100800271B1 (en)
WO (1) WO2001020899A1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139483A1 (en) * 2001-02-23 2004-07-15 Deok-Jung Kim System and method for authorizing data broadcasting contents
US20040226049A1 (en) * 2003-04-06 2004-11-11 Matsushita Electric Industrial Co., Ltd. Program replacing method
US20070028283A1 (en) * 2005-07-28 2007-02-01 George Williams OCAP engine module
US20090316892A1 (en) * 2008-06-20 2009-12-24 Candelore Brant L Crypto micro-module using IEEE 1394 for stream descrambling
EP2321732A1 (en) * 2008-09-03 2011-05-18 Sony Corporation Modular flexible software architecture for tv
US20110225327A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Systems and methods for controlling an electronic device
US20110224810A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Home and building automation
US20120311023A1 (en) * 2004-06-30 2012-12-06 Patrick Ladd Apparatus and methods for implementation of network software interfaces
US8468515B2 (en) 2000-11-17 2013-06-18 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
CN103227954A (en) * 2012-01-27 2013-07-31 三星电子株式会社 Display apparatus and control method thereof
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8578361B2 (en) 2004-04-21 2013-11-05 Palm, Inc. Updating an electronic device with update agent code
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8893110B2 (en) 2006-06-08 2014-11-18 Qualcomm Incorporated Device management in a network
US11109115B2 (en) * 2018-11-06 2021-08-31 At&T Intellectual Property I, L.P. Inserting advertisements in ATSC content

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084440A1 (en) * 2001-10-26 2003-05-01 George Lownes Method of providing a code upgrade to a host device having a smart card interface
KR100481511B1 (en) * 2002-08-26 2005-04-07 삼성전자주식회사 Set Top Box and controlling method thereof
KR100404777B1 (en) 2002-10-26 2003-11-07 Id Digital Co Ltd Digital set-top box having detachable storage element, and method for storing digital broadcast program
KR100628563B1 (en) 2004-01-20 2006-09-26 삼성전자주식회사 Method for electronic commerce using opencable
US7250987B2 (en) 2004-02-06 2007-07-31 Broadcom Corporation Method and system for an integrated VSB/QAM/NTSC/OOB plug-and-play DTV receiver
KR100793793B1 (en) * 2006-04-18 2008-01-11 엘지전자 주식회사 Broadcasting receiver and receiving method
KR101980643B1 (en) * 2012-01-27 2019-08-28 삼성전자주식회사 Display apparatus and control method thereof

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709137A (en) 1984-04-16 1987-11-24 Omron Tateisi Electronics Co. IC card and financial transaction processing system using IC card
US5349649A (en) 1991-04-22 1994-09-20 Kabushiki Kaisha Toshiba Portable electronic device supporting multi-protocols
US5367150A (en) 1988-09-26 1994-11-22 Hitachi Maxell, Ltd. Data processing system using IC card
US5581708A (en) 1993-03-23 1996-12-03 Kabushiki Kaisha Toshiba Data transmission system using electronic apparatus having a plurality of transmission protocols
US5588146A (en) 1992-10-23 1996-12-24 Gemplus Card International Method for the acquisition of software and data-processing system to implement the method
WO1997001147A2 (en) 1995-06-23 1997-01-09 International Business Machines Corporation Method of simplifying communication with chip cards
WO1997005582A1 (en) 1995-07-31 1997-02-13 Keycorp Limited Remote smartcard terminal link
US5636357A (en) 1994-12-21 1997-06-03 Eurotronics Company Memory card and method for operation in a plurality of systems having incompatible object code format requirements
US5739510A (en) 1995-01-23 1998-04-14 France Telecom Card reader terminal and method for the multi-applicative operation of such a terminal
US5764934A (en) 1996-07-03 1998-06-09 Intel Corporation Processor subsystem for use with a universal computer architecture
US5798507A (en) * 1995-02-20 1998-08-25 Kabushiki Kaisha Toshiba IC card reader/writer
US5799171A (en) * 1995-05-23 1998-08-25 Kabushiki Kaisha Toshiba IC card reader/writer for allowing communication with a plurality of kinds of IC cards of different protocol types
US5835864A (en) 1991-10-03 1998-11-10 Thomson Consumer Electronics S.A. Method and apparatus for customizing a device with a smart card
US5844218A (en) 1996-07-16 1998-12-01 Transaction Technology, Inc. Method and system for using an application programmable smart card for financial transactions in multiple countries
US5896513A (en) 1996-07-03 1999-04-20 Intel Corporation Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US5949492A (en) * 1995-11-22 1999-09-07 Mankovitz; Roy J. Apparatus and methods for accessing information relating to radio television programs
US6044382A (en) * 1995-05-19 2000-03-28 Cyber Fone Technologies, Inc. Data transaction assembly server
US20010024066A1 (en) * 2000-01-20 2001-09-27 International Business Machines Corporation Handheld device, smart card interface device (IFD) and data transmission method
US20020002069A1 (en) * 1999-10-08 2002-01-03 Keronen Seppo Reino User programmable smart card interface system for an image album
US20030115293A1 (en) * 2001-11-06 2003-06-19 Fogg Brian Jeffrey Content delivery system and method
US6678753B1 (en) * 1995-12-20 2004-01-13 Fujitsu Limited IC card reading/writing apparatus and method for allowing use of multiple vendors
US6698654B1 (en) * 1995-05-09 2004-03-02 Smartmove (Nz) Ltd. Method of interfacing with data storage card

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2714987B1 (en) * 1994-01-10 1996-02-02 Remery Patrick System for transactions comprising terminals and memory cards and corresponding memory card.
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
FR2734937B1 (en) * 1995-05-30 1997-07-25 Syseca INTELLIGENT CHIP CARD SYSTEM
ES2184066T3 (en) * 1996-10-25 2003-04-01 Schlumberger Systems & Service USE OF A HIGH-LEVEL PROGRAMMING LANGUAGE WITH MICROCONTROLLER.
EP0914001A1 (en) * 1997-10-28 1999-05-06 CANAL+ Société Anonyme Downloading of applications in a digital decoder
EP0964574B1 (en) * 1998-06-11 2008-03-05 THOMSON multimedia Method and apparatus for enlarging DVB-CI functionality by enabling a direct access to the conditional access module

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709137A (en) 1984-04-16 1987-11-24 Omron Tateisi Electronics Co. IC card and financial transaction processing system using IC card
US5367150A (en) 1988-09-26 1994-11-22 Hitachi Maxell, Ltd. Data processing system using IC card
US5349649A (en) 1991-04-22 1994-09-20 Kabushiki Kaisha Toshiba Portable electronic device supporting multi-protocols
US5835864A (en) 1991-10-03 1998-11-10 Thomson Consumer Electronics S.A. Method and apparatus for customizing a device with a smart card
US5588146A (en) 1992-10-23 1996-12-24 Gemplus Card International Method for the acquisition of software and data-processing system to implement the method
US5581708A (en) 1993-03-23 1996-12-03 Kabushiki Kaisha Toshiba Data transmission system using electronic apparatus having a plurality of transmission protocols
US5636357A (en) 1994-12-21 1997-06-03 Eurotronics Company Memory card and method for operation in a plurality of systems having incompatible object code format requirements
US5739510A (en) 1995-01-23 1998-04-14 France Telecom Card reader terminal and method for the multi-applicative operation of such a terminal
US5798507A (en) * 1995-02-20 1998-08-25 Kabushiki Kaisha Toshiba IC card reader/writer
US6698654B1 (en) * 1995-05-09 2004-03-02 Smartmove (Nz) Ltd. Method of interfacing with data storage card
US6044382A (en) * 1995-05-19 2000-03-28 Cyber Fone Technologies, Inc. Data transaction assembly server
US5799171A (en) * 1995-05-23 1998-08-25 Kabushiki Kaisha Toshiba IC card reader/writer for allowing communication with a plurality of kinds of IC cards of different protocol types
WO1997001147A2 (en) 1995-06-23 1997-01-09 International Business Machines Corporation Method of simplifying communication with chip cards
WO1997005582A1 (en) 1995-07-31 1997-02-13 Keycorp Limited Remote smartcard terminal link
US5949492A (en) * 1995-11-22 1999-09-07 Mankovitz; Roy J. Apparatus and methods for accessing information relating to radio television programs
US6678753B1 (en) * 1995-12-20 2004-01-13 Fujitsu Limited IC card reading/writing apparatus and method for allowing use of multiple vendors
US5896513A (en) 1996-07-03 1999-04-20 Intel Corporation Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US5764934A (en) 1996-07-03 1998-06-09 Intel Corporation Processor subsystem for use with a universal computer architecture
US5844218A (en) 1996-07-16 1998-12-01 Transaction Technology, Inc. Method and system for using an application programmable smart card for financial transactions in multiple countries
US20020002069A1 (en) * 1999-10-08 2002-01-03 Keronen Seppo Reino User programmable smart card interface system for an image album
US20010024066A1 (en) * 2000-01-20 2001-09-27 International Business Machines Corporation Handheld device, smart card interface device (IFD) and data transmission method
US20030115293A1 (en) * 2001-11-06 2003-06-19 Fogg Brian Jeffrey Content delivery system and method

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468515B2 (en) 2000-11-17 2013-06-18 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US20040139483A1 (en) * 2001-02-23 2004-07-15 Deok-Jung Kim System and method for authorizing data broadcasting contents
US20040226049A1 (en) * 2003-04-06 2004-11-11 Matsushita Electric Industrial Co., Ltd. Program replacing method
US8850511B2 (en) 2003-06-04 2014-09-30 Panasonic Corporation Program replacing method
US8453195B2 (en) 2003-06-04 2013-05-28 Panasonic Corporation Program replacing method
US8458762B2 (en) 2003-06-04 2013-06-04 Panasonic Corporation Program replacing method
US8104068B2 (en) * 2003-06-04 2012-01-24 Panasonic Corporation Program replacing method
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8578361B2 (en) 2004-04-21 2013-11-05 Palm, Inc. Updating an electronic device with update agent code
US9473827B2 (en) * 2004-06-30 2016-10-18 Time Warner Cable Enterprises Llc Apparatus and methods for implementation of network software interfaces
US20120311023A1 (en) * 2004-06-30 2012-12-06 Patrick Ladd Apparatus and methods for implementation of network software interfaces
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7593469B2 (en) * 2005-07-28 2009-09-22 Sony Corporation OCAP engine module
US20070028283A1 (en) * 2005-07-28 2007-02-01 George Williams OCAP engine module
US8893110B2 (en) 2006-06-08 2014-11-18 Qualcomm Incorporated Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US9081638B2 (en) 2006-07-27 2015-07-14 Qualcomm Incorporated User experience and dependency management in a mobile device
US20090316892A1 (en) * 2008-06-20 2009-12-24 Candelore Brant L Crypto micro-module using IEEE 1394 for stream descrambling
EP2321732A1 (en) * 2008-09-03 2011-05-18 Sony Corporation Modular flexible software architecture for tv
EP2321732A4 (en) * 2008-09-03 2011-09-28 Sony Corp Modular flexible software architecture for tv
CN102144224A (en) * 2008-09-03 2011-08-03 索尼公司 Modular flexible software architecture for TV
US20110225327A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Systems and methods for controlling an electronic device
US20110224810A1 (en) * 2010-03-12 2011-09-15 Spansion Llc Home and building automation
CN103227954A (en) * 2012-01-27 2013-07-31 三星电子株式会社 Display apparatus and control method thereof
EP2620865A3 (en) * 2012-01-27 2016-08-24 Samsung Electronics Co., Ltd. Display apparatus and control method thereof
CN103227954B (en) * 2012-01-27 2019-02-05 三星电子株式会社 Display device and its control method
US11109115B2 (en) * 2018-11-06 2021-08-31 At&T Intellectual Property I, L.P. Inserting advertisements in ATSC content
US11606626B2 (en) 2018-11-06 2023-03-14 At&T Intellectual Property I, L.P. Inserting advertisements in ATSC content

Also Published As

Publication number Publication date
KR20010081015A (en) 2001-08-25
JP2003509788A (en) 2003-03-11
EP1129572A1 (en) 2001-09-05
KR100800271B1 (en) 2008-02-05
WO2001020899A1 (en) 2001-03-22

Similar Documents

Publication Publication Date Title
US7231411B1 (en) Removable card system with downloadable agent for communicating with a digital television receiver or other host device
JP5914545B2 (en) Digital content receiver and digital content receiving method
KR20070024496A (en) Methods and systems for a secure media computing environment
US20030009769A1 (en) Trusted application level resource advisor
EP2197172B1 (en) Content delivery network having downloadable conditional access system with personalization servers for personalizing client devices
AU756391B2 (en) Application data table for a multiservice digital transmission system
WO2001022724A1 (en) Multimedia digital terminal and detachable module cooperating with the terminal comprising an interface protected against copying
KR20030013365A (en) Intelligent transceiving method, device and system
US9723345B2 (en) Graphics handling for electronic program guide graphics in an RVU system
US20060191015A1 (en) Copy-protecting applications in a digital broadcasting system
WO2006082858A1 (en) Java limited receiver
US20060253897A1 (en) Copy-protected application for digital broadcasting system
JP2000295202A (en) Limited reception system
Giachetti et al. A common conditional access interface for digital video broadcasting decoders
US20040114758A1 (en) Digital system prepared for coble with 1394 de-scrambling module
CN1476724A (en) Eneryption system of wired television network
CN108200453B (en) Fusion condition receiving terminal system and method
You et al. Design and implementation of DCAS user terminal
Vuckovic et al. Software upgrade of multi-streaming feature in Common Interface plus V1. 4
JP2004524773A (en) Digital cable ready system with 1394 descramble module
SUNDARESHMAN Digital Set Top Box (STB)-Open Architecture/Interoperability Issues
Metzler et al. Linux dvb api version 3
WO2009066837A1 (en) Method and secure module for communication with host, method and apparatus for communication with secure module, method and apparatus for controlling secure module
EP1517503A1 (en) Method, device and system for distributing media channels over a communication network

Legal Events

Date Code Title Description
AS Assignment

Owner name: PHILIPS ELECTRONICS NORTH AMERICA CORP., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LU, JIN;REEL/FRAME:010259/0234

Effective date: 19990914

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20110612