(第1実施形態)
図1は、第1実施形態の通信システム100の一例を示す構成図である。通信システム100は、データ受信機器であるTV(Television:テレビジョン)110(通信装置の一例)と、データ送信機器であるNAS(Network Attached Storage)150(外部機器の一例)とを、備える。TV110とNAS150とは、ネットワーク102を介して接続されている。なお、TV及びNASの台数は、それぞれ2台以上であってもよい。
第1実施形態では、ネットワーク102が住居内のネットワークであるホームネットワーク(家庭内LAN(Local Area Network))である場合を例に取り説明する。但し、ネットワーク102はこれに限定されるものではなく、どのようなネットワークであってもよい。
第1実施形態では、TV110とNAS150とは、IPプロトコルにより通信可能であり、上位プロトコルとして例えばDLNA(Digital Living Network Alliance)により定められたプロトコルを使用するものとする。但し、プロトコルはこれに限定されるものではなく、どのようなプロトコルであってもよい。
第1実施形態では、NAS150は、電力状態として、電源ON状態(アクティブ状態の一例)、電源OFF状態、及びSleep状態(省電力状態の一例)の3状態を取り得るものとする。ここで、「電源ON状態」とは、各種機能を使用可能な状態であり、典型的には全ての回路に給電されている状態である。「電源OFF状態」とは、機器の有する機能が使用できない状態であり、典型的にはいずれの回路にも給電されていない状態である。つまり、電源OFF状態では、NAS150は、ネットワークからデータ(パケット)を受信できない。「Sleep状態」とは、ネットワークからデータ(パケット)を受信する機能を使用可能な状態であって電源ON状態よりも消費電力が少ない状態であり、典型的にはNIC(Network Interface Card)及び電源管理回路に給電されている状態である。Sleep状態では、NAS150は、TV110などの他の機器からのネットワークを介した要求により電源ON状態に移行可能である。
但し、NAS150の電力状態は上記3状態に限定されるものではなく、4つ以上の状態であってもよい。例えば、Sleep状態をDeepSleep状態とNapSleep状態とに分けるようにしてもよい。ここで、「DeepSleep状態」とは、上述したSleep状態よりも消費電力は少ないが電源ON状態への移行時間が長い状態である。「NapSleep状態」とは、上述したSleep状態よりも消費電力は多いが電源ON状態への移行時間が短い状態である。
なお第1実施形態では、TV110は、電力状態として、電源ON状態及び電源OFF状態の少なくとも2状態を取り得ればよいが、NAS150と同様の電力状態を取り得るようにしてもよい。
図2は、第1実施形態の通信システム100の典型的な動作の一例を示すシーケンス図である。図2に示す例では、通信システム100は、TV110の電力状態が電源OFF状態、NAS150の電力状態がSleep状態から動作を開始するものとする。
まず、TV110の電源スイッチ(図示省略)が例えばユーザ又はタイマにより電源ONされると(ステップS100)、TV110は、電力状態を電源OFF状態から電源ON状態へ移行する。
続いて、ユーザがコンテンツ選択画面の表示操作を行うと、TV110は、コンテンツ選択画面を表示する。コンテンツ選択画面は、コンテンツのタイトルのリストなどを表示する。そして、ユーザが視聴を希望するコンテンツをコンテンツ選択画面上で選択すると(ステップS102)、TV110は、選択されたコンテンツを保持するNAS150に電源ON状態への移行を要求する起動要求を送信する(ステップS104)。なお、起動要求の詳細については、後述する。
続いて、NAS150は、TV110から起動要求を受信すると、NAS150の電力状態をSleep状態から電源ON状態に移行し、TV110に電源ON状態に移行したことを示す起動通知を送信する(ステップS106)。なお、起動通知の詳細については、後述する。
続いて、TV110は、NAS150から起動通知を受信すると、ステップS102で選択されたコンテンツのデータを要求するデータ要求をNAS150に送信する(ステップS108)。データ要求では、要求するデータのサイズである要求サイズが設定される。なお、データ要求の詳細については、後述する。
続いて、NAS150は、TV110からデータ要求を受信すると、要求されたデータの送信を開始する(ステップS110)。
続いて、TV110は、NAS150から送信されるデータの受信を開始し、受信したデータをバッファに格納しつつ、バッファに格納済みのデータを処理してコンテンツを再生する。ここで、NAS150からTV110へのデータの転送速度(送信速度)は、TV110のデータ処理速度(コンテンツの再生レート)よりも速いものとする。そして、TV110は、要求サイズ分のデータの受信が完了した場合、又はバッファに格納済みのデータのデータ量がB_sleep(第1閾値の一例)を上回った場合、NAS150にSleep状態への移行を要求するGoSleep要求を送信する(ステップS112)。なお、GoSleep要求の詳細については、後述する。
続いて、NAS150は、TV110からGoSleep要求を受信すると、NAS150の電力状態を電源ON状態からSleep状態に移行する。なお、NAS150は、TV110へデータ送信中にGoSleep要求を受信した場合には、データの送信を中止する。
TV110は、NAS150からTV110へのデータ転送(データ送信)が中止された以降も、コンテンツの再生(バッファに格納済みのデータの処理)を継続している。そして、TV110は、バッファに格納済みのデータのデータ量がB_min(第2閾値の一例)を下回ると、NAS150に再び起動要求を送信する(ステップS114)。なお、B_minは、B_sleepよりも小さな値である。(ところで、早送り再生のような通常再生とは異なる再生をTV110が行った場合には、再生ポイント以降のデータをバッファに格納済みのデータ量とみなすことで、本実施の形態を適用することができる。)その後、通信システム100は、ステップS106〜S112の処理と同様の処理であるステップS116〜S122の処理を行う。但し、ステップS118では、TV110は、ステップS102で選択されたコンテンツのデータのうち未受信のデータ(受信済みのデータの続きのデータ)をNAS150に要求するものとする。
以降、通信システム100は、ステップS102で選択されたコンテンツの全データの受信をTV110が完了するまで、ステップS114〜S122の処理を繰り返す。
なお、TV110がコンテンツを再生している最中に、ユーザがコンテンツの再生中止操作を行った場合、TV110は、これ以降、NAS150からデータを受信しない。つまり、TV110は、NAS150からデータ受信中であれば、バッファに格納済みのデータのデータ量に関わらず、NAS150にGoSleep要求を送信する。また、TV110は、NAS150からデータ受信中でなければ、バッファに格納済みのデータのデータ量に関わらず、NAS150に起動要求を送信しない。
また、TV110の電源スイッチが例えばユーザ又はタイマにより電源OFFされると、TV110は、電力状態を電源ON状態から電源OFF状態へ移行する。この場合も、TV110は、NAS150からデータ受信中であれば、バッファに格納済みのデータのデータ量に関わらず、NAS150にGoSleep要求を送信する。
図3は、第1実施形態のTV110の一例を示す構成図である。図3に示すように、TV110は、通信部112と、コンテンツ情報記憶部114と、起動識別子記憶部116と、取得部118と、入出力部120と、リモート制御部122と、データ受信制御部124と、バッファ126と、処理部128と、リモート管理部130とを、備える。
通信部112は、ネットワーク102を介して、NAS150などの外部機器と通信するものであり、例えば、NICなどの既存の通信装置により実現できる。第1実施形態では、通信部112は、起動要求の送信、データ要求の送信、GoSleep要求の送信、起動通知の受信、及びデータの受信などを行う。詳細には、通信部112は、これらの送受信を行うために、イーサネット(登録商標)物理層、MAC層、IP層、及びトランスポート層(TCP/UDP層を含む)の処理を行う。例えば、通信部112は、トランスポート層の処理としてHTTP(HyperText Transfer Protocol)処理などを行う。
コンテンツ情報記憶部114は、NAS150などのコンテンツ保持元の機器で保持されているコンテンツのコンテンツ情報を記憶する。なお、コンテンツ情報記憶部114は、コンテンツ毎にコンテンツ情報を記憶する。コンテンツ情報記憶部114は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、メモリカード、光ディスク、RAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な既存の記憶装置の少なくともいずれかにより実現できる。
第1実施形態では、コンテンツ情報は、コンテンツメタデータ、コンテンツアクセス識別子、コンテンツサイズ、及び機器識別子を含むものとするが、これに限定されるものではない。
コンテンツメタデータは、ユーザがコンテンツを選択する際に参照する情報であり、例えば、コンテンツのタイトル、コンテンツのアイコン、コンテンツのジャンル(例えば、映画、ドラマ、ロマンス、及びバイオレンスなど)、出演者(例えば、山田太郎など)、及びコンテンツの長さ(例えば、120分など)などの少なくともいずれかを含む。
コンテンツアクセス識別子は、コンテンツのデータ要求に用いられる情報であり、コンテンツにアクセスするための手段と識別子を表す。コンテンツアクセス識別子は、例えば、URL(Uniform Resource Locator)形式で、http://[host_ip]/contents/movie/AAA.wmvのように表わされる。ここで、[host_ip]は、NAS150などのコンテンツ保持元の機器のIPアドレスを記す部分である。これは、コンテンツ保持元の機器のIPアドレスが静的に設定されていない(動的に変更される)場合に対処するためである。コンテンツアクセス識別子の[host_ip]の部分は、後述のデータ受信制御部124によりコンテンツ保持元の機器の最新のIPアドレスに置き換えられる。
コンテンツサイズは、例えば、100MB(megabyte)のように、コンテンツのデータサイズを表す。
機器識別子は、NAS150などのコンテンツ保持元の機器をユニークに識別する識別子であり、例えば、UUID(Universally Unique Identifier)やFQDN(Fully Qualified Domain Name)を用いることができる。
なお第1実施形態では、コンテンツ情報記憶部114に記憶されているコンテンツ情報は、後述の取得部118により追加、削除、及び更新されるものとするが、取得部118を用いずに静的に追加、削除、及び更新するようにしてもよい。
起動識別子記憶部116は、起動識別子を記憶するものであり、コンテンツ情報記憶部114同様、既存の記憶装置の少なくともいずれかにより実現できる。なお、起動識別子記憶部116は、NAS150などのコンテンツ保持元の機器毎に、当該機器の機器識別子を対応付けて起動識別子を記憶する。
起動識別子は、コンテンツ保持元の機器の起動要求に用いられる情報であり、例えば、コンテンツ保持元の機器のイーサアドレス(MACアドレス)を用いることができる。但し、これに限定されるものではなく、電話番号のような各端末に割り当てられている他の識別子を、起動識別子として用いることもできる。
なお第1実施形態では、起動識別子記憶部116に記憶されている起動識別子は、後述の取得部118により追加及び削除されるものとするが、取得部118を用いずに静的に追加及び削除するようにしてもよい。
取得部118は、通信部112を介して、NAS150などのコンテンツ保持元の機器からコンテンツ情報を取得し、取得したコンテンツ情報をコンテンツ情報記憶部114に記憶する。同様に、取得部118は、通信部112を介して、NAS150などのコンテンツ保持元の機器から起動識別子を取得し、取得した起動識別子を起動識別子記憶部116に記憶する。
例えば、取得部118は、後述のリモート管理部130から、電力状態が電源ON状態である機器のIPアドレスのリストを取得し、取得したリストを参照して、これらの機器に対してコンテンツ情報を問い合わせる。コンテンツ情報の問い合わせには、問い合わせを要求しているコンテンツを限定するためのフィルタ情報を記すことができる。フィルタ情報には、例えば、コンテンツのタイトル、出演者名、ジャンル、又はデータサイズなどを使用できる。そして、取得部118は、問い合わせの結果、コンテンツ情報が削除されていれば当該コンテンツ情報をコンテンツ情報記憶部114から削除し、コンテンツ情報が更新されていれば当該コンテンツ情報を取得してコンテンツ情報記憶部114のコンテンツ情報を更新し、コンテンツ情報が追加されていれば当該コンテンツ情報を取得してコンテンツ情報記憶部114に追加する。なお、起動識別子についても同様である。
また、取得部118は、コンテンツ情報を問い合わせる場合、既にコンテンツ情報を問い合わせたことのある機器に対しては、2段階で問い合わせを行うようにしてもよい。具体的には、取得部118は、まず、問い合わせ先の機器が保持しているコンテンツに、前回の問い合わせ時点から変化があるか否かを問い合わせ、変化がある場合に、変化したコンテンツのコンテンツ情報を問い合わせ、取得する。このように、2段階で問い合わせを行うことにより、通信量を削減することができる。
なお、NAS150などのコンテンツ保持元の機器のコンテンツ情報及び起動識別子を他の機器に保持させておき、取得部118が当該他の機器からコンテンツ情報及び起動識別子を取得するようにしてもよい。
入出力部120は、ユーザインタフェースを実現する部分であり、第1実施形態では、ディスプレイ上での画面表示による情報出力、及びマウスポインタによる選択情報の情報入力の場合を例に取り説明する。但し、これに限定されるものではなく、ユーザインタフェースの機能を実現できれば、どのような方法であってもよい。例えば、音による情報入出力や圧力による情報入出力など様々な方法が適用可能である。
入出力部120は、コンテンツ情報記憶部114に記憶されているコンテンツ情報を用いて、コンテンツ選択画面を生成して表示する。図4は、第1実施形態のコンテンツ選択画面の一例を示す図である。図4に示すコンテンツ選択画面では、「AAA」、「BBB」、「CCC」、及び「DDD」の4つのコンテンツのタイトルが、それぞれコンテンツの内容を示すアイコンとともに表示されている。また入出力部120は、ユーザによりコンテンツ選択画面上で選択されたコンテンツのコンテンツ情報をコンテンツ情報記憶部114から後述のリモート管理部130に出力する。また入出力部120は、後述の処理部128により処理されたデータのコンテンツの映像出力及び音声出力を行う。
リモート制御部122は、通信部112を介して、NAS150などのコンテンツ保持元の機器の電力状態をリモート制御する。
リモート制御部122は、後述のリモート管理部130から、コンテンツ保持元の機器の電力状態を電源ON状態に移行する旨を受け付けると、通信部112を介して起動要求を送信する。具体的には、リモート制御部122は、リモート管理部130から機器識別子とともに当該機器識別子が示す機器の電力状態を電源ON状態に移行する旨を受け付ける。そして、リモート制御部122は、受け付けた機器識別子に対応付けられた起動識別子(第1実施形態では、MACアドレス)を起動識別子記憶部116から取得し、取得した起動識別子を用いて起動要求を生成し、生成した起動要求を通信部112からネットワーク102にブロードキャスト又はマルチキャストする。起動要求には、例えば、WOL(Wake On LAN)のマジックパケットを用いることができる。WOLは、機器の回路のうちNICなどの一部の回路を除き電源をOFFにしておき、マジックパケットと呼ばれる機器のMACアドレスに関連した特定のビットパターンを有するパケットを受信した際に、NICが機器の電源をONする技術である。
図5は、第1実施形態の起動要求のフォーマットの一例を示す図である。図5に示す例では、起動要求は、UDPデータグラムがIPパケット化されてイーサフレーム化されており、イーサヘッダと、IPヘッダと、UDPヘッダと、起動ビットパターンとを、含む。
イーサヘッダの宛先アドレスには、起動要求の送信先の機器(例えば、NAS150)のMACアドレス(例えば、00:23:18:D9:50:43)、あるいは01:00:5E:01:01:01のようなマルチキャストアドレス、又はFF:FF:FF:FF:FF:FFのようなブロードキャストアドレスが記される。
IPヘッダの宛先アドレスには、224.1.1.1のようなマルチキャストアドレス又は133.111.111.255のようなブロードキャストアドレスが記される。
IPヘッダのソースアドレスには、起動要求の送信元の機器(ここでは、TV110)のソースアドレス(IPアドレス)が記される。但し、起動要求の送信元の機器にIPアドレスが設定されていない場合には、0.0.0.0が記される。
起動ビットパターンには、起動要求の送信先の機器のMACアドレスから生成されるパターンが記され、例えば、FFFFFFFFFFFF(16進数表記)の後に、起動要求の送信先の機器のMACアドレスを16回繰り返したものが記される。
また、リモート制御部122は、コンテンツ保持元の機器から、通信部112を介して起動通知を受信する。
図6は、第1実施形態の起動通知のフォーマットの一例を示す図である。図6に示す例では、起動通知は、UDPデータグラムがIPパケット化されてイーサフレーム化されており、イーサヘッダと、IPヘッダと、UDPヘッダと、オペレーション識別子と、機器識別子とを、含む。
イーサヘッダの宛先アドレスには、起動通知の送信先の機器(ここでは、TV110)のMACアドレス、あるいは01:00:5E:01:01:01のようなマルチキャストアドレス、又はFF:FF:FF:FF:FF:FFのようなブロードキャストアドレスが記される。
IPヘッダの宛先アドレスには、224.1.1.1のようなマルチキャストアドレス又は133.111.111.255のようなブロードキャストアドレスが記される。
IPヘッダのソースアドレスには、起動通知の送信元の機器(例えば、NAS150)のソースアドレス(IPアドレス)が記される。但し、起動通知の送信元の機器にIPアドレスが設定されていない場合には、0.0.0.0が記される。
オペレーション識別子には、起動通知である旨が記される。
機器識別子には、起動通知の送信元の機器(例えば、NAS150)の機器識別子(例えば、UUIDやFQDN)が記される。
リモート制御部122は、起動通知を受信すると、受信した起動通知に含まれる機器識別子及びIPアドレスとともに当該機器識別子が示す機器の電力状態が電源ON状態に移行された旨をリモート管理部130に通知する。
またリモート制御部122は、リモート管理部130から、コンテンツ保持元の機器の電力状態をSleep状態に移行する旨を受け付けると、通信部112を介してGoSleep要求を送信する。具体的には、リモート制御部122は、リモート管理部130から機器識別子とともに当該機器識別子が示す機器の電力状態をSleep状態に移行する旨を受け付ける。そして、リモート制御部122は、受け付けた機器識別子を用いてGoSleep要求を生成し、生成したGoSleep要求を通信部112からネットワーク102にブロードキャスト又はマルチキャストする。
なお、GoSleep要求のフォーマットは、例えば、図6に示す起動通知のフォーマットを用いることができる。この場合、オペレーション識別子には、GoSleepである旨が記され、GoSleep要求の送信先の機器は、例えば、NAS150となり、GoSleep要求の送信元の機器は、ここではTV110となる。
データ受信制御部124は、通信部112を介して、NAS150などのコンテンツ保持元の機器からのコンテンツのデータの受信を制御する。
データ受信制御部124は、後述のリモート管理部130から、コンテンツ保持元の機器からのデータ受信を開始する旨を受け付けると、当該機器に対して通信部112を介してデータ要求を送信する。具体的には、データ受信制御部124は、リモート管理部130からデータ要求先の機器のIPアドレス及び受信対象のデータ(コンテンツ)のコンテンツ情報とともにデータ受信を開始する旨を受け付ける。そして、データ受信制御部124は、受け付けたIPアドレス及びコンテンツ情報を用いてデータ要求を生成し、生成したデータ要求を通信部112からデータ要求先の機器に送信する。
本実施形態では、データ要求は、IPアドレスが設定されたコンテンツアクセス識別子、データ転送速度の設定(Bulk)、並びに要求するデータの要求開始位置(Position)及び要求サイズ(Size)を含むものとするが、これに限定されるものではない。
例えば、データ要求先の機器のIPアドレスが133.111.111.111であり、受信対象のデータ(コンテンツ)のコンテンツ情報に含まれるコンテンツアクセス識別子が、http://[host_ip]/contents/movie/AAA.wmvであるとする。この場合、データ受信制御部124は、コンテンツアクセス識別子の[host_ip]の部分を、133.111.111.111に置き換えて、コンテンツアクセス識別子にIPアドレスを設定し、コンテンツアクセス識別子をhttp://133.111.111.111/contents/movie/AAA.wmvとする。このコンテンツアクセス識別子は、HTTPプロトコルを用いて、133.111.111.111のIPアドレスに対してGETメソッドによりパス(/contents/movie/AAA.wmv)をリクエストすることを示す。また例えば、データ受信制御部124は、データ要求先の機器に対して、通常の転送速度よりも速い高速転送でのデータ転送を希望する場合には、Bulk=ONを設定する。また例えば、データ受信制御部124は、コンテンツのデータの0MB目から10MB分のサイズを要求するのであれば、Position=0MB、Size=10MBを設定する。この場合、データ受信制御部124により生成されるデータ要求のHTTPメッセージは、GET /contents/movie/AAA.wmv?Bulk=ON&Position=0MB&Size=10MB HTTP/1.1となる。
また例えば、データ受信制御部124は、続きのデータを取得するために、コンテンツのデータの10MB目から10MB分のサイズを要求するのであれば、Position=10MB、Size=10MBを設定する。この場合、データ受信制御部124により生成されるデータ要求のHTTPメッセージは、GET /contents/movie/AAA.wmv?Bulk=ON&Position=10MB&Size=10MB HTTP/1.1となる。
なお、要求サイズは、バッファ126の容量に応じて定めることが望ましい。例えば、データ受信制御部124は、要求サイズをバッファ126の容量と同じサイズとすることができる。またデータ受信制御部124は、データ要求先の機器からのデータ転送速度が遅い場合には、データ転送に要する時間を考慮し、この時間の間に後述のデータ処理部により処理されるデータ量とバッファ126の容量との和を要求サイズとしてもよい。またデータ受信制御部124は、未受信のデータ(コンテンツの残りのデータ)のサイズが要求サイズ未満である場合、未受信のデータのサイズを要求サイズとする。データ受信制御部124は、コンテンツ情報に含まれるコンテンツサイズと受信済みのコンテンツのデータのサイズとを比較することで、未受信のデータのサイズが要求サイズ未満であるか否かを判断することができる。
またデータ受信制御部124は、要求サイズを毎回異ならせてもよい。例えば、データ受信制御部124は、バッファ126に格納されているデータのデータ量に応じて要求サイズを決定してもよい。この場合、バッファ126に格納されているデータのデータ量が少ないほど要求サイズが大きくなるため、バッファ126に多くのデータを格納する(蓄える)ことができ、データ要求先の機器の電力状態がSleep状態にある期間を短くすることができる。
またデータ受信制御部124は、データ要求先の機器に対して、通常の転送速度でのデータ転送を希望する場合には、Bulk=OFFを設定すればよい。
またデータ受信制御部124は、データ要求を送信した機器から通信部112を介してデータを受信し、バッファ126に格納する。バッファ126は、例えば、RAM(Random Access Memory)などより実現できる。なお、バッファ126に格納されているデータは、後述の処理部128により処理される。但し、データ要求先の機器からのデータの転送速度(送信速度)は、処理部128のデータ処理速度(コンテンツの再生レート)よりも速いものとする。
またデータ受信制御部124は、バッファ126に格納されているデータのデータ量を監視し、バッファ126に格納されているデータのデータ量がB_sleepを上回ったか否か、及びバッファ126に格納されているデータのデータ量がB_minを下回ったか否かを判断する。データ受信制御部124は、バッファ126に格納されているデータのデータ量がB_sleepを上回ると(所定の条件が成立した場合の一例)、バッファ126に格納されているデータ(コンテンツ)のコンテンツ情報とともにデータ受信を中断可能である旨をリモート管理部130に通知する。またデータ受信制御部124は、バッファ126に格納されているデータのデータ量がB_minを下回ると、バッファ126に格納されているデータ(コンテンツ)のコンテンツ情報とともにデータ受信の再開要求をリモート管理部130に通知する。但し、データ受信制御部124は、コンテンツの全データの受信を完了している場合には、バッファ126に格納されているデータのデータ量がB_minを下回っても、データ受信の再開要求をリモート管理部130に通知しない。データ受信制御部124は、コンテンツ情報に含まれるコンテンツサイズと受信済みのコンテンツのデータのサイズとを比較することで、コンテンツの全データの受信を完了しているか否かを判断することができる。
またデータ受信制御部124は、データ要求において設定した要求サイズ分のデータ受信が完了した場合(所定の条件が成立した場合の一例)も、受信したデータ(コンテンツ)のコンテンツ情報とともにデータ受信が完了した旨をリモート管理部130に通知する。
処理部128は、データ受信制御部124によりコンテンツのデータの受信及びバッファ126への格納が開始され、バッファ126に格納されているデータのデータ量がB_playを上回ると、データ処理を開始し、コンテンツを再生する。処理部128は、データの処理として、バッファ126に格納されているデータを復号化し、入出力部120にコンテンツの映像出力及び音声出力を行わせる。処理部128は、復号化したデータをバッファ126から削除する。なお、B_playは、コンテンツ再生中のバッファアンダーランを防ぐためのものであり、通信遅延とデコード遅延とを考慮して決めることが望ましい。また、B_playは、B_minよりも小さな値であることが望ましい。
リモート管理部130は、NAS150などのコンテンツ保持元の機器の管理情報を図示せぬ記憶部上で管理することにより、コンテンツ保持元の機器をリモートで管理する。第1実施形態では、管理情報は、コンテンツ保持元の機器毎に、機器識別子、電力状態、及びIPアドレスを対応付けた情報であるものとするが、これに限定されるものではない。なお、リモート管理部130は、管理情報の電力状態及びIPアドレスについては、リモート制御部122からの通知内容に応じて更新する。
リモート管理部130は、コンテンツ情報記憶部114からリモート管理部130にコンテンツ情報が出力されると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態がSleep状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、通知した機器識別子が示す機器の電力状態を電源ON状態に移行する旨をリモート制御部122に指示する。
またリモート管理部130は、リモート制御部122から起動通知に含まれる機器識別子及びIPアドレスとともに当該機器識別子が示す機器の電力状態が電源ON状態に移行された旨の通知を受け付ける。そしてリモート管理部130は、管理情報を参照し、受け付けた機器識別子と同一の機器識別子に対応付けられた電力状態、IPアドレスを、それぞれ電源ON状態、受け付けたIPアドレスに更新する。更にリモート管理部130は、更新したIPアドレスとコンテンツ情報記憶部114から出力されたコンテンツ情報とをデータ受信制御部124に通知し、当該コンテンツ情報が示すコンテンツのデータ受信を開始(再開)する旨をデータ受信制御部124に指示する。
またリモート管理部130は、データ受信制御部124からコンテンツ情報とともにデータ受信を中断可能である旨の通知を受け付けると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態が電源ON状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、当該機器識別子が示す機器の電力状態をSleep状態に移行する旨をリモート制御部122に指示する。更にリモート管理部130は、管理情報を参照し、コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態をSleep状態に更新する。
またリモート管理部130は、データ受信制御部124からコンテンツ情報とともにデータ受信が完了した旨の通知を受け付けると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態が電源ON状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、当該機器識別子が示す機器の電力状態をSleep状態に移行する旨をリモート制御部122に指示する。更にリモート管理部130は、管理情報を参照し、コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態をSleep状態に更新する。
またリモート管理部130は、データ受信制御部124からコンテンツ情報とともにデータ受信の再開要求を受け付けると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態がSleep状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、通知した機器識別子が示す機器の電力状態を電源ON状態に移行する旨をリモート制御部122に指示する。
なお、図3に示す例では、TV110の電力状態を制御する構成については、図示及び説明を省略している。
図7は、第1実施形態のNAS150の一例を示す構成図である。図7に示すように、NAS150は、通信部152と、コンテンツ記憶部154と、コンテンツ情報記憶部156と、状態管理部158と、転送管理部160とを、備える。
通信部152は、ネットワーク102を介して、TV110などの外部機器と通信するものであり、TV110同様、既存の通信装置により実現できる。第1実施形態では、通信部152は、起動要求の受信、データ要求の受信、GoSleep要求の受信、起動通知の送信、及びデータの送信などを行う。詳細には、通信部152は、これらの送受信を行うために、イーサネット(登録商標)物理層、MAC層、IP層、及びトランスポート層(TCP/UDP層を含む)の処理を行う。
コンテンツ記憶部154は、動画又は音楽などのコンテンツのデータを記憶する。
コンテンツ情報記憶部156は、コンテンツ記憶部154に記憶されているコンテンツ毎にコンテンツ情報を記憶する。
状態管理部158は、NAS150の電力状態を制御する。具体的には、状態管理部158は、TV110などのデータ要求元の機器から通信部152を介して起動要求を受信すると、電力状態を電源ON状態へ移行し、例えばDHCP(Dynamic Host Configuration Protocol)を利用してIPアドレスを取得する。なお、NAS150にIPアドレスが静的に設定されている場合には、IPアドレスを新たに取得する必要はない。そして、状態管理部158は、取得したIPアドレスを用いて起動通知を生成し、生成した起動通知を通信部152からネットワーク102にブロードキャスト又はマルチキャストする。また状態管理部158は、TV110などのデータ要求元の機器から通信部152を介してGoSleep要求を受信すると、電力状態をSleep状態へ移行する。
転送管理部160は、TV110などのデータ要求元の機器から通信部152を介してコンテンツ情報の問い合わせを受信すると、問い合わせを受けたコンテンツ情報をコンテンツ情報記憶部156から取得し、当該機器に送信する。なお、起動識別子についても同様である。
また転送管理部160は、TV110などのデータ要求元の機器から通信部152を介してデータ要求を受信すると、要求されたコンテンツの該当データをコンテンツ記憶部154から取得し、当該機器に通信部152を介して送信する。なお転送管理部160は、受信したデータ要求にBulk=ONが設定されている場合、要求されたコンテンツの該当データを、TV110のコンテンツの再生レートに関わらずできるだけ高速で送信する。また転送管理部160は、受信したデータ要求にBulk=OFFが設定されている場合、要求されたコンテンツの該当データを、同時送信コンテンツ数などを考慮した速度で送信することが望ましい。
図8は、第1実施形態のリモート制御部122及びリモート管理部130の動作の一例を示すフローチャートである。
まず、リモート管理部130は、ユーザによりコンテンツ選択画面上で選択されたコンテンツのコンテンツ情報の入力を、入出力部120からコンテンツ情報記憶部114を介して、受け付ける(ステップS130)。そしてリモート管理部130は、図示せぬ記憶部上で管理している管理情報の中から、受け付けたコンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を取得し、確認する。
リモート管理部130は、電力状態が電源OFF状態であることを確認した場合(ステップS132でYes)、処理を終了する。なおリモート管理部130は、この際に、入出力部120にエラーである旨の画面表示を行わせることが望ましい。
リモート管理部130は、電力状態がSleep状態であることを確認した場合(ステップS132でNo、ステップS134でYes)、受け付けたコンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、通知した機器識別子が示す機器の電力状態を電源ON状態に移行する旨をリモート制御部122に指示する(ステップS136)。
なお図示は省略するが、リモート管理部130は、データ受信制御部124からコンテンツ情報とともにデータ受信の再開要求を受け付けると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態がSleep状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、通知した機器識別子が示す機器の電力状態を電源ON状態に移行する旨をリモート制御部122に指示する。
続いて、リモート制御部122は、リモート管理部130から機器識別子とともに当該機器識別子が示す機器の電力状態を電源ON状態に移行する旨を受け付ける(ステップS138)。そしてリモート制御部122は、受け付けた機器識別子に対応付けられた起動識別子を起動識別子記憶部116から取得し、取得した起動識別子を用いて起動要求を生成し、生成した起動要求を通信部112からネットワーク102に送信する(ステップS140)。
続いて、リモート制御部122は、リモート管理部130から受け付けた機器識別子と同一の機器識別子を含む起動通知を、起動要求の送信後一定時間内に受信すると(ステップS142でYes)、受信した起動通知に含まれる機器識別子及びIPアドレスとともに、当該機器識別子が示す機器の電力状態を電源ON状態に移行した旨をリモート管理部130に通知する(ステップS144)。
続いて、リモート管理部130は、リモート制御部122から、起動通知に含まれる機器識別子及びIPアドレスとともに、当該機器識別子が示す機器の電力状態を電源ON状態に移行した旨を受け付ける(ステップS146)。そしてリモート管理部130は、管理情報を参照し、受け付けた機器識別子と同一の機器識別子に対応付けられた電力状態、IPアドレスを、それぞれ電源ON状態、受け付けたIPアドレスに更新する。更にリモート管理部130は、受け付けたコンテンツ情報及び更新したIPアドレスをデータ受信制御部124に通知し、通知したコンテンツ情報が示すコンテンツのデータ受信を開始(再開)する旨をデータ受信制御部124に指示する(ステップS148)。
なお、リモート制御部122は、リモート管理部130から受け付けた機器識別子と同一の機器識別子を含む起動通知を、起動要求の送信後一定時間内に受信しなかった場合(ステップS142でNo)、リモート管理部130を介して入出力部120にエラー処理を行わせ(ステップS150)、処理を終了する。リモート制御部122は、エラー処理として、入出力部120にコンテンツのデータ受信に失敗した旨の画面表示を行わせることが望ましい。
また、リモート管理部130は、電力状態が電源ON状態であることを確認した場合(ステップS132でNo、ステップS134でNo)、管理情報の中から、受け付けたコンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられたIPアドレスを取得する。そしてリモート管理部130は、入力を受け付けたコンテンツ情報と、取得したIPアドレスと、入力を受け付けたコンテンツ情報が示すコンテンツのデータ受信を開始(再開)する旨をデータ受信制御部124に指示する(ステップS148)。
なお図示は省略するが、リモート管理部130は、データ受信制御部124からコンテンツ情報とともにデータ受信を中断可能である旨の通知又はデータ受信が完了した旨の通知を受け付けると、当該コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部130は、電力状態が電源ON状態である場合、コンテンツ情報に含まれる機器識別子をリモート制御部122に通知し、当該機器識別子が示す機器の電力状態をSleep状態に移行する旨をリモート制御部122に指示する。更にリモート管理部130は、管理情報を参照し、コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態をSleep状態に更新する。
続いて、リモート制御部122は、リモート管理部130から機器識別子とともに当該機器識別子が示す機器の電力状態をSleep状態に移行する旨を受け付ける。そして、リモート制御部122は、受け付けた機器識別子を用いてGoSleep要求を生成し、生成したGoSleep要求を通信部112からネットワーク102に送信する。
図9は、第1実施形態のデータ受信制御部124の動作の一例を示すフローチャートである。
まず、データ受信制御部124は、リモート管理部130からデータ要求先の機器のIPアドレス及び受信対象のデータ(コンテンツ)のコンテンツ情報とともにデータ受信を開始する旨を受け付ける(ステップS160)。そして、データ受信制御部124は、受け付けたIPアドレス及びコンテンツ情報を用いてデータ要求を生成し、生成したデータ要求をデータ要求先の機器に送信する。例えば、データ受信制御部124は、データ要求のHTTPメッセージとして、GET /contents/movie/AAA.wmv?Bulk=ON&Position=0MB&Size=10MB HTTP/1.1を送信し、先頭から10MB分のコンテンツのデータを要求する。
続いて、データ受信制御部124は、データ要求を送信した機器からHTTP応答を受信すると(ステップS162)、受信したHTTP応答に含まれるデータを、バッファ126に格納する。
続いて、データ受信制御部124は、コンテンツの全てのデータの受信が完了するか、バッファ126に格納されているデータのデータ量がB_sleepを上回るまでの間、データ受信を継続する(ステップS164でNo、ステップS166でNo、ステップS162)。そして、データ受信制御部124は、バッファ126に格納されているデータのデータ量がB_sleepを上回ると(ステップS166でYes)、バッファ126に格納されているデータ(コンテンツ)のコンテンツ情報とともにデータ受信を中断可能である旨をリモート管理部130に通知する(ステップS168)。なお図示は省略するが、データ受信制御部124は、データ要求において設定した要求サイズ分のデータ受信が完了した場合も、受信したデータ(コンテンツ)のコンテンツ情報とともにデータ受信が完了した旨をリモート管理部130に通知する。
続いて、データ受信制御部124は、バッファ126に格納されているデータのデータ量がB_minを下回るまで待機する(ステップS170でNo)。そして、データ受信制御部124は、処理部128によりバッファ126に格納されているデータが処理され、バッファ126に格納されているデータのデータ量がB_minを下回ると(ステップS170でYes)、バッファ126に格納されているデータ(コンテンツ)のコンテンツ情報とともにデータ受信の再開要求をリモート管理部130に通知する(ステップS172)。
続いて、データ受信制御部124は、リモート管理部130からのデータ受信を開始(再開)する旨の通知を待機し(ステップS174でNo)、リモート管理部130からデータ要求先の機器のIPアドレス及び受信対象のデータ(コンテンツ)のコンテンツ情報とともにデータ受信を開始(再開)する旨を受け付ける(ステップS174でYes)。そして、データ受信制御部124は、受け付けたIPアドレス及びコンテンツ情報を用いてデータ要求を生成し、生成したデータ要求をデータ要求先の機器に送信する。例えば、データ受信制御部124は、前回の続きのデータのデータ要求のHTTPメッセージとして、GET /contents/movie/AAA.wmv?Bulk=ON&Position=10MB&Size=10MB HTTP/1.1を送信し、先頭から10MBの部分から10MB分のコンテンツのデータを要求する。
続いて、データ受信制御部124は、データ要求を送信した機器からHTTP応答を受信すると(ステップS162)、受信したHTTP応答に含まれるデータを、バッファ126に格納する。
続いて、データ受信制御部124は、コンテンツの全てのデータの受信が完了するか、バッファ126に格納されているデータのデータ量がB_sleepを上回るまでの間、データ受信を継続する(ステップS164でNo、ステップS166でNo、ステップS162)。そして、データ受信制御部124は、コンテンツの全てのデータの受信が完了すると(ステップS164でYes)、受信したデータ(コンテンツ)のコンテンツ情報とともにデータ受信が完了した旨をリモート管理部130に通知する(ステップS176)。
以上のように第1実施形態では、データ受信機器であるTV110は、データ送信機器であるNAS150から、再生レートよりも速い速度でコンテンツのデータを受信して蓄積する。これにより、TV110は、コンテンツの再生中であっても、NAS150をデータ送信できないが消費電力量の少ないSleep状態に移行させることができる。具体的には、TV110は、TV110に蓄積されたデータ量がB_sleepを超えた場合に、データ送信機器であるNAS150を、データを送信できないが消費電力量の少ないSleep状態に移行させる。またTV110は、TV110に蓄積されたデータ量がB_minよりも小さくなった場合に、NAS150をデータ送信可能な電源ON状態に移行させ、NAS150からデータを受信する。第1実施形態では、これにより、NAS150(広義には、通信システム100)の消費電力量を削減する。
ここで、NAS150の消費電力量は、数式(1)が成立する場合に削減が可能となる。
T(D)×P_on>L(D)×P_on+(T(D)−L(D))×P_sleep+C_on+C_sleep …(1)
なお、T(D)は、TV110がサイズDのデータを処理する時間を示す。L(D)は、NAS150がサイズDのデータを送信する時間を示す。P_onは、電源ON状態である場合のNAS150の消費電力を示す。P_sleepは、Sleep状態である場合のNAS150の消費電力を示す。C_onは、Sleep状態から電源ON状態への移行に要するNAS150の消費電力を示す。C_sleepは、電源ON状態からSleep状態への移行に要するNAS150の消費電力を示す。つまり、数式(1)の左辺は、NAS150が常に電源ON状態である場合のNAS150の消費電力量を表し、数式(1)の右辺は、上述した電力状態の制御を行った場合のNAS150の消費電力量を表す。
また、数式(1)を変形することにより数式(2)が導ける。
T(D)−L(D)>(C_on+C_sleep)/(P_on−P_sleep) …(2)
なお、サイズDは、B_sleep−B_minとすることができる。
これにより、TV110のデータ処理速度とNAS150のデータ送信速度との比が大きければ大きいほど、また、TV110のバッファ126のサイズが大きければ大きいほど、NAS150の消費電力量を削減できることが分かる。
また第1実施形態では、TV110は、データ要求において、Bulk=ONを設定することにより、NAS150にデータの高速転送を要求していることを知らせる。これにより、NAS150は、TV110がコンテンツの再生レートでデータを欲しているか否かを区別できるので、データの送り過ぎに伴うTV110でのデータ廃棄を削減でき、データの再送を削減することができる。これにより、NAS150の消費電力を一層削減することができる。
同様に第1実施形態では、TV110は、データ要求において、要求サイズを設定することにより、データの送り過ぎに伴うTV110でのデータ廃棄を削減でき、データの再送を削減することができる。これにより、NAS150の消費電力を一層削減することができる。但し、TV110は、データ要求において、要求サイズを設定せず、バッファ126に十分データを蓄えた時に、NAS150とのTCPコネクションを切断することにより、NAS150からのデータ転送を停止させることも可能である。
第1実施形態では、NAS150などのコンテンツ保持元の機器を起動させるという機能に対して起動識別子を割り当て、NAS150などのコンテンツ保持元の機器のコンテンツサーバという機能に対して機器識別子を割り当てている。つまり、第1実施形態では、物理的な機器に起動識別子を割り当て、機能としての仮想的な機器に機器識別子を割り当てている。従って、第1実施形態によれば、一つの機能(機器識別子)が複数の物理的な機器(起動識別子)で実現されている場合に、あるいは逆に複数の機能(機器識別子)が一つの物理的な機器(起動識別子)で実現されている場合にも対応することが可能となる。
(変形例1)
変形例1では、データ受信機器であるTVが複数台存在し、複数台のTVが同期して同一のNASからデータを受信する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図10は、変形例1の通信システム200の一例を示す構成図である。通信システム200は、データ受信機器であるTV110A、110B、110Cと、データ送信機器であるNAS(Network Attached Storage)150とを、備える。TV110A、110B、110CとNAS150とは、ネットワーク102を介して接続されている。なお、TVの台数は複数であれば何台であってもよく、NASの台数は2台以上であってもよい。
図11は、変形例1の通信システム200の典型的な動作の一例を示すシーケンス図である。図11に示す例では、通信システム200は、TV110A、110B、110Cの電力状態が電源ON状態、NAS150の電力状態がSleep状態から動作を開始するものとする。また、TV110A、110B、110Cは、それぞれ、NAS150からコンテンツのデータを受信しながら再生しているものとする。なお、TV110A、110B、110Cは、NAS150から同一のコンテンツのデータを受信していてもよいし、異なるコンテンツのデータを受信していてもよい。
まず、TV110Cは、データを要求するコンテンツを保持するNAS150に起動要求を送信する(ステップS200)。
続いて、NAS150は、TV110Cから起動要求を受信すると、NAS150の電力状態をSleep状態から電源ON状態に移行し、起動通知をネットワーク102にブロードキャスト又はマルチキャストし、TV110A、110B、110Cに起動通知を送信する(ステップS202)。
TV110A、110B、110Cは、それぞれ、起動通知を受信すると、受信した起動通知に含まれる機器識別子を用いて、NAS150からコンテンツのデータを受信して再生しているか否かを判断する。そして、TV110A、110B、110Cは、それぞれ、NAS150からコンテンツのデータを受信して再生していれば、コンテンツの続きのデータのデータ要求をNAS150に送信し(ステップS212、ステップS208、ステップS204)、要求したデータをNAS150から受信する(ステップS214、ステップS210、ステップS206)。
具体的には、TV110A、110B、110Cそれぞれのデータ受信制御部124は、受信対象のデータ(コンテンツ)のコンテンツ情報に含まれる機器識別子と、起動通知に含まれる機器識別子とが一致すれば、NAS150からコンテンツのデータを受信して再生していると判断する。そして、それぞれのデータ受信制御部124は、NAS150からコンテンツのデータを受信して再生していれば、バッファ126に格納されているデータのデータ容量に関わらず、コンテンツの続きのデータのデータ要求をNAS150に送信する。この場合、データ受信制御部124は、バッファ126に格納されているデータのデータ量に応じて要求サイズを決定することが望ましい。典型的には、データ受信制御部124は、バッファ126の容量とバッファ126に格納されているデータのデータ量の差のサイズを要求サイズとすればよい。
続いて、TV110Cは、起動通知を受信してから一定期間経過後(所定の条件が成立した場合の一例)に、NAS150にGoSleep要求を送信する(ステップS216)。これは、TV110Cが、要求サイズ分のデータの受信が完了した場合、又はバッファ126に格納済みのデータのデータ量がB_sleepを上回った場合に、GoSleep要求を送信することにより、TV110A、110Bのデータ受信が途中で打ち切られてしまったり、NAS150の電力状態がSleep状態に移行した後にデータ要求を送信してしまうことを回避するためである。続いて、NAS150は、TV110CからGoSleep要求を受信すると、NAS150の電力状態を電源ON状態からSleep状態に移行する。
以上のように、変形例1では、いずれかのTVがNASの電力状態を電源ON状態に移行させると、複数台のTVが同期して同一のNASからデータを受信する。このため、変形例1によれば、NAS150の電力状態が電源ON状態に移行する回数を削減でき、NAS150の消費電力を削減することができる。
(変形例2)
変形例2では、TV110及びNAS150が、コンテンツのデータ受信用の第1通信部と、起動要求、起動通知、及びGoSleep要求の少なくともいずれかの送受信用の第2通信部とを、備える例について説明する。
第1通信部は、第1実施形態同様NICを用いることができる。ここで、起動要求、起動通知、及びGoSleep要求のメッセージサイズは小さいため、第2通信部は、例えば、RFID(Radio Frequency IDentification)や省電力無線などを用いることができる。この場合、第2通信部の消費電力は、第1通信部の消費電力よりも少なくなる。このため、NAS150がSleep状態である場合に、TV110及びNAS150が第1通信部への給電を停止すれば、TV110及びNAS150の消費電力を削減することができる。
(変形例3)
変形例3では、起動要求、起動通知、及びGoSleep要求の変形例について説明する。上記実施形態では、起動要求、起動通知、及びGoSleep要求が、イーサフレームで送受信される場合を例に取り説明したが、TV110及びNAS150は、例えば、FLP(Fast Link Pulse)のData Pulse Positionを用いて、起動要求、起動通知、及びGoSleep要求の少なくともいずれかを送受信することもできる。このように、TV110及びNAS150は、MAC層のデータフレームとは異なるMAC層の通知手段を起動要求、起動通知、及びGoSleep要求の少なくともいずれかに用いることもできる。これにより、TV110及びNAS150の通信部(NIC)が処理すべき信号が簡単になり、TV110及びNAS150の通信部の待機消費電力を削減することができる。
また、起動通知は、電力状態を電源ON状態へ移行した旨を通知できれば、他のパケットで代用することもできる。例えば、DLNAのAdvertisementのメッセージ、LLDP(link Layer Discovery Protocol)、IEEE 802.11のビーコン、又はSearchフレームなど様々なもので代用できる。このように、起動通知を他のパケットで代用する場合、電源ON状態の場合にのみ定期的に送信されるメッセージであることが望ましい。
なお、TV110は、NAS150に電力伝送を行うことで、NAS150を電源OFF状態から電源ON状態に移行させるようにしてもよい。例えば、TV110は、イーサケーブルにてNAS150に電力を送信し、NAS150は、TV110から受信した電力を用いて電力状態を電源OFF状態から電源ON状態やSleep状態に移行することもできる。NAS150は、Sleep状態に移行する場合、更にTV110から起動要求を受信することにより電源ON状態に移行することもできる。電力伝送は、イーサケーブルのような有線だけではなく無線電力伝送技術を用いて伝送することもできる。
(変形例4)
変形例4では、起動識別子及びコンテンツ情報の他の取得方法について説明する。
NAS150などのコンテンツ保持元の機器は、電力状態が電源ON状態である場合、自身の機器識別子及び起動識別子を定期的にネットワーク102にブロードキャスト又はマルチキャストする。TV110の取得部118は、ブロードキャスト又はマルチキャストされた機器識別子及び起動識別子を取得し、起動識別子記憶部116に記憶されていなければ記憶する。また取得部118は、起動識別子記憶部116に記憶している機器識別子及び起動識別子と同一の機器識別子及び起動識別子を一定期間(例えば、1週間)受信しなければ、当該機器識別子及び起動識別子を起動識別子記憶部116から削除する。
また取得部118は、起動識別子記憶部116に記憶されていない起動識別子を取得した場合、起動識別子の送信元(ブロードキャスト又はマルチキャスト元)へコンテンツ情報の取得要求を行う。ここで、コンテンツ情報の取得要求では、起動識別子の送信元が保持している全てのコンテンツに対してコンテンツ情報を要求することが望ましい。既に起動識別子が起動識別子記憶部116に記憶されている機器に関しては、リモート制御部122が一定時間毎に起動要求を送信して電源ON状態に移行させた後に、取得部118がコンテンツ情報に変化が無いか問い合わせる。なお、コンテンツ情報の取得を目的として起動要求を送信する前であっても、電源ON状態に移行した機器を発見した場合には、取得部118は、当該機器にコンテンツ情報に変化が無いか問い合わせることが望ましい。
このような方法で起動識別子及びコンテンツ情報を取得してもよい。
(変形例5)
変形例5では、コンテンツ選択画面の他の表示方法について説明する。
入出力部120は、コンテンツ選択画面を表示する際に、コンテンツを保持する機器の電力状態を併せて表示するようにしてもよい。具体的には、入出力部120は、コンテンツ情報に含まれる機器識別子と同一の機器識別子に対応付けられた電力状態を、リモート管理部130で管理する管理情報から取得し、取得した電力状態に応じた表示をコンテンツ選択画面上で行う。図12は、変形例5のコンテンツ選択画面の一例を示す図である。図12に示すコンテンツ選択画面では、「AAA」、「BBB」、「CCC」、及び「DDD」の4つのコンテンツのタイトルが、それぞれコンテンツの内容を示すアイコン及びコンテンツを保持する機器の電力状態を表すマークとともに表示されている。なお、図12の例では、コンテンツを保持する機器が少なくとも3台以上存在するものとする。
図12において、「AAA」及び「BBB」のタイトルに関連付けて表示された星印は、これらのコンテンツを保持する機器の電力状態がSleep状態であることを示す。また、「CCC」のタイトルに関連付けて表示された太陽印は、このコンテンツを保持する機器の電力状態が電源ON状態であることを示す。さらに、「DDD」のタイトルに関連付けて表示された月印は、このコンテンツを保持する機器の電力状態が電源OFF状態であることを示す。
このようにすれば、コンテンツを保持する機器の電力状態をユーザに通知でき、ユーザは、再生できないコンテンツ(電力状態が電源OFF状態の機器で保持されているコンテンツ)、再生に時間を要するコンテンツ(電力状態がSleep状態の機器で保持されているコンテンツ)を把握することができる。なお、入出力部120は、電力状態がSleep状態の機器で保持されているコンテンツが選択された場合、当該機器の電力状態が電源ON状態に移行した後に月印を太陽印に変えるようにすれば、ユーザは、間もなくコンテンツの再生が開始されることを把握することができる。
(変形例6)
変形例6では、動画や音楽などのコンテンツのデータ以外のデータへの適用例について説明する。
第1実施形態で説明した内容は、データ送信機器(NAS150)のデータ転送速度(データ送信速度)が、データ受信機器(TV110)のデータ処理速度よりも遅い場合、データ受信機器でデータを受信しつつデータを処理しても、データ受信機器に未処理のデータが蓄積されるという状況を利用して、データ送信機器の消費電力量を削減している。このため、上記状況が成立すれば、データの種別に関わらず第1実施形態で説明した内容を適用して、データ送信機器の消費電力量を削減することができる。
図13は、変形例6の通信システム300の一例を示す構成図である。通信システム300は、データ受信機器であるPC(Personal Computer)310と、データ送信機器であるファイルサーバ350とを、備える。PC310とファイルサーバ350とは、ネットワーク302を介して接続されている。なお、PC及びファイルサーバの台数は、それぞれ2台以上であってもよい。また、ファイルサーバ350は、PCであってもよい。
変形例6では、ネットワーク302がオフィスビル内のネットワークであるファシリティネットワーク(社内LAN)である場合を例に取り説明する。但し、ネットワーク302はこれに限定されるものではなく、どのようなネットワークであってもよい。
変形例6では、PC310は、CIFS(Common Internet File System)プロトコルを用いて、ファイルサーバ350で保持されているファイルを参照する。なお、PC310は、ファイルサーバ350で保持されているファイルを参照するための事前処理として、ファイルサーバ350へ検索要求(検索コマンド)を送信し、検索されたファイルのファイル情報をファイルサーバ350から受信してバッファに格納し、バッファに格納されたファイル情報を画面表示する。検索要求の検索キーには、例えば、ファイル名の一部、ファイル内に含まれる文字列、及びファイルの変更日時などの少なくともいずれかを用いることができる。ファイル情報は、ファイル名、ファイル変更日時、及びファイルサイズなどの少なくともいずれかを含む。PC310は、画面表示されたファイル情報を選択することで、選択されたファイル情報のファイルをファイルサーバ350から参照する。
ところで、PC310は、ファイルサーバ350により検索されたファイル情報を画面表示するが、検索されたファイル数が多い場合、全てのファイル情報を画面表示するには時間を要する。
そこで変形例6では、PC310は、バッファに格納されている未処理のファイル情報数が第1所定数を超えると、ファイルサーバ350にGoSleep要求を送信し、ファイルサーバ350をSleep状態に移行させる。そして、PC310は、バッファに格納されている未処理のファイル情報の表示処理を継続し、バッファに格納されている未処理のファイル情報数が第2所定数よりも小さくなると、ファイルサーバ350に起動要求を送信し、ファイルサーバ350を電源ON状態に移行させる。これにより、ファイルサーバ350の消費電力を削減することができる。なお、第2所定数は、第1所定数よりも小さいものとする。
この後、PC310は、ファイルサーバ350に検索要求を送信し、ファイル情報の受信を再開する。ここで、PC310は、検索要求に前回の検索要求と同じセッション番号を記すことが望ましい。これにより、ファイルサーバ350は、途中の検索結果を保持することが可能となる。
またファイルサーバ350は、ファイルの検索処理をファイル情報の送信処理よりも高速に実行可能である場合には、検索処理結果を蓄積しておくことが望ましい。例えば、ファイルサーバ350は、更新日が一週間前のファイルの抽出を検索キー(検索条件)とする検索要求を受信した場合、当該検索キーに合致するファイルの抽出作業を実行しつつ、抽出したファイルのファイル情報をPC310へ送信する。
またファイルサーバ350は、GoSleep要求を受信した場合、Sleep状態に移行する。この際、ファイルサーバ350は、ファイルの検索処理及びファイル情報の送信処理を含めて処理を停止する。
なおファイルサーバ350は、ファイルの検索処理中には、検索処理が継続中である旨をPC310へ送信し、ファイルの検索処理が終了した際には、検索処理が終了した旨をPC310へ送信するようにしてもよい。このようにすれば、PC310は、ファイルサーバ350がファイルの検索処理を終了した後にGoSleep要求を送信することができるので、ファイルサーバ350の電力状態を変更する回数を削減することができ、電力状態の変更に伴う消費電力を削減することができる。
つまり、PC310は、ファイルサーバ350の処理状態を知ることで、ファイルサーバ350が処理すべき作業があるノンアイドル状態であるか否かを判定でき、ファイルサーバ350がノンアイドル状態中にはGoSleep要求を送信しないことで、ファイルサーバ350の電力状態を変更する回数を削減し、電力状態の変更に伴う消費電力を削減することができる。
なお、ファイルサーバ350がノンアイドル状態であるか否かをPC310に判定させるのではなく、ファイルサーバ350自身が判定してもよい。つまり、ファイルサーバ350は、GoSleep要求を受信した場合であってもノンアイドル状態であれば、Sleep状態に移行せずに処理を継続し、処理すべき作業が無くなり、アイドル状態となった場合にSleep状態に移行するようにしてもよい。これにより、ファイルサーバ350が自身の処理状態をPC310に通知しなくても、ファイルサーバ350の電力状態を変更する回数を削減し、電力状態の変更に伴う消費電力を削減することができる。
また第1実施形態で説明した内容は、上述したファイル検索処理以外にも適用することができる。例えば、ファイルサーバ350で保持しているファイルをPC310が読み書きする場合にも適用できる。
この場合、PC310は、CIFSプロトコルを用いてファイルサーバ350で保持しているファイルを読み書きする。具体的には、PC310は、ファイル識別子のオフセット及びデータサイズを指定したデータ要求をファイルサーバ350に送信し、要求したファイルデータを受信してバッファに格納し、バッファに格納されたファイルデータをアプリケーションでアクセスする。ここで、ファイル識別子は、要求したファイルをファイルサーバ350上で一意に識別する識別子であり、例えばファイルパス名などが該当する。データ要求には、CIFSコマンドが用いられ、例えば、SMB_COM_OPEN及びSMB_COM_READなどが該当する。
ここで、PC310は、バッファに格納されているファイルデータのうち未アクセス部分のファイルデータのサイズが第1サイズを超えると、ファイルサーバ350にGoSleep要求を送信し、ファイルサーバ350をSleep状態に移行させる。そして、PC310は、バッファに格納されているファイルデータへのアプリケーションによるアクセスを継続し、未アクセス部分のファイルデータのサイズが第2サイズよりも小さくなると、ファイルサーバ350に起動要求を送信し、ファイルサーバ350を電源ON状態に移行させ、ファイルデータの受信を再開する。
コンテンツデータや検索データのように、データの先頭から順にデータを処理する場合だけでなく、ファイルアクセスのようにランダムアクセスする場合においても、第1実施形態で説明した内容を適用することができる。
(第2実施形態)
第2実施形態では、プリントサーバが、PCから送信された印刷データを一旦蓄積し、蓄積した印刷データをプリンタに送信して印刷させる印刷システムの例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
図14は、第2実施形態の通信システム400の一例を示す構成図である。通信システム400は、PC404、406と、プリントサーバ410と、プリンタ450とを、備える。第2実施形態では、プリンタ450は、電子写真方式で印刷を行うプリンタであるものとする。PC404、406、プリントサーバ410、及びプリンタ450は、ネットワーク302を介して接続されている。ネットワーク302は、変形例6同様、ファシリティネットワークであるものとするが、これに限定されるものではなく、どのようなネットワークであってもよい。
第2実施形態では、プリントサーバ410及びプリンタ450は、電力状態として、電源ON状態、電源OFF状態、及びSleep状態の3状態を取り得るものとするが、これに限定されるものではなく、第1実施形態同様、Sleep状態を細分化してもよい。例えば、Sleep状態において、プリンタ450の定着ローラ(図示省略)の温度を高くする場合と低くする場合とで、Sleep状態を分けるようにしてもよい。
図15は、第2実施形態の通信システム400の典型的な動作の一例を示すシーケンス図である。図15に示す例では、通信システム400は、PC404、406の電力状態が電源ON状態、プリントサーバ410及びプリンタ450の電力状態がSleep状態から動作を開始するものとする。
まず、PC404は、プリントサーバ410に起動要求を送信する(ステップS300)。
続いて、プリントサーバ410は、PC404から起動要求を受信すると、プリントサーバ410の電力状態をSleep状態から電源ON状態に移行し、PC404に起動通知を送信する(ステップS302)。
続いて、PC404は、プリントサーバ410から起動通知を受信すると、印刷データをプリントサーバ410に送信する(ステップS304)。そして、プリントサーバ410は、PC404から送信される印刷データを受信し、受信した印刷データをバッファに格納し、バッファに格納済みの印刷データのデータ量がQ_print(閾値の一例)を上回ったか否か確認する。ここでは、Q_printを上回らないものとする。第2実施形態では、印刷データのデータ量は、印刷ジョブの数であるものとするが、これに限定されるものではなく、印刷ページ数や印刷データのバイト数などであってもよい。
続いて、PC404は、印刷データの送信を完了すると、GoSleep要求をプリントサーバ410に送信する(ステップS306)。そして、プリントサーバ410は、PC404からGoSleep要求を受信すると、プリントサーバ410の電力状態を電源ON状態からSleep状態に移行する。
続いて、PC406は、プリントサーバ410に起動要求を送信する(ステップS308)。
続いて、プリントサーバ410は、PC406から起動要求を受信すると、プリントサーバ410の電力状態をSleep状態から電源ON状態に移行し、PC406に起動通知を送信する(ステップS310)。
続いて、PC406は、プリントサーバ410から起動通知を受信すると、印刷データをプリントサーバ410に送信する(ステップS312)。そして、プリントサーバ410は、PC406から送信される印刷データを受信し、受信した印刷データをバッファに格納し、バッファに格納済みの印刷データのデータ量がQ_printを上回ったか否か確認する。ここでは、Q_printを上回ったものとする。
続いて、プリントサーバ410は、プリンタ450に起動要求を送信する(ステップS314)。また、PC406は、印刷データの送信を完了すると、GoSleep要求をプリントサーバ410に送信する(ステップS316)。ここで、プリントサーバ410は、バッファに格納済みの印刷データをプリンタ450に送信して印刷を行わせるという処理すべき作業があり、ノンアイドル状態であるため、Sleep状態に移行せずに処理を継続する。
続いて、プリンタ450は、プリントサーバ410から起動要求を受信すると、プリンタ450の電力状態をSleep状態から電源ON状態に移行し、プリントサーバ410に起動通知を送信する(ステップS318)。
続いて、プリントサーバ410は、プリンタ450から起動通知を受信すると、バッファに格納済みの印刷データをプリンタ450に送信する(ステップS320)。この際、プリントサーバ410は、バッファに格納済みの全ての印刷データをプリンタ450に送信することが望ましい。
続いて、プリンタ450は、プリントサーバ410から印刷データを受信すると、受信した印刷データを処理し、印刷データを印刷した印刷物を生成する。そして、プリンタ450は、プリントサーバ410から受信した全ての印刷データの印刷が完了すると、プリントサーバ410に完了通知を送信する(ステップS322)。
続いて、プリントサーバ410は、プリンタ450から完了通知を受信すると、GoSleep要求をプリンタ450に送信する(ステップS324)。この時点で、プリントサーバ410は、バッファに格納済みの印刷データをプリンタ450に送信して印刷を行わせるという処理すべき作業が完了し、アイドル状態となるため、プリントサーバ410の電力状態を電源ON状態からSleep状態に移行する。また、プリンタ450は、プリントサーバ410からGoSleep要求を受信すると、プリンタ450の電力状態を電源ON状態からSleep状態に移行する。
図16は、第2実施形態の通信システム400において、プリンタ450が手動等により電源ONされた場合の動作の一例を示すシーケンス図である。Sleep状態又は電源OFF状態にあるプリンタ450が、手動等何らかのきっかけにより電源ON状態に移行した場合、プリントサーバ410は、バッファに保持している印刷データを直ちにプリンタ450に送信することが望ましい。これにより、プリンタ450の電力状態の移行回数を減らすことができ、消費電力量を削減することができる。図16に示す例でも、通信システム400は、PC404、406の電力状態が電源ON状態、プリントサーバ410及びプリンタ450の電力状態がSleep状態から動作を開始するものとする。
まず、ステップS400〜ステップS406までの処理は、図15のステップS300〜ステップS306までの処理と同様である。
続いて、プリンタ450の電源スイッチ(図示省略)が例えばユーザにより電源ONされると(ステップS408)、プリンタ450は、電力状態をSleep状態から電源ON状態へ移行し、プリントサーバ410に起動要求を送信する(ステップS410)。この際、プリンタ450は、全てのプリントサーバを意味する起動識別子を有する起動要求をブロードキャスト又はマルチキャストすることも可能である。
続いて、プリントサーバ410は、プリンタ450から起動要求を受信すると、プリントサーバ410の電力状態をSleep状態から電源ON状態に移行し、プリンタ450に起動通知を送信する(ステップS412)。
続いて、プリンタ450は、プリントサーバ410から起動通知を受信すると、起動通知を送信したプリントサーバ410に対して印刷ジョブ情報を要求する(図示省略)。ここで、印刷ジョブ情報は、印刷ジョブ識別子、印刷ジョブ名、印刷ジョブ送信機器名(例えば、PC404など)を含むものとするが、これに限定されるものではない。
続いて、プリントサーバ410は、プリンタ450から印刷ジョブ情報が要求されると、保持している全ての印刷ジョブの印刷ジョブ情報をプリンタ450に送信する(ステップS414)。
続いて、プリンタ450は、プリントサーバ410から印刷ジョブ情報を受信すると、印刷ジョブ選択画面を表示する(ステップS416)。印刷ジョブ選択画面は、印刷ジョブ情報に含まれる印刷ジョブ名及び印刷ジョブ送信機器名などを表示する。そして、ユーザが印刷を希望する印刷ジョブを印刷ジョブ選択画面上で選択すると(ステップS418)、プリンタ450は、選択された印刷ジョブの印刷ジョブ識別子を含む印刷ジョブ要求をプリントサーバ410に送信する(ステップS420)。
続いて、プリントサーバ410は、プリンタ450から印刷ジョブ要求を受信すると、受信した印刷ジョブ要求に含まれる印刷ジョブ識別子が示す印刷ジョブの印刷データ(指定印刷データ)をバッファから取得し、プリンタ450に送信する(ステップS422)。そして、プリンタ450は、プリントサーバ410から印刷データを受信すると、受信した印刷データを処理し、印刷データを印刷した印刷物を生成する。
続いて、プリンタ450は、予め定められた時間内に印刷ジョブが選択されない場合、残りの印刷ジョブの印刷ジョブ要求をプリントサーバ410に送信する(図示省略)。
続いて、プリントサーバ410は、プリンタ450から印刷ジョブ要求を受信すると、受信した印刷ジョブ要求に含まれる印刷ジョブ識別子が示す印刷ジョブの印刷データ(残り印刷データ)をバッファから取得し、プリンタ450に送信する(ステップS424)。そして、プリンタ450は、プリントサーバ410から印刷データを受信すると、受信した印刷データを処理し、印刷データを印刷した印刷物を生成する。
その後、プリンタ450は、プリントサーバ410から受信した全ての印刷データの印刷が完了すると、完了通知をプリントサーバ410に送信し(ステップS426)、更に、GoSleep要求をプリントサーバ410に送信する(ステップS428)。そしてプリンタ450は、プリンタ450の電力状態を電源ON状態からSleep状態に移行する。また、プリントサーバ410は、プリンタ450からGoSleep要求を受信すると、プリントサーバ410の電力状態を電源ON状態からSleep状態に移行する。
なお、プリンタ450は、ステップS410において、プリントサーバ410に起動要求だけでなく起動通知をブロードキャスト又はマルチキャストしてもよい。これにより、プリントサーバ410は、電力状態が既に電源ON状態である場合に、起動通知をきっかけに印刷ジョブ情報をプリンタ450に送信することで、印刷ジョブ選択画面の表示までに要する時間を短縮することができる。
また、プリントサーバ410は、ステップS410で起動要求を受信した場合、又は上述の起動通知を受信した場合、保持している全ての印刷データと印刷ジョブ情報をプリンタ450に送信し、プリンタ450は、プリントサーバ410から送信された印刷データ及び印刷ジョブ情報を用いて、印刷ジョブ選択画面の表示、指定印刷データの印刷、及び残り印刷データの印刷を行うようにしてもよい。これにより、プリントサーバ410は、プリンタ450からの完了通知を待つことなくSleep状態に移行でき、消費電力量を一層削減することができる。
また、プリンタ450は、ステップS414でプリントサーバ410から印刷ジョブ情報を受信した場合に、GoSleep要求をプリントサーバ410に送信してSleep状態に移行させ、ステップS420でプリントサーバ410に印刷ジョブ要求を送信する前に起動要求をプリントサーバ410に送信して電源ON状態に移行させるようにしてもよい。これにより、プリントサーバ410がSleep状態でいる時間を長くすることができ、消費電力量を削減することができる。
図17は、第2実施形態のプリントサーバ410の一例を示す構成図である。図17に示すように、プリントサーバ410は、通信部112と、起動識別子記憶部116と、リモート制御部422と、データ通信制御部424と、バッファ426と、リモート管理部430と、状態管理部432とを、備える。
通信部112は、第1実施形態のTV110と同様である。
起動識別子記憶部116は、記憶する機器識別子及び起動識別子がプリンタ450などの印刷機器のものである点を除き、第1実施形態のTV110と同様である。
リモート制御部422は、通信部112を介して、プリンタ450などの印刷機器の電力状態をリモート制御する。起動要求の送信、起動通知の受信、及びGoSleep要求の送信などは、第1実施形態のTV110と同様であるため、説明を省略する。
データ通信制御部424は、通信部112を介して、PC404、406などから印刷データを受信し、受信した印刷データをバッファ426に格納する。
またデータ通信制御部424は、バッファ426に格納されている印刷データのデータ量を監視し、バッファ426に格納されている印刷データのデータ量がQ_printを上回ったか否かを判断する。データ通信制御部424は、バッファ426に格納されている印刷データのデータ量がQ_printを上回ると、機器識別子とともに当該機器識別子が示す印刷機器の電力状態を電源ON状態に移行する旨をリモート管理部430に通知する。
またデータ通信制御部424は、リモート管理部430から印刷要求先の印刷機器のIPアドレスとともに印刷データの送信を開始する旨を受け付けると、受け付けたIPアドレス宛でバッファ426に格納されている印刷データを通信部112から送信する。
なおデータ通信制御部424は、バッファ426に格納されている印刷データのデータ量だけでなく、プリンタ450などの印刷機器に対する印刷データの前回の送信からの経過時間を考慮して、印刷データの送信タイミングを決めてもよい。
例えば、プリンタ450などの印刷機器の定着ローラの温度は急には低下しないため、経過時間が小さいほど印刷機器の電力状態をSleep状態から電源ON状態に移行する処理の消費電力は小さい。従って、印刷データの前回の送信からの経過時間とバッファ426内の印刷データのデータ量とで印刷機器の電力状態を電源ON状態に移行させるか否かを決めることもできる。
例えば、t_e<T1かつn_p>N1、t_e<T2かつn_p>N2、又はn_p>N3であれば、印刷機器を電源ON状態に移行するようにしてもよい。なお、t_eは、印刷データの前回の送信からの経過時間を示し、n_pは、バッファ426内の印刷データのデータ量を示し、T1<T2、N1<N2<N3であるものとする。
これにより、PC404、406がプリントサーバ410に印刷データを送信してから印刷が完了するまでの遅延時間の短縮が期待できる。なお、プリントサーバ410がプリンタ450に定着ローラの温度又は電源ON状態への移行に要する消費電力を問い合わせ、問い合わせ結果を考慮してプリンタ450を電源ON状態に移行させるか否かを判断してもよい。
リモート管理部430は、プリンタ450などの印刷機器の管理情報を図示せぬ記憶部上で管理することにより、印刷機器をリモートで管理する。
リモート管理部430は、データ通信制御部424から機器識別子とともに当該機器識別子が示す印刷機器の電力状態を電源ON状態に移行する旨を受け付けると、当該機器識別子と同一の機器識別子に対応付けられた電力状態を管理情報から取得し、確認する。そしてリモート管理部430は、電力状態がSleep状態である場合、機器識別子をリモート制御部422に通知し、通知した機器識別子が示す機器の電力状態を電源ON状態に移行する旨をリモート制御部422に指示する。
またリモート管理部430は、リモート制御部422から起動通知に含まれる機器識別子及びIPアドレスとともに当該機器識別子が示す機器の電力状態が電源ON状態に移行された旨の通知を受け付ける。そしてリモート管理部430は、管理情報を参照し、受け付けた機器識別子と同一の機器識別子に対応付けられた電力状態、IPアドレスを、それぞれ電源ON状態、受け付けたIPアドレスに更新する。更にリモート管理部430は、更新したIPアドレスをデータ通信制御部424に通知し、印刷データの送信を開始(再開)する旨をデータ通信制御部424に指示する。
状態管理部432は、プリントサーバ410の電力状態を制御する。具体的には、状態管理部432は、通信部112を介して起動要求を受信すると電力状態を電源ON状態へ移行し、GoSleep要求を受信すると電力状態をSleep状態へ移行する。
また、PC404、406は、印刷データに印刷完了許容時刻を付加してプリントサーバ410に送信し、状態管理部432は、バッファ426に格納されている印刷データに印刷完了許容時刻に達した印刷データが存在する場合、プリントサーバ410の電力状態をSleep状態から電源ON状態に移行するようにしてもよい。この場合、データ通信制御部424は、電力状態が電源ON状態に移行した印刷機器に対して、バッファ426に格納されている全ての印刷データを送信することが望ましい。また、この場合、プリントサーバ410は、電力状態がSleep状態であっても時刻を管理する回路には給電を行う必要があることはいうまでもない。
図18は、第2実施形態のプリンタ450の一例を示す構成図である。図18に示すように、プリンタ450は、通信部152と、状態管理部158と、処理部462と、通知部464とを、備える。
通信部152及び状態管理部158は、第1実施形態のNAS150と同様である。
処理部462は、プリントサーバ410から印刷データを受信し、受信した印刷データを処理して、印刷データを印刷した印刷物を生成する。
通知部464は、処理部462がプリントサーバ410から受信した全ての印刷データの印刷が完了すると、プリントサーバ410に完了通知を送信する。
以上のように第2実施形態によれば、印刷データをプリントサーバ410に一時的に蓄積させることにより、プリンタ450の電力状態の移行回数を削減することができ、プリンタ450の消費電力量を削減できる。特に、電子写真方式のプリンタでは、トナーの定着のために定着ローラの温度を規定温度まで上昇させる必要があり、Sleep状態から電源ON状態への移行に要する消費電力が大きいため、消費電力量の削減効果も大きくなる。一方、プリントサーバ410の場合、Sleep状態から電源ON状態への移行に要する消費電力は、プリンタ450に比べ小さい。このため、第2実施形態のシステム構成を取ることによりシステム全体の消費電力量を削減することができる。
なお第2実施形態では、プリンタの台数が1台の場合を例に取り説明したが、複数台あってもよい。この場合、PC404、406は、印刷データをプリントサーバ410に送信する際に印刷を実行すべきプリンタを指定し、プリントサーバ410は、バッファ426に格納されている印刷データをプリンタ毎に管理する。そしてプリントサーバ410は、プリンタ毎に閾値を用意しておき、プリンタ毎に管理されている印刷データのデータ量が当該プリンタ用の閾値を越えた場合に、当該プリンタを電源ON状態に移行し、印刷データを送信すればよい。
また第2実施形態では、プリントサーバの台数が1台の場合を例に取り説明したが、複数台あってもよい。この場合、変形例1の変形と同様の変形が可能である。つまり、プリンタ450は、起動通知をブロードキャスト又はマルチキャストし、起動通知を受信したプリントサーバは、バッファに印刷データを格納していれば、当該印刷データをプリンタ450に送信すればよい。
上記各実施形態及び上記各変形例のTV110やプリントサーバ410は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
上記各実施形態及び上記各変形例のTV110やプリントサーバ410で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上記各実施形態及び上記各変形例のTV110やプリントサーバ410で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び上記各変形例のTV110やプリントサーバ410で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び上記各変形例のTV110やプリントサーバ410で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
上記各実施形態及び上記各変形例のTV110やプリントサーバ410で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
例えば、第2実施形態で説明した内容においても、変形例1〜3で説明したような変形も可能である。同様に、変形例6で説明した内容においても、更に変形例1〜3で説明したような変形も可能である。
なお上記各実施形態では、機器とは、ネットワークに接続されるノードであればよく、上述した例以外に、スマートフォン、ルータ、又は無線アクセスポイントなどであってもよい。
また上記各実施形態では、ネットワークは、イーサネット(登録商標)を用いたネットワークを例に取り説明したが、これに限定されるものではなく、無線LANやZigbeeなど他の技術を利用したネットワークであってもよい。
また上記各実施形態では、ネットワークプロトコルとしてIPv4を例に取り説明したが、これに限定されるものではなく、IPv6など他のものであってもよい。
以上説明したとおり、本実施形態によれば、通信相手の消費電力をより削減することができる。