【文献】
藤沢 寛,テレビ放送の進化,映像情報メディア学会誌,日本,一般社団法人映像情報メディア学会,2013年 5月 1日,第67巻,第5号,pp.5-10
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の分散コンピューティングシステムは、専用のアプリケーションをインストールする必要があり、敷居の高いものであった。また、種々の事情により、クライアント側のタスク処理の開始や、中断、終了の制御は通信によるものであり、多数のタスク処理を行うクライアントを一斉に制御する技術はなかった。
【0004】
一方、近年のテレビ受信機は、単にテレビを受信するだけの機能だけではなく、データを処理する処理性能が高くなっており、これらのテレビ受信機を分散コンピューティングのクライアントとして活用することは、大きなジョブを解決することができる可能性を秘めている。しかし、テレビ受信機を単に情報処理装置として使用するだけでは、放送番組との関係から好ましくない場合がある。
【0005】
そこで、本発明は上記課題に鑑みて発明されたものであって、分散コンピューティングのクライアントとしてテレビ受信機を活用することができ、放送によるタスク処理の開始や、中断、終了を制御することができる分散コンピューティングシステム、放送局、サーバ及び分散コンピューティング方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明の一態様は、放送を用いた分散コンピューティングシステムであって、放送局と、テレビ受信機と、サーバと、データベースとを有し、前記データベースには、所定のジョブを分割して処理するためのタスクプログラムと、前記タスクプログラムが処理するタスク処理データと、前記タスクプログラムを識別するタスク識別情報とが関連付けられて記憶されており、前記放送局は、放送により、前記タスクプログラムの取得を指示する指示情報を放送する放送手段を有し、前記テレビ受信機は、放送波から、前記指示情報を受信する受信手段と、前記指示情報に基づいて、前記タスクプログラムの取得要求を送信する要求手段と、前記タスクプログラム、前記タスク処理データ及び前記タスク識別情報を受信し、前記タスクプログラムにより前記タスク処理データを処理する処理手段と、前記処理手段の処理結果及び前記タスク識別情報を、前記サーバに送信する送信手段とを有し、前記サーバは、前記タスクプログラムの取得要求を受信し、所定のタスクプログラムを前記データベースから選択し、前記選択したタスクプログラムと、前記選択したタスクプログラムのタスク処理データ及びタスク識別情報とを、前記テレビ受信機に送信するタスクプログラム送信手段と、前記テレビ受信機から、処理結果及び前記タスク識別情報を受信し、前記処理結果を前記タスク識別情報に関連付けて前記データベースに格納し、前記データベース内の処理結果を集計し、ジョブの結果を算出する集計手段とを有する分散コンピューティングシステムである。
【0007】
本発明の一態様は、放送を用いた分散コンピューティングシステムにおける放送局であって、ジョブを分割したタスクを処理するタスクプログラムによりデータを処理するテレビ受信機に対して、放送により、タスク処理のためのタスクプログラムの取得を指示する指示情報を放送する放送手段を有する放送局である。
【0008】
本発明の一態様は、放送を用いた分散コンピューティングシステムのサーバであって、所定のジョブを分割して処理するためのタスクプログラムの取得を指示する指示情報を放送波により受信したテレビ受信機から、前記タスクプログラムの取得要求を受信し、前記タスクプログラムと、前記タスクプログラムが処理するタスク処理データと、前記タスクプログラムを識別するタスク識別情報とが関連付けられて記憶されているデータベースから、所定のタスクプログラムを選択し、前記選択したタスクプログラムと、前記選択したタスクプログラムのタスク処理データ及びタスク識別情報とを、前記テレビ受信機に送信するタスクプログラム送信手段と、前記テレビ受信機から、処理結果及び前記タスク識別情報を受信し、前記処理結果を前記タスク識別情報に関連付けて前記データベースに格納し、前記データベース内の処理結果を集計し、ジョブの結果を算出する集計手段とを有するサーバである。
【0009】
本発明の一態様は、放送を用いた分散コンピューティングの方法であって、所定のジョブを分割して処理するためのタスクプログラムと、前記タスクプログラムが処理するタスク処理データと、前記タスクプログラムを識別するタスク識別情報とが関連付けられて記憶されるデータベースを用い、放送局は、放送により、前記タスクプログラムの取得を指示する指示情報を放送し、テレビ受信機は、放送波から、前記指示情報を受信し、前記テレビ受信機は、前記指示情報に基づいて、前記タスクプログラムの取得要求を送信し、サーバは、前記タスクプログラムの取得要求を受信し、所定のタスクプログラムを前記データベースから選択し、前記選択したタスクプログラムと、前記選択したタスクプログラムのタスク処理データ及びタスク識別情報とを、前記テレビ受信機に送信し、前記テレビ受信機は、前記タスクプログラム、前記タスク処理データ及び前記タスク識別情報を受信し、前記タスクプログラムにより前記タスク処理データを処理し、前記テレビ受信機は、前記処理手段の処理結果及び前記タスク識別情報を、前記サーバに送信し、前記サーバは、前記テレビ受信機から、処理結果及び前記タスク識別情報を受信し、前記処理結果を前記タスク識別情報に関連付けて前記データベースに格納し、前記データベース内の処理結果を集計し、ジョブの結果を算出する分散コンピューティング方法である。
【0010】
本発明の一態様は、放送を用いた分散コンピューティングシステムであって、所定のジョブを分割して処理するためのタスクプログラムと、前記タスクプログラムが処理するタスク処理データと、前記タスクプログラムを識別するタスク識別情報とが関連付けられて記憶されているデータベースと、放送により、前記タスクプログラムの取得を指示する指示情報を放送する放送手段と、放送波から、前記指示情報を受信する受信手段と、前記指示情報に基づいて、前記タスクプログラムの取得要求を送信する要求手段と、前記タスクプログラムの取得要求を受信し、所定のタスクプログラムを前記データベースから選択し、前記選択したタスクプログラムと、前記選択したタスクプログラムのタスク処理データ及びタスク識別情報とを、前記テレビ受信機に送信するタスクプログラム送信手段と、前記タスクプログラム、前記タスク処理データ及び前記タスク識別情報を受信し、前記タスクプログラムにより前記タスク処理データを処理する処理手段と、前記処理手段の処理結果及び前記タスク識別情報を送信する送信手段と、前記処理結果及び前記タスク識別情報を受信し、前記処理結果を前記タスク識別情報に関連付けて前記データベースに格納し、前記データベース内の処理結果を集計し、ジョブの結果を算出する集計手段とを有する分散コンピューティングシステムである。
【発明の効果】
【0011】
本発明は、分散コンピューティングのクライアントとしてテレビ受信機を活用することができ、放送によるタスク処理の開始や、中断、終了を制御することができる。
【発明を実施するための形態】
【0013】
<本発明の第1の実施の形態>
本発明の第1の実施の形態に係る分散コンピューティングシステムを説明する。
図1は、本発明の第1の実施の形態に係る分散コンピューティングシステムの概略ブロック図である。
【0014】
第1の実施の形態に係る分散コンピューティングシステムは、所定のジョブを分割して処理するためのタスクプログラムと、タスクプログラムが処理するタスク処理データと、タスクプログラムを識別するタスク識別情報とが関連付けられて記憶されているデータベース1と、放送により、タスクプログラムの取得を指示する指示情報を放送する放送部2と、放送波から、指示情報を受信する受信部3と、指示情報に基づいて、タスクプログラムの取得要求を送信する要求部4と、タスクプログラムの取得要求を受信し、所定のタスクプログラムをデータベース1から選択し、選択したタスクプログラムと、選択したタスクプログラムのタスク処理データ及びタスク識別情報とを送信するタスクプログラム送信部5と、タスクプログラム、タスク処理データ及びタスク識別情報を受信し、タスクプログラムによりタスク処理データを処理する処理部6と、処理部6の処理結果及びタスク識別情報を送信する送信部7と、処理結果及びタスク識別情報を受信し、処理結果をタスク識別情報に関連付けてデータベース1に格納し、データベース内の処理結果を集計し、ジョブの結果を算出する集計部8とを有する分散コンピューティングシステムである。
【0015】
分散コンピューティングシステムは、ある大きな課題(ジョブ)を複数の課題(タスク)に分割し、分割した複数のタスクを複数のクライアントに処理させ、その結果をサーバが集計してひとつのジョブの結果を導き出すものである。
【0016】
本実施の形態では、受信部3と、要求部4と、処理部6と、送信部7とがクライアントに相当し、本例ではタスクを処理するそのクライアントがテレビ受信機Aである場合を説明する。
【0017】
また、本実施の形態では、タスクプログラム送信部5と集計部8とが、処理結果を集計してひとつのジョブの結果を導き出すサーバBに相当する。
【0018】
また、本実施の形態では、放送部2は放送局Cに設けられる。
【0019】
そして、第1の実施の形態に係る分散コンピューティングシステムは、分散コンピューティングシステムの処理の起点が放送から開始され、放送局が、クライアント、すなわちテレビ受信機Aが行うタスク処理の開始、中断若しくは中止又は処理結果の送信を制御する例を説明する。
【0021】
データベース1は、処理済フラグのフィールドと、タスク識別情報(タスクID)のフィールドと、タスクのスクリプトパス(タスク処理プログラムのパス)のフィールドと、タスク処理のデータのフィールドと、タスク処理の処理結果のフィールドとが関連付けられて記憶されている。データベース1の一例を、
図2に示す。
図2の例では、例えば、処理済フラグ”済”と、タスク識別情報(タスクID)” 00001”と、タスクのスクリプトパス” http://example.com/process1.js”と、タスク処理のデータ” {a:xxx,b:xxx}”と、タスク処理結果” 110101”とが関連付けられて記憶されている。
【0022】
尚、ジョブをタスクに分割する方法は、ジョブによって異なる。例えば、「特徴抽出」のような処理を行うジョブであれば(大量の入力データを決められた手順で裁くような処理)、入力データとなるデータセットを細かく分割し、各受信機に処理させる。また、機械学習による識別モデルの構築を分散処理させる(一つのマシンでは処理時間が非現実的な値となるような)際には、モデル自体を分割して各受信機に割り振り、各受信機が互いにコミュニケーションをとりながら処理を進めていくことになる。
【0023】
放送局Cは放送部2を有している。放送部2は、ジョブを分割したタスクを処理するためのタスクプログラムの取得を指示する指示情報を放送する。この指示情報は、例えば、データ放送やハイブリットキャストにより、タスクスクリプトを要求するスクリプトが記載されたBML等により、実現される。また、指示情報は、1回でも複数回でも良く、放送により1回受信した後は、通信から指示情報を送信するようにしても良い。また、指示情報は、1種類に限らず、複数のジョブを識別するジョブ識別情報を付して送信しても良い。
【0024】
更に、放送部2は、テレビ受信機Aによるタスク処理の開始や停止、中止などの制御情報を、データ放送によるイベントメッセージやモジュールの放送も行う。これらのイベントメッセージやモジュールは、番組枠の切り替わり等のタイミンクで、タスク処理を開始させたい場合や停止又は終了させたい場合等に放送される。尚、これらのタスク処理の開始や停止、中止などの制御の種別は、例えば、イベントメッセージのプライベート領域に記載することができる。
【0025】
テレビ受信機Aは、受信部3と、要求部4と、処理部6と、送信部7とを有する。
【0026】
受信部3は、テレビチューナや、データ放送のブラウザ、イーサネット(登録商標)等の機能を有し、テレビ放送から指示情報を受信する。
【0027】
要求部4は、イーサネット(登録商標)等の機能を有し、通信を介して、サーバBに、タスクプログラムの取得要求を送信する。
【0028】
処理部6は、タスクプログラム、タスクプログラムにより処理するタスク処理データ及びタスクプログラムを識別するタスク識別情報を受信し、タスクプログラムによりタスク処理データを処理する。処理部6は、データ放送やハイブリットキャスト等により実現される。
【0029】
送信部7は、イーサネット(登録商標)等の機能を有し、処理部6のタスク処理データの処理結果を、そのタスクタスク識別情報と共に、サーバBに送信する。
【0030】
サーバBは、タスクプログラム送信部5と集計部8とを有する。
【0031】
タスクプログラム送信部5は、テレビ受信機Aからのタスクプログラムの取得要求を受信し、処理フラグが”済”となっていないタスクプログラムを、データベース1から選択し、選択したタスクプログラムと、選択したタスクプログラムのタスク処理データ及びタスク識別情報とを、テレビ受信機Aに送信する。
【0032】
集計部8は、テレビ受信機Aから、タスク処理の処理結果及びタスク識別情報を受信し、処理結果をタスク識別情報に関連付けてデータベース1に格納する。また、データベース1のタスク処理の処理結果を集計し、ジョブの結果を算出する。
【0033】
次に、上述の構成における第1の実施の形態における動作を説明する。
【0034】
尚、以下の説明では、所定のプロジェクトのジョブXを分割したタスクを、複数のテレビ受信機Aが処理し、ジョブXの結果をサーバBが算出する例を説明する。そして、ユーザは、そのプロジェクトに参加する意思表明を行い、又は、特別な意思表明を行わずに番組を視聴する等により自動的にプロジェクトに参加するものとする。
【0035】
まず、放送局Cは放送部2により、ジョブXを分割したタスクを処理するためのタスクプログラムの取得を指示する指示情報を放送する。
図3は、放送部2より、放送される指示情報(管理プログラム)の一例である。
図3に示される一例では、データ放送によるイベントメッセージによるタスク処理の開始や停止、タスクプログラム、タスクプログラムにより処理するタスク処理データ、タスク処理の結果の送信に関するスクリプトが記載されている。
【0036】
テレビ受信機Aの受信部3は、ユーザがプロジェクトに関連する番組を視聴することにより、その番組内で放送されている指示情報を受信する。受信部3が指示情報を受信すると、要求部4は、データ放送あるいはハイブリッドキャストブラウザを起動し、サーバBに、タスクプログラムの取得要求を行う。
【0037】
タスクプログラム送信部5は、テレビ受信機Aからのタスクプログラムの取得要求を受信し、処理済フラグが”済”となっていないタスクプログラムを、データベース1から選択し、選択したタスクプログラムと、選択したタスクプログラムのタスク処理データ及びタスク識別情報(タスクID)とを、テレビ受信機Aに送信する。
図4は、テレビ受信機AとサーバBとのデータ送受信の動作を説明するための図である。
図4において、データベース1のタスクID”00001”とタスクID”00002”には、処理済フラグが”済”となっているので、タスクプログラム送信部5は、タスクID”00003”、タスクID”00003”のスクリプトパス及びタスク処理データをテレビ受信機Aに送信する。
【0038】
テレビ受信機Aの処理部6は、タスクプログラム、タスクプログラムにより処理するタスク処理データ及びタスクプログラムを識別するタスク識別情報を受信し、タスクプログラムによりタスク処理データを処理する。
【0039】
テレビ受信機Aの送信部7は、処理部6のタスク処理データの処理結果を、そのタスク識別情報と共に、サーバBに送信する。
【0040】
ここで、テレビ受信機Aの受信部3、要求部4、処理部6及び送信部7の動作を説明する。
図5は、テレビ受信機Aの動作を示すフローチャートである。
【0041】
まず、受信部3は、BMLを受信すると(Step100)、ハイブリットキャストを起動する。そして、要求部4は、サーバBに処理するタスクを要求する(Step101)。
【0042】
処理するタスクがある場合、すなわち、タスクプログラム、タスクプログラムにより処理するタスク処理データ及びタスクプログラムを識別するタスク識別情報を受信した場合、処理部6はWorker(サブスレッドにて処理を行わせるためのオブジェクト)を生成し(Step102)、Step103に進む。一方、サーバBに処理するタスクを要求しない場合(Step101)、Workerの有無を判断する(Step103)。
【0043】
Workerが無い場合(Step103)、イベントメッセージの受信を待機する(Step109)。
【0044】
Workerが有る場合(Step103)、処理部6はタスクプログラムによるデータの処理を開始する(Step104)。
【0045】
処理部6がWorkerにて処理を行っている最中に、受信部3が新タスクの発生、タスク処理の中断や終了を指示するイベントメッセージを受信した場合(Step105)、Workerを破棄して待機状態に遷移する(Step106)。
【0046】
受信部3が新タスクの発生、タスク処理の中断や終了を指示するイベントメッセージを受信せず(Step105)、処理部6がWorkerの処理が完了した場合、タスクの処理結果及びタスクIDをサーバBに送信する(Step107)。そして、Workerを破棄して待機状態に遷移する(Step108)。
【0047】
このようにして、テレビ受信機Aは、タスク処理を行う。
【0048】
サーバBの集計部8は、テレビ受信機Aから、タスク処理の処理結果及びタスクIDを受信すると、そのタスクIDに対応する処理結果のフィールドに受信した処理結果を書き込み、そのタスクIDに対応する処理済フラグのフィールドに”済”のフラグを書き込む。例えば、
図4の例では、テレビ受信機Aから、タスクID”00003”と、その処理結果とを受信し、タスクID”00003”に対応する処理結果のフィールドに受信した処理結果を書き込み、タスクID”00003”に対応する処理済フラグのフィールドに”済”のフラグを書き込んでいる。なお、処理結果の信頼性を向上させるため、複数のテレビ受信機に同一タスクを実行させ、結果の比較、照合を行った上で、処理済フラグのフィールドに“済”フラグを書きこむ場合も考えられる。結果の受け取り後、未処理タスクが残っている場合、タスクプログラム送信部5は受信機に対してタスク要求をするように指示を送る。
【0049】
そして、サーバBの集計部8は、データベース1の処理済フラグのフィールドに全て”済”のフラグが立った場合、処理結果のデータを集計してジョブの結果を算出する。
【0050】
このように構成された第1の実施の形態によれば、テレビ受信機をクライアントとして分散コンビューデングを行うことができるとともに、放送によりタスク処理の開始や、停止、終了の制御を行うことができる。
【0051】
<本発明の第2の実施の形態>
本発明の第2の実施の形態は、第1の実施の形態に加え、サーバでの処理状況や、各テレビ受信機におけるタスク処理の状況を監視する監視部9をサーバに設けたことを特徴とする。
【0052】
図6は、本発明の第2の実施の形態に係る分散コンピューティングシステムの概略ブロック図である。
【0053】
監視部9は、サーバBのタスクプログラム送信部5及び集計部8と、データベース1とを監視し、サーバの負荷状況を監視する。サーバCが処理の負荷が大きいと判断した場合や(例えば、集中的なアクセスや、ジョブの算出に要する負荷の増大等)、通信障害等の場合、放送部2に各テレビ受信機からのタスクプログラムの取得要求や、タスクの処理、タスクの処理結果の送信の中断、中止を要求する。
【0054】
放送部2は、これらの要求を受けて、イベントメッセージやモジュールにより、タスクプログラムの取得要求や、タスクの処理、タスクの処理結果の中断、中止を制御する制御情報を放送する。
【0055】
テレビ受信機Aの受信部3が、制御情報のイベントメッセージやモジュールを受信した場合、テレビ受信機Aの要求部4、処理部6及び送信部7は、スクプログラムの取得要求や、タスクの処理、タスクの処理結果の中断、中止を行う。
【0056】
一方、監視部9は、サーバBのタスクプログラム送信部5及び集計部8と、データベース1とを監視し、サーバの負荷状況を監視する。サーバCの負荷が軽減したと判断した場合や(例えば、集中的なアクセスの解消や、ジョブの算出の終了等)、通信障害の解消等の場合、放送部2に各テレビ受信機からのタスクプログラムの取得要求や、タスクの処理、タスクの処理結果の送信の開始を要求する。
【0057】
放送部2は、これらの要求を受けて、イベントメッセージやモジュールにより、タスクプログラムの取得要求や、タスクの処理、タスクの処理結果の送信の開始する制御情報を放送する。
【0058】
テレビ受信機Aの受信部3が、制御情報が記載されたイベントメッセージやモジュールを受信した場合、テレビ受信機Aの要求部4、処理部6及び送信部7は、スクプログラムの取得要求や、タスクの処理、タスクの処理結果の送信を開始する。
【0059】
このように構成することにより、サーバの状況に応じて、放送により、各クライアントとなるテレビ受信機の処理を制御することができる。
【0060】
更に、監視部9は、各テレビ受信機におけるタスク処理の状況を監視することも可能である。この場合、テレビ受信機Aの要求部4がタスクプログラムの要求する際、自テレビ受信機Aのデバイス識別番号も送信する。そして、サーバBのタスクプログラム送信部5は、タスクプログラムを、そのデバイス識別番号のテレビ受信機Aに送信する際、データベース1の送信するタスクプログラムに関連付けてそのデバイス識別番号も登録する。監視部9は、データベース1を監視することにより、一定時間、タスク処理の結果が送信されてこないテレビ受信機Aを判断することができ、そのテレビ受信機Aは何らかの事情、例えば、テレビ受信機の電源断や、チャンネルの変更等により、タスク処理ができない状態であり、そのタスクを、新たなテレビ受信機に割り当てることもできる。
【0061】
尚、上記は一例であり、監視部9がタスクプログラムを送信した送信時刻を監視し、その送信時刻から一定時間応答のない(処理結果が送信されてこない等)場合、そのタスクを、新たなテレビ受信機に割り当てるようにしても良い。
【0062】
第2の実施形態は、第1の実施の形態の効果に加え、サーバでの処理状況や、各テレビ受信機におけるタスク処理の状況に応じて、放送により、タスクスクプログラムの取得要求や、タスクの処理、タスクの処理結果の送信を、開始、中断又は停止の制御を行うことができる。
【0063】
更に、本発明の分散コンピューティングシステムによる一つのビジネスモデルとして、タスクの処理を行った視聴者に対して、貢献度(タスクの処理時間等)に応じてポイントを付与することが考えられる。
【0064】
例えば、
図7に示すように、テレビ視聴に際し、分散コンピューティングプロジェクトに参加する意思があるかを確認し、参加すれば、本発明の分散コンピューティングシステムを実行し、それに応じたポイントを付与するようにしても良い。
【0065】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。