以下、図面を参照しながら本発明の実施形態を詳細に説明する。以下では、「アプリケーションプログラム」を、「アプリケーション」又は「アプリ」とも記載する。また、以下の説明では、アプリに記述された命令で指定される処理を実行することを、単に「アプリを実行」又は「アプリの実行」と呼ぶことがある。
図1は、本実施形態の一実施形態による放送通信連携システム1の全体構成図である。
放送通信連携システム1は、放送送出装置2と、サービスサーバ3と、受信装置4と、連携端末5と、IoT機器10とを有する。なお、「IoT」は、「Internet of Things(モノのインターネット)」の略である。放送送出装置2及びサービスサーバ3は送信側(例えば、放送事業者側)の装置であり、受信装置4、連携端末5、及びIoT機器10は、受信側(例えば、放送の視聴者側)の装置である。
放送送出装置2は、放送信号を送出する。サービスサーバ3は、アプリ本体やアプリで利用するコンテンツデータを、インターネットを介して受信側の装置へ配信する。アプリ本体とは、アプリケーションのプログラムである。受信装置4は、例えば、ハイブリッドキャスト対応テレビである。連携端末5は、例えば、スマートフォンやタブレット端末などの端末装置である。IoT機器10は、連携端末5と通信し得るあらゆる種類の機器である。なお、IoT機器と連携端末5との間の通信は、近距離において行われる場合も、遠距離において行われる場合もある。受信装置4及び連携端末5は、インターネットを介してサービスサーバ3と相互に通信できる。また、受信装置4と連携端末5は、無線LAN(Local Area Network)等のローカルネットワークを介して接続する。また、連携端末5とIoT機器10は、Bluetooth(登録商標)等の通信手段を介して接続する。
IoT機器10は、連携端末5の外部に存在する「外部機器」の一種である。IoT機器10は、無線等によるデータ通信の機能を有している。IoT機器10の具体例を次に列挙する。IoT機器10は、例えば、電気製品(情報機器、照明機器、その他家電製品等)や、計測のための機器や、情報収集のための機器や、発電のための機器や、エネルギー(電力、ガス等)制御のための機器や、空調機器等であり得る。また、IoT機器10は、認証のための機能(生体認証を含む)を有する機器であり得る。また、IoT機器10は、例えば映像コンテンツに所謂「4D」演出効果を与えるための機器であって、光の効果を与える機器や、音の効果を与える機器や、物質(液状、霧状、気体等)を噴出するための機器や、物や人を傾けたり加速度を与えたりするための機器等であり得る。また、IoT機器10は、玩具や、ゲーム機や、ゲームのコントローラーや、テレビや映像レコーダーやオーディオ装置のリモコンや、楽器(電子楽器を含む)や、音声合成装置や、集音のための機器や、音声認識装置等であり得る。また、IoT機器10は、建物内や街角や店舗や公共施設等に設置され、情報機器等と通信し合う装置等であり得る。また、IoT機器10は、ここに例示したものに限られず、あらゆる物であり得る。
放送通信連携サービスの形態は複数存在するが、本実施形態の放送通信連携システム1では、ハイブリッドキャスト技術仕様(非特許文献1、2)に基づき、受信装置4において、デジタル放送サービスとインターネットサービスとが連携動作することを想定する。
受信装置4が、放送またはインターネットにより配信されるアプリを実行することで、インターネット上のコンテンツを取得できるようになり、ユーザが放送通信連携サービスを利用できるようになる。さらに、ハイブリッドキャスト技術仕様に則り、受信装置4と連携端末5にインストールした端末側連携アプリとが連携動作する。
なお、本実施形態においては、受信装置4において動作するアプリは、放送事業者が配信する放送マネージドアプリとする。放送マネージドアプリは、放送送出装置2から送信される放送サービスの制御信号に基づいて、起動、終了、強制終了などのライフサイクルが制御される。
連携端末5に実装される端末側連携アプリは、通信により接続される他の装置である受信装置4と連携して動作するコンパニオンアプリである。端末側連携アプリは、受信装置4により実行される放送マネージドアプリと連携動作する1以上のサービスアプリを実行する。また、この端末側連携アプリは、IoT機器10で実行されるアプリと連携動作する。
放送マネージドアプリとサービスアプリとは連携動作することにより、ユーザへ提供するサービスを実行する。サービスとは、ユーザが連携端末5に行った操作に従って動作した結果の画像、映像、音声を、連携端末5に、又は、受信装置4及び連携端末5に出力することである。サービスの実行には、受信装置4が有する受信機機能から取得した情報などが利用される。受信機機能は、放送信号を受信し、ユーザにより選択されたチャンネルの番組映像や音声などのコンテンツデータを放送信号から取得し、デコードして出力する一連の機能である。ユーザに提供するサービスは任意であるが、一例として、SNS(ソーシャルネットワークサービス)、天気予報やニュースなどの情報の提供、外国語字幕の提供、テレビ映像とは異なる角度からの映像の提示などがある。
また、本実施形態の放送通信連携システム1では、受信装置4の動作及び連携端末5の動作(ユーザが連携端末5に行った操作に従った動作を含む)の結果のデータを、IoT機器10に渡す。そして、IoT機器10は、渡されたデータに従った動作をする。また、IoT機器10は、IoT機器10が保持するデータ(IoT機器10が収集したデータを含む)を、連携端末5や受信装置4に渡す。連携端末5や受信装置4は、IoT機器10から渡されたデータに従った動作をすることが可能である。
本実施形態では、端末側連携アプリまたはIoT機器側連携アプリにおいて実行されるサービスアプリがウェブアプリである場合を例に説明する。ウェブアプリとは、ウェブブラウザにより実行されるアプリである。ウェブアプリは、任意の手段により連携端末5に実装される。例えば、ウェブアプリは、放送マネージドアプリから取得が指示されたアプリでもよく、ユーザ操作により取得したアプリでもよく、連携端末5に予め実装されたアプリでもよい。放送マネージドアプリ及びウェブアプリのプログラムは、例えば、HTML(Hypertext Markup Language)により記述される。
図2は、受信装置4、連携端末5、及びIoT機器10のスタック図である。受信装置4は、ハードウェア、OS(Operation System)、レジデント及びアプリ実行部の4層から構成される。アプリ実行部は、例えばHTML5ブラウザであり、放送マネージドアプリを実行する。OS上で実行されるレジデントには、メモリに常駐するソフトウェアによる放送の受信機機能が搭載される。アプリ実行部で実行される放送マネージドアプリは、非特許文献1により規定される拡張API(Application Program Interface)を通してレジデントの受信機機能にアクセスすることができる。ハードウェアは、CPU(central processing unit)、各種メモリ、チューナー、デコーダ、通信装置、表示装置、入力装置などを含む。
連携端末5は、ハードウェア、OS及びネイティブアプリ実行部の3層から構成される。ネイティブアプリ実行部は、iOS(登録商標)やAndroid(登録商標)など端末のOSが提供するアプリを実行する。ネイティブアプリ実行部では、複数のネイティブアプリが動作可能である。ネイティブアプリは、特定のOSやプラットフォームで実行可能なプログラムである。本実施形態における端末側連携アプリはネイティブアプリであり、ネイティブアプリ実行部において動作する。なお、端末側連携アプリは、ネイティブアプリでなくてもよい。例えば、端末側連携アプリは、ネイティブアプリから、ネイティブアプリではないブラウザを呼び出し、ブラウザによりウェブアプリを実行させてもよい。
ハードウェアは、CPU、各種メモリ、通信装置、表示装置、入力装置などを含む。
IoT機器10の構成としては、様々な形態が考えられるが、ここで図示する構成はWoT(Web of Things)として検討が進んでいる典型的な構成である3層構成である。即ち、IoT機器10は、ハードウェア、OS、アプリ実行部の3層から構成される機器である。アプリ実行部はHTML5ブラウザであり、IoT機器向けに記述されたウェブアプリを実行する。IoT機器10のハードウェアとしては、CPU、各種メモリ、通信装置、表示装置、入力装置などを含む。なお、ここで図示する構成は一例であり、異なる構成であってもよい。例えば、HTMLブラウザはウェブアプリのコードをOSが実行可能な形式に解釈する機能を有するが、このブラウザの機能を連携端末5が代わりに提供してもよい。この場合、連携端末5は、ウェブアプリのコードを解釈し、そのコードをIoT機器10のOSで実行可能な形式のデータ(コード)に変換し、変換後のコードをIoT機器10に送信する。IoT機器はこの連携端末5側から送られたコードをOS層で解釈し、実行する。また、ここに例示した構成に限らず、他の構成によって装置間で機能を適切に配置してもよい。
ハイブリッドキャストにおける端末連携機能は、受信装置4のアプリ実行部で動作する放送マネージドアプリと、連携端末5のネイティブアプリ実行部が実行する端末側連携アプリの内部で動作するウェブアプリの間で実現される。放送マネージドアプリとウェブアプリとの間では、非特許文献1で規定される拡張APIを用いてテキストメッセージを送信する。テキストメッセージには、任意のメッセージ内容を記述することができる。例えば、メッセージ内容は、アプリに対する各種の実行命令や、アプリが動作する際に用いられる付加的な情報などでもよい。
また、連携端末5とIoT機器10との連携機能は、連携端末5で動作するコンパニオンアプリの内部で動作するウェブアプリと、IoT機器10のアプリ実行部で動作するウェブアプリとの間で実現される。連携端末5のコンパニオンアプリからIoT機器10に、メッセージを送信することができる。また、携帯端末5は、IoT機器10からのメッセージを受信することができる。なお、連携端末5とIoT機器10との間で送受信されるメッセージは、テキスト形式でもよく、バイナリ形式でも良い。
図3は、受信装置4の内部構成を示すブロック図であり、本実施形態と関係する機能ブロックのみを抽出して示してある。同図に示す受信装置4は、放送受信部401、分離部402、映像復号部403、音声復号部404、データ放送実行部405、通信入出力部406、リモコン入力制御部407、電源制御部408、アプリ実行部409、アプリ制御部410、放送通信連携部411、端末連携部412、映像合成部413、映像表示部414、音声合成部415及び音声出力部416を備えて構成される。
なお、連携端末5と連携動作するアプリケーションであって、受信装置4側で実行されるアプリケーションを「受信装置側アプリケーション」と呼ぶ。
放送受信部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を有する。
なお、受信装置4と連携動作するアプリケーションであって、連携端末5側で実行されるアプリケーションを「端末側アプリケーション」と呼ぶ。
ハードウェア部51は、CPU、各種メモリ、通信装置、ディスプレイ(表示装置)、ユーザ操作を入力するための入力デバイス(入力装置)などの各種ハードウェアからなる。ディスプレイがタッチパネルである場合、入力デバイスは、タッチパネルに配されたタッチセンサーである。ハードウェア部51は、通信装置により実現される通信入出力部511及び機器通信入出力部512を有する。
通信入出力部511は、通信ネットワークに接続するためのインターフェースである。
通信入出力部511は、インターネットなどを介してサービスサーバ3と接続する。また、通信入出力部511は、無線LANなどのローカルネットワークを介して受信装置4と接続する。機器通信入出力部512は、Bluetooth(登録商標)等の通信手段に接続するためのインターフェースである。機器通信入出力部512は、Wi−Fi、BLE(Bluetooth Low Energy)など、通信プロトコルごとに設けられる。機器通信入出力部512は、Bluetooth(登録商標)等を介してIoT機器10と接続する。なお、IoT機器との接続に使用するプロトコルによっては、機器通信入出力部512は、通信入出力部511と共用される場合がある。つまり、機器通信入出力部512は、通信機能を有するIoT機器10との間で通信を行う。OS部52は、OSにより実現され、端末全体を制御し、連携アプリ実行制御部53及び他アプリ実行制御部54に、ハードウェア部51へのインターフェースを提供する。
連携アプリ実行制御部53は、CPUがメモリに記憶された端末側連携アプリを読み出して実行することにより実現される。連携アプリ実行制御部53は、端末連携部531、サービス実行部532、サービス実行管理部533、メッセージ制御部534及び機器連携部535を有する。複数のサービス実行部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と連携しないウェブアプリ。
上記のウェブアプリのうちの(1)と(2)に関して、サービス実行部532は、放送を受信する機能を有する受信装置4で稼働する受信装置側アプリケーションと連携動作する端末側アプリケーションを実行させるものである。
サービス実行管理部533は、各サービス実行部532の起動及び終了の制御や状態管理を行い、複数のサービス実行部532を並列に実行させる。サービス実行管理部533は、受信装置4からの指示又はユーザ操作に基づいて、サービス実行部532、または、サービス実行部532上で実行されるウェブアプリの起動及び終了の制御や、フォアグラウンドでの動作又はバックグラウンドでの動作など状態の変更を行う。
ハイブリッドキャストでは、受信装置4と連携端末5との間でテキストメッセージを送受信するためのAPIが規定されている。メッセージ制御部534は、受信装置4が実行する放送マネージドアプリと連携端末5の各サービス実行部532が実行するウェブアプリとの間、および、サービス実行部532の間のメッセージを適切に送受信するための制御を行う。また、メッセージ制御部534は、連携端末5の各サービス実行部532が実行するウェブアプリとIoT機器10のアプリ実行部が実行するアプリとの間のメッセージを適切に送受信するための制御を行う。具体的には、メッセージ制御部534は、送信先を識別するための送信先識別情報を含むメッセージを受け取り、送信先識別情報に基づいてメッセージを分配し、送信先識別情報が示す送信先がIoT機器10(外部機器)である場合にはメッセージをIoT機器10に送信するために機器連携部535に渡す。また、メッセージ制御部534は、機器連携部535が受信したIoT機器10からのメッセージに含まれる送信先識別情報に基づいて、メッセージを受信装置側アプリケーションまたは端末側アプリケーションのいずれかの送信先に分配する。メッセージ制御部534の詳細を、後で図6を用いて説明する。
機器連携部535は、IoT機器10とのペアリング処理と、IoT機器10と連携端末5とのアプリ間の通信を仲介する。また、機器連携部535は、連携端末5の各サービス実行部532−1、532−2、532−3、・・・のウェブアプリとIoT機器10のアプリ実行部との間のメッセージを適切に送受信するための制御を行う。機器連携部535は、連携動作する受信装置側アプリケーション及び端末側アプリケーションの少なくともいずれかからのメッセージを、機器通信入出力部512を介して送信する。また、機器連携部535は、機器通信入出力部512を介してIoT機器10からのメッセージを受信する。なお、機器連携部535については、後で図21を用いて説明する。
図6は、メッセージ制御部534の詳細な構成を示す機能ブロック図である。メッセージ制御部534は、サービス識別管理部5341、メッセージ受信部5342、メッセージ判定部5343、メッセージ分配部5344及び送信元サービス設定部5345を有する。
サービス識別管理部5341は、サービス実行部532の識別子と、そのサービス実行部532が実行するウェブアプリにより提供されるサービスであるウェブサービスの識別子との対応表を例えばリスト形式で管理する。ウェブサービスの識別子は、予め決められる。なお、各ウェブサービスは、プレフィックスを付加することなどにより、送信先のアドレスとして、ウェブサービス毎に予め決められた識別子を、メッセージの一部に付加して送受信を行う。
メッセージ受信部5342は、受信装置4からのメッセージ、IoT機器10からのメッセージ、及び、各サービス実行部532からのメッセージを受信する。メッセージ受信部5342は、受信したメッセージを、メッセージ判定部5343及びメッセージ分配部5344に送信する。なお、メッセージ受信部5342は、メッセージ判定部5343に宛先の判定に必要な情報のみを送信してもよい。
メッセージ判定部5343は、メッセージ受信部5342から受信したメッセージに付加されたサービスの識別子と、サービス識別管理部5341に記憶される対応表とを照合してメッセージの送信先を決定し、メッセージ分配部5344に通知する。メッセージ判定部5343は、メッセージに付加された送信元のサービスの識別子と送信先のサービスの識別子とが同一の場合は、同じくメッセージに付加された送信先識別子を参照し、受信装置4またはその他のIoT機器10を送信先とする。また、メッセージに付加された送信元のサービスの識別子と送信先のサービスの識別子とが異なる場合は、各サービス実行部532を送信先とする。また、メッセージ判定部5343は、実施形態によっては、サービス間の通信チャンネルを確立するための識別子の発行や、その識別子に基づいたメッセージの送信先の決定を行う。
メッセージ分配部5344は、メッセージ受信部5342から受信したメッセージを、メッセージ判定部5343が決定した送信先に送信する。送信元サービス設定部5345は、サービス実行部532が受信装置4または他のサービス実行部532に対して送信するメッセージに、送信元のサービス実行部532の識別子を付加する。
図7は、IoT機器の機能構成を示すブロック図である。図示するように、IoT機器10の少なくとも一部は、コンピュータを用いて実現され、ソフトウェア、OS、ハードウェアの3層で構成される。IoT機器10は、機能として、アプリ実行部1011及び通信入出力部1031を含む。
アプリ実行部1011は、アプリを実行する機能を有する。アプリ実行部1011は、例えば、ウェブブラウザで実現される。ただし、ウェブブラウザ以外の機能としてアプリを実行するようにしてもよい。アプリは、例えば、IoT機器10に組み込まれている。ただし、IoT機器10の種別や機能によっては、IoT機器10が、Wi−FiやBluetooth(登録商標)等の通信手段を用いてインターネットや外部機器に接続し、更新版のアプリを取得して更新するようにしてもよい。また、ここでは、1つのIoT機器10は1つのサービスのみを実行可能であると想定して説明するが、1つのIoT機器10が複数のサービスを実行してもよい。アプリ実行部1011は、ソフトウェアで実現される。ただし、その機能の少なくとも一部をハードウェアで実現するようにしてもよい。
通信入出力部1031は、通信ネットワークとのインターフェースである。通信入出力部1031は、Bluetooth(登録商標)、Wi−Fi等により、連携端末5と通信する。通信入出力部1031は、ハードウェアで実現される。ただし、その機能の少なくとも一部をソフトウェアで実現するようにしてもよい。ハードウェアは、CPU、メモリ、通信装置等を含む。
上述したように、受信装置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の起動や終了などの制御、サービスごとに画面に表示するか否かの制御が含まれる。
図8は、放送マネージドアプリの記述例を示す図である。同図は、放送局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が動作する。
図9は、放送通信連携システム1内の装置間でやりとりされるメッセージの例を示す概略図である。図9(a)は、受信装置4において放送マネージドアプリのサービスPの機能を実行しているサービス実行部421から、連携端末5の端末側連携アプリにおいてサービスPのウェブアプリを実行しているサービス実行部532へ送信されるメッセージM11を示す。図9(b)は、連携端末5の端末側連携アプリにおいてサービスPのウェブアプリを実行しているサービス実行部532から、同じく端末側連携アプリにおいてサービスQのウェブアプリを実行しているサービス実行部532に送信されるメッセージM21を示す。メッセージM11は、放送マネージドアプリのサービスPの機能を実行しているサービス実行部421により記述されるメッセージであり、メッセージM12は、サービスPのウェブアプリを実行しているサービス実行部532において記述されるメッセージである。メッセージM11、M21には、送信先のサービスの識別子(それぞれ、dst:ServiceP、dst:ServiceQ)、メッセージ本体(message)が記述される。
図9(c)は、連携端末5の端末側連携アプリにおいてサービスPのウェブアプリを実行しているサービス実行部532から、IoT機器10においてサービスPのウェブアプリを実行しているアプリ実行部1011に送信されるメッセージM31を示す。メッセージM31には、送信先のサービスの識別子(dst:ServiceP)、装置の種別(dev:IoT)、及びメッセージ本体(message)が記述される。また、メッセージM31において、送信先のIoT機器10を識別する情報は、メッセージ本体の中に記述されている。
図9(d)に示すメッセージM12、図9(e)に示すメッセージM22、及び図9(f)に示すメッセージM32は、連携端末5のメッセージ受信部5342が受信するメッセージである。メッセージM12は、メッセージM11に送信元のサービスPの識別子(src:ServiceP)が付加されたものである。メッセージM22は、メッセージM21に送信元のサービスPの識別子(src:ServiceP)が付加されたものである。メッセージM32は、メッセージM31に送信元のサービスPの識別子(src:ServiceP)が付加されたものである。
具体的には、受信装置4の送信元サービス設定部4235が、メッセージM11に送信元のサービスPの識別子を追加し、メッセージM12となる。メッセージM12の場合は、放送マネージドアプリを実行することにより生成されるメッセージ制御部423が有する送信元サービス設定部4235の機能(図8におけるcommon_messaging.js)によって、送信元のサービスの識別子が設定される。一方、メッセージM22の場合は、連携端末5の送信元サービス設定部5345が、メッセージM21に送信元のサービスPの識別子を付加する。
なお、メッセージのフォーマットはこれらの記述例に限らない。また、本実施形態では、送信元のサービスの識別子と送信先のサービスの識別子のみを記述したが、受信装置4、連携端末5、もしくはIoT機器10を送信先として記述しても構わない。
図10,図11及び図12は、メッセージ制御部423及びメッセージ制御部534の動作を示す処理フローである。以下では、メッセージ制御部534を例にして説明するが、メッセージ制御部423も同様に動作する。
図10及び図11は、メッセージ受信時の処理フローを示すフローチャートである。なお、図10と図11とは、結合子により接続されている。連携端末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:はい)、ステップS135に移る。
一方、メッセージ判定部5343は、サービス識別管理部5341から送信先のサービスの識別子により特定されるサービスを実行するサービス実行部532がないことを示す照合結果を受信したと判断すると(ステップS125:いいえ)、ステップS130の処理を行う。すなわち、メッセージ判定部5343は、エラーをメッセージの送信元に返送するなど、所定のエラー処理を行う(ステップS130)。
ステップS125からS135に移った場合、引き続き下記の処理を行う。
メッセージ判定部5343は、送信先の識別子と送信元の識別子が同一であるか否かを判定する(ステップS135)。
図11に移って、送信先の識別子と送信元の識別子が同一であると判定された場合(ステップS140:はい)、ステップS145に進む。送信先の識別子と送信元の識別子が同一ではないと判定された場合(ステップS140:いいえ)、ステップS165に進む。
メッセージ判定部5343は、送信先のデバイスが受信機(受信装置4)であるかIoT機器10であるかを判定する(ステップS150)。送信先のデバイスが受信機(受信装置4)である場合(ステップS150:はい)、メッセージ判定部5343は、メッセージ分配部5344に対して、端末連携部531を経由してメッセージを送信するよう通知する(ステップS155)。送信先のデバイスがIoT機器10である場合(ステップS150:いいえ)、メッセージ判定部5343は、メッセージ分配部5344に対して、機器連携部535を経由してメッセージを送信するよう通知する(ステップS160)。これらのいずれの場合も、次に、ステップS170に移る。
送信先の識別子と送信元の識別子が同一ではない場合(ステップS140:いいえ)の処理は次の通りである。即ち、メッセージ判定部5343は、メッセージ分配部5344に対して、メッセージに記述された送信先のサービス実行部532にメッセージを送信するよう通知する。具体的には、メッセージ判定部5343は、メッセージに記述された送信先の識別子のサービスを実行するサービス実行部532にメッセージを送信するようにする(ステップS165)。次に、ステップS170に移る。
ステップS155、S160、S170のいずれかの処理の完了後、メッセージ分配部5344は、メッセージ判定部5343からの指示に従い、端末連携部531、機器連携部535、もしくは各サービス実行部532のいずれかにメッセージを送信する。
以上で、このフローチャートの処理を終了する。
図12は、メッセージ発行時の処理フローを示すフローチャートである。サービス実行部532は、メッセージを設定し、送信元サービス設定部5345に通知する(ステップS205)。送信元サービス設定部5345は、受信したメッセージに対して、送信元の識別子として、メッセージの送信元のサービス実行部532が実行しているサービスの識別子を追加し、メッセージ受信部5342に通知する(ステップS210)。メッセージ受信部5342は、メッセージから読み出した送信先のサービスの識別子及び送信元のサービスの識別子をメッセージ判定部5343に通知し、メッセージ全体をメッセージ分配部5344に通知する(ステップS215)。
メッセージ判定部5343は、送信先と送信元の識別子が同一か否かを判定する(ステップS220)。メッセージ判定部5343は、送信先と送信元の識別子が同一と判定した場合(ステップS225:はい)、メッセージ分配部5344に対して、端末連携部531を経由して受信装置4に、または機器連携部535を経由してIoT機器10に、メッセージを送信するよう通知する(ステップS230)。メッセージ分配部5344は、メッセージ判定部5343の指示に従い、メッセージを端末連携部531または機器連携部535の適切な方に出力する。端末連携部531側に出力された場合、端末連携部531は、メッセージ分配部5344から受信したメッセージを、通信入出力部511を介して受信装置4に送信する。また、機器連携部535側に出力された場合、機器連携部535は、メッセージ分配部5344から受信したメッセージを、機器通信入出力部512を介してIoT機器10に送信する(ステップS240)。
一方、メッセージ判定部5343は、送信先と送信元の識別子が同一ではないと判定した場合(ステップS225:いいえ)、ステップS235の処理を行う。すなわち、メッセージ判定部5343は、サービス識別管理部5341から、メッセージに記述された送信先のサービスの識別子に対応して対応表に登録されているサービス実行部532の識別子を読み出す。メッセージ判定部5343は、読み出した識別子により特定されるサービス実行部532、つまり、メッセージに記述された送信先のサービスの識別子により特定されるウェブサービスを実行しているサービス実行部532へメッセージを送信するよう、メッセージ分配部5344に通知する(ステップS235)。メッセージ分配部5344は、メッセージ判定部5343により送信先として指示されたサービス実行部532に、メッセージを送信する(ステップS240)。
図13は、受信装置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)。
図13では、受信装置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間でメッセージを送信する場合についても同様の手順で実行できる。
上述した、図9から図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へメッセージを出力するようメッセージ分配部5344に指示する(ステップS655)。メッセージ分配部5344は、メッセージ判定部5343に指示されたサービス実行部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のウェブアプリ間でセッションの識別子に基づきメッセージを送信する場合のシーケンス図である。このシーケンスは、図16及び図17に示すシーケンスと基本的な手順の差異はない。ただし、受信装置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において放送マネージドアプリにより実行されるサービス間でのメッセージ送信についても同様の手順で実行できる。
次に、連携端末5内の機器連携部535についてさらに詳細に説明する。連携端末5において、メッセージ制御部534の処理により、IoT機器10へのメッセージは機器連携部535に送られる。一例として、複数のIoT機器10のうちのどのIoT機器10にメッセージを送るかを表す情報は、メッセージ本文内に記述される。機器連携部535は、メッセージ本文を解釈することによって送信先を判断し、メッセージを配分する役割を担う。
図21は、機器連携部の詳細な構成を示すブロック図である。図示するように、機器連携部535は、機器管理部5351及び機器通信部5352(5352−1及び5352−2)を有する。
機器管理部5351は、サービス実行部532からメッセージ制御部534経由で送られてきたメッセージを受信する。また、機器管理部5351は、連携端末5の周辺に存在する通信可能なIoT機器10の表を保有し、送信先のIoT機器10が存在するか否かを判定する。また、IoT機器10の各々が接続を許可するサービスの表を保有し、IoT機器10がサービスからのメッセージの送信を許可するか否かを判定する。メッセージの送信が可能である場合、機器管理部5351は、使用する通信プロトコルに対応した機器通信部5352にメッセージを送信する。
機器通信部5352は、必要に応じて、送信するメッセージの形式を、送信先のIoT機器10に則した形式に変換する。なお、変換後のメッセージの形式は、送信先であるIoT機器10の内部構成や機能によってさまざまである。機器通信部5352は、それらのそれぞれに柔軟に対応してメッセージの形式を変換する機能を有する。変換後のメッセージの形式は、一例として、ウェブブラウザで解釈可能な形式である。また、別の例として、バイナリ形式であってもよい。さらに他の形式であってもよい。そして機器通信部5352は、ハードウェアの通信機能(機器通信入出力部512)を呼び出し、メッセージを送信する。なお、機器連携部535は、複数の系統の機器通信部5352を有していてよい。図21に示す機能構成においても、複数の機器通信部5352が存在しており、例えばプロトコル毎に使い分けられる。ここでは符号に枝番を付している。即ち、機器通信部5352−1は、情報通信入出力部512−1を通して情報の送受信を行う。また、機器通信部5352−2は、情報通信入出力部512−2を通して情報の送受信を行う。ここでは系統数が2である場合を示しているが、系統数は任意である。
図22は、機器管理部5351がメッセージ制御部534から受信するメッセージの例を示す概略図である。図示するメッセージにおいて、次の情報が記述されている。即ち、送信先のサービスを識別する情報が記述されている(dst: serviceP)。また、機器種別がIoT機器であることを表す情報が記述されている(dev: IoT)。
また、このメッセージ(message)内部には、次の情報が記述されている。即ち、通信プロトコル(protocol: Bluetooth Low Energy)は、メッセージの送信に用いる通信プロトコルを示すものである。また、機器特定要素(target info:)は、対象とする機器を特定する要素である。機器特定要素は、例えば、コマンドタイプ、デバイスタイプ、デバイスメーカー、デバイスネーム、デバイスID、及びコマンドを含む。コマンドタイプ(command type: control light)は、送信する命令の機能の種別を表すものである。例えば、「調光する」、「速度を変更する」、「電気を点ける」などといったコマンドタイプがあり得る。デバイスタイプ(device type: light)は、送信先のデバイスの種類を示すものである。例えば、「ロボット」、「電球」などといった機器種別が考えられる。デバイスメーカー(device maker: maker A)は、送信先の機器のメーカー(製造業者)を一意に識別する情報である。デバイスネーム(device name: A's LIGHT)は、送信先の機器の名称を表す情報である。例えば、製品群名、製品名などがデバイスネームとして用いられる。デバイスID(device id: l_00000001)は、送信先の機器をMACアドレス等のレベルで識別するための情報である。なお、「MACアドレス」は、「Media Access Control Address」を意味する。コマンド(command: hogehogehoge)は、送信先の機器への命令を含む情報である。命令は、例えば、HTML5で記述されるものである。
機器管理部5351は、IoT機器宛のメッセージの送信先の判定と、メッセージの送信の可否の判定を行う。そのために機器管理部5351は、自らが保持する2種類の表を参照する。
機器管理部5351が保持する第1の表は、通信可能機器表である。通信可能機器表は、連携端末5が通信可能なIoT機器10の情報を持つ表である。通信可能機器表は、通信可能なIoT機器10毎に、通信プロトコル及び機器特定要素の情報を有している。機器管理部5351は、受け取ったメッセージの送信先として指定された機器が、通信可能な状態で存在するか否かを調べるためにこの通信可能機器表を参照する。なお、通信可能機器表を更新する方法は、実装に依存する。連携端末5は、適切なタイミングにおいて通信可能なIoT機器10をサーチし、検出できたIoT機器10の情報に基づいて通信可能機器表を更新する。
機器管理部5351が保持する第2の表は、機器利用可能サービス表である。機器利用可能サービス表は、IoT機器10毎に、接続を許可するサービスの種類の情報を一覧形式で持つ。この機器利用可能サービス表は、例えばコンパニオンアプリのアップデート等の際に、併せて更新することができる。また、別のタイミングで機器利用可能サービス表を適宜更新するようにしてもよい。つまり、機器連携部535内の機器管理部5351は、メッセージに含まれるサービス識別情報が示すサービスをIoT機器10が受け入れるか否かを表す情報をIoT機器10の属性に対応付けて保持する機器利用可能サービス表を記憶し、サービス識別情報に基づいてメッセージをIoT機器10に送信するか否かを判断する。
図23は、機器連携部の動作シーケンスを示すフローチャートである。以下、このフローチャートに沿って説明する。
機器管理部5351は、メッセージ制御部534からメッセージを受信する(ステップS905)。機器管理部5351は、受信したメッセージの本文(図21におけるmessage: {…})に含まれる通信プロトコル及び機器特定要素を抽出する(ステップS910)。そして、機器管理部5351は、メッセージ本文から抽出した通信プロトコル及び機器特定要素と、自らが維持する通信可能機器表とを比較し、メッセージ送信先であるIoT機器10が、自装置の周辺に通信可能な状態で存在するか否かを判定する(ステップS915)。送信先のIoT機器10が存在しない場合(ステップS920:いいえ)、エラー処理を行うためにステップS945に移る。送信先のIoT機器10が存在する場合(ステップS920:はい)、次のステップS925に移る。
機器管理部5351は、メッセージに含まれるサービス識別子と、自らが維持する機器利用可能サービス表を比較する。この比較結果に基づいて、機器管理部5351は、存在する送信先のIoT機器10がメッセージ送信元のサービスからの接続を許可するか否かを判定する(ステップS925)。許可しない場合、つまりそのIoT機器10が受け入れるサービスの中に、送信元のサービスが含まれない場合(ステップS930:いいえ)、エラー処理を行うためにステップS945に移る。許可する場合、つまりそのIoT機器10が受け入れるサービスの中に、送信元のサービスが含まれる場合(ステップS930:はい)、次のステップS935に移る。
機器管理部5351は、メッセージ本文に含まれる通信プロトコルの情報を基に、メッセージを送信する機器通信部5352を判定し、該当する機器通信部5352にメッセージを渡す(ステップS935)。このとき、メッセージを送信可能なIoT機器10が複数存在する場合の処理は、実装に依存する。例えば、予め定められたルールに従って優先度の高いIoT機器10にメッセージを送信してもよく、またその都度、IoT機器10を選択してメッセージを送信してもよい。機器通信部5352は、機器管理部からメッセージを受信する。そして機器通信部5352は、メッセージ本文に含まれる機器特定要素を基に、機器通信入出力部512を介して、送信先のIoT機器10にメッセージを送信する(ステップS940)。
ステップS920またはS930から、ステップS945に移った場合の処理は、次の通りである。即ち、機器管理部5351は、メッセージを適切に送信する先がないため(接続が許可されない場合を含む)、エラーを送信元に通知するなどといったエラー処理を行う(ステップS945)。
受信装置4とIoT機器10とが連携するまでの手順は次の通りである。受信装置4において実行する放送マネージドアプリからIoT機器10へメッセージを送る例を示す。まず受信装置4が連携端末5にメッセージを送る。メッセージ内には、連携端末5からIoT機器10にメッセージを送るように記述されている。また、メッセージ内には、送信先のIoT機器10を特定する情報と、送信先であるそのIoT機器10に与える命令が記述されている。連携端末5は、送信先のIoT機器10を特定する情報に従って、IoT機器10にメッセージを送る。IoT機器10はメッセージに記述された命令に従って動作する。この結果、受信装置4とIoT機器10とは連携端末5を介して連携動作することになる。
また、連携端末5において実行するコンパニオンアプリから、受信装置4とIoT機器10とのそれぞれに、関連したメッセージを送信するようにしてもよい。この方法を用いて受信装置4とIoT機器10とが連携して動作するようにすることも可能である。
次に、受信装置4と連携端末5とIoT機器10との連携動作を利用した具体的なサービスの実行手順の一例を説明する。
図24及び図25は、具体的なサービスの例を実現するための手順であって、受信装置4とIoT機器10が双方向にメッセージのやり取りを行う手順の例を示すシーケンス図である。図24と図25は一連の手順の流れを示している。即ち、図24に示す手順の実行後に、図25に示す手順が実行される。
ここでは、テレビで放送される音楽番組とピアノ玩具との連携サービスを例とする。
このサービスは、放送される音楽番組の中での演奏に合わせてピアノ玩具の鍵盤が光る「お手本モード」と、ピアノ玩具の鍵盤を叩くことでその音階が受信装置4の画面上に表示される「練習モード」とで構成される。前提として、受信装置4と連携端末5とにおいて、番組に連動したウェブアプリが実行されている。以下で説明する手順において、受信装置4や連携端末5の動作は、それぞれの装置で稼働するアプリの動作である。また、受信装置4と連携端末5とのペアリングは既に完了している。また、連携端末5は、接続可能なIoT機器10のリストを既に保持している。
まず図24において、受信装置4で稼働するアプリから連携端末5に、現在利用可能なサービス名と、サービスに対応するIoT機器10のリストを送信する(ステップS1005)。連携端末5は、受信装置4から受信したIoT機器10のリストと、予め保持している接続可能なIoT機器10のリストと比較する。該当するIoT機器10が接続可能な状態で存在する場合、連携端末5は、例えば通知機能を用いて、ユーザに機器連携サービスが利用可能であること、及び対象となるIoT機器10のリストを通知する(ステップS1010)。なお、ステップS1005およびS1010の処理は、所定の時間間隔で繰り返し行われてもよい。このときの状態は、図示する「サービス・機器選択前」の状態である。
ユーザは上記の通知に応じて、サービス及び機器を選択する操作を連携端末5において行う(ステップS1015)。このユーザの選択に応じて、連携端末5は、IoT機器10に接続要求を行う(ステップS1020)。このとき、連携端末5が必要に応じてユーザにペアリングキーの入力を要求するようにしてもよい。IoT機器10は、連携端末5からの接続要求に応答して、接続受付を連携端末5に返す(ステップS1025)。連携端末5は、IoT機器10からの接続受付を受信したことによって接続の成功を認識すると、接続の成功をユーザに通知し、サービス画面に遷移する。また、連携端末5は、接続したIoT機器10のデバイスIDを受信装置4に通知する(ステップS1030)。受信装置4は、通知されたデバイスIDを保持する。これにより、受信装置4とIoT機器10との間で双方向にメッセージをやり取りする準備が完了する。このときの状態は、図示する「サービス・機器選択後」の状態である。
連携端末の画面には、モードを選択することのできるユーザインタフェースが表示されている。具体的には、ユーザは「お手本モード」と「練習モード」とを選択できる。ここで、ユーザは、連携端末5を操作して「お手本モード」への移行を選択する(ステップS1035)。ユーザから選択に応じて、連携端末5は、受信装置4に「お手本モード」が選択されたことを通知する(ステップS1040)。
受信装置4において稼働するアプリは、不図示のサービスサーバ装置からインターネット等の通信手段を介して、演奏データを取得する。サービスサーバ装置は、放送されている音楽番組の中での演奏に合わせたタイミングで、この演奏データを受信装置4に送信する。演奏データは、放送中の音楽番組において演奏中の曲の楽譜データと、楽譜データ上において現在演奏されている箇所を示すデータ(拍子のデータ、あるいは楽譜データ上の特定の音符を指し示すデータ)とで構成される。受信装置4は、サービスサーバ装置から受信した演奏データに基づいて、画面への表示を行う。具体的には、受信装置4は、上記の楽譜データに基づいて楽譜を画面上に描画するとともに、その楽譜上で現在演奏されている箇所を例えば色を変えるなどして指し示す。
図25に移って、受信装置4は、演奏データをテレビの画面に表示するのと同時に、「演奏個所に応じた鍵盤を光らせる」という命令を含んだメッセージを、連携端末5に送信する(ステップS1045)。図示する具体例では、この命令は「『ミ』を光らせる」という命令である。そして連携端末5は、その命令を含んだメッセージをIoT機器10に送信する(ステップS1050)。なお、このとき、最初に取得したデバイスIDを用いて、このIoT機器10がメッセージの送信先として指定されている。図示する例では、鍵盤上の「ミ」のキーの色が、他の色と異なっている。なお、メッセージの送信先として、複数のデバイスIDを指定してもよい。また、デバイスIDの代わりに、デバイスネーム等、他の識別子を用いて指定してもよい。IoT機器10(ピアノ玩具)は、メッセージに応じて鍵盤の所定のキーを光らせる。なお、このときの状態は、図示する「鍵盤へのメッセージ送信」の状態である。
次に、ユーザは連携端末5を操作することによって、「練習モード」への移行を選択する(ステップS1055)。連携端末5は、受信装置4に、「練習モード」へ移行したことを通知する(ステップS1060)。また、連携端末5は、IoT機器10に、「練習モード」へ移行したことを通知する(ステップS1065)。この状態において、ユーザは、鍵盤を操作する(ステップS1070)。
この状態において、IoT機器10(ピアノ玩具)は、ユーザが鍵盤を叩く都度、どのキーが叩かれたかを表す情報を含んだメッセージを連携端末に送信する(ステップS1075)。ここでIoT機器10から連携端末5に送信されるメッセージ自体には、送信先の受信装置を識別する情報は含まれていない。しかしながら連携端末5は、最初にIoT機器10への接続要求を行った受信装置4のIDを保持している。そのため、連携端末5は、このIoT機器と連携している受信装置4のみにメッセージを転送することができる(ステップS1080)。受信装置4は、どのキーが叩かれたかを表すメッセージを受信し、キーの種類に応じた動作をする。このように、IoT機器10から受信装置4へのメッセージの送信が行われる。なお、図示する具体例では、IoT機器10からは「『ラ』を弾いた」というメッセージが、連携端末5経由で、受信装置4に送られる。受信装置4側では、画面に表示している楽譜上の、叩かれたキーに対応する位置(高さ)を光らせるなどといたビジュアル表現を行う。このときの状態は、図示する「鍵盤からのメッセージ受信」の状態である。
以上説明したように、サービスの利用開始時に、連携端末5が、受信装置4とIoT機器10とを接続する処理を行う。これによって、以後、受信装置4とIoT機器10との間で、連携端末5を経由する形での双方向のメッセージのやり取りが可能となる。
以上説明した実施形態の構成において、受信装置4で実行するサービスから、連携端末5を介して、連携端末と通信接続が可能なIoT機器10にメッセージを送ることが可能となる。あるいは、連携端末5から受信装置4とIoT機器10との双方に、関連したメッセージを送ることが可能となる。これにより、受信装置4とIoT機器10を連携した新たな視聴サービスを実現することが可能となる。
また、以上説明した実施形態によれば、放送通信連携システム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により発行されたメッセージを出力する。
また、連携アプリ実行制御部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等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。