JP2013149171A - プログラム実行方法およびその装置 - Google Patents

プログラム実行方法およびその装置 Download PDF

Info

Publication number
JP2013149171A
JP2013149171A JP2012010477A JP2012010477A JP2013149171A JP 2013149171 A JP2013149171 A JP 2013149171A JP 2012010477 A JP2012010477 A JP 2012010477A JP 2012010477 A JP2012010477 A JP 2012010477A JP 2013149171 A JP2013149171 A JP 2013149171A
Authority
JP
Japan
Prior art keywords
application
application program
middleware
program
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012010477A
Other languages
English (en)
Inventor
Makoto Harada
真 原田
Kimitaka Nambu
公孝 南部
Yasuhiro Yoshida
康浩 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2012010477A priority Critical patent/JP2013149171A/ja
Priority to US13/558,144 priority patent/US20130191853A1/en
Publication of JP2013149171A publication Critical patent/JP2013149171A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47211End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting pay-per-view content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】第1のミドルウェア上で動作するアプリケーションと第2のミドルウェア上で動作するアプリケーションとに対する課金等に関する管理を、ユーザが共通の操作で行うことを可能にする。
【解決手段】第1のミドルウェア上で動作する第1のアプリケーション(AjaxCEアプリケーション1308)と、第2のミドルウェア上で動作する、課金等の管理を行う第2のアプリケーション(アプリケーション制御部1302c)とを備える端末装置500において、第2のアプリケーションが、第1のアプリケーションについての実行指示を受け付け(S2701)、第1のアプリケーションについての課金情報等を取得して第1のアプリケーションの実行可否を判定し(S2702〜S2705)、実行可能と判定した場合に、第2のミドルウェアおよび第1のミドルウェアを通じて第1のアプリケーションを起動する(S2706〜S2708)。
【選択図】図29

Description

