JP2007184710A - 情報処理装置および方法、並びにプログラム - Google Patents
情報処理装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2007184710A JP2007184710A JP2006000647A JP2006000647A JP2007184710A JP 2007184710 A JP2007184710 A JP 2007184710A JP 2006000647 A JP2006000647 A JP 2006000647A JP 2006000647 A JP2006000647 A JP 2006000647A JP 2007184710 A JP2007184710 A JP 2007184710A
- Authority
- JP
- Japan
- Prior art keywords
- network communication
- communication device
- command
- data
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】高速な通信を提供し、かつ、通信の信頼性を向上させることができるようにする。
【解決手段】コマンド処理部121は、データを送信する子コマンドをネットワーク通信装置52Aに供給する。異常判定部122は、ログ記憶部103Aに記憶された子コマンドの送信結果情報を参照して、処理させるネットワーク通信装置52を切替える必要があると判定した場合、コマンド処理部121に切替指示を出力する。切替指示を受け取ったコマンド処理部121は、未送信の子コマンドとデータを、切替後のネットワーク通信装置52Bに供給する。本発明は、コンピュータなどの情報処理装置に適用できる。
【選択図】図3
【解決手段】コマンド処理部121は、データを送信する子コマンドをネットワーク通信装置52Aに供給する。異常判定部122は、ログ記憶部103Aに記憶された子コマンドの送信結果情報を参照して、処理させるネットワーク通信装置52を切替える必要があると判定した場合、コマンド処理部121に切替指示を出力する。切替指示を受け取ったコマンド処理部121は、未送信の子コマンドとデータを、切替後のネットワーク通信装置52Bに供給する。本発明は、コンピュータなどの情報処理装置に適用できる。
【選択図】図3
Description
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、高速な通信を提供し、かつ、通信の信頼性を向上させることができるようにする情報処理装置および方法、並びにプログラムに関する。
ブロードバンドのネットワークが普及し、高画質で再生時間の長いAV(Audio/Video)データなどの大容量のデータをネットワークで通信することが多くなってきている。それに伴い、大容量のデータを高速に(短時間で)通信するための技術が各種提案されている(例えば、特許文献1参照)。そのような技術の一つとして、TCP/IPのプロトコル処理を専用のハードウエア(チップ)で行わせるTOE(TCP/IP Offload Engine)と呼ばれる技術がある。
図1を参照して、従来のNIC(Network Interface Card)と、TOEを採用したNICであるネットワーク通信装置との違いについて説明する。
図1Aは、従来のNICを用いて通信を行う場合の構成例を示している。
コンピュータなどのCPU(Central Processing Unit)で実行されるソフトウエアであるユーザアプリケーション11は、データの演算処理や表示処理、または制御処理などの所定のアプリケーション処理(データ処理)を行う。ユーザアプリケーション11は、ネットワークに接続された他のコンピュータに送信する実データをOS(Operation System)12に供給する。
ユーザアプリケーション11と同様にCPUで実行されるOS12は、TCP処理部21とIP処理部22とを有し、そこで、ユーザアプリケーション11から供給された実データに対してTCP/IP(Transmission Control Protocol / Internet Protocol)プロトコル処理(TCP処理部21とIP処理部22それぞれが行う処理)を行い、NIC13に供給する。具体的には、TCP処理部21は、送信する実データにTCPヘッダを付加したTCPパケットを生成するとともに、コネクション管理、エラーの検出と訂正、フロー制御などを行う。IP処理部22は、IPパケットを生成する処理,IPアドレスとMAC(Media Access Control)アドレスの変換を行うARP(Address Resolution Protocol)処理,IPパケット配送の異常を通知するICMP(Internet Control Message Protocol)処理などを行う。
NIC13は、MAC処理部23とPHY処理部24とを有している。MAC処理部23は、専用のハードウエアにより、IP処理部22からデータ(IPパケット)とMACアドレスなどの情報を受け取ってMACフレームを組み立てる(MAC処理)。PHY処理部24は、専用のハードウエアにより、MAC処理部23から供給されるMACフレームに対応するディジタルデータをアナログの信号に変換し、ネットワークに送出する(PHY処理)。
図1Bは、ネットワーク通信装置を用いて通信を行う場合の構成例を示している。なお、図1Bにおいて、図1Aと対応する部分については同一の符号を付してあり、その説明は適宜省略する。
図1Aでは、OS12がTCP処理部21とIP処理部22を有していたのに対して、図1Bでは、ネットワーク通信装置32が、TCP処理部21とIP処理部22を、MAC処理部23およびPHY処理部24に加えて有している。
ユーザアプリケーション31は、ユーザアプリケーション11と同様に、所定のアプリケーション処理(データ処理)を行って、他のコンピュータに送信する実データを、ネットワークに接続しているネットワーク通信装置32に供給する。TCP処理部21、IP処理部22、MAC処理部23、およびPHY処理部24のそれぞれは、図1Aを参照して上述した処理を専用のハードウエアにより行う。
従って、図1Aにおける従来のNICを用いた通信では、TCP処理部21およびIP処理部22の機能がソフトウエア(OS12)で実現されていたのに対して、図1Bにおけるネットワーク通信装置32を用いた通信では、TCP処理部21およびIP処理部22の機能が専用のハードウエアで実現されるため、TCP/IPプロトコル処理を高速化することができる。また、ユーザアプリケーション31が実行されるCPUでは、TCP/IPプロトコル処理にかかる負荷が軽減されるため、アプリケーション処理自体も高速化される。
従って、TOEを採用したネットワーク通信装置32を用いることにより、大容量のデータを、高速に通信することが可能となる。
特開2003−229905号公報
しかしながら、ネットワーク通信装置は、ハードウエアの依存度が大きくなるため、ハードウエア障害による故障が致命的となるという問題がある。
本発明は、このような状況に鑑みてなされたものであり、高速な通信を提供し、かつ、通信の信頼性を向上させることができるようにするものである。
本発明の一側面の情報処理装置は、ネットワークと接続して通信するネットワーク通信装置を切替制御する情報処理装置であって、送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給するデータ処理手段と、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定する判定手段と、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える切替手段とを備える。
前記判定手段には、前記ネットワーク通信装置を切替えると判定した場合、前記データ処理手段に切替指示を供給させ、前記データ処理手段には、前記送信データのリストをテーブルに記憶させ、前記判定手段から前記切替指示が供給された場合、前記テーブルに基づいて、未送信の前記送信データを、切替後の前記ネットワーク通信装置に供給させることができる。
前記判定手段には、前記送信結果情報が前記ネットワーク通信装置のハードウエアエラーを表す場合に、前記ネットワーク通信装置を切替えると判定させることができる。
前記ネットワーク通信装置は、前記ネットワークとの接続をオンまたはオフする接続手段を有しており、前記切替手段には、動作中の前記ネットワーク通信装置に前記ネットワークとの接続をオフする指令を出力させ、待機中の前記ネットワーク通信装置に前記ネットワークとの接続をオンする指令を出力させることにより、前記送信データを処理させるネットワーク通信装置を切替えることができる。
前記送信結果情報をログとして記憶する記憶手段をさらに設け、前記判定手段には、前記記憶手段から前記送信結果情報を取得させることができる。
本発明の一側面の情報処理方法は、ネットワークと接続して通信するネットワーク通信装置を切替制御する情報処理方法であって、送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給し、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定し、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替えるステップを含む。
本発明の一側面のプログラムは、ネットワークと接続して通信するネットワーク通信装置の切替制御処理を、コンピュータに実行させるプログラムであって、送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給し、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定し、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替えるステップを含む。
本発明の一側面においては、送信するデータが、前記ネットワーク通信装置の処理単位の送信データに分割されて、動作中の前記ネットワーク通信装置に供給される。そして、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かが判定され、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置が切替えられる。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
本発明の一側面によれば、高速な通信を提供し、かつ、通信の信頼性を向上させることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、ネットワークと接続して通信するネットワーク通信装置を切替制御する情報処理装置(例えば、図2のコンピュータ51)であって、送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給するデータ処理手段(例えば、図3のコマンド処理部121)と、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定する判定手段(例えば、図3の異常判定部122)と、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える切替手段(例えば、図3の切替部123)とを備える。
この情報処理装置は、前記送信結果情報をログとして記憶する記憶手段(例えば、図3のログ記憶部103A)をさらに備え、前記判定手段は、前記記憶手段から前記送信結果情報を取得する。
本発明の一側面の情報処理方法またはプログラムは、送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給し(例えば、図10のステップS13)、前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定し(例えば、図10のステップS16)、前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える(例えば、図10のステップS21)ステップを含む。
以下、図を参照して、本発明の実施の形態について説明する。
図2は、本発明を適用したコンピュータ(情報処理装置)の一実施の形態の構成例を示している。
図2のコンピュータ51は、CPU(Central Processing Unit)61、ROM(Read Only Memory)62、RAM(Random Access Memory)63、バス64、入出力インタフェース65、入力部66、出力部67、記憶部68、およびドライブ69により構成されている。
また、コンピュータ51には、カード形状のネットワーク通信装置52Aおよび52Bが装着され、入出力インタフェース65と接続されている。ネットワーク通信装置52Aおよび52Bは、そのいずれか一方だけがコンピュータ51(のCPU61)により有効とされ、有効とされたネットワーク通信装置52Aまたは52Bが、インターネットやローカルエリアネットワークなどであるネットワーク53と接続し、入出力インタフェース65などを介してCPU61から供給されるデータを、ネットワーク53に接続している他のコンピュータ(図示せず)に送信する。
CPU61は、ROM62、または記憶部68に記憶されているプログラム(OS(Operating System)プログラムやアプリケーションプログラム)に従って各種の処理を実行する。RAM63には、CPU61で実行されるプログラムやプログラムが一時的に必要となるデータなどが適宜記憶される。これらのCPU61、ROM62、およびRAM63は、バス64により相互に接続されている。
CPU61にはまた、バス64を介して入出力インタフェース65が接続されている。入出力インタフェース65には、キーボード、マウス、マイクロホンなどよりなる入力部66、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、スピーカなどよりなる出力部67が接続されている。CPU61は、入力部66から入力される指令に対応して各種の処理を実行する。そして、CPU61は、処理の結果を出力部67に出力する。
入出力インタフェース65に接続されている記憶部68は、例えばハードディスクからなり、CPU61が実行するプログラムや各種のデータを記憶する。
入出力インタフェース65に接続されているドライブ69は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア70が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部68に転送され、記憶される。また、プログラムやデータは、ネットワーク通信装置52Aまたは52Bを介して取得され、記憶部68に記憶されてもよい。
ネットワーク通信装置52Aおよび52Bは、図1を参照して上述したネットワーク通信装置32と同様のネットワーク通信装置である。即ち、ネットワーク通信装置52Aは、MAC処理およびPHY処理を行う専用のハードウエア(図示せず)と、TCP/IPプロトコル処理を行う専用のハードウエアであるTOE処理部81Aと、電気的または物理的にネットワーク53との接続または切断を行うSW(スイッチ)82Aを有している。ネットワーク通信装置52Bも、同様にTOE処理部81BとSW82Bを有している。なお、MAC処理、PHY処理、TCP処理、およびIP処理は、それぞれ異なる専用のハードウエアで行うようにしてもよいし、複数の処理を1つのハードウエアで行うようにしてもよい。
ネットワーク通信装置52A(52B)は、コンピュータ51(のCPU61)からオン指令またはオフ指令を受け取ると、SW82A(82B)により、ネットワーク53との接続をオンまたはオフさせる。なお、以下において、ネットワーク通信装置52Aと52Bを特に区別する必要がない場合には、ネットワーク通信装置52と称し、TOE処理部81Aおよび81B並びにSW82Aおよび82Bについても同様に、TOE処理部81並びにSW82と称する。
図3は、ネットワーク通信装置52を介して通信を行うコンピュータ51の機能ブロック図を示している。
コンピュータ51は、ユーザアプリケーション101、装置管理アプリケーション102、ログ記憶部103A、およびログ記憶部103Bにより構成される。ここで、ユーザアプリケーション101および装置管理アプリケーション102は、図2のCPU61およびRAM63に対応し、ログ記憶部103Aおよび103Bは、図2の記憶部68に対応する。
ユーザアプリケーション101は、図1Bのユーザアプリケーション31と同様に、データの演算処理や表示処理、または制御処理などの所定のアプリケーション処理(データ処理)を行って、図示せぬ他のコンピュータに送信する実データをコマンドとともに装置管理アプリケーション102に供給する。
装置管理アプリケーション102は、コマンド処理部121、異常判定部122、および切替部123から構成され、コンピュータ51に装着されているネットワーク通信装置52Aおよび52Bを管理(切替制御)する。具体的には、装置管理アプリケーション102は、最初に、ネットワーク通信装置52Aおよび52Bのいずれか一方のみを有効として動作させ、動作中のネットワーク通信装置52に障害が発生した場合に、他方の待機中のネットワーク通信装置52を有効として動作させる。なお、以下では、最初に有効とされるネットワーク通信装置52が、ネットワーク通信装置52Aであるとして説明する。
また、装置管理アプリケーション102は、ユーザアプリケーション101からの実データを、動作中のネットワーク通信装置52Aまたは52Bに送信させる。
コマンド処理部121は、ユーザアプリケーション101から供給されるコマンドと実データを受け取り、受け取った実データをネットワーク通信装置52の処理単位である組み上げサイズの分割データ(送信データ)に分割する。そして、コマンド処理部121は、分割データに対応させて子コマンドを生成する。さらに、コマンド処理部121は、生成した子コマンドに、子コマンドをユニークに識別するコマンドIDを送信順に付加して、コマンドテーブル(メモリ)にキャッシュする(記憶させる)。
なお、組み上げサイズは、デフォルトとして、ネットワーク通信装置52が処理することができる最大フレームサイズに設定されているが、ユーザアプリケーション101からの組み上げサイズを設定する設定コマンドや、ネットワーク通信装置52を介して取得したネットワーク53のトラフィック状況に応じて、(最大フレームサイズ以下のフレームサイズで)適宜変更することができる。
コマンド処理部121は、送信順に付与されているコマンドIDに基づいて、コマンドテーブルにキャッシュされている子コマンドと分割データを、順次、ネットワーク通信装置52Aに供給する。また、コマンド処理部121は、正常に送信されたことを表す正常終了ステータスが異常判定部122から供給された子コマンドを、コマンドテーブルから削除する。従って、コマンドテーブルは、未送信の分割データのリストを意味する。コマンド処理部121は、1つのコマンドに対応する全ての分割データが正常に送信されたとき、実データが正常に送信されたことを表すコマンド結果情報を、実行結果としてユーザアプリケーション101に返信する。
なお、コマンド処理部121には、正常終了ステータスの他に、再送指示や切替指示が異常判定部122から供給されることがある。再送指示が異常判定部122から供給された場合、コマンド処理部121は、再送指示で指定された子コマンドをコマンドテーブルから検索し、検索された子コマンドとその分割データをネットワーク通信装置52Aに供給する(再送させる)。切替指示が異常判定部122から供給された場合、コマンド処理部121は、子コマンドの供給先を、動作中のネットワーク通信装置52Aから待機中のネットワーク通信装置52Bに切替える。
異常判定部122は、ログ記憶部103Aまたは103Bに記憶されている状態テーブルから子コマンドの送信結果情報を取得する。この送信結果情報には、ネットワーク通信装置52が子コマンドを処理した時刻、処理した子コマンドのコマンドID、およびステータスコードが含まれる。なお、時刻には、日付け(年月日)も含まれており、ステータスコードは、例えば、子コマンドが正常に処理されたことや、ネットワーク通信装置52のハードウエアトラブル(ネットワーク通信装置52の状態情報)などを表すコードである。
異常判定部122は、取得した送信結果情報に基づいて、子コマンドを処理させるネットワーク通信装置52を、動作中のネットワーク通信装置52Aから待機中のネットワーク通信装置52Bに切替える必要があるか否かを判定する。異常判定部122は、ネットワーク通信装置52を切替える必要があると判定した場合、切替指示をコマンド処理部121と切替部123に供給し、切替える必要がないと判定した場合、子コマンドのステータスコードに対応する正常終了ステータスまたは再送指示をコマンド処理部121に供給する。
切替部123は、異常判定部122から切替指示が供給された場合、動作中のネットワーク通信装置52Aから、待機中のネットワーク通信装置52Bに、処理させるネットワーク通信装置を切替える。より具体的には、切替部123は、動作中のネットワーク通信装置52Aにネットワーク53との接続をオフする指令(オフ指令)を出力し、待機中のネットワーク通信装置52Bにネットワーク53との接続をオンする指令(オン指令)を出力する。なお、コンピュータ51の起動直後には、切替部123は、最初に有効とされるネットワーク通信装置52Aにオン指令を出力し、ネットワーク通信装置52Bにオフ指令を出力する。
ログ記憶部103Aは、ネットワーク通信装置52Aから供給される子コマンドの送信結果情報を、ログとしての状態テーブルに記憶する。この状態テーブルでは、ネットワーク通信装置52Aから供給される子コマンドの送信結果情報が時系列に記憶され、送信結果情報の数が予め決められた所定数に達した場合、時刻の最も古い送信結果情報が削除されて、その代わりに、新しく供給された送信結果情報が記憶されるようになされている。ログ記憶部103Bは、送信結果情報を出力してくる装置がネットワーク通信装置52Bであること以外は、ログ記憶部103Aと同様である。
以上のように構成されるコンピュータ51では、コマンド処理部121からネットワーク通信装置52Aに供給された子コマンドに対しての送信結果情報が、ログ記憶部103Aの状態テーブルに記憶される。異常判定部122は、状態テーブルを参照して、処理させるネットワーク通信装置52を切替える必要があると判定した場合、コマンド処理部121に切替指示を出力する。切替指示を受け取ったコマンド処理部121は、コマンドテーブルに残っている未送信の子コマンドと分割データを、切替後のネットワーク通信装置52Bに供給する。
図4は、送信結果情報に含まれるステータスコードの一覧を示している。
子コマンドの送信結果情報には、ステータスコードとして“600”乃至“607”のいずれかの数字が含まれる。
ステータスコード“600”は、子コマンドが正常に終了した(送信された)ことを表す。ステータスコード“601”は、タイムアウトが発生したことを表す。ステータスコード“602”は、チェックサムエラーが発生したことを表す。ステータスコード“603”は、ネットワーク53との接続が切れたことを表す。ステータスコード“604”は、ルートが無効であることを表す。ステータスコード“605”は、TOE処理を行うハードウエア(TOE処理部81)にトラブル(TOEハードウエアトラブル)が発生したことを表す。ステータスコード“606”は、TOEドライバが無効であることを表す。ステータスコード“607”は、未知のエラー、換言すれば、ステータスコード“600”乃至“606”以外のエラーであることを表す。
以上のステータスコードのうち、異常判定部122がネットワーク通信装置52を切替える必要があると判定するのは、ネットワーク通信装置52が処理できないハードウエアトラブルが発生した場合であり、即ち、“605”乃至“607”のステータスコードが送信結果情報として状態テーブルに記憶されていた場合である。
次に、実データとしての画像ファイルがユーザアプリケーション101から装置管理アプリケーション102に供給された場合の処理について説明する。
ユーザアプリケーション101が画像ファイルを他のコンピュータに送信する場合、画像ファイルとともに図5に示すコマンドが、ユーザアプリケーション101からコマンド処理部121に供給されてくる。
図5に示すコマンドは、sendFile (socketID, destinationAddress, fileID, dataLength)のフォーマットとなっており、sendFileがファイルの送信を表すコマンドであり、それに引数として、ソケットを識別するソケットID(socketID)、送信相手のアドレスである宛先アドレス(destinationAddress)、画像ファイル(実データ)を識別するファイルID(fileID)、および画像ファイルのデータ長(データサイズ)(dataLength)が与えられている。なお、データ長の単位はメガバイト(以下、MBと称する)である。
従って、図5は、ソケットID、宛先アドレス、ファイルID、およびデータ長として、“sock1”,“host1”,“file1”、および“1000”が引数として指定されたコマンドsendFileが、“file1”で識別される画像ファイルとともに、ユーザアプリケーション101からコマンド処理部121に供給されることを意味している。
コマンド処理部121は、“file1”で識別される画像ファイルを組み上げサイズに分割し、その結果得られる分割データに対して、それぞれ、sendAssemblePacket (socketID, destinationAddress, fileID, assemblePacketID, dataLength)のフォーマットの子コマンドを生成する。ここで、sendAssemblePacketはファイルの送信を表す子コマンドであり、socketID,destinationAddress,fileID,assemblePacketID、およびdataLengthそれぞれは、ソケットID、宛先アドレス、ファイルID、分割データを識別する分割データID、および分割データのデータ長を表す引数である。なお、組み上げサイズは、300MBとなっている。
従って、1000MBの画像ファイルが、300MBの分割データ、300MBの分割データ、300MBの分割データ、および100MBの分割データに分割され、それぞれに対して、sendAssemblePacket (sock1, host1, file1, assemblePacket1, 300),sendAssemblePacket (sock1, host1, file1, assemblePacket2, 300), sendAssemblePacket (sock1, host1, file1, assemblePacket3, 300)、およびsendAssemblePacket (sock1, host1, file1, assemblePacket4, 100)の4つの子コマンドが生成される。なお、実データ(画像ファイル)のデータ長が組み上げサイズよりも小さい場合には、コマンドと子コマンドは、1対1に対応する。
そして、コマンド処理部121は、図6に示すように、生成した4つの子コマンドそれぞれにコマンドIDを付与してコマンドテーブルにキャッシュする。図6は、コマンドテーブルの例を示している。
コマンド処理部121は、sendAssemblePacket (sock1, host1, file1, assemblePacket1, 300)の子コマンドにはコマンドID“001”を付与し、sendAssemblePacket (sock1, host1, file1, assemblePacket2, 300)の子コマンドにはコマンドID“002”を付与し、sendAssemblePacket (sock1, host1, file1, assemblePacket3, 300)の子コマンドにはコマンドID“003”を付与し、sendAssemblePacket (sock1, host1, file1, assemblePacket4, 100)の子コマンドにはコマンドID“004”を付与して、コマンドテーブルにキャッシュする。
図7は、図6のコマンドテーブルにキャッシュされているコマンドID“001”からコマンドID“003”までの子コマンドがコマンド処理部121からネットワーク通信装置52Aに供給された後の状態テーブルを示している。
状態テーブルには、図7に示すように、最初に(時刻T1に)、送信結果情報として、時刻T1、コマンドID“001”、およびステータスコード“600”が記憶される。この送信結果情報は、時刻T1にコマンドID“001”の子コマンド(すなわち、assemblePacket1を送信するsendAssemblePacketコマンド)の送信が正常に終了したことを表している。
従って、ステータスコード“600”は、ネットワーク通信装置52の切替が必要となるステータスコードではないので(ステータスコード“605”乃至“607”ではないので)、異常判定部122は、ネットワーク通信装置52を切替える必要はないと判定する。そして、異常判定部122は、コマンドID“001”のステータスコード“600”に対応して、コマンドID“001”の正常終了ステータスをコマンド処理部121に供給する。
コマンド処理部121は、コマンドID“001”の正常終了ステータスを異常判定部122から受け取ると、コマンドID“001”の子コマンドをコマンドテーブルから削除する。これにより、図6に示したコマンドテーブルは、図8に示す状態となる。そこで、コマンド処理部121は、コマンドID“002”の子コマンド(すなわち、assemblePacket2を送信するsendAssemblePacketコマンド)をネットワーク通信装置52Aに供給し、送信させる。
時刻T1より後の時刻T2に、時刻T2、コマンドID“002”、およびステータスコード“601”が送信結果情報として状態テーブル(図7)に記憶される。この送信結果情報は、時刻T2に処理したコマンドID“002”の子コマンドにタイムアウトが発生したことを表している。
従って、ステータスコード“601”は、ネットワーク通信装置52の切替が必要となるステータスコードではないので、異常判定部122は、ネットワーク通信装置52を切替える必要はないと判定する。但し、ステータスコード“601”で表されるタイムアウトは、送信相手にassemblePacket2の分割データが届けられていないことを表しているため、異常判定部122は、コマンドID“002”のステータスコード“601”に対応して、コマンドID“002”の再送指示をコマンド処理部121に供給する。
コマンド処理部121は、コマンドID“002”の再送指示を異常判定部122から受け取ると、コマンドID“002”の子コマンドを再びネットワーク通信装置52Aに供給する。このときのコマンドテーブルは、図8に示す状態のままである。
時刻T2より後の時刻T3に、時刻T3、コマンドID“002”、およびステータスコード“600”が送信結果情報として状態テーブル(図7)に記憶される。この送信結果情報は、時刻T3にコマンドID“002”の子コマンドの送信が正常に終了したことを表している。
従って、ステータスコード“600”は、ネットワーク通信装置52の切替が必要となるステータスコードではないので、異常判定部122は、ネットワーク通信装置52を切替える必要はないと判定する。そして、異常判定部122は、コマンドID“002”のステータスコード“600”に対応して、コマンドID“002”の正常終了ステータスをコマンド処理部121に供給する。
コマンド処理部121は、コマンドID“002”の正常終了ステータスを異常判定部122から受け取ると、コマンドID“002”の子コマンドをコマンドテーブルから削除する。これにより、コマンドテーブルは、図8の状態から図9に示す状態となる。
次に、コマンド処理部121は、コマンドID“003”の子コマンド(すなわち、assemblePacket3を送信するsendAssemblePacketコマンド)をネットワーク通信装置52Aに供給し、送信させる。
時刻T3より後の時刻T4に、時刻T4、コマンドID“003”、およびステータスコード“605”が送信結果情報として状態テーブル(図7)に記憶される。この送信結果情報は、時刻T4にコマンドID“003”の子コマンドを送信する際、TOE処理を行うハードウエアにトラブルが発生したことを表している。
ステータスコード“605”を取得した異常判定部122は、ネットワーク通信装置52を切替える必要があると判定し、切替指示をコマンド処理部121と切替部123に供給する。
切替部123は、動作中のネットワーク通信装置52Aにオフ指令を出力し、待機中のネットワーク通信装置52Bにオン指令を出力することにより、処理させるネットワーク通信装置52を切替える。
コマンド処理部121は、異常判定部122から切替指示を受け取ると、処理させるネットワーク通信装置52がネットワーク通信装置52Bとなったことを認識する。そして、コマンド処理部121は、コマンドテーブルに残っている未送信の子コマンドを、切替後のネットワーク通信装置52Bに供給するようにする。切替指示を受け取ったときのコマンドテーブルの状態は、図9に示す状態であるので、コマンド処理部121は、最初に、コマンドID“003”の子コマンドをネットワーク通信装置52Bに供給する。そして、コマンドID“003”の正常終了ステータスを受け取った後に、コマンドID“004”の次の子コマンドがコマンド処理部121からネットワーク通信装置52Bに供給される。
以上のように、異常判定部122は、新たな子コマンドの送信結果情報がログ記憶部103Aの状態テーブルに追加されるたびに、追加された子コマンドの送信結果情報を取得し、その送信結果情報に基づいて、処理させるネットワーク通信装置52を、動作中のネットワーク通信装置52Aから、待機中のネットワーク通信装置52Bに切替える必要があるか否かを判定する。
そして、ネットワーク通信装置52を切替える必要があると判定された場合には、異常判定部122は、切替指示をコマンド処理部121と切替部123に供給し、切替える必要がないと判定された場合には、ステータスコードに対応する正常終了ステータスまたは再送指示をコマンド処理部121に供給する。
図10のフローチャートを参照して、ユーザアプリケーション101から供給される実データを送信する実データ送信処理について説明する。
初めに、ステップS11において、コマンド処理部121は、ユーザアプリケーション101からコマンドと実データを受け取り、ステップS12において、受け取った実データをネットワーク通信装置52Aの処理単位である組み上げサイズに分割する。また、ステップS12において、コマンド処理部121は、組み上げサイズにそれぞれ分割されて得られた分割データに対応させて子コマンドを生成する。これにより、例えば、図5に示すユーザアプリケーション101からのsendFileコマンドに対応して、図6に示す4つの子コマンド(sendAssemblePacketコマンド)が生成される。
さらに、ステップS12において、コマンド処理部121は、生成された子コマンドにコマンドIDを送信順に付与し、コマンドテーブルにキャッシュする。例えば、コマンド処理部121は、図6に示す4つの子コマンド(sendAssemblePacketコマンド)に対して、コマンドID“001”乃至“004”を付与して、コマンドテーブルにキャッシュする。
ステップS13において、コマンド処理部121は、送信順に付与されているコマンドIDに基づいて、コマンドテーブルにキャッシュされている1つの子コマンドを、分割データとともにネットワーク通信装置52A(動作中のネットワーク通信装置52)に供給する。例えば、コマンドテーブルが図6に示す状態である場合、コマンド処理部121は、assemblePacket1を送信するsendAssemblePacketコマンドを、分割データとともにネットワーク通信装置52Aに供給する。
ステップS14において、ログ記憶部103Aは、ネットワーク通信装置52Aから供給された、子コマンドの送信結果情報を受け取り、状態テーブルに記憶する。例えば、ログ記憶部103Aは、assemblePacket1を送信するsendAssemblePacketコマンドに対する送信結果情報として、時刻T1、コマンドID“001”、およびステータスコード“600”をネットワーク通信装置52Aから受け取り、状態テーブルに記憶する。
ステップS15において、異常判定部122は、ログ記憶部103Aの状態テーブルから子コマンドの送信結果情報を取得する。ここで取得された送信結果情報に対応する子コマンドを、以下では、取得子コマンドと称する。
ステップS16において、異常判定部122は、取得子コマンドの送信結果情報に基づいて、処理させるネットワーク通信装置52を、動作中のネットワーク通信装置52Aから、待機中のネットワーク通信装置52Bに切替える必要があるか否かを判定する。ここで、異常判定部122は、取得子コマンドのステータスコードが“605”乃至“607”であるか否かにより、ネットワーク通信装置52を切替える必要があるか否かを判定する。
ステップS16で、ネットワーク通信装置52を切替える必要がないと判定された場合、即ち、取得子コマンドのステータスコードが“605”乃至“607”ではない場合、ステップS17において、異常判定部122は、取得子コマンドが正常終了したか否かを判定する。
ステップS17で、取得子コマンドが正常終了したと判定された場合、ステップS18において、異常判定部122は、取得子コマンドの正常終了ステータスをコマンド処理部121に供給する。
そして、ステップS19において、コマンド処理部121は、取得子コマンドの正常終了ステータスを異常判定部122から受け取り、取得子コマンドをコマンドテーブルから削除する。その後、処理は後述するステップS25に進む。
一方、ステップS17で、取得子コマンドが正常終了していないと判定された場合、ステップS20において、異常判定部122は、取得子コマンドの再送指示をコマンド処理部121に供給する。その後、処理はステップS13に戻り、再送指示された子コマンドがネットワーク通信装置52(52A)に供給される。
また、上述したステップS16において、ネットワーク通信装置52を切替える必要があると判定された場合、即ち、取得子コマンドのステータスコードが“605”乃至“607”である場合、ステップS21において、異常判定部122は、切替部123に切替指示を供給する。
ステップS22において、切替部123は、ネットワーク通信装置52Aおよび52Bにオン指令またはオフ指令を供給する。即ち、切替部123は、動作中のネットワーク通信装置52Aにオフ指令を出力し、待機中のネットワーク通信装置52Bにオン指令を出力して、処理させるネットワーク通信装置52を切替える。
ステップS23において、異常判定部122は、コマンド処理部121に切替指示を供給する。ステップS24において、コマンド処理部121は、切替指示により、処理させるネットワーク通信装置52がネットワーク通信装置52Bとなったことを認識する。
ステップS25において、コマンド処理部121は、コマンドテーブルに記憶されているすべての子コマンドをネットワーク通信装置52に供給したか否かを判定する。ステップS25で、すべての子コマンドをまだ供給していないと判定された場合、即ち、コマンドテーブルに子コマンドがまだ記憶されており、すべての分割データを送信していない場合、処理はステップS13に戻り、コマンドテーブルにある次の子コマンドが分割データとともにネットワーク通信装置52に供給され、以降の処理が繰り返される。
一方、ステップS25において、コマンドテーブルに記憶されている全ての子コマンドを供給したと判定された場合、即ち、実データを分割して得られた全ての分割データが送信された場合、ステップS26において、コマンド処理部121は、ステップS11で受け取ったコマンドに対するコマンド結果情報をユーザアプリケーション101に返信して、処理を終了する。
上述した処理は、ユーザアプリケーション101から順次供給されるコマンドおよび実データに対して繰り返し実行される。
次に、図11のフローチャートを参照して、装置管理アプリケーション102から供給された分割データを他のコンピュータに送信する、ネットワーク通信装置52の分割データ送信処理について説明する。
初めに、ステップS41において、ネットワーク通信装置52は、装置管理アプリケーション102(の切替部123)からオン指令またはオフ指令を受信したか否かを判定する。例えば、コンピュータ51の起動直後には、最初に処理させるネットワーク通信装置52Aにはオン指令が供給され、待機させるネットワーク通信装置52Bにはオフ指令が供給される。
ステップS41で、オン指令またはオフ指令を受信したと判定された場合、ステップS42において、ネットワーク通信装置52は、オン指令またはオフ指令に対応してSW82をオンまたはオフすることにより、ネットワーク53との接続または切断を行う。そして、処理は、ステップS41に戻る。
一方、ステップS41で、オン指令およびオフ指令を受信していないと判定された場合、言い換えると、装置管理アプリケーション102(のコマンド処理部121)から子コマンドと分割データを受信した場合、ステップS43において、ネットワーク通信装置52のTOE処理部81は、受信した分割データに対してTCP/IPプロトコル処理を行う。
そして、ステップS44において、ネットワーク通信装置52は、TCP/IP処理後の分割データに対してMAC処理およびPHY処理を行い、分割データを他のコンピュータにネットワーク53を介して送信する。
ステップS45において、ネットワーク通信装置52は、受信した子コマンドに対する送信結果情報を装置管理アプリケーション102(のログ記憶部103Aまたは103B)に返信する。その後、処理はステップS41に戻り、それ以降の処理が繰り返される。その結果、ネットワーク通信装置52は、オフ指令が供給されるまで、子コマンドとともに供給される分割データを送信し、その結果としての送信結果情報を装置管理アプリケーション102に返信する。
以上のように、ネットワーク通信装置52では、TCP/IPプロトコル処理を専用のハードウエアで行うので、画像ファイル(分割データ)の送受信を高速化することができる。コンピュータ51は、このネットワーク通信装置52を用いることにより、高速な通信を提供することができる。
また、コンピュータ51には、2台のネットワーク通信装置52が装着されており、動作中のネットワーク通信装置52に障害(ハードウエアトラブル)が発生した場合には、即座にその障害を検知し、待機中のネットワーク通信装置52に切替えることができるので、ネットワーク53を介した通信の信頼性を向上させることができる。
さらに、コンピュータ51では、実データの送信途中で動作中のネットワーク通信装置52に障害が発生した場合、コマンドテーブルを参照して未送信の子コマンドと分割データを切替後のネットワーク通信装置52Bに供給するようにして、ユーザアプリケーション101からのコマンド(実データの送信要求)を完了させることができる。言い換えれば、実データの送信途中で動作中のネットワーク通信装置52Aに障害が発生した場合、再度ユーザアプリケーション101に実データを要求し、切替後のネットワーク通信装置52Bで実データを最初から送信し直す必要がない。これにより、ユーザアプリケーション101に負担(負荷)をかけずに、高速に(短時間で)実データの送信処理を完結させることができる。
なお、上述した例では、コマンドIDを送信順に付与するようにしたが、コマンドIDは、送信順と関係なく付与しても良い。
また、上述した例では、コンピュータ51には2枚のネットワーク通信装置52が装着されていたが、3枚以上のネットワーク通信装置52を装着するようにして、切替制御を行うようにすることも可能である。
ネットワーク通信装置52は、着脱可能なカード形状の他に、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Alley)などを用いてチップ(マルチチップモジュールも含む)として構成することもできる。即ち、ネットワーク通信装置52は、上述した機能をハードウエアとして備えるものであれば、物理的な形状は特に限定されない。従って、ネットワーク通信装置52は、コンピュータ51の他、ネットワーク53を介して通信する機能を有するビデオカメラ、ハードディスクやDVD(Digital Versatile Disc)などの記録媒体にデータを記録または再生する記録再生装置、またはテレビジョン受像機などの情報処理装置に組み込むことも可能である。
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
51 コンピュータ, 52(52A,52B) ネットワーク通信装置, 53 ネットワーク, 101 ユーザアプリケーション, 102 装置管理アプリケーション, 103A,103B ログ記憶部, 121 コマンド処理部, 122 異常判定部, 123 切替部
Claims (7)
- ネットワークと接続して通信するネットワーク通信装置を切替制御する情報処理装置であって、
送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給するデータ処理手段と、
前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定する判定手段と、
前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える切替手段と
を備える情報処理装置。 - 前記判定手段は、前記ネットワーク通信装置を切替えると判定した場合、前記データ処理手段に切替指示を供給し、
前記データ処理手段は、前記送信データのリストをテーブルに記憶し、前記判定手段から前記切替指示が供給された場合、前記テーブルに基づいて、未送信の前記送信データを、切替後の前記ネットワーク通信装置に供給する
請求項1に記載の情報処理装置。 - 前記判定手段は、前記送信結果情報が前記ネットワーク通信装置のハードウエアエラーを表す場合に、前記ネットワーク通信装置を切替えると判定する
請求項1に記載の情報処理装置。 - 前記ネットワーク通信装置は、前記ネットワークとの接続をオンまたはオフする接続手段を有しており、
前記切替手段は、動作中の前記ネットワーク通信装置に前記ネットワークとの接続をオフする指令を出力し、待機中の前記ネットワーク通信装置に前記ネットワークとの接続をオンする指令を出力することにより、前記送信データを処理させるネットワーク通信装置を切替える
請求項1に記載の情報処理装置。 - 前記送信結果情報をログとして記憶する記憶手段をさらに備え、
前記判定手段は、前記記憶手段から前記送信結果情報を取得する
請求項1に記載の情報処理装置。 - ネットワークと接続して通信するネットワーク通信装置を切替制御する情報処理方法であって、
送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給し、
前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定し、
前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える
ステップを含む情報処理方法。 - ネットワークと接続して通信するネットワーク通信装置の切替制御処理を、コンピュータに実行させるプログラムであって、
送信するデータを、前記ネットワーク通信装置の処理単位の送信データに分割して、動作中の前記ネットワーク通信装置に供給し、
前記送信データに対して動作中の前記ネットワーク通信装置から返信されてくる送信結果情報に基づいて、前記ネットワーク通信装置を切替えるか否かを判定し、
前記ネットワーク通信装置を切替えると判定された場合、動作中の前記ネットワーク通信装置から、待機中の前記ネットワーク通信装置に、前記送信データを処理させるネットワーク通信装置を切替える
ステップを含むプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000647A JP2007184710A (ja) | 2006-01-05 | 2006-01-05 | 情報処理装置および方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006000647A JP2007184710A (ja) | 2006-01-05 | 2006-01-05 | 情報処理装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007184710A true JP2007184710A (ja) | 2007-07-19 |
Family
ID=38340427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006000647A Withdrawn JP2007184710A (ja) | 2006-01-05 | 2006-01-05 | 情報処理装置および方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007184710A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012160901A (ja) * | 2011-01-31 | 2012-08-23 | Brother Ind Ltd | 通信装置 |
-
2006
- 2006-01-05 JP JP2006000647A patent/JP2007184710A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012160901A (ja) * | 2011-01-31 | 2012-08-23 | Brother Ind Ltd | 通信装置 |
US9762511B2 (en) | 2011-01-31 | 2017-09-12 | Brother Kogyo Kabushiki Kaisha | Communication device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090086620A1 (en) | Method and apparatus for preventing network conflict | |
US20060002256A1 (en) | Network-based information recording/reproducing system and information recording/reproducing apparatus | |
JP5295662B2 (ja) | Cec通信装置、それを用いた映像音響装置およびcec通信方法 | |
KR19990072918A (ko) | 데이타통신시스템,데이타통신방법,및데이타통신장치 | |
JP6649673B2 (ja) | WiFiディスプレイ互換ネットワークゲートウェイ | |
CN103731758B (zh) | 一种视频流传输方法和装置 | |
US20120089863A1 (en) | Failover system, storage processing device and failover control method | |
US7502863B2 (en) | Method of distributing stream data and system thereof | |
WO2003034206A2 (en) | Host network interface device and drive network interface device | |
KR19990072917A (ko) | 데이타통신시스템,데이타통신방법,데이타통신장치및디지탈인터페이스 | |
JP2020529749A (ja) | ネットワーク構成データの条件付きブロードキャストのための方法および装置 | |
JP2007201758A (ja) | 受信装置および方法、並びにプログラム | |
JP6139872B2 (ja) | 情報処理装置及びその制御方法、プログラム、記憶媒体、並びに、映像処理システム | |
US20080068675A1 (en) | Image display system | |
US20120008628A1 (en) | Network communication apparatus, communication method, and integrated circuit | |
JP2006295787A (ja) | 情報処理システム、情報処理装置、及び情報処理方法 | |
JP4413806B2 (ja) | 障害切り分け方法、障害切り分け機能を有する通信装置及びプログラム | |
US9667443B2 (en) | Data distribution device and imaging apparatus | |
EP0984602A2 (en) | Data communication method and system for connection establishment | |
JP2007184710A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2006345240A (ja) | 遠隔操作システムおよび遠隔操作方法 | |
US8037201B2 (en) | Content holder unit, information processing method, and program | |
JP2009077024A (ja) | Tcpパケット通信装置およびその関連技術 | |
JP2005110024A (ja) | データ送信装置、データ送受信システム、及びデータ送受信方法 | |
JP2005275643A (ja) | コンテンツデータ処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |