JP2000020327A - Device and method for distributed processing and network system - Google Patents

Device and method for distributed processing and network system

Info

Publication number
JP2000020327A
JP2000020327A JP10181134A JP18113498A JP2000020327A JP 2000020327 A JP2000020327 A JP 2000020327A JP 10181134 A JP10181134 A JP 10181134A JP 18113498 A JP18113498 A JP 18113498A JP 2000020327 A JP2000020327 A JP 2000020327A
Authority
JP
Japan
Prior art keywords
message
packet
module
received
stored
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
JP10181134A
Other languages
Japanese (ja)
Inventor
Kozo Oide
耕三 大出
Takayuki Saito
隆之 斉藤
Hirotoshi Maekawa
博俊 前川
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.)
Digital Vision Laboratories Corp
Original Assignee
Digital Vision Laboratories 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 Digital Vision Laboratories Corp filed Critical Digital Vision Laboratories Corp
Priority to JP10181134A priority Critical patent/JP2000020327A/en
Publication of JP2000020327A publication Critical patent/JP2000020327A/en
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a distributed processing environment capable of efficiently performing the desired processing by efficiently executing message communication. SOLUTION: A transmission thread 820 of a process 810 divides the message of a transmission object into packets and transmits them to a process 850. In the process 850, the packets are parallelly received by plural reception threads and stored in a common area 883, and when the message is completed, it is dispatched to a high-order object. Its return value is dispatched to a reception thread 870 and transmitted to the process 810. In a reception thread 830 of the process 810, the message is constituted while similarly using a shared area 843 and when the message is completed, the reception of the return value is reported to the transmission thread 820 while using inter-thread communication or a message queue. Thus, the return value message is read out of the shared area 843 and dispatched to a high-order object by the transmission thread 820.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、複数のノード上に
配置されたオブジェクトがメッセージ通信を効率よく行
いながら協働して所望の処理を行う分散処理装置とその
方法、および、そのような分散処理環境を提供するネッ
トワークシステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed processing apparatus and method in which objects arranged on a plurality of nodes cooperate to perform desired processing while efficiently performing message communication, and a method for such distributed processing. The present invention relates to a network system that provides a processing environment.

【0002】[0002]

【従来の技術】種々の計算リソースを、電話回線、ケー
ブルテレビ、衛星通信などのネットワークを介して接続
したネットワークシステムが急速に普及している。ま
た、そのようなネットワークシステムにおいて、複数の
オブジェクトをネットワークワイドに配置し、それらを
連係させて所望の処理を行う並列分散処理への期待も高
まっている。このような分散処理によれば、ネットワー
ク上の計算リソースを効率よく利用して所望の処理を高
速に行うことや、ネットワーク上のコンテンツを有効に
利用することが可能となる。
2. Description of the Related Art A network system in which various computing resources are connected via a network such as a telephone line, a cable television, a satellite communication, or the like, is rapidly spreading. Further, in such a network system, there is a growing expectation for parallel distributed processing in which a plurality of objects are arranged in a network wide manner and linked to perform desired processing. According to such distributed processing, it becomes possible to efficiently use computation resources on the network to perform desired processing at high speed, and to effectively use contents on the network.

【0003】そのような分散処理を行うためには、各オ
ブジェクトがネットワークを介して通信を行いながら、
協調して動作をすることが基本となる。そして、その通
信の方式としては、RPC(Remote Procedure Call:遠
隔手続き呼び出し)が用いられることが多い。ところ
で、そのような分散処理を効率よく行うためには、各オ
ブジェクト間、換言すれば、ネットワーク上の各ノード
においてオブジェクトに実行環境を提供している各プロ
セス間で、通信を効率よく行う必要がある。すなわち、
不特定多数のノードのプロセス間で、メッセージを同時
に通信できることが望まれる。
[0003] In order to perform such distributed processing, each object communicates via a network.
It is fundamental to operate in cooperation. As a communication method, RPC (Remote Procedure Call) is often used. By the way, in order to perform such distributed processing efficiently, it is necessary to efficiently communicate between each object, in other words, between each process that provides an execution environment for the object at each node on the network. is there. That is,
It is desired that messages can be simultaneously communicated between processes of an unspecified number of nodes.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、これま
では、1つのプロセスには通常1つの受信スレッドが設
けられ、これにより送信されてきたメッセージを取り出
すようにしている場合が多い。そのため、ソケットのキ
ューに蓄積される速度が早いと、取り出しが追いつか
ず、ソケットキューが飽和し、適切にメッセージの受信
ができなくなる可能性があるという問題がある。また、
複数の受信スレッドを具えるような場合においても、各
受信スレッドはメッセージと対応付けられており、目的
とするメッセージを構成するパケットのみを受信する。
そのため、ソケットキューからパケットを取り出す速度
は、受信スレッドが1つの場合と大差なく、その結果、
前述したのと同様に、ソケットキューが飽和し、適切に
メッセージの受信ができなくなる可能性があるという問
題がある。
However, in the past, one process is usually provided with one receiving thread, so that the transmitted message is often taken out. Therefore, if the speed of the accumulation in the socket queue is high, there is a problem that the retrieval cannot keep up, the socket queue is saturated, and the message cannot be properly received. Also,
Even in the case where a plurality of receiving threads are provided, each receiving thread is associated with a message and receives only a packet constituting a target message.
Therefore, the speed of retrieving a packet from the socket queue is not much different from the case of a single receiving thread.
As described above, there is a problem that the socket queue may be saturated and the message may not be properly received.

【0005】また、現状のようなRPCをそのまま用い
たプロセス間通信では、送信側スレッドがクライアント
としてリクエストを送信して、サーバたる相手から返っ
てくる応答を同じスレッドで受ける方法で通信を行って
いる。しかしながら、ネットワーク上の分散された各オ
ブジェクトの関係から言えば、クライアント−サ−バの
関係ではなく、対等の関係の通信を行う方が望ましい。
そしてその上で、各ノードにおいては、不特定多数の相
手に対して多数のリクエストを適宜送信し、順次返信さ
れてくる応答に対しても適切に処理できるような構成と
するのが好適であり、そのようなフレームワークを実現
したいという要望がある。
In the current inter-process communication using the RPC as it is, communication is performed by a method in which a transmitting thread transmits a request as a client and receives a response returned from a server partner on the same thread. I have. However, in terms of the relationship between the distributed objects on the network, it is desirable to perform communication in an equal relationship, not in a client-server relationship.
Then, it is preferable that each node appropriately transmits a large number of requests to an unspecified large number of opponents and appropriately processes responses sequentially returned. There is a demand for realizing such a framework.

【0006】さらに、このようなネットワークシステム
においては、プログラム言語などになんら制限されずに
機能が提供されることが望ましい。しかしながら、現状
では、分散処理システム上のメッセージパッシング機構
を利用するコードと、メッセージパッシング機構を提供
するコードが、異なる言語で記述されている場合には、
場合によっては上位のアプリケーションからスレッドを
制御することができない場合がある。また、異なる言語
で記述されたプログラム間では、たとえば、プロセスの
生成、スレッドの生成あるいはスレッド間通信などがで
きない場合がある。そのため、前述したようなメッセー
ジ通信に係わる好適な環境を構築するのが、より一層難
しいという問題もある。
[0006] Further, in such a network system, it is desirable to provide functions without being restricted by a programming language or the like. However, at present, when the code using the message passing mechanism on the distributed processing system and the code providing the message passing mechanism are described in different languages,
In some cases, the thread cannot be controlled from a higher-level application. Further, between programs written in different languages, for example, it is sometimes impossible to create a process, create a thread, or perform communication between threads. Therefore, there is also a problem that it is more difficult to construct a suitable environment related to message communication as described above.

【0007】したがって本発明の目的は、任意の言語で
記述されたオブジェクトを有するプロセス間で大量のメ
ッセージの通信を効率よく行うことができ、これにより
該オブジェクトが協働して所望の処理を効率よく実行す
ることができる分散処理装置を提供することにある。ま
た本発明の他の目的は、任意の言語で記述されたオブジ
ェクトを有するプロセス間で大量のメッセージの通信を
効率よく行うことができ、これにより該オブジェクトが
協働して所望の処理を効率よく実行することができる分
散処理方法を提供することにある。また本発明の他の目
的は、ネットワークを介して接続されたプロセス間で大
量のメッセージの通信を効率よく行うことができ、当該
プロセスに分散配置された任意の言語で記述されたオブ
ジェクトに対して全体として所望の処理を効率よく実行
することができる分散処理環境を提供することのできる
ネットワークシステムを提供することにある。
Accordingly, it is an object of the present invention to enable efficient communication of a large amount of messages between processes having objects described in an arbitrary language, whereby the objects cooperate to efficiently execute desired processing. An object of the present invention is to provide a distributed processing device that can be executed well. Another object of the present invention is to enable efficient communication of a large amount of messages between processes having objects described in an arbitrary language, whereby the objects cooperate to efficiently execute desired processing. An object of the present invention is to provide a distributed processing method that can be executed. Another object of the present invention is to enable efficient communication of a large amount of messages between processes connected via a network, and for objects described in an arbitrary language distributed and arranged in the processes. It is an object of the present invention to provide a network system capable of providing a distributed processing environment capable of efficiently executing desired processing as a whole.

【0008】[0008]

【課題を解決するための手段】したがって、本発明の分
散処理装置は、複数のオブジェクトが協働して所望の処
理を行う分散処理装置であって、相互に接続された複数
のノードと、前記ノード上に各々1つまたは複数形成さ
れ、配置されたオブジェクトに実行環境を提供する複数
のプロセスと、各々前記複数のプロセスのいずれかに配
置される前記複数のオブジェクトとを有し、前記複数の
プロセスの各々は、当該プロセスに配置された前記オブ
ジェクトの動作に基づく送信対象のメッセージを複数の
パケットに分割し、所望のプロセスに送信する送信モジ
ュールと、各々、前記送信されたパケットを受信し、該
受信したパケットを当該プロセス内の任意の処理モジュ
ールよりアクセス可能な所定の共有記憶領域に格納する
複数の受信モジュールと、1のメッセージの全てのパケ
ットが前記共有領域に格納された場合に、当該メッセー
ジを実質的に読み出して、当該プロセスに配置された前
記オブジェクトの動作に基づく所定の処理を行う処理モ
ジュールに提供する選択モジュールとを有する。
SUMMARY OF THE INVENTION Accordingly, a distributed processing apparatus according to the present invention is a distributed processing apparatus in which a plurality of objects cooperate to perform a desired process. One or more each formed on a node, a plurality of processes that provide an execution environment for the arranged objects, and the plurality of objects each arranged in any of the plurality of processes, Each of the processes divides a message to be transmitted based on the operation of the object arranged in the process into a plurality of packets, and a transmission module that transmits the packet to a desired process, and receives the transmitted packets, respectively. A plurality of receiving modules for storing the received packet in a predetermined shared storage area accessible from any processing module in the process. And when all packets of one message are stored in the shared area, the processing module that substantially reads the message and performs a predetermined process based on the operation of the object arranged in the process. A selection module to be provided.

【0009】また、本発明の分散処理方法は、複数のオ
ブジェクトが協働して所望の処理を行う分散処理方法で
あって、相互に接続された複数のノードの各々に、配置
されたオブジェクトに実行環境を提供する複数のプロセ
スを1または複数配置し、前記複数のオブジェクトを、
各々前記複数のプロセスのいずれかに配置し、前記プロ
セスに配置された前記各オブジェクトの動作に基づいて
生成された通信対象のメッセージを各々複数のパケット
に分割し、前記分割された複数のパケット各々を当該プ
ロセス内の送信モジュールにより送信し、前記各パケッ
トが送信された前記各プロセスにおいて、該プロセス内
の複数の受信モジュールが、前記送信されたパケットを
並行して受信し、該受信したパケットを所定の共有記憶
領域に格納し、1のメッセージの全てのパケットが前記
共有領域に格納された場合に、当該メッセージを実質的
に読み出し、前記読み出したメッセージを当該プロセス
に配置された前記オブジェクトの動作に基づく所定の処
理を行う所定の処理モジュールに提供し、前記複数のオ
ブジェクトが前記プロセスを介して相互に所望の内容の
メッセージの通信を行うことにより所望の処理を協働し
て行う。
A distributed processing method according to the present invention is a distributed processing method in which a plurality of objects cooperate to perform a desired process. One or more processes for providing an execution environment are arranged, and the plurality of objects are
Each of the plurality of divided packets is arranged in any one of the plurality of processes, and a communication target message generated based on the operation of each of the objects arranged in the process is divided into a plurality of packets. Is transmitted by a transmission module in the process, and in each of the processes in which the respective packets are transmitted, a plurality of reception modules in the process receive the transmitted packets in parallel, and When the message is stored in a predetermined shared storage area and all the packets of one message are stored in the shared area, the message is substantially read out, and the read message is read by the operation of the object arranged in the process. To a predetermined processing module that performs predetermined processing based on the plurality of objects, It performed in cooperation desired processing by communicating a message of the desired content to each other through the process.

【0010】また、本発明のネットワークシステムは、
ネットワークを介して接続された複数のノードと、協働
して所望の処理を行うための複数のオブジェクトが配置
される、前記ノード上に各々1つまたは複数形成される
複数のプロセスであって、各々、当該プロセスに配置さ
れた前記オブジェクトの動作に基づく送信対象のメッセ
ージを複数のパケットに分割し、前記ネットワークを介
して所望のプロセスに送信する送信モジュールと、各
々、前記ネットワークを介して送信されたパケットを受
信し、該受信したパケットを当該プロセス内の任意の処
理モジュールよりアクセス可能な所定の共有記憶領域に
格納する複数の受信モジュールと、1のメッセージの全
てのパケットが前記共有領域に格納された場合に、当該
メッセージを実質的に読み出して、当該プロセスに配置
された前記オブジェクトの動作に基づく所定の処理を行
う処理モジュールに提供する選択モジュールとを有する
複数のプロセッサとを有する。
[0010] The network system of the present invention comprises:
A plurality of processes each formed on the node, wherein a plurality of nodes connected via a network and a plurality of objects for performing desired processing in cooperation with each other are arranged, A transmission module that divides a message to be transmitted based on the operation of the object arranged in the process into a plurality of packets, and transmits the packets to a desired process via the network; and A plurality of receiving modules for receiving the received packet and storing the received packet in a predetermined shared storage area accessible from any processing module in the process, and storing all the packets of one message in the shared area. If the message is read, the message is substantially read and the object placed in the process is read. And a plurality of processors and a selection module for providing a processing module for performing a predetermined processing based on the bets operation.

