JP2005292981A - Message management device, data processing system, and computer program for the same - Google Patents

Message management device, data processing system, and computer program for the same Download PDF

Info

Publication number
JP2005292981A
JP2005292981A JP2004104089A JP2004104089A JP2005292981A JP 2005292981 A JP2005292981 A JP 2005292981A JP 2004104089 A JP2004104089 A JP 2004104089A JP 2004104089 A JP2004104089 A JP 2004104089A JP 2005292981 A JP2005292981 A JP 2005292981A
Authority
JP
Japan
Prior art keywords
message
module
module identifier
destination
identifier
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
JP2004104089A
Other languages
Japanese (ja)
Inventor
Yutaka Ashikari
豊 葦苅
Satoru Nakamura
哲 中村
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.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
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 ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2004104089A priority Critical patent/JP2005292981A/en
Publication of JP2005292981A publication Critical patent/JP2005292981A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently perform the communication of a message between modules. <P>SOLUTION: This data processing system 50 is provided with a plurality of processors 52 and 54 and a message manager 80 for managing message communication between processes. The processes 52 and 54 having one or more inputs and outputs include modules 60, 62, 64, 70, 72 and 74 for performing predetermined processing to input data and message managers 66 and 76 for managing the message communication in a process. The message managers 66 and 76 decide a transmission destination module based on a transmission origin module identifier included in a message received from the module in a process and the type of the message, and selectively performs processing to distribute the message in the process and processing to transmit it to a message manager 80 according to whether the module is inside or outside the process. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

この発明は、コンピュータ上で動作する機能モジュールの間のメッセージ通信に関し、特に、複数のモジュールで一つのプロセスを構成し、複数のプロセスで一つのタスクを実現するシステムにおいて、モジュール間のメッセージ通信を高速化するシステムに関する。   The present invention relates to message communication between functional modules operating on a computer, and more particularly to message communication between modules in a system in which a plurality of modules constitute one process and a plurality of processes realize one task. It relates to a system that speeds up.

実時間の音声認識システム等の構築過程においては、音声認識のための処理の設定を様々に変えて、認識率等の性能を確認したいことがある。そのために例えばオプション値等を変えて同じプログラムを動作させるだけでなく、処理の流れそのものも自由に変更して実験できれば便利である。そのため、それぞれ特有の機能を持つ複数のモジュールを予め準備し、それらモジュールを目的にあわせて適切な形で組合せることができるシステムがあれば好ましい。   In the process of constructing a real-time speech recognition system or the like, it may be desired to confirm the performance such as the recognition rate by changing various settings for processing for speech recognition. Therefore, for example, it is convenient not only to operate the same program by changing option values and the like, but also to freely change the processing flow itself for experiments. Therefore, it is preferable to have a system in which a plurality of modules each having a specific function are prepared in advance, and these modules can be combined in an appropriate form according to the purpose.

さらに、実験結果を早く確認するためには、一つのコンピュータ上だけでなく、複数のコンピュータを互いに結合し、それらコンピュータ上で別々に、互いに連携させながらモジュールを動作させることができれば便利である。   Furthermore, in order to confirm the experimental result quickly, it is convenient if not only one computer but also a plurality of computers can be connected to each other, and the modules can be operated separately in cooperation with each other on these computers.

そのための原理的構成として考えられるものを図1に示す。図1に示すシステム20は、第1のプロセス22と第2のプロセス24とを含む。   FIG. 1 shows what can be considered as a fundamental configuration for that purpose. The system 20 shown in FIG. 1 includes a first process 22 and a second process 24.

第1のプロセス22は、第1のモジュール30と、第2のモジュール32と、第3のモジュール34とを含む。第2のプロセス24は、第4のモジュール36と、第5のモジュール38と、第6のモジュール40とを含む。   The first process 22 includes a first module 30, a second module 32, and a third module 34. The second process 24 includes a fourth module 36, a fifth module 38, and a sixth module 40.

例えば第1のプロセス22をあるコンピュータ上で実行し、第2のプロセス24を別のコンピュータで実行することで、全体的な処理速度の向上を図ることができる。もちろん、第1のプロセス22と第2のプロセス24とを同一のコンピュータ上で動作させても問題はない。   For example, by executing the first process 22 on one computer and executing the second process 24 on another computer, the overall processing speed can be improved. Of course, there is no problem even if the first process 22 and the second process 24 are operated on the same computer.

こうしたシステムを実現するためには、あるモジュールの出力を別のモジュールの入力に与えるため、予め各モジュールの入力と出力とを明確に定義しておかなければならないが、それに加えて各モジュール間及びプロセス間でのデータ(メッセージ)の受け渡しをどのように実現するかを考える必要がある。   In order to realize such a system, in order to give the output of one module to the input of another module, the input and output of each module must be clearly defined in advance. It is necessary to consider how to pass data (messages) between processes.

例えば同じプロセスに含まれるモジュールであれば、プロセス内のメモリ空間を共有しているため、互いのメッセージ交換は高速に行なえる。しかしプロセス間の通信に要するシステムのオーバヘッドは大きく、プロセス間のメッセージ通信には比較的時間がかかる。   For example, modules included in the same process share the memory space in the process, so that messages can be exchanged at high speed. However, the system overhead required for communication between processes is large, and message communication between processes takes a relatively long time.

そうした問題を解決するために、あるモジュールの出力先が同じプロセス内か別プロセスかで、それぞれ異なる通信方式で通信するようにモジュールを設計することが考えられる。   In order to solve such a problem, it is conceivable to design a module so that a module communicates with different communication methods depending on whether the output destination of the module is in the same process or in a different process.

しかし、モジュールの設計を出力先にあわせて変えるのでは、モジュールの組合せが固定されてしまい、モジュール化の当初の目的を達成できない。従って、モジュールが属するプロセスに関わらず、モジュール化の利点を残しながら、モジュール間の通信を効率的に行なうことができるシステムが望まれている。   However, if the module design is changed according to the output destination, the combination of modules is fixed, and the original purpose of modularization cannot be achieved. Therefore, there is a demand for a system that can efficiently perform communication between modules while retaining the advantages of modularization regardless of the process to which the modules belong.

それゆえに本発明の目的は、自由に組合せたモジュール間でのメッセージの通信を効率的に行なうことが可能なメッセージ管理装置、及びそのようなメッセージ管理装置を備えたデータ処理システムを提供することである。   Therefore, an object of the present invention is to provide a message management device capable of efficiently communicating messages between freely combined modules, and a data processing system including such a message management device. is there.

本発明の第1の局面に係るメッセージ管理装置は、複数のモジュールを含むプロセス内において、複数のモジュール相互の間のメッセージ通信、及び複数のモジュールと当該プロセス外のモジュールとの間のメッセージ通信を管理するためのメッセージ管理装置であって、各モジュールはいずれもモジュール識別子により一意に特定され、各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含み、メッセージ管理装置は、メッセージを一時格納するためのメッセージキューと、メッセージキューに格納されたメッセージを、プロセス内の、当該メッセージの送信先モジュール識別子により特定されるモジュールに配信するためのメッセージ配信手段と、予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するためのメッセージフロー管理手段と、プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得して当該メッセージの送信先モジュール識別子に設定し、取得された送信先モジュール識別子により特定されるモジュールがプロセス内のモジュールか否かに従って、当該メッセージをメッセージキューに格納する処理と、プロセス外の所定のメッセージ送信先に送信する処理とを選択的に行なうためのメッセージ振分手段とを含む。   The message management device according to the first aspect of the present invention performs message communication between a plurality of modules and message communication between a plurality of modules and a module outside the process in a process including a plurality of modules. Each of the modules is uniquely specified by a module identifier, and a message communicated between the modules is a transmission source module identifier, a transmission destination module identifier, and a message to be transmitted. A message queue for temporarily storing the message, and the message stored in the message queue according to the destination module identifier of the message in the process. Message for delivery to the identified module Message flow management means for determining a message transmission destination module based on a message transmission source module identifier and a message type according to a predetermined data flow, and outputting the transmission destination module identifier In response to the message received from the module in the process, the message destination module identifier is obtained from the message flow management means based on the source module identifier and the message type included in the message, and the message A process for storing the message in the message queue according to whether or not the module specified by the acquired transmission destination module identifier is a module in the process, and a predetermined message transmission destination outside the process. Process to send The and a message distributing means for performing selectively.

