JP2001154862A - 計算機システム及びネットワークシステム並びに記録媒体 - Google Patents

計算機システム及びネットワークシステム並びに記録媒体

Info

Publication number
JP2001154862A
JP2001154862A JP33660499A JP33660499A JP2001154862A JP 2001154862 A JP2001154862 A JP 2001154862A JP 33660499 A JP33660499 A JP 33660499A JP 33660499 A JP33660499 A JP 33660499A JP 2001154862 A JP2001154862 A JP 2001154862A
Authority
JP
Japan
Prior art keywords
message
communication
thread
objects
synchronous
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.)
Granted
Application number
JP33660499A
Other languages
English (en)
Other versions
JP3762173B2 (ja
Inventor
Takeo Hayase
健夫 早瀬
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP33660499A priority Critical patent/JP3762173B2/ja
Publication of JP2001154862A publication Critical patent/JP2001154862A/ja
Application granted granted Critical
Publication of JP3762173B2 publication Critical patent/JP3762173B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 マルチプロセス環境にあって、オブジェクト
指向の概念における同期メッセージ通信及び非同期メッ
セージ通信を容易に実現することができる。 【解決手段】 各プロセス21は、データと手続きとを
カプセル化するものであって、通信メッセージを出力す
る一以上のオブジェクト24と、通信メッセージを受信
し転送するものであって、受信した通信メッセージが自
プロセスのオブジェクトの出力したものである場合に
は、当該メッセージに含まれる通信方式情報に基づきそ
の通信が同期通信か非同期通信であるかを調べ、同期通
信である場合には通信メッセージの処理が完了した後に
前記自プロセスのオブジェクトに通信の終了を通知し、
非同期通信である場合には直ちに前記自プロセスのオブ
ジェクトに通信の終了を通知するメッセージ取扱手段2
5を有するメッセージ通信制御手段22とを備えたマル
チプロセス環境で動作する計算機システム。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は計算機システム及
びネットワークシステム並びに記録媒体、更に詳しく
は、プログラムの並行処理が可能なマルチプロセス/マ
ルチスレッド環境において複数オブジェクト間のメッセ
ージ通信を適切に行うのに適した計算機システム及びネ
ットワークシステム並びに記録媒体に関するものであ
る。
【0002】
【従来の技術】近年C++言語等のオブジェクト指向言
語を用いてプログラム作成が行われるようになってい
る。このオブジェクト指向言語においては、データ処理
等を行う手続きとその対応データとを一体(カプセル
化)としてオブジェクトという単位を構成し、あるオブ
ジェクトのデータは、当該オブジェクトの手続きのみを
介して操作するようにしている。
【0003】したがって、一のオブジェクトが他のオブ
ジェクトのデータに関連して何らかの処理を行う場合に
は、当該一のオブジェクトの手続きが当該他のオブジェ
クトの手続きに対して処理を依頼することになる。具体
的には、オブジェクト間でメッセージ通信が行われるこ
とで依頼処理等が実現される。ここで、オブジェクト指
向の概念におけるメッセージ通信とは、オブジェクトは
自律的に動作しており、必要に応じてメッセージを送信
することである。
【0004】一方、プログラムの並行処理が可能なマル
チプロセス/マルチスレッド環境を実現するUNIX等
のOS(オペレーティングシステム)が広く用いられる
ようになっている。
【0005】このようなプリエンプティブ方式のマルチ
タスクOSでは、プログラムはプロセスという単位で実
行されるとともに、さらにスレッドというプロセスより
も細かい実行単位を導入してこれらの動作についてスケ
ジューリングを行っている。
【0006】マルチプロセス/マルチスレッド機能を有
する並行環境でオブジェクト指向言語のプログラムを実
行させる場合、多くの場合にはプロセスに複数のオブジ
ェクトが設けられる。また、スレッドは、オブジェクト
を自律的に動作させるために起動される場合があり、ま
た、起動されない場合もある。さらに、マルチタスクO
Sでは、プロセスは複数存在するのが一般的である。
【0007】プログラムは、これらの多数のオブジェク
ト間でメッセージ通信を行いつつ、必要な処理を実行し
ていくことになる。
【0008】
【発明が解決しようとする課題】しかしながら、マルチ
プロセス/マルチスレッド環境におけるオブジェクト間
のメッセージ通信に関しては、(1)オブジェクト間の
メッセージ通信方法、(2)オブジェクトに対するプロ
セス/スレッドマッピング方法、(3)オブジェクト生
成・破壊とスレッドの起動・停止タイミング、等につい
て解決すべき課題がある。
【0009】(1)オブジェクト間のメッセージ通信方
法 オブジェクト間のメッセージ通信の方法には、同期通信
と非同期通信がある。
【0010】同期通信とは、送信元オブジェクトが送信
先オブジェクトへメッセージを送った時に、送信先オブ
ジェクトにてメッセージに対応する処理が終了するま
で、送信元オブジェクトが待たされる通信方式である。
【0011】図37は同期通信方式を用いるオブジェク
ト間のメッセージ送受を時系列順に示すシーケンス図で
ある。
【0012】このような通信を実現する手段として、送
信先オブジェクトにスレッドを割り当てずに、送信元オ
ブジェクトが送信先のオブジェクトのメソッドを直接呼
び出す方法がある。なお、メソッドとは、C++言語に
おけるクラスの中で定義される操作の実装である。この
通信を実現するためのプログラムの例を図37の下側に
示す。
【0013】また、同期通信を実現する他の手段として
は、送信先オブジェクトにスレッドを割り当てるが、送
信先のオブジェクトの処理が終了するまでスレッド間で
同期待ちを行う方法がある。
【0014】一方、非同期通信とは、送信元オブジェク
トが送信先オブジェクトへメッセージを送った時に、送
信先オブジェクトにメッセージを送信した時点で、送信
元オブジェクトが自分の処理を継続する通信方式であ
る。
【0015】図38は非同期通信方式を用いるオブジェ
クト間のメッセージ送受を時系列順に示すシーケンス図
である。
【0016】このような通信を実現する手段として、オ
ブジェクトに対しメッセージを積んでおくメッセージキ
ューとそれを監視するスレッドとを設け、メッセージキ
ューにメッセージが積まれたら、メッセージに対応する
処理を起動することをスレッドの実行内容とする方法が
ある。このような非同期通信方式によるメッセージ通信
については、特願平10−328065号で提案されて
いる。
【0017】上記の同期通信と非同期通信とは、図3
7、図38における下側のプログラムに示されるように
異なるインタフェースを有する。したがって、あるオブ
ジェクトを同期通信方式から非同期通信方式に変更した
り、あるいはその逆に変更したりするためには、その都
度プログラムを変更する必要がある。
【0018】(2)オブジェクトに対するプロセス/ス
レッドマッピング方法 先に(1)で述べたオブジェクトの非同期通信を実現す
る特願平10−328065号においては、オブジェク
トの生成とともに自分自身のメッセージキューを監視す
るスレッドを起動し、オブジェクトの破壊とともに先の
スレッドを停止する方式を採用している。この方法で
は、すべてのオブジェクトにスレッドを与え、かつオブ
ジェクトの生成・破壊とスレッドの起動・停止のタイミ
ングを同一にすることで、プロセスマッピングを容易に
指定することができる。
【0019】しかし、あまりに多くのスレッドを起動す
ると、逆にシステムの性能が劣化する場合がある。した
がって、システム性能の調整のために、オブジェクトに
よってスレッドをマッピングしないことも考えられる。
ここで、特願平10−328065号では、非同期通信
を実現するとともにオブジェクトの生成とスレッドの起
動タイミングが同一であることから、例えば図39
(a)に示すような生成メソッドを記述している。ま
た、同期通信を実現する目的でオブジェクトに対してス
レッドをマッピングしないようにするためには、この生
成メソッドを図39(b)のように修正しなければなら
ない。
【0020】(3)オブジェクト生成・破壊とスレッド
の起動・停止タイミング ある時点までは同期通信を行っていたオブジェクトを、
非同期通信を行うように変更させること、またはその逆
を行うことが考えられる。特願平10−328065号
のようにオブジェクトの生成・破壊とともにスレッドの
起動・停止を行う方式では、これを実現することは困難
である。
【0021】本発明は、このような実情を考慮してなさ
れたもので、その第1の目的は、プログラムの並行処理
が可能なマルチプロセス環境にあって、オブジェクト指
向の概念における同期メッセージ通信及び非同期メッセ
ージ通信を容易に実現することができる計算機システム
及びネットワークシステム並びに記録媒体を提供するこ
とにある。
【0022】また、第2の目的は、オブジェクト指向の
概念における同期通信及び非同期通信の両通信方式をプ
ログラム変更することなく容易に変更することができる
計算機システム及びネットワークシステム並びに記録媒
体を提供することにある。
【0023】さらに、第3の目的は、オブジェクトの生
成・破壊とオブジェクト内のスレッドの起動・停止を分
離し、システム動作中に同期通信と非同期通信を切り替
えることができる計算機システム及びネットワークシス
テム並びに記録媒体を提供することにある。
【0024】
【課題を解決するための手段】次に、課題解決のための
第1の発明は、マルチプロセス機能を有するオペレーテ
ィングシステムによって複数のプロセスを生成し、プロ
グラムを並列処理する計算機システムについてなされた
ものである。
【0025】ここで各プロセスには、一以上のオブジェ
クトと、メッセージ通信制御手段とが設けられる。
【0026】オブジェクトは、データと手続きとをカプ
セル化するものであって、通信メッセージを出力可能に
構成されている。
【0027】また、メッセージ通信制御手段は、メッセ
ージ取扱手段を備えている。このメッセージ取扱手段
は、通信メッセージを受信し転送するものである。
【0028】また、メッセージ取扱手段は、受信した通
信メッセージが自プロセスのオブジェクトの出力したも
のである場合には、当該メッセージに含まれる通信方式
情報に基づいてその通信が同期通信か非同期通信である
かを調べる。そして、同期通信である場合には通信メッ
セージの処理が完了した後に自プロセスのオブジェクト
に通信の終了を通知し、非同期通信である場合には直ち
に自プロセスのオブジェクトに通信の終了を通知する。
【0029】これにより、プログラムの並行処理が可能
なマルチプロセス環境にあって、オブジェクト指向の概
念における同期メッセージ通信及び非同期メッセージ通
信が容易に実現される。また、メッセージ内の通信方式
情報のみを変更することで同期,非同期通信を変更でき
るので、同期通信及び非同期通信の両通信方式をプログ
ラム変更することなく容易に変更することができる。
【0030】次に、課題解決のための第2の発明は、上
記第1の発明において、メッセージ通信制御手段は、各
オブジェクトがどのプロセスに属するかの情報を記録す
るプロセス対応記録部と、プロセスメッセージ取扱手段
とを備えている。
【0031】ここで、プロセスメッセージ取扱手段は、
通信メッセージを他のプロセスに転送し、また、他のプ
ロセスからの通信メッセージを前記メッセージ取扱手段
に引き渡すものである。
【0032】メッセージ取扱手段においては、オブジェ
クトあるいはプロセスメッセージ取扱手段から通信メッ
セージを受信するが、このときプロセス対応記録部を検
索する。これにより、受信した通信メッセージの宛先オ
ブジェクトがどのプロセスに属するが判定され、自プロ
セスに属する場合には当該宛先オブジェクトに通信メッ
セージが引き渡され、他のプロセスに属する場合にはプ
ロセスメッセージ取扱手段に通信メッセージを引き渡さ
れる。
【0033】このような過程をへて通信メッセージがあ
るオブジェクトから他のオブジェクトへ渡されることに
なる。
【0034】次に、課題解決のための第3の発明は、上
記第1又は2の発明において、メッセージ通信制御手段
は、各オブジェクトについてのオブジェクト識別情報
と、前記オペレーティングシステムに生成されたときに
各オブジェクトに付されたオブジェクトアドレスとの対
応情報を記録するオブジェクト対応記録部を備えてい
る。
【0035】メッセージ取扱手段は、メッセージの宛先
情報としてオブジェクト識別情報のみが付されていると
きであっても、オブジェクト対応記録部を検索してオブ
ジェクトアドレスを取得することにより、宛先オブジェ
クトに通信メッセージを引き渡し可能とする。
【0036】したがって、プログラムの変更をしなくて
も、プロセス対応記録部のオブジェクト識別情報を変更
するのみでオブジェクト間通信における通信先等を変更
することができる。
【0037】次に、課題解決のための第4の発明は、上
記第1〜3の発明において、オペレーティングシステム
は、オブジェクトを自律的に動作させるためのスレッド
と通信メッセージ受信用のキューを生成可能に構成され
ている。
【0038】さらに、少なくとも一以上のオブジェクト
は、スレッド及びキューを生成又は消滅させるための指
令を通信メッセージとして出力可能となっている。
【0039】したがって、オブジェクトの生成・破壊と
オブジェクト内のスレッドの起動・停止を分離される。
また、システム動作中に同期通信と非同期通信を切り替
えることも容易となる。
【0040】次に、課題解決のための第5の発明は、複
数の計算機が接続されてなるネットワークシステムにつ
いてなされたものである。
【0041】このネットワークシステムにおいては、上
記第1〜第5の発明のうち何れか一項に記載された複数
のプロセスが、二以上の計算機に分散配置させている。
【0042】したがって、上記各発明の効果を計算機シ
ステム内にとどめることなく、ネットワーク全体に対し
て発揮させることができる。
【0043】次に、課題解決のための第6の発明は、上
記第1の発明をコンピュータに実現させるためのプログ
ラムを記録した記録媒体である。
【0044】この記録媒体から読み出されたプログラム
により制御されるコンピュータは、上記第1の発明の計
算機システムとして機能する。
【0045】次に、課題解決のための第7の発明は、上
記第2の発明をコンピュータに実現させるためのプログ
ラムを記録した記録媒体である。
【0046】この記録媒体から読み出されたプログラム
により制御されるコンピュータは、上記第2の発明の計
算機システムとして機能する。
【0047】次に、課題解決のための第8の発明は、上
記第3の発明をコンピュータに実現させるためのプログ
ラムを記録した記録媒体である。
【0048】この記録媒体から読み出されたプログラム
により制御されるコンピュータは、上記第3の発明の計
算機システムとして機能する。
【0049】次に、課題解決のための第9の発明は、上
記第4の発明をコンピュータに実現させるためのプログ
ラムを記録した記録媒体である。
【0050】この記録媒体から読み出されたプログラム
により制御されるコンピュータは、上記第4の発明の計
算機システムとして機能する。
【0051】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。
【0052】(発明の第1の実施の形態)図1は本発明
の第1の実施の形態に係る計算機システムの一例を示す
構成図である。
【0053】この計算機システム20においては、パー
ソナルコンピュータやワークステーション等の計算機上
でマルチプロセス/マルチスレッド環境を実現するUN
IX等のOSが動作し、さらに当該OS上に複数のプロ
セス21−1〜21−2(プロセス#1〜#2)が設け
られている。以下、各機能構成部分を示す符号における
「−1」,「−2」,..部分を削除して例えば「プロ
セス21」等と示した場合には、その機能構成部分の一
般的な場合を意味する。
【0054】各プロセス21−1〜21−2は、オブジ
ェクト指向言語で記述されたプログラムをもとに生成さ
れたものであり、それぞれメッセージ通信制御部22お
よびアクタ部23で構成されている。
【0055】アクタ部23には、そのプロセス独自の処
理を行うための主たるオブジェクトが配置される。ここ
で、プロセス21−1のアクタ部23には、オブジェク
ト24−1〜24−2(オブジェクトA〜B)が存在す
る。また、プロセス21−2のアクタ部23には、オブ
ジェクト24−3〜24−4(オブジェクトC〜D)が
存在する。
【0056】メッセージ通信制御部22は、アクタ部2
3に配置された各オブジェクト24が他のオブジェクト
と通信するために、メッセージハンドラ25等の各機能
を有している。なお、メッセージ通信制御部22の機能
構成部分も基本的にはオブジェクトから構成される。
【0057】メッセージハンドラ25は、アクタ部23
における送信元オブジェクト24からの通信メッセージ
を送信先オブジェクト24に引き渡すための処理を、プ
ロセス/スレッド対応マップ26及びオブジェクト対応
マップ27を参照して行う。また、メッセージハンドラ
25は、メッセージ通信が同期通信であるか非同期通信
であるかの通信種別を判別し、通信種別に対応して送信
元のオブジェクト24へ制御を戻すタイミングを調整す
ることにより、オブジェクト24からの同期通信又は非
同期通信を実現する。
【0058】まず、メッセージハンドラ25を経由して
メッセージ通信を行う仕組みについて説明し、後にメッ
セージハンドラ25を用いた同期通信・非同期通信の実
現について説明する。
【0059】図2は各プロセスにおけるメッセージ通信
部の詳細構成例を示すブロック図である。
【0060】同図に示すように、メッセージ通信制御部
22には、メッセージハンドラ25に対応してメッセー
ジハンドラキュー28が設けられ、また、プロセスメッ
セージハンドラ29,プロセス送信用メッセージキュー
30及びプロセス受信用メッセージキュー31が設けら
れる。また、プロセス21−1〜21−2間には、共有
メモリ32−1及び32−2が設けられる。
【0061】メッセージハンドラキュー28は、オブジ
ェクト24からの通信メッセージを格納する。ここで格
納される通信メッセージには、同一プロセス内のアクタ
部23に存在するオブジェクト24から直接格納される
場合と、他のプロセス21のオブジェクト24からプロ
セスメッセージハンドラ29を経由して格納される場合
とがある。
【0062】メッセージハンドラ25では、自律的動作
を行うためにスレッドが起動されており、このスレッド
が自身のキュー28を監視している。メッセージハンド
ラ25は、メッセージハンドラキュー28からスレッド
により取り出された送信メッセージを、同一プロセス2
1(同一アクタ部23)内の他のオブジェクト24に引
き渡すか、プロセスメッセージハンドラ29に引き渡し
てメッセージ通信の他プロセス21への送信を依頼す
る。
【0063】このために各メッセージハンドラ25−1
〜25−2は、システム内に唯一存在するプロセス/ス
レッド対応マップ26を参照し、送信先オブジェクト2
4−1〜24−4が存在するプロセス21を識別する。
【0064】図3はプロセス/スレッド対応マップの構
成例を示す図である。
【0065】同図(a)はプロセス/スレッド対応マッ
プの一般的な構成(フォーマット)を示し、同図(b)
は本実施形態の場合におけるプロセス/スレッド対応マ
ップ26の構成を示している。
【0066】また、図4はオブジェクト対応マップの構
成例を示す図である。
【0067】同図(a)はオブジェクト対応マップの一
般的な構成(フォーマット)を示し、同図(b)は本実
施形態の場合におけるオブジェクト対応マップ27−1
の構成を示す。さらに、同図(c)は本実施形態の場合
におけるオブジェクト対応マップ27−2の構成を示し
ている。
【0068】プロセス/スレッド対応マップ26は、各
プロセスがどのようなオブジェクト24を含むかの情報
をオブジェクトID(識別情報)91の形で格納してい
る。また、各オブジェクト24においてスレッドを起動
させるか否かを示すスレッド起動情報92を格納する。
【0069】オブジェクト対応マップ27は、プロセス
/スレッド対応マップ26における各オブジェクトID
91が計算機システムのメモリ上ではどのアドレスに存
在するかを示すオブジェクトアドレス情報93を格納す
る。なお、プロセス対応マップ26は、システム稼動時
に参照できるようにシステムのファイルや共有メモリ等
に保管されている。
【0070】メッセージハンドラ25は、メッセージ内
のオブジェクトIDに基づいてプロセス/スレッド対応
マップ26を参照した結果、同一プロセス内での通信で
あると判定した場合には、さらにオブジェクト対応マッ
プ27−1,27−2(オブジェクト対応マップP1,
P2)を参照し、送信先オブジェクトのアドレス情報9
3を取得する。さらに取得したアドレス情報93をもと
に、自プロセスのアクタ部23における送信先オブジェ
クト24にメッセージの引き渡しを行う。
【0071】図5は各プロセスにおけるアクタ部の詳細
構成例を示すブロック図である。
【0072】同図に示すように、アクタ部23において
は各オブジェクト24に対応して、メッセージマップ3
4が設けられる。また、メッセージキュー33は、プロ
セス/スレッド対応マップ26におけるスレッド起動情
報92がオンになっているオブジェクトについてのみ設
けられる。
【0073】図6はスレッドが起動されたオブジェクト
の詳細構成例を示すブロック図である。
【0074】オブジェクト24のスレッド94は、その
オブジェクトを自律的に動作させる場合に起動させるも
のである。このスレッド94は、メッセージキュー33
に格納されたメッセージを順番に取り出し、そのメッセ
ージ内に含まれるメッセージID(識別情報)とメッセ
ージマップ34とから対応するメゾット95を特定し、
そのメソッド95を動作させるようになっている。
【0075】なお、スレッド94が起動されない場合に
は、メッセージキュー33が設けられず、オブジェクト
24は、メッセージを受信するたびに逐次的にメソッド
95の実行処理が行われる。この場合には、受信メソッ
ドによってメッセージマップ34が参照され、メッセー
ジID96に対応するメソッド情報97が取り出されて
実行されるべきメソッド95が特定される。
【0076】図7はメッセージマップの構成例を示す図
である。
【0077】同図(a)はメッセージマップの一般的な
構成(フォーマット)を示し、同図(b)は本実施形態
の場合におけるメッセージマップ34−1の構成を示
す。さらに、同図(c),(d),(e)は、それぞれ
本実施形態の場合におけるメッセージマップ34−2,
34−3,34−4の構成を示している。
【0078】メッセージマップ34においては、メッセ
ージID96に対応するメソッド情報97が格納されて
いる。
【0079】また、メッセージハンドラ25は、プロセ
スメッセージハンドラ29からメッセージの取り扱い通
知を受けたときも、上記と同様にしてアクタ部23のオ
ブジェクトIDを取得しメッセージの引き渡しを行う。
【0080】一方、プロセス対応マップ26を参照した
結果、異なるプロセス間での通信であることが判定され
た場合には、メッセージハンドラ25−1は、このメッ
セージ通信を図2に示すプロセスメッセージハンドラ2
9−1に依頼する。
【0081】すなわちオブジェクト24−1〜24−2
とオブジェクト24−3〜24−4との間のメッセージ
通信は、プロセスメッセージハンドラ29−1〜29−
2(プロセスメッセージハンドラP1−P2〜P2−P
1)が取り扱う。
【0082】プロセスメッセージハンドラ29には、自
律的に動作するためにスレッドが起動されており、この
スレッドが自分自身のキューを監視することでプロセス
間メッセージ通信が実現される。
【0083】ここで、プロセス21−1とプロセス21
−2との間は、共有メモリ32−1(共有メモリP1−
P2:プロセス#1からプロセス#2へのメッセージ通
信)及び共有メモリ32−2(共有メモリP2−P1:
プロセス#2からプロセス#1へのメッセージ通信)が
設けられ、これらの共有メモリ32−1〜32−2を介
して、オブジェクト24−1〜24−2とオブジェクト
24−3〜24−4との間のメッセージ通信が可能とな
る。
【0084】次に、メッセージハンドラ25を用いて同
期通信・非同期通信を実現させるための構成を説明す
る。
【0085】図8はメッセージハンドラの主要部分の構
成例を示すブロック図である。
【0086】同図に示すメッセージハンドラ25には、
通信種別判定部101、送信先判定部102及び制御戻
し部103が設けられている。なお、これらの各機能部
101,102,103はスレッド(図示せず)により
実行されるメソッド等からなっている。したがって、こ
れらはスレッドにより実現される機能であるともいえ
る。ここで、メッセージは、送信先オブジェクトID及
びメッセージ本体からなり、さらに、メッセージ本体に
は、送信元オブジェクトID、メッセージID及び同期
/非同期何れの通信を行うかの通信方式情報が格納され
ている。
【0087】通信種別判定部101は、オブジェクト2
4又はプロセスメッセージハンドラ29からメッセージ
を受け取ると、そのメッセージをメッセージハンドラキ
ュー28に積むとともに、そのメッセージに含まれる送
信元オブジェクトID及び通信方式情報に基づいて通信
種別を判定する。すなわちまず、送信元オブジェクトI
D及びプロセス/スレッド対応マップ26に基づいて当
該メッセージが自己のプロセス21から出力されたもの
であるかを判定する。自己プロセスで発信され、かつ非
同期通信を行う場合には、制御戻し部103に直ちに制
御を戻すように通知する。
【0088】制御戻し部103は、通信種別判定部10
1より、メッセージが非同期通信を行う旨の通知を受け
た場合には、送信元オブジェクトにおいてメッセージ関
数が完了できるように、送信元オブジェクトに制御を戻
す。また、同期通信を行う場合には、送信先メッセージ
からメゾットの実行完了通知を受け取ると、送信元オブ
ジェクトに制御を戻すように処理する。
【0089】このように、メッセージ内容に対応して通
信種別判定部101及び制御戻し部103が処理を行う
ことにより、同期/非同期通信が実現される。何れの通
信方式をとるかは通信方式情報の指定のみで決定される
ので、通信方式の適宜の変更が可能である。
【0090】送信先判定部102は、メッセージハンド
ラキュー28からスレッドによって取り出されたメッセ
ージについて、そのメッセージに含まれる送信先オブジ
ェクトのオブジェクトIDと、プロセス/スレッド対応
マップ26及びオブジェクト対応マップ27とに基づい
て、そのメッセージの送信先判定を行う。さらに、送信
先オブジェクトに直接又は送信先が存在するプロセスに
メッセージを引き渡すための処理を行う。すなわち上記
した処理である。
【0091】また、メッセージハンドラ25は、オブジ
ェクト24の生成時にオブジェクト24が自分自身をメ
ッセージハンドラ25に登録する際、プロセス/スレッ
ド対応マップ26を参照し、スレッド起動情報92にス
レッドマッピングの指定がある場合(オン時)には、そ
のオブジェクト24に対してスレッド起動メッセージを
送信する。また同様に、オブジェクト24の破壊時に、
オブジェクト24が自分自身をメッセージハンドラ25
から抹消する際、スレッド起動情報92にスレッドマッ
ピングの指定がある場合には、メッセージハンドラ25
は、そのオブジェクト24に対してスレッド停止メッセ
ージを送信する。
【0092】次に、以上のように構成された本実施形態
における計算機システムの動作について、システムを起
動した際のプロセスの動作、オブジェクトのメッセージ
通信の動作、システムを停止した時のプロセスの動作を
順に説明する。
【0093】[システム起動]図9及び図10はシステ
ムを起動する際におけるプロセス、メッセージ通信制御
部及びアクタ部の動作を示す流れ図である。
【0094】プロセスを起動するときには、図9(a)
に示すように、まず始めにメッセージハンドラ25−1
〜25−2が生成される(S1)。次に、プロセス21
に存在するべきオブジェクト24−1〜24−4が生成
される(S2)。以下でさらに詳しく説明する。
【0095】メッセージハンドラ25−1〜25−2の
生成時(S1)には、図9(b)に示すように、メッセ
ージハンドラキュー28−1〜28−2が生成され(S
3)、メッセージハンドラキュー28−1〜28−2を
監視するためのスレッドが起動される(S4)。さら
に、プロセス/スレッド対応マップ26が読み込まれ
(S5)、プロセスメッセージハンドラ29−1〜29
−2が生成される(S6)。
【0096】一方、プロセスメッセージハンドラ29−
1〜29−2の生成時(S6)には、図9(c)に示す
ように、プロセス送信用メッセージキュー30−1〜3
0−2が生成され(S7)、プロセス受信用メッセージ
キュー31−1〜31−2が生成される(S8)。さら
に、プロセス受信用メッセージキュー31−1〜31−
2を監視するためのスレッドが起動される(S9)。
【0097】また、プロセス21に配置されるオブジェ
クト24−1〜24−4の生成時(図9:S2)には、
図10(a)に示すように、オブジェクト24−1〜2
4−4によって、メッセージハンドラ25−1〜25−
2に自分自身が登録される(S10)。これにより、オ
ブジェクト対応マップ27−1〜27−2にオブジェク
トのアドレス情報が登録されることになる。
【0098】一方、メッセージハンドラ25−1〜25
−2がオブジェクト24−1〜24−4から登録指示を
受けると(S10)、図10(b)に示すように、ま
ず、オブジェクト対応マップ27−1〜27−2にオブ
ジェクト24−1〜24−4が登録される(S11)。
次に、プロセス/スレッド対応マップ26が参照され
(S12)、登録したオブジェクト24−1〜24−4
に対してスレッドマッピングの指定があるかどうかがス
レッド起動情報92により調べられる(S13)。ここ
で、オブジェクト24−4にはスレッドマッピングの指
定があるため、メッセージハンドラ25−2からオブジ
ェクト24−4に対してスレッド起動メッセージが送信
される(S14)。
【0099】このスレッド起動メッセージはオブジェク
ト24−4にて受け取られ、スレッドがマッピングされ
る。メッセージ通信の詳しい動作については後述する
が、図7(b)〜(e)に示すように、スレッド起動メ
ッセージ(図7中のメッセージID_Run)がオブジ
ェクト24−4にて受け取られると、当該オブジェクト
24−4にてメッセージに対応するメソッドが呼び出さ
れる。
【0100】図7(e)に示すように、スレッド起動メ
ッセージのID96は、スレッド起動メソッド情報97
に対応している。このメソッドは、図7に示すように、
オブジェクト24−1〜24−4において共通で利用可
能に構成されている。したがって、オブジェクト24−
1〜24−4を抽象化したオブジェクトで定義し、オブ
ジェクト24−1〜24−4ではオブジェクト指向技術
の継承機構を導入して再利用する。
【0101】さらに、スレッド起動メソッドは、図11
(a)に示す内容になっている。図11は各種のメソッ
ドの内容例を示す図である。図11(a)のメソッドに
よれば、まずメッセージを受信するためのメッセージキ
ュー33−4が生成され、スレッドが起動され、そして
スレッドフラグがオンにされる。この時点で、オブジェ
クト24−4は自律的に動作することが可能となるの
で、それ自体で非同期メッセージ通信することも可能な
状態になる。
【0102】[メッセージ通信]次に、メッセージ通信
について説明する。ここで、メッセージ通信には、同一
プロセス内のオブジェクト間通信と、プロセスをまたぐ
オブジェクト間通信とがある。また、メッセージ通信に
おいては、非同期通信と同期通信の両方について示す。
さらに、送信先オブジェクト24に対するスレッドマッ
ピングの状態によっても動作が異なる。以上を整理する
と次のようになる。
【0103】■ 同一プロセス内のオブジェクト間メッ
セージ通信 (1)非同期メッセージ通信(オブジェクトのスレッド
なし) 送信先オブジェクト24にはスレッドはないが、メッセ
ージハンドラ25にスレッドがあるため、結果として非
同期メッセージ通信が可能となる。
【0104】(2)同期メッセージ通信(オブジェクト
のスレッドなし) 送信先オブジェクトにはスレッドはないが、直接送信先
オブジェクトのメソッドを呼び出すのではなく、メッセ
ージハンドラ経由で通信するため、同期待ちが必要であ
る。
【0105】(3)非同期メッセージ通信(オブジェク
トのスレッドあり) 送信先オブジェクトにスレッドがあり、通常の非同期メ
ッセージ通信である。
【0106】(4)同期メッセージ通信(スレッドあ
り) 送信先オブジェクトにスレッドがあり、必ず同期待ちが
必要である。
【0107】■ プロセスをまたぐオブジェクト間メッ
セージ通信 (5)非同期メッセージ通信(オブジェクトのスレッド
なし) 送信先オブジェクトにはスレッドはないが、プロセスを
またぐため、結果として非同期メッセージ通信が可能と
なる。
【0108】(6)同期メッセージ通信(オブジェクト
のスレッドなし) 送信先オブジェクトにはスレッドはないが、プロセスを
またぐため、同期待ちが必要である。
【0109】(7)非同期メッセージ通信(オブジェク
トのスレッドあり) 送信先オブジェクトにスレッドがあり、通常の非同期メ
ッセージ通信と考えられる。
【0110】(8)同期メッセージ通信(オブジェクト
のスレッドあり) 送信先オブジェクトにスレッドがあり、プロセスをまた
ぐため、必ず同期待ちが必要である。
【0111】すなわち本発明においては、メッセージ通
信を実現するためにメッセージハンドラ25を利用し、
このメッセージハンドラ25にスレッドを与えている。
したがって、このメッセージハンドラ25に通信方式を
識別し制御する手段(図8)を与えることで、オブジェ
クト側の事情に関係なく、同期通信と非同期通信を実現
するとともに、通信方式を容易に変更することが可能と
なる。
【0112】説明の都合上から、上記の(1)〜(6)
の場合については本実施形態にて詳細に説明し、(7)
〜(8)については第2の実施形態にて説明する。この
詳細説明の前に、第1,第2実施形態における同期通信
と非同期通信の考え方を図12により説明する。
【0113】図12は同期通信又は非同期通信を行う場
合の全体的な考え方について説明する図である。同期通
信の場合(図12(a))には、送信元オブジェクトか
らメッセージがメッセージハンドラ25のキュー28に
積まれると、これをスレッドが検出し、通信種別判定部
101により通信種別が判定される。この場合、通信種
別が同期通信であるので、メッセージはそのまま送信先
オブジェクトに送信され、当該送信先オブジェクトにて
メソッドが実行される。メソッドが実行されるとその実
行完了通知が送信先オブジェクトから最初のメッセージ
ハンドラ25に送信される。この完了通知を受けた時点
でメッセージハンドラ25の制御戻し部103により送
信元オブジェクトに制御が戻される。これにより、事実
上、同期通信が実現されることになる。
【0114】非同期通信の場合(図12(b))におい
ても、送信元オブジェクトからのメッセージはメッセー
ジハンドラキュー28に積まれ、スレッド検出、通信種
別判定部101による通信種別判定が行われる。この場
合は、通信種別が非同期通信であるので、その旨が直ち
に制御戻し部103に通知され、制御戻し部103から
送信元オブジェクト24に制御が戻される。これによ
り、事実上、非同期通信が実現される。
【0115】以下、上記(1)〜(6)について図13
〜図16を用いて細述する。図13はメッセージ通信全
体の処理を示す流れ図である。図14はメッセージ通信
におけるメッセージハンドラスレッドの処理を説明する
流れ図である。図15はメッセージ通信におけるプロセ
スハンドラスレッドの処理を説明する流れ図である。図
16はメッセージ通信におけるオブジェクトの処理を説
明する流れ図である。なお、同図(a)はメッセージを
受信したオブジェクトにおける受信メソッドの処理を示
し、同図(b)は同オブジェクトにおけるスレッドの処
理を示す。
【0116】(1)同一プロセス非同期メッセージ通信
(オブジェクトのスレッドなし) まず、同一プロセス内のオブジェクト間の非同期メッセ
ージ通信(オブジェクト24のスレッドなし)につい
て、メッセージ通信制御部22のメッセージハンドラ2
5−1およびアクタ部23のオブジェクト24−1〜2
4−2の動作を図13,図14及び図16を用いて説明
する。
【0117】オブジェクト24−1のメソッドAでオブ
ジェクト24−2に向けてメッセージ本体B(以下、メ
ッセージBともいう、他のメッセージについても同様)
を送信することを考える。オブジェクト24−1のメソ
ッドAは、図11(c)に示す内容になる。
【0118】メッセージ関数(SendMessag
e)を利用して、オブジェクト24−1からオブジェク
ト24−2に向けてメッセージBが送信されると、送信
先オブジェクト24−2のオブジェクトIDとメッセー
ジBがメッセージハンドラ25−1に渡され、メッセー
ジハンドラキュー28−1に格納される(図13:T
1)。さらに、メッセージ本体の内容から同期通信かど
うかがメッセージハンドラ25−1により調べられる
(T2)。同期通信に関する情報は上記のようにメッセ
ージ本体に含まれている。
【0119】この場合、非同期通信を想定しているの
で、メッセージハンドラキュー28−1に送信先オブジ
ェクト24−2のオブジェクトIDとメッセージBが格
納された時点でメッセージハンドラ25−1からオブジ
ェクト24−1に制御が戻り、オブジェクト24−1に
おけるメッセージ関数は完了する。したがって、以降、
オブジェクト24−1は、オブジェクト24−2とは独
立して自律的に動作することになり、非同期メッセージ
通信が実現される。
【0120】続いて、送信先のオブジェクト24−2の
オブジェクトIDと送信メッセージBがメッセージハン
ドラキュー28−1に格納されると(図14:T4)、
メッセージハンドラ25−1により、メッセージハンド
ラキュー28−1からオブジェクト24−2のオブジェ
クトIDとメッセージBが取り出される(T5)。さら
に、プロセス/スレッド対応マップ26に記述されたオ
ブジェクト24−2のオブジェクトIDに対応するプロ
セスが検索される(T6)。
【0121】これにより、オブジェクト24−2がオブ
ジェクト24−1と同一プロセス21−1(プロセス#
1)に存在するかどうかが調べられる(T7)。図3
(b)に示すように、本実施形態においては同一プロセ
スに存在することが判明するので、メッセージハンドラ
25−1により、メッセージBがスレッド終了メッセー
ジでないことが確認された上で(T9)、さらに、オブ
ジェクト対応マップ27−1からオブジェクト24−2
のオブジェクトIDに対応するオブジェクトが検索され
る(T10)。
【0122】図4(b)に示すオブジェクト対応マップ
に基づき、メッセージハンドラ25−1によりオブジェ
クト24−2のオブジェクトIDからオブジェクトのア
ドレス情報93が取り出され(T10)、送信先オブジ
ェクト24−2にメッセージBが送信される(T1
1)。この場合は、メッセージ通信にプロセスメッセー
ジハンドラ29−1を介さないので、図16の処理に移
る。
【0123】すなわち、メッセージBがメッセージハン
ドラ25−1から送信されると、送信メッセージBが送
信先オブジェクト24−2に渡され、送信先オブジェク
ト24−2の受信メソッドが呼び出される。まず、送信
先オブジェクト24−2にスレッドがマッピングされて
いるかが調べられる(図16:T19)。送信先オブジ
ェクト24−2には、図3(b)にあるようにスレッド
がマッピングされていないため、メッセージの着信に対
応して受信メソッドにより、メッセージBに対応するメ
ソッドBがメッセージマップ34−2から検索される
(T21)。
【0124】図7(c)に示す対応関係があることか
ら、オブジェクト24−2においては、メッセージBに
対応するメソッドBが呼び出され(T22)、さらに、
同期通信かどうかが調べられる(T23)。ここでは、
非同期通信を想定しているため、送信先オブジェクト2
4−2のメソッドBが実行された時点で受信メソッドは
完了する。
【0125】(2)同一プロセス同期メッセージ通信
(オブジェクトのスレッドなし) 次に、同一プロセス内のオブジェクト間の同期メッセー
ジ通信(オブジェクト24のスレッドなし)について、
メッセージ通信制御部22のメッセージハンドラ25−
1およびアクタ部23のオブジェクト24−1〜24−
2の動作を図13,図14及び図16を用いて説明す
る。
【0126】オブジェクト24−1がオブジェクト24
−2に向けてメッセージBを送信することを考える。オ
ブジェクト24−1のメソッドAは、図11(c)に示
す内容である。メッセージ関数(SendMessag
e)を利用して、オブジェクト24−1からオブジェク
ト24−2に向けてメッセージBが送信されると、送信
先オブジェクト24−2のオブジェクトIDとメッセー
ジBがメッセージハンドラ25−1に渡され、メッセー
ジハンドラキュー28−1に格納される(T1)。
【0127】さらに、メッセージハンドラ25−1にお
いて、この通信が同期通信かどうかが調べられる(T
2)。この場合、同期通信を想定しているので、メッセ
ージハンドラ25−1からはメソッド実行完了通知が受
信されるまで制御がオブジェクト25−1に戻されな
い。したがって、オブジェクト25−1におけるメッセ
ージ関数は完了せず、送信先オブジェクト24−2のメ
ソッドの実行が完了するまで待つことになる(T3)。
これにより、オブジェクト24−1は、オブジェクト2
4−2と同期をとって動作することになる。
【0128】上記の動作以降、メッセージハンドラ25
−1を経由してオブジェクト24−2の受信メソッドが
呼び出されるまでは(1)と同様である(図14:T4
〜T11)。
【0129】次に、図16のオブジェクトにおける処理
に移る。この(2)の場合においても、(1)の場合と
同様にスレッドが起動されていないので、図16におけ
る同期通信判断の処理(T23)までは、(1)と同様
である。
【0130】同期通信かどうかを調べるステップT23
においては、今回は、同期通信を想定しているため、ス
テップT24に進む。ステップT24においては、メソ
ッドB実行(T22)後に、送信元オブジェクト24−
1に対して送信先オブジェクト24−2のメソッドBの
実行が完了したことが通知される(T24)。この処理
は、実際には、一旦、メッセージハンドラ25−1に対
する通知がなされ、当該ハンドラ25−1からオブジェ
クト24−1に制御が戻されることになる。これによ
り、オブジェクト24−1のメッセージ関数が完了す
る。この時点以降、オブジェクト24−1においては動
作を継続することができ、同期メッセージ通信が実現さ
れる。
【0131】上記の通信(1)と(2)とを比較する
と、オブジェクト24−1にとっては同一のスレッドに
よって同期非同期通信を行うことができる。このとき、
両通信で異なっているのは、メッセージ本体(メッセー
ジC)における通信種別指定が同期となっているか非同
期となっているかだけである。なお、この事情は、後述
する(3)と(4)と間、(5)と(6)と間、(7)
と(8)と間において同様である。
【0132】(3)同一プロセス非同期メッセージ通信
(オブジェクトのスレッドあり) 次に、同一プロセス内のオブジェクト間の非同期メッセ
ージ通信(オブジェクト24のスレッドあり)につい
て、メッセージ通信制御部22のメッセージハンドラ2
5−2およびアクタ部23のオブジェクト24−3〜2
4−4の動作を図13,図14及び図16を用いて説明
する。
【0133】オブジェクト24−3のメソッドCでオブ
ジェクト24−4に向けてメッセージDを送信すること
を考える。オブジェクト24−3のメソッドCは、図1
1(e)に示す内容である。メッセージ関数(Send
Message)を利用して、メッセージハンドラ25
−2経由でオブジェクト24−4の受信メソッドが呼び
出されるまでは(1)と同様である。先と同様に、メッ
セージハンドラキュー28−2に送信先オブジェクト2
4−4のオブジェクトIDとメッセージDが格納された
時点でオブジェクト24−3のメッセージ関数は完了す
る。したがって、オブジェクト24−3は、オブジェク
ト24−4とは独立して自律的に動作することができ、
非同期メッセージ通信が実現される。
【0134】次に、図16において、送信先オブジェク
ト24−4の受信メソッドが呼び出されると、オブジェ
クト24−4にスレッド指定があるかどうかが調べられ
る(T19)。送信先オブジェクト24−4は、図3
(b)に示されるようにスレッドがマッピングされてい
る。したがって、送信メッセージDはメッセージキュー
33−4に格納される(T20)。この時点でオブジェ
クト24−4にメッセージが積まれたことが通知され
る。
【0135】続いて、オブジェクト24−4におけるス
レッドによりメッセージキュー33−4にメッセージが
積まれたかどうかが調べられる(T25)。送信先オブ
ジェクト24−4により、メッセージキュー33−4か
らメッセージDが取り出され(T26)、まず、メッセ
ージDがスレッド終了メッセージでないことが確認され
る(T27)。スレッド終了メッセージでなければ、メ
ッセージDに対応するメソッドDがメッセージマップ3
4−4から検索され(T28)、図7(e)にあるよう
に、メッセージDに対応するメソッドDが呼び出される
(T29)。
【0136】次に、同期通信かどうかが調べられる(T
30)。ここでは、非同期通信を想定しているため、送
信先オブジェクト24−4のメソッドDが実行された時
点でメッセージ受信処理は完了する。続いて、再びメッ
セージキューにメッセージを積まれるまで待つ。
【0137】(4)同一プロセス同期メッセージ通信
(オブジェクトのスレッドあり) 次に、同一プロセス内のオブジェクト間の同期メッセー
ジ通信(オブジェクト24のスレッドあり)について、
メッセージ通信制御部22のメッセージハンドラ25−
2およびアクタ部23のオブジェクト24−3〜24−
4の動作を図13,図14及び図16を用いて説明す
る。
【0138】オブジェクト24−3のメソッドCでオブ
ジェクト24−4に向けてメッセージDを送信すること
を考える。オブジェクト24−3のメソッドCは、図1
1(e)に示す内容である。メッセージ関数(Send
Message)を利用して、メッセージハンドラ25
−2経由でオブジェクト24−4の受信メソッドが呼び
出されるまでは(2)と同様である。先と同様に、オブ
ジェクト24−3は、オブジェクト24−4と同期をと
って動作する。
【0139】また、図16における処理は、ステップT
30の同期通信であるか否かの判断までは上記(3)と
同様である。メソッド実行(T29)後、同期通信かど
うかが調べられる(T30)。ここでは、同期通信を想
定しているため、送信元オブジェクト24−3に対して
オブジェクト24−4のメソッドDの実行が完了したこ
とが通知される(T31)。この処理は、(2)と同様
に実際には、一旦、メッセージハンドラ25−1に対す
る通知がなされ、当該ハンドラ25−1からオブジェク
ト24−1に制御が戻されて実現される。
【0140】この時点ではじめて、オブジェクト24−
3は動作を継続することができ、同期メッセージ通信が
実現される。なお、オブジェクト24−4においては、
再びメッセージキュー33−4にメッセージが積まれる
のを待つことになる。
【0141】(5)プロセス間非同期メッセージ通信
(オブジェクトのスレッドなし) さらに、プロセスをまたぐオブジェクト間の非同期メッ
セージ通信(オブジェクト24のスレッドなし)につい
て、メッセージ通信制御部22のメッセージハンドラ2
5−1〜25−2およびアクタ部23のオブジェクト2
4−2〜24−3の動作を図13〜図16を用いて説明
する。
【0142】オブジェクト24−2がメソッドBでオブ
ジェクト24−3に向けてメッセージCを送信すること
を考える。オブジェクト24−3のメソッドCは、図1
1(d)に示す内容である。まず、メッセージ関数(S
endMessage)が用いられ、さらに、メッセー
ジハンドラ25−1によりプロセス/スレッド対応マッ
プ26からオブジェクト24−3のオブジェクトIDが
検索されるまでは、(1)と同様である(図13のT1
〜図14のT6)。
【0143】先と同様に、メッセージハンドラキュー2
8−1に送信先オブジェクト24−3のオブジェクトI
DとメッセージCが格納された時点でメッセージ関数は
完了する。したがって、オブジェクト24−2は、オブ
ジェクト24−3とは独立して自律的に動作することが
でき、非同期メッセージ通信が実現される。
【0144】ここでは、図3(b)に示すように、オブ
ジェクト24−3がオブジェクト24−2とは異なるプ
ロセス21−2に存在することが判明する(図14:T
7)。したがって、メッセージハンドラ25−1によ
り、プロセス21−2に対応するプロセスメッセージハ
ンドラ29−1が取り出され(T12)、オブジェクト
24−3のオブジェクトIDとメッセージCが当該プロ
セスメッセージハンドラ29−1に送信される(T1
3)。送信されたオブジェクト24−3のオブジェクト
ID及びメッセージCは、プロセスメッセージハンドラ
29−1によりプロセス送信用メッセージキュー30−
1に格納され(T14)、続いて共有メモリ32−1上
にオブジェクト24−3のオブジェクトIDとメッセー
ジCが置かれる。次に、図15に示す処理に移行する。
【0145】次に、送信先オブジェクト24−3が存在
するプロセス21−2内のプロセスメッセージハンドラ
29−2によって、共有メモリ32−1に置かれたオブ
ジェクト24−3のオブジェクトIDとメッセージCが
取り出され、プロセス受信用メッセージキュー31−2
に格納される(T15)。プロセスメッセージハンドラ
29−2により、プロセス受信用メッセージキュー31
−2からオブジェクト24−3のオブジェクトIDとメ
ッセージCが取り出される(T16)。さらに、メッセ
ージCがスレッド終了メッセージでないことが確認され
た上で(T17)、メッセージハンドラ25−2に送信
される(T18)。
【0146】上記の動作により、図14のメッセージハ
ンドラにおける処理に移り、今度は、同一プロセス内の
オブジェクトに対するメッセージ引き渡しとなるので、
以降は(1)と同様な処理がなされることになる。
【0147】(6)プロセス間同期メッセージ通信(オ
ブジェクトのスレッドなし) さらに、プロセスをまたぐオブジェクト間の非同期メッ
セージ通信(オブジェクト24のスレッドなし)につい
て、メッセージ通信制御部22のメッセージハンドラ2
5−1〜25−2およびアクタ部23のオブジェクト2
4−2〜24−3の動作を図13〜図16を用いて説明
する。
【0148】オブジェクト24−2がメソッドBでオブ
ジェクト24−3に向けてメッセージCを送信すること
を考える。オブジェクト24−3のメソッドCは、図1
1(d)に示す内容である。メッセージ関数(Send
Message)を利用して、メッセージハンドラ25
−1からメッセージハンドラ25−2へメッセージCが
渡され、オブジェクト24−3の受信メソッドが呼び出
されるまでは(5)と同様である(図13のT1〜図1
6のT19)。ここでは同期通信を想定しているため、
上記(2)と同様にオブジェクト24−2はオブジェク
ト24−3のメソッドの実行が完了するまで処理を待つ
ことになる。
【0149】オブジェクト24−3の受信メソッドが呼
び出された後の処理は、上記(2)と同様である。した
がって、オブジェクト24−3におけるメソッド実行が
完了すると、その旨がメッセージハンドラ25−1に通
知され、制御がオブジェクト24−2に戻されて、同期
メッセージ通信が実現される。
【0150】[システム停止]次に、システムを停止す
る際のプロセスの動作、メッセージ通信制御部22およ
びアクタ部23の動作を図17及び図18を用いて説明
する。
【0151】図17及び図18はシステムを停止する際
におけるプロセス、メッセージ通信制御部及びアクタ部
の動作を示す流れ図である。
【0152】図17(a)に示すように、プロセスを停
止するときには、まず始めに、プロセスに存在している
オブジェクト24−1〜24−4が破壊される(U
1)。次に、メッセージハンドラ25−1〜25−2が
破壊される(U2)。以下でさらに詳しく説明する。
【0153】プロセス21−1〜21−2に配置された
オブジェクト24−1〜24−4の破壊時には、オブジ
ェクトIDの登録がメッセージハンドラ25−1〜25
−2から抹消される(図17(b):U3)。
【0154】一方、メッセージハンドラ25−1〜25
−2の破壊時には、まず、プロセスメッセージハンドラ
29−1〜29−2が削除される(図17(c):U
4)。続いて、自分自身にスレッド終了メッセージが送
信され(U5)、メッセージハンドラキュー28−1〜
28−2を監視しているスレッドが終了(U6)した後
に、メッセージハンドラキュー28−1〜28−2が破
壊される(U7)。
【0155】また、プロセスメッセージハンドラ29−
1〜29−2の破壊時には、自分自身にスレッド終了メ
ッセージが送信される(図18(a):U8)。続い
て、プロセス受信用メッセージキュー31−1〜31−
2を監視していたスレッドが終了(U9)した後に、プ
ロセス受信用メッセージキュー31−1〜31−2が破
壊される(U10)。そして、プロセス送信用メッセー
ジキュー30−1〜30−2が破壊される(U11)。
【0156】一方、メッセージハンドラ25−1〜25
−2がオブジェクト24−1〜24−4から抹消指示を
受けると、オブジェクト対応マップ27−1〜27−2
からオブジェクト24−1〜24−4が抹消される(図
18(b):U12)。次に、プロセス/スレッド対応
マップ26が参照され(U13)、抹消したオブジェク
ト24−1〜24−4に対してスレッドマッピングの指
定があるかどうかが調べられる(U14)。本実施形態
ではオブジェクト24−4にはスレッドマッピングの指
定があり、オブジェクト24−4に対してスレッド停止
メッセージが送信される(U15)。
【0157】また、オブジェクト24−4においては、
スレッド停止メッセージを受信すると、スレッドが停止
する。図7(b)〜(e)に示すように、スレッド停止
メッセージ(メッセージID_Terminate)を
オブジェクト24−4が受け取ると、自分自身でメッセ
ージに対応するメソッドを呼び出す。図7(e)にある
ように、スレッド停止メッセージは、スレッド停止メソ
ッドに対応している。
【0158】このメソッドはオブジェクト24−1〜2
4−4において共通に利用可能なため、オブジェクト2
4−1〜24−4を抽象化したオブジェクトで定義し、
オブジェクト24−1〜24−4ではオブジェクト指向
技術の継承機構を導入して再利用する。さらに、スレッ
ド停止メソッドは、図11(b)に示す内容になってい
る。このメソッドでは、まずスレッドを停止し、メッセ
ージを受信するためのメッセージキュー33−4を破壊
し、スレッドフラグをOFFにする。
【0159】上述したように、本発明の実施の形態に係
る計算機システムは、プログラムの並行処理が可能なマ
ルチプロセス/マルチスレッド環境において、メッセー
ジハンドラを設けてプロセス間通信を実現するととも
に、このメッセージハンドラにより通信の同期/非同期
の判断を行ってその後の処理を行うようにしたので、同
期通信および非同期通信を同じインタフェースで実現す
ることができる。
【0160】さらに、同期/非同期の通信種別情報をメ
ッセージ内に含めるようにしたので、同期/非同期の両
通信方式をプログラムを変更することなしに容易に変更
できることができる。
【0161】また、プロセス/スレッド対応マップ26
によりシステム内の各オブジェクトを管理するようにし
たので、オブジェクトのプロセス配置およびスレッドマ
ッピングを容易に変更することができる。したがって、
プログラムの変更量を軽減するとともに、プロセス配置
やスレッドマッピングの変更に伴うプログラムの変更量
を軽減し、システムを効率的に開発することができる。
【0162】(発明の第2の実施の形態)本実施形態
は、第1の実施形態においてシステム内のプロセスの数
を三つとしたものであり、その点を除けば第1の実施形
態と同様に構成され動作する。
【0163】図19は本発明の第2の実施の形態に係る
計算機システムの一例を示す構成図である。図20及び
図21は、図19のシステムにおいて、それぞれメッセ
ージ通信制御部及びアクタ部の構成を詳細に示す図であ
る。
【0164】さらに図22、図23及び図24は、本実
施形態のプロセス/スレッド対応マップ、オブジェクト
対応マップ及びメッセージマップを示す図である。
【0165】本実施形態の各図において、図1〜図18
と同一部分には同一符号を付して説明を省略し、ここで
は異なる部分についてのみ述べる。なお、図19,図2
0,図21,図22,図23,図24は、それぞれ図
1,図2,図5,図3,図4,図7に対応する。
【0166】本実施形態の計算機システム20は、オブ
ジェクト24−4(オブジェクトD)を新たに別のプロ
セス21−3(プロセス#3)に配置するように変更し
たものである。すなわち、本システム20は、プロセス
21−1〜21−3(プロセス#1〜#3)という三つ
のプロセスが存在し、それぞれメッセージ通信制御部2
2およびアクタ部23で構成されている。
【0167】ここで、新たなプロセス#3が付加され、
当該プロセス#3はプロセス#1と共有メモリ32−
3,32−4を介して通信可能に構成される。したがっ
て、プロセス#3のオブジェクトDとの通信は、プロセ
ス#1内に新たに設けられたプロセスメッセージハンド
ラ29−2を介して行われることになる。なお、図19
〜図21において、P1−P2はプロセス#1からプロ
セス#2への処理であることを示し、同様にP2−P
1,P1−P3,P3−P1はプロセス#2から#1,
#1から#3,#3から#1への処理であることを示
す。
【0168】各メッセージ通信制御部22には、図22
及び図23に示すようなプロセス/スレッド対応マップ
26及びオブジェクト対応マップ27が設けられる。
【0169】したがって、オブジェクト間のメッセージ
通信においては、図11と同様な通信用メソッドによ
り、第1の実施形態と同様な処理が実行される。したが
って、同一プロセス間であっても異なるオブジェクト
間、異なるプロセス間ではプロセス#1,#2,#3の
自由な組み合わせで同期,非同期のメッセージ通信が実
現できる。
【0170】なお、本実施形態の場合、プロセス#2,
#3間の通信では、そのメッセージ及びオブジェクトI
Dは、一旦プロセス#1で中継されることになる。この
場合の処理では、メッセージハンドラキュー28−1に
格納されたオブジェクトID91がメッセージハンドラ
25−1によって取り出され、このID41に基づき、
プロセス/スレッド対応マップ26が検索される。そし
て、対応するプロセス#2,#3のプロセスメッセージ
ハンドラ29−1又は29−2に、このメッセージ及び
論理オブジェクトIDが引き渡されて、通信処理が継続
される。
【0171】以上は、第三のプロセス#3を加えたこと
による一般的な通信動作の説明であるが、さらに、同期
通信又は非同期通信の実現に関連し、第1の実施形態に
おける(7),(8)の場合を詳しく説明する。
【0172】なお、メッセージハンドラ25−1〜25
−3、プロセスメッセージハンドラ29−1〜29−4
には、それぞれ一つのスレッドが割り当てられて自律的
に動作し、このスレッドが自分自身のキューを監視す
る。一方、送信先オブジェクト24−1〜24−4につ
いては、図24でスレッドマッピングの指定を行ってい
る。送信先オブジェクト24−1、24−2及び24−
4については、スレッドが“OFF”指定されているた
め、スレッドは割り当てられない。一方、送信先オブジ
ェクト24−3については、スレッドが“ON”指定さ
れているため、一つのスレッドが割り当てられて自律的
に動作し、このスレッドが自分自身のキューを監視す
る。アクタ部23のオブジェクト24−1〜24−4を
表現し、オブジェクト24−1〜24−4のスレッドマ
ッピングに関する情報を表現したプロセス/スレッド対
応マップ26は、あらかじめ図22(b)に示す内容で
ファイルや共有メモリなどシステム稼動時に参照できる
ような形態で保管されている。
【0173】(7)プロセス間非同期メッセージ通信
(オブジェクトのスレッドあり) プロセスをまたぐオブジェクト間の非同期メッセージ通
信(オブジェクトのスレッドあり)に関し、メッセージ
通信制御部22のメッセージハンドラ25−1〜25−
2およびアクタ部23のオブジェクト24−2〜24−
3の動作を第1実施形態の図13〜図16を参照して説
明する。
【0174】オブジェクト24−2のメソッドBでオブ
ジェクト44−3に向けてメッセージCを送信すること
を考える。
【0175】図25は第2の実施形態にて用いられる各
種のメソッドの内容例を示す図である。オブジェクト2
4−2のメソッドBは、図25(d)に示す内容にな
る。メッセージは第1実施形態と同様な情報を含む。こ
こで、メッセージ関数(SendMessage)を利
用して、オブジェクト24−2からオブジェクト24−
3に向けてメッセージCが送信されると、メッセージハ
ンドラ25−1からメッセージハンドラ25−2へメッ
セージCが渡され、オブジェクト24−3の受信メソッ
ドが呼び出されるまでの処理は、第1の実施形態の
(5)と同様である。
【0176】なお、先と同様に、メッセージハンドラキ
ュー28−1に送信先オブジェクト24−3のオブジェ
クトIDとメッセージCが格納された時点でメッセージ
ハンドラ25−1の処理によりメッセージ関数は完了す
る。したがって、オブジェクト24−2は、オブジェク
ト24−3とは独立して自律的に動作することができ、
非同期メッセージ通信を実現できる。
【0177】上記の動作以降、メッセージハンドラ25
−2を経由してオブジェクト24−3の受信メソッドが
呼び出された後の処理は、第1の実施形態の(3)と同
様である。
【0178】なお、プロセス/スレッド対応マップ26
及びオブジェクト対応マップ27の内容は図22及び図
23に示すようになっており、本計算機システムは、上
記のように動作するので、プロセスの配置を変更して
も、メッセージ通信に関するプログラムには影響を与え
ることはない。
【0179】(8)プロセス間同期メッセージ通信(オ
ブジェクトのスレッドあり) さらに、プロセスをまたぐオブジェクト間の同期メッセ
ージ通信(オブジェクトのスレッドあり)に関し、メッ
セージ通信制御部22のメッセージハンドラ25−1〜
25−2およびアクタ部23のオブジェクト24−2〜
24−3の動作を第1実施形態の図13〜図16を参照
して説明する。
【0180】オブジェクト24−2のメソッドBがオブ
ジェクト24−3に向けてメッセージCを送信すること
を考える。オブジェクト24−2のメソッドBは、図2
5(d)に示す内容になる。メッセージ関数(Send
Message)を利用して、オブジェクト24−2か
らオブジェクト24−3に向けてメッセージCが送信さ
れる。さらに、メッセージハンドラ25−1からメッセ
ージハンドラ25−2にメッセージCが渡され、オブジ
ェクト24−3の受信メソッドが呼び出される処理まで
は、第1の実施形態の(7)と同様である。
【0181】ここでは同期通信を想定しているため、第
1の実施形態の(4)と同様に、オブジェクト24−2
は、オブジェクト24−3のメソッドの実行が完了する
まで待つことになる。したがって、オブジェクト24−
2は、オブジェクト24−3と同期をとって動作するこ
とができる。
【0182】上記の動作以降、メッセージハンドラ25
−2を経由してオブジェクト24−3の受信メソッドが
呼び出された後の処理は、第1の実施形態の(4)と同
様である。すなわち、オブジェクト24−3は、メッセ
ージハンドラ25−1を介してオブジェクト24−2に
オブジェクト24−3のメソッドの実行が完了したこと
を通知する。このために同期メッセージ通信を実現でき
る。
【0183】上述したように、本発明の実施の形態に係
る計算機システムは、第1の実施形態と同様な構成を設
けたので、第1の実施形態と同様な効果が得られる他、
たとえプロセスの配置を変更しても、メッセージ通信に
関するプログラムには影響を与えることなく、同期,非
同期通信を実現することができる。
【0184】(発明の第3の実施の形態)本実施形態で
は、第2の実施形態と同様な計算機システムにおける他
の動作例について説明する。したがって、その構成は、
第2の実施形態と同様である。
【0185】本実施形態においは、プロセス/スレッド
対応マップ26で与えられたスレッドマッピングに関す
る情報をシステム起動時にシステム内のオブジェクトに
反映するのみならず、システム実行時にシステム仕様と
して意図的にスレッドを起動し、停止することが容易に
実現可能であることを説明する。
【0186】ここで、オブジェクト24−3のメソッド
Cでオブジェクト24−4に向けてスレッド起動メッセ
ージ(メッセージID_Run)を送信する場合を考え
る。オブジェクト45−3のメソッドCは、図25
(e)に示す内容になる。スレッド起動メッセージもメ
ッセージの一種であるため、第1及び第2の実施形態で
説明した動作により、オブジェクト24−3にスレッド
起動メッセージが送信される。
【0187】スレッド起動メッセージ(メッセージID
_Run)は、図24(e)に示すようにスレッド起動
メソッドに対応している。さらに、スレッド起動メソッ
ドは、図25(a)で示すものである。このメソッドに
より、第1の実施形態のシステム起動時にオブジェクト
24−1〜24−4がスレッド起動メッセージを受信し
た際と同様の動作が実現される。
【0188】また、オブジェクト24−4のメソッドD
で自分自身に向けてスレッド停止メッセージ(メッセー
ジID_Terminate)を送信することを考え
る。オブジェクト25−4のメソッドDは、図25
(f)に示す内容になる。スレッド停止メッセージもメ
ッセージの一種であるため、第1及び第2の実施形態で
説明した動作により、オブジェクト25−4に対しスレ
ッド停止メッセージが送信される。
【0189】スレッド停止メッセージ(メッセージID
_Terminate)は、図24(e)に示すように
スレッド停止メソッドに対応している。さらに、スレッ
ド停止メソッドは、図25(b)で示すものである。こ
のメソッドにより、第1の実施形態のシステム停止時に
オブジェクト24−1〜24−4がスレッド停止メッセ
ージを受信した際と同様の動作が実現される。
【0190】なお、システム実行中にオブジェクト24
−1〜24−4が起動したスレッドは、システム実行中
にオブジェクト24−1〜24−4が停止することとす
る。メッセージハンドラ25−1〜25−2は、プロセ
ス/スレッド対応マップ26のスレッドマッピング指定
のあるオブジェクト24−1〜24−4についてスレッ
ドの起動および停止の責任を持つようにしているためで
ある。
【0191】上述したように、本発明の実施の形態に係
る計算機システムは、第2の実施形態と同様な構成を設
け、通信メッセージを用いてオブジェクトの起動/停止
を行うようにしたので、システム実行時にシステム仕様
として意図的にスレッドを起動し、停止することを容易
に実現することができる。すなわち、オブジェクトの生
成・破壊とスレッドの起動・停止を分離し、システム動
作中に同期通信と非同期通信を切り替えたりすることが
実現できる。
【0192】これによって、例えばシステム開発の処理
を行っているときなどに、開発中の情報を磁気ディスク
に保存したいようなときに、適宜対応オブジェクトのス
レッド状況や通信状況(同期、非同期)を変更し、効率
の良い開発作業を行うことができる。
【0193】(発明の第4の実施の形態)本実施形態
は、第1〜第3の実施形態をさらに一般化した例であ
る。その構成例を図26〜図32に示す。
【0194】同図において、プロセス1は、本実施形態
のプロセス21に対応し、同様に、メッセージ通信制御
部2,アクタ部3,オブジェクト4,メッセージハンド
ラ5,プロセス/スレッド対応マップ6,オブジェクト
対応マップ7,メッセージハンドラキュー8,プロセス
メッセージハンドラ9,プロセス送信用メッセージハン
ドラ10,プロセス受信用メッセージハンドラ11,共
有メモリ12,メッセージキュー13,メッセージマッ
プ14は、それぞれ本実施形態のメッセージ通信制御部
22,アクタ部23,オブジェクト24,メッセージハ
ンドラ25,プロセス/スレッド対応マップ26,オブ
ジェクト対応マップ27,メッセージハンドラキュー2
8,プロセスメッセージハンドラ29,プロセス送信用
メッセージハンドラ30,プロセス受信用メッセージハ
ンドラ31,共有メモリ32,メッセージキュー33,
メッセージマップ34に対応する。
【0195】この一般化構成の場合も、プロセス#1を
介することで各プロセス間のオブジェクトメッセージ通
信が実現できる。また、第1又は第2の実施形態と同様
に同期,非同期通信を実現することができる。さらに、
第3の実施形態と同様にオブジェクトの生成・破壊とス
レッドの起動・停止とを分離し、システム動作中に同期
通信と非同期通信を切り替えることができる。
【0196】(発明の第5の実施の形態)上記各実施形
態においては、同一の計算機上でメッセージ通信を実現
する場合について述べたが、本実施形態では、プロセス
が複数の計算機にまたがって存在している場合について
述べる。すなわち本実施形態にいう計算機システムはネ
ットワークシステムを含むものである。
【0197】図33は本発明の第5の実施の形態に係る
ネットワークシステムの一例を示す構成図である。図3
4及び図35は、図33のシステムにおいて、それぞれ
メッセージ通信制御部及びアクタ部の構成を詳細に示す
図である。
【0198】本実施形態の各図において、図1〜図32
と同一部分には同一符号を付して説明を省略し、ここで
は異なる部分についてのみ述べる。
【0199】このマルチプロセス/マルチスレッドネッ
トワークシステムは、計算機20−1(計算機#1)に
プロセス21−1〜21−2(プロセス#1〜#2)と
いう二つのプロセスが存在し、計算機20−2(計算機
#2)にプロセス21−3(プロセス#3)が存在し、
それぞれメッセージ制御部22とアクタ部23で構成さ
れている。また、計算機20−1と計算機20−2の間
は、データ伝送路173−1〜173−2で接続され、
ネットワークシステムを構成している。
【0200】オブジェクト間のメッセージ通信は、異な
るプロセス間(プロセス21−1とプロセス21−2)
のみならず、異なる計算機間(計算機20−1と計算機
20−2)でも行うことができるようになっている。そ
のためにメッセージ通信制御部22に計算機間のメッセ
ージ通信機能を付加した他は、第1〜第4の実施形態と
同様に構成されている。
【0201】メッセージ制御部22には、ネットワーク
内の計算機20−1〜20−2で同一内容のマシン対応
マップ175と、送信用メッセージキュー177−1〜
177−2と、受信用メッセージキュー178−1〜1
78−2とが設けられている。
【0202】図36はマシン対応マップを示す図であ
る。ここで、図36(a)はマシン対応マップの一般的
な構成を示し、図36(b)は本実施形態に対応した具
体例である。なお、プロセス/スレッド対応マップ26
及びオブジェクト対応マップ27については図示を省略
する。
【0203】メッセージハンドラ25−1〜25−3
は、第1〜第4の実施形態と同様に構成されている他、
異なる計算機間での通信となる場合には、マシン対応マ
ップ175を参照し、送信先のオブジェクトがどの計算
機20−1〜20−2のどのプロセスに存在するかを調
べるようになっている。ここで同一の計算機20−1〜
20−2に存在する場合には、第1〜第4の実施形態と
同様に動作する。
【0204】一方、異なる計算機20−1〜20−2に
存在する場合には、マシンメッセージハンドラ176−
1〜176−2を呼び出して、メッセージ通信を行う。
【0205】マシンメッセージハンドラ176−1〜1
76−2は、メッセージ受信時には、受信用メッセージ
キュー177−1から177−2に格納されている送信
先オブジェクト24−1〜24−6のオブジェクトID
とメッセージを取り出し、メッセージハンドラ25−1
〜25−3に引き渡す。一方、送信時には、送信先オブ
ジェクト24−1〜24−6のオブジェクトIDとメッ
セージを送信用メッセージキュー178−1〜178−
2に格納するとともに、送信先のマシンメッセージハン
ドラ176−1〜176−2に送信先オブジェクト24
−1〜24−6のオブジェクトIDとメッセージを送信
する。
【0206】次に、以上のように構成された本実施形態
におけるネットワークシステムでは、同一計算機内のプ
ロセス内およびプロセス間のオブジェクト間メッセージ
通信は、第1〜第4の実施形態と同様にして行われる。
【0207】また、メッセージハンドラ25−1〜25
−3がマシン対応マップ175を参照した結果、送信先
オブジェクトの存在するプロセスが異なる計算機にまた
がっていることが検出された場合には、マシンメッセー
ジハンドラ176−1〜176−2により計算機間の通
信が実行される。
【0208】この計算機間通信が行われた場合でも、送
信先オブジェクト24−1〜24−6のオブジェクトI
Dとメッセージは、送信先の計算機のメッセージハンド
ラ25−1〜25−3に送信され、さらにマシン対応マ
ップ175、プロセス/スレッド対応マップ26、オブ
ジェクト対応マップ27−1〜27−3を用いた通信管
理、通信中継などが行われる。
【0209】上述したように、本発明の実施の形態に係
る計算機システムは、第2の実施形態と同様な構成に加
え、メッセージ通信制御部22にマシン対応マップ17
5及びマシンメッセージハンドラ176を設けたので、
プロセス21−1〜21−3が異なる計算機上に配置さ
れる場合であっても、送信先オブジェクト24−1〜2
4−6のオブジェクトIDを指定するだけで、オブジェ
クト間メッセージ通信を実現することができ、上記各実
施形態と同様な効果を得ることができる。
【0210】なお、本発明は、上記各実施の形態に限定
されるものでなく、その要旨を逸脱しない範囲で種々に
変形することが可能である。また、各実施形態は可能な
限り適宜組み合わせて実施してもよく、その場合組み合
わされた効果が得られる。
【0211】また、実施形態に記載した手法は、計算機
(コンピュータ)に実行させることができるプログラム
(ソフトウエア手段)として、例えば磁気ディスク(フ
ロッピーディスク、ハードディスク等)、光ディスク
(CD−ROM、DVD等)、半導体メモリ等の記憶媒
体に格納し、また通信媒体により伝送して頒布すること
もできる。なお、媒体側に格納されるプログラムには、
計算機に実行させるソフトウエア手段(実行プログラム
のみならずテーブルやデータ構造も含む)を計算機内に
構成させる設定プログラムをも含むものである。本装置
を実現する計算機は、記憶媒体に記録されたプログラム
を読み込み、また場合により設定プログラムによりソフ
トウエア手段を構築し、このソフトウエア手段によって
動作が制御されることにより上述した処理を実行する。
【0212】
【発明の効果】以上詳記したように本発明によれば、プ
ログラムの並行処理が可能なマルチプロセス環境にあっ
て、オブジェクト指向の概念における同期メッセージ通
信及び非同期メッセージ通信を容易に実現することがで
きる計算機システム及びネットワークシステム並びに記
録媒体を提供することができる。
【0213】また、本発明によれば、オブジェクト指向
の概念における同期通信及び非同期通信の両通信方式を
プログラム変更することなく容易に変更することができ
る計算機システム及びネットワークシステム並びに記録
媒体を提供することができる。
【0214】さらに、本発明によれば、オブジェクトの
生成・破壊とオブジェクト内のスレッドの起動・停止を
分離し、システム動作中に同期通信と非同期通信を切り
替えることができる計算機システム及びネットワークシ
ステム並びに記録媒体を提供することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る計算機システ
ムの一例を示す構成図。
【図2】各プロセスにおけるメッセージ通信部の詳細構
成例を示すブロック図。
【図3】プロセス/スレッド対応マップの構成例を示す
図。
【図4】オブジェクト対応マップの構成例を示す図。
【図5】各プロセスにおけるアクタ部の詳細構成例を示
すブロック図。
【図6】スレッドが起動されたオブジェクトの詳細構成
例を示すブロック図。
【図7】メッセージマップの構成例を示す図。
【図8】メッセージハンドラの主要部分の構成例を示す
ブロック図。
【図9】システムを起動する際におけるプロセス、メッ
セージ通信制御部及びアクタ部の動作を示す流れ図。
【図10】システムを起動する際におけるプロセス、メ
ッセージ通信制御部及びアクタ部の動作を示す流れ図。
【図11】各種のメソッドの内容例を示す図。
【図12】同期通信又は非同期通信を行う場合の全体的
な考え方について説明する図。
【図13】メッセージ通信全体の処理を示す流れ図。
【図14】メッセージ通信におけるメッセージハンドラ
スレッドの処理を説明する流れ図。
【図15】メッセージ通信におけるプロセスハンドラス
レッドの処理を説明する流れ図。
【図16】メッセージ通信におけるオブジェクトの処理
を説明する流れ図。
【図17】システムを停止する際におけるプロセス、メ
ッセージ通信制御部及びアクタ部の動作を示す流れ図。
【図18】システムを停止する際におけるプロセス、メ
ッセージ通信制御部及びアクタ部の動作を示す流れ図。
【図19】本発明の第2の実施の形態に係る計算機シス
テムの一例を示す構成図。
【図20】メッセージ通信制御部の構成を詳細に示す
図。
【図21】アクタ部の構成を詳細に示す図。
【図22】プロセス/スレッド対応マップを示す図。
【図23】オブジェクト対応マップを示す図。
【図24】メッセージマップを示す図。
【図25】各種のメソッドの内容例を示す図。
【図26】本発明の第4の実施の形態に係る一般化され
た計算機システムの一例を示す構成図。
【図27】メッセージ通信制御部の構成を詳細に示す
図。
【図28】メッセージ通信制御部の構成を詳細に示す
図。
【図29】メッセージ通信制御部の構成を詳細に示す
図。
【図30】アクタ部の構成を詳細に示す図。
【図31】アクタ部の構成を詳細に示す図。
【図32】アクタ部の構成を詳細に示す図。
【図33】本発明の第5の実施の形態に係るネットワー
クシステムの一例を示す構成図。
【図34】メッセージ通信制御部の構成を詳細に示す
図。
【図35】アクタ部の構成を詳細に示す図。
【図36】マシン対応マップを示す図。
【図37】同期通信方式を用いるオブジェクト間のメッ
セージ送受を時系列順に示すシーケンス図。
【図38】非同期通信方式を用いるオブジェクト間のメ
ッセージ送受を時系列順に示すシーケンス図。
【図39】メソッド記述の例を示す図。
【符号の説明】
1−1〜1−3…プロセス#1〜#n 2…メッセージ通信制御部 3…アクタ部 4−1〜4−6…オブジェクトA〜I 5−1〜5−3…メッセージハンドラP1〜Pn 6…プロセス/スレッド対応マップ 7−1〜7−3…オブジェクト対応マップP1〜Pn 8−1〜8−3…メッセージハンドラキューP1〜P3 9−1〜9−6…プロセスメッセージハンドラP1−P
2〜Pn−Pn−1 10−1〜10−6…プロセス送信用メッセージキュー
P1−P2〜Pn−Pn−1 11−1〜11−6…プロセス受信用メッセージキュー
P2−P1〜Pn−1−Pn 12−1〜12−12…共有メモリP1−P2〜Pn−
1−Pn 13−1〜13−6…メッセージキューA〜I 14−1〜14−6…メッセージマップA〜I 21−1〜21−2…プロセス#1〜#2 22…メッセージ通信制御部 23…アクタ部 24−1〜24−4…オブジェクトA〜D 25−1〜25−2…メッセージハンドラP1〜P2 26…プロセス/スレッド対応マップ 27−1〜27−2…オブジェクト対応マップP1〜P
2 28−1〜28−2…メッセージハンドラキューP1〜
P2 29−1〜29−2…プロセスメッセージハンドラP1
−P2〜P2−P1 30−1〜30−2…プロセス送信用メッセージキュー
P1−P2〜P2−P1 31−1〜31−2…プロセス受信用メッセージキュー
P2−P1〜P1−P2 32−1〜32−2…共有メモリP1−P2〜P1−P
2 33−1〜33−4…メッセージキューA〜D 34−1〜34−4…メッセージマップA〜D 95…メソッド 96…メッセージID 97…メソッド情報 101…通信種別判定部 102…送信先判定部 103…制御戻し部 175…マシン対応マップ 176−1〜176−2…マシンメッセージハンドラP
1−P3〜P3−P1 177−1〜177−2…送信用メッセージキューP1
−P3〜P3−P1 178−1〜178−3…受信用メッセージキューP3
−P1〜P1−P3 179−1〜179−2…データ伝送路
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B045 BB52 BB53 GG01 5B089 GA04 GB01 GB10 JB22 KA10 KA12 KB06 KC28 KC44 KC47 KG05 KG10 5B098 AA10 GA02 GA04 GB13 GC16 5K034 AA19 FF01 HH01 HH02 HH11 HH12 HH14 HH54 HH63 NN12 NN22 NN24 PP03 PP04

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 マルチプロセス機能を有するオペレーテ
    ィングシステムによって複数のプロセスを生成し、プロ
    グラムを並列処理する計算機システムにおいて、 前記各プロセスは、 データと手続きとをカプセル化するものであって、通信
    メッセージを出力可能に構成された一以上のオブジェク
    トと、 通信メッセージを受信し転送するものであって、受信し
    た通信メッセージが自プロセスのオブジェクトの出力し
    たものである場合には、当該メッセージに含まれる通信
    方式情報に基づいてその通信が同期通信か非同期通信で
    あるかを調べ、同期通信である場合には前記通信メッセ
    ージの処理が完了した後に前記自プロセスのオブジェク
    トに通信の終了を通知し、非同期通信である場合には直
    ちに前記自プロセスのオブジェクトに通信の終了を通知
    するメッセージ取扱手段を有するメッセージ通信制御手
    段とを備えたことを特徴とする計算機システム。
  2. 【請求項2】 前記メッセージ通信制御手段は、 各オブジェクトがどのプロセスに属するかの情報を記録
    するプロセス対応記録部と、 通信メッセージを他のプロセスに転送し、また、他のプ
    ロセスからの通信メッセージを前記メッセージ取扱手段
    に引き渡すプロセスメッセージ取扱手段とを備え、 前記メッセージ取扱手段は、前記プロセス対応記録部を
    検索することで、受信した通信メッセージの宛先オブジ
    ェクトがどのプロセスに属するを判定し、自プロセスに
    属する場合には当該宛先オブジェクトに通信メッセージ
    を引き渡し、他のプロセスに属する場合には前記プロセ
    スメッセージ取扱手段に通信メッセージを引き渡すこと
    を特徴とする請求項1記載の計算機システム。
  3. 【請求項3】 前記メッセージ通信制御手段は、各オブ
    ジェクトについてのオブジェクト識別情報と、前記オペ
    レーティングシステムに生成されたときに各オブジェク
    トに付されたオブジェクトアドレスとの対応情報を記録
    するオブジェクト対応記録部を備え、 前記メッセージ取扱手段は、前記メッセージの宛先情報
    として前記オブジェクト識別情報のみが付されていると
    きであっても、前記オブジェクト対応記録部を検索して
    オブジェクトアドレスを取得することにより、宛先オブ
    ジェクトに前記通信メッセージを引き渡し可能とするこ
    とを特徴とする請求項1又は2記載の計算機システム。
  4. 【請求項4】 前記オペレーティングシステムは、前記
    オブジェクトを自律的に動作させるためのスレッドと通
    信メッセージ受信用のキューを生成可能に構成され、 少なくとも一以上のオブジェクトは、前記スレッド及び
    前記キューを生成又は消滅させるための指令を通信メッ
    セージとして出力可能に構成されたことを特徴とする請
    求項1乃至3に記載の計算機システム。
  5. 【請求項5】 複数の計算機が接続されてなるネットワ
    ークシステムにおいて、 請求項1乃至4のうち何れか一項に記載された複数の前
    記プロセスを、二以上の前記計算機に分散配置させたこ
    とを特徴としたネットワークシステム。
  6. 【請求項6】 マルチプロセス機能を有するオペレーテ
    ィングシステムによって生成されるプロセスを記述する
    プログラムであって、 前記プロセスを、 データと手続きとをカプセル化させたものであって、通
    信メッセージを出力させる一以上のオブジェクトと、 通信メッセージを受信させ転送させるものであって、受
    信させた通信メッセージが自プロセスのオブジェクトの
    出力したものである場合には、当該メッセージに含まれ
    る通信方式情報に基づいてその通信が同期通信か非同期
    通信であるかを調べさせ、同期通信である場合には前記
    通信メッセージの処理が完了した後に前記自プロセスの
    オブジェクトに通信の終了を通知させ、非同期通信であ
    る場合には直ちに前記自プロセスのオブジェクトに通信
    の終了を通知させるメッセージ取扱手段を有するメッセ
    ージ通信制御手段としてコンピュータ上で機能させるた
    めのプログラムを記録したコンピュータ読み取り可能な
    記録媒体。
  7. 【請求項7】 前記メッセージ通信制御手段は、通信メ
    ッセージを他のプロセスに転送させ、また、他のプロセ
    スからの通信メッセージを前記メッセージ取扱手段に引
    き渡させるプロセスメッセージ取扱手段を備え、 前記メッセージ取扱手段は、各オブジェクトがどのプロ
    セスに属するかの情報を記録するプロセス対応記録部を
    検索させることで、受信した通信メッセージの宛先オブ
    ジェクトがどのプロセスに属するを判定させ、自プロセ
    スに属する場合には当該宛先オブジェクトに通信メッセ
    ージを引き渡させ、他のプロセスに属する場合には前記
    プロセスメッセージ取扱手段に通信メッセージを引き渡
    させることを特徴とする請求項6記載の記録媒体。
  8. 【請求項8】 前記メッセージ取扱手段は、各オブジェ
    クトについてのオブジェクト識別情報と前記オペレーテ
    ィングシステムに生成されたときに各オブジェクトに付
    されたオブジェクトアドレスとの対応情報を記録させる
    オブジェクト対応記録部を検索させ、前記メッセージの
    宛先情報として前記オブジェクト識別情報のみが付され
    ているときであっても、オブジェクトアドレスを取得さ
    せることにより、宛先オブジェクトに前記通信メッセー
    ジを引き渡し可能とすることを特徴とする請求項6又は
    7記載の記録媒体。
  9. 【請求項9】 前記オペレーティングシステムは、前記
    オブジェクトを自律的に動作させるためのスレッドと通
    信メッセージ受信用のキューを生成可能に構成され、 少なくとも一以上のオブジェクトは、前記スレッド及び
    前記キューを生成又は消滅させるための指令を通信メッ
    セージとして出力させ得ることを特徴とする請求項6乃
    至8に記載の記録媒体。
JP33660499A 1999-11-26 1999-11-26 計算機システム及びネットワークシステム並びに記録媒体 Expired - Fee Related JP3762173B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33660499A JP3762173B2 (ja) 1999-11-26 1999-11-26 計算機システム及びネットワークシステム並びに記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33660499A JP3762173B2 (ja) 1999-11-26 1999-11-26 計算機システム及びネットワークシステム並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2001154862A true JP2001154862A (ja) 2001-06-08
JP3762173B2 JP3762173B2 (ja) 2006-04-05

Family

ID=18300885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33660499A Expired - Fee Related JP3762173B2 (ja) 1999-11-26 1999-11-26 計算機システム及びネットワークシステム並びに記録媒体

Country Status (1)

Country Link
JP (1) JP3762173B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318083B2 (en) 2001-08-27 2008-01-08 Ricoh Company, Ltd. Information processing system
JP2008027344A (ja) * 2006-07-25 2008-02-07 Nec Access Technica Ltd オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法
US7376948B2 (en) 2003-04-24 2008-05-20 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
JP2008146634A (ja) * 2006-10-23 2008-06-26 Korea Electronics Telecommun ネットワークロボットシステム及びネットワークロボットシステムにおける通信方法
JP2009093526A (ja) * 2007-10-11 2009-04-30 Sysmex Corp プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム
JP2010525494A (ja) * 2007-04-24 2010-07-22 オブロング・インダストリーズ・インコーポレーテッド プロテイン、プール、およびスロークス処理環境
JP2012506097A (ja) * 2008-10-14 2012-03-08 オブロング・インダストリーズ・インコーポレーテッド マルチプロセス・インタラクティブ・システムおよび方法
JP2015060247A (ja) * 2013-09-17 2015-03-30 株式会社リコー 情報処理システム、情報処理装置、プログラムおよび情報処理方法
JP2015118567A (ja) * 2013-12-18 2015-06-25 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318083B2 (en) 2001-08-27 2008-01-08 Ricoh Company, Ltd. Information processing system
US7376948B2 (en) 2003-04-24 2008-05-20 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US7962910B2 (en) 2003-04-24 2011-06-14 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
US7840965B2 (en) 2003-04-24 2010-11-23 International Business Machines Corporation Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer
JP2008027344A (ja) * 2006-07-25 2008-02-07 Nec Access Technica Ltd オブジェクト間の非同期メッセージ管理方式および非同期メッセージ管理方法
JP4527144B2 (ja) * 2006-10-23 2010-08-18 韓國電子通信研究院 ネットワークロボットシステム及びネットワークロボットシステムにおける通信方法
JP2008146634A (ja) * 2006-10-23 2008-06-26 Korea Electronics Telecommun ネットワークロボットシステム及びネットワークロボットシステムにおける通信方法
JP2010525494A (ja) * 2007-04-24 2010-07-22 オブロング・インダストリーズ・インコーポレーテッド プロテイン、プール、およびスロークス処理環境
KR101545360B1 (ko) * 2007-04-24 2015-08-19 오블롱 인더스트리즈, 인크 프로세싱 환경에서의 프로틴, 풀 및 슬럭스
JP2009093526A (ja) * 2007-10-11 2009-04-30 Sysmex Corp プロセス間通信システム、データ構造、プロセス間通信制御装置、プロセス間通信制御方法及びコンピュータプログラム
JP2012506097A (ja) * 2008-10-14 2012-03-08 オブロング・インダストリーズ・インコーポレーテッド マルチプロセス・インタラクティブ・システムおよび方法
JP2015060247A (ja) * 2013-09-17 2015-03-30 株式会社リコー 情報処理システム、情報処理装置、プログラムおよび情報処理方法
JP2015118567A (ja) * 2013-12-18 2015-06-25 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP3762173B2 (ja) 2006-04-05

Similar Documents

Publication Publication Date Title
CA2049121C (en) Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
JP2572531B2 (ja) プロセス境界にまたがってオブジェクト間の通信を行う方法及びシステム
US5060150A (en) Process creation and termination monitors for use in a distributed message-based operating system
US5999986A (en) Method and system for providing an event system infrastructure
US6157959A (en) Method and apparatus for providing portable kernel-mode support for fast interprocess communication
US6718550B1 (en) Method and apparatus for improving the performance of object invocation
US6463456B1 (en) Efficient registration for distributed transaction systems
US7424549B2 (en) System, method, and article of manufacture for using a replaceable component to select a replaceable quality of service capable network communication channel component
JPH06332870A (ja) オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置
JPH05216692A (ja) プログラム実行を管理する方法およびシステム
JP2002521765A (ja) クラスタ化された計算処理環境において実行する分散ネットワークアプリケーションの管理用リクエストを処理するための方法および装置
JPH0926925A (ja) オブジェクトの集合を管理する方法および装置
US7640549B2 (en) System and method for efficiently exchanging data among processes
US20050071811A1 (en) Achieving autonomic behavior in an operating system via a hot-swapping mechanism
US9069592B2 (en) Generic transport layer mechanism for firmware communication
JP3762173B2 (ja) 計算機システム及びネットワークシステム並びに記録媒体
JPH11259301A (ja) C++における例外の遅延投入のための方法及び装置
US20030221023A1 (en) System and method for object activation
CN115225482B (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
CN111310638A (zh) 一种数据处理方法、装置及计算机可读存储介质
JPH06348512A (ja) 資源管理コンピュータ・システム
CN112134938B (zh) 一种消息处理方法、装置、终端及计算机可读存储介质
US7552440B1 (en) Process communication multiplexer
Campos et al. The chance for Ada to support distribution and real-time in embedded systems
JP2000155692A (ja) 計算機システム及びネットワークシステム並びに記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060112

LAPS Cancellation because of no payment of annual fees