【0011】好適には、前記複数の受信モジュールは、
当該プロセスに対して送信される複数のメッセージの各
パケットを、各々メッセージと対応付けられることなく
並行して順次受信し、該受信したパケットを前記共有記
憶領域に各々格納する。また好適には、前記複数の受信
モジュールの各々は、前記受信した各パケットを、当該
パケットが有する当該パケットが構成するメッセージの
識別情報と、当該パケットのメッセージ内での位置を示
す情報とに基づいて、前記共有記憶領域の所定の領域に
記憶する。また好適には、前記受信され前記共有領域に
格納されたメッセージの内容が、当該プロセスより他の
プロセスに先に送られたメッセージに対する返答内容の
場合は、当該元のメッセージを送信した前記送信モジュ
ールが、前記選択モジュールとして、前記格納されたメ
ッセージを読み出し、前記所定の処理を行う処理モジュ
ールに提供する。
Preferably, the plurality of receiving modules include:
Each packet of a plurality of messages transmitted to the process is sequentially received in parallel without being associated with each message, and the received packets are stored in the shared storage areas. Also preferably, each of the plurality of receiving modules is configured to identify each of the received packets based on identification information of a message included in the packet and information indicating a position of the packet in the message. Then, it is stored in a predetermined area of the shared storage area. Preferably, when the content of the message received and stored in the shared area is a reply content to a message sent earlier than the process to another process, the transmission module that transmitted the original message However, as the selection module, the stored message is read and provided to a processing module that performs the predetermined processing.

【0012】特定的には、前記複数の受信モジュールの
各々は、前記受信し前記共有記憶領域に格納したパケッ
トが、当該パケットが構成するメッセージの最後のパケ
ットであった場合であって、当該メッセージが当該プロ
セスより他のプロセスに既に送られたメッセージに対す
る返答内容の場合に、当該元のメッセージを送信した送
信モジュールに対して、該返答内容を有するメッセージ
を受信した旨を通知する。
[0012] More specifically, each of the plurality of receiving modules is configured so that the packet received and stored in the shared storage area is the last packet of a message included in the packet. Is a response to a message already sent from the process to another process, notifies the transmitting module that transmitted the original message that the message having the response has been received.

【0013】また特定的には、前記複数の受信モジュー
ルの各々は、前記受信し前記共有記憶領域に格納したパ
ケットが、当該パケットが構成するメッセージの最後の
パケットであった場合であって、当該メッセージが当該
プロセスより他のプロセスに既に送られたメッセージに
対する返答内容の場合に、当該返答内容を有するメッセ
ージを受信した旨を示すデータを、当該元のメッセージ
を送信した送信モジュールより参照可能な所定のキュー
に投入し、前記送信モジュールは、前記所定のキューを
監視することにより、前記返答内容を有するメッセージ
の到達を検知し、前記共有記憶領域より当該メッセージ
を読み出す。
[0013] More specifically, each of the plurality of receiving modules is configured so that the packet received and stored in the shared storage area is the last packet of the message that the packet comprises, If the message is a reply to a message that has already been sent from the process to another process, the data indicating that the message having the reply has been received can be referred to from the transmitting module that transmitted the original message. The transmission module monitors arrival of a message having the reply content by monitoring the predetermined queue, and reads the message from the shared storage area.

【0014】さらに特定的には、前記送信モジュール
は、前記複数の受信モジュールにより前記共有記憶領域
に順次形成されるメッセージを監視することにより、前
記返答内容を有するメッセージの到達を検知し、前記共
有記憶領域より当該メッセージを読み出す。
[0014] More specifically, the transmission module detects arrival of the message having the reply content by monitoring messages sequentially formed in the shared storage area by the plurality of reception modules, and The message is read from the storage area.

【0015】また好適には、前記受信され前記共有領域
に格納されたメッセージの内容が、当該プロセスより他
のプロセスに既に送られたメッセージに対する返答内容
では無い新たなメッセージである場合は、当該メッセー
ジを受信した前記受信モジュールが、メッセージを読み
出す選択モジュールとなり、前記格納されたメッセージ
を読み出し、前記所定の処理を行う処理モジュールに提
供する。特定的には、前記メッセージの通信は、遠隔手
続き呼び出し(リモート・プロシージャ・コール(RP
C:Remote Procedure Call))により行う。
Preferably, when the content of the message received and stored in the shared area is a new message which is not a reply content to a message already sent from the process to another process, the message is Is a selection module that reads out a message, and reads out the stored message and provides it to a processing module that performs the predetermined processing. Specifically, the communication of the message is a remote procedure call (RP).
C: Remote Procedure Call)).

【0016】[0016]

【発明の実施の形態】本発明の一実施の形態について、
図1〜図7を参照して説明する。本実施の形態において
は、計算機装置などで構成される複数のノードがネット
ワークを介して接続されたネットワークシステムであっ
て、各ノードがネットワークを介して通信を行いながら
協働して所望の計算処理を行うような、分散処理環境を
提供するネットワークシステムを例示して本発明を説明
する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described.
This will be described with reference to FIGS. In the present embodiment, a network system in which a plurality of nodes including a computer device and the like are connected via a network, wherein each node cooperates while communicating via the network to perform a desired calculation process. The present invention will be described by exemplifying a network system that provides a distributed processing environment for performing the above.

【0017】まず、そのようなネットワークシステムの
全体構成について説明する。図1は、そのネットワーク
システムの全体構成を模式的に示す図である。本実施の
形態のネットワークシステムは、インターネットや、C
ATV網、衛星通信など多様な通信メディアが混在して
構成されるネットワーク環境において、ネットワーク上
の分散リソースを論理的に一体の計算環境として捉え、
分散処理環境を提供するものである。ここで、分散リソ
ースとは、各ノードのハードウェア機能に加えて、デー
タベースや高性能計算サーバ、WWWページの情報ソー
スなど、任意の計算機能を提供するものである。また、
その計算とは、広い範囲の種々の処理の実行を含むもの
とする。
First, the overall configuration of such a network system will be described. FIG. 1 is a diagram schematically showing the overall configuration of the network system. The network system according to the present embodiment includes the Internet, C
In a network environment composed of various communication media such as ATV network and satellite communication, distributed resources on the network are logically regarded as one integrated computing environment.
It provides a distributed processing environment. Here, the distributed resource provides an arbitrary calculation function such as a database, a high-performance calculation server, and an information source of a WWW page, in addition to the hardware function of each node. Also,
The calculation includes execution of a wide range of various processes.

【0018】このような分散処理環境上に、計算実体で
ある分散モジュール(並行オブジェクトと言う場合もあ
る。)が配置され、計算空間を形成する。なお、計算空
間は、同一のネットワーク環境上に複数のものをそれぞ
れ個別に形成することができる。この分散モジュール
は、具体的には、リモート呼出可能な分散オブジェク
ト、分散関数、あるいは、ネットワークを介して参照可
能な共有変数(以後、大域共有変数と言う。)である。
そして、これらにより、分散オブジェクト指向計算、分
散関数(手続き)呼び出しおよび大域共有変数処理とい
う各計算が、並行的に行われる。
On such a distributed processing environment, distributed modules (sometimes referred to as concurrent objects), which are computational entities, are arranged to form a computation space. A plurality of calculation spaces can be individually formed on the same network environment. This distributed module is, specifically, a distributed object that can be remotely called, a distributed function, or a shared variable that can be referred to via a network (hereinafter, referred to as a global shared variable).
With these, each calculation of distributed object-oriented calculation, distributed function (procedure) call, and global shared variable processing is performed in parallel.

【0019】このような計算を行うための、分散オブジ
ェクトメソッドおよび分散関数の呼び出しや、大域共有
変数へのアクセスという並行オブジェクト間の通信は、
非同期メッセージ送信(返値なしの一方向の通信)、
遅延評価型同期呼び出し(返値にアクセスしたときブ
ロックする)、完全同期呼び出し(返値到着まで呼出
側がブロックする)という3種類の方法により行う。な
お、これらの通信を総称してメッセージ通信と呼ぶ。す
なわち、このようなネットワークシステムは、ネットワ
ーク上に分散配置された並行オブジェクトが、メッセー
ジ通信によって並行計算を各々順次実行し、メッセージ
の連鎖によって全体として所望の計算を進行させるシス
テムと言うことができる。
Communication between concurrent objects such as calling distributed object methods and distributed functions and accessing global shared variables for performing such calculations is as follows:
Asynchronous message transmission (one-way communication without return value),
It is performed by three types of methods: a delay evaluation type synchronous call (blocks when a return value is accessed) and a complete synchronous call (the caller blocks until a return value arrives). Note that these communications are collectively referred to as message communications. That is, such a network system can be said to be a system in which concurrent objects distributed and arranged on the network sequentially execute parallel computations by message communication, and advance desired computations as a whole by chaining messages.

【0020】計算空間に配置される各並行オブジェクト
は、図2に示すように、ネットワークノードにプロセス
を生成して管理する。プロセスは、並行オブジェクト間
のメッセージ送受信の機構などを提供する、並行オブジ
ェクトのための計算環境である。そのため、アプリケー
ション言語インタフェース(API) と、OSやハード
ウェアに対するシステムインターフェースを備え、プロ
グラミング言語やOS、ハードウェア、ネットワークと
いった実行環境の違いに適応して稼働できるようになっ
ている。また、メッセージは、異なる言語間でも送信可
能であり、任意のデータ構造体を引数として扱えるよう
になっている。その結果、このようなプロセスの集合と
して得られる実行環境は、大域空間上で共通の仮想的計
算環境として機能する。
As shown in FIG. 2, each concurrent object arranged in the computation space generates and manages a process in a network node. A process is a computing environment for concurrent objects that provides a mechanism for sending and receiving messages between concurrent objects. Therefore, it is provided with an application language interface (API) and a system interface to the OS and hardware, and can operate according to the difference in the execution environment such as the programming language, OS, hardware, and network. The message can be transmitted between different languages, and an arbitrary data structure can be handled as an argument. As a result, an execution environment obtained as a set of such processes functions as a common virtual computing environment in the global space.

【0021】次に、このようなプロセス間において行わ
れ、所望の分散処理を実施するための機構である、メッ
セージ送受信機構について説明する。図3は、前述した
ようにプロセスにより提供されるメッセージ送受信機構
を説明するための図である。プロセス100は、メッセ
ージ送受信に係わる構成部として、アプリケーションプ
ログラミング機能120、スケジューラ130、参照解
決器140、メッセージ通信部150、オペレーティン
グシステムインターフェイス(OSI/F)160およ
び通信メディアインターフェイス(通信メディアI/
F)170を有する。
Next, a description will be given of a message transmitting / receiving mechanism, which is a mechanism for performing a desired distributed processing performed between such processes. FIG. 3 is a diagram for explaining a message transmitting / receiving mechanism provided by the process as described above. The process 100 includes, as components related to message transmission / reception, an application programming function 120, a scheduler 130, a reference resolver 140, a message communication unit 150, an operating system interface (OSI / F) 160, and a communication media interface (communication media I / F).
F) It has 170.

【0022】アプリケーションプログラミング機能12
0は、並行オブジェクト110に対して、メッセージ送
信に関連したAPI (Application Programming Interf
ace)を提供する。スケジューラ130は、受信したメッ
セージの実行などの、そのプロセスにおける計算の制御
を行う。参照解決器140は、参照テーブル141を参
照して、メッセージ送信を行う計算実体を特定する。メ
ッセージ通信部150は、メッセージの送受信を行う機
能であり、メッセージセンダ151およびメッセージデ
ィスパッチャ152を有する。
Application programming function 12
0 indicates to the concurrent object 110 an API (Application Programming Interface) related to message transmission.
ace). The scheduler 130 controls calculations in the process, such as executing the received message. The reference resolver 140 refers to the reference table 141 and specifies a calculation entity that performs message transmission. The message communication unit 150 is a function for transmitting and receiving a message, and includes a message sender 151 and a message dispatcher 152.

【0023】OSI/F160は、移植性、可搬性を確
保しながらシステムに依存した処理を行えるようにする
ためのシステムプログラミングインターフェイスであ
る。通信メディアI/F170は、各並行オブジェクト
がメッセージ通信を行う上で必要となる、通信メディア
とのインターフェイスを行うシステムプログラミングイ
ンターフェイスである。本発明に係わるこの通信メディ
アI/F170については、後に詳述する。
The OSI / F 160 is a system programming interface for performing system-dependent processing while ensuring portability and portability. The communication media I / F 170 is a system programming interface that interfaces with a communication medium, which is necessary for each concurrent object to perform message communication. The communication media I / F 170 according to the present invention will be described later in detail.

【0024】このような構成のプロセス100における
メッセージ送信処理の流れについて、図4に示す。メッ
セージ送信では、アプリケーションプログラミング機能
120のAPI上のメッセージ送信関数の呼び出しによ
って、引数の構造体を認識して送信可能な論理形式に変
換し、参照解決器140により送信先オブジェクトの参
照解決を行ない、メッセージ通信部150で送信の処理
をする。この時、送信先の所在によって、通信メディア
I/F170を介したノード間RPC、ノード内IP
C、あるいは、プロセス内通信を選択して送信を行う。
ノード間でRPCを用いるのは、メッセージの到達を把
握するためである。送信先がドメインやオブジェクトク
ラスタになっていれば、プロセス毎のマルチキャストを
行なう。通信メディアI/F170は、対応するメディ
アごとに用意し、データの種類と制御の内容に応じて使
用するものを指定することができる。
FIG. 4 shows the flow of the message transmission process in the process 100 having such a configuration. In the message transmission, by calling a message transmission function on the API of the application programming function 120, the structure of the argument is recognized and converted into a logical form that can be transmitted, and the reference resolver 140 resolves the reference of the transmission destination object. The message communication unit 150 performs transmission processing. At this time, depending on the location of the transmission destination, the RPC between nodes via the communication media I / F 170, the IP within the node
C or the communication in the process is selected and transmitted.
The reason for using RPC between nodes is to grasp the arrival of a message. If the transmission destination is a domain or an object cluster, multicast is performed for each process. The communication medium I / F 170 is prepared for each corresponding medium, and can specify a medium to be used according to the type of data and the content of control.