好ましくは、メッセージ振分手段は、プロセス内のモジュール識別子を記憶するためのモジュール識別子記憶手段と、プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得するための手段と、取得するための手段により取得された送信先モジュール識別子を、受けたメッセージの送信先モジュール識別子に設定するための手段と、取得するための手段により取得された送信先モジュール識別子が、モジュール識別子記憶手段に記憶されているか否かを判定するための判定手段と、判定手段により、取得するための手段により取得された送信先モジュール識別子がモジュール識別子記憶手段に記憶されていると判定されたことに応答して、受信したメッセージをメッセージキューに格納するための手段と、判定手段により、取得するための手段により取得された送信先モジュール識別子がモジュール識別子記憶手段に記憶されていないと判定されたことに応答して、受信したメッセージをプロセス外の所定のメッセージ送信先に送信するための手段とを含む。   Preferably, the message distribution means includes module identifier storage means for storing a module identifier in the process, and in response to a message received from the module in the process, the source module identifier and the message included in the message. Based on the type, the means for obtaining the destination module identifier of the message from the message flow management means and the destination module identifier obtained by the means for obtaining are set as the destination module identifier of the received message. Means for determining whether the destination module identifier acquired by the means for acquiring is stored in the module identifier storage means, and means for acquiring by the determination means The acquired destination module identifier is the module identifier. In response to the determination that the message is stored in the child storage means, the means for storing the received message in the message queue, and the destination module identifier obtained by the means for obtaining by the judging means are Means for transmitting the received message to a predetermined message destination outside the process in response to determining that the module identifier is not stored in the module identifier storage means.

本発明の第2の局面に係るメッセージ管理装置は、各々が1又は複数のモジュールを含む複数のプロセスからなるシステムにおいて、モジュール間のメッセージ通信を管理するためのメッセージ管理装置であって、システム内の各モジュールは、いずれもモジュール識別子により一意に特定され、各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含み、メッセージ管理装置は、予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するためのメッセージフロー管理手段と、プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得し、取得された送信先モジュール識別子により特定されるモジュールを含むプロセスに受けたメッセージを配信するためのメッセージ振分手段とを含む。   A message management apparatus according to a second aspect of the present invention is a message management apparatus for managing message communication between modules in a system comprising a plurality of processes each including one or a plurality of modules, Each module is uniquely identified by a module identifier, and a message communicated between the modules includes a transmission source module identifier, a transmission destination module identifier, a type of message to be transmitted, and data to be transmitted. The message management apparatus determines a message transmission destination module based on a message transmission source module identifier and a message type according to a predetermined data flow, and outputs a transmission destination module identifier. From flow management means and modules in the process In response to the message, the message destination module identifier is acquired from the message flow management unit based on the source module identifier and the message type included in the message, and is specified by the acquired destination module identifier. Message distribution means for distributing the received message to the process including the module.

本発明の第3の局面に係るコンピュータプログラムは、コンピュータにより実行されると、上記したいずれかのメッセージ管理装置として当該コンピュータを動作させる。   When executed by a computer, the computer program according to the third aspect of the present invention causes the computer to operate as one of the message management devices described above.

本発明の第4の局面に係るデータ処理システムは、複数のプロセスと、各モジュール間でのデータの流れを実現するメッセージ通信を管理するためのプロセス間メッセージ管理手段とを含むデータ処理システムである。複数のプロセスの各々は、各々が1又は複数の入力及び出力を持ち、入力されるデータに対し所定の処理を行なって出力する複数のモジュールと、当該プロセス内において、複数のモジュール相互の間のメッセージ通信、及び複数のモジュールと当該プロセス外のモジュールとの間のメッセージ通信を管理するためのプロセス内メッセージ管理手段とを含む。各モジュールはいずれもモジュール識別子により一意に特定される。各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含む。プロセス内メッセージ管理手段は、メッセージを一時格納するためのメッセージキューと、メッセージキューに格納されたメッセージを、プロセス内の、当該メッセージの送信先モジュール識別子により特定されるモジュールに配信するためのメッセージ配信手段と、予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するための第1のメッセージフロー管理手段と、プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、第1のメッセージフロー管理手段からメッセージの送信先モジュール識別子を取得して当該メッセージの送信先モジュール識別子に設定し、取得された送信先モジュール識別子により特定されるモジュールがプロセス内のモジュールか否かに従って、当該メッセージをメッセージキューに格納する処理と、プロセス間メッセージ管理手段に送信する処理とを選択的に行なうためのメッセージ振分手段とを含む。   A data processing system according to a fourth aspect of the present invention is a data processing system including a plurality of processes and inter-process message management means for managing message communication for realizing a data flow between modules. . Each of the plurality of processes has one or a plurality of inputs and outputs, performs a predetermined process on the input data, outputs a plurality of modules, and a plurality of modules within the process. In-process message management means for managing message communication and message communication between a plurality of modules and modules outside the process. Each module is uniquely identified by a module identifier. The message communicated between the modules includes a transmission source module identifier, a transmission destination module identifier, a type of message to be transmitted, and data to be transmitted. In-process message management means includes a message queue for temporarily storing a message, and a message distribution for distributing the message stored in the message queue to a module specified by a destination module identifier of the message in the process. And a first message flow management means for determining a message destination module based on a message source module identifier and a message type according to a predetermined data flow and outputting the destination module identifier. In response to the message received from the module in the process, the message destination module identifier is obtained from the first message flow management means based on the source module identifier and the message type included in the message. The message The message is stored in the message queue according to whether or not the module specified by the acquired destination module identifier is a module in the process, and sent to the inter-process message management means. Message distribution means for selectively performing the processing to be performed.

好ましくは、メッセージ振分手段は、プロセス内のモジュール識別子を記憶するためのモジュール識別子記憶手段と、プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、第1のメッセージフロー管理手段からメッセージの送信先モジュール識別子を取得するための手段と、取得するための手段により取得された送信先モジュール識別子を、受けたメッセージの送信先モジュール識別子に設定するための手段と、取得するための手段により取得された送信先モジュール識別子が、モジュール識別子記憶手段に記憶されているか否かを判定するための判定手段と、判定手段により、取得するための手段により取得された送信先モジュール識別子がモジュール識別子記憶手段に記憶されていると判定されたことに応答して、受信したメッセージをメッセージキューに格納するための手段と、判定手段により、取得するための手段により取得された送信先モジュール識別子がモジュール識別子記憶手段に記憶されていないと判定されたことに応答して、受信したメッセージをプロセス外の所定のメッセージ送信先に送信するための手段とを含む。   Preferably, the message distribution means includes module identifier storage means for storing a module identifier in the process, and in response to a message received from the module in the process, the source module identifier and the message included in the message. Based on the type, the means for obtaining the message destination module identifier from the first message flow management means, and the destination module identifier obtained by the means for obtaining the destination module identifier of the received message Means for determining whether or not the destination module identifier acquired by the means for acquiring is stored in the module identifier storage means, and for acquisition by the determination means The destination module identifier obtained by means of In response to the determination that the message identifier is stored in the message identifier storage means, the means for storing the received message in the message queue, and the destination module identifier obtained by the means for obtaining by the decision means Means for transmitting the received message to a predetermined message destination outside the process in response to determining that is not stored in the module identifier storage means.

本発明の第5の局面に係るコンピュータプログラムは、コンピュータにより実行されると、上記したいずれかのデータ処理システムとして当該コンピュータを動作させる。   When executed by a computer, the computer program according to the fifth aspect of the present invention causes the computer to operate as one of the data processing systems described above.

以下、本発明の一実施の形態に係るシステムについて説明する。本システムは、複数のモジュールを組合せることにより、音声認識を行なうためのシステムである。   Hereinafter, a system according to an embodiment of the present invention will be described. This system is a system for performing speech recognition by combining a plurality of modules.

音声のような時系列データを処理する場合、発話単位で処理を行なうと、すなわち、話し終わってからまとめて処理を行なうと、少なくとも発話時間分のタイムラグが発生する。その結果、リアルタイムに処理することができない。   When processing time-series data such as speech, if processing is performed in units of utterances, that is, processing is performed collectively after the end of speaking, a time lag corresponding to at least the utterance time occurs. As a result, it cannot be processed in real time.

そこで本システムでは、音声データを10msec程度の時間間隔で、所定の長さの単位(これをフレームと言う)に分割して、フレーム単位で各モジュールの間でデータを受け渡しながら処理を実行する。フレーム単位のデータは、あるモジュールに入力され、そのモジュールで当該フレームに対する処理を行なった後に、次のモジュールに渡される。このフレーム単位のデータを「イベントメッセージ(以後イベントと略す)」という。   Therefore, in this system, the audio data is divided into units of a predetermined length (this is called a frame) at a time interval of about 10 msec, and the process is executed while transferring data between modules in units of frames. Data in units of frames is input to a certain module, and processing for the frame is performed by the module, and then passed to the next module. This frame unit data is referred to as an “event message (hereinafter abbreviated as event)”.