本発明は、アプリケーションプログラムを実行するプログラム実行方法および装置に関する。特に、セットトップボックス等の装置における異なるミドルウェア間でのアプリケーションプログラムの実行を制御する技術に関する。
北米のCable TV向けセットトップボックスでは、H/E(headend)から送出されたMPEG2ストリームの再生、EPG(Electric Programing Guide)に加え、VOD(Video On Demand)、PPV(Pay Per View)等、様々なサービスを実現している。また、HDD(Hard Disk Drive)を持つセットトップボックスでは、TSB(Time Shift Buffer、追っかけ再生機能)、番組録画などのサービスも実現している。セットトップボックスに搭載されているハードウェアを利用し、これらのサービスを実現するアプリケーションプログラム(以下、単に「アプリケーション」ともいう。)を記述するミドルウェアの規格としてOCAP(OpenCable Application Platform)規格(非特許文献1)の採用が進んでいる。OCAPミドルウェア上で動作するアプリケーション(OCAPアプリケーション)は、Java(登録商標)で記述され、OCAP規格準拠のセットトップボックスであれば、どのセットトップボックス上でも動作することができることを特徴とする。なお、「ミドルウェア」とは、OS(Operating System)上で動作し、アプリケーションプログラムの起動、停止および監視等の制御を行うソフトウェア(アプリケーションのプラットフォーム、あるいは、実行エンジン)である。
OCAP規格では、チューナ、Flashメモリ等のハードウェアの制御、H/Eとの通信、AV再生、TSB、録画、およびGraphicsの表示などを可能にする。Graphics表示の機能を用いれば、EPGだけでなく、ゲームアプリケーションなども実現可能である。
また、OCAP規格では複数のアプリケーションをOCAPミドルウェア上で動作させることが可能である。また、アプリケーションが、自分自身、あるいは他のアプリケーションを制御することも可能にしている。一般的な運用としては、OCAPミドルウェア上で、複数のアプリケーションが同時に動作し、そのうちの1つにモニタアプリケーションと呼ばれるCableサービス事業者が作成したアプリケーションが動作している。このアプリケーションが他のアプリケーション(例えばEPGを実現するアプリケーション)のためのハードウェアのリソース調停、および、他のアプリケーションの制御を行っている。
OpenCable Application Platform Specifications(OC−SP−OCAP1.1.3−100603.pdf)
OCAP規格を用いて、ゲームアプリケーションなど、様々なアプリケーションを作成することが可能である。しかしながら、一般開発者が作成可能な環境が乏しいため、EPG、VOD、PPV以外のアプリケーションはあまり開発されていない。
一方、Android(登録商標)のミドルウェアApplication Engine上で動作するアプリケーションなどは、多くの開発者が開発に従事し、日々、新しいアプリが作成されているという状況である。
また、YouTube(登録商標)、各放送事業者による独自のLive Streamingを受信する、あるいは他の機器との連携するアプリケーションを実現するAjaxCEなどのミドルウェア(実行エンジン)とその上で動作するアプリケーションも存在する。
近年、Cableサービス事業者としては、これら、OCAP以外のサービスを取り込み、よりサービス契約者に魅力的なサービスを実現したいという要求がある。
そのためには、OCAPミドルウェア上で動作するOCAPアプリケーションからOCAPミドルウェア以外のミドルウェア(実行エンジン)で動作するアプリケーションを制御する必要があるが、制御するために必要な情報、具体的には、課金情報、レーティング情報などを取得できず、OCAPアプリケーションから、適切に起動および停止等のライフサイクルに関する制御ができなかった。
また、OCAPミドルウェア上で動作するOCAPアプリケーションは独自の課金メカニズムを保持しており、また、独自のペアレンタルロックのメカニズムを有している。これらのOCAPミドルウェア上で実現されたメカニズムについては、他のミドルウェアからは現状では利用できず、独自に構築する必要があり、Cableサービス契約者にとっては、支払方法の異なる複数の課金メカニズム、あるいは、様々なペアレンタルロック基準が存在することになり、非常に煩雑である。
そこで本発明は、第1のミドルウェア上で動作するアプリケーションと第2のミドルウェア上で動作するアプリケーションとに対するペアレンタルロックまたは課金に関する管理を、ユーザが共通の操作で行うことを可能にするプログラム実行方法およびその装置を提供することを目的とする。
上記目的を達成するために、本発明に係るプログラム実行方法の一形態は、オペレーティングシステムと、前記オペレーティングシステム上で動作する第1のミドルウェアおよび第2のミドルウェアと、前記第1のミドルウェア上で動作する第1のアプリケーションプログラムと、前記第2のミドルウェア上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーションプログラムとを備える装置におけるプログラム実行方法であって、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムについての実行指示を受け付ける受け付けステップと、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムが購入されているか否かに関する課金情報、または、前記第1のアプリケーションプログラムについてのペアレンタルロックの有無を示すペアレンタルロック情報を取得する取得ステップと、前記第2のアプリケーションプログラムが、前記課金情報または前記ペアレンタルロック情報に基づいて、前記第1のアプリケーションプログラムの実行可否を判定する判定ステップと、前記第1のアプリケーションプログラムが実行可能と判定された場合に、前記第2のアプリケーションプログラムが、前記第2のミドルウェアおよび前記第1のミドルウェアを通じて、前記第1のアプリケーションプログラムを起動する起動ステップとを含む。
これにより、第2のミドルウェア上で動作する第2のアプリケーションプログラムによる管理の下で、第1のミドルウェア上で動作する第1のアプリケーションプログラムに対する実行可否の判断および起動が行われる。よって、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムに対する課金またはペアレンタルロックに関する管理は、第2のアプリケーションプログラムによる管理に統一される。その結果、ユーザは、異なるミドルウェア上で動作する複数のアプリケーションプログラムに対して統一された一つの操作(例えば、OCAPアプリケーションでの操作)で課金またはペアレンタルロックに関する管理を行うことができる。
ここで、さらに、前記判定ステップで前記第1のアプリケーションプログラムが未購入であるために実行不可と判定された場合、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムの購入処理をおこなう購入ステップを含んでもよい。これにより、第1のアプリケーションプログラムが未購入である場合に、第2のアプリケーションプログラムの管理下で第1のアプリケーションプログラムが購入されるので、ユーザは、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムを、統一された一つの操作(例えば、OCAPアプリケーションでの操作)で購入することができる。
また、前記取得ステップでは、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムを含む、前記第1のミドルウェアおよび前記第2のミドルウェア上で動作するアプリケーションプログラムの属性を予め保持しているデータベースから、前記課金情報または前記ペアレンタルロック情報を取得してもよい。これにより、第1のミドルウェアおよび第2のミドルウェア上で動作するアプリケーションプログラムの属性が格納されたデータベースを参照することで、一のアプリケーションプログラムが自分とは異なるミドルウェア上で動作するアプリケーションプログラムの属性を容易に取得することができ、課金またはペアレンタルロックの管理の共通化が容易になる。
また、前記取得ステップでは、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムに対する問い合わせを行い、前記第1のアプリケーションプログラムから回答を得ることで、前記課金情報または前記ペアレンタルロック情報を取得してもよい。これにより、第2のアプリケーションプログラムが、第1のアプリケーションプログラムから、直接、課金情報またはペアレンタルロック情報を取得するので、各アプリケーションプログラムの属性を格納した共通のデータベースを設ける必要がなくなる。
また、前記起動ステップでは、前記第2のアプリケーションプログラムが、実行可能と判定された前記第1のアプリケーションプログラムを特定する情報を前記第2のミドルウェアに通知し、前記第2のミドルウェアが、前記第2のアプリケーションプログラムから通知された前記情報に基づいて、前記第1のアプリケーションプログラムが動作するミドルウェアとして前記第1のミドルウェアを特定し、特定した前記第1のミドルウェアに対して前記第1のアプリケーションプログラムの起動を要求するのが好ましい。これにより、第2のアプリケーションプログラムにより、第2のミドルウェアおよび第1のミドルウェアを通じて、第1のアプリケーションプログラムが確実に起動される。
また、上記目的を達成するために、本発明に係るプログラム実行装置の一形態は、プロセッサを備えるプログラム実行装置であって、前記プロセッサによって実行されるプログラムとして、オペレーティングシステムと、前記オペレーティングシステム上で動作する第1のミドルウェアと、前記オペレーティングシステム上で動作する第2のミドルウェアと、前記第1のミドルウェア上で動作する第1のアプリケーションプログラムと、前記第2のミドルウェア上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーションプログラムとを備え、前記第2のアプリケーションプログラムは、少なくとも前記第1のミドルウェア上で動作するアプリケーションプログラムを表示するとともに、前記第1のアプリケーションプログラムを実行する旨の指示を受け付けるアプリケーションリスト表示部と、前記第1のアプリケーションプログラムが購入されているか否かに関する課金情報、または、前記第1のアプリケーションプログラムについてのペアレンタルロックの有無を示すペアレンタルロック情報を取得し、取得した前記課金情報または前記ペアレンタルロック情報に基づいて、前記第1のアプリケーションプログラムの実行可否を判定するアプリケーション起動判定部と、前記第1のアプリケーションプログラムが実行可能と判定された場合に、前記第2のミドルウェアおよび前記第1のミドルウェアを通じて、前記第1のアプリケーションプログラムを起動するアプリケーション起動部とを備える。
これにより、第2のミドルウェア上で動作する第2のアプリケーションプログラムによる管理の下で、第1のミドルウェア上で動作する第1のアプリケーションプログラムに対する実行可否の判断および起動が行われる。よって、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムに対する課金またはペアレンタルロックに関する管理は、第2のアプリケーションプログラムによる管理に統一される。その結果、ユーザは、異なるミドルウェア上で動作する複数のアプリケーションプログラムに対して統一された一つの操作(例えば、OCAPアプリケーションでの操作)で課金またはペアレンタルロックに関する管理を行うことができる。
ここで、さらに、前記アプリケーション起動判定部で前記第1のアプリケーションプログラムが未購入であるために実行不可と判定された場合、前記第1のアプリケーションプログラムの購入処理をおこなう購入処理部を備えてもよい。これにより、第1のアプリケーションプログラムが未購入である場合に、第2のアプリケーションプログラムの管理下で第1のアプリケーションプログラムが購入されるので、ユーザは、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムを、統一された一つの操作(例えば、OCAPアプリケーションでの操作)で購入することができる。
なお、本発明は、上記のようなプログラム実行方法およびプログラム実行装置として実現でくるだけでなく、上記第2のプログラムとして実現したり、その第2のプログラムを記録したコンピュータ読み取り可能なCD−ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
以上のように本発明によれば、第2のアプリケーションから、第2のアプリケーションのプラットフォームとなるミドルウェアとは異なるミドルウェア上で動作する第1のアプリケーションを適切に制御できる。よって、ユーザによるアプリケーションの購入情報、および、ユーザにより設定されたペアレンタルロック情報が一元化され、異なるミドルウェア上で動作する複数のアプリケーションの購入およびペアレンタルロックに関するユーザ操作が共通化され、操作の煩雑さが解消される。
また、特に第1のアプリケーションが未購入であり実行不可と判定された場合、第2のアプリケーションによって第1のアプリケーションの購入処理がおこなわれるので、アプリケーションの購入プロセスの一元化が図られ、アプリケーションの購入に関するユーザ操作の煩雑さが解消される。
本発明に係るケーブルテレビシステムの構成図である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域(Out Of Band)の使い方の一例を示す図である。 本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域(In−Band)の使い方の一例を示す図である。 本発明に係るケーブルテレビシステムにおける端末装置の構成図である。 本発明に係るケーブルテレビシステムにおける端末装置の外観の一例を示す図である。 本発明に係るCableCardのハードウェア構成を示す図である。 本発明に係るCableCardが保存するプログラム構成を示す図である。 MPEG規格で定義されているパケットの構成図である。 MPEG2トランスポートストリームの一例を示す図である。 入力部をフロントパネルで構成した場合の外観の一例を示す図である。 本発明に係る表示合成部の構成図である。 本発明に係る端末装置が保存するプログラム構成を示す図である。 (a)は本発明に係るディスプレイの表示の一例を示す図である。(b)は本発明に係るディスプレイの表示の一例を示す図である。 本発明に係る2次記憶部が保存する情報の一例を示す図である。 本発明に係る1次記憶部が保存する情報の一例を示す図である。 MPEG2規格が規定するPATの内容を表す模式図である。 MPEG2規格が規定するPMTの内容を表す模式図である。 DVB−MHP規格が規定するAITの内容を表す模式図である。 DSMCC方式で送信されるファイルシステムを表す模式図である。 XAITの内容を表す模式図である。 本発明に係る2次記憶部が保存する情報の一例を示す図である。 本発明に係るアプリケーション制御部の構成図である。 本発明に係るExternalAMのクラス構成の一例を示す図である。 本発明に係るアプリケーションのリストを表示するシーケンスを示す図である。 本発明に係るアプリケーションリスト表示の一例を示す図である。 本発明に係るアプリケーション選択時におけるフィルタリング条件のリスト表示の一例を示す図である。 本発明に係るフィルタリング条件の設定画面例を示す図である。 本発明に係る外部アプリケーションの起動シーケンスを示す図である。 図29の起動シーケンスを説明するための図である。 本発明に係る外部アプリケーションの購入プロセスのシーケンスを示す図である。 本発明に係る外部アプリケーションの購入画面の一例を示す図である。 本発明に係るペアレンタルロック管理部を含むアプリケーション制御部の構成図である。 本発明に係るアプリケーションリスト表示の一例を示す図である 本発明に係る外部アプリケーションの起動シーケンスを示す図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、特許請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図1は、ケーブルシステムを構成する装置の関係を表したブロック図である。このケーブルシステムは、ヘッドエンド101及び3個の端末装置A111、端末装置B112、端末装置C113で構成される。なお、本実施の形態では、1つのヘッドエンドに対して3つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
ヘッドエンド101は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド101と端末装置A111、端末装置B112および端末装置C113間の伝送に用いられる周波数帯域は、分割して用いられる。
図2は、周波数帯域の分割の一例を示す表である。周波数帯域は、Out Of Band(略称OOB)とIn−Bandの2種類に大別される。5〜130MHzがOOBに割り当てられ、主にヘッドエンド101と端末装置A111、端末装置B112および端末装置C113間のデータのやり取りに使用される。130MHz〜864MHzはIn−Bandに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。OOBではQPSK変調方式が、In−BandではQAM64変調方式が使用される。なお、変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
図3は、OOB周波数帯域の更に詳細な使用の一例を示す図である。70MHz〜74MHzはヘッドエンド101からのデータ送信に使用され、全ての端末装置A111、端末装置B112および端末装置C113が、ヘッドエンド101から同じデータを受け取ることになる。一方、10.0MHz〜10.1MHzは端末装置A111からヘッドエンド101へのデータ送信に使用され、10.1MHz〜10.2MHzは端末装置B112からヘッドエンド101へのデータ送信に使用され、10.2MHz〜10.3MHzは端末装置C113からヘッドエンド101へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置A111、端末装置B112および端末装置C113からヘッドエンド101に送信することができる。
図4は、In−Bandの周波数帯に対する使用の一例を示す図である。150〜156MHzと156〜162MHzはそれぞれテレビチャンネル1とテレビチャンネル2に割り当てられ、以降、6MHz間隔でテレビチャンネルが割り当てられている。310MHz以降は、1MHz単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、MPEG2仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
ヘッドエンド101は、これらの周波数帯域に適切な放送信号を送信するため、QPSK変調部やQAM変調部等を有する。また、端末装置からのデータを受信するため、QPSK復調部を有する。また、ヘッドエンド101は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
端末装置A111、端末装置B112および端末装置C113は、ヘッドエンド101からの放送信号を受信し再生する。また、ヘッドエンド101に対して、各端末装置固有のデータを送信する。3つの端末装置A111、B112およびC113は本実施の形態では同じ構成を備える。
図5は、端末装置A111、B112およびC113(ここでは、500)のハードウェア構成を表すブロック図である。端末装置500は、QAM復調部501、QPSK復調部502、QPSK変調部503、TSデコーダ505、オーディオデコーダ506、スピーカ507、ビデオデコーダ508、ディスプレイ509、2次記憶部510、1次記憶部511、ROM512、入力部513、CPU(あるいは、プロセッサ)514、OSD制御部515、表示合成部516、およびシステム設定部517で構成される。また端末装置500には、CableCard504が着脱できる。
図6は、端末装置500の外観の一例である薄型テレビを示す図である。
薄型テレビの筐体601は、CableCard504を除く、端末装置500の構成要素をすべてを内蔵している。
ディスプレイ602、図5におけるディスプレイ509に相当する。
複数のボタンで構成されるフロントパネル部603は、図5の入力部513に相当する。
信号入力端子604は、ヘッドエンド101との信号の送受信を行うためにケーブル線を接続する。この信号入力端子604は、図5のQAM復調部501、QPSK復調部502およびQPSK変調部503と接続されている。
CableCardカード605は、図5のCableCard504に相当する。CableCard504は、図6のCableCardカード605のように、端末装置500とは独立した形態を取り、端末装置500に着脱可能となっている。CableCard504の詳細は後述する。
挿入スロット606はCableCardカード605を挿入するスロットである。
図5を参照して、QAM復調部501は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQAM変調され送信されてきた信号を復調し、CableCard504に引き渡す。
QPSK復調部502は、CPU514から指定された周波数を含むチューニング情報で、ヘッドエンド101でQPSK変調され送信されてきた信号を復調し、CableCard504に引き渡す。
QPSK変調部503は、CPU514から指定された周波数を含む変調情報で、CableCard504から渡された信号をQPSK変調し、ヘッドエンド101に送信する。
CableCard504は、図6のように端末装置500から着脱可能な形態をしている。端末装置500とCableCard504との接続インターフェースは、OpenCable(登録商標) CableCard Interface 2.0 Specification(OC−SP−CCIF2.0−I18−090508)及びこの仕様書から参照されている仕様書で定義されている。ここでは、その説明は省略し、本発明に関する部分のみを解説する。
図7は、CableCard504の内部構成を表すブロック図である。CableCard504は、第1デスクランブラ部701、第2デスクランブラ部702、スクランブラ部703、第1記憶部704、第2記憶部705およびCPU(あるいは、プロセッサ)706で構成される。
第1デスクランブラ部701は、CPU706からの指示により、端末装置500のQAM復調部501から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置500のTSデコーダ505に送る。デコードに必要な鍵などの情報はCPU706から適宜与えられる。具体的には、ヘッドエンド101はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購入すると、第1デスクランブラ部701は、CPU706から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第1デスクランブラ部701は、デスクランブルを行わず、受け取った信号をそのまま、TSデコーダ505に送る。
第2デスクランブラ部702は、CPU706からの指示により、端末装置500のQPSK復調部502から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをCPU706に引き渡す。
スクランブラ部703は、CPU706からの指示により、CPU706から受け取ったデータを暗号化し、端末装置500のQPSK変調部503に送る。
第1記憶部704は、具体的にはRAM等の一次記憶メモリで構成され、CPU706が処理を行う際、一時的にデータを保存するために使用される。
第2記憶部705は、具体的にはフラッシュROM等の2次記憶メモリで構成され、CPU706が実行するプログラムを格納し、また、電源OFFになっても消去されては困るデータの保存に使用される。
CPU706は、第2記憶部705が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図8は、第2記憶部705が記憶するプログラムの一例を示す図である。図8では、プログラム800は、メインプログラム801、初期化サブプログラム802、ネットワークサブプログラム803、再生サブプログラム804、PPVサブプログラム805等複数のサブプログラムで構成されている。
ここでPPVとはPay Per Viewの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド101に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払うものである。
メインプログラム801は、CPU706が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
初期化サブプログラム802は、電源投入時にメインプログラム801によって起動され、端末装置500との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、OpenCable(登録商標) HOST−CableCard Interface Specification(OC−SP−HOSTCableCard−IF−I12−030210)及びこの仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム802は、第2記憶部705が記憶する第1の周波数を端末装置500のCPU514を通して、QPSK復調部502に通知する。QPSK復調部502は、与えられた第1の周波数でチューニングを行い、信号を第2デスクランブラ部702に送る。また、初期化サブプログラム802は、第2記憶部705が記憶する第1の鍵等の復号情報を第2デスクランブラ部702に与える。その結果、第2デスクランブラ部702は、デスクランブルを行い、初期化サブプログラム802を実行するCPU706に引き渡す。よって、初期化サブプログラム802は情報を受け取ることができる。本実施の形態では、初期化サブプログラム802はネットワークサブプログラム803を通して情報を受け取ることとする。詳細は後述する。
また、初期化サブプログラム802は、第2記憶部705が記憶する第2の周波数を端末装置500のCPU514を通して、QPSK変調部503に通知する。初期化サブプログラム802は第2記憶部705が記憶する暗号化情報をスクランブラ部703に与える。初期化サブプログラム802が送信したい情報を、ネットワークサブプログラム803を介して、スクランブラ部703に与えると、スクランブラ部703は、与えられた暗号化情報を用いて、データを暗号化し、端末装置500のQPSK変調部503に与える。QPSK変調部503は、与えられた暗号化された情報を変調し、ヘッドエンド101に送信する。
この結果、初期化サブプログラム802は、端末装置500、第2デスクランブラ部702、スクランブラ部703およびネットワークサブプログラム803を通して、ヘッドエンド101と双方向通信を行うことができる。
ネットワークサブプログラム803は、メインプログラム801、初期化サブプログラム802等の複数のサブプログラムから使用される、ヘッドエンド101との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム803を使用する他のサブプログラムに対して、TCP/IPによって、ヘッドエンド101と双方向通信を行っているように振舞う。なお、TCP/IPは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム803は、電源投入時に初期化サブプログラム802に起動されると、予め第2記憶部705が記憶しているCableCard504を識別する識別子であるMACアドレス(Media Access Controlアドレスの略)を、端末装置500を通してヘッドエンド101に通知し、IPアドレスの取得を要求する。ヘッドエンド101は、端末装置500を介してCableCard504にIPアドレスを通知し、ネットワークサブプログラム803は、IPアドレスを第1記憶部704に記憶する。以降、ヘッドエンド101とCableCard504は、このIPアドレスを、CableCard504の識別子として使用し、通信を行う。
再生サブプログラム804は、第2記憶部705が記憶する第2の鍵等の復号情報や、端末装置500から与えられる第3の鍵等の復号情報を第1デスクランブラ部701に与えて、デスクランブルを可能にする。また、再生サブプログラム804は、ネットワークサブプログラム803を通して、第1デスクランブラ部701に入力されている信号が、PPVチャンネルであることの情報を受け取る。PPVチャンネルと知ったときは、再生サブプログラム804は、PPVサブプログラム805を起動する。
PPVサブプログラム805は、起動されると、端末装置500に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置500のCPU514に画面に表示したい情報を送ると、端末装置500のCPU514上で動作するプログラムが、端末装置500のディスプレイ509上にメッセージを表示する。ユーザは、端末装置500の入力部513を通して暗証番号を入力すると、端末装置500のCPU514が、それを受け取り、CableCard504のCPU706上で動作するPPVサブプログラム805に通知する。PPVサブプログラム805は、受け取った暗証番号をネットワークサブプログラム803を通してヘッドエンド101に送信する。ヘッドエンド101は、暗証番号が正しければ、復号に必要な第4の鍵などの復号化情報をネットワークサブプログラム803を介して、PPVサブプログラム805に通知する。PPVサブプログラム805は受け取った第4の鍵などの復号化情報を第1デスクランブラ部701に与え、第1デスクランブラ部701は、与えられた復号化情報を用いて、入力されている信号をデスクランブルする。
図5を参照して、TSデコーダ505は、CableCard504から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ506、ビデオデコーダ508およびCPU514に引き渡す。ここで、CableCard504から来る信号はMPEG2トランスポートストリームである。なお、MPEG2トランスポートストリームの詳細はMPEG規格書 ISO/IEC13818−1に記載されており、本実施の形態ではその説明は省略する。MPEG2トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットIDが振られている。図9はパケットの構成図である。パケット900は、固定長の188バイトで構成される。先頭4バイトがヘッダー901であり、そのヘッダー901はパケットの識別情報を格納している。残り184バイトがペイロード902であり、そのペイロード902は送信したい情報を含んでいる。903は、ヘッダー901の内訳である。この内訳903に示されるように、先頭から12ビット目〜24ビット目までの13ビットにパケットIDが含まれている。図10は送られてくる複数のパケットの列を表現した模式図である。パケット1001は、ヘッダーにパケットID「1」を持ち、そのペイロードには映像Aの1番目の情報が入っている。パケット1002は、ヘッダーにパケットID「2」を持ち、そのペイロードには音声Aの1番目の情報が入っている。パケット1003は、ヘッダーにパケットID「3」を持ち、そのペイロードには音声Bの1番目の情報が入っている。
パケット1004は、ヘッダーにパケットID「1」を持ち、そのペイロードには映像Aの2番目の情報が入っており、これはパケット1001の続きになっている。同様にパケット1005、1026、1027も他のパケットの後続データを格納している。このように、同じパケットIDを持つパケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
図10を参照して、CPU514がパケットID「1」と出力先「ビデオデコーダ508」とをTSデコーダ505に指示すると、TSデコーダ505はCableCard504から受け取ったMPEG2トランスポートストリームからパケットID「1」のパケットを抽出し、ビデオデコーダ508に引き渡す。図10に示される例においては、映像データのみをビデオデコーダ508に引き渡すことになる。同時に、CPU514がパケットID「2」と「オーディオデコーダ506」とをTSデコーダ505に指示すると、TSデコーダ505はCableCard504から受け取ったMPEG2トランスポートストリームからパケットID「2」のパケットを抽出し、オーディオデコーダ506に引き渡す。図10に示される例においては、音声データのみをオーディオデコーダ506に引き渡すことになる。
このパケットIDに応じて必要なパケットだけを取り出す処理が、TSデコーダ505が行うフィルタリングである。TSデコーダ505はCPU514から指示された複数のフィルタリングを同時に実行することができる。
図5を参照して、オーディオデコーダ506は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ507に出力する。
スピーカ507は、オーディオデコーダ506から与えられた信号をシステム設定部517によって指定された設定に従って音声出力する。
システム設定部517は、音量の大小、画面の輝度、コントラストおよび表示位置等の設定をスピーカ507およびディスプレイ509に対して行う。また、本実施の形態では、システム設定部517は表示合成部516に対しても指示を行うが、表示合成部516に対する指示は後述する。
ビデオデコーダ508は、TSデコーダ505から与えられたMPEG2トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、表示合成部516に出力する。また、ビデオデコーダ508はMPEG−I等で表される静止画像を表示合成部516に出力することもできる。
なお、MPEG−I等静止画像を表示する際、前記ビデオデコーダ508とは別にスチルデコーダ等を用いて表示を行ってもよい。
OSD制御部515はCPU514から指示されたグラフィックスの描画命令に従って描画を行い、表示合成部516に出力する。
表示合成部516はビデオデコーダ508から与えられたビデオ映像、あるいは静止画像とOSD制御部から出力されたグラフィックスをアルファ合成し、デジタル−アナログ変換を行いディスプレイ509に出力する。表示合成部516は図12のような構成をもつ。
図12において、508、515、517については、すでに説明したので、ここでの説明を省略する。また、ディスプレイ509については、後述する。補正アルファ値バッファ1201はユーザからの入力にしたがって、システム設定部517によって指定された値を保存する。アルファ値とは透明度を表す値であり、0.0−1.0の範囲で表される。ここで、0.0は完全に透明であることを表し、1.0は完全に不透明であることを表す。
グラフィックスバッファ1202は、OSD制御部515によって描画されたイメージや図形、文字などを保持する。グラフィックスバッファ1202は、各画素に対して色の3原色であるR(赤)、G(緑)、B(青)の各々の値のほかに、透明度を表すR(アルファ値)を保持する。
ビデオバッファ1203およびバックグラウンドバッファ1204は、それぞれ、ビデオデコーダから出力された値(前景色データ、および、背景色データ)を保持する。
合成器1211は補正アルファ値とグラフィックスバッファが保持するR(アルファ値)を掛け合わせる操作を行う。補正アルファ値が指定されていない場合は、補正アルファ値が1.0であるものとして、演算する。なお、補正アルファ値は、8ビットの整数値等、どのような値で保持していてもかまわない。また、各画素に対して、1つの補正アルファ値を用意する等、複数の補正アルファ値を用意しても良い。
合成器1212はグラフィックスバッファが保持する値と補正アルファ値を掛け合わしたものと、ビデオバッファ1203内のデータとバックグラウンドバッファ1204内のデータとのアルファ合成を行う。なお、本実施の形態では、補正アルファ値と、グラフィックスバッファの各画素が保持するアルファ値を掛け合わせているが、グラフィックスバッファの各画素を用いず、すべて、補正アルファ値の値で置き換えるなど、どのような方法で、アルファ値を求めても良い。アルファ合成とは、前景色と背景色とをある割合で合成する処理で、本実施の形態では、演算方法として、Porter−Duffルールを用いて演算を行う。Porter−Duffルールの詳細に関しては、T.Porter and T.Duff、“Compositing Digital Images” SIGGRAPH 84、253−259を参照されたい。
スクリーンバッファ1205は合成器1212で表される演算結果を格納し、この結果をデジタル−アナログ変換し、システム設定部517に指定された設定に従って、ディスプレイ509に出力する。
ディスプレイ509は、具体的にはブラウン管や液晶等で構成され、表示合成部516から与えられた出力信号をシステム設定部517によって指定された設定にしたがって画面に出力する。
2次記憶部510は、具体的には、フラッシュメモリやハードディスク等で構成され、CPU514から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された状態でも保存され続ける。
1次記憶部511は、具体的には、RAM等で構成され、CPU514から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはCPU514に参照される。保存されているデータやプログラムは、端末装置500の電源が切断された際に、抹消される。
ROM512は、書き換え不可能なメモリデバイスであり、具体的にはROMやCD−ROM、DVDなどで構成される。ROM512は、CPU514が実行するプログラムが格納されている。
入力部513は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。図11は、フロントパネルで入力部513を構成した場合の一例を示す図である。フロントパネル1100は、図6のフロントパネル部603に相当する。フロントパネル1100は7つのボタン、上カーソル1101、下カーソル1102、左カーソル1103、右カーソル1104、OKボタン1105、取消ボタン1106、EPGボタン1107、メニューボタン1108およびInfoボタン1109を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、CPU514に通知される。
CPU514は、ROM512が記憶するプログラムを実行する。実行するプログラムの指示に従い、QAM復調部501、QPSK復調部502、QPSK変調部503、CableCard504、TSデコーダ505、ディスプレイ509、2次記憶部510、1次記憶部511およびROM512を制御する。
図13は、ROM512に記憶され、CPU514に実行されるプログラムの構成図の一例である。
プログラム1300は、複数のサブプログラムで構成され、具体的にはOS(Operating System)1301、JavaVM1303、Javaライブラリ1305等で構成される。
OS1301は、端末装置500の電源が投入されると、CPU514が起動するサブプログラムである。OS1301は、オペレーティングシステムの略であり、Linux(登録商標)等が一例である。なお、OS1301は、他のサブプログラムを並行して実行するカーネル1301a及びライブラリ1301bで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、OS1301のカーネル1301aは、EPG1302とJavaVM1303、入力マネージャ1306、システムマネージャであるAjaxCEミドルウェア1307をサブプログラムとして実行する。また、ライブラリ1301bは、これらサブプログラムに対して、端末装置500が保持する構成要素を制御するための複数の機能を提供する。
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをQAM復調部501に引き渡す。QAM復調部501は与えられたチューニング情報に基づき復調処理を行い、復調したデータをCableCard504に引き渡すことができる。この結果、他のサブプログラムはライブラリ1301bを通してQAM復調部501を制御することができる。
EPG1302は、基本的にCableサービス事業者により作成されるJavaプログラム(Javaで記述されるアプリケーション、Javaアプリケーション)である。EPG1302はユーザ(Cableサービス契約者)に番組一覧を表示する、及び、ユーザからの入力を、入力マネージャ1306を通して受け付ける番組表示部1302aと、チャンネル選局を行う再生部1302bで構成される。また、EPG1302はアプリケーション制御部1302cを含むが、これに関しては後述する。また、ここで、EPGはElectric Program Guideの略である。
入力マネージャ1306はユーザからの入力を受け付け、受け付けた入力を、EPG1302、AjaxCEミドルウェア1307など、ユーザからの入力を要求するサブプログラムに配送する。AjaxCEミドルウェア1307はJavaVM1303、Javaライブラリ1305とは異なるアプリケーションの実行エンジン(ミドルウェア)の一例である。AjaxCEアプリケーション1308はAjaxCEミドルウェア1307の上で動作する。
EPG1302は、端末装置500の電源が投入された後、カーネル1301aが起動され、カーネル1301aがJavaVM1303を起動し、Javaライブラリ1305が起動された後、Javaライブラリに含まれるサブプログラムであるAM1305bにより、JavaVM上で動作するJavaアプリケーションとして起動される。この詳細は後述する。また、JavaVM1303、Javaライブラリ1305の説明も後述する。
起動されたEPG1302の内部では、番組表示部1302aが端末装置500の入力部513を通して、ユーザからの入力を待つ。ここで、入力部513が図11で示されるフロントパネル1100で構成されている場合、ユーザが、入力部513のEPGボタン1107を押下すると、EPGボタンの識別子がCPU514に通知される。CPU514上で動作するサブプログラムであるEPG1302の番組表示部1302aは、この識別子を受け取り、番組情報をディスプレイ509に表示する。図14(a)及び(b)は、ディスプレイ509に表示された番組表の一例である。図14(a)を参照して、ディスプレイ509には、格子状に番組情報が表示されている。列1401には、時刻情報が表示されている。列1402には、チャンネル名「チャンネル1」と、列1401の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル1」では、9:00〜10:30に番組「野球(Y対R)」が放映され、10:30〜12:00に「映画AAA」が放映されることを表す。列1403も列1402同様、チャンネル名「チャンネル2」と、列1401の時刻に対応する時間帯に放映される番組が表示されている。9:00〜11:00に番組「映画BBB」が放映され、11:00〜12:00に「ニュース11」が放映される。1430は、カーソルである。カーソル1430は、フロントパネル1100の左カーソル1103と右カーソル1104を押下すると移動する。図14(a)の状態で、右カーソル1104を押下すると、カーソル1430は右に移動し、図14(b)のようになる。また、図14(b)の状態で、左カーソル1103を押下すると、カーソル1430は左に移動し、図14(a)のようになる。
図14(a)の状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1302aは、「チャンネル1」の識別子を再生部1302bに通知する。図14(b)の状態で、フロントパネル1100のOKボタン1105が押下されると、番組表示部1302aは、「チャンネル2」の識別子を再生部1302bに通知する。
また、番組表示部1302aは、表示する番組情報を、CableCard504を通してヘッドエンド101から定期的に、1次記憶部511に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部513のEPGボタン1107が押下された時、1次記憶部511に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
再生部1302bは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルとの関係は、チャンネル情報として、2次記憶部510に予め格納されている。図15は2次記憶部510に格納されているチャンネル情報の一例を示す図である。チャンネル情報は表形式で格納されている。列1501は、チャンネルの識別子である。列1502は、チャンネル名である。列1503はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、QAM復調部501に与える値である。列1504はプログラムナンバーである。プログラムナンバーとは、MPEG2規格で規定されているPMTを識別するための番号である。なお、PMTに関しては、後述する。行1511〜1514の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行1511は識別子が「1」、チャンネル名が「チャンネル1」、チューニング情報に周波数「150MHz」、プログラムナンバーが「101」を含む組となっている。再生部1302bは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャ1305gに引き渡す。
また、再生部1302bは、再生中に、ユーザがフロントパネル1100の上カーソル1101と下カーソル1102を押下すると、入力部513からCPU514を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部1302bは、1次記憶部511に現在再生中のチャンネルの識別子を記憶する。図16(a)、(b)及び(c)は、1次記憶部511に保存しているチャンネルの識別子の例である。図16(a)では識別子「3」が記憶されており、図15を参照し、チャンネル名「TV 3」のチャンネルが再生中であることを示す。図16(a)の状態で、ユーザが上カーソル1101を押下すると再生部1302bは、図15のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル2」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル2」の識別子「2」を引き渡す。同時に、1次記憶部511に記憶されているチャンネル識別子「2」に書き換える。図16(b)は、チャンネル識別子が「2」に書き換えられた状態を表す。また、図16(a)の状態で、ユーザが下カーソル1102を押下すると再生部1302bは、図15のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「TV Japan」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「TV Japan」の識別子「4」を引き渡す。同時に、1次記憶部511に記憶されているチャンネル識別子「4」に書き換える。図16(c)は、チャンネル識別子が「4」に書き換えられた状態を表す。
JavaVM1303は、Java(登録商標)言語で記述されたプログラムを逐次解析し実行するJavaバーチャルマシンである。Java言語で記述されたプログラムはバイトコードと呼ばれる、ハードウェアに依存しない中間コードにコンパイルされる。Javaバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のJavaバーチャルマシンは、バイトコードをCPU514が理解可能な実行形式に翻訳してから、CPU514に引渡し、実行することも行う。JavaVM1303は、カーネル1301aに起動される。Java言語の詳細は、書籍(非特許文献)「Java Language Specification(ISBN 0−201−63451−1)」等の多くの書籍で解説されている。ここでは、その説明を省略する。また、JavaVM自体の詳細な動作などは、非特許文献「Java Virtual Machine Specification(ISBN 0−201−63451―X)」等の多くの書籍で解説されている。ここでは、その説明を省略する。
サービスマネージャ1305gはJavaライブラリ1305に含まれるサブプログラムとして定義され、Java言語で書かれたJavaプログラムであり、JavaVM1303によって逐次実行される。サービスマネージャ1305gは、JNI(Java Native Interface)を通して、Java言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。JNIに関しても、書籍(非特許文献)「Java Native Interface」等の多くの書籍で解説されている。ここでは、その説明を省略する。また、サービスマネージャ1305gは後述のとおり、Tuner1305c、CA1305dおよびJMF1305aを用いてAV再生を実現する。また、AM1305bを用いて、Javaのアプリケーションの制御を実現する。
サービスマネージャ1305gは、最初にJavaライブラリ1305の中にあるTuner1305cに、チャンネルの識別子を引き渡し、チューニングを依頼する。Tuner1305cは、2次記憶部510が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ1305gがチャンネルの識別子「2」をTuner1305cに引き渡すと、Tuner1305cは、図15の行1512を参照して、対応するチューニング情報「156MHz」を獲得する。Tuner1305cは、OS1301のライブラリ1301bを通して、QAM復調部501にチューニング情報を引き渡す。QAM復調部501は与えられたチューニング情報に従ってヘッドエンド101から送信されてきた信号を復調し、CableCard504に引き渡す。
次にサービスマネージャ1305gは、Javaライブラリ1305の中にあるCA1305dにデスクランブルを依頼する。CA1305dは、OS1301のライブラリ1301bを通して復号に必要な情報をCableCard504に与える。CableCard504は、与えられた情報を元に、QAM復調部501から与えられた信号を復号しTSデコーダ505に引き渡す。
次にサービスマネージャ1305gは、Javaライブラリ1305の中にあるJMF1305aにチャンネルの識別子を与え、映像・音声の再生を依頼する。
映像・音声の再生では、まず、最初にJMF1305aは、再生すべき映像と音声を特定するためのパケットIDをPATおよびPMTから取得する。PATおよびPMTはMPEG2規格で規定されている、MPEG2トランスポートストリーム内の番組構成を表現するテーブルであり、MPEG2トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。PATは、Program Association Tableの略で、パケットID「0」のパケットに格納され送信されている。JMF1305aは、PATを取得するため、OS1301のライブラリ1301bを通して、TSデコーダ505にパケットID「0」とCPU514を指定する。TSデコーダ505がパケットID「0」でフィルタリングを行い、CPU514に引き渡すことでJMF1305aは、PATのパケットを収集する。
図17は、収集したPATの情報の一例を模式的に表した表である。列1701は、プログラムナンバーである。列1702は、パケットIDである。列1702のパケットIDはPMTを取得するために用いられる。行1711〜1713は、チャンネルのプログラムナンバーと対応するパケットIDの組である。ここでは、3つのチャンネルが定義されている。行1711はプログラムナンバー「101」とパケットID「501」の組が定義されている。今、JMF1305aに与えられたチャンネルの識別子が「2」とすると、JMF1305aは、図15の行1512を参照して、対応するプログラムナンバー「102」を獲得し、次に、図17のPATの行1712を参照し、プログラムナンバー「102」に対応するパケットID「502」を獲得する。
PMTは、Program Map Tableの略で、PATで規定されたパケットIDのパケットに格納され送信されている。JMF1305aは、PMTを取得するため、OS1301のライブラリ1301bを通して、TSデコーダ505にパケットIDとCPU514を指定する。ここで、指定するパケットIDは「502」とする。TSデコーダ505がパケットID「502」でフィルタリングを行い、CPU514に引き渡すことでJMF1305aは、PMTのパケットを収集する。
図18は、収集したPMTの情報の一例を模式的に表した表である。列1801は、ストリーム種別であり。列1802は、パケットIDである。列1802で指定されるパケットIDのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列1803は補足情報である。行1811〜1814はエレメンタリ−ストリームと呼ばれる、パケットIDと送信している情報の種別の組である。行1811は、ストリーム種別「音声」とパケットID「5011」の組であり、パケットID「5011」のペイロードには音声が格納されていることを表す。JMF1305aは、PMTから再生する映像と音声のパケットIDを獲得する。図18を参照して、JMF1305aは、行1811から音声のパケットID「5011」を、行1812から映像のパケットID「5012」を獲得する。
次に、JMF1305aは、OS1301のライブラリ1301bを通して、獲得した音声のパケットIDと出力先「オーディオデコーダ506」、および、映像のパケットIDと出力先「ビデオデコーダ508」の組を、TSデコーダ505に与える。TSデコーダ505は与えられたパケットIDと出力先に基づいて、フィルタリングを行う。ここではパケットID「5011」のパケットをオーディオデコーダ506に、パケットID「5012」のパケットをビデオデコーダ508に引き渡す。オーディオデコーダ506は、与えられたパケットのデジタル−アナログ変換を行いスピーカ507を通して音声を再生する。ビデオデコーダ508は、与えられたパケットに埋め込まれたビデオデータを連結し、表示合成部516に出力する。
最後にサービスマネージャ1305gは、Javaライブラリ1305の中にあるAM1305bにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、MPEG2トランスポートストリームに含まれるJavaプログラム(Javaアプリケーション)を抽出し、JavaVM1303に実行させることである。MPEG2トランスポートストリームにJavaアプリケーションを埋め込む方法は、MPEG規格書 ISO/IEC13818−6に記述されたDSMCCという方式を用いる。ここではDSMCCの詳細な説明は省略する。DSMCC方式は、MPEG2トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するJavaアプリケーションの情報はAITと呼ばれる形式で、MPEG2トランスポートストリームのパケットの中に埋め込まれ送信されている。AITは、DVB−MHP規格(正式には、ETSI TS 101 812 DVB−MHP仕様V1.0.2)の10章に定義されている、Application Information Tableの略である。
AM1305bは、まず、AITを獲得するため、JMF1305aと同様、PATおよびPMTを取得し、AITが格納されているパケットのパケットIDを獲得する。今、与えられたチャンネルの識別子が「2」で、図17のPAT、図18のPMTが送信されていると、JMF1305aと同様の手順で、図18のPMTを獲得する。AM1305bは、PMTからストリーム種別が「データ」で、かつ、補足情報として「AIT」を持つエレメンタリ−ストリームから、パケットIDを抽出する。図18を参照して、行1813のエレメンタリ−ストリームがそれに該当し、AM1305bは、パケットID「5013」を獲得する。
AM1305bは、OS1301のライブラリ1301bを通してTSデコーダ505にAITのパケットIDと出力先「CPU514」を与える。TSデコーダ505は、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1305bは、AITのパケットを収集することができる。
図19は、収集したAITの情報の一例を模式的に表した表である。列1901はJavaアプリケーションの識別子である。列1902はJavaアプリケーションの制御情報である。制御情報には「autostart」「present」「kill」などがあり、「autostart」は即時に端末装置500がこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味し、「kill」はプログラムを停止することを意味する。列1903は、DSMCC方式でJavaアプリケーションを含んでいるパケットIDを抽出するためのとDSMCC識別子である。列1904はJavaアプリケーションのアプリケーション名である。行1911と1912とは、Javaアプリケーションの情報の組である。行1911で定義されるJavaアプリケーションは、識別子「301」、制御情報「autostart」、DSMCC識別子「1」、プログラム名「a/TopXlet」の組である。行1912で定義されるJavaアプリケーションは、識別子「302」、制御情報「present」、DSMCC識別子「1」、プログラム名「b/GameXlet」の組である。ここで2つのJavaアプリケーションは同じDSMCC識別子を持つが、これは1つのDSMCC方式でエンコードされたファイルシステム内に2つのJavaアプリケーションが含まれていることを表す。ここでは、Javaアプリケーションに対して4つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はDVB−MHP規格を参照されたい。
AM1305bは、AITの中から「autostart」のJavaアプリケーションを見つけ出し、対応するDSMCC識別子及びJavaアプリケーション名を抽出する。図19を参照して、AM1305bは行1911のJavaアプリケーションを抽出し、DSMCC識別子「1」及びJavaアプリケーション名「a/TopXlet」を獲得する。
次にAM1305bは、AITから取得したDSMCC識別子を用いて、JavaアプリケーションをDSMCC方式で格納しているパケットのパケットIDをPMTから獲得する。具体的には、AM1305bは、PMTの中でストリーム種別が「データ」で、かつ、補足情報のDSMCC識別子が合致するエレメンタリ−ストリームのパケットIDを取得する。
今、DSMCC識別子が「1」であり、PMTが図18に示される例とすると、行1814のエレメンタリ−ストリームが合致し、AM1305bは、パケットID「5014」を取り出す。
AM1305bは、OS1301のライブラリ1301bを通してTSデコーダ505にDSMCC方式でデータが埋めこめられたパケットのパケットIDと出力先「CPU514」を指定する。ここでは、パケットID「5014」を与える。TSデコーダ505は、与えられたパケットIDでフィルタリングを行い、CPU514に引き渡す。この結果、AM1305bは、必要なパケットを収集することができる。AM1305bは、収集したパケットから、DSMCC方式に従ってファイルシステムを復元し、1次記憶部511に保存する。なお、外部からデータまたはプログラムを取り込むこと、具体的には、MPEG2トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し1次記憶部511等の記憶手段に保存することを以降、「ダウンロード」と呼ぶ。
図20は、ダウンロードしたファイルシステムの一例を示す図である。図中、丸はディレクトリを四角はファイルを表し、2001はルートディレクトリ、2002はディレクトリ「a」、2003はディレクトリ「b」、2004はファイル「TopXlet.class」、2005はファイル「GameXlet.class」である。
次にAM1305bは、1次記憶部511にダウンロードしたファイルシステム中から実行するJavaアプリケーションをJavaVM1303に引き渡す。今、実行するJavaアプリケーション名が「a/TopXlet」とすると、Javaアプリケーション名の最後に「.class」を付加したファイル「a/TopXlet.class」が実行すべきファイルとなる。「/」はディレクトリやファイル名の区切りである。ここでは、図20を参照して、ファイル2004が実行すべきJavaアプリケーションである。次にAM1305bは、ファイル2004をJavaVM1303に引き渡す。
AM1305bによって実行されたJavaアプリケーションについては、また、Graphics1305fを用いてイメージおよび文字等の描画指示を行うことにより、画面に表示することができる。
Graphics1305fは、Javaアプリケーションより受けた描画命令を、CPU514を通してOSD制御部515に描画指示を行うことにより、イメージおよび文字等の描画を実現する。
Network1305iはJavaアプリケーションより受けた任意のサーバとの通信を前述のCableCard504、QPSK復調部502およびQPSK変調部503を用いて実現する。
JavaVM1303は、引き渡されたJavaアプリケーションを実行する。
サービスマネージャ1305gは、他のチャンネルの識別子を受け取ると、Javaライブラリ1305に含まれる各ライブラリを通して再生している映像・音声及びJavaアプリケーションの実行を、同じくJavaライブラリ1305に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びJavaアプリケーションの実行を行う。
Javaライブラリ1305は、ROM512に格納されている複数のJavaライブラリの集合である。本実施の形態では、ここでは、Javaライブラリ1305は、サービスマネージャ1305g、JMF1305a、AM1305b、Tuner1305c、CA1305d、CableCard Lib(POD Lib)1305e、Graphics1305f等を含んでいる。
ここで、EPG1302の起動に関して述べる。本実施の形態では、EPG1302はJavaアプリケーションとして説明する。
端末装置500の電源が投入された後、カーネル1301aが起動され、カーネル1301aがJavaVM1303を起動し、Javaライブラリ1305が初期化される。Javaライブラリの初期化時、サブプログラムであるAM1305bはJavaライブラリ1305に含まれるCableCard Lib1305eを通してヘッドエンド101と双方向通信を行う。この双方向通信は、CableCard Lib1305e、OS1301のライブラリ1301b及びCableCard504を介して、QPSK復調部502およびQPSK変調部503を使用して実現される。
AM1305bは、この通信を用いてヘッドエンド101から、端末装置500が2次記憶部510に保存すべきJavaアプリケーションの情報を受け取る。この情報をXAIT情報と呼ぶ。XAIT情報は、ヘッドエンド101とCableCard504間で、任意の形式で送信される。
図21は、ヘッドエンド101から取得したXAITの情報の一例を模式的に表した表である。列2101はJavaアプリケーションの識別子である。列2102はJavaアプリケーションの制御情報である。制御情報には「autoselect」、「present」などがあり、「autoselect」は端末装置500が電源投入時にこのプログラムを自動的に実行することを意味し、「present」は自動実行しないことを意味する。列2103は、DSMCC方式でJavaアプリケーションを含んでいるパケットIDを抽出するためのDSMCC識別子である。列2104はJavaアプリケーションのアプリケーション名である。列2105は、Javaアプリケーションの優先度である。行2111と2112は、Javaアプリケーションの情報の組である。行2111で定義されるJavaアプリケーションは、識別子「701」、制御情報「autoselect」、DSMCC識別子「1」、プログラム名「a/EPGXlet1」の組である。
AM1305bは、XAIT情報を受け取ると、AIT情報からJavaアプリケーションをダウンロードした手順と同じ手順で、MPEG2トランスポートストリームからファイルシステムを1次記憶部511に保存する。その後、保存したファイルシステムを2次記憶部510に複写する。なお、1次記憶部511を介さず、直接2次記憶部510にダウンロードすることも実施可能である。
次に、AM1305bは、XAIT情報にダウンロードしたファイルシステムの格納位置を対応つけて2次記憶部510に保存する。図22は、2次記憶部510がXAIT情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す。なお、図22の中で、図21と同じ番号の要素は図21と同じなので、説明は省略する。列2201は対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。2210はダウンロードしたファイルシステムであり、内部にトップディレクトリ2211、ディレクトリ「a」2212、ディレクトリ「b」2213、ファイル「EPGXlet1.class」2214、ファイル「EPGXlet2.class」2215を保持する。
ここで、XAIT情報については、Javaアプリケーションを保存してから保存しているが、Javaアプリケーションを保存する前に保存することも実施可能である。
端末装置500に電源が投入された後、OS1301が、サービスマネージャ1305gをJavaVM1303に指定し、JavaVM1303がサービスマネージャ1305gを起動した後、サービスマネージャ1305gは、最初に2次記憶部510に保存されたXAIT情報を参照する。ここでは、各Javaアプリケーションの制御情報を参照し、「autoselect」のプログラムをJavaVM1303に引き渡し、起動する。図22を参照して、行2111で定義されるJavaアプリケーション「EPGXlet1」が起動される。ここで、AITに記載されているJavaアプリケーションはチューニングに依存するので、ユーザによって他のチャンネルが選択されると、起動しているJavaアプリケーションが停止することがあるが、XAITの情報に記載されているJavaアプリケーションは、AITに記載されているJavaアプリケーションと異なりチューニングに依存しないので、一度起動されると、意図的にJavaアプリケーションを停止しない限り停止しない。
なお、「autoselect」によって自動実行されないJavaアプリケーションについては、EPG1302自身が起動することも可能である。
(アプリケーション例1)
次に、アプリケーション例1として、課金管理を行うアプリケーションの動作を説明する。
ここでは、本発明の目的である外部アプリケーションの制御についてEPG1302のサブプログラムとして定義されるアプリケーション制御部1302cを用いて説明する。アプリケーション制御部1302cはJavaVM1303およびJavaライブラリ1305のいずれの上でも動作しない外部アプリケーションを制御するサブプログラムである。なお、本アプリケーション例では、外部アプリケーションの一例として、AjaxCEアプリケーション1308を用いる。AjaxCEアプリケーション1308はAjaxCEミドルウェア1307の上で動作する。
つまり、本アプリケーション例では、AjaxCEミドルウェア1307がOS1301上で動作する第1のミドルウェアの一例であり、JavaVM1303およびJavaライブラリ1305がOS1301上で動作する第2のミドルウェアの一例であり、AjaxCEアプリケーション1308が第1のミドルウェア上で動作する第1のアプリケーションプログラムの一例であり、EPG1302(あるいはアプリケーション制御部1302c)が第2のミドルウェア上で動作する、課金またはペアレンタルロック管理(本アプリケーション例では課金)を行う第2のアプリケーションプログラムの一例である。
なお、AjaxCEアプリケーション1308およびAjaxCEミドルウェア1307を本例では用いるが、外部アプリケーション(第1のアプリケーション)およびその実行エンジンとしてのミドルウェア(第1のミドルウェア)としては、これに限定されるわけではなく、セットトップボックス上で動作可能な任意のアプリケーションおよびミドルウェアに適用可能である。
アプリケーション制御部1302cは図23のように構成される。つまり、このアプリケーション制御部1302cは、アプリケーションリスト表示部2301、購入処理部2302、アプリケーション起動部2303およびアプリケーション起動判定部2304から構成される。
アプリケーションリスト表示部2301は、少なくとも第1のミドルウェア(ここでは、AjaxCEミドルウェア1307)上で動作するアプリケーションプログラムを表示するとともに、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)を実行する旨の指示を受け付ける処理部である。ここでは、アプリケーションリスト表示部2301は、第1のミドルウェア(ここでは、AjaxCEミドルウェア1307)および第2のミドルウェア(ここでは、JavaVM1303)上で動作するアプリケーションプログラムを表示し、それらに対する実行指示を受け付ける。
アプリケーション起動判定部2304は、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)が購入されているか否かに関する課金情報を取得し、取得した課金情報に基づいて、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)の実行可否を判定する処理部である。なお、課金情報は、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)が購入されているか否かに関する情報であり、必ずしも料金に関する情報を含む必要はない。
なお、アプリケーションリスト表示部2301およびアプリケーション起動判定部2304は、第1のアプリケーションプログラムおよび第2のアプリケーションプログラムを含む、第1のミドルウェアおよび第2のミドルウェア上で動作するアプリケーションプログラムの属性を予め保持しているデータベース(ExternalAM1305hで定義されているExternalAppsDatabase)を参照することで、上記リスト表示および起動判定を行う。
アプリケーション起動部2303は、アプリケーション起動判定部2304によって第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)が実行可能と判定された場合に、第2のミドルウェア(ここでは、JavaVM1303およびJavaライブラリ1305)および第1のミドルウェア(ここでは、AjaxCEミドルウェア1307)を通じて、第1のアプリケーションプログラムを起動する処理部である。
購入処理部2302は、アプリケーション起動判定部2304で第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)が未購入であるために実行不可と判定された場合、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)の購入処理をおこなう処理部である。
以下、これらの構成要素について、より詳細に説明する。
図14のようにEPG画面を表示中に特定のボタン、たとえばInfoボタン1109を押すと、アプリケーション制御部1302cのサブプログラムであるアプリケーションリスト表示部2301がアプリケーションのリストを画面に表示しようとする。
アプリケーションリスト表示部2301は、Javaライブラリ1305のExternalAM1305hを利用し、アプリケーションのリストを取得する。
ここでExternalAM1305hでは図24のようなクラス(ExternalAppsDatabaseクラス2401、ExternalAppFilterクラス2402、ExternalAppsAttributeクラス2403)が定義されている。図24(a)に示されるように、ExternalAppsDatabaseクラス2401はDVB−MHP規格で定義されるAppsDatabaseクラスを拡張したものである。このクラスは、個々のアプリケーション(Javaプログラム)の情報を管理する。このExternalAppsDatabaseクラス2401のgetAppsDatabaseメソッド2401aはExternalAppsDatabaseクラス2401のインスタンスを取得するために使用される。このExternalAppsDatabaseクラス2401のgetExternalAppsAttribute(ExternalAppFilter)メソッド2401bは引数のExternalAppFilterで指定されている基準に適合したExternalAppsAttributeクラス2403のインスタンスのリストを返す。
図24(c)に示されるように、ExternalAppsAttributeクラス2403はOCAP規格で定義されるOcapAppAttributesクラスを拡張したものである。このクラスは個々のアプリケーションに関する情報を保持する。例えば、アプリケーションの識別子(ID)、アプリケーションのタイプ(OCAPのアプリケーションか、あるいはそれ以外かの区別など)、優先度等が定義される。このExternalAppsAttributeクラス2403のgetMetaData()メソッド2403aは、外部アプリケーションがどのようなアプリケーションか説明するために必要な詳細な情報を返す。このgetMetaData()メソッド2403aは戻り値として文字列の配列を返す。1つの文字列は、キーとその値の組を表し、“key=value”の形式で構成される。1つのkeyに対して複数のvalueが存在する場合、“key=value1、value2”のように構成される。一例としては、“genre=action”、“author=aaa”のように構成される。その他、本発明で使用されるkey、valueに関しては適宜説明する。
ExternalAppsAttributeクラス2403のgetRatingInfo()メソッド2403bはこのExternalAppsAttributeクラス2403のインスタンスが表すアプリケーションのレーティング情報を返す。例えば、“E10+”など、文字列として返す。なお“E10+”は対象年齢が10歳以上を意味する。
ExternalAppsAttributeクラス2403のisPurchased()メソッド2403cはこのアプリケーションがすでに購入されているかどうかを示す。基本的に、購入されたアプリケーションはセットトップボックス内に保存されることが期待されるが、ケースによっては、保存されず、実行されるたびにダウンロードされることもありうる。
ExternalAppsAttributeクラス2403のisFree()メソッド2403dはこのアプリケーションが無料か否かを示す。
ExternalAppsAttributeクラス2403のisExpired()メソッド2403eはこのアプリケーションの有効期限内か否かを示す。
ExternalAppsAttributeクラス2403のsetPurchased(boolean)メソッド2403fはこのアプリケーションが購入されたかどうかをセットする。
ExternalAppsAttributeクラス2403のsetExpiration(java.util.Date)メソッド2403gはこのアプリの有効期限をセットするのに使用する。
図24(b)に示されるように、ExternalAppFilterクラス2402はExternalAppsDatabaseクラス2401のgetExternalAppsAttributeメソッド2401bの引数において、取得するべきアプリケーションをフィルタするのに用いる。ExternalAppFilterクラス2402のsetFilteringRule(String)メソッド2402aを用いて、フィルタリングするルールを定める。例えばフィルタリングルールとして“genre=action、puzzle”とした場合、左記ルールに適合したメタデータを持つアプリケーションが取得される。
アプリケーションリスト表示部2301がアプリケーションのリストを表示するときのシーケンスを図25に示す。
まず、ユーザがInfoボタン1109を押下すると、アプリケーションリスト表示部2301がその押下を検知する(S2501)。アプリケーションリスト表示部2301はExternalAppsDatabaseをgetAppsDatabaseメソッド2401aにより取得する(S2502)。アプリケーションリスト表示部2301はExternalAppsFilterを生成し、getExternalAppsAttributeメソッド2401bを呼ぶ(S2503)。ExternalAM1305hは、すでに保存されているアプリケーションのうち指定されたフィルタリング条件にあうアプリケーションをあらわすExternalAppsAttributeクラス2403のインスタンス(ExternalAppsAttributeインスタンス)を生成する(S2504)。ExternalAM1305hは、ネットワーク1305iを用いて指定されたExternalAppsFilterに合致したアプリケーションの情報をサーバに問い合わせ、返信された情報に基づき、ExternalAppsAttributeインスタンスを生成する(S2505)。ExternalAM1305hは生成したExternalAppsAttributeインスタンスのリストをアプリケーションリスト表示部2301に返す(S2506)。最後にアプリケーションリスト表示部2301は返ってきた情報に基づき、画面にアプリケーションのリストを表示する(S2507)。
図26にアプリケーションリスト表示部2301によるアプリケーションリスト画面を示す。図26において、列2601はアプリケーション名、列2602はアプリケーションが動作するミドルウェア、列2603は購入済みか否かあるいはアプリケーションの価格(つまり、課金情報)を表す。購入か否かはisPurchased()メソッド2403fにより取得した値を参照している。価格は例えば、getMetadata()メソッド2403aより取得した値のうち、“price=”以下の値を参照する。列2604は購入済みの場合、アプリケーションの有効期限を表す。これはisExpired()メソッド2403eの戻り値を参照している。また、列2610は、各アプリケーションの識別子を表す。行2605は1つ目のアプリケーションを表す。この行2605は、アプリケーションが、アプリケーションID(識別子)10を持ち、AjaxCEミドルウェア上で動作し、未購入で、価格は$9.99であることを示す。行2606は2つ目のアプリケーションを表し、具体的には、識別子が11、AjaxCEミドルウェア上で動作し、価格は無料であることを示す。行2607は3つ目のアプリケーションを表し、具体的には、識別子が12、AjaxCEミドルウェア上で動作し、購入済みであることを示す。また、有効期限内であることも示す。2608はカーソルを表し、上カーソル1101、下カーソル1102を押下されると、カーソルが上下に動く。ボタン2609は、カーソルがここにあるとき、OKボタン1105が押下されると、図14で示されるEPG画面に戻ることを示す。
なお、本例ではミドルウェアとしてAjaxCEのもののみリストしているが、これは、図25におけるステップS2503のExternalAppsFilterにおいてAjaxCEミドルウェア上で動作するアプリのみ取得するようにフィルタリングすることにより、AjaxCEミドルウェア上で動作するアプリケーションのみ取得することができ、取得した情報を用いて、図26にて行2605から行2607のアプリケーションをリストできる。このようにExternalAppsFilterを用いてどのようにフィルタリングするかは、例えば前もってユーザがプレファレンスを設定することにより、その設定を用いてフィルタリング条件を設定することができる。
なお、アプリケーションリストのフィルタリングについては、図27に示される表示例のように、フィルタリング条件を設定できるボタンを用意してもよい。図27において、3301はアプリケーションの種類、例えば、ゲーム、人気のアプリ、新作アプリなどのフィルタリングを設定できるボタン、3302はミドルウェアの種類のフィルタリングを設定できるボタン、3303は価格の種類、例えば、有料、無料など、のフィルタリングを設定できるボタンを表す。その他は、図26と同じであるので、図26を参照されたい。ここではボタン3302が押下された時の表示例を図28に示す。カーソルが3302にあわされ、ボタンが押下されると、図28のリスト3401のように、ミドルウェアの種類を選択できるボタンが表示される。リスト3401では、“すべて”、“OCAP”、“AjaxCE”の3つのボタンがリストされている。ここで、“AjaxCE”を選択すると、図27の行2605−2607のようにAjaxCEミドルウェア上で動作するアプリケーションがリストされる。
ここで、図26を参照して、購入済みアプリケーション「YouTube」(図26の行2607)にカーソルをあてて選択した時のシーケンスを図29に示す。図29は、本発明に係る外部アプリケーションの起動シーケンスを示す図である。図30は、図29の起動シーケンスを説明するための図である。図30には、端末装置500が保存するプログラム構成と図29におけるステップ名とが記載されている。以下、図29および図30を参照しながら説明する。
まず、ユーザがOKボタン1105を押下し、アプリケーション「YouTube」(図26の行2607)を選択する(S2701)。つまり、アプリケーションリスト表示部2301は、第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)についての実行指示を受け付ける(受け付けステップ)。
アプリケーションリスト表示部2301は、アプリケーション起動部2303へ、指定されたアプリケーション「YouTube」(図26の行2607)の識別子をわたし、起動を要求する(S2702)。
アプリケーション起動部2303はExternalAppsDatabaseより、該当アプリケーションAppProxyを取得する(S2703)。ここでAppProxyとはDVB−MHP規格により定義されるクラスであり、このクラスを用いてアプリケーションの開始、停止等ライフサイクルを制御することができる。
次にアプリケーション起動部2303はアプリケーション起動判定部2304へ指定されたアプリケーション「YouTube」の識別子をわたし、起動の可否を問い合わせる(S2704)。
アプリケーション起動判定部2304はアプリケーション「YouTube」の購入情報isPurchased()メソッド2403c、isFree()メソッド2403d、isExpired()メソッド2403eをもとに起動の可否を返答する(S2705)。つまり、アプリケーション起動判定部2304は、第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)が購入されているか否かに関する課金情報を取得し(取得ステップ)、取得した課金情報に基づいて、第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)の実行可否を判定する(判定ステップ)。ここでは、アプリケーション「YouTube」は購入済みであるので(図27参照)、アプリケーション起動判定部2304は、アプリケーション起動部2303に、起動可能と返答する。
アプリケーション起動部2303はAppProxyクラスのstart()メソッドを用いて、アプリケーションの起動をExternalAM1305hへ要求する(S2706)。つまり、アプリケーション起動判定部2304によって第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)が実行可能と判定された場合に、アプリケーション起動部2303は、第2のミドルウェア(ここでは、JavaVM1303およびJavaライブラリ1305)および第1のミドルウェア(ここでは、AjaxCEミドルウェア1307)を通じて、第1のアプリケーションプログラムを起動する(起動ステップ)。具体的には、以下の処理が行われる。
ExternalAM1305hは、アプリケーションが動作するミドルウェアを特定する(S2707)。例えば、ExternalAppsAttributeクラス2403のgetMetadata()メソッド2403aの戻り値のうち、文字列“middleware=”以下の部分を参照することにより、特定できる。
最後にExternalAM1305hは、該当のミドルウェアに、この場合はAjaxCEミドルウェア1307にアプリケーション「YouTube」の識別子をわたし、起動を要求する(S2708)。
以上のように、本アプリケーション例1によれば、第1のミドルウェア(AjaxCEミドルウェア1307)上で動作する第1のアプリケーション(AjaxCEアプリケーション1308)と、第2のミドルウェア(JavaVM1303)上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーション(アプリケーション制御部1302c)とを備える端末装置500において、第2のアプリケーションが、第1のアプリケーションについての実行指示を受け付け(S2701)、第1のアプリケーションについての課金情報を取得して第1のアプリケーションの実行可否を判定し(S2702〜S2705)、実行可能と判定した場合に、第2のミドルウェアおよび第1のミドルウェアを通じて第1のアプリケーションを起動する(S2706〜S2708)。
これにより、第2のミドルウェア上で動作する第2のアプリケーションプログラムによる管理の下で、第1のミドルウェア上で動作する第1のアプリケーションプログラムに対する実行可否の判断および起動が行われる。よって、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムに対する課金に関する管理は、第2のアプリケーションプログラムによる管理に統一される。その結果、ユーザは、異なるミドルウェア上で動作する複数のアプリケーションプログラムに対して統一された一つの操作(例えば、OCAPアプリケーションでの操作)で課金に関する管理を行うことができる。
なお、起動されるアプリケーションは、セットトップボックスの2次記憶部510に保存されていてもよいし、あるいは、直接、アプリケーション「YouTube」を保持するサーバからダウンロードしてもよい。サーバからダウンロードし、起動する場合は、1次記憶部511へ一度アプリケーションをダウンロードし、そこから読みだすことで、AjaxCEミドルウェア1307はアプリケーション「YouTube」(つまり、AjaxCEアプリケーション1308)を起動する。ただし、アプリケーションの購入状況は保存しておく必要がある。
なお、無料アプリケーション「ゲーム2」(図26の行2606)の場合も上記シーケンスと同等なので、その説明を省略する。
次に、未購入のアプリケーション「ゲーム1」(図26の行2605)を起動するシーケンスを図31に示す。なお、このシーケンスは、ステップS2705までは、購入済みのアプリケーション「YouTube」(図26の行2607)のシーケンスと同じである。
アプリケーション起動判定部2304にて起動が許可されない場合、かつ未購入であることが原因である場合、アプリケーション起動部2303は購入処理部2302にアプリケーションの購入処理を要求する(S2801)。
購入処理部2302はダイアログを出し、ユーザに購入するか否かを問い合わせる(S2802)。ここでダイアログの表示例を図32に示す。ダイアログ2901はディスプレイ509上に表示され、購入の対象となるアプリケーション名、値段、および、購入を問い合わせるメッセージが表示される。また「はい」ボタン2902と「いいえ」ボタン2903の2つのボタンが表示され、カーソル2904は上記2つのボタンのうち1つに合っている。
ユーザが購入することを選択した場合、すなわち、カーソル2904が「はい」ボタンにあり、ユーザがOKボタン1105を押下したとき、購入処理部2302はH/Eとやり取りを行い、購入処理を行う(S2803)。購入処理は、PPV番組の購入等と同じくCableサービス事業者のアプリケーションとH/E、課金システム間のProprietaryな方法で実現されることが想定される。これにより、同一のアプリケーションの購入、PPV、VOD番組の購入を同一の手法で実現できる。また、同一の最大購入金額、最大購入回数等の制限も共有できるメリットが考えられる。しかしながら、この方法に限定されるわけではない。
購入処理が完了すると、購入処理部2302はアプリケーション起動部2303に購入処理が完了したことを通知する(S2804)。また、購入処理が終了したとき、アプリケーション「ゲーム1」(図26の行2605)を表すExternalAppsAttributeクラス2403のsetPurchased(true)メソッド2403fも呼び出し、購入状態を更新する。
これ以降は、図29のS2706以降の処理と同じである。
このようにして、上記判定ステップで第1のアプリケーションプログラムが未購入であるために実行不可と判定された場合、購入処理部2302は、その第1のアプリケーションプログラムの購入処理をおこなう(購入ステップ)。
以上のように、AjaxCEアプリケーション1308(つまり、第1のアプリケーション)の購入情報をEPG1302(つまり、第2のアプリケーション)が取得できることにより、EPG1302(つまり、第2のアプリケーション)は購入状況から適切にAjaxCEアプリケーション1308(つまり、第1のアプリケーション)の起動の可否を判別できるようになった。また、EPGアプリケーション(つまり、第2のアプリケーション)の購入プロセスを用いることにより、購入プロセスの1元化することも可能になる。
このように、購入プロセスを一元化することにより、ユーザは、ミドルウェアおよびアプリケーションごとに購入に関する設定、例えば、クレジットカード情報の設定などを行う必要がなくなり、煩雑さの軽減につながる。
なお、ここでは、AjaxCEミドルウェア1307およびAjaxCEアプリケーション1308を異種のミドルウェアおよび外部アプリケーションの例として述べたが、異種のミドルウェアおよび外部アプリケーションとしては、他の任意のミドルウェアおよびアプリケーションに対して適用できる。また、複数のミドルウェアが存在していても同様に適用できる。
(アプリケーション例2)
次に、アプリケーション例2として、ペアレンタルロック管理を行うアプリケーションの動作を説明する。
アプリケーション例1では、外部アプリケーションの購入状況をEPGアプリケーションに提示することにより、EPGアプリケーションが購入状況に応じて適切にアプリケーションを起動することができた。また、アプリケーションの購入プロセスも既存の購入プロセスを利用することで1元化が可能になった。
本アプリケーション例では、特にペアレンタルロック情報に着目する。本アプリケーション例におけるアプリケーション制御部1302cの構成例は図33に示す。本アプリケーション例では、アプリケーション制御部1302cは、アプリケーションリスト表示部2301、ペアレンタルロック情報管理部3001、アプリケーション起動部2303およびアプリケーション起動判定部2304から構成される。図33において、アプリケーションリスト表示部2301、アプリケーション起動部2303、アプリケーション起動判定部2304は図23と基本的な機能が同じであるため、説明を省略する。アプリケーション例1と異なる点を中心に説明する。
ペアレンタルロック情報管理部3001は、ユーザにより設定されたペアレンタルロック情報を保持する記憶部である。
本アプリケーション例では、アプリケーション起動判定部2304は、ペアレンタルロック情報管理部3001から、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)についてのペアレンタルロックの有無を示すペアレンタルロック情報を取得し、取得したペアレンタルロック情報に基づいて、第1のアプリケーションプログラム(ここでは、AjaxCEアプリケーション1308)の実行可否を判定する。以下、これらの構成要素について、より詳細に説明する。
図33に示されるように、本アプリケーション例では、アプリケーション制御部1302cは、図23における購入処理部2302の代わりにペアレンタルロック情報管理部3001を持つ。一般にEPGアプリケーションは、ペアレンタルロック機能を持ち、番組の視聴制限を実現する。ペアレンタルロックはユーザにより設定される。ペアレンタルロック情報管理部3001はユーザにより設定されたペアレンタルロック情報を保持する。さて、いま、アプリケーションリスト表示部2301がアプリケーションのリストを表示するとする。表示するための処理は、図26のシーケンスと同じであるので、その説明を省略する。アプリケーションリストの表示例を図34に示す。図34において、列3101はレーティング情報を示す。レーティング情報は、ExternalAppsAttributeクラス2403のgetRatingInfo()メソッド2403bにより取得された値である。それ以外の項目に関しては図26と同じであるので説明は省略する。
ここで、ユーザがアプリケーション「YouTube」(図26の行2607)を選択した場合を考える。このときのシーケンスは図35で示される。
図35のシーケンスにおいて、ステップS2701−S2704までは図29のそれと同じであるので、その説明を省略する。
ステップS3201において、アプリケーション起動判定部2304はペアレンタルロック情報をペアレンタルロック情報管理部3001より取得し、アプリケーション「YouTube」(図26の行2607)のレーティング情報と比較し起動の可否を判断する。つまり、アプリケーション起動判定部2304は、第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)についてのペアレンタルロックの有無を示すペアレンタルロック情報を取得し(取得ステップ)、取得したペアレンタルロック情報に基づいて、第1のアプリケーションプログラム(ここでは、アプリケーション「YouTube」)の実行可否を判定する(判定ステップ)。
アプリケーション「YouTube」(図26の行2607)のレーティング情報はアプリケーション「YouTube」(図26の行2607)の情報を保持するExternalAppsAttributeクラス2403のインスタンスにおいてgetRatingInfo()メソッド2403bを呼び出すことにより取得できる。アプリケーション起動判定部2304は、ペアレンタルロック情報と、アプリケーション「YouTube」(図26の行2607)のレーティング情報を比較し、アプリの起動が許可される場合は、その旨をアプリケーション起動部2303に通知する。これ以降、ステップS2706−S2708は図29のそれと同じであるので、説明を省略する。
以上のように、本アプリケーション例2によれば、第1のミドルウェア(AjaxCEミドルウェア1307)上で動作する第1のアプリケーション(AjaxCEアプリケーション1308)と、第2のミドルウェア(JavaVM1303)上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーション(アプリケーション制御部1302c)とを備える端末装置500において、第2のアプリケーションが、第1のアプリケーションについての実行指示を受け付け(S2701)、第1のアプリケーションについてのペアレンタルロック情報を取得して第1のアプリケーションの実行可否を判定し(S2702〜S3201)、実行可能と判定した場合に、第2のミドルウェアおよび第1のミドルウェアを通じて第1のアプリケーションを起動する(S2706〜S2708)。
これにより、第2のミドルウェア上で動作する第2のアプリケーションプログラムによる管理の下で、第1のミドルウェア上で動作する第1のアプリケーションプログラムに対する実行可否の判断および起動が行われる。よって、異なるミドルウェアのそれぞれの上で動作するアプリケーションプログラムに対するペアレンタルロックに関する管理は、第2のアプリケーションプログラムによる管理に統一される。その結果、ユーザは、異なるミドルウェア上で動作する複数のアプリケーションプログラムに対して統一された一つの操作(例えば、OCAPアプリケーションでの操作)でペアレンタルロックに関する管理を行うことができる。
このように、外部のアプリケーション(つまり、第1のアプリケーション)のペアレンタルロック情報をEPGアプリ(つまり、第2のアプリケーション)に開示することにより、EPGアプリケーション(つまり、第2のアプリケーション)は、外部アプリケーション(つまり、第1のアプリケーション)の起動の可否を適切に判断できる。また、EPGアプリケーション(つまり、第2のアプリケーション)が利用しているペアレンタルロック情報を共有することにより、ペアレンタルロック情報管理の一元化も同時に行うことが可能になる。
このように、管理の一元化を行うことで、ユーザがミドルウェアごとにペアレンタルロック情報を設定する必要がなくなり、手間を省くことができ、また、設定ミスも軽減できる。
以上、本発明に係るプログラム実行方法およびその装置について、実施の形態、アプリケーション例1およびアプリケーション例2に基づいて説明したが、本発明は、このような実施の形態等に限定されない。本発明の主旨を逸脱しない範囲で、各実施の形態に対して当業者が思いつく各種変形を施して得られる形態や、各実施の形態の構成要素を任意に組み合わせて得られる形態も、本発明に含まれる。
たとえば、上記実施の形態では、第2のアプリケーションが第1のアプリケーションの属性を取得するために、第1のミドルウェアおよび第2のミドルウェア上で動作するアプリケーションの属性を予め保持しているデータベースデータベース(ExternalAM1305hで定義されているExternalAppsDatabase)を参照したが、第1のアプリケーションの属性を取得する方法としては、これに限られない。第2のアプリケーションが、第2のミドルウェアおよび第1のミドルウェアを介して第1のアプリケーションに対する問い合わせを行い、その第1のアプリケーションから回答を得ることで、課金情報およびペアレンタルロック情報等の属性を取得してもよい。
つまり、アプリケーションの属性については、データベースを介さずに、あるいは、データベースを介する方法に加えて、アプリケーション間での通信によって取得してもよい。
また、上記実施の形態では、端末装置のミドルウェア(JavaVM1303)上で動作するOCAPアプリケーションがミドルウェア(AjaxCEミドルウェア1307)上で動作するアプリケーション(AjaxCEアプリケーション1308)を統合管理したが、逆の統合管理であってもよい。たとえば、AjaxCEアプリケーション1308が、自ら有する課金およびペアレンタルロック管理の下で、OCAPアプリケーションを実行制御してもよい。これにより、ユーザは、任意のアプリケーションによって統合された共通の操作で、あらゆる種類のアプリケーションを購入したり、ペアレンタルロックの管理をしたりすることができる。
本発明は、アプリケーションプログラムの実行を制御する装置として、特に、複数のミドルウェアが動作する環境において、異なるミドルウェア間のアプリケーションの制御を適切に行えるようにし、また、ペアレンタルロック情報、課金情報・課金処理の一元管理が可能になるので、課金またはペアレンタルロックに関する機能を備える装置として、例えば、デジタル放送受信装置、セットトップボックス等として、利用できる。
101 ヘッドエンド
111 端末装置A
112 端末装置B
113 端末装置C
500 端末装置
501 QAM復調部
502 QPSK復調部
503 QPSK変調部
505 TSデコーダ
506 オーディオデコーダ
507 スピーカ
508 ビデオデコーダ
509 ディスプレイ
510 2次記憶部
511 1次記憶部
512 ROM
513 入力部
514 CPU
515 OSD制御部
516 表示合成部
517 システム設定部
601 筐体
602 ディスプレイ
603 フロントパネル部
604 信号入力端子
605 カード
606 挿入スロット
701 第1デスクランブラ部
702 第2デスクランブラ部
703 スクランブラ部
704 第1記憶部
705 第2記憶部
706 CPU
800 プログラム
801 メインプログラム
802 初期化サブプログラム
803 ネットワークサブプログラム
804 再生サブプログラム
805 PPVサブプログラム
900 パケット
901 ヘッダー
902 ペイロード
903 ヘッダーの内訳
1001〜1005、1026、1027 パケット
1100 フロントパネル
1101 上カーソル
1102 下カーソル
1103 左カーソル
1104 右カーソル
1105 OKボタン
1106 取消ボタン
1107 EPGボタン
1108 メニューボタン
1109 Infoボタン
1201 補正アルファ値バッファ
1202 グラフィックスバッファ
1203 ビデオバッファ
1204 バックグラウンドバッファ
1205 スクリーンバッファ
1211、1212 合成器
1300 プログラム
1301 OS
1301a カーネル
1301b ライブラリ
1302 EPG
1302a 番組表示部
1302b 再生部
1302c アプリケーション制御部
1303 JavaVM
1305 ライブラリ
1305a JMF
1305b AM
1305c Tuner
1305d CA
1305e CableCard Lib(POD Lib)
1305f Graphics
1305g サービスマネージャ
1305h ExternalAM
1305i ネットワーク
1306 入力マネージャ
1307 AjaxCEミドルウェア
1308 AjaxCEアプリケーション
13818 ISO/IEC
1401〜1403、1501〜1504、1701、1702、1801〜1803、1901〜1904、2101〜2105、2601〜2104、2610、3101 列
1430 カーソル
1511〜1514、1711〜1713、1811〜1814、1911、1912、2111、2112、2605〜2107 行
2001〜2003、2211〜2213 ディレクトリ
2004、2005 ファイル
2301 アプリケーションリスト表示部
2302 購入処理部
2303 アプリケーション起動部
2304 アプリケーション起動判定部
2401 ExternalAppsDatabaseクラス
2401a getAppsDatabaseメソッド
2401b getExternalAppsAttributeメソッド
2402 ExternalAppFilterクラス
2402a setFilteringRuleメソッド
2403 ExternalAppsAttributeクラス
2403a getMetaDataメソッド
2403b getRatingInfoメソッド
2403c isPurchasedメソッド
2403d isFreeメソッド
2403e isExpiredメソッド
2403f setPurchasedメソッド
2403g setExpirationメソッド
2609 ボタン
2901 ダイアログ
2902 「はい」ボタン
2903 「いいえ」ボタン
2904 カーソル
3001 ペアレンタルロック情報管理部
3301〜3302 ボタン
3401 リスト

