以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、コンテンツの種類等を示すメタデータであるコンテンツディスクリプション(Content Description、以下、「CD」という。)と、IoT機器の機能等を示すメタデータであるTDとを用いて、コンテンツがどのような種類のIoT機器にて再生可能であるかについて判断することを特徴とする。これにより、1つのコンテンツに対し、1以上のIoT機器を関連付けることができ、結果として、様々なコンテンツを、様々なIoT機器にて簡易な仕組みで再生させることが可能となる。
また、CD及びTDを用いて、コンテンツにIoT機器を関連付けるためのソフトウェアをアプリとして提供することにより、様々なコンテンツを、その種類に依存することなく、統一されたアプリの記述にて扱うことが可能となる。つまり、簡易な仕組みにて、1つのコンテンツに対し1以上のIoT機器を関連付けることが可能となる。
〔本発明の概要〕
まず、本発明の実施形態の端末装置1によるサービスの概要について説明する。図1は、端末装置1に保持されたマッチングアプリによるサービスを説明する概略図である。
図示しない放送局またはコンテンツサーバは、映像、音声、テキスト等のコンテンツを、放送/通信網6を介して端末装置1及びIoT機器2−1〜2−3等へ配信する。
端末装置1は、例えばスマートフォン(登録商標)等の携帯端末やパーソナルコンピュータ等、コンテンツと他の機器を繋ぐゲートウェイとしての機能を持つ機器である。端末装置1は、マッチングアプリを動作させることにより、各コンテンツのCD及びIoT機器2−1〜2−3のTDに基づいて、コンテンツを所望のIoT機器2−1〜2−3にて再生させるための制御を行う。つまり、端末装置1は、放送局またはコンテンツサーバからコンテンツを取得し、WoT(Web of Things)の通信プロトコル等を用いて、近傍のIoT機器2−1〜2−3を探索すると共に、所望のIoT機器2−1〜2−3に対し、取得したコンテンツに関する再生処理を行わせる。
IoT機器2−1は、音声コンテンツを再生するスマートスピーカであり、IoT機器2−2は、映像コンテンツを再生するテレビであり、IoT機器2−3は、テキストコンテンツを再生するスマートミラーである。
端末装置1とIoT機器2−1〜2−3とは、Wi-Fi(登録商標)またはBluetooth(登録商標)等の規格に従い、通信により接続される。
例えば、ユーザは、携帯型の端末装置1を所持しており、リビングに設置されたIoT機器2−2のテレビにて映像コンテンツを視聴しているものとする。端末装置1は、マッチングアプリを動作させることで、放送/通信網6を介して、視聴中の映像コンテンツ、当該映像コンテンツに関連する音声コンテンツ及びテキストコンテンツを取得すると共に、IoT機器2−1〜2−3を探索する。そして、端末装置1は、各コンテンツのCD及びIoT機器2−1〜2−3のTDを取得し、CD及びTDに基づいて、各コンテンツに対してIoT機器2−1〜2−3を関連付ける。これにより、音声コンテンツはIoT機器2−1に関連付けられ、映像コンテンツはIoT機器2−2に関連付けられ、テキストコンテンツはIoT機器2−3に関連付けられる。
ユーザがリビングから台所へ移動すると、端末装置1は、所定の手段にてその移動を検出し、IoT機器2−2のテレビが再生している映像コンテンツに関連する音声コンテンツを、台所に設置されたIoT機器2−1のスマートスピーカに再生させる。IoT機器2−2は、端末装置1からの指示に従い、例えばコンテンツサーバから音声コンテンツを受信し、受信した音声コンテンツを再生するか、または既に受信済みの音声コンテンツを再生する。
これにより、ユーザは、IoT機器2−2のテレビにて視聴していた映像コンテンツに対応して、その音声コンテンツによる音声を台所で継続的に聞くことができる。
さらに、ユーザが台所から洗面所へ移動すると、端末装置1は、所定の手段にてその移動を検出し、IoT機器2−2のテレビが再生している映像コンテンツに関連するテキストコンテンツを、洗面所に設置されたIoT機器2−3のスマートミラーに再生させる。IoT機器2−3は、端末装置1からの指示に従い、例えばコンテンツサーバからテキストコンテンツを受信し、受信したテキストコンテンツを再生するか、または既に受信済みのテキストコンテンツを再生する。
これにより、ユーザは、IoT機器2−2のテレビにて視聴していた映像コンテンツに対応して、そのテキストコンテンツによるテキストを洗面所で継続的に読むことができる。
このように、ユーザは空間を移動しても、移動先にあるIoT機器2−1,2−3を利用して、その出力機能に見合った手段で、視聴中の映像コンテンツと同種の内容のコンテンツを継続的に視聴することができる。
尚、図1では、端末装置1がマッチングアプリを保持して動作させる例を示したが、端末装置1が存在しない場合、IoT機器2−1〜2−3のいずれかがマッチングアプリを保持して動作させるようにしてもよい。また、マッチングアプリは、放送/通信網6のクラウド上に存在するようにしてもよい。この場合、クラウド(クラウド上の装置)がマッチングアプリを動作させる。また、IoT機器2−1〜2−3は、コンテンツを、端末装置1を介して取得するようにしてもよいし、放送局またはコンテンツサーバから直接取得するようにしてもよい。
〔ハードウェア構成〕
次に、本発明の実施形態による端末装置1のハードウェア構成について説明する。図2は、端末装置1のハードウェア構成例を示す概略図である。この端末装置1は、CPU11と、プログラム及びテーブル等を記憶するROM及びRAMからなる記憶部12と、プログラム、テーブル及びデータ等を記憶する記憶装置(例えばハードディスク装置)13と、当該端末装置1を使用するユーザによるタッチパネル等の操作に伴い、所定のデータを入力制御する操作/入力部14と、ユーザに対しデータ入力操作等を促すための画面情報を表示する表示出力インタフェース部15と、インターネット等の放送/通信網6、及びWi-Fi(登録商標)等の規格に従う無線通信を介してコンテンツ、プログラム及びデータ等を送受信する通信部16と、を備えて構成され、これらの構成部はシステムバス17を介して相互に接続される。
記憶装置13には、端末装置1の基本的な機能を提供するOS(オペレーティングシステム)プログラム、マッチングアプリのプログラム及びWebブラウザのプログラム、これらのプログラムにて使用する各種テーブル及びデータ等が記憶されている。
マッチングアプリは、コンテンツのCD及びIoT機器2のTDを用いて、コンテンツがどのような種類のIoT機器2にて再生可能であるかを判断し、所望のコンテンツを所望のIoT機器2にて再生させるためのプログラムである。
尚、マッチングアプリは、当該端末装置1が処理を行うときに、CPU11により記憶装置13から記憶部12のRAMに読み出されて実行される。また、各種テーブル及びデータは、マッチングアプリの実行に伴い生成され、CPU11によって記憶部12のRAMから記憶装置13へ書き込まれ、また、マッチングアプリの実行に伴い、CPU11によって記憶装置13から記憶部12のRAMに読み出される。Webブラウザについても同様である。
ここで、OSプログラムは、CPU11により実行され、端末装置1の基本的な機能として、記憶部12、記憶装置13、操作/入力部14、表示出力インタフェース部15及び通信部16を管理する。そして、このOSプログラムがCPU11によって実行された状態で、前述のマッチングアプリ及びWebブラウザが実行される。
制御部10は、CPU11及び記憶部12により構成され、CPU11が記憶装置13に記憶されたマッチングアプリ及びWebブラウザ等を記憶部12に読み出して実行することにより、端末装置1全体を統括制御する。図1は、マッチングアプリ及びWebブラウザ等が記憶装置13から記憶部12に読み出された状態を示している。このように、端末装置1は、図1に示したハードウェア構成により、制御部10がマッチングアプリ及びブラウザ等に従って各種処理を行う。
〔制御部10(マッチングアプリが動作したときの制御部10)〕
次に、マッチングアプリが動作したときの制御部10について説明する。図3は、制御部10(端末装置1)の構成例を示すブロック図であり、マッチングアプリが動作したときの機能構成を示している。図4は、制御部10の処理例を示すフローチャートであり、図5は、端末装置1の画面表示例を説明する図である。
図3を参照して、この制御部10は、TD取得部20、TD記憶部21、コンテンツ取得部22、コンテンツ記憶部23、CD取得部24、CD記憶部25、機器決定部26及びコンテンツ処理部27を備えている。以下、図3〜図5を参照して、制御部10について説明する。
端末装置1を操作するユーザがマッチングアプリを選択すると、端末装置1は、マッチングアプリを起動する(ステップS401)。
制御部10のTD取得部20は、接続可能なIoT機器2を探索し(ステップS402)、接続可能なIoT機器2またはTDサーバ3からTDを取得する(ステップS403)。そして、TD取得部20は、取得したTDをTD記憶部21に格納する。
TD取得部20は、接続可能なIoT機器2毎に、そのTDを取得してTD記憶部21に格納する。これにより、TD記憶部21には、端末装置1が接続可能な全てのIoT機器2について、それぞれのTDが格納される。
図6は、TDのデータ構造例を示す図である。このTDは、モノ(Thing)がどのように構成されているかを記述した、IoT機器の機能等を示すメタデータである。TDには、機器ID(id)、機器種類(model)、機器機能(actions)、属性(properties)等のデータが含まれる。
機器IDは、IoT機器2の識別子を示す。機器種類は、IoT機器2の種類を示し、例えば、スピーカ(speaker)、スマートスピーカ(smart speaker)、テレビ(television)、スマートミラー(smart mirror)、ロボット(robot)、ゲートウェイ(geteway)等である。機器機能は、IoT機器2がコンテンツを再生する機能、すなわち、どのような種類のコンテンツを再生できるかを示し、例えば、音声再生(audio play)、映像再生(movie play)等である。属性は、IoT機器2が再生するコンテンツのファイルの種類を示し、例えば、音声ファイル(audio file)、映像ファイル(movie file)等である。
図3〜図5に戻って、TD取得部20は、TD記憶部21から、接続可能な全てのIoT機器2のTDを読み出し、TDから機器ID、機器種類及び機器機能等を抽出し、IoT機器2毎のこれらの情報を使用可能機器情報として生成する(ステップS404)。そして、TD取得部20は、接続可能(使用可能)な全てのIoT機器2の機器機能等を含む使用可能機器情報を機器決定部26に出力する。
このように、TD取得部20によるステップS402〜ステップS404の処理にて、接続可能な全てのIoT機器2のTDが取得され、これらのTDのデータを含む使用可能機器情報が生成される。TD取得部20の処理の詳細については後述する。
一方、ステップS401におけるマッチングアプリの起動に伴い、コンテンツ取得部22は、コンテンツサーバ4からコンテンツを取得する(ステップS405)。そして、コンテンツ取得部22は、取得したコンテンツをコンテンツ記憶部23に格納すると共に、CD取得部24及びコンテンツ処理部27に出力する。
さらに、コンテンツ取得部22は、取得した全てのコンテンツの名称を画面表示する。例えば、図5のステップS405,ステップS406の箇所に示すように、コンテンツ取得部22により取得されたコンテンツの名称であるコンテンツA,B,Cが画面表示される。これにより、ユーザは、当該端末装置1が取得した全てのコンテンツA,B,Cを認識することができる。
尚、コンテンツ取得部22は、コンテンツ記憶部23から既に格納済みのコンテンツを読み出し、読み出したコンテンツをCD取得部24及びコンテンツ処理部27に出力するようにしてもよい。
CD取得部24は、コンテンツ取得部22からコンテンツを入力し、コンテンツのCDを、当該コンテンツまたはCDサーバ5等から取得する(ステップS406)。そして、CD取得部24は、取得したCDをCD記憶部25に格納する。
CD取得部24は、コンテンツ取得部22から入力したコンテンツ毎に、そのCDを取得してCD記憶部25に格納する。これにより、CD記憶部25には、コンテンツ取得部22から入力した全てのコンテンツについて、それぞれのCDが格納される。
図7は、CDのデータ構造例を示す図である。このCDは、コンテンツがどのように構成されているかを記述した、コンテンツの種類等を示すメタデータである。CDには、コンテンツID(id)、コンテンツ種類(media type)、ジャンル(genre)、再生可能な機器(device)等のデータが含まれる。
コンテンツIDは、コンテンツの識別子を示す。コンテンツ種類は、コンテンツの種類を示し、例えば、音声(audio)、映像(movie)、テキスト(text)、制御プログラム(control program)等である。ジャンルは、コンテンツの内容が属する分野を示し、例えば、スポーツ(sport)、ドキュメンタリー(documentary)等である。再生可能な機器は、コンテンツを再生可能なIoT機器2に関するデータを示し、図6に示したTDの機器種類に相当する。例えば、コンテンツが当該端末装置1のみにて再生され、他のIoT機器2にて再生されない場合、または、コンテンツが当該端末装置1及び特定のIoT機器2のみにて再生され、他のIoT機器2にて再生されない場合には、再生対象の機器を特定するためのデータが設定される。
図3〜図5に戻って、CD取得部24は、CD記憶部25から、コンテンツ取得部22が取得した全てのコンテンツのCDを読み出し、CDからコンテンツ種類、再生可能な機器等を抽出する。そして、CD取得部24は、取得した全てのコンテンツのコンテンツ種類等を含む使用可能コンテンツ情報を生成し(ステップS407)、これを機器決定部26に出力する。
このように、コンテンツ取得部22によるステップS405の処理にて、コンテンツが取得され、CD取得部24によるステップS406及びステップS407の処理にて、取得済みの全てのコンテンツのCDが取得される。そして、これらのCDから、取得済みの全てのコンテンツのコンテンツ種類等が抽出され、使用可能コンテンツ情報が生成される。CD取得部24の処理の詳細については後述する。
機器決定部26は、ステップS404及びステップS407から移行して、TD取得部20から、使用可能な全てのIoT機器2の機器機能等を含む使用可能機器情報を入力すると共に、CD取得部24から、取得した全てのコンテンツのコンテンツ種類等を含む使用可能コンテンツ情報を入力する。
機器決定部26は、コンテンツ毎に、使用可能機器情報及び使用可能コンテンツ情報に基づいて、当該コンテンツを再生可能なIoT機器2を判定する(ステップS408)。具体的には、機器決定部26は、使用可能機器情報に含まれるIoT機器2の機器機能等と、使用可能コンテンツ情報に含まれる当該コンテンツのコンテンツ種類等とを比較し、IoT機器2が当該コンテンツを再生可能であるかを判断する。そして、機器決定部26は、使用可能機器情報に含まれる全ての機器IDのIoT機器2から、当該コンテンツを再生可能なIoT機器2を判定する。
例えば、機器決定部26は、使用可能機器情報に含まれるIoT機器2の機器機能が音声再生であり、使用可能コンテンツ情報に含まれる当該コンテンツのコンテンツ種類が音声である場合、当該IoT機器2が当該コンテンツを再生可能であると判定する。また、機器決定部26は、使用可能機器情報に含まれるIoT機器2の機器機能が映像再生であり、使用可能コンテンツ情報に含まれる当該コンテンツのコンテンツ種類が映像である場合、当該IoT機器2が当該コンテンツを再生可能であると判定する。また、機器決定部26は、使用可能機器情報に含まれるIoT機器2の機器機能が音声再生であり、使用可能コンテンツ情報に含まれる当該コンテンツのコンテンツ種類が制御プログラムである場合、当該IoT機器2が当該コンテンツを再生できないと判定する。
機器決定部26は、コンテンツ毎に、当該コンテンツを再生可能なIoT機器2を判定した後、再生可能なIoT機器2が判定された(存在する)コンテンツと、再生可能なIoT機器2が判定されなかった(存在しない)コンテンツとを特定する。そして、機器決定部26は、取得した全てのコンテンツのそれぞれについて、再生可能であるか否かを画面表示する。
例えば、図5のステップS405,ステップS406の箇所に示すように、取得したコンテンツA,B,Cのうち再生可能なIoT機器2が存在するコンテンツA,Bについては、再生可能を意味する白丸印が表示され、再生可能なIoT機器2が存在しないコンテンツCについては、再生不可能を意味するバツ印が表示される。これにより、ユーザは、当該端末装置1が取得した全てのコンテンツA,B,Cのうち、再生可能なコンテンツA,B及び再生不可能なコンテンツCを認識することができる。
ユーザが、再生可能なコンテンツのうち実際に再生するコンテンツを選択すると、機器決定部26は、ユーザにより選択されたコンテンツを画面上に明示する。例えば、図5の右上の箇所に示すように、ユーザより、再生可能なコンテンツA,BのうちコンテンツAが選択されると、コンテンツAが選択されたことを示す黒丸印が表示される。これにより、ユーザは、再生可能なコンテンツA,BのうちコンテンツAを選択したことを確認することができる。
機器決定部26は、ユーザにより選択されたコンテンツについて、再生可能なIoT機器2のうち、実際に再生を行うIoT機器2を決定する(ステップS409)。具体的には、機器決定部26は、ユーザによる選択操作または所定のアルゴリズムに従い、実際に再生を行うIoT機器2を決定する。そして、機器決定部26は、決定したIoT機器2に関する情報を再生機器情報としてコンテンツ処理部27に出力する。
例えば、図5の右上の箇所に示すように、ユーザによりコンテンツAが選択されると、図5のステップS408の箇所に示すように、コンテンツAについて再生可能なIoT機器2である端末装置1及びIoT機器αについて、再生可能を意味する白丸印が表示され、コンテンツAについて再生不可能なIoT機器2であるIoT機器βについて、再生不可能を意味するバツ印が表示される。IoT機器α,βは、当該端末装置1に接続されているIoT機器2である。これにより、ユーザは、コンテンツAについて、再生可能な端末装置1及びIoT機器αを認識することができる。
そして、図5のステップS409の箇所に示すように、ユーザにより、実際に再生を行う端末装置1及びIoT機器αが選択されると、端末装置1及びIoT機器αが選択されたことを示す黒丸印が表示される。これにより、ユーザは、実際に再生を行う端末装置1及びIoT機器αが選択されたことを確認することができる。
コンテンツ処理部27は、コンテンツ取得部22から、ユーザが選択したコンテンツを入力すると共に、機器決定部26から、当該コンテンツを実際に再生する機器に関する再生機器情報を入力する。そして、コンテンツ処理部27は、コンテンツを実行し、制御メッセージを、再生機器情報の示すIoT機器2(ステップS409にて決定したIoT機器2)へ送信する(ステップS410)。尚、コンテンツ処理部27は、ユーザが選択したコンテンツをコンテンツ記憶部23から読み出すようにしてもよい。
IoT機器2は、制御メッセージを受信すると、制御メッセージに従って動作し、制御メッセージの示す再生を行ったり、必要なコンテンツをコンテンツサーバ4からダウンロードして再生したりする。つまり、コンテンツ処理部27は、ユーザが選択したコンテンツを、当該端末装置1にて実行すると共に、機器決定部26により決定されたIoT機器2に対し、当該コンテンツに関する再生処理を行わせることができる。
例えば、図5のステップS410の箇所に示すように、端末装置1の画面にコンテンツAの映像が再生される。図5の例の場合、コンテンツAが端末装置1にて再生され、コンテンツAに関する再生処理が、コンテンツAの制御メッセージに従ってIoT機器αにて行われる。
このように、機器決定部26によるステップS408及びステップS409の処理にて、実際に再生するIoT機器2が決定され、コンテンツ処理部27によるステップS410の処理にて、コンテンツが、実際に再生を行うIoT機器2にて再生される。機器決定部26及びコンテンツ処理部27の処理の詳細については後述する。
(TD取得部20)
次に、TD取得部20によるステップS402〜ステップS404の処理について詳細に説明する。図8は、TD取得部20の構成例を示すブロック図であり、図9は、TD取得部20の処理例を示すフローチャートである。
TD取得部20は、機器管理部30、機器通信部31及びTD処理部32を備えている。機器管理部30は、接続可能なIoT機器2の情報を管理するために、定期的に、接続可能なIoT機器2の探索依頼を機器通信部31に出力する(ステップS901)。
機器通信部31は、TD取得部20から探索依頼を入力し、IoT機器2に応じた所定の通信プロトコルに従い、接続可能なIoT機器2の探索を実行し、接続可能なIoT機器2から応答を受信する(ステップS902)。
ここで、IoT機器2には、WoT機器及び非WoT機器の2種類があるものとする。WoT機器は、WoTの規格に準拠した機器であり、Webブラウザ及びWebサーバを備えている。また、WoT機器は、当該WoT機器を紐付けるTDを保持しているか、またはTDを一意に決定するTDID(TD識別子、例えばTDが格納されているTDサーバ3のURL)を保持している。機器通信部31は、WoT機器との間でWoTの規格に準拠した方法で通信を行い、WoTの機器発見プロトコルにより、WoT機器との間を接続する。
一方、非WoT機器は、TD及びTDIDを保持していない。機器通信部31は、例えば、非WoT機器のIPアドレスを予め保持しており、非WoT機器のIPアドレスを直接指定することで、非WoT機器との間を接続する。
機器通信部31は、接続可能なIoT機器2から応答を受信した場合、当該応答を機器管理部30及びTD処理部32に出力する。機器管理部30は、機器通信部31から応答を入力し、応答を返してきたIoT機器2を接続可能な機器として管理する。
TD処理部32は、機器通信部31から応答を入力し、応答にTDが含まれているか、応答にTDのURL(TDID)が含まれているか、または、応答にTD及びURLの両方が含まれていないかを判定する(ステップS903)。
TD処理部32は、応答にTDが含まれていると判定した場合(ステップS903:TD)、応答からTDを抽出し(ステップS904)、当該TDを、当該応答を返してきたIoT機器2のTDであると判断する。
一方、TD処理部32は、応答にTDが含まれておらず、TDのURLが含まれていると判定した場合(ステップS903:URL)、当該URLのTDサーバ3からTDを受信する(ステップS905)。そして、TD処理部32は、当該TDを、当該応答を返してきたIoT機器2のTDであると判断する。
さらに、TD処理部32は、応答にTD及びURLの両方が含まれていないと判定した場合(ステップS903:無し)、ステップS906へ移行する。
TD処理部32は、ステップS903(なし)、ステップS904またはステップS905から移行して、IoT機器2のTDをTD記憶部21に格納する(ステップS906)。
TD処理部32は、接続可能な全てのIoT機器2について、ステップS903〜ステップS906の処理を行う。これにより、ステップS903(無し)の場合を除き、接続可能な全てのIoT機器2のTDが取得され、TD記憶部21に格納される。
尚、IoT機器2が非WoT機器の場合、非WoT機器は、TD及びTDIDを保持していないから、非WoT機器は接続可能なIoT機器2となり得るが、そのTDは取得されない。
TD処理部32は、TD記憶部21から、接続可能な全てのIoT機器2のTDを読み出す。そして、TD処理部32は、TDに基づいて、使用可能機器情報を生成し機器決定部26に出力する(ステップS907)。具体的には、TD処理部32は、TDから機器ID、機器種類及び機器機能等を抽出し、接続可能なIoT機器2毎に、これらの情報を使用可能機器情報として生成する。
このように、TD取得部20により、端末装置1との間で接続可能なIoT機器2のTDが取得され、TDの各種データを含む使用可能機器情報が生成される。尚、端末装置1はIoT機器2の一種であるため、TD処理部32は、端末装置1のTDもTD記憶部21に格納し、端末装置1のTDのデータを含む使用可能機器情報を生成するものとする。
(CD取得部24)
次に、コンテンツ取得部22によるステップS405の処理、及びCD取得部24によるステップS406及びステップS407の処理について詳細に説明する。図10は、CD取得部24の構成例を示すブロック図であり、図11は、コンテンツ取得部22及びCD取得部24の処理例を示すフローチャートである。
CD取得部24は、コンテンツ解釈部40及びダミーCD生成部43を備えている。コンテンツ解釈部40は、CD解釈部(CD処理部)41及びWebブラウザ42を備えている。Webブラウザ42は、既に動作しているものとする。
マッチングアプリの起動に伴い、コンテンツ取得先のURLがコンテンツ解釈部40に通知される。例えばIoT機器2−2のテレビから、当該テレビが再生しているコンテンツに関するURLがコンテンツ解釈部40へ通知される。また、端末装置1がコンテンツサーバ4からコンテンツ一覧情報を取得する動作のときに、コンテンツ取得先のURLが通知される。
コンテンツ解釈部40は、コンテンツ取得先のURLを取得すると(ステップS1101)、URLをコンテンツ取得部22に出力する。
コンテンツ取得部22は、コンテンツ解釈部40からコンテンツ取得先のURLを入力し、当該URLのコンテンツサーバ4からコンテンツを受信し(ステップS1102)、コンテンツ記憶部23に格納する。そして、コンテンツ取得部22は、受信したコンテンツをコンテンツ解釈部40に出力する。または、コンテンツ取得部22は、コンテンツ記憶部23からコンテンツを読み出し、読み出したコンテンツをコンテンツ解釈部40に出力する。
ここで、コンテンツは、CD及びコンテンツ本文により構成され、またはCDを一意に決定するCDID(CD識別子、例えばCDが格納されているCDサーバ5のURL)及びコンテンツ本文により構成される。CD及びCDIDを有さないコンテンツも存在する。つまり、コンテンツは、当該コンテンツを紐付けるCDを保持しているか、またはCDを一意に決定するCDIDを保持しているか、またはCD及びCDIDのいずれも保持していない。
コンテンツが、例えばWebブラウザ42にて実行可能なHTMLコンテンツの場合、CDを有しており、CDには当該コンテンツが対象とする(そのコンテンツに従って動作する)WoT機器または非WoT機器の種類に対応したコンテンツ種類が記述されている。この場合のコンテンツ本文は、HTMLコンテンツ(いわゆるWebアプリ)である。
コンテンツ解釈部40のCD解釈部41は、コンテンツのCDを取得する処理を行う。具体的には、CD解釈部41は、コンテンツ取得部22からコンテンツを入力し、コンテンツにCDが含まれているか、コンテンツにCDのURL(CDID)が含まれているか、または、コンテンツにCD及びURLの両方が含まれていないかを判定する(ステップS1103)。
CD解釈部41は、コンテンツにCDが含まれていると判定した場合(ステップS1103:CD)、コンテンツからCDを抽出する(ステップS1104)。
一方、CD解釈部41は、コンテンツにCDが含まれておらず、CDのURLが含まれていると判定した場合(ステップS1103:URL)、当該URLのCDサーバ5からCDを受信する(ステップS1105)。
さらに、CD解釈部41は、コンテンツにCD及びURLの両方が含まれていないと判定した場合(ステップS1103:無し)、ダミーCD生成部43からダミーCDを取得する(ステップS1106)。
ダミーCD生成部43は、当該端末装置1のみがコンテンツを再生することを示すデータを含むCDをダミーCDとして生成し、CD解釈部41からの要求に応じて、ダミーCDをCD解釈部41に出力する。例えば、図7に示したCDにおいて、再生可能な機器として、当該端末装置1のデータが設定される。この場合のダミーCDは、再生可能な機器のみにデータが設定され、その他の項目にはヌルが設定される。そして、CD解釈部41は、ダミーCD生成部43から取得したダミーCDを、コンテンツのCDとして扱う。
尚、ダミーCD生成部43は、当該端末装置1に加え、特定のIoT機器2のみがコンテンツを再生することを示すデータを含むCDをダミーCDとして生成するようにしてもよい。この場合のダミーCDには、再生可能な機器として、当該端末装置1及び特定のIoT機器2のデータが設定される。
これにより、CD及びURLの両方が含まれていないコンテンツは、ダミーCDに設定された再生可能な機器のみにて、再生処理が行われる。
CD解釈部41は、ステップS1104、ステップS1105またはステップS1106から移行して、コンテンツのCDをCD記憶部25に格納する(ステップS1107)。
CD解釈部41は、コンテンツサーバ4から取得した全てのコンテンツについて、ステップS1103〜ステップS1107の処理を行う。これにより、取得した全てのコンテンツのCDが取得され、CD記憶部25に格納される。
CD解釈部41は、CD記憶部25から、取得した全てのコンテンツのCDを読み出す。そして、CD解釈部41は、CDからコンテンツ種類、再生可能な機器等を抽出し、取得した全てのコンテンツのコンテンツ種類等を含む使用可能コンテンツ情報を生成し、これを機器決定部26に出力する(ステップS1108)。
このように、CD取得部24により、取得した全てのコンテンツのCDが取得され、取得した全てのコンテンツのコンテンツ種類等を含む使用可能コンテンツ情報が生成及び出力される。
(機器決定部26及びコンテンツ処理部27)
次に、機器決定部26によるステップS408及びステップS409の処理、及びコンテンツ処理部27によるステップS410の処理について詳細に説明する。図12は、機器決定部26及びコンテンツ処理部27の構成例を示すブロック図であり、図13は、機器決定部26及びコンテンツ処理部27の処理例を示すフローチャートである。
機器決定部26は、再生可能機器判定部50、再生機器決定部51、ユーザ選択部52及び機器選択部53を備えている。コンテンツ処理部27は、コンテンツ解釈部40及びWebサーバ部60を備え、コンテンツ解釈部40は、CD解釈部41及びWebブラウザ42を備えている。コンテンツ解釈部40は、図10に示したCD取得部24に備えたコンテンツ解釈部40と同じである。図10に示したCD取得部24では、コンテンツ解釈部40のCD解釈部41のみが機能し、Webブラウザ42が機能しないが、このコンテンツ処理部27では、CD解釈部41が機能せず、Webブラウザ42のみが機能する。
機器決定部26の再生可能機器判定部50は、TD取得部20から使用可能機器情報を入力すると共に、CD取得部24から使用可能コンテンツ情報を入力する(ステップS1301)。そして、再生可能機器判定部50は、使用可能機器情報及び使用可能コンテンツ情報に基づいて、取得した全てのコンテンツのそれぞれについて、再生可能機器を判定する(ステップS1302)。
具体的には、再生可能機器判定部50は、コンテンツ毎に、使用可能機器情報に含まれるIoT機器2の機器機能(音声再生、映像再生等)と、当該コンテンツの使用可能コンテンツ情報に含まれるコンテンツ種類(音声、映像等)とを比較し、IoT機器2が当該コンテンツを再生可能であるかを判断する。そして、再生可能機器判定部50は、使用可能機器情報に含まれる全ての機器IDのIoT機器2から、当該コンテンツについての再生可能機器を判定し、再生可能機器情報を生成する。
例えば、使用可能機器情報が、IoT機器2−1の機器機能「音声再生」、IoT機器2−2の機器機能「映像再生」、IoT機器2−3の機器機能「テキスト再生」、IoT機器2−4の機器機能「映像再生」のデータを含み、使用可能コンテンツ情報が、コンテンツAのコンテンツ種類「映像」のデータを含むとする。そうすると、再生可能機器判定部50は、コンテンツAについて、使用可能機器情報に含まれるこれらの機器機能と、使用可能コンテンツ情報に含まれるコンテンツAのコンテンツ種類とを比較する。再生可能機器判定部50は、IoT機器2−2,2−4の機器機能「映像再生」とコンテンツAのコンテンツ種類「映像」とが対応するとして、IoT機器2−2,2−4がコンテンツAを再生可能であると判断し、再生可能機器情報を生成する。
また、再生可能機器判定部50は、使用可能コンテンツ情報に、当該端末装置1のみがコンテンツを再生することを示すデータが含まれる場合(例えば、再生可能な機器として当該端末装置1が設定されている場合)、端末装置1が当該コンテンツを再生可能であると判断し、再生可能機器情報を生成する。
ユーザが、実際に再生する所望のコンテンツを選択すると、再生可能機器判定部50は、当該コンテンツの再生可能機器情報を再生機器決定部51に出力する。再生可能機器情報には、当該コンテンツを再生可能な全てのIoT機器2等に関する情報が含まれる。
再生機器決定部51は、再生可能機器判定部50から再生可能機器情報を入力し、実際に使用する再生機器を決定する手段がユーザの操作選択によるのか、またはアルゴリズムに基づいた自動選択によるのかを判定する(ステップS1303)。
再生機器決定部51は、ステップS1303において、決定手段がユーザの操作選択によると判定した場合(ステップS1303:ユーザ)、再生可能機器情報を含む選択指示をユーザ選択部52に出力する。そして、再生機器決定部51は、ユーザ選択部52からユーザによる選択結果を入力し、選択結果の機器を再生機器として決定する(ステップS1304)。この場合、ユーザ選択部52は、再生機器決定部51から選択指示を入力すると、再生可能機器情報の示す機器を含む機器選択画面の提示及び音声によるアナウンス等により、ユーザの選択を促し、ユーザが選択した機器を含む選択結果を再生機器決定部51に出力する。
一方、再生機器決定部51は、ステップS1303において、決定手段がアルゴリズムに基づいた自動選択によると判定した場合(ステップS1303:アルゴリズム)、再生可能機器情報を含む選択指示を機器選択部53に出力する。そして、再生機器決定部51は、機器選択部53からアルゴリズムによる選択結果を入力し、選択結果の機器を再生機器として決定する(ステップS1305)。この場合、機器選択部53は、再生機器決定部51から選択指示を入力すると、予め設定されたアルゴリズムにより、再生可能機器情報の示す機器の中から所望の機器を自動的に選択し、アルゴリズムが選択した機器を含む選択結果を再生機器決定部51に出力する。
再生機器決定部51は、決定した機器に関する情報を再生機器情報として生成し、再生機器情報をコンテンツ処理部27のコンテンツ解釈部40に出力する。
コンテンツ解釈部40のWebブラウザ42は、再生機器決定部51から再生機器情報を入力する。Webブラウザ42は、既にコンテンツ取得部22から入力済みの、ユーザにより選択されたコンテンツ(または、コンテンツ記憶部23から読み出した、ユーザにより選択されたコンテンツ)について、コンテンツ本文の解釈を行い実行する。そして、Webブラウザ42は、コンテンツ本文の解釈及び実行に伴い、コンテンツ本文中にIoT機器2に対する制御が記述されている場合、当該制御に関する制御メッセージを、再生機器情報に含まれる再生機器へ送信する(ステップS1306)。
再生機器情報に含まれる再生機器が当該端末装置1である場合、Webブラウザ42は、制御メッセージをWoT処理部であるWebサーバ部60に出力する。Webサーバ部60は、Webブラウザ42から制御メッセージを入力し、制御メッセージに従った処理を行う。これにより、当該端末装置1にてコンテンツが再生される。
また、再生機器が当該端末装置1以外のWoT機器(WoTのIoT機器2)である場合、Webブラウザ42は、制御メッセージをそのIoT機器2のWebサーバへ送信する。IoT機器2は、Webブラウザ42から制御メッセージを受信し、制御メッセージに従って動作し、制御メッセージの示す再生を行ったり、必要なコンテンツをコンテンツサーバ4からダウンロードして再生したりする。これにより、WoTのIoT機器2にて、コンテンツに関する再生処理が行われる。
また、再生機器が非WoT機器(非WoTのIoT機器2)である場合、Webブラウザ42は、制御メッセージを、IPアドレス等のコンテンツ本文中に記述された情報に従ってIoT機器2へ送信する。ここで、制御メッセージは、再生機器が非WoT機器である場合、コンテンツ本文に送信先を特定する手段が記述されていることを前提として送信される。IoT機器2は、Webブラウザ42から制御メッセージを受信し、制御メッセージに従って動作し、制御メッセージの示す再生を行ったり、必要なコンテンツをコンテンツサーバ4からダウンロードして再生したりする。これにより、非WoTのIoT機器2にて、コンテンツに関する再生処理が行われる。
尚、Webブラウザ42が、IoT機器2との間の通信に失敗する等して、制御メッセージをIoT機器2へ送信できないと判定した場合、コンテンツ解釈部40は、機器決定部26の再生可能機器判定部50に、再生可能機器の再度の判定を依頼するか、または、これを無視してコンテンツ本体の実行を継続する。
このように、機器決定部26により、取得した全てのコンテンツのそれぞれについて、実際に再生が行われる再生機器が決定され、コンテンツ処理部27により、当該再生機器にてコンテンツの再生が行われる。
例えば、IoT機器2−2のテレビが所定の映像コンテンツを再生している場合、機器決定部26により、その映像コンテンツに関連するコンテンツ(関連コンテンツ)について、実際に再生が行われるIoT機器2−1,2−3であるスマートスピーカ及びスマートミラーの再生機器が決定される。そして、コンテンツ処理部27により、コンテンツ本体の記述に従い制御メッセージが、IoT機器2−1,2−3へ送信される。
つまり、コンテンツ処理部27は、IoT機器2−2のテレビが所定の映像コンテンツを再生している状態で、関連コンテンツに従った再生処理として、IoT機器2−1のスマートスピーカにて音声コンテンツを再生させ、IoT機器2−3のスマートミラーにてテキストコンテンツを再生させる。これにより、IoT機器2−1のスマートスピーカにて映像に対応した音声が出力され、IoT機器2−3のスマートミラーにて映像に対応したテキストが表示される。
以上のように、本発明の実施形態の端末装置1によれば、TD取得部20は、接続可能なIoT機器2を探索し、接続可能な全てのIoT機器2のTDを取得する。そして、TD取得部20は、TDから機器機能等を抽出し、接続可能な全てのIoT機器2の機器機能等を含む使用可能機器情報を生成する。
CD取得部24は、コンテンツ取得部22が取得した全てのコンテンツについて、それぞれのCDを取得し、CDからコンテンツ種類等を抽出し、取得した全てのコンテンツのコンテンツ種類等を含む使用可能コンテンツ情報を生成する。
機器決定部26は、使用可能機器情報と使用可能コンテンツ情報とを比較する。そして、機器決定部26は、取得した全てのコンテンツのそれぞれについて、当該コンテンツを再生可能なIoT機器2を判定する。
ユーザが、実際に再生する所望のコンテンツを選択すると、機器決定部26は、当該コンテンツを再生可能なIoT機器2のうち、実際に再生を行う所望のIoT機器2を、ユーザによる選択操作または所定のアルゴリズムに従い決定する。
コンテンツ処理部27は、ユーザにより選択されたコンテンツを実行し、コンテンツ本体の記述に従い、制御メッセージを、機器決定部26により決定されたIoT機器2へ送信する。
これにより、IoT機器2は、制御メッセージに従って動作し、必要なコンテンツをコンテンツサーバ4からダウンロードする等して再生を行う。つまり、コンテンツ処理部27は、ユーザにより選択されたコンテンツを当該端末装置1にて再生すると共に、機器決定部26により決定されたIoT機器2に対し、ユーザにより選択されたコンテンツに関する再生処理を行わせることができる。
したがって、端末装置1により、1つのコンテンツに対し1以上のIoT機器2を、簡易な仕組みにて関連付けることができる。その結果、簡易な仕組みにて、ユーザが所望する様々なコンテンツを、ユーザが所望する様々なIoT機器2にて再生させることが可能となる。
また、CD及びTDを用いて、コンテンツにIoT機器2を関連付けるソフトウェアをアプリとして提供することにより、様々なコンテンツを、その種類に依存することなく、統一されたアプリの記述にて扱うことが可能となる。
〔マッチングアプリの記述例〕
次に、図3に示した制御部10の構成の下で図4に示した処理例を実現するマッチングアプリの記述例について説明する。図14は、マッチングアプリの記述例を説明する図であり、図4に示した処理例のうち主要な処理のみを示している。
コンテンツAのCDは、コンテンツ種類「音声」のデータを含み、コンテンツBのCDは、コンテンツ種類「映像」のデータを含み、IoT機器2−1のTDは、機器種類「音声再生」を含んでいるものとする。つまり、コンテンツAは音声コンテンツであり、コンテンツBは映像コンテンツであり、IoT機器2−1はスマートスピーカであるものとする。
マッチングアプリの(a)の記述により、TD取得部20は、接続可能なIoT機器2を探索することで、接続可能な機器がIoT機器2−1のスマートスピーカのみであると判断し、IoT機器2−1のTDを取得する。
マッチングアプリの(b)の記述により、CD取得部24は、コンテンツA,BのCDを取得する。また、機器決定部26は、IoT機器2−1のTDに含まれる機器種類「音声再生」に基づいて、当該IoT機器2−1が「音声」の種類のコンテンツを再生する機能を有することを判断する。さらに、機器決定部26は、コンテンツA,BのCDに含まれるコンテンツ種類「音声」「映像」に基づいて、当該コンテンツA,Bがそれぞれ音声コンテンツ及び映像コンテンツであることを判断する。
そして、機器決定部26は、コンテンツAを再生可能な機器がIoT機器2−1であると判定し、コンテンツBを再生可能な機器が存在しないと判定する。
マッチングアプリの(c)の記述により、コンテンツ処理部27は、例えばユーザにより選択されたコンテンツAに関する再生処理を、IoT機器2−1にて行わせる。
このように、マッチングアプリを用いることで、所望のコンテンツを、接続可能なIoT機器2にて再生させることができる。つまり、本発明によれば、映像、音声、テキスト、制御プログラム、クーポン等の様々なコンテンツを、その種類に依存することなく、統一されたマッチングアプリの記述で扱うことができ、様々なIoT機器にて簡易な仕組みで再生させることが可能となる。
尚、本発明の実施形態による端末装置1のハードウェア構成としては、通常のコンピュータを使用することができる。端末装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインタフェース等を備えたコンピュータによって構成される。
端末装置1に備えたTD取得部20、TD記憶部21、コンテンツ取得部22、コンテンツ記憶部23、CD取得部24、CD記憶部25、機器決定部26及びコンテンツ処理部27の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。