イベントには、データの種類に応じていくつかの型がある。例えば、生の音声データの場合はWAVE型、特徴パラメータの場合はFEATURE型等、である。従ってモジュールの入出力においては、そこに入力されるデータ、又はそこから入力されるデータがどのような型かを明確に定義しておく必要がある。   There are several types of events depending on the type of data. For example, in the case of raw audio data, it is WAVE type, and in the case of feature parameters, it is FEATURE type. Therefore, in the input / output of a module, it is necessary to clearly define what type of data is input to or input from the module.

そして、システムを組む場合には、目的に従ってモジュールを選択し、どのモジュールのどの出力をどのモジュールのどの入力に与えるかを、データの型を考慮しながら決定する必要がある。このように、モジュール間のデータの流れを予め記述したものを本明細書ではフロー定義と呼び、典型的にはコンピュータ読取可能な形式で記憶装置に格納される。   When building a system, it is necessary to select a module according to the purpose and determine which output of which module is to be given to which input of which module in consideration of the data type. In this specification, the data flow between modules described in advance is called a flow definition in this specification, and is typically stored in a storage device in a computer-readable format.

図2に本システム50のブロック図を示す。この本システム50は、図1に示すシステム20と同様、第1のプロセス52及び第2のプロセス54を含む。本システム50はさらに、第1のプロセス52及び第2のプロセス54をそれぞれ構成するモジュール間のデータの流れを定義するフロー定義ファイル58と、第1のプロセス52及び第2のプロセス54、並びに本システム50の外部とに接続され、第1のプロセス52及び第2のプロセス54内のモジュール間、及びこれらモジュールと本システム50の外部との間のイベントの流れをフロー定義ファイル58の記述に従って制御するためのモジュールマネージャ56とを含む。   FIG. 2 shows a block diagram of the system 50. This system 50 includes a first process 52 and a second process 54, similar to the system 20 shown in FIG. 1. The system 50 further includes a flow definition file 58 that defines the flow of data between the modules constituting the first process 52 and the second process 54, the first process 52 and the second process 54, and the book. It is connected to the outside of the system 50 and controls the flow of events between the modules in the first process 52 and the second process 54 and between these modules and the outside of the system 50 according to the description of the flow definition file 58. A module manager 56.

第1のプロセス52は、第1のモジュール60と、第2のモジュール62と、第3のモジュール64と、これら3つのモジュール60,62及び64の間、ならびにこれらモジュールとモジュールマネージャ56との間のイベントの流れをフロー定義ファイル58の記述に従って制御し、プロセス内のメッセージ通信を管理するためのメッセージマネージャ66とを含む。   The first process 52 includes a first module 60, a second module 62, a third module 64, between these three modules 60, 62 and 64, and between these modules and the module manager 56. A message manager 66 for controlling the event flow according to the description of the flow definition file 58 and managing message communication within the process.

第2のプロセス54も第1のプロセス52と同様、第4のモジュール70と、第5のモジュール72と、第6のモジュール74と、これら3つのモジュール70,72及び74の間、ならびにこれらモジュールとモジュールマネージャ56との間のイベントの流れをフロー定義ファイル58の記述に従って制御するためのメッセージマネージャ76とを含む。   Similarly to the first process 52, the second process 54 is a fourth module 70, a fifth module 72, a sixth module 74, and between these three modules 70, 72 and 74, and these modules. And a message manager 76 for controlling the flow of events between the module manager 56 and the module manager 56 according to the description of the flow definition file 58.

モジュール60〜74は、いずれも入力と出力とを一個以上有する。各モジュールは、入力されたデータをそのモジュール特有の機能に従って内部で処理し、結果を出力する機能を持つ。例えば、音声の特徴抽出モジュールは、音声データを入力とし、その特徴パラメータを出力とする。   Each of the modules 60 to 74 has one or more inputs and outputs. Each module has a function of internally processing input data according to a function specific to the module and outputting a result. For example, the voice feature extraction module receives voice data as an input and outputs its feature parameters.

モジュールマネージャ56は、本システム50の外部から与えられる入力を受けるための入力モジュール82と、本システム50からの出力を外部に与えるための出力モジュール84と、入力モジュール82、出力モジュール84、メッセージマネージャ66及びメッセージマネージャ76に接続され、フロー定義ファイル58の記述に基づいて、各プロセス52及び54、並びに入力モジュール82及び出力モジュール84の間のイベントの流れを制御するためのメッセージマネージャ80とを含む。すなわちメッセージマネージャ80は、プロセス間のメッセージ通信を管理するものということができる。   The module manager 56 includes an input module 82 for receiving an input given from the outside of the system 50, an output module 84 for giving an output from the system 50 to the outside, an input module 82, an output module 84, a message manager. And a message manager 80 for controlling the flow of events between the input module 82 and the output module 84 based on the description of the flow definition file 58. . That is, it can be said that the message manager 80 manages message communication between processes.

図3に、モジュール間で通信されるイベント120の構成を示す。図3を参照して、イベント120は、送信元モジュール識別番号(以下「ID」と呼ぶ。)と、送信先モジュールIDと、イベントの型と、データの内容とを含む。イベントの型とは、イベントに含まれるデータの型のことであり、前述したWAVE型、FEATURE型などがその一例である。   FIG. 3 shows the configuration of the event 120 communicated between the modules. Referring to FIG. 3, event 120 includes a transmission source module identification number (hereinafter referred to as “ID”), a transmission destination module ID, an event type, and data contents. The event type is the type of data included in the event, and examples thereof include the WAVE type and the FEATURE type described above.

図4に、フロー定義ファイル58内に記述される内容を表形式で示す。図4を参照して、フロー定義ファイル58内には、「process」、「arc」及び「file」という三つの項目が定義されている。   FIG. 4 shows the contents described in the flow definition file 58 in a table format. Referring to FIG. 4, three items “process”, “arc”, and “file” are defined in the flow definition file 58.

processは、どのプロセスにどのモジュールが含まれているかを示す情報である。arc(以下「アーク」と呼ぶ。)は、どのモジュールからどのモジュールにどのようなイベントが送られるかを示す情報である。この中にはイベントの型も含まれる。fileは、外部からどのようなイベントがシステム50に送られ、結果がどのようなイベントとして外部に出力されるかを示す。   The process is information indicating which module is included in which process. arc (hereinafter referred to as “arc”) is information indicating what event is sent from which module to which module. This includes the event type. The file indicates what kind of event is sent from the outside to the system 50 and what result is outputted outside.

図5にメッセージマネージャ80の構成をブロック図形式で示す。図5を参照して、メッセージマネージャ80は、メッセージマネージャ80に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントの型とをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有するフロー管理テーブル92と、どのプロセスにどのモジュールが含まれているかを検索できる構成を持つモジュール管理テーブル94と、フロー定義ファイル58の記述に基づいて、フロー管理テーブル92及びモジュール管理テーブル94を作成するためのテーブル作成処理部96とを含む。   FIG. 5 shows the configuration of the message manager 80 in block diagram form. Referring to FIG. 5, the message manager 80 determines the event destination module to be input to the message manager 80, and uses the event source module ID and the event type as keys to determine the module ID of the destination module. Based on the description of the flow management file 92, the module management table 94 having a structure capable of searching which module is included in which process, and the flow definition file 58. And a table creation processing unit 96 for creating the module management table 94.

メッセージマネージャ80はさらに、第1のプロセス52、第2のプロセス54、入力モジュール82及び出力モジュール84に接続され、第1のプロセス52、第2のプロセス54及び入力モジュール82から与えられるイベントを、フロー管理テーブル92及びモジュール管理テーブル94の記述に基づいて第1のプロセス52、第2のプロセス54、及び出力モジュール84のいずれかに出力するためのメッセージ振分処理部90を含む。   The message manager 80 is further connected to the first process 52, the second process 54, the input module 82 and the output module 84, and the event given from the first process 52, the second process 54 and the input module 82 is A message distribution processing unit 90 for outputting to any of the first process 52, the second process 54, and the output module 84 based on the descriptions of the flow management table 92 and the module management table 94 is included.