Claims (8)

  1. オペレーティングシステムと、前記オペレーティングシステム上で動作する第1のミドルウェアおよび第2のミドルウェアと、前記第1のミドルウェア上で動作する第1のアプリケーションプログラムと、前記第2のミドルウェア上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーションプログラムとを備える装置におけるプログラム実行方法であって、
    前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムについての実行指示を受け付ける受け付けステップと、
    前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムが購入されているか否かに関する課金情報、または、前記第1のアプリケーションプログラムについてのペアレンタルロックの有無を示すペアレンタルロック情報を取得する取得ステップと、
    前記第2のアプリケーションプログラムが、前記課金情報または前記ペアレンタルロック情報に基づいて、前記第1のアプリケーションプログラムの実行可否を判定する判定ステップと、
    前記第1のアプリケーションプログラムが実行可能と判定された場合に、前記第2のアプリケーションプログラムが、前記第2のミドルウェアおよび前記第1のミドルウェアを通じて、前記第1のアプリケーションプログラムを起動する起動ステップと
    を含むプログラム実行方法。
  2. さらに、前記判定ステップで前記第1のアプリケーションプログラムが未購入であるために実行不可と判定された場合、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムの購入処理をおこなう購入ステップを含む
    請求項1記載のプログラム実行方法。
  3. 前記取得ステップでは、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムを含む、前記第1のミドルウェアおよび前記第2のミドルウェア上で動作するアプリケーションプログラムの属性を予め保持しているデータベースから、前記課金情報または前記ペアレンタルロック情報を取得する
    請求項1または2記載のプログラム実行方法。
  4. 前記取得ステップでは、前記第2のアプリケーションプログラムが、前記第1のアプリケーションプログラムに対する問い合わせを行い、前記第1のアプリケーションプログラムから回答を得ることで、前記課金情報または前記ペアレンタルロック情報を取得する
    請求項1または2記載のプログラム実行方法。
  5. 前記起動ステップでは、
    前記第2のアプリケーションプログラムが、実行可能と判定された前記第1のアプリケーションプログラムを特定する情報を前記第2のミドルウェアに通知し、
    前記第2のミドルウェアが、前記第2のアプリケーションプログラムから通知された前記情報に基づいて、前記第1のアプリケーションプログラムが動作するミドルウェアとして前記第1のミドルウェアを特定し、特定した前記第1のミドルウェアに対して前記第1のアプリケーションプログラムの起動を要求する
    請求項1〜4のいずれか1項に記載のプログラム実行方法。
  6. プロセッサを備えるプログラム実行装置であって、
    前記プロセッサによって実行されるプログラムとして、
    オペレーティングシステムと、
    前記オペレーティングシステム上で動作する第1のミドルウェアと、
    前記オペレーティングシステム上で動作する第2のミドルウェアと、
    前記第1のミドルウェア上で動作する第1のアプリケーションプログラムと、
    前記第2のミドルウェア上で動作する、課金またはペアレンタルロックの管理を行う第2のアプリケーションプログラムとを備え、
    前記第2のアプリケーションプログラムは、
    少なくとも前記第1のミドルウェア上で動作するアプリケーションプログラムを表示するとともに、前記第1のアプリケーションプログラムを実行する旨の指示を受け付けるアプリケーションリスト表示部と、
    前記第1のアプリケーションプログラムが購入されているか否かに関する課金情報、または、前記第1のアプリケーションプログラムについてのペアレンタルロックの有無を示すペアレンタルロック情報を取得し、取得した前記課金情報または前記ペアレンタルロック情報に基づいて、前記第1のアプリケーションプログラムの実行可否を判定するアプリケーション起動判定部と、
    前記第1のアプリケーションプログラムが実行可能と判定された場合に、前記第2のミドルウェアおよび前記第1のミドルウェアを通じて、前記第1のアプリケーションプログラムを起動するアプリケーション起動部とを備える
    プログラム実行装置。
  7. さらに、前記アプリケーション起動判定部で前記第1のアプリケーションプログラムが未購入であるために実行不可と判定された場合、前記第1のアプリケーションプログラムの購入処理をおこなう購入処理部を備える
    請求項6記載のプログラム実行装置。
  8. 請求項6記載のプログラム実行装置が備える第2のアプリケーションプログラム。