【0025】また、このような構成のプロセス100に
おけるメッセージ受信処理の流れについて、図5に示
す。通信メディアI/F170を介してメッセージを受
信すると、メッセージディスパッチャ152は、受け取
ったリモート識別子から受信オブジェクトを特定し、そ
の処理を行なうための関数記述子を生成し、アプリケー
ションプログラミング機能120に出力する。メッセー
ジ引数は、論理形式からデータ構造体に展開する。関数
記述子は、オブジェクトメソッドと分散関数の呼び出
し、あるいは共有変数のアクセスを起動するための情報
と、メッセージの時間属性と優先度、および、メッセー
ジ送信元オブジェクトの呼出情報を保持したものであ
る。この関数記述子が、スケジューラ130に渡され処
理される。メッセージ送信が同期呼出による場合は、ス
ケジューラ130による実行で得た評価値を同様に論理
形式に変換して、同じメッセージセンダ151により呼
び出し側に送信する。参照が中継されている場合は、リ
モート識別子から新たな大域参照が得られるので、メッ
セージディスパッチャ152はそのままメッセージセン
ダ151を呼び出す。
FIG. 5 shows a flow of a message receiving process in the process 100 having such a configuration. When a message is received via the communication media I / F 170, the message dispatcher 152 specifies a receiving object from the received remote identifier, generates a function descriptor for performing the processing, and outputs the function descriptor to the application programming function 120. Message arguments are expanded from a logical format into a data structure. The function descriptor holds information for invoking an object method and a distributed function or access to a shared variable, a time attribute and a priority of a message, and information for calling a message transmission source object. This function descriptor is passed to the scheduler 130 for processing. When the message transmission is performed by synchronous calling, the evaluation value obtained by the execution by the scheduler 130 is similarly converted into a logical form, and transmitted to the calling side by the same message sender 151. If the reference is relayed, a new global reference is obtained from the remote identifier, so that the message dispatcher 152 calls the message sender 151 as it is.

【0026】次に、このようなネットワークシステムお
よびメッセージ通信方式において、上位からのメッセー
ジ通信の要求に応じて実際にメッセージの通信を行う通
信メディアI/F170について、詳細に説明する。な
おここでは、本発明に係わる、通信メディアを介してノ
ード間でメッセージ通信を行う場合について説明する。
Next, in such a network system and message communication system, a communication media I / F 170 that actually performs message communication in response to a message communication request from a host will be described in detail. Here, a case will be described in which message communication is performed between nodes via a communication medium according to the present invention.

【0027】図6は、プロセスの通信メディアI/F1
70の論理構成を示すとともに、ノードA上のプロセス
の通信メディアI/F170aからノードB上のプロセ
スの通信メディアI/F170bの間でメッセージ通信
が行われる場合の処理の流れを示す図である。図示のご
とく、通信メディアI/F170は、通信メソッドディ
スパッチャ171および各通信メソッドごとの通信部を
有する。
FIG. 6 shows the communication media I / F1 of the process.
70 is a diagram showing the logical configuration of a node 70 and the flow of processing when message communication is performed between the communication media I / F 170a of the process on the node A and the communication media I / F 170b of the process on the node B. As illustrated, the communication media I / F 170 has a communication method dispatcher 171 and a communication unit for each communication method.

【0028】通信メソッドディスパッチャ171は、メ
ッセージ通信部150のメッセージセンダ151から入
力されるメッセージ通信の要求に応じて、そのメッセー
ジ通信を行うための通信メディアを選択し、その通信メ
ディアの通信部にそのメッセージ通信に係わる情報を入
力する。通信部には、CATV網、電話回線網などの通
信メディアに対応した各処理部が用意されているが、そ
の1つとして、インターネットを介してRPCによりメ
ッセージ通信を行うためのRPC部172が設けられて
いる。本実施の形態においては、以下、このRPC部1
72によるRPCを用いた通信制御方式について説明す
る。
In response to a message communication request input from the message sender 151 of the message communication unit 150, the communication method dispatcher 171 selects a communication medium for performing the message communication and sends the communication medium to the communication unit of the communication medium. Enter information related to message communication. The communication unit is provided with various processing units corresponding to communication media such as a CATV network and a telephone line network. As one of them, an RPC unit 172 for performing message communication by RPC via the Internet is provided. Have been. In the present embodiment, hereinafter, this RPC unit 1
A communication control method using RPC 72 will be described.

【0029】RPCを使用した場合には、通信エラーの
リトライが自動的に行われたり、要求に対する応答でA
CKを受け取るという利用法により、送受信の確実性を
向上させることができる。また、通信メディアI/F1
70がメッセージ本体に付加する管理情報のバイトオー
ダなどの変換も、RPCのプトロコルコンパイラが生成
するフィルタを利用して行うことができるので好適であ
る。ただし、メッセージ本体に関する変換は、アプリケ
ーションプログラミング機能120で行う。なお、本実
施の形態のRPCは、具体的には、ソラリス(米国 Sun
Microsystems, Inc. の登録商標)におけるONC(Op
en Network Computing)RPC、WindowsNT(米国 M
icrosoft Corporationの登録商標)におけるONC-RPC fo
r WindowsNTである。
When the RPC is used, a communication error is automatically retried,
The use of receiving a CK can improve the reliability of transmission and reception. In addition, communication media I / F1
The conversion of the management information added by 70 to the message body, such as the byte order, can also be performed using a filter generated by the protocol compiler of the RPC. However, the conversion relating to the message body is performed by the application programming function 120. Note that the RPC of the present embodiment is, specifically, Solaris (Sun, USA).
ONC (Op) in Microsystems, Inc.
en Network Computing) RPC, Windows NT (M
ONC-RPC fo in the registered trademark of icrosoft Corporation)
r Windows NT.

【0030】また、RPC部172においては、トラン
スポート層のプロトコルにTCPまたはUDPを用い
る。また、トランスポート層のプロトコルにTCPを選
択した場合には、TCPのサービスにより信頼性を向上
できる。しかし、TCPはコネクション指向であるた
め、同時に多数のコネクションを確立した時の性能面で
問題がある。それが問題となる場合には、トランスポー
ト層のプロトコルにUDPを選択すればよい。UDPを
選択した場合には、TCPのような信頼性は期待できな
いが、信頼性を向上させるサービスが無い分性能はよ
い。なお、以下の説明においては、UDPを選択した場
合について説明する。
The RPC section 172 uses TCP or UDP as a transport layer protocol. When TCP is selected as the transport layer protocol, reliability can be improved by the TCP service. However, since TCP is connection-oriented, there is a problem in performance when many connections are established at the same time. If that poses a problem, UDP may be selected as the transport layer protocol. When UDP is selected, the reliability like TCP cannot be expected, but the performance is good because there is no service for improving the reliability. In the following description, a case where UDP is selected will be described.

【0031】図示のごとく、RPC部172は、さらに
メッセージハンドラ174とコミュニケーションマネー
ジャ173とを有する。
As shown, the RPC section 172 further has a message handler 174 and a communication manager 173.

【0032】メッセージハンドラ174は、メッセージ
の分割および復元の処理を行う。UDPには、送信デー
タ量に制限がある。そのため、トランスポート層のプロ
トコルにUDPを用いる場合で、その送信量の制限を越
えるメッセージを送信する際は、メッセージを一定のデ
ータサイズのパケットに分割して送信し、受信側で復元
する。メッセージハンドラ174は、このような分割お
よび復元の処理を行う。図示のごとく、メッセージハン
ドラ174は、メッセージ分割部(Message Fragmentati
on) 175、メッセージ組み立て部(Message Reassembl
age)176およびバッファマネージャ(Buffer Manager)
177を有する。
The message handler 174 performs message division and restoration processing. UDP has a limit on the amount of transmission data. Therefore, when UDP is used as the transport layer protocol and a message exceeding the transmission amount limit is transmitted, the message is divided into packets of a fixed data size, transmitted, and restored on the receiving side. The message handler 174 performs such division and restoration processing. As illustrated, the message handler 174 includes a message fragmentation unit (Message Fragmentati
on) 175, Message Reassembl
age) 176 and Buffer Manager
177.

【0033】メッセージ分割部175は、メッセージを
一定サイズのパケットに分割して、コミュニケーション
マネージャ173に出力する。この時、メッセージ分割
部175は、分割した各パケットに、受信側でメッセー
ジを復元するのに必要な情報を付加する。付加する情報
は、送信者のIPアドレスとプロセスID、メッセージ
長、メッセージシーケンス番号、パケット総数、および
パケットシーケンス番号である。メッセージシーケンス
番号は、プロセス内で何番目に送信したメッセージかを
示す番号であり、パケット総数は、メッセージをいくつ
のパケットに分割したかを示す数であり、パケットシー
ケンス番号は、メッセージを分割した中の何番目のパケ
ットかを示す番号である。
The message division unit 175 divides the message into packets of a fixed size and outputs the packets to the communication manager 173. At this time, the message division unit 175 adds information necessary for restoring the message on the receiving side to each of the divided packets. The information to be added is the sender's IP address and process ID, message length, message sequence number, total number of packets, and packet sequence number. The message sequence number is a number indicating the order of the message transmitted in the process, the total number of packets is a number indicating how many packets the message has been divided into, and the packet sequence number is the number of the divided message. Is a number indicating the order of the packet.

【0034】メッセージ再組み立て部176は、コミュ
ニケーションマネージャ173より入力される受信した
パケットを元のメッセージに組み立てて、メッセージ通
信部150のメッセージディスパッチャ152に出力す
る。この時、送信側は、分割したパケットを順番に送信
するだけであるが、受信側は1つのメッセージのパケッ
トとパケット間に、別のメッセージのパケットを受信す
る可能性がある。したがって、メッセージ再組み立て部
176は、メッセージごとに受信用バッファを持ち、受
信したパケットを対応するバッファに振り分け、メセー
ジを組み立てる。
Message reassembly section 176 assembles the received packet input from communication manager 173 into an original message, and outputs the original message to message dispatcher 152 of message communication section 150. At this time, the transmitting side only transmits the divided packets in order, but the receiving side may receive a packet of another message between packets of one message. Therefore, the message reassembly unit 176 has a reception buffer for each message, distributes the received packet to the corresponding buffer, and assembles a message.

【0035】バッファマネージャ177は、メッセージ
再組み立て部176の要求に応じて、図示せぬバッファ
を管理する。バッファマネージャ177は、メッセージ
再組み立て部176から新たなバッファの生成があった
時には、バッファを生成する。また、順次入力されるパ
ケットを、当該パケットが構成するメッセージに対応す
るバッファに順次格納する。また、1つのメッセージを
構成する全てのパケットが格納されてメッセージが完成
したら、そのメッセージをバッファより読み出して、メ
ッセージ再組み立て部176に出力する。
The buffer manager 177 manages a buffer (not shown) in response to a request from the message reassembly unit 176. The buffer manager 177 generates a buffer when a new buffer is generated from the message reassembly unit 176. In addition, the sequentially input packets are sequentially stored in a buffer corresponding to a message included in the packet. When all the packets constituting one message are stored and the message is completed, the message is read from the buffer and output to the message reassembly unit 176.

【0036】メッセージ再組み立て部176およびバッ
ファマネージャ177によるメッセージの再組み立ての
動作について具体的に説明する。メッセージ再組み立て
部176は、受信したパケットが、そのメッセージの最
初のパケットだった場合には、そのメッセージ長に応じ
たバッファを、バッファマネージャ177に要求する。
バッファは、送信側のIPアドレス、プロセスID、メ
ッセージシーケンス番号で識別される。そして、その要
求に基づいて生成されたバッファに、受信したパケット
を格納する。受信したパケットが、メッセージの2番目
以降のパケットだった場合には、前述したIPアドレ
ス、プロセスID、メッセージシーケンスが同一のバッ
ファを探索する。そして、そのバッファに、受信したパ
ケットを格納する。そして、格納したパケットがそのメ
ッセージの最後のパケットだった場合には、復元された
メッセージをバッファから読み出し、メッセージ通信部
150に出力する。
The operation of reassembling a message by the message reassembly unit 176 and the buffer manager 177 will be specifically described. If the received packet is the first packet of the message, the message reassembly unit 176 requests the buffer manager 177 for a buffer corresponding to the message length.
The buffer is identified by the sender's IP address, process ID, and message sequence number. Then, the received packet is stored in the buffer generated based on the request. When the received packet is the second or subsequent packet of the message, the buffer searching unit 11 searches for a buffer having the same IP address, process ID, and message sequence. Then, the received packet is stored in the buffer. Then, when the stored packet is the last packet of the message, the restored message is read from the buffer and output to the message communication unit 150.

【0037】次に、コミュニケーションマネージャ17
3について説明する。コミュニケーションマネージャ1
73は、実際にネットワークを介して、所望のノード上
のプロセスのコミュニケーションマネージャ173との
間で、メッセージを構成するパケットの転送を行う。通
信メディアI/F170の機能は、メッセージの送受信
機能を提供することであり、同時に多数発生した送受信
に効率よく対処することが重要である。本実施の形態の
通信メディアI/F170においては、RPC下で使用
するクライアントハンドルおよびソケットを利用して、
効率のよい通信機能を実現するようにしており、通信メ
ディアI/F170は、実際のこのクライアントハンド
ルおよびソケットに係わる制御を行う。
Next, the communication manager 17
3 will be described. Communication Manager 1
Reference numeral 73 actually transfers a packet constituting a message to / from a communication manager 173 of a process on a desired node via a network. The function of the communication media I / F 170 is to provide a message transmission / reception function, and it is important to efficiently cope with a large number of transmission / receptions that occur simultaneously. In the communication media I / F 170 of the present embodiment, the client handle and the socket used under the RPC are used to
An efficient communication function is realized, and the communication media I / F 170 controls the actual client handle and socket.

