(57)【要約】【課題】応答の遅延を抑制しつつ負荷が分散されるデータ記録システムを提供する。【解決手段】データ記録システム１０は、指令コンピュータ１０１と、複数の処理コンピュータ１０２，１１２，１１３と、ファイルサーバ１０３とを備える。第１の処理コンピュータ１０２は、指令処理部１０４と出力制御部１０５とを含む。指令処理部１０４は、指令コンピュータ１０１から与えられた処理命令に基づいて機器１５０の作動を制御し、また、機器１５０から出力される動作情報を生成する。出力制御部１０５は、指令処理部１０４から出力される情報をファイルサーバ１０３に転送する。出力制御部１０５のデータ受信部１０６は、その動作情報の記録の完了に応答して、指令処理部１０４と出力制御部１０５との通信を遮断する。【選択図】図１
2008198116.tif 000002
【特許請求の範囲】
【請求項１】
データ記録システムであって、
任意の指令に基づき処理を行ない処理結果を動作情報として出力する複数の制御装置と、
前記指令を各前記制御装置に対して与える指令装置と、
各前記制御装置から出力される動作情報を格納する記憶装置とを備え、
各前記制御装置は、
前記指令に基づき処理を実行して動作情報の生成を行なう指令処理部と、
前記動作情報を前記記憶装置に出力する出力制御部とを備え、
前記出力制御部は、
前記指令処理部から出力された動作情報を保持する一時記憶部と、
前記一時記憶部に対する動作情報の記録の完了に応答して、前記指令処理部と前記出力制御部との通信を遮断する通信制御部と、
前記記憶装置に対するデータの出力タイミングを前記一時記憶部に対する前記動作情報の記録が完了した時から遅延させて、前記一時記憶部から前記記憶装置に前記動作情報を出力するデータ出力部とを含む、データ記録システム。
【請求項２】
前記出力制御部は、前記一時記憶部に記録された前記動作情報のデータ量に応じて、前記一時記憶部から前記記憶装置に対する前記動作情報の出力時間を調整する、請求項１に記載のデータ記録システム。
【請求項３】
前記出力制御部は、前記一時記憶部に記録された前記動作情報のデータ量に応じて、前記一時記憶部から前記記憶装置に対する前記動作情報の出力が行なわれる間隔を調整する、請求項１に記載のデータ記録システム。
【請求項４】
前記出力制御部は、前記記憶装置に対する前記動作情報の出力の遅延を規定する遅延データを発生する乱数発生部をさらに含み、
前記データ出力部は、前記乱数発生部から出力される遅延データに基づいて、前記動作情報を前記記憶装置に出力する、請求項１に記載のデータ記録システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理に関し、特に、複数のコンピュータによって機器を制御するシステムにおいてデータの出力を制御する技術に関する。
【背景技術】
【０００２】
近年、大型テレビは市場の要求から益々大型化している。それに伴い生産装置も大型化している。この生産設備を制御するために、１つの指令用コンピュータから複数の処理用コンピュータに指令を発信して並列動作させる方法が用いられる場合がある。このとき、動作不良時の原因調査用に処理用コンピュータの動作履歴を記録したり、あるいは、機器の状態等の情報を出力するために、ファイルサーバが設置され、当該ファイルサーバと処理コンピュータとが、ＬＡＮ（Local Area Network）等の通信回線によって接続される。この構成によると、指令用コンピュータの指令に基づき複数の処理用コンピュータがファイルサーバに対して動作履歴などのデータを一斉に出力することになる。そうなると、通信回線が一時的に混雑し、ファイルサーバの応答性が低下する。その結果、処理用コンピュータに対するファイルサーバの応答が遅れることで、処理用コンピュータの処理速度が低下する。そこで、一斉に通信を行なうことで生じるサーバ側の瞬間的な負荷を低減する方法が考案されている。
【０００３】
たとえば、特開平１１−２５２１３６号公報（特許文献１）は、ネットワーク上に分散して配置されているノードが、動的なグループを形成できる通信制御システムを開示している。
【０００４】
また、特開２０００−３２０４６号公報（特許文献２）は、同報通信の受信結果を返信する複数の通信装置を有する通信システムにおいて、スループットの低下が抑制される技術を開示している。
【特許文献１】特開平１１−２５２１３６号公報
【特許文献２】特開２０００−３２０４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特開平１１−２５２１３６号公報に開示されているようなプリントサーバへ単一の応答を行なう場合は、応答時間が遅延時間に対して十分短いため、最大遅延時間として１秒でも設定しておけばプリントサーバへの負荷はうまく分散できると思われる（図２−２３）。
【０００６】
しかし、たとえば、ファイルサーバに対するデータの出力時間が１秒かかるような場合、複数のコンピュータからの出力をうまく分散させるには、遅延時間は２〜１０秒程度のランダムな時間が適当と考えられる。最低でも１秒以上の最大遅延時間を設定しなければファイルサーバへの負荷を分散できない。最大遅延時間は長いほど負荷分散の効果が大きくなる。
【０００７】
その一方で、生産装置などの制御においては通常ミリ秒（ｍｓｅｃ）〜数十ミリ秒単位での応答が要求されるのに対し、データの出力時間は数百ミリ秒を要する場合がある。そのため、このままでは、十分な遅延時間を確保することができない。
【０００８】
ところで、十分な遅延時間を確保しながら応答性を向上する方法として、出力するデータをキャッシュメモリに記録しておいて後から出力を行ない遅延時間を隠蔽する「ライトバック」という技術がある。この技術では、出力側の応答性は向上するが、いずれは各コンピュータからの出力処理が重なり、ファイルサーバへの負荷が増大することになる。あるいは、十分な遅延時間を確保するためには、大容量のキャッシュメモリが必要となる。
【０００９】
本発明は、上述のような問題点を解決するためになされたものであって、複数の処理コンピュータの応答性を維持しつつファイルサーバへの負荷が低減されるデータ記録システムを提供することである。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、この発明のある局面に従うデータ記録システムは、任意の指令に基づき処理を行ない処理結果を動作情報として出力する複数の制御装置と、指令を各制御装置に対して与える指令装置と、各制御装置から出力される動作情報を格納する記憶装置とを備える。各制御装置は、指令に基づき処理を実行して動作情報の生成を行なう指令処理部と、動作情報を記憶装置に出力する出力制御部とを備える。出力制御部は、指令処理部から出力された動作情報を保持する一時記憶部と、一時記憶部に対する動作情報の記録の完了に応答して、指令処理部と出力制御部との通信を遮断する通信制御部と、記憶装置に対するデータの出力タイミングを一時記憶部に対する動作情報の記録が完了した時から遅延させて、一時記憶部から記憶装置に動作情報を出力するデータ出力部とを含む。
【００１１】
好ましくは、出力制御部は、一時記憶部に記録された動作情報のデータ量に応じて、一時記憶部から記憶装置に対する動作情報の出力時間を調整する。
【００１２】
好ましくは、出力制御部は、一時記憶部に記録された動作情報のデータ量に応じて、一時記憶部から記憶装置に対する動作情報の出力が行なわれる間隔を調整する。
【００１３】
好ましくは、出力制御部は、記憶装置に対する動作情報の出力の遅延を規定する遅延データを発生する乱数発生部をさらに含む。データ出力部は、乱数発生部から出力される遅延データに基づいて、動作情報を記憶装置に出力する。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１５】
＜第１の実施の形態＞
図１を参照して、本発明の第１の実施の形態に係るデータ記録システムについて説明する。図１は、データ記録システム１０の構成を表わすブロック図である。データ記録システム１０は、指令コンピュータ１０１と、複数の処理コンピュータ１０２，１１２，１１３と、ファイルサーバ１０３とを備える。
【００１６】
指令コンピュータ１０１と第１の処理コンピュータ１０２、指令コンピュータ１０１と第２の処理コンピュータ１１２、指令コンピュータ１０１と第ｎの処理コンピュータ１１３とは、それぞれＬＡＮ（Local Area Network）その他の通信回線１１０によって接続されている。第１の処理コンピュータ１０２とファイルサーバ１０３、第２の処理コンピュータ１１２とファイルサーバ１０３、および第ｎの処理コンピュータ１１３とファイルサーバ１０３とは、同様にＬＡＮその他のケーブル１１１によって接続されている。なお、データ記録システム１０を構成する処理コンピュータの数は、特に限られず、少なくとも複数の処理コンピュータが同一のデータ記録システム１０を構成するものでよい。
【００１７】
第１の処理コンピュータ１０２は、指令処理部１０４と出力制御部１０５とを備える。ある局面において、指令処理部１０４は、アプリケーションプログラムが実行されることにより実現される。
【００１８】
出力制御部１０５は、データ受信部１０６と、キャッシュメモリ１０７と、乱数発生部１０８と、データ出力部１０９とを含む。ある局面において、出力制御部１０５として実現される機能は、アプリケーションプログラムが実行されることにより実現される。この場合、データ受信部１０６およびデータ出力部１０９は、当該アプリケーションプログラムのスレッドとして作動する。
【００１９】
第２の処理コンピュータ１１２は、指令処理部１１４と出力制御部１１５とを備える。出力制御部１１５は、データ受信部１１６と、キャッシュメモリ１１７と、乱数発生部１１８と、データ出力部１１９とを含む。第ｎの処理コンピュータ１１３の構成も、第１あるいは第２の処理コンピュータ１０２，１１２の構成と同じである。
【００２０】
第１の処理コンピュータ１０２は、与えられる命令に基づいて作動する機器１５０に接続されている。同様に、第２の処理コンピュータ１１２は、同様の処理を実行する他の機器（図示しない）に接続される。なお、各処理コンピュータ１０２，１１２，１１３に接続される機器の数は、複数の限られず、１つの機器がこれらの処理コンピュータに接続されて別個の処理を実行するものであってもよい。また、他の局面において、処理コンピュータは機器に接続されていなくても良い。
【００２１】
指令コンピュータ１０１は、機器１５０を制御するための処理命令を各処理コンピュータ１０２，１１２，１１３に対して与える。各処理コンピュータ１０２，１１２，１１３は、その処理命令に基づいて、より具体的な動作命令を機器１５０その他の機器にそれぞれ与える。動作命令は、たとえば、機器１５０における加工対象物であるワークの搬入、当該ワークに対する加工、当該ワークに対する他の部品の実装、加工が完了したワークの検査、ワークの搬出などを含む。また、他の局面において、処理命令は機器１５０を制御するための処理命令でなく、処理コンピュータそのものに演算処理を行なわせ、演算結果を出力させるため処理命令であってもよい。
【００２２】
機器１５０その他の機器により具体的な動作命令それぞれ与えた場合、各処理コンピュータ１０２，１１２，１１３は、機器１５０から出力される信号を受信し、その信号により特定されるデータをファイルサーバ１０３にそれぞれ実績データとして格納する。
【００２３】
第１の処理コンピュータ１０２において、処理命令が機器１５０を制御するため処理命令であった場合、指令処理部１０４は、指令コンピュータ１０１から与えられた処理命令に基づいて機器１５０の作動を制御し、また、当該作動に基づいて機器１５０から出力される動作情報を生成する。また、処理命令が、処理コンピュータに演算処理を行なわせ、演算結果を出力させるための処理命令であった場合、指令処理部１０４は、指令コンピュータ１０１から与えられた処理命令に基づいて演算処理を行ない、動作情報を生成する。
【００２４】
出力制御部１０５は、指令処理部１０４から出力される当該動作情報をファイルサーバ１０３に転送する。より具体的には、出力制御部１０５において、データ受信部１０６は、指令処理部１０４から出力された動作情報をキャッシュメモリ１０７に逐次記録する。
【００２５】
データ受信部１０６は、その動作情報の記録の完了に応答して、指令処理部１０４と出力制御部１０５との通信を遮断する。
【００２６】
キャッシュメモリ１０７は、データ受信部１０６およびデータ出力部１０９による高速のアクセスが可能な揮発性の記憶媒体として構成される。キャッシュメモリ１０７に対するデータの書き込みは、ファイルサーバ１０３へのデータの記録に比べて、高速に終了する。したがって、指令処理部１０４は、極めて短い時間に、データの送信処理を完了することができる。
【００２７】
データ出力部１０９は、キャッシュメモリ１０７にデータが記録されているか否かを一定時間ごとに監視する。データがキャッシュメモリ１０７に記録されている場合には、データ出力部１０９は、乱数発生部１０８によって発生された乱数に基づく時間待機した後、当該データについて規定された出力時間だけ、当該データをファイルサーバ１０３に送信する。データ出力部１０９は、ファイルサーバ１０３に対する出力が行なわれたデータをキャッシュメモリ１０７から随時削除する。
【００２８】
より具体的には、データ出力部１０９は、ファイルサーバ１０３に対するデータの出力タイミングをキャッシュメモリ１０７に対する動作情報の記録が完了したタイミングよりも遅延させて、キャッシュメモリ１０７からファイルサーバ１０３にそのデータを転送する。この時遅延される時間は、当該動作情報のデータ量等によって規定される。
【００２９】
他の局面において、出力制御部１０５は、乱数発生部１０８を含む。乱数発生部１０８は、予め規定された乱数発生ロジックに従って、ファイルサーバ１０３に対する当該動作情報の出力の遅延を規定する遅延データを発生し、そのデータをデータ出力部１０９に与える。データ出力部１０９は、乱数発生部１０８から出力される当該遅延データに基づいてキャッシュメモリ１０７に格納されている動作情報をファイルサーバ１０３に出力する。
【００３０】
他の局面において、出力制御部１０５は、キャッシュメモリ１０７に記録された動作情報のデータ量に応じて、キャッシュメモリ１０７からファイルサーバ１０３に対する動作情報の出力時間を調整する。より具体的には、出力制御部１０５は、データ量が多い場合には、予め規定されたテーブルに従って当該出力時間を長く設定する。逆に、データ量が少ない場合には、出力制御部１０５は、そのテーブルに従って出力時間を短く設定する。
【００３１】
さらに他の局面において、出力制御部１０５は、キャッシュメモリ１０７に記録された動作情報のデータ量に応じて、キャッシュメモリ１０７からファイルサーバ１０３に対する動作情報の出力が行なわれる時間の間隔を調整する。この場合も、出力制御部１０５は、データ量の多少に応じて、当該間隔を短くし、あるいは長くする。
【００３２】
次に、図２を参照して、第１の処理コンピュータ１０２の具体的構成の一態様について説明する。図２は、第１の処理コンピュータ１０２として機能するコンピュータシステム２００のハードウェア構成を表わすブロック図である。コンピュータシステム２００は、主たる構成要素として、ＣＰＵ（Central Processing Unit）２１０と、マウス２２０と、キーボード２３０と、ＲＡＭ（Random Access Memory）２４０と、ハードディスク２５０と、光ディスク駆動装置２６０と、キャッシュメモリ２７０と、モニタ２８０と、通信Ｉ／Ｆ（Interface）２９０とを備える。
【００３３】
ＣＰＵ２１０は、命令をフェッチし、デコードし、実行し、その実行の結果をワーク領域に書き込む。ワーク領域は、キャッシュメモリ２７０その他の高速にランダムアクセスが可能なメモリに確保される。
【００３４】
マウス２２０およびキーボード２３０は、コンピュータシステム２００に対する指示の入力を受け付けて、当該指示に応じた信号をＣＰＵ２１０に送出する。ＲＡＭ２４０は、ＣＰＵ２１０による実行の結果生成されたデータ、またはマウス２２０もしくはキーボード２３０を介して入力されたデータを一時的に（揮発的に）格納する。ハードディスク２５０は、各データおよび予め準備されたプログラムなどを不揮発的に格納する。光ディスク駆動装置２６０は、着脱可能な記録媒体であるＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）２６２その他の光ディスクの装着を受け付ける。光ディスク駆動装置２６０は、ＣＤ−ＲＯＭ２６２からデータを読み出し、また当該光ディスクに対するデータの記録が可能な場合には、そのディスクにデータを書き込む。
【００３５】
キャッシュメモリ２７０は、ＣＰＵ２１０によって生成されたデータを揮発的に格納する。キャッシュメモリ２７０は、ＲＡＭ２４０に比べて、ＣＰＵ２１０による高速なアクセスが可能なメモリとして構成される。
【００３６】
モニタ２８０は、ＣＰＵ２１０から出力される命令に基づいて、与えられた信号に基づく画像を表示する。通信Ｉ／Ｆ２９０は、コンピュータシステム２００に接続されるＬＡＮその他の通信ケーブルを介して他の情報通信装置との間で通信を行なう。
【００３７】
コンピュータシステム２００における処理は、各ハードウェアおよびＣＰＵ２１０により実行されるソフトウェアによって実現される。このようなソフトウェアは、ハードディスク２５０に予め格納されている場合がある。また、当該ソフトウェアは、ＣＤ−ＲＯＭ２６２その他の光ディスクを含む記録媒体に格納されて、プログラムプロダクトとして流通している場合もある。あるいは、そのソフトウェアは、いわゆるインターネットに接続されている情報提供事業者によってダウンロード可能なプログラムプロダクトとして提供される場合もある。このようなソフトウェアは、光ディスク駆動装置２６０その他のデータ読取装置によってその記録媒体から読み取られて、あるいは通信Ｉ／Ｆ２９０を介してダウンロードされた後、ハードディスク２５０に一旦格納される。そのソフトウェアは、ＣＰＵ２１０によってハードディスク２５０から読み出され、ＲＡＭ２４０に実行可能なプログラムの形式で格納される。ＣＰＵ２１０は、そのプログラムによって規定される命令をフェッチし、デコードし、実行し、その実行の結果をキャッシュメモリ２７０あるいはＲＡＭ２４０のワーク領域に格納する。
【００３８】
図２に示されるコンピュータシステム２００を構成する各要素は、一般的なものである。したがって、本発明の最も本質的な部分は、ＲＡＭ２４０、ハードディスク２５０、ＣＤ−ＲＯＭ２６２その他の記録媒体に格納されたソフトウェア、あるいはネットワークを介してダウンロード可能なソフトウェアであるとも言える。なお、コンピュータシステム２００の各ハードウェアの動作は周知である。したがって、それらの詳細な説明は繰り返さない。
【００３９】
なお、当該記録媒体としては、上述の媒体に加えて、ＦＤ（Flexible Disk）、磁気テープ、カセットテープ、ＭＯ（Magnetic Optical Disc）／ＭＤ（Mini Disc）／ＤＶＤ（Digital Versatile Disc）、ＩＣ（Integrated Circuit）カード（メモリカードを含む）、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Electronically Programmable ROM）、ＥＥＰＲＯＭ（Electronically Erasable Programmable ROM）、フラッシュＲＯＭなどの半導体メモリその他のプログラムを固定的に担持する媒体であってもよい。なお、ここで言うプログラムとは、ＣＰＵ２１０によって直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラムなどをも含む。
【００４０】
図２に示される構成において、コンピュータシステム２００は、機器１５０から出力されたデータを、通信Ｉ／Ｆ２９０を介して受信する。コンピュータシステム２００は、同様の構成を有するコンピュータによって実現される指令コンピュータ１０１から与えられる処理命令を通信Ｉ／Ｆ２９０を介して受信する。ＣＰＵ２１０は、その処理命令に基づいて機器１５０を制御し、さらに、当該制御に基づく機器１５０の動作情報を生成する。ＣＰＵ２１０は、さらに、出力制御部として、当該動作情報を通信Ｉ／Ｆ２９０を介してファイルサーバ１０３に出力する。
【００４１】
より特定的には、ＣＰＵ２１０は、キャッシュメモリ２７０に対して、生成した動作情報を書き込む。ＣＰＵ２１０は、その書き込みの完了に応答して、指令処理部としての機能と出力制御部としての機能とを遮断する。より具体的には、動作情報がキャッシュメモリ２７０に書き込まれると、キャッシュメモリ２７０に対するアクセスは、通信Ｉ／Ｆ２９０を介した出力のために許可される。一方、ＣＰＵ２１０によって生成される新たな動作情報の書き込みのためのアクセスは、禁止される。
【００４２】
ＣＰＵ２１０は、さらに、キャッシュメモリ２７０に格納されている動作情報を出力する。より具体的には、ＣＰＵ２１０は、キャッシュメモリ２７０に対する動作情報の書込が完了した後、一時的にスリープし、その後、動作情報を読み出して、通信Ｉ／Ｆ２９０を介してその動作情報を出力する。このときスリープする時間は、動作情報のデータ量と、予めデータ量とスリープ時間について予め規定された関係とに従って決定される。
【００４３】
次に、図３を参照して、本実施の形態に係る処理コンピュータ１０２におけるデータ構造について説明する。図３は、処理コンピュータ１０２として機能するコンピュータシステム２００のハードディスク２５０におけるデータの格納の一態様を表わす図である。ハードディスク２５０は、予め作成された複数のプログラムを格納している。
【００４４】
出力時間算出プログラムは、メモリ領域３１０に格納されている。このプログラムは、キャッシュメモリ２７０からファイルサーバ１０３に出力されるために与えられる時間を算出する。
【００４５】
データ出力プログラムは、メモリ領域３２０に格納されている。このプログラムは、キャッシュメモリ２７０から通信Ｉ／Ｆ２９０を介してファイルサーバ１０３にデータを転送する処理を実現する。
【００４６】
乱数発生プログラムは、メモリ領域３３０に格納されている。このプログラムは、キャッシュメモリ２７０に格納されている動作情報の出力の遅延を規定するデータを算出する。
【００４７】
データ受信処理プログラムは、メモリ領域３４０に格納されている。このプログラムは、第１の処理コンピュータ１０２に接続されている機器１５０と通信して機器１５０からデータを受信する処理を実現する。
【００４８】
指令処理プログラムは、メモリ領域３５０に格納されている。このプログラムは、指令コンピュータ１０１から出力される処理命令を受信する処理と、当該処理命令に基づいて機器１５０に対する動作命令を与える処理とを実現する。
【００４９】
オペレーティングシステムは、メモリ領域３６０に格納されている。このプログラムは、コンピュータシステム２００の基本的な動作（データの入出力処理、ハードディスク装置２５０へのアクセス、通信Ｉ／Ｆ２９０を介した通信、モニタ２８０における画像の表示など）を規定する。
【００５０】
これらのプログラムがＣＰＵ２１０によって実行されると、コンピュータシステム２００は、図１に示される第１の処理コンピュータ１０２として機能する。
【００５１】
次に、図４を参照して、データ記録システム１０の動作特性について説明する。図４（Ａ）は、データ記録システム１０を構成する各処理コンピュータからのデータの出力パターンを表わす図である。図４（Ｂ）は、図4（Ａ）に示される出力を合算した状態を表わす図である。出力１〜４は、各処理コンピュータからの出力に対応する。以下、出力１が第１の処理コンピュータ１０２に対応するものとして説明する。
【００５２】
まず、出力１において、最大遅延時間４００は、乱数発生部１０８によって発生される乱数に基づいてデータ出力部１０９によって決定される。
【００５３】
出力時間４１０は、キャッシュメモリ１０７に格納されているデータ量に応じて決定される。ある局面において、出力時間４１０は、当該データ量に加えて、第１の処理コンピュータ１０２とファイルサーバ１０３との間のデータ転送速度に応じて決定されてもよい。
【００５４】
出力間隔４２０は、データ出力部１０９によって決定される。たとえば、データ出力部１０９は、キャッシュメモリ１０７に書き込まれているデータ量に基づいて出力時間の最大値を決定する。ある局面において、データ出力部１０９は、データ量が多いほど出力間隔４２０が短くなるように、出力間隔４２０を決定する。この決定は、データ量と出力間隔４２０との関係を表わす予め規定されたマップデータに基づいて行なわれる。当該マップデータは上記の関係を規定する当該マップデータは、データ量と出力間隔４２０とが反比例する関係であってもよいし、その他の関係が規定されてもよい。
【００５５】
一例として、データの容量が１ＭＢｙｔｅ未満であれば出力間隔４２０の最大値は１００ｍｓに設定され、１ＭＢｙｔｅ以上であれば、出力間隔の最大値は１０ｍｓに設定される。次に乱数を用いて０ｍｓから出力間隔の最大値までの間のランダムな数値が求められ、これが出力間隔として設定される。
【００５６】
出力１についてのタイミングチャートによると、第１の処理コンピュータ１０２において、データ受信部１０６が、データ（たとえば機器１５０の動作情報）をキャッシュメモリ１０７に書き込んだ後、データ出力部１０９は、最大遅延時間４００だけ待機した後、そのデータを読み出してファイルサーバ１０３に転送する。この転送に要する時間は、出力時間４１０である。その後、第１の処理コンピュータ１０２においてデータの読み出しは、出力間隔４２０だけ停止する。この間に、他のデータ（他の動作情報）がキャッシュメモリ１０７に書き込まれる。データ出力部１０９は、出力間隔４２０だけ出力処理を待機した後、再びキャッシュメモリ１０７からデータを読み出して、ファイルサーバ１０３に転送する。
【００５７】
出力２〜４は、同様に、他の処理コンピュータに対応する。図４（Ａ）から明らかなように、出力１〜４の各々について、遅延時間４３０も含めて、各遅延時間は、乱数によって出力１〜４で異なるように規定される。また、出力間隔も乱数によって同様に規定される。したがって、図４（Ｂ）から明らかなように、出力１〜４によって行なわれるデータの出力タイミングは、各出力間で異なるように規定される。そのため、一部についてデータの出力タイミングが重複される場合を除き、データの出力に要する負荷の集中が避けられている。
【００５８】
次に、図５を参照して、第１の処理コンピュータ１０２の制御構造について説明する。図５は、第１の処理コンピュータ１０２として機能するコンピュータシステム２００が実行する一連の動作の一部を表わすフローチャートである。当該一連の動作は、指令処理（ステップＳ５１０）と、受信処理（ステップＳ５３０）と、出力処理（ステップＳ５５０）とを含む。各処理は、より具体的な処理によって規定される。
【００５９】
まず、指令処理に関し、ステップＳ５１２にて、第１の処理コンピュータ１０２は、指令コンピュータ１０１から指令を受信する。より具体的には、コンピュータシステム２００のＣＰＵ２１０は、通信Ｉ／Ｆ２９０を介して当該指令を受信する。ステップＳ５１４にて、ＣＰＵ２１０は、指令処理部１０４として、その受信した指令に基づいて、機器１５０に動作命令を与えるための指令実行データを作成する。機器１５０は、その指令実行データを受信すると、そのデータによって特定される処理を実行し、その実行の結果を第１の処理コンピュータ１０２に送信する。コンピュータシステム２００は、通信Ｉ／Ｆ２９０を介して、機器１５０によって送信されたデータを受信する。ステップＳ５１６にて、指令処理部１０４は、機器１５０から受信したデータを出力制御部１０５に送信する。ある局面においては、コンピュータシステム２００において、当該データを処理する権限が指令処理部１０４からデータ受信部１０６に与えられる。
【００６０】
受信処理（ステップＳ５３０）に関し、まず、ステップＳ５３２にて、データ受信部１０６は、指令処理部１０４から送られたデータを受信する。ステップＳ５３４にて、データ受信部１０６は、そのデータをキャッシュメモリ１０７に格納する。その後、再びデータを受信する処理（ステップＳ５３２）が実行される。
【００６１】
次に、出力処理（ステップＳ５５０）に関し、最初に、ステップＳ５５２にて、データ出力部１０９は、キャッシュメモリ１０７にデータが記録されているか否かを判定する。データ出力部１０９は、キャッシュメモリ１０７にデータが記録されていると判定すると（ステップＳ５５２にてＹＥＳ）、制御をステップＳ５５６に切り換える。そうでない場合には（ステップＳ５５２にてＮＯ）、データ出力部１０９は、制御をステップＳ５５４に切り換える。
【００６２】
ステップＳ５５４にて、データ出力部１０９は、予め算出された時間が経過するまで、処理を一時停止する。
【００６３】
ステップＳ５５６にて、データ出力部１０９は、キャッシュメモリ１０７に格納されているデータ量に基づいて、ファイルサーバ１０３にデータを出力するために必要な出力時間を算出する。ある局面において、データ出力部１０９は、キャッシュメモリ１０７に記録されたデータの容量が０より多ければ、当該データのサイズに基づいて出力時間を求める。たとえば、データ量が１ＭＢｙｔｅ（メガバイト）未満であれば、データ出力部１０９は、出力時間を５ｍｓｅｃに設定し、１ＭＢｙｔｅ以上であれば、２０ｍｓｅｃに設定する。このような設定は、データ量と出力時間とについて予め規定されたテーブル情報を第１の処理コンピュータ１０２に格納しておくことにより実現される。
【００６４】
ステップＳ５５８にて、データ出力部１０９は、キャッシュメモリ１０７に格納されているデータのうち１行を読み出し、そのデータをファイルサーバ１０３に転送する。データ出力部１０９は、そのデータの転送に要した時間を順次記録する。データ出力部１０９は、ファイルサーバ１０３への転送が完了したデータを、キャッシュメモリ１０７から削除する。
【００６５】
ステップＳ５６０にて、データ出力部１０９は、上記出力時間を経過しているか否かを判定する。データ出力部１０９は、当該出力時間が経過していると判定すると（ステップＳ５６０にてＹＥＳ）、制御をステップＳ５６２に切り換える。そうでない場合には（ステップＳ５６０にてＮＯ）、データ出力部１０９は、制御をステップＳ５５８に戻す。
【００６６】
ステップＳ５６２にて、データ出力部１０９は、キャッシュメモリ１０７に格納されているデータ量と、乱数発生部１０８によって発生された乱数とに基づいて、キャッシュメモリ１０７に格納されているデータをファイルサーバ１０３に転送する各処理の間隔を算出する。たとえば、データ量が１ＭＢｙｔｅ未満であれば、データ出力部１０９は、出力間隔の最大値を１００ｍｓｅｃに設定し、１ＭＢｙｔｅ以上であれば、データ出力部１０９は、出力間隔の最大値を１０ｍｓｅｃに設定する。このような設定は、データ量と出力時間との対応関係について予め規定されたテーブルを第１の処理コンピュータ１０２に格納しておくことにより実現される。あるいは、当該対応関係を規定する関数に基づいて、特定されたデータ量に基づいて出力間隔を導出する構成が使用されてもよい。次に、データ出力部１０９は、乱数を用いて、０ｍｓｅｃから出力間隔の最大値までの間のランダムな数値を求め、これを出力間隔として設定する。
【００６７】
ステップＳ５６４にて、データ出力部１０９は、その取得間隔の時間だけ処理を停止（スリープ）する。
【００６８】
ここで、図６を参照して、他の局面におけるデータの出力パターンについて説明する。図６（Ａ）は、キャッシュメモリ１０７における空き容量が不足した場合におけるデータの出力パターンを表わす図である。図６（Ｂ）は、図６（Ａ）に示される出力を合算した状態を表わす図である。
【００６９】
図６（Ａ）に示されるように、たとえば、出力１におけるデータの出力時間６００と、出力２における出力時間６２０と、出力４におけるデータの出力時間６３０とは、一部に重複が存在する。このような場合、図６（Ｂ）に示されるように、タイミング６４０における出力の合計値は、他の出力タイミングにおける出力の合計値よりも大きくなる。すなわち、３箇所（出力１と出力３と出力４）の出力の合計値となる。
【００７０】
以上詳述したように、本実施の形態に係るデータ記録システム１０は、出力データをキャッシュメモリ１０７に記録することにより指令処理部１０４の高速応答性が維持される。また、データ出力部１０９は、乱数によって決定された時間だけ間隔を空けて、一定量のデータをキャッシュメモリ１０９から断続的にファイルサーバ１０３に出力する。これにより、簡素な仕組みで、ファイルサーバ１０３への負荷が分散される。
【００７１】
また、データ記録システム１０を構成する第１の処理コンピュータ１０２は、ファイルサーバ１０３に対する出力時間と出力間隔とを調整することにより、キャッシュメモリ１０７に確保されたメモリ容量を超えることなくデータを安全にファイルサーバ１０３に対して出力することができる。また、データ記録システム１０を構成する第１の処理コンピュータ１０２その他の処理コンピュータへの負荷が動的に制御される。したがって、各処理コンピュータからファイルサーバ１０３に出力されるデータ量が少ないときは、より負荷の低い状態でデータ記録システム１０が利用可能となる。
【００７２】
＜第２の実施の形態＞
本発明の第２の実施の形態に係るデータ記録システム２０は、データの出力先として、独立のファイルサーバに代えて指令コンピュータ７００が備えるディスク装置７９０である点で第１の実施の形態に係るデータ記録システム１０と異なる。
【００７３】
そこで、図７を参照して、本発明の第２の実施の形態に係るデータ記録システム２０について説明する。図７は、データ記録システム２０の構成を表わすブロック図である。データ記録システム２０は、指令コンピュータ７００と、第１の処理コンピュータ７２０と、第２の処理コンピュータ７５０と、第ｎの処理コンピュータ７８０とを備える。指令コンピュータ７００と各処理コンピュータ７２０，７５０，７８０とは、それぞれＬＡＮその他の通信回線によって接続されている。
【００７４】
指令コンピュータ７００は、データを格納するためのディスク装置７９０を含む。ディスク装置７９０は、たとえば、ハードディスクのような磁気ディスク装置によって構成される。この構成に代えて、ＤＶＤその他の光ディスク装置によって構成されてもよい。また、ディスク装置に代えて、フラッシュメモリのような不揮発メモリが使用されてもよい。なお、指令コンピュータ７００の具体的な構成は、たとえば周知の構成を有するコンピュータシステムとして実現される。したがって、指令コンピュータ７００の詳細な構成は、繰り返さない。
【００７５】
第１の処理コンピュータ７２０は、指令処理部７３０と出力制御部７４０とを備える。出力制御部７４０は、データ受信部７４２と、キャッシュメモリ７４４と、データ出力部７４６と、乱数発生部７４８とを含む。
【００７６】
第１の処理コンピュータ７２０は、指令コンピュータ７００から与えられる指令に基づいて作動する機器１５０に接続されている。本実施の形態に係る第１の処理コンピュータ７２０において、指令処理部７３０は、第１の実施の形態に係る第１の処理コンピュータ１０２の指令処理部１０４と同様の処理を実行する。本実施の形態において、データ出力部７４６は、第１の実施の形態に係るデータ出力部１０９と異なる。より具体的には、データ出力部７４６の出力先は、指令コンピュータ７００が備えるディスク装置７９０に設定されている。
【００７７】
図７を再び参照して、第２の処理コンピュータ７５０は、指令処理部７６０と出力制御部７７０とを備える。出力制御部７７０は、データ受信部７７２と、キャッシュメモリ７７４と、データ出力部７７６と、乱数発生部７７８とを含む。第２の処理コンピュータ７５０における処理の詳細は、第１の処理コンピュータ７２０における処理の詳細と同じである。したがって、それらの説明は繰り返さない。
【００７８】
データ記録システム２０によると、各処理コンピュータのデータ出力部によって出力されるデータは、指令コンピュータ７００に入力される。各データ出力部によるデータの出力パターンは、前述の第１の実施の形態における出力態様に対応する。このようにすると、指令コンピュータとファイルサーバとを兼ね備える指令コンピュータシステム７００に対する負荷の集中が緩和され得る。
【００７９】
＜第３の実施の形態＞
本発明の第３の実施の形態に係るデータ記録システムは、１台の処理コンピュータ８００によって実現される点で、第１および第２の実施の形態に係るデータ記録システムと異なる。
【００８０】
そこで、図８を参照して、本発明の第３の実施の形態に係るデータ記録システムについて説明する。図８は、データ記録システムとして作動する処理コンピュータ８００の構成を表わすブロック図である。処理コンピュータ８００は、指令部８１０と、第１の指令処理部８２０と、第１の出力制御部８３０と、第２の指令処理部８４０と、第２の出力制御部８５０と、ディスク装置８９０とを備える。第１の出力制御部８３０は、データ受信部８３２と、キャッシュメモリ８３４と、データ出力部８３６と、乱数発生部８３８とを含む。第２の出力制御部８５０は、データ受信部８５２と、キャッシュメモリ８５４と、データ出力部８５６と、乱数発生部８５８とを含む。
【００８１】
処理コンピュータ８００は、与えられる命令に基づいて作動する機器８９５に接続されている。
【００８２】
指令部８１０は、機器８９５を制御するための処理命令を、第１の指令処理部８２０または第２の指令処理部８４０に与える。
【００８３】
第１の指令処理部８２０または第２の指令処理部８４０は、指令部８１０から与えられる処理命令に基づいて機器８９５を制御し、また当該制御に基づく機器８９５の作動状態を表わす動作情報を生成する。第１の指令処理部８２０は、その生成した動作情報を第１の出力制御部８３０に送出する。第２の指令処理部８４０は、その生成した動作情報を第２の出力制御部８５０に送出する。
【００８４】
第１の出力制御部８３０は、後述するフローに従って、その動作情報をディスク装置８９０に出力する。同様に、第２の出力制御部８５０も、動作情報をディスク装置８９０に送信する。
【００８５】
第１の出力制御部８３０において、データ受信部８３２は、第１の指令処理部８２０から出力された動作情報を受信し、その受信した動作情報をキャッシュメモリ８３４に格納する。データ受信部８３２は、キャッシュメモリ８３４に対する当該動作情報の記録の完了に応答して、第１の指令処理部８２０と第１の出力制御部８３０との間の通信を遮断する。
【００８６】
キャッシュメモリ８３４は、データ受信部８３２およびデータ出力部８３６のそれぞれによってアクセスされる。
【００８７】
データ出力部８３６は、ディスク装置８９０に対するデータの出力タイミングをキャッシュメモリ８３４に対する当該動作情報の記録が完了したときから遅延させて、キャッシュメモリ８３４からディスク装置８９０に動作情報を出力する。
【００８８】
データ出力部８３６は、キャッシュメモリ８３４に格納された動作情報のデータ量に基づいて、キャッシュメモリ８３４からディスク装置８９０に対する当該動作情報の出力時間を算出し、その時間に従って、キャッシュメモリ８３４からデータを読み出す。より具体的には、キャッシュメモリ８３４に格納されているデータ量が予め規定された単位データ量を上回る場合には、当該単位データ量について規定された出力時間よりも長い時間を当該動作情報の出力時間として設定する。逆に、キャッシュメモリ８３４に格納されている動作情報のデータ量が単位データ量を下回る場合には、データ出力部８３６は、そのデータ量について規定された出力時間だけ設定する。この場合、動作情報の出力時間は、通常の出力時間よりも短くなる。
【００８９】
また、データ出力部８３６は、ディスク装置８９０に対する動作情報の出力の遅延を規定するデータを乱数発生部８３８から受信する。データ出力部８３６は、そのデータに基づいて動作情報をディスク装置８９０に出力する。
【００９０】
本実施の形態に係るデータ記録システムによると、処理命令を発する指令部８１０と、機器８９５に対して命令を与える指令処理部８２０，８４０と、ディスク装置にデータを出力する出力制御部８３０，８５０と、ディスク装置８９０とは、単一の処理コンピュータ８００によって構成されている。このような構成を有するデータ記録システムの適用は、特定の機器８９５の制御の目的だけに限られない。
【００９１】
たとえば、ライトバック手法の代わりに、ハードディスク装置その他の記録装置へのデータ出力機能としてコンピュータのオペレーションシステムに組み込むことにより、ワードプロセッサや表計算ソフトのような独立して実行されるプログラム全てを対象に本実施の形態に係る技術思想が適用される。その結果、ディスク装置８９０への負荷が軽減され得る。
【００９２】
本発明の各実施の形態に係るデータ記録システムによると、たとえば、第１の実施の形態において詳述したような構成により、生産装置その他の機器を複数のコンピュータによって並列に制御し、分散処理を行なうことが可能となり、当該機器を高速に制御する場合に利用できる。また、第３の実施の形態において示されるように、近年マルチコア化が進むＣＰＵにより、単一のコンピュータ内で実行されるアプリケーションソフトウェアの並列動作から発生するデータ記録装置への同時の書き込みのような負荷も分散される。
【００９３】
ここで、図９および図１０を参照して、さらに他の局面におけるデータの出力パターンについて説明する。図９は、出力されるデータ量が少ない場合において出力間隔が十分に取られる場合の出力パターンを表わす図である。たとえば、プリントサーバに対して単一の応答が行なわれる場合に相当する。
【００９４】
この場合、図９（Ａ）に示されるように、応答時間９１０が遅延時間９２０に対して十分短いため、最大遅延時間９００を、たとえば１秒設定することにより、当該プリントサーバへの負荷は分散可能である（図９（Ｂ）参照）。
【００９５】
図１０は、ある局面におけるファイルサーバに対するデータの出力パターンを表わす図である。たとえば、ファイルサーバに対するデータの出力時間１０１０が１秒程度要する場合、各出力１〜４の出力を合計すると、図１０（Ｂ）のようになる。この場合、タイミング１０３０などにおいては、複数のコンピュータから出力されており、ファイルサーバに対する負荷が増大している。
【００９６】
そこで、複数のコンピュータからの出力を分散するためには、遅延時間１０２０は、その出力時間１０１０よりも長い時間、たとえば２〜１０秒程度が好ましいと考えられる。しかしながら、前述のように、生産装置などの制御においては、通常ミリ秒〜数十ミリ秒単位での応答が要求されるのに対し、データの出力時間は数百ミリ秒を要する場合がある。このままでは十分な遅延時間１０２０を確保することができない。
【００９７】
しかしながら、本発明の各実施の形態によると、上記のような場合であっても、負荷を分散しつつ、高速のデータ出力を実現することができる。
【００９８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９９】
【図１】本発明の第１の実施の形態に係るデータ記録システム１０の構成を表わすブロック図である。
【図２】第１の処理コンピュータ１０２として機能するコンピュータシステム２００のハードウェア構成を表わすブロック図である。
【図３】コンピュータシステム２００のハードディスク２５０におけるデータの格納の一態様を表わす図である。
【図４】データ記録システム１０の動作特性を表わす図である。
【図５】第１の処理コンピュータ１０２として機能するコンピュータシステム２００が実行する一連の動作の一部を表わすフローチャートである。
【図６】他の局面におけるデータの出力パターンを表わす図である。
【図７】本発明の第２の実施の形態に係るデータ記録システム２０の構成を表わすブロック図である。
【図８】本発明の第３の実施の形態に係るデータ記録システムの構成を表わすブロック図である。
【図９】出力されるデータ量が少ない場合において出力間隔が十分に取られる場合の出力パターンを表わす図である。
【図１０】ある局面におけるファイルサーバに対するデータの出力パターンを表わす図である。
【符号の説明】
【０１００】
１０，２０  データ記録システム、１１０  通信回線、１１１  ケーブル、２６２  ＣＤ−ＲＯＭ。
【図１】
2008198116.tif 000003
【図２】
2008198116.tif 000004
【図３】
2008198116.tif 000005
【図４】
2008198116.tif 000006
【図５】
2008198116.tif 000007
【図６】
2008198116.tif 000008
【図７】
2008198116.tif 000009
【図８】
2008198116.tif 000010
【図９】
2008198116.tif 000011
【図１０】
2008198116.tif 000012