(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、本技術の実施の形態を図面をもとに説明する。
[情報処理システム]
図1は、本実施形態の情報処理システムの概要を示す図である。
本実施形態の情報処理システム1は、インターネットなどの第1のネットワーク100と、複数のアプリケーションサーバ200A、200Bと、エッジルータ300と、LAN(Local Area Network)などの第2のネットワーク400と、情報処理装置500と、放送局600とを有する。
【0017】
放送局600は、例えば、地上波、衛星波、IP(Internet Protocol)ネットワークなどの通信媒体を介してデジタル放送信号を送信する。放送局600は、放送コンテンツのストリームパケットと、放送コンテンツの再生と連携して同時に実行されるアプリケーションのパケットと、現在放送中の放送コンテンツ及び当該アプリケーションに関する各種情報を含むPSI/SI(Program Specific Information/Service Information)のパケットとを多重化して送信することが可能である。PSI/SIには、当該アプリケーションを管理するための情報からなるデータ構造であるアプリケーション情報テーブル(Application Information Table、以下「AIT」と呼ぶ。)などが含まれる。
【0018】
複数のアプリケーションサーバ200A、200Bは、それぞれ第1のネットワーク100に接続可能とされ、第1のネットワーク100を通じて情報処理装置500に、放送コンテンツの再生と関連して実行させるアプリケーションのファイルおよびこのアプリケーションを管理するための情報からなるデータ構造が記述されたXML(Extensible Markup Language)−AITをそれぞれ配信可能である。
【0019】
なお、
図1に示される複数のアプリケーションサーバ200A、200Bにおいて一方のアプリケーションサーバ200Aの事業者と放送局600の事業者は同一とする。他方のアプリケーションサーバ200Bの事業者は放送局600の事業者と異なることとする。以下、複数のアプリケーションサーバ200A、200Bを区別せず「アプリケーションサーバ200」と記述することがある。
【0020】
エッジルータ300は、第1のネットワーク100と第2のネットワーク400とを接続するためのルータである。第2のネットワーク400は有線、無線を問わない。
【0021】
情報処理装置500は、例えば、パーソナルコンピュータ、携帯電話、スマートフォン、テレビジョン装置、ゲーム機などであるが、具体的に製品形態は問わない。
情報処理装置500は、放送局600からデジタル放送信号を受信し、復調してトランスポートストリームを得ることが可能である。情報処理装置500は、このトランスポートストリームから放送コンテンツを分離し、デコードして情報処理装置500に接続される表示部(図示せず)及びスピーカ部(図示せず)や、記録装置に出力することが可能である。
【0022】
なお、表示部、スピーカ部および記録装置はそれぞれ、情報処理装置500と一体であってもよいし、互いに独立した機器として直接又は第2のネットワーク400を介して情報処理装置500に接続されていてもよい。あるいは、表示部及びスピーカ部を有する機器(図示せず)が直接又は第2のネットワーク400を介して情報処理装置500に接続されていてもよい。
【0023】
また、情報処理装置500は、取得したトランスポートストリームからアプリケーションや、AITを含むPSI/SIを抽出し、当該AITを解釈してアプリケーションの制御を行うことが可能である。情報処理装置500は、アプリケーションが可視的なアプリケーションである場合には、このアプリケーションの実行により生成された映像信号を、上記放送コンテンツの映像信号及び字幕信号と合成して表示部に出力することが可能である。
【0024】
さらに、情報処理装置500は、第1のネットワーク100、エッジルータ300及び第2のネットワーク400を通じて、アプリケーションサーバ200からアプリケーション及びXML−AITのファイルをダウンロードなどにより取得することができる。情報処理装置500は、取得したXML−AITを解釈して、アプリケーションサーバ200から取得したアプリケーションを制御することが可能である。
【0025】
[アプリケーションの種類]
ここで、アプリケーションの種類について説明する。アプリケーションには、放送連動型アプリケーション(broadcast-related application)と、放送非連動型アプリケーション(broadcast-independent application)とがある。
【0026】
放送連動型アプリケーションは、放送コンテンツの再生と連携して同時に実行されるアプリケーションである。すなわち、放送連動型アプリケーションは、起動から終了までのライフサイクルが放送コンテンツと連動するように、AITによって制御される双方向型アプリケーションである。
【0027】
放送非連動型アプリケーションは、放送コンテンツの再生と関連して実行され、アプリケーションのライフサイクルが放送により配信されるAITもしくは通信により配信されるXML−AITによって、放送コンテンツとは非連動で制御される双方向型アプリケーションである。
【0028】
いずれのアプリケーションとも、放送コンテンツを視聴する情報処理装置500のユーザからの指令によって、起動させたり終了させたりすることが可能である。
また、放送連動型アプリケーションは、放送コンテンツとの連動性を確保するために、関連する放送コンテンツを受信している間に実行可能となり、チャンネルを切り替えるなどの操作によって別の放送コンテンツの受信状態への切り替えが発生すると強制終了される。
【0029】
[アプリケーションの起動]
アプリケーションの起動方法としては、例えば、以下がある。
1.AITおよびXML−AITのアプリケーション制御コード"AUTOSTART"をもとに自動的にアプリケーションを起動させる方法。
2.所定のリモコン操作を契機に、情報処理装置500がAITをもとに現在利用することが可能なアプリケーションのアイコンやリストを作成して表示し、その中から起動させるアプリケーションをユーザに選択させる方法。
3.アプリケーションに組み込まれたスクリプトを使って別のアプリケーションを起動させる方法。
【0030】
[AIT及びXML−AITのデータ構造]
ここで、放送局600から提供されるAITのデータ構造と、アプリケーションサーバ200から提供されるXML−AITのデータ構造について説明する。なお、本明細書で単に「AIT」と記述するときは、放送局600から提供されるAITのことを言う。
【0031】
図2は、AITのデータ構造を示す図である。
AIT10は、放送連動型アプリケーションおよび放送非連動型アプリケーションに関する種々の情報や、放送連動型アプリケーションを制御するためのアプリケーション制御コード等が格納されるテーブルである。具体的には、AIT10には、テーブルID、セクションシンタックス指示、セクション長、アプリケーション形式、バージョン番号、カレントネクスト指示、セクション番号、最終セクション番号、共通記述子ループ長、アプリケーション情報ループ長、アプリケーション識別子11、アプリケーション制御コード12、アプリケーション情報記述子ループ長、記述子13等が格納される。
【0032】
図3は、XML−AITのデータ構造を示す図である。
XML−AIT20は、放送非連動型アプリケーションに関する種々の情報や、放送非連動型アプリケーションを制御するためのアプリケーション制御コード等が格納されるテーブルである。具体的には、XML−AIT20には、アプリケーション名、アプリケーション識別子21、アプリケーション記述子、アプリケーションタイプ、アプリケーション制御コード22、アプリケーションの可視性、現在のサービス内でのみ有効かを示すフラグ、アプリケーションの優先度24、アプリケーションのバージョン、プラットフォームプロファイルにあわせたバージョン、アイコン、ストレージ機能の性能、トランスポートプロトコル記述子25、アプリケーションロケーション記述子23、アプリケーションバウンダリ記述子、アプリケーションスペシフィック記述子、アプリケーションユーセジ記述子等が格納される。
【0033】
[アプリケーション制御コードの定義]
アプリケーションのライフサイクルは、AIT10及びXML−AIT20に格納されるアプリケーション制御コード12、22をもとに、情報処理装置500によって動的に制御される。
【0034】
図4はAIT10及びXML−AIT20に格納されるアプリケーション制御コード12、22の定義を示す図である。
同図に示すように、アプリケーション制御コードとしては、"AUTOSTART"、"PRESENT"、"DESTROY"、"KILL"、"PREFETCH"、"REMOTE"、"DISABLED"、"PLAYBACK_AUTOSTART"が標準規格として設けられている。
【0035】
"AUTOSTART"は、サービスの選択に伴いアプリケーションを自動で起動することを指示するコードである。アプリケーションが既に実行されている場合にはこの限りでない。
"PRESENT"は、サービスが選択されている間、アプリケーションを実行可能な状態とすることを指示するコードである。但し、対象のアプリケーションは、サービスの選択に伴って自動的にアプリケーションは起動されず、ユーザからの起動の指示を受けて起動される。
"DESTROY"は、アプリケーションの終了の許可を指示するコードである。
"KILL"は、アプリケーションの強制的な終了を指示するコードである。
"PREFETCH"は、アプリケーションのキャッシュを指示するコードである。
"REMOTE"は、現在のトランスポートストリームでは取得できないアプリケーションであることを示すコードである。そのアプリケーションは、別のトランスポートストリームあるいはキャッシュから取得して利用可能となる。
"DISABLED"は、アプリケーションの起動を禁止することを示すコードである。
"PLAYBACK_AUTOSTART"は、ストレージ(記録装置)に録画された放送コンテンツの再生に伴いアプリケーションを起動させるためのコードである。
【0036】
[アプリケーション識別子のデータ構造]
アプリケーションは、AIT10及びXML−AIT20に格納されるアプリケーション識別子11、21によって一意に判別される。
【0037】
図5は、アプリケーション識別子のデータ構造を示す図である。
アプリケーション識別子は、組織ID(organization_id)と、アプリケーションID(application_id)とにより構成される。すなわち、アプリケーションは組織IDとアプリケーションIDとの組み合わせによって一意に識別される。
【0038】
組織IDは、アプリケーションを提供する組織(事業者)を一意に識別する情報である。
アプリケーションIDは、組織ID内でアプリケーションを一意に識別するための情報である。
【0039】
[典型的な情報処理システムおよび本実施形態の情報処理システム1に共通の動作例]
次に、典型的な情報処理システムおよび本実施形態の情報処理システム1に共通の動作例を説明する。
【0040】
(1.放送連動型アプリケーション間の遷移の典型的な動作例1)
図6は
図1の情報処理システム1の情報処理装置500における放送連動型アプリケーション間の遷移の典型的な動作例1を示す図である。この動作例1は放送局600からの放送波より取得された2つの放送連動型アプリケーションを切り替えて実行する場合の典型的な動作例である。
【0041】
情報処理装置500は、例えばリモコンなどを使ってユーザにより選局された放送局600からの放送コンテンツ(放送A)を受信し、映像データ、音声データ、字幕データなどのデコード処理などを行って、情報処理装置500に接続された表示部及びスピーカ部に放送コンテンツ(放送A)を出力する。
【0042】
この例では、放送局600から時刻T1に放送連動型アプリケーション(以下「第1の放送連動型アプリケーション」と呼ぶ。)とこの第1の放送連動型アプリケーションに関するAITが放送コンテンツに重畳して放送されるものとする。
【0043】
このAITには第1の放送連動型アプリケーションの起動を指示するアプリケーション制御コード"AUTOSTART"が格納されている。情報処理装置500は、第1の放送連動型アプリケーションとAITを受信すると、このAITに記述されたアプリケーション制御コード"AUTOSTART"に従って第1の放送連動型アプリケーションを起動させる。起動された第1の放送連動型アプリケーションは、例えば、表示部に表示された放送コンテンツAの映像の上に重畳されたウィンドウとして可視化される。
【0044】
続いて、放送局600から時刻T2に、第1の放送連動型アプリケーションの終了を指示するアプリケーション制御コード"DESTROY"または"KILL"と、別の放送連動型アプリケーション(以下「第2の放送連動型アプリケーション」と呼ぶ。)の起動を指示するアプリケーション制御コード"AUTOSTART"を含む新たなAITが放送コンテンツに重畳して放送されるものとする。
【0045】
情報処理装置500は、新たなAITを受信すると、この新たなAITに記述されたアプリケーション制御コード"DESTROY"または"KILL"に従って第1の放送連動型アプリケーションを終了させるとともに、AITに記述されたアプリケーション制御コード"AUTOSTART"に従って第2の放送連動型アプリケーションを起動する。これにより、情報処理装置500の表示部には、第1の放送連動型アプリケーションに代えて第2の放送連動型アプリケーションが可視化される。
【0046】
(2.放送連動型アプリケーション間の遷移の典型的な動作例2)
図7は
図1の情報処理システム1の情報処理装置500における放送連動型アプリケーション間の遷移の別の典型的な動作例2を示す図である。この動作例2は放送局600からの放送波より取得された放送連動型アプリケーションからアプリケーションサーバ200Aより取得した放送連動型アプリケーションを切り替えて実行する場合の典型的な動作例である。
【0047】
この典型的な動作例2では、第2の放送連動型アプリケーションをアプリケーションサーバ200Aから取得させるために、AITのdescriptor()13(
図2)には、その第2の放送連動型アプリケーションを取得するための通信プロトコルに関する情報、その第2の放送連動型アプリケーションのファイルのURlなどのロケーション情報などが記述されている。
【0048】
この典型的な動作例2では、放送局600から時刻T2に第1の放送連動型アプリケーションの終了を指示するアプリケーション制御コード"DESTROY"または"KILL"と、別の放送連動型アプリケーション(以下「第2の放送連動型アプリケーション」と呼ぶ。)の起動を指示するアプリケーション制御コード"AUTOSTART"を含む新たなAITが放送コンテンツに重畳して放送される。
【0049】
情報処理装置500は、新たなAITを取得すると、このAIT中の第2の放送連動型アプリケーションに関するdescriptor()13(
図2)に記述された情報をもとにアプリケーションサーバ200Aにアクセスして第2の放送連動型アプリケーションを取得する。
【0050】
続いて、情報処理装置500は、AIT中の第1の放送連動型アプリケーションに対するアプリケーション制御コード"DESTROY"または"KILL"に従って第1の放送連動型アプリケーションを終了させる。さらに、情報処理装置500は、AIT中の第2の放送連動型アプリケーションに対するアプリケーション制御コード"AUTOSTART"に従って第2の放送連動型アプリケーションを起動させる。これにより、情報処理装置500は、表示部には、第1の放送連動型アプリケーションに代えて第2の放送連動型アプリケーションが可視化される。
【0051】
(3.放送非連動型アプリケーションの実行の典型的な動作例3)
図8は
図1の情報処理システム1の情報処理装置500において放送非連動型アプリケーションを実行する場合の典型的な動作例3を示す図である。
この典型的な動作例3では、放送局600から、放送コンテンツAと関連して現在利用することが可能な1以上の放送非連動型アプリケーションそれぞれに対応するXML−AITにアクセスするために必要な情報が放送コンテンツAに重畳して放送される。情報処理装置500は、それらの情報をもとに、現在利用することが可能な1以上の放送非連動型アプリケーションのアイコンやリストなどを生成して表示部に表示させ、その中からユーザによって選択された放送非連動型アプリケーションのXML−AITを取得し、当該放送非連動型アプリケーションを起動させる。
【0052】
より具体的には、情報処理装置500は、放送コンテンツAの再生中(表示画面a)にリモコンなどの操作によってユーザよりアプリケーション選択画面表示命令が入力されると、現在利用することが可能な1以上の放送非連動型アプリケーションのアイコンやリストなどを含むアプリケーション選択画面10を生成し、表示部に表示させる。アプリケーション選択画面10は、表示部に表示された放送コンテンツAの映像の上に重畳されたウィンドウとして可視化される。アプリケーション選択画面10に表示されたアイコンやリストには対応する放送非連動型アプリケーション用のXML−AITにアクセスするために必要な通信プロトコルに関する情報やXML−AITのロケーション情報などが関連付けられている。情報処理装置500は、アプリケーション選択画面10に表示されたアイコンやリストの中からユーザによって選択されたアイコンやリストに関連付けられた情報をもとに、その選択された放送非連動型アプリケーションのXML−AITを取得する。
【0053】
情報処理装置500は、このXML−AITから放送非連動型アプリケーションを取得するために必要な例えば通信プロトコルに関する情報および放送非連動型アプリケーションのロケーション情報などを抽出し、これらの情報をもとにアプリケーションサーバ200Aから放送非連動型アプリケーションを取得する。情報処理装置500は、このXML−AITに記述されたアプリケーション制御コード"AUTOSTART"に従って当該放送非連動型アプリケーションを起動させる。起動された放送非連動型アプリケーションは、例えば、表示部に表示された放送コンテンツAの映像の上に重畳されたウィンドウ10として可視化される。
【0054】
(4.放送連動型アプリケーションから放送非連動型アプリケーションへの遷移を含む典型的な動作例4)
図9は
図1の情報処理システム1の情報処理装置500における放送連動型アプリケーションから放送非連動型アプリケーションへの遷移の典型的な動作例4を示す図である。
この典型的な動作例4では、放送連動型アプリケーションに放送非連動型アプリケーションを起動させるためのcreateApplication()関数を含むスクリプトが組み込まれている場合を想定している。createApplication()関数には、引数として、放送非連動型アプリケーション用のXML−AITにアクセスするために必要な通信プロトコルに関する情報とXML−AITのロケーション情報などが設定されている。この典型的な動作例4では、放送局600と同一の組織に属するアプリケーションサーバ200Aから提供される放送非連動型アプリケーションを想定している。したがって、XML−AITのロケーション情報は当該アプリケーションサーバ200Aに属するURL(Uniform Resource Locator)である。通信プロトコルはHTTP(Hypertext Transfer Protocol)である。
【0055】
放送連動型アプリケーションの実行中、時間など所定の条件が成立すると上記のスクリプトが実行されることによって、情報処理装置500は、放送非連動型アプリケーション用のXML−AITをアプリケーションサーバ200Aから取得する。この後、情報処理装置500は、上記の典型的な動作例3と同様に、XML−AITをもとに放送非連動型アプリケーションを取得し、起動させる。
【0056】
ところで、HbbTVの標準規格では、再生中の放送コンテンツの放送局と同一の組織に属していない事業者から提供される放送非連動型アプリケーションの提示を避けるために、既に実行中のアプリケーションから別のアプリケーションが起動できるためには、双方のアプリケーションの組織IDが同一でなければならないという規定がある。ここまでの典型的な動作例1−4は、起動されるアプリケーションが放送局600から放送波で提供される放送連動型アプリケーションであるか、もしくは放送局600と同一の組織に属するアプリケーションサーバ200Aから提供される放送連動型アプリケーションを想定しているため、これらのアプリケーションの組織IDはすべて同一であり、つまりアプリケーションの起動が許可される条件を満足する。
【0057】
しかし、このような制限には次のようなデメリットも考えられる。例えば、視聴率調査用のアプリケーションなど、複数の放送局で共通に利用されることが想定されるアプリケーションは、放送局が異なるチャンネルをシームレスに横断して実行可能なものであることが望ましい。ところが、このようなアプリケーションは、HbbTVの標準規格によれば組織IDに基づく起動の制約を受ける。
【0058】
図10は標準規格に則った情報処理システムにおいてアプリケーションサーバ(例えば
図1のアプリケーションサーバ200A)より取得した放送非連動型アプリケーション(以下「第1の放送非連動型アプリケーション」と呼ぶ。)から別のアプリケーションサーバ(例えば
図1のアプリケーションサーバ200B)より取得した放送非連動型アプリケーション(以下「第2の放送非連動型アプリケーション」と呼ぶ。)の起動が、双方の組織IDの不一致によって失敗した場合の概念図である。ここで、アプリケーションサーバ200Bは、放送局(例えば
図1の放送局600)とは別の組織(事業者)に属するサーバである。したがって、このアプリケーションサーバ200Bから提供される第2の放送非連動型アプリケーションは、XML−AITに記述された組織IDが放送局600やアプリケーションサーバ200Aの第1の放送非連動型アプリケーションのそれと異なることによって起動されない。
【0059】
[本実施形態の放送非連動型アプリケーションの起動条件]
本実施形態は、このような課題を解決するために、XML−AITの組織IDの値として、複数もしくは全ての事業者に共通の識別情報である"common"の設定を可能としたものである。情報処理装置500は、取得したXML−AITの組織IDの値として"common"が設定されている場合、そのXML−AITの制御対象の放送非連動型アプリケーションを、組織IDに基づく判定によって起動が不可とされる対象から除く。
【0060】
また、このように組織IDに基づく判定によって起動の制約を軽減化したことによるセキュリティ的な副作用を抑えるために、本実施形態はXML−AITにXML署名を添付することを義務付けた。情報処理装置500は、XML−AITとともに取得したXML署名を検証し、正当性が検証された場合に限り、XML−AITに基づくアプリケーションの起動を許可する。
【0061】
[情報処理装置500の構成]
図11は、本実施形態の情報処理装置500の構成を示すブロック図である。
情報処理装置500は、放送インタフェース501、デマルチプレクサ502、出力処理部503、映像デコーダ504、音声デコーダ505、字幕デコーダ506、通信インタフェース507、アプリケーションコントローラ508及びセキュアコントローラ509を有する。
【0062】
放送インタフェース501は、アンテナ及びチューナを有し、これらを用いてユーザにより選局されたデジタル放送信号を受信する。放送インタフェース501は、受信したデジタル放送信号に対して復調処理などを施して得たトランスポートストリームをデマルチプレクサ502に出力する。
【0063】
デマルチプレクサ502は、トランスポートストリームから放送コンテンツのストリームパケット、アプリケーションのパケット、AITのパケットをそれぞれ分離する。デマルチプレクサ502は、放送コンテンツのストリームパケットから映像ES(Elementary Stream)、音声ES、字幕ESを分離する。デマルチプレクサ502は、映像ESを映像デコーダ504に、音声ESを音声デコーダ505に、字幕ESを字幕デコーダ506に、そしてアプリケーションのパケットおよびAITのパケットをアプリケーションコントローラ508にそれぞれ分配する。
【0064】
映像デコーダ504は、映像ESをデコードして映像信号を生成し、生成した映像信号を出力処理部503に出力する。音声デコーダ505は、音声ESをデコードして音声信号を生成し、生成した音声信号を出力処理部503に出力する。字幕デコーダ506は、字幕ESをデコードして字幕信号を生成し、生成した字幕信号を出力処理部503に出力する。
【0065】
通信インタフェース507は、LANなどの第2のネットワーク400を通じて外部の機器と通信を行うためのインタフェースである。通信インタフェース507は無線による通信、有線による通信を問わない。
【0066】
アプリケーションコントローラ508は、アプリケーションの制御に関する処理を行うコントローラである。
【0067】
出力処理部503は、映像デコーダ504からの映像信号、音声デコーダ505からの音声信号、字幕デコーダ506からの字幕信号及びアプリケーションコントローラ508からの映像信号や音声信号等を合成し、情報処理装置500に接続された記録装置、表示部及びスピーカ部(図示せず)に出力する。
【0068】
セキュアコントローラ509は、XML署名を検証し、検証結果をアプリケーションコントローラ508に通知する。
【0069】
上記の情報処理装置500の少なくともアプリケーションコントローラ508およびセキュアコントローラ509を含む構成の一部または全ては、CPU(Central Processing Unit)およびメモリを有するコンピュータとプログラムとにより提供することが可能である。
【0070】
[XML署名]
ここで、XML署名について説明する。
図12は、XML署名のデータ構造を示す図である。
同図に示すように、XML署名は、XML署名要素、署名情報(何に対して署名するか、およびどのアルゴリズムであるかを指定する情報)、XML正規化アルゴリズム、署名アルゴリズム、正規化変換プロセス、ダイジェスト計算アルゴリズム、ダイジェスト値、署名値、鍵情報、検証鍵、X.509証明書、XML署名対象要素などを有する。
【0071】
XML署名の形式は、XML−AITに対して独立したdetached署名、XML−AITを包含した形式を有するenveloping署名、XML−AITに包含された形式のenveloped署名のいずれであるかを問わない。なお、XML−AITのフォーマットへの影響を抑えるにはdetached署名を採用するのがよい。
【0072】
セキュアコントローラ509は、リファレンス検証(Reference Validation)と署名検証(Signature Validation)とを含むコア検証(Core Validation)の手続きに従って、XML署名を検証する。
【0073】
リファレンス検証とは、リソース(XML−AIT)に正規化変換プロセス(Transform)及びダイジェスト計算アルゴリズム(DigestMethod)を適用することにより、リファレンス(Reference)のダイジェスト値(DigestValue)を検証する方式である。リファレンス検証により得られた結果と、登録されたダイジェスト値(DigestValue)とが比較され、これらが一致しない場合、検証失敗となる。
【0074】
署名検証とは、署名情報(SignatureInfo)要素をXML正規化アルゴリズム(CanonicalizationMethod)で指定された正規化方式でシリアル化し、鍵情報(KeyInfo)等を用いて鍵データを取得し、署名アルゴリズム(SignatureMethod)で指定された方式を用いて署名を検証する方式である。
【0075】
[本実施形態の情報処理システム1の動作]
次に、本実施形態の情報処理システム1の動作を説明する。
図13は本実施形態の情報処理システム1の情報処理装置500においてアプリケーションサーバ200Aより取得した放送非連動型アプリケーションからアプリケーションサーバ200Bより取得した放送非連動型アプリケーションへの遷移の動作を示す図である。
【0076】
情報処理装置500は、例えばリモコンなどを使ってユーザにより選局された放送局600からの放送コンテンツ(放送A)を受信し、映像データ、音声データ、字幕データなどのデコード処理などを行って、情報処理装置500に接続された表示部及びスピーカ部に放送コンテンツ(放送A)を出力する。
【0077】
具体的には、放送インタフェース501が、ユーザにより選局された放送局600から放送コンテンツ(放送A)のデジタル放送信号を受信し、復調処理などを施して得たトランスポートストリームをデマルチプレクサ502に出力する。デマルチプレクサ502はトランスポートストリームから放送コンテンツのストリームパケットを分離し、さらに放送コンテンツのストリームパケットを映像ES、音声ES、字幕ESに分離する。分離された映像ES、音声ES、字幕ESはそれぞれ、映像デコーダ504、音声デコーダ505、字幕デコーダ506にてデコードされ、出力処理部503にて合成されて表示部及びスピーカ部に出力される。
【0078】
この動作例では、放送局600から時刻T1に放送連動型アプリケーションと、この放送連動型アプリケーションに関するAITが放送コンテンツに重畳して放送されるものとする。当該AITに記述されている組織IDは放送局600の事業者に割り当てられた"0x01"とする。アプリケーション制御コードは"AUTOSTART"とする。
【0079】
デマルチプレクサ502はトランスポートストリームから第1のアプリケーションのパケットとAITのパケットを分離してアプリケーションコントローラ508に供給する。アプリケーションコントローラ508は、放送連動型アプリケーションとAITを取得すると、
図14のフローチャートに示す処理手順を実行する。
【0080】
すなわち、アプリケーションコントローラ508はAITを取得すると(ステップS102)、実行中の他のアプリケーションが存在するかどうかを判定する(ステップS103)。現時点では実行中の他のアプリケーションが存在しないので(ステップS103のNO)、アプリケーションコントローラ508は、処理をステップS105へと進める。ステップS105では、優先度が高いアプリケーションの実行に切り替える処理が行われるが、今回は実行中の他のアプリケーションが存在しないので、アプリケーションコントローラ508は、取得したAITに記述されたアプリケーション制御コード"AUTOSTART"に従って放送連動型アプリケーションを起動させる。
【0081】
この動作例では、放送連動型アプリケーションにアプリケーションサーバ200Aから提供される放送非連動型アプリケーションを起動させるためのcreateApplication()関数を含むスクリプトが組み込まれている場合を想定している。放送非連動型アプリケーションの実行中、時間など所定の条件が成立すると上記のスクリプトが実行されることによって、アプリケーションコントローラ508は、放送非連動型アプリケーション用のXML−AITをアプリケーションサーバ200Aより取得する。
【0082】
アプリケーションコントローラ508は、XML−AITを取得すると(ステップS102)、実行中の他のアプリケーションが存在するかどうかを判定する(ステップS103)。現時点では実行中の他のアプリケーションとして放送連動型アプリケーションが存在するので、アプリケーションコントローラ508は処理をステップS104へと進める。
【0083】
ステップS104では、アプリケーションコントローラ508は、XML−AITの組織IDと既に実行中の放送連動型アプリケーションのAITの組織IDとが同一("common"で同一である場合を除く。)であるかどうかを判定する。
【0084】
両方の組織IDが同一である場合(ステップS104のYES)、アプリケーションコントローラ508は、処理をステップS105へと進め、実行中の放送連動型アプリケーションとXML−AITが指定する放送非連動型アプリケーションとで優先度の高い方のアプリケーションを起動する(ステップS105)。
【0085】
図13の動作例では、XML−AITの組織IDはAITの組織IDと同一の"0x01"である。このためアプリケーションコントローラ508はステップS104でYESを判定し、処理をステップS105へと進める。この動作例では、放送非連動型アプリケーションの方の優先度が高いこととする。これにより、放送連動型アプリケーションに代えて放送非連動型アプリケーションが起動される。
【0086】
ここで、アプリケーションコントローラ508は、放送連動型アプリケーションに代えて放送非連動型アプリケーションを起動させるために、まず、XML−AITから放送非連動型アプリケーションを取得するために必要な情報を抽出し、これをもとに第2のアプリケーションサーバ200Aにアクセスして放送非連動型アプリケーションを取得する。そして、アプリケーションコントローラ508は放送連動型アプリケーションを終了させるとともに、XML−AITに記述されたアプリケーション制御コード"AUTOSTART"に従って放送非連動型アプリケーションを起動させる。なお、このとき放送非連動型アプリケーションに添付されたXML署名の検証は行われることなく、放送非連動型アプリケーションは起動される。
【0087】
次に、任意の時刻T3に、情報処理装置500のユーザによって、放送局600の組織には属さないアプリケーションサーバ200Bが提供する放送非連動型アプリケーションの利用が指示された場合を想定する。以下、このアプリケーションサーバ200Bが提供する放送非連動型アプリケーションを「第2の放送非連動型アプリケーション」、既に実行されている放送非連動型アプリケーションを「第1の放送非連動型アプリケーション」と呼ぶこととする。
【0088】
なお、現在実行中の第1の放送非連動型アプリケーションに対して別の組織に属する第2の放送非連動型アプリケーションをユーザに選択させる方法としては、例えば、所定のリモコン操作を契機に、利用可能な第2の放送非連動型アプリケーションをアイコンやリストとして提示したポータル画面を情報処理装置500に表示させ、このポータル画面から起動させる第2の放送非連動型アプリケーションをユーザに選択させる方法、などが挙げられる。アイコンやリストには第2の放送非連動型アプリケーション用のXML−AITを取得するために必要な通信プロトコルに関する情報やファイルのロケーション情報などが紐付けられている。ユーザによって所望の第2の放送非連動型アプリケーションに対応するアイコンやリストが選択されると、アプリケーションコントローラ508は、その選択されたアイコンやリストに紐付けられた情報をもとに、放送局600の組織に属さないアプリケーションサーバ200Bから当該第2の放送非連動型アプリケーション用のXML−AITをこれに添付されたXML署名とともに取得する。
【0089】
アプリケーションコントローラ508は、XML−AITを取得すると(ステップS102)、実行中のアプリケーションが存在するかどうかを判定する(ステップS103)。現時点では第1の放送非連動型アプリケーションが実行中であるためステップS104へと処理を進める。
【0090】
ステップS104では、アプリケーションコントローラ508は、第2の放送非連動型アプリケーション用のXML−AIT内の組織IDと実行中の第1の放送非連動型アプリケーション用のXML−AITとが同一("common"で同一である場合を除く。)であるかどうかを判定する。
【0091】
この判定の結果、両方の組織IDが同一("common"で同一である場合を除く。)である場合(ステップS104のYES)、アプリケーションコントローラ508は、処理をステップS105へと進め、実行中の第1の放送非連動型アプリケーションとXML−AITが指定する第2の放送非連動型アプリケーションとで優先度の高い方のアプリケーションを起動する(ステップS105)。
また、判定の結果、両方の組織IDが同一("common"で同一である場合を除く。)でない場合、アプリケーションコントローラ508は、新たに取得した第2の放送非連動型アプリケーション用のXML−AITの組織IDが"common"であるかどうかを判定する(ステップS106)。ここで、アプリケーションサーバ200Bは、放送局600の組織に属さない事業者によるサーバであるが、組織IDが"common"に設定されていることとする。このためステップS106ではYESが判定され、アプリケーションコントローラ508はステップS107へと処理を進める。
【0092】
ステップS107で、アプリケーションコントローラ508は、第2の放送非連動型アプリケーション用のXML−AITに添付されたXML署名の検証をセキュアコントローラ509に依頼する。アプリケーションコントローラ508は、セキュアコントローラ509よりXML署名の検証に成功した旨の通知を受けると(ステップS107のYES)、第2の放送非連動型アプリケーション用のXML−AITに設定された優先度と実行中の第1の放送非連動型アプリケーション用のXML−AITに設定された優先度とを比較し、例えば、優先度が高い方の放送非連動型アプリケーションを起動させる。なお、この動作例では、第2の放送非連動型アプリケーションの方の優先度が高いこととする。これにより、実行中であった第1の放送非連動型アプリケーションに代えて第2の放送非連動型アプリケーションが起動される。
【0093】
アプリケーションコントローラ508は、第1の放送非連動型アプリケーションに代えて第2の放送非連動型アプリケーションが起動させるために、まず、第2の放送非連動型アプリケーション用のXML−AITから第2の放送非連動型アプリケーションを取得するために必要な情報を抽出し、これをもとに第2のアプリケーションサーバ200Bにアクセスして第2の放送非連動型アプリケーションを取得する。そして、アプリケーションコントローラ508は第1の放送非連動型アプリケーションを終了させるとともに、第2の放送非連動型アプリケーション用のXML−AITに記述されたアプリケーション制御コード"AUTOSTART"に従って第2の放送非連動型アプリケーションを起動させる。
【0094】
優先度の比較結果として、双方のアプリケーションの優先度が同一である場合には、例えば、予めユーザなどにより設定された方法で起動させるアプリケーションを決定する。例えば、以下のような方法がある。
1.現在実行中のアプリケーションをそのまま継続させ、新たなアプリケーションの起動を禁止する。
2.新たに取得されたアプリケーションに切り替える。
3.優先度が同一の複数のアプリケーションを同時に実行状態とする。現在実行中のアプリケーションをそのまま継続させ、新たなアプリケーションの起動も許可する。
【0095】
アプリケーションコントローラ508は、XML署名の検証に失敗した旨を受けた場合には、第2の放送非連動型アプリケーションの起動を許可しない(ステップS108)。これにより正規のXML署名が添付されたXML−AITによって制御される放送非連動型アプリケーションのみを起動させることができ、システムの信頼性を確保することができる。
【0096】
以上、本実施形態によれば、アプリケーションを提供する事業者を特定する組織IDとして、複数もしくは全ての事業者に共通の識別情報"common"を設定できるようにした。加えて、アプリケーションコントローラ508は、取得したXML−AITの組織IDとして共通の識別情報"common"が設定されている場合には、そのXML−AITに対応するアプリケーションの起動が組織IDに基づく判定により不可とされることがなくなる。これにより、例えば視聴率調査のためのアプリケーションなど、放送局が異なるチャンネルをシームレスに横断して実行可能なアプリケーションの利用が可能になる。
【0097】
また、本実施形態では、複数の事業者に共通の識別情報が組織IDとして設定されたXML−AITにXML署名を添付することを義務付けている。情報処理装置500は、XML署名を検証し、正当性を確認すると、XML−AITを解釈して放送非連動型アプリケーションの起動を許可する。これにより、XML−AITの信頼性を確保することができる。
【0098】
なお、本技術は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
HbbTVの標準規格を前提とした実施形態を説明したが、本技術は、HbbTVの標準規格を前提とすることに必ずしも限定されるものではない。
【0099】
なお、本技術は以下のような構成も採ることができる。
(1)放送コンテンツを受信し処理する放送コンテンツ処理部と、
前記放送コンテンツに関連するアプリケーションと、当該アプリケーションを提供する事業者を特定する事業者識別情報の値として、複数の事業者に共通の識別情報を設定可能なアプリケーション情報テーブルを取得するコントローラと
を具備する情報処理装置。
(2)前記(1)に記載の情報処理装置であって、
請求項1に記載の情報処理装置であって、
前記アプリケーション情報テーブルに添付されることが義務付けられた電子署名を取得し、これを検証して検証結果を前記コントローラに通知する検証部をさらに具備し、
前記コントローラは、前記検証部より検証の成功の通知を受けたとき、前記事業者識別情報に基づく判定によって起動が不可とされる対象から除かれた前記アプリケーションの起動を許可する
情報処理装置。
(3)前記(1)から(2)のうちいずれか1つに記載の情報処理装置であって、
前記コントローラは、ネットワークを通じてサーバ装置より、前記アプリケーションに関連する前記アプリケーション情報テーブルを取得し、このアプリケーション情報テーブルに記述された情報をもとに前記アプリケーションを取得する
情報処理装置。
(4)前記(1)から(3)のうちいずれか1つに記載の情報処理装置であって、
前記アプリケーションは、前記放送コンテンツに対して非連動の放送非連動型アプリケーションである
情報処理装置。