以下、図面を参照しながら本発明の実施形態を詳細に説明する。以下では、「アプリケーションプログラム」を、「アプリケーション」又は「アプリ」とも記載する。また、以下の説明では、アプリに記述された命令で指定される処理を実行することを、単に「アプリを実行」又は「アプリの実行」と呼ぶことがある。
図1は、本実施形態の一実施形態による放送通信連携システム1の全体構成図である。放送通信連携システム1は、放送送出装置2と、サービスサーバ3と、受信装置4と、連携端末5とを有する。放送送出装置2及びサービスサーバ3は送信側の装置であり、受信装置4及び連携端末5は、受信側の装置である。
放送送出装置2は、放送信号を送出する。サービスサーバ3は、アプリ本体やアプリで利用するコンテンツデータを、インターネットを介して受信側の装置へ配信する。アプリ本体とは、アプリケーションのプログラムである。受信装置4は、例えば、ハイブリッドキャスト対応テレビである。連携端末5は、例えば、スマートフォンやタブレット端末などの端末装置である。受信装置4及び連携端末5は、インターネットを介してサービスサーバ3と相互に通信できる。また、受信装置4と連携端末5は、無線LAN(Local Area Network)等のローカルネットワークを介して接続する。
放送通信連携サービスの形態は複数存在するが、本実施形態の放送通信連携システム1では、ハイブリッドキャスト技術仕様(非特許文献1、2)に基づき、受信装置4において、デジタル放送サービスとインターネットサービスとが連携動作することを想定する。受信装置4が、放送またはインターネットにより配信されるアプリを実行することで、インターネット上のコンテンツを取得できるようになり、ユーザが放送通信連携サービスを利用できるようになる。さらに、ハイブリッドキャスト技術仕様に則り、受信装置4と連携端末5にインストールした端末側連携アプリとが連携動作する。
なお、本実施形態においては、受信装置4において動作するアプリは、放送事業者が配信する放送マネージドアプリとする。放送マネージドアプリは、放送送出装置2から送信される放送サービスの制御信号に基づいて、起動、終了、強制終了などのライフサイクルが制御される。
連携端末5に実装される端末側連携アプリは、通信により接続される他の装置である受信装置4と連携して動作するコンパニオンアプリである。端末側連携アプリは、受信装置4により実行される放送マネージドアプリと連携動作する1以上のサービスアプリを実行する。
放送マネージドアプリとサービスアプリとは連携動作することにより、ユーザへ提供するサービスを実行する。サービスとは、ユーザが連携端末5に行った操作に従って動作した結果の画像、映像、音声を、連携端末5に、又は、受信装置4及び連携端末5に出力することである。サービスの実行には、受信装置4が有する受信機機能から取得した情報などが利用される。受信機機能は、放送信号を受信し、ユーザにより選択されたチャンネルの番組映像や音声などのコンテンツデータを放送信号から取得し、デコードして出力する一連の機能である。ユーザに提供するサービスは任意であるが、一例として、SNS(ソーシャルネットワークサービス)、天気予報やニュースなどの情報の提供、外国語字幕の提供、テレビ映像とは異なる角度からの映像の提示などがある。
本実施形態では、端末側連携アプリにおいて実行されるサービスアプリがウェブアプリである場合を例に説明する。ウェブアプリとは、ウェブブラウザにより実行されるアプリである。ウェブアプリは、任意の手段により連携端末5に実装される。例えば、ウェブアプリは、放送マネージドアプリから取得が指示されたアプリでもよく、ユーザ操作により取得したアプリでもよく、連携端末5に予め実装されたアプリでもよい。放送マネージドアプリ及びウェブアプリのプログラムは、例えば、HTML(Hypertext Markup Language)により記述される。
図2は、受信装置4及び連携端末5のスタック図である。受信装置4は、ハードウェア、OS(Operation System)、レジデント及びアプリ実行部の4層から構成される。アプリ実行部は、例えばHTML5ブラウザであり、放送マネージドアプリを実行する。OS上で実行されるレジデントには、メモリに常駐するソフトウェアによる放送の受信機機能が搭載される。アプリ実行部で実行される放送マネージドアプリは、非特許文献1により規定される拡張API(Application Program Interface)を通してレジデントの受信機機能にアクセスすることができる。ハードウェアは、CPU(central processing unit)、各種メモリ、チューナー、デコーダ、通信装置、表示装置、入力装置などを含む。
連携端末5は、ハードウェア、OS及びネイティブアプリ実行部の3層から構成される。ネイティブアプリ実行部は、iOS(登録商標)やAndroid(登録商標)など端末のOSが提供するアプリを実行する。ネイティブアプリ実行部では、複数のネイティブアプリが動作可能である。ネイティブアプリは、特定のOSやプラットフォームで実行可能なプログラムである。本実施形態における端末側連携アプリはネイティブアプリであり、ネイティブアプリ実行部において動作する。なお、端末側連携アプリは、ネイティブアプリでなくてもよい。例えば、端末側連携アプリは、ネイティブアプリから、ネイティブアプリではないブラウザを呼び出し、ブラウザによりウェブアプリを実行させてもよい。ハードウェアは、CPU、各種メモリ、通信装置、表示装置、入力装置などを含む。
ハイブリッドキャストにおける端末連携機能は、受信装置4のアプリ実行部で動作する放送マネージドアプリと、連携端末5のネイティブアプリ実行部が実行する端末側連携アプリの内部で動作するウェブアプリの間で実現される。放送マネージドアプリとウェブアプリとの間では、非特許文献1で規定される拡張APIを用いてテキストメッセージを送信する。テキストメッセージには、任意のメッセージ内容を記述することができる。例えば、メッセージ内容は、アプリに対する各種の実行命令や、アプリが動作する際に用いられる付加的な情報などでもよい。
図3は、受信装置4の内部構成を示すブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。同図に示す受信装置4は、放送受信部401、分離部402、映像復号部403、音声復号部404、データ放送実行部405、通信入出力部406、リモコン入力制御部407、電源制御部408、アプリ実行部409、アプリ制御部410、放送通信連携部411、端末連携部412、映像合成部413、映像表示部414、音声合成部415及び音声出力部416を備えて構成される。
放送受信部401は、チューナーであり、放送送出装置2から送出された放送信号を受信し、復調する。分離部402は、放送受信部401が受信し、復調した放送信号を、映像データ、音声データなどのコンテンツデータや、コンテンツデータ以外のデータに分離する。コンテンツ以外のデータには、例えば、データ放送や、受信チャンネル、番組情報が記述されたSI(Service Information)や、イベントメッセージなどが含まれる。映像復号部403は、映像データを復号する。音声復号部404は、音声データを復号する。データ放送実行部405は、BML(Broadcast Markup Language)ブラウザであり、データ放送を実行する。
通信入出力部406は、通信ネットワークに接続するためのインターフェースである。通信入出力部406は、インターネットなどを介してアプリマーケット、アカウント管理サーバ、アプリ配信サーバなどのサービスサーバ3と接続する。また、通信入出力部406は、無線LANなどのローカルネットワークを介して連携端末5と接続する。リモコン入力制御部407は、リモコン(リモートコントローラ)からユーザがリモコンに行った操作を示すデータを受信する。電源制御部408は、受信装置4の電源の制御を行う。
アプリ実行部409は、放送マネージドアプリを実行するウェブ(Web)ブラウザである。放送マネージドアプリは、1以上のサービスの機能を提供する。アプリ制御部410は、放送信号から分離されたデータに含まれる情報に基づいて、放送マネージドアプリの起動や終了などの制御を行う。例えば、アプリ制御部410は、現在選択されている放送事業者(チャンネル)の放送マネージドアプリを、放送信号から分離されたAITに設定されている情報などに基づいて制御する。アプリ制御部410は、起動した放送マネージドアプリの識別情報を端末連携部412に通知する。
放送通信連携部411は、放送マネージドアプリにおいて放送又は通信により取得したコンテンツを連携動作させるために、アプリ実行部409に対して拡張APIで規定される機能を提供する。具体的には、放送通信連携部411は、受信中の放送信号に含まれるSIやイベントメッセージなどの情報や受信装置4が備える機能などへのアクセス手段を提供する。端末連携部412は、連携端末5とのペアリング処理と、受信装置4の放送マネージドアプリと連携端末5のウェブアプリ間の通信を仲介する処理とを行う。端末連携部412は、後述する図5に示す連携端末5の端末連携部531とペアで動作する。端末連携部412は、起動された放送マネージドアプリの識別情報を連携端末5に通知する。
映像合成部413は、映像復号部403が復号した放送番組の映像データと、データ放送実行部405やアプリ実行部409の処理結果に基づき出力された映像データとを合成し、映像表示部414に出力する。映像表示部414は、一般的なディスプレイであり、映像合成部413が合成した映像データの映像を表示する。
音声合成部415は、音声復号部404が復号した放送番組の音声データと、データ放送実行部405やアプリ実行部409の処理結果に基づき出力された音声データとを合成し、音声出力部416に出力する。音声出力部416は、一般的なスピーカーであり、音声合成部415が合成した音声データを音声により出力する。
図4は、アプリ実行部409の詳細な構成を示す機能ブロック図である。アプリ実行部409は、サービス実行部421、サービス実行管理部422、メッセージ制御部423、VODサービス実行部431及びVOD制御メッセージ制御部432を有する。なお、アプリ実行部409は複数のサービス実行部421を備え得るが、同時に動作する放送マネージドアプリは一つのみとする。同図では、アプリ実行部409が備える複数のサービス実行部421をそれぞれ、サービス実行部421−1、421−2…と記載している。
サービス実行部421は、アプリ制御部410による制御に基づき、放送マネージドアプリに含まれるサービス機能を実行する。サービス実行管理部422は、各サービス実行部421の起動及び終了の制御や状態管理を行い、複数のサービス実行部421を並列に実行させる。
メッセージ制御部423は、サービス実行部421が実行する放送マネージドアプリのサービス機能と連携端末5が実行するウェブアプリとの間のメッセージを適切に送受信するための制御を行う。メッセージ制御部423は、サービス識別管理部4231、メッセージ受信部4232、メッセージ判定部4233、メッセージ分配部4234及び送信元サービス設定部4235を有する。
サービス識別管理部4231は、サービス実行部421の識別子と、そのサービス実行部421により実行されるサービスの識別子との対応表を例えばリスト形式で管理する。サービスの識別子は、予め決められる。なお、各放送マネージドアプリは、プレフィックスを付加することなどにより、送信先のアドレスとして、サービス毎に予め決められた識別子を、メッセージの一部に付加して送受信を行う。
メッセージ受信部4232は、連携端末5からのメッセージ、及び、サービス実行部421からのメッセージを受信する。メッセージ受信部4232は、受信したメッセージを、メッセージ判定部4233及びメッセージ分配部4234に送信する。なお、メッセージ受信部4232は、メッセージ判定部4233に宛先の判定に必要な情報のみを送信してもよい。
メッセージ判定部4233は、メッセージ受信部4232から受信したメッセージに付加されたサービスの識別子と、サービス識別管理部4231に記憶される対応表とを照合してメッセージの送信先を決定し、メッセージ分配部4234に通知する。メッセージ判定部4233は、メッセージに付加された送信元のサービスの識別子と送信先のサービスの識別子とが同一の場合は連携端末5を送信先とし、異なる場合はサービス実行部421を送信先とする。また、メッセージ判定部4233は、実施形態によっては、サービス間の通信チャンネルを確立するための識別子の発行や、その識別子に基づいたメッセージの送信先の決定を行う。
メッセージ分配部4234は、メッセージ受信部4232から受信したメッセージを、メッセージ判定部4233が決定した送信先に送信する。送信元サービス設定部4235は、サービス実行部421が連携端末5または他のサービス実行部421に対して送信するメッセージに、そのサービス実行部421において実行中の放送マネージドアプリのサービスの識別子を付加する。
VODサービス実行部431は、VOD制御メッセージ制御部432から入力されるVOD制御コマンドに基づいてVODコンテンツの再生サービス機能を実行するサービス実行部である。VODコンテンツの再生サービス機能は、放送マネージドアプリに含まれるサービス機能の一つである。VODサービス実行部431は、VODサービスアプリに記述された命令で指示される処理を実行してVODコンテンツの再生サービス機能を実行する。VODサービス実行部431も、起動及び終了の制御、状態管理の対象となってもよい。VODサービス実行部431は、VOD制御コマンドで指示される処理の実行結果を示す実行結果メッセージをVOD制御メッセージ制御部432に出力する。
VOD制御メッセージ制御部432は、連携端末5からメッセージ制御部423を介して入力されたVOD制御メッセージに含まれるVOD制御コマンドに基づくVODサービス実行部431の動作制御の可否を判定する。VOD制御メッセージ制御部432は、VOD制御メッセージ処理部4321、VOD制御状態判定部4322及びVOD制御状態管理部4323を有する。
VOD制御メッセージ処理部4321は、連携端末5からメッセージ制御部423を介して入力されたVOD制御メッセージを解釈し、所定の形式に従っているか否かを確認する(形式確認)。ここで、VOD制御メッセージ処理部4321は、解釈したメッセージを分解し、VOD制御コマンド、メッセージID(Identifier)及びチャネル(CH:Channel)情報を検出する。CH情報については、後述する。連携端末5のVODサービス実行部551との接続確立後、初めてVOD制御コマンドを検出するとき、VOD制御メッセージ処理部4321は、動作モードとしてVOD制御モードを開始する(VODCAST開始)。VOD制御メッセージ処理部4321は、検出したVOD制御コマンドのVOD制御処理可否判定リクエストをVOD制御状態判定部4322に出力し、その応答としてVOD制御可否判定が入力される。
VOD制御可否判定がVOD制御可(OK)を示すとき、VOD制御メッセージ処理部4321は、VODサービス実行部431に、VOD制御コマンドを発行する。VOD制御メッセージ処理部4321には、VODサービス実行部431から実行結果メッセージが入力される。実行結果メッセージには、例えば、実行結果として正常な実行を示す情報、エラーを示す情報が含まれる。VOD制御メッセージ処理部4321は、VOD制御可否判定を含む応答メッセージを生成する。応答メッセージには、さらに受信装置4が受信している放送番組のCH情報が含まれてもよい。CH情報には、個々の放送番組を特定するための特定情報や、その属性を示す情報が含まれる。放送番組の特定情報として、放送チャネル、放送日時、その番組のイベントIDなどの情報、属性には、放送事業者、制作者、ジャンルなどの情報が含まれうる。VOD制御可否判定がVOD制御可を示すとき、VOD制御メッセージ処理部4321は、応答メッセージに含まれるVOD制御状態情報として実行結果メッセージをさらに含めてもよい。VOD制御メッセージ処理部4321は、応答メッセージにVOD制御コマンドのメッセージIDを付加し、メッセージ制御部423を介して連携端末5に出力する。
なお、VOD制御コマンドがVODコンテンツ再生終了を示すとき、動作モードとしてVOD制御モードを終了する(VODCAST終了)。VODサービス実行部431におけるVODコンテンツの再生中断するとき、連携端末5のVODサービス実行部551との接続中断、その他、VOD制御メッセージ処理部4321にVODサービス実行部431からエラー応答が入力される場合がある。その場合にも、動作モードとしてVOD制御モードを終了してもよい。
VOD制御状態判定部4322には、VOD制御メッセージ処理部4321からVOD制御処理可否判定リクエストが入力される。VOD制御状態判定部4322は、VOD制御状態管理部4323に記憶されているVOD制御状態データを参照して、VOD制御処理可否判定リクエストで指定されるVOD制御コマンドに基づくVODサービス実行部431の動作制御の可否(OK/NG)を判定する。VOD制御状態判定部4322は、VOD制御処理可否判定リクエストの応答としてVOD制御可否判定をVOD制御メッセージ処理部4321に出力する。VOD制御可否判定の例については、後述する。
VOD制御状態管理部4323は、その時点におけるVOD制御コマンドに基づく動作の可否判定に用いるVOD制御状態データを記憶する。VOD制御状態データには、例えば、VOD制御メッセージのメッセージID、連携端末5のVODサービス実行部551との連携状態、受信装置4において受信中の放送番組のCH情報、連携端末5のVODサービス実行部551が再生させるVODコンテンツのCH情報、受信装置4において受信している放送番組のCH情報などが含まれる。
VOD制御メッセージのメッセージIDは、VOD制御メッセージ処理部4321からVOD制御状態情報と対応付けて入力される。VODサービス実行部551との連携状態は、端末連携部412を介したVODサービス実行部551との接続が確立しているか否かを示す情報と、入力されたVOD制御状態情報と対応するVOD制御コマンドの情報から形成される。連携端末5のVODサービス実行部551が再生させるVODコンテンツのCH情報は、VOD制御メッセージ処理部4321から入力されたVOD制御コマンドで指定されるVODコンテンツのCH情報である。受信装置4において受信している放送番組のCH情報は、放送通信連携部411から入力されるSIなど放送信号で伝送される情報から検出される。
図5は、連携端末5の構成を示す機能ブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。同図においては、端末側連携アプリを中心とした機能構成を示す。連携端末5は、ハードウェア部51、OS部52、連携アプリ実行制御部53及び他アプリ実行制御部54を有する。
ハードウェア部51は、CPU、各種メモリ、通信装置、ディスプレイ(表示装置)、ユーザ操作を入力するための入力デバイス(入力装置)などの各種ハードウェアからなる。ディスプレイがタッチパネルである場合、入力デバイスは、タッチパネルに配されたタッチセンサーである。ハードウェア部51は、通信装置により実現される通信入出力部511を有する。
通信入出力部511は、通信ネットワークに接続するためのインターフェースである。通信入出力部511は、インターネットなどを介してサービスサーバ3と接続する。また、通信入出力部511は、無線LANなどのローカルネットワークを介して受信装置4と接続する。OS部52は、OSにより実現され、端末全体を制御し、連携アプリ実行制御部53及び他アプリ実行制御部54に、ハードウェア部51へのインターフェースを提供する。
連携アプリ実行制御部53は、CPUがメモリに記憶された端末側連携アプリを読み出して実行することにより実現される。連携アプリ実行制御部53は、端末連携部531、サービス実行部532、サービス実行管理部533及びメッセージ制御部534を有する。複数のサービス実行部532をそれぞれ、サービス実行部532−1、532−2、…と記載する。
端末連携部531は、受信装置4とのペアリング処理と、受信装置4の放送マネージドアプリと連携端末5のウェブアプリ間の通信を仲介する処理とを行う。端末連携部531は、受信装置4の端末連携部412とペアで動作する。
サービス実行部532は、個々のサービスを提供するためのウェブアプリを実行する。サービス実行部532の実装方法としては、Android(登録商標)搭載端末におけるWebView、iOS搭載端末におけるUIWebViewなどが挙げられる。サービス実行部532は複数存在することを前提としており、各サービス実行部532には一意の識別子が割り当てられ、サービスの識別子としても用いられる。各サービス実行部532は、以下のようなウェブアプリを実行する。
(1)現在実際にサービスが提供されている受信装置4の放送マネージドアプリと連携したウェブアプリ。なお、このウェブアプリを実行するのは一つのサービス実行部532である。本実施形態では、受信装置4の放送マネージドアプリと連携したウェブアプリには、VODコンテンツの再生サービス機能を制御するためのVOD制御アプリが含まれる。VODサービス実行部551は、その機能を実行するためのサービス実行部532である。VODサービス実行部551については、後述する。
(2)複数の放送局が配信する放送マネージドアプリと連携して共通に利用することができるウェブアプリ。
(3)受信装置4と連携しないウェブアプリ。
サービス実行管理部533は、各サービス実行部532の起動及び終了の制御や状態管理を行い、複数のサービス実行部532を並列に実行させる。サービス実行管理部533は、受信装置4からの指示又はユーザ操作に基づいて、サービス実行部532、又は、サービス実行部532上で実行されるウェブアプリの起動及び終了の制御や、フォアグラウンドでの動作又はバックグラウンドでの動作など状態の変更を行う。
ハイブリッドキャストでは、受信装置4と連携端末5との間でテキストメッセージを送受信するためのAPIが規定されている。メッセージ制御部534は、受信装置4が実行する放送マネージドアプリと連携端末5の各サービス実行部532が実行するウェブアプリとの間、および、サービス実行部532の間のメッセージを適切に送受信するための制御を行う。メッセージ制御部534の詳細を、図6を用いて説明する。
図6は、メッセージ制御部534の詳細な構成を示す機能ブロック図である。メッセージ制御部534は、サービス識別管理部5341、メッセージ受信部5342、メッセージ判定部5343、メッセージ分配部5344及び送信元サービス設定部5345を有する。また、連携アプリ実行制御部53(図5)は、VODサービス実行部551及びVOD制御メッセージ制御部552を有する。
サービス識別管理部5341は、サービス実行部532の識別子と、そのサービス実行部532が実行するウェブアプリにより提供されるサービスであるウェブサービスの識別子との対応表を例えばリスト形式で管理する。ウェブサービスの識別子は、予め決められる。なお、各ウェブサービスは、プレフィックスを付加することなどにより、送信先のアドレスとして、ウェブサービス毎に予め決められた識別子を、メッセージの一部に付加して送受信を行う。
メッセージ受信部5342は、受信装置4からのメッセージ、及び、各サービス実行部532からのメッセージを受信する。メッセージ受信部5342は、受信したメッセージを、メッセージ判定部5343及びメッセージ分配部5344に送信する。なお、メッセージ受信部5342は、メッセージ判定部5343に宛先の判定に必要な情報のみを送信してもよい。
メッセージ判定部5343は、メッセージ受信部5342から受信したメッセージに付加されたサービスの識別子と、サービス識別管理部5341に記憶される対応表とを照合してメッセージの送信先を決定し、メッセージ分配部5344に通知する。メッセージ判定部5343は、メッセージに付加された送信元のサービスの識別子と送信先のサービスの識別子とが同一の場合は受信装置4を送信先とし、異なる場合はサービス実行部532を送信先とする。また、メッセージ判定部5343は、実施形態によっては、サービス間の通信チャンネルを確立するための識別子の発行や、その識別子に基づいたメッセージの送信先の決定を行う。
メッセージ分配部5344は、メッセージ受信部5342から受信したメッセージを、メッセージ判定部5343が決定した送信先に送信する。送信元サービス設定部5345は、サービス実行部532が受信装置4または他のサービス実行部532に対して送信するメッセージに、送信元のサービス実行部532の識別子を付加する。
上述したように、受信装置4で実行される放送マネージドアプリは一つである。そこで、複数のサービスを一つの放送マネージドアプリで実行するために、一つのHTML文書(アプリケーションプログラム)内に複数のサービスそれぞれを実行させるためのプログラムを記述する。例えば、放送局Aが提供する現行の放送マネージドアプリでのサービスAに加え、放送局Aと放送局Bとが共通に提供するサービスXを同時に運用することを想定する。このとき、放送局Aが提供するサービスAのHTML文書内と、放送局Bが提供する放送マネージドアプリのサービスBのHTML文書内に、サービスXの機能をJavaScript(登録商標)等で記述する。さらに、複数のサービスで個々にデバイス間でメッセージを送受信するため、連携端末5のサービス実行管理部533と同等の機能を有するサービス実行管理部422の機能、連携端末5のメッセージ制御部534と同等の機能を有するメッセージ制御部423の機能を、サービスAとサービスBの両方のサービスのHTML文書内にサービスXの機能と同様に記述する。サービス実行管理部422の機能には、サービス実行部421の起動や終了などの制御、サービスごとに画面に表示するか否かの制御が含まれる。
VODサービス実行部551は、VOD制御アプリに記述されたVODコンテンツの再生サービス機能を実行する。VODコンテンツの再生サービス機能には、連携端末5自体が通信で受信したVODコンテンツ再生サービスと、受信装置4のVODサービス実行部431によるVODコンテンツの再生サービスを制御する機能(VODCAST)がある。以下、主に後者について説明する。
VODサービス実行部551は、入力デバイスから入力される操作信号で指定されるVOD制御コマンドを発行する。VODサービス実行部551は、発行したVOD制御コマンドをVOD制御メッセージ制御部552に出力する。
また、VODサービス実行部551は、その時点における受信装置4のVODサービス実行部431の制御状態を示す制御状態表示をディスプレイに出力する。VODサービス実行部551は、VOD制御メッセージ制御部552から入力されるVOD制御状態情報に基づいて操作状態表示を更新する。例えば、応答メッセージにVOD制御可を示すVOD制御可否判定と実行成功を示す実行結果メッセージが含まれている場合には、直近に発行した制御コマンドの制御の成功を示す操作状態表示に更新する。また、応答メッセージにVOD制御否を示す応答メッセージ、又は実行失敗を示す実行結果メッセージが含まれている場合には、VODサービス実行部551は、それぞれのエラー表示をディスプレイに出力する。
VOD制御メッセージ制御部552は、受信装置4におけるVODサービス実行部431における、VOD制御コマンドを用いた動作制御の可否を判定する。VOD制御メッセージ制御部552は、動作制御可と判定したVOD制御コマンドを示すVOD制御メッセージをメッセージ制御部534に出力する。VOD制御メッセージ制御部552は、VOD制御メッセージ処理部5521、VOD制御状態判定部5522及びVOD制御状態管理部5523を有する。
VOD制御メッセージ処理部5521は、VODサービス実行部551から入力されたVOD制御コマンドのVOD制御処理可否判定リクエストをVOD制御状態判定部5522に出力し、その応答としてVOD制御可否判定が入力される。
VOD制御可否判定がVOD制御可(OK)を示すとき、VOD制御メッセージ処理部5521は、VOD制御コマンドを示すVOD制御メッセージを生成する。VOD制御メッセージ処理部5521は、個々のメッセージを識別するためのメッセージIDとチャネル(CH)情報をVOD制御メッセージに付加する。CH情報は、制御に係る個々のVODコンテンツやその属性を示す情報である。CH情報には、例えば、VODコンテンツの制作者、配信事業者、配信期間、などの情報が含まれる。VOD制御メッセージ処理部5521は、VOD制御メッセージを受信装置4にメッセージ制御部534を介して送信する。
VOD制御メッセージ処理部5521は、受信装置4からメッセージ分配部5344を介して入力された応答メッセージを解釈し、所定の形式に従っているか否かをチェックする(形式チェック)。ここで、VOD制御メッセージ処理部5521は、解釈した応答メッセージを分解し、メッセージIDを検出する。
VOD制御メッセージ処理部5521は、検出したメッセージIDと同一のメッセージIDで特定されるVOD制御コマンドについてVOD制御可否判定と、受信装置4から受信した応答メッセージに含まれるVOD制御可否判定をVOD制御状態情報として集約する。応答メッセージに実行結果メッセージが含まれる場合には、VOD制御メッセージ処理部5521は、さらに実行結果メッセージをVOD制御状態情報に集約する。VOD制御メッセージ処理部5521は、検出したメッセージIDに係るVOD制御コマンドのVOD制御状態情報をVODサービス実行部551とVOD制御状態管理部5523に出力する。
なお、受信装置4のVODサービス実行部431との接続が確立した後、VODサービス実行部551から初めてVOD制御コマンドが入力されるとき、VOD制御メッセージ処理部5521は、動作モードとしてVOD制御モードを開始する(VODCAST開始)。VOD制御モードでは、連携端末5が受信装置4におけるVODコンテンツの再生処理におけるリモコンとして機能する。VOD制御メッセージ処理部5521は、VOD制御状態情報に含まれる応答メッセージがVODコンテンツの再生中断、VODサービス実行部431との接続中断を示すとき、その他のエラー応答が入力されるとき、VOD制御モードを終了する。
VOD制御状態判定部5522には、VOD制御メッセージ処理部5521からVOD制御処理可否判定リクエストが入力される。VOD制御状態判定部5522は、VOD制御状態管理部5523に記憶されているVOD制御状態データを参照して、VOD制御処理可否判定リクエストで指定されるVOD制御コマンドに基づくVODサービス実行部431の動作制御の可否(OK/NG)を判定する。VOD制御状態判定部5522は、VOD制御処理可否判定リクエストの応答としてVOD制御可否判定をVOD制御メッセージ処理部5521に出力する。VOD制御可否判定の例については、後述する。
VOD制御状態管理部5523は、その時点におけるVOD制御コマンドに基づく動作の可否判定に用いるVOD制御状態データを記憶する。VOD制御状態データには、例えば、VOD制御メッセージのメッセージID、受信装置4のVODサービス実行部431との連携状態、受信装置4において受信中の放送番組のCH情報、連携端末5のVODサービス実行部551が再生させるVODコンテンツのCH情報、受信装置4が受信している放送番組のCH情報などが含まれる。
VOD制御メッセージのメッセージIDは、VOD制御メッセージ処理部5521からVOD制御状態情報と対応付けて入力される。VODサービス実行部431との連携状態は、端末連携部531を介したVODサービス実行部431との接続が確立しているか否かを示す情報と、入力されたVOD制御状態情報と対応するVOD制御コマンドの情報から形成される。連携端末5のVODサービス実行部551が再生させるVODコンテンツのCH情報は、入力されたVOD制御状態情報に係るVOD制御コマンドで指定されるVODコンテンツのCH情報である。受信装置4が受信している放送番組のCH情報は、VOD制御状態情報から検出される。
図7は、放送マネージドアプリの記述例を示す図である。同図は、放送局Aの放送マネージドアプリを、HTML文書として記述した例である。同図に示すように、divでサービスA、サービスXのそれぞれ表示する要素をグループ化し、idを指定する(serviceA、common_serviceX)。サービス実行部421で実行される各サービスの機能は、JavaScript(登録商標)で記述し、head部分にインクルードする(serviceA.js、common_serviceX)。さらに、サービス実行管理部422によるサービス実行部421の起動や終了などの制御機能(common_appcontrol.js)、メッセージ制御部423の機能(common_messaging.js)、及び、サービス実行管理部422によるサービス毎の表示の制御機能(common_viewcontrol.js)も同様にインクルードする。このようにHTML文書として記述された放送マネージドアプリをアプリ実行部409が実行することにより、アプリ実行部409は、サービス実行部421、サービス実行管理部422及びメッセージ制御部423として動作する。これにより、受信装置4上の放送マネージドアプリと、連携端末5上のコンパニオンアプリ双方に同等の機能が導入されるため、複数のサービスを一対の受信装置4と連携端末5上で利用できるようになる。
なお、サービス実行管理部422、メッセージ制御部423及びサービス実行部421として動作する機能部が、予め受信装置4のアプリ実行部409に実装されていてもよい。
連携端末5のサービス実行管理部533は、受信装置4からの指示、又は、連携端末5にユーザが入力した指示に従って、サービス実行部532によるウェブアプリの起動又は停止を行う。具体的には、受信装置4のアプリ実行部409が実行している放送マネージドアプリからサービス起動指示が出力されると、端末連携部412は連携端末5を送信先とし、通信入出力部406を介してサービス起動指示を送信する。サービス起動指示には、起動対象のウェブアプリを特定する情報が含まれる。連携端末5の端末連携部531は、通信入出力部511を介して受信したサービス起動指示をサービス実行管理部533へ出力する。サービス実行管理部533は、受信したサービス起動指示により起動が指示されたウェブアプリを起動する。あるいは、連携端末5の入力デバイスによりユーザが起動対象のウェブアプリの情報を入力すると、サービス実行管理部533は、その起動対象のウェブアプリを起動する。これにより、連携アプリ実行制御部53において、サービス実行部532が動作する。
図8は、メッセージの例を示す。
図8(a)は、受信装置4において放送マネージドアプリのサービスPの機能を実行しているサービス実行部421から、連携端末5の端末側連携アプリにおいてサービスPのウェブアプリを実行しているサービス実行部532へ送信されるメッセージM11を示す。図8(b)は、連携端末5の端末側連携アプリにおいてサービスPのウェブアプリを実行しているサービス実行部532から、同じく端末側連携アプリにおいてサービスQのウェブアプリを実行しているサービス実行部532に送信されるメッセージM21を示す。メッセージM11は、放送マネージドアプリのサービスPの機能を実行しているサービス実行部421により記述されるメッセージであり、メッセージM12は、サービスPのウェブアプリを実行しているサービス実行部532において記述されるメッセージである。メッセージM11、M21には、送信先のサービスの識別子(dst:ServiceP、dst:ServiceQ)、メッセージ本体(message)が記述される。
図8(c)に示すメッセージM12及び図8(d)に示すメッセージM22は、連携端末5のメッセージ受信部5342が受信するメッセージである。メッセージM12は、メッセージM11に送信元のサービスPの識別子(src:ServiceP)が付加されたものであり、メッセージM22は、メッセージM21に送信元のサービスPの識別子(src:ServiceP)が付加されたものである。
具体的には、受信装置4の送信元サービス設定部4235が、メッセージM11に送信元のサービスPの識別子を追加し、メッセージM12となる。メッセージM12の場合は、放送マネージドアプリを実行することにより生成されるメッセージ制御部423が有する送信元サービス設定部4235の機能(図7におけるcommon_messaging.js)によって、送信元のサービスの識別子が設定される。一方、メッセージM22の場合は、連携端末5の送信元サービス設定部5345が、メッセージM21に送信元のサービスPの識別子を付加する。
なお、メッセージのフォーマットはこれらの記述例に限らない。また、本実施形態では、送信元のサービスの識別子と送信先のサービスの識別子のみを記述したが、受信装置4もしくは連携端末5を送信先として記述しても構わない。
図9及び図10は、メッセージ制御部423及びメッセージ制御部534の動作を示す処理フローである。以下では、メッセージ制御部534を例にして説明するが、メッセージ制御部423も同様に動作する。
図9は、メッセージ受信時の処理フローを示す。連携端末5の端末連携部531は、通信入出力部511を介して受信装置4から受信したメッセージを、メッセージ受信部5342に出力する。メッセージ受信部5342は、端末連携部531からメッセージを受信する(ステップS105)。メッセージ受信部5342は、受信したメッセージから送信先のサービスの識別子及び送信元のサービスの識別子を検出する(ステップS110)。メッセージ受信部5342は、メッセージが読み出した送信先のサービスの識別子及び送信元のサービスの識別子をメッセージ判定部5343に通知し、メッセージ全体をメッセージ分配部5344に通知する(ステップS115)。
メッセージ判定部5343は、サービス識別管理部5341に、送信先のサービスの識別子により特定されるサービスをサービス実行部532が実行しているか否かの照合を依頼する(ステップS120)。サービス識別管理部5341は、メッセージ判定部5343から通知された送信先のサービスの識別子と対応付けて対応表に登録されているサービス実行部532の識別子を取得する。サービス識別管理部5341は、サービス実行部532の識別子が取得できた場合はその識別子を設定した照合結果を、取得できなかった場合はサービス実行部532がないことを示す照合結果を出力する。
メッセージ判定部5343は、サービス識別管理部5341から、送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532があることを示す照合結果を受信したと判断すると(ステップS125:はい)、ステップS130の処理を行う。すなわち、メッセージ判定部5343は、メッセージ分配部5344に対して、メッセージに記述された送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532に、メッセージを送信するよう通知する(ステップS130)。メッセージ分配部5344は、メッセージ判定部5343の指示に従い、メッセージに記述された送信先のサービスの識別子により特定されるサービス実行部532に、メッセージを送信する(ステップS135)。
一方、メッセージ判定部5343は、サービス識別管理部5341から送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532がないことを示す照合結果を受信したと判断すると(ステップS125:いいえ)、ステップS140の処理を行う。すなわち、メッセージ判定部5343は、エラーをメッセージの送信元に返送するなど、所定のエラー処理を行う(ステップS140)。
図10は、メッセージ発行時の処理フローを示す。サービス実行部532は、メッセージを設定し、送信元サービス設定部5345に通知する(ステップS205)。送信元サービス設定部5345は、受信したメッセージに対して、送信元の識別子として、メッセージの送信元のサービス実行部532が実行しているサービスの識別子を追加し、メッセージ受信部5342に通知する(ステップS210)。メッセージ受信部5342は、メッセージから読み出した送信先のサービスの識別子及び送信元のサービスの識別子をメッセージ判定部5343に通知し、メッセージ全体をメッセージ分配部5344に通知する(ステップS215)。
メッセージ判定部5343は、送信先と送信元の識別子が同一か否かを判定する(ステップS220)。メッセージ判定部5343は、送信先と送信元の識別子が同一と判定した場合(ステップS225:はい)、メッセージ分配部5344に対して、端末連携部531を経由して受信装置4にメッセージを送信するよう通知する(ステップS230)。メッセージ分配部5344は、メッセージ判定部5343の指示に従い、メッセージを端末連携部531に出力し、端末連携部531は、メッセージ分配部5344から受信したメッセージを、通信入出力部511を介して受信装置4に送信する(ステップS240)。
一方、メッセージ判定部5343は、送信先と送信元の識別子が同一ではないと判定した場合(ステップS225:いいえ)、ステップS235の処理を行う。すなわち、メッセージ判定部5343は、サービス識別管理部5341から、メッセージに記述された送信先のサービスの識別子に対応して対応表に登録されているサービス実行部532の識別子を読み出す。メッセージ判定部5343は、読み出した識別子により特定されるサービス実行部532、つまり、メッセージに記述された送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532へメッセージを送信するよう、メッセージ分配部5344に通知する(ステップS235)。メッセージ分配部5344は、メッセージ判定部5343により送信先として指示されたサービス実行部532に、メッセージを送信する(ステップS240)。
図11は、受信装置4と連携端末5の間のシーケンス図である。受信装置4のサービス実行部421は、連携端末5において実行されるサービスの識別子を宛先に設定したメッセージを発行する(ステップS305)。送信元サービス設定部4235は、サービス実行部421から受信したメッセージに送信元のサービスの識別子を設定し、メッセージ受信部4232に出力する(ステップS310)。メッセージ受信部4232は、メッセージから取得した送信元のサービスの識別子及び送信先のサービスの識別子をメッセージ判定部4233に通知し(ステップS315)、メッセージ全体をメッセージ分配部4234に通知する(ステップS320)。メッセージ判定部4233は、送信元のサービスの識別子及び送信先のサービスの識別子が同一であるため、連携端末5にメッセージを送信するようメッセージ分配部4234に通知する(ステップS325)。メッセージ分配部4234は、メッセージを端末連携部412に出力し(ステップS330)、端末連携部412は、メッセージを、通信入出力部406を介して連携端末5に送信する。
連携端末5の通信入出力部511は、受信装置4から受信したメッセージを端末連携部531に出力する(ステップS335)。メッセージ受信部5342は、端末連携部531からメッセージを受信する(ステップS340)。メッセージ受信部5342は、メッセージから取得した送信元のサービスの識別子及び送信先のサービスの識別子をメッセージ判定部5343に通知し(ステップS345)、メッセージ全体をメッセージ分配部5344に通知する(ステップS350)。メッセージ判定部5343は、送信先のサービスの識別子により特定されるウェブサービスが存在することを示す照合結果をサービス識別管理部5341から受信すると、ステップS355の処理を行う。すなわち、メッセージ判定部5343は、送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532へメッセージを出力するようメッセージ分配部5344に指示する(ステップS355)。メッセージ分配部5344は、メッセージ判定部5343に指示されたサービス実行部532へメッセージを出力する(ステップS360)。
図11では、受信装置4から連携端末5へのメッセージの送信例を示したが、連携端末5から受信装置4へのメッセージ送信も同様の手順で実行できる。
図12は、連携端末5のウェブアプリ間でメッセージを送信する場合のシーケンス図である。同図では、サービス実行部532−1をサービス実行部(1)、サービス実行部532−2をサービス実行部(2)と記載している。
サービス実行部532−1は、サービス実行部532−2が実行しているサービスの識別子を宛先に設定したメッセージを発行する(ステップS405)。送信元サービス設定部5345は、サービス実行部532−1から受信したメッセージに送信元のサービスの識別子を設定し、メッセージ受信部5342に出力する(ステップS410)。メッセージ受信部5342は、メッセージから取得した送信元のサービスの識別子及び送信先のサービスの識別子をメッセージ判定部5343に通知し(ステップS415)、メッセージ全体をメッセージ分配部5344に通知する(ステップS420)。メッセージ判定部5343は、送信元のサービスの識別子及び送信先のサービスの識別子が異なるため、送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532−2にメッセージを送信するようメッセージ分配部5344に通知する(ステップS425)。メッセージ分配部5344は、メッセージ判定部5343に指示されたサービス実行部532−2へメッセージを出力する(ステップS430)。
図12では、連携端末5のウェブアプリ間でメッセージを送信する場合について示しているが、受信装置4のサービス実行部421間でメッセージを送信する場合についても同様の手順で実行できる。
上述した、図8〜図12の例では、全てのメッセージに送信元のサービスの識別子と送信先のサービスの識別子を付加して送信していたが、サービス間のチャンネルの識別子を付加する実施形態をとっても構わない。この場合、受信装置4の放送マネージドアプリのサービスと連携端末5のウェブサービスとの間、又は、連携端末5におけるウェブサービス間で、メッセージングを開始する前に、接続処理を実行してサービス間のチャンネルを確立する。以降、受信装置4及び連携端末5は、接続解除の処理が実行されるまでは、確立したチャンネルにおいて割り当てられたセッションの識別子に基づき、送信元と送信先の識別子を付加せずにメッセージを送信する。
図13は、受信装置4の放送マネージドアプリのサービスと連携端末5のウェブサービスとの間でセッションの識別子に基づきメッセージを送信する場合のメッセージの設定例を示す図である。図13(a)は、接続登録メッセージM31を、図13(b)は接続登録確認メッセージM32を、図13(c)は接続解除メッセージM33を、図13(d)は接続解除確認メッセージM34を、図13(e)はメッセージ本体が設定されたメッセージM35を示す。
接続登録メッセージM31、接続登録確認メッセージM32、接続解除メッセージM33、接続解除確認メッセージM34、メッセージM35には、type属性が含まれている。このtype属性により、メッセージが登録(publish)/登録確認(subscribe)/接続解除(unpublish)/接続解除確認(unsubscribe)/メッセージ本体(body)のいずれであるかが識別可能である。
また、接続登録メッセージM31、接続登録確認メッセージM32、接続解除メッセージM33、接続解除確認メッセージM34には、送信元のサービスの識別子(src)及び送信先のサービスの識別子(dst)が設定され、接続登録確認メッセージM32及び接続解除確認メッセージM34には、さらに、確立したチャンネルに割当てられたセッションの識別子(subscribe_ID)が記述される。メッセージ本体(message)が設定されたメッセージM35には、送信元及び送信先は設定されず、セッションの識別子(subscribe_ID)とメッセージの内容(message)が記述される。
図14及び図15は、受信装置4と連携端末5の間でセッションの識別子に基づきメッセージを送信する場合のシーケンス図である。
図14は、接続登録処理のシーケンスを示す。受信装置4のサービス実行部421は、接続登録メッセージを発行する(ステップS505)。サービス実行部421が発行した接続登録メッセージには、接続登録メッセージであることを示す「publish」が設定されたtype属性と、送信先のサービスの識別子が設定されたdst属性とが含まれる。送信元サービス設定部4235は、このメッセージに、送信元のサービスの識別子を設定したsrc属性を追加する。送信元サービス設定部4235は、src属性が追加された接続登録メッセージをメッセージ受信部4232に出力する(ステップS510)。
メッセージ受信部4232は、接続登録メッセージに設定されている送信先のサービスの識別子及び送信元のサービスの識別子をメッセージ判定部4233に通知し(ステップS515)、接続登録メッセージ全体をメッセージ分配部4234に通知する(ステップS520)。メッセージ判定部4233は、送信先と送信元のサービスの識別子が同一であるため、連携端末5にメッセージを送信するようメッセージ分配部4234に通知する(ステップS525)。メッセージ分配部4234は、接続登録メッセージを端末連携部412に出力し(ステップS530)、端末連携部412は、メッセージ分配部4234から受信した接続登録メッセージを、通信入出力部406を介して連携端末5に送信する。
連携端末5の通信入出力部511は、受信装置4からメッセージを受信し、端末連携部531に出力する(ステップS535)。メッセージ受信部5342は、端末連携部531からメッセージを受信する(ステップS540)。メッセージ受信部5342は、受信したメッセージをメッセージ判定部5343に出力する(ステップS545)。メッセージ判定部5343は、受信したメッセージのtype属性により接続登録メッセージであると判断すると、subscribe_IDを発行し、送信元及び送信先のサービスの識別子と対応付けて記憶する。なお、接続が解除される度に新規のsubscribe_IDを発番してもよく、送信元と送信先のペアに対して予め決定したsubscribe_IDを割り当てても構わない。さらに、メッセージ判定部5343は、接続登録確認メッセージを生成する。接続登録確認メッセージには、接続登録確認メッセージを示す「subscribe」が設定されたtype属性と、発行したsubscribe_IDと、接続登録メッセージに設定されていたdst属性及びsrc属性とが含まれる。メッセージ判定部5343は、生成した接続登録確認メッセージをメッセージ分配部5344に通知し、受信装置4へ送信するよう指示する(ステップS550)。
メッセージ分配部5344は、接続登録確認メッセージを端末連携部531に出力し(ステップS555)、端末連携部531は、接続登録確認メッセージを、通信入出力部511を介して受信装置4に送信する(ステップS560)。
受信装置4の通信入出力部406は、連携端末5から受信したメッセージを端末連携部412に出力する。メッセージ受信部4232は、端末連携部412からメッセージを受信する(ステップS565)。メッセージ受信部4232は、受信したメッセージのtype属性から接続登録確認メッセージであると判断する。メッセージ受信部4232は、接続登録確認メッセージから取得したsubscribe_IDと、送信元及び送信先のサービスの識別子をメッセージ判定部4233に出力する(ステップS570)。メッセージ判定部4233は、subscribe_IDと、送信元及び送信先のサービスの識別子とを対応付けて登録する。さらに、メッセージ受信部4232は、接続登録確認メッセージを、送信先のサービスの識別子により特定される放送マネージドアプリを実行しているサービス実行部421にsubscribe_IDを通知する(ステップS575)。
図15は、メッセージ送信処理のシーケンスを示す。受信装置4のサービス実行部421は、メッセージ本体を設定したメッセージを発行する(ステップS605)。メッセージには、メッセージ本体であることを示す「body」が設定されたtype属性と、送信先のサービスに応じたsubscribe_IDと、メッセージ内容とが含まれる。送信元サービス設定部4235は、サービス実行部421から受信したメッセージに送信元のサービスの識別子を設定する。なお、送信元のサービスの識別子の設定は行わなくてもよい。送信元サービス設定部4235は、送信元のサービスの識別子が設定されたメッセージを、メッセージ受信部4232に出力する(ステップS610)。
メッセージ受信部4232は、メッセージに設定されているsubscribe_IDをメッセージ判定部4233に通知し(ステップS615)、メッセージ全体をメッセージ分配部4234に通知する(ステップS620)。メッセージ判定部4233は、subscribe_IDに対応して記憶される送信先及び送信元のサービスの識別子が同一であるため、連携端末5にメッセージを送信するようメッセージ分配部4234に通知する(ステップS625)。メッセージ分配部4234は、メッセージを端末連携部412に出力し(ステップS630)、端末連携部412は、メッセージ分配部4234から受信したメッセージを、通信入出力部406を介して連携端末5に送信する。
連携端末5の通信入出力部511は、受信装置4から受信したメッセージを端末連携部531に出力する(ステップS635)。メッセージ受信部5342は、端末連携部531からメッセージを受信する(ステップS640)。メッセージ受信部5342は、受信したメッセージのtypeによりメッセージ本体であると判断すると、メッセージから読み出したsubscribe_IDをメッセージ判定部5343に出力し(ステップS645)、メッセージをメッセージ分配部5344に出力する(ステップS650)。メッセージ判定部5343は、subscribe_IDに対応した送信元及び送信先のサービスの識別子が同じであるため、送信先のサービスの識別子により特定されるサービスを実行しているサービス実行部532へメッセージを出力するようメッセージ分配部5344に指示する(ステップS655)。メッセージ分配部5344は、メッセージ判定部5343に指示されたサービス実行部532へメッセージを出力する(ステップS660)。
図14及び図15では、受信装置4から連携端末5へのメッセージの送信例を示したが、連携端末5から受信装置4へのメッセージ送信も同様の手順で実行できる。連携端末5のVODサービス実行部551と受信装置4のVODサービス実行部431との間のメッセージの送受信も図14及び図15に示す手順と同様である。
図16は、連携端末5のウェブアプリ間でセッションの識別子に基づきメッセージを送信する場合のメッセージの記述例を示す図である。図16(a)は、接続登録メッセージM41を、図16(b)は接続登録確認メッセージM42を、図16(c)は接続解除メッセージM43を、図16(d)は接続解除確認メッセージM44を、図16(e)はメッセージ本体が設定されたメッセージM45を示す。M41〜M45のメッセージに含まれる属性はそれぞれ、図13に示すM31〜M35のメッセージと同様である。
すなわち、接続登録メッセージM41、接続登録確認メッセージM42、接続解除メッセージM43、接続解除確認メッセージM44、メッセージM45には、type属性が含まれている。また、接続登録メッセージM41、接続登録確認メッセージM42、接続解除メッセージM43、接続解除確認メッセージM44には、送信元のサービスの識別子(src)及び送信先のサービスの識別子(dst)が設定され、接続登録確認メッセージM42及び接続解除確認メッセージM44には、さらに、確立したチャンネルに割当てられたセッションの識別子(subscribe_ID)が記述される。メッセージ本体(message)が設定されたメッセージM45には、送信元及び送信先は設定されず、セッションの識別子(subscribe_ID)とメッセージの内容(message)が記述される。
図17及び図18は、連携端末5のウェブアプリ間でセッションの識別子に基づきメッセージを送信する場合のシーケンス図である。このシーケンスは、図14及び図15に示すシーケンスと基本的な手順の差異はない。ただし、受信装置4と連携端末5との間でメッセージを送信する場合、連携端末5は、メッセージ分配部5344から端末連携部531を経由して送受信を行うが、ウェブアプリ間の場合は、メッセージ分配部5344から連携端末5内のメッセージ受信部5342にメッセージを送信し、以降、同様の処理が実行される。
図17は、連携端末5のウェブアプリ間の接続登録処理のシーケンスを示す。連携端末5のサービス実行部532−1は、接続登録メッセージを発行する(ステップS705)。サービス実行部532−1が発行した接続登録メッセージには、接続登録メッセージであることを示す「publish」が設定されたtype属性と、サービス実行部532−2により実行される送信先のサービスの識別子が設定されたdst属性とが含まれる。送信元サービス設定部5345は、このメッセージに、送信元のサービスの識別子を設定したsrc属性を追加する。送信元サービス設定部5345は、src属性が追加された接続登録メッセージをメッセージ受信部5342に出力する(ステップS710)。
メッセージ受信部5342は、接続登録メッセージに設定されている送信先のサービスの識別子及び送信元のサービスの識別子をメッセージ判定部5343に通知し(ステップS715)、接続登録メッセージ全体をメッセージ分配部5344に通知する(ステップS720)。メッセージ判定部5343は、送信先と送信元のサービスの識別子が異なるため、メッセージ受信部5342にメッセージを送信するようメッセージ分配部5344に通知する(ステップS725)。メッセージ分配部5344は、接続登録メッセージをメッセージ受信部5342に出力する(ステップS730)。
メッセージ受信部5342は、受信したメッセージをメッセージ判定部5343に出力する(ステップS735)。メッセージ判定部5343は、受信したメッセージのtypeにより接続登録メッセージであると判断すると、subscribe_IDを発行し、送信元及び送信先のサービスの識別子と対応付けて記憶する。さらに、メッセージ判定部5343は、接続登録確認メッセージを生成する。メッセージ判定部5343は、生成した接続登録確認メッセージをメッセージ分配部5344に通知し、メッセージ受信部5342へ送信するよう指示する(ステップS740)。メッセージ分配部5344は、接続登録確認メッセージをメッセージ受信部5342に出力する(ステップS745)。
メッセージ受信部5342は、受信した接続登録確認メッセージから取得したsubscribe_IDと、送信元及び送信先のサービスの識別子をメッセージ判定部5343に出力する(ステップS750)。メッセージ判定部5343は、subscribe_IDと、送信元及び送信先のサービスの識別子とを対応付けて登録する。さらに、メッセージ受信部5342は、接続登録確認メッセージを、送信先のサービスの識別子により特定されるウェブアプリを実行しているサービス実行部532−1にsubscribe_IDを通知する(ステップS755)。
図18は、連携端末5のウェブアプリ間のメッセージ送信処理のシーケンスを示す。連携端末5のサービス実行部532−1は、メッセージ本体を設定したメッセージを発行する(ステップS805)。送信元サービス設定部5345は、サービス実行部532−1から受信したメッセージに送信元のサービスの識別子を設定する。なお、送信元のサービスの識別子の設定は行わなくてもよい。送信元サービス設定部5345は、送信元のサービスの識別子が設定されたメッセージを、メッセージ受信部5342に出力する(ステップS810)。
メッセージ受信部5342は、メッセージに設定されているsubscribe_IDをメッセージ判定部5343に通知し(ステップS815)、メッセージ全体をメッセージ分配部5344に通知する(ステップS820)。メッセージ判定部5343は、subscribe_IDに対応して記憶される送信先及び送信元のサービスの識別子が異なるため、送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532−2にメッセージを送信するようメッセージ分配部5344に通知する(ステップS825)。メッセージ分配部5344は、メッセージ判定部5343に指示されたサービス実行部532−2へメッセージを出力する(ステップS830)。
図17及び図18では、連携端末5のウェブアプリ間でメッセージを送信する場合ついて示しているが、受信装置4において放送マネージドアプリから他のアプリへのメッセージ送信についても同様の手順で実行できる。
図19は、受信装置4におけるVODコンテンツの再生サービス機能の連携端末5からの制御手順を示すシーケンス図である。連携端末5のVODサービス実行部551には、ユーザの操作に応じてVODコンテンツの再生サービスの制御機能(VODCAST)の操作信号が入力される(ステップS905)。VODサービス実行部551は、操作信号で指定されるVOD制御コマンドを発行し、発行したVOD制御コマンドをVOD制御メッセージ処理部5521に出力する(ステップS910)。VOD制御メッセージ処理部5521は、VODサービス実行部551から入力されたVOD制御コマンドによるVOD制御処理可否判定リクエストをVOD制御状態判定部5522に出力する(ステップS915)。VOD制御状態判定部5522に制御状態データリクエストをVOD制御状態管理部5523に出力する(ステップS920)。VOD制御状態管理部5523は、VOD制御状態判定部5522から入力された制御状態データリクエストに対して制御状態データを検索・照会する(ステップS921)。VOD制御状態管理部5523は、制御状態データをVOD制御状態判定部5522に出力する(ステップS925)。VOD制御状態判定部5522は、制御状態を参照して、VOD制御処理可否判定リクエストで指定されるVOD制御コマンドに基づくVODサービス実行部431の動作制御の可否(OK/NG)を判定する(ステップS926)。VOD制御状態判定部5522は、VOD制御可否判定をVOD制御メッセージ処理部5521に出力する(ステップS930)。
VOD制御状態判定部5522から入力されるVOD制御可否判定がVOD制御可(OK)を示すとき、VOD制御メッセージ処理部5521は、VOD制御コマンドを表すVOD制御メッセージを生成する。VOD制御状態判定部5522から入力されるVOD制御可否判定がVOD制御不可(NG)を示すときは、VOD制御メッセージ処理部5521は、NGなどのエラー情報をVODサービス実行部551へ送信する。(ステップS931)。他方、VOD制御可否判定がVOD制御可(OK)を示すときは、VOD制御メッセージ処理部5521は、そのVOD制御メッセージのメッセージIDと、VOD制御コマンドで指定されるVODコンテンツのCH情報をVOD制御メッセージに付加する(ステップS935)。VOD制御メッセージ処理部5521は、VOD制御メッセージをメッセージ制御部534に出力する(ステップS940)。メッセージ制御部534は、VOD制御メッセージ処理部5521から入力されたVOD制御メッセージを受信装置4に端末連携部531を介して送信する(ステップS945)。
受信装置4の端末連携部412は、連携端末5から受信したVOD制御メッセージをVOD制御メッセージ処理部4321にメッセージ制御部423を介して出力する(ステップS950)。VOD制御メッセージ処理部4321は、メッセージ制御部423から入力されたVOD制御メッセージについて形式確認を行い、VOD制御コマンド、メッセージID、CH情報を検出する(ステップS955)。VOD制御メッセージ処理部4321は、検出したVOD制御コマンドやCH情報などの連携端末5の状態情報を付加したVOD制御処理可否判定リクエストをVOD制御状態判定部4322に出力する(ステップS960)。VOD制御状態判定部4322は制御状態データリクエストをVOD制御状態管理部4323に出力する(ステップS965)。VOD制御状態管理部4323は、VOD制御状態判定部4322から入力された制御状態データリクエストに基づいて制御状態データを検索・照会する(ステップS966)。VOD制御状態管理部4323は、VOD制御状態判定部4322から入力された制御状態データリクエストに対する応答として制御状態データをVOD制御状態判定部4322に出力する(ステップS970)。VOD制御状態判定部4322は、制御状態を参照して、VOD制御処理可否判定リクエストで指定されるVOD制御コマンドに基づくVODサービス実行部431の動作制御の可否(OK/NG)を判定する(ステップS971)。VOD制御状態判定部4322は、VOD制御可否判定をVOD制御メッセージ処理部4321に出力する(ステップS975)。
VOD制御状態判定部4322から入力されたVOD制御可否判定がVOD制御可(OK)を示すとき、VOD制御メッセージ処理部4321は、VOD制御コマンドをVODサービス実行部431に発行する(ステップS980)。VODサービス実行部431は、VOD制御メッセージ処理部4321から入力されるVOD制御コマンドに基づくVODコンテンツの再生サービス機能を実行する(ステップS985)。VOD制御メッセージ処理部4321は、受信したVOD制御メッセージのメッセージIDとVOD制御可否判定を含む応答メッセージを生成する(ステップS990)。応答メッセージには、受信装置4が受信中の放送番組のCH情報、VOD制御コマンドで指示される処理の実行結果メッセージ、VOD制御可否判定などが付加されてもよい。VOD制御メッセージ処理部4321は、応答メッセージをメッセージ制御部423に出力する(ステップS995)。メッセージ制御部423は、VOD制御メッセージ処理部から入力された応答メッセージを連携端末5に端末連携部412を介して送信する(ステップS1000)。
連携端末5の端末連携部531は、受信装置4から受信した応答メッセージをVOD制御メッセージ処理部5521にメッセージ制御部534を介して出力する。VOD制御メッセージ処理部5521は、メッセージ制御部534から応答メッセージを受信する(ステップS1005)。VOD制御メッセージ処理部5521は、受信した応答メッセージについて形式確認を行い、応答メッセージに付加されたメッセージID、VOD制御可否判定、実行結果メッセージを検出する。VOD制御メッセージ処理部5521は、検出したメッセージIDを確認し、そのメッセージIDと同一のメッセージIDに係るVOD制御コマンドを特定する(ステップS1010)。VOD制御メッセージ処理部5521は、特定したVOD制御コマンドに係るVOD可否判定と検出したVOD可否判定及び実行結果メッセージをVOD制御状態情報に集約する。VOD制御メッセージ処理部5521は、集約したVOD制御状態情報をVOD制御状態管理部5523に出力する(ステップS1015)。VOD制御状態管理部5523は、自部が記憶するVOD制御状態データのうち、そのメッセージIDに係る情報をVOD制御メッセージ処理部5521から入力されるVOD制御状態情報に更新する。また、VOD制御メッセージ処理部5521は、VOD制御状態情報をVODサービス実行部551に出力する。VODサービス実行部551は、VOD制御メッセージ処理部5521から入力されるVOD制御状態情報に基づいて表示部に出力する操作状態表示を更新する(ステップS1020)。
図20は、連携端末5のVOD制御メッセージ制御部552と受信装置4のVOD制御メッセージ制御部432の実装例を示す図である。図20に示す例では、VOD制御メッセージ制御部552、432の機能は、ファイルtvod.js、c2vod.jsに格納されたプログラムで記述された命令に基づいて実現される。ファイル名tvod.js等に付された拡張子jsは、javascript(登録商標)言語で記述されたプログラムが格納されていることを示す。VOD制御メッセージ制御部552は、ユーザの操作により指示されたVOD制御コマンドを表すVOD制御メッセージを受信装置4に送信する。
図21は、VOD制御メッセージの記述例を示す図である。図21に示すVOD制御メッセージM51は、json-rpc形式で記述されている。VOD制御メッセージM51は、メッセージID、メッセージのバージョン、アプリで指示される制御内容を示すメソッド及びメソッドで指示される処理に用いられるパラメータを含んで構成される。VOD制御メッセージM51において、メッセージID、バージョン、メソッド及びパラメータは、それぞれ「ar49jd-1」、「2.0」、「play」及び「url」である。「play」は、VODコンテンツの再生処理を指示するメソッドである。「url」は、再生対象のVODコンテンツの取得先のURL(Uniform Resource Locator)である。
図20に戻り、VODサービス実行部431は、ファイルvodplayerapp.htmlに格納されたプログラムで記述された命令の処理を、所定のライブラリを利用して実行する。利用されるライブラリは、例えば、VOD制御メッセージ制御部432の機能を実現するプログラムc2vod.jsのライブラリである。なお、VODサービス実行部551は、受信装置4と連携していないとき、ファイルmobileapp.htmlに格納されたプログラムで記述された命令の処理を、例えば、プログラムtvod.jsのライブラリを利用して実行する。
図22は、VODサービス実行部431の機能を実現するためのアプリの記述例を示す図である。図22に示すアプリL61において、読み込み宣言「<script src=”c2vod.js”/>」は、読み込み元のプログラム「c2vod.js」を指定するための宣言文である。実行文cv=new c2vod(); は、冒頭の名称が「cv.…」であるメソッド毎のライブラリ関数からなるライブラリの呼び出しを示す。c2vod.jsを読み込むことにより、M51を受信した際のメッセージ内の制御コマンドであるメソッドが自動的に判別される。そのコマンドが実行可能な場合、その判別されたメソッドに応じて、「cv.play」、「cv.stop」、「cv.pause」、「cv.forward」、「cv.backward」が自動実行されるものとする。「cv.play=function(params)」、「cv.stop=function(params)」、「cv.pause=function(params)」、「cv.forward=function(params)」、「cv.backward=function(params)」は、それぞれVODサービス実行部431がM51を受信した際のメソッドに応じて自動的に実行される処理の再定義である。これにより、vodplayerapp.htmlを実行して実現されるVOD再生提示・操作画面などを、サービス開発者は調整することができる。いずれも、VOD制御メッセージで付加された「params」が引数として用いられる。例えば、VODサービス実行部431は、図21に示すVOD制御メッセージに基づいて、「cv.play=function(params){vod.seturl(params.url).play();}」のように実装し、「params」に含まれる「url」で指定される取得先からVODコンテンツのデータを受信し、受信したVODコンテンツについて再生処理を行う。VODサービス実行部431は、その処理結果を示す処理結果メッセージをVOD制御メッセージ制御部432に出力する。
受信装置4のVOD制御メッセージ制御部432は、VOD制御メッセージに対する応答メッセージを連携端末5に送信する。
図23は、応答メッセージの記述例を示す図である。図23に示す応答メッセージM52は、json-rpc形式で記述されている。応答メッセージM52は、メッセージID、メッセージのバージョン、アプリで指示される制御内容を示すメソッド、応答ステータス及びメッセージを含んで構成される。メッセージIDは、対応する制御コマンドを示すメッセージのメッセージIDと同一である。応答ステータスは、メソッドで指示された処理のVOD制御可否情報を示す。メッセージは、メソッドで指示された処理の処理状態を示すコード番号と説明文が含まれる。メッセージには、例えば、制御エラーコードとエラーメッセージなどが含まれる。応答メッセージM52において、メッセージID、バージョン、メソッド、応答ステータス及びパラメータは、それぞれ「ar49jd-1」、「2.0」、「play」、「ok」及び「-44444」である。「ok」は、VOD制御可を示す応答ステータスである。「-44444」はエラーコードの一例である。応答メッセージM52には、エラーメッセージは含まれていない。VOD制御メッセージ制御部552は、応答メッセージに含まれる制御状態情報を用いて制御状態データを更新する。VODサービス実行部551は、制御状態情報に基づいて操作状態表示を更新する。
次に、VOD制御可否判定の例について説明する。
VOD制御状態判定部4322、5522は、次の(c1)〜(c3)のいずれか1つの条件、又は所定の複数の条件に該当するとき、VOD制御不可(NG)と判定する。
(c1)VODコンテンツのCH情報が、所定の連携端末以外の機器におけるVODコンテンツの受信禁止を示している場合。
(c2)VODコンテンツのCH情報が示すVODコンテンツ事業者と受信装置4が受信している番組のCH情報が示す番組事業者のセットが、予め設定された事業者間のセットとは異なるとき。VODコンテンツ事業者とは、例えば、VODコンテンツの制作者、配信事業者などである。番組事業者とは、例えば、番組の放送事業者、制作者などである。事業者間のセットは、例えば、同一事業者又は共通の系列に属する事業者の組、共通の企画をもって連携している事業者の組などである。
(c3)現時点の日時がVODコンテンツのCH情報が示す提供禁止期間に含まれる場合。(c3)に関して、CH情報に提供可能期間の情報が含まれ、現時点の日時が提供可能期間に含まれる場合がある。その場合には、他の条件に該当するときを除き、VOD制御状態判定部4322、5522は、VOD制御可(OK)と判定してもよい。
また、VOD制御状態判定部4322、5522は、次の(c4)〜(c8)のいずれかの条件に該当するとき、VOD制御不可(NG)と判定する。
(c4)連携端末5のVODサービス実行部551と受信装置4のVODサービス実行部431との接続が確立していない場合。
(c5)VOD制御コマンドで指定されるVODコンテンツが取得できない場合。
(c6)エラーが発生したVOD制御コマンドと同一のVOD制御コマンドが繰り返し取得される場合。
(c7)現時点においてVOD制御コマンドで指示される処理が実行されていないにも関わらず、その時点において停止処理及び一時停止処理のいずれかを示すVOD制御コマンドが取得される場合。
(c8)現時点で実行中の処理と同一の処理を示すVOD制御コマンドが取得される場合。
それ以外の場合、VOD制御状態判定部4322、5522は、VOD制御可(OK)と判定してもよい。
以上説明した実施形態によれば、放送通信連携システム1は、受信装置4と、連携端末5(端末装置)とを有する。受信装置4は、放送信号に含まれるコンテンツデータを出力する処理と、放送信号と連携した動作により複数のサービスを提供するアプリケーション(放送マネージドアプリ)を実行する処理とを実行する。連携端末5は、個別のサービスを提供するアプリケーションであるサービスアプリケーション(サービスアプリ、ウェブアプリ)を複数並列で実行させる。受信装置4が実行するアプリケーションに含まれるサービスの機能と、サービスアプリケーションにより提供されるサービスの機能とが連携して、ユーザにサービスを提供する。
また、連携端末5は、VODサービス実行部551(映像再生サービス実行部)、通信入出力部511(通信部)、VOD制御メッセージ処理部5521(制御メッセージ処理部)、VOD制御状態管理部5523(制御状態管理部)及びVOD制御状態判定部5522(制御状態判定部)を備える。
VODサービス実行部551は、放送信号で伝送されるコンテンツとは別個のVODコンテンツの再生サービスを提供するVOD制御アプリ(映像再生アプリケーション)を実行する。通信入出力部511は、受信装置4と通信し、VODコンテンツ(映像コンテンツ)の映像コンテンツデータを受信する。VOD制御メッセージ処理部5521は、VODサービス実行部551が発行したVOD制御コマンドを示すVOD制御メッセージを生成する。VOD制御状態管理部5523は、少なくともVODコンテンツの属性、受信装置4との連携状態及び受信装置4の動作状態のいずれかを示す制御状態データを取得する。VOD制御状態判定部5522は、受信装置4におけるVODコンテンツの再生サービスのVOD制御コマンドを用いた制御の可否を、制御状態データに基づいて判定する。
また、受信装置4は、放送受信部401、映像表示部414(受信機能部)、通信入出力部406(通信部)、VODサービス実行部431(映像再生サービス実行部)、VOD制御メッセージ処理部4321(制御メッセージ処理部)、VOD制御状態管理部4323(制御状態管理部)及びVOD制御状態判定部4322(制御状態判定部)を備える。放送受信部401は、放送信号を受信する。映像表示部414は、放送信号で伝送されるコンテンツを提示する。通信入出力部406は、連携端末5(端末装置)と通信し、放送信号で伝送されるとは別個のVODコンテンツ(映像コンテンツ)の映像コンテンツデータを受信する。VODサービス実行部431は、VODコンテンツの再生サービスを提供するアプリケーションであるVODサービスアプリ(映像再生アプリケーション)を実行する。VOD制御メッセージ処理部4321は、連携端末5から受信したVOD制御メッセージが示すVOD制御コマンドを発行する。VOD制御状態管理部4323は、少なくともVODコンテンツの属性、連携端末5との連携状態及びVODサービス実行部431の動作状態のいずれかを示す制御状態データを取得する。VOD制御状態判定部4322は、VODサービス実行部431におけるVODコンテンツの再生サービスのVOD制御コマンドを用いた制御の可否を、制御状態データに基づいて判定する。
以上説明した実施形態によれば、ハイブリッドキャストなどの放送通信連携サービスにおいて、放送マネージドアプリのように受信装置で実行されるアプリが1個(サービス提供者が一つ)、連携端末で実行されるアプリが複数個(サービス提供者が複数)ある場合でも、受信装置において実行される1個のアプリに対して連携端末において実行される複数個のアプリが連携することができる。これにより、現行のハイブリッドキャストの運用において、受信装置の実装を変えることなく、連携端末に実装するコンパニオンアプリ(端末側連携アプリ)を改修するだけで、複数のマルチスクリーンサービスを並列して実行することが可能になる。
また、放送通信連携サービスにおいて、連携端末への操作により放送番組とは別個のVODコンテンツの再生制御が連携端末と受信装置のいずれにおいて可能となる。また、VODコンテンツの再生制御の可否は、コンテンツの属性、受信装置の連携状態、受信装置の動作状態などの制御条件に応じて判定される。そのため、放送通信連携サービスと連携したVODコンテンツの再生制御が、ユーザは制御条件を意識せずに円滑に実行される。例えば、ユーザは、自身が携帯する連携端末におけるVODコンテンツの再生と、より大きい画面を有する受信装置におけるVODコンテンツの再生を任意に選択することができる。ひいては、放送番組と連携したVODコンテンツの利用が促進される。
また、メッセージの送信時に、メッセージ本体に送信先のサービス識別子を記述するだけで、受信装置または連携端末のいずれが送信先として適切であるかを判定し、送信することができる。これにより、アプリの制作者は、装置内と装置外を意識せず、サービス名を設定するような命令を記述するだけで、適切なアプリにメッセージを送信することができる。
なお、上述の受信装置4及び連携端末5は、内部にコンピュータシステムを有している。そして、受信装置4及び連携端末5の一部の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。