JP2009093526A - プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム - Google Patents

プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2009093526A
JP2009093526A JP2007265261A JP2007265261A JP2009093526A JP 2009093526 A JP2009093526 A JP 2009093526A JP 2007265261 A JP2007265261 A JP 2007265261A JP 2007265261 A JP2007265261 A JP 2007265261A JP 2009093526 A JP2009093526 A JP 2009093526A
Authority
JP
Japan
Prior art keywords
thread
communication
communication data
information
data
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.)
Pending
Application number
JP2007265261A
Other languages
English (en)
Inventor
Hiroyuki Seshimo
博之 瀬下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sysmex Corp
Original Assignee
Sysmex Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sysmex Corp filed Critical Sysmex Corp
Priority to JP2007265261A priority Critical patent/JP2009093526A/ja
Priority to US12/249,686 priority patent/US20090106774A1/en
Publication of JP2009093526A publication Critical patent/JP2009093526A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

【課題】プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムを提供する。
【解決手段】外部とプロセス間通信を行う第1のスレッド及び複数の他のスレッドが属する第1のプロセス、外部とプロセス間通信を行う第2のスレッド及び複数の他のスレッドが属する第2のプロセスが生成され、第1のスレッドが送信先のスレッドを識別する情報を含む通信データを第2のスレッドへ送信する。通信データは、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、第2のスレッドが、送信先のスレッドを識別する情報にて指示されたスレッドへ、受信した通信データを転送する。
【選択図】図2

Description

