以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置(例えば、図2のムーブ制御装置1)は、第1の記録媒体(例えば、図2の記録部45)に記録されている1以上のコンテンツデータのうちの処理対象のコンテンツデータを第1の記録媒体から第2の記録媒体(例えば、図2の記録部55)へ転送して記録する転送処理、および、転送処理により転送された処理対象のコンテンツデータを第1の記録媒体から消去する消去処理からなるムーブ処理のうちの、少なくとも転送処理を制御する制御手段(例えば、図2のムーブ制御部22)と、制御手段の制御により転送処理が開始される前と開始された後とにおける、第1の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化、および、第2の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化のうちの少なくとも一方の変化に基づいて、制御手段により制御された転送処理の正常性を判定する判定手段(例えば、図2のムーブ処理判定部24)とを備えることを特徴とする。
請求項2に記載の情報処理装置は、制御手段の制御により転送処理が開始される前の第1のタイミングにおいて、第1の記録媒体に記録されている、処理対象のコンテンツデータの識別情報と同一の識別情報の個数を示す第1の値(例えば、後述する数a)、および、第2の記録媒体に記録されている、処理対象のコンテンツデータの識別情報と同一の識別情報の個数を示す第2の値(例えば、後述する数b)を検出し、制御手段の制御により転送処理が開始された後の第2のタイミングにおいて、第1の記録媒体に記録されている、処理対象のコンテンツデータの識別情報と同一の識別情報の個数を示す第3の値(例えば、後述する数x)、および、第2の記録媒体に記録されている、処理対象のコンテンツデータの識別情報と同一の識別情報の個数を示す第4の値(例えば、後述する数y)を検出する検出手段(例えば、図2のムーブ情報管理部23)をさらに備え、判定手段は、検出手段により検出された、第1の値と第3の値との差分値、および、第2の値と第4の値との差分値のうちの少なくとも一方の差分値に基づいて、制御手段により制御された転送処理の正常性を判定することを特徴とする。
請求項3に記載の情報処理装置は、コンテンツデータが、デジタルテレビジョン放送番組を構成するデータであり、識別情報が、Original Network ID、Service ID、Event ID(例えば、後述するように、これらの情報は図6に示すnetwork information tableに含まれる)、およびprogram_starting_date_time(例えば、図7の中央に記載のprogram_starting_date_time)を含み、検出手段が、Original Network ID、Service ID、Event ID、およびprogram_starting_date_timeの全てが一致する識別情報同士を同一であるとみなすことで、第1の値乃至第4の値のそれぞれを検出することを特徴とする。
請求項4に記載の情報処理装置(例えば、図2のムーブ制御装置1)は、第1の記録媒体が、第1の他の情報処理装置に内蔵される記録媒体、または第1の他の情報処理装置(例えば、図2のムーブ元装置2)に装着される外部の記録媒体であり、第2の記録媒体が、第2の他の情報処理装置(例えば、図2のムーブ先装置3)に内蔵される記録媒体、または第2の他の情報処理装置に装着される外部の記録媒体であり、第1の他の情報処理装置と第2の他の情報処理装置とのそれぞれとの間で個別に通信を行う通信手段(例えば、図2のインターフェース(I/F)21)をさらに備え、制御手段は、通信手段を介して、ムーブ処理のうちの、第1の他の情報処理装置と第2の他の情報処理装置とが実行する転送処理を制御し、検出手段は、通信手段を介して、第1の値乃至第4の値を検出することを特徴とする。
請求項6に記載の情報処理装置(例えば、図22のムーブ元装置70であり、制御手段はムーブ制御部72であり、判定手段はムーブ処理判定手段74であり、検出手段はムーブ情報管理部73)は、第1の記録媒体が、情報処理装置自身に内蔵される記録媒体、または情報処理装置に装着される外部の記録媒体であり、第2の記録媒体が、他の情報処理装置(例えば、図22のムーブ先装置3)に内蔵される記録媒体、または他の情報処理装置に装着される外部の記録媒体であり、他の情報処理装置との間で通信を行う通信手段(例えば、図22のインターフェース(I/F)71)と、ムーブ処理のうちの、処理対象のコンテンツデータを第1の記録媒体から読み出して、他の情報処理装置に通信手段を介して転送するまでの転送処理を少なくとも実行する実行手段(例えば、図22のムーブ実行部75)とをさらに備え、制御手段は、ムーブ処理のうちの、実行手段が実行する転送処理を制御するとともに、他の情報処理装置が実行する転送処理を通信手段を介して制御し、検出手段は、通信手段を介して、第1の値乃至第4の値のうちの第2の値と第4の値を検出することを特徴とする。
請求項8に記載の情報処理装置(例えば、図23のムーブ元装置80であり、制御手段はムーブ制御部82であり、判定手段はムーブ処理判定手段84であり、検出手段はムーブ情報管理部83)は、第1の記録媒体が、他の情報処理装置(例えば、図23のムーブ元装置2)に内蔵される記録媒体、または他の情報処理装置に装着される外部の記録媒体であり、第2の記録媒体が、情報処理装置自身に内蔵される記録媒体、または情報処理装置に装着される外部の記録媒体であり、他の情報処理装置との間で通信を行う通信手段(例えば、図23のインターフェース(IF)81)と、ムーブ処理のうちの、他の情報処理装置から転送されてきた処理対象のコンテンツデータを通信手段を介して取得し、第2の記録媒体に記録させるまでの転送処理を少なくとも実行する実行手段(例えば、図23のムーブ実行部85)とをさらに備え、制御手段は、ムーブ処理のうちの、実行手段が実行する転送処理を制御するとともに、他の情報処理装置が実行する転送処理を通信手段を介して制御し、検出手段は、通信手段を介して、第1の値乃至第4の値のうちの第1の値と第3の値を検出することを特徴とする。
請求項10に記載の情報処理方法は、第1の記録媒体に記録されている1以上のコンテンツデータのうちの処理対象のコンテンツデータを第1の記録媒体から第2の記録媒体へ転送して記録する転送処理、および、転送処理により転送された処理対象のコンテンツデータを第1の記録媒体から消去する消去処理からなるムーブ処理のうちの、少なくとも転送処理を制御する制御ステップ(例えば、図15のステップS6とステップS13の処理)と、 制御ステップの制御により転送処理が開始される前と開始された後とにおける、第1の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化、および、第2の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化のうちの少なくとも一方の変化に基づいて、制御ステップにより制御された転送処理の正常性を判定する判定ステップ(例えば、図15のステップS12の処理)とを含むことを特徴とする。
請求項11に記載のプログラムは、第1の記録媒体に記録されている1以上のコンテンツデータのうちの処理対象のコンテンツデータを第1の記録媒体から第2の記録媒体へ転送して記録する転送処理、および、転送処理により転送された処理対象のコンテンツデータを第1の記録媒体から消去する消去処理からなるムーブ処理のうちの、少なくとも転送処理を制御する制御ステップ(例えば、図15のステップS6とステップS13の処理)と、制御ステップの制御により転送処理が開始される前と開始された後とにおける、第1の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化、および、第2の記録媒体に記録されている識別情報のうちの、処理対象のコンテンツデータの識別情報と同一の識別情報の個数の変化のうちの少なくとも一方の変化に基づいて、制御ステップにより制御された転送処理の正常性を判定する判定ステップ(例えば、図15のステップS12の処理)とを含む処理をコンピュータに実行させることを特徴とする。
図1は、本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。
図1における通信システムは、ムーブ制御装置1、ムーブ元装置2およびムーブ先装置3のそれぞれが、IEEE(Institute of Electrical and Electronics Engineers)1394シリアスバス11(以下、単にバス11と称する)を介して相互に接続されて構成されている。
即ち、図1においては、ムーブ制御装置1、ムーブ元装置2およびムーブ先装置3が、その順番で、バス11を介してシリーズに接続されており、それぞれは、IEEE1394の規格に従って相互に通信を行う。なお、図1において、ムーブ制御装置1とムーブ元装置2との間、ムーブ元装置2とムーブ先装置3との間では、直接、データ(情報)のやり取りが行われる。また、ムーブ制御装置1とムーブ先装置3との間では、ムーブ元装置2を介して、データのやり取りが行われる。
ムーブ制御装置1は、各種のコマンドを使用して、ムーブ元装置2とムーブ先装置3のそれぞれをバス11を介して個別に制御する。即ち、ムーブ元装置2は、ムーブ制御装置1から所定のコマンドが発行された場合、そのコマンドに対応する処理を実行する。同様に、ムーブ先装置3は、ムーブ制御装置1から所定のコマンドが発行された場合、そのコマンドに対応する処理を実行する。なお、コマンドの具体例やコマンドに対応する処理の具体例については、後述する。
図2は、このような通信システムの機能的構成例を表している。即ち、図2は、ムーブ制御装置1、ムーブ元装置2およびムーブ先装置3のそれぞれの機能的構成例を表している。
ムーブ制御装置1は、インターフェース(I/F(Interface))21、ムーブ制御部22、ムーブ情報管理部23、およびムーブ処理判定部24から構成される。
インターフェース21は、ムーブ制御部22またはムーブ情報管理部23から供給されたコマンドを、ムーブ元装置2またはムーブ先装置3へバス11を介して送信する。また、インターフェース21は、送信したコマンドに対する、ムーブ元装置2またはムーブ先装置3からの応答(情報)をバス11を介して受信し、コマンドを発行したブロック(ムーブ情報管理部23またはムーブ処理判定部24)へ供給する。
ムーブ制御部22は、インターフェース21およびバス11を介して、ムーブ元装置2とムーブ先装置3とが実行するムーブ処理を制御する。
即ち、例えば、ムーブ制御部22は、ムーブ元装置2(正確には、後述する記録部45)に記憶されている1以上のコンテンツデータの中からムーブ処理の対象となるコンテンツデータ(以下、ムーブ対象コンテンツデータと称する)を特定し、そのムーブ対象コンテンツデータに対するムーブ処理を開始させるコマンド(以下、ムーブ処理開始コマンドと称する)を、インターフェース21を介してムーブ元装置2およびムーブ先装置3のそれぞれに供給する。
すると、ムーブ元装置2とムーブ先装置3はムーブ処理を実行する。即ち、後述するように、ムーブ元装置2は、ムーブ対象コンテンツデータを記録部45から読み出し、ムーブ先装置3へバス11を介して送信(転送)する。ムーブ先装置3は、ムーブ元装置2から転送されてきたムーブ対象コンテンツデータを受信し、それを記録部55に記憶させる。ムーブ元装置2はまた、転送済みのムーブ対象コンテンツデータを記録部45から消去する。
また、例えば、このようなムーブ処理中に異常が発生した場合(後述するように、そのことがムーブ処理判定部24からムーブ制御部22に通知された場合)、ムーブ制御部22は、ムーブ対象コンテンツデータに対するムーブ処理を終了させるコマンド(以下、ムーブ処理停止コマンドと称する)を、インターフェース21を介してムーブ元装置2およびムーブ先装置3のそれぞれに供給する。
すると、ムーブ元装置2とムーブ先装置3はムーブ処理を停止する。従って、例えば、ムーブ元装置2がムーブ対象コンテンツデータを消去する前に、ムーブ制御部22がムーブ処理停止コマンドを発行することで、ムーブ対象コンテンツデータの損失を防止することが可能になる。
ところで、詳細については後述するが、ムーブ元装置2およびムーブ先装置3のそれぞれは、自身に記憶されているコンテンツデータを識別するための識別情報を記憶している。
そこで、ムーブ情報管理部23は、例えば、ムーブ元装置2およびムーブ先装置3から、それぞれに記録されているコンテンツデータの識別情報(詳細は後述する)を取得するためのコマンド(以下、識別情報取得コマンドと称する)をインターフェース21とバス11を介してムーブ元装置2およびムーブ先装置3のそれぞれに供給する。
すると、ムーブ元装置2とムーブ先装置3のそれぞれは、その識別情報取得コマンドに対する応答として、それぞれに記録されている識別情報をバス11を介して送信してくる。そこで、ムーブ情報管理部23は、それらの識別情報をインターフェース21を介して取得する。
例えば、ムーブ情報管理部23は、ムーブ処理開始コマンドが発行される前(以下、ムーブ処理前と称する)に、ムーブ元装置2およびムーブ先装置3に対して識別情報取得コマンドを発行することで、ムーブ元装置2とムーブ先装置3のそれぞれに記憶されている全てのコンテンツデータに対する識別情報を取得する。
ムーブ情報管理部23は、ムーブ対象コンテンツデータが特定された場合、取得した全ての識別情報のうちの、そのムーブ対象コンテンツデータの識別情報を一時的に保持する(図示せぬ内部の記憶部に記憶させる)。
さらに、このとき、ムーブ情報管理部23は、例えば、ムーブ元装置2から取得した識別情報のそれぞれと、ムーブ対象コンテンツデータの識別情報とを比較する。次に、ムーブ情報管理部23は、その比較結果に基づいて、ムーブ元装置2から(ムーブ処理開始前に)取得した識別情報のうちの、ムーブ対象コンテンツデータの識別情報自身を含む、ムーブ対象コンテンツデータの識別情報と同一の識別情報の数a(aは、1以上の整数値)を検出する。そして、ムーブ情報管理部23は、その数aを、ムーブ元装置2にその時点で(ムーブ処理前に)記憶されている、ムーブ対象コンテンツデータ自身を含む、ムーブ対象コンテンツデータと同一のコンテンツデータの総数とみなしてムーブ処理判定部24へ供給する。
同様に、ムーブ情報管理部23は、例えば、ムーブ先装置3から取得した識別情報のそれぞれと、一時的に保持しているムーブ対象コンテンツデータの識別情報とを比較する。次に、ムーブ情報管理部23は、その比較結果に基づいて、ムーブ先装置3から(ムーブ処理開始前に)取得した識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の数b(bは、0以上の整数値)を検出する。そして、ムーブ情報管理部23は、その数bを、ムーブ先装置3にその時点で(ムーブ処理前に)記憶されている、ムーブ対象コンテンツデータと同一のコンテンツデータの総数とみなしてムーブ処理判定部24へ供給する。
このように、本実施の形態においては、同一のコンテンツデータとは、同一の識別情報を有するコンテンツデータ同士を指す。また、同一の識別情報とは、その内容のうちの予め指定された内容の全てが同一の識別情報同士を指す。なお、同一の識別情報の具体例については後述する。
また、ムーブ情報管理部23は、ムーブ制御部22によりムーブ処理開始コマンドが発行されると、ムーブ先装置3に対して、そのムーブ処理開始コマンドに対応するムーブ対象コンテンツデータの識別情報の追加(記憶)を行わせるためのコマンド(以下、識別情報追加コマンドと称する)をインターフェース21とバス11を介してムーブ先装置3へ供給する。
すると、後述するように、ムーブ先装置3は、ムーブ対象コンテンツデータの識別別情報を追加する(後述する記録部55に記憶させる)。
このようにして、ムーブ制御部22によりムーブ処理開始コマンドが発行されて、そのムーブ処理開始コマンドに対応するムーブ対象コンテンツデータの識別情報がムーブ先装置3に追加(記憶)された後(以下、ムーブ処理開始後と称する)の所定のタイミングで、ムーブ情報管理部23は、ムーブ処理開始前に実行した一連の処理と同様の処理を実行する。
即ち、ムーブ処理開始後の所定のタイミングにおいても、ムーブ情報管理部23は、例えば、ムーブ元装置2とムーブ先装置3のそれぞれに対して識別情報取得コマンドを発行することで、ムーブ元装置2とムーブ先装置3のそれぞれに記憶されている全てのコンテンツデータに対する識別情報を取得する。
さらに、このとき、ムーブ情報管理部23は、例えば、ムーブ元装置2から取得した識別情報のそれぞれと、一時的に保持しているムーブ対象コンテンツデータの識別情報とを比較する。次に、ムーブ情報管理部23は、その比較結果に基づいて、ムーブ元装置2から(ムーブ処理開始後に)取得した識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の数x(xは、0以上の整数値)を検出する。そして、ムーブ情報管理部23は、その数xを、ムーブ元装置2にその時点で(ムーブ処理後に)記憶されている、ムーブ対象コンテンツデータと同一のコンテンツデータの総数とみなしてムーブ処理判定部24へ供給する。
同様に、ムーブ情報管理部23は、例えば、ムーブ先装置3から取得した識別情報のそれぞれと、一時的に保持しているムーブ対象コンテンツデータの識別情報とを比較する。次に、ムーブ情報管理部23は、その比較結果に基づいて、ムーブ先装置3から(ムーブ処理開始後に)取得した識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の数y(yは、0以上の整数値)を検出する。そして、ムーブ情報管理部23は、その数yを、ムーブ先装置3にその時点で(ムーブ処理後に)記憶されている、ムーブ対象コンテンツデータと同一のコンテンツデータの総数としてムーブ処理判定部24へ供給する。
このようにして、ムーブ処理判定部24には、ムーブ処理開始前には数aと数bが、ムーブ処理開始後には数xと数yが、それぞれムーブ情報管理部23から供給される。
そこで、ムーブ処理判定部24は、ムーブ情報管理部23から供給された、数a、数b、数x、および数yに基づいて、ムーブ処理の正常性(正常であるか異常であるか)を判定し、その判定結果をムーブ制御部22に通知する。
具体的には、例えば、本実施の形態においては、後述するように、ムーブ元装置2に記憶されているムーブ対象コンテンツデータの識別情報は、ムーブ対象コンテンツデータの全てがムーブ元装置2から送信された(ムーブ先装置3へ転送された)後に消去される。
なお、以下、ムーブ処理が実行されている期間のうちの、ムーブ対象コンテンツデータがムーブ元装置2から送信されている(ムーブ先装置3へ転送されている)期間を、転送処理中と称し、ムーブ対象コンテンツデータの全てがムーブ元装置2から送信された(ムーブ先装置3へ転送された)後を、転送処理後と称する。即ち、本実施の形態においては、後述するように、ムーブ元装置2に記憶されているムーブ対象コンテンツデータの識別情報は、転送処理後に消去される。
そこで、例えば、数xと数yが、ムーブ情報管理部23から提供されるタイミングが、転送処理中の場合、ムーブ処理判定部24は、次の式(1)を演算する。即ち、ムーブ処理判定部24は、次の式(1)を演算することで、ムーブ処理開始前後における、ムーブ先装置3内の、ムーブ対象コンテンツデータと同一のコンテンツデータの増減数(正確には、対応する識別情報の増減数)を演算する。
b-y ・・・(1)
そして、ムーブ処理判定部24は、式(1)の演算結果が「−1」である場合、ムーブ処理は正常であると判定し、「−1」以外の場合、ムーブ処理は異常である(正常でない)と判定する。
また、例えば、数xと数yが、ムーブ情報管理部23から提供されるタイミングが、転送処理後の場合、ムーブ処理判定部24は、上述した式(1)を演算するとともに、次の式(2)も演算する。即ち、ムーブ処理判定部24は、ムーブ処理開始前後における、ムーブ元装置2内の、ムーブ対象コンテンツデータと同一のコンテンツデータの増減数(正確には、対応する識別情報の増減数)を演算する。
a-x ・・・(2)
そして、ムーブ処理判定部24は、式(1)の演算結果が「−1」であり、かつ、式(2)の演算結果が「1」である場合、ムーブ処理は正常であると判定し、それ以外の演算結果(組み合わせ)の場合、ムーブ処理は異常である(正常でない)と判定する。
特に、ムーブ処理判定部24は、例えば、式(1)と式(2)のいずれの演算結果も「0」である場合、ムーブ処理は完全に失敗であると判定することができる。また、例えば、ムーブ処理判定部24は、式(1)の演算結果が「−1」であり、かつ、式(2)の演算結果が「0」である場合、ムーブ処理は中途半端な処理を残したまま異常終了したと判定することができる。
より具体的には、例えば、一般的には、ムーブ処理開始前の時点では、ムーブ元装置2には、ムーブ対象コンテンツデータの識別情報自身以外は、ムーブ対象コンテンツデータの識別情報と同一の識別情報は1つも記憶されておらず、かつ、ムーブ先装置3には、ムーブ対象コンテンツデータの識別情報と同一の識別情報は1つも記憶されていない場合が多い。このような場合、ムーブ情報管理部23は、数aとして「1」を、数bとして「0」を、それぞれ検出してムーブ処理判定部24に提供する。
従って、このような場合、例えば、ムーブ処理開始後であって、転送処理中に、数yとして「1」がムーブ情報管理部23から提供されたとき、上述した式(1)の演算結果は「−1」になるので、ムーブ処理判定部24は、ムーブ処理は正常であると判定する。これに対して、数yとして「1」以外の数(「0」等)がムーブ情報管理部23から提供されたとき、ムーブ処理判定部24は、ムーブ処理は異常であると判定する。
また、このような場合、例えば、ムーブ処理開始後であって、さらに、転送処理後に、数xと数yの組み合わせ(x,y)として(0,1)が、ムーブ情報管理部23から提供されたとき、上述した式(1)の演算結果は「−1」となり、かつ、上述した式(2)の演算結果は「1」となるので、ムーブ処理判定部24は、ムーブ処理は正常であると判定する。これに対して、組み合わせ(x,y)として(0,1)以外の組み合わせがムーブ情報管理部23から提供されたとき、ムーブ処理判定部24は、ムーブ処理は異常であると判定する。
なお、ムーブ処理判定部24は、ムーブ処理は異常であると判定した場合、その判定結果をムーブ制御部22に通知する。この場合、上述したように、ムーブ制御部22は、ムーブ処理停止コマンドを、インターフェース21を介してムーブ元装置2およびムーブ先装置3のそれぞれに供給する。
すると、ムーブ元装置2とムーブ先装置3はムーブ処理を停止する。従って、例えば、ムーブ元装置2がムーブ対象コンテンツデータを消去する前に、ムーブ処理判定部24がムーブ処理の正常/異常の判定処理を実行し、その判定結果をムーブ制御部22に通知することで(ムーブ制御部22がその通知を受けてムーブ処理停止コマンドを発行することで)、上述したように、ムーブ対象コンテンツデータの損失を防止することが可能になる。
次に、ムーブ元装置2の構成の詳細について説明する。ムーブ元装置2は、インタフェース(I/F)41、コマンド処理部42、ムーブ実行部43、識別情報管理部44、および、記録部45から構成される。
インターフェース41は、ムーブ制御装置1からバス11を介して送信されてくるコマンドを受信し、コマンド処理部42へ供給する。また、インターフェース41は、コマンド処理部42から供給される、コマンドに対する応答をムーブ制御装置1へ送信する。
さらに、インターフェース41は、ムーブ実行部43から供給されるムーブ対象コンテンツデータをムーブ先装置3へ送信する。なお、インターフェース41は、その他、ムーブ制御装置1とムーブ先装置3の通信を中継する役割も果たす。
コマンド処理部42は、インターフェース41から供給されたコマンドを認識し、各コマンドに対応する処理を行うブロック(ムーブ実行部43または識別情報管理部44)に対して、処理の実行を指示する。例えば、インターフェース41から供給されたコマンドが上述した識別情報取得コマンドであった場合、コマンド処理部42は、識別情報管理部44に対して識別情報取得処理の指示を行う。また、例えばインターフェース41から供給されたコマンドが上述したムーブ処理開始コマンドまたはムーブ処理停止コマンドであった場合、コマンド処理部42は、ムーブ実行部43に対してムーブ処理の開始または停止の指示を行う。
ムーブ実行部43は、コマンド処理部42からの指示に対する処理を実行し、その指示に対する応答をコマンド処理部42に供給する。例えば、コマンド処理部42からのムーブ処理開始の指示に従い、ムーブ処理を実行する。即ち、ムーブ実行部43は、記録部45から、ムーブ対象コンテンツデータを取得し、インターフェース41を介してムーブ先装置3に送信(転送)する(転送処理を実行する)。
さらに、ムーブ実行部43は、転送処理を正常に終了した場合、識別情報管理部44に対して、ムーブ対象コンテンツデータに対応する識別情報の消去を指示し、記録部45に記録されているムーブ対象コンテンツデータの消去を行う。
また、例えば、上述したように、ムーブ制御装置1によりムーブ処理は異常であると判定されて、コマンド処理部42からムーブ処理停止が指示された場合、ムーブ実行部43は、ムーブ処理を停止する。即ち、ムーブ実行部43は、記録部45に記録されているムーブ対象コンテンツデータの消去の処理を禁止する(消去しない)とともに、識別情報管理部44に対して、ムーブ対象コンテンツデータに対応する識別情報の消去の指示も禁止する(指示しない)。
識別情報管理部44は、コマンド処理部42からの指示に対する処理を実行し、その指示に対する応答をコマンド処理部42に供給する。例えば、コマンド処理部42からの識別情報取得処理の指示に従い、記録部45からコンテンツデータの識別情報を取得し、ムーブ制御装置1からの識別情報取得コマンドの応答としてコマンド処理部42およびインターフェース41を介してムーブ制御装置1に送信する。
また、識別情報管理部44は、ムーブ実行部43からの識別情報の消去の指示に従い、記録部45に記録されている、ムーブ対象コンテンツデータに対応する識別情報の消去を行う。
記録部45は、各種のコンテンツデータ、および、それらに対応する識別情報を記録する(記憶している)。
次にムーブ先装置の構成の詳細について説明する。ムーブ先装置3は、インターフェース(I/F)51、コマンド処理部52、ムーブ実行部53、識別情報管理部54、および記録部55から構成される。
インターフェース51は、ムーブ制御装置1からバス11(およびムーブ元装置2)を介して送信されてくるコマンドを受信し、コマンド処理部52へ供給する。また、インターフェース51は、コマンド処理部52から供給される、コマンドに対する応答をバス111(およびムーブ元装置2)を介してムーブ制御装置1へ送信する。
さらに、インターフェース51は、ムーブ元装置2から送信されてくるムーブ対象コンテンツデータを受信し、ムーブ実行部53へ供給する。
コマンド処理部52は、インターフェース51から供給されたコマンドを認識し、各コマンドに対応する処理を行うブロック(ムーブ実行部53または識別情報管理部54)に対して、処理の実行を指示する。例えば、インターフェース51から供給されたコマンドが、上述した識別情報取得コマンドまたは識別情報追加コマンドであった場合は、識別情報管理部54に対して識別情報取得処理または識別情報追加処理の指示を行う。また例えば、インターフェイス51から供給されたコマンドが、ムーブ処理開始コマンドまたはムーブ処理停止コマンドであった場合、コマンド処理部52は、ムーブ実行部53に対してムーブ処理の開始または停止の指示を行う。
ムーブ実行部53は、コマンド処理部52からの指示に対する処理を実行し、その指示に対する応答をコマンド処理部52に供給する。例えば、コマンド処理部52からのムーブ処理開始の指示に従い、ムーブ処理を実行する。即ち、ムーブ実行部53は、ムーブ元装置2から送信されてくるコンテンツデータを、バス11およびインターフェース51を介して取得し、記録部55へ記録する。また、コマンド処理部51からのムーブ処理停止の指示に従い、ムーブ処理を停止する。
識別情報管理部54は、コマンド処理部52からの指示に対する処理を実行し、その指示に対する応答をコマンド処理部52に供給する。例えば、コマンド処理部52からの識別情報取得処理の指示に従い、記録部55からコンテンツデータの識別情報を取得し、ムーブ制御装置1からの識別情報取得コマンドの応答としてコマンド処理部52およびインターフェース51を介してムーブ制御装置1へ送信する。
また、識別情報管理部54は、コマンド処理部52からの識別情報追加の指示に従い、ムーブ対象コンテンツデータに対応する識別情報を記録部55に記録する。
記録部55は、各種のコンテンツデータおよび、それらに対応する識別情報を記録する。
以上、本発明を適用した通信システムの構成例について説明した。
次に、この通信システムが利用するコンテンツデータの識別情報の具体例について説明する。
図3は、ムーブ元装置2の記録部45とムーブ先装置3の記録部55のそれぞれが有する領域のうちの、識別情報が格納される領域(以下、識別情報リストと称する)の構成例を示す図である。
図3に示されるように、識別情報リストは、list_descriptor_length,list_type,attributes,list_specific_imformation_length,list_specific_imformation,number_of_entry_descriptors,entry_descriptor、およびextended_informationから構成されている。
list_descriptor_lengthは、識別情報リストのサイズ(バイト単位)を表す領域である。
list_typeは、識別情報リストのタイプと、識別情報リストを構成する各領域のフォーマットを表す領域である。
attributesは、識別情報リストの属性を表す領域である。
list_specific_imformation_lengthは、その後に続くlist_specific_imformationのサイズを表すの領域である。
list_specific_imformationは、list_typeに設定された、識別情報リストのタイプ固有の情報が含まれる領域である。
number_of_entry_descriptorsは、その後に続くentry_descriptorの数n(nは任意の整数値)を表す領域である。
entry_descriptor[0]乃至[n-1]のそれぞれには、本実施の形態においては、1つのコンテンツデータに関する各種情報(識別情報を含む)が設定される。即ち、本実施の形態では、entry_descriptorの個数n(number_of_entry_descriptorsに記述される個数n)は、この識別情報リストを有する記録部45または記録部55に記録されているコンテンツデータの個数を示すことになる。
このようなentry_descriptorの詳細な構成例は、図4乃至図7に示されているが、その詳細については後述する。
extended_informationは、将来的に識別情報リストの構成が拡張された場合に、情報を追加する領域として設けられている。なお、extended_informationは識別情報リストにとって必須な構成要素(領域)ではない。このため、図3の例では、extended_informationの後ろにoptionalと言う記述が施されている。同様に、図4以降の図面においても、extended_informationのような必須な構成要素ではない領域には、optionalという記述が施されている。
図4は、一般的なentry_descriptor[k](kは、0乃至n-1のうちの任意の整数値)の構成例を示す図である。
entry_descriptor[k]は、entry_descriptor_length,entry_type,attributes,child_list_ID,object_ID,entry_specific_information_length,entry_specific_information、およびextended_informationから構成される。
entry_descriptor_lengthは、entry_descriptor[k]のサイズ(バイト単位)を表す領域である。
entry_typeは、entry_descriptor[k]のタイプと、entry_descriptor[k]を構成する各領域のフォーマットを表す領域である。
attributesは、entry_descriptor[k]の属性を表す領域である。
child_list_IDは、child list descriptor(子識別情報リスト)を識別するIDが記述される領域である。
object_IDは、entry_descriptor[k]を識別するための値が記述される領域である。
entry_specific_information_lengthは、その後に続くentry_specific_informationのサイズ(バイト単位)を表す領域である。
entry_specific_informationは、entry_typeの記述内容により、フォーマットや内容が変化し、entry_typeの記述内容に応じた情報が記述される領域である。
extended_informationは、将来的に識別情報リストの構成が拡張された場合に、情報を追加する領域として設けられている。
以上、図4を参照して、一般的なentry_descriptor[k]の構成例を説明した。ただし、本実施の形態においては、上述したように、entry_descriptor[0]乃至[n-1]のいずれにも所定の1つのコンテンツデータに関する情報(識別情報等)が記述される。従って、コンテンツデータが、例えば、デジタルテレビジョン放送番組を構成するデータ(ビデオデータと、それに対応する音声データ等)である場合には、entry_descriptor[k]は、例えば、図5に示されるように構成される。
即ち、図5は、所定の1つのデジタルテレビジョン放送番組に関する情報(識別情報等)が記述されるentry_descriptor[k]の構成例を示している。なお、このような、デジタルテレビジョン放送番組を識別する識別情報が記載される、本実施の形態のentry_descriptorは、図5の例では、他のentry_descriptorと区別するために、Disc Subunit Entry Descriptorと記述されている。図4に示すentry_descriptor_lengthは、図5においては、descroptor_lengthとして示されている。また、図5のentry typeは、図4のentry_typeに対応し、図5のattributeは、図4のattributesに対応し、図5のobject IDは、図4のobject_IDに対応する。さらに、図5のsize_of_entry_specific_informationは、図4のentry_specific_information_lengthに対応し、図5のentry_specific_informationは、図4のentry_specific_informationに対応する。なお、図5に示すDisc Subunit Entry Descriptorには、図4に示すchild_list_IDとextended_informationは含まれていない。
本実施の形態においては、図5の左側に示されるentry_descriptor(Disc Subunit Entry Descriptor)[k]のうちのentry_specific_informationに識別情報が記述されている。
このentry_specific_informationの詳細な構成例が、図5の右側に示されている。
図5の右側に示されるように、entry_specific_informationは、non_info_block_fields_length,disc_subunit_object_attributes,video_signal_mode_info_block,video_stream_format_subtype_info_block,size_indicator_info_block,time_stamp_info_block(content creation time),program_attribute_info_block、および、name_info_blockから構成される。
non_info_block_fields_lengthは、後述するvideo_signal_mode_info_blockのサイズ(バイト単位)を示す領域である。
disc_subunit_object_attributesは、disc subunit object(即ち、本実施の形態においては、対応するコンテンツデータ)の属性の設定を指定する領域である。
video_stream_format_subtype_info_blockは、対応するコンテンツデータのサブタイプを示す領域である。本実施の形態においては、このvideo_stream_format_subtype_info_blockに、対応するコンテンツデータ(disc subunit object)の識別情報の一部が含まれる。video_stream_format_subtype_info_blockの詳細な構成例は図6に示されているが、その説明については後述する。
size_indicator_info_blockは、対応するコンテンツデータのクロック時間を示す領域である。
time_stamp_info_block(content creation time)は、対応するコンテンツデータの作成時刻を示す領域である。
program_attribute_info_blockは、対応するコンテンツデータ(デジタルテレビジョン放送番組)の情報を定義する領域である。本実施の形態においては、このprogram_attribute_info_block に、対応するコンテンツデータの識別情報の一部が含まれる。program_attribute_info_block の詳細な構成例は図7に示されているが、その説明については後述する。
name_info_blockは、対応するコンテンツデータのタイトルを示す領域である。
次に、図6を参照して、図5のentry_specific_informationのうちの、識別情報の一部が含まれるvideo_stream_format_subtype_info_blockの詳細な構成例について説明する。即ち、図6は、video_stream_format_subtype_info_blockの詳細な構成例を示す図である。正確には、図6の左側には、図5にも示されているentry_specific_informationが示されており、図6の右側に、video_stream_format_subtype_info_blockの詳細な構成例が示されている。
図6の右側に示されるように、video_stream_format_subtype_info_blockは、compound_length,info_block_type,primary_field_length,FI,NIT,Org_network,Transport_id,Service_id,Country_code,Reserve,format_identifier,network information table、およびstream_format_nameから構成される。
compound_lengthは、この情報ブロック(即ち、video_stream_format_subtype_info_block)の、compound_length自身を除いたサイズ(バイト単位)を示す領域である。
info_block_typeは、この情報ブロックがvideo_stream_format_subtype_info_blockであることを示す領域である。
primary_field_lengthは、後述する、FI,NIT,Org_network,Transport_id,Service_id,Country_code,Reserve,format_identifier,network information table、およびstream_format_nameを合わせた領域のサイズ(バイト単位)を示す領域である。
FIは、次に続くformat_identifierに有効な情報が設定されているか否かを示す領域である。
NITは、次に続くnetwork information tableに有効な情報が設定されているか否かを示す領域である。
Org_network,Transport_id,Service_id、およびCountry_codeのそれぞれは、後述するnetwork information tableにOriginal Network ID,Service ID,Transport ID、およびCountry codeのそれぞれに有効な情報が設定されているか否かを示す領域である。
Reserveは、予備領域である。ただし、本実施の形態では、Reserveの少なくとも一部が、後述するnetwork information tableに含まれるEvent IDに有効な情報が設定されているか否かを示す領域として利用される。
format_identifierには、対応するコンテンツデータのフォーマット識別情報が含まれている。
network information tableは、対応するコンテンツデータのMPEG2−TS(Moving Picture Experts Group2−Transport Stream)のタイプを示す領域であり、Original Network ID,Transport ID,Service ID,Event ID、およびCountry codeから構成されている。
本実施の形態においては、このnetwork information tableに記述されている情報のうちの、Original Network ID,Service ID、および、Event IDが、対応するコンテンツデータの識別情報の一部として利用される。
stream_format_nameは、コンテンツデータのフォーマット名を示す領域である。
次に、図7を参照して、図5のentry_specific_informationのうちの、識別情報の一部が含まれるprogram_attribute_info_blockの詳細な構成例について説明する。即ち、図7は、program_attribute_info_block の詳細な構成例を示す図である。正確には、図7の左側には、図5にも示されているentry_specific_informationが示されており、図7の中央に、entry_specific_information に含まれるprogram_attribute_info_blockの詳細な構成例が示されている。そして、図7の右側に、program_attribute_info_blockのうちの後述するprgram_starting_data_timeの詳細な構成例が示されている。
図7の中央に示されるように、program_attribute_info_blockは、compound_length,info_block_type,primary_field_length,program_starting_date_time,program_duration,parental_rating,program_modes、および、service_nameから構成されている。
compound_lengthは、この情報ブロック(即ち、program_attribute_info_block)の、compound_length自身を除いたサイズ(バイト単位)を示す領域である。
info_block_typeは、この情報ブロックがprogram_attribute_info_blockであることを示す領域である。
primary_field_lengthは、後述する、program_starting_date_time(識別情報の1つ),program_duration,parental_rating,program_modes、およびservice_nameを合わせた領域のサイズ(バイト単位)を示す領域である。
program_starting_date_timeは、本実施の形態においては、識別情報の1つとして利用され、図7の右側の図に示されるように、year(MSB),year(LSB),month,day,hours,minutes、および、secondsから構成されている。即ち、program_starting_date_timeは、対応するコンテンツデータ(デジタルテレビジョン放送番組)の放送開始日時を示す領域である。
year(MSBとLSB),month,day,hours,minutes、およびsecondsのそれぞれは、年、月、日、時間、分、および秒のそれぞれを示している。
program_durationは、放送番組の放送時間(開始から終了までの時間)を示す領域である。
parental_ratingは、放送番組に視聴年齢制限が付けられているかを示す領域である。
program_modesは、対応するコンテンツデータ(デジタルテレビジョン放送番組)がHD(High Definition) モードとSD(Standard Definition) モードのうちのいずれのモードで放送されたのかを示す領域である。
service_nameは、対応するコンテンツデータ(デジタルテレビジョン放送)を放送した放送局のサービス名を示す領域である。
以上、説明したように、本実施の形態においては、コンテンツデータがデジタルテレビジョン放送番組のデータである場合、1つのコンテンツデータを識別する識別情報として、識別情報リストに記録(記述)される情報のうちの、そのコンテンツデータに対応するentry_descriptorに記述される情報の少なくとも一部が利用される。具体的には、例えば、ここでは、上述したように、1つのentry_descriptor[k]のうちの、network information table(図6)に記述される、Original Network ID,Service ID、および、Event ID、並びに、program_attribute_info_block(図7)に記述されるprogram_starting_date_timeが、そのentry_descriptor[k]に対応するコンテンツデータの識別情報として利用される。
従って、上述したように、ムーブ情報管理部23(図2)は、上述した識別情報取得コマンドとして、記録部45と記録部46(図2)のそれぞれに設けられた識別情報リスト(図3)から、Original Network ID,Service ID,Event ID、および、program_starting_date_timeを取得するコマンドを発行する必要がある。
このようなコマンドは、例えば、AV/Cコマンド(AV/C Digital Interface Command Set)で実現が可能である。そこで、以下、AV/Cコマンドについて説明する。
ところで、上述したように、図1の例では、IEEE1394シリアスバス11が利用されているので、AV/Cコマンドやコンテンツデータ等のデータは、IEEE1394に規定されているアシンクロナスパケットとして送受信されることになる。
このアシンクロナスパケットのフォーマットが、図8に示されている。そこで、AV/Cコマンドの説明をする前に、図8を参照して、アシンクロナスパケットのフォーマッについて説明する。
図8に示されるように、destination_IDは、この(アシンクロナス)パケットの送信先のノードIDを示す領域である。
tl(Transaction label)は、requestパケットとresponseパケットの一対のトランザクションの一致を認識するために使用する値が設定される領域である。
rt(Retry code)は、リトライに関する情報を示す領域である。
tcode(Transaction code)は、トランザクションパケット種別を示す領域である。トランザクションパケット種別としては、例えば、read、write、lockなどがある。
pri(Priority)は、パケットの優先度を示す領域である。
source_IDは、パケットの送信元のノードIDを示す領域である。
destination_offsetは、パケットの送信先のノードのレジスタ空間上の目的アドレスを示す領域である。
data_lengthは、dataのサイズを示す領域である。
extended_tcodeは、tcodeに示される種別がlockの場合にのみ有効な領域で、さらに、lockの種別を示す領域である。
header_CRCは、ヘッダ情報に対するCRC(Cyclic Redundancy Check)を示す領域である。
dataは、例えば、コンテンツデータや、後述するAV/Cコマンドフレームなどが実際に配置される領域である。
data_CRCは、dataに対するCRCを示す領域である。
zero pad bytesは、4バイトを1つの単位とした場合、operand領域の個数の差により生じる端数のバイト領域であり、そこの全てのビットに0が設定される。
次に、このようなアシンクロナスパケット(図8)として送受信されるAV/Cコマンドについて説明する。
図9は、AV/Cコマンドフレームのフォーマットを示す図である。
AV/Cコマンドフレームの先頭の4ビットには0が配置される。
ctypeは、コマンドの種類を示す領域である。
subunit_typeは、サブユニットの種類を示す領域である。
subunit_idは、ユニット内に同じ種類のサブユニットが複数存在する場合に、それぞれを判別するために使用される領域である。
opcodeは、コマンドの種類(オペコード)を示す領域であり、operandは、そのコマンドの付加的情報(オペランド)を示す領域である。図9の例では、n+1個(nは任意の整数値)の、operand[0]乃至operand[n]が設けられており、operandは、コマンドによって個数が異なる。
zero pad bytesは、4バイトを1つの単位とした場合、operandの個数の差により生じる端数のバイト領域であり、そこの全てのビットに0が設定される。
図10は、図9のAV/Cコマンドに対する応答であるAV/Cレスポンスフレームのフォーマットを示す図である。
AV/Cレスポンスフレームの先頭の4ビットには0が配置される。
responseは、受信されたAV/Cコマンドに対するレスポンスの種類を示す領域である。
その他の図10に示す各領域のそれぞれは、図9の対応する名称の領域のそれぞれと基本的に同様な情報が記述される領域なので説明は省略する。
ところで、本実施の形態においては、上述したように、コンテンツデータがデジタルテレビジョン放送番組のデータである場合、識別情報取得コマンドとは、記録部45と記録部46(図2)のそれぞれに設けられた識別情報リスト(図3)から、Original Network ID,Service ID,Event ID、および、program_starting_date_timeを取得するAV/Cコマンドとなる。
従って、識別情報取得コマンドは、例えば、AV/CコマンドのOpen Descriptorコマンドと、Read Descriptor コマンドもしくはRead Info Blockコマンドのうちのいずれか一方とを用いて実現することができる。具体的には、例えば、ムーブ情報管理部23(図2)は、まずOpen Descriptorコマンド(Read Open)を発行し、その後、Read DescriptorコマンドもしくはRead Info Blockコマンドを発行して識別情報の読み込みを行う。さらに、ムーブ情報管理部23は、読み込みが終了したら、Open Descriptorコマンド(Close)を発行して識別情報の取得処理を終了する。
また、例えば、識別情報追加コマンドは、AV/CコマンドのOpen DescriptorコマンドとWrite Info Blockコマンドとを用いて実現することができる。具体的には、例えば、ムーブ情報管理部23(図2)まずOpen Descriptorコマンド(Write Open)を発行し、その後、Write Info Blockコマンドを発行して識別情報の書き込みを行う。さらに、例えば、書き込みが終了したら、Open Descriptorコマンド(Close)を発行して識別情報の追加(書き込み)処理を終了する。
このような識別情報取得コマンドおよび識別情報追加コマンドとして使用されるAV/Cコマンド、即ち、Open Descriptorコマンド、Read Descriptorコマンド、Read Info Blockコマンド、およびWrite Info Blockコマンドのそれぞれについて、図11乃至図14のそれぞれを参照して個別に説明する。
図11は、Open Descriptorコマンドのフォーマットを示す図である。なお、Open Descriptorコマンドに対するレスポンスのフォーマットも同様のフォーマットである。
図11の上側には、Open Descriptorコマンドのフォーマットが示され、図11の下側には、Open Descriptorコマンドに含まれるsubfunctionに設定される値と、その値についての詳細が示されている。
opcodeには、Open Descriptorコマンドであることを示す値(図11の例では、0x08(0816))が設定される。なお、0xの後に続く数字(下付きの16が付してある数字)は、16進数であることを表す。
operand部(operand[0]乃至operand[n])は、descriptor_specifierおよびsubfunctionから構成される。
descriptor_specifierには、処理対象のdescriptorを示す値が設定される。
subfunctionには、図11の下に示すように、Open Descriptorコマンドの種類を示す値が設定される。
図11の下側は、上述したsubfunctionに設定される値と、その値の意味について示している。
値0x00は、descriptorをCloseする、つまり、descriptorの使用を停止する場合に用いられる。
値0x01は、descriptorをRead Openする、つまり、読み込みのみの目的でdescriptorにアクセスする場合に用いられる。
値0x02は、descriptorをWrite Openする、つまり、読み込みまたは、書き込みの目的でdescriptorにアクセスする場合に用いられる。
その他の全ての値は、使用されていない。
図12は、Read Descriptorコマンドのフォーマットを示す図である。また、Read Descriptorコマンドに対するレスポンスのフォーマットも同様のフォーマットであるので合わせて説明する。
opcodeには、Read Descriptorコマンドであることを示す値(図12の例では、0x09)が設定される。
operand部は、descriptor_specifier,read_result_status,data_length、およびaddressから構成される。
descriptor_specifierには、処理対象のdescriptorを示す値が設定される。
read_result_statusには、コマンドフレームの場合、0xFF(FF16)が設定され、レスポンスフレームの場合、読み込み処理の結果を示す値が設定される。
data_lengthには、コマンドフレームの場合、コマンドの送信先のノードから読み込みを行うサイズ(バイト単位)が設定され、レスポンスフレームの場合は、実際に読み込まれたデータのサイズが設定される。
addressには、コマンドの送信先のノードから読み込みを開始するアドレスを示す値が設定される。
また、Read Descriptorコマンドに対するレスポンスの場合、読み込まれたデータは、図12に示すaddressの後に設定される。
図13は、Read Info Blockコマンドのフォーマットを示す図である。また、Read Info Blockコマンドに対するレスポンスのフォーマットも同様のフォーマットであるので合わせて説明する。
opcodeには、Read Info Blockコマンドを示す値(図13の例では、0x06)が設定される。
operand部は、info_block_reference_path,read_result_status,data_length、およびaddressから構成される。
info_block_reference_pathには、指定する情報ブロックの位置を示すパスが設定される。
read_result_statusには、コマンドフレームの場合、0xFF(FF16)が設定され、レスポンスフレームの場合、読み込み処理の結果を示す値が設定される。
data_lengthには、コマンドフレームの場合、コマンドの送信先のノードから読み込みを行うサイズ(バイト単位)が設定され、レスポンスフレームの場合は、実際に読み込まれたデータのサイズが設定される。
addressには、コマンドの送信先のノードから読み込みを開始するアドレスを示す値が設定される。
また、Read Descriptorコマンドに対するレスポンスの場合、読み込まれたデータは、図13に示すaddressの後に設定される。
図14は、Write Info Blockコマンドのフォーマットを示す図である。また、Write Info Blockコマンドに対するレスポンスのフォーマットも同様のフォーマットであるので合わせて説明する。
opcodeには、Write Info Blockコマンドであることを示す値(図14の例では、0x07)が設定される。
operand(オペランド)部は、info_block_reference_path,subfunction,group_tag,replacement_data_length,address,original_data_length、およびreplacement_info_block_dataから構成される。
info_block_reference_pathには、書き込みを行う位置を示すパスが設定される。
subfunctionには、コマンドフレームである場合、書き込みの種類を示す値が設定され、レスポンスである場合、コマンドに対する処理の結果に関する内容を示す値が設定される。
group_tagは、複数のWrite Info Blockコマンドが発行される、グループ化された一連の、descriptorの更新処理において使用される領域である。
replacement_data_lengthには、コマンドである場合、後述するreplacement_ info_block_dataのサイズ(バイト単位)を示す値が設定され、レスポンスである場合、実際に受理されたサイズ(バイト単位)が設定される。
addressには、書き込みを開始するアドレスを示す値が設定される。
original_data_lengthには、元に書き込まれていたデータ、つまり、消去されるデータのサイズ(バイト単位)を示す値が設定される。
replacement_info_block_dataには、新たに書き込まれるデータが設定される。
次に、図15、図16、および図18のフローチャート、並びに図20のアローチャートを参照して、本発明が適用される図1(図2)の通信システムの処理のうちのムーブ処理に関連する処理について説明する。
図15は、ムーブ制御装置1が実行する処理のうちの、ムーブ元装置2とムーブ先装置3との間で実行されるムーブ処理を制御する処理(以下、ムーブ制御処理と称する)の例を表している。図16は、ムーブ元装置2が実行する処理のうちの、ムーブ制御装置1のムーブ制御処理に対する処理(後述するように、基本的にムーブ制御装置1からのコマンドに基づいてムーブ元装置2により実行される処理であるので、以下、ムーブ元装置2のコマンド受信処理と称する)の例を表している。図18は、ムーブ先装置3が実行する処理のうちの、ムーブ制御装置1のムーブ制御処理に対する処理(後述するように、基本的にムーブ制御装置1からのコマンドに基づいてムーブ先装置3により実行される処理であるので、以下、ムーブ先装置3のコマンド受信処理と称する)の例を表している。図20は、ムーブ制御装置1、ムーブ元装置2およびムーブ先装置3のそれぞれの処理の関係を表している。
以下、図15、図16、および図18のそれぞれを参照して、ムーブ制御装置1のムーブ制御処理、ムーブ元装置2のコマンド受信処理、およびムーブ先装置3のコマンド受信処理のそれぞれについて、その順番に個別に説明する。ただし、これら装置の相互の処理の関係は、図20の対応するステップを参照することで、容易に理解することが可能である。
始めに、図15を参照して、図2のムーブ制御装置1のムーブ制御処理について説明する。
ステップS1において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれに記録されているコンテンツデータの識別情報の取得を要求する。即ち、上述したように、ムーブ情報管理部23は、識別情報取得コマンドを、インターフェース21およびバス11を介して、ムーブ元装置2およびムーブ先装置3のそれぞれに対して送信する。
ムーブ元装置2およびムーブ先装置3のそれぞれは、後述するように、ムーブ制御装置1から送信された識別情報取得コマンドを受信すると、その識別情報取得コマンドに対するレスポンス(応答)として、それぞれに記録されているコンテンツデータの識別情報を、ムーブ制御装置1へ送信してくる(図16と図20のステップS21(YES)、S22(YES)およびS23、並びに、図18と図20のステップS41(YES)、S42(YES)およびS43)。
そこで、ステップS2において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれから送信されてきたコンテンツデータの識別情報を取得する。即ち、ムーブ情報管理部23は、ステップS1の処理で送信された識別情報取得コマンドに対するレスポンスをバス11およびインターフェース21を介して受信することで、各装置(ムーブ元装置2とムーブ先装置3)に記録されているコンテンツデータの識別情報を取得する。
ステップS3において、ムーブ情報管理部23は、ムーブ対象コンテンツデータが指定されたか否かを判定する。
ステップS3において、ムーブ対象コンテンツデータが指定されていないと判定された場合、処理はステップS3に戻され、ムーブ対象コンテンツデータが指定されたか否かが再度判定される。即ち、ムーブ情報管理部23は、ムーブ対象コンテンツデータが指定されることを監視する。
なお、ステップS3における判定処理については特に限定されないが、ここでは、例えば、次のような処理とされる。
即ち、例えば、ムーブ情報管理部23は、ステップS3の処理の前に、ステップS2の処理で取得されたムーブ元装置2の識別情報に基づいて、ムーブ元装置2に記憶されているコンテンツデータのうちのムーブ対象コンテンツデータの候補をユーザに呈示する(図2には呈示部は図示せず)。すると、ユーザは、例えば、呈示されたムーブ対象コンテンツデータの候補のうちの所定の1つを指定する操作を行う(図2には操作部は図示せず)。そこで、ムーブ情報管理部23は、この操作を検出したとき、ステップS3において、ムーブ対象コンテンツデータが指定されたと判定する。その後、処理はステップS4に進められる。
ステップS4において、ムーブ情報管理部23は、ステップS2の処理で取得された識別情報のうちの、ステップS3の処理で指定されたムーブ対象コンテンツデータの識別情報を一時的に記憶(保持)する。
ステップS5において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれに記憶されている識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の個数をそれぞれ検出し、記憶(保持)する。
詳細には、上述したように、ムーブ情報管理部23は、ステップS4の処理で記憶された(保持された)ムーブ対象コンテンツデータの識別情報と、ステップS2の処理で取得された各識別情報のそれぞれとを比較する。そして、ムーブ情報管理部23は、その比較の結果に基づいて、ムーブ元装置2およびムーブ先装置3のそれぞれに記憶されている識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の個数を、ムーブ対象コンテンツデータと同一のコンテンツデータの個数として装置(ムーブ元装置2とムーブ先装置3)別に検出し、一時的に記憶(保持)する。
具体的には、例えば、上述したように、コンテンツデータがデジタルテレビジョン放送番組のデータである場合、識別情報として、Original Network ID,Service ID,Event ID、および、program_starting_date_timeが利用される。また、これらの識別情報(Original Network ID,Service ID,Event ID、および、program_starting_date_time)は、識別情報リスト(図3)のうちのentry_descriptor[0]乃至[n-1]のそれぞれに記述されている。
そして、ステップS2の処理で、ムーブ元装置2の記録部45とムーブ先装置3の記録部55とのそれぞれに設けられている識別情報リストにおける、entry_descriptor[0]乃至[n-1]のそれぞれに含まれているOriginal Network ID,Service ID,Event ID、および、program_starting_date_timeが取得されている。
そこで、ステップS5において、ムーブ情報管理部23は、ムーブ元装置2の記録部45に設けられている識別情報リストにおけるentry_descriptor[0]乃至[n-1] (ステップS2の処理で取得された分)のうちの、ステップS4の処理で保持されたムーブ対象コンテンツデータに対応する識別情報(Original Network ID,Service ID,Event ID、および、program_starting_date_time)の全てと同一の識別情報が含まれるentry_descriptorの個数を、上述したaとして検出して、保持する。
同様に、ステップS5において、ムーブ情報管理部23は、ムーブ先装置3の記録部55に設けられている識別情報リストにおけるentry_descriptor[0]乃至[n-1] (ステップS2の処理で取得された分)のうちの、ステップS4の処理で保持されたムーブ対象コンテンツデータに対応する識別情報(Original Network ID、Service ID、Event ID、および、program_starting_date_time)の全てと同一の識別情報が含まれるentry_descriptorの個数を、上述したbとして検出して、保持する。
このようにして、ステップS5の処理により、数aと数bのそれぞれがムーブ情報管理部23により検出され、保持される。
次に、ステップS6において、ムーブ制御部22は、ムーブ元装置2およびムーブ先装置3のそれぞれに対してムーブ処理開始を指示する。即ち、上述したように、ムーブ制御部22は、ムーブ元装置2およびムーブ先装置3のそれぞれに対してムーブ処理開始コマンドをインターフェース21およびバス11を介して送信する。
そして、ステップS7において、ムーブ制御部22は、ムーブ処理が開始されたか否かを判定する。
ステップS7において、ムーブ処理が開始されていないと判定された場合、処理はステップS7に戻され、ムーブ処理が開始されたか否かが再度判定される。即ち、ムーブ制御部22は、ムーブ元装置2とムーブ先装置3のいずれもがムーブ処理を開始することを監視する。
なお、ステップS7における判定処理については特に限定されないが、ここでは、例えば、次のような処理とされる。
即ち、この間、後述するように、ムーブ元装置2およびムーブ先装置3のそれぞれは、ムーブ制御装置1から送信されてくるムーブ処理開始コマンドを受信し、ムーブ処理を開始する(図16のステップS21(YES)、S22(NO)、S24(YES)、および、S25、並びに、図18のステップS41(YES)、S42(NO)、S44(YES)、および、S45)。
このとき、即ち、ムーブ処理が開始されたとき、ここでは、ムーブ元装置2およびムーブ3のそれぞれは、例えば、ムーブ処理が正常に開始されたか否かを示す、ムーブ処理開始コマンドに対するレスポンスをムーブ制御装置1に対してバス11を介して送信してくる。
そこで、ムーブ制御部22は、ムーブ元装置2およびムーブ先装置3のそれぞれから送信されてくるレスポンスをインターフェース21を介して受信する。そして、受信されたレスポンスのいずれも、ムーブ処理が正常に開始されたことを示す情報である場合、ムーブ制御部22は、ステップS7において、ムーブ処理が開始されたと判定する。
以上のようにして、ステップS7の処理でムーブ処理が開始されたと判定すると、ムーブ制御部22は、ムーブ情報管理部23に対して、識別情報追加コマンドをムーブ先装置3へ送信するように指示する。
ムーブ情報管理部23は、この指示を受けると、ステップS8において、ムーブ先装置3に対して、ムーブ対象コンテンツデータの識別情報の追加を要求する。即ち、ムーブ情報管理部23は、識別情報追加コマンドを、インターフェース21を介してムーブ先装置3に対して送信する。
後述するように、ムーブ先装置3は、ムーブ制御装置1から送信されてくる識別情報追加コマンドをバス11を介して受信し、その識別情報追加コマンドによって指定された識別情報、即ち、ムーブ対象コンテンツデータの識別情報を追加する(記憶する)(図18と図20のステップS41(YES)、S43(NO)、ステップS46(YES)、およびステップS47)。
なお、ステップS8の処理タイミング、即ち、ムーブ先装置3へ識別情報の追加を要求するタイミングは、ムーブ処理開始直後であっても良いし、その後所定の時間が経過したときであっても良い。
このようにして、ムーブ元装置2とムーブ先装置3のムーブ処理が開始され、それに伴い、ムーブ対象コンテンツデータの識別情報がムーブ先装置3に追加されると、ステップS9の処理が実行される。
換言すると、ステップS9の処理タイミングは、ムーブ元装置2とムーブ先装置3のムーブ処理が開始され、それに伴い、ムーブ対象コンテンツデータの識別情報がムーブ先装置3に追加された後(即ち、ここで言う、ムーブ処理開始後)であれば任意のタイミングでよい。
ステップS9において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれに記録されているコンテンツデータの識別情報の取得を要求する。即ち、上述したように、ムーブ情報管理部23は、識別情報取得コマンドを、インターフェース21およびバス11を介して、ムーブ元装置2およびムーブ先装置3のそれぞれに対して送信する。
ムーブ元装置2およびムーブ先装置3のそれぞれは、後述するように、ムーブ制御装置1から送信された識別情報取得コマンドを受信すると、識別情報取得コマンドに対するレスポンス(応答)として、それぞれに記録されているコンテンツデータの識別情報を、ムーブ制御装置1へ送信してくる(図16と図20のステップS21(YES)、ステップS22(YES)およびステップS23、並びに、図18と図20のステップS41(YES)、ステップS42(YES)およびステップS43)。
そこで、ステップS10において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれから送信されてきたコンテンツデータの識別情報を取得する。即ち、ムーブ情報管理部23は、ステップS9の処理で送信された識別情報取得コマンドに対するレスポンスをインターフェース21を介して受信することで、各装置(ムーブ元装置2とムーブ先装置3)に記録されているコンテンツデータの識別情報を取得する。
ステップS11において、ムーブ情報管理部23は、ムーブ元装置2およびムーブ先装置3のそれぞれに記憶されている識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の個数をそれぞれ検出し、記憶(保持)する。
詳細には、上述したように、ムーブ情報管理部23は、ステップS4の処理で記憶された(保持された)ムーブ対象コンテンツデータの識別情報と、ステップS10の処理で取得された各識別情報のそれぞれとを比較する。そして、ムーブ情報管理部23は、その比較の結果に基づいて、ムーブ元装置2およびムーブ先装置3のそれぞれに記憶されている識別情報のうちの、ムーブ対象コンテンツデータの識別情報と同一の識別情報の個数を、ムーブ対象コンテンツデータと同一のコンテンツデータの個数として装置(ムーブ元装置2とムーブ先装置3)別に検出し、一時的に記憶する。
具体的には、例えば、上述したように、コンテンツデータがデジタルテレビジョン放送番組のデータである場合、ムーブ情報管理部23は、ステップS5と同様の処理を実行することで、上述した数xと数yのそれぞれを検出して、保持する。
即ち、ステップS10の処理で、ムーブ元装置2の記録部45とムーブ先装置3の記録部55とのそれぞれに設けられている識別情報リストにおける、entry_descriptor[0]乃至[n-1]のそれぞれに含まれている、Original Network ID,Service ID,Event ID、および、program_starting_date_timeが新たに取得されている。
そこで、ステップS11において、ムーブ情報管理部23は、ムーブ元装置2の記録部45に設けられている識別情報リストにおけるentry_descriptor[0]乃至[n-1](ステップS10の処理で取得された分)のうちの、ステップS4の処理で保持されたムーブ対象コンテンツデータに対応する識別情報(Original Network ID,Service ID,Event ID、および、program_starting_date_time)の全てと同一の識別情報が含まれるentry_descriptorの個数を、上述したxとして検出して、保持する。
同様に、ステップS11において、ムーブ情報管理部23は、ムーブ先装置3の記録部55に設けられている識別情報リストにおけるentry_descriptor[0]乃至[n-1] (ステップS10の処理で取得された分)のうちの、ステップS4の処理で保持されたムーブ対象コンテンツデータに対応する識別情報(Original Network ID,Service ID,Event ID、および、program_starting_date_time)の全てと同一の識別情報が含まれるentry_descriptorの個数を、上述したyとして検出して、保持する。
即ち、ステップS11の処理により、上述した数xと数yのそれぞれが、ムーブ情報管理部23により検出され、保持される。
このようにしてムーブ情報管理部23に保持された、数aおよび数b(ステップS5)、並びに、数xおよび数y(ステップS11)は、上述したように、ムーブ処理判定部24に供給される。
すると、ステップS12において、ムーブ処理判定部24は、ムーブ処理が正常に行われているか否かを判定する。
なお、ステップS12の処理タイミングが、上述した転送処理中であるか転送処理後であるかによって、その処理内容は異なる。
即ち、例えば、ステップS12の処理タイミングが転送処理中(後述する図17のステップS31とS32のループ処理中)である場合、ムーブ処理判定部24は、上述したように、ムーブ情報管理部22から供給された数bと数yを上述した式(1)に代入して、その式(1)を演算し、その演算結果に基づいて、即ち、ムーブ先装置3における、ムーブ処理開始前の同一コンテンツデータの個数(数b)とムーブ処理開始後の同一コンテンツデータの個数(数y)をもとにムーブ処理の正常性を判定する。
このとき、例えば、上述したように、式(1)の演算結果が「−1」であれば、ステップS12において、ムーブ処理が正常に行われていると判定されて、ムーブ制御装置1のムーブ制御処理は終了となる。
これに対して、式(1)の演算結果が「−1」以外であれば、ステップS12において、ムーブ処理が正常に行われていない(異常が発生した可能性がある)と判定されて、処理はステップS13に進められる。
また、例えば、ステップS12の処理タイミングが上述した転送処理後(後述する図17のステップS33の終了後であって、コンテンツ損失の防御を考慮するとステップS34の処理前が好ましい)である場合、ムーブ処理判定部24は、上述したように、ムーブ情報管理部22から供給された数bと数yを上述した式(1)に代入して、その式(1)を演算するとともに、ムーブ情報管理部22から供給された数aと数xを上述した式(2)に代入して、その式(2)を演算する。
そして、ムーブ処理判定部24は、それらの2つの演算結果に基づいて、即ち、ムーブ元装置2における、ムーブ処理開始前の同一コンテンツデータの個数(数a)およびムーブ処理開始後の同一コンテンツデータの個数(数x)、並びに、ムーブ先装置3における、ムーブ処理開始前の同一コンテンツデータの個数(数b)およびムーブ処理開始後の同一コンテンツデータの個数(数y)に基づいて、ムーブ処理の正常性を判定する。
このとき、例えば、上述したように、式(1)の演算結果が「−1」であり、かつ、式(2)の演算結果が「1」であれば、ステップS12において、ムーブ処理が正常に行われていると判定されて、ムーブ制御装置1のムーブ制御処理は終了となる。
これに対して、式(1)と式(2)の演算結果の組合せが「−1」と「1」以外であれば、ステップS12において、ムーブ処理が正常に行われていない(異常が発生した可能性がある)と判定されて、処理はステップS13に進められる。
ステップS13において、ムーブ制御部22は、ムーブ元装置2およびムーブ先装置3のそれぞれに対して上述したムーブ処理停止コマンドをインターフェース21およびバス11を介して送信する。これにより、ムーブ制御装置1のムーブ制御処理は終了となる。
このとき、後述するように、ムーブ元装置2およびムーブ先装置3のそれぞれは、ムーブ制御装置1から送信されたムーブ処理停止コマンドを受信してムーブ処理を中止する(図16と図20のステップS21(YES)、S22(NO)、S24(NO)、S26(YES)、およびステップS27、並びに、図18と図20のステップS41(YES)、S42(NO)、S44(NO)、S46(YES)、およびS47)。
次に、図16のフローチャートを参照して、以上説明したムーブ制御装置1のムーブ制御処理(図15)に対するムーブ元装置2側の処理、即ち、図2のムーブ元装置2のコマンド受信処理について説明する。
はじめに、ステップS21において、インターフェース41は、ムーブ制御装置1からのコマンドを受信したか否かを判定する。
即ち、インターフェース41は、ムーブ制御装置1から送信されてくるパケット(上述した図8参照)を受信し、そのパケットに格納されたデータがコマンド以外の情報であった場合、ステップS21において、コマンドを受信していないと判定し、処理をステップS21に戻し、コマンドを受信したか否かを判定する。
これに対して、そのパケットに格納されたデータがコマンドであった場合、インターフェース41は、ステップS21において、コマンドを受信したと判定し、そのコマンドをコマンド処理部42に供給して、処理をステップS22に進める。
ステップS22において、コマンド処理部42は、受信されたコマンド(インターフェース41から供給されたコマンド)が識別情報取得コマンドであるか否かを判定することで、識別情報取得要求か否かを判定する。
ステップS22において、識別情報取得要求であると判定された場合(受信されたコマンドが識別情報取得コマンドであると判定された場合)、コマンド処理部42は、識別情報管理部44に対して、ムーブ制御装置1への識別情報の送信を指示する。
すると、ステップS23において、識別情報管理部44は、コマンド処理部42からの指示に従い、指示された識別情報を記録部45から取得し、インターフェース41を介してムーブ制御装置1へ送信する。その後、処理はステップS21へ戻り、それ以降の処理が同様に繰り返される。
これに対して、ステップS22において、識別情報取得要求ではないと判定された場合(受信されたコマンドが識別情報取得コマンドでないと判定した場合)、コマンド処理部42は、ステップS24において、そのコマンドがムーブ処理開始コマンドであるか否かを判定することで、ムーブ開始要求か否かを判定する。
ステップS24において、ムーブ開始要求であると判定された場合(受信されたコマンドがムーブ処理開始コマンドであると判定された場合)、コマンド処理部42は、ムーブ実行部43に対して、ムーブ処理の開始を指示する。
すると、ステップS25において、ムーブ実行部43は、コマンド処理部42からの指示に従い、ムーブ処理を開始する。その後、処理はステップS21へ戻り、それ以降の処理が同様に繰り返される。
このステップS25の処理で開始されるムーブ処理の例については、図17のフローチャートを参照して後述する。
これに対して、ステップS24において、ムーブ開始要求ではないと判定された場合(受信されたコマンドがムーブ処理開始コマンドでないと判定された場合)、コマンド処理部42は、ステップS26において、そのコマンドがムーブ処理停止コマンドであるか否かを判定することで、ムーブ中止要求であるか否かを判定する。
ステップS26において、ムーブ中止要求であると判定された場合(受信されたコマンドがムーブ処理停止コマンドであると判定された場合)、コマンド処理部42は、ムーブ実行部43に対して、ムーブ処理の停止(中止)を指示する。
すると、ステップS27において、ムーブ実行部43は、コマンド処理部42からの指示に従い、ムーブ処理を中止する。即ち、ムーブ実行部43は、後述する図17のフローチャートのいずれのステップの処理を実行している場合であっても、ムーブ処理を強制的に終了させる。
その後、処理はステップS21へ戻り、それ以降の処理が同様に繰り返される。
これに対して、ステップS26において、ムーブ中止要求ではないと判定された場合(受信されたコマンドが、識別情報取得コマンド、ムーブ開始コマンド、およびムーブ処理停止コマンドのいずれでもない場合)、コマンド処理部42は、ステップS28において、その他の処理(その他のコマンドに対応する処理)を実行する。その後、処理はステップS21へ戻り、それ以降同様の処理が繰り返される。
ここで、図19のフローチャートを参照して、ステップS25の処理(図16)で開始されるムーブ元装置2のムーブ処理について説明する。
ステップS31において、図2のムーブ元装置2のムーブ実行部43は、ムーブ制御装置1により指定されたコンテンツデータ、即ち、ムーブ対象コンテンツデータを記録部45から読み込み、インターフェース41を介してムーブ先装置3に送信する。詳細には、インターフェース41は、ムーブ実行部43から供給されたムーブ対象コンテンツデータをもとにパケットを作成し、バス11を介してムーブ先装置3へ送信する。なお、ここで使用されるパケットは、例えば、上述した、図8に示されるIEEE1394に規定されるアシンクロナスパケットである。
ステップS32において、ムーブ実行部43は、転送処理が終了したか否かを判定する。即ち、ステップS32において、指定されたコンテンツデータの全ての転送が終了したか否かが判定される。具体的には、例えば、ムーブ実行部43は、転送されたパケット全てに対するAcknowledgeパケットを、ムーブ先装置3から受信したか否かを判定することで、転送処理が終了したか否かを判定する。
ステップS32において、転送処理が終了していないと判定された場合、処理はステップS31へ戻り、それ以降の処理が繰り返される。
即ち、転送処理が終了されるまで、ステップS31とS32の処理が繰り返し実行され、転送処理が終了すると(ステップS32の処理で転送処理が終了したと判定されると)、処理はステップS33へ進む。
ステップS33において、ムーブ実行部43は、識別情報管理部44を介してムーブ対象コンテンツデータに対応する識別情報を記録部45から消去する。詳細には、ムーブ実行部43は、識別情報管理部44に対してムーブ対象コンテンツデータに対応する識別情報の消去を指示する。すると、識別情報管理部44は、ムーブ実行部43からの指示に従い、ムーブ対象コンテンツデータに対応する識別情報を記録部45から消去する。
ステップS34において、ムーブ実行部43は、ムーブ対象コンテンツデータ(全データ)を記録部45から消去する。これにより、ムーブ元装置2のムーブ処理は終了となる。
以上、ムーブ元装置2のムーブ処理が正常に終了した場合の処理について説明したが、上述したように、ムーブ制御装置1からムーブ処理停止コマンドが送信されてきた場合(図16のステップS26においてムーブ中止要求であると判定された場合)、ムーブ実行部43は、上述したムーブ処理を中止する(図16のステップS27の処理を実行する)。
次に、図18のフローチャートを参照して、ムーブ制御装置1のムーブ制御処理(図15)に対するムーブ先装置3側の処理、即ち、ムーブ先装置3のコマンド受信処理について説明する。
図16と図18のそれぞれのフローチャートを比較するに、図18のムーブ先装置3のコマンド受信処理における、ステップS41乃至S45、および、ステップS48乃至S50のそれぞれの処理は、図16のムーブ元装置2のコマンド受信処理における、ステップS21乃至S28のそれぞれの処理と基本的に同様の処理である。
従って、ムーブ先装置3のコマンド受信処理のうちの、ステップS41乃至S45、および、ステップS48乃至S50の処理の詳細な説明については省略する。
ところで、上述したように、ムーブ制御装置1は、ムーブ先装置3に対して識別情報追加コマンドを送信してくることがある(上述した図15のステップS8参照)。
このような場合、ムーブ先装置3は、次のような処理を実行する。
即ち、ムーブ先装置3のコマンド処理部52は、ステップS41において、コマンドを受信したと判定し、ステップS42において、識別情報取得要求ではないと判定し、ステップS44において、ムーブ開始要求ではないと判定した後、ステップS46において、識別情報追加要求であると判定する。そして、コマンド処理部52は、識別情報管理部54に対してムーブ対象コンテンツデータに対応する識別情報の追加(記録)を指示する。
すると、ステップS47において、識別情報管理部54は、コマンド処理部52からの指示に従い、ムーブ対象コンテンツデータに対応する識別情報を追加(記録)する。
また、図18のステップS45において開始されるムーブ処理(ステップS49の処理で中止されるムーブ処理)は、図16のステップS25において開始されるムーブ処理(ステップS29の処理で中止されるムーブ処理)とは基本的に処理内容が異なる。即ち、ムーブ先装置3のムーブ処理と、ムーブ元装置2のムーブ処理(上述した図17のフローチャートに対応する処理)とは基本的に処理内容が異なる。
このようなムーブ先装置3のムーブ処理の例が、図19のフローチャートに示されている。そこで、以下、図19のフローチャートを参照して、ムーブ先装置3のムーブ処理の例について説明する。
ステップS71において、図2のムーブ先装置3のインターフェース51は、ムーブ元装置2から転送されてきたコンテンツデータ(上述した図17のステップS31参照)、即ち、ムーブ対象コンテンツデータをバス11を介して受信する。詳細には、上述したように、ムーブ対象コンテンツデータはパケット(上述した図8参照)で送信されてくる。そこで、インターフェース51は、送信されてきたパケットを受信し、そのパケットに格納されたムーブ対象コンテンツデータを抽出して、ムーブ実行部53に供給する。ムーブ実行部53は、インターフェース51から供給されたコンテンツデータをバッファリングする。
ステップS72において、ムーブ実行部53は、ムーブ対象コンテンツデータの全てを受信したか否かを判定する。即ち、ステップS72の処理で、転送処理が終了されたか否かが判定される。
ステップS72において、転送処理が終了していないと判定された場合、処理はステップS71の処理へ戻り、それ以降の処理が繰り返される。
即ち、転送処理が終了されるまで、ステップS71とS72の処理が繰り返し実行され(ムーブ対象コンテンツデータがパケット単位で受信され)、転送処理が終了すると(ステップS72の処理でコンテンツデータの全てが受信されたと判定されると)、処理はステップS73へ進む。
ステップS73において、ムーブ実行部53は、受信されたムーブ対象コンテンツデータを記録部55に記録する。これにより、ムーブ先装置3のムーブ処理は終了となる。
以上、ムーブ先装置3のムーブ処理が正常に終了した場合の処理について説明したが、上述したムーブ元装置2のムーブ処理と同様に、ムーブ制御装置1からムーブ処理停止コマンドが送信されてきた場合(図18のステップS48においてムーブ中止要求であると判定された場合)、ムーブ実行部43は、上述したムーブ処理を中止する(図16のステップS27の処理を実行する)。
ところで、上述した例においては、ムーブ制御装置1のムーブ処理判定部24(図2)が実行する、ムーブ処理が正常に行われたか否かの判定処理の回数は、1回のムーブ処理中に1回(図15のステップS12のタイミングに1回)とされたが、任意の回数でよい。
例えば、転送処理中(図17のステップS31とS32のループ処理の間)と、転送処理後(図17のステップS33の処理後)のどちらのタイミングで行ってもよい。
このようなムーブ処理判定部24の判定処理が、ムーブ処理の消去処理の前(即ち、図17のステップS34の処理前)に実行されれば、ムーブ処理のうちの転送処理において、コンテンツデータの転送中に何らかの異常(例えば、断線やコマンド処理ミス等)が発生した場合、その異常の発生を検出することができ、異常の発生に伴う、コンテンツデータの損失を防ぐことができる。
また、このようなムーブ処理判定部24の判定処理が、ムーブ処理の終了後であったとしても(即ち、図17のステップS34の処理後であったっとしても)、そのムーブ処理が正常に行われたか否かのチェック自体は確実に行われることになる。従って、ムーブ元装置2に記録されているコンテンツデータのそれ以上の損失を少なくとも防ぐことができる。
ところで、本発明が適用される通信システムは、図2の例に限定されず、様々な実施の形態をとることが可能である。そこで、これらの様々な実施の形態のうちの3つの形態(以下、第1乃至第3の他の実施の形態と称する)について説明する。
図21は、本発明を適用したシステムの第1の他の実施の形態の構成例を示すブロック図である。図21において、図2に示す場合と同様の部分には、同一の番号を付してあり、その説明は適宜省略する。
図21では、図2のムーブ元装置2またはムーブ先装置3それぞれに代えて、ムーブ元装置61またはムーブ先装置62が設けられている。
そして、ムーブ元装置61のムーブ実行部43は、ドライブ63を介して、そのドライブ63に着脱可能なリムーバル記録媒体64からムーブ対象コンテンツデータを読み込み、インターフェース41を介してムーブ先装置62へ送信する。
また、ムーブ実行部43は、ムーブ処理が正常に終了すると、ドライブ63を介して、リムーバル記録媒体64に記録されているムーブ対象コンテンツデータを消去する。
識別情報管理部44は、コマンド処理部42から識別情報の取得を指示されると、ドライブ63を介して、リムーバル記録媒体64から、識別情報を取得し、コマンド処理部42およびインターフェース41を介してムーブ制御装置1へ送信する。
また、識別情報管理部44は、は、ムーブ実行部43から、ムーブ対象コンテンツデータに対応する識別情報の消去が指示されると、ドライブ63を介してリムーバル記録媒体64に記録されているムーブ対象コンテンツデータに対応する識別情報を消去する。
一方、ムーブ先装置62のムーブ実行部53は、ムーブ元装置61から送信されてきたムーブ対象コンテンツデータを、ドライブ65を介して、そのドライブ65に着脱可能なリムーバル記録媒体66に記録する。
ムーブ先装置62の識別情報管理部54は、コマンド処理部52から識別情報の取得を指示されると、ドライブ65を介してリムーバル記録媒体66から識別情報を取得し、コマンド処理部52およびインターフェース51を介してムーブ制御装置1へ送信する。
また、識別情報管理部54は、コマンド処理部52から識別情報の追加を指示されると、ドライブ65を介してリムーバル記録媒体66に指示された識別情報を追加(記録)する。
このように、ムーブ対象コンテンツデータを含むコンテンツデータと、それらに対応する識別情報は、ムーブ元装置2またはムーブ先装置3のように、それぞれに内蔵される記録部45または記録部55に記録される必要はなく、ムーブ元装置61やムーブ先装置62のように、リムーバル記録媒体64やリムーバル記録媒体66にも記録可能である。即ち、リムーバル記録媒体64からリムーバル記録媒体66へのムーブ処理も実行可能であり、その際の、ムーブ処理の正常性のチェックも、上述した一連の処理と同様に実行することができる。
図22は、本発明を適用したシステムの第2の他の実施の形態の構成例を示すブロック図である。図22において、図2に示す場合と同様の部分には、同一の番号を付してあり、その説明は適宜省略する。
第2の他の実施の形態においては、ムーブ制御装置1(図2)の機能が、図2のムーブ元装置2に対応するムーブ元装置70に設けられている。
インターフェース(I/F)71は、ムーブ制御部72およびムーブ情報管理部73から供給されるコマンドやムーブ実行部75から供給されるコンテンツデータをバス11を介してムーブ先装置3へ供給する。また、送信したコマンドに対するレスポンスを、ムーブ先装置3からバス11を介して受信し、ムーブ制御部72またはムーブ情報管理部73へ供給する。
ムーブ制御部72は、ムーブ処理開始コマンドまたはムーブ処理停止コマンドをインターフェース71に供給すると同時に、ムーブ実行部75に対しても、インターフェース71に供給するコマンドと同様の指示を行う。
ムーブ情報管理部73は、識別情報取得コマンドまたは識別情報追加コマンドをインターフェース71に供給すると同時に、識別情報管理部76に対しても、インターフェース71に供給するコマンドと同様の指示を行う。
ムーブ処理判定部74は、図2に示すムーブ処理判定部24と同様なので、その説明は省略する。
ムーブ実行部75は、ムーブ制御部72からの指示に従って、ムーブ処理の開始または停止を行い、それらの指示に対する応答をムーブ制御部72へ供給する。ムーブ実行部75は、ムーブ制御部72からムーブ処理開始の指示がされた場合、記録部77からムーブ対象コンテンツデータを取得し、インターフェース71へ供給する。また、ムーブ実行部75は、ムーブ対象コンテンツの転送処理が正常に終了すると、識別情報管理部76に対してムーブ対象コンテンツに対応する識別情報の消去を指示し、さらに、ムーブ対象コンテンツデータを消去する。
識別情報管理部76は、ムーブ情報管理部73からの指示に対応する処理を実行し、その指示に対する応答をムーブ情報管理部73に供給する。例えば、ムーブ情報管理部73から識別情報の取得を指示された場合、記録部77から識別情報を取得し、ムーブ情報管理部73へ供給する。
また、識別情報管理部76は、ムーブ実行部75から、ムーブ対象コンテンツに対応する識別情報の消去が指示されると、記録部77に記録されているムーブ対象コンテンツに対応する識別情報を消去する。
記録部77は、図2に示す記録部45と同様なので、その説明は省略する。
図23は、本発明を適用したシステムの第3の他の実施の形態の構成例を示すブロック図である。図23において、図2に示す場合と同様の部分には、同一の番号を付してあり、その説明は適宜省略する。
第3の他の実施の形態においては、ムーブ制御装置1(図2)の機能が、図2のムーブ先装置3に対応するムーブ先装置80に設けられている。
インターフェース(I/F)81は、ムーブ制御部82およびムーブ情報管理部83から供給されるコマンドをバス11を介してムーブ元装置2へ送信する。また、送信したコマンドに対するレスポンスを、ムーブ元装置2からバス11を介して受信し、ムーブ制御部82またはムーブ情報管理部83へ供給する。
ムーブ制御部82は、ムーブ処理開始コマンドまたはムーブ処理停止コマンドをインターフェース81に供給すると同時に、ムーブ実行部85に対しても、インターフェース81に供給するコマンドと同様の指示を行う。
ムーブ情報管理部83は、識別情報取得コマンドまたは識別情報追加コマンドをインターフェース81に供給すると同時に、識別情報管理部86に対しても、インターフェース81に供給するコマンドと同様の指示を行う。
ムーブ処理判定部84は、図2に示すムーブ処理判定部24と同様なので、その説明は省略する。
ムーブ実行部85は、ムーブ制御部82からの指示に従って、ムーブ処理の開始または停止を行い、それらの指示に対する応答をムーブ制御部82へ供給する。ムーブ実行部85は、ムーブ制御部82からムーブ処理開始の指示がされた場合、ムーブ処理を開始して、ムーブ元装置2から送信されてくるムーブ対象コンテンツデータを、インターフェース81を介して受信し、記録部87に記録する。
識別情報管理部86は、ムーブ情報管理部83からの指示に対応する処理を実行し、その指示に対する応答をムーブ情報管理部83に供給する。例えば、ムーブ情報管理部83から識別情報の取得を指示された場合、記録部87から識別情報を取得し、ムーブ情報管理部83へ供給する。また、識別情報管理部86は、ムーブ情報管理部83から識別情報の追加を指示された場合、ムーブ対象コンテンツデータに対応する識別情報を、記録部87に追加(記録)する。
記録部87は、図2に示す記録部55と同様なので、その説明は省略する。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば、図24に示される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
即ち、上述したムーブ制御装置1、ムーブ元装置2、およびムーブ先装置3(図2)、ムーブ元装置61およびムーブ先装置62(図21)、ムーブ元装置70(図22)、並びに、ムーブ先装置80(図23)のそれぞれは、図24に示されるパーソナルコンピュータとして構成することができる。
この記録媒体は、図24に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク111(フレキシブルディスクを含む)、光ディスク112(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク113(MD(Mini-Disc)(商標)を含む)、若しくは半導体メモリ114などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM102や、記録部108に含まれるハードディスクなどで構成される。
図24に示すパーソナルコンピュータのCPU101は、パーソナルコンピュータの全体の動作を制御する。また、CPU101は、バス104および入出力インターフェース105を介してユーザからキーボードやマウスなどからなる入力部106から指令が入力されると、それに対応してROM(Read Only Memory)102に格納されているプログラムを実行する。あるいはまた、CPU101は、ドライブ110に接続された磁気ディスク111、光ディスク112、光磁気ディスク113、または半導体メモリ114から読み出され、記録部108にインストールされたプログラムを、RAM(Random Access Memory)103にロードして実行する。さらに、CPU101は、通信部109を制御して、外部と通信し、データの授受を実行する。
なお、通信部109は、IEEE1394インターフェースを含むものとする。
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしても良い。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体
を表すものである。
また、本明細書では、各装置の接続にIEEE1394シリアルバスを用いて説明したが、その他の接続形態を用いてもよい。
また、本明細書では、ムーブ処理を制御するコマンドにAV/Cコマンドを用いて説明したが、他のコマンドを用いるようにしてもよい。
さらに、本明細書では、コンテンツデータの一例としてデジタル放送番組を構成するデータを例に挙げて説明したが、コンテンツデータは、その他のデジタルデータであってもよい。
本明細書において説明したムーブ制御装置1は、例えば、デジタルテレビジョン受像機等に適用することができる。また、ムーブ元装置2、ムーブ元装置61およびムーブ元装置70は、例えば、ハードディスクレコーダ等に適用することができ、ムーブ先装置3、ムーブ元装置62およびムーブ元装置80には、例えば、ブルーディスクレコーダやDVDレコーダ等に適用することができる。
また、本発明は、例えば、図2のムーブ制御装置1と、ムーブ元装置2およびムーブ先装置の全ての機能を備えた装置、例えば、HDDとDVDのハイブリッドレコーダなどにも適用することができる。
1 ムーブ制御装置, 2 ムーブ元装置, 3 ムーブ先装置, 11 IEEE1394シリアルバス, 21 インターフェース(I/F), 22 ムーブ制御部, 23 ムーブ情報管理部, 24 ムーブ処理判定部, 41 インターフェース(I/F), 42 コマンド処理部, 43 ムーブ実行部, 44 識別情報管理部, 45 記録部, 51 インターフェース(I/F), 52 コマンド処理部, 53 ムーブ実行部, 54 識別情報管理部, 55 記録部, 61 ムーブ元装置, 62 ムーブ先装置, 63 ドライブ, 64 リムーバブル記録媒体, 65 ドライブ, 66 リムーバル記録媒体, 71 インターフェース(I/F),72 ムーブ制御部, 73 ムーブ情報管理部, 74 ムーブ処理判定部, 75 ムーブ実行部, 76 識別情報管理部, 77記録部, 81 インターフェース(I/F),82 ムーブ制御部, 83 ムーブ情報管理部, 84 ムーブ処理判定部, 85 ムーブ実行部, 86 識別情報管理部, 87記録部, 101 CPU, 102 ROM, 103 RAM, 104 内部バス, 105 入出力インターフェース, 106 入力部, 107 出力部, 108 記録部, 109 通信部, 110 ドライブ, 111 磁気ディスク, 112 光ディスク, 113 光磁気ディスク, 114 半導体メモリ