【0038】クライアントハンドルは、RPCによるメ
ッセージの送信時に必要となるハンドルである。コミュ
ニケーションマネージャ173においては、クライアン
トハンドルは、各プロセス間の接続ごとに与え、送信側
プロセス内で管理する。すなわち、クライアントハンド
ルには、後述するソケット記述子、通信相手先であるプ
ロセスのソケット記述子およびそのプロセスが一意に対
応づけられている。したがって、プロセス内の各送信ス
レッドは、適切なクライアントハンドルを選択するのみ
で、目的とするプロセスにメッセージを送信することが
できる。また、送信先プロセスが以前に送信したプロセ
スと同じ場合、以前に確立した接続を再利用するように
し、再接続を不必要とする。
The client handle is a handle required when transmitting a message by RPC. In the communication manager 173, the client handle is given for each connection between the processes, and is managed in the transmitting process. That is, a socket descriptor described later, a socket descriptor of a process that is a communication partner, and the process are uniquely associated with the client handle. Therefore, each sending thread in a process can send a message to a target process only by selecting an appropriate client handle. When the destination process is the same as the previously transmitted process, the previously established connection is reused, and the reconnection is unnecessary.

【0039】ソケットについては、プロセス内で使用可
能なソケット記述子の数には制限があるため、同時に多
数の送受信があることを想定すると、ソケット記述子を
効率よく割り当て利用しなければならない。そこで、コ
ミュニケーションマネージャ173は、接続ごとに、送
信側、受信側それぞれにおいてその接続に対してソケッ
ト記述子を割り当てる。この時、RPCクライアントで
ある送信側プロセスのコミュニケーションマネージャ1
73aは、RPCサーバとの接続要求時にソケット記述
子を割り当てる。また、受信側プロセスであるRPCサ
ーバのコミュニケーションマネージャ173bは、初受
信時は、デフォルトのソケット記述子で受信し、その初
受信時に、直ちにそのプロセスとの通信用に、別のソケ
ット記述子を割り当てる。この時には、受信側プロセス
の各ソケットに対する負荷を考慮して、負荷分散される
ように、割り当てるソケット記述子を決定する。
With regard to sockets, the number of socket descriptors that can be used in a process is limited. Therefore, assuming that there is a large number of simultaneous transmissions and receptions, the socket descriptors must be efficiently allocated and used. Therefore, the communication manager 173 assigns a socket descriptor to the connection for each connection on each of the transmission side and the reception side. At this time, the communication manager 1 of the transmitting process which is the RPC client
73a allocates a socket descriptor at the time of a connection request with the RPC server. In addition, the communication manager 173b of the RPC server, which is the receiving process, receives the default socket descriptor at the time of the first reception, and immediately allocates another socket descriptor for communication with the process at the time of the first reception. . At this time, in consideration of the load on each socket of the receiving process, the socket descriptor to be allocated is determined so that the load is distributed.

【0040】したがって、最初の通信は、送信側の割り
当てられたソケットと受信側のデフォルトのソケットと
の間で行われるが、以降の通信においては、送信側の割
り当てられたソケットと受信側で負荷を考慮の上割り当
てられたソケットとの間で行われる。また、これら送信
側および受信側における各ソケット記述子の割り当てに
おいて、各プロセスにおける接続数が指定制限内のソケ
ット記述子数であれば、RPCの機能により割り当てる
が、指定制限のソケット記述子数を上回れば、RPCに
割り当てられたソケット記述子を重ねて順に割り当て
る。したがって、そのような場合には、複数のクライア
ントハンドルがソケット記述子を共用することになる。
Therefore, the initial communication is performed between the assigned socket on the transmitting side and the default socket on the receiving side. However, in the subsequent communication, the load on the assigned socket on the transmitting side and the load on the receiving side are set. This is done with the assigned socket taking into account. If the number of connections in each process is the number of socket descriptors within the specified limit in the allocation of each socket descriptor on the transmitting side and the receiving side, the allocation is performed by the RPC function. If it exceeds, the socket descriptors assigned to the RPCs are assigned one after another. Thus, in such a case, multiple client handles will share the socket descriptor.

【0041】なお、RPC下では、接続先を特定するの
に、サーバホスト、プログラム番号、バージョン番号お
よびプロトコルの組み合わせを使用する。このうち、接
続するソケットを特定するためには、ソケットごとにバ
ージョン番号を割り振り、そのバージョン番号を指定す
ることになる。
Under the RPC, a combination of a server host, a program number, a version number and a protocol is used to specify a connection destination. In order to specify a socket to be connected, a version number is assigned to each socket and the version number is specified.

【0042】また、コミュニケーションマネージャ17
3は、生成したソケットをONC−RPCポートマッパ
180に登録しておく。ONC−RPCポートマッパ1
80に登録しておくと、RPCで使用しているソケット
にメッセージが届くと、RPC部172に通知が行わ
れ、処理を移すことができる。
The communication manager 17
3 registers the generated socket in the ONC-RPC port mapper 180. ONC-RPC port mapper 1
When the message is registered in the RPC 80, when a message reaches the socket used by the RPC, a notification is sent to the RPC unit 172, and the process can be shifted.

【0043】このような構成の通信メディアI/F17
0を各々有するプロセス間で、ネットワークを介したメ
ッセージ通信を行う場合の処理の流れについて説明す
る。なお、ここでは、ノードA上のプロセス上で稼働し
ている並行オブジェクトなどから、ノードB上のプロセ
ス上で稼働している並行オブジェクトに対して、返値が
必要なメッセージを送信する場合の処理の流れについて
説明する。まず、ノードAの当該プロセスのメッセージ
通信部150aに対して、メッセジ送信の要求が行わ
れ、メッセージ通信部150aのメッセージディスパッ
チャ152aが、その送信対象のメッセージおよび送信
先のIPアドレス、プロセスIDを含むメッセージに係
わる情報を通信メディアI/F170aに伝達し、メッ
セージ送信を指示する。
The communication media I / F 17 having such a configuration is described.
The flow of processing when message communication is performed via a network between processes each having 0 will be described. Note that here, processing is performed when a message that requires a return value is transmitted from a concurrent object running on a process on node A to a parallel object running on a process on node B. Will be described. First, a message transmission request is made to the message communication unit 150a of the process of the node A, and the message dispatcher 152a of the message communication unit 150a includes the message to be transmitted, the IP address of the transmission destination, and the process ID. The information related to the message is transmitted to the communication media I / F 170a, and a message transmission is instructed.

【0044】通信メディアI/F170aでは、通信メ
ソッドディスパッチャ171aにおいて通信メディアを
選定する。たとえば、インターネットを介した通信を行
う場合には、RPC部172aのメッセージ分割部17
5aにおいて、そのメッセージをUDPによる送信に適
したデータ量の複数のデータ量に分割し、送信用パケッ
トを生成する。そして、コミュニケーションマネージャ
173aの要求送信機能により、ノードBの所望のプロ
セスに対してパケットを送信する。
In the communication medium I / F 170a, a communication medium is selected in the communication method dispatcher 171a. For example, when performing communication via the Internet, the message division unit 17 of the RPC unit 172a
In step 5a, the message is divided into a plurality of data volumes having a data volume suitable for transmission by UDP, and a transmission packet is generated. Then, the packet is transmitted to the desired process of the node B by the request transmission function of the communication manager 173a.

【0045】このパケットは、適宜、ノードBのプロセ
スの通信メディアI/F170bのコミュニケーション
マネージャ173bの要求受信機能により受信され、メ
ッセージハンドラ174bのメッセージ再組み立て部1
76bにおいて、一時的に順次バッファマネージャ17
7bに格納されることによりメッセージとして組み立て
られる。組み立てられたメッセージは、メッセージ通信
部150bのメッセージディスパッチャ152bに渡さ
れ、図示せぬスケジューラ400bなどでスケジューリ
ング管理された後実行される。
This packet is appropriately received by the request receiving function of the communication manager 173b of the communication media I / F 170b of the process of the node B, and is received by the message reassembly unit 1 of the message handler 174b.
At 76b, the buffer manager 17 is temporarily
7b is assembled as a message. The assembled message is passed to the message dispatcher 152b of the message communication unit 150b, and is executed after being scheduled and managed by a scheduler 400b (not shown).

【0046】そして、その実行が終了すると、結果など
の返値を戻すためのメッセージの送信がメッセージ通信
部150bのメッセージディスパッチャ152bよりR
PC部172bに指示される。通信メディアI/F17
0bにおいては、前述したノードAの通信メディアI/
F170aにおけるパケット生成の処理と同様に、メッ
セージ分割部175bにおいて、その返値に基づいて複
数のパケットを生成し、コミュニケーションマネージャ
173bの返値送信機能によりノードAのプロセスに対
してパケットを送信する。
When the execution is completed, a message for returning a return value such as a result is transmitted from the message dispatcher 152b of the message communication unit 150b to the R.
Instructed by the PC unit 172b. Communication media I / F17
0b, the communication medium I /
Similarly to the packet generation processing in F170a, the message division unit 175b generates a plurality of packets based on the return values, and transmits the packets to the node A process by the return value transmission function of the communication manager 173b.

【0047】このパケットは、ノードAのプロセスの通
信メディアI/F170aのコミュニケーションマネー
ジャ173aの返値受信機能により受信され、前述した
ノードBの通信メディアI/F170bにおけるメッセ
ージ復元の処理と同様に、メッセージハンドラ174a
のメッセージ再組み立て部176aにおいて、一時的に
順次バッファマネージャ177bに格納されることによ
りメッセージとして組み立てられる。組み立てられたメ
ッセージ、すなわち返値は、メッセージ通信部150a
のメッセージセンダ151aに渡され、メッセージ送信
元の並行オブジェクトなどに戻される。
This packet is received by the return value receiving function of the communication manager 173a of the communication media I / F 170a of the process of the node A, and the message is processed in the same manner as the message restoration process in the communication media I / F 170b of the node B described above. Handler 174a
The message reassembly unit 176a temporarily assembles the message by temporarily storing it in the buffer manager 177b. The assembled message, that is, the return value is transmitted to the message communication unit 150a.
To the message sender 151a, and is returned to the message transmission source concurrent object or the like.

【0048】次に、論理的にはこのような各機能を有す
るプロセス100およびその通信メディアI/F170
を、マルチスレッド環境において実際にプロセス内にお
いて実現する場合の、送信および受信に係わるスレッド
の構成および処理の流れについて図7を参照して説明す
る。図7は、ノードA上の遠隔機能呼び出しプロセスと
ノードB上の遠隔機能呼び出しプロセスとの間で、メッ
セージの通信を行う場合の、スレッドの構成および処理
の流れを示す図である。
Next, logically, the process 100 having such functions and its communication media I / F 170
Will be described with reference to FIG. 7 when referring to FIG. 7, in the case where is actually realized in a process in a multi-thread environment. FIG. 7 is a diagram showing a thread configuration and a flow of processing when a message is communicated between the remote function calling process on the node A and the remote function calling process on the node B.

【0049】図示のごとく、各プロセスは、複数の送信
スレッドおよび複数の受信スレッドを有しており、これ
らによりメッセージを構成するパケットの送受信が並行
して行われる。送信スレッド820,870は、上位か
ら送られて来たメッセージを相手側に送るためのスレッ
ドであり、メッセージが入力されるごとに生成される。
受信スレッド830,860は、メッセージを送った結
果を受信するためのスレッドであり、プロセス内に複数
設けられる。なお、このように送信スレッドおよび受信
スレッドは、各プロセスに各々複数あるものであるが、
以下の説明中においては、送信側(ノードAのプロセス
810)については送信スレッド820および受信スレ
ッド830、受信側(ノードBのプロセス850)につ
いては受信スレッド860および送信スレッド870の
各スレッドを具体例として説明を行う。
As shown in the figure, each process has a plurality of transmission threads and a plurality of reception threads, and the transmission and reception of the packets constituting the message are performed in parallel. The transmission threads 820 and 870 are threads for transmitting a message sent from a higher order to the other party, and are generated each time a message is input.
The receiving threads 830 and 860 are threads for receiving the result of sending a message, and are provided in a plurality of processes. As described above, there are a plurality of transmission threads and a plurality of reception threads in each process.
In the following description, the transmission thread 820 and the reception thread 830 for the transmission side (the process 810 of the node A), and the reception thread 860 and the transmission thread 870 for the reception side (the process 850 of the node B) are concrete examples. The description is made as follows.

【0050】以下、各プロセスの各スレッドにおける処
理の流れについて説明する。送信側プロセス810の送
信スレッド820においては、アプリケーションプログ
ラミング機能120からの関数呼び出しにより、通信メ
ディアI/F170のユーザとしてのメッセージセンダ
821(図3におけるメッセージ通信部150のメッセ
ージセンダ151)を介して、メッセージの要求を受け
ると、通信メディアI/F170の最上位の関数である
CMIセンダ822がこれを受け、メッセージ要求送信
機能823に渡す。メッセージ要求送信機能823は、
ハンドルマネージャ824に、メッセージ送信先の情報
を渡す。ハンドルマネージャ824は、その情報に基づ
いて、クライアントハンドル管理テーブル840を参照
して、使用するRPCクライアントハンドルの情報を獲
得し、メッセージ要求送信機能823に戻す。メッセー
ジ要求送信機能823は、そのクライアントハンドルお
よびそのクライアントハンドルに対応付けられているポ
ート841を介して、メッセージを送信する。
The flow of processing in each thread of each process will be described below. In the transmission thread 820 of the transmission-side process 810, a function call from the application programming function 120 causes a message sender 821 as a user of the communication media I / F 170 (the message sender 151 of the message communication unit 150 in FIG. 3) to call the function. When a message request is received, the CMI sender 822, which is the highest function of the communication media I / F 170, receives the message request and passes it to the message request transmission function 823. The message request transmission function 823 is
The information of the message transmission destination is passed to the handle manager 824. The handle manager 824 acquires the information of the RPC client handle to be used by referring to the client handle management table 840 based on the information, and returns the information to the message request transmission function 823. The message request transmission function 823 transmits a message via the client handle and the port 841 associated with the client handle.