本発明は、プロセス間通信プログラムを更新する場合に、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムに関する。
一般に、コンピュータでプログラムが実行される場合、同時に実行される複数のプログラム間でデータ交換する必要が生じることがある。通常、実行中のプログラム間でのデータ交換には、ソケット、パイプ、共有メモリ等を用いたプロセス間通信を行っている。
例えば特許文献1では、プロセス間通信を制御するための特別なプロセスとして通信制御用サーバプロセスを設けており、クライアントプロセスからのメッセージ伝文を通信制御用サーバプロセスで一括受信して、内容を解析することにより、送信先である他のクライアントプロセスへメッセージ伝文を確実に送信することができる。
また、複数のスレッドが属するプロセス間でプロセス間通信を行う場合、通信データを送信するプロセスでは、外部のプロセスへ送信するために生成された特定のスレッドに他のスレッドから通信すべきデータを転送し、通信データを生成してから送信先である所定のプロセスへ該通信データを送信している。また、通信データを受信するプロセスでは、外部のプロセスから受信するために生成された特定のスレッドで通信データを受信し、内容を解析することで該スレッドから同一プロセスに属する所定のスレッドへ必要なデータを転送している。
特開平11−120009号公報
しかし、特許文献1に開示されているプロセス間通信では、クライアントプロセスの自通信仕様等を更新する場合、それに対応したスレッド及び通信制御用サーバプロセスについてもコードを更新する必要が生じる。したがって、比較的モジュール自体が複雑である通信制御用プログラムにも更新作業が生じるため、作業工数の増大のみならず、更新作業による修正バグ発生のおそれが高くなるという問題点があった。
上記問題点は、複数のスレッドが属するプロセス間でプロセス間通信を行う場合も同様である。すなわち、プロセス間通信に直接用いられるスレッド以外のスレッドにて、別プロセスに属するスレッドへの通信仕様等が更新された場合、該スレッドだけでなくプロセス間通信に直接用いられるスレッド自体のプログラムコードも更新する必要が生じ、あるいは該スレッドが参照するプロセス情報テーブルも変更する必要が生じる。したがって、プログラム更新に対する作業工数が増大し、更新作業による修正バグ発生のおそれが高くなるという同様の問題点が生じていた。
本発明は斯かる事情に鑑みてなされたものであり、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係るプロセス間通信システムは、ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置とを備え、該送信装置と該受信装置との間でプロセス間通信を行うプロセス間通信システムにおいて、前記送信装置には、外部とプロセス間通信を行う第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセスが生成されており、前記受信装置には、外部とプロセス間通信を行う第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成されており、前記送信装置は、前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段を備えることを特徴とする。
また、第2発明に係るプロセス間通信システムは、第1発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記受信装置は、前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする。
また、第3発明に係るプロセス間通信システムは、第2発明において、前記受信装置は、前記第2のスレッドが受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断する判断手段を備え、該判断手段が該第2のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする。
次に、上記目的を達成するために第4発明に係るデータ構造は、プロセス間通信により送受信される通信データのデータ構造において、少なくとも前記通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むことを特徴とする。
次に、上記目的を達成するために第5発明に係るプロセス間通信制御装置は、プロセス間通信により通信データを送受信することが可能なプロセス間通信制御装置において、他のプロセスへプロセス間通信により前記通信データを送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセス、及び他のプロセスからプロセス間通信により前記通信データを受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成され、前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段を備えることを特徴とする。
また、第6発明に係るプロセス間通信制御装置は、第5発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする。
また、第7発明に係るプロセス間通信制御装置は、第6発明において、前記第2のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断する判断手段を備え、該判断手段が該第2のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする。
次に、上記目的を達成するために第8発明に係るプロセス間通信制御方法は、プロセス間通信により通信データを送受信することが可能なプロセス間通信制御方法において、他のプロセスへプロセス間通信によりデータ送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセスが、他のプロセスからプロセス間通信によりデータ受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスへ前記通信データを送信し、前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信することを特徴とする。
また、第9発明に係るプロセス間通信制御方法は、第8発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送することを特徴とする。
また、第10発明に係るプロセス間通信制御方法は、第9発明において、前記第2のスレッドは、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断し、該第2のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送することを特徴とする。
次に、上記目的を達成するために第11発明に係るコンピュータプログラムは、プロセス間通信により通信データを送受信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータにて、他のプロセスへプロセス間通信により前記通信データを送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセス、及び他のプロセスからプロセス間通信により前記通信データを受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成され、前記コンピュータを、前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段として機能させることを特徴とする。
また、第12発明に係るコンピュータプログラムは、第11発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、前記コンピュータを、前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段として機能させることを特徴とする。
また、第13発明に係るコンピュータプログラムは、第12発明において、前記コンピュータを、前記第2のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否か判断する判断手段、及び該判断手段で該第2のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてある転送手段として機能させることを特徴とする。
次に、上記目的を達成するために第14発明に係るコンピュータプログラムは、ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータにて、他のプロセスへプロセス間通信により前記通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成され、前記コンピュータを、前記一のスレッドが、送信先のスレッドを識別する情報を含む前記通信データを前記他のプロセスに属するスレッドへ送信する送信手段として機能させることを特徴とする。
また、第15発明に係るコンピュータプログラムは、第14発明において、前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有することを特徴とする。
第1発明、第5発明、第8発明、及び第11発明では、ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置との間でプロセス間通信を行う。送信装置では、外部とプロセス間通信を行う第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセスが、受信装置では、外部とプロセス間通信を行う第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが、それぞれ生成されて実行される。第1のスレッドは、送信先のスレッドを識別する情報を含む通信データを第2のスレッドへ送信する。送信装置で実行される第1のプロセスに属する第1のスレッドが送信する通信データに、送信先である受信装置で実行される第2のプロセスに属するスレッドを識別する情報が含まれることにより、第1のスレッド及び第2のスレッドにて同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば第1のプロセスに属するスレッドの内容を更新した場合、対応する第2のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第1のスレッド及び第2のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
ここで、「プロセス」とは、プログラムが実行中であるインスタンス等を意味しており、複数のスレッドが属する実行主体を示す広い概念である。「スレッド」とはCPUの利用単位であり、プロセスよりもプログラムを実行する場合のコンテキスト情報が小さく処理の切り替えが速い実行単位である。一のアプリケーションは一以上のプロセスで構成され、一のプロセスには一以上のスレッドが属する。「スレッドを識別する情報」とは、スレッド番号、スレッドID等、スレッドを識別することができる情報であれば特に限定されない広い概念である。また、「送信先」とは、通信データを送信した相手側、すなわち受信側を意味している。
第2発明、第6発明、第9発明及び第12発明では、通信データが、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有している。第2のスレッドは、受信した通信データを、受信した通信データに含まれる送信先のスレッドを識別する情報にて指示されたスレッドへ転送する。通信データが上記データ構造を有することにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。また、通信データに送信先のスレッドを識別する情報が含まれていることから、第1のスレッド及び第2のスレッドにて同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば第1のプロセスに属するスレッドの内容を更新した場合、対応する第2のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第1のスレッド及び第2のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。なお「送信情報」とは、送信先のスレッドで処理される各種のデータを意味している。
第3発明、第7発明、第10発明及び第13発明では、第2のスレッドが、受信した通信データに含まれる送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断する。指示している場合には自スレッド内で処理を実行し、指示していない場合には、送信先のスレッドを識別する情報が指示するスレッドへ通信データを転送する。自スレッドに対する情報であるか否かを判断することができることにより、受信した通信データの転送の要・不要を判断することが可能となる。
第4発明では、プロセス間通信により送受信される通信データのデータ構造は、少なくとも通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含んでいる。これにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。したがって、例えば第1のプロセスに属するスレッドの内容を更新した場合、対応する第2のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いる第1のスレッド及び第2のスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
第14発明では、ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータ(送信装置)は、通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成される。一のスレッドは、送信先のスレッドを識別する情報を含む通信データを他のプロセスに属するスレッドへ送信する。通信データに送信先のスレッドを識別する情報が含まれていることから、送信装置側で同一プロセスに属するスレッドの管理情報を有する必要が無い。したがって、例えば送信装置側のプロセスに属するスレッドの内容を更新した場合、対応する受信装置側のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いるスレッドの内容については送信装置側も受信装置側も更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
第15発明では、通信データは、少なくとも該通信データの種類を識別する情報、送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有している。通信データが上記データ構造を有することにより、通信データを可変長とすることができ、通信データの種類や通信仕様の変更に応じて通信データのデータ構造を変更する必要が無い。したがって、例えば一のプロセスに属するスレッドの内容を更新した場合、対応する他のプロセスに属するスレッドの内容を更新する必要は残るが、プロセス間通信に直接用いるスレッドの内容については更新する必要が無く、更新のための作業工数を減少させることができ、更新作業による修正バグ発生確率を低減することが可能となる。
なお、後述する実施の形態では、送信手段はCPU基板101のステップS707、CPU基板601のステップS1407の処理が、それぞれ該当する。判断手段はCPU基板201のステップS1001、CPU基板601のステップS1601の処理が、それぞれ該当する。転送手段はCPU基板201のステップS905、ステップS906、CPU基板601のステップS1412、ステップS1413の処理が、それぞれ該当する。
上記の構成により、プログラム更新に対する作業工数を増大させること無く、修正バグの発生の可能性を低減することができるプロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラムが提供される。
以下、本発明の実施の形態に係るプロセス間通信システム(装置)について図面に基づいて具体的に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るプロセス間通信システムの構成を示すブロック図である。図1において、本実施の形態1に係るプロセス間通信システムは、ネットワーク3を介して通信データを送受信することが可能に接続されている送信装置1及び受信装置2で構成されている。ネットワーク3は特に限定されるものではなく、インターネット、WAN等による遠隔通信から、ケーブルを接続しただけのシリアル通信等まで含む広い概念として用いている。
送信装置1は、少なくとも、CPU(中央演算装置)11、記憶装置12、RAM13、入力装置14、出力装置15、補助記憶装置16、通信装置17及び上述したハードウェアを接続する内部バス18で構成されている。CPU11は、内部バス18を介して送信装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置12に記憶されているコンピュータプログラム80に従って、種々のソフトウェア的機能を実行する。RAM13は、SRAM、フラッシュメモリ等で構成され、コンピュータプログラム80の実行時にロードモジュールが展開され、コンピュータプログラム80の実行時に発生する一時的なデータ等を記憶する。
記憶装置12は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置12に記憶されているコンピュータプログラム80は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、補助記憶手段16によりダウンロードされ、実行時には記憶装置12からRAM13へ展開して実行される。もちろん、通信装置17を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
通信装置17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワーク3に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置12は、送信装置1に内蔵される構成に限定されるものではなく、通信装置17を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
入力装置14は、キーボード及びマウス等のデータ入力媒体であり、出力装置15は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
受信装置2も送信装置1と同様に、少なくとも、CPU(中央演算装置)21、記憶装置22、RAM23、入力装置24、出力装置25、通信装置26及び上述したハードウェアを接続する内部バス27で構成されている。CPU21は、内部バス27を介して受信装置2の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置22に記憶されているコンピュータプログラム81に従って、種々のソフトウェア的機能を実行する。RAM23は、SRAM、フラッシュメモリ等で構成され、コンピュータプログラム81の実行時にロードモジュールが展開され、コンピュータプログラム81の実行時に発生する一時的なデータ等を記憶する。
記憶装置22は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置22に記憶されているコンピュータプログラム81は、プログラム及びデータ等の情報として通信装置26を介して外部コンピュータ等からダウンロードされており、実行時には記憶装置22からRAM23へ展開して実行される。
通信装置26は内部バス27に接続されており、インターネット、LAN、WAN等の外部のネットワーク3に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。
入力装置24は、キーボード及びマウス等のデータ入力媒体の他、例えば受信装置2が対象物に対する検査装置、分析装置等である場合には、対象物からの情報取得手段全般を含む。出力装置25は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
以下、具体的な適用例として、送信装置1にパーソナルコンピュータ(以下、PC)を、受信装置2に水溶液中に浮遊する有形粒子の濃度、粒子径、粒子径分布等を計測して分析する分析装置を用いる場合について説明する。図2は、本発明の実施の形態1に係るプロセス間通信システムのハードウェア構成を示すブロック図である。
図2において、本実施の形態1に係るプロセス間通信システムは、PC10にて設定した分析装置20の設定情報を、プロセス間通信を介して分析装置20へ送信する。プロセス間通信としては、名前付きパイプ通信、ソケット通信等、特に限定されるものではない。本実施の形態1で、TCP/IPプロトコルに従ったソケット通信を用いる。
CPU基板101は、分析装置20における計測制御用の設定情報等をTCP/IPプロトコルで接続されているLANケーブル等を介して分析装置20へ送信する。設定情報等の送信にはプロセス間通信、ここではソケット通信を用いている。
分析装置20のCPU基板201は、計測装置204の動作制御を行うとともに、計測装置204にて計測されたアナログデータをアナログ基板202にて前処理し、波形信号処理基板203にてデジタル化するよう制御する。計測装置204は、CPU基板201の指示により計測結果をアナログ基板202へ入力する。分析装置20のアナログ基板202及び波形信号処理基板203にて用いる設定パラメータには、PC10からソケット通信により受信した設定情報を用いる。
図3は、本実施の形態1に係る分析装置20における計測装置204の概略構成を示す模式図である。微細粒子32が浮遊している水溶液30をビーカ31に満たし、水溶液30中に検出器33を挿入する。検出器33は、端部近傍に微細粒子32が通過することが可能な細孔331を設けてあり、検出器33の内外に設けてある内電極332−外電極333間には、直流電流源334を用いて直流定電流Iを流しておく。
ポンプ(図示せず)等を用いて検出器33内部に負圧をかけることにより、水溶液30が細孔331から検出器33内へ吸い込まれ、水溶液30中で浮遊している微細粒子32が細孔331を通過する。負圧制御のためのポンプ制御、バルブ制御等もCPU基板201が行う。微細粒子32が細孔331を通過する場合、細孔331間の電気抵抗が微細粒子32の大きさに伴って変動するので、内電極332−外電極333間の電気抵抗も変動する。内電極332−外電極333間には、直流定電流Iが流れていることから、オームの法則により、内電極332−外電極333間の電圧Vを計測することで、細孔331を通過した微細粒子32の大きさ、数等を検出することができる。
計測された電圧Vは、アナログ信号としてアナログ基板202へ入力される。アナログ基板202では、微小な電圧変化である入力された電圧Vをアンプ等により増幅させる。アナログ信号の前処理を実行するための設定情報である、増幅の程度を調整するためのゲイン値、電圧信号全体をシフトさせるオフセット値等は、PC10にて入力され、プロセス間通信により分析装置20へ送信される。設定情報を受信した分析装置20のCPU基板201は、アナログ基板202へ設定情報を送信して、デジタル信号化する前のアナログ信号に対する前処理を実行する。
図4は、アナログ基板202が取得する設定情報を説明するための模式図である。接地電圧GNDを原点として入力されたアナログ信号に対して、ゲイン値42とはアナログ信号値を増幅する倍率の設定値を意味している。また、オフセット値41とはアナログ信号全体をシフトさせ、信号の揺れ等を除去するための設定値を意味している。
加工されたアナログ信号は波形信号処理基板203へ送られ、デジタル信号化される。波形信号処理基板203では、一定のレベル値(ノイズカットレベル値)より大きい値を有する信号のみをデジタル信号化の対象とし、信号の幅が所定のパルス幅より大きい信号である場合にはノイズであると判断してデジタル信号化の対照から外す。したがって、デジタル信号化のための設定情報として、信号の大きさでデジタル信号化するか否かを判定するノイズカットレベル値、デジタル信号化するパルス幅の最大値を定める最大パルス幅等がPC10にて入力され、プロセス間通信により分析装置20へ送信される。設定情報を受信した分析装置20のCPU基板201は、波形信号処理基板203へ設定情報を送信して、デジタル信号化する。
図5は、波形信号処理基板203が取得する設定情報を説明するための模式図である。アナログ基板202で波形を調整されたアナログ信号50に対して、ノイズカットレベル値51とは、アナログ信号50の最大値がこの値を超えていた場合には微細粒子32を検出したものと判定してデジタル信号化する基準レベルを意味している。また、最大パルス幅52とはアナログ信号50のパルス幅がこの値を超えた場合にはノイズであると判定してデジタル信号化しない判定基準を意味している。
なお、本実施の形態1では、最大パルス幅52として最大パルス数を用いている。これは、アナログ信号50をデジタル化した場合の微小幅パルスの数の最大数であり、この値を超えた場合には微細粒子32を吸い込む細孔331の直径を超えた微細粒子32を検出したことになる。したがって、何らかのノイズであると判断することができる。
波形信号処理基板203で実行される処理はこれらに限定されるものではなく、例えばデジタル信号化する前に、高周波成分を除去するローパスフィルタ等のフィルタリング処理を実行しても良い。この場合、実行するバンドパスフィルタの選択情報は、設定情報の1つとしてPC10にて入力され、プロセス間通信により分析装置20へ送信される。受信した分析装置20のCPU基板201は、波形信号処理基板203へ送信して、選択情報に従って実行させるバンドパスフィルタを選択する。
波形信号処理基板203は、デジタル信号化された波形情報を微細粒子32に関する情報としてPC10へ送信する。微細粒子32に関する情報の送信は、例えばUSB接続されたUSBケーブルを介して行う。もちろん、USBケーブルを介して送信することに限定されるものではない。
微細粒子32に関する情報を、通信基板102を介して受信したPC10は、CPU基板101にて微細粒子32に関する情報を分析する。そして、CPU基板101は、水溶液30中に含まれる微細粒子32の粒子数、粒子径、粒子径分布の算出等を行って表示装置103に結果を表示出力する。
上述した構成のプロセス間通信システムの処理の流れについて説明する。図6は、本発明の実施の形態1に係るプロセス間通信システムのスレッド関係を示す模式図である。PC10は、アナログ基板202用の設定情報を取得するスレッドb、波形信号処理基板203用の設定情報を取得するスレッドc、及びこれらの設定情報をプロセス間通信により分析装置20へ送信するスレッドaからなるプロセスを生成して実行する。一方、分析装置20は、設定情報をプロセス間通信によりPC10から受信するスレッドA、受信した設定情報をアナログ基板202に設定するスレッドB、及び受信した設定情報を波形信号処理基板203に設定するスレッドCからなるプロセスを生成して実行する。
図7は、本発明の実施の形態1に係るプロセス間通信システムのPC10(送信装置)のCPU基板101の処理手順を示すフローチャートである。PC10のCPU基板101は、分析装置20(受信装置)のアナログ基板202での設定情報として、ゲイン値及びオフセット値を取得する(ステップS701:スレッドb)。具体的には、CPU基板101内の記憶装置12又はRAM13内に記憶してある装置情報を照会して読み出す。もちろん、入力装置14から直接入力を受け付けても良い。
CPU基板101は、分析装置20(受信装置)のCPU基板201上のスレッド、すなわち送信先のスレッドを識別する情報を取得し(ステップS702:スレッドb)、送信先のスレッドを識別する情報を含む通信データを生成する(ステップS703:スレッドb)。送信先のスレッドを識別する情報は、取得したアナログ基板202での設定情報と同様、CPU基板101内の記憶装置12又はRAM13内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
次に、CPU基板101は、分析装置20の波形信号処理基板203での設定情報として、ノイズカットレベル値及び最大パルス数を取得する(ステップS704:スレッドc)。具体的には、CPU基板101内の記憶装置12又はRAM13内に記憶してある装置情報を照会して読み出す。もちろん、入力装置14から直接入力を受け付けても良い。
CPU基板101は、分析装置20(受信装置)のCPU基板201上のスレッド、すなわち送信先のスレッドを識別する情報を取得し(ステップS705:スレッドc)、送信先のスレッドを識別する情報を含む通信データを生成する(ステップS706:スレッドc)。送信先のスレッドを識別する情報は、取得した波形信号処理基板203での設定情報と同様、CPU基板101内の記憶装置12又はRAM13内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
CPU基板101は、生成した通信データ(送信先のスレッドを識別する情報を含む)を、指定プロセスへプロセス間通信により送信する(ステップS707:スレッドa)。プロセス間通信により設定情報を分析装置20へ送信するためにスレッドb、cで生成された通信データは、本発明に固有のデータ構造を有している。図8は、本発明の実施の形態1に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。
図8(1)に示すように、本実施の形態1に係るデータ構造のヘッダ部分には、送信される通信データによる処理の種類を特定するコマンド型を指定する。次の項目には、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報を指定する。通信データによる処理が複雑な処理で無い場合、送信元のスレッドを識別する情報を省略することができることは言うまでもない。
また、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報は、スレッド番号、スレッド識別子等、特に限定されるものではない。ただし、受信するスレッドでの処理負荷を軽減するためにはスレッド番号であることが好ましい。スレッド番号で指定されている場合、指定されている番号が示すスレッドへ通信データを転送すれば良く、通信データの送信先であるスレッドの特定処理を別途実行する必要がない。もちろん、スレッド番号以外の情報である場合には、該情報とスレッド番号との変換テーブル等を準備しておき、送信先のスレッドを識別する情報をスレッド番号に変換すれば容易に転送することができることは言うまでもない。
次の項目には、送信先のスレッドにて実行すべき処理及び該処理に必要な情報を指定する。図8(2)及び(3)は、それぞれスレッドb、スレッドcで生成された通信データのデータ構造の一例である。図8(2)及び(3)の例では、送信情報としてアナログ基板202及び波形信号処理基板203に設定する設定情報を送信するデータ構造となっている。すなわち設定情報の設定コマンドとして「SetDt」を用いており、必要となる設定情報は、データの区切り情報(以下、セパレータという)「,」にて自由に追加することが可能となっている。したがって、通信データは可変長データである。なお、セパレータは「,」に限定されるものではなく、送信情報と区別できさえすれば何でも良い。
通信データを可変長データとすることにより、送受信する通信データを準備するスレッドにおける処理内容を変更する場合、処理内容を変更するスレッドに相当するプログラムを更新する必要はあるものの、通信データをプロセス間で受け渡しするスレッドに相当するプログラムについては更新する必要が無い。例えばスレッドb及びスレッドBに相当するプログラムの処理を変更する場合、スレッドb及びスレッドBに相当するプログラムのみ更新し、スレッドa及びスレッドAに相当するプログラムは更新する必要が無い。したがって、処理内容の変更に伴う更新プログラムの数が最小限となり、更新作業に起因するプログラムバグの発生可能性を抑制することが可能となる。
図9は、本発明の実施の形態1に係るプロセス間通信システムの分析装置20(受信装置)のCPU基板201の処理手順を示すフローチャートである。分析装置20のCPU基板201は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信する(ステップS901:スレッドA)。通信データとしては、スレッドb、スレッドcで生成された通信データを、それぞれ受信することになる。
CPU基板201は、受信した通信データを例えば図8に示すデータ構造に従って解析する(ステップS902:スレッドA)。具体的には、まず「|」までのデータを読み出し、処理の種類を特定するコマンド型を指定する情報と認識する。次に、「|」から「:」までのデータを読み出し、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報と認識する。「|」から「:」までの間に「,」が検出された場合には「,」までを送信元のスレッドを識別する情報と、「,」より後を送信先のスレッドを識別する情報と、それぞれ認識する。「,」が検出されない場合には、送信先のスレッドを識別する情報のみであると認識する。
次に「:」以降のデータを読み出し、実行すべき処理(コマンド、プロパティ、イベント等)があらかじめCPU基板201に記憶されているか否かを判断し、記憶されていると判断した場合、セパレータ「,」を検索し、セパレータ「,」が検出される都度、検出したセパレータ「,」までのデータを、それぞれの処理に関する情報と認識する。
例えば図8(2)の例では、「SetDt」をコマンドとして認識し、「=」からセパレータ「,」までの間のデータをゲイン値、次のセパレータ「,」までデータをオフセット値と認識する。
同様に、図8(3)の例では、「SetDt」をコマンドとして認識し、「=」からセパレータ「,」までの間のデータをノイズカットレベル値、次のセパレータ「,」までのデータを最大パルス数と認識する。
さらにデータを追加する場合、例えばスレッドcが波形信号処理基板203にて選択するバンドパスフィルタ種を指定する場合には、さらにセパレータ「,」を追加してバンドパスフィルタ種を示すデータを追加すればよい。この場合、CPU基板201は、次のセパレータ「,」までのデータをバンドパスフィルタ種と認識すれば足り、通信データのデータ構造を変更する必要が無い。
CPU基板201は、通信データに含まれている送信先のスレッドを識別する情報に基づいて送信先のスレッドを特定し(ステップS903:スレッドA)、設定情報であるゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を、それぞれ特定されたスレッドに対して転送する(ステップS904:スレッドA)。CPU基板201は、ゲイン値、オフセット値を設定情報としてアナログ基板202へ送信し(ステップS905:スレッドB)、ノイズカットレベル値、最大パルス数を設定情報として波形信号処理基板203へ送信し(ステップS906:スレッドC)、アナログ基板202又は波形信号処理基板203は受信した設定情報を設定パラメータとして設定する。
以上のように本実施の形態1によれば、通信データに送信先のスレッドを識別する情報を含むことにより、プロセス間通信を実行するスレッドを生成するプログラムを汎用化することができる。したがって、通信データとして送受信するデータの内容に変更が生じ、プログラム更新が発生した場合であっても、プロセス間通信用スレッドに対応するプログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
また、データ構造を図8に示すデータ構造とすることにより、通信データとして送受信するデータの内容に追加項目が生じた場合、削減項目が生じた場合等であっても、プロセス間通信用スレッドに対応するプログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
なお、上述した分析装置20等ではCPU基板201の処理能力は、一般にPC10のCPU基板101の処理能力よりも低い。したがって、送信先のスレッドを識別する情報をスレッド番号とすることにより、CPU基板201の演算処理負荷を軽減することもでき、分析結果を得るまでのスループットを短縮することができるという副次的効果も期待できる。
また、プロセス間通信時の通信仕様を設定する設定情報をCPU基板201が受信した場合、受信した通信データは転送する必要が無い。そこで、CPU基板201は、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド(上述の例ではスレッドA)を示しているか否かを判断しても良い。図10は、送信先のスレッドを識別する情報の判断処理を含む場合における分析装置20(受信装置)のCPU基板201の処理手順を示すフローチャートである。
分析装置20のCPU基板201は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信し(ステップS901:スレッドA)、上述の実施例と同様に解析する(ステップS902:スレッドA)。そして、送信先のスレッドを識別する情報が、通信データを受信するスレッドであるスレッドAを示しているか否かを判断する(ステップS1001)。
CPU基板201が、通信データの受信スレッドであるスレッドAを示していると判断した場合(ステップS1001:YES)、CPU基板201は、スレッドA内で処理が完結すると判断し、通信データを転送することなく処理を終了する。CPU基板201が、通信データの受信スレッドであるスレッドAを示していないと判断した場合(ステップS1001:NO)、処理をステップS903へ進め、上述の処理を実行する。
このように、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド(上述の例ではスレッドA)を示しているか否かを判断する処理を追加することにより、自スレッドに対する通信データであるか否かを判断することができ、受信した通信データの転送の要・不要を判断することが可能となる。
(実施の形態2)
図11は、本発明の実施の形態2に係るプロセス間通信制御装置6の構成を示すブロック図である。図11において、本実施の形態2に係るプロセス間通信制御装置6は、少なくとも、CPU(中央演算装置)61、記憶装置62、RAM63、入力装置64、出力装置65、補助記憶装置66、通信装置67及び上述したハードウェアを接続する内部バス68で構成されている。CPU61は、内部バス68を介してプロセス間通信制御装置6の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置62に記憶されているコンピュータプログラム80に従って、種々のソフトウェア的機能を実行する。RAM63は、SRAM、フラッシュメモリ等で構成され、コンピュータプログラム80の実行時にロードモジュールが展開され、コンピュータプログラム80の実行時に発生する一時的なデータ等を記憶する。
記憶装置62は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置62に記憶されているコンピュータプログラム80は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、補助記憶装置66によりダウンロードされ、実行時には記憶装置62からRAM63へ展開して実行される。もちろん、通信装置67を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
通信装置67は内部バス68に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置62は、プロセス間通信制御装置6に内蔵される構成に限定されるものではなく、通信装置67を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
入力装置64は、キーボード及びマウス等のデータ入力媒体の他、例えばプロセス間通信制御装置6が何らかの処理を実行する検査装置、分析装置等と一体である場合には、検査、分析等の対象物からの情報取得手段全般を含む。出力装置65は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
以下、具体的な適用例として、プロセス間通信制御装置6を、水溶液中に浮遊する有形粒子の濃度、粒子径、粒子径分布等を計測して分析する分析装置と一体化した場合について説明する。図12は、本発明の実施の形態2に係るプロセス間通信制御装置6のハードウェア構成を示すブロック図である。
図12において、本実施の形態2に係るプロセス間通信制御装置6は、CPU基板601内でプロセス間通信することにより、必要な設定情報を、直接的に処理を実行するスレッドへ送信する。プロセス間通信としては、名前付きパイプ通信、ソケット通信等、特に限定されるものではない。本実施の形態2では実施の形態1と同様、TCP/IPプロトコルに従ったソケット通信を用いる。
計測装置604は、CPU基板601の指示により計測結果をアナログ基板602へ入力する。アナログ基板602及び波形信号処理基板603にて用いる設定パラメータには、ソケット通信により受信した設定情報を用いる。
なお、分析装置部分の構成及びアナログ基板、波形信号処理基板での設定情報については実施の形態1と同様であることから、以後同一の符号を付することで詳細な説明は省略する。
波形信号処理基板603は、デジタル信号化された波形情報を微細粒子32に関する情報としてCPU基板601へ返す。CPU基板601は、受信した微細粒子32に関する情報を分析し、水溶液30中に含まれる微細粒子32の粒子数、粒子径、粒子径分布の算出等を行って表示装置605に結果を表示出力する。
上述した構成のプロセス間通信制御装置6のCPU基板601の処理の流れについて説明する。図13は、本発明の実施の形態2に係るプロセス間通信制御装置6のスレッド関係を示す模式図である。プロセス間通信制御装置6は、アナログ基板602用の設定情報を取得するスレッドb、波形信号処理基板603用の設定情報を取得するスレッドc、及びこれらの設定情報をプロセス間通信により他のプロセスへ送信するスレッドaからなるプロセスdと、設定情報をプロセス間通信により受信するスレッドA、受信した設定情報をアナログ基板602に設定するスレッドB、及び受信した設定情報を波形信号処理基板603に設定するスレッドCからなるプロセスDとを、それぞれ生成して実行する。
図14は、本発明の実施の形態2に係るプロセス間通信制御装置6のCPU基板601の処理手順を示すフローチャートである。プロセス間通信制御装置6のCPU基板601は、アナログ基板602での設定情報として、ゲイン値及びオフセット値を取得する(ステップS1401:スレッドb)。具体的には、CPU基板601内の記憶装置62又はRAM63内に記憶してある装置情報を照会して読み出す。もちろん、入力装置64から直接入力を受け付けても良い。
CPU基板601は、送信先のスレッドを識別する情報を取得し(ステップS1402:スレッドb)、送信先のスレッドを識別する情報を含む通信データを生成する(ステップS1403:スレッドb)。送信先のスレッドを識別する情報は、取得したアナログ基板602での設定情報と同様、CPU基板601内の記憶装置62又はRAM63内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
次に、CPU基板601は、波形信号処理基板603での設定情報として、ノイズカットレベル値及び最大パルス数を取得する(ステップS1404:スレッドc)。具体的には、CPU基板601内の記憶装置62又はRAM63内に記憶してある装置情報を照会して読み出す。もちろん、入力装置64から直接入力を受け付けても良い。
CPU基板601は、送信先のスレッドを識別する情報を取得し(ステップS1405:スレッドc)、送信先のスレッドを識別する情報を含む通信データを生成する(ステップS1406:スレッドc)。送信先のスレッドを識別する情報は、取得した波形信号処理基板603での設定情報と同様、CPU基板601内の記憶装置62又はRAM63内に記憶してある。もちろんプログラムコードとして固定的に設定しておいても良い。
CPU基板601は、生成された通信データ(送信先のスレッドを識別する情報を含む)を、指定プロセス(プロセスD)へプロセス間通信により送信する(ステップS1407:スレッドa)。プロセス間通信により設定情報をプロセスDへ送信するためにスレッドb、cで生成された通信データは、本発明に固有のデータ構造を有している。図15は、本発明の実施の形態2に係るプロセス間通信制御装置6で送信する通信データのデータ構造を示す模式図である。
図15(1)に示すように、本実施の形態2に係るデータ構造のヘッダ部分には、送信される通信データによる処理の種類を特定するコマンド型を指定する。次の項目には、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報を指定する。通信データによる処理が複雑な処理で無い場合、送信元のスレッドを識別する情報を省略することができることは言うまでもない。
また、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報は、スレッド番号、スレッド識別子等、特に限定されるものではない。ただし、受信するスレッドでの処理負荷を軽減するためにはスレッド番号であることが好ましい。スレッド番号で指定されている場合、指定されている番号が示すスレッドへ通信データを転送すれば良く、通信データの送信先であるスレッドの特定処理を別途実行する必要がない。もちろん、スレッド番号以外の情報である場合には、該情報とスレッド番号との変換テーブル等を準備しておき、送信先のスレッドを識別する情報をスレッド番号に変換すれば容易に転送することができることは言うまでもない。
次の項目には、送信先のスレッドにて実行すべき処理及び該処理に必要な情報を指定する。図15(2)及び(3)は、それぞれスレッドb、スレッドcで生成された通信データのデータ構造の一例である。図15(2)及び(3)の例では、送信情報としてアナログ基板602及び波形信号処理基板603に設定する設定情報を送信するデータ構造となっている。すなわち設定情報の設定コマンドとして「SetDt」を用いており、必要となる設定情報は、データの区切り情報(以下、セパレータという)「,」にて自由に追加することが可能となっている。したがって、通信データは可変長データである。なお、セパレータは「,」に限定されるものではなく、送信情報と区別できさえすれば何でも良い。
通信データを可変長データとすることにより、送受信する通信データを準備するスレッドにおける処理内容を変更する場合、処理内容を変更するスレッドに相当するプログラムを更新する必要はあるものの、通信データをプロセス間で送受信するプロセス間通信用スレッドに相当するプログラムについては更新する必要が無い。例えばスレッドb及びスレッドBに相当するプログラムの処理内容を変更する場合、スレッドb及びスレッドBに相当するプログラムのみ更新し、スレッドa及びスレッドAに相当するプログラムは更新する必要がない。したがって、処理内容の変更に伴う更新プログラムの数が最小限となり、更新作業に起因するプログラムバグの発生確率を低減することが可能となる。
図14に戻って、CPU基板601は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、別プロセス(プロセスD)にてプロセス間通信により受信する(ステップS1408:スレッドA)。通信データとしては、スレッドb、スレッドcで生成された通信データを、それぞれ受信することになる。
CPU基板601は、受信した通信データを例えば図15に示すデータ構造に従って解析する(ステップS1409:スレッドA)。具体的には、まず「|」までのデータを読み出し、処理の種類を特定するコマンド型を指定する情報と認識する。次に、「|」から「:」までのデータを読み出し、送信元のスレッドを識別する情報及び送信先のスレッドを識別する情報と認識する。「|」から「:」までの間に「,」が検出された場合には「,」までを送信元のスレッドを識別する情報と、「,」より後を送信先のスレッドを識別する情報と、それぞれ認識する。「,」が検出されない場合には、送信先のスレッドを識別する情報のみであると認識する。
次に「:」以降のデータを読み出し、実行すべき処理(コマンド、プロパティ、イベント等)があらかじめCPU基板601に記憶されているか否かを判断し、記憶されていると判断した場合、セパレータ「,」を検索し、セパレータ「,」が検出される都度、検出したセパレータ「,」までのデータを、それぞれの処理に関する情報と認識する。
例えば図15(2)の例では、「SetDt」をコマンドとして認識し、「=」からセパレータ「,」までの間のデータをゲイン値、次のセパレータ「,」までデータをオフセット値と認識する。
同様に、図15(3)の例では、「SetDt」をコマンドとして認識し、「=」からセパレータ「,」までの間のデータをノイズカットレベル値、次のセパレータ「,」までのデータを最大パルス数と認識する。
さらにデータを追加する場合、例えばスレッドcが波形信号処理基板603にて選択するバンドパスフィルタ種を指定する場合には、さらにセパレータ「,」を追加してバンドパスフィルタ種を示すデータを追加すればよい。この場合、CPU基板601は、次のセパレータ「,」までのデータをバンドパスフィルタ種と認識すれば足り、通信データのデータ構造を変更する必要がない。
CPU基板601は、通信データに含まれている送信先のスレッドを識別する情報に基づいて送信先のスレッドを特定し(ステップS1410:スレッドA)、設定情報であるゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を、それぞれ特定されたスレッドに対して転送する(ステップS1411:スレッドA)。CPU基板601は、ゲイン値、オフセット値を設定情報としてアナログ基板602へ送信し(ステップS1412:スレッドB)、ノイズカットレベル値、最大パルス数を設定情報として波形信号処理基板603へ送信し(ステップS1413:スレッドC)、アナログ基板602又は波形信号処理基板603は受信した設定情報を設定パラメータとして設定する。
以上のように本実施の形態2によれば、通信データに送信先のスレッドを識別する情報を含むことにより、プロセス間通信を実行するスレッドを生成するプログラムを汎用化することができる。したがって、通信データとして送受信するデータの内容に変更が生じ、プログラム更新が発生した場合であっても、プロセス間通信用プログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
また、データ構造を図15に示すデータ構造とすることにより、通信データとして送受信するデータの内容に追加項目が生じた場合、削減項目が生じた場合等であっても、プロセス間通信用プログラム自体は更新する必要がなく、全体としてプログラム更新工数を低減することができるとともに、プログラム更新による修正バグの発生を抑制することが可能になる。
また、プロセス間通信時の通信仕様を設定する設定情報をCPU基板601が受信した場合、受信した通信データは転送する必要が無い。そこで、CPU基板601は、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド(上述の例ではスレッドA)を示しているか否かを判断しても良い。図16は、送信先のスレッドを識別する情報の判断処理を含む場合におけるプロセス間通信制御装置6のCPU基板601の処理手順を示すフローチャートである。
CPU基板601は、設定情報としてゲイン値、オフセット値、ノイズカットレベル値及び最大パルス数を含む通信データを、プロセス間通信により受信し(ステップS1408:スレッドA)、上述の実施例と同様に解析する(ステップS1409:スレッドA)。そして、CPU基板601は、送信先のスレッドを識別する情報が、通信データの受信スレッドであるスレッドAを示しているか否かを判断する(ステップS1601)。
CPU基板601が、通信データの受信スレッドであるスレッドAを示していると判断した場合(ステップS1601:YES)、CPU基板601は、スレッドA内で処理が完結すると判断し、通信データを転送することなく処理を終了する。CPU基板601が、通信データの受信スレッドであるスレッドAを示していないと判断した場合(ステップS1601:NO)、処理をステップS1410へ進め、上述の処理を実行する。
このように、受信した通信データの送信先のスレッドを識別する情報が、直接受信するスレッド(上述の例ではスレッドA)を示しているか否かを判断する処理を追加することにより、自スレッドに対する通信データであるか否かを判断することができ、受信した通信データの転送の要・不要を判断することが可能となる。
なお、上述の実施の形態1及び2は実施例を示したものにすぎず、発明の趣旨を逸脱しない範囲内で多種の変形、置換等が可能であり、検査装置、分析装置だけでなく、プロセス間通信を用いて動作を制御することが可能な各種電子機器に容易に適用することができることは言うまでもない。
本発明の実施の形態1に係るプロセス間通信システムの構成を示すブロック図である。 本発明の実施の形態1に係るプロセス間通信システムのハードウェア構成を示すブロック図である。 本実施の形態1に係る分析装置における計測装置の概略構成を示す模式図である。 アナログ基板が取得する設定情報を説明するための模式図である。 波形信号処理基板が取得する設定情報を説明するための模式図である。 本発明の実施の形態1に係るプロセス間通信システムのスレッド関係を示す模式図である。 本発明の実施の形態1に係るプロセス間通信システムのPC(送信装置)のCPU基板の処理手順を示すフローチャートである。 本発明の実施の形態1に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。 本発明の実施の形態1に係るプロセス間通信システムの分析装置(受信装置)のCPU基板の処理手順を示すフローチャートである。 送信先のスレッドを識別する情報の判断処理を含む場合における分析装置(受信装置)のCPU基板の処理手順を示すフローチャートである。 本発明の実施の形態2に係るプロセス間通信制御装置の構成を示すブロック図である。 本発明の実施の形態2に係るプロセス間通信制御装置のハードウェア構成を示すブロック図である。 本発明の実施の形態2に係るプロセス間通信制御装置のスレッド関係を示す模式図である。 本発明の実施の形態2に係るプロセス間通信制御装置のCPU基板の処理手順を示すフローチャートである。 本発明の実施の形態2に係るプロセス間通信システムで送信する通信データのデータ構造を示す模式図である。 送信先のスレッドを識別する情報の判断処理を含む場合におけるプロセス間通信制御装置のCPU基板の処理手順を示すフローチャートである。
符号の説明
1 送信装置
2 受信装置
3 ネットワーク
6 プロセス間通信制御装置
10 PC
11、21、61 CPU
12、22、62 記憶装置
13、23、63 RAM
14、24、64 入力装置
15、25、65 出力装置
16、66 補助記憶装置
17、26、67 通信装置
18、27、68 内部バス
20 分析装置
80、81 コンピュータプログラム
90 可搬型記録媒体
101、201、601 CPU基板
102 通信基板
103、605 表示装置
202、602 アナログ基板
203、603 波形信号処理基板
204、604 計測装置

