JPH0728732A - Interprocess communication method - Google Patents

Interprocess communication method

Info

Publication number
JPH0728732A
JPH0728732A JP5174262A JP17426293A JPH0728732A JP H0728732 A JPH0728732 A JP H0728732A JP 5174262 A JP5174262 A JP 5174262A JP 17426293 A JP17426293 A JP 17426293A JP H0728732 A JPH0728732 A JP H0728732A
Authority
JP
Japan
Prior art keywords
tuple
space
tuple space
request
node
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
JP5174262A
Other languages
Japanese (ja)
Inventor
Fumiaki Sato
文明 佐藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP5174262A priority Critical patent/JPH0728732A/en
Publication of JPH0728732A publication Critical patent/JPH0728732A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 木構造を持つ名前でアクセスすることができ
るタプルスペース型のプロセス間通信を安全で効率的に
行なう。 【構成】 タプルスペースを木構造の名前でアクセスす
る要求分析・転送・処理部500と、タプルに付与され
たプロセスの識別子からタプルスペースアクセスを制御
し、有効時間の設定により効率的なアクセス方式を提供
するタプルスペース管理部700と、ネットワークを経
由して他のノードのタプルスペース管理部と通信するこ
とでタプルスペースの複製を作成及び管理を行なうネッ
トワーク制御部600から構成される。 【効果】 複数のタプルスペースが存在するタプルスペ
ース型通信機構において、タプルスペースを木構造の名
前によってアクセスすることで、柔軟なタプルの指定を
可能とし、また、タプルのアクセス制御、タプルスペー
スの複数ノード上のコピーによって安全性と信頼性を向
上させることができる。
(57) [Summary] (Modified) [Purpose] Performing tuple space type inter-process communication that can be accessed by a name with a tree structure in a safe and efficient manner. [Configuration] A request analysis / transfer / processing unit 500 that accesses a tuple space by a tree-structured name, and tuple space access is controlled from the process identifier assigned to the tuple, and an effective access method is set by setting the effective time. A tuple space management unit 700 provided and a network control unit 600 that creates and manages a duplication of a tuple space by communicating with a tuple space management unit of another node via a network. [Effect] In a tuple space type communication mechanism in which multiple tuple spaces exist, it is possible to specify tuples flexibly by accessing tuple spaces by tree structure names. In addition, tuple access control and multiple tuple spaces can be specified. Copying on nodes can improve security and reliability.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明は、タプルスペースと呼
ばれる共有データエリアと、タプルと呼ばれる構造化さ
れたデータを使って、複数の分散したプロセス間におい
て情報伝送を行なうプロセス間通信方式に関するもので
ある。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an interprocess communication system for transmitting information between a plurality of distributed processes using a shared data area called a tuple space and structured data called a tuple. is there.

【0002】[0002]

【従来の技術】複数の計算機がネットワークによって結
合された構成をとる、マルチプロセッサシステムにおい
ては、並列処理を中心としたデータ処理の高速化実現が
重要課題となっており、そのためのプロセス間の同期方
式、通信方式に関して種々の提案が成されている。例え
ば米国におけるLinda計算モデルでは、マルチプロ
セッサシステムに、タプルスペースと呼ばれる共有デー
タ領域を仮想的に実現し、この共有データ領域に対して
タプルと呼ばれる構造化データの入出力を通してプロセ
ス間で情報伝送を行なうようにしたものであり、タプル
は複数のプロセスから共通に並行してアクセスされるた
め、効率的な並行処理が実現できるというものである。
2. Description of the Related Art In a multiprocessor system having a configuration in which a plurality of computers are connected by a network, it is an important issue to realize high-speed data processing centered on parallel processing. Various proposals have been made regarding methods and communication methods. For example, in the Linda calculation model in the United States, a shared data area called a tuple space is virtually realized in a multiprocessor system, and information is transmitted between processes through input / output of structured data called a tuple for this shared data area. Since tuples are commonly accessed in parallel by a plurality of processes, efficient parallel processing can be realized.

