WO2005099250A1 - プログラム実行装置 - Google Patents

プログラム実行装置 Download PDF

Info

Publication number
WO2005099250A1
WO2005099250A1 PCT/JP2005/006614 JP2005006614W WO2005099250A1 WO 2005099250 A1 WO2005099250 A1 WO 2005099250A1 JP 2005006614 W JP2005006614 W JP 2005006614W WO 2005099250 A1 WO2005099250 A1 WO 2005099250A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
executed
execution device
java
execution
Prior art date
Application number
PCT/JP2005/006614
Other languages
English (en)
French (fr)
Inventor
Yoshio Kawakami
Yuki Horii
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to AU2005232103A priority Critical patent/AU2005232103C1/en
Priority to JP2006512069A priority patent/JPWO2005099250A1/ja
Priority to CA002561962A priority patent/CA2561962A1/en
Priority to US10/599,740 priority patent/US8037456B2/en
Priority to EP05728862A priority patent/EP1734748A4/en
Publication of WO2005099250A1 publication Critical patent/WO2005099250A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6168Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving cable transmission, e.g. using a cable modem
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/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/441Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • 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
    • 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/4437Implementing a Virtual Machine [VM]
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6118Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving cable transmission, e.g. using a cable modem
    • 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
    • H04N21/6433Digital Storage Media - Command and Control Protocol [DSM-CC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • 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

Definitions

  • the present invention relates to a program execution device that executes a program and manages the operation.
  • it relates to the execution of an alternative program when a program terminates abnormally in digital television.
  • 0—IF—109—031121 provides various services (for example, interactive programs) by not only delivering video and audio to each home, but also delivering applications that accompany them. It becomes possible. Furthermore, it is also possible to run applications (for example, electronic program guides) prepared by broadcasters on the STB.
  • Patent Document 1 Data Download describes a method of downloading and executing a broadcast-related application from a broadcast wave (that is, an MPEG2 transport stream).
  • a broadcast wave that is, an MPEG2 transport stream.
  • the technology described in Patent Literature 1 makes it possible to distribute an application that can be provided only to video and audio to each home.
  • Patent Document 2 entitled “Method and Apparatus for Managing Applications According to Application Life Cycle” describes an operation management technique for applications. According to the OCAP 1.0 specification, by using the technology described in Patent Document 2, it is possible to manage the life cycle of each distributed application.
  • Patent Document 1 Japanese Patent Publication No. 2001-519627
  • Patent Document 2 JP-T-2003-504753
  • the present invention has been made in view of the above circumstances, and prevents an application from being used even if an application (program) being executed is abnormally terminated, thereby improving user convenience. It is an object of the present invention to provide a program execution device capable of improving program execution.
  • a program execution device is a program execution device that executes a program, and selects a first program to be downloaded and selected as a program to be executed.
  • Execute the program selected by the Characterized in that it comprises an execution unit.
  • a program of the same type has the same function of displaying an electronic program guide, for example, and is operable by the user or the amount of information to be displayed.
  • These programs are programs that have different display characteristics such as display formats. Note that the same type of program includes the same program as the program that terminated abnormally.
  • the second program selection means may select a program different from the program selected by the first program selection means as a program to be executed. As a result, it is possible to execute, as an alternative program, a program of the same type as the abnormally terminated program and a different program.
  • the program execution device further includes a cause obtaining unit that obtains a cause of the abnormal termination of the program whose abnormal termination is detected by the program monitoring unit, and a countermeasure based on the cause of the abnormal termination.
  • the second program selection means selects the same program as the program selected by the first program selection means as a program to be executed, and the execution means executes the workaround execution After the avoidance measure is executed by the means, the program selected by the second program selection means may be executed. As a result, the same program as the abnormally terminated program can be executed again.
  • the second program selecting means selects the same program as the program selected by the first program selecting means as a program to be executed, and when the predetermined condition is satisfied, A program different from the program selected by the first program selecting means may be selected as a program to be executed. This makes it possible to start the same program for the first time for a certain period of time, and then execute another program after that.
  • the program monitoring means may present the occurrence of the abnormal termination to a user. As a result, the user can recognize that the abnormal termination of the program being executed has occurred.
  • the second program selection means may select the program based on a user's instruction. This makes it possible to execute the program specified by the user.
  • the second program selecting means presents a candidate for a selectable program and selects a program selected by a user as the program to be executed. May be. As a result, the program selected by the user can be executed. On the other hand, the user can easily determine the program to be executed.
  • the second program selecting means may select a predetermined program as the program when the selection of the user power is not performed within a predetermined time. As a result, it is possible to select a program without making a selection from the user within a predetermined time.
  • the present invention can be implemented not only as such a program execution device, but also as a program execution method using the characteristic means of such a program execution device as steps. It can also be realized as a program that causes a computer to execute the steps. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.
  • the program execution device of the present invention even if the program being executed is abnormally terminated, the same program or the same type of program as the abnormally terminated program is executed as a substitute program. It is possible to keep the program running at all times. Therefore, it is possible to prevent the application (program) from being used and improve the convenience for the user.
  • FIG. 1 is a configuration diagram of a cable television system according to a first embodiment of the present invention.
  • FIG. 2 is a diagram showing an example of how to use a frequency band used for communication between a head end and a terminal device in the cable television system according to the present invention.
  • FIG. 3 is a diagram showing an example of how to use a frequency band used for communication between a head end and a terminal device in the cable television system according to the present invention.
  • FIG. 4 is a diagram showing an example of how to use a frequency band used for communication between a head end and a terminal device in the cable television system according to the present invention.
  • FIG. 5 is a configuration diagram of a terminal device in the cable television system according to the present invention.
  • FIG. 6 shows an example of an appearance of a terminal device in a cable television system according to the present invention.
  • FIG. 7 is a configuration diagram of a hardware configuration of a POD according to the present invention.
  • FIG. 8 is a configuration diagram of a program configuration stored in the POD according to the present invention.
  • FIG. 9 is a configuration diagram of a packet defined by the MPEG standard.
  • FIG. 10 is a diagram showing an example of an MPEG2 transport stream.
  • FIG. 11 is a diagram showing an example of an appearance when an input unit is configured by a front panel.
  • FIG. 12 is a configuration diagram of a program configuration stored in the terminal device according to the present invention.
  • FIG. 13 (a) is a diagram showing an example of a display on a display according to the present invention.
  • (B) It is a figure showing an example of a display of a display concerning the present invention.
  • FIG. 14 is a diagram showing an example of information stored in a secondary storage unit according to the present invention.
  • FIG. 15 is a diagram illustrating an example of information stored in a primary storage unit according to the present invention.
  • FIG. 16 is a schematic diagram showing the contents of a PAT defined by the MPEG2 standard according to the present invention.
  • FIG. 17 is a schematic diagram showing the contents of a PMT defined by the MPEG2 standard according to the present invention.
  • FIG. 18 is a schematic diagram showing the contents of an AIT defined by the OCAP 1.0 specification according to the present invention.
  • FIG. 19 is a schematic diagram showing a file system transmitted by the DSMCC system according to the present invention.
  • FIG. 20 is a schematic diagram showing the contents of XAIT according to the present invention.
  • FIG. 21 is a configuration diagram of an MA management unit according to the present invention.
  • FIG. 22 is a flowchart illustrating an operation when the MA management unit starts the monitor application in the first embodiment.
  • FIG. 23 is a flowchart showing an operation when the started monitor application abnormally ends at an unexpected timing in the first embodiment.
  • FIG. 24 is a flowchart illustrating an operation of the MA management unit when the monitor application abnormally ends and saves and transmits the contents of the abnormal end in the first embodiment.
  • FIG. 25 is a flowchart showing an operation when the MA selecting unit B selects again the same program as the selection result of the MA selecting unit A in the second embodiment.
  • FIG. 26 (a) is a diagram schematically illustrating data held in a primary storage unit in the second embodiment.
  • the data held in the primary storage unit is FIG.
  • (C) is a diagram schematically illustrating data held in a primary storage unit in the second embodiment.
  • the MA selecting unit B again selects the same program as the selection result of the MA selecting unit A2103, and after the N + 1 times, the operation when selecting another program It is a flowchart showing.
  • Fig. 28 is a flowchart showing an operation of presenting a list of programs as selection candidates to the viewer and causing the viewer to make a selection in the fourth embodiment.
  • FIG. 29 is a diagram schematically showing an example of a list of programs that can be selected as alternative programs in the fourth embodiment.
  • FIG. 30 is a diagram showing an example of display presented to a viewer in Embodiment 4.
  • FIG. 31 is a diagram illustrating an example of a notification method to a viewer in Embodiment 5.
  • FIG. 32 is a diagram showing an example of a notification method for a viewer in Embodiment 5.
  • FIG. 33 is a schematic diagram showing the contents of XAIT according to the present invention.
  • FIG. 34 is an example of a message prompting purchase of a program according to the present invention.
  • FIG. 35 is an example of a state in which information of the Java (R) program according to the present invention is stored.
  • FIG. 36 is an example of the display on the display according to the present invention.
  • FIG. 37 is a flowchart summarizing the operation of POD Lib when a Java (R) program is registered in POD Lib.
  • FIG. 38 is a schematic diagram showing a change in a delivery destination of a message with a POD according to the present invention.
  • FIG. 39 is a schematic diagram showing a change in a delivery destination of a message with a POD according to the present invention.
  • FIG. 40 is a flowchart summarizing the operation of POD Lib when deleting the registration of the POD Lib power java (R) program according to the present invention.
  • FIG. 41 is a configuration diagram for performing processing when a Java (R) program according to the present invention terminates abnormally.
  • FIG. 42 is a flowchart showing processing when a Java (R) program according to the present invention terminates abnormally.
  • FIG. 43 is a flowchart showing processing when a Java (R) program according to the present invention terminates abnormally.
  • FIG. 44 is a flowchart showing processing when a Java (R) program according to the present invention terminates abnormally.
  • FIG. 1 is a block diagram showing the relationship between the devices constituting the cable system, and includes a head end 101, three terminal devices All, a terminal device B112, and a terminal device C113.
  • three terminal devices are connected to one head end, but the present invention can be implemented even if any number of terminal devices are connected to the head end.
  • the head end 101 transmits a broadcast signal such as video “audio” data to a plurality of terminal devices. Transmit and receive data transmission from the terminal device.
  • a broadcast signal such as video “audio” data
  • the frequency band used for transmission between the head end 101 and the terminal device All 1, the terminal device B 112, and the terminal device C 113 is divided and used.
  • FIG. 2 is a table showing an example of frequency band division. Frequency bands are broadly classified into two types: Out Of Band (abbreviated OOB) and In-Band. 5 to 130 MHz is allocated to the OOB, and is mainly used for exchanging data between the headend 101 and the terminal device A 111, the terminal device B 112, and the terminal device C 113.
  • OOB Out Of Band
  • In-Band 5 to 130 MHz is allocated to the OOB, and is mainly used for exchanging data between the headend 101 and the terminal device A 111, the terminal device B 112, and the terminal device C 113.
  • FIG. 3 is an example of a more detailed use of the OOB frequency band. 70 MHz to 74 MHz are used for data transmission from the head end 101, and all the terminal devices All 1, terminal device B 112, and terminal device C 113 receive the same data from the head end 101.
  • FIG. 4 shows an example of the use for the In-Band frequency band.
  • 150 to 156 MHz and 156 to 162 MHz are assigned to TV channel 1 and TV channel 2, respectively, and thereafter, TV channels are assigned at intervals of 6 MHz. After 310MHz, radio channels are allocated in 1MHz units.
  • Each of these channels may be used for analog broadcasting or digital broadcasting.
  • digital broadcasting it is transmitted in the transport packet format based on the MPEG2 specification, and it can transmit not only audio and video but also data for various data broadcasting.
  • the head end 101 has a QPSK modulator, a QAM modulator, and the like in order to transmit a broadcast signal appropriate to these frequency bands. It also has a QPSK demodulator to receive data from the terminal.
  • the head end 101 has various devices related to the modulation unit and the demodulation unit.
  • the present invention mainly relates to a terminal device. Therefore, detailed description is omitted.
  • the terminal device All, the terminal device B112, and the terminal device C113 receive and reproduce the broadcast signal from the headend 101. Further, it transmits data unique to each terminal device to the head end 101.
  • the three terminal devices have the same configuration in the present embodiment.
  • FIG. 5 is a block diagram illustrating a hardware configuration of the terminal device.
  • the terminal device 500 includes a QAM demodulation section 501, a QPSK demodulation section 502, a QPSK modulation section 503, a TS decoder 505, an audio decoder 506, a speaker 507, a video decoder 508, a display 509, a secondary storage section 510, and a primary storage. It comprises a unit 511, a ROM 512, an input unit 513, and a CPU 514.
  • the POD 504 can be attached to and detached from the terminal device 500.
  • FIG. 6 shows a thin television as an example of the appearance of the terminal device 500.
  • the housing 601 of the flat-panel television includes all the components of the terminal device 500 except for the POD 504.
  • the display 602 corresponds to the display 509 in FIG.
  • the front panel unit 603 includes a plurality of buttons, and corresponds to the input unit 513 in FIG.
  • the signal input terminal 604 is connected to a cable for transmitting / receiving a signal to / from the head end 101.
  • the signal input terminal 604 is connected to the QAM demodulation section 501 and QPSK demodulation section 5 in FIG.
  • the POD card 605 corresponds to the POD 504 in FIG.
  • POD504 is the POD card shown in Fig. 6.
  • the terminal device 500 takes a form independent of the terminal device 500 and is detachable from the terminal device 500. Details of the POD 504 will be described later.
  • the insertion slot 606 is an insertion slot into which the POD card 605 is inserted.
  • QAM demodulation section 501 demodulates a signal QAM-modulated and transmitted by head end 101 with tuning information including a frequency designated by CPU 514, and
  • QPSK demodulation section 502 demodulates the signal QPSK-modulated and transmitted by head end 101 with the tuning information including the frequency designated by CPU 514, and delivers the signal to POD 504.
  • QPSK modulation section 503 uses modulation information including a frequency designated by CPU 514 to generate a POD
  • the signal passed from 504 is QPSK-modulated and transmitted to headend 101.
  • the POD 504 has a form detachable from the terminal device main body 500 as shown in FIG.
  • the connection interface between the terminal body 500 and the POD 504 is defined in the OpenCable (R) HOST-POD Interface Specification (OC-SP-HOSTPOD-IF-112-030210) and the specification to which this specification is referred.
  • R OpenCable
  • OC-SP-HOSTPOD-IF-112-030210 OpenCable HOST-POD Interface Specification
  • FIG. 7 is a block diagram showing the internal configuration of POD 504.
  • the POD 504 includes a first descrambler unit 701, a second descrambler unit 702, a scrambler unit 703, a first storage unit 704, a second storage unit 705, and a CPU 706.
  • the first descrambler unit 701 receives an encrypted signal from the QAM demodulation unit 501 of the terminal device 500 according to an instruction from the CPU 706, and performs decryption. Then, it sends the decoded signal to TS decoder 505 of terminal device 500.
  • Information such as a key necessary for decoding is provided from the CPU 706 as appropriate.
  • headend 101 broadcasts several pay channels. When the user purchases the pay channel, the first descrambler unit 701 receives necessary information such as a key from the CPU 706 and descrambles the data, so that the user can browse the pay channel. If necessary information such as a key is not provided, first descrambler section 701 does not descramble and sends the received signal to TS decoder 505 as it is.
  • the second descrambler unit 702 receives the decrypted signal from the QPSK demodulation unit 502 of the terminal device 500 according to an instruction from the CPU 706, and performs decryption. Then, the decrypted data is transferred to the CPU 706.
  • the scrambler unit 703 encrypts the data received from the CPU 706 and sends the data to the QPSK modulation unit 503 of the terminal device 500 according to the instruction from the CPU 706.
  • the first storage unit 704 is specifically formed of a primary storage memory such as a RAM, and is used to temporarily store data when the CPU 706 performs processing.
  • the second storage unit 705 is specifically composed of a secondary storage memory such as a flash ROM, stores a program to be executed by the CPU 706, and is difficult to be erased even when the power is turned off. Used to store The CPU 706 executes a program stored in the second storage unit 705.
  • the program is composed of multiple subprograms.
  • FIG. 8 is an example of a program stored in the second storage unit 705.
  • the program 800 includes a plurality of subprograms such as a main program 801, an initialization subprogram 802, a network subprogram 803, a reproduction subprogram 804, and a PPV subprogram 805.
  • PPV is an abbreviation of Pay Per View, and is a service that allows a user to view a specific program such as a movie for a fee.
  • the head end 101 is notified of the purchase, the scramble is released, and the user can view the content. With this viewing, the user pays the purchase price at a later date.
  • the main program 801 is a subprogram that is started first when the CPU 706 is turned on, and controls other subprograms.
  • the initialization subprogram 802 is started by the main program 801 when the power is turned on, exchanges information with the terminal device 500, and performs an initialization process. Details of the initialization process are defined in the OpenCable (R) HOST-POD Interface Specification (OC-SP-HOST POD-IF-112-030210) and the specifications referred to from this specification. In addition, initialization processing not defined in the specification is also performed. Here are some of them.
  • the initialization subprogram 802 notifies the QPSK demodulation unit 502 of the first frequency stored in the second storage unit 705 through the CPU 514 of the terminal device 500.
  • the QPSK demodulation section 502 performs tuning at the given first frequency and sends a signal to second descrambler section 702. Further, the initialization subprogram 802 gives the second descrambler unit 702 the decryption information such as the first key stored in the second storage unit 705. As a result, the second descrambler unit 702 descrambles and hands over to the CPU 706 that executes the initialization subprogram 802. Therefore, the initialization subprogram 802 can receive the information. In the present embodiment, the initialization subprogram 802 receives information through the network subprogram 803. Details will be described later.
  • the initialization subprogram 802 notifies the QPSK modulation unit 503 of the second frequency stored in the second storage unit 705 through the CPU 514 of the terminal device 500.
  • the initialization subprogram 802 gives the encryption information stored in the second storage unit 705 to the scrambler unit 703.
  • the scrambler unit 703 encrypts the data using the given encryption information.
  • QPSK modulation section 503 modulates the given encrypted information and transmits it to head end 101.
  • the initialization subprogram 802 can perform bidirectional communication with the headend 101 via the terminal device 500, the second descrambler unit 702, the scrambler unit 703, and the network subprogram 803.
  • the initialization subprogram 802 starts a privileged program based on special program information sent from the head end 101. Details will be described later.
  • the network subprogram 803 is a subprogram for performing bidirectional communication with the head end 101, which also uses a plurality of subprograms such as a main program 801 and an initialization subprogram 802. Specifically, it acts as if bidirectional communication is performed with the headend 101 by TCPZIP to other subprograms that use the network subprogram 803.
  • TCP / IP is a known technology that defines a protocol for exchanging information between a plurality of devices, and a detailed description thereof will be omitted.
  • the MAC address Media Access Control address of the Media Access Control address
  • the network sub-program 803 When the network sub-program 803 is activated by the initialization sub-program 802 when the power is turned on, the MAC address (Media Access Control address of the Media Access Control address) which is an identifier for identifying the POD 504 is stored in the second storage unit 705 in advance. Omitted) to the headend 101 through the terminal device 500, and requests acquisition of an IP address.
  • the head end 101 notifies the POD 504 of the IP address via the terminal device 500, and the network subprogram 803 stores the IP address in the first storage unit 704. Thereafter, the headend 101 and the POD 504 perform communication using the IP address as an identifier of the POD 504.
  • the reproduction subprogram 804 gives the decryption information such as the second key stored in the second storage unit 705 and the decryption information such as the third key provided from the terminal device 500 to the first descrambler unit 701. In addition, it enables descrambling. Further, through the network sub-program 803, information on the signal power PPV channel input to the first descrambler unit 701 is received. When the PPV channel is known, the PPV subprogram 805 is activated.
  • PPV subprogram 805 When activated, PPV subprogram 805 prompts terminal 500 to purchase a program. Display a message and receive user input. Specifically, when information to be displayed on the screen is sent to the CPU 514 of the terminal device 500, a message is displayed on the display 509 of the terminal device 500 that operates on the CPU 514 of the terminal device 500. When the user inputs a password through the input unit 513 of the terminal device 500, the password is received by the CPU 514 of the terminal device 500 and notified to the PPV subprogram 805 running on the CPU 706 of the POD 504. The PPV subprogram 805 transmits the received personal identification number to the headend 101 through the network subprogram 803.
  • the head end 101 notifies the PPV subprogram 805 of the decryption information such as the fourth key necessary for decryption via the network subprogram 803.
  • the PPV subprogram 805 gives the received decryption information such as the fourth key to the first descrambler unit 701, and the first descrambler unit 701 descrambles the input signal.
  • TS decoder 505 filters the signal received from POD 504, and passes necessary data to audio decoder 506, video decoder 508, and CPU 514.
  • the signal coming from POD 504 is an MPEG2 transport stream. Details of the MPEG2 transport stream are described in the MPEG standard ISOZIEC138 18-1, and the details are omitted in the present embodiment.
  • the MPEG2 transport stream is composed of a plurality of fixed-length packets, and each packet is assigned a packet ID.
  • FIG. 9 is a configuration diagram of a packet. 900 is a packet, which has a fixed length of 188 bytes.
  • the first four bytes are the header 901 which stores the identification information of the packet, and the remaining 184 bytes are the payload 902 which contains the information to be transmitted.
  • 903 is a breakdown of the header 901.
  • the packet ID is included in 13 bits from the 12th to 24th bit from the top.
  • FIG. 10 is a schematic diagram showing a sequence of a plurality of packets transmitted.
  • Packet 1001 has a packet ID “1” in the header and the first information of video A in the payload.
  • Knocket 1002 has the packet ID “2” in the header and the first information of voice A in the payload.
  • Knocket 1003 has the packet ID "3" in the header and the first information of voice B in the payload.
  • Knocket 1004 has packet ID "1" in the header, and the payload contains the second information of video A, which is a continuation of packet 1001. Similarly knotted 1005 , 1026 and 1027 also store subsequent data of other packets. In this way, by concatenating the contents of the packet payloads with the same packet ID, continuous video and audio can be reproduced.
  • TS decoder 505 converts the packet ID from the MPE G2 transport stream received from POD 504 to the packet ID.
  • the packet of “1” is extracted and delivered to the video decoder 508.
  • the TS decoder 505 extracts the packet of the packet ID “2” from the MPEG2 transport stream received from the POD 504. Extract and deliver to the audio decoder 506. In FIG. 10, only the audio data is delivered to the audio decoder 506.
  • the TS decoder 505 can simultaneously execute a plurality of filterings specified by the CPU 514.
  • audio decoder 506 receives the MPE given from TS decoder 505.
  • the audio data embedded in the packet of the G2 transport stream is concatenated, digital-to-analog converted, and output to the speaker 507.
  • the speaker 507 outputs a signal provided from the audio decoder 506 as sound.
  • the video decoder 508 concatenates the video data embedded in the MPEG2 transport stream packet supplied from the TS decoder 505, performs digital-analog conversion, and outputs the result to the display 509.
  • the display 509 is specifically composed of a cathode ray tube, a liquid crystal, or the like.
  • the secondary storage unit 510 is specifically configured by a flash memory node disk or the like, and stores and deletes data and programs specified by the CPU 514.
  • the stored data and programs are referred to by the CPU 514.
  • Stored data type The program is kept stored even when the terminal device 500 is turned off.
  • the primary storage unit 511 is specifically configured by a RAM or the like, and temporarily stores or deletes the data program specified by the CPU 514.
  • the stored data and programs are referred to by the CPU 514.
  • the stored data and programs are deleted when the terminal device 500 is turned off.
  • the ROM 512 is a non-rewritable memory device, specifically, a ROM or a CD.
  • the ROM 512 stores a program to be executed by the CPU 514.
  • the input unit 513 is specifically composed of a front panel and a remote controller, and receives an input from a user.
  • FIG. 11 shows an example in which the input unit 513 is configured by a front panel.
  • Reference numeral 1100 denotes a front panel, which corresponds to the front panel section 603 in FIG.
  • the front panel 1100 has seven buttons, an up cursor button 1101, a down cursor button 1102, a left cursor button 1103, a right cursor button 1104, an OK button 1105, a cancel button 1106, and an EPG button 1107.
  • the button When the user presses the button, the identifier of the pressed button is notified to the CPU 514.
  • the CPU 514 executes a program stored in the ROM 512.
  • QAM demodulation section 501, QPSK demodulation section 502, QPSK modulation section 503, POD504, TS decoder 505, display 509, secondary storage section 510, primary storage section 511, and ROM512 are controlled.
  • FIG. 12 is an example of a configuration diagram of a program stored in the ROM 512 and executed by the CPU 514.
  • the program 1200 is composed of a plurality of subprograms. Specifically, the OS 1201, the EPG 1202, the Java (R) VM 1203 (hereinafter referred to as VM 1203), the service manager 1204, and the Java (R) library 1205 ( The library 1205).
  • the OS 1201 is a subprogram that starts up the CPU 514 when the terminal device 500 is powered on.
  • the OS 1201 is an abbreviation for an operating system, and Linux is an example.
  • the OS 1201 is a general term for a known technique including a kernel 1201a and a library 1201b that execute other subprograms in parallel, and a detailed description thereof will be omitted. Real truth
  • the kernel 1201a of the OS 1201 executes the EPG 1202 and the VM 1203 as sub programs.
  • the library 120 lb provides these subprograms with a plurality of functions for controlling the components held by the terminal device 500.
  • the tuning function receives tuning information including other sub-program power frequencies and delivers it to the QAM demodulation section 501.
  • QAM demodulation section 501 can perform demodulation processing based on the given tuning information, and can deliver the demodulated data to POD 504.
  • other subprograms can control the QAM demodulator through the library 1201b.
  • the EPG 1202 includes a program display section 1202a that displays a program list to the user and accepts input from the user, and a playback section 1202b that performs channel selection.
  • EPG is an abbreviation for Electric Program Guide.
  • the EPG 1202 is started by the kernel 1201a when the power of the terminal device 500 is turned on.
  • the program display unit 1202a waits for an input from the user through the input unit 513 of the terminal device 500.
  • the input unit 513 is configured by the front panel shown in FIG. 11, when the user presses the EPG button 1107 of the input unit 513, the CPU 514 is notified of the identifier of the EPG button.
  • FIGS. 13A and 13B are examples of the program guide displayed on the display 509.
  • FIG. 13 (a) display 509 displays program information in a grid pattern.
  • Column 1301 displays time information.
  • Column 1302 displays the channel name “Channel 1” and the programs to be broadcast during the time zone corresponding to the time in column 1301. In “Channel 1”, the program “News 9” is broadcast at 9:00 to: L0: 30, and 10:30 to 12:00 indicates that “Movie ⁇ A” is broadcast.
  • column 1303 displays a channel name “channel 2” and a program to be broadcast in a time zone corresponding to the time in column 1301.
  • the program "Movie BBB” is broadcast from 9:00 to 11:00
  • "News 11” is broadcast from 11:00 to 12:00.
  • 1330 is a cursor.
  • the cursor 1330 moves when the left cursor 1103 and the right cursor 1104 of the front nonel 1100 are pressed.
  • the cursor 1330 moves to the right, as shown in FIG. 13B.
  • Fig. 13 (b) In this state, when the left cursor 1103 is pressed, the cursor 1330 moves to the left, as shown in FIG.
  • the program display unit 1202a When the OK button 1105 on the front panel 1100 is pressed in the state of FIG. 13A, the program display unit 1202a notifies the playback unit 1202b of the identifier of “Channel 1”. When the OK button 1105 on the front panel 1100 is pressed in the state shown in FIG. 13B, the program display unit 1202a notifies the playback unit 1202b of the identifier of “Channel 2”.
  • the program display unit 1202a stores the program information to be displayed in the primary storage unit 511 periodically from the head end 101 via the POD 504. Generally, it takes time to acquire program information from the headend.
  • the EPG button 1107 of the input unit 513 is pressed, by displaying the program information stored in the primary storage unit 511 in advance, the program table can be quickly displayed.
  • the reproducing unit 1202b reproduces the channel using the received channel identifier.
  • the relationship between the channel identifier and the channel is stored in advance in the secondary storage unit 510 as channel information.
  • FIG. 14 is an example of the channel information stored in the secondary storage unit 510.
  • Channel information is stored in a table format.
  • Column 1401 is the identifier of the channel.
  • Column 1402 is the channel name.
  • Column 1403 is the tuning information.
  • the tuning information includes a frequency, a transfer rate, a coding rate, and the like, and is a value given to the QAM demodulation section 501.
  • Column 1404 is the program number.
  • the program number is a number for identifying the PMT specified in the MPEG2 standard. PMT will be described later.
  • Each row of rows 1411 to 1414 is a set of an identifier, a channel name, and tuning information of each channel.
  • Row 1411 is a set including the identifier “1”, the channel name “channel 1”, the tuning information frequency “150 MHz”, and the program number “101”.
  • the playback unit 1202b passes the received channel identifier to the service manager as it is in order to play the channel.
  • the playback unit 1202b receives the pressed notification through the input unit 513 and the CPU 514, and performs playback. Change the channel that is connected.
  • the reproducing unit 1202b stores the identifier of the currently reproduced channel in the primary storage unit 511.
  • Figure 15 (a) (b) and (c) Is an example of a channel identifier stored in the primary storage unit 511.
  • the identifier “3” is stored, and referring to FIG. 14, it indicates that the channel with the channel name “TV 3” is being played.
  • the reproducing unit 1202b refers to the channel information of FIG. 14 and reproduces the channel having the channel name “channel 2” which is the previous channel in the table.
  • the identifier “2” of the channel name “Channel 2” is delivered to the service manager.
  • the channel identifier is rewritten to the channel identifier “2” stored in the primary storage unit 511.
  • FIG. 15 (b) shows a state where the channel identifier has been rewritten.
  • the reproducing unit 1202b refers to the channel information of FIG. 14 and displays the channel name “TV Japan” which is the next channel in the table.
  • FIG. 15 (c) shows a state in which the channel identifier has been rewritten.
  • the VM 1203 is a Java (R) virtual machine that sequentially analyzes and executes programs written in the Java (R) language. Programs written in the Java (R) language are compiled into hardware-independent intermediate code called bytecode. The Java (R) virtual machine is an interpreter that executes this bytecode. Some Java (R) virtual machines also translate bytecodes into an executable format that can be understood by the CPU 514, and then pass it on to the CPU 514 for execution.
  • the VM 1203 is started by specifying a Java (R) program to be executed by the kernel 1201a. In the present embodiment, the kernel 1201a specifies the service manager 1204 as a Java (R) program to be executed.
  • Java (R) language Details of the Java (R) language are described in many books such as the book “Java (R) Language Specification (ISBN 0-201-63 451-1)". Here, the details are omitted.
  • the detailed operation of the Java (R) VM itself is described in many books such as “Java (R) Virtual Machine Specificstion (lSBN 0-201-63451-X)”. Here, the details are omitted.
  • the service manager 1204 is an ava (R) program written in the Java (R) language, and is sequentially executed by the VM 1203.
  • the service manager 1204 is a JNI (Java (R) N native interface), it is possible to call or be called by other subprograms written in the Java (R) language.
  • JNI is also described in many books such as the book rjava (R) Native Interface. Here, the details are omitted.
  • the service manager 1204 receives the channel identifier from the playback unit 1202b through the JNI.
  • the service manager 1204 first passes the channel identifier to the Tunerl 205c in the library 1205, and requests tuning.
  • the Tunerl 205c refers to the channel information stored in the secondary storage unit 510 and acquires tuning information. Now, when the service manager 1204 passes the channel identifier “2” to the Tuner 1205c, the Tuner 205c acquires the corresponding tuning information “156 MHz” by referring to the row 1412 in FIG.
  • the Tunerl 205c transfers the tuning information to the QAM demodulation unit 501 through the library 1201b of the OS 1201.
  • the QAM demodulation section 501 demodulates the signal transmitted from the head end 101 according to the given tuning information, and delivers it to the POD 504.
  • the service manager 1204 requests descrambling to the CA 1205d in the library 1205.
  • the CA 1205d gives the information necessary for decryption to the POD 504 through the library 1201b of the OS 1201.
  • the POD 504 decodes the signal provided from the QAM demodulation unit 501 based on the provided information and delivers it to the TS decoder 505.
  • the service manager 1204 gives the channel identifier to the JMF 1205a in the library 1205, and requests reproduction of video and audio.
  • the JMF 1205a obtains a packet ID for specifying the video and audio to be reproduced from the PAT and PMT.
  • PAT or PMT is a table that represents the number and configuration in the MPE G2 transport stream specified by the MPEG2 standard, and is embedded in the payload of the packet included in the MPEG2 transport stream and shared with audio and video. Is sent to Refer to the standard for details. Here, only the outline is explained.
  • PAT is an abbreviation of Program Association Table, and is stored and transmitted in the packet with packet ID “0”.
  • JMF1205a is a library of OS1201 to get PAT The packet ID “0” and the CPU 514 are specified to the TS decoder 505 through 1201b.
  • FIG. 16 is a table schematically showing an example of the collected PAT information.
  • Column 1601 is a program number.
  • Column 1602 is the packet ID.
  • the packet ID in column 1602 is used to obtain the PMT.
  • Lines 1611 to 1613 are sets of a program number of the channel and a packet ID corresponding to the program number. Here, three channels are defined. Line 1611 defines a set of a program number “101” and a packet ID “501”!
  • the JMF1205a acquires the corresponding program number “102” by referring to the row 1412 in FIG. 14, and then obtains the PAT in FIG. Referring to the line 1612, the packet ID “502” corresponding to the program number “102” is obtained.
  • PMT is an abbreviation of Program Map Table, and is stored and transmitted in a packet with a packet ID specified by PAT.
  • the JMF 1205a specifies the packet ID and the CPU 514 to the TS decoder 505 through the library 1201b of the OS 1201 to obtain the PMT.
  • the designated packet ID is “502”.
  • FIG. 17 is a table schematically showing an example of the collected PMT information.
  • Column 1701 is a stream type.
  • Column 1702 is Bucket HD.
  • the information specified by the stream type is stored in the payload and transmitted.
  • Column 1703 is supplementary information.
  • Lines 1711 to 1714 are sets of packet IDs and types of information being transmitted, which are called elementary streams.
  • Line 1711 is a set of stream type “audio” and packet ID “5011”, and indicates that audio is stored in the payload of packet HD “5011”.
  • JMF1205a acquires the packet ID of the video and audio to be reproduced from the PMT. Referring to FIG. 17, JMF 1205a obtains audio packet ID “5011” from row 1711 and video packet ID “5 012” from row 1712.
  • the JMF 1205a provides the TS decoder 505 with a set of the acquired audio packet HD, an audio decoder 506 as an output destination, and a video packet ID and a video decoder 508 as an output destination through the library 1201b of the OS 1201.
  • the packet with the packet ID “5011” is delivered to the audio decoder 506, and the packet with the packet ID “5012” is delivered to the video decoder 508.
  • the audio decoder 506 performs digital-to-analog conversion of the given packet and reproduces sound through the speaker 507.
  • the video decoder 508 performs digital-to-analog conversion of the given packet and displays an image on the display 509.
  • the service manager 1204 gives the channel identifier to the AM 1205b in the library 1205, and requests data broadcast reproduction.
  • the data broadcast reproduction means extracting a Java (R) program included in an MPEG2 transport stream and causing the VM 1203 to execute the program.
  • a method of embedding a Java (R) program in an MPEG2 transport stream uses a method called DSMCC described in MPEG standard ISOZIEC13818-6.
  • DSMCC describes a method of encoding a file system composed of directories and files used in a computer in a packet of an MPEG2 transport stream.
  • AIT is an abbreviation of the Application Information Table defined in the OCAP 1.0 specification (formally, OCAP 1.0 Profile OC—SP—OCAP 1.0—IF—109—031121).
  • the AM 1205b first obtains the PAT and PMT as in the case of the JMF 1205a to obtain the AIT, and obtains the packet ID of the packet in which the AIT is stored. Now, if the given channel identifier is “2” and the PAT of FIG. 16 and the PMT of FIG. 17 have been transmitted, the PMT of FIG. 17 is obtained in the same procedure as JMF1205a.
  • the AM1205b also extracts the packet ID from the elementary stream having the stream type “data” and the supplementary information “AIT” from the PMT. Referring to FIG. 17, the elementary stream in row 1713 corresponds to the packet, and acquires packet ID “5013”.
  • the AM 1205b gives the AIT packet ID and the output destination CPU 514 to the TS decoder 505 through the library 1201b of the OS 1201.
  • the TS decoder 505 performs filtering with the given packet ID, and delivers the packet to the CPU 514.
  • the AM1205b can collect AIT packets.
  • Figure 18 is a table that schematically shows an example of the collected AIT information. is there.
  • Column 1801 is an identifier of the ava (R) program (shown as a program identifier in the figure).
  • Column 1802 This is control information of the ava (R) program.
  • the control information includes ⁇ autostart '', ⁇ presentj '', ⁇ kill '', etc., ⁇ autostart '' means that the terminal device 500 automatically executes this program immediately, and rpresentj means that it is not automatically executed! Means "kill" means to stop the program.
  • Column 1803 is the DSMCC identifier for extracting packet IDs containing Java programs in the DSMCC format.
  • Column 1804 The program name of the ava (R) program.
  • Lines 1811 and 1812 are a set of information of the Java (R) program.
  • the Java (R) program defined in line 1811 is a set of the identifier “301”, the control information “autostart”, the DSMCC identifier “1”, and the program name “aZTopXlet”.
  • the Java (R) program defined in line 1812 is a set of an identifier “302”, control information “present”, a DS MCC identifier “1”, and a program name “bZGameXlet”.
  • two Java (R) programs have the same DSMCC identifier. This means that two Java (R) programs are included in a file system encoded by one DSMCC method.
  • only four pieces of information are specified for Java (R) programs, but more information is actually defined. Refer to OCAP1.0 specification for details.
  • the AM1205b finds the "autostart" Java (R) program from the AIT, and extracts the corresponding DSMCC identifier and Java (R) program name. With reference to FIG. 18, to extract the Java (R) program of the AM 1205b row 1811, to win the DSMCC identifier "1" and the Java (R) program name r a / TopXletj.
  • the AM 1205b stores the Java (R) program in the DSMCC format and obtains the packet ID of the packet from the PMT. Specifically, the packet ID of the elementary stream whose stream type is “data” in the PMT and whose DSMCC identifier in the supplementary information matches is obtained.
  • the DSMCC identifier power is “l” and the PMT is as shown in FIG. 17, the elementary stream in row 1714 matches, and the packet ID “5014” is extracted.
  • the CPU 514 is specified as the packet ID of the packet in which data is embedded in the TS decoder 505 by the DSMCC method through the library 1201b of the AMI 205b OS1201 and the output destination.
  • the packet ID “5014” is given.
  • the AM1205b can collect necessary packets.
  • the AM 1205b restores a file system from the collected packets according to the DSMCC method, and stores the restored file system in the primary storage unit 511. Extracting data such as a file system from a packet in an MPEG2 transport stream and storing it in a storage means such as the primary storage unit 51 1 is hereinafter referred to as download.
  • FIG. 19 shows an example of a downloaded file system.
  • circles indicate directories, squares indicate files, 1901 is a root directory, 1902 is a directory "a”, 1903 is a directory "b”, 1904 is a file "TopXlet. Classj”, and 1905 is a file "GameXlet. Classj”.
  • the AM 1205b delivers the Java (R) program to be executed from the file system downloaded to the primary storage unit 511 to the VM 1203.
  • the name of the Java (R) program to be executed is "aZTopXlet”
  • the file to be executed is the file "aZTopXlet.class” with ". Classj” appended to the end of the Java (R) program name.
  • “Z” is a directory or file name separator.
  • the file 1904 is a Java (R) program to be executed.
  • VM1203 is delivered and executes the Java (R) program.
  • the service manager 1204 When the service manager 1204 receives the identifier of another channel, the service manager 1204 reproduces the video / audio and the execution of the Java (R) program through the respective libraries included in the library 1205 through the respective libraries also included in the library 1205. Stop and play the video and audio and execute the Java (R) program based on the newly received channel identifier.
  • the library 1205 is a set of a plurality of Java (R) libraries stored in the ROM 512.
  • the library 1205 includes a JMF 1205a ⁇ AM1205b ⁇ Tunerl 205c, a CA 1205d, a POD Libl 205e, a MA management unit 1205f, and the like.
  • the initialization subprogram 802 has been described as activating a privileged program based on the special program information sent from the headend 101. The details will be described.
  • a program such as the EPG1202 prepared in advance in the terminal is used.
  • a procedure for downloading and executing a program (hereinafter referred to as a monitor application) in which an external power of the terminal device is also privileged is defined.
  • a monitor application for example, there is a display of an electronic program guide. It also stipulates that if a monitor application exists and is specified to start automatically, it must be executed. Here, the details are omitted, and only the part relating to the present invention will be described.
  • FIG. 20 is a table schematically showing an example of special program information (hereinafter referred to as XAIT) sent from head end 101. Since the configuration of the XAIT is similar to that of the AIT shown in FIG. 18, the same components are denoted by the same reference numerals and description thereof will be omitted.
  • Column 2005 is a monitor application identifier. Unlike the AIT process in AM1205b, for example, only the monitor application identifier of 1 or more is treated as a monitor application. If there are multiple programs with a monitor application identifier of 1 or more in XAIT, all of them are treated as monitor applications. Details will be described later.
  • the initialization subprogram 802 starts a special program based on the special program information sent from the headend 101 by instructing the MA management unit 1205f to start the monitor application. .
  • FIG. 21 is a block diagram showing an example of the configuration of the MA management unit 1205f.
  • the MA management unit 1205f also includes a MA management unit main 2101, an XAIT acquisition / analysis unit 2102, an MA selection unit A2103, an MA activation unit 2104, an MA monitoring unit 2105, and an MA selection unit B2106.
  • the MA management unit main 2101 plays a central role of the MA management unit 1205f, receives instructions from the initialization subprogram 802, and uses other components in the MA management unit 1205f. Thereby, the function as the MA management unit 1205f is realized.
  • the XAIT acquisition and analysis unit 2102 analyzes the XAIT sent from the headend 101 according to the instruction from the MA management unit main 2101, and returns the analysis result to the MA management unit main 2101. For example, the content shown in FIG. 20 is returned as the analysis result.
  • the MA selection unit A2103 selects a monitor application to be started based on the XAIT analysis result passed from the MA management unit main 2101, and returns the result to the MA management unit main 2101. For example, when the content shown in FIG. 20 is passed as the result of the XAIT analysis, the MA selecting unit A2103 may be able to select the program indicated by the row 1811 as the monitor application to be started.
  • the MA activation unit 2104 activates the monitor application specified by the MA management unit main 2101. For example, when the program indicated by the line 1811 in FIG. 20 is instructed, “ZaZMAl” is started as the monitor application.
  • the activation method is the same as the operation of AM1205b, and the description is omitted.
  • the MA monitoring unit 2105 monitors the operation status of the monitor application specified by the MA management unit main 2101, and notifies the MA management unit main 2101 when an abnormal end has occurred. As a method for recognizing the occurrence of the abnormal termination, for example, it is possible to judge by receiving an exception thrown by the monitor application. Exceptions are specified in the Java (R) language specification! Also, the MA monitoring unit 2105 may be able to simultaneously monitor the operation status of a plurality of monitor applications.
  • the MA selection unit B2106 selects an alternative application according to the instruction from the MA management unit main 2101, and returns the selection result to the MA management unit main 2101.
  • FIG. 22 is a flowchart showing a procedure in which the MA management unit 1205f starts the monitor application.
  • the MA management unit main 2101 When the MA management unit main 2101 receives an instruction from the initialization subprogram 802, the MA management unit main 2101 first issues an XAIT analysis instruction to the XAIT acquisition analysis unit 2102, and the XAIT acquisition analysis unit 2102 tries to acquire the XAIT sent from the head end 101 (S2201). Further, the XAIT acquisition / analysis unit 2102 analyzes the XAIT (S2203), and returns the analysis result to the MA management unit main 2101. When the MA management unit main 2101 requests the MA selection unit A2103 to select a monitor application based on the analysis result, the MA selection unit A2103 issues a monitor to be started based on the information passed from the MA management unit main 2101.
  • the application is selected, and the selection result is returned to MA management @ main 2101 (S2204). If the acquisition or analysis of XAIT fails in S2201, or S2203, the MA selection unit A gram (eg, EPG1202) is returned to the MA management unit main 2101 as a selection result.
  • the MA management unit main 2101 instructs the MA start unit 2104 to start the monitor application based on the result returned from the MA selection unit A2103, the MA start unit 2104 is also instructed by the MA management unit main unit 2101.
  • the monitor application started (S2205).
  • the MA management unit 2101 further instructs the MA monitoring unit 2105 to monitor the operation status of the monitor application started by the MA activation unit 2104, the MA monitoring unit 2105 issues the operation status of the specified monitor application.
  • Monitoring is started (S2206). Further, when a plurality of monitor applications are selected in S2204, the MA management unit main 2101 selects a monitor application that has not yet instructed the MA start unit 2104 to start, and similarly starts and monitors the monitor application. Attempt (S2207). When the MA management unit main 2101 completes the activation and monitoring instructions for all the monitor applications selected in S2204, the process related to the activation of the monitor application is completed. Here, the result may be returned to the initialization subprogram 802. Also, in S2204, if the monitor application to be activated is not selected, the MA management unit main 2101 may perform the processing after S2205 assuming that an alternative program (for example, EPG1202) has been selected.
  • EPG1202 alternative program
  • the OCAP1.0 specification specifies that if a monitor application terminates abnormally, it will attempt to restart the monitor application. However, from the results of abnormal termination, it is fully anticipated that abnormal termination will occur again after restart.
  • FIG. 23 is a flowchart showing processing when the started monitor application abnormally ends at an unexpected timing.
  • the MA monitoring unit 2105 detects abnormal termination of the monitor application being monitored (S2301), the MA monitoring unit 2105 terminates monitoring of the abnormally terminated monitor application (S2302), and the MA management unit main The server 2101 is notified that the abnormal termination has occurred (S2303).
  • the MA management unit main 2101 Upon receiving the notification of the abnormal end from the MA monitoring unit 2105, the MA management unit main 2101 requests the MA selection unit B2106 to select an alternative program.
  • the MA selection unit B2106 selects an alternative program based on the request from the MA management unit main 2101, and returns information necessary for starting the alternative program to the MA management unit main 2101 (S2304).
  • the information required to start the alternative program is, for example, the program name and storage location.
  • the MA management unit main 2101 instructs the MA activation unit 2104 to activate the alternative program based on the information returned from the MA selection unit B2106 (S2305).
  • the MA management unit main 2101 requests the MA monitoring unit 2105 to monitor the operation status of the alternative program (S2306).
  • next alternative program is selected and activated in the same procedure (S2301 to S2306) as when the monitor application terminates abnormally.
  • the MA management unit main 2101 does not necessarily need to perform the startup processing of the alternative program (that is, S2304 and later). f If the multiple monitor apps are selected in S2204 in Fig. 22 and multiple monitor apps are activated as a result, the management unit main 2101 Only when the monitor application terminates abnormally, it is possible to start the substitute program (that is, after S2304).
  • the process of starting the substitute program only when a specific monitor application ends abnormally.
  • the specific monitor application is, for example, a monitor application whose column 2005 monitor application identifier in FIG.
  • the process can be executed without performing the process of S2206 in FIG. 22 (that is, monitoring the operation status of the monitor application) for a monitor application whose monitor application identifier is not 1.
  • the EPG1202 described as an example of the alternative program can be executed even if another program is used as an alternative program as long as it can be activated.
  • alternative programs that restart the terminal device or those that simply switch channels However, it can be implemented.
  • an alternative program can request the activation of another alternative program by specifying the program information to the MA management unit main 2101.
  • the substitute program may instruct the restart of the monitor application that terminated abnormally first, and then the monitor application may be started.
  • EPG 1202 which is an example of the substitute program
  • the present invention can be implemented even if it is not prepared in advance.
  • the present invention can also be implemented by externally downloading and starting.
  • an alternative program may be downloaded via a network, or the MPEG stream received by the terminal device may be downloaded.
  • a program that is not prepared in advance can be started as a substitute program.
  • the monitor application is described as being downloaded and executed, it is stored in the secondary storage unit 705 at the time of the first download, and is stored in the secondary storage unit 705 instead of downloading the second and subsequent times.
  • the present invention can be implemented even if it is activated by using the above.
  • the MA selection unit B2106 selects the EPG1202 as an alternative program
  • the present invention can be implemented as long as an arbitrary startable program can be selected using an arbitrary selection method.
  • the MA management unit 1205f can also save the contents of the abnormal end in the first storage unit 511 or the second storage unit 510. Further, it is possible to transmit the stored contents to the outside of the terminal device.
  • the contents to be saved are, for example, the time when the abnormal termination occurred, the Java (R) program identifier, the program name, and the type of abnormal termination (for example, insufficient memory). It can be implemented if it is.
  • Examples of the information terminal outside of the terminal include a terminal device manufacturer and a broadcasting company. For example, if an abnormal termination occurs due to a malfunction of the terminal device, it can be sent to the terminal device manufacturer, so that the terminal device manufacturer can take quick measures to solve the problem.
  • FIG. 24 shows the processing in this case.
  • the same portions as those in the process shown in FIG. 23 are denoted by the same reference numerals, and description thereof is omitted.
  • the MA management unit main 2101 detects abnormal termination of the monitor application by S2303 in FIG. 24, the MA management unit main 2101 stores the contents of the abnormal termination in the primary storage unit 511 or the secondary storage unit 510. (S2410). Further, the MA management unit main 2101 transmits the stored contents to the outside of the terminal device. After that, the MA management unit main 2101 continues the processing after S2304.
  • the transmitting means can be implemented as long as it can transmit information to the outside of the terminal device. For example, it is possible to send the saved content using well-known technologies such as FTP and E-mail.
  • the present invention can be implemented by using a removable storage device as the secondary storage unit 510.
  • the present invention can be implemented by transporting the removable storage device using some transportation means without transmitting the data to the outside.
  • the secondary storage unit 510 is configured by a plurality of sub-secondary storage units, and can be implemented even when each sub-secondary storage unit stores different information. For example, one sub-secondary storage unit stores only the tuning information, another sub-secondary storage unit stores the library 1201b of the OS 1201, and another sub-secondary storage unit downloads ⁇ Java (R ) It is possible to divide the program in detail, such as by saving the program.
  • the registered Java program is stored in secondary storage unit 510, but may be stored in primary storage unit 511.
  • the information is stored in the primary storage unit 511, all the stored information is deleted when the power is turned off.
  • the MA selection unit B2106 selects the EPG1202 as an alternative program.
  • the MA selection unit B2106 selects the MA selection unit. A case will be described in which the same program as the selection result of the section A2103 (that is, the abnormally ended program) is selected again.
  • the MA monitoring unit 2105 when an abnormal termination of the monitor application occurs, notifies the occurrence of the abnormal termination and, for example, a code indicating the cause of the abnormal termination of the monitor application by MA management. Notify the main section 2101.
  • the MA management unit main 2101 stores workarounds corresponding to codes (causes of abnormal termination) in a table or the like in advance, determines workarounds corresponding to the notified code, and determines the workarounds. Implement measures.
  • FIG. 25 shows an operation procedure in the present embodiment.
  • FIG. 25 the same parts as those in the processing shown in FIG. 23 are denoted by the same reference numerals, and description thereof will be omitted.
  • the MA monitoring unit 2105 notifies the occurrence of abnormal termination of the monitor application and notifies the MA management unit main 2101 of a code indicating the cause of the abnormal termination of the monitor application. Then, when the MA management unit main 2101 requests the MA selection unit B2106 to select an alternative program, the MA selection unit B2106 selects the abnormally terminated monitor application as an alternative program and starts the monitor application. The necessary information is returned to the MA management section main 2101 (S2510). The green report required to start the monitor application is the information returned in S2204 of FIG. 22, or a part thereof, and additional information.
  • the additional information includes, for example, the number of times that the selected monitor application has abnormally ended, the number of times that the selected monitor application has been selected as an alternative program, and the like.
  • the MA selection unit B2106 holds information in, for example, the primary storage unit 511 in order to hold the number of times the monitor application has abnormally ended.
  • FIGS. 26 (a), (b) and (c) are tables schematically showing data held in the primary storage unit 511.
  • FIG. Column 2601 shows the Java (R) program identifier
  • column 2602 shows the number of times the program indicated by the Java (R) program ended abnormally.
  • Lines 2611 and 2612 are a set of information of the Java (R) program. For example, referring to FIG.
  • the Java (R) program defined in line 2611 is a set of an identifier "301" and the number of times the program has abnormally ended "0".
  • the Java (R) program defined at line 2612 identifies the identifier "302", This is a set of the number of times "0" the gram ended abnormally.
  • FIG. 26 (a) shows the contents held before processing of S2303 in FIG. S230 in Fig. 25
  • the data held in the primary storage unit 511 changes as shown in FIG. This can be done without additional information.
  • the MA management unit main 2101 determines a workaround corresponding to the notified code, and implements a workaround for the determined cause of the abnormal termination (S2511). After that, the process from S2305 is performed.
  • the MA selection unit B2106 selects again the same program as the selection result of the MA selection unit A2103 (that is, a program that has ended abnormally).
  • the MA selection unit B2106 selects the same program as the selection result of the MA selection unit A2103 (that is, the program that terminated abnormally) again, and after N + 1 time, other programs ( For example, EPG120 2) may be selected.
  • FIG. 27 shows an operation procedure in the present embodiment.
  • the MA management unit main 2101 requests the MA selection unit B2106 to select an alternative program Then, the MA selection unit B2106 first counts the number of abnormal terminations (step S2701). That is, the content stored in the primary storage unit 511 is changed from FIG. 26 (a) to FIG. 26 (b). Next, referring to the number of times the program shown in FIG. 26 abnormally ends, it is determined whether the number of abnormal ends is equal to or more than a predetermined number (N times) (step S2702).
  • the MA selection unit B2106 selects a motor application whose Java (R) program identifier is 301 (step S2702). (S2704), and thereafter, the processes in and after S2305 are performed.
  • a program other than the monitor application whose Java (R) program identifier is 301 for example, EPG1202 is selected ( Step S2703) After that, the processing of S2305 and thereafter is performed.
  • the MA selection unit B2106 selects a monitor application whose Java (R) program identifier is 301. After that, the processes after S2305 are performed.
  • the MA management unit main 2101 sends the MA selection unit B2106 the substitute program
  • the MA selection unit B2106 first changes the contents stored in the primary storage unit 511 from FIG. 26 (b) to FIG. 26 (c).
  • the number of times the program shown in FIG. At this time, referring to column 2602 in FIG. 26 (c), it can be seen that the number of abnormal terminations so far is two.
  • the MA selection unit B2106 since the MA selection unit B2106 has already reached the predetermined number of times (in this case, two times), the MA selection unit B2106 selects a program (for example, EPG1202 or the like) other than the monitor application whose Java (R) program identifier is 301. After that, the processes after S2305 are performed.
  • a program for example, EPG1202 or the like
  • the MA selecting unit B2106 has described a case where a program to be selected is predetermined as an alternative program selection method.
  • a list of programs to be selected is viewed.
  • a method of presenting to the viewer and allowing the viewer to make a selection may be adopted.
  • FIG. 28 shows an operation procedure in the present embodiment. Note that the same parts as those in the processing shown in FIG. 23 are denoted by the same reference numerals, and description thereof is omitted.
  • the MA selection unit B2106 first lists a list of programs that can be selected as alternative programs. It is created (S2810). Next, the MA selection unit B2106 presents a list of the created programs to the viewer and prompts the selection (S2811). The MA selection unit B2106 determines an alternative program based on the viewer's selection (S2812). Thereafter, the processing of S2305 and thereafter is performed.
  • FIG. 29 is a table schematically showing an example of a list of programs that can be selected as alternative programs created in S2810.
  • Column 2901 ⁇ This is the identifier of the ava (R) program.
  • Column 2902 is the program name.
  • Lines 2911 and 2912 are a set of information of the Java (R) program.
  • the Java (R) program defined in line 2911 is a set of the identifier “301” and the program name “MA1”.
  • the Java (R) program defined in line 2912 is a set of the identifier “701” and the program name “EPG”.
  • the programs included in the list can be executed regardless of where they exist as long as they can be started.
  • FIG. 30 shows an example of a display presented to the viewer in S2810.
  • a dialog 3001 is displayed on the display 509.
  • the viewer selects a program based on the displayed list of programs. For example, select “MA1” by pressing the “1” button on the remote control.
  • the MA selecting unit B2106 is compelled by the fact that the viewer has selected the program with the identifier "301". Therefore, the MA selecting unit B2106 sets the program having the identifier "301" as an alternative program as an alternative program. decide.
  • the MA selection section B2106 will help the viewer to select the program with the identifier “701”.
  • the unit B2106 determines the EPG1202, which is the program having the identifier “701”, as the substitute program as the substitute program. [0149] Note that the present invention can be implemented using other contents as long as at least information that allows the viewer to identify the program is included.
  • the present invention can be implemented using any display form and selecting method.
  • the MA selection unit B2106 can also implement a method of determining an alternative program without waiting for a viewer's selection by satisfying a certain condition. For example, after presenting to viewers, 3
  • the MA selection unit B2106 can determine the EPG 1202, which is the program having the identifier “701”, as the alternative program as the alternative program.
  • the MA management unit main 2101 may notify the viewer of the occurrence of the abnormal end.
  • FIG. 31 shows an example of a method of notifying a viewer.
  • the notification can be made by displaying on the 7-segment LED 3102 of the terminal device main body or by turning on the lamp 3101 of the terminal device main body.
  • FIG. 32 shows an example of a display in a case where abnormal display of the monitor application is notified by displaying the display on the display 509.
  • the ⁇ Java (R) program started based on the XAIT information acquired from the head end 101 is replaced with the program in the library 1202b of the OS 1201 and can be referenced from the POD 504 3 ⁇ 4 [ava (R ) Describes the case of a special monitor application that is registered as a program and can send and receive messages to and from subprograms in POD504.
  • a Java (R) program is a program in the library 1202b of the OS 1201.
  • the Java (R) program can transmit and receive messages to and from the PPV subprogram 805, which is a subprogram in the POD 504.
  • the program in the library 1202b of the OS 1201 always operates, and even when the Java (R) program is registered,
  • the programs in the library 1202b of the OS 1201 need not be terminated. However, even in this case, if the registered ava (R) program terminates abnormally, even if the Java (R) program is executed again, it is fully expected that the abnormal termination will occur again. This will impede requests (eg watching PPV). In the present embodiment, application of the present invention to this problem will be described.
  • the program in the library 1202b of the OS 1201 can be referred to from the POD 504 instead of the program in the OS 1201. [Registration processing and deregistration processing of the [ava (R) program] will be described. The processing in the case where the Java (R) program that terminates abnormally is described.
  • FIG. 33 shows an example of XAIT information on a Java (R) program in the present embodiment.
  • the same elements as those in FIG. 20 are denoted by the same reference numerals, and description thereof will be omitted.
  • Column 3311 and column 3312 are a set of information of the Java (R) program.
  • the Java (R) program defined in column 3311 has the Java (R) program identifier "701", control information "autostart”, DSMCC identifier "1", program name "ZaZPPVlXlet”, and monitor application identifier "1". It is.
  • the Java (R) program defined in column 3312 is a set of Java (R) program identifier "702", control information "present”, DSMCC identifier "1", program name "ZbZPPV2Xlet”, and monitor application identifier "2". It is. Here, only five pieces of information are specified for Java (R) programs, but the present invention can be implemented even if more information is defined.
  • the Java (R) program "PPVlXlet” represented by the line 3311 is a program for displaying the program information of the PPV target in cooperation with the PPV subprogram 805 included in the POD 504. If the terminal device 500 does not have the Java (R) program “PPVlXlet”, the PPV subprogram 805 sends information to be displayed on the screen to the CPU 514 of the terminal device 500.
  • the dialogue display program included in the library 1202b of the OS 1201 displays a message prompting the user to purchase a program on the display 509 as shown in FIG.
  • Reference numeral 3401 denotes a dialog box which includes a message 3402, a password box 3403 for inputting a 4-digit password, an OK button 3404, and a cancel button 3405.
  • a dialog box which includes a message 3402, a password box 3403 for inputting a 4-digit password, an OK button 3404, and a cancel button 3405.
  • the user since the program contents are unknown, the user needs to confirm the program contents by referring to a book such as a program guide, which is inconvenient.
  • the (R) program “PPVlXlet” registers itself as an ava (R) program that can be referenced from the POD 504 with respect to the POD Libl 205e of the Java (R) library 1205. At the time of registration, "PPV" is also registered at the same time as the module identifier of its own Java (R) program.
  • the POD Libl 205e stores the registered contents in the secondary storage unit 510.
  • FIG. 35 is an example of a state in which the information of the [ava (R) program is stored, which is registered in the secondary storage unit 510 and can be referred to from the POD 504.
  • the data is stored in a table format, and the module identifier of the ava (R) program in column 3501 and the name of the ava (R) program in column 3504 are stored.
  • Lines 3511 and 3512 represent registered Java (R) programs.
  • Line 3511 is a set of a module identifier “PPV” and a Java (R) program name “PPVlXlet”.
  • Line 2312 is a set of a module identifier “VOD” and a Java (R) program name “VODXlet”.
  • the module identifier of the ava (R) program 3501 and the name of the Java (R) program 3504 are stored at least the module identifier of the Java (R) program and the registered ⁇ Java (R) program It is feasible if the information that can uniquely identify is stored.
  • the POD Libl205e notifies the information of the registered ⁇ Java (R) program to the POD504, so that messages can be transmitted and received between the subprogram in the POD504 and the registered ⁇ Java (R) program.
  • the PPV subprogram 805 in the POD 504 sends the contents of the program to be purchased for the PPV to the registered ⁇ Java (R) program indicated by the line 3511 in FIG. 35, and the Java (R) program executes the dialog display program.
  • the display can be provided on the display 509 as shown in FIG.
  • 3601 is a registered ⁇ Java (R) program, equivalent to program information, and a dialog display program Is displayed.
  • the POD 504 identifies the Java (R) program to which the message is sent by referring to the type of the registered ava (R) program.
  • the dialog display program of the library 1202b of the OS 1201 has the module identifier "PPV”
  • the registered Java (R) program has the same module identifier "PPV” as the dialog display program of the library 1202b of the OS 1201.
  • POD504 identifies the Java (R) program that sends and receives messages by referring to this module identifier! / Puru.
  • each subprogram of POD 504 cannot simultaneously transmit and receive messages to and from a plurality of programs having the same module identifier (that is, for each module identifier, At most one program can be sent and received by the subprogram).
  • Fig. 37 shows the POD when a Java (R) program is registered in POD Libl205e.
  • POD Libl 205e Upon receiving registration of message delivery (including at least one or both of transmission Z reception) with the Java (R) program, POD Libl 205e receives necessary information (eg, FIG. 35) (step S3701), and in step S3701, accept registration.
  • necessary information eg, FIG. 35
  • step S3701 necessary information
  • step S3702 accept registration.
  • step S3703 The module identifier of the Java (R) program and other Java registered in the secondary storage unit 510 Registration is accepted by comparing the module identifier of the (R) program and the program in the library 1201b ⁇ It is determined whether a program with the same module identifier as the module identifier of the Java (R) program exists (step S3702).
  • the POD Libl 205e stores in the target to which message delivery was performed up to that point, specifically, in the secondary storage unit 510.
  • the registered Java (R) program or the program in the OS 1201 library 1201b is notified in advance that the message delivery will be stopped (step S3703).
  • the Java (R) program and the library 1201b of the OS 1201 perform necessary processing (suspension of message delivery with the POD 504 (that is, registration of message delivery is not registered). After completion of the internal processing necessary for this, the POD Libl 205e is notified of the acknowledgment of stopping the message transmission (step S3704).
  • the POD Libl 205e that has received the acknowledgment notice is the POD 504 and the existing POD Libl 205e (which is already registered in the secondary storage unit 510 and is the object of stopping the delivery of the message with the POD 504).
  • the registration of message delivery with a program or a program in the 120 lb library of the OS 1201 is deleted (that is, unregistered) and message delivery with that program is stopped (step S3705).
  • step S3701 the registration is accepted and the Java (R) program is notified that message delivery is to be started (step S3706).
  • step S3702 POD Libl205e accepts the registration in step S3701 ⁇ a message indicating that message delivery to the Java (R) program is started. After notification (step S3706), step S3701 Pokoo! /, Accept registration ⁇ Receive message delivery with POD504 to Java (R) program, enable message delivery ( Step S3707).
  • FIG. 38 and FIG. 39 are schematic diagrams showing a change in the delivery destination of a message with POD 504 based on the flowchart of this operation (FIG. 37).
  • Figure 38 (a) shows the status of a registered Java (R) program.
  • the message delivery with POD504 is 120 lb library of OS 1201 (more specifically, dialog display program of library 1201b, for example). It has been done.
  • Arrow 3801 represents message delivery.
  • the POD 504 represented by an arrow 3801 is registered according to the flowchart of FIG. 37.
  • FIG. 39 (a) shows a state in which the Java (R) program 3911 has been registered, and message delivery with the POD 504 is being performed with the registered Java (R) program 3911.
  • Arrow 3901 represents message delivery.
  • the Java (R) program 3912 having the same module identifier as that of the Java (R) program 3911 is registered in the state of Fig. 39 (a)
  • the POD504 ⁇ Java represented by the arrow 3901 according to the flowchart of Fig. 37 is registered.
  • the delivery of the message with the (R) program 3911 is stopped, the delivery of the message with the POD504 ⁇ Java (R) program 3912 is set (arrow 3902), and the state shown in FIG. 39 (b) is reached.
  • POD Libl205e accepts registration of a Java (R) program and also accepts deletion of registration (that is, a request for non-registration).
  • FIG. 40 shows that POD Lib 1205e deletes the registration of the Java (R) program (that is, is registered in the secondary storage unit 510, and does not register the registration of message delivery with the Java (R) program).
  • 21 is a flowchart summarizing the operation of the POD Lib 1205e in the case of the above.
  • the POD Libl205e Upon receiving the deletion of the Java (R) program (step S4001), the POD Libl205e notifies the Java (R) program to be deleted of the fact that the delivery of the message is stopped (step S4002). ). After receiving the notification, the Java (R) program completes the necessary processing (the necessary internal processing before stopping the message delivery with POD504 (that is, unregistering the message delivery registration)). The POD Libl 205e is notified that the message delivery has been stopped (step S4003). The POD Libl 205e, which has received the notification of the approval, registers the message delivery to the Java (R) program registered in the secondary storage unit 510 and subject to the requested deletion of the Java (R) program.
  • the message transmission between the POD 504 and the target Java (R) program is stopped (step S4004).
  • the POD Libl 205e registers the library 1201b of the OS 1201 to receive the message delivery with the POD 504, so that the library 1201b of the POD 504 and the OS 1201 (more specifically, the deletion Message delivery to the target Java (R) program (step S4005).
  • the program having the same module identifier is executed. The same operation is possible by enabling message delivery after launching.
  • step S4005 there are other Java (R) programs registered in the secondary storage unit 510 or newly registered ⁇ Java (R) programs, and any of these Java (R) programs If you want to (or can) deliver a message with a single Java application, register to accept message delivery between POD504 and the target Java (R) program to register the target Java (R) program. It is good to enable delivery of messages!
  • FIG. 41 The processing when the Java (R) program 3811 terminates abnormally in the state of Fig. 38 (b) will be described.
  • MA management section 1205f detects the abnormal end and notifies POD Libl 205e of the abnormal end.
  • FIG. 42 is a flowchart summarizing the operation at that time. The same processes as those in FIG. 23 are denoted by the same reference numerals, and description thereof will be omitted.
  • the MA monitoring unit 2105 detects abnormal termination of the monitored application (here, the Pio ava (R) program 3811) (S2301)
  • the MA monitoring unit 2105 terminates monitoring of the abnormally terminated monitor application (S2302). )
  • S2303 the MA management unit main 2101 that an abnormal end has occurred
  • the MA management unit main 2101 notifies the POD Libl 205e of the end of the monitor application (S4204).
  • FIG. 43 is a flowchart summarizing the operation at that time.
  • the POD Libl 205e deletes the registration of the message delivery between the POD 504 and the Java (R) program (that is, makes the POD 504 and the Java (R) program unregistered), so that the POD 504 and the POD 504 are not registered.
  • the message delivery to the Java (R) program is stopped (step S4302).
  • the POD Libl 205e registers the library 1201b of the OS 1201 to accept the delivery of the message with the POD 504, thereby enabling the delivery of the message to the library 1201b of the OS 1201 (step S4304).
  • the secondary storage unit 510 stores another Java file having the same module identifier.
  • a (R) program meaning 3911 here
  • the POD Libl205e does not register the OS1201's library 1201b to receive the message with the POD504, but instead registers another Java (R) program with the same module identifier.
  • FIG. 44 is a flowchart summarizing the operation at that time. The same processes as those in FIG. 43 are denoted by the same reference numerals and description thereof will be omitted.
  • Step S4302 Stops message delivery with Java (R) program (step S4302), and checks whether another Java (R) program with the same module identifier exists! / (S4403) . If it does exist (if Yes in S4403), register the Java (R) program. This registration process follows the flowchart shown in FIG. 37, and is the process in the case of No in S3702. If there is no other Java (R) program, POD Libl205e enables delivery of messages to OS1201 library 120 lb by registering OS1201 library 1201b to accept delivery of messages to POD504. (Step S4304).
  • the PPV subprogram 805 ⁇ Java (R) program in the POD 504 is not limited to the PPV that performs S message exchange and performs operations, and the! / The present invention is also applicable to the operation of exchanging messages between such a subprogram and! / On the terminal device 500 and a proper Java (R) program.
  • the Java (R) program which is based on the format specified in the Java (R) specification, can be a mixture of a part of the form and a part of a form that can be directly executed by the CPU. It can be implemented even if it is composed only of the format!
  • the contents related to the registered Java (R) program may be stored in primary storage unit 511 stored in secondary storage unit 510.
  • the program execution device is useful for improving the stability of the operation of a digital television receiver. It can also be applied to improve the stability of steel.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Circuits Of Receivers In General (AREA)
  • Information Transfer Between Computers (AREA)
  • Retry When Errors Occur (AREA)

Abstract

 実行中のアプリケーション(プログラム)が異常終了したとしても、アプリケーションが利用できなることを防止し、利用者の利便性を向上することができるプログラム実行装置を提供する。MA管理部(1205f)は、初期化サブプログラムからの指示を受け付け、MA管理部(1205f)内の他の構成要素を制御するMA管理部メイン(2101)、ヘッドエンドから送られてきたXAITを解析するXAIT取得解析部(2102)、XAITの解析結果に基づいて起動すべきプログラムを選択するMA選択部A(2103)、指定されたプログラムの起動を行うMA起動部(2104)、指定されたプログラムの動作状況を監視し、異常終了が発生した場合に通知するMA監視部(2105)、および、代替プログラムを選択するMA選択部B(2106)を備える。                                                                                 

Description

明 細 書
プログラム実行装置
技術分野
[0001] 本発明は、プログラムを実行させ、その動作を管理するプログラム実行装置に関す る。特に、デジタルテレビにおいて、プログラムが異常終了した際に代替プログラムを 実行させること〖こ関する。
背景技術
[0002] 近年、各国において、デジタルテレビ向け仕様が策定されつつあり、それに伴い、 各仕様に準拠する STB (Set Top Box)が開発されている。
[0003] 北米ケーブル放送向けの仕様である OCAP1. 0仕様(OCAP 1. 0 Profile OC
-SP-OCAP1. 0—IF— 109— 031121)では、映像および音声を各家庭に配信 するだけでなぐそれらに付随するアプリケーションも配信することで、さまざまなサー ビス (例えばインタラクティブ番組)を提供することが可能となる。さら〖こ、放送事業者 が用意したアプリケーション (例えば電子番組表)を STB上で動作させることも可能と している。
[0004] 特許文献 1の「データのダウンロード」では、放送波(つまり MPEG2トランスポートス トリーム)から、放送に関連するアプリケーションをダウンロードして実行する方法につ いて述べられている。この特許文献 1に記載の技術により、各家庭に映像や音声だ けでなぐアプリケーションも配信することが可能となる。
[0005] また、特許文献 2の「アプリケーションライフサイクルに従ってアプリケーションを管理 するための方法および装置」では、アプリケーションの動作管理技術について述べら れている。 OCAP1. 0仕様では、特許文献 2に記載の技術を用いることで、配信され た個々のアプリケーションのライフサイクルを管理すること可能としている。
[0006] また、 OCAP1. 0仕様では、 STB起動時に、放送事業者が用意したアプリケーショ ンが存在する場合において、その放送事業者が用意したアプリケーションを起動しな ければならず、かつその放送事業者が用意したアプリケーションが異常終了した場 合は、再起動を試みることと規定されている。 [0007] 従来の技術を用いることにより、アプリケーションをダウンロードおよび実行させた後 、そのアプリケーションのライフサイクルを監視し、異常終了を検知することが可能で あり、さらに、異常終了したアプリケーションを再実行させることが可能である。
特許文献 1:特表 2001— 519627号公報
特許文献 2:特表 2003 - 504753号公報
発明の開示
発明が解決しょうとする課題
[0008] し力しながら、従来の技術においては、異常終了を起こしたアプリケーションを再実 行させるため、再度アプリケーションが異常終了を起こす確率が高ぐ STBを利用し て番組を視聴する視聴者に対する利便性を損ねる要因となっていた。
[0009] そこで、本発明は上記の事情に鑑みてなされたものであり、実行中のアプリケーショ ン (プログラム)が異常終了したとしても、アプリケーションが利用できなることを防止し 、利用者の利便性を向上することができるプログラム実行装置を提供することを目的 とする。
課題を解決するための手段
[0010] 上記目的を達成するため、本発明に係るプログラム実行装置は、プログラムを実行 するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すベ きプログラムとして選択する第 1プログラム選択手段と、実行中のプログラムの動作状 況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記 プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを 実行すべきプログラムとして選択する第 2プログラム選択手段と、前記第 1プログラム 選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手 段によって実行中の前記プログラムの異常終了が検知された場合、前記第 2プロダラ ム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴 とする。これによつて、実行中のプログラムが異常終了したとしても、代替プログラムと して、同じ種類のプログラムを実行することで、常にプログラムが動作している状態を 保つことが可能となる。ここで、同じ種類のプログラムとは、例えば電子番組表を表示 する等の機能が同一であり、利用者による操作性、または表示する情報の情報量や 表示形式などの表示性等が相違するプログラム等である。なお、同じ種類のプロダラ ムには、異常終了したプログラムと同じプログラムも含むものとする。
[0011] また、前記第 2プログラム選択手段は、第 1プログラム選択手段によって選択された プログラムと異なるプログラムを実行すべきプログラムとして選択してもよ 、。これによ つて、代替プログラムとして、異常終了したプログラムと同じ種類で、かつ異なるプロ グラムを実行することできる。
[0012] また、前記プログラム実行装置は、さらに、前記プログラム監視手段によって異常終 了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、前記 異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、前記第 2 プログラム選択手段は、第 1プログラム選択手段によって選択されたプログラムと同じ プログラムを実行すべきプログラムとして選択し、前記実行手段は、前記回避策実行 手段によって前記回避策が実行された後、前記第 2プログラム選択手段によって選 択されたプログラムを実行してもよい。これによつて、異常終了したプログラムと同じプ ログラムを再び実行することできる。
[0013] また、前記第 2プログラム選択手段は、所定条件を満たさない場合、第 1プログラム 選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとし て選択し、前記所定条件を満たす場合、第 1プログラム選択手段によって選択された プログラムと異なるプログラムを実行すべきプログラムとして選択してもよ 、。これによ つて、一定期間だけ最初と同じプログラムを起動し、その後は別のプログラムを実行さ せることが可能となる。
[0014] また、前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知する と、異常終了の発生を利用者に提示してもよい。これによつて、利用者は実行中のプ ログラムの異常終了が発生したことを認識することが可能となる。
[0015] また、前記第 2プログラム選択手段は、利用者の指示に基づいて前記プログラムを 選択してもよい。これによつて、利用者が指示したプログラムを実行することが可能と なる。
[0016] また、前記第 2プログラム選択手段は、選択可能なプログラムの候補を提示するとと もに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択し てもよい。これによつて、利用者が選択したプログラムを実行することが可能となる。一 方、利用者は実行させるプログラムを決定することが容易になる。
[0017] また、前記第 2プログラム選択手段は、利用者力 の選択が所定の時間内に行わ れない場合、所定のプログラムを前記プログラムとして選択してもよい。これによつて、 利用者からの選択が所定の時間内に行われなくても、プログラムを選択することが可 能となる。
[0018] なお、本発明は、このようなプログラム実行装置として実現することができるだけでな ぐこのようなプログラム実行装置が備える特徴的な手段をステップとするプログラム 実行方法として実現したり、それらのステップをコンピュータに実行させるプログラムと して実現したりすることもできる。そして、そのようなプログラムは、 CD— ROM等の記 録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもな い。
発明の効果
[0019] 本発明に係るプログラム実行装置によれば、実行中のプログラムが異常終了したと しても、代替プログラムとして、異常終了したプログラムと同じプログラム、または同じ 種類のプログラムを実行することで、常にプログラムが動作して 、る状態を保つことが 可能となる。よって、アプリケーション (プログラム)が利用できなることを防止し、利用 者の利便性を向上することができる。
図面の簡単な説明
[0020] [図 1]本発明に係るケーブルテレビシステムの実施の形態 1の構成図である。
[図 2]本発明に係るケーブルテレビシステムにお 、てヘッドエンドと端末装置間の通 信に使用される周波数帯域の使い方の一例を示す図である。
[図 3]本発明に係るケーブルテレビシステムにお 、てヘッドエンドと端末装置間の通 信に使用される周波数帯域の使い方の一例を示す図である。
[図 4]本発明に係るケーブルテレビシステムにお 、てヘッドエンドと端末装置間の通 信に使用される周波数帯域の使い方の一例を示す図である。
[図 5]本発明に係るケーブルテレビシステムにお 、て端末装置の構成図である。
[図 6]本発明に係るケーブルテレビシステムにお ヽて端末装置の外観の一例を示す 図である。
[図 7]本発明に係る PODのハードウェア構成の構成図である。
圆 8]本発明に係る PODが保存するプログラム構成の構成図である。
[図 9]MPEG規格で定義されているパケットの構成図である。
[図 10]MPEG2トランスポートストリームの一例を示す図である。
[図 11]入力部をフロントパネルで構成した場合の外観の一例を示す図である。
圆 12]本発明に係る端末装置が保存するプログラム構成の構成図である。
[図 13] (a)本発明に係るディスプレイの表示の一例を示す図である。(b)本発明に係 るディスプレイの表示の一例を示す図である。
圆 14]本発明に係る 2次記憶部が保存する情報の一例を示す図である。
圆 15]本発明に係る 1次記憶部が保存する情報の一例を示す図である。
[図 16]本発明に係る MPEG2規格が規定する PATの内容を表す模式図である。
[図 17]本発明に係る MPEG2規格が規定する PMTの内容を表す模式図である。
[図 18]本発明に係る OCAP1. 0仕様が規定する AITの内容を表す模式図である。
[図 19]本発明に係る DSMCC方式で送信されるファイルシステムを表す模式図であ る。
[図 20]本発明に係る XAITの内容を表す模式図である。
[図 21]本発明に係る MA管理部の構成図である。
圆 22]実施の形態 1において、 MA管理部がモニタアプリの起動を行う際の動作を表 すフローチャートである。
[図 23]実施の形態 1において、起動されたモニタアプリが、予期せぬタイミングで異常 終了した際の動作を表すフローチャートである。
[図 24]実施の形態 1において、 MA管理部が、モニタアプリが異常終了した場合、異 常終了の内容を保存および送信する際の動作を表すフローチャートである。
[図 25]実施の形態 2にお 、て、 MA選択部 Bが MA選択部 Aの選択結果と同じプログ ラムを再度選択する際の動作を表すフローチャートである。
[図 26] (a)実施の形態 2において、 1次記憶部に保持しているデータを模式的に表し た図である。(b)実施の形態 2において、 1次記憶部に保持しているデータを模式的 に表した図である。(c)実施の形態 2において、 1次記憶部に保持しているデータを 模式的に表した図である。
[図 27]実施の形態 3において、 N回までは、 MA選択部 Bが MA選択部 A2103の選 択結果と同じプログラムを再度選択し、 N+ 1回目以降は、他のプログラムを選択際 の動作を表すフローチャートである。
圆 28]実施の形態 4において、選択候補となるプログラムの一覧を視聴者に提示し、 視聴者に選択させる際の動作を表すフローチャートである。
[図 29]実施の形態 4にお 、て、代替プログラムとして選択可能なプログラムの一覧の 一例を模式的に表した図である。
[図 30]実施の形態 4において、視聴者に提示される表示の一例を示す図である。
[図 31]実施の形態 5において、視聴者に対する通知方法の一例を示す図である。
[図 32]実施の形態 5において、視聴者に対する通知方法の一例を示す図である。
[図 33]本発明に係る XAITの内容を表す模式図である。
[図 34]本発明に係る番組購入を促すメメッセージの一例である。
[図 35]本発明に係る Java (R)プログラムの情報を保存して 、る状態の一例である。
[図 36]本発明に係るディスプレイの表示の一例である。
[図 37]POD Libに Java (R)プログラムが登録される場合における POD Libの動作 をまとめたフローチャートである。
[図 38]本発明に係る PODとのメッセージの配送先の変化を表す模式図である。
[図 39]本発明に係る PODとのメッセージの配送先の変化を表す模式図である。
[図 40]本発明に係る POD Lib力java (R)プログラムの登録を削除する場合におけ る POD Libの動作をまとめたフローチャートである。
[図 41]本発明に係る Java (R)プログラムが異常終了した場合の処理を行う構成図で ある。
[図 42]本発明に係る Java (R)プログラムが異常終了した場合の処理を表すフローチ ヤートである。
[図 43]本発明に係る Java (R)プログラムが異常終了した場合の処理を表すフローチ ヤートである。 [図 44]本発明に係る Java (R)プログラムが異常終了した場合の処理を表すフローチ ヤートである。
符号の説明
1200 プログラム
1201 OS
1201a カーネル
1201b ライブラリ
1202 EPG
1202a 番組表示部
1202b 再生部
1203 VM
1204 サービスマネージャ
1205 ライブラリ
1205a JMF
1205b AM
1205c Tuner
1205d CA
1205e POD Lib
1205f MA管理部
発明を実施するための最良の形態
[0022] 以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態 1)
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明す る。図 1は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッド エンド 101及び 3個の端末装置 Al l l、端末装置 B112、端末装置 C113で構成され る。本実施の形態では、 1つのヘッドエンドに対して 3つの端末装置が結合されてい るが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
[0023] ヘッドエンド 101は、複数の端末装置に対して映像 '音声'データ等の放送信号を 送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、へ ッドエンド 101と端末装置 Al l 1、端末装置 B112、端末装置 C113間の伝送に用い られる周波数帯域は、分割して用いられる。図 2は、周波数帯域の分割の一例を示 す表である。周波数帯域は、 Out Of Band (略称 OOB)と In— Bandの 2種類に大 別される。 5〜130MHzが OOBに割り当てられ、主にヘッドエンド 101と端末装置 A 111、端末装置 B112、端末装置 C113間のデータのやり取りに使用される。 130M Hz〜864MHzはIn—Bandに割り当てられ、主として、映像'音声を含む放送チャン ネルに使用される。 OOBでは QPSK変調方式力 In— Bandは QAM64変調方式 が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので 、詳細な説明は省略する。図 3は、 OOB周波数帯域のさらに詳細な使用の一例であ る。 70MHz〜74MHzはヘッドエンド 101からのデータ送信に使用され、全ての端 末装置 Al l 1、端末装置 B112、端末装置 C113が、ヘッドエンド 101から同じデータ を受け取ることになる。一方、 10. 0MHz〜10. 1MHzは端末装置 A111からヘッド エンド 101へのデータ送信に使用され、 10. lMHz〜10. 2MHzは端末装置 B112 力らヘッドエンド 101へのデータ送信に使用され、 10. 2MHz〜10. 3MHzは端末 装置 C113からヘッドエンド 101へのデータ送信に使用される。これにより、各端末装 置固有のデータを各端末装置 Al l l、端末装置 B112、端末装置 C113からへッドエ ンド 101に送信することができる。図 4は、 In— Bandの周波数帯に対する使用の一 例である。 150〜 156MHzと 156〜 162MHzはそれぞれテレビチャンネル 1とテレ ピチャンネル 2に割り当てられ、以降、 6MHz間隔でテレビチャンネルが割り当てられ ている。 310MHz以降は、 1MHz単位でラジオチャンネルに割り当てられている。こ れらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよ い。デジタル放送の場合は、 MPEG2仕様に基づいたトラスポートパケット形式で伝 送され、音声や映像に加え、各種データ放送用データも送信することができる。 ヘッドエンド 101は、これらの周波数帯域に適切な放送信号を送信するため、 QPS K変調部や QAM変調部等を有する。また、端末装置力ものデータを受信するため、 QPSK復調器を有する。また、ヘッドエンド 101は、これら変調部及び復調部に関連 する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わる ので、詳細な説明は省略する。
[0025] 端末装置 Al l l、端末装置 B112、端末装置 C113は、ヘッドエンド 101からの放 送信号を受信し再生する。また、ヘッドエンド 101に対して、各端末装置固有のデー タを送信する。 3つの、端末装置は本実施の形態では同じ構成を取る。
[0026] 図 5は、端末装置のハードウェア構成を表すブロック図である。端末装置 500は、 Q AM復調部 501、 QPSK復調部 502、 QPSK変調部 503、 TSデコーダ 505、ォー ディォデコーダ 506、スピーカ 507、ビデオデコーダ 508、ディスプレイ 509、 2次記 憶部 510、 1次記憶部 511、 ROM512、入力部 513、 CPU514で構成される。また 端末装置 500には、 POD504が着脱できる。
[0027] 図 6は、端末装置 500の外観の一例である薄型テレビである。
薄型テレビの筐体 601は、 POD504を除く、端末装置 500の構成要素をすベて内 蔵している。
[0028] ディスプレイ 602は、図 5におけるディスプレイ 509に相当する。
フロントパネル部 603は複数のボタンで構成され、図 5の入力部 513に相当する。
[0029] 信号入力端子 604は、ヘッドエンド 101との信号の送受信を行うためにケーブル線 を接続する。また、信号入力端子 604は、図 5の QAM復調部 501、 QPSK復調部 5
02、 QPSK変調部 503と接続されている。
[0030] PODカード 605は、図 5の POD504に相当する。 POD504は、図 6の PODカード
605のように、端末装置 500とは独立した形態を取り、端末装置 500に着脱可能とな つている。 POD504の詳細は後述する。
[0031] 挿入スロット 606は、 PODカード 605が挿入される挿入スロットである。
図 5を参照して、 QAM復調部 501は、 CPU514から指定された周波数を含むチュ 一-ング情報で、ヘッドエンド 101で QAM変調され送信されてきた信号を復調し、 P
OD504に引き渡す。
[0032] QPSK復調部 502は、 CPU514から指定された周波数を含むチューニング情報で 、ヘッドエンド 101で QPSK変調され送信されてきた信号を復調し、 POD504に引き 渡す。
[0033] QPSK変調部 503は、 CPU514から指定された周波数を含む変調情報で、 POD 504から渡された信号を QPSK変調し、ヘッドエンド 101に送信する。
[0034] POD504は、図 6のように端末装置本体 500から着脱可能な形態をして 、る。端末 本体 500と POD504の接続インターフェースは、 OpenCable (R) HOST— POD Interface Specification (OC— SP— HOSTPOD— IF— 112— 030210)及び、 この仕様書力も参照されている仕様書で定義されている。ここでは、詳細は省略し、 本発明に関する部分のみを解説する。
[0035] 図 7は、 POD504の内部構成を表すブロック図である。 POD504は、第 1デスクラ ンブラ部 701、第 2デスクランブラ部 702、スクランブラ部 703、第 1記憶部 704、第 2 記憶部 705、 CPU706で構成される。
[0036] 第 1デスクランブラ部 701は、 CPU706からの指示により、端末装置 500の QAM 復調部 501から暗号化された信号を受け取り、復号を行う。そして、復号された信号 を端末装置 500の TSデコーダ 505に送る。デコードに必要な鍵などの情報は CPU 706から適宜与えられる。具体的には、ヘッドエンド 101はいくつかの有料チャンネ ルを放送している。ユーザが、この有料チャンネルを購買すると、第 1デスクランブラ 部 701は、 CPU706から鍵等の必要な情報を受け取りデスクランブルすることで、ュ 一ザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられな ヽ 場合は、第 1デスクランブラ部 701は、デスクランブルを行わず、受け取った信号をそ のまま、 TSデコーダ 505に送る。
[0037] 第 2デスクランブラ部 702は、 CPU706からの指示により、端末装置 500の QPSK 復調部 502から暗号ィ匕された信号を受け取り、復号を行う。そして、復号されたデー タを CPU706に引き渡す。
[0038] スクランブラ部 703は、 CPU706力らの指示により、 CPU706から受け取ったデー タを暗号ィ匕し、端末装置 500の QPSK変調部 503に送る。
[0039] 第 1記憶部 704は、具体的には RAM等の一次記憶メモリで構成され、 CPU706が 処理を行う際、一時的にデータを保存するために使用される。
[0040] 第 2記憶部 705は、具体的にはフラッシュ ROM等の 2次記憶メモリで構成され、 CP U706が実行するプログラムを格納し、また、電源 OFFになっても消去されては困る データの保存に使用される。 [0041] CPU706は、第 2記憶部 705が記憶するプログラムを実行する。プログラムは複数 のサブプログラムで構成される。図 8は、第 2記憶部 705が記憶するプログラムの一例 である。図 8では、プログラム 800は、メインプログラム 801、初期化サブプログラム 80 2、ネットワークサブプログラム 803、再生サブプログラム 804、 PPVサブプログラム 80 5等複数のサブプログラムで構成されて 、る。
[0042] ここで PPVとは Pay Per Viewの略であり、映画など特定の番組を有料で視聴で きるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがへッ ドエンド 101に通知され、スクランブルが解除され、視聴することが出来る。この視聴 により、ユーザは後日、購入代金を支払うものである。
[0043] メインプログラム 801は、 CPU706が電源投入時に最初に起動するサブプログラム であり、他のサブプログラムの制御を行う。
[0044] 初期化サブプログラム 802は、電源投入時にメインプログラム 801によって起動され 、端末装置 500との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、 OpenCable (R) HOST— POD Interface Specification (OC - SP - HOST POD— IF— 112— 030210)及び、この仕様書から参照されている仕様書で定義さ れている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を 紹介する。電源が投入されると、初期化サブプログラム 802は、第 2記憶部 705が記 憶する第 1の周波数を端末装置 500の CPU514を通して、 QPSK復調部 502に通 知する。 QPSK復調部 502は、与えられた第 1の周波数でチューニングを行い、信号 を第 2デスクランブラ部 702に送る。また、初期化サブプログラム 802は、第 2記憶部 7 05が記憶する第 1の鍵等の復号情報を第 2デスクランブラ部 702に与える。その結果 、第 2デスクランブラ部 702は、デスクランブルを行い、初期化サブプログラム 802を 実行する CPU706に引き渡す。よって、初期化サブプログラム 802は情報を受け取 ることができる。本実施の形態では、初期化サブプログラム 802はネットワークサブプ ログラム 803を通して情報を受け取ることとする。詳細は後述する。
[0045] また、初期化サブプログラム 802は、第 2記憶部 705が記憶する第 2の周波数を端 末装置 500の CPU514を通して、 QPSK変調部 503に通知する。初期化サブプログ ラム 802は第 2記憶部 705が記憶する暗号ィ匕情報をスクランブラ部 703に与える。初 期化サブプログラム 802が送信した 、情報を、ネットワークサブプログラム 803を介し て、スクランブラ部 703に与えると、スクランブラ部 703は、与えられた暗号化情報を 用いて、データを暗号ィ匕し、端末装置 500の QPSK変調部 503に与える。 QPSK変 調部 503は、与えられた暗号ィ匕された情報を変調し、ヘッドエンド 101に送信する。
[0046] この結果、初期化サブプログラム 802は、端末装置 500、第 2デスクランブラ部 702 、スクランブラ部 703、ネットワークサブプログラム 803を通して、ヘッドエンド 101と双 方向通信を行うことができる。
[0047] また、初期化サブプログラム 802は、ヘッドエンド 101から送られてくる特殊なプログ ラム情報を元に特権的なプログラムの起動を行う。詳細については後述する。
[0048] ネットワークサブプログラム 803は、メインプログラム 801、初期化サブプログラム 80 2等の複数のサブプログラム力も使用される、ヘッドエンド 101との双方向通信を行う ためのサブプログラムである。具体的には、ネットワークサブプログラム 803を使用す る他のサブプログラムに対して、 TCPZIPによって、ヘッドエンド 101と双方向通信を 行っているように振舞う。 TCP/IPは、複数の装置間で情報交換を行うためのプロト コルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプロダラ ム 803は、電源投入時に初期化サブプログラム 802に起動されると、予め第 2記憶部 705力 S記憶して 、る POD504を識別する識別子である MACアドレス(Media Acc ess Controlアドレスの略)を、端末装置 500を通してヘッドエンド 101に通知し、 IP アドレスの取得を要求する。ヘッドエンド 101は、端末装置 500を介して POD504に I Pアドレスを通知し、ネットワークサブプログラム 803は、 IPアドレスを第 1記憶部 704 に記憶する。以降、ヘッドエンド 101と POD504は、この IPアドレスを、 POD504の 識別子として使用し、通信を行う。
[0049] 再生サブプログラム 804は、第 2記憶部 705が記憶する第 2の鍵等の復号情報や、 端末装置 500から与えられる第 3の鍵等の復号情報を第 1デスクランブラ部 701に与 えて、デスクランブルを可能にする。また、ネットワークサブプログラム 803を通して、 第 1デスクランブラ部 701に入力されている信号力 PPVチャンネルであることの情 報を受け取る。 PPVチャンネルと知ったときは、 PPVサブプログラム 805を起動する。
[0050] PPVサブプログラム 805は、起動されると、端末装置 500に番組の購入を促すメッ セージを表示し、ユーザの入力を受け取る。具体的には、端末装置 500の CPU514 に画面に表示したい情報を送ると、端末装置 500の CPU514上で動作するプロダラ ムカ 端末装置 500のディスプレイ 509上にメッセージを表示する。ユーザは、端末 装置 500の入力部 513を通して暗証番号を入力すると、端末装置 500の CPU514 力 それを受け取り、 POD504の CPU706上で動作する PPVサブプログラム 805に 通知する。 PPVサブプログラム 805は、受け取った暗証番号をネットワークサブプロ グラム 803を通してヘッドエンド 101に送信する。ヘッドエンド 101は、暗証番号が正 しければ、復号に必要な第 4の鍵などの復号ィ匕情報をネットワークサブプログラム 80 3を介して、 PPVサブプログラム 805に通知する。 PPVサブプログラム 805は受け取 つた第 4の鍵などの復号ィ匕情報を第 1デスクランブラ部 701に与え、第 1デスクランプ ラ部 701は、入力されて 、る信号をデスクランブルする。
[0051] 図 5を参照して、 TSデコーダ 505は、 POD504から受け取った信号のフィルタリン グを実施し、必要なデータをオーディオデコーダ 506及びビデオデコーダ 508、 CP U514に引き渡す。ここで、 POD504から来る信号は MPEG2トランスポートストリー ムである。 MPEG2トランスポートストリームの詳細は MPEG規格書 ISOZIEC138 18— 1に記載されており、本実施の形態では詳細は省略する。 MPEG2トランスポー トストリームは、複数の固定長パケットで構成され、各パケットには、パケット IDが振ら れている。図 9はパケットの構成図である。 900はパケットであり、固定長の 188バイト で構成される。先頭 4バイトがヘッダー 901で、パケットの識別情報を格納しており、 残り 184バイトがペイロード 902で、送信したい情報を含んでいる。 903は、ヘッダー 901の内訳である。先頭から 12ビット目〜24ビット目までの 13ビットにパケット IDが 含まれている。図 10は送られてくる複数のパケットの列を表現した模式図である。パ ケット 1001は、ヘッダーにパケット ID「1」を持ち、ペイロードには映像 Aの 1番目の情 報が入っている。ノ ケット 1002は、ヘッダーにパケット ID「2」を持ち、ペイロードには 音声 Aの 1番目の情報が入っている。ノケット 1003は、ヘッダーにパケット ID「3」を 持ち、ペイロードには音声 Bの 1番目の情報が入っている。
[0052] ノケット 1004は、ヘッダーにパケット ID「1」を持ち、ペイロードには映像 Aの 2番目 の情報が入っており、これはパケット 1001の続きになっている。同様にノ ケット 1005 、 1026、 1027も他のパケットの後続データを格納している。このように、同じパケット I Dを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現す ることがでさる。
[0053] 図 10を参照して、 CPU514がパケット ID「1」と出力先として「ビデオデコーダ 508」 を TSデコーダ 505に指示すると、 TSデコーダ 505は POD504から受け取った MPE G2トランスポートストリームからパケット ID「1」のパケットを抽出し、ビデオデコーダ 50 8に引き渡す。図 10においては、映像データのみをビデオデコーダ 508に引き渡す ことになる。同時に、 CPU514がパケット 10「2」と「ォーディォデコーダ506」を丁3デ コーダ 505に指示すると、 TSデコーダ 505は POD504から受け取った MPEG2トラ ンスポートストリームからパケット ID「2」のパケットを抽出し、オーディオデコーダ 506 に引き渡す。図 10においては、音声データのみをオーディオデコーダ 506に引き渡 すことになる。
[0054] このパケット IDに応じて必要なパケットだけを取り出す処理力 TSデコーダ 505が 行うフィルタリングである。 TSデコーダ 505は CPU514から指示された複数のフィル タリングを同時に実行することができる。
[0055] 図 5を参照して、オーディオデコーダ 506は、 TSデコーダ 505から与えられた MPE
G2トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デ ジタル—アナログ変換を行いスピーカ 507に出力する。
[0056] スピーカ 507は、オーディオデコーダ 506から与えられた信号を音声出力する。
ビデオデコーダ 508は、 TSデコーダ 505から与えられた MPEG2トランスポートスト リームのパケットに埋め込まれたビデオデータを連結し、デジタル—アナログ変換を 行いディスプレイ 509に出力する。
[0057] ディスプレイ 509は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ 5
08から与えられたビデオ信号を出力したり、 CPU514から指示されたメッセージを表 示したりする。
[0058] 2次記憶部 510は、具体的には、フラッシュメモリーゃノヽードディスク等で構成され、 CPU514から指示されたデータやプログラムを保存したり削除したりする。また、保存 されているデータやプログラムは CPU514に参照される。保存されているデータゃプ ログラムは、端末装置 500の電源が切断された状態でも保存しつづける。
[0059] 1次記憶部 511は、具体的には、 RAM等で構成され、 CPU514から指示されたデ ータゃプログラムを一次的に保存したり削除したりする。また、保存されているデータ やプログラムは CPU514に参照される。保存されているデータやプログラムは、端末 装置 500の電源が切断された際に、抹消される。
[0060] ROM512は、書き換え不可能なメモリーデバイスであり、具体的には ROMや CD
-ROM, DVDなどで構成される。 ROM512は、 CPU514が実行するプログラムが 格納されている。
[0061] 入力部 513は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入 力を受け付ける。図 11は、フロントパネルで入力部 513を構成した場合の一例である 。 1100はフロントパネルであり、図 6のフロントパネル部 603に相当する。フロントパ ネル 1100は 7つのボタン、上カーソルボタン 1101、下カーソルボタン 1102、左カー ソルボタン 1103、右カーソルボタン 1104、 OKボタン 1105、取消ボタン 1106、 EP Gボタン 1107を備えている。ユーザがボタンを押下すると、押下されたボタンの識別 子が、 CPU514に通知される。
[0062] CPU514は、 ROM512が記憶するプログラムを実行する。実行するプログラムの 指示に従い、 QAM復調部 501、 QPSK復調部 502、 QPSK変調部 503、 POD50 4、 TSデコーダ 505、ディスプレイ 509、 2次記憶部 510、 1次記憶部 511、 ROM51 2を制御する。
[0063] 図 12は、 ROM512に記憶され、 CPU514に実行されるプログラムの構成図の一 例である。
[0064] プログラム 1200は、複数のサブプログラムで構成され、具体的には OS1201、 EP G 1202、 Java (R) VM1203 (以後 VM 1203と称す)、サービスマネージャ 1204、 Ja va (R)ライブラリ 1205 (以後ライブラリ 1205と称す)で構成される。
[0065] OS1201は、端末装置 500の電源が投入されると、 CPU514が起動するサブプロ グラムである。 OS1201は、オペレーティングシステムの略であり、 Linux等が一例で ある。 OS1201は、他のサブプログラムを平行して実行するカーネル 1201a及びライ ブラリ 1201bで構成される公知の技術の総称であり、詳細な説明は省略する。本実 施の形態にお ヽては、 OS1201のカーネノレ 1201aは、 EPG1202と VM1203をサ ブプログラムとして実行する。また、ライブラリ 120 lbは、これらサブプログラムに対し て、端末装置 500が保持する構成要素を制御するための複数の機能を提供する。
[0066] 機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブ プログラム力 周波数を含むチューニング情報を受け取り、それを QAM復調部 501 に引き渡す。 QAM復調部 501は与えられたチューニング情報に基づき復調処理を 行い、復調したデータを POD504に引き渡すことができる。この結果、他のサブプロ グラムはライブラリ 1201bを通して QAM復調器を制御することができる。
[0067] EPG1202は、ユーザに番組一覧を表示及び、ユーザからの入力を受け付ける番 組表示部 1202aと、チャンネル選局を行う再生部 1202bで構成される。ここで、 EPG は Electric Program Guideの略である。 EPG1202は、端末装置 500の電源が 投入されると、カーネル 1201aによって起動される、起動された EPG1202の内部で は、番組表示部 1202aが端末装置 500の入力部 513を通して、ユーザからの入力を 待つ。ここで、入力部 513が図 11で示されるフロントパネルで構成されている場合、 ユーザが、入力部 513の EPGボタン 1107を押下すると、 EPGボタンの識別子が CP U514に通知される。 CPU514上で動作するサブプログラムである EPG 1202の番 組表示部 1202aは、この識別子を受け取り、番組情報をディスプレイ 509に表示する 。図 13 (a)及び (b)は、ディスプレイ 509に表示された番組表の一例である。図 13 (a )を参照して、ディスプレイ 509には、格子状に番組情報が表示されている。列 1301 には、時刻情報が表示されている。列 1302には、チャンネル名「チャンネル 1」と、列 1301の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル 1」 では、 9 : 00〜: L0 : 30に番組「ニュース 9」が放映され、 10 : 30〜12 : 00は「映画^ A」が放映されることを表す。列 1303も列 1302同様、チャンネル名「チャンネル 2」と 、列 1301の時刻に対応する時間帯に放映される番組が表示されている。 9 : 00〜11 : 00に番組「映画 BBB」が放映され、 11: 00〜 12: 00は「ニュース 11」が放映される 。 1330は、カーソルである。カーソル 1330は、フロンドノネル 1100の左カーソル 11 03と右カーソル 1104を押下すると移動する。図 13 (a)の状態で、右カーソル 1104 を押下すると、カーソル 1330は右に移動し、図 13 (b)のようになる。また、図 13 (b) の状態で、左カーソル 1103を押下すると、カーソル 1330は左に移動し、図 13 (a)の ようになる。
[0068] 図 13 (a)の状態で、フロントパネル 1100の OKボタン 1105が押下されると、番組表 示部 1202aは、「チャンネル 1」の識別子を再生部 1202bに通知する。図 13 (b)の状 態で、フロントパネル 1100の OKボタン 1105が押下されると、番組表示部 1202aは 、「チャンネル 2」の識別子を再生部 1202bに通知する。
[0069] また、番組表示部 1202aは、表示する番組情報を、 POD504を通してヘッドエンド 101から定期的に、 1次記憶部 511に記憶しておく。一般的に、ヘッドエンドからの番 組情報の取得は時間が掛かる。入力部 513の EPGボタン 1107が押下された時、 1 次記憶部 511に予め保存された番組情報を表示することで、素早く番組表を表示す ることがでさる。
[0070] 再生部 1202bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生す る。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、 2次記憶部 5 10に予め格納されている。図 14は 2次記憶部 510に格納されているチャンネル情報 の一例である。チャンネル情報は表形式で格納されている。列 1401は、チャンネル の識別子である。列 1402は、チャンネル名である。列 1403はチューニング情報であ る。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、 QAM復 調部 501に与える値である。列 1404はプログラムナンバーである。プログラムナンパ 一とは、 MPEG2規格で規定されている PMTを識別するための番号である。 PMTに 関しては、後述する。行 1411〜1414の各行は、各チャンネルの識別子、チャンネ ル名、チューニング情報の組となる。行 1411は識別子が「1」、チャンネル名が「チヤ ンネル 1」、チューニング情報に周波数「150MHz」、プログラムナンバーが「101」を 含む組となっている。再生部 1202bは、チャンネルの再生を行うため、受け取ったチ ヤンネルの識別子をそのままサービスマネージャに引き渡す。
[0071] また、再生部 1202bは、再生中に、ユーザがフロントパネル 1100の上カーソル 11 01と下カーソル 1102を押下すると、入力部 513力ら CPU514を通して、押下された 通知を受け取り、再生しているチャンネルを変更する。まず、再生部 1202bは、 1次 記憶部 511に現在再生中のチャンネルの識別子を記憶する。図 15 (a) (b)及び (c) は、 1次記憶部 511に保存しているチャンネルの識別子の例である。図 15 (a)では識 別子「3」が記憶されており、図 14を参照し、チャンネル名「TV 3」のチャンネルが再 生中であることを示す。図 15 (a)の状態で、ユーザが上カーソル 1101を押下すると 再生部 1202bは、図 14のチャンネル情報を参照し、表中の前のチャンネルであるチ ヤンネル名「チャンネル 2」のチャンネルに再生を切り変えるため、サービスマネージ ャにチャンネル名「チャンネル 2」の識別子「2」を引き渡す。同時に、 1次記憶部 511 に記憶されているチャンネル識別子「2」に書き換える。図 15 (b)は、チャンネル識別 子が書き換えられた状態を表す。また、図 15 (a)の状態で、ユーザが下カーソル 110 2を押下すると再生部 1202bは、図 14のチャンネル情報を参照し、表中の次のチヤ ンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サー ビスマネージャにチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、 1次 記憶部 511に記憶されているチャンネル識別子「4」に書き換える。図 15 (c)は、チヤ ンネル識別子が書き換えられた状態を表す。
[0072] VM1203は、 Java (R)言語で記述されたプログラムを逐次解析し実行する Java (R )バーチャルマシンである。 Java (R)言語で記述されたプログラムはバイトコードと呼 ばれる、ハードウェアに依存しない中間コードにコンパイルされる。 Java (R)バーチヤ ルマシンは、このバイトコードを実行するインタープリタである。また、一部の Java (R) バーチャルマシンは、バイトコードを CPU514が理解可能な実行形式に翻訳してか ら、 CPU514に引渡し、実行することも行う。 VM1203は、カーネル 1201aに実行す る Java (R)プログラムを指定され起動される。本実施の形態では、カーネル 1201aは 、実行する Java (R)プログラムとしてサービスマネージャ 1204を指定する。 Java (R) 言語の詳細は、書籍「Java (R) Language Specification (ISBN 0— 201— 63 451— 1)」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、 Java (R) VM自体の詳細な動作などは、「Java (R) Virtual Machine Specifics tion (lSBN 0— 201— 63451— X)」等の多くの書籍で解説されている。ここでは、 その詳細を省略する。
[0073] サービスマネージャ 1204は、 Java (R)言語で書かれ ava (R)プログラムであり、 VM1203によって逐次実行される。サービスマネージャ 1204は、 JNI (Java (R) N ative Interface)を通して、 Java (R)言語で記述されて!ヽな ヽ他のサブプログラム を呼び出したり、または、呼び出されたりすることが可能である。 JNIに関しても、書籍 rjava (R) Native Interface等の多くの書籍で解説されている。ここでは、その 詳細を省略する。
[0074] サービスマネージャ 1204は、 JNIを通して、再生部 1202bよりチャンネルの識別子 を受け取る。
[0075] サービスマネージャ 1204は、最初にライブラリ 1205の中にある Tunerl205cに、 チャンネルの識別子を引き渡し、チューニングを依頼する。 Tunerl205cは、 2次記 憶部 510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サ 一ビスマネージャ 1204がチャンネルの識別子「2」を Tuner 1205cに引き渡すと、 Tu nerl205cは、図 14の行 1412を参照して、対応するチューニング情報「156MHz」 を獲得する。 Tunerl205cは、 OS1201のライブラリ 1201bを通して、 QAM復調部 501にチューニング情報を引き渡す。 QAM復調部 501は与えられたチューニング 情報に従つてヘッドエンド 101から送信されてきた信号を復調し、 POD504に引き渡 す。
[0076] 次にサービスマネージャ 1204は、ライブラリ 1205の中にある CA1205dにデスクラ ンブルを依頼する。 CA1205dは、 OS1201のライブラリ 1201bを通して復号に必要 な情報を POD504に与える。 POD504は、与えられた情報を元に、 QAM復調部 5 01から与えられた信号を復号し TSデコーダ 505に引き渡す。
[0077] 次にサービスマネージャ 1204は、ライブラリ 1205の中にある JMF1205aにチャン ネルの識別子を与え、映像 ·音声の再生を依頼する。
[0078] まず、最初に JMF1205aは、再生すべき映像と音声を特定するためのパケット IDを PAT、 PMTから取得する。 PATや PMTは MPEG2規格で規定されている、 MPE G2トランスポートストリーム内の番糸且構成を表現するテーブルであり、 MPEG2トラン スポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共 に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明す る。 PATは、 Program Association Tableの略で、パケット ID「0」のパケットに格 納され送信されている。 JMF1205aは、 PATを取得するため、 OS1201のライブラリ 1201bを通して、 TSデコーダ 505にパケット ID「0」と CPU514を指定する。 TSデコ ーダ 505がパケット ID「0」でフィルタリングを行い、 CPU514に引き渡すことで JMF1 205aは、 PATのパケットを収集する。図 16は、収集した PATの情報の一例を模式 的に表した表である。列 1601は、プログラムナンバーである。列 1602は、パケット ID である。列 1602のパケット IDは PMTを取得するために用いられる。行 1611〜161 3は、チャンネルのプログラムナンバーと対応するパケット IDの組である。ここでは、 3 つのチャンネルが定義されている。行 1611はプログラムナンバー「101」とパケット ID 「501」の組が定義されて!、る。今、 JMF1205aに与えられたチャンネルの識別子が「 2」とすると、 JMF1205aは、図 14の行 1412を参照して、対応するプログラムナンパ 一「102」を獲得し、次に、図 16の PATの行 1612を参照し、プログラムナンバー「10 2」に対応するパケット ID「502」を獲得する。 PMTは、 Program Map Tableの略 で、 PATで規定されたパケット IDのパケットに格納され送信されている。 JMF1205a は、 PMTを取得するため、 OS1201のライブラリ 1201bを通して、 TSデコーダ 505 にパケット IDと CPU514を指定する。ここで、指定するパケット IDは「502」とする。 T Sデコーダ 505がパケット ID「502」でフィルタリングを行い、 CPU514に引き渡すこと で JMF1205aは、 PMTのパケットを収集する。図 17は、収集した PMTの情報の一 例を模式的に表した表である。列 1701は、ストリーム種別であり。列 1702は、バケツ HDである。列 1702で指定されるパケット IDのパケットには、ストリーム種別で指定さ れた情報がペイロードに格納され送信されている。列 1703は補足情報である。行 17 11〜1714はエレメンタリ一ストリームと呼ばれる、パケット IDと送信している情報の種 別の組である。行 1711は、ストリーム種別「音声」とパケット ID「5011」の組であり、パ ケッ HD「5011」のペイロードには音声が格納されていることを表す。 JMF1205aは 、 PMTから再生する映像と音声のパケット IDを獲得する。図 17を参照して、 JMF12 05aは、行 1711から音声のパケット ID「5011」を、行 1712から映像のパケット ID「5 012」を獲得する。
次に、 JMF1205aは、 OS1201のライブラリ 1201bを通して、獲得した音声のパケ ッ HDと出力先としてオーディオデコーダ 506、映像のパケット IDと出力先としてビデ ォデコーダ 508の組を、 TSデコーダ 505に与える。 TSデコーダ 505は与えられたパ ケッ HDと出力先に基づいて、フィルタリングを行う。ここではパケット ID「5011」のパ ケットをオーディオデコーダ 506に、パケット ID「5012」のパケットをビデオデコーダ 5 08に引き渡す。オーディオデコーダ 506は、与えられたパケットのデジタル アナ口 グ変換を行いスピーカ 507を通して音声を再生する。ビデオデコーダ 508は、与えら れたパケットのデジタル—アナログ変換を行いディスプレイ 509に映像を表示する。
[0080] 最後にサービスマネージャ 1204は、ライブラリ 1205の中にある AM1205bにチヤ ンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、 MPEG2トランスポートストリームに含まれる Java (R)プログラムを抽出し、 VM1203 に実行させることである。 MPEG2トランスポートストリームに Java (R)プログラムを埋 め込む方法は、 MPEG規格書 ISOZIEC13818— 6に記述された DSMCCという 方式を用いる。ここでは DSMCCの詳細な説明は省略する。 DSMCC方式は、 MP EG2トランスポートストリームのパケットの中に、コンピュータで使用されているディレク トリやファイルで構成されるファイルシステムをエンコードする方法を規定して 、る。ま た、実行する Java (R)プログラムの情報は AITと呼ばれる形式で、 MPEG2トランスポ 一トストリームのパケットの中に埋め込まれ送信されている。 AITは、 OCAP1. 0仕様 (正式には、 OCAP 1. 0 Profile OC— SP— OCAP1. 0— IF— 109— 031121 )に定義されている、 Application Information Tableの略である。
[0081] AM1205bは、まず、 AITを獲得するため、 JMF1205a同様 PAT、 PMTを取得し 、 AITが格納されているパケットのパケット IDを獲得する。今、与えられたチャンネル の識別子が「2」で、図 16の PAT、図 17の PMTが送信されていると、 JMF1205aと 同様の手順で、図 17の PMTを獲得する。 AM1205bは、 PMTからストリーム種別が 「データ」で補足情報として「AIT」を持つエレメンタリ一ストリーム力もパケット IDを抽 出する。図 17を参照して、行 1713のエレメンタリ—ストリームが該当し、パケット ID「5 013」を獲得する。
[0082] AM1205bは、 OS1201のライブラリ 1201bを通して TSデコーダ 505に AITのパ ケット IDと出力先 CPU514を与える。 TSデコーダ 505、与えられたパケット IDでフィ ルタリングを行い、 CPU514に引き渡す。この結果、 AM1205bは、 AITのパケットを 収集することができる。図 18は、収集した AITの情報の一例を模式的に表した表で ある。列 1801ίお ava (R)プログラムの識別子(図ではプログラム識別子と表記)であ る。列 1802 ίお ava (R)プログラムの制御情報である。制御情報には「autostart」「pr esentj「kill」などがあり、「autostart」は即時に端末装置 500がこのプログラムを自 動的に実行することを意味し、 rpresentjは自動実行しな!、ことを意味し、「kill」はプ ログラムを停止することを意味する。列 1803は、 DSMCC方式で Java (R)プログラム を含んでいるパケット IDを抽出するためのと DSMCC識別子である。列 1804ίお ava (R)プログラムのプログラム名である。行 1811と行 1812は、 Java (R)プログラムの情 報の組である。行 1811で定義される Java (R)プログラムは、識別子「301」、制御情 報「autostart」、 DSMCC識別子「1」、プログラム名「aZTopXlet」の組である。行 1 812で定義される Java (R)プログラムは、識別子「302」、制御情報「present」、 DS MCC識別子「1」、プログラム名「bZGameXlet」の組である。ここで 2つの Java (R) プログラムは同じ DSMCC識別子を持つ力 これは 1つの DSMCC方式でェンコ一 ドされたファイルシステム内に 2つの Java (R)プログラムが含まれていることを表す。こ こでは、 Java (R)プログラムに対して 4つの情報しか規定しないが、実際にはより多く の情報が定義される。詳細は OCAP1. 0仕様を参照されたい。
[0083] AM1205bは、 AITの中から「autostart」の Java (R)プログラムを見つけ出し、対 応する DSMCC識別子及び Java (R)プログラム名を抽出する。図 18を参照して、 A M 1205bは行 1811の Java (R)プログラムを抽出し、 DSMCC識別子「 1」及び Java ( R)プログラム名 ra/TopXletjを獲得する。
[0084] 次に AM1205bは、 AITから取得した DSMCC識別子を用いて、 Java (R)プログラ ムを DSMCC方式で格納して!/、るパケットのパケット IDを PMTから獲得する。具体 的には、 PMTの中でストリーム種別が「データ」で、補足情報の DSMCC識別子が 合致するエレメンタリーストリームのパケット IDを取得する。
[0085] 今、 DSMCC識別子力 「l」であり、 PMTが図 17とすると、行 1714のエレメンタリー ストリームが合致し、パケット ID「5014」を取り出す。
[0086] AMI 205b OS1201のライブラリ 1201bを通して TSデコーダ 505に DSMCC 方式でデータが埋めこめられたパケットのパケット IDと出力先として CPU514を指定 する。ここでは、パケット ID「5014」を与える。 TSデコーダ 505、与えられたパケット I Dでフィルタリングを行い、 CPU514に引き渡す。この結果、 AM1205bは、必要な パケットを収集することができる。 AM1205bは、収集したパケットから、 DSMCC方 式に従ってファイルシステムを復元し、 1次記憶部 511に保存する。 MPEG2トランス ポートストリーム中のパケットからファイルシステム等のデータを取り出し 1次記憶部 51 1等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。
[0087] 図 19は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを 四角はファイルを表し、 1901はルートディレクトリ、 1902はディレクトリ「a」、 1903は ディレクトリ「b」、 1904はファイル「TopXlet. classj , 1905はファイル「GameXlet. classjである。
[0088] 次に AM1205bは、 1次記憶部 511にダウンロードしたファイルシステム中から実行 する Java (R)プログラムを VM 1203に引き渡す。今、実行する Java (R)プログラム名 が「aZTopXlet」とすると、 Java (R)プログラム名の最後に「. classjを付カ卩したフアイ ル「aZTopXlet. class」が実行すべきファイルとなる。「Z」はディレクトリやファイル 名の区切りであり、図 19を参照して、ファイル 1904が実行すべき Java (R)プログラム である。次に AM1205biま、フアイノレ 1904を VM1203に引き渡す。
[0089] VM1203は、引き渡され^ Java (R)プログラムを実行する。
サービスマネージャ 1204は、他のチャンネルの識別子を受け取ると、ライブラリ 12 05に含まれる各ライブラリを通して再生して 、る映像 ·音声及び Java (R)プログラム の実行を、同じくライブラリ 1205に含まれる各ライブラリを通して停止し、新たに受け 取ったチャンネルの識別子に基づいて、映像'音声の再生及び Java (R)プログラム の実行を行う。
[0090] ライブラリ 1205は、 ROM512に格納されている複数の Java (R)ライブラリの集合で ある。本実施の形態では、ここでは、ライブラリ 1205は、 JMF1205aゝ AM1205bゝ T unerl205c、 CA1205d、 POD Libl205e、 MA管理部 1205f等を含んでいる。
[0091] 初期化サブプログラム 802は、ヘッドエンド 101から送られてくる特殊なプログラム 情報を元に特権的なプログラムの起動を行う、と述べたが、その詳細について述べる
[0092] OCAP1. 0仕様では、前記 EPG1202のような、予め端末内に用意してあるプログ ラムの代わりに、端末装置の外部力も特権的なプログラム(以下、モニタアプリと呼ぶ )をダウンロードして実行する手順が規定されている。モニタアプリの機能として、例え ば電子番組表の表示がある。さらに、モニタアプリが存在し、かつそれが自動的に起 動するように指定されていた場合、必ず実行しなければならいと規定されている。ここ では、詳細は省略し、本発明に関する部分のみを解説する。
[0093] 図 20は、ヘッドエンド 101から送られてくる特殊なプログラム情報(以下 XAITと呼 ぶ)の一例を模式的に表した表である。 XAITの構成は、図 18に示した前記 AITと類 似の構成をとるため、同一構成要素に対しては同一番号を付し、説明を省略する。 列 2005は、モニタアプリ識別子である。前記 AM1205bにおける AITの処理とは異 なり、例えば、モニタアプリ識別子が 1以上になっているもののみがモニタアプリとして 扱われる。 XAIT内にモニタアプリ識別子が 1以上であるプログラムが複数存在した 場合は、それら全てをモニタアプリとして扱う。詳細については後述する。
[0094] なお、モニタアプリ識別子が 1以上になっているもののみがモニタアプリとして扱わ れると述べた力 他の条件によってモニタアプリとして扱うかどうかを決定しても実施 可能である。
[0095] 初期化サブプログラム 802は、 MA管理部 1205fに対しモニタアプリの起動を指示 することによって、ヘッドエンド 101から送られてくる特殊なプログラム情報を元に特 権的なプログラムの起動を行う。
[0096] 図 21は、 MA管理部 1205fの構成の一例を示すブロック図である。
MA管理部 1205fは、 MA管理部メイン 2101、 XAIT取得解析部 2102、 MA選択 部 A2103、 MA起動部 2104、 MA監視部 2105、および MA選択部 B2106力も構 成される。
[0097] MA管理部メイン 2101は、 MA管理部 1205fの中心的役割を果たすものであり、 初期化サブプログラム 802からの指示を受け付け、 MA管理部 1205f内の他の構成 要素を用 、ることにより、 MA管理部 1205fとしての機能を実現する。
[0098] XAIT取得解析部 2102は、 MA管理部メイン 2101からの指示に従い、ヘッドェン ド 101から送られてきた XAITを解析し、解析結果を MA管理部メイン 2101へ返す。 例えば図 20に示した内容を解析結果として返す。 [0099] MA選択部 A2103は、 MA管理部メイン 2101から渡された XAITの解析結果に基 づき、起動すべきモニタアプリを選択し、結果を MA管理部メイン 2101へ返す。例え ば、図 20で示した内容が XAITの解析結果として渡された場合、 MA選択部 A2103 は、起動すべきモニタアプリとして行 1811で示されるプログラムを選択する力もしれ ない。
[0100] MA起動部 2104は、 MA管理部メイン 2101から指定されたモニタアプリの起動を 行う。例えば、図 20における行 1811で示されるプログラムが指示された場合、モニタ アプリとして「ZaZMAl」を起動する。起動方法については、前記 AM1205bの動 作と同様であるため説明を省略する。
[0101] MA監視部 2105は、 MA管理部メイン 2101から指定されたモニタアプリの動作状 況を監視し、異常終了が発生した場合には、 MA管理部メイン 2101へ通知する。異 常終了の発生を認知するための手法として、例えば、モニタアプリが投げた例外を受 け取るなどで判断可能である。例外につ!、ては、 Java (R)言語仕様で規定されて!、 るため説明を省略する。また、 MA監視部 2105は、同時に複数のモニタアプリの動 作状況を監視できてもよい。
[0102] MA選択部 B2106は、 MA管理部メイン 2101からの指示に従い、代替アプリを選 択し、選択結果を MA管理部メイン 2101へ返す。
[0103] 図 22は、 MA管理部 1205fがモニタアプリの起動を行う手順を示すフローチャート である。
[0104] 初期化サブプログラム 802からの指示を、 MA管理部メイン 2101が受け取ると、ま ず、 MA管理部メイン 2101は、 XAIT取得解析部 2102に対し XAIT解析指示を出 し、 XAIT取得解析部 2102は、ヘッドエンド 101から送られてくる XAITの取得を試 みる(S2201)。さらに、 XAIT取得解析部 2102は XAITを解析し(S2203)、解析結 果を MA管理部メイン 2101へ返す。 MA管理部メイン 2101は前記解析結果を元に 、 MA選択部 A2103にモニタアプリの選択を依頼すると、 MA選択部 A2103は、 M A管理部メイン 2101から渡された情報を元に、起動すべきモニタアプリを選択し、選 択結果を MA管理咅メイン 2101へ返す(S2204)。なお、 S2201,また ίま S2203に おいて、 XAITの取得や解析に失敗していた場合、 MA選択部 A2103は、代替プロ グラム(例えば EPG1202)を選択結果として MA管理部メイン 2101へ返す。 MA管 理部メイン 2101は、 MA選択部 A2103から返された結果を元に、 MA起動部 2104 に対しモニタアプリの起動を指示すると、 MA起動部 2104は、 MA管理部メイン 210 1力も指示されたモニタアプリを起動する(S2205)。 MA管理部メイン 2101は、さら に、 MA監視部 2105に対し、 MA起動部 2104が起動したモニタアプリの動作状況 を監視するよう指示すると、 MA監視部 2105は、指示されたモニタアプリの動作状況 の監視を開始する(S2206)。さらに、 MA管理部メイン 2101は、 S2204において複 数のモニタアプリが選択されていた場合、そのうち未だ MA起動部 2104に起動を指 示していないモニタアプリを選び、同様にモニタアプリの起動および監視を試みる(S 2207)。 MA管理部メイン 2101が S2204において選択された全てのモニタアプリに 対する起動および監視の指示を完了すると、モニタアプリの起動に関する処理を完 了する。ここで、結果を初期化サブプログラム 802へ返しても良い。また、 S2204に おいて、起動すべきモニタアプリが選択されな力つた場合、 MA管理部メイン 2101は 、代替プログラム(例えば EPG1202)が選択されたものとして、 S2205以降の処理を 行ってもよい。
[0105] ここで、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処理 について述べる。
[0106] OCAP1. 0仕様では、モニタアプリが異常終了した場合、モニタアプリの再起動を 試みるように規定されている。しかし、異常終了した実績から、再起動後も再び異常 終了することが十分に予想される。
[0107] そこで、本発明では、異常終了が予想されるモニタアプリの代わりに代替プログラム を実行させる方法について述べる。なお、代替プログラムは、予め正常動作 (つまり、 異常終了を起こさな ヽこと)を保証されて ヽることが望ま ヽが、保証されて ヽなくとも 実施可能である。
[0108] 図 23は、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処 理を示したフローチャートである。
[0109] MA監視部 2105が監視中のモニタアプリの異常終了を検知すると(S2301)、 MA 監視部 2105は異常終了したモニタアプリの監視を終了し (S2302)、 MA管理部メイ ン 2101に対し異常終了が発生したことを通知する(S2303)。
[0110] MA管理部メイン 2101は、 MA監視部 2105から異常終了の通知を受けると、 MA 選択部 B2106に対して代替プログラムの選択を依頼する。 MA選択部 B2106は、 M A管理部メイン 2101からの依頼に基づき代替プログラムを選択し、代替プログラムの 起動に必要な情報を MA管理部メイン 2101に返す (S2304)。代替プログラムの起 動に必要な情報とは、例えば、プログラム名、保存場所などである。
[0111] MA管理部メイン 2101は、 MA選択部 B2106から返された情報を元に、 MA起動 部 2104に対し、代替プログラムの起動を指示する(S2305)。
[0112] MA管理部メイン 2101は、 MA監視部 2105に対し、代替プログラムの動作状況の 監視を依頼する(S2306)。
[0113] さらに、代替プログラムが異常終了した場合、前述のモニタアプリが異常終了した 場合と同様の手順 (S2301〜S2306)で次の代替プログラムが選択され起動される
[0114] また、 S2303の結果、 MA管理部メイン 2101は、必ずしも代替プログラムの起動処 理(つまり S2304以降)を行う必要 ίまな!/ヽ。 f列え ίま、、図 22の S2204【こお!/、て複数の モニタアプリが選択され、その結果として複数のモニタアプリが起動されていた場合、 ΜΑ管理部メイン 2101は、それら全てのモニタアプリが異常終了した場合のみ、代 替プログラムの起動処理 (つまり S2304以降)を行うことも可能である。
[0115] さらに、特定のモニタアプリが異常終了した場合のみ代替プログラムの起動処理を 行うことも可能である。特定のモニタアプリとは、例えば図 20における列 2005モニタ アプリ識別子が 1と指定されたモニタアプリである。この場合、モニタアプリ識別子が 2 と指定されたモニタアプリが異常終了したとしても、代替プログラムの起動処理は行 われなくともよい。さらにこの場合、モニタアプリ識別子が 1ではないモニタアプリに対 して、図 22における S2206の処理(つまりモニタアプリの動作状況の監視)を行わな くとも実施可能である。
[0116] なお、代替プログラムの例として EPG1202を述べた力 起動可能であれば、他の プログラムを代替プログラムとして利用しても実施可能である。例えば、代替プロダラ ムとして、端末装置を再起動するものや、単純にチャンネル切り替えのみを行うもの であっても実施可能である。また、代替プログラムは、 MA管理部メイン 2101に対し プログラムの情報を指定することで、他の代替プログラムの起動を依頼することも可能 である。例えば、代替プログラムは、先に異常終了したモニタアプリの再起動を指示 し、その後、モニタアプリが起動されることも可能である。
[0117] なお、代替プログラムの例である EPG1202は予め端末装置に用意されているもの として述べたが、予め用意されていなくとも本発明は実施可能である。例えば、代替 プログラムを起動する段階にぉ 、て、外部からダウンロードして起動することでも実施 可能である。例えば、代替プログラムをネットワーク経由でダウンロードしたり、端末装 置が受信している MPEGストリーム中力もダウンロードしてもよい。これにより、予め用 意されたものではないプログラムを代替プログラムとして起動可能となる。
[0118] なお、モニタアプリをダウンロードして実行すると述べたが、 1回目のダウンロード時 に 2次記憶部 705に保存しておき、 2回目以降は、ダウンロードする代わりに 2次記憶 部 705に保存したものを利用して起動したとしても、本発明は実施可能である。
[0119] なお、 MA選択部 B2106が代替プログラムとして EPG1202を選択する場合につ いて述べたが、任意の選択方式を用いて、起動可能な任意のプログラムを選択でき れば実施可能である。
[0120] さらに、 MA管理部 1205fは、モニタアプリが異常終了した場合、異常終了の内容 を第 1記憶部 511または第 2記憶部 510へ保存することも可能である。さらに、保存し た内容を端末装置の外部へ送信することも可能である。保存する内容とは、例えば、 異常終了が発生した時刻、 Java (R)プログラム識別子、プログラム名、異常終了の種 類 (例えばメモリ不足)などであるが、少なくとも異常終了が起きたことが判別できるも のであれば実施可能である。また、情報端末の外部の例として、端末装置製造者や 放送事業者がある。これにより、例えば端末装置の不具合で異常終了が発生した場 合には端末装置製造者に送信することで、端末装置製造者が迅速な対応策を講じ ることが可能であり、モニタアプリの不具合で発生した場合は放送事業者に送信する ことで、モニタアプリの不具合を迅速に修正することが可能となる。この場合における 処理を図 24に示す。なお、図 24において、図 23で示した処理と同様の部分に関し ては、同一番号を付し、説明を省略する。 [0121] 図 24の S2303によって MA管理部メイン 2101がモニタアプリの異常終了を検知す ると、 MA管理部メイン 2101は、その異常終了の内容を 1次記憶部 511または 2次記 憶部 510へ保存する(S2410)。さらに、 MA管理部メイン 2101は、保存した内容を 端末装置の外部へ送信する。その後、 MA管理部メイン 2101は、 S2304以降の処 理を継続する。
[0122] なお、送信手段につ!ヽては、端末装置外部へ情報を伝達できるものであれば実施 可能である。例えば、周知の技術である FTPや E— mailなどを利用して保存内容を 送信することが可能である。
[0123] なお、 2次記憶部 510として、着脱可能な記憶装置を利用しても実施可能である。
この場合、外部への送信を行わず、着脱可能な記憶装置を、何らかの輸送手段を用 V、て輸送することでも実施可能である。
[0124] なお、本実施の形態では、 ROM512が保存する内容を 2次記憶部 510が保存す ることで、 ROM512を削除することも実施可能である。また、 2次記憶部 510は、複数 のサブ 2次記憶部で構成し、個々のサブ 2次記憶部が異なる情報を保存しても実施 可能である。例えば、 1つのサブ 2次記憶部はチューニング情報のみを保存し、別の サブ 2次記憶部は、 OS1201のライブラリ 1201bを保存し、更に別のサブ 2次記憶部 は、ダウンロードし^ Java (R)プログラムを保存するなど、詳細に分割することが可能 である。
[0125] また、本実施の形態では、登録され^ Java (R)プログラムを 2次記憶部 510に保存 していたが、 1次記憶部 511に保存することも実施可能である。 1次記憶部 511に保 存する場合、電源 OFF時に、保存された情報は全て消える。
[0126] (実施の形態 2)
実施の形態 1では、例として、 MA選択部 B2106が代替プログラムとして EPG120 2を選択する場合について述べたが、本実施の形態では、さらに、他の選択方式とし て、 MA選択部 B2106が MA選択部 A2103の選択結果と同じプログラム(つまり異 常終了したプログラム)を再度選択する場合について述べる。
[0127] これは、例えば、 MA管理部 1205fが、モニタアプリが異常終了したとしても、何ら 力の判断根拠に基づき、同じモニタアプリを再起動する場合である。判断根拠とは、 例えば、異常終了の原因に対する回避策を予め知っており、異常終了後、その回避 策を講じることで再起動後の正常動作が期待できる場合である。回避策とは、例えば 、メモリ不足によってモニタアプリが異常終了した場合、他のプログラムを終了させる ことなどにより、モニタアプリが利用可能なメモリ容量を確保することである。
[0128] 本実施の形態では、 MA監視部 2105は、モニタアプリの異常終了が発生した際に 、異常終了の発生の通知とともに、モニタアプリが異常終了した原因を示す例えばコ ードを MA管理部メイン 2101へ通知する。 MA管理部メイン 2101は、コード(異常終 了した原因)に対応した回避策をあらカゝじめテーブル等に保持しており、通知された コードに対応した回避策を決定し、決定した回避策を実施する。
[0129] 本実施の形態における動作手順を図 25に示す。
図 25において、図 23で示した処理と同様の部分に関しては、同一番号を付し、説 明を省略する。
[0130] S2303において、 MA監視部 2105は、モニタアプリの異常終了が発生したことを 通知するとともに、モニタアプリが異常終了した原因を示すコードを MA管理部メイン 2101へ通知する。そして、 MA管理部メイン 2101は、 MA選択部 B2106に対し、代 替プログラムの選択を依頼すると、 MA選択部 B2106は、代替プログラムとして、異 常終了したモニタアプリを選択し、モニタアプリの起動に必要な情報を MA管理部メ イン 2101に返す(S2510)。モニタアプリの起動に必要な†青報とは、図 22の S2204 で返された情報、またはその一部、および付加情報である。付加情報として、例えば 、選択されたモニタアプリが異常終了した回数や、選択されたモニタアプリが代替プ ログラムとして選択された回数などである。この場合、 MA選択部 B2106は、モニタァ プリが異常終了した回数を保持するために、例えば 1次記憶部 511に情報を保持す る。図 26 (a)、(b)及び (c)は、 1次記憶部 511に保持しているデータを模式的に表し た表である。列 2601は、 Java (R)プログラム識別子であり、列 2602は、 Java (R)プロ グラム識別子で示されるプログラムが異常終了した回数である。行 2611および行 26 12は、 Java (R)プログラムの情報の組である。例えば、図 26 (a)を参照して、行 261 1で定義される Java (R)プログラムは、識別子「301」、プログラムが異常終了した回 数「0」の組である。行 2612で定義される Java (R)プログラムは、識別子「302」、プロ グラムが異常終了した回数「0」の組である。
[0131] 図 26 (a)は、図 23における S2303を処理する前の保持内容である。図 25の S230
3において Java (R)識別子が 301であるモニタアプリの異常終了が通知された場合、
1次記憶部 511に保持されるデータは、図 26 (b)のように変化する。なお、付加情報 が無くとも実施可能である。
[0132] MA管理部メイン 2101は、通知されたコードに対応した回避策を決定し、決定した 異常終了の原因に対する回避策を実施する(S2511)。その後、 S2305以降の処理 を行う。
[0133] 本手順により、モニタアプリが異常終了した後、再度、同一のモニタアプリを起動す ることが可能となる。
[0134] (実施の形態 3)
実施の形態 2では、例として、 MA選択部 B2106が MA選択部 A2103の選択結果 と同じプログラム(つまり異常終了したプログラム)を再度選択する場合について述べ たが、本実施の形態では、他の選択方式として、異常終了の回数が N回までは、 M A選択部 B2106が MA選択部 A2103の選択結果と同じプログラム(つまり異常終了 したプログラム)を再度選択し、 N+ 1回目以降は、他のプログラム(例えば EPG120 2など)を選択しても良い。
[0135] ここでは、 N = 2の場合であり、かつ、 Java (R)プログラム識別子が 301であるモニタ アプリが異常終了した時に代替プログラムを選択する場合について説明する。
[0136] 図 27は、本実施の形態における動作手順を示したものである。
図 27において、図 23で示した処理と同様の部分に関しては、同一番号を付し、説 明を省略する。
[0137] Java (R)プログラム識別子が 301であるモニタアプリが 1回目の異常終了を起こした 場合、 S2303の結果、 MA管理部メイン 2101は、 MA選択部 B2106に対し、代替 プログラムの選択を依頼すると、 MA選択部 B2106は、まず、異常終了の回数をカウ ントする(ステップ S2701)。すなわち、 1次記憶部 511に保存してある内容を図 26 (a )から図 26 (b)のように変更する。次に、図 26に示したプログラムが異常終了した回 数を参照し、異常終了回数が所定回数 (N回)以上であるか否かを判定する (ステツ プ S2702)。ここで、異常終了回数が所定回数 (N回)以上でない場合 (ステップ S27 02で No)には、 MA選択部 B2106は、 Java (R)プログラム識別子が 301であるモ- タアプリを選択し (ステップ S2704)、以後、 S2305以降の処理が行われる。一方、異 常終了回数が所定回数 (N回)以上である場合 (ステップ S2702で Yes)には、 Java ( R)プログラム識別子が 301であるモニタアプリ以外のプログラム(例えば EPG1202 など)を選択し (ステップ S2703)、以後、 S2305以降の処理が行われる。
[0138] ここの例では、図 26 (b)の列 2602を参照して、これまでの異常終了回数が 1回で あることが分かる。よって、 MA選択部 B2106は、 Java (R)プログラム識別子が 301 であるモニタアプリを選択する。以後、 S2305以降の処理が行われる。
[0139] 次に、 Java (R)プログラム識別子が 301であるモニタアプリが 2回目の異常終了を 起こした場合、 S2303の結果、 MA管理部メイン 2101は、 MA選択部 B2106に対し 、代替プログラムの選択を依頼すると、 MA選択部 B2106は、まず、 1次記憶部 511 に保存してある内容を図 26 (b)から図 26 (c)のように変更する。次に、図 26に示した プログラムが異常終了した回数を参照する。この時、図 26 (c)の列 2602を参照して、 これまでの異常終了回数が 2回であることが分かる。ここで、 MA選択部 B2106は、 既に所定回数 (この場合 2回)に達したため、 Java (R)プログラム識別子が 301である モニタアプリ以外のプログラム(例えば EPG1202など)を選択する。以後、 S2305以 降の処理が行われる。
[0140] これにより、 Java (R)プログラム識別子が 301の異常終了に対し、 1回目まで ίお ava
(R)プログラム識別子が 301を再起動し、 2回目以降はモニタアプリ以外のプログラム を起動することが可能となる。
[0141] なお、ここでは N = 2の場合について説明した力 Nは 1以上の整数であれば実施 可能である。
[0142] (実施の形態 4)
実施の形態 1〜3では、 MA選択部 B2106が代替プログラムの選択方式として、選 択するプログラムが予め決められている場合について述べた力 他の選択方式として 、選択候補となるプログラムの一覧を視聴者に提示し、視聴者に選択させる方法をと つても良い。 [0143] 図 28は、本実施の形態における動作手順を示したものである。なお、図 23で示し た処理と同様の部分に関しては、同一番号を付し、説明を省略する。
[0144] S2303の結果、 MA管理部メイン 2101は、 MA選択部 B2106〖こ対し、代替プログ ラムの選択を依頼すると、 MA選択部 B2106は、まず、代替プログラムとして選択可 能なプログラムの一覧を作成する(S2810)。次に、 MA選択部 B2106は、作成した プログラムの一覧を、視聴者に提示し、選択を促す (S2811)。 MA選択部 B2106は 、視聴者の選択に基づき、代替プログラムを決定する(S2812)。以後、 S2305以降 の処理が行われる。
[0145] ここで、図 29は、 S2810において作成した代替プログラムとして選択可能なプログ ラムの一覧の一例を模式的に表した表である。列 2901 ίお ava (R)プログラムの識別 子である。列 2902はプログラム名である。行 2911と行 2912は、 Java (R)プログラム の情報の組である。行 2911で定義される Java (R)プログラムは、識別子「301」、プロ グラム名「MA1」の組である。行 2912で定義される Java (R)プログラムは、識別子「7 01」、プログラム名「EPG」の組である。
[0146] なお、図 29で表した表の内容でなくとも、 MA選択部 B2106がプログラムを識別で きる情報が含まれて 、れば、他の内容を用いても実施可能である。
[0147] また、一覧に含まれるプログラムは、起動可能であれば、どこに存在していても実施 可能である。
[0148] 図 30は、 S2810において視聴者に提示される表示の一例を示したものである。こ こでは、ディスプレイ 509に、ダイアログ 3001が表示されている。視聴者は、表示され たプログラムの一覧力もプログラムを選択する。例えば、リモコンの「1」ボタンを押すこ とで「MA1」を選択する。その場合、 MA選択部 B2106は、視聴者が識別子「301」 のプログラムを選択したことが分力るので、 MA選択部 B2106は、代替プログラムとし て、識別子「301」を持つプログラムを代替プログラムとして決定する。また、視聴者が リモコンの「2」ボタンを押すことで「EPG」を選択した場合、 MA選択部 B2106は、視 聴者が識別子「701」のプログラムを選択したことが分力るので、 MA選択部 B2106 は、代替プログラムとして、識別子「701」を持つプログラムである EPG1202を代替 プログラムとして決定する。 [0149] なお、少なくとも視聴者がプログラムを識別できる情報が含まれていれば、他の内 容を用いても実施可能である。
[0150] また、少なくとも視聴者がどのプログラムを選択したかが MA選択部 B2106へ伝わ るのであれば、どのような表示形態、および選択方法を用いても、実施可能である。
[0151] また、 MA選択部 B2106は、ある条件を満たすことで、視聴者の選択を待つことな ぐ代替プログラムを決定する手も実施可能である。例えば、視聴者に提示した後、 3
0秒経過しても視聴者が選択しなかった場合、 MA選択部 B2106は代替プログラム として識別子「701」を持つプログラムである EPG 1202を代替プログラムとして決定 することが可能である。
[0152] (実施の形態 5)
実施の形態 1〜3において、 MA管理部メイン 2101は、 MA監視部 2105から異常 終了通知を受け取った際、視聴者に対し、異常終了の発生を通知してもよい。
[0153] 図 31は、視聴者に対する通知方法の一例を示したものである。例えば、端末装置 本体の 7セグ LED3102に表示したり、または、端末装置本体のランプ 3101を点灯 することによって通知可能である。
[0154] 図 32は、ディスプレイ 509に表示することでモニタアプリの異常終了を通知する場 合の表示の一例である。ダイアログ 3201内に視聴者に対するメッセージを記述し、 ダイアログ 3201をディスプレイ 509に表示することで、視聴者に対し、異常終了の発 生を通知できる。
[0155] なお、例として図 31、図 32に示した方法でなくとも、視聴者が認識可能な方法で提 示すれば実施可能である。
[0156] (実施の形態 6)
本実施の形態では、ヘッドエンド 101から取得した XAITの情報を元に起動され^ J ava (R)プログラムが、 OS1201のライブラリ 1202b内のプログラムと置き換わって、 P OD504から参照可能 ¾[ava (R)プログラムとして登録され、 POD504内のサブプロ グラムとメッセージを送受信できるような特殊なモニタアプリである場合について記述 する。
[0157] 例えば、 Java (R)プログラムを、 OS1201のライブラリ 1202b内のプログラムである ダイアログ表示プログラムと置き換えることによって、その Java (R)プログラムは、 PO D504内のサブプログラムである PPVサブプログラム 805とメッセージの送受信を行う ことが可能である。
[0158] 他の実施の形態とは異なり、本実施の形態の場合、 OS1201のライブラリ 1202b内 のプログラムは常に動作し続け、 Java (R)プログラムが登録された場合においても、
OS1201のライブラリ 1202b内のプログラムは終了されなくても良い。ただし、この場 合においても、登録され ava (R)プログラムが異常終了した場合、再度その Java ( R)プログラムを実行させたとしても、再び異常終了することが十分に予想されるため 、ユーザの要求 (例えば PPVの視聴)を妨げることになる。本実施の形態では、この 課題に対する本発明の適用につ ヽて述べる。
[0159] 本実施の形態においては、まず、 OS1201のライブラリ 1202b内のプログラムと置 き換わって POD504から参照可能 ¾[ava (R)プログラムの、登録処理および登録削 除処理について説明し、次に、本題である Java (R)プログラムが異常終了した場合 における処理にっ 、て記述する。
[0160] 図 33は、本実施の形態における Java (R)プログラムに関する XAITの情報の一例 である。図 33において、図 20と同一要素に対しては同一番号を付し、説明を省略す る。列 3311と列 3312は、 Java (R)プログラムの情報の組である。列 3311で定義さ れる Java (R)プログラムは、 Java (R)プログラム識別子「701」、制御情報「autostart 」、 DSMCC識別子「1」、プログラム名「ZaZPPVlXlet」、モニタアプリ識別子「1」 の糸且である。列 3312で定義される Java (R)プログラムは、 Java (R)プログラム識別子 「702」、制御情報「present」、 DSMCC識別子「1」、プログラム名「ZbZPPV2Xle t」、モニタアプリ識別子「2」の組である。ここでは、 Java (R)プログラムに対して 5つの 情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である
[0161] ここで、行 3311で表される Java (R)プログラム「PPVlXlet」は POD504が内部に 持つ PPVサブプログラム 805と連携して、 PPV対象の番組情報を表示するプロダラ ムとする。端末装置 500に、 Java (R)プログラム「PPVlXlet」が無いときは、 PPVサ ブプログラム 805が端末装置 500の CPU514に対し画面に表示したい情報を送ると 、 OS 1201のライブラリ 1202bに含まれるダイアログ表示プログラム力 図 34に示す ような番組購入を促すメメッセージをディスプレイ 509に表示する。 3401はダイアログ ボックスであり、メッセージ 3402、 4桁の暗証番号を入力するための暗証番号ボック ス 3403、 OKボタン 3404、取消ボタン 3405の表示要素を持つ。しかしながら、この 表示では、番組内容が不明なため、ユーザは番組ガイドなどの本を参照するなどし て番組内容を確認する必要があり不便である。
[0162] 端末装置 500上にお!、て、 Java (R)プログラム「PPVlXlet」が起動されると、 Java
(R)プログラム「PPVlXlet」は、 Java (R)ライブラリ 1205の POD Libl205eに対し 、 自身を POD504から参照可能お ava (R)プログラムとして登録する。登録の際、自 身の Java (R)プログラムのモジュール識別子として「PPV」も同時に登録する。 POD Libl205eは登録された内容を 2次記憶部 510に記憶する。図 35は、 2次記憶部 5 10力 登録された、 POD504から参照可能 ¾[ava (R)プログラムの情報を保存して いる状態の一例である。この例では、表形式で保存しており、列 3501ίお ava (R)プ ログラムのモジュール識別子、列 3504ίお ava (R)プログラムの名前を記憶している。 行 3511および行 3512は、登録されている Java (R)プログラムを表す。行 3511は、 モジュール識別子「PPV」、 Java (R)プログラムの名前「PPVlXlet」の組である。行 2 312は、モジュール識別子「VOD」、 Java (R)プログラムの名前「VODXlet」の組で ある。なお、ここで ίお ava (R)プログラムのモジュール識別子 3501および Java (R)プ ログラムの名前 3504を保存している力 少なくとも Java (R)プログラムのモジュール 識別子および、登録され ^Java (R)プログラムを一意に特定できる情報が保存されて いれば実施可能である。
[0163] POD Libl205eが、登録され^ Java (R)プログラムの情報を POD504に通知す ることによって、 POD504内のサブプログラムと、登録され^ Java (R)プログラム間で メッセージの送受信が可能となる。例えば、 POD504内の PPVサブプログラム 805 は、図 35の行 3511で示される登録され^ Java (R)プログラムに、 PPV購入対象の 番組内容を送り、その Java (R)プログラムは、ダイアログ表示プログラムの代わりに、 図 36のようにディスプレイ 509に表示を行うことができる。ここでは、 3601は、登録さ れ^ Java (R)プログラムによって、番組情報、およびダイアログ表示プログラムと同等 の表示を行われたものである。
[0164] ただし、ここでは OS1201のライブラリ 1202bのダイアログ表示プログラムは何も表 示して ヽな 、が、実際には登録され^ Java (R)プログラムと一緒に実行されて ヽても 良い。この際、 POD504からは、登録され ava (R)プログラムの種別を参照してメ ッセージを送る相手の Java (R)プログラムを識別している。具体的には、 OS1201の ライブラリ 1202bのダイアログ表示プログラムがモジュール識別子「PPV」を持ち、登 録する Java (R)プログラムに、 OS 1201のライブラリ 1202bのダイアログ表示プログラ ムと同じモジュール識別子「PPV」を持たせ、 POD504はこのモジュール識別子を参 照してメッセージを送受信する相手の Java (R)プログラムを識別して!/ヽる。
[0165] 本実施の形態においては、 POD504の各サブプログラムは、同一モジュール識別 子を持つ複数のプログラムに対し同時にメッセージの送受信が不可能である(つまり 、あるモジュール識別子に対して、 POD504の各サブプログラムが送受信できるプロ グラムは最大でも 1つしか許されない)ものとする。
[0166] 図 37は、 POD Libl205eに Java (R)プログラムが登録される場合における POD
Lib 1205eの動作をまとめたフローチャートである。
[0167] POD Libl205eは、 Java (R)プログラムとのメッセージの配送(送信 Z受信の少 なくとも一方をまたは両方を含む)の登録を受け付けると、 2次記憶部 510へ必要な 情報(例えば図 35に示すような情報)を保存し (ステップ S3701)、ステップ S3701に お!、て登録を受け付け^ Java (R)プログラムのモジュール識別子と、既に 2次記憶部 510に登録されている他の Java (R)プログラムおよびライブラリ 1201b内のプロダラ ムのモジュール識別子とを比較することで、登録を受け付け^ Java (R)プログラムの モジュール識別子と同じモジュール識別子のプログラムが存在するかどうかを判定す る(ステップ S3702)。
[0168] その結果、同じモジュール識別子のプログラムが存在する場合 (ステップ S3702で Yesの場合)は、 POD Libl205eは、それまでメッセージ配送を行っていた対象、 具体的には、 2次記憶部 510に登録されて 、る他の Java (R)プログラムまたは OS 12 01のライブラリ 1201b内のプログラムに対して、メッセージ配送が停止することを事前 通知する(ステップ S3703)。 [0169] 停止の通知を受け^ Java (R)プログラムや OS1201のライブラリ 1201bは、必要な 処理(POD504とのメッセージの配送の停止(つまりメッセージの配送の登録を非登 録とすること)をするために必要な内部処理)を終了したあと、 POD Libl205eにメ ッセージ送信の停止の了解を通知する(ステップ S3704)。
[0170] その了解通知を受けた POD Libl205eは、 POD504と、既存の(2次記憶部 510 に既に登録されており、 POD504とのメッセージの配送の停止の対象となっている) J ava (R)プログラムまたは OS 1201のライブラリ 120 lb内のプログラムとのメッセージ 配送の登録を削除 (つまり非登録)し、そのプログラムとのメッセージ配送を停止する( ステップ S3705)。そして、ステップ S3701において登録を受け付け^ Java (R)プロ グラムに対しメッセージ配送を開始する旨の通知する (ステップ S3706)。その後、ス テツプ S3701にお!/、て登録を受け付け^ Java (R)プログラムへの POD504からのメ ッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする (ステ ップ S3707)。
[0171] 一方、同じモジュール識別子のプログラムが存在しない場合 (ステップ S3702で No の場合)は、 POD Libl205eは、ステップ S3701において登録を受け付け^ Java ( R)プログラムに対してメッセージ配送を開始する旨を通知した後に (ステップ S3706 )、ステップ S3701〖こお!/、て登録を受け付け^ Java (R)プログラムへの POD504との メッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする(ス テツプ S3707)。
[0172] 図 38、図 39は、本動作のフローチャート(図 37)に基づいて、 POD504とのメッセ ージの配送先の変化を表す模式図である。図 38 (a)は、 Java (R)プログラムが登録 されて ヽな 、状態を表し、 POD504とのメッセージ配送が OS 1201のライブラリ 120 lb (より具体的には、例えばライブラリ 1201bのダイアログ表示プログラム)と行われ ている。矢印 3801は、メッセージ配送を表す。図 38 (a)の状態で、 OS1201のライブ ラリ 1201b内のプログラムと同一のモジュール識別子を持つ Java (R)プログラム 381 1が登録されると、図 37のフローチャートに従って、矢印 3801で表される POD504と ライブラリ 120 lbとのメッセージ配送を停止し、 POD504iJava (R)プログラム 3811 とのメッセージの配送が設定され、図 38 (b)の状態になる。 [0173] 図 39 (a)は、 Java (R)プログラム 3911が登録され、 POD504とのメッセージ配送が 、登録されている Java (R)プログラム 3911と行われている状態を表す。矢印 3901は 、メッセージ配送を表す。図 39 (a)の状態で、 Java (R)プログラム 3911と同一モジュ ール識別子を持つ Java (R)プログラム 3912が登録されると、図 37のフローチャート に従って、矢印 3901で表される POD504^Java (R)プログラム 3911とのメッセージ の配送を停止し、 POD504^Java (R)プログラム 3912とのメッセージの配送が設定 され (矢印 3902)、図 39 (b)の状態になる。
[0174] また、 POD Libl205eは、 Java (R)プログラムの登録を受け付けると共に、登録の 削除 (つまり非登録の要求)も受け付ける。
[0175] 図 40は、 POD Lib 1205eが Java (R)プログラムの登録を削除する(つまり 2次記 憶部 510に登録されて 、る Java (R)プログラムとのメッセージの配送の登録を非登録 とする)場合における POD Lib 1205eの動作をまとめたフローチャートである。
[0176] POD Libl205eは、 Java (R)プログラムの削除を受け付けると(ステップ S4001) 、削除の対象となる Java (R)プログラムに対して、メッセージの配送が停止することを 事前通知する(ステップ S4002)。通知を受け^ Java (R)プログラムは、必要な処理( POD504とのメッセージ配送の停止(つまりメッセージ配送の登録を非登録とするこ と)前にすべき必要な内部処理)を終了したあと、 POD Libl205eにメッセージの配 送の停止の了解を通知する(ステップ S4003)。その了解通知を受けた POD Libl 205eは、 2次記憶部 510に登録され^ Java (R)プログラムのうち要求された削除の 対象となって 、る Java (R)プログラムへのメッセージ配送の登録を削除する(つまり非 登録とする)ことにより、 POD504と、対象となる Java (R)プログラムとのメッセージ配 送を停止する(ステップ S4004)。そして、 POD Libl205eは、 OS1201のライブラ リ 1201bに対し POD504とのメッセージの配送を受け付ける登録を行うことで、 POD 504と OS1201のライブラリ 1201b (より具体的には、その中に含まれる、削除の対 象となる Java (R)プログラムと同じモジュール識別子を持つプログラム)とのメッセージ の配送を有効にする(ステップ S4005)。ここで、もし、 OS1201のライブラリ 1201b 内のプログラムのうち、削除の対象となる Java (R)プログラムと同じモジュール識別子 を持つプログラムが動作して ヽな 、ならば、同じモジュール識別子を持つプログラム を起動した後にメッセージの配送を有効にすることで同様の動作が可能となる。
[0177] また、ステップ S4005において 2次記憶部 510に登録されている他の Java (R)プロ グラムまたは新たに登録され^ Java (R)プログラムがあり、これらの Java (R)プロダラ ムのいずれ力 1つとのメッセージの配送を行いたい(または行える)場合には、 POD5 04と対象となる Java (R)プログラムとのメッセージの配送を受け付ける登録を行うこと で対象となる Java (R)プログラムとのメッセージの配送を有効にするようにしても良!ヽ
[0178] 次に、本題である Java (R)プログラムが異常終了した場合における処理について記 述する。
[0179] 図 38 (b)の状態において、 Java (R)プログラム 3811が異常終了した場合の処理に ついて述べる。図 41を参照して、 MA管理部 1205fは、その異常終了を検知すると ともに、 POD Libl205eに対し異常終了した旨を通知する。図 42は、その際の動 作をまとめたフローチャートである。図 23と同一の処理については同一番号を付し、 説明を省略する。 MA監視部 2105が監視中のモニタアプリ(ここで〖お ava (R)プログ ラム 3811)の異常終了を検知すると(S2301)、MA監視部 2105は異常終了したモ ユタアプリの監視を終了し (S2302)、 MA管理部メイン 2101に対し異常終了が発生 したことを通知する(S2303)。 MA管理部メイン 2101は、 POD Libl205eに対し、 モニタアプリの終了を通知する(S4204)。
[0180] POD Libl205eは、異常終了の通知を受け取ると、異常終了し^ Java (R)プログ ラム 3811とのメッセージ配送の登録を削除する処理を行う。図 43は、その際の動作 をまとめたフローチャートである。 POD Libl205eは、 Java (R)プログラムの異常終 了を受け取ると(S4301)、 POD504とその Java (R)プログラムとのメッセージ配送の 登録を削除する(つまり非登録とする)ことにより、 POD504とその Java (R)プログラム とのメッセージ配送を停止する(ステップ S4302)。そして、 POD Libl205eは、 OS 1201のライブラリ 1201bに対し POD504とのメッセージの配送を受け付ける登録を 行うことで OS1201のライブラリ 1201bとのメッセージの配送を有効にする(ステップ S 4304)。
[0181] また、図 39 (b)のように、 2次記憶部 510に、同一モジュール識別子を持つ他の Jav a (R)プログラム(ここでは 3911を意味する)が記憶されて 、る場合にっ 、て述べる。 Java (R)プログラム 3912が異常終了した場合、 POD Libl205eは、 OS1201のラ イブラリ 1201bに対し POD504とのメッセージの配送を受け付ける登録するのではな く、同一モジュール識別子を持つ他の Java (R)プログラム 3912を登録しても良い。 図 44は、その際の動作をまとめたフローチャートである。図 43と同一処理については 、同一番号を付し、説明を省略する。 POD504と異常終了し^ Java (R)プログラムと のメッセージ配送を停止すると(ステップ S4302)、同一モジュール識別子を持つ他 の Java (R)プログラムが存在して!/、るかどうかを調べる(S4403)。存在して!/、る場合 (S4403で Yesの場合)、その Java (R)プログラムを登録する。この登録処理は図 37 で示したフローチャートに従い、 S3702において Noの場合の処理となる。他の Java ( R)プログラムが存在しない場合、 POD Libl205eは、 OS1201のライブラリ 1201b に対し POD504とのメッセージの配送を受け付ける登録を行うことで OS1201のライ ブラリ 120 lbとのメッセージの配送を有効にする(ステップ S4304)。
[0182] なお、同一モジュール識別子を持つ他の Java (R)プログラムが存在している場合に おいても、図 43に示した処理を行っても(つまり S504の処理へ移行しても)良い。
[0183] なお、本実施の形態においては、 POD504内の PPVサブプログラム 805^Java (R )プログラム力 Sメッセージ交換を行い、動作を行うこととしている力 PPVに限らず、 P OD504上の!/、かなるサブプログラムと、端末装置 500上の!/、かなる Java (R)プログ ラムの間でメッセージ交換を行い、動作することに対しても適応可能である。また、 Ja va (R)プログラム ¾Java (R)仕様で規定される書式に基づ!/、た形式の部分と、 CPU が直接実行できる形式の部分の混合でもよ ヽし、 CPUが直接実行できる形式のみで 構成されて!、ても実施可能である。
[0184] なお、本実施の形態においては、登録され^ Java (R)プログラムに関連する内容を 2次記憶部 510に保存した力 1次記憶部 511に保存しても実施可能である。
[0185] 本実施の形態により、 POD504とのメッセージ送受信を行えるよう登録され^ Java ( R)プログラムが異常終了した場合においても、 OS1201のライブラリ 1201bのプログ ラムとのメッセージ送受信を再開することで、 POD504は端末上のプログラムとのメッ セージ送受信を継続することができる。 産業上の利用可能性
本発明に係るプログラム実行装置は、デジタルテレビ受信機の動作の安定性向上 に対して有用であり、またデジタルテレビ受信機に限らずパーソナルコンピュータや 携帯電話など、ソフトウェアによって制御される情報機器の動作の安定性向上に対し ても応用できる。

Claims

請求の範囲
[1] プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第 1プ ログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知され た場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択す る第 2プログラム選択手段と、
前記第 1プログラム選択手段によって選択されたプログラムを実行するとともに、前 記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場 合、前記第 2プログラム選択手段によって選択されたプログラムを実行する実行手段 と
を備えることを特徴とするプログラム実行装置。
[2] 前記第 2プログラム選択手段は、第 1プログラム選択手段によって選択されたプログ ラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[3] 前記プログラム実行装置は、さらに、
前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終 了の原因を取得する原因取得手段と、
前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、 前記第 2プログラム選択手段は、第 1プログラム選択手段によって選択されたプログ ラムと同じプログラムを実行すべきプログラムとして選択し、
前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前 記第 2プログラム選択手段によって選択されたプログラムを実行する
ことを特徴とする請求項 1記載のプログラム実行装置。
[4] 前記第 2プログラム選択手段は、所定条件を満たさな 、場合、第 1プログラム選択 手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選 択し、前記所定条件を満たす場合、第 1プログラム選択手段によって選択されたプロ グラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[5] 前記第 2プログラム選択手段は、前記プログラム監視手段によって異常終了が検知 された前記プログラムの異常終了の回数が所定回数を超える力否力を前記所定条 件とし、前記プログラムの異常終了の回数が所定回数を超えていない場合には前記 所定条件を満たさないと、前記プログラムの異常終了の回数が所定回数を超えてい る場合には前記所定条件を満たすとする
ことを特徴とする請求項 4記載のプログラム実行装置。
[6] 前記第 2プログラム選択手段は、選択した前記プログラムの選択回数が所定回数を 超える力否かを前記所定条件とし、前記プログラムの選択回数が所定回数を超えて V、な 、場合には前記所定条件を満たさな!/、と、前記プログラムの選択回数が所定回 数を超えて!/ヽる場合には前記所定条件を満たすとする
ことを特徴とする請求項 4記載のプログラム実行装置。
[7] 前記第 2プログラム選択手段は、時刻情報を前記所定条件とする
ことを特徴とする請求項 4記載のプログラム実行装置。
[8] 前記第 2プログラム選択手段は、利用者の指示を受け付けたか否かを前記所定条 件とし、前記利用者の指示を受け付けて 、な 、場合には前記所定条件を満たさな 、 と、前記利用者の指示を受け付けた場合には前記所定条件を満たすとする
ことを特徴とする請求項 4記載のプログラム実行装置。
[9] 前記第 2プログラム選択手段は、不揮発性メモリ上に存在するプログラムを実行す べき前記プログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[10] 前記第 1プログラム選択手段または前記第 2プログラム選択手段は、ネットワークを 経由して取得可能なプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[11] 前記第 1プログラム選択手段または前記第 2プログラム選択手段は、放送波に含ま れるプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[12] 前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異 常終了の発生を利用者に提示する
ことを特徴とする請求項 1記載のプログラム実行装置。
[13] 前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異 常終了の発生を利用者に提示する
ことを特徴とする請求項 1記載のプログラム実行装置。
[14] 前記プログラム監視手段は、異常終了の発生を LED表示として利用者に提示する ことを特徴とする請求項 13記載のプログラム実行装置。
[15] 前記プログラム監視手段は、異常終了の発生をディスプレイ上の表示として利用者 に提示する
ことを特徴とする請求項 13記載のプログラム実行装置。
[16] 前記第 2プログラム選択手段は、利用者の指示に基づいて前記プログラムを選択 する
ことを特徴とする請求項 1記載のプログラム実行装置。
[17] 前記第 2プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、 利用者によって選択されたプログラムを実行すべき前記プログラムとして選択する ことを特徴とする請求項 16記載のプログラム実行装置。
[18] 前記第 2プログラム選択手段は、選択可能なプログラムの候補として不揮発性メモリ 上に存在するプログラムを少なくとも提示する
ことを特徴とする請求項 17記載のプログラム実行装置。
[19] 前記第 2プログラム選択手段は、選択可能なプログラムの候補としてネットワーク経 由で取得可能なプログラムを少なくとも提示する
ことを特徴とする請求項 17記載のプログラム実行装置。
[20] 前記第 2プログラム選択手段は、選択可能なプログラムの候補として放送波に含ま れるプログラムを少なくとも提示する
ことを特徴とする請求項 17記載のプログラム実行装置。
[21] 前記第 2プログラム選択手段は、利用者からの選択が所定の時間内に行われない 場合、所定のプログラムを前記プログラムとして選択する ことを特徴とする請求項 17記載のプログラム実行装置。
[22] 前記第 2プログラム選択手段は、利用者からのチャンネル選択要求を受け付けて処 理を行うプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[23] 前記第 2プログラム選択手段は、電子番組表を表示するプログラムを実行すべき前 記プログラムとして選択する
ことを特徴とする請求項 1記載のプログラム実行装置。
[24] 前記プログラム監視手段は、異常終了を検知した前記プログラムに関する情報を記 録する
ことを特徴とする請求項 1記載のプログラム実行装置。
[25] 前記プログラム監視手段は、前記情報を着脱可能な記録媒体に記録する
ことを特徴とする請求項 24記載のプログラム実行装置。
[26] 前記プログラム監視手段は、前記情報を外部に送信する
ことを特徴とする請求項 24記載のプログラム実行装置。
[27] プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第 1プ ログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知さ れた場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択 する第 2プログラム選択ステップと、
前記第 1プログラム選択ステップまたは前記第 2プログラム選択ステップにおいて選 択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
[28] 実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択 する第 1プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、 前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が 検知された場合、前記実行プログラムと同じ種類の実行プログラムを実行すべき実行 プログラムとして選択する第 2プログラム選択ステップと、
前記第 1プログラム選択ステップまたは前記第 2プログラム選択ステップにおいて選 択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
PCT/JP2005/006614 2004-04-06 2005-04-04 プログラム実行装置 WO2005099250A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU2005232103A AU2005232103C1 (en) 2004-04-06 2005-04-04 Program execution device
JP2006512069A JPWO2005099250A1 (ja) 2004-04-06 2005-04-04 プログラム実行装置
CA002561962A CA2561962A1 (en) 2004-04-06 2005-04-04 Program execution device
US10/599,740 US8037456B2 (en) 2004-04-06 2005-04-04 Program execution device
EP05728862A EP1734748A4 (en) 2004-04-06 2005-04-04 PROGRAM EXECUTION DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004111803 2004-04-06
JP2004-111803 2004-04-06

Publications (1)

Publication Number Publication Date
WO2005099250A1 true WO2005099250A1 (ja) 2005-10-20

Family

ID=35125456

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/006614 WO2005099250A1 (ja) 2004-04-06 2005-04-04 プログラム実行装置

Country Status (8)

Country Link
US (1) US8037456B2 (ja)
EP (1) EP1734748A4 (ja)
JP (1) JPWO2005099250A1 (ja)
KR (1) KR101036036B1 (ja)
CN (1) CN100502476C (ja)
AU (1) AU2005232103C1 (ja)
CA (1) CA2561962A1 (ja)
WO (1) WO2005099250A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165551A (ja) * 2006-12-28 2008-07-17 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP6109426B1 (ja) * 2016-01-14 2017-04-05 三菱電機株式会社 デジタル放送受信装置、デジタル放送受信方法及びデジタル放送受信プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101582092B1 (ko) * 2008-03-28 2016-01-04 삼성전자주식회사 Iptv 통신 서비스를 제공하는 응용에 대한 정보 수신 방법 및 장치
JP5406178B2 (ja) * 2008-04-16 2014-02-05 パナソニック株式会社 再生装置、再生方法、プログラム
US20100211988A1 (en) * 2009-02-18 2010-08-19 Microsoft Corporation Managing resources to display media content
US20100215340A1 (en) * 2009-02-20 2010-08-26 Microsoft Corporation Triggers For Launching Applications
US9069585B2 (en) * 2009-03-02 2015-06-30 Microsoft Corporation Application tune manifests and tune state recovery
JP5751881B2 (ja) * 2011-03-28 2015-07-22 京セラ株式会社 電子機器、アプリケーション決定方法及びアプリケーション決定プログラム
CN103853610B (zh) * 2012-12-07 2018-11-16 腾讯科技(深圳)有限公司 资源优化方法及装置
KR102379173B1 (ko) * 2015-01-06 2022-03-28 삼성전자주식회사 운동 기록 관리 방법 및 이를 지원하는 전자 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121490A (ja) * 1993-08-31 1995-05-12 Toshiba Corp 多重処理システムおよびプログラム実行制御方法
JP2000268441A (ja) * 1999-03-17 2000-09-29 Jisedai Joho Hoso System Kenkyusho:Kk 放送番組予約記録方法
JP2001177573A (ja) * 1999-12-20 2001-06-29 Fujitsu Ltd データ通信システム並びにデータ受信端末及びデータ送信端末
JP2003179905A (ja) * 2001-12-13 2003-06-27 Sony Corp 通信制御システム、通信制御装置および方法、情報処理装置および方法、記録媒体、並びにプログラム
JP2004227143A (ja) * 2003-01-21 2004-08-12 Pioneer Electronic Corp 情報処理装置および情報処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381694B1 (en) * 1994-02-18 2002-04-30 Apple Computer, Inc. System for automatic recovery from software problems that cause computer failure
US6446224B1 (en) * 1995-03-03 2002-09-03 Fujitsu Limited Method and apparatus for prioritizing and handling errors in a computer system
EP0907285A1 (en) 1997-10-03 1999-04-07 CANAL+ Société Anonyme Downloading data
US6230284B1 (en) * 1998-04-24 2001-05-08 Intel Corporation Initiating corrective action after the occurrence of a program error
JP2002543494A (ja) 1999-04-28 2002-12-17 ユニバーサル・ミュージック・グループ・インコーポレーテッド 分散コンピュータシステム内のエラーを処理するための方法およびシステム
EP1194840B1 (en) 1999-07-13 2005-02-09 Sun Microsystems, Inc. Digital television receiver for managing execution of an application according to an application lifecycle
BRPI0017159B1 (pt) 2000-03-16 2015-09-08 Thomson Licensing Sa método para substituição de um programa transmitido em um segundo canal de difusão por um programa transmitido em um primeiro canal de difusão
JP2008546221A (ja) * 2005-05-27 2008-12-18 パナソニック株式会社 放送録画再生装置および方法
WO2006129813A1 (en) * 2005-05-31 2006-12-07 Matsushita Electric Industrial Co., Ltd. Broadcast recording and reproduction apparatus with expiration date management unit
WO2006137463A1 (en) * 2005-06-23 2006-12-28 Matsushita Electric Industrial Co., Ltd. Program execution apparatus and execution method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121490A (ja) * 1993-08-31 1995-05-12 Toshiba Corp 多重処理システムおよびプログラム実行制御方法
JP2000268441A (ja) * 1999-03-17 2000-09-29 Jisedai Joho Hoso System Kenkyusho:Kk 放送番組予約記録方法
JP2001177573A (ja) * 1999-12-20 2001-06-29 Fujitsu Ltd データ通信システム並びにデータ受信端末及びデータ送信端末
JP2003179905A (ja) * 2001-12-13 2003-06-27 Sony Corp 通信制御システム、通信制御装置および方法、情報処理装置および方法、記録媒体、並びにプログラム
JP2004227143A (ja) * 2003-01-21 2004-08-12 Pioneer Electronic Corp 情報処理装置および情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1734748A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165551A (ja) * 2006-12-28 2008-07-17 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP4544246B2 (ja) * 2006-12-28 2010-09-15 ソニー株式会社 制御装置および方法、プログラム、並びに記録媒体
US8887091B2 (en) 2006-12-28 2014-11-11 Sony Corporation Information processing apparatus, method, processor, and recording medium for determining whether information stored in a memory is incorrectly updated
JP6109426B1 (ja) * 2016-01-14 2017-04-05 三菱電機株式会社 デジタル放送受信装置、デジタル放送受信方法及びデジタル放送受信プログラム
WO2017122327A1 (ja) * 2016-01-14 2017-07-20 三菱電機株式会社 デジタル放送受信装置、デジタル放送受信方法及びデジタル放送受信プログラム

Also Published As

Publication number Publication date
CA2561962A1 (en) 2005-10-20
CN1939051A (zh) 2007-03-28
AU2005232103C1 (en) 2010-10-28
EP1734748A4 (en) 2008-12-03
AU2005232103A1 (en) 2005-10-20
CN100502476C (zh) 2009-06-17
EP1734748A1 (en) 2006-12-20
US20070277172A1 (en) 2007-11-29
JPWO2005099250A1 (ja) 2008-03-06
KR101036036B1 (ko) 2011-05-19
KR20070006771A (ko) 2007-01-11
US8037456B2 (en) 2011-10-11
AU2005232103B2 (en) 2009-07-23

Similar Documents

Publication Publication Date Title
WO2005099250A1 (ja) プログラム実行装置
US20090193101A1 (en) Multimedia data transmitting apparatus and multimedia data management method
US9264757B2 (en) Service executing apparatus
US8086862B2 (en) Program data file storage method in broadcast receiver and broadcast receiver
US8458762B2 (en) Program replacing method
US20050138397A1 (en) Authenticated program execution method
US7089554B2 (en) Program executing apparatus
US20090222867A1 (en) Broadcast receiving apparatus, video storing apparatus, and multimedia delivering system
US20080172712A1 (en) Multimedia data transmitting apparatus, multimedia data receiving apparatus, multimedia data transmitting method, and multimedia data receiving method
JPWO2007072680A1 (ja) データ出力装置、機器制御装置およびマルチメディア配信システム
US20080250461A1 (en) Multimedia data transmitting apparatus and multimedia data receiving apparatus
WO2006075557A1 (ja) プログラム実行装置
US20060253897A1 (en) Copy-protected application for digital broadcasting system
JP2005073239A (ja) サービス実行装置
JP2013149171A (ja) プログラム実行方法およびその装置
MXPA06011297A (en) Program execution device

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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

Ref document number: 2006512069

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1020067018753

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2005232103

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2561962

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: PA/a/2006/011297

Country of ref document: MX

Ref document number: 200580010419.4

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2005728862

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10599740

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

ENP Entry into the national phase

Ref document number: 2005232103

Country of ref document: AU

Date of ref document: 20050404

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 2005232103

Country of ref document: AU

WWP Wipo information: published in national office

Ref document number: 2005728862

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10599740

Country of ref document: US