【0051】この時、その送信相手先プロセスに対して
始めて通信を行う場合には、その相手先プロセスのデフ
ォルトのポート(ソケット記述子およびクライアントハ
ンドルが対応付けられて構成されている)885に対し
てメッセージを送信する。受信側プロセス850の受信
スレッド860は、後述するように、デフォルトのポー
ト885でパケットを受信したら、送信元のプロセス8
10に対する新たなポート886を割り当て、そのポー
トを示す情報を、そのパケットの受信を確認するACK
とともに送信側プロセス810に通知する。したがっ
て、送信スレッド820は、そのポート886の情報
を、ハンドルマネージャ824を介してクライアントハ
ンドル管理テーブル840に登録しておく。そして、以
後そのプロセスに対する通信は、その通知されたポート
を介して行う。したがって、送信スレッド820も、送
信対象のメッセージの残りのパケットを、順次ポート8
86に対して送信する。
At this time, when the communication is performed for the first time with respect to the destination process, the default port 885 (configured in correspondence with the socket descriptor and the client handle) of the destination process is used. To send a message. As described later, the receiving thread 860 of the receiving process 850, upon receiving a packet on the default port 885, executes the process 8 of the transmission source.
And assigns a new port 886 to port 10 and sends information indicating the port to the ACK for confirming reception of the packet.
At the same time, it notifies the transmitting process 810. Therefore, the transmission thread 820 registers the information of the port 886 in the client handle management table 840 via the handle manager 824. Thereafter, communication with the process is performed via the notified port. Therefore, the transmission thread 820 also sequentially transmits the remaining packets of the message to be transmitted to the port 8
86.

【0052】メッセージの送信が終了したら、そのメッ
セージが返値を要求しないメッセージである場合には、
送信スレッド820は処理を終了する。そのメッセージ
が返値を要求する場合には、送信スレッド820はその
返値が戻ってくるのを待つ。返値は、これを受信した送
信側プロセス810内の受信スレッド830が、スレッ
ド間通信により送信スレッド820に通知する場合と、
その旨の通知を図示せぬメッセージキューに投入する場
合とがある。
When the transmission of the message is completed, if the message is a message that does not require a return value,
The transmission thread 820 ends the processing. If the message requires a return value, the sending thread 820 waits for the return value. The return value indicates whether the receiving thread 830 in the transmitting process 810 that has received the notification notifies the transmitting thread 820 by inter-thread communication,
In some cases, a notification to that effect is sent to a message queue (not shown).

【0053】いずれの場合も、送信スレッド820のC
MIレシーバ825がこの通知を受け取り、共有領域8
43内に記憶されている返値メッセージを読み出し、メ
ッセージセンダ821を介して上位の関数に戻す。な
お、この通知には、共有領域のどの位置にメッセジが存
在するかというアドレス情報も含まれる。したがって、
送信スレッドは、このアドレス情報を参照することによ
り、完成したメッセージをサーチすることなく、所望の
メッセージを取り出すことができる。
In each case, the transmission thread 820 C
The MI receiver 825 receives this notification and
The return message stored in 43 is read and returned to a higher-level function via the message sender 821. Note that this notification also includes address information indicating where in the shared area the message is located. Therefore,
By referring to the address information, the transmission thread can retrieve a desired message without searching for a completed message.

【0054】受信側プロセス850の複数の受信スレッ
ドは、各々ファイル記述子を監視するシステムコール
(select)により、受信側プロセス850のデフ
ォルトのポート885を監視する。そして、デフォルト
のポート852に到達したメッセージを最初に検知した
受信スレッド(これを受信スレッド860とする。)が
そのメッセージを受け取る。この最初のメッセージを受
け取った受信スレッド860は、前述したように、その
メッセージの送信元である送信側プロセス810に対し
て、メッセージを受信するための新たなポート886を
割り当てる。そして、このポートの情報を、到達確認A
CKとともに、送信スレッド820に通知する。これに
より、以後の送信側プロセス810からのメッセージ送
信は、ポート852に対して行われることになる。
Each of the plurality of receiving threads of the receiving process 850 monitors the default port 885 of the receiving process 850 by a system call (select) for monitoring a file descriptor. Then, the receiving thread that first detects the message that has reached the default port 852 (this is referred to as a receiving thread 860) receives the message. The receiving thread 860 that has received the first message allocates a new port 886 for receiving the message to the transmitting process 810 that has transmitted the message, as described above. Then, the information of this port is transmitted to the arrival confirmation A
Along with CK, the transmission thread 820 is notified. As a result, the subsequent message transmission from the transmitting process 810 is performed to the port 852.

【0055】また、受信スレッド860は、その生成段
階において、サービス登録機能862によりメッセージ
収集サービスの登録を行い、受信スレッド860宛のパ
ケットを収集する収集サービス863が行われるように
しておく。したがって、以後のパケットの収集は、この
収集サービス863により行われる。
The receiving thread 860 registers the message collection service by the service registration function 862 at the generation stage, so that the collection service 863 for collecting the packet addressed to the receiving thread 860 is performed. Therefore, subsequent collection of packets is performed by the collection service 863.

【0056】そして受信スレッド860においては、メ
ッセージ要求受信機能861がポート885および88
6を介してパケットを受信し、これを収集サービス86
3が順次共有領域883に記憶する。共有領域883に
1つのメッセージが組み立てられると、それが先に送信
したメッセージの返値でない場合、すなわち、受信側プ
ロセス850に対する手続きなどの要求であった場合に
は、CMI受信機能864がこれを読み出し、メッセー
ジディスパッチャ865(図3における、メッセージ通
信部150のメッセージディスパッチャ152に相当す
る。)を介して、アプリケーションプログラミング機能
120に出力する。また、共有領域883に組み立てら
れたメッセージが、先に送信したメッセージの返値だっ
た場合には、収集サービス863がスレッド間通信によ
り、この返値メッセージを待っている受信側プロセス8
50内の受信スレッドに対して、その返値メッセージを
受信したことを通知する。
In the receiving thread 860, the message request receiving function 861 switches the ports 885 and 88
6 and receives it through the collection service 86
3 are sequentially stored in the shared area 883. When one message is assembled in the shared area 883, if the message is not the return value of the previously transmitted message, that is, if the message is a request of a procedure or the like to the receiving process 850, the CMI receiving function 864 converts this message. The data is read and output to the application programming function 120 via the message dispatcher 865 (corresponding to the message dispatcher 152 of the message communication unit 150 in FIG. 3). If the message assembled in the shared area 883 is the return value of the previously transmitted message, the collection service 863 performs the inter-thread communication to execute the receiving process 8 waiting for the return message.
The receiving thread in 50 is notified that the return message has been received.

【0057】受信側プロセス850の受信スレッド87
0も、前述した送信側プロセス810の送信スレッド8
20と全く同じ機能を有する。送信側プロセス810か
ら送信されたメッセージに対する返値を戻す場合につい
て処理の流れを説明すると、アプリケーションプログラ
ミング機能120からの関数呼び出しにより、メッセー
ジセンダ871を介して、返値メッセージの要求を受
け、CMIセンダ872がさらにこれを受けてメッセー
ジ返値送信機能873に渡す。メッセージ要求送信機能
823は、ハンドルマネージャ874を介してクライア
ントハンドル管理テーブル880を参照して、プロセス
810に送信を行うために使用するRPCクライアント
ハンドルの情報を獲得し、その情報に基づいて、ポート
881を介してプロセス810に返値メッセージを送信
する。
The receiving thread 87 of the receiving process 850
0 is also the sending thread 8 of the sending process 810 described above.
It has exactly the same function as 20. A description will be given of the processing flow in the case of returning a return value for a message transmitted from the transmission side process 810. A request for a return value message is received via the message sender 871 by a function call from the application programming function 120, and the CMI sender is returned. 872 further receives it and passes it to the message return value transmission function 873. The message request transmission function 823 refers to the client handle management table 880 via the handle manager 874 to obtain information on the RPC client handle used for transmitting to the process 810, and based on the information, obtains the port 881 Send a return message to the process 810 via.

【0058】この時も、このメッセージを送信がプロセ
ス850からプロセス810への最初の通信の場合に
は、プロセス810において、デフォルトのポートから
特定のポートへのポートの割り振りが行われるが、この
処理は前述したプロセス850の場合と同じなので、説
明は省略する。そして、プロセス850からプロセス8
10へ、ポート881およびポート845を介して返値
メッセージの送信が終了したら、送信スレッド870は
処理を終了する。
At this time, if the transmission of this message is the first communication from the process 850 to the process 810, the process 810 allocates a port from a default port to a specific port. Is the same as in the case of the process 850 described above, and a description thereof will be omitted. Then, from process 850 to process 8
When transmission of the return message to port 10 via ports 881 and 845 is completed, transmission thread 870 terminates the process.

【0059】送信側プロセス810の受信スレッド83
0も、前述した受信側プロセス850の受信スレッド8
60と全く同じ機能を有する。受信側プロセス850か
ら返値メッセージが送信された場合について処理の流れ
を説明すると、受信側プロセス850の複数の受信スレ
ッドの中で、最初にメッセージの到達を検知した受信ス
レッド830のメッセージ返値受信機能831がポート
845を介して返値メッセージのパケットを順次受信
し、これを予めサービス登録機能832により登録され
た収集サービス833が、共有領域843に順次記憶す
る。共有領域843に返値メッセージが組み立てられる
と、収集サービス863がスレッド間通信により、この
返値メッセージを待っている送信スレッド820に対し
て、その返値メッセージを受信したことを通知する。
The receiving thread 83 of the transmitting process 810
0 is the receiving thread 8 of the receiving process 850 described above.
It has exactly the same function as 60. The process flow when a return message is transmitted from the receiving process 850 will be described. Among the plurality of receiving threads of the receiving process 850, the receiving thread 830 that first detects the arrival of the message receives the message return value. The function 831 sequentially receives the return message packet via the port 845, and the collection service 833 registered in advance by the service registration function 832 sequentially stores the packet in the shared area 843. When the return message is assembled in the shared area 843, the collection service 863 notifies the transmission thread 820 waiting for the return message of the reception of the return message by inter-thread communication.

【0060】このように、本実施の形態の通信メディア
I/Fにおいては、マルチスレッドにより並行してメッ
セージの送受信を行っているので、メッセージ通信の性
能を向上させることができる。特に、UDPでは通信量
に制限があるため、1つのメッセージが複数のパケット
に分割されて送信されてくることがあるが、このような
場合においても、複数のスレッドで1つのメッセージの
複数のパケットを効率よく受信することができる。
As described above, in the communication media I / F of the present embodiment, the message transmission / reception is performed in parallel by the multithread, so that the performance of the message communication can be improved. In particular, in the case of UDP, since a communication amount is limited, one message may be divided into a plurality of packets and transmitted. In such a case, a plurality of packets of one message may be transmitted by a plurality of threads. Can be received efficiently.

【0061】また、本実施の形態においては、メッセー
ジキューを介して返値メッセージの到達の通知などをス
レッド間で行えるようにしているので、ユーザプログラ
ムと通信メディアI/F170が異なる言語で書かれて
おりいわゆるスレッド間通信ができない場合において
も、適切にたとえば返値を受信したことを通知すること
ができる。したがって、アプリケーションプログラムの
記述言語に何ら制限を加えることのない自由度の高い分
散処理環境を提供することができる。また、このように
メッセージキューを使用することで、返値メッセージの
到達を待っている処理モジュールは、自分の必要とする
メッセージのみを待つことができ、サーチなどの動作を
省略することができる。
Further, in the present embodiment, the notification of the arrival of the return message can be performed between the threads via the message queue, so that the user program and the communication medium I / F 170 are written in different languages. Thus, even when the so-called inter-thread communication cannot be performed, it is possible to appropriately notify, for example, that the return value has been received. Therefore, it is possible to provide a distributed processing environment having a high degree of freedom without any restriction on the description language of the application program. Further, by using the message queue in this way, a processing module waiting for the arrival of a return message can wait only for a message required by itself, thereby omitting an operation such as a search.

【0062】なお、本発明は本実施の形態に限られるも
のではなく、種々の改変が可能である。たとえば、メッ
セージを送信した送信スレッドが返値が送信されたこと
を検知する方法として、本実施の形態においては、スレ
ッド間通信およびメッセージキューを用いる方法を例示
した。しかし、たとえば、返値を待つ送信スレッドが、
受信メッセージが組み立てられる共有記憶領域を監視
し、返値メッセージが記憶されるのを検出することによ
り、返値の到達を検出するようにしてもよい。また、各
プロセス内のスレッドの構成、各スレッド内の機能、共
有領域の構成、ポートの構成などは任意に決定してよ
い。
The present invention is not limited to the present embodiment, and various modifications are possible. For example, in the present embodiment, a method using inter-thread communication and a message queue has been described as a method of detecting that a return value has been transmitted by a transmission thread that has transmitted a message. But, for example, if the sending thread waits for a return value,
The arrival of the return value may be detected by monitoring the shared storage area where the received message is assembled and detecting the storage of the return value message. The configuration of the threads in each process, the functions in each thread, the configuration of the shared area, the configuration of the ports, and the like may be arbitrarily determined.

【0063】[0063]