図6にフロー管理テーブル92の構成の一例を、図7にモジュール管理テーブル94の構成の一例を、それぞれ示す。図6を参照して、フロー管理テーブル92は複数のエントリを含み、各エントリは、送信元モジュールIDと、イベントの型と、送信先モジュールIDとを含む。これらは、図4に示すフロー定義ファイル58のアークの記述に相当する。受信したイベントに含まれる送信元モジュールID及びイベントの型(図3を参照されたい。)をキーにフロー管理テーブル92を検索することにより、当該イベントをどのモジュールに送信すべきかが、送信先モジュールIDの欄を見ることで判定できる。なお図6に示すフロー管理テーブル92は、図2に示す構成に必要な情報の一部のみを示す。   FIG. 6 shows an example of the configuration of the flow management table 92, and FIG. 7 shows an example of the configuration of the module management table 94. Referring to FIG. 6, the flow management table 92 includes a plurality of entries, and each entry includes a transmission source module ID, an event type, and a transmission destination module ID. These correspond to descriptions of arcs in the flow definition file 58 shown in FIG. By searching the flow management table 92 using the transmission source module ID and event type (see FIG. 3) included in the received event as keys, it is determined which module the event should be transmitted to. This can be determined by looking at the ID column. Note that the flow management table 92 shown in FIG. 6 shows only a part of the information necessary for the configuration shown in FIG.

図7を参照して、モジュール管理テーブル94も通常は複数のエントリを含む。各エントリはモジュールに対応するものであり、そのモジュールが属するプロセス名と、そのモジュールのモジュールIDとを含む。図7に示すモジュール管理テーブル94も、図2に示す本システム50の構成に必要な情報の一部のみを示す。   Referring to FIG. 7, the module management table 94 also usually includes a plurality of entries. Each entry corresponds to a module and includes the process name to which the module belongs and the module ID of the module. The module management table 94 shown in FIG. 7 also shows only a part of information necessary for the configuration of the system 50 shown in FIG.

次に図2の第1のプロセス52及び第2のプロセス54を構成する各部について説明する。各モジュールの構成については本発明とは直接関係ないので、それらについての詳細な説明は省略する。またメッセージマネージャ66とメッセージマネージャ76とは同じ構成を有しているので、以下、メッセージマネージャ66について説明する。   Next, each part constituting the first process 52 and the second process 54 in FIG. 2 will be described. Since the configuration of each module is not directly related to the present invention, a detailed description thereof will be omitted. Since the message manager 66 and the message manager 76 have the same configuration, the message manager 66 will be described below.

図8を参照して、メッセージマネージャ66は、メッセージマネージャ66に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントの型とをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有する、図5に示すものと同様形式のフロー管理テーブル102と、このメッセージマネージャ66が管理するプロセス(本実施の形態では第1のプロセス52)にどのモジュールが含まれているかを記述したモジュール管理テーブル100と、図5に示すフロー管理テーブル92を複写してフロー管理テーブル102を作成するためのフロー管理テーブル作成処理部106と、フロー定義ファイル58の記述に基づき、第1のプロセス52に含まれるモジュールIDを含むモジュール管理テーブル100を作成するためのモジュール管理テーブル作成処理部104とを含む。   Referring to FIG. 8, the message manager 66 determines the event destination module to be input to the message manager 66, and uses the event source module ID and the event type as a key to specify the module ID of the destination module. Which module is included in the flow management table 102 of the same format as shown in FIG. 5 and the process managed by the message manager 66 (first process 52 in this embodiment). Based on the description of the module management table 100 that describes whether or not, the flow management table creation processing unit 106 for creating the flow management table 102 by copying the flow management table 92 shown in FIG. The module including the module ID included in the first process 52 And a module management table creation processing section 104 for creating Yuru management table 100.

メッセージマネージャ66はさらに、第1〜第3のモジュール60,62及び64とモジュールマネージャ56とからイベントを受取り、フロー管理テーブル102とモジュール管理テーブル100とを参照して、当該イベントを第1〜第3のモジュール60,62及び64、並びにモジュールマネージャ56のいずれに送信すべきかを判定し判定結果に従って当該イベントを振り分けるためのメッセージ振分処理部108と、メッセージ振分処理部108によってメッセージ振分処理部108の管理するプロセス(本実施の形態では第1のプロセス52)に送信するよう判定されたイベントを一時的にFIFO形式で格納するためのイベントキュー110と、イベントキュー110からイベントを一つずつ読出し、当該イベントに含まれる送信先モジュールIDに基づいて、当該イベントを第1〜第3のモジュール60、62及び64のいずれかに配信するためのプロセス内メッセージ配信部112とを含む。   The message manager 66 further receives events from the first to third modules 60, 62, and 64 and the module manager 56, and refers to the flow management table 102 and the module management table 100 to refer to the event as the first to first modules. Message distribution processing unit 108 for determining which of the modules 60, 62 and 64 and module manager 56 should be transmitted and distributing the event according to the determination result, and message distribution processing by the message distribution processing unit 108 An event queue 110 for temporarily storing an event determined to be transmitted to a process managed by the unit 108 (first process 52 in the present embodiment) in FIFO format, and one event from the event queue 110 Read out one by one and included in the event Shinsaki based on the module ID, and a process in the message delivery unit 112 for delivering the event to one of the first to third module 60, 62 and 64.

図9にモジュール管理テーブル100の形式を模式的に示す。メッセージマネージャ66が管理する第1のプロセス52の場合、そこに含まれるモジュールは第1のモジュール60、第2のモジュール62、及び第3のモジュール64である。従ってこの場合のモジュール管理テーブル100の内容は図9に示した通りとなる。   FIG. 9 schematically shows the format of the module management table 100. In the case of the first process 52 managed by the message manager 66, the modules included therein are the first module 60, the second module 62, and the third module 64. Therefore, the contents of the module management table 100 in this case are as shown in FIG.

実際にはメッセージ振分処理部108は、後述するようにコンピュータハードウェア上で実行されるプログラムにより実現される。本実施の形態の場合、メッセージ振分処理部108が受信したイベントの送信元がプロセス内のものか、プロセス外のものか、によって異なる処理を行なう。それぞれを実現するコンピュータプログラムの制御構造について図10及び図11を参照して説明する。   Actually, the message distribution processing unit 108 is realized by a program executed on computer hardware as will be described later. In the case of the present embodiment, different processing is performed depending on whether the transmission source of the event received by the message distribution processing unit 108 is in the process or outside the process. The control structure of the computer program for realizing each will be described with reference to FIGS.

図10は、プロセス内のモジュールからイベントを受信した場合に、図8に示すメッセージマネージャ66のメッセージ振分処理部108が実行する処理プログラムのフローチャートである。図5に示すメッセージマネージャ80のメッセージ振分処理部90についても同様である。図10を参照して、プロセス内モジュールからイベントを受信すると、ステップ130で、当該イベントの送信元モジュールIDとイベント型とをキーにフロー管理テーブル102を検索し、該当する全てのアークを取出す。   FIG. 10 is a flowchart of a processing program executed by the message distribution processing unit 108 of the message manager 66 shown in FIG. 8 when an event is received from a module in the process. The same applies to the message distribution processing unit 90 of the message manager 80 shown in FIG. Referring to FIG. 10, when an event is received from an in-process module, in step 130, the flow management table 102 is searched using the transmission source module ID and event type of the event as a key, and all corresponding arcs are extracted.

続いて、ステップ130の処理の結果見つかった全てのアークについて、以下の処理を行なう。すなわち、ステップ132で、当該アークの送信先モジュールIDが当該プロセス内のモジュールのものか否かを判定する。送信先モジュールIDが当該プロセス内のモジュールのものであればステップ134に進み、さもなければステップ140に進む。   Subsequently, the following processing is performed for all arcs found as a result of the processing in step 130. That is, in step 132, it is determined whether the destination module ID of the arc is that of the module in the process. If the destination module ID is that of the module in the process, the process proceeds to step 134; otherwise, the process proceeds to step 140.

ステップ134では、イベントの送信先に、検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールが同じプロセス内なので、ステップ136でこのイベントをイベントキュー110に出力する。   In step 134, the destination module ID included in the searched arc is set as the event destination. Since the destination module is in the same process, this event is output to the event queue 110 in step 136.

一方ステップ140では、イベントの送信先に、同じく検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールがプロセス外に存在しているので、ステップ142でこのイベントをモジュールマネージャ56に出力する。   On the other hand, in step 140, the destination module ID included in the arc searched for is set as the event destination. Since the destination module exists outside the process, this event is output to the module manager 56 in step 142.

