(57)【要約】【課題】プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムを提供する。【解決手段】外部とプロセス間通信を行う第１のスレッド及び複数の他のスレッドが属する第１のプロセス、外部とプロセス間通信を行う第２のスレッド及び複数の他のスレッドが属する第２のプロセスが生成され、第１のスレッドが送信先のスレッドを識別する情報を含む通信データを第２のスレッドへ送信する。通信データは、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、第２のスレッドが、送信先のスレッドを識別する情報にて指示されたスレッドへ、受信した通信データを転送する。【選択図】図２
2009093526.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置とを備え、該送信装置と該受信装置との間でプロセス間通信を行うプロセス間通信システムにおいて、
前記送信装置には、
外部とプロセス間通信を行う第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセスが生成されており、
前記受信装置には、
外部とプロセス間通信を行う第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成されており、
前記送信装置は、
前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段を備えることを特徴とするプロセス間通信システム。
【請求項２】
前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
前記受信装置は、
前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする請求項１記載のプロセス間通信システム。
【請求項３】
前記受信装置は、
前記第２のスレッドが受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断する判断手段を備え、
該判断手段が該第２のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする請求項２記載のプロセス間通信システム。
【請求項４】
プロセス間通信により送受信される通信データのデータ構造において、
少なくとも前記通信データの種類を識別する情報、
送信先のスレッドを識別する情報、及び
データの区切り情報にて区切られた一又は複数の送信情報
を含むことを特徴とするデータ構造。
【請求項５】
プロセス間通信により通信データを送受信することが可能なプロセス間通信制御装置において、
他のプロセスへプロセス間通信により前記通信データを送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセス、及び
他のプロセスからプロセス間通信により前記通信データを受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成され、
前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段を備えることを特徴とするプロセス間通信制御装置。
【請求項６】
前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする請求項５記載のプロセス間通信制御装置。
【請求項７】
前記第２のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断する判断手段を備え、
該判断手段が該第２のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする請求項６記載のプロセス間通信制御装置。
【請求項８】
プロセス間通信により通信データを送受信することが可能なプロセス間通信制御方法において、
他のプロセスへプロセス間通信によりデータ送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセスが、
他のプロセスからプロセス間通信によりデータ受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスへ前記通信データを送信し、
前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信することを特徴とするプロセス間通信制御方法。
【請求項９】
前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送することを特徴とする請求項８記載のプロセス間通信制御方法。
【請求項１０】
前記第２のスレッドは、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断し、
該第２のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送することを特徴とする請求項９記載のプロセス間通信制御方法。
【請求項１１】
プロセス間通信により通信データを送受信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータにて、
他のプロセスへプロセス間通信により前記通信データを送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセス、及び
他のプロセスからプロセス間通信により前記通信データを受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成され、
前記コンピュータを、
前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１２】
前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
前記コンピュータを、
前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段
として機能させることを特徴とする請求項１１記載のコンピュータプログラム。
【請求項１３】
前記コンピュータを、
前記第２のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否か判断する判断手段、及び
該判断手段で該第２のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてある転送手段
として機能させることを特徴とする請求項１２記載のコンピュータプログラム。
【請求項１４】
ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータにて、
他のプロセスへプロセス間通信により前記通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成され、
前記コンピュータを、
前記一のスレッドが、送信先のスレッドを識別する情報を含む前記通信データを前記他のプロセスに属するスレッドへ送信する送信手段
として機能させることを特徴とするコンピュータプログラム。
【請求項１５】
前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有することを特徴とする請求項１４記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス間通信プログラムを更新する場合に、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
一般に、コンピュータでプログラムが実行される場合、同時に実行される複数のプログラム間でデータ交換する必要が生じることがある。通常、実行中のプログラム間でのデータ交換には、ソケット、パイプ、共有メモリ等を用いたプロセス間通信を行っている。
【０００３】
例えば特許文献１では、プロセス間通信を制御するための特別なプロセスとして通信制御用サーバプロセスを設けており、クライアントプロセスからのメッセージ伝文を通信制御用サーバプロセスで一括受信して、内容を解析することにより、送信先である他のクライアントプロセスへメッセージ伝文を確実に送信することができる。
【０００４】
また、複数のスレッドが属するプロセス間でプロセス間通信を行う場合、通信データを送信するプロセスでは、外部のプロセスへ送信するために生成された特定のスレッドに他のスレッドから通信すべきデータを転送し、通信データを生成してから送信先である所定のプロセスへ該通信データを送信している。また、通信データを受信するプロセスでは、外部のプロセスから受信するために生成された特定のスレッドで通信データを受信し、内容を解析することで該スレッドから同一プロセスに属する所定のスレッドへ必要なデータを転送している。
【特許文献１】特開平１１−１２０００９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に開示されているプロセス間通信では、クライアントプロセスの自通信仕様等を更新する場合、それに対応したスレッド及び通信制御用サーバプロセスについてもコードを更新する必要が生じる。したがって、比較的モジュール自体が複雑である通信制御用プログラムにも更新作業が生じるため、作業工数の増大のみならず、更新作業による修正バグ発生のおそれが高くなるという問題点があった。
【０００６】
上記問題点は、複数のスレッドが属するプロセス間でプロセス間通信を行う場合も同様である。すなわち、プロセス間通信に直接用いられるスレッド以外のスレッドにて、別プロセスに属するスレッドへの通信仕様等が更新された場合、該スレッドだけでなくプロセス間通信に直接用いられるスレッド自体のプログラムコードも更新する必要が生じ、あるいは該スレッドが参照するプロセス情報テーブルも変更する必要が生じる。したがって、プログラム更新に対する作業工数が増大し、更新作業による修正バグ発生のおそれが高くなるという同様の問題点が生じていた。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係るプロセス間通信システムは、ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置とを備え、該送信装置と該受信装置との間でプロセス間通信を行うプロセス間通信システムにおいて、前記送信装置には、外部とプロセス間通信を行う第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセスが生成されており、前記受信装置には、外部とプロセス間通信を行う第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成されており、前記送信装置は、前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段を備えることを特徴とする。
【０００９】
また、第２発明に係るプロセス間通信システムは、第１発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記受信装置は、前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする。
【００１０】
また、第３発明に係るプロセス間通信システムは、第２発明において、前記受信装置は、前記第２のスレッドが受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断する判断手段を備え、該判断手段が該第２のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする。
【００１１】
次に、上記目的を達成するために第４発明に係るデータ構造は、プロセス間通信により送受信される通信データのデータ構造において、少なくとも前記通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むことを特徴とする。
【００１２】
次に、上記目的を達成するために第５発明に係るプロセス間通信制御装置は、プロセス間通信により通信データを送受信することが可能なプロセス間通信制御装置において、他のプロセスへプロセス間通信により前記通信データを送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセス、及び他のプロセスからプロセス間通信により前記通信データを受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成され、前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段を備えることを特徴とする。
【００１３】
また、第６発明に係るプロセス間通信制御装置は、第５発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする。
【００１４】
また、第７発明に係るプロセス間通信制御装置は、第６発明において、前記第２のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断する判断手段を備え、該判断手段が該第２のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする。
【００１５】
次に、上記目的を達成するために第８発明に係るプロセス間通信制御方法は、プロセス間通信により通信データを送受信することが可能なプロセス間通信制御方法において、他のプロセスへプロセス間通信によりデータ送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセスが、他のプロセスからプロセス間通信によりデータ受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスへ前記通信データを送信し、前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信することを特徴とする。
【００１６】
また、第９発明に係るプロセス間通信制御方法は、第８発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送することを特徴とする。
【００１７】
また、第１０発明に係るプロセス間通信制御方法は、第９発明において、前記第２のスレッドは、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断し、該第２のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送することを特徴とする。
【００１８】
次に、上記目的を達成するために第１１発明に係るコンピュータプログラムは、プロセス間通信により通信データを送受信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータにて、他のプロセスへプロセス間通信により前記通信データを送信する第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセス、及び他のプロセスからプロセス間通信により前記通信データを受信する第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが生成され、前記コンピュータを、前記第１のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第２のスレッドへ送信する送信手段として機能させることを特徴とする。
【００１９】
また、第１２発明に係るコンピュータプログラムは、第１１発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記コンピュータを、前記第２のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段として機能させることを特徴とする。
【００２０】
また、第１３発明に係るコンピュータプログラムは、第１２発明において、前記コンピュータを、前記第２のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否か判断する判断手段、及び該判断手段で該第２のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてある転送手段として機能させることを特徴とする。
【００２１】
次に、上記目的を達成するために第１４発明に係るコンピュータプログラムは、ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータにて、他のプロセスへプロセス間通信により前記通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成され、前記コンピュータを、前記一のスレッドが、送信先のスレッドを識別する情報を含む前記通信データを前記他のプロセスに属するスレッドへ送信する送信手段として機能させることを特徴とする。
【００２２】
また、第１５発明に係るコンピュータプログラムは、第１４発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有することを特徴とする。
【００２３】
第１発明、第５発明、第８発明、及び第１１発明では、ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置との間でプロセス間通信を行う。送信装置では、外部とプロセス間通信を行う第１のスレッド及び該第１のスレッドへ通信データを転送する複数の他のスレッドが属する第１のプロセスが、受信装置では、外部とプロセス間通信を行う第２のスレッド及び該第２のスレッドから通信データが転送される複数の他のスレッドが属する第２のプロセスが、それぞれ生成されて実行される。第１のスレッドは、送信先のスレッドを識別する情報を含む通信データを第２のスレッドへ送信する。送信装置で実行される第１のプロセスに属する第１のスレッドが送信する通信データに、送信先である受信装置で実行される第２のプロセスに属するスレッドを識別する情報が含まれることにより、第１のスレッド及び第２のスレッドにて同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば第１のプロセスに属するスレッドの内容を更新した場合、対応する第２のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第１のスレッド及び第２のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
【００２４】
ここで、「プロセス」とは、プログラムが実行中であるインスタンス等を意味しており、複数のスレッドが属する実行主体を示す広い概念である。「スレッド」とはＣＰＵの利用単位であり、プロセスよりもプログラムを実行する場合のコンテキスト情報が小さく処理の切り替えが速い実行単位である。一のアプリケーションは一以上のプロセスで構成され、一のプロセスには一以上のスレッドが属する。「スレッドを識別する情報」とは、スレッド番号、スレッドＩＤ等、スレッドを識別することができる情報であれば特に限定されない広い概念である。また、「送信先」とは、通信データを送信した相手側、すなわち受信側を意味している。
【００２５】
第２発明、第６発明、第９発明及び第１２発明では、通信データが、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有している。第２のスレッドは、受信した通信データを、受信した通信データに含まれる送信先のスレッドを識別する情報にて指示されたスレッドへ転送する。通信データが上記データ構造を有することにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。また、通信データに送信先のスレッドを識別する情報が含まれていることから、第１のスレッド及び第２のスレッドにて同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば第１のプロセスに属するスレッドの内容を更新した場合、対応する第２のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第１のスレッド及び第２のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。なお「送信情報」とは、送信先のスレッドで処理される各種のデータを意味している。
【００２６】
第３発明、第７発明、第１０発明及び第１３発明では、第２のスレッドが、受信した通信データに含まれる送信先のスレッドを識別する情報が、該第２のスレッドを指示しているか否かを判断する。指示している場合には自スレッド内で処理を実行し、指示していない場合には、送信先のスレッドを識別する情報が指示するスレッドへ通信データを転送する。自スレッドに対する情報であるか否かを判断することができることにより、受信した通信データの転送の要・不要を判断することが可能となる。
【００２７】
第４発明では、プロセス間通信により送受信される通信データのデータ構造は、少なくとも通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含んでいる。これにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。したがって、例えば第１のプロセスに属するスレッドの内容を更新した場合、対応する第２のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第１のスレッド及び第２のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
【００２８】
第１４発明では、ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータ（送信装置）は、通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成される。一のスレッドは、送信先のスレッドを識別する情報を含む通信データを他のプロセスに属するスレッドへ送信する。通信データに送信先のスレッドを識別する情報が含まれていることから、送信装置側で同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば送信装置側のプロセスに属するスレッドの内容を更新した場合、対応する受信装置側のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いるスレッドの内容については送信装置側も受信装置側も更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
【００２９】
第１５発明では、通信データは、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有している。通信データが上記データ構造を有することにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。したがって、例えば一のプロセスに属するスレッドの内容を更新した場合、対応する他のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いるスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
【００３０】
なお、後述する実施の形態では、送信手段はＣＰＵ基板１０１のステップＳ７０７、ＣＰＵ基板６０１のステップＳ１４０７の処理が、それぞれ該当する。判断手段はＣＰＵ基板２０１のステップＳ１００１、ＣＰＵ基板６０１のステップＳ１６０１の処理が、それぞれ該当する。転送手段はＣＰＵ基板２０１のステップＳ９０５、ステップＳ９０６、ＣＰＵ基板６０１のステップＳ１４１２、ステップＳ１４１３の処理が、それぞれ該当する。
【発明の効果】
【００３１】
上記の構成により、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムが提供される。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態に係るプロセス間通信システム（装置）について図面に基づいて具体的に説明する。
【００３３】
（実施の形態１）
図１は、本発明の実施の形態１に係るプロセス間通信システムの構成を示すブロック図である。図１において、本実施の形態１に係るプロセス間通信システムは、ネットワーク３を介して通信データを送受信することが可能に接続されている送信装置１及び受信装置２で構成されている。ネットワーク３は特に限定されるものではなく、インターネット、ＷＡＮ等による遠隔通信から、ケーブルを接続しただけのシリアル通信等まで含む広い概念として用いている。
【００３４】
送信装置１は、少なくとも、ＣＰＵ（中央演算装置）１１、記憶装置１２、ＲＡＭ１３、入力装置１４、出力装置１５、補助記憶装置１６、通信装置１７及び上述したハードウェアを接続する内部バス１８で構成されている。ＣＰＵ１１は、内部バス１８を介して送信装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１２に記憶されているコンピュータプログラム８０に従って、種々のソフトウェア的機能を実行する。ＲＡＭ１３は、ＳＲＡＭ、フラッシュメモリ等で構成され、コンピュータプログラム８０の実行時にロードモジュールが展開され、コンピュータプログラム８０の実行時に発生する一時的なデータ等を記憶する。
【００３５】
記憶装置１２は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１２に記憶されているコンピュータプログラム８０は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、補助記憶手段１６によりダウンロードされ、実行時には記憶装置１２からＲＡＭ１３へ展開して実行される。もちろん、通信装置１７を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００３６】
通信装置１７は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワーク３に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置１２は、送信装置１に内蔵される構成に限定されるものではなく、通信装置１７を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【００３７】
入力装置１４は、キーボード及びマウス等のデータ入力媒体であり、出力装置１５は、ＣＲＴモニタ、ＬＣＤ等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
【００３８】
受信装置２も送信装置１と同様に、少なくとも、ＣＰＵ（中央演算装置）２１、記憶装置２２、ＲＡＭ２３、入力装置２４、出力装置２５、通信装置２６及び上述したハードウェアを接続する内部バス２７で構成されている。ＣＰＵ２１は、内部バス２７を介して受信装置２の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置２２に記憶されているコンピュータプログラム８１に従って、種々のソフトウェア的機能を実行する。ＲＡＭ２３は、ＳＲＡＭ、フラッシュメモリ等で構成され、コンピュータプログラム８１の実行時にロードモジュールが展開され、コンピュータプログラム８１の実行時に発生する一時的なデータ等を記憶する。
【００３９】
記憶装置２２は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置２２に記憶されているコンピュータプログラム８１は、プログラム及びデータ等の情報として通信装置２６を介して外部コンピュータ等からダウンロードされており、実行時には記憶装置２２からＲＡＭ２３へ展開して実行される。
【００４０】
通信装置２６は内部バス２７に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワーク３に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
【００４１】
入力装置２４は、キーボード及びマウス等のデータ入力媒体の他、例えば受信装置２が対象物に対する検査装置、分析装置等である場合には、対象物からの情報取得手段全般を含む。出力装置２５は、ＣＲＴモニタ、ＬＣＤ等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
【００４２】
以下、具体的な適用例として、送信装置１にパーソナルコンピュータ（以下、ＰＣ）を、受信装置２に水溶液中に浮遊する有形粒子の濃度、粒子径、粒子径分布等を計測して分析する分析装置を用いる場合について説明する。図２は、本発明の実施の形態１に係るプロセス間通信システムのハードウェア構成を示すブロック図である。
【００４３】
図２において、本実施の形態１に係るプロセス間通信システムは、ＰＣ１０にて設定した分析装置２０の設定情報を、プロセス間通信を介して分析装置２０へ送信する。プロセス間通信としては、名前付きパイプ通信、ソケット通信等、特に限定されるものではない。本実施の形態１で、ＴＣＰ／ＩＰプロトコルに従ったソケット通信を用いる。
【００４４】
ＣＰＵ基板１０１は、分析装置２０における計測制御用の設定情報等をＴＣＰ／ＩＰプロトコルで接続されているＬＡＮケーブル等を介して分析装置２０へ送信する。設定情報等の送信にはプロセス間通信、ここではソケット通信を用いている。
【００４５】
分析装置２０のＣＰＵ基板２０１は、計測装置２０４の動作制御を行うとともに、計測装置２０４にて計測されたアナログデータをアナログ基板２０２にて前処理し、波形信号処理基板２０３にてデジタル化するよう制御する。計測装置２０４は、ＣＰＵ基板２０１の指示により計測結果をアナログ基板２０２へ入力する。分析装置２０のアナログ基板２０２及び波形信号処理基板２０３にて用いる設定パラメータには、ＰＣ１０からソケット通信により受信した設定情報を用いる。
【００４６】
図３は、本実施の形態１に係る分析装置２０における計測装置２０４の概略構成を示す模式図である。微細粒子３２が浮遊している水溶液３０をビーカ３１に満たし、水溶液３０中に検出器３３を挿入する。検出器３３は、端部近傍に微細粒子３２が通過することが可能な細孔３３１を設けてあり、検出器３３の内外に設けてある内電極３３２−外電極３３３間には、直流電流源３３４を用いて直流定電流Ｉを流しておく。
【００４７】
ポンプ（図示せず）等を用いて検出器３３内部に負圧をかけることにより、水溶液３０が細孔３３１から検出器３３内へ吸い込まれ、水溶液３０中で浮遊している微細粒子３２が細孔３３１を通過する。負圧制御のためのポンプ制御、バルブ制御等もＣＰＵ基板２０１が行う。微細粒子３２が細孔３３１を通過する場合、細孔３３１間の電気抵抗が微細粒子３２の大きさに伴って変動するので、内電極３３２−外電極３３３間の電気抵抗も変動する。内電極３３２−外電極３３３間には、直流定電流Ｉが流れていることから、オームの法則により、内電極３３２−外電極３３３間の電圧Ｖを計測することで、細孔３３１を通過した微細粒子３２の大きさ、数等を検出することができる。
【００４８】
計測された電圧Ｖは、アナログ信号としてアナログ基板２０２へ入力される。アナログ基板２０２では、微小な電圧変化である入力された電圧Ｖをアンプ等により増幅させる。アナログ信号の前処理を実行するための設定情報である、増幅の程度を調整するためのゲイン値、電圧信号全体をシフトさせるオフセット値等は、ＰＣ１０にて入力され、プロセス間通信により分析装置２０へ送信される。設定情報を受信した分析装置２０のＣＰＵ基板２０１は、アナログ基板２０２へ設定情報を送信して、デジタル信号化する前のアナログ信号に対する前処理を実行する。
【００４９】
図４は、アナログ基板２０２が取得する設定情報を説明するための模式図である。接地電圧ＧＮＤを原点として入力されたアナログ信号に対して、ゲイン値４２とはアナログ信号値を増幅する倍率の設定値を意味している。また、オフセット値４１とはアナログ信号全体をシフトさせ、信号の揺れ等を除去するための設定値を意味している。
【００５０】
加工されたアナログ信号は波形信号処理基板２０３へ送られ、デジタル信号化される。波形信号処理基板２０３では、一定のレベル値（ノイズカットレベル値）より大きい値を有する信号のみをデジタル信号化の対象とし、信号の幅が所定のパルス幅より大きい信号である場合にはノイズであると判断してデジタル信号化の対照から外す。したがって、デジタル信号化のための設定情報として、信号の大きさでデジタル信号化するか否かを判定するノイズカットレベル値、デジタル信号化するパルス幅の最大値を定める最大パルス幅等がＰＣ１０にて入力され、プロセス間通信により分析装置２０へ送信される。設定情報を受信した分析装置２０のＣＰＵ基板２０１は、波形信号処理基板２０３へ設定情報を送信して、デジタル信号化する。
【００５１】
図５は、波形信号処理基板２０３が取得する設定情報を説明するための模式図である。アナログ基板２０２で波形を調整されたアナログ信号５０に対して、ノイズカットレベル値５１とは、アナログ信号５０の最大値がこの値を超えていた場合には微細粒子３２を検出したものと判定してデジタル信号化する基準レベルを意味している。また、最大パルス幅５２とはアナログ信号５０のパルス幅がこの値を超えた場合にはノイズであると判定してデジタル信号化しない判定基準を意味している。
【００５２】
なお、本実施の形態１では、最大パルス幅５２として最大パルス数を用いている。これは、アナログ信号５０をデジタル化した場合の微小幅パルスの数の最大数であり、この値を超えた場合には微細粒子３２を吸い込む細孔３３１の直径を超えた微細粒子３２を検出したことになる。したがって、何らかのノイズであると判断することができる。
【００５３】
波形信号処理基板２０３で実行される処理はこれらに限定されるものではなく、例えばデジタル信号化する前に、高周波成分を除去するローパスフィルタ等のフィルタリング処理を実行しても良い。この場合、実行するバンドパスフィルタの選択情報は、設定情報の１つとしてＰＣ１０にて入力され、プロセス間通信により分析装置２０へ送信される。受信した分析装置２０のＣＰＵ基板２０１は、波形信号処理基板２０３へ送信して、選択情報に従って実行させるバンドパスフィルタを選択する。
【００５４】
波形信号処理基板２０３は、デジタル信号化された波形情報を微細粒子３２に関する情報としてＰＣ１０へ送信する。微細粒子３２に関する情報の送信は、例えばＵＳＢ接続されたＵＳＢケーブルを介して行う。もちろん、ＵＳＢケーブルを介して送信することに限定されるものではない。
【００５５】
微細粒子３２に関する情報を、通信基板１０２を介して受信したＰＣ１０は、ＣＰＵ基板１０１にて微細粒子３２に関する情報を分析する。そして、ＣＰＵ基板１０１は、水溶液３０中に含まれる微細粒子３２の粒子数、粒子径、粒子径分布の算出等を行って表示装置１０３に結果を表示出力する。
【００５６】
上述した構成のプロセス間通信システムの処理の流れについて説明する。図６は、本発明の実施の形態１に係るプロセス間通信システムのスレッド関係を示す模式図である。ＰＣ１０は、アナログ基板２０２用の設定情報を取得するスレッドｂ、波形信号処理基板２０３用の設定情報を取得するスレッドｃ、及びこれらの設定情報をプロセス間通信により分析装置２０へ送信するスレッドａからなるプロセスを生成して実行する。一方、分析装置２０は、設定情報をプロセス間通信によりＰＣ１０から受信するスレッドＡ、受信した設定情報をアナログ基板２０２に設定するスレッドＢ、及び受信した設定情報を波形信号処理基板２０３に設定するスレッドＣからなるプロセスを生成して実行する。
【００５７】
図７は、本発明の実施の形態１に係るプロセス間通信システムのＰＣ１０（送信装置）のＣＰＵ基板１０１の処理手順を示すフローチャートである。ＰＣ１０のＣＰＵ基板１０１は、分析装置２０（受信装置）のアナログ基板２０２での設定情報として、ゲイン値及びオフセット値を取得する（ステップＳ７０１：スレッドｂ）。具体的には、ＣＰＵ基板１０１内の記憶装置１２又はＲＡＭ１３内に記憶してある装置情報を照会して読み出す。もちろん、入力装置１４から直接入力を受け付けても良い。
【００５８】
ＣＰＵ基板１０１は、分析装置２０（受信装置）のＣＰＵ基板２０１上のスレッド、すなわち送信先のスレッドを識別する情報を取得し（ステップＳ７０２：スレッドｂ）、送信先のスレッドを識別する情報を含む通信データを生成する（ステップＳ７０３：スレッドｂ）。送信先のスレッドを識別する情報は、取得したアナログ基板２０２での設定情報と同様、ＣＰＵ基板１０１内の記憶装置１２又はＲＡＭ１３内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
【００５９】
次に、ＣＰＵ基板１０１は、分析装置２０の波形信号処理基板２０３での設定情報として、ノイズカットレベル値及び最大パルス数を取得する（ステップＳ７０４：スレッドｃ）。具体的には、ＣＰＵ基板１０１内の記憶装置１２又はＲＡＭ１３内に記憶してある装置情報を照会して読み出す。もちろん、入力装置１４から直接入力を受け付けても良い。
【００６０】
ＣＰＵ基板１０１は、分析装置２０（受信装置）のＣＰＵ基板２０１上のスレッド、すなわち送信先のスレッドを識別する情報を取得し（ステップＳ７０５：スレッドｃ）、送信先のスレッドを識別する情報を含む通信データを生成する（ステップＳ７０６：スレッドｃ）。送信先のスレッドを識別する情報は、取得した波形信号処理基板２０３での設定情報と同様、ＣＰＵ基板１０１内の記憶装置１２又はＲＡＭ１３内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
【００６１】
ＣＰＵ基板１０１は、生成した通信データ（送信先のスレッドを識別する情報を含む）を、指定プロセスへプロセス間通信により送信する（ステップＳ７０７：スレッドａ）。プロセス間通信により設定情報を分析装置２０へ送信するためにスレッドｂ、ｃで生成された通信データは、本発明に固有のデータ構造を有している。図８は、本発明の実施の形態１に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。
【００６２】
図８（１）に示すように、本実施の形態１に係るデータ構造のヘッダ部分には、送信される通信データによる処理の種類を特定するコマンド型を指定する。次の項目には、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報を指定する。通信データによる処理が複雑な処理で無い場合、送信元のスレッドを識別する情報を省略することができることは言うまでもない。
【００６３】
また、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報は、スレッド番号、スレッド識別子等、特に限定されるものではない。ただし、受信するスレッドでの処理負荷を軽減するためにはスレッド番号であることが好ましい。スレッド番号で指定されている場合、指定されている番号が示すスレッドへ通信データを転送すれば良く、通信データの送信先であるスレッドの特定処理を別途実行する必要がない。もちろん、スレッド番号以外の情報である場合には、該情報とスレッド番号との変換テーブル等を準備しておき、送信先のスレッドを識別する情報をスレッド番号に変換すれば容易に転送することができることは言うまでもない。
【００６４】
次の項目には、送信先のスレッドにて実行すべき処理及び該処理に必要な情報を指定する。図８（２）及び（３）は、それぞれスレッドｂ、スレッドｃで生成された通信データのデータ構造の一例である。図８（２）及び（３）の例では、送信情報としてアナログ基板２０２及び波形信号処理基板２０３に設定する設定情報を送信するデータ構造となっている。すなわち設定情報の設定コマンドとして「ＳｅｔＤｔ」を用いており、必要となる設定情報は、データの区切り情報（以下、セパレータという）「，」にて自由に追加することが可能となっている。したがって、通信データは可変長データである。なお、セパレータは「，」に限定されるものではなく、送信情報と区別できさえすれば何でも良い。
【００６５】
通信データを可変長データとすることにより、送受信する通信データを準備するスレッドにおける処理内容を変更する場合、処理内容を変更するスレッドに相当するプログラムを更新する必要はあるものの、通信データをプロセス間で受け渡しするスレッドに相当するプログラムについては更新する必要が無い。例えばスレッドｂ及びスレッドＢに相当するプログラムの処理を変更する場合、スレッドｂ及びスレッドＢに相当するプログラムのみ更新し、スレッドａ及びスレッドＡに相当するプログラムは更新する必要が無い。したがって、処理内容の変更に伴う更新プログラムの数が最小限となり、更新作業に起因するプログラムバグの発生可能性を抑制することが可能となる。
【００６６】
図９は、本発明の実施の形態１に係るプロセス間通信システムの分析装置２０（受信装置）のＣＰＵ基板２０１の処理手順を示すフローチャートである。分析装置２０のＣＰＵ基板２０１は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信する（ステップＳ９０１：スレッドＡ）。通信データとしては、スレッドｂ、スレッドｃで生成された通信データを、それぞれ受信することになる。
【００６７】
ＣＰＵ基板２０１は、受信した通信データを例えば図８に示すデータ構造に従って解析する（ステップＳ９０２：スレッドＡ）。具体的には、まず「｜」までのデータを読み出し、処理の種類を特定するコマンド型を指定する情報と認識する。次に、「｜」から「：」までのデータを読み出し、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報と認識する。「｜」から「：」までの間に「，」が検出された場合には「，」までを送信元のスレッドを識別する情報と、「，」より後を送信先のスレッドを識別する情報と、それぞれ認識する。「，」が検出されない場合には、送信先のスレッドを識別する情報のみであると認識する。
【００６８】
次に「：」以降のデータを読み出し、実行すべき処理（コマンド、プロパティ、イベント等）があらかじめＣＰＵ基板２０１に記憶されているか否かを判断し、記憶されていると判断した場合、セパレータ「，」を検索し、セパレータ「，」が検出される都度、検出したセパレータ「，」までのデータを、それぞれの処理に関する情報と認識する。
【００６９】
例えば図８（２）の例では、「ＳｅｔＤｔ」をコマンドとして認識し、「＝」からセパレータ「，」までの間のデータをゲイン値、次のセパレータ「，」までデータをオフセット値と認識する。
【００７０】
同様に、図８（３）の例では、「ＳｅｔＤｔ」をコマンドとして認識し、「＝」からセパレータ「，」までの間のデータをノイズカットレベル値、次のセパレータ「，」までのデータを最大パルス数と認識する。
【００７１】
さらにデータを追加する場合、例えばスレッドｃが波形信号処理基板２０３にて選択するバンドパスフィルタ種を指定する場合には、さらにセパレータ「，」を追加してバンドパスフィルタ種を示すデータを追加すればよい。この場合、ＣＰＵ基板２０１は、次のセパレータ「，」までのデータをバンドパスフィルタ種と認識すれば足り、通信データのデータ構造を変更する必要が無い。
【００７２】
ＣＰＵ基板２０１は、通信データに含まれている送信先のスレッドを識別する情報に基づいて送信先のスレッドを特定し（ステップＳ９０３：スレッドＡ）、設定情報であるゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を、それぞれ特定されたスレッドに対して転送する（ステップＳ９０４：スレッドＡ）。ＣＰＵ基板２０１は、ゲイン値、オフセット値を設定情報としてアナログ基板２０２へ送信し（ステップＳ９０５：スレッドＢ）、ノイズカットレベル値、最大パルス数を設定情報として波形信号処理基板２０３へ送信し（ステップＳ９０６：スレッドＣ）、アナログ基板２０２又は波形信号処理基板２０３は受信した設定情報を設定パラメータとして設定する。
【００７３】
以上のように本実施の形態１によれば、通信データに送信先のスレッドを識別する情報を含むことにより、プロセス間通信を実行するスレッドを生成するプログラムを汎用化することができる。したがって、通信データとして送受信するデータの内容に変更が生じ、プログラム更新が発生した場合であっても、プロセス間通信用スレッドに対応するプログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
【００７４】
また、データ構造を図８に示すデータ構造とすることにより、通信データとして送受信するデータの内容に追加項目が生じた場合、削減項目が生じた場合等であっても、プロセス間通信用スレッドに対応するプログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
【００７５】
なお、上述した分析装置２０等ではＣＰＵ基板２０１の処理能力は、一般にＰＣ１０のＣＰＵ基板１０１の処理能力よりも低い。したがって、送信先のスレッドを識別する情報をスレッド番号とすることにより、ＣＰＵ基板２０１の演算処理負荷を軽減することもでき、分析結果を得るまでのスループットを短縮することができるという副次的効果も期待できる。
【００７６】
また、プロセス間通信時の通信仕様を設定する設定情報をＣＰＵ基板２０１が受信した場合、受信した通信データは転送する必要が無い。そこで、ＣＰＵ基板２０１は、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド（上述の例ではスレッドＡ）を示しているか否かを判断しても良い。図１０は、送信先のスレッドを識別する情報の判断処理を含む場合における分析装置２０（受信装置）のＣＰＵ基板２０１の処理手順を示すフローチャートである。
【００７７】
分析装置２０のＣＰＵ基板２０１は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信し（ステップＳ９０１：スレッドＡ）、上述の実施例と同様に解析する（ステップＳ９０２：スレッドＡ）。そして、送信先のスレッドを識別する情報が、通信データを受信するスレッドであるスレッドＡを示しているか否かを判断する（ステップＳ１００１）。
【００７８】
ＣＰＵ基板２０１が、通信データの受信スレッドであるスレッドＡを示していると判断した場合（ステップＳ１００１：ＹＥＳ）、ＣＰＵ基板２０１は、スレッドＡ内で処理が完結すると判断し、通信データを転送することなく処理を終了する。ＣＰＵ基板２０１が、通信データの受信スレッドであるスレッドＡを示していないと判断した場合（ステップＳ１００１：ＮＯ）、処理をステップＳ９０３へ進め、上述の処理を実行する。
【００７９】
このように、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド（上述の例ではスレッドＡ）を示しているか否かを判断する処理を追加することにより、自スレッドに対する通信データであるか否かを判断することができ、受信した通信データの転送の要・不要を判断することが可能となる。
【００８０】
（実施の形態２）
図１１は、本発明の実施の形態２に係るプロセス間通信制御装置６の構成を示すブロック図である。図１１において、本実施の形態２に係るプロセス間通信制御装置６は、少なくとも、ＣＰＵ（中央演算装置）６１、記憶装置６２、ＲＡＭ６３、入力装置６４、出力装置６５、補助記憶装置６６、通信装置６７及び上述したハードウェアを接続する内部バス６８で構成されている。ＣＰＵ６１は、内部バス６８を介してプロセス間通信制御装置６の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置６２に記憶されているコンピュータプログラム８０に従って、種々のソフトウェア的機能を実行する。ＲＡＭ６３は、ＳＲＡＭ、フラッシュメモリ等で構成され、コンピュータプログラム８０の実行時にロードモジュールが展開され、コンピュータプログラム８０の実行時に発生する一時的なデータ等を記憶する。
【００８１】
記憶装置６２は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置６２に記憶されているコンピュータプログラム８０は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、補助記憶装置６６によりダウンロードされ、実行時には記憶装置６２からＲＡＭ６３へ展開して実行される。もちろん、通信装置６７を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００８２】
通信装置６７は内部バス６８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置６２は、プロセス間通信制御装置６に内蔵される構成に限定されるものではなく、通信装置６７を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【００８３】
入力装置６４は、キーボード及びマウス等のデータ入力媒体の他、例えばプロセス間通信制御装置６が何らかの処理を実行する検査装置、分析装置等と一体である場合には、検査、分析等の対象物からの情報取得手段全般を含む。出力装置６５は、ＣＲＴモニタ、ＬＣＤ等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
【００８４】
以下、具体的な適用例として、プロセス間通信制御装置６を、水溶液中に浮遊する有形粒子の濃度、粒子径、粒子径分布等を計測して分析する分析装置と一体化した場合について説明する。図１２は、本発明の実施の形態２に係るプロセス間通信制御装置６のハードウェア構成を示すブロック図である。
【００８５】
図１２において、本実施の形態２に係るプロセス間通信制御装置６は、ＣＰＵ基板６０１内でプロセス間通信することにより、必要な設定情報を、直接的に処理を実行するスレッドへ送信する。プロセス間通信としては、名前付きパイプ通信、ソケット通信等、特に限定されるものではない。本実施の形態２では実施の形態１と同様、ＴＣＰ／ＩＰプロトコルに従ったソケット通信を用いる。
【００８６】
計測装置６０４は、ＣＰＵ基板６０１の指示により計測結果をアナログ基板６０２へ入力する。アナログ基板６０２及び波形信号処理基板６０３にて用いる設定パラメータには、ソケット通信により受信した設定情報を用いる。
【００８７】
なお、分析装置部分の構成及びアナログ基板、波形信号処理基板での設定情報については実施の形態１と同様であることから、以後同一の符号を付することで詳細な説明は省略する。
【００８８】
波形信号処理基板６０３は、デジタル信号化された波形情報を微細粒子３２に関する情報としてＣＰＵ基板６０１へ返す。ＣＰＵ基板６０１は、受信した微細粒子３２に関する情報を分析し、水溶液３０中に含まれる微細粒子３２の粒子数、粒子径、粒子径分布の算出等を行って表示装置６０５に結果を表示出力する。
【００８９】
上述した構成のプロセス間通信制御装置６のＣＰＵ基板６０１の処理の流れについて説明する。図１３は、本発明の実施の形態２に係るプロセス間通信制御装置６のスレッド関係を示す模式図である。プロセス間通信制御装置６は、アナログ基板６０２用の設定情報を取得するスレッドｂ、波形信号処理基板６０３用の設定情報を取得するスレッドｃ、及びこれらの設定情報をプロセス間通信により他のプロセスへ送信するスレッドａからなるプロセスｄと、設定情報をプロセス間通信により受信するスレッドＡ、受信した設定情報をアナログ基板６０２に設定するスレッドＢ、及び受信した設定情報を波形信号処理基板６０３に設定するスレッドＣからなるプロセスＤとを、それぞれ生成して実行する。
【００９０】
図１４は、本発明の実施の形態２に係るプロセス間通信制御装置６のＣＰＵ基板６０１の処理手順を示すフローチャートである。プロセス間通信制御装置６のＣＰＵ基板６０１は、アナログ基板６０２での設定情報として、ゲイン値及びオフセット値を取得する（ステップＳ１４０１：スレッドｂ）。具体的には、ＣＰＵ基板６０１内の記憶装置６２又はＲＡＭ６３内に記憶してある装置情報を照会して読み出す。もちろん、入力装置６４から直接入力を受け付けても良い。
【００９１】
ＣＰＵ基板６０１は、送信先のスレッドを識別する情報を取得し（ステップＳ１４０２：スレッドｂ）、送信先のスレッドを識別する情報を含む通信データを生成する（ステップＳ１４０３：スレッドｂ）。送信先のスレッドを識別する情報は、取得したアナログ基板６０２での設定情報と同様、ＣＰＵ基板６０１内の記憶装置６２又はＲＡＭ６３内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
【００９２】
次に、ＣＰＵ基板６０１は、波形信号処理基板６０３での設定情報として、ノイズカットレベル値及び最大パルス数を取得する（ステップＳ１４０４：スレッドｃ）。具体的には、ＣＰＵ基板６０１内の記憶装置６２又はＲＡＭ６３内に記憶してある装置情報を照会して読み出す。もちろん、入力装置６４から直接入力を受け付けても良い。
【００９３】
ＣＰＵ基板６０１は、送信先のスレッドを識別する情報を取得し（ステップＳ１４０５：スレッドｃ）、送信先のスレッドを識別する情報を含む通信データを生成する（ステップＳ１４０６：スレッドｃ）。送信先のスレッドを識別する情報は、取得した波形信号処理基板６０３での設定情報と同様、ＣＰＵ基板６０１内の記憶装置６２又はＲＡＭ６３内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
【００９４】
ＣＰＵ基板６０１は、生成された通信データ（送信先のスレッドを識別する情報を含む）を、指定プロセス（プロセスＤ）へプロセス間通信により送信する（ステップＳ１４０７：スレッドａ）。プロセス間通信により設定情報をプロセスＤへ送信するためにスレッドｂ、ｃで生成された通信データは、本発明に固有のデータ構造を有している。図１５は、本発明の実施の形態２に係るプロセス間通信制御装置６で送信する通信データのデータ構造を示す模式図である。
【００９５】
図１５（１）に示すように、本実施の形態２に係るデータ構造のヘッダ部分には、送信される通信データによる処理の種類を特定するコマンド型を指定する。次の項目には、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報を指定する。通信データによる処理が複雑な処理で無い場合、送信元のスレッドを識別する情報を省略することができることは言うまでもない。
【００９６】
また、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報は、スレッド番号、スレッド識別子等、特に限定されるものではない。ただし、受信するスレッドでの処理負荷を軽減するためにはスレッド番号であることが好ましい。スレッド番号で指定されている場合、指定されている番号が示すスレッドへ通信データを転送すれば良く、通信データの送信先であるスレッドの特定処理を別途実行する必要がない。もちろん、スレッド番号以外の情報である場合には、該情報とスレッド番号との変換テーブル等を準備しておき、送信先のスレッドを識別する情報をスレッド番号に変換すれば容易に転送することができることは言うまでもない。
【００９７】
次の項目には、送信先のスレッドにて実行すべき処理及び該処理に必要な情報を指定する。図１５（２）及び（３）は、それぞれスレッドｂ、スレッドｃで生成された通信データのデータ構造の一例である。図１５（２）及び（３）の例では、送信情報としてアナログ基板６０２及び波形信号処理基板６０３に設定する設定情報を送信するデータ構造となっている。すなわち設定情報の設定コマンドとして「ＳｅｔＤｔ」を用いており、必要となる設定情報は、データの区切り情報（以下、セパレータという）「，」にて自由に追加することが可能となっている。したがって、通信データは可変長データである。なお、セパレータは「，」に限定されるものではなく、送信情報と区別できさえすれば何でも良い。
【００９８】
通信データを可変長データとすることにより、送受信する通信データを準備するスレッドにおける処理内容を変更する場合、処理内容を変更するスレッドに相当するプログラムを更新する必要はあるものの、通信データをプロセス間で送受信するプロセス間通信用スレッドに相当するプログラムについては更新する必要が無い。例えばスレッドｂ及びスレッドＢに相当するプログラムの処理内容を変更する場合、スレッドｂ及びスレッドＢに相当するプログラムのみ更新し、スレッドａ及びスレッドＡに相当するプログラムは更新する必要がない。したがって、処理内容の変更に伴う更新プログラムの数が最小限となり、更新作業に起因するプログラムバグの発生確率を低減することが可能となる。
【００９９】
図１４に戻って、ＣＰＵ基板６０１は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、別プロセス（プロセスＤ）にてプロセス間通信により受信する（ステップＳ１４０８：スレッドＡ）。通信データとしては、スレッドｂ、スレッドｃで生成された通信データを、それぞれ受信することになる。
【０１００】
ＣＰＵ基板６０１は、受信した通信データを例えば図１５に示すデータ構造に従って解析する（ステップＳ１４０９：スレッドＡ）。具体的には、まず「｜」までのデータを読み出し、処理の種類を特定するコマンド型を指定する情報と認識する。次に、「｜」から「：」までのデータを読み出し、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報と認識する。「｜」から「：」までの間に「，」が検出された場合には「，」までを送信元のスレッドを識別する情報と、「，」より後を送信先のスレッドを識別する情報と、それぞれ認識する。「，」が検出されない場合には、送信先のスレッドを識別する情報のみであると認識する。
【０１０１】
次に「：」以降のデータを読み出し、実行すべき処理（コマンド、プロパティ、イベント等）があらかじめＣＰＵ基板６０１に記憶されているか否かを判断し、記憶されていると判断した場合、セパレータ「，」を検索し、セパレータ「，」が検出される都度、検出したセパレータ「，」までのデータを、それぞれの処理に関する情報と認識する。
【０１０２】
例えば図１５（２）の例では、「ＳｅｔＤｔ」をコマンドとして認識し、「＝」からセパレータ「，」までの間のデータをゲイン値、次のセパレータ「，」までデータをオフセット値と認識する。
【０１０３】
同様に、図１５（３）の例では、「ＳｅｔＤｔ」をコマンドとして認識し、「＝」からセパレータ「，」までの間のデータをノイズカットレベル値、次のセパレータ「，」までのデータを最大パルス数と認識する。
【０１０４】
さらにデータを追加する場合、例えばスレッドｃが波形信号処理基板６０３にて選択するバンドパスフィルタ種を指定する場合には、さらにセパレータ「，」を追加してバンドパスフィルタ種を示すデータを追加すればよい。この場合、ＣＰＵ基板６０１は、次のセパレータ「，」までのデータをバンドパスフィルタ種と認識すれば足り、通信データのデータ構造を変更する必要がない。
【０１０５】
ＣＰＵ基板６０１は、通信データに含まれている送信先のスレッドを識別する情報に基づいて送信先のスレッドを特定し（ステップＳ１４１０：スレッドＡ）、設定情報であるゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を、それぞれ特定されたスレッドに対して転送する（ステップＳ１４１１：スレッドＡ）。ＣＰＵ基板６０１は、ゲイン値、オフセット値を設定情報としてアナログ基板６０２へ送信し（ステップＳ１４１２：スレッドＢ）、ノイズカットレベル値、最大パルス数を設定情報として波形信号処理基板６０３へ送信し（ステップＳ１４１３：スレッドＣ）、アナログ基板６０２又は波形信号処理基板６０３は受信した設定情報を設定パラメータとして設定する。
【０１０６】
以上のように本実施の形態２によれば、通信データに送信先のスレッドを識別する情報を含むことにより、プロセス間通信を実行するスレッドを生成するプログラムを汎用化することができる。したがって、通信データとして送受信するデータの内容に変更が生じ、プログラム更新が発生した場合であっても、プロセス間通信用プログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
【０１０７】
また、データ構造を図１５に示すデータ構造とすることにより、通信データとして送受信するデータの内容に追加項目が生じた場合、削減項目が生じた場合等であっても、プロセス間通信用プログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
【０１０８】
また、プロセス間通信時の通信仕様を設定する設定情報をＣＰＵ基板６０１が受信した場合、受信した通信データは転送する必要が無い。そこで、ＣＰＵ基板６０１は、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド（上述の例ではスレッドＡ）を示しているか否かを判断しても良い。図１６は、送信先のスレッドを識別する情報の判断処理を含む場合におけるプロセス間通信制御装置６のＣＰＵ基板６０１の処理手順を示すフローチャートである。
【０１０９】
ＣＰＵ基板６０１は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信し（ステップＳ１４０８：スレッドＡ）、上述の実施例と同様に解析する（ステップＳ１４０９：スレッドＡ）。そして、ＣＰＵ基板６０１は、送信先のスレッドを識別する情報が、通信データの受信スレッドであるスレッドＡを示しているか否かを判断する（ステップＳ１６０１）。
【０１１０】
ＣＰＵ基板６０１が、通信データの受信スレッドであるスレッドＡを示していると判断した場合（ステップＳ１６０１：ＹＥＳ）、ＣＰＵ基板６０１は、スレッドＡ内で処理が完結すると判断し、通信データを転送することなく処理を終了する。ＣＰＵ基板６０１が、通信データの受信スレッドであるスレッドＡを示していないと判断した場合（ステップＳ１６０１：ＮＯ）、処理をステップＳ１４１０へ進め、上述の処理を実行する。
【０１１１】
このように、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド（上述の例ではスレッドＡ）を示しているか否かを判断する処理を追加することにより、自スレッドに対する通信データであるか否かを判断することができ、受信した通信データの転送の要・不要を判断することが可能となる。
【０１１２】
なお、上述の実施の形態１及び２は実施例を示したものにすぎず、発明の趣旨を逸脱しない範囲内で多種の変形、置換等が可能であり、検査装置、分析装置だけでなく、プロセス間通信を用いて動作を制御することが可能な各種電子機器に容易に適用することができることは言うまでもない。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施の形態１に係るプロセス間通信システムの構成を示すブロック図である。
【図２】本発明の実施の形態１に係るプロセス間通信システムのハードウェア構成を示すブロック図である。
【図３】本実施の形態１に係る分析装置における計測装置の概略構成を示す模式図である。
【図４】アナログ基板が取得する設定情報を説明するための模式図である。
【図５】波形信号処理基板が取得する設定情報を説明するための模式図である。
【図６】本発明の実施の形態１に係るプロセス間通信システムのスレッド関係を示す模式図である。
【図７】本発明の実施の形態１に係るプロセス間通信システムのＰＣ（送信装置）のＣＰＵ基板の処理手順を示すフローチャートである。
【図８】本発明の実施の形態１に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。
【図９】本発明の実施の形態１に係るプロセス間通信システムの分析装置（受信装置）のＣＰＵ基板の処理手順を示すフローチャートである。
【図１０】送信先のスレッドを識別する情報の判断処理を含む場合における分析装置（受信装置）のＣＰＵ基板の処理手順を示すフローチャートである。
【図１１】本発明の実施の形態２に係るプロセス間通信制御装置の構成を示すブロック図である。
【図１２】本発明の実施の形態２に係るプロセス間通信制御装置のハードウェア構成を示すブロック図である。
【図１３】本発明の実施の形態２に係るプロセス間通信制御装置のスレッド関係を示す模式図である。
【図１４】本発明の実施の形態２に係るプロセス間通信制御装置のＣＰＵ基板の処理手順を示すフローチャートである。
【図１５】本発明の実施の形態２に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。
【図１６】送信先のスレッドを識別する情報の判断処理を含む場合におけるプロセス間通信制御装置のＣＰＵ基板の処理手順を示すフローチャートである。
【符号の説明】
【０１１４】
１  送信装置
２  受信装置
３  ネットワーク
６  プロセス間通信制御装置
１０  ＰＣ
１１、２１、６１  ＣＰＵ
１２、２２、６２  記憶装置
１３、２３、６３  ＲＡＭ
１４、２４、６４  入力装置
１５、２５、６５  出力装置
１６、６６  補助記憶装置
１７、２６、６７  通信装置
１８、２７、６８  内部バス
２０  分析装置
８０、８１  コンピュータプログラム
９０  可搬型記録媒体
１０１、２０１、６０１  ＣＰＵ基板
１０２  通信基板
１０３、６０５  表示装置
２０２、６０２  アナログ基板
２０３、６０３  波形信号処理基板
２０４、６０４  計測装置
【図１】
2009093526.tif 000003
【図２】
2009093526.tif 000004
【図３】
2009093526.tif 000005
【図４】
2009093526.tif 000006
【図５】
2009093526.tif 000007
【図６】
2009093526.tif 000008
【図７】
2009093526.tif 000009
【図８】
2009093526.tif 000010
【図９】
2009093526.tif 000011
【図１０】
2009093526.tif 000012
【図１１】
2009093526.tif 000013
【図１２】
2009093526.tif 000014
【図１３】
2009093526.tif 000015
【図１４】
2009093526.tif 000016
【図１５】
2009093526.tif 000017
【図１６】
2009093526.tif 000018