【発明の効果】以上説明したように、本発明の分散処理
装置とその方法によれば、任意の言語で記述されたオブ
ジェクトを有するプロセス間で大量のメッセージの通信
を効率よく行うことができ、これにより該オブジェクト
が協働して所望の処理を効率よく実行することができ
る。また本発明のネットワークシステムによれば、ネッ
トワークを介して接続されたプロセス間で大量のメッセ
ージの通信を効率よく行うことができ、当該プロセスに
分散配置された任意の言語で記述されたオブジェクトに
対して全体として所望の処理を効率よく実行することが
できる分散処理環境を提供することができる。
As described above, according to the distributed processing apparatus and method of the present invention, a large amount of messages can be efficiently communicated between processes having objects described in an arbitrary language. As a result, the objects can cooperate to execute the desired processing efficiently. Further, according to the network system of the present invention, a large amount of messages can be efficiently communicated between processes connected via a network, and objects described in an arbitrary language distributed and arranged in the processes can be used. Thus, it is possible to provide a distributed processing environment that can efficiently execute desired processing as a whole.

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

【図1】図1は、本発明の一実施の形態のネットワーク
システムの全体構成を模式的に示す図である。
FIG. 1 is a diagram schematically illustrating an overall configuration of a network system according to an embodiment of the present invention.

【図2】図2は、図1に示した計算空間に配置される並
行オブジェクトとプロセスの関係を示す図である。
FIG. 2 is a diagram illustrating a relationship between concurrent objects and processes arranged in a computation space illustrated in FIG. 1;

【図3】図3は、図2に示したプロセスにより提供され
るメッセージ送受信機構を説明するための図である。
FIG. 3 is a diagram for explaining a message transmission / reception mechanism provided by the process shown in FIG. 2;

【図4】図4は、図3に示したメッセージ送受信機構に
よるメッセージ送信処理の流れを示す図である。
FIG. 4 is a diagram illustrating a flow of a message transmitting process by the message transmitting / receiving mechanism illustrated in FIG. 3;

【図5】図5は、図3に示したメッセージ送受信機構に
よるメッセージ受信処理の流れを示す図である。
FIG. 5 is a diagram illustrating a flow of a message receiving process by the message transmitting / receiving mechanism illustrated in FIG. 3;

【図6】図6は、図3に示した通信メディアI/Fの論
理構成、および、ノード間でメッセージ通信が行われる
場合の処理の流れを示す図である。
6 is a diagram illustrating a logical configuration of a communication medium I / F illustrated in FIG. 3 and a flow of a process when message communication is performed between nodes;

【図7】図7は、異なるノード上のプロセス間でメッセ
ージの通信を行う場合の、スレッドの構成および処理の
流れを示す図である。
FIG. 7 is a diagram illustrating a configuration of a thread and a flow of processing when a message is communicated between processes on different nodes;

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

100…プロセス 110…並行オブジェクト 120…アプリケーションプログラミング機能 130…スケジューラ 140…参照解決器 141…参照テーブル 150…メッセージ通信部 151…メッセージセンダ 152…メッセージディスパッチャ 160…OSI/F 170…通信メディアI/F 180…ONC−RPCポートマッパ 810,850…プロセス 820,870…送信スレッド 821,871…メッセージセンダ 822,872…CMIセンダ 823,873…メッセージ送信機能 824,874…ハンドルマネージャ 825,875…CMIレシーバ 830,860…受信スレッド 831,861…メッセージ受信機能 832,862…サービス登録機能 833,863…収集サービス 834,864…CMI受信機能 835,865…メッセージディスパッチャ 840,880…クライアントハンドル管理テーブル 841,845,881,885,886…ポート 843,883…共有領域 DESCRIPTION OF SYMBOLS 100 ... Process 110 ... Concurrent object 120 ... Application programming function 130 ... Scheduler 140 ... Reference resolver 141 ... Reference table 150 ... Message communication unit 151 ... Message sender 152 ... Message dispatcher 160 ... OSI / F 170 ... Communication media I / F 180 ... ONC-RPC port mapper 810,850 ... Process 820,870 ... Transmission thread 821,871 ... Message sender 822,872 ... CMI sender 823,873 ... Message transmission function 824,874 ... Handle manager 825,875 ... CMI receiver 830, 860: Receiving thread 831, 861 Message receiving function 832, 862 Service registration function 833, 863 Collection service 834, 864 CM Receiving function 835,865 ... message dispatcher 840,880 ... client handle management table 841,845,881,885,886 ... port 843,883 ... the shared area

【手続補正書】[Procedure amendment]

【提出日】平成11年6月21日(1999.6.2
1)
[Submission date] June 21, 1999 (1999.6.2
1)

【手続補正1】[Procedure amendment 1]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】特許請求の範囲[Correction target item name] Claims

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【特許請求の範囲】[Claims]

【手続補正2】[Procedure amendment 2]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0008[Correction target item name] 0008

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0008】[0008]

【課題を解決するための手段】したがって、本発明の分
散処理装置は、複数のオブジェクトが協働して所望の処
理を行う分散処理装置であって、各々接続された複数の
ノードと、前記ノード上に各々1つまたは複数形成さ
れ、配置されたオブジェクトに実行環境を提供する複数
のプロセスと、各々前記複数のプロセスのいずれかに配
置される前記複数のオブジェクトとを有し、前記複数の
プロセスの各々は、当該プロセスに配置された前記オブ
ジェクトの動作に基づく送信対象のメッセージを複数の
パケットに分割し、所望のプロセスに送信する送信モジ
ュールと、当該プロセス内の任意の処理モジュールより
アクセス可能な所定の共有記憶領域に設けられ、メッセ
ージごとの、当該メッセージを構成するパケットの記憶
領域が順に配置された記憶領域を有する受信バッファ
と、当該プロセス内の任意の処理モジュールよりアクセ
ス可能なメッセージキューと、各々、送信されてくる任
意のメッセージの任意の順番のパケットを受信し、前記
受信バッファの所定の記憶領域に格納し、当該受信し格
納したパケットが、当該パケットを含むメッセージの最
後に格納されたパケットだった場合には、前記受信バッ
ファの当該メッセージの位置を示す情報を前記メッセー
ジキューに書き込む複数の受信モジュールと、前記メッ
セージキューの情報を読み出し、前記情報により示され
る前記受信バッファに記憶されているメッセージを実質
的に読み出して、当該プロセスに配置された前記オブジ
ェクトの動作に基づく所定の処理を行う処理モジュール
に提供する選択モジュールとを有する。
Therefore, a distributed processing apparatus according to the present invention provides a desired processing in which a plurality of objects cooperate with each other.
Distributed processing apparatus for performing
A node and one or more each formed on said node
That provide an execution environment for the placed objects
Process and each of the plurality of processes.
And the plurality of objects to be placed,
Each of the processes is an object located in the process.
Multiple messages to be sent based on the
A transmission module that divides packets and sends them to the desired process
Module and any processing module in the process
It is provided in an accessible shared storage area,
Storage of the packets that make up the message for each page
Receive buffer having a storage area in which areas are arranged in order
And access from any processing module in the process.
Message queues that can be
Receive packets in any order of the message
It is stored in a predetermined storage area of the reception buffer, and the received
The received packet is the
If the packet was stored later,
Information indicating the location of the message
A plurality of receiving modules for writing to the queue, and the message
Reads the information of the Sage Queue, indicated by the information
The message stored in the receive buffer
Read out the object and place the object in the process.
Processing module that performs predetermined processing based on the operation of the project
And a selection module to be provided.

【手続補正3】[Procedure amendment 3]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0009[Correction target item name] 0009

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0009】好適には、前記複数の受信モジュールの各
々は、前記受信した各パケットを、当該パケットが有す
る当該パケットが構成するメッセージの識別情報と、当
該パケットのメッセージ内での位置を示す情報とに基づ
いて、前記受信バッファの所定の領域に記憶する。また
好適には、前記受信され前記受信バッファに格納された
メッセージの内容が、当該プロセスより他のプロセスに
既に送られたメッセージに対する返答内容の場合は、当
該元のメッセージを送信した前記送信モジュールが、前
記選択モジュールとして、前記格納されたメッセージを
読み出し、前記所定の処理を行う処理モジュールに提供
する。
Preferably , each of the plurality of receiving modules is
Each of the received packets has the packet
And the identification information of the message
Information indicating the position of the packet in the message.
And stores it in a predetermined area of the reception buffer. Also
Preferably, said received and stored in said receive buffer
The content of the message is passed from the process to another process.
If the response is to a message already sent,
The sending module that sent the original message is
As the selection module, the stored message
Read and provide to the processing module that performs the predetermined processing
I do.

【手続補正4】[Procedure amendment 4]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0010[Correction target item name] 0010

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0010】また好適には、前記複数の受信モジュール
の各々は、前記受信し前記受信バッファに格納したパケ
ットが、当該パケットが構成するメッセージの最後のパ
ケットであった場合であって、当該メッセージが当該プ
ロセスより他のプロセスに既に送られたメッセージに対
する返答内容の場合に、当該元のメッセージを送信した
送信モジュールに対して、該返答内容を有するメッセー
ジを受信した旨を通知する。また好適には、前記送信モ
ジュールは、前記複数の受信モジュールにより前記受信
バッファに順次形成されるメッセージを監視することに
より、前記返答内容を有するメッセージの到達を検知
し、前記受信バッファより当該メッセージを読み出す。
また好適には、前記受信され前記受信バッファに格納さ
れたメッセージの内容が、当該プロセスより他のプロセ
スに既に送られたメッセージに対する返答内容では無い
新たなメッセージである場合は、当該メッセージを受信
した前記受信モジュールが、前記格納されたメッセージ
を読み出し、前記所定の処理を行う処理モジュールに提
供する。
Preferably, the plurality of receiving modules are provided.
Are the packets received and stored in the reception buffer.
Packet is the last packet of the message that constitutes the packet.
Packet, and the message is
Process to messages already sent by the process to other processes.
The original message was sent if the reply was
A message having the reply content to the sending module
Notify that the message has been received. Also preferably, the transmission mode
Joule is received by the plurality of receiving modules.
To monitor messages that are sequentially formed in the buffer
Detects the arrival of the message having the reply content
Then, the message is read from the reception buffer.
Also preferably, the received data is stored in the reception buffer.
The content of the received message is
Is not a reply to a message already sent to
If it is a new message, receive the message
Said receiving module, said stored message
To the processing module that performs the predetermined processing.
Offer.

【手続補正5】[Procedure amendment 5]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0011[Correction target item name] 0011

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0011】また、本発明の分散処理方法は、複数のオ
ブジェクトが協働して所望の処理を行う分散処理方法で
あって、相互に接続された複数のノードの各々に、配置
されたオブジェクトに実行環境を提供する複数のプロセ
スを1または複数配置し、前記複数のオブジェクトを、
各々前記複数のプロセスのいずれかに配置し、前記プロ
セスに配置された前記各オブジェクトの動作に基づいて
生成された通信対象のメッセージを各々複数のパケット
に分割し、前記分割された複数のパケット各々を当該プ
ロセス内の送信モジュールにより送信し、前記各パケッ
トが送信された前記各プロセスにおいて、該プロセス内
の複数の受信モジュールが、前記送信されたパケットを
並行して受信し、該受信したパケットを当該プロセス内
の任意の処理モジュールよりアクセス可能な所定の受信
バッファに設けられ、メッセージごとの、当該メッセー
ジを構成するパケットの記憶領域が順に配置された記憶
領域を有する受信バッファに格納し、1のメッセージの
全てのパケットが前記受信バッファに格納された場合
に、前記受信バッファの当該メッセージの位置を示す情
報を前記メッセージキューに書き込み、前記メッセージ
キューの内容に基づいて前記受信バッファに記憶されて
いる前記メッセージを実質的に読み出し、前記読み出し
たメッセージを当該プロセスに配置された前記オブジェ
クトの動作に基づく所定の処理を行う所定の処理モジュ
ールに提供し、前記複数のオブジェクトが前記プロセス
を介して相互に所望の内容のメッセージの通信を行うこ
とにより所望の処理を協働して行う。
Further , the distributed processing method of the present invention includes a plurality of
A distributed processing method in which objects cooperate to perform desired processing
At each of a plurality of interconnected nodes
Processes that provide an execution environment for
One or more objects, and the plurality of objects are
Each of which is located in one of the plurality of processes,
Based on the behavior of each of the above objects
Each generated message to be communicated
And each of the plurality of divided packets is
The packet is transmitted by the transmission module in the
In each of the processes to which the
A plurality of receiving modules for transmitting the transmitted packet.
Received in parallel, and the received packet is
Predetermined reception accessible from any processing module
The message is provided in the buffer for each message.
Storage where the storage areas of the packets that make up the page are arranged in order
Stored in a receive buffer having an
When all packets are stored in the reception buffer
Information indicating the position of the message in the reception buffer.
Information to the message queue, the message
Stored in the receive buffer based on the contents of the queue
Substantially reading the message
The object message placed in the process.
A predetermined processing module that performs a predetermined process based on the operation of the
The plurality of objects in the process
Communication of messages with desired contents via
And perform the desired processing in cooperation.

【手続補正6】[Procedure amendment 6]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0012[Correction target item name] 0012

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0012】好適には、前記受信したパケットは、当該
パケットが有する当該パケットが構成するメッセージの
識別情報と、当該パケットのメッセージ内での位置を示
す情報とに基づいて、前記受信バッファの所定の領域に
記憶される。また好適には、前記受信バッファに格納さ
れたメッセージの内容が、当該プロセスより先に送られ
ているメッセージに対応する返答内容の場合は、当該元
のメッセージを送信した前記送信モジュールに当該メッ
セージを提供する。
[0012] Preferably, the received packet is
Of the message that the packet has
Indicates the identification information and the position of the packet in the message.
Information in a predetermined area of the reception buffer based on the
It is memorized. Also preferably, it is stored in the reception buffer.
Message is sent prior to the process.
If the reply content corresponds to the message
The transmitting module that transmitted the message
Offer a sage.