ステップ134、136、140及び142の処理を、ステップ130で見出された全てのアークに対して行なうことにより、一つのイベントに対し、見つかった数だけのイベントが生成され、送信先モジュールの所在に応じて、それぞれイベントキュー110又はモジュールマネージャ56に送信されることになる。   By performing the processing of steps 134, 136, 140 and 142 for all the arcs found in step 130, the number of events found for one event is generated, and the location of the destination module is determined. In response to the event queue 110 or the module manager 56, respectively.

図11は、プロセス外からイベントを受信した場合に、図5に示すメッセージマネージャ80のメッセージ振分処理部90が実行する処理プログラムのフローチャートである。図11を参照して、プロセス外からイベントを受信すると、ステップ160で、モジュール管理テーブル94中でイベント中の送信先モジュールIDを検索し、当該送信先モジュールを含むプロセスを決定する。ステップ162では、決定されたプロセスが自分自身が否かを判定する。もし自分自身が送信先であればステップ164で自己のイベントキューに当該イベントを格納する。もし自分自身が送信先でなければ、ステップ166で送信先モジュールを含むプロセスに当該イベントを送信する。   FIG. 11 is a flowchart of a processing program executed by the message distribution processing unit 90 of the message manager 80 shown in FIG. 5 when an event is received from outside the process. Referring to FIG. 11, when an event is received from outside the process, in step 160, a destination module ID in the event is searched in the module management table 94, and a process including the destination module is determined. In step 162, it is determined whether or not the determined process is itself. If it is the transmission destination, in step 164, the event is stored in its own event queue. If it is not the transmission destination, in step 166, the event is transmitted to the process including the transmission destination module.

一方、図8に示すメッセージマネージャ66がプロセス外からイベントを受信した場合、当該イベントの送信先については、プロセス内であることが保証されている。従って当該イベントを図8に示すメッセージ振分処理部108に格納する。   On the other hand, when the message manager 66 shown in FIG. 8 receives an event from outside the process, the destination of the event is guaranteed to be within the process. Therefore, the event is stored in the message distribution processing unit 108 shown in FIG.

−動作−
図2〜図11を参照して、以上のような構成を有する本システム50は以下のように動作する。まず、図2を参照して、最初にシステムの構成が定められ、その構成に従ってフロー定義ファイル58が記述され所定の記憶装置に格納される。図5に示すテーブル作成処理部96がフロー定義ファイル58に基づいて図5に示すフロー管理テーブル92及びモジュール管理テーブル94を作成する。各プロセスでは、図8に示すフロー管理テーブル作成処理部106及びモジュール管理テーブル作成処理部104が、それぞれフロー管理テーブル92及びフロー定義ファイル58に基づいてフロー管理テーブル102及びモジュール管理テーブル100を作成する。
-Operation-
With reference to FIGS. 2 to 11, the present system 50 having the above-described configuration operates as follows. First, referring to FIG. 2, a system configuration is first determined, and a flow definition file 58 is described according to the configuration and stored in a predetermined storage device. The table creation processing unit 96 shown in FIG. 5 creates the flow management table 92 and the module management table 94 shown in FIG. 5 based on the flow definition file 58. In each process, the flow management table creation processing unit 106 and the module management table creation processing unit 104 shown in FIG. 8 create the flow management table 102 and the module management table 100 based on the flow management table 92 and the flow definition file 58, respectively. .

動作において、入力モジュール82に入力データが与えられる。入力データは本システムでは通常は音声データファイルである。このシステムでは、ファイルはプロセスと同様に扱われるので、入力ファイルから作成されたフレームデータがイベントとして入力モジュール82に与えられる。本例の場合、図1に示すようにモジュールを組合せるものとすれば、入力モジュール82に与えられるイベントの送信先モジュールIDは第1のモジュールに対応するものであり、イベントの型は「WAVE」となる。送信元モジュールIDは入力ファイルに相当するものになる。このイベントは入力モジュール82からメッセージマネージャ80に与えられる。   In operation, input data is provided to the input module 82. The input data is usually an audio data file in this system. In this system, since the file is handled in the same manner as the process, the frame data created from the input file is given to the input module 82 as an event. In the case of this example, if the modules are combined as shown in FIG. 1, the event destination module ID given to the input module 82 corresponds to the first module, and the event type is “WAVE”. " The transmission source module ID corresponds to the input file. This event is given from the input module 82 to the message manager 80.

図5を参照して、メッセージマネージャ80のメッセージ振分処理部90は、フロー管理テーブル92及びモジュール管理テーブル94を参照して、当該イベントの送信先のモジュールを含むプロセスを決定し(図11のステップ160)、イベントを当該プロセスに送信する(ステップ164又は166)。本例では、例えば第1のプロセス52にこのイベントが送信されるものとする。   Referring to FIG. 5, the message distribution processing unit 90 of the message manager 80 refers to the flow management table 92 and the module management table 94 to determine a process including the module that is the destination of the event (FIG. 11). Step 160), sending the event to the process (step 164 or 166). In this example, it is assumed that this event is transmitted to the first process 52, for example.

図8を参照して、メッセージマネージャ66のメッセージ振分処理部108は、このイベントがプロセス外からのものなので、当該イベントをイベントキュー110に格納する。プロセス内メッセージ配信部112が、イベントキュー110からイベントを読出し、送信先モジュールIDにより指定されるモジュールにイベントを配信する。   Referring to FIG. 8, message distribution processing unit 108 of message manager 66 stores the event in event queue 110 because the event is from outside the process. The in-process message delivery unit 112 reads the event from the event queue 110 and delivers the event to the module specified by the destination module ID.

このイベントを受けたモジュールは、結果のイベントをメッセージマネージャ66のメッセージ振分処理部108に返信してくる。このとき、イベントの送信元モジュールID及びイベント型には、それぞれ当該モジュールにより値が設定されている。送信先モジュールIDについては設定されていない。   The module that has received this event returns the resulting event to the message distribution processing unit 108 of the message manager 66. At this time, a value is set by the module for each of the event transmission source module ID and the event type. No destination module ID is set.

メッセージ振分処理部108は、受けたイベントの送信元モジュールIDとイベント型とをキーにフロー管理テーブル102を検索し(図10のステップ130)、一致するアークを得る。メッセージ振分処理部108はさらに、モジュール管理テーブル100を参照して、当該送信先モジュールが第1のプロセス52内か否かを判定する(ステップ132)。第1のプロセス52内であれば(すなわち当該モジュールIDがモジュール管理テーブル100内に存在すれば)、当該アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ134)、メッセージ振分処理部108はこのイベントをイベントキュー110に書出す(ステップ136)。   The message distribution processing unit 108 searches the flow management table 102 using the transmission source module ID and event type of the received event as keys (step 130 in FIG. 10), and obtains a matching arc. The message distribution processing unit 108 further refers to the module management table 100 to determine whether or not the transmission destination module is in the first process 52 (step 132). If within the first process 52 (that is, if the module ID exists in the module management table 100), the destination module ID included in the arc is set as the event destination module ID (step 134). ) The message distribution processing unit 108 writes this event to the event queue 110 (step 136).

送信先が第1のプロセス52外であれば、アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ140)、モジュールマネージャ56にこのイベントを送信する(ステップ142)。   If the transmission destination is outside the first process 52, the transmission destination module ID included in the arc is set to the transmission destination module ID of the event (step 140), and this event is transmitted to the module manager 56 (step 142). ).

モジュールマネージャ56のメッセージマネージャ80では、最初の入力データを受けた場合と同様、フロー管理テーブル92とモジュール管理テーブル94とに基づいてこのイベントの送信先プロセスを決定し、そのプロセスのメッセージマネージャにイベントを送信する。フロー管理テーブル92により、システム外に出力することが示されている場合、メッセージ振分処理部90は出力モジュール84にイベントを出力する。出力モジュール84は、このイベントをさらに外部に出力する。   As in the case of receiving the first input data, the message manager 80 of the module manager 56 determines the destination process of this event based on the flow management table 92 and the module management table 94 and sends the event to the message manager of that process. Send. When the flow management table 92 indicates that the message is to be output outside the system, the message distribution processing unit 90 outputs an event to the output module 84. The output module 84 further outputs this event to the outside.

