以下、図面を参照しながら本発明の実施形態を詳細に説明する。以下では、「アプリケーションプログラム」を、「アプリケーション」又は「アプリ」とも記載する。また、以下の説明では、アプリに記述された命令で指定される処理を実行することを、単に「アプリを実行」又は「アプリの実行」と呼ぶことがある。
図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を有する。なお、アプリ実行部409は複数のサービス実行部421を備え得るが、同時に動作する放送マネージドアプリは一つのみとする。同図では、アプリ実行部409が備える複数のサービス実行部421をそれぞれ、サービス実行部421−1、421−2、421−3、…と記載している。
サービス実行部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において実行中の放送マネージドアプリのサービスの識別子を付加する。
図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、532−3、…と記載する。
端末連携部531は、受信装置4とのペアリング処理と、受信装置4の放送マネージドアプリと連携端末5のウェブアプリ間の通信を仲介する処理とを行う。端末連携部531は、受信装置4の端末連携部412とペアで動作する。
サービス実行部532は、個々のサービスを提供するためのウェブアプリを実行する。サービス実行部532の実装方法としては、Android(登録商標)搭載端末におけるWebView、iOS搭載端末におけるUIWebViewなどが挙げられる。サービス実行部532は複数存在することを前提としており、各サービス実行部532には一意の識別子が割り当てられ、サービスの識別子としても用いられる。各サービス実行部532は、以下のようなウェブアプリを実行する。
(1)現在実際にサービスが提供されている受信装置4の放送マネージドアプリと連携したウェブアプリ。なお、このウェブアプリを実行するのは一つのサービス実行部532である。
(2)複数の放送局が配信する放送マネージドアプリと連携して共通に利用することができるウェブアプリ。
(3)受信装置4と連携しないウェブアプリ。
サービス実行管理部533は、各サービス実行部532の起動及び終了の制御や状態管理を行い、複数のサービス実行部532を並列に実行させる。サービス実行管理部533は、受信装置4からの指示又はユーザ操作に基づいて、サービス実行部532、または、サービス実行部532上で実行されるウェブアプリの起動及び終了の制御や、フォアグラウンドでの動作又はバックグラウンドでの動作など状態の変更を行う。
ハイブリッドキャストでは、受信装置4と連携端末5との間でテキストメッセージを送受信するためのAPIが規定されている。メッセージ制御部534は、受信装置4が実行する放送マネージドアプリと連携端末5の各サービス実行部532が実行するウェブアプリとの間、および、サービス実行部532の間のメッセージを適切に送受信するための制御を行う。また、メッセージ制御部534は、サービス実行管理部533と連携して、サービス実行部532の状態を把握する。メッセージ制御部534の詳細を、図6を用いて説明する。
図6は、メッセージ制御部534の詳細な構成を示す機能ブロック図である。メッセージ制御部534は、サービス識別管理部5341、メッセージ受信部5342、メッセージ判定部5343、メッセージ分配部5344、送信元サービス設定部5345、及びサービス実行状態判定部5346を有する。
サービス識別管理部5341は、サービス実行部532の識別子と、そのサービス実行部532が実行するウェブアプリにより提供されるサービスであるウェブサービスの識別子との対応表を例えばリスト形式で管理する。ウェブサービスの識別子は、予め決められる。なお、各ウェブサービスは、プレフィックスを付加することなどにより、送信先のアドレスとして、ウェブサービス毎に予め決められた識別子を、メッセージの一部に付加して送受信を行う。
メッセージ受信部5342は、受信装置4からのメッセージ、及び、各サービス実行部532からのメッセージを受信する。メッセージ受信部5342は、受信したメッセージを、メッセージ判定部5343及びメッセージ分配部5344に送信する。なお、メッセージ受信部5342は、メッセージ判定部5343に宛先の判定に必要な情報のみを送信してもよい。
メッセージ判定部5343は、メッセージ受信部5342から受信したメッセージに付加されたサービスの識別子と、サービス識別管理部5341に記憶される対応表とを照合してメッセージの送信先を決定し、メッセージ送信先の実行状態を判定するよう、サービス実行状態判定部5346に指示する。メッセージ判定部5343は、メッセージに付加された送信元のサービスの識別子と送信先のサービスの識別子とが同一の場合は受信装置4を送信先とし、異なる場合はサービス実行部532を送信先とする。また、メッセージ判定部5343は、実施形態によっては、サービス間の通信チャンネルを確立するための識別子の発行や、その識別子に基づいたメッセージの送信先の決定を行う。
メッセージ分配部5344は、メッセージ受信部5342から受信したメッセージを、メッセージ判定部5343が決定した送信先に送信する。送信元サービス設定部5345は、サービス実行部532が受信装置4または他のサービス実行部532に対して送信するメッセージに、送信元のサービス実行部532の識別子を付加する。
サービス実行状態判定部5346は、サービス実行管理部533を介して、サービス実行部532のサービス実行状態を監視する。具体的には、サービス実行状態判定部5346は、サービス実行部532の状態がフォアグラウンドであるかバックグラウンドであるかを監視する。メッセージ送信先のサービス実行部532の状態がフォアグラウンドでない場合には、サービス実行状態判定部5346は、そのサービス実行部532へのメッセージ送信を待機状態とするよう、メッセージ分配部5344に指示する。メッセージ送信先のサービス実行部532の状態がフォアグラウンドに変化したことを検知した場合には、サービス実行状態判定部5346は、メッセージの待機状態を解放するよう、メッセージ分配部5344に指示する。つまり、この場合、サービス実行状態判定部5346は、メッセージ分配部5344がそのサービス実行部421へのメッセージ分配を行うよう指示する。
上述したように、受信装置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の起動や終了などの制御、サービスごとに画面に表示するか否かの制御が含まれる。
図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は、サービス実行状態判定部5346に対して、メッセージに記述された送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532の状態を判定するよう指示する(ステップS130)。そして、サービス実行状態判定部5346は、メッセージ判定部5343からの指示に従い、メッセージに記述された送信先のサービスの識別子により特定されるサービス実行部532の状態を判定する。具体的には、当該サービス実行部532が、ユーザインタフェース画面において、フォアグラウンドの状態であるか、バックグラウンドの状態であるかを、サービス実行管理部533に問い合わせる(ステップS135)。
サービス実行状態判定部5346は、サービス識別管理部5341から送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532がフォアグラウンドであると判断すると(ステップS135:はい)、ステップS140の処理を行う。すなわち、サービス実行状態判定部5346は、メッセージ分配部5344に対して、送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532にメッセージを送信するよう通知する(ステップS140)。そして、ステップS150の処理に移る。
また、サービス実行状態判定部5346は、サービス識別管理部5341から送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532がフォアグラウンドではない(即ち、バックグラウンドである)と判断すると(ステップS135:いいえ)、ステップS145の処理を行う。すなわち、サービス実行状態判定部5346は、該当するメッセージの送信を一旦待機するとともに、送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532の状態がフォアグラウンドに変化するか否かを監視する(ステップS145)。この監視により、該当するサービス実行部532の状態がフォアグラウンドに変化したことを検知すると、ステップS145の処理からステップS150の処理に移る。
ステップS150に移ると、メッセージ分配部5344は、メッセージ判定部5343の指示に従い、メッセージに記述された送信先のサービスの識別子により特定されるサービス実行部532に、メッセージを送信する(ステップS150)。
一方、メッセージ判定部5343は、サービス識別管理部5341から送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532がないことを示す照合結果を受信したと判断すると(ステップS125:いいえ)、ステップS155の処理を行う。すなわち、メッセージ判定部5343は、エラーをメッセージの送信元に返送するなど、所定のエラー処理を行う(ステップS155)。
図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から受信すると、送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532を決定する。
次に、連携端末5は、サービス実行状態判定処理を行う。サービス実行状態判定処理の内容については、後で、図12を参照しながら説明する。
サービス実行状態判定処理が終了すると、メッセージ分配部5344は、メッセージ判定部5343によって決定されたサービス実行部532へメッセージを出力する(ステップS360)。
図12は、連携端末5におけるサービス実行状態判定処理の手順を示すシーケンス図である。メッセージ判定部5343は、メッセージの送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532がどのサービス実行部532であるかを、サービス実行状態判定部5346に通知する(ステップS1005)。
そして、サービス実行状態判定部5346は、メッセージの送信先であるサービスの実行状態を、サービス実行管理部533を介して判定する(ステップS1010)。その判定の結果、メッセージの送信先であるサービスがバックグラウンドの状態である場合、サービス実行状態判定部5346は、当該サービス実行部532を監視し、状態変化を検知する。状態変化によって当該サービス実行部532の状態がフォアグラウンドに変化した場合、あるいはステップS1010における判定の結果として最初から当該サービス実行部532の状態がフォアグラウンドであった場合、ステップS1015の処理を実行する。即ち、サービス実行状態判定部5346は、送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532へメッセージを出力するようメッセージ分配部5344に指示する(ステップS1015)。つまり、サービス実行状態判定部5346は、送信先に該当するサービス実行部532の状態変化をサービス実行管理部533を介して監視し、状態がフォアグラウンドとなった場合に、待機状態を解除して、メッセージ分配部5344にメッセージ通知を指示する。
図13は、サービス実行状態判定部5346がメッセージを管理するための記憶領域の構成を示す概略図である。図示する記憶領域は、サービス実行状態判定部5346が読み書き可能な領域として設けられる。この記憶領域は、例えば、半導体メモリを用いて実現される。図示するように、メッセージを管理するための記憶領域は、表構造のデータを保持することができる。この表は、送信先サービスと、状態と、メッセージの項目を有している。送信先サービスは、サービスを識別するための情報である。状態は、そのサービスのその時点での状態を表している。状態は、「待機」または「分配」のうちのいずれかの値を保持する。状態が「待機」であるときは、サービス実行状態判定部5346は、そのサービスへのメッセージの分配を待機すべきであると判定する。状態が「分配」であるときは、サービス実行状態判定部5346は、そのサービスへのメッセージを分配すべきであると判定し、メッセージ分配部5344にメッセージ通知を指示する。メッセージは、現在待機中のメッセージを格納するものである。あるいは、メッセージそのものの代わりに、メッセージの所在を表す情報またはメッセージを識別するための情報をこの欄に格納するようにしてもよい。なお、この表内に格納されるデータの各行が、個々のサービス実行部532に対応している。
図11では、受信装置4から連携端末5へのメッセージの送信例を示したが、連携端末5から受信装置4へのメッセージ送信も同様の手順で実行できる。
図14は、連携端末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)。
図14では、連携端末5のウェブアプリ間でメッセージを送信する場合ついて示しているが、受信装置4のサービス実行部421間でメッセージを送信する場合についても同様の手順で実行できる。
上述した、図8〜図14の例では、全てのメッセージに送信元のサービスの識別子と送信先のサービスの識別子を付加して送信していたが、サービス間のチャンネルの識別子を付加する実施形態をとっても構わない。この場合、受信装置4の放送マネージドアプリのサービスと連携端末5のウェブサービスとの間、又は、連携端末5におけるウェブサービス間で、メッセージングを開始する前に、接続処理を実行してサービス間のチャンネルを確立する。以降、受信装置4及び連携端末5は、接続解除の処理が実行されるまでは、確立したチャンネルにおいて割り当てられたセッションの識別子に基づき、送信元と送信先の識別子を付加せずにメッセージを送信する。
図15は、受信装置4の放送マネージドアプリのサービスと連携端末5のウェブサービスとの間でセッションの識別子に基づきメッセージを送信する場合のメッセージの設定例を示す図である。図15(a)は、接続登録メッセージM31を、図15(b)は接続登録確認メッセージM32を、図15(c)は接続解除メッセージM33を、図15(d)は接続解除確認メッセージM34を、図15(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)が記述される。
図16及び図17は、受信装置4と連携端末5の間でセッションの識別子に基づきメッセージを送信する場合のシーケンス図である。
図16は、接続登録処理のシーケンスを示す。受信装置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)。
図17は、メッセージ送信処理のシーケンスを示す。受信装置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を決定する。
そして、連携端末5は、サービス実行状態判定処理を実行する。このサービス実行状態判定処理の内容は、図12に示した処理と同様のものである。
そして、サービス実行状態判定部5346からの指示に基づき、メッセージ分配部5344は、指示されたサービス実行部532へメッセージを出力する(ステップS660)。
図16及び図17では、受信装置4から連携端末5へのメッセージの送信例を示したが、連携端末5から受信装置4へのメッセージ送信も同様の手順で実行できる。
図18は、連携端末5のウェブアプリ間でセッションの識別子に基づきメッセージを送信する場合のメッセージの記述例を示す図である。図18(a)は、接続登録メッセージM41を、図18(b)は接続登録確認メッセージM42を、図18(c)は接続解除メッセージM43を、図18(d)は接続解除確認メッセージM44を、図18(e)はメッセージ本体が設定されたメッセージM45を示す。M41〜M45のメッセージに含まれる属性はそれぞれ、図15に示すM31〜M35のメッセージと同様である。
すなわち、接続登録メッセージM41、接続登録確認メッセージM42、接続解除メッセージM43、接続解除確認メッセージM44、メッセージM45には、type属性が含まれている。また、接続登録メッセージM41、接続登録確認メッセージM42、接続解除メッセージM43、接続解除確認メッセージM44には、送信元のサービスの識別子(src)及び送信先のサービスの識別子(dst)が設定され、接続登録確認メッセージM42及び接続解除確認メッセージM44には、さらに、確立したチャンネルに割当てられたセッションの識別子(subscribe_ID)が記述される。メッセージ本体(message)が設定されたメッセージM45には、送信元及び送信先は設定されず、セッションの識別子(subscribe_ID)とメッセージの内容(message)が記述される。
図19及び図20は、連携端末5のウェブアプリ間でセッションの識別子に基づきメッセージを送信する場合のシーケンス図である。このシーケンスは、図21及び図22に示すシーケンスと基本的な手順の差異はない。ただし、受信装置4と連携端末5との間でメッセージを送信する場合、連携端末5は、メッセージ分配部5344から端末連携部531を経由して送受信を行うが、ウェブアプリ間の場合は、メッセージ分配部5344から連携端末5内のメッセージ受信部5342にメッセージを送信し、以降、同様の処理が実行される。
図19は、連携端末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)。
図20は、連携端末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)。
図19及び図20では、連携端末5のウェブアプリ間でメッセージを送信する場合ついて示しているが、受信装置4において放送マネージドアプリにより実行されるサービス間でのメッセージ送信についても同様の手順で実行できる。
以上説明した実施形態によれば、放送通信連携システム1は、受信装置4と、連携端末5(端末装置)とを有する。受信装置4は、放送信号に含まれるコンテンツデータを出力する処理と、放送信号と連携した動作により複数のサービスを提供するアプリケーション(放送マネージドアプリ)を実行する処理とを実行する。連携端末5は、個別のサービスを提供するアプリケーションであるサービスアプリケーション(サービスアプリ、ウェブアプリ)を複数並列で実行させる。受信装置4が実行するアプリケーションに含まれるサービスの機能と、サービスアプリケーションにより提供されるサービスの機能とが連携して、ユーザにサービスを提供する。
連携端末5は、サービスアプリケーションを複数並列で実行させる連携アプリ実行制御部53と、受信装置4と通信する通信入出力部511(通信部)とを備える。連携アプリ実行制御部53は、複数のサービス実行部532と、メッセージ判定部5343と、メッセージ分配部5344と、送信元サービス設定部5345とを有する。各サービス実行部532は、受信したメッセージを用いてサービスアプリケーションを実行する。メッセージ判定部5343は、受信装置4において実行されているアプリケーションから発行され、通信入出力部511が受信したメッセージに設定されている送信先の情報に基づいて、メッセージの宛先のサービス実行部532を判定する。メッセージ分配部5344は、メッセージ判定部5343が判定した宛先のサービス実行部532にメッセージを出力する。
また、メッセージ判定部5343は、サービス実行部532が発行したメッセージの宛先を判定する。メッセージ分配部5344は、サービス実行部532により発行されたメッセージの宛先が受信装置4であるとメッセージ判定部5343により判定された場合、当該メッセージを通信入出力部511により受信装置4に送信する。また、メッセージ分配部5344は、サービス実行部532により発行されたメッセージの宛先が他のサービス実行部532であるとメッセージ判定部5343により判定された場合、当該メッセージを宛先と判定された他のサービス実行部532に出力する。
なお、サービス実行部532は、受信装置4において実行されるアプリケーションが提供するサービスの識別子又は他のサービス実行部532において実行されるサービスアプリケーションが提供するサービスの識別子を送信先の情報に設定したメッセージを発行してもよい。送信元サービス設定部5345は、サービス実行部532が発行したメッセージの送信元の情報に、当該メッセージを発行したサービス実行部532において実行されるサービスアプリケーションが提供するサービスの識別子を設定する。このとき、メッセージ判定部5343は、送信元サービス設定部5345により送信元の情報が設定されたメッセージから取得した送信元のサービスの識別子及び送信先のサービスの識別子に基づき、メッセージの宛先が受信装置4であるか他のサービス実行部532であるかを判定してもよい。メッセージ分配部5344は、メッセージ判定部5343により判定された宛先に、サービス実行部532により発行されたメッセージを出力する。
また、サービス実行状態判定部5346は、複数のサービス実行部532の各々のサービス実行状態をサービス実行管理部533を介して判定し、サービス実行状態に応じて、メッセージ分配部5344がサービス実行部532にメッセージを出力するかあるいはメッセージ分配部5344がメッセージの出力を待機するかを指示する。
なお、サービス実行状態判定部5346は、サービス実行部532のサービス実行状態の変化をサービス実行管理部533を介して検知するものであり、メッセージの送信先であるサービス実行部532のサービス実行状態がバックグラウンドの状態からフォアグラウンドの状態に変化した場合に、当該サービス実行部532への出力を待機していたメッセージを、当該サービス実行部532に出力するよう、メッセージ分配部5344に指示するようにしてよい。
また、連携アプリ実行制御部53は、サービス実行部532と受信装置4との間、又は、異なるサービス実行部532の間で通信チャンネルの確立及び解除を行う端末連携部531をさらに備えてもよい。この場合、メッセージ判定部5343は、受信装置4から受信したメッセージに設定されている通信チャンネルの識別情報に基づいてメッセージの宛先となるサービス実行部532を判定する処理と、サービス実行部532から発行されたメッセージに設定されている通信チャンネルの識別情報に基づいてメッセージの宛先が他のサービス実行部532であるか受信装置4であるかを判定する処理との少なくとも一方を行う。メッセージ分配部5344は、メッセージ判定部5343により判定された宛先に、サービス実行部532により発行されたメッセージを出力する。
また、受信装置4は、放送信号を受信し、放送信号に含まれるコンテンツデータを出力する受信機機能部と、アプリケーションに含まれる複数のサービスの機能を複数並列で実行させるアプリ実行部409と、連携端末5と通信する通信入出力部406(通信部)とを有する。受信機機能部は、例えば、放送受信部401、分離部402、映像復号部403、音声復号部404、データ放送実行部405、リモコン入力制御部407、電源制御部408、映像合成部413、映像表示部414、音声合成部415、音声出力部416などである。アプリ実行部409は、サービス実行部421と、メッセージ判定部4233と、メッセージ分配部4234と、送信元サービス設定部4235を備える。サービス実行部421はそれぞれ、受信機機能部から取得した情報と、受信したメッセージの記述とを用いて、アプリケーションに含まれるサービスの機能のそれぞれを実行する。メッセージ判定部4233は、連携端末5において実行されているサービスアプリケーションから発行され、通信入出力部406が受信したメッセージに設定されている送信先の情報に基づいて、メッセージの宛先のサービス実行部421を判定する。メッセージ分配部4234は、メッセージ判定部4233により判定された宛先のサービス実行部421にメッセージを出力する。
また、メッセージ判定部4233は、サービス実行部421が発行したメッセージの宛先を判定する。メッセージ分配部4234は、サービス実行部421により発行されたメッセージの宛先が連携端末5であるとメッセージ判定部4233により判定された場合、当該メッセージを通信入出力部406により連携端末5に送信する。また、メッセージ分配部4234は、サービス実行部421により発行されたメッセージの宛先が他のサービス実行部421であるとメッセージ判定部4233により判定された場合、当該メッセージを宛先と判定された他のサービス実行部421に出力する。
なお、サービス実行部421は、連携端末5において実行されるサービスアプリケーションにより提供されるサービスの識別子又は他のサービス実行部421において実行されるサービスの識別子を送信先の情報に設定したメッセージを発行してもよい。送信元サービス設定部4235は、サービス実行部421が発行したメッセージの送信元の情報に、当該メッセージを発行したサービス実行部421において実行されるサービスの識別子を設定する。このとき、メッセージ判定部4233は、送信元サービス設定部4235により送信元の情報が設定されたメッセージから取得した送信元のサービスの識別子及び送信先のサービスの識別子に基づき、メッセージの宛先が連携端末5であるか他のサービス実行部421であるかを判定してもよい。メッセージ分配部4234は、メッセージ判定部4233により判定された宛先にサービス実行部421により発行されたメッセージを出力する。
また、受信装置4は、サービス実行部421と連携端末5との間、又は、異なるサービス実行部421の間で通信チャンネルの確立及び解除を行う端末連携部412をさらに備えてもよい。この場合、メッセージ判定部4233は、連携端末5から受信したメッセージに設定されている通信チャンネルの識別情報に基づいてメッセージの宛先となるサービス実行部421を判定する処理と、サービス実行部421から発行されたメッセージに設定されている通信チャンネルの識別情報に基づいてメッセージの宛先が他のサービス実行部421であるか連携端末5であるかを判定する処理との少なくとも一方を行う。メッセージ分配部4234は、メッセージ判定部4233により判定された宛先に、サービス実行部421により発行されたメッセージを出力する。
以上説明した実施形態によれば、ハイブリッドキャストなどの放送通信連携サービスにおいて、放送マネージドアプリのように受信装置で実行されるアプリが1個(サービス提供者が一つ)、連携端末で実行されるアプリが複数個(サービス提供者が複数)ある場合でも、受信装置において実行される1個のアプリに対して連携端末において実行される複数個のアプリが連携することができる。これにより、現行のハイブリッドキャストの運用において、受信装置の実装を変えることなく、連携端末に実装するコンパニオンアプリ(端末側連携アプリ)を改修するだけで、複数のマルチスクリーンサービスを並列して実行することが可能になる。
また、メッセージの送信時に、メッセージ本体に送信先のサービス識別子を記述するだけで、受信装置または連携端末のいずれが送信先として適切であるかを判定し、送信することができる。これにより、アプリの制作者は、装置内と装置外を意識せず、サービス名を設定するような命令を記述するだけで、適切なアプリにメッセージを送信することができる。
なお、上述の受信装置4及び連携端末5は、内部にコンピュータシステムを有している。そして、受信装置4及び連携端末5の一部の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。