Claims (15)

  1. ネットワークを介して通信データを送受信することが可能に接続された送信装置と受信装置とを備え、該送信装置と該受信装置との間でプロセス間通信を行うプロセス間通信システムにおいて、
    前記送信装置には、
    外部とプロセス間通信を行う第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセスが生成されており、
    前記受信装置には、
    外部とプロセス間通信を行う第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成されており、
    前記送信装置は、
    前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段を備えることを特徴とするプロセス間通信システム。
  2. 前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
    前記受信装置は、
    前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする請求項1記載のプロセス間通信システム。
  3. 前記受信装置は、
    前記第2のスレッドが受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断する判断手段を備え、
    該判断手段が該第2のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする請求項2記載のプロセス間通信システム。
  4. プロセス間通信により送受信される通信データのデータ構造において、
    少なくとも前記通信データの種類を識別する情報、
    送信先のスレッドを識別する情報、及び
    データの区切り情報にて区切られた一又は複数の送信情報
    を含むことを特徴とするデータ構造。
  5. プロセス間通信により通信データを送受信することが可能なプロセス間通信制御装置において、
    他のプロセスへプロセス間通信により前記通信データを送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセス、及び
    他のプロセスからプロセス間通信により前記通信データを受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成され、
    前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段を備えることを特徴とするプロセス間通信制御装置。
  6. 前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
    前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段を備えることを特徴とする請求項5記載のプロセス間通信制御装置。
  7. 前記第2のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断する判断手段を備え、
    該判断手段が該第2のスレッドを指示していないと判断した場合、前記転送手段は、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてあることを特徴とする請求項6記載のプロセス間通信制御装置。
  8. プロセス間通信により通信データを送受信することが可能なプロセス間通信制御方法において、
    他のプロセスへプロセス間通信によりデータ送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセスが、
    他のプロセスからプロセス間通信によりデータ受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスへ前記通信データを送信し、
    前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信することを特徴とするプロセス間通信制御方法。
  9. 前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
    前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送することを特徴とする請求項8記載のプロセス間通信制御方法。
  10. 前記第2のスレッドは、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否かを判断し、
    該第2のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送することを特徴とする請求項9記載のプロセス間通信制御方法。
  11. プロセス間通信により通信データを送受信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、
    前記コンピュータにて、
    他のプロセスへプロセス間通信により前記通信データを送信する第1のスレッド及び該第1のスレッドへ通信データを転送する複数の他のスレッドが属する第1のプロセス、及び
    他のプロセスからプロセス間通信により前記通信データを受信する第2のスレッド及び該第2のスレッドから通信データが転送される複数の他のスレッドが属する第2のプロセスが生成され、
    前記コンピュータを、
    前記第1のスレッドが、送信先のスレッドを識別する情報を含む通信データを前記第2のスレッドへ送信する送信手段
    として機能させることを特徴とするコンピュータプログラム。
  12. 前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有し、
    前記コンピュータを、
    前記第2のスレッドが受信した前記通信データを、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報にて指示されたスレッドへ転送する転送手段
    として機能させることを特徴とする請求項11記載のコンピュータプログラム。
  13. 前記コンピュータを、
    前記第2のスレッドが、受信した前記通信データに含まれる前記送信先のスレッドを識別する情報が、該第2のスレッドを指示しているか否か判断する判断手段、及び
    該判断手段で該第2のスレッドを指示していないと判断した場合、前記送信先のスレッドを識別する情報が指示するスレッドへ前記通信データを転送するようにしてある転送手段
    として機能させることを特徴とする請求項12記載のコンピュータプログラム。
  14. ネットワークを介してプロセス間通信により通信データを送信することが可能なコンピュータで実行することが可能なコンピュータプログラムにおいて、
    前記コンピュータにて、
    他のプロセスへプロセス間通信により前記通信データを送信する一のスレッド及び該一のスレッドへ通信データを転送する複数の他のスレッドが属する一のプロセスが生成され、
    前記コンピュータを、
    前記一のスレッドが、送信先のスレッドを識別する情報を含む前記通信データを前記他のプロセスに属するスレッドへ送信する送信手段
    として機能させることを特徴とするコンピュータプログラム。
  15. 前記通信データは、少なくとも該通信データの種類を識別する情報、前記送信先のスレッドを識別する情報、及びデータの区切り情報にて区切られた一又は複数の送信情報を含むデータ構造を有することを特徴とする請求項14記載のコンピュータプログラム。