以下、メッセージマネージャ80のメッセージ振分処理部90、並びに第1のプロセス52及び第2のプロセス54のメッセージマネージャ66及び76は、上記したのと同様の処理を繰返す。その結果、外部から次々に入力モジュール82に入力されたデータは、それぞれ所定のモジュールによって処理され、結果のイベントが出力モジュール84から出力される。   Thereafter, the message distribution processing unit 90 of the message manager 80 and the message managers 66 and 76 of the first process 52 and the second process 54 repeat the same processing as described above. As a result, data input to the input module 82 one after another from the outside is processed by a predetermined module, and the resulting event is output from the output module 84.

上に説明したシステム50では、各モジュールは自己の処理した結果のイベントをどのモジュールに送信するかについては全く意識する必要がない。どのプロセスにおいても、モジュールではなくメッセージマネージャが送信先モジュールを決定し、さらに送信先モジュールが同一プロセス内であればイベントキューを用いて当該イベントを配信し、プロセス外であれば、モジュールマネージャに当該イベントを配信する。イベントの配信を受けたモジュールマネージャが、送信先モジュールIDに基づいて送信先のプロセスを決定し、送信する。   In the system 50 described above, each module does not need to be aware of which module the event resulting from its processing is transmitted to. In any process, the message manager, not the module, decides the destination module, and if the destination module is in the same process, the event queue is used to deliver the event. Deliver the event. The module manager that has received the event distribution determines a transmission destination process based on the transmission destination module ID, and transmits it.

従って、モジュールの独立性が極めて高くなり、システム構成に従ってモジュールを変更したりする必要はない。さらに、プロセス間通信については、どのプロセスも送信先のプロセスを意識せず、すべてモジュールマネージャに送信するだけでよい。従って、各プロセス間通信のためのオーバヘッドが少なくなる。   Therefore, the independence of the module becomes extremely high, and it is not necessary to change the module according to the system configuration. Furthermore, regarding inter-process communication, all processes need only be transmitted to the module manager without regard to the destination process. Therefore, the overhead for communication between processes is reduced.

従って、このようなプロセス間通信の仕組みを用いることで、イベントを効率よく配信することが可能となり、さらに各モジュールの独立性を高め、自由にシステムを組むことが可能になる。また、データはプロセス間を転送されながら各モジュールで処理され、かつ各プロセスではイベントキューによって処理時間の調整を行ないながら正しい順序でデータ処理を行なうことができる。その結果、リアルタイムで、音声認識などの多量のデータ処理を行なうことができる。またモジュールの組合せが自由にできるので、異なる構成のシステムの性能実験などを簡単に、かつ短い時間に行なうことが可能になる。
[コンピュータによる実現]
この実施の形態のシステムは、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図12はこのコンピュータシステム330の外観を示し、図13はコンピュータシステム330の内部構成を示す。なお、前述したとおりこのシステムは、これら複数のコンピュータをネットワークなどで結合したものによって実現することもできる。
Therefore, by using such an inter-process communication mechanism, events can be distributed efficiently, and further, the independence of each module can be improved and a system can be freely assembled. Data is processed in each module while being transferred between processes, and each process can perform data processing in the correct order while adjusting the processing time by an event queue. As a result, a large amount of data processing such as voice recognition can be performed in real time. Further, since the modules can be freely combined, it is possible to easily perform performance experiments on systems having different configurations in a short time.
[Realization by computer]
The system of this embodiment is realized by computer hardware, a program executed by the computer hardware, and data stored in the computer hardware. FIG. 12 shows the external appearance of the computer system 330, and FIG. 13 shows the internal configuration of the computer system 330. As described above, this system can also be realized by connecting a plurality of computers via a network or the like.

図12を参照して、このコンピュータシステム330は、FD(フレキシブルディスク)ドライブ352及びCD−ROM(コンパクトディスク読出専用メモリ)ドライブ350を有するコンピュータ340と、キーボード346と、マウス348と、モニタ342とを含む。   Referring to FIG. 12, this computer system 330 includes a computer 340 having an FD (flexible disk) drive 352 and a CD-ROM (compact disk read only memory) drive 350, a keyboard 346, a mouse 348, and a monitor 342. including.

図13を参照して、コンピュータ340は、FDドライブ352及びCD−ROMドライブ350に加えて、CPU(中央処理装置)356と、CPU356、FDドライブ352及びCD−ROMドライブ350に接続されたバス366と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)358と、バス366に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ(RAM)360とを含む。コンピュータシステム330はさらに、プリンタ344を含んでいる。   Referring to FIG. 13, in addition to the FD drive 352 and the CD-ROM drive 350, the computer 340 includes a CPU (Central Processing Unit) 356 and a bus 366 connected to the CPU 356, the FD drive 352, and the CD-ROM drive 350. And a read only memory (ROM) 358 for storing a boot-up program and the like, and a random access memory (RAM) 360 connected to the bus 366 for storing a program command, a system program, work data, and the like. Computer system 330 further includes a printer 344.

コンピュータ340はさらにローカルエリアネットワーク(LAN)への接続を提供するネットワークアダプタボード368を含む。   The computer 340 further includes a network adapter board 368 that provides a connection to a local area network (LAN).

コンピュータシステム330にこの実施の形態に係る本システム50(又はその一部の第1のプロセス52、第2のプロセス54、モジュールマネージャ56など)としての動作を行なわせるためのコンピュータプログラムは、CD−ROMドライブ350又はFDドライブ352に挿入されるCD−ROM362又はFD364に記憶され、さらにハードディスク354に転送される。又は、プログラムはネットワークを通じてコンピュータ340に送信されハードディスク354に記憶されてもよい。プログラムは実行の際にRAM360にロードされる。CD−ROM362から、FD364から、又はネットワークを介して、直接にRAM360にプログラムをロードしてもよい。   A computer program for causing the computer system 330 to operate as the system 50 according to this embodiment (or a part of the first process 52, the second process 54, the module manager 56, etc.) is a CD- The data is stored in the CD-ROM 362 or FD 364 inserted in the ROM drive 350 or FD drive 352 and further transferred to the hard disk 354. Alternatively, the program may be transmitted to the computer 340 through a network and stored in the hard disk 354. The program is loaded into the RAM 360 when executed. The program may be loaded directly into the RAM 360 from the CD-ROM 362, from the FD 364, or via a network.

このプログラムは、コンピュータ340にこの実施の形態に係るシステム50に含まれる各プロセス52、54、モジュールマネージャ56、各プロセス中で実行されるモジュール等としての動作を行なわせる複数の命令を含む。このために必要な基本的機能のいくつかはコンピュータ340上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、もしくはコンピュータ340にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステムを実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した換言規則選別装置を実行する命令のみを含んでいればよい。コンピュータシステム330の動作は周知であるので、ここでは繰返さない。   This program includes a plurality of instructions that cause the computer 340 to operate as the processes 52 and 54, the module manager 56, and the modules executed in each process included in the system 50 according to the present embodiment. Some of the basic functions required for this are provided by operating system (OS) or third party programs running on the computer 340 or various toolkit modules installed on the computer 340. Therefore, this program does not necessarily include all functions necessary for realizing the system of this embodiment. This program need only include instructions that execute the above-described paraphrase rule selection device by calling an appropriate function or “tool” in a controlled manner so as to obtain a desired result. . The operation of computer system 330 is well known and will not be repeated here.

上記した実施の形態では、モジュール管理テーブルについては各プロセスに用意した。しかし本発明はそのような実施の形態には限定されず、モジュール管理テーブルをシステム内の全てのモジュールで同じものを使用するようにしてもよい。また、上記実施の形態では、モジュール識別子はシステム内で一意であるものとした。しかし本発明はそのような実施の形態には限定されず、プロセス内でのみモジュール識別子が一意になるようにしてもよい。ただしその場合、イベント通信ではプロセス名とモジュール識別子とによって送信元及び送信先を特定する必要がある。   In the above-described embodiment, the module management table is prepared for each process. However, the present invention is not limited to such an embodiment, and the same module management table may be used for all modules in the system. In the above embodiment, the module identifier is unique within the system. However, the present invention is not limited to such an embodiment, and the module identifier may be unique only within the process. However, in that case, in event communication, it is necessary to specify a transmission source and a transmission destination by a process name and a module identifier.

今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。   The embodiment disclosed herein is merely an example, and the present invention is not limited to the above-described embodiment. The scope of the present invention is indicated by each claim in the claims after taking into account the description of the detailed description of the invention, and all modifications within the meaning and scope equivalent to the wording described therein are intended. Including.