【手続補正7】[Procedure amendment 7]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0013[Correction target item name] 0013

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0013】また好適には、前記複数の受信モジュール
の各々は、前記受信し前記受信バッファに格納したパケ
ットが、当該パケットが構成するメッセージの最後のパ
ケットであった場合で、当該メッセージが前記先に送信
されたメッセージに対する返答内容の場合に、当該元の
メッセージを送信した送信モジュールに対して、該返答
内容を有するメッセージを受信した旨を通知する。また
好適には、前記送信モジュールは、前記受信モジュール
により前記受信バッファに順次形成されるメッセージを
監視することにより、前記返答内容を有するメッセージ
の到達を検知し、前記受信バッファより当該メッセージ
を読み出す。
Preferably, the plurality of receiving modules are provided.
Are the packets received and stored in the reception buffer.
Packet is the last packet of the message that constitutes the packet.
If it was a packet, the message was sent to the destination
Response to the message
The reply to the sending module that sent the message
Notify that a message having contents has been received. Also
Preferably, the transmitting module is the receiving module
The messages sequentially formed in the reception buffer by
By monitoring, a message having the reply content
Is detected, and the message is received from the reception buffer.
Is read.

【手続補正8】[Procedure amendment 8]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0014[Correction target item name] 0014

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0014】また、本発明のネットワークシステムは、
ネットワークを介して接続された複数のノードと、協働
して所望の処理を行うための複数のオブジェクトが配置
される、前記ノード上に各々1つまたは複数形成される
複数のプロセスであって、各々、当該プロセスに配置さ
れた前記オブジェクトの動作に基づく送信対象のメッセ
ージを複数のパケットに分割し、前記ネットワークを介
して所望のプロセスに送信する送信モジュールと、当該
プロセス内の任意の処理モジュールよりアクセス可能な
所定の受信バッファに設けられ、メッセージごとの、当
該メッセージを構成するパケットの記憶領域が順に配置
された記憶領域を有する受信バッファと、当該プロセス
内の任意の処理モジュールよりアクセス可能なメッセー
ジキューと、各々、送信されてくる任意のメッセージの
任意の順番のパケットを受信し、前記受信バッファの所
定の記憶領域に格納し、当該受信し格納したパケット
が、当該パケットを含むメッセージの最後に格納された
パケットだった場合には、前記受信バッファの当該メッ
セージの位置を示す情報を前記メッセージキューに書き
込む複数の受信モジュールと、前記メッセージキューの
情報を読み出し、前記情報により示される前記受信バッ
ファに記憶されているメッセージを実質的に読み出し
て、当該プロセスに配置された前記オブジェクトの動作
に基づく所定の処理を行う処理モジュールに提供する選
択モジュールとを有する複数のプロセッサとを有する。
Further , the network system of the present invention comprises:
Work with multiple nodes connected via a network
Multiple objects to perform desired processing
One or more are formed on each of the nodes
Multiple processes, each assigned to the process
Message to be sent based on the behavior of the object
Divided into multiple packets and sent through the network
And a transmission module for transmitting to a desired process.
Accessible from any processing module in the process
It is provided in a predetermined reception buffer, and
Storage areas of packets constituting the message are arranged in order
Receiving buffer having an allocated storage area and the process
Messages accessible from any processing module in the
Jqueue and each of the incoming messages
Receives packets in any order and places them in the receive buffer.
Stored in a fixed storage area and the received and stored packets
Was stored at the end of the message containing the packet
If it is a packet, the message in the receive buffer
Writes information indicating the position of the message to the message queue.
A plurality of receiving modules,
Read the information and receive the reception buffer indicated by the information.
Read the message stored in the file
The behavior of the object placed in the process
Selection provided to the processing module that performs the predetermined processing based on the
And a plurality of processors having a selection module.

【手続補正9】[Procedure amendment 9]

【補正対象書類名】明細書[Document name to be amended] Statement

【補正対象項目名】0015[Correction target item name] 0015

【補正方法】変更[Correction method] Change

【補正内容】[Correction contents]

【0015】好適には、前記複数の受信モジュールは、
当該プロセスに対して送信される複数のメッセージの各
パケットを、各々メッセージと対応付けられることなく
並行して順次受信し、該受信したパケットを前記受信バ
ッファに各々格納する。特定的には、前記メッセージの
通信は、遠隔手続き呼び出し(リモート・プロシージャ
・コール(RPC:Remote Procedure Call))により行
う。
[0015] Preferably, the plurality of receiving modules include:
Each of the multiple messages sent to the process
Packets without being associated with each message
Receive the packet in parallel and receive the received packet
Each is stored in a buffer. Specifically, the communication of the message is performed by a remote procedure call (RPC: Remote Procedure Call).

───────────────────────────────────────────────────── フロントページの続き (72)発明者 前川 博俊 東京都港区赤坂七丁目3番37号 株式会社 ディジタル・ビジョン・ラボラトリーズ内 Fターム(参考) 5B045 BB31 BB42 GG01 5B089 AA20 AB01 AC07 AD01 AF01 CC11 5B098 AA10 GA04 GA05 GC16 GC19 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Hirotoshi Maekawa 3-37 Akasaka, Minato-ku, Tokyo Digital Vision Laboratories, Inc. F-term (reference) 5B045 BB31 BB42 GG01 5B089 AA20 AB01 AC07 AD01 AF01 CC11 5B098 AA10 GA04 GA05 GC16 GC19

Claims (25)