JP2007265261A 2007-10-11 2007-10-11 プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム Pending JP2009093526A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007265261A JP2009093526A (ja) 2007-10-11 2007-10-11 プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム
US12/249,686 US20090106774A1 (en) 2007-10-11 2008-10-10 Interprocess communication system, interprocess communication control device, interprocess communication control method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007265261A JP2009093526A (ja) 2007-10-11 2007-10-11 プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2009093526A true JP2009093526A (ja) 2009-04-30

Family

ID=40564821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007265261A Pending JP2009093526A (ja) 2007-10-11 2007-10-11 プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US20090106774A1 (ja)
JP (1) JP2009093526A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180046791A (ko) * 2016-10-28 2018-05-09 삼성전자주식회사 전자 장치 및 전자 장치의 데이터 전송 방법
US11025753B2 (en) * 2018-07-02 2021-06-01 Samsung Electronics Co., Ltd. Method and device for inter-process communication in network
CN112631802B (zh) * 2019-04-29 2024-04-12 杭州涂鸦信息技术有限公司 一种线程间通信方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154862A (ja) * 1999-11-26 2001-06-08 Toshiba Corp 計算機システム及びネットワークシステム並びに記録媒体
JP2005292981A (ja) * 2004-03-31 2005-10-20 Advanced Telecommunication Research Institute International メッセージ管理装置、データ処理システム及びそのためのコンピュータプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758184A (en) * 1995-04-24 1998-05-26 Microsoft Corporation System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
US6226689B1 (en) * 1997-01-29 2001-05-01 Microsoft Corporation Method and mechanism for interprocess communication using client and server listening threads
US6728960B1 (en) * 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
US7054925B2 (en) * 2001-11-21 2006-05-30 International Business Machines Corporation Efficient method for determining record based I/O on top of streaming protocols
US7206807B2 (en) * 2003-01-21 2007-04-17 Bea Systems, Inc. Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client
EP1679630A3 (en) * 2004-12-09 2006-08-30 Sysmex Corporation Method for setting operating condition of measuring apparatus, method for managing measurement result of measuring apparatus, measuring system, data processing apparatus for measuring apparatus, and storage medium
US8429655B2 (en) * 2005-04-29 2013-04-23 Microsoft Corporation System and method for asynchronous processing in page lifecycle

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154862A (ja) * 1999-11-26 2001-06-08 Toshiba Corp 計算機システム及びネットワークシステム並びに記録媒体
JP2005292981A (ja) * 2004-03-31 2005-10-20 Advanced Telecommunication Research Institute International メッセージ管理装置、データ処理システム及びそのためのコンピュータプログラム