各々複数のモジュールを含む複数のプロセスからなるシステムの構成例を示す図である。It is a figure which shows the structural example of the system which consists of a some process each containing several modules. 本発明の一実施の形態に係るシステム50のブロック図である。1 is a block diagram of a system 50 according to an embodiment of the present invention. イベント120の構成を示す図である。FIG. 6 is a diagram illustrating a configuration of an event 120. フロー定義ファイル58の構成を示す図である。6 is a diagram showing a configuration of a flow definition file 58. FIG. 図2に示すモジュールマネージャ56のメッセージマネージャ80のブロック図である。It is a block diagram of the message manager 80 of the module manager 56 shown in FIG. フロー管理テーブル92の構成を示す図である。It is a figure which shows the structure of the flow management table 92. FIG. モジュール管理テーブル94の構成を示す図である。It is a figure which shows the structure of the module management table 94. FIG. 図2に示す第1のプロセス52のメッセージマネージャ66のブロック図である。FIG. 3 is a block diagram of the message manager 66 of the first process 52 shown in FIG. モジュール管理テーブル100の構成を示す図である。3 is a diagram showing a configuration of a module management table 100. FIG. プロセス内イベントを受信したときの、各メッセージ振分処理部で実行される処理を示すフローチャートである。It is a flowchart which shows the process performed by each message distribution process part when the event in a process is received. モジュールマネージャ56のメッセージ振分処理部90がプロセス外イベントを受信したときに実行する処理を示すフローチャートである。It is a flowchart which shows the process performed when the message distribution process part 90 of the module manager 56 receives an out-of-process event. 本発明の一実施の形態に係るシステム50又はその一部のプロセスを実現するためのコンピュータシステムの外観図である。It is an external view of the computer system for implement | achieving the process of the system 50 which concerns on one embodiment of this invention, or its one part. 図12に示すコンピュータシステムの内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the computer system shown in FIG.

符号の説明Explanation of symbols

50 システム、52,54 プロセス、56 モジュールマネージャ、58 フロー定義ファイル、60,62,64,70,72,74 モジュール、66,76,80 メッセージマネージャ、82 入力モジュール、84 出力モジュール、90,108 メッセージ振分処理部、92,102 フロー管理テーブル、94,100 モジュール管理テーブル、96 テーブル作成処理部、104 モジュール管理テーブル作成処理部、106 フロー管理テーブル作成処理部、110 イベントキュー、112 プロセス内メッセージ配信部 50 systems, 52, 54 processes, 56 module managers, 58 flow definition files, 60, 62, 64, 70, 72, 74 modules, 66, 76, 80 message managers, 82 input modules, 84 output modules, 90, 108 messages Distribution processing unit, 92, 102 Flow management table, 94, 100 Module management table, 96 Table creation processing unit, 104 Module management table creation processing unit, 106 Flow management table creation processing unit, 110 Event queue, 112 In-process message delivery Part

Claims (7)

複数のモジュールを含むプロセス内において、前記複数のモジュール相互の間のメッセージ通信、及び前記複数のモジュールと当該プロセス外のモジュールとの間のメッセージ通信を管理するためのメッセージ管理装置であって、
各モジュールはいずれもモジュール識別子により一意に特定され、
各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含み、
前記メッセージ管理装置は、
メッセージを一時格納するためのメッセージキューと、
前記メッセージキューに格納されたメッセージを、前記プロセス内の、当該メッセージの送信先モジュール識別子により特定されるモジュールに配信するためのメッセージ配信手段と、
予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するためのメッセージフロー管理手段と、
前記プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、前記メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得して当該メッセージの送信先モジュール識別子に設定し、取得された送信先モジュール識別子により特定されるモジュールが前記プロセス内のモジュールか否かに従って、当該メッセージを前記メッセージキューに格納する処理と、前記プロセス外の所定のメッセージ送信先に送信する処理とを選択的に行なうためのメッセージ振分手段とを含む、メッセージ管理装置。
A message management apparatus for managing message communication between the plurality of modules and message communication between the plurality of modules and a module outside the process in a process including a plurality of modules,
Each module is uniquely identified by a module identifier,
A message communicated between each module includes a source module identifier, a destination module identifier, a type of message to be transmitted, and data to be transmitted,
The message management device includes:
A message queue to temporarily store messages,
Message delivery means for delivering a message stored in the message queue to a module specified by a destination module identifier of the message in the process;
A message flow management means for determining a message destination module based on a message source module identifier and a message type according to a predetermined data flow, and outputting the destination module identifier;
In response to a message received from a module in the process, based on a source module identifier and a message type included in the message, a message destination module identifier is obtained from the message flow management unit, and the message A process for storing the message in the message queue according to whether or not the module specified by the acquired transmission destination module identifier is a module in the process, and a predetermined message outside the process. A message management device including message distribution means for selectively performing processing for transmission to a transmission destination.
前記メッセージ振分手段は、
前記プロセス内のモジュール識別子を記憶するためのモジュール識別子記憶手段と、
前記プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、前記メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得するための手段と、
前記取得するための手段により取得された送信先モジュール識別子を、前記受けたメッセージの送信先モジュール識別子に設定するための手段と、
前記取得するための手段により取得された送信先モジュール識別子が、前記モジュール識別子記憶手段に記憶されているか否かを判定するための判定手段と、
前記判定手段により、前記取得するための手段により取得された送信先モジュール識別子が前記モジュール識別子記憶手段に記憶されていると判定されたことに応答して、前記受信したメッセージを前記メッセージキューに格納するための手段と、
前記判定手段により、前記取得するための手段により取得された送信先モジュール識別子が前記モジュール識別子記憶手段に記憶されていないと判定されたことに応答して、前記受信したメッセージを前記プロセス外の前記所定のメッセージ送信先に送信するための手段とを含む、請求項1に記載のメッセージ管理装置。
The message distribution means includes:
Module identifier storage means for storing a module identifier in the process;
Means for obtaining a message destination module identifier from the message flow management means based on a source module identifier and message type included in the message in response to a message received from a module in the process; ,
Means for setting the destination module identifier obtained by the means for obtaining as the destination module identifier of the received message;
Determination means for determining whether or not the transmission destination module identifier acquired by the acquisition means is stored in the module identifier storage means;
The received message is stored in the message queue in response to determining that the destination module identifier acquired by the acquiring unit is stored in the module identifier storage unit by the determining unit. Means for
In response to determining that the transmission destination module identifier acquired by the acquiring unit is not stored in the module identifier storage unit by the determining unit, the received message is sent out of the process. The message management apparatus according to claim 1, further comprising means for transmitting to a predetermined message transmission destination.
各々が1又は複数のモジュールを含む複数のプロセスからなるシステムにおいて、モジュール間のメッセージ通信を管理するためのメッセージ管理装置であって、
前記システム内の各モジュールは、いずれもモジュール識別子により一意に特定され、
各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含み、
前記メッセージ管理装置は、
予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するためのメッセージフロー管理手段と、
前記プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、前記メッセージフロー管理手段からメッセージの送信先モジュール識別子を取得し、取得された送信先モジュール識別子により特定されるモジュールを含むプロセスに前記受けたメッセージを配信するためのメッセージ振分手段とを含む、メッセージ管理装置。
A message management device for managing message communication between modules in a system comprising a plurality of processes each including one or a plurality of modules,
Each module in the system is uniquely identified by a module identifier,
A message communicated between each module includes a source module identifier, a destination module identifier, a type of message to be transmitted, and data to be transmitted,
The message management device includes:
A message flow management means for determining a message destination module based on a message source module identifier and a message type according to a predetermined data flow, and outputting the destination module identifier;
In response to the message received from the module in the process, the message destination module identifier of the message is acquired from the message flow management unit based on the source module identifier and the message type included in the message. A message distribution unit for distributing the received message to a process including a module specified by a transmission destination module identifier.
コンピュータにより実行されると、請求項1〜請求項3のいずれかに記載のメッセージ管理装置として当該コンピュータを動作させる、コンピュータプログラム。 A computer program that, when executed by a computer, causes the computer to operate as the message management device according to any one of claims 1 to 3. 複数のプロセスと、
各プロセス間でのデータの流れを実現するメッセージ通信を管理するためのプロセス間メッセージ管理手段とを含むデータ処理システムであって、
前記複数のプロセスの各々は、
各々が1又は複数の入力及び出力を持ち、入力されるデータに対し所定の処理を行なって出力する複数のモジュールと、
当該プロセス内において、前記複数のモジュール相互の間のメッセージ通信、及び前記複数のモジュールと当該プロセス外のモジュールとの間のメッセージ通信を管理するためのプロセス内メッセージ管理手段とを含み、
各モジュールはいずれもモジュール識別子により一意に特定され、
各モジュール間で通信されるメッセージは、送信元モジュール識別子と、送信先モジュール識別子と、送信されるメッセージの型と、送信されるべきデータとを含み、
前記プロセス内メッセージ管理手段は、
メッセージを一時格納するためのメッセージキューと、
前記メッセージキューに格納されたメッセージを、プロセス内の、当該メッセージの送信先モジュール識別子により特定されるモジュールに配信するためのメッセージ配信手段と、
予め定められたデータの流れに従って、メッセージの送信元モジュール識別子及びメッセージの型に基づいてメッセージの送信先モジュールを決定し、送信先モジュール識別子を出力するための第1のメッセージフロー管理手段と、
プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、前記第1のメッセージフロー管理手段からメッセージの送信先モジュール識別子を取得して当該メッセージの送信先モジュール識別子に設定し、取得された送信先モジュール識別子により特定されるモジュールが前記プロセス内のモジュールか否かに従って、当該メッセージを前記メッセージキューに格納する処理と、前記プロセス間メッセージ管理手段に送信する処理とを選択的に行なうためのメッセージ振分手段とを含む、システム。
Multiple processes,
A data processing system including an inter-process message management means for managing message communication for realizing a data flow between the processes,
Each of the plurality of processes is
A plurality of modules each having one or a plurality of inputs and outputs, performing predetermined processing on the input data, and outputting;
In-process message management means for managing message communication between the plurality of modules and message communication between the plurality of modules and modules outside the process in the process,
Each module is uniquely identified by a module identifier,
A message communicated between each module includes a source module identifier, a destination module identifier, a type of message to be transmitted, and data to be transmitted,
The in-process message management means includes:
A message queue to temporarily store messages,
Message delivery means for delivering a message stored in the message queue to a module specified by a destination module identifier of the message in the process;
First message flow management means for determining a message destination module based on a message source module identifier and a message type according to a predetermined data flow, and outputting the destination module identifier;
In response to the message received from the module in the process, based on the source module identifier and message type included in the message, obtain the message destination module identifier from the first message flow management means, and A process for storing the message in the message queue according to whether or not the module specified by the acquired transmission destination module identifier is a module in the process, and the interprocess message management. Message distribution means for selectively performing processing to be transmitted to the means.
前記メッセージ振分手段は、
前記プロセス内のモジュール識別子を記憶するためのモジュール識別子記憶手段と、
前記プロセス内のモジュールから受けたメッセージに応答して、当該メッセージに含まれる送信元モジュール識別子及びメッセージの型に基づいて、前記第1のメッセージフロー管理手段からメッセージの送信先モジュール識別子を取得するための手段と、
前記取得するための手段により取得された送信先モジュール識別子を、前記受けたメッセージの送信先モジュール識別子に設定するための手段と、
前記取得するための手段により取得された送信先モジュール識別子が、前記モジュール識別子記憶手段に記憶されているか否かを判定するための判定手段と、
前記判定手段により、前記取得するための手段により取得された送信先モジュール識別子が前記モジュール識別子記憶手段に記憶されていると判定されたことに応答して、前記受信したメッセージを前記メッセージキューに格納するための手段と、
前記判定手段により、前記取得するための手段により取得された送信先モジュール識別子が前記モジュール識別子記憶手段に記憶されていないと判定されたことに応答して、前記受信したメッセージを前記プロセス外の前記所定のメッセージ送信先に送信するための手段とを含む、請求項5に記載のシステム。
The message distribution means includes:
Module identifier storage means for storing a module identifier in the process;
In response to a message received from a module in the process, to acquire a message destination module identifier from the first message flow management means based on a source module identifier and a message type included in the message Means of
Means for setting the destination module identifier obtained by the means for obtaining as the destination module identifier of the received message;
Determination means for determining whether or not the transmission destination module identifier acquired by the acquisition means is stored in the module identifier storage means;
The received message is stored in the message queue in response to determining that the destination module identifier acquired by the acquiring unit is stored in the module identifier storage unit by the determining unit. Means for
In response to determining that the transmission destination module identifier acquired by the acquiring unit is not stored in the module identifier storage unit by the determining unit, the received message is sent out of the process. Means for transmitting to a predetermined message destination.
コンピュータにより実行されると、請求項5又は請求項6に記載のデータ処理システムとして当該コンピュータを動作させる、コンピュータプログラム。 A computer program that, when executed by a computer, causes the computer to operate as the data processing system according to claim 5 or 6.
JP2004104089A 2004-03-31 2004-03-31 Message management device, data processing system, and computer program for the same Pending JP2005292981A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004104089A JP2005292981A (en) 2004-03-31 2004-03-31 Message management device, data processing system, and computer program for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004104089A JP2005292981A (en) 2004-03-31 2004-03-31 Message management device, data processing system, and computer program for the same