【特許請求の範囲】[Claims] 【請求項1】複数のオブジェクトが協働して所望の処理
を行う分散処理装置であって、 各々接続された複数のノードと、 前記ノード上に各々1つまたは複数形成され、配置され
たオブジェクトに実行環境を提供する複数のプロセス
と、 各々前記複数のプロセスのいずれかに配置される前記複
数のオブジェクトとを有し、 前記複数のプロセスの各々は、 当該プロセスに配置された前記オブジェクトの動作に基
づく送信対象のメッセージを複数のパケットに分割し、
所望のプロセスに送信する送信モジュールと、 各々、前記送信されたパケットを受信し、該受信したパ
ケットを当該プロセス内の任意の処理モジュールよりア
クセス可能な所定の共有記憶領域に格納する複数の受信
モジュールと、 1のメッセージの全てのパケットが前記共有領域に格納
された場合に、当該メッセージを実質的に読み出して、
当該プロセスに配置された前記オブジェクトの動作に基
づく所定の処理を行う処理モジュールに提供する選択モ
ジュールとを有する分散処理装置。
1. A distributed processing apparatus in which a plurality of objects cooperate to perform a desired process, a plurality of nodes connected to each other, and one or a plurality of objects respectively formed and arranged on the nodes. A plurality of processes that provide an execution environment for each of the plurality of processes, and the plurality of objects that are respectively arranged in any of the plurality of processes. Each of the plurality of processes is an operation of the object arranged in the process Splits the message to be sent based on the
A transmitting module for transmitting to a desired process; and a plurality of receiving modules each for receiving the transmitted packet and storing the received packet in a predetermined shared storage area accessible from any processing module in the process. And when all the packets of the message 1 are stored in the shared area, the message is substantially read out,
A selection module that provides a processing module that performs a predetermined process based on an operation of the object arranged in the process.
【請求項2】前記複数の受信モジュールは、当該プロセ
スに対して送信される複数のメッセージの各パケット
を、各々メッセージと対応付けられることなく並行して
順次受信し、該受信したパケットを前記共有記憶領域に
各々格納する請求項1に記載の分散処理装置。
2. The receiving module according to claim 1, wherein each of the plurality of receiving modules sequentially receives a plurality of packets of the plurality of messages transmitted to the process without being associated with each of the messages. 2. The distributed processing apparatus according to claim 1, wherein each of the distributed processing apparatuses stores the information in a storage area.
【請求項3】前記複数の受信モジュールの各々は、前記
受信した各パケットを、当該パケットが有する当該パケ
ットが構成するメッセージの識別情報と、当該パケット
のメッセージ内での位置を示す情報とに基づいて、前記
共有記憶領域の所定の領域に記憶する請求項1または2
に記載の分散処理装置。
3. The receiving module according to claim 1, wherein each of the plurality of receiving modules identifies each of the received packets based on identification information of a message included in the packet and information indicating a position of the packet in the message. And storing the data in a predetermined area of the shared storage area.
3. The distributed processing device according to 1.
【請求項4】前記受信され前記共有領域に格納されたメ
ッセージの内容が、当該プロセスより他のプロセスに既
に送られたメッセージに対する返答内容の場合は、当該
元のメッセージを送信した前記送信モジュールが、前記
選択モジュールとして、前記格納されたメッセージを読
み出し、前記所定の処理を行う処理モジュールに提供す
る請求項1〜3のいずれかに記載の分散処理装置。
4. If the content of the message received and stored in the shared area is a reply to a message already sent from the process to another process, the transmitting module that has transmitted the original message is 4. The distributed processing apparatus according to claim 1, wherein the stored message is read as the selection module and provided to a processing module that performs the predetermined processing.
【請求項5】前記複数の受信モジュールの各々は、前記
受信し前記共有記憶領域に格納したパケットが、当該パ
ケットが構成するメッセージの最後のパケットであった
場合であって、当該メッセージが当該プロセスより他の
プロセスに既に送られたメッセージに対する返答内容の
場合に、当該元のメッセージを送信した送信モジュール
に対して、該返答内容を有するメッセージを受信した旨
を通知する請求項4に記載の分散処理装置。
5. The reception module according to claim 1, wherein the packet received and stored in the shared storage area is a last packet of a message included in the packet, and the message is transmitted to the reception module. 5. The distribution according to claim 4, wherein, in the case of a reply to a message already sent to another process, the transmitting module that transmitted the original message is notified that the message having the reply has been received. Processing equipment.
【請求項6】前記複数の受信モジュールの各々は、前記
受信し前記共有記憶領域に格納したパケットが、当該パ
ケットが構成するメッセージの最後のパケットであった
場合であって、当該メッセージが当該プロセスより他の
プロセスに既に送られたメッセージに対する返答内容の
場合に、当該返答内容を有するメッセージを受信した旨
を示すデータを、当該元のメッセージを送信した送信モ
ジュールより参照可能な所定のキューに投入し、 前記送信モジュールは、前記所定のキューを監視するこ
とにより、前記返答内容を有するメッセージの到達を検
知し、前記共有記憶領域より当該メッセージを読み出す
請求項4または5に記載の分散処理装置。
6. The reception module according to claim 1, wherein the packet received and stored in the shared storage area is the last packet of a message included in the packet, and the message is transmitted to the process module. In the case of a reply content to a message already sent to another process, data indicating that a message having the reply content has been received is put into a predetermined queue which can be referred to from the transmission module that transmitted the original message. The distributed processing apparatus according to claim 4, wherein the transmission module monitors the predetermined queue to detect arrival of a message having the reply content, and reads the message from the shared storage area.
【請求項7】前記送信モジュールは、前記複数の受信モ
ジュールにより前記共有記憶領域に順次形成されるメッ
セージを監視することにより、前記返答内容を有するメ
ッセージの到達を検知し、前記共有記憶領域より当該メ
ッセージを読み出す請求項4〜6のいずれかに記載の分
散処理装置。
7. The transmission module monitors arrival of a message having the reply content by monitoring messages sequentially formed in the shared storage area by the plurality of reception modules, and receives the message from the shared storage area. The distributed processing device according to claim 4, wherein the distributed processing device reads a message.
【請求項8】前記受信され前記共有領域に格納されたメ
ッセージの内容が、当該プロセスより他のプロセスに既
に送られたメッセージに対する返答内容では無い新たな
メッセージである場合は、当該メッセージを受信した前
記受信モジュールが、前記格納されたメッセージを読み
出し、前記所定の処理を行う処理モジュールに提供する
請求項1〜7のいずれかに記載の分散処理装置。
8. If the content of the message received and stored in the shared area is a new message that is not a reply to a message already sent from the process to another process, the message is received. The distributed processing device according to claim 1, wherein the receiving module reads the stored message and provides the read message to a processing module that performs the predetermined processing.
【請求項9】前記メッセージの通信は、遠隔手続き呼び
出し(リモート・プロシージャ・コール(RPC:Remot
e Procedure Call))により行う請求項1〜8のいずれ
かに記載の分散処理装置。
9. The communication of the message includes a remote procedure call (RPC: Remot).
The distributed processing apparatus according to any one of claims 1 to 8, wherein the processing is performed by e Procedure Call).
【請求項10】複数のオブジェクトが協働して所望の処
理を行う分散処理方法であって、 相互に接続された複数のノードの各々に、配置されたオ
ブジェクトに実行環境を提供する複数のプロセスを1ま
たは複数配置し、 前記複数のオブジェクトを、各々前記複数のプロセスの
いずれかに配置し、 前記プロセスに配置された前記各オブジェクトの動作に
基づいて生成された通信対象のメッセージを各々複数の
パケットに分割し、 前記分割された複数のパケット各々を当該プロセス内の
送信モジュールにより送信し、 前記各パケットが送信された前記各プロセスにおいて、
該プロセス内の複数の受信モジュールが、前記送信され
たパケットを並行して受信し、 該受信したパケットを所定の共有記憶領域に格納し、 1のメッセージの全てのパケットが前記共有領域に格納
された場合に、当該メッセージを実質的に読み出し、 前記読み出したメッセージを当該プロセスに配置された
前記オブジェクトの動作に基づく所定の処理を行う所定
の処理モジュールに提供し、 前記複数のオブジェクトが前記プロセスを介して相互に
所望の内容のメッセージの通信を行うことにより所望の
処理を協働して行う分散処理方法。
10. A distributed processing method in which a plurality of objects cooperate with each other to perform a desired process, wherein a plurality of processes for providing an execution environment for an object arranged in each of a plurality of interconnected nodes. Arranging one or more objects, arranging the plurality of objects in any of the plurality of processes, and sending a plurality of communication target messages generated based on the operation of the respective objects arranged in the process to a plurality of objects, respectively. Each of the plurality of divided packets is transmitted by a transmission module in the process, and in each of the processes in which each of the packets is transmitted,
A plurality of receiving modules in the process receive the transmitted packets in parallel, store the received packets in a predetermined shared storage area, and store all the packets of one message in the shared area. In this case, the message is substantially read, and the read message is provided to a predetermined processing module that performs a predetermined process based on an operation of the object arranged in the process, and the plurality of objects execute the process. A distributed processing method for performing desired processing in cooperation with each other by mutually communicating messages of desired contents via the same.
【請求項11】前記受信したパケットは、当該パケット
が有する当該パケットが構成するメッセージの識別情報
と、当該パケットのメッセージ内での位置を示す情報と
に基づいて、前記共有記憶領域の所定の領域に記憶され
る請求項10に記載の分散処理方法。
11. The received packet is stored in a predetermined area of the shared storage area based on identification information of a message included in the packet and information indicating a position of the packet in the message. The distributed processing method according to claim 10, wherein the distributed processing method is stored in a storage device.
【請求項12】前記共有領域に格納されたメッセージの
内容が、当該プロセスより先に送られているメッセージ
に対応する返答内容の場合は、当該元のメッセージを送
信した前記送信モジュールに当該メッセージを提供する
請求項10または11に記載の分散処理方法。
12. When the content of a message stored in the shared area is a reply corresponding to a message sent before the process, the message is sent to the sending module that sent the original message. The distributed processing method according to claim 10 or 11, which is provided.
【請求項13】前記複数の受信モジュールの各々は、前
記受信し前記共有記憶領域に格納したパケットが、当該
パケットが構成するメッセージの最後のパケットであっ
た場合で、当該メッセージが前記先に送信されたメッセ
ージに対する返答内容の場合に、当該元のメッセージを
送信した送信モジュールに対して、該返答内容を有する
メッセージを受信した旨を通知する請求項12に記載の
分散処理方法。
13. The receiving module according to claim 1, wherein the packet received and stored in the shared storage area is a last packet of a message included in the received packet, and the message is transmitted to the destination earlier. 13. The distributed processing method according to claim 12, wherein, in the case of a reply content to the received message, the transmitting module that transmitted the original message is notified that a message having the reply content has been received.
【請求項14】前記複数の受信モジュールの各々は、前
記受信し前記共有記憶領域に格納したパケットが、当該
パケットが構成するメッセージの最後のパケットであっ
た場合で、当該メッセージが前記先に送信されたメッセ
ージに対する返答内容の場合に、当該返答内容を有する
メッセージを受信した旨を示すデータを、当該元のメッ
セージを送信した送信モジュールより参照可能な所定の
キューに投入し、 前記送信モジュールは、前記所定のキューを監視するこ
とにより、前記返答内容を有するメッセージの到達を検
知し、前記共有記憶領域より当該メッセージを読み出す
請求項12または13に記載の分散処理方法。
14. Each of the plurality of receiving modules, when the packet received and stored in the shared storage area is the last packet of a message included in the packet, the message is transmitted first. In the case of a reply to the message, the data indicating that the message having the reply has been received is put into a predetermined queue that can be referred to by the transmission module that transmitted the original message. 14. The distributed processing method according to claim 12, wherein the predetermined queue is monitored to detect arrival of a message having the reply content, and the message is read from the shared storage area.
【請求項15】前記送信モジュールは、前記受信モジュ
ールにより前記共有記憶領域に順次形成されるメッセー
ジを監視することにより、前記返答内容を有するメッセ
ージの到達を検知し、前記共有記憶領域より当該メッセ
ージを読み出す請求項12〜14のいずれかに記載の分
散処理方法。
15. The transmission module monitors a message sequentially formed in the shared storage area by the reception module, detects arrival of a message having the reply content, and transfers the message from the shared storage area. The distributed processing method according to any one of claims 12 to 14, wherein the read processing is performed.
【請求項16】前記メッセージの通信は、遠隔手続き呼
び出し(リモート・プロシージャ・コール(RPC:Rem
ote Procedure Call))により行う請求項10〜15の
いずれかに記載の分散処理方法。
16. The communication of the message includes a remote procedure call (RPC: Rem).
The distributed processing method according to any one of claims 10 to 15, which is performed by ote procedure call)).
【請求項17】ネットワークを介して接続された複数の
ノードと、 協働して所望の処理を行うための複数のオブジェクトが
配置される、前記ノード上に各々1つまたは複数形成さ
れる複数のプロセスであって、各々、 当該プロセスに配置された前記オブジェクトの動作に基
づく送信対象のメッセージを複数のパケットに分割し、
前記ネットワークを介して所望のプロセスに送信する送
信モジュールと、 各々、前記ネットワークを介して送信されたパケットを
受信し、該受信したパケットを当該プロセス内の任意の
処理モジュールよりアクセス可能な所定の共有記憶領域
に格納する複数の受信モジュールと、 1のメッセージの全てのパケットが前記共有領域に格納
された場合に、当該メッセージを実質的に読み出して、
当該プロセスに配置された前記オブジェクトの動作に基
づく所定の処理を行う処理モジュールに提供する選択モ
ジュールとを有する複数のプロセッサとを有するネット
ワークシステム。
17. A plurality of nodes each formed on the node, wherein a plurality of nodes connected via a network and a plurality of objects for performing desired processing in cooperation with each other are arranged. Processes, each of which divides a message to be transmitted based on an operation of the object arranged in the process into a plurality of packets,
A transmitting module for transmitting to a desired process via the network; and a predetermined sharing unit for receiving a packet transmitted via the network and accessing the received packet from any processing module in the process. A plurality of receiving modules to be stored in a storage area; and when all packets of one message are stored in the shared area, the message is read out substantially;
A network system comprising: a plurality of processors having a selection module that provides a processing module that performs a predetermined process based on an operation of the object arranged in the process.
【請求項18】前記複数の受信モジュールは、当該プロ
セスに対して送信される複数のメッセージの各パケット
を、各々メッセージと対応付けられることなく並行して
順次受信し、該受信したパケットを前記共有記憶領域に
各々格納する請求項17に記載のネットワークシステ
ム。
18. The plurality of receiving modules sequentially receive respective packets of a plurality of messages transmitted to the process in parallel without being associated with the messages, and share the received packets. The network system according to claim 17, wherein the network system stores the information in a storage area.
【請求項19】前記複数の受信モジュールの各々は、前
記受信した各パケットを、当該パケットが有する当該パ
ケットが構成するメッセージの識別情報と、当該パケッ
トのメッセージ内での位置を示す情報とに基づいて、前
記共有記憶領域の所定の領域に記憶する請求項17また
は18に記載のネットワークシステム。
19. Each of the plurality of receiving modules identifies each of the received packets based on identification information of a message included in the packet and information indicating a position of the packet in the message. The network system according to claim 17, wherein the information is stored in a predetermined area of the shared storage area.
【請求項20】前記受信され前記共有領域に格納された
メッセージの内容が、当該プロセスより他のプロセスに
先に送られたメッセージに対する返答内容の場合は、当
該元のメッセージを送信した前記送信モジュールが、前
記選択モジュールとして、前記格納されたメッセージを
読み出し、前記所定の処理を行う処理モジュールに提供
する請求項17〜19のいずれかに記載のネットワーク
システム。
20. When the content of the message received and stored in the shared area is a reply to a message sent to another process earlier than the process, the transmitting module that transmitted the original message. 20. The network system according to claim 17, wherein the network module reads out the stored message as the selection module and provides the message to a processing module that performs the predetermined processing.
【請求項21】前記複数の受信モジュールの各々は、前
記受信し前記共有記憶領域に格納したパケットが、当該
パケットが構成するメッセージの最後のパケットであっ
た場合であって、当該メッセージが当該プロセスより他
のプロセスに既に送られたメッセージに対する返答内容
の場合に、当該元のメッセージを送信した送信モジュー
ルに対して、該返答内容を有するメッセージを受信した
旨を通知する請求項20に記載のネットワークシステ
ム。
21. Each of the plurality of receiving modules, when the packet received and stored in the shared storage area is the last packet of a message included in the packet, 21. The network according to claim 20, wherein, in the case of a reply to a message already sent to another process, the sending module that sent the original message is notified that a message having the reply has been received. system.
【請求項22】前記複数の受信モジュールの各々は、前
記受信し前記共有記憶領域に格納したパケットが、当該
パケットが構成するメッセージの最後のパケットであっ
た場合であって、当該メッセージが当該プロセスより他
のプロセスに既に送られたメッセージに対する返答内容
の場合に、当該返答内容を有するメッセージを受信した
旨を示すデータを、当該元のメッセージを送信した送信
モジュールより参照可能な所定のキューに投入し、 前記送信モジュールは、前記所定のキューを監視するこ
とにより、前記返答内容を有するメッセージの到達を検
知し、前記共有記憶領域より当該メッセージを読み出す
請求項20または21に記載のネットワークシステム。
22. Each of the plurality of receiving modules, when the packet received and stored in the shared storage area is the last packet of a message included in the packet, In the case of a reply content to a message already sent to another process, data indicating that a message having the reply content has been received is put into a predetermined queue which can be referred to from the transmission module that transmitted the original message. 22. The network system according to claim 20, wherein the transmission module detects arrival of the message having the reply content by monitoring the predetermined queue, and reads the message from the shared storage area.
【請求項23】前記送信モジュールは、前記複数の受信
モジュールにより前記共有記憶領域に順次形成されるメ
ッセージを監視することにより、前記返答内容を有する
メッセージの到達を検知し、前記共有記憶領域より当該
メッセージを読み出す請求項20〜22のいずれかに記
載のネットワークシステム。
23. The transmission module detects arrival of a message having the reply content by monitoring messages sequentially formed in the shared storage area by the plurality of reception modules, and receives the message from the shared storage area. 23. The network system according to claim 20, wherein a message is read.
【請求項24】前記受信され前記共有領域に格納された
メッセージの内容が、当該プロセスより他のプロセスに
既に送られたメッセージに対する返答内容では無い新た
なメッセージである場合は、当該メッセージを受信した
前記受信モジュールが、前記格納されたメッセージを読
み出し、前記所定の処理を行う処理モジュールに提供す
る請求項17〜23のいずれかに記載のネットワークシ
ステム。
24. When the content of the received message stored in the shared area is a new message that is not a reply to a message already sent from the process to another process, the message is received. 24. The network system according to claim 17, wherein the receiving module reads the stored message and provides the message to a processing module that performs the predetermined process.
【請求項25】前記メッセージの通信は、遠隔手続き呼
び出し(リモート・プロシージャ・コール(RPC:Rem
ote Procedure Call))により行う請求項17〜24の
いずれかに記載のネットワークシステム。
25. The communication of the message includes a remote procedure call (RPC: Rem).
The network system according to any one of claims 17 to 24, wherein the network system is performed by ote procedure call)).
JP10181134A 1998-06-26 1998-06-26 Device and method for distributed processing and network system Pending JP2000020327A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10181134A JP2000020327A (en) 1998-06-26 1998-06-26 Device and method for distributed processing and network system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10181134A JP2000020327A (en) 1998-06-26 1998-06-26 Device and method for distributed processing and network system

Publications (1)

Publication Number Publication Date
JP2000020327A true JP2000020327A (en) 2000-01-21

Family

ID=16095483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10181134A Pending JP2000020327A (en) 1998-06-26 1998-06-26 Device and method for distributed processing and network system

Country Status (1)

Country Link
JP (1) JP2000020327A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256594A (en) * 2002-03-05 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> Electronic application system and electronic document receiving method
JP2011124677A (en) * 2009-12-09 2011-06-23 Nec Corp Packet processing apparatus, packet distribution device, control program, and packet dispersion method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0556079A (en) * 1991-08-28 1993-03-05 Matsushita Electric Ind Co Ltd Buffer management method for receiver
JPH05334104A (en) * 1992-05-29 1993-12-17 Nec Corp Data control device in datagram type inter-multiprocessor socket communication
JPH06301618A (en) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd Remote procedure accessing method
JPH0969053A (en) * 1995-08-31 1997-03-11 Toshiba Corp Multithread control system and queuing system of message receiving mechanism

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0556079A (en) * 1991-08-28 1993-03-05 Matsushita Electric Ind Co Ltd Buffer management method for receiver
JPH05334104A (en) * 1992-05-29 1993-12-17 Nec Corp Data control device in datagram type inter-multiprocessor socket communication
JPH06301618A (en) * 1993-04-15 1994-10-28 Matsushita Electric Ind Co Ltd Remote procedure accessing method
JPH0969053A (en) * 1995-08-31 1997-03-11 Toshiba Corp Multithread control system and queuing system of message receiving mechanism

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256594A (en) * 2002-03-05 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> Electronic application system and electronic document receiving method
JP2011124677A (en) * 2009-12-09 2011-06-23 Nec Corp Packet processing apparatus, packet distribution device, control program, and packet dispersion method

Similar Documents

Publication Publication Date Title
US5848234A (en) Object procedure messaging facility
EP0817043B1 (en) Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
EP0794491B1 (en) Client/server architecture supporting concurrent servers
EP1116112B1 (en) Load balancing in a network environment
JP3853592B2 (en) Distributed web application server
US5790809A (en) Registry communications middleware
US5818448A (en) Apparatus and method for identifying server computer aggregation topologies
US6192389B1 (en) Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
US20040068479A1 (en) Exploiting asynchronous access to database operations
JPS63201860A (en) Network managing system
EP1474746A1 (en) Management of message queues
EP2127221A1 (en) A method and system for monitoring messages passed over a network
US7139805B2 (en) Scalable java servers for network server applications
US6202089B1 (en) Method for configuring at runtime, identifying and using a plurality of remote procedure call endpoints on a single server process
CN110661891B (en) Cross-network file instant transmission method and system based on unidirectional network
US20090055511A1 (en) Non-programmatic access to data and to data transfer functions
US8566833B1 (en) Combined network and application processing in a multiprocessing environment
US7734829B2 (en) Methods, systems, and computer program products for transparently controlling communications between network applications and a plurality of network communications protocol stacks using deferred protocol stack association
US20030202522A1 (en) System for concurrent distributed processing in multiple finite state machines
JP2000020327A (en) Device and method for distributed processing and network system
Kindberg et al. Adaptive parallelism under Equus
JP2000020328A (en) Communication method, device and method for distributed processing, network system and node device
CN111901689A (en) Streaming media data transmission method and device, terminal equipment and storage medium
WO1994028486A1 (en) Method of selecting a server object to service a client object request within a network environment
US7191253B1 (en) Server computer system utilizing an asynchronous messaging technique having separate request and response paths