【0003】タプルスペース間通信の基本動作について
図32に基づいて説明する。まず、プロセス間の通信
は、タプルスペースへのタプルの投入“out”、タプ
ルの取り出し“in”、及びタプルの読み出し“rea
d”で行ない、タプルスペースに存在するタプルの型お
よび構造と、“in”及び“read”の引数の型およ
び構造とのパターンマッチングによって取り出されるタ
プルが決まる。図32(a)は、タプルスペースに
(“aaa”,“bbb”,“ccc”),及び(4,
“abc”)の二つのタプルがはじめに存在している様
子を示している。この状態で、プロセスAとプロセスB
がそれぞれout(“abc”),out(“xy
z”,20)によってタプルを投入する場合を考える。
プロセスAから、[OUT,〈string〉,“ab
c”]というメッセージがタプルスペースに送信され
る。ここで、OUTはout要求を示すメッセージ識別
子、〈string〉はタプルの型と構造を示す情報、
“abc”は実際のデータ情報である。同様に、プロセ
スBからは[OUT,〈string,int〉,“x
yz”,20]がタプルスペースに送られる。すると、
図32(b)に示したようにタプルスペースはこれらの
タプルを登録し、新たに(“abc”),(“xy
z”,20)のタプルが登録される。次に、プロセスC
がタプルスペースに対してin(char *buf,
int x)によって文字列と整数の並びのタプルの取
り出しを要求する場合を考える。プロセスCからは[I
N,〈string,int〉]というメッセージが送
信される。すると、タプルスペースではそのような並び
のタプルに該当する(“xyz”,20)を検索してプ
ロセスCに応答として返送する。この時、同時にタプル
スペースからは、図32(c)に示した如く該当タプル
が削除される。次に、図32(b)においてプロセスD
がタプルスペースに対してread(int y,ch
ar *buf)によって整数と文字列の並びのタプル
の読み出し(取り出し動作とは異なる)を要求する場合
を考える。プロセスDからは[READ,〈int,s
tring〉]というメッセージが送信される。する
と、タプルスペースではそのような並びのタプルに該当
する(4,“abc”)を検索しプロセスDに応答とし
て返送する。但し、この場合はタプルスペースからその
タプルは削除されない。また、図32(c)においてプ
ロセスEが、タプルスペースに対してin(int
m,int n)によって、整数と整数の並びのタプル
の取り出しを要求する場合を考える。プロセスEからは
[IN,〈int,int〉]というメッセージが送信
される。しかし、タプルスペースにはそのような並びの
タプルは存在しない為、プロセスEへの応答処理はブロ
ック(保留)される。このブロック状態は、この要求に
対応するタプルが投入された時点で解除され、プロセス
Eへ応答が返る。
The basic operation of communication between tuple spaces will be described with reference to FIG. First, communication between processes is performed by inputting a tuple into a tuple space “out”, extracting a tuple “in”, and reading a tuple “rea”.
The tuple extracted by the pattern matching between the tuple type and structure existing in the tuple space and the argument type and structure of "in" and "read" is performed by the "d". Fig. 32 (a) shows the tuple space. To (“aaa”, “bbb”, “ccc”), and (4
It shows that two tuples of "abc" exist first. In this state, process A and process B
Are out (“abc”) and out (“xy”, respectively.
Consider the case where a tuple is input by z ″, 20).
From process A, select [OUT, <string>, “ab
The message "c"] is transmitted to the tuple space. Here, OUT is a message identifier indicating an out request, <string> is information indicating the tuple type and structure, and
“Abc” is the actual data information. Similarly, from the process B, [OUT, <string, int>, “x
yz ", 20] is sent to the tuple space.
As shown in FIG. 32B, the tuple space is registered with these tuples, and new ("abc") and ("xy" are registered.
The tuple of z ″, 20) is registered. Next, process C
For tuple space in (char * buf,
Consider a case where a tuple of a sequence of a character string and an integer is requested by int x). From process C [I
N, <string, int>] message is sent. Then, the tuple space retrieves ("xyz", 20) corresponding to such a tuple and returns it to the process C as a response. At this time, the tuple is deleted from the tuple space at the same time, as shown in FIG. Next, referring to FIG.
Read (int y, ch for tuple space
Consider a case where a tuple of an array of an integer and a character string is requested to be read (different from the fetch operation) by ar * buf). From process D [READ, <int, s
message> is sent. Then, the tuple space retrieves (4, "abc") corresponding to such a tuple and returns it to the process D as a response. However, in this case, the tuple is not deleted from the tuple space. In addition, in FIG. 32C, the process E is in (int
Consider a case where a tuple of an integer and a sequence of integers is requested to be fetched by m, int n). The process E sends a message [IN, <int, int>]. However, the tuple space does not have such a tuple, and therefore the response processing to the process E is blocked (held). This block state is released when the tuple corresponding to this request is input, and a response is returned to the process E.

【0004】しかし、Linda計算モデルでは、この
タプルスペースが一つしか存在しないため、異なるプロ
セス間でタプルが衝突した場合に誤った動作をするとい
う危険性がある。また、タプルの数が増加すると、タプ
ルスペースに存在するタプル検索時間もそれに応じて増
加していくという問題があった。更に、プログラムのモ
ジュール性を考慮した場合、すべてのプロセスに全ての
タプルが見えるような計算モデルにおいては情報の構造
化ができないという問題があった。これに対して、タプ
ルスペースの構造化に関する幾つかの提案がなされては
きた。例えば、九州大学で開発されたCellulaモ
デルや、特開平4−287121は、複数のタプルスペ
ースを生成することで、プログラムのモジュール化やタ
プルの衝突回避、タプルの検索時間の向上を実現しよう
としたものである。
However, in the Linda calculation model, since there is only one tuple space, there is a risk of erroneous operation when tuples collide between different processes. Further, there is a problem that when the number of tuples increases, the tuple search time existing in the tuple space also increases accordingly. Further, when considering the modularity of the program, there is a problem that information cannot be structured in a calculation model in which all tuples are visible to all processes. On the other hand, some proposals have been made regarding the structuring of tuple spaces. For example, the Cellula model developed at Kyushu University and Japanese Patent Laid-Open No. 4-287121 tried to realize modularization of a program, collision avoidance of tuples, and improvement of tuple search time by generating multiple tuple spaces. It is a thing.

【0005】図33に特開平4−287121における
実施例を示す。図33(a)は、実施例のブロック図で
あり、この図では、いくつかのプロセッサエレメントが
ネットワークで接続されており、そのネットワークに共
有メモリが接続され、その共有メモリ上にタプルスペー
スが実現されている。図33(b)はタプルスペースの
内部構造の例である。ここで#ORG、#A、#B、#
Cはタプルスペースである。Linda計算モデルの基
本コンセプトに対応付けるとすれば、#ORGのタプル
スペースだけが存在する場合を考えればよい。タプルス
ペース#Cは、図33(a)の定義により#ORGのタ
プルを継承する関係にある。つまり、#ORG内にあっ
て他のタプルスペース内に含まれていない領域に存在す
るタプルも、#Cへのアクセスで操作可能となることを
意味する。このように、スコープが限定されたタプルス
ペースを定義することにより、関係しないタプルスペー
スの検索作業がなくなることからタプルの検索効率を向
上させることが可能となり、タプル間の衝突も少なくな
るというものである。
FIG. 33 shows an embodiment of Japanese Patent Laid-Open No. 4-287121. FIG. 33A is a block diagram of an embodiment, in which some processor elements are connected by a network, a shared memory is connected to the network, and a tuple space is realized on the shared memory. Has been done. FIG. 33B shows an example of the internal structure of the tuple space. Where #ORG, #A, #B, #
C is a tuple space. Associating with the basic concept of the Linda calculation model, it is sufficient to consider the case where only the tuple space of #ORG exists. The tuple space #C has a relationship of inheriting the tuple of #ORG according to the definition of FIG. That is, it means that a tuple existing in an area within #ORG but not included in another tuple space can be operated by accessing #C. By defining a tuple space with a limited scope in this way, it is possible to improve the efficiency of tuple search because there is no need to search tuple spaces that are not related, and collisions between tuples are reduced. is there.

【0006】[0006]

【発明が解決しようとする課題】従来のタプルスペース
型通信は以上のように構成されているので、実際にネッ
トワーク上に複数のタプルスペースを作成し、それを使
って効率的に信頼性の高い通信を実現しようとすると、
以下のような問題点があった。
Since the conventional tuple space type communication is configured as described above, a plurality of tuple spaces are actually created on the network, and the tuple space type communication is effectively and highly reliable. When trying to realize communication,
There were the following problems.

【0007】問題点1:複数のタプルスペース基づくタ
プルスペース型通信を行なうためには、タプルスペース
間の関係を定義したり、その関係を利用してタプルスペ
ースを指定することが必要になる。例えば、「あるタプ
ルスペースは、もう一つのタプルスペースの子供」とい
う関係で階層的に関連づけを行なう場合、「あるタプル
スペースの子供全て」というグループ化した指定方法
や、「あるタプルの親」という間接的な指定方法が必要
となるが、この様な柔軟な指定方法が考慮されることは
なかった。また、ネットワーク上に分散したタプルスペ
ースを指定する場合においても、ネットワーク上の存在
位置を指定するための柔軟性のある指定方法は存在しな
かった。
Problem 1: In order to perform tuple space type communication based on a plurality of tuple spaces, it is necessary to define the relationship between the tuple spaces and to specify the tuple space using the relationship. For example, when hierarchically associating "a tuple space is a child of another tuple space" with a grouping specification method of "all children of a tuple space" or "parent of a tuple space" An indirect designation method is required, but such a flexible designation method was not considered. Further, even when tuple spaces dispersed on the network are designated, there is no flexible designation method for designating the existing position on the network.

【0008】問題点2:従来のタプルスペース通信で
は、タプルの投入や取り出しに関してセキュリティを考
慮されることはまったくなかった。その結果、タプルス
ペースに投入されたタプルは、そのタプルスペースを検
索している全てのプロセスから見えてしまい、セキュリ
ティ上の問題となっていた。
Problem 2: In the conventional tuple space communication, security has never been taken into consideration when inputting or taking out tuples. As a result, the tuples that have been put into the tuple space are visible to all processes that are searching the tuple space, which is a security problem.

【0009】問題点3:従来のタプルスペース通信で
は、タプルが投入されたかどうかだけを知りたい場合に
おいても、タプルの読み出しというタプルのデータの転
送処理が必要となっていた。そのため、特に他のプロセ
スからのタプルの投入をトリガとして動作するようなア
プリケーションプログラムを記述する場合において、効
率を犠牲にしなければならないという問題点があった。
Problem 3: In the conventional tuple space communication, the tuple data transfer process of reading the tuple is necessary even when it is desired to know only whether or not the tuple has been input. Therefore, there is a problem that efficiency must be sacrificed particularly when writing an application program that operates by using a tuple input from another process as a trigger.

【0010】問題点4:タプルスペースには、プロセス
によって取り出されることなく蓄積されたままのタプル
が存在する場合がある。これは、タプルスペースの管理
機構に無駄な負荷を掛け、記憶容量を浪費することにな
る。また、これをクライアントが管理する場合、タプル
が取り出されたことを問い合わせたり、タプルが存在す
る場合に取り出す処理を行なったりするための手間が掛
かるという問題点があった。
Problem 4: There may be tuples in the tuple space that have not been fetched by the process but have been accumulated. This imposes an unnecessary load on the tuple space management mechanism and wastes the storage capacity. In addition, when this is managed by the client, there is a problem that it takes time and effort to inquire that the tuple has been taken out and to take out the tuple when the tuple exists.

【0011】問題点5:タプルスペースに対して、型お
よび構造情報に比べてデータ情報のサイズが大きなタプ
ルを投入する場合、型及び構造情報は既にタプルスペー
スに到着しているにも拘らず、データ情報が到着してい
ないためにタプルの検索対象に含まれず、それを取りだ
そうとするとプロセスの処理が長時間ブロックされると
いう問題点があった。
Problem 5: When a tuple whose data information size is larger than the type and structure information is input to the tuple space, the type and structure information has already arrived in the tuple space, Since the data information has not arrived, it is not included in the tuple search target, and there is a problem that the processing of the process is blocked for a long time when trying to retrieve it.

【0012】問題点6:従来タプルスペースの分割は行
なわれていても、その分割された個々のタプルスペース
はシステムにそれぞれ一つであるため、ある一つのタプ
ルスペースを使って通信しているプロセスは、そのタプ
ルスペースの管理機構に障害が発生すると通信できなく
なるという問題点があった。
Problem 6: Even though the tuple space is divided in the past, since each divided tuple space is one in the system, a process communicating using a certain tuple space Has a problem that communication cannot be established if a failure occurs in the tuple space management mechanism.

【0013】問題点7:従来、タプルスペースに対して
は、一回のタプル投入操作において、一つのタプルしか
投入することしか許していなかったため、複数のタプル
の投入に要する通信コストが大きくなり、プロセス間通
信を効率的に行なえないという問題点があった。
Problem 7: Conventionally, in the tuple space, only one tuple was allowed to be thrown in one tuple throwing operation, so that the communication cost required to throw a plurality of tuples was increased, There is a problem that interprocess communication cannot be performed efficiently.

【0014】問題点8:従来、タプルスペースに対し
て、一回のタプル取り出しおよび読み込み操作では、一
つのタプルの取り出し、または読み出ししか許していな
かった。そのため、複数のタプルの取り出しあるいは読
み出しに要する通信コストが大きくなり、プロセス間で
通信を効率的に行なえないという問題点があった。
Problem 8: Conventionally, with respect to the tuple space, only one tuple extraction or read operation is allowed in one tuple extraction and read operation. Therefore, there is a problem that the communication cost required for extracting or reading out a plurality of tuples increases, and communication between processes cannot be performed efficiently.

【0015】問題点9:従来、タプルスペースに対する
取り出し、あるいは読み出し処理に対して、ある一定時
間内に検索結果を得られない場合や、一定時間に検索処
理が完了せずに応答が返らない場合に対応した例外処理
などを扱うことはできなかった。
Problem 9: Conventionally, when the retrieval result for the tuple space or the reading process cannot be obtained within a certain period of time, or the retrieval process is not completed within a certain period of time and no response is returned. It was not possible to handle exception handling etc.

【0016】この発明は、上記のような問題点を解消す
るためになされたもので、複数のタプルスペースを用い
て通信を行なうタプルスペース型の通信方式に対して、
(1)タプルスペース間の関係を定義する方式を与える
ことによって、タプルスペースの柔軟な指定方式を可能
とし、(2)タプルスペース通信で問題となるセキュリ
ティを向上させ、(3)タプルの投入をトリガとするよ
うなアプリケーションに対しても効率的な動作を可能と
したものである。また、(4)タプルスペースに長期に
渡って存在するタプルによるタプルスペースの無駄な領
域を管理する手間を省き、(5)タプルスペースでのタ
プルの検索において検索処理をデータの到着に先行して
行なわせることを可能とし、(6)分散したタプルスペ
ースの管理の信頼性の向上を目的としたものである。さ
らに、(7)複数のタプルが連結されたタプルの投入処
理を可能とし、(8)複数のタプルの取り出しや読み出
しを可能とすると同時に、(9)時間を指定したタプル
の操作を可能とする通信機構の実現を目的としたもので
ある。
The present invention has been made in order to solve the above-mentioned problems, and provides a tuple space type communication system for performing communication using a plurality of tuple spaces.
(1) By giving a method that defines the relationship between tuple spaces, it is possible to specify a flexible tuple space, (2) improve security that is a problem in tuple space communication, and (3) input tuples. It enables efficient operation even for applications that use triggers. In addition, (4) it is possible to save the trouble of managing a wasteful area of the tuple space due to tuples existing in the tuple space for a long period of time, and (5) search processing prior to the arrival of data in the tuple search in the tuple space. (6) The purpose is to improve the reliability of management of dispersed tuple spaces. Furthermore, (7) it is possible to input a tuple in which a plurality of tuples are connected, (8) it is possible to take out and read out a plurality of tuples, and at the same time, (9) it is possible to operate a tuple with a designated time. It is intended to realize a communication mechanism.

【0017】[0017]

【課題を解決するための手段】この発明によるプロセス
間通信機構では、タプルスペースの階層関係やネットワ
ーク上の存在位置に対応付けられた、木構造を持つ名前
を利用してタプルスペースを解析する手段と、その解析
結果に基づいてネットワーク上に分散しているタプルス
ペースをアクセスする手段を備えるようにしたものであ
る。
In the inter-process communication mechanism according to the present invention, a means for analyzing a tuple space by using a name having a tree structure, which is associated with a hierarchical relationship of tuple spaces or a location on the network. And a means for accessing tuple spaces dispersed on the network based on the analysis result.

【0018】また、タプルスペースにアクセスするプロ
セスに対して、特定のグルーピングとそのグループを識
別するためのIDを付与する機構を具備し、特定のID
を与え、そのIDを使ってタプルスペースのタプルに対
するアクセスを制御するタプルスペースアクセス管理手
段を備えるようにしたものである。
Further, the process for accessing the tuple space is provided with a mechanism for giving a specific grouping and an ID for identifying the group, and the specific ID
Is provided, and a tuple space access management means for controlling access to a tuple of the tuple space using the ID is provided.

【0019】また、タプルスペースの管理機構に対して
目的とするタプルの型および構造情報を予め登録する為
の手段と、前記タプルが存在しているか、あるいは投入
されたかどうかを前記プロセスに通知する手段をタプル
スペース管理機構に備えるようにしたものである。
Further, means for pre-registering the type and structure information of the target tuple with respect to the tuple space management mechanism, and notifying the process whether the tuple exists or has been input. A means is provided for the tuple space management mechanism.

【0020】また、タプルスペース通信におけるタプル
の特定フィールドにタプルスペースにおける存在期間を
設定できるようにして、タプルに設定された消滅時間を
前記フィールドのデータ構造から解釈する手段と消滅時
間経過情報に基づいて指定されたタプルを削除するため
の手段を備えるようにしたものである。
Also, the existence period in the tuple space can be set in a specific field of the tuple in the tuple space communication, and means for interpreting the disappearance time set in the tuple from the data structure of the field and the disappearance time elapsed information are used. Means for deleting the tuple designated by the above.

【0021】また、一つのタプルに大量のデータが含ま
れる場合、あるいは多くのタプルを同時にタプルスペー
スに置く必要が生じた場合に、タプルの検索に必要な型
情報や構造情報をデータ情報とは別に先に送るタプル分
割送信手段と、分割されたタプルを認識しデータ情報の
到着を待たずに先行して検索処理を行なうタプル検索手
段を設けるようにしたものである。
When a large amount of data is contained in one tuple, or when it becomes necessary to place many tuples in the tuple space at the same time, the type information and structure information required for tuple retrieval are referred to as data information. Separately, a tuple division transmission means to be sent first and a tuple retrieval means for recognizing the divided tuples and performing retrieval processing in advance without waiting for arrival of data information are provided.

【0022】また、一つのタプルスペースが複数のノー
ドに存在する場合にコピーに関する管理情報を管理する
タプルスペース管理手段と、あるノードに存在するタプ
ルスペース管理情報を他のノードに通知する管理情報転
送手段と自ノード上のタプルスペース管理手段との通信
に不具合が発生した場合に、他ノード上のタプルスペー
ス管理手段との通信を可能とする通信手段を備えるよう
にしたものである。
In addition, when one tuple space exists in a plurality of nodes, a tuple space management means for managing the management information about the copy, and a management information transfer for notifying the tuple space management information existing in a certain node to another node. A communication means is provided which enables communication with the tuple space management means on another node when a failure occurs in communication between the means and the tuple space management means on the own node.

【0023】また、複数のタプルをまとめて一つのメッ
セージに変換するタプル連結手段と、タプルスペースに
送られたメッセージから通常の単一のタプルか連結され
たタプルかを判断するメッセージ解析手段と、その解析
手段での解析結果から複数のタプルが連結されている場
合にメッセージを分解するメッセージ分割手段と、実際
にタプルの管理テーブルへの登録を行なうタプルスペー
ス管理手段を備えるようしたものである。
Further, a tuple concatenation means for collectively converting a plurality of tuples into one message, and a message analysis means for judging whether the message sent to the tuple space is a normal single tuple or a concatenated tuple. A message dividing means for decomposing a message when a plurality of tuples are linked from the analysis result by the analyzing means and a tuple space managing means for actually registering the tuple in the management table are provided.

【0024】さらに、プロセスがタプルの取り出し要求
に対する応答のタプルの個数を指定するための要求の形
式と、その形式を解釈するタプル操作解釈手段と、タプ
ルスペースから実際に複数のタプルを取り出すタプルス
ペース管理手段と、複数のタプルを一つのタプルにまと
めるタプル連結手段と、プロセス側で連結されたタプル
を解析して分割するためのタプル分割手段を備えるよう
にしたものである。
Further, the format of the request for the process to specify the number of tuples in response to the tuple extraction request, the tuple operation interpretation means for interpreting the format, and the tuple space for actually extracting a plurality of tuples from the tuple space. A management means, a tuple connecting means for collecting a plurality of tuples into one tuple, and a tuple dividing means for analyzing and dividing the tuples connected on the process side are provided.

【0025】加えて、タプルをタプルスペースから取り
出したり読み込んだりする要求に制限時間を設定するた
めの要求の形式と、その形式を解釈しタプルスペース操
作に設定された制限時間を得る要求解釈手段と、要求の
制限時間をタイマによって計測して制限時間が経過した
場合にそのことを要求管理手段に送るタイマ管理手段
と、タイマ管理手段からの通知を受けると対応する未処
理要求の処理を打ち切って制限時間超過の情報を要求し
たプロセスに返す要求管理手段を備えるようにしたもの
である。
In addition, a request format for setting a time limit for a request for fetching or reading a tuple from a tuple space, and request interpreting means for interpreting the format to obtain the time limit set for the tuple space operation. , A timer managing means for measuring the time limit of a request by a timer and sending the time limit to the request managing means when the time limit has passed, and when the notification from the timer managing means is received, the processing of the corresponding unprocessed request is terminated. A request management means for returning information indicating that the time limit has been exceeded to the requesting process is provided.

【0026】[0026]

【作用】この発明によるプロセス間通信機構では、タプ
ルスペースの階層関係やネットワーク上の存在位置に対
応付けられた、木構造を持つ名前を利用してタプルスペ
ースを識別するようにしたのでタプルスペースの階層関
係や存在位置などの指定を柔軟に行なうことができる。
In the inter-process communication mechanism according to the present invention, the tuple space is identified by using a tree-structured name that is associated with the hierarchical relationship of the tuple space and the existing position on the network. It is possible to flexibly specify the hierarchical relationship and the location.

【0027】また、タプルスペースにアクセスするプロ
セスに対して、特定のグルーピングとそのグループを識
別するためのIDを付与する機構を用いて、特定のID
を与え、そのIDを使ってタプルスペースのタプルに対
するアクセスを制御するようにしたのでタプルスペース
型通信のセキュリティ機能を向上させることができる。
Further, a process of accessing the tuple space is given a specific ID by using a mechanism for giving a specific grouping and an ID for identifying the group.
And the ID is used to control access to the tuple space tuple, so that the security function of the tuple space communication can be improved.

【0028】また、タプルスペースの管理機構に対して
目的とするタプルの型および構造情報を登録し、タプル
が存在しているかあるいは投入されたかどうかを通知す
る機構をタプルスペース管理機構に付加するようにした
ので、タプルが投入されたことをトリガとして動作する
ようなアプリケーションプログラムの記述が容易にな
る。
Also, a mechanism for registering the type and structure information of the target tuple to the tuple space management mechanism and notifying whether the tuple exists or has been input should be added to the tuple space management mechanism. Thus, it becomes easy to write an application program that operates by using the input of a tuple as a trigger.

【0029】また、タプルスペース通信におけるタプル
の特定フィールドにタプルスペースにおける存在期間を
設定できるようにして、タプルスペースの管理機構がそ
の期限切れを検知するようにしたので、塵として取り残
されたタプルを廃棄することでタプルスペースの記憶領
域の有効利用を可能とし、管理の手間を削減することが
可能となる。
Further, the existence period of the tuple space can be set in a specific field of the tuple space in the tuple space communication so that the tuple space management mechanism can detect the expiration of the tuple space. Therefore, the tuple left as dust is discarded. By doing so, it is possible to effectively use the storage area of the tuple space and reduce the labor of management.

【0030】また、一つのタプルに大量のデータが含ま
れる場合、あるいは多くのタプルを同時にタプルスペー
スに置く必要が生じた場合に、タプルの検索に必要な型
情報や構造情報をデータ情報とは別に先に送り、タプル
スペース管理部では、データ情報の到着をまたずに検索
処理を行なうようにしたので、データの転送時間に依存
せずにタプルの検索が開始でき、効率的に通信すること
が可能となる。
When one tuple contains a large amount of data, or when many tuples need to be placed in the tuple space at the same time, the type information and structure information necessary for tuple retrieval are referred to as data information. Separately, the tuple space management unit performs the search processing without arriving at the arrival of data information, so tuple search can be started without depending on the data transfer time, and efficient communication can be performed. Is possible.

【0031】また、タプルスペースのコピーを複数の計
算機上に作成し、一つのタプルスペースを複数の管理機
構によって管理させ、一つのタプルスペースのコピーに
変更が生じると、その変更をコピーが存在するすべての
計算機に転送しその状態を同一に保つようにしたので、
プロセスがどのコピーに対してアクセスしても同じ結果
を得られるようになり、タプルスペースに障害が発生し
た場合においも他の正常なタプルスペースをアクセスす
ることで安定した通信機能を保持でき、障害発生に対す
る信頼性を高めることができる。
Further, when a copy of a tuple space is created on a plurality of computers, one tuple space is managed by a plurality of management mechanisms, and when a change occurs in a copy of one tuple space, the copy exists. Since I transferred it to all computers and kept the state the same,
The same result can be obtained regardless of which copy the process accesses, and even if a tuple space fails, stable communication function can be maintained by accessing another normal tuple space, and the failure occurs. The reliability with respect to the occurrence can be improved.

【0032】また、タプルスペースにタプルを複数投入
する必要が生じた場合、複数のタプルを一つに連結し、
一度の投入処理によって複数のタプルをタプルスペース
に送信できるようにしたので、タプル送信の通信コスト
削減に伴なう効率的な通信が可能となる。
When it is necessary to put a plurality of tuples in the tuple space, a plurality of tuples are connected to one another,
Since a plurality of tuples can be transmitted to the tuple space by one-time insertion processing, efficient communication can be performed with a reduction in communication cost of tuple transmission.

【0033】更に、タプルスペースから連結して同じ型
や構造を持つタプルの取り出しあるいは読み出しが必要
となった場合、取り出しあるいは読み出しの要求の定義
方法に、必要なタプル数を定義することができるように
し、またタプルスペース管理機構ではその必要タプル数
に応じたタプルを取り出す、あるいは読み出す操作とそ
れらを連結して一つのメッセージにする操作を可能にし
たので、一度の要求で複数のタプルを取り出すことが可
能となり、タプルの取り出しや読み出し処理に帰因した
通信コストを削減し、効率的な通信が可能となる。
Further, when it is necessary to extract or read out tuples having the same type and structure by connecting from the tuple space, the required number of tuples can be defined in the method of defining the request for extraction or read out. In addition, the tuple space management mechanism makes it possible to retrieve tuples according to the required number of tuples, or to concatenate them with a read operation to make one message, so multiple tuples can be retrieved with one request. It becomes possible to reduce the communication cost due to the tuple extraction and read processing, and the efficient communication becomes possible.

【0034】加えて、タプルの操作に有効期限を設定し
て要求する方法と、その有効期限を解釈する処理機構
と、有効期限を監視する機構を設けたので、その有効期
限が切れた場合にその旨を要求の発行者に返送し、有効
期限内に検索できたタプルの取り出し結果や読み出し結
果の返送や、また有効時間切れに対する例外処理の設定
などが容易に行なえるようになる。
In addition, since a method for setting and requesting an expiration date for a tuple operation, a processing mechanism for interpreting the expiration date, and a mechanism for monitoring the expiration date are provided, when the expiration date expires. It will be returned to the issuer of the request, and it will be possible to easily return the tuple retrieval result and the retrieval result that have been searched within the expiration date, and to set exception processing for expiration of the expiration time.

【0035】[0035]

【実施例】【Example】

実施例1.本発明の実施例1について、図1〜図7に基
づいて説明する。図1は、この発明の実施例1のプロセ
ス間通信を表す構成図である。図1では、複数の計算機
100がネットワーク400で接続されており、それぞ
れの計算機上では、プロセス200が動作している。各
計算機上では、タプルスペース型のプロセス間通信を提
供するタプルスペース通信機構300が動作している。
Example 1. Example 1 of the present invention will be described with reference to FIGS. 1 is a block diagram showing interprocess communication according to a first embodiment of the present invention. In FIG. 1, a plurality of computers 100 are connected by a network 400, and a process 200 is operating on each computer. A tuple space communication mechanism 300 that provides tuple space type inter-process communication is operating on each computer.

【0036】図2は、図1におけるプロセスとタプルス
ペース通信機構300の詳細構成図である。ここで、メ
ッセージ処理部260は、プロセス200とタプルスペ
ース通信機構300との通信を制御する部分である。プ
ロセス200は、対象とするタプルスペース名205、
タプルスペース730に投入するタプル210、タプル
スペース730に対する操作を示す操作識別子220、
オプション的な情報としてのタプル操作付加情報230
を保持している。プロセス200側のメッセージ処理部
260は、これらの情報を組立ててメッセージ240と
してタプルスペース通信機構300に送信したり、また
受信したメッセージ240から処理結果250や受信し
たタプル210を切り出す処理を行なう。
FIG. 2 is a detailed block diagram of the process and tuple space communication mechanism 300 in FIG. Here, the message processing unit 260 is a part that controls communication between the process 200 and the tuple space communication mechanism 300. The process 200 uses the tuple space name 205 as a target,
A tuple 210 to be input into the tuple space 730, an operation identifier 220 indicating an operation on the tuple space 730,
Tuple operation additional information 230 as optional information
Holding The message processing unit 260 on the process 200 side assembles these pieces of information and sends them as a message 240 to the tuple space communication mechanism 300, and also cuts out the processing result 250 and the received tuple 210 from the received message 240.

【0037】タプルスペース通信機構300側のメッセ
ージ処理部260では、プロセス200からのメッセー
ジ240を受信すると、その受信した情報を要求分析・
転送・処理部500に送る。要求分析・転送・処理部5
00では、タプルスペース名205の情報を基に、タプ
ルスペース730が存在するノードを特定し、それが自
分のノードに存在する場合、タプルスペース管理部70
0に対して処理の要求を行ない、タプルスペース管理部
は処理結果をメッセージ処理部260を使ってプロセス
200に返す。要求分析・転送・処理部500はタプル
スペース名205の解析の結果、タプルスペース730
が他のノード上に存在すると判断した場合には、自分の
ノードのネットワーク制御部600を使って他のノード
上のネットワーク制御部600に要求を転送する。要求
の転送を受けた他ノード上のネットワーク制御部600
は、転送されてきた要求を自分のノードのタプルスペー
ス管理部700によって実行し、結果を要求元のネット
ワーク制御部600に返す。要求元のネットワーク制御
部600が、処理結果を要求分析・転送・処理部500
に返すと、要求分析・転送・処理部500はメッセージ
処理部260を通してプロセス200に処理結果を送
る。
When the message processing unit 260 on the tuple space communication mechanism 300 side receives the message 240 from the process 200, the received information is subjected to request analysis / analysis.
It is sent to the transfer / processing unit 500. Request analysis / transfer / processing unit 5
In 00, the node in which the tuple space 730 exists is identified based on the information of the tuple space name 205, and if it exists in its own node, the tuple space management unit 70
The tuple space management unit returns the processing result to the process 200 by using the message processing unit 260. The request analysis / transfer / processing unit 500 analyzes the tuple space name 205 and returns tuple space 730.
If it is determined that the node exists on another node, the request is transferred to the network controller 600 on the other node using the network controller 600 of the own node. Network control unit 600 on the other node that received the request transfer
Executes the transferred request by the tuple space management unit 700 of its own node and returns the result to the requesting network control unit 600. The request source network control unit 600 analyzes the processing result by request analysis / transfer / processing unit 500.
Then, the request analysis / transfer / processing unit 500 sends the processing result to the process 200 through the message processing unit 260.

【0038】図3は、実施例1におけるメッセージ24
0の構成例を示したものである。メッセージ240は、
メッセージの通し番号などのヘッダ情報241、どのプ
ロセスから送信されたかを示すプロセス情報242、タ
プルスペースの操作の種別243、操作に付属するオプ
ション情報244、操作対象となるタプルスペース名2
45、操作対象のタプルの型及び構造情報246、そし
て実際のタプルデータまたは処理結果情報247領域か
ら構成される。
FIG. 3 shows the message 24 in the first embodiment.
0 is a configuration example of 0. The message 240 is
Header information 241, such as the serial number of the message, process information 242 indicating from which process the tuple space operation type 243, option information 244 attached to the operation, tuple space name 2 to be operated
45, the type and structure information 246 of the tuple to be operated, and the actual tuple data or processing result information 247 area.

【0039】図4は、実施例1におけるタプルスペース
名定義の構文例を示したものである。この構文に基づい
た記述が図3のタプルスペース名領域245に入る。こ
の構文では、タプルスペースは、そのタプルスペースが
管理される階層構造に基づいた木構造の名前構文を持っ
ている。即ち、階層の上位に位置するタプルスペースの
名前が順番にデリミタによって区切られて記述される。
また、タプルスペースにはカレントタプルスペー
ス(“.”)、その親のタプルスペース(“..”)と
いう概念が存在し、着目するタプルスペースに対して相
対的な関係を示すことができる。さらに、正規表現とし
て、「そのタプルスペースの下のすべてのタプルスペー
ス」といった指定には“/ABC/XYZ/*”という
指定ができる。
FIG. 4 shows a syntax example of the tuple space name definition in the first embodiment. A description based on this syntax enters the tuple space name area 245 of FIG. In this syntax, tuple spaces have a tree-structured name syntax based on the hierarchical structure in which the tuple spaces are managed. That is, the names of tuple spaces located at the upper level of the hierarchy are described in order, separated by delimiters.
Further, the tuple space has the concept of a current tuple space (“.”) And its parent tuple space (“..”), and can show a relative relationship with respect to the tuple space of interest. Further, as a regular expression, "/ ABC / XYZ / *" can be specified for a specification such as "all tuple spaces below that tuple space".

【0040】図5は、実施例1における要求分析・転送
処理部500の処理フローを示したものである。最初
に、メッセージ処理部260からタプルスペース処理要
求を受け付けると(S501)、タプルスペース名の解
析を行なう(S502)。ここでは、タプルスペース名
からそのタプルが管理されているノードを取り出し、ロ
ーカルのタプルスペースか、あるいはリモートのタプル
スペースかを判定する(S503)。ローカルかリモー
トかの判定は、例えばタプルスペース名の最初のパスは
ノード名を表すというような取り決めを行なうか、ある
いはタプルスペースの位置情報DBを別途用意すること
で可能である。
FIG. 5 shows a processing flow of the request analysis / transfer processing unit 500 in the first embodiment. First, when a tuple space processing request is received from the message processing unit 260 (S501), the tuple space name is analyzed (S502). Here, the node whose tuple is managed is extracted from the tuple space name, and it is determined whether the tuple space is a local tuple space or a remote tuple space (S503). Whether it is local or remote can be determined by, for example, making an agreement such that the first path of the tuple space name represents the node name, or preparing a tuple space position information DB separately.

【0041】ローカルのタプルスペース名であると判断
された場合、その要求はローカルのタプルスペース管理
部に送られ(S504)、その処理結果がメッセージ処
理部(S505)に返される。また、タプルスペース名
がリモートのタプルスペースであると判定された場合、
ネットワーク制御部600によってリモートのタプルス
ペース管理部に送られて(S506)、その処理結果が
メッセージ処理部に送られる(S505)。
When it is determined that the name is the local tuple space name, the request is sent to the local tuple space management unit (S504), and the processing result is returned to the message processing unit (S505). Also, if it is determined that the tuple space name is a remote tuple space,
The network control unit 600 sends the tuple space management unit to the remote (S506), and the processing result is sent to the message processing unit (S505).

【0042】図6は、実施例1におけるネットワーク制
御部600の処理フローである。ネットワーク制御部
は、ローカルの要求分析・転送・処理部500からの要
求か、リモートのネットワーク制御部からの要求かを判
定して(S601〜S603)、リモート側からの要求
であれば、それをローカルのタプルスペース管理部70
0に送って処理してもらい(S604)、処理結果をリ
モートのネットワーク制御部へ返す(S605)。処理
要求が、ローカルの要求分析・転送・処理部からの依頼
であれば、それをリモートのネットワーク制御部(S6
06)に送り、リモートのタプルスペース管理部に処理
を依頼し、その処理結果をローカルの要求分析・転送・
処理部に返す(S605)。
FIG. 6 is a processing flow of the network control unit 600 in the first embodiment. The network control unit determines whether the request is from the local request analysis / transfer / processing unit 500 or the request from the remote network control unit (S601 to S603). Local tuple space management unit 70
0 for processing (S604), and the processing result is returned to the remote network control unit (S605). If the processing request is a request from the local request analysis / transfer / processing unit, it is processed by the remote network control unit (S6).
06), request processing to the remote tuple space management unit, and analyze the processing result locally and transfer it.
It is returned to the processing unit (S605).

【0043】図7は、実施例1におけるタプルスペース
管理部700の処理フローである。タプルスペース管理
部が要求を受け付けると(S751)、タプルスペース
名の解析を行ない(S752)、正規表現であればタプ
ルスペース名の展開を行ない(S753)、タプルスペ
ース名のチェックを行なった後(S754)、タプルス
ペースへ実際のアクセスを行なう(S755)。また、
タプルスペース管理自体に対するアクセスであれば、そ
れを実施した(S756)後、最後に要求元に処理結果
を返す(S757)。
FIG. 7 is a processing flow of the tuple space management unit 700 in the first embodiment. When the tuple space management unit receives the request (S751), the tuple space name is analyzed (S752), and if it is a regular expression, the tuple space name is expanded (S753), and the tuple space name is checked ( (S754), the tuple space is actually accessed (S755). Also,
If it is an access to the tuple space management itself, after performing it (S756), the processing result is finally returned to the request source (S757).

【0044】実施例2.また、この発明の第2の実施例
について、図8、図9、及び図10に基づいて説明す
る。図8は、実施例2におけるプロセス構造とプロセス
ID管理機構及びタプルスペース通信機構300の構成
図である。ここで、メッセージ処理部260は、実施例
1と同様にプロセス200とタプルスペース通信機構3
00間の通信を制御する。プロセス200は、プロセス
ID管理機構800によって管理されているプロセスI
Dをプロセス生成時に受けとり、それをメッセージにプ
ロセス情報としてセットする。プロセスID管理機構
は、その管理するプロセスIDをプロセスIDテーブル
810に管理している。図9は、プロセスIDテーブル
例を示したものである。
Example 2. A second embodiment of the present invention will be described based on FIGS. 8, 9 and 10. FIG. 8 is a configuration diagram of the process structure, the process ID management mechanism, and the tuple space communication mechanism 300 according to the second embodiment. Here, the message processing unit 260 uses the process 200 and the tuple space communication mechanism 3 as in the first embodiment.
Control communication between 00s. The process 200 is a process I managed by the process ID management mechanism 800.
D is received when the process is created, and it is set in the message as process information. The process ID management mechanism manages the managed process ID in the process ID table 810. FIG. 9 shows an example of the process ID table.

【0045】タプルスペース通信機構300側のメッセ
ージ処理部260では、プロセス200からのメッセー
ジ240を受信すると、その受信した情報を要求分析・
転送・処理部500に送る。要求分析・転送・処理部5
00では、タプルスペース名の情報を基に、タプルスペ
ースが存在するノードを特定し、それが自分のノードに
存在する場合、タプルスペース管理部700に対して処
理の要求を行ない、結果をメッセージ処理部260を使
ってプロセス200に返す。タプルスペース名の解析の
結果、タプルスペースが他のノード上に存在する場合、
自分のノードのネットワーク制御部600を使って他の
ノード上のネットワーク制御部600に要求を転送す
る。要求の転送を受けたネットワーク制御部600は、
自分のノードのタプルスペース管理部700によって転
送されてきた要求を実行して結果を要求元のネットワー
ク制御部600に返す。要求元のネットワーク制御部6
00は、処理結果を要求分析・転送・処理部500に返
すと、要求分析・転送・処理部500はメッセージ処理
部260をとおしてプロセス200に結果を送る。
When the message processing unit 260 on the tuple space communication mechanism 300 side receives the message 240 from the process 200, the received information is subjected to request analysis / analysis.
It is sent to the transfer / processing unit 500. Request analysis / transfer / processing unit 5
In 00, the node in which the tuple space exists is specified based on the information of the tuple space name, and if it exists in its own node, the tuple space management unit 700 is requested to perform processing, and the result is processed as a message. Return to process 200 using section 260. If tuple space exists on another node as a result of parsing tuple space name,
The request is transferred to the network control unit 600 on another node by using the network control unit 600 of the own node. Upon receiving the request transfer, the network control unit 600
The request transferred by the tuple space management unit 700 of its own node is executed and the result is returned to the requesting network control unit 600. Requestor network controller 6
00 returns the processing result to the request analysis / transfer / processing section 500, and the request analysis / transfer / processing section 500 sends the result to the process 200 through the message processing section 260.

【0046】タプルスペース管理部700では、タプル
スペースのアクセス権をアクセス管理リスト740とし
て保持している。このタプルスペースアクセス管理リス
ト740は、タプルスペースの作成処理やタプルスペー
スのアクセス権の変更処理があった場合に変更される。
そして、タプルスペースへのアクセス要求が来た場合
に、このアクセス管理リスト740を基にアクセス要求
の正当性をチェックし、アクセスが許可されていない処
理要求に対しては拒絶する。図10は、アクセス管理リ
スト例を示したものである。
The tuple space management unit 700 holds the access right of the tuple space as an access management list 740. The tuple space access management list 740 is changed when there is a tuple space creating process or a tuple space access right changing process.
Then, when an access request to the tuple space is received, the validity of the access request is checked based on this access management list 740, and a processing request for which access is not permitted is rejected. FIG. 10 shows an example of the access management list.

【0047】例えば、図9に示したようにプロセスID
として56789を持つプロセスが、図10のアクセス
管理リストで管理されたタプルスペースIDが5234
6を持つタプルスペースにアクセスすることを考える。
プロセスが、アクセス要求をタプルスペース通信機構3
00に送信すると、メッセージ処理部260、要求分析
処理部500を経由して、最終的にはタプルスペース管
理部700にその要求が到達する。タプルスペース管理
部では、アクセス要求として付加されたプロセス情報と
して、図9のプロセスIDテーブルからプロセスのユー
ザIDの61と、グループIDの356を抽出する。そ
こで、図10のアクセス管理リストのタプルスペースI
Dが52346で定義されているタプルスペースのアク
セス権を調べると、rwrw−−と記載されている。こ
れによって、そこにアクセスが許可されているのは、ユ
ーザIDかグループIDがそのタプルスペースと一致し
ているプロセスであり、それ以外のプロセスにはアクセ
スが認められないことが分かる。ところで、そのタプル
スペースのユーザIDとグループIDは、11と129
であり、プロセスのユーザIDとグループIDは各々6
1と356と異なるため拒否されることが分かる。
For example, as shown in FIG. 9, the process ID
The process having 56789 as the tuple space ID 5234 managed by the access management list of FIG.
Consider accessing a tuple space with 6.
The process sends an access request to tuple space communication mechanism 3
When the request is transmitted to 00, the request finally reaches the tuple space management unit 700 via the message processing unit 260 and the request analysis processing unit 500. The tuple space management unit extracts the process user ID 61 and the group ID 356 from the process ID table of FIG. 9 as the process information added as the access request. Therefore, the tuple space I of the access management list in FIG.
When the access right of the tuple space defined by D is 52346 is checked, it is described as rwrw-. From this, it can be seen that the access is permitted to the process whose user ID or group ID matches the tuple space, and the access is not permitted to the other processes. By the way, the user ID and group ID of the tuple space are 11 and 129, respectively.
And the process user ID and group ID are each 6
It can be seen that it is rejected because it is different from 1 and 356.

【0048】実施例3.また、この発明の第3の実施例
について図11〜図15に基づいて説明する。図11
は、発明の実施例3におけるタプルスペース管理部70
0であり、この他のタプルスペース通信機構の要素は、
例えば実施例1の構成をとるものとする。ここで、タプ
ルスペース管理部700は、タプルスペース要求分析・
処理部701と、タプルスペース管理テーブル710、
タプル入出力部702、タプル管理テーブル703、タ
プルスペース領域720、通知用タプル型・構造情報管
理部708、通知用タプル型・構造情報リスト707か
ら構成されている。次に、実施例3におけるタプルスペ
ース要求分析・処理部とタプル入出力部、通知用タプル
型・構造情報管理部の動作について図12の処理フロー
に基づいて説明する。要求分析・処理部701におい
て、メッセージに含まれるタプルスペース名からタプル
スペース管理テーブル710を参照し、タプルスペース
IDを検索する(S771)。ここで図13は、タプル
スペース管理テーブルの例であり、ここではタプルスペ
ースの名前とそのIDが対応づけられている。次いでメ
ッセージが通常のデータを伴う「タプルスペース入出力
要求(タプルスペース通信要求)」か、又はデータを伴
わないタプルが存在するかどうかの情報のみを通知する
「通知処理要求」であるかを識別する(S772〜S7
73)。そして、通常の「タプルスペース通信要求」で
あればタプルスペースIDとその処理内容をタプルスペ
ース入出力部702に送る。タプル入出力部は、タプル
スペースIDに対応して作られているタプル管理テーブ
ル703を参照して、タプルの入出力処理を行なう(S
778)。図14にタプル管理テーブルの例を示す。ま
た、要求がタプルのタプルスペースへの投入である場
合、その情報を通知用型・構造情報管理部708にも送
信する(S780)。もし、通知用型・構造情報管理部
が管理する通知用型・構造情報リストに投入されたタプ
ルと同じ型及び構造を持つものがあれば(S781)、
そのタプルの投入通知を待つプロセスをリストから取り
出し、通知メッセージを送る(S782)。
Example 3. The third embodiment of the present invention will be described with reference to FIGS. Figure 11
Is the tuple space management unit 70 in the third embodiment of the invention.
0, and other elements of the tuple space communication mechanism are
For example, assume the configuration of the first embodiment. Here, the tuple space management unit 700 analyzes the tuple space requirement /
A processing unit 701, a tuple space management table 710,
A tuple input / output unit 702, a tuple management table 703, a tuple space area 720, a notification tuple type / structure information management unit 708, and a notification tuple type / structure information list 707. Next, operations of the tuple space request analysis / processing unit, the tuple input / output unit, and the notification tuple type / structure information management unit in the third embodiment will be described based on the processing flow of FIG. The request analysis / processing unit 701 refers to the tuple space management table 710 from the tuple space name included in the message and searches for the tuple space ID (S771). Here, FIG. 13 is an example of the tuple space management table, in which the name of the tuple space and its ID are associated with each other. Next, identify whether the message is a "tuple space I / O request (tuple space communication request)" with normal data, or a "notification processing request" that notifies only information whether there is a tuple without data. Yes (S772 to S7
73). Then, if it is a normal “tuple space communication request”, the tuple space ID and its processing content are sent to the tuple space input / output unit 702. The tuple input / output unit refers to the tuple management table 703 created corresponding to the tuple space ID, and performs tuple input / output processing (S).
778). FIG. 14 shows an example of the tuple management table. If the request is input of a tuple into a tuple space, the information is also sent to the notification type / structure information management unit 708 (S780). If there is a tuple having the same type and structure as the tuple entered in the notification type / structure information list managed by the notification type / structure information management unit (S781),
The process waiting for the tuple insertion notification is taken out from the list and a notification message is sent (S782).

【0049】一方、メッセージがタプルの存在の有無を
通知するだけの「通知処理要求」の場合は、タプルスペ
ースIDを検索(S774)したのちに通知用のタプル
型情報管理部708にタプルスペースIDと処理要求を
依頼する。この通知用タプル型・構造情報管理部708
では、要求されたタプルスペースに要求されたタプルが
存在するか否かをチェック(S775)し、存在する場
合は、すぐに要求元のプロセスに存在する旨通知する
(S777)。また、タプルが存在しない場合、通知用
タプル型・構造情報管理部は、メッセージを通知用タプ
ル型構造情報リスト707に保管する(S776)。そ
して、新たなタプルが投入された時点で、そのリストを
チェックし、型・構造情報が一致すれば存在する旨結果
を通知し、通知用タプル型構造情報リストから保管され
ていたメッセージを削除する。図15は、通知用タプル
型・構造情報リストの例を示したものである。
On the other hand, if the message is a "notification processing request" that simply notifies the presence / absence of a tuple, the tuple space ID is retrieved (S774) and then the tuple space ID management unit 708 for notification is informed of the tuple space ID. And request a processing request. This notification tuple type / structure information management unit 708
Then, it is checked whether or not the requested tuple exists in the requested tuple space (S775), and if it exists, it is immediately notified that the requested process exists (S777). If there is no tuple, the notification tuple type / structure information management unit stores the message in the notification tuple type structure information list 707 (S776). Then, when a new tuple is input, the list is checked, if the type / structure information matches, the result is notified, and the stored message is deleted from the notification tuple type structure information list. . FIG. 15 shows an example of the notification tuple type / structure information list.

【0050】実施例4.また、この発明の第4の実施例
について、図16、及び図17に基づいて説明する。図
16は、発明の実施例4におけるタプルスペース管理部
700であり、他のタプルスペース通信機構の要素は、
例えば実施例1の構成をとるとする。本実施例では、タ
プルスペース管理部700は、タプルスペース要求分析
・処理部701と、タプルスペース管理テーブル71
0、タプル入出力部702、タプル管理テーブル70
3、タプルスペース領域720、タプル消滅時間管理部
711、消滅時間管理テーブル712から構成されてい
る。図17は、発明の実施例4におけるタプル消滅時間
管理部711が管理する消滅時間テーブル712の例で
ある。タプルスペース要求分析・処理部701では、タ
プルスペース管理テーブルからタプルスペースを検索
し、タプル入出力部に実際の処理を依頼して、タプルの
入出力処理を行なう。タプル入出力部702は、タプル
を入力するときに、タプルの消滅時間が設定されている
場合は、タプル消滅時間管理部711にタプルIDとそ
の消滅時間を登録する。タプル消滅時間管理部711で
は、タプル入出力部から登録されたタプルとその消滅時
間を、内部に持つタイマ機構を使って管理し、消滅時間
を経過したタプルIDを検知すると、そのタプルIDを
タプル入出力部に通知し、削除する。
Example 4. A fourth embodiment of the present invention will be described based on FIGS. 16 and 17. FIG. 16 shows a tuple space management unit 700 according to the fourth embodiment of the invention, and the other elements of the tuple space communication mechanism are:
For example, assume the configuration of the first embodiment. In this embodiment, the tuple space management unit 700 includes a tuple space request analysis / processing unit 701 and a tuple space management table 71.
0, tuple input / output unit 702, tuple management table 70
3, a tuple space area 720, a tuple extinction time management unit 711, and an extinction time management table 712. FIG. 17 is an example of the disappearance time table 712 managed by the tuple disappearance time management unit 711 according to the fourth embodiment of the invention. The tuple space request analysis / processing unit 701 searches a tuple space from the tuple space management table, requests the tuple input / output unit for actual processing, and performs tuple input / output processing. The tuple input / output unit 702 registers the tuple ID and its disappearance time in the tuple disappearance time management unit 711 when the tuple disappearance time is set when the tuple is input. The tuple annihilation time management unit 711 manages the tuples registered from the tuple input / output unit and their annihilation times using an internal timer mechanism, and when a tuple ID for which the annihilation time has elapsed is detected, the tuple ID is tuple ID. Notify the input / output unit and delete it.

【0051】実施例5.また、この発明の第5の実施例
について、図18〜図21に基づいて説明する。図18
は、発明の実施例5におけるタプルスペース管理部70
0であり、他のタプルスペース通信機構の要素は、例え
ば実施例1の構成をとるとする。ここでは、タプルスペ
ース管理部700は、タプルスペース要求分析・処理部
701と、タプルスペース管理テーブル710、タプル
入出力部702、タプル管理テーブル703、タプルス
ペース領域720、タプル型・構造未着データリスト7
13から構成されている。タプルスペース要求分析・処
理部701では、タプルスペース管理テーブルからタプ
ルスペースを検索し、タプル入出力部に実際の処理を依
頼して、タプルの入出力処理を行なう。
Example 5. A fifth embodiment of the present invention will be described with reference to FIGS. FIG.
Is a tuple space management unit 70 according to the fifth embodiment of the invention.
0, and other elements of the tuple space communication mechanism have the configuration of the first embodiment, for example. Here, the tuple space management unit 700 includes a tuple space request analysis / processing unit 701, a tuple space management table 710, a tuple input / output unit 702, a tuple management table 703, a tuple space area 720, a tuple type / unstructured data list. 7
It is composed of 13. The tuple space request analysis / processing unit 701 searches a tuple space from the tuple space management table, requests the tuple input / output unit for actual processing, and performs tuple input / output processing.

【0052】図19は、発明の実施例5におけるメッセ
ージ形式の例であり、図19(a)は分割されたメッセ
ージの型・構造情報を、図19(b)は分割されたメッ
セージのデータ情報を示したものである。ここで、操作
オプションには、メッセージが構造情報(タプルの型・
構造・サイズなど)と、データ情報(数値や文字列など
の実際のデータ)とに分割されており、そのうちのどち
らであるかを示すフラグがセットされている。
FIG. 19 shows an example of the message format in the fifth embodiment of the invention. FIG. 19A shows the type / structure information of the divided message, and FIG. 19B shows the data information of the divided message. Is shown. Here, in the operation option, the message is structure information (tuple type,
It is divided into structure (size, etc.) and data information (actual data such as numerical value and character string), and a flag indicating which of them is set.

【0053】図18において、メッセージに付与された
操作オプションは、タプル入出力部702によって解析
され、タプルの投入時に以下の処理が行なわれる。タプ
ルの投入の際に、タプルの構造情報とタプルのデータ情
報が別々に分割されて投入される場合において、(1)
到着したタプル投入処理要求が「分割されたデータ情
報」であれば、タプルに付与されたプロセス情報(プロ
セスID)とそのメッセージ情報(メッセージID)か
ら、既に到着していてタプル管理テーブルに管理されて
いる構造情報のみのタプル(図20において、データ領
域が「未着」と記載されている)と一致するかどうかを
検査する。もし、一致するタプルがあれば、そのデータ
情報をその構造情報に記載する。図20は、発明の実施
例5におけるタプル管理テーブル703の例を示したも
のであり、ここで、タプルIDが12347は、データ
部がまだ到着していないタプルであることを示す。一
方、もし、タプルのプロセスIDとメッセージIDに合
致するものが存在しなければ、タプル型・構造情報未着
データリスト713に格納する。次に、(2)到着した
タプル投入処理要求が「分割された構造情報」であれ
ば、タプル型・構造情報未着データリストに「データ情
報」が既に到着しているかどうかをプロセスIDとメッ
セージIDで確認し、もし到着している場合には、その
情報を付与してタプル管理テーブル703に登録する。
もし、そのようなデータ情報が存在していなければ、タ
プル管理テーブル(図20)には、データ領域に未着で
あることを記入して登録する。図21は、発明の実施例
5における、タプル型・構造未着データリストの例であ
る。
In FIG. 18, the operation option added to the message is analyzed by the tuple input / output unit 702, and the following processing is performed when the tuple is input. When the tuple structure information and the tuple data information are separately divided and input when the tuple is input, (1)
If the tuple input processing request that has arrived is “divided data information”, it has already arrived and is managed in the tuple management table based on the process information (process ID) assigned to the tuple and its message information (message ID). It is checked whether or not it matches a tuple having only the structure information (in FIG. 20, the data area is described as “not yet arrived”). If there is a matching tuple, the data information is described in the structure information. FIG. 20 shows an example of the tuple management table 703 according to the fifth embodiment of the present invention. Here, the tuple ID 12347 indicates that the tuple ID has not arrived yet. On the other hand, if there is no matching tuple process ID and message ID, it is stored in the tuple type / structure information unarrival data list 713. Next, (2) if the arriving tuple input processing request is “divided structure information”, the process ID and message are displayed as to whether “data information” has already arrived in the tuple type / structure information unarrival data list. The ID is confirmed, and if it arrives, the information is added and registered in the tuple management table 703.
If such data information does not exist, it is entered and registered in the tuple management table (FIG. 20) in the data area. FIG. 21 is an example of a tuple type / unstructured data list in the fifth embodiment of the invention.

【0054】実施例6.また、この発明の第6の実施例
について図22、及び図23に基づいて説明する。図2
2は、本発明の実施例6におけるプロセスとタプルスペ
ース通信機構300の構成図である。ここで、メッセー
ジ処理部260は、実施例1と同様にプロセス200と
タプルスペース通信機構300との通信を制御する部分
である。要求分析・転送・処理部500では、(1)タ
プルスペースの作成要求に、コピーを持たせる指定があ
る場合、コピー管理テーブル520にどのノード(計算
機)にコピーのタプルスペースを置くかの情報を記録す
る。そして、記録されたノードにタプルスペースを作成
する。図23は、コピー管理テーブルの例を示したもの
である。ここでは、/ABCというタプルスペースが、
node1とnode2の上に存在していることを示し
ている。また、(2)タプルスペースへのアクセス要求
があった場合、そのタプルスペース名から、コピー管理
テーブルを検索し、それがコピーを持つタプルスペース
かどうかを検査する。そして、コピーを持つタプルスペ
ースに対してアクセスが行なわれると、そのコピーが別
のノードに存在する場合には同じ処理要求がネットワー
ク制御部600を経由して別のノードに対しても同時に
転送される。例えば、node1で、コピー管理テーブ
ルが図23であったとき、/ABCに対するアクセス
は、node2に対しても実施される。その結果、常に
コピーされたタプルスペースに対するアクセスは、同じ
条件となるように制御されることになる。そして、
(3)要求分析・転送・処理部500がローカルのタプ
ルスペース管理部700に対して処理要求を出したと
き、なんらかの不具合発生によって処理結果が得られな
い場合、コピーの存在する他のノード上のタプルスペー
ス管理部700にネットワーク制御部600を経由して
処理を依頼し、その処理結果を受けとる。
Example 6. A sixth embodiment of the present invention will be described based on FIGS. 22 and 23. Figure 2
2 is a configuration diagram of a process and a tuple space communication mechanism 300 according to the sixth embodiment of the present invention. Here, the message processing unit 260 is a unit that controls communication between the process 200 and the tuple space communication mechanism 300, as in the first embodiment. In the request analysis / transfer / processing unit 500, (1) when the tuple space creation request includes a copy designation, information on which node (computer) to place the copy tuple space in the copy management table 520 is provided. Record. Then, a tuple space is created in the recorded node. FIG. 23 shows an example of the copy management table. Here, the tuple space called / ABC is
It is shown that it exists above node1 and node2. Further, (2) when there is an access request to the tuple space, the copy management table is searched from the tuple space name to check whether or not the tuple space has a copy. When a tuple space having a copy is accessed, the same processing request is simultaneously transferred to another node via the network control unit 600 if the copy exists in another node. It For example, when the copy management table in node 1 is as shown in FIG. 23, the access to / ABC is also executed in node 2. As a result, access to the copied tuple space is always controlled so that the same conditions are met. And
(3) When the request analysis / transfer / processing unit 500 issues a processing request to the local tuple space management unit 700, if a processing result cannot be obtained due to some trouble occurrence, then on another node where a copy exists. The tuple space management unit 700 is requested to perform processing via the network control unit 600, and the processing result is received.

【0055】実施例7.また、この発明の第7の実施例
について、図24〜図27に基づいて説明する。図24
は、本発明の実施例7におけるプロセスとタプルスペー
ス通信機構300の構成図である。ここで、メッセージ
処理部260は、実施例1と同様にプロセス200とタ
プルスペース通信機構300との通信を制御する部分で
ある。図25の要求分析転送処理部のフローチャートに
おいて要求分析・転送・処理部500では、タプルスペ
ースに対する処理要求を分析(S801)し、もし同時
に複数のタプルの投入を要求する多重化処理要求であれ
ば、それを多重化要求テーブル510に登録する(S8
03)。そうでなければ、実施例1と同様に、通常のタ
プルスペースアクセス処理(S802)を行なう。多重
化要求処理部530では、多重化要求管理テーブル51
0を監視し、もし、そこに処理が完了していない多重化
要求があればその要求の一つを実行する。一つの多重化
要求に関する処理がすべて実行された場合、その結果を
応答としてメッセージ処理部260に返す。また、多重
化された個々の処理は、実施例1の場合と同様に処理さ
れる。
Example 7. A seventh embodiment of the present invention will be described based on FIGS. 24 to 27. Figure 24
FIG. 8 is a configuration diagram of a process and tuple space communication mechanism 300 according to a seventh embodiment of the present invention. Here, the message processing unit 260 is a unit that controls communication between the process 200 and the tuple space communication mechanism 300, as in the first embodiment. In the flowchart of the request analysis / transfer processing unit of FIG. 25, the request analysis / transfer / processing unit 500 analyzes the processing request for the tuple space (S801), and if it is a multiplexing processing request that requests input of a plurality of tuples at the same time. , Register it in the multiplexing request table 510 (S8
03). Otherwise, the normal tuple space access processing (S802) is performed as in the first embodiment. In the multiplexing request processing unit 530, the multiplexing request management table 51
0 is monitored, and if there is a multiplexing request that has not been processed, one of the requests is executed. When all the processing related to one multiplexing request has been executed, the result is returned to the message processing unit 260 as a response. In addition, each multiplexed processing is processed in the same manner as in the first embodiment.

【0056】図26は、発明の実施例7における多重化
要求テーブル510の構成例である。処理が終っていな
い処理要求の結果の項目は、未処理と記述されている。
例えばメッセージIDが45の多重化要求は、outの
処理が3つ多重化されたものから構成され、そのうちの
2つが完了していることを示している。
FIG. 26 is a structural example of the multiplexing request table 510 in the seventh embodiment of the invention. The item resulting from the processing request that has not been processed is described as unprocessed.
For example, a multiplexing request with a message ID of 45 indicates that three out processes are multiplexed, and two of them are completed.

【0057】図27は、発明の実施例7における多重化
要求を行なう際のメッセージ構造を示したものであり、
このメッセージは、n個の投入タプルを含んでいる。
FIG. 27 shows a message structure for making a multiplexing request in the seventh embodiment of the invention.
This message contains n input tuples.

【0058】実施例8.また、この発明の第9の実施例
について、図28に基づいて説明する。図28は、本発
明の実施例8におけるタプルの取り出しメッセージとそ
の応答メッセージの構成例である。ここで、タプルスペ
ース通信機構は実施例7と同様の構成をとるものとす
る。
Example 8. The ninth embodiment of the present invention will be described with reference to FIG. FIG. 28 is a configuration example of a tuple extraction message and its response message according to the eighth embodiment of the present invention. Here, the tuple space communication mechanism has the same configuration as that of the seventh embodiment.

【0059】図28(a)の要求側メッセージには、取
り出しを要求するタプルの型・構造情報とその個数が含
まれている。これらは、図24の多重化要求処理部53
0で多重化要求として展開され、個々の取り出し要求が
実行される。そして、すべての取り出しが完了した段階
で、図28(b)の応答メッセージによって結果が返
る。応答メッセージには、n個の結果が返る構造になっ
ている。応答メッセージの組立ては、図24における多
重化要求処理部によって行なわれる。
The request side message shown in FIG. 28 (a) includes the tuple type / structure information and the number of tuples requested to be extracted. These are the multiplexing request processing unit 53 of FIG.
When 0, the request is expanded as a multiplexing request, and each fetch request is executed. Then, when all the extractions are completed, the result is returned by the response message of FIG. 28 (b). The response message has a structure in which n results are returned. The assembly of the response message is performed by the multiplexing request processing unit in FIG.

【0060】実施例9.また、この発明の第9の実施例
について図29〜図31に基づいて説明する。図29
は、発明の実施例9におけるタプルスペース管理部70
0であり、他のタプルスペース通信機構の要素は、例え
ば実施例1の構成をとるとする。ここでは、タプルスペ
ース管理部700は、タプルスペース要求分析・処理部
701と、タプルスペース管理テーブル710、タプル
入出力部702、タプル管理テーブル703、タプルス
ペース領域720、タプル処理要求待ちリスト704、
処理制限時間管理部706、制限時間テーブル705か
ら構成されている。タプルスペース要求分析・処理部7
01では、タプルスペース管理テーブルからタプルスペ
ースを検索し、タプル入出力部に実際の処理を依頼し
て、タプルの入出力処理を行なう。但し、タプルの取り
出しや読み込みの処理で対応するタプルが存在しない場
合は、その要求はタプル要求処理待ちリスト704に保
管される。図30にタプル処理要求待ちリスト704の
例を示す。そして、その要求に制限時間が定義されてい
る場合、タプル要求処理IDと制限時間を処理制限時間
管理部706に登録する。新たなタプルの投入があった
場合、タプル入出力部702は、タプル処理要求待ちリ
スト704に存在する実行可能な処理を実行する。
Example 9. A ninth embodiment of the present invention will be described based on FIGS. 29 to 31. FIG. 29
Is a tuple space management unit 70 according to the ninth embodiment of the invention.
0, and other elements of the tuple space communication mechanism have the configuration of the first embodiment, for example. Here, the tuple space management unit 700 has a tuple space request analysis / processing unit 701, a tuple space management table 710, a tuple input / output unit 702, a tuple management table 703, a tuple space area 720, a tuple processing request waiting list 704,
The processing time limit management unit 706 and the time limit table 705 are included. Tuple space requirement analysis / processing unit 7
At 01, a tuple space is searched from the tuple space management table, and the tuple input / output unit is requested to perform actual processing to perform tuple input / output processing. However, if there is no corresponding tuple in the tuple extraction or read processing, the request is stored in the tuple request processing waiting list 704. FIG. 30 shows an example of the tuple processing request waiting list 704. Then, when the time limit is defined in the request, the tuple request process ID and the time limit are registered in the process time limit management unit 706. When a new tuple is input, the tuple input / output unit 702 executes the executable process existing in the tuple process request waiting list 704.

【0061】処理制限時間管理部706では、登録され
た処理要求IDと制限時間を制限時間テーブル705に
管理する。その制限時間テーブル705の例を図31に
示す。処理制限時間管理部706では、制限時間を越え
た処理要求を見つけると、それをタプル入出力部に知ら
せる。すると、タプル入出力部702は、タプル処理要
求待ちリスト704からその要求を除き、その要求の応
答としてタイムアウトを知らせる値をタプルスペース要
求分析・処理部701に返す。
The processing time limit management unit 706 manages the registered processing request ID and time limit in the time limit table 705. An example of the time limit table 705 is shown in FIG. When the processing time limit management unit 706 finds a processing request that exceeds the time limit, the processing time limit management unit 706 notifies the tuple input / output unit of the processing request. Then, the tuple input / output unit 702 removes the request from the tuple processing request waiting list 704, and returns a value notifying the timeout to the tuple space request analysis / processing unit 701 as a response to the request.

【0062】[0062]

【発明の効果】この発明は、以上説明したように構成さ
れているので、以下に記載されるような効果を奏する。
Since the present invention is constructed as described above, it has the following effects.

【0063】タプルスペースを木構造を持つ名前によっ
て指定するようにしたので、タプルスペースの指定に対
して正規表現を交えた柔軟な指定方法が実現可能とな
る。そして、タプルスペース操作時に、プロセスがその
タプルスペースの操作を許可されているかどうかをプロ
セスIDによってチェックするようにしたので、セキュ
リティが向上し、システムとしての信頼性を向上するこ
とができるという効果がある。また、タプルスペースを
別のノードにそのコピーを持たせることを可能としたた
め、一方のタプルスペースが故障しても他方のノードで
バックアップが可能となり、サービスの継続性及びシス
テムとしての一貫性を維持させることができるという効
果がある。更に、投入するタプルやタプルスペース操作
に対して有効期限を設けることにより、無駄な記憶スペ
ースやリアルタイム処理に対応することが可能となる。
加えて、複数のタプルをまとめて一括投入することを可
能とし、またタプルの型やデータ構造を実際のデータと
は別に先に送ることを可能としたので、ノード間におけ
る効率的な通信を実現することができるという効果を奏
する。
Since the tuple space is designated by a name having a tree structure, a flexible designation method in which a regular expression is mixed with the designation of the tuple space can be realized. Then, when the tuple space is operated, the process ID is used to check whether or not the process is permitted to operate the tuple space, so that the security can be improved and the reliability as a system can be improved. is there. Also, since it is possible to have a copy of the tuple space in another node, even if one tuple space fails, the other node can back it up and maintain service continuity and system consistency. The effect is that it can be done. Furthermore, by providing an expiration date for the tuples to be input and tuple space operations, it is possible to deal with wasted storage space and real-time processing.
In addition, multiple tuples can be batch-populated at the same time, and the tuple type and data structure can be sent separately from the actual data, enabling efficient communication between nodes. There is an effect that can be done.

【図面の簡単な説明】[Brief description of drawings]

【図1】図1は、この発明の実施例1のプロセス間通信
方式を表す構成図である。
FIG. 1 is a configuration diagram showing an interprocess communication system according to a first embodiment of the present invention.

【図2】図2は、この発明の実施例1のタプルスペース
通信機構を表す構成図である。
FIG. 2 is a configuration diagram showing a tuple space communication mechanism according to the first embodiment of the present invention.

【図3】図3は、この発明の実施例1のメッセージの構
造を示す。
FIG. 3 shows a message structure according to the first embodiment of the present invention.

【図4】図4は、この発明の実施例1のタプルスペース
名の定義の構文を示す。
FIG. 4 shows a syntax of a tuple space name definition according to the first embodiment of this invention.

【図5】図5は、この発明の実施例1の要求分析・転送
・処理部の処理フローを示す。
FIG. 5 shows a processing flow of a request analysis / transfer / processing unit according to the first embodiment of the present invention.

【図6】図6は、この発明の実施例1のネットワーク制
御部の処理フローを示す。
FIG. 6 shows a processing flow of a network control unit according to the first embodiment of the present invention.

【図7】図7は、この発明の実施例1のタプルスペース
管理部の処理フローを示す。
FIG. 7 shows a processing flow of a tuple space management unit according to the first embodiment of the present invention.

【図8】図8は、実施例2のプロセスIDの管理機構と
タプルスペース通信機構を示す。
FIG. 8 illustrates a process ID management mechanism and a tuple space communication mechanism according to the second embodiment.

【図9】図9は、実施例2のプロセスIDテーブルの定
義例を示す。
FIG. 9 shows a definition example of a process ID table according to the second embodiment.

【図10】図10は、実施例2のアクセス管理リストの
定義例を示す。
FIG. 10 shows a definition example of an access management list according to the second embodiment.

【図11】図11は、実施例3のタプルスペース管理部
の構成例を示す。
FIG. 11 illustrates a configuration example of a tuple space management unit according to the third embodiment.

【図12】図12は、実施例3のタプルスペース要求分
析・処理部、タプル入出力部、通知用タプル型・構造情
報管理部の動作フローを示す。
FIG. 12 shows an operation flow of a tuple space request analysis / processing unit, a tuple input / output unit, and a notification tuple type / structure information management unit according to the third embodiment.

【図13】図13は、実施例3のタプルスペース管理テ
ーブルの構成例を示す。
FIG. 13 illustrates a configuration example of a tuple space management table according to the third embodiment.

【図14】図14は、実施例3のタプル管理テーブルの
構成例を示す。
FIG. 14 illustrates a configuration example of a tuple management table according to the third embodiment.

【図15】図15は、実施例3の通知用タプル型・構造
情報リストの構成例を示す。
FIG. 15 shows a configuration example of a notification tuple type / structure information list according to the third embodiment.

【図16】図16は、実施例4のタプルスペース管理部
の構成例を示す。
FIG. 16 illustrates a configuration example of a tuple space management unit according to the fourth embodiment.

【図17】図17は、実施例4の消滅時間管理テーブル
の定義例を示す。
FIG. 17 shows a definition example of an extinction time management table according to the fourth embodiment.

【図18】図18は、実施例5のタプルスペース管理部
の構成例を示す。
FIG. 18 illustrates a configuration example of a tuple space management unit according to the fifth embodiment.

【図19】図19は、実施例5のメッセージ構成例を示
す。
FIG. 19 shows a message configuration example of the fifth embodiment.

【図20】図20は、実施例5のタプルスペース管理テ
ーブルの定義例を示す。
FIG. 20 shows a definition example of a tuple space management table according to the fifth embodiment.

【図21】図21は、実施例5のタプル型・構造未着デ
ータリストを示す。
FIG. 21 is a tuple type / structure unarrival data list according to the fifth embodiment.

【図22】図22は、実施例6のタプルスペース通信機
構の構成例を示す。
FIG. 22 shows a configuration example of a tuple space communication mechanism according to the sixth embodiment.

【図23】図23は、実施例6のコピー管理テーブルの
例を示す。
FIG. 23 shows an example of a copy management table according to the sixth embodiment.

【図24】図24は、実施例7のタプルスペース通信機
構の構成例を示す。
FIG. 24 shows a configuration example of a tuple space communication mechanism according to the seventh embodiment.

【図25】図25は、実施例7の要求分析転送処理部の
処理フローを示す。
FIG. 25 illustrates a processing flow of a request analysis transfer processing unit according to the seventh embodiment.

【図26】図26は、実施例7の多重化要求管理テーブ
ルの定義例を示す。
FIG. 26 shows a definition example of a multiplexing request management table according to the seventh embodiment.

【図27】図27は、実施例7の要求メッセージ構造の
例を示す。
FIG. 27 shows an example of the request message structure of the seventh embodiment.

【図28】図28は、実施例8の要求メッセージ及び応
答メッセージの構造の例を示す。
FIG. 28 shows an example of the structure of a request message and a response message of the eighth embodiment.

【図29】図29は、実施例9のタプルスペース管理部
の構成例である。
FIG. 29 is a configuration example of a tuple space management unit according to the ninth embodiment.

【図30】図30は、実施例9のタプル処理要求待ちリ
ストの定義例である。
FIG. 30 is a definition example of a tuple processing request waiting list according to the ninth embodiment.

【図31】図31は、実施例9の制限時間テーブルの定
義例である。
FIG. 31 is a definition example of a time limit table according to the ninth embodiment.

【図32】図32は、タプルスペース型プロセス間通信
の基本コンセプトを示す動作図である。
FIG. 32 is an operation diagram showing a basic concept of tuple space type inter-process communication.

【図33】図33は、従来のタプルスペース型プロセス
間通信方式を示す構成図である。
FIG. 33 is a block diagram showing a conventional tuple space type inter-process communication system.

【符号の説明】[Explanation of symbols]

100 計算機 200 プロセス 205 タプルスペース名 210 タプル 220 タプル操作識別子 230 タプル操作付加情報 240 メッセージ 241 メッセージヘッダ 242 プロセス情報 243 操作 244 操作オプション 245 タプルスペース名 246 型及び構造情報 247 タプルデータ及び処理結果 250 処理結果 260 メッセージ処理部 270 プロセスID 400 ネットワーク 500 要求分析・転送・処理部 510 多重化要求管理テーブル 520 コピー管理テーブル 530 多重化要求処理部 600 ネットワーク制御部 700 タプルスペース管理部 701 タプルスペース要求分析・処理部 702 タプル入出力部 703 タプル管理テーブル 704 タプル処理要求待ちリスト 705 制限時間テーブル 706 処理制限時間管理部 707 通知用タプル型・構造情報リスト 708 通知用タプル型・構造情報管理部 710 タプルスペース管理テーブル 711 タプル消滅時間管理部 712 消滅時間テーブル 713 タプル型・構造未着データリスト 720 タプルスペース領域 730 タプルスペース 740 アクセス管理リスト 800 プロセスID管理機構 810 プロセスIDテーブル 100 computer 200 process 205 tuple space name 210 tuple 220 tuple operation identifier 230 tuple operation additional information 240 message 241 message header 242 process information 243 operation 244 operation option 245 tuple space name 246 type and structure information 247 tuple data and processing result 250 processing result 260 message processing unit 270 process ID 400 network 500 request analysis / transfer / processing unit 510 multiplexing request management table 520 copy management table 530 multiplexing request processing unit 600 network control unit 700 tuple space management unit 701 tuple space request analysis / processing unit 702 tuple input / output unit 703 tuple management table 704 tuple processing request waiting list 705 time limit table 706 Time limit management unit 707 Notification tuple type / structure information list 708 Notification tuple type / structure information management unit 710 Tuple space management table 711 Tuple disappearance time management unit 712 Disappearance time table 713 Tuple type / structure non-arrival data list 720 tuples Space area 730 Tuple space 740 Access management list 800 Process ID management mechanism 810 Process ID table

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードはタプルスペースの階層関係と等価な意味を
持つ木構造を持つ名前の付与規則と、その付与規則を内
部に持ちタプルスペースの名前と存在位置を解釈するタ
プルスペース名解析手段と、その解析結果として得られ
たタプルスペースの存在位置情報に基づいてネットワー
ク上に分散しているタプルスペースに対してアクセスす
る分散タプルスペースアクセス手段とを備えたことを特
徴とするプロセス間通信方式。
1. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from processes on nodes distributed over a plurality of networks, wherein the nodes have a meaning equivalent to a hierarchical relationship of tuple spaces. A name of a tree structure with a name, a tuple space name analysis means that has the name of the rule inside and interprets the name and location of the tuple space, and the location information of the tuple space obtained as a result of the analysis. An inter-process communication method comprising: a distributed tuple space access means for accessing a tuple space distributed on a network based on the above.
【請求項2】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードは特定のプロセスグループに対して識別子を
与える識別子付与手段と、タプルスペース生成時にタプ
ルスペースに対して生成者の識別子とアクセスモード情
報を付加するタプルスペースアクセス権生成手段と、タ
プルスペースをアクセスする過程においてアクセスしよ
うとするプロセスの識別子とタプルスペースのアクセス
権情報をもとに前記タプルスペースアクセスに制限を加
えるタプルスペースアクセス管理手段とを備えることに
よって、タプルスペース通信のセキュリティを高めるこ
とを特徴としたプロセス間通信方式。
2. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from a process on a node distributed on a plurality of networks, wherein the node assigns an identifier to a specific process group. An identifier assigning means to be given, a tuple space access right generating means for adding a creator's identifier and access mode information to the tuple space when generating the tuple space, and an identifier and a tuple of a process to be accessed in the process of accessing the tuple space. An inter-process communication system characterized by increasing the security of tuple space communication by including a tuple space access management means for restricting the tuple space access based on space access right information.
【請求項3】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードは前記プロセスからタプルスペースに対して
タプルの型と構造情報(以下、単に構造情報と呼ぶ)を
予め指定するための手段と、前記タプルスペースに要求
したタプルが取り込みあるいは読み込み可能になった時
点でその旨をタプルスペースから前記プロセスに通知す
る手段を備えたことを特徴とするプロセス間通信方式。
3. A tuple space communication type inter-process communication method in which a plurality of tuple spaces are accessed by processes on nodes distributed over a plurality of networks, wherein the node tuples tuple spaces from the processes. Means for pre-designating the type and structure information (hereinafter simply referred to as structure information) of the tuple space, and when the tuple space requested in the tuple space becomes available for reading or read, the tuple space notifies the process to that effect. An interprocess communication method characterized by comprising means for performing.
【請求項4】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードはタプルの消滅時間を設定するためのデータ
構造と、タプルに設定された消滅時間をデータ構造から
解釈するタプル消滅時間解釈手段と、タプルの消滅時間
をタイマによって計測して消滅時間が経過した場合に消
滅時間経過通知をタプル管理手段に送るタプル消滅時間
管理手段と、前記タプル消滅時間管理手段からの消滅時
間経過通知情報によって指定されたタプルを削除するタ
プル管理手段とを備えたことを特徴とするプロセス間通
信方式。
4. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from a process on a node distributed on a plurality of networks, wherein the node sets a tuple disappearance time. A tuple annihilation time interpretation means that interprets the data structure and the annihilation time set in the tuple from the data structure, and the tuple management means that notifies the tuple lapse time when the tuple annihilation time is measured by a timer and the annihilation time elapses. An inter-process communication system comprising: a tuple disappearance time management means for sending; and a tuple management means for deleting a tuple designated by the disappearance time elapsed notification information from the tuple disappearance time management means.
【請求項5】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードはタプルの構造情報と実際のデータ情報が分
割されたタプル形式も対象とし、そのタプル形式を解釈
して構造情報とデータ情報を別々に送信するタプル分割
送信手段と、分割されたタプルを認識してタプルの検索
を構造情報によってデータ情報の受信完了に先行して実
施するタプル検索手段とを備えたことを特徴とするプロ
セス間通信方式。
5. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from processes on nodes distributed over a plurality of networks, wherein the nodes are tuple structure information and actual data information. A tuple format that has been divided is also targeted, and a tuple division transmission means that interprets the tuple format and transmits structure information and data information separately, and a tuple search that recognizes the divided tuple and retrieves tuples by the structure information. And a tuple search means that is executed prior to the completion of reception of the interprocess communication method.
【請求項6】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードは複数のノードに存在する一つのタプルスペ
ースのコピーに関する管理情報を管理するタプルスペー
ス管理手段と、あるノードに存在するタプルスペース管
理手段が管理しているタプルスペースに関する管理情報
の変更情報を他のノードに存在するタプルスペース管理
手段に一貫性を維持しつつ通知するための管理情報転送
手段と、前記プロセスが自ノード上のタプルスペース管
理手段と通信する際に自ノードのタプルスペース管理手
段の障害によって通信に異常が発生した場合に他のノー
ド上のタプルスペース管理手段と通信するための通信制
御手段とを備えたことを特徴とするプロセス間通信方
式。
6. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from processes on nodes distributed over a plurality of networks, wherein the node is a tuple existing in a plurality of nodes. The tuple space management means that manages the management information about the copy of the space and the change information of the tuple space management information that is managed by the tuple space management means that exists in one node are consistent in the tuple space management means that exists in another node. And a management information transfer means for notifying while maintaining the property, and when communication is abnormal due to a failure of the tuple space management means of the own node when the process communicates with the tuple space management means on the own node. Communication control means for communicating with tuple space management means on each node Interprocess communication method, characterized in that.
【請求項7】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードは前記プロセスが複数のタプルをまとめて一
つのメッセージに変換するタプル連結手段と、タプルス
ペースに送られたメッセージから通常の単一のタプルか
連結されたタプルかを判断するメッセージ解析手段と、
前記メッセージ解析手段での解析結果から複数のタプル
が連結されている場合にメッセージを分解するメッセー
ジ分割手段と、実際にタプルの管理テーブルへの登録を
行なうタプルスペース管理手段とを備えたことを特徴と
するプロセス間通信方式。
7. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from processes on nodes distributed on a plurality of networks, wherein the node collects a plurality of tuples from each other. Tuple concatenation means for converting into one message, and message analysis means for judging from the message sent to the tuple space whether it is a normal single tuple or concatenated tuple,
A message dividing unit for decomposing a message when a plurality of tuples are linked from the analysis result of the message analyzing unit; and a tuple space managing unit for actually registering the tuple in the management table. Interprocess communication method.
【請求項8】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードはプロセスがタプルの取り出し要求に対する
応答のタプルの個数を指定するための要求の形式と、そ
の形式を解釈するタプル操作解釈手段と、タプルスペー
スから実際に複数のタプルを取り出すタプルスペース管
理手段と、複数のタプルを一つのタプルにまとめるタプ
ル連結手段と、プロセス側で連結されたタプルを解析し
て分割するためのタプル分割手段とを備えたことを特徴
とするプロセス間通信方式。
8. A tuple space communication type inter-process communication method for accessing a plurality of tuple spaces from a process on a node distributed on a plurality of networks, wherein the node is a process for responding to a tuple retrieval request. A request format for specifying the number of tuples, a tuple operation interpretation means that interprets the format, a tuple space management means that actually extracts multiple tuples from the tuple space, and a tuple that combines multiple tuples into one tuple. An inter-process communication system comprising a connecting means and a tuple dividing means for analyzing and dividing the tuples connected on the process side.
【請求項9】 複数のタプルスペースを複数のネットワ
ーク上に分散されたノード上のプロセスからアクセスす
るタプルスペース通信型のプロセス間通信方式であっ
て、 前記ノードはタプルをタプルスペースから取り出したり
読み込んだりする要求に制限時間を設定するための要求
の形式と、その形式を解釈しタプルスペース操作に設定
された制限時間を得る要求解釈手段と、要求の制限時間
をタイマによって計測して制限時間が経過した場合にそ
のことを要求管理手段に送るタイマ管理手段と、タイマ
管理手段からの通知を受けた際に対応する未処理要求の
処理を打ち切って、制限時間超過の処理を要求したプロ
セスに返答する要求管理手段とを備えたことを特徴とす
るプロセス間通信方式。
9. A tuple space communication type inter-process communication method in which a plurality of tuple spaces are accessed from processes on nodes distributed over a plurality of networks, wherein the node extracts and reads tuples from the tuple space. The request format for setting the time limit for the request, the request interpreting means that interprets the format to obtain the time limit set for the tuple space operation, and the time limit elapses by measuring the time limit of the request with a timer. In that case, the timer managing means that sends the request to the request managing means, and when the notification from the timer managing means is received, the processing of the corresponding unprocessed request is terminated and the process requesting the processing of exceeding the time limit is returned. An interprocess communication system characterized by comprising a request management means.
JP5174262A 1993-07-14 1993-07-14 Interprocess communication method Pending JPH0728732A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5174262A JPH0728732A (en) 1993-07-14 1993-07-14 Interprocess communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5174262A JPH0728732A (en) 1993-07-14 1993-07-14 Interprocess communication method

Publications (1)

Publication Number Publication Date
JPH0728732A true JPH0728732A (en) 1995-01-31

Family

ID=15975566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5174262A Pending JPH0728732A (en) 1993-07-14 1993-07-14 Interprocess communication method

Country Status (1)

Country Link
JP (1) JPH0728732A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204468A (en) * 2000-03-22 2008-09-04 Hitachi Omron Terminal Solutions Corp Access control system
JP2009093213A (en) * 2007-10-03 2009-04-30 Nippon Telegr & Teleph Corp <Ntt> Network distributed sharing system, network distributed sharing method, and network distributed sharing program
JP2009176141A (en) * 2008-01-25 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> Network distributed sharing system, network distributed sharing method, and network distributed sharing program
JP2010531023A (en) * 2007-06-19 2010-09-16 クゥアルコム・インコーポレイテッド Apparatus and method for managing a user's electronic community
JP2012173871A (en) * 2011-02-18 2012-09-10 Nippon Telegr & Teleph Corp <Ntt> Access control system, server management device, data storage device, access control method, server management program, and data storage program
US8930531B2 (en) 2008-06-18 2015-01-06 Qualcomm Incorporated Persistent personal messaging in a distributed system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204468A (en) * 2000-03-22 2008-09-04 Hitachi Omron Terminal Solutions Corp Access control system
JP2010531023A (en) * 2007-06-19 2010-09-16 クゥアルコム・インコーポレイテッド Apparatus and method for managing a user's electronic community
JP2009093213A (en) * 2007-10-03 2009-04-30 Nippon Telegr & Teleph Corp <Ntt> Network distributed sharing system, network distributed sharing method, and network distributed sharing program
JP2009176141A (en) * 2008-01-25 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> Network distributed sharing system, network distributed sharing method, and network distributed sharing program
US8930531B2 (en) 2008-06-18 2015-01-06 Qualcomm Incorporated Persistent personal messaging in a distributed system
JP2012173871A (en) * 2011-02-18 2012-09-10 Nippon Telegr & Teleph Corp <Ntt> Access control system, server management device, data storage device, access control method, server management program, and data storage program

Similar Documents

Publication Publication Date Title
US7849227B2 (en) Stream data processing method and computer systems
JP2721672B2 (en) Apparatus for distributing data processing over multiple control locations
CN103246661B (en) Visual user&#39;s behavior collection system and method thereof
US8190599B2 (en) Stream data processing method and system
JPH08286984A (en) Fault information notifying system
JP5452030B2 (en) Integrated log generation device, integrated log generation program, and recording medium
KR20010103731A (en) Method and apparatus for the dynamic filtering and routing of events
CN106909563B (en) Distributed system
KR100925139B1 (en) Information processing system, information processing apparatus, and storage medium
CN114816949A (en) Buried point reporting method, device, terminal and storage medium
JPH11127149A (en) Object movement processing unit and method in stored exchange type electronic conference system and medium recorded with movement processing program
JPH0728732A (en) Interprocess communication method
US20060004838A1 (en) Sharing large objects in distributed systems
JPH0461379B2 (en)
JP2016194907A (en) Apparatus, program, and method for updating cache memory
CN110309206A (en) Method and system for collecting order information
JPH11127147A (en) Information inconsistency determination and correction apparatus and method in storage-and-switch type electronic conference system, and information inconsistency determination and medium recording correction program
CN106802922B (en) Object-based traceability storage system and method
CN109800285A (en) A kind of flexible medical record data abstracting method, system and database server
JP2009122995A (en) Related processing record management system and management method
CN120342857B (en) Link configuration processing method and device of software system
JPH11127187A (en) Address conflict determination and correction device and method in storage-and-forward electronic conferencing system and medium recording destination conflict determination and correction program
JP2000076257A (en) Information retrieval apparatus and retrieval method in distributed network service
KR100625450B1 (en) How to handle custom emergency messages in push system
JPH1125122A (en) Data base retrieving system