JP2012010477A 2012-01-20 2012-01-20 プログラム実行方法およびその装置 Pending JP2013149171A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012010477A JP2013149171A (ja) 2012-01-20 2012-01-20 プログラム実行方法およびその装置
US13/558,144 US20130191853A1 (en) 2012-01-20 2012-07-25 Program execution method and program execution apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012010477A JP2013149171A (ja) 2012-01-20 2012-01-20 プログラム実行方法およびその装置

Publications (1)

Publication Number Publication Date
JP2013149171A true JP2013149171A (ja) 2013-08-01

Family

ID=48798337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012010477A Pending JP2013149171A (ja) 2012-01-20 2012-01-20 プログラム実行方法およびその装置

Country Status (2)

Country Link
US (1) US20130191853A1 (ja)
JP (1) JP2013149171A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017074859A (ja) * 2015-10-15 2017-04-20 株式会社日立製作所 情報配信システムおよび情報配信方法
DE112021006781T5 (de) 2021-03-30 2023-10-26 Yamaha Hatsudoki Kabushiki Kaisha Bestückungsautomat und Düsenbildaufnahmeverfahren

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10462307B2 (en) * 2016-11-22 2019-10-29 Manitoba Telecom Services Inc. System and method for maintaining sharing groups in a service delivery system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424543B2 (en) * 1999-09-08 2008-09-09 Rice Iii James L System and method of permissive data flow and application transfer
US7818585B2 (en) * 2004-12-22 2010-10-19 Sap Aktiengesellschaft Secure license management
KR101314291B1 (ko) * 2007-02-15 2013-10-02 삼성전자주식회사 디지털 방송의 미들웨어 표준이 다른 장치에서 상호서비스를 제공하는 장치 및 방법
US20080244557A1 (en) * 2007-04-02 2008-10-02 Inventec Corporation Knowledge management system and method for implementing management software using the same
CA2797131C (en) * 2010-05-19 2019-04-30 Google Inc. Electronic license management
US8458729B2 (en) * 2010-07-20 2013-06-04 International Business Machines Corporation Managing and optimizing workflows among computer applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017074859A (ja) * 2015-10-15 2017-04-20 株式会社日立製作所 情報配信システムおよび情報配信方法
DE112021006781T5 (de) 2021-03-30 2023-10-26 Yamaha Hatsudoki Kabushiki Kaisha Bestückungsautomat und Düsenbildaufnahmeverfahren

Also Published As

Publication number Publication date
US20130191853A1 (en) 2013-07-25

Similar Documents

Publication Publication Date Title
US9264757B2 (en) Service executing apparatus
US7984478B2 (en) Method and apparatus for a receiver/decoder
US8375408B2 (en) System and method of providing media content
RU2321965C2 (ru) Структура mpeg-таблицы
US7089554B2 (en) Program executing apparatus
US8453195B2 (en) Program replacing method
AU2002334278A1 (en) Method and apparatus for a receiver/decoder
JPWO2007072680A1 (ja) データ出力装置、機器制御装置およびマルチメディア配信システム
US20080276300A1 (en) Program Execution Device
JPWO2006077720A1 (ja) デジタルテレビおよび画像合成方法
JPWO2005099250A1 (ja) プログラム実行装置
JP2013149171A (ja) プログラム実行方法およびその装置
US20090044281A1 (en) Java conditional access apparatus
JP2005073239A (ja) サービス実行装置
CN101257613B (zh) 服务执行方法
JP2010011115A (ja) 放送受信装置