Also Published As

Publication number Publication date
US20090106774A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
US10091110B2 (en) Edge-based load shedding system for fast data analysis and operating method thereof
JP2009093526A (ja) プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム
US8296723B2 (en) Configurable unified modeling language building blocks
CN115391422B (zh) 车辆感知信息生成方法、装置、设备、介质和程序产品
EP1331540A3 (en) Apparatus, method, and system for virus detection
CN109791485B (zh) 基于网状网络的空中调制解调器固件升级
WO2022014027A1 (ja) 通信許可リスト生成装置、通信許可リスト生成方法、及び、プログラム
CN105721347A (zh) 精确控制网络带宽的方法和***
CN112783827A (zh) 多传感器数据存储方法和装置
JP2018055457A (ja) データ収集システム、収集装置、情報収集プログラム、サーバ装置およびサーバプログラム
US6683553B1 (en) Mechanism for transmitting from a sensor assembly to an acquisition system a message that includes self-describing information
US11977642B2 (en) Information processing device, information processing method and computer readable medium
WO2017051518A1 (ja) 通信情報算出装置、通信情報算出方法、記録媒体、及び、通信管理システム
CN113838477A (zh) 音频数据包的丢包恢复方法、装置、电子设备及存储介质
CN105486829A (zh) 一种控制方法及电子设备
US10868891B2 (en) Vehicle information transmission system
CN112230891A (zh) 接口文档的集成方法、装置、服务器及计算机存储介质
CN110620682A (zh) 资源信息的获取方法及装置、存储介质、终端
CN115348320B (zh) 一种通信数据的转换方法、装置、及电子设备
CN110879557A (zh) 一种智能电表安全监控***
JP6351545B2 (ja) パラメータ管理装置およびパラメータ管理プログラム
KR101466017B1 (ko) 프로토콜 분석을 위한 패킷 분석 장치 및 방법
JP2019160287A (ja) サーバ装置、クライアント端末、情報処理方法およびプログラム
CN116881915B (zh) 文件检测方法、电子设备和存储介质
CN107238872A (zh) 地震传感器测试***及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508