Publications (1)

Publication Number Publication Date
JP2005292981A true JP2005292981A (en) 2005-10-20

Family

ID=35325876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004104089A Pending JP2005292981A (en) 2004-03-31 2004-03-31 Message management device, data processing system, and computer program for the same

Country Status (1)

Country Link
JP (1) JP2005292981A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093526A (en) * 2007-10-11 2009-04-30 Sysmex Corp Interprocess communication system, data structure, interprocess communication controller, interprocess communication control method and computer program
JP2010020650A (en) * 2008-07-14 2010-01-28 Sony Corp Information processing system and information processing method, control system and control method of robot, and computer program
JP2012155682A (en) * 2011-01-28 2012-08-16 Denso Corp Platform for integrated system, application, control program with platform and application, electronic apparatus, and update method of application
JP2014503867A (en) * 2010-11-05 2014-02-13 騰訊科技(深▲セン▼)有限公司 Method and apparatus for cross-process communication and computer storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093526A (en) * 2007-10-11 2009-04-30 Sysmex Corp Interprocess communication system, data structure, interprocess communication controller, interprocess communication control method and computer program
JP2010020650A (en) * 2008-07-14 2010-01-28 Sony Corp Information processing system and information processing method, control system and control method of robot, and computer program
JP4577422B2 (en) * 2008-07-14 2010-11-10 ソニー株式会社 Information processing system and information processing method, robot control system and control method, and computer program
JP2014503867A (en) * 2010-11-05 2014-02-13 騰訊科技(深▲セン▼)有限公司 Method and apparatus for cross-process communication and computer storage medium
JP2012155682A (en) * 2011-01-28 2012-08-16 Denso Corp Platform for integrated system, application, control program with platform and application, electronic apparatus, and update method of application

Similar Documents

Publication Publication Date Title
KR20210110676A (en) Instruct vehicle client devices to use on-device functions
US20120127512A1 (en) Branch office direct printing
US20060212143A1 (en) Apparatus and methods for instant messaging feature for communication between users in multiple-user information handling system
JP4982998B2 (en) Computer system
JP2005316634A (en) Session information storage system and method
JP6055201B2 (en) Server apparatus, system and control method thereof
KR100881275B1 (en) Apparatus and method for controlling a priority preference in an environment of sca multi-component and multi-port
US20160112540A1 (en) System and Method for Virtual Desktop Infrastructure User Level Virtual Channel
JP2005292981A (en) Message management device, data processing system, and computer program for the same
CN113111666A (en) System and method for realizing multi-language translation of application program
US20050071422A1 (en) Method, system, and computer program product for an automation tool adapter for use with multiple different automation tools
JP4691895B2 (en) Data processing system design apparatus and computer program therefor
JP6054008B1 (en) Data management apparatus, data management method, and data management program
JP7458716B2 (en) Speech dialogue device, control method thereof, and program
WO2015184846A1 (en) Router configuration method and router, router controlling apparatus and communication system
JP2009053954A (en) Information management program and information management system
JP2002024154A (en) Method and device for executing program
US8392546B2 (en) Distributed managed system, system components, and methods of communicating commands
JP2007140663A (en) Image processor
JP2007141058A (en) Information processor, device, method and program for registering setting information
CN116800748A (en) Message processing system, method, computing device and storage medium
JP2008204297A (en) Data input system, preceding input key processing method and preceding input key processing program
JP4985263B2 (en) Job linkage system, job linkage method, job linkage program
JP2878159B2 (en) Transaction processing system
JP5704756B2 (en) Command schedule compatible cloud unified operation system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20070328

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081215

A131 Notification of reasons for refusal

Effective date: 20090106

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090804