JP4691895B2 - Data processing system design apparatus and computer program therefor - Google Patents

Data processing system design apparatus and computer program therefor Download PDF

Info

Publication number
JP4691895B2
JP4691895B2 JP2004104090A JP2004104090A JP4691895B2 JP 4691895 B2 JP4691895 B2 JP 4691895B2 JP 2004104090 A JP2004104090 A JP 2004104090A JP 2004104090 A JP2004104090 A JP 2004104090A JP 4691895 B2 JP4691895 B2 JP 4691895B2
Authority
JP
Japan
Prior art keywords
module
flow definition
information
modules
data processing
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.)
Expired - Lifetime
Application number
JP2004104090A
Other languages
Japanese (ja)
Other versions
JP2005292982A (en
Inventor
豊 葦苅
哲 中村
玄 伊藤
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 JP2004104090A priority Critical patent/JP4691895B2/en
Publication of JP2005292982A publication Critical patent/JP2005292982A/en
Application granted granted Critical
Publication of JP4691895B2 publication Critical patent/JP4691895B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

この発明は、コンピュータ上で複数のモジュールを組合せることによりデータ処理システムを構築するモジュール型システムの設計及び実行方式に関し、特に、様々なモジュールを所定の目的にあわせて自由に組合せることにより、容易にモジュール型のデータ処理システムを構築し、かつ簡便に動作させて結果を得ることが可能なシステムの設計装置及びプログラムに関する。   The present invention relates to a modular system design and execution method for constructing a data processing system by combining a plurality of modules on a computer, and in particular, by freely combining various modules in accordance with a predetermined purpose, The present invention relates to a system design apparatus and program capable of easily constructing a modular data processing system and easily operating to obtain a result.

実時間の音声認識システム等の構築過程においては、音声認識のための処理の設定を様々に変えて、認識率等の性能を確認したいことがある。そのために例えばオプション値等を変えて同じプログラムを動作させるだけでなく、あるプログラムを全く別のプログラムに置換したり、処理の流れを自由に変更して実験したりできれば便利である。   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. For this purpose, for example, it is convenient not only to operate the same program by changing option values, but also to replace a certain program with a completely different program, or to experiment by freely changing the processing flow.

そのための一つの手段は、それぞれ特有の機能を持つ複数のモジュールを予め準備し、それらを目的にあわせて適切な形で組合せることが可能な、いわゆるモジュール型のシステムである。   One means for that purpose is a so-called modular system in which a plurality of modules each having a specific function are prepared in advance and can be combined in an appropriate manner according to the purpose.

しかし、従来のモジュール型システムは、主としてプログラム又は装置の設計段階で採用されている。すなわち、目的にあわせて既存のモジュールを選択し、それらを実際のシステムの条件にあわせて改造することにより、最終製品を製造するもので、エンドユーザが色々なモジュールを自由に組合せてシステムを組立て、テストデータを用いてそうしたシステムの動作を確認するような仕組みは提供されていない。   However, the conventional modular system is mainly employed in the design stage of a program or apparatus. In other words, the end product is manufactured by selecting existing modules according to the purpose and remodeling them according to the actual system conditions. The end user can freely combine various modules and assemble the system. No mechanism is provided to confirm the operation of such a system using test data.

こうした問題は、音声認識のように多量のデータを処理する必要があり、またデータ処理にも多くのバラエティが存在する場合に特に重要であるが、音声認識にかぎらず種々のデータ処理においても発生し得る。   These problems are particularly important when a large amount of data needs to be processed as in speech recognition, and there are many varieties of data processing, but they occur not only in speech recognition but also in various data processing. Can do.

それゆえに本発明の目的は、モジュールを自由に組合せ、かつ容易に動作を確認できる、モジュール型システムの設計に適したデータ処理システム設計装置を提供することである。   SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide a data processing system design apparatus suitable for designing a modular system, in which modules can be freely combined and operation can be easily confirmed.

本発明の第1の局面に係るデータ処理システム設計装置は、コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するための装置である。この装置は、各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、定義されたモジュール間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を生成するためのフロー定義生成手段と、フロー定義生成手段により生成されたフロー定義情報を記憶するためのフロー定義情報記憶手段とを含む。   A data processing system design apparatus according to a first aspect of the present invention is an apparatus for designing a data processing system by combining modules operable on a computer. This apparatus is based on module information storage means for storing module information including specifications of each module and option or parameter information, and specifications of each module and option or parameter information stored in the module information storage means. Assisting the user to define the connection relationship between multiple modules in the data processing system, and specifying the option or parameter value for each module in the data processing system, between the defined modules Flow definition generation means for generating flow definition information including connection relations and options or parameter values of each specified module, and flow definition information for storing flow definition information generated by the flow definition generation means Storage means.

好ましくはこの装置はさらに、フロー定義生成手段により生成されたフロー定義情報のうちの任意のものをユーザに選択させるためのフロー定義情報選択手段と、フロー定義情報選択手段により選択されたフロー定義情報、及びモジュール情報記憶手段に記憶されたモジュ−ル情報に従って、コンピュータシステム上で選択されたフロー定義情報に従うデータ処理システムを実現するために必要なモジュールのインスタンスを生成するためのインスタンス生成手段と、インスタンス生成手段により生成されたモジュールのインスタンス間で、選択されたフロー定義情報に従ってデータを配信し処理させるためのデータ配信手段とを含む。   Preferably, the apparatus further includes a flow definition information selecting unit for causing the user to select any of the flow definition information generated by the flow definition generating unit, and the flow definition information selected by the flow definition information selecting unit. And an instance generation means for generating an instance of a module necessary for realizing a data processing system according to the flow definition information selected on the computer system according to the module information stored in the module information storage means; Data distribution means for distributing and processing data according to the selected flow definition information between the instances of the module generated by the instance generation means.

さらに好ましくは、この装置は、インスタンス生成手段により生成された各モジュールのインスタンスに、選択されたフロー定義情報内の、それぞれのモジュールのインスタンスのためのオプション又はパラメータ値を配信するための手段をさらに含む。   More preferably, the apparatus further comprises means for distributing an option or parameter value for each module instance in the selected flow definition information to each module instance generated by the instance generation means. Including.

モジュールの仕様は、当該モジュールの処理タイプと、当該モジュールを実現するプログラムを特定する情報と、当該モジュールの入力のデータ型の集合及び出力のデータ型の集合を特定するデータ型情報とを含んでもよい。フロー定義生成手段は、データ処理システムにおいて必要とされる処理タイプのモジュールをユーザの選択に従って特定するためのモジュール特定手段と、モジュール特定手段により特定されたモジュールの任意の二つの間の接続をユーザの指示に従って定義するための接続特定手段と、接続特定手段により互いに接続される二つのモジュールの一方の入力のデータ型の集合と、他方の出力のデータ型の集合との積集合に属するデータ型のうちの一つをユーザに選択させ、当該接続により表されるモジュール間で移動されるデータの型を特定して接続特定手段により特定された接続の属性に追加するためのデータ型特定手段と、モジュール特定手段により特定されたモジュールに関する情報と、データ型特定手段により特定された接続とに基づいて、フロー定義を生成するための手段とを含んでもよい。   The specification of a module may include a processing type of the module, information for specifying a program that realizes the module, and data type information for specifying a set of input data types and a set of output data types of the module. Good. The flow definition generation means includes a module specifying means for specifying a processing type module required in the data processing system according to a user's selection, and a connection between any two of the modules specified by the module specifying means. Data type belonging to the intersection set of connection specifying means for defining in accordance with the instructions of the above, a set of data types of one input of two modules connected to each other by the connection specifying means, and a set of data types of the other output A data type specifying means for causing the user to select one of the data types, specifying the type of data to be moved between the modules represented by the connection, and adding the attribute to the connection attribute specified by the connection specifying means; Based on the information about the module specified by the module specifying means and the connection specified by the data type specifying means. There are may include means for generating a flow definition.

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

−構成−
以下、本発明の一実施の形態に係るシステムについて説明する。本システムは、利用可能なプログラムモジュールの中から必要なモジュールを選択し、モジュール間のデータの流れに応じてウェブブラウザの画面上でモジュール間を線(矢印)で結ぶことにより、モジュールの組合せによるシステムを設計し、かつ動作させることが可能な、音声認識を行なうためのシステムである。
−Configuration−
Hereinafter, a system according to an embodiment of the present invention will be described. This system selects the necessary modules from among the available program modules and connects the modules with lines (arrows) on the web browser screen according to the data flow between the modules. It is a system for performing speech recognition that can design and operate the system.

本システムでは、音声をリアルタイムで処理することを目的に、音声データを10msec程度の時間間隔で所定の長さの単位(これをフレームと言う)に分割して、フレーム単位で各モジュールの間でデータを受け渡しながら処理を実行する。フレーム単位のデータは、あるモジュールに入力され、そのモジュールで当該フレームに対する処理を行なった後に、次のモジュールに渡される。このフレーム単位のデータを本明細書では「イベントメッセージ(以後イベントと略す)」という。   In this system, for the purpose of processing the audio in real time, the audio data is divided into units of a predetermined length (referred to as frames) at a time interval of about 10 msec, and each module is divided between each module. Execute processing while passing data. 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 “event message (hereinafter abbreviated as event)” in this specification.

イベントには、データの種類に応じていくつかの型がある。例えば、生の音声データの場合は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 the type of data input to or output from the module. In this specification, an event type determined according to a data type is referred to as an “event type”.

そして、システムを組む場合には、目的に従ってモジュールを選択し、どのモジュールのどの出力をどのモジュールのどの入力に与えるかを、データの型を考慮しながら決定する必要がある。このように、モジュール間のデータの流れを記述したものを本明細書ではフロー定義と呼び、典型的にはコンピュータ読取可能な形式で記憶装置に格納される。本システムでは、モジュール定義をサーバに格納しておき、ウェブブラウザでこのモジュール定義を読込んで、ウェブブラウザ上でシステム設計を行なう。システム設計により得られるものは、モジュール間の接続及びそれに伴うオプション/パラメータ値と、データの流れとを定義したデータである。本明細書では、このデータをフロー定義と呼び、それをファイルにしたものをフロー定義ファイルと呼ぶ。   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 description of the data flow between modules is called a flow definition, and is typically stored in a storage device in a computer-readable format. In this system, the module definition is stored in the server, the module definition is read by the web browser, and the system design is performed on the web browser. What is obtained by the system design is data defining the connections between modules and the accompanying option / parameter values and the data flow. In this specification, this data is referred to as a flow definition, and the data obtained as a file is referred to as a flow definition file.

図1に、本発明の一実施の形態に係る音声認識データ処理システム50の機能的なブロック図を示す。図1を参照して、この音声認識データ処理システム50は、前述したようなモジュール定義ファイル82を予め記憶し、ウェブサーバを通じて、ユーザによるフロー定義の保守・及び実行等の制御を行なうためのフロー定義実行管理装置60と、フロー定義実行管理装置60に記憶されているモジュール定義ファイル82を用いて、ウェブブラウザ経由でフロー定義の作成を行ない、作成したフロー定義をフロー定義実行管理装置60に格納させる処理と、作成したフロー定義に従い、各モジュールを組合せて得られるシステムをフロー定義実行管理装置60に実行させる指示を与えるためのフロー定義作成・実行指示装置62とを含む。なお本実施の形態では、フロー定義実行管理装置60はサーバ装置上で動作し、フロー定義作成・実行指示装置62はクライアント装置上で動作するが、図面ではその詳細は省略する。   FIG. 1 shows a functional block diagram of a speech recognition data processing system 50 according to an embodiment of the present invention. Referring to FIG. 1, the speech recognition data processing system 50 stores a module definition file 82 as described above in advance, and a flow for controlling the maintenance and execution of a flow definition by a user through a web server. Using the definition execution management device 60 and the module definition file 82 stored in the flow definition execution management device 60, a flow definition is created via a web browser, and the created flow definition is stored in the flow definition execution management device 60. And a flow definition creation / execution instruction device 62 for giving an instruction to cause the flow definition execution management device 60 to execute a system obtained by combining the modules according to the created flow definition. In the present embodiment, the flow definition execution management device 60 operates on the server device, and the flow definition creation / execution instruction device 62 operates on the client device, but details thereof are omitted in the drawings.

音声認識データ処理システム50は、1又は複数個のコンピュータシステムから構成されており、それらシステムに備えられた記憶装置には、各モジュールをコンピュータプロセス上で実行させるための一群のプロセス用プログラム66が記憶されている。フロー定義実行管理装置60は、これらコンピュータハードウェアとプロセス用プログラム66とを用いて、フロー定義作成・実行指示装置62により設計された、モジュール100〜110からなるデータ処理システム64によるデータ処理を実行させる。フロー定義実行管理装置60によるデータ処理及びその制御の詳細については後述する。   The speech recognition data processing system 50 is composed of one or a plurality of computer systems, and a group of process programs 66 for causing each module to be executed on a computer process is stored in a storage device provided in these systems. It is remembered. The flow definition execution management device 60 uses these computer hardware and the process program 66 to execute data processing by the data processing system 64 composed of modules 100 to 110 designed by the flow definition creation / execution instruction device 62. Let Details of data processing and control by the flow definition execution management device 60 will be described later.

フロー定義実行管理装置60は、前述したとおり、フロー定義実行管理装置60で実行可能なモジュールの仕様をそれぞれ定義したモジュール定義ファイル82と、モジュール定義ファイル82を用いてフロー定義作成・実行指示装置62によって定義されたフロー定義を格納するフロー定義ファイル86と、処理のための入力データを格納する入力ファイル90及び出力結果を格納する出力ファイル88とを含む。入力ファイル90及び出力ファイル88はいずれも利用者により選択される。特に出力ファイル88は、フロー定義に従ったデータ処理を実行するときに確保される。   As described above, the flow definition execution management device 60 uses the module definition file 82 that defines the specifications of modules that can be executed by the flow definition execution management device 60, and the flow definition creation / execution instruction device 62 using the module definition file 82. A flow definition file 86 that stores the flow definition defined by the above, an input file 90 that stores input data for processing, and an output file 88 that stores output results. Both the input file 90 and the output file 88 are selected by the user. In particular, the output file 88 is secured when data processing according to the flow definition is executed.

フロー定義実行管理装置60はさらに、複数種類の入力ファイルに関する情報を格納する入力ファイル情報記憶部84と、フロー定義作成・実行指示装置62との間でモジュール定義ファイル82及びフロー定義等の情報をウェブ経由で交換するための管理プログラム80と、フロー定義作成・実行指示装置62によってシステム64の動作の実行が指示されると管理プログラム80によって起動され、データ処理システム64をコンピュータ資源を用いて実現し、入力ファイル90からの入力を与えてデータ処理させ、その結果を出力ファイル88に出力させる処理を制御するためのモジュールマネージャ92とを含む。   The flow definition execution management device 60 further stores information such as the module definition file 82 and the flow definition between the input file information storage unit 84 that stores information on a plurality of types of input files and the flow definition creation / execution instruction device 62. When the management program 80 for exchanging via the web and the execution of the operation of the system 64 are instructed by the flow definition creation / execution instruction device 62, the management program 80 is activated, and the data processing system 64 is realized using computer resources. And a module manager 92 for controlling a process of giving an input from the input file 90 and processing the data, and outputting the result to the output file 88.

図1においては、データ処理システム64は複数のモジュール100,102,104,106,108及び110を含んでいる。実際には、モジュール定義はクラス化されており、モジュール100,102,104,106,108及び110は、モジュールマネージャ92の制御によってデータ処理システム64を実現するプロセス内に生成される、各モジュールのオブジェクトクラスのインスタンスである。従って、同一のモジュール定義から、同一のプロセス又は別々のプロセス内に複数のモジュールのインスタンスが生成され動作することもある。   In FIG. 1, the data processing system 64 includes a plurality of modules 100, 102, 104, 106, 108 and 110. In practice, the module definitions are classed, and the modules 100, 102, 104, 106, 108 and 110 are created for each module generated in the process that implements the data processing system 64 under the control of the module manager 92. An instance of an object class. Therefore, instances of a plurality of modules may be generated and operated from the same module definition in the same process or in different processes.

図2は、モジュール定義ファイル82の内容を示す。図2を参照して、モジュール定義ファイル82は、内部的なモジュール名と、フロー定義作成・実行指示装置62の画面に表示するためのモジュール名(表示用)と、フロー定義作成・実行指示装置62の画面にモジュールに関する説明を表示するためのテキストからなるモジュール説明(表示用)と、作者名と、バージョン情報とを含む。   FIG. 2 shows the contents of the module definition file 82. Referring to FIG. 2, the module definition file 82 includes an internal module name, a module name (for display) to be displayed on the screen of the flow definition creation / execution instruction device 62, and a flow definition creation / execution instruction device. 62 includes a module description (for display) composed of text for displaying a description of the module on the screen, an author name, and version information.

モジュール定義ファイル82はさらに、このモジュールのタイプを内部的に区別するためのモジュールタイプと、フロー定義作成・実行指示装置62の画面にモジュールタイプを表示するために使用するモジュールタイプ(表示用)と、当該モジュールを使用可能なユーザ情報からなるセキュリティ制限情報とを含む。モジュールタイプは、モジュールの基本的な機能を示すものであり、本実施の形態のように音声認識の場合には、発話区間切出し(これを以下「EPD」と呼ぶ。)、特徴抽出、CMS(平均ケプストラムによる正規化処理)、特徴パラメータ編集、デコーダ、再評価、結果出力等がある。   The module definition file 82 further includes a module type for internally distinguishing the module type, and a module type (for display) used to display the module type on the screen of the flow definition creation / execution instruction device 62. And security restriction information including user information that can use the module. The module type indicates a basic function of the module. In the case of speech recognition as in the present embodiment, speech segment extraction (hereinafter referred to as “EPD”), feature extraction, CMS ( Normalization processing using an average cepstrum), feature parameter editing, decoder, reevaluation, result output, and the like.

モジュール定義ファイル82はさらに、このモジュールが処理できるイベントとして、受取イベントタイプと、出力イベントタイプと、入出力イベント関連情報と、モジュールの枝番とを含む。受取イベントタイプ及び出力イベントタイプは、それぞれ当該モジュールで可能なイベントタイプの集合である。   The module definition file 82 further includes a reception event type, an output event type, input / output event related information, and a module branch number as events that can be processed by this module. Each of the reception event type and the output event type is a set of event types possible in the module.

モジュール定義ファイル82はさらに、このモジュールのオプション情報を含む。同種のオプションは、同一のセクションにまとめられる。ただし、オプションによってはセクションに属さないものもある。従ってモジュール定義ファイル82は、0、1、又は複数のセクションを含みうる。セクションに属さないオプションは、セクション内ではなくセクション外に記述されているが、記載の仕方は、後述するセクション内のオプションのものと同様である。   The module definition file 82 further includes option information for this module. Similar options are grouped together in the same section. However, some options do not belong to a section. Accordingly, the module definition file 82 can include zero, one, or multiple sections. Options that do not belong to a section are described outside the section instead of within the section, but the way of description is the same as that of the option within the section described later.

各セクションは、内部的なセクション名と、ユーザに表示するためのセクション名とを含む。各セクションはさらに、1又は複数のオプションを含む。   Each section includes an internal section name and a section name for display to the user. Each section further includes one or more options.

各オプションは、内部的にオプションを区別するためのオプション名と、ユーザに対してオプションを表示する際の表示用オプション名と、フロー定義作成・実行指示装置62においてこのオプションに関するヘルプを表示する際のヘルプテキストとなるオプションヘルプ(表示用)とを含む。   For each option, an option name for internally distinguishing the option, a display option name for displaying the option to the user, and a help for this option in the flow definition creation / execution instruction device 62 are displayed. Option help (for display).

オプションはさらに、ユーザによる値の指定がなかった場合のオプション値のデフォルト値と、オプション値がとり得る内部的な値を列挙する、有効値フィールドと、オプション値がとり得る内部的な値に対応する、表示用の値を列挙する表示用有効値フィールドとを含む。実際には表示用のテキストは別ファイルにより記憶されており、モジュール定義ファイル82に記憶されているのは表示用テキストの識別番号である。   Options also correspond to default values of option values when no value is specified by the user, valid value fields that list internal values that the option value can take, and internal values that the option value can take. And a display valid value field for enumerating the display values. Actually, the display text is stored in a separate file, and what is stored in the module definition file 82 is the identification number of the display text.

モジュール定義ファイル82はさらに、オプション値が数値であるときの有効範囲を定める有効範囲フィールドを含む。有効範囲フィールドは、その最小値及び最大値と、それぞれ最小値及び最大値を有効範囲に含むか否かを示す二つのフラグとを含む。   The module definition file 82 further includes an effective range field that defines an effective range when the option value is a numerical value. The effective range field includes the minimum value and the maximum value, and two flags indicating whether or not the minimum value and the maximum value are included in the effective range, respectively.

モジュール定義ファイル82はこれらに加えて、オプション値の型(string、integer、double、boolean、file、modelのいずれか)と、オプションを指定できる回数を示す複数指定回数フィールドと、オプションが必須か否かを示す必須フィールドと、オプション値が所定の複数の候補から選択するタイプである場合、フロー定義作成・実行指示装置62で行なわれるフロー定義作成処理においてその選択のために使用するGUI(グラフィカル・ユーザ・インタフェース)部品のタイプを示す表示タイプフィールドとを含む。   In addition to these, the module definition file 82 includes an option value type (any one of string, integer, double, boolean, file, and model), a multiple-specified count field indicating the number of times an option can be specified, and whether the option is required. If the option field is a type that is selected from a plurality of predetermined candidates, a GUI (graphical interface) used for the selection in the flow definition creation process performed by the flow definition creation / execution instruction device 62 is used. User interface) display type field indicating the type of part.

図3には、モジュール定義ファイル82の具体的な一例を示す。図3に示すように、モジュール定義ファイル82は、XML(eXtended Markup Language)で記述されている。開始タグ<module>と終了タグ</module>とで囲まれた部分がモジュール定義である。開始タグ<module-info>と終了タグ</module-info>で囲まれた部分がこのモジュールに関するオプション以外の情報を示す。開始タグ<options>と終了タグ</options>に囲まれた部分がオプション全体に関する情報を示す。開始タグ<section>と終了タグ</section>とに囲まれた部分がセクションに関する情報を示し、開始タグ<option>と終了タグ</option>とに囲まれた部分が個々のオプションに関する情報を示す。   FIG. 3 shows a specific example of the module definition file 82. As shown in FIG. 3, the module definition file 82 is described in XML (eXtended Markup Language). The part enclosed by the start tag <module> and end tag </ module> is the module definition. The part enclosed by the start tag <module-info> and end tag </ module-info> indicates information other than the options related to this module. The part between the start tag <options> and end tag </ options> indicates information about the entire option. The part enclosed by the start tag <section> and end tag </ section> shows information about the section, and the part enclosed by the start tag <option> and end tag </ option> shows information about each option. Show.

フロー定義作成・実行指示装置62は、各モジュールに関するモジュール定義情報を用いて、利用者がフロー定義を作成する際の画面情報を生成したり、接続関係の制約を課したり、オプションの値の設定を行なったりする際の利用者の補助を行なう。   The flow definition creation / execution instruction device 62 uses the module definition information about each module to generate screen information when the user creates a flow definition, imposes connection restrictions, Assist users when making settings.

図4に、フロー定義ファイル86の構成の詳細を示す。フロー定義ファイル86は、ユーザが作成したフロー定義及びオプション値等を格納するためのXML形式のファイルであり、一つのフロー定義ファイル86が一つのデータ処理を定義する。このフロー定義ファイルは、図1に示すモジュールマネージャ92の起動時にフロー定義作成・実行指示装置62を介して、利用者により選択され指定される。モジュールマネージャ92はフロー定義ファイル86を読込み、フロー定義ファイル86内に記述されたプロセスを起動し、フロー定義ファイル86内に記述されたモジュールのインスタンスを生成し、各モジュールインスタンスに、フロー定義ファイル86に記述されたオプション値を配信して設定した後、データ処理システムを起動する。図5にはフロー定義ファイル86の具体的な一例を示す。以後、図4について説明するが図5についても適宜参照されたい。   FIG. 4 shows details of the configuration of the flow definition file 86. The flow definition file 86 is an XML format file for storing a flow definition and option values created by a user, and one flow definition file 86 defines one data process. This flow definition file is selected and designated by the user via the flow definition creation / execution instruction device 62 when the module manager 92 shown in FIG. The module manager 92 reads the flow definition file 86, starts a process described in the flow definition file 86, generates an instance of the module described in the flow definition file 86, and assigns the flow definition file 86 to each module instance. After delivering and setting the option values described in, start the data processing system. FIG. 5 shows a specific example of the flow definition file 86. Hereinafter, FIG. 4 will be described, but please refer to FIG. 5 as appropriate.

図4を参照して、フロー定義ファイル86は、コンピュータ上でのデータ処理を実行する一つの単位を形成するプロセスに関する情報を含む。プロセスに関する情報は、データ処理システムに含むプロセスの数だけ繰返される。プロセスに関する情報は、プロセス名と、当該プロセスを実行するホスト名と、当該プロセスのためのプログラム名と、当該プロセス内で実行すべきモジュールに関する情報とを含む。   Referring to FIG. 4, the flow definition file 86 includes information regarding a process that forms one unit for executing data processing on a computer. Information about processes is repeated for the number of processes included in the data processing system. The information about the process includes a process name, a host name that executes the process, a program name for the process, and information about a module to be executed in the process.

モジュールに関する情報は、一つのプロセスに含まれるモジュールの数だけ繰返される。各モジュールに関する情報は、モジュール名と、枝番付のモジュール名と、モジュール識別子と、枝番とを含む。一つのプロセス内において同じモジュールが複数個動作する場合があるため、それらを区別するために枝番が設けられる。   Information about modules is repeated for the number of modules included in one process. Information about each module includes a module name, a module name with a branch number, a module identifier, and a branch number. Since a plurality of the same modules may operate in one process, branch numbers are provided to distinguish them.

フロー定義ファイル86はさらに、ファイルに関する情報を含む。ファイルに関する情報は、データ処理システムの入力ファイルに関する情報と、出力ファイルに関する情報とを含む。各ファイルに関する情報は、入出力名、ファイル名、フォーマット、イベントタイプ、データタイプ、及びサイズを含む。これらは、ファイルが複数個ある場合にはその数だけ繰返される。   The flow definition file 86 further includes information regarding the file. The information regarding the file includes information regarding the input file of the data processing system and information regarding the output file. Information about each file includes an input / output name, a file name, a format, an event type, a data type, and a size. These are repeated as many as there are multiple files.

フロー定義ファイル86はさらに、システム内のモジュール間の接続関係を示す矢印に関する情報を含む。矢印に関する情報は、データ処理システム内に存在する矢印の数だけ繰返される。   The flow definition file 86 further includes information regarding arrows indicating connection relationships between modules in the system. Information about the arrows is repeated as many times as there are arrows in the data processing system.

矢印に関する情報は、矢印の出所に関する情報と、矢印の行き先に関する情報と、矢印が示すイベントに関する情報とを含む。出所に関する情報は、矢印の出所のモジュール名と、この矢印が当該モジュールの何番目の出力からのものかを示す番号とを含む。同様に、行き先に関する情報は、矢印の行き先のモジュール名と、当該矢印の行き先が、行き先モジュールの何番目の入力であるかを示す番号とを含む。イベントに関する情報は、当該イベントのデータの型を示すイベントタイプを含む。   The information regarding the arrow includes information regarding the origin of the arrow, information regarding the destination of the arrow, and information regarding the event indicated by the arrow. The information about the source includes the module name of the source of the arrow and a number indicating from which output of the module the arrow is. Similarly, the information regarding the destination includes a module name of the destination of the arrow and a number indicating which number of the destination module the destination of the arrow is. The information related to the event includes an event type indicating the data type of the event.

フロー定義ファイル86はさらに,各モジュールのオプションに関する情報を含む。モジュールオプションに関する情報は、モジュール数だけ繰返される。   The flow definition file 86 further includes information regarding the options of each module. Information about module options is repeated for the number of modules.

モジュールオプションに関する情報は、もしセクションにまとめられているオプションがあれば、セクションに関する情報を含み、各セクションに関する情報は、当該セクションに属するオプションの値に関する情報を含む。モジュールオプションに関する情報はまた、セクションにまとめられていないオプションの値に関する情報も含む。   The information about the module option includes information about the section if there is an option grouped in the section, and the information about each section includes information about the value of the option belonging to the section. Information about module options also includes information about option values that are not grouped into sections.

なお本実施の形態では、モジュールに関する情報のうち、枝番が付されたものに関しては、同じモジュールであって枝番がないもののオプション値との差分のみを記述することにより、データ量を削減している。   In the present embodiment, regarding the information about modules with branch numbers, the amount of data is reduced by describing only the difference from the option value of the same module but without branch numbers. ing.

図6に、フロー定義作成・実行指示装置62のブロック図を示す。図6を参照して、フロー定義作成・実行指示装置62は、フロー定義実行管理装置60から受けるモジュール定義ファイル82(図1を参照されたい。)の内容に基づいて、GUIによりフロー定義を作成するとともに、作成されたフロー定義を指定してフロー定義実行管理装置60に対してデータ処理の実行を指示するためのフロー定義作成・実行指示プログラム140と、モジュール定義ファイル82の内容から抽出される、モジュールタイプに関する情報を格納するためのモジュールタイプテーブル146と、フロー定義実行管理装置60から受取ったモジュール定義ファイル82の内容を格納するためのモジュールテーブル148と、フロー定義作成・実行指示装置62が接続されているコンピュータシステムに属するホストのリストを格納するためのホストテーブル150とを含む。これらテーブルの詳細については後述する。   FIG. 6 shows a block diagram of the flow definition creation / execution instruction device 62. Referring to FIG. 6, the flow definition creation / execution instruction device 62 creates a flow definition by GUI based on the contents of the module definition file 82 (see FIG. 1) received from the flow definition execution management device 60. In addition, the flow definition creation / execution instruction program 140 for specifying the created flow definition and instructing the flow definition execution management apparatus 60 to execute data processing, and the contents of the module definition file 82 are extracted. A module type table 146 for storing information on the module type, a module table 148 for storing the contents of the module definition file 82 received from the flow definition execution management device 60, and a flow definition creation / execution instruction device 62. A list of hosts belonging to the connected computer system And a host table 150 for storing. Details of these tables will be described later.

フロー定義作成・実行指示装置62はさらに、ユーザとの間のインタフェースを実現するためのモニタ142並びにキーボード及びポインティングデバイスを含む入力装置144と、モニタ142及び入力装置144を用いたGUIによりユーザにより画面上に作成されるフロー定義のグラフに関する情報を格納するための、ノードテーブル152及びアークテーブル154とを含む。各モジュールは、フロー定義のグラフ中のノードに相当し、矢印はアークに相当する。矢印に関しては、以後「アーク」と呼ぶ。これらテーブルの詳細についても後述する。   The flow definition creation / execution instruction device 62 further includes a monitor 142 for realizing an interface with the user, an input device 144 including a keyboard and a pointing device, and a screen displayed by the user through a GUI using the monitor 142 and the input device 144. It includes a node table 152 and an arc table 154 for storing information related to the flow definition graph created above. Each module corresponds to a node in the flow definition graph, and an arrow corresponds to an arc. The arrows are hereinafter referred to as “arcs”. Details of these tables will also be described later.

図7を参照して、フロー定義作成・実行指示プログラム140によるフロー定義の画面及びその手法について説明する。図7を参照して、フロー定義作成・実行指示プログラム140によってモニタ142上に表示されるフロー定義画面170は、フロー定義作成領域178と、フロー定義を新規に作成する際に操作する新規ボタン180、作成済みのフロー定義を保存する際に操作する保存ボタン182、作成済みのフロー定義を削除する際に操作する削除ボタン184、作成済みのフロー定義から所定の条件に合致するものを検索する際に操作する検索ボタン186、及び作成済みのフロー定義の実行を指示する際に操作する実行ボタン188とを含む。   With reference to FIG. 7, the flow definition screen and its method by the flow definition creation / execution instruction program 140 will be described. Referring to FIG. 7, a flow definition screen 170 displayed on the monitor 142 by the flow definition creation / execution instruction program 140 includes a flow definition creation area 178 and a new button 180 that is operated when creating a new flow definition. , A save button 182 that is operated when saving a created flow definition, a delete button 184 that is operated when deleting a created flow definition, and a search that matches a predetermined condition from the created flow definitions A search button 186 that is operated, and an execution button 188 that is operated when instructing execution of the created flow definition.

画面170はさらに、フロー定義中に使用可能なモジュールタイプをアイコンで表示するモジュールパレット172と、アークを作成する際に操作するアークボタン176とを含む。   The screen 170 further includes a module palette 172 that displays, as icons, module types that can be used during flow definition, and an arc button 176 that is operated when creating an arc.

画面170を用いたフロー定義の作成は、次のような手順で行なう。まず、マウスポインタ174で示すように、使用したいモジュールのアイコンをモジュールパレット172からフロー定義作成領域178上に、ドラッグ・アンド・ドロップして配置する。次に、各モジュールについて、利用可能なモジュールの中でどのモジュールを使用するかを決定し、オプションを設定する。さらに、モジュール間にアークを配置し、モジュール間の入出力関係を定義する。最後に、各アークのイベントタイプを設定する。   Creation of a flow definition using the screen 170 is performed in the following procedure. First, as indicated by the mouse pointer 174, the icon of the module to be used is arranged by dragging and dropping from the module palette 172 onto the flow definition creation area 178. Next, for each module, determine which of the available modules to use and set options. Furthermore, an arc is arranged between the modules, and the input / output relationship between the modules is defined. Finally, set the event type for each arc.

例えば画面上で配置されたモジュールの矩形を選択(マウスでクリック)することにより、そのモジュールタイプのモジュールとして利用可能なものの選択画面が表示される。モジュールが選択されると当該モジュールのオプションを設定する画面が表示される。オプションを設定すると、当該モジュールのモジュール定義ファイル82に記述されたオプション情報に従ったチェックが行なわれ、誤りがあればエラーメッセージが表示され再入力が促される。   For example, when a module rectangle arranged on the screen is selected (clicked with the mouse), a selection screen for modules usable as the module of that module type is displayed. When a module is selected, a screen for setting options of the module is displayed. When an option is set, a check is performed according to option information described in the module definition file 82 of the module, and if there is an error, an error message is displayed and re-input is prompted.

アークを選択(アークをマウスでダブルクリック)すると、当該アークのイベントタイプを選択する画面が表示される。ここで表示されるイベントタイプは、アークの出所のモジュールの出力イベントタイプとしてリストされているものからなる集合と、アークの行き先のモジュールの入力イベントタイプとしてリストされているものからなる集合との共通集合(積集合)の要素である。モジュールの組合せからアークのイベントタイプが一意に定まる場合、そのイベントタイプが自動的に設定される。   When an arc is selected (arc is double-clicked with a mouse), a screen for selecting the event type of the arc is displayed. The event types displayed here are common to the set consisting of those listed as the output event type of the module of origin of the arc and the set consisting of those listed as the input event type of the module to which the arc is destined. It is an element of a set (product set). When the event type of the arc is uniquely determined from the combination of modules, the event type is automatically set.

こうした操作には、モジュールタイプテーブル146、モジュールテーブル148、及びホストテーブル150の情報が使用され、作成されるフロー定義に関する情報はノードテーブル152及びアークテーブル154に保持される。   For such an operation, information of the module type table 146, the module table 148, and the host table 150 is used, and information regarding the created flow definition is held in the node table 152 and the arc table 154.

画面170を用いた操作は、例えば画面上にオブジェクトを配置することでアプリケーションプログラムの骨格を作成するアプリケーション作成ツールにおいて行なわれるものと本質的に変わらない。   The operation using the screen 170 is essentially the same as that performed by, for example, an application creation tool that creates an application program skeleton by placing objects on the screen.

図8にモジュールタイプテーブル146の構成を示す。図8を参照して、モジュールタイプテーブル146の各エントリは、モジュールタイプと、画面170上に当該モジュールタイプを表示する際の表示文字列とを含む。これら情報は、フロー定義実行管理装置60から与えられるモジュール定義ファイル82から抽出できる。   FIG. 8 shows the configuration of the module type table 146. Referring to FIG. 8, each entry in module type table 146 includes a module type and a display character string for displaying the module type on screen 170. These pieces of information can be extracted from the module definition file 82 given from the flow definition execution management device 60.

図9に、モジュールテーブル148の構成を示す。図9を参照して、モジュールテーブル148の各エントリは、モジュール識別番号(ID)と、当該モジュールのモジュールタイプと、そのモジュールを実行するプロセスのプログラムへのフルパスとを含む。このモジュールテーブル148の情報も、モジュール定義ファイル82から抽出できる。   FIG. 9 shows the configuration of the module table 148. Referring to FIG. 9, each entry of module table 148 includes a module identification number (ID), a module type of the module, and a full path to a program of a process executing the module. Information of this module table 148 can also be extracted from the module definition file 82.

図10に、ホストテーブル150の構成を示す。図10に示すように、ホストテーブル150は、システム内で利用可能なホスト名をリストしたものである。本実施の形態では、ホストテーブル150の内容はフロー定義実行管理装置60が管理し、フロー定義作成・実行指示装置62に通知する。   FIG. 10 shows the configuration of the host table 150. As shown in FIG. 10, the host table 150 lists host names that can be used in the system. In this embodiment, the contents of the host table 150 are managed by the flow definition execution management device 60 and notified to the flow definition creation / execution instruction device 62.

図11に、ノードテーブル152の構成を示す。図11を参照して、ノードテーブル152の各エントリは、ノードIDと、当該ノードを構成するモジュールタイプと、当該モジュールの、画面表示の矩形の左上座標及び右下座標と、このモジュールを実行するプログラムのフルパス名と、実行される実行モジュールIDと、このモジュールが実行されるホストを示す実行マシン名とを含む。   FIG. 11 shows the configuration of the node table 152. Referring to FIG. 11, each entry in the node table 152 executes a node ID, a module type constituting the node, an upper left coordinate and a lower right coordinate of a screen display rectangle of the module, and this module. It includes the full path name of the program, the execution module ID to be executed, and the execution machine name indicating the host on which this module is executed.

図12に、アークテーブル154の構成を示す。図12を参照して、アークテーブル154の各エントリは、開始ノードIDと、終了ノードIDと、当該アークのイベントタイプとを含む。   FIG. 12 shows the configuration of the arc table 154. Referring to FIG. 12, each entry of arc table 154 includes a start node ID, an end node ID, and an event type of the arc.

フロー定義の新規作成では、当初、図11のノードテーブル152及び図12のアークテーブル154は空であるが、図7に示すフロー定義作成領域178上にモジュール及びアークが配置され、モジュールのパラメータ、及びアークのイベントタイプが決定されていくと、これらテーブルの内容が少しずつ特定される。最終的にフローが完成すると、ノードテーブル152及びアークテーブル154の内容が確定し、それらに基づいてフロー定義ファイルの内容を作成できる。   In the creation of a new flow definition, initially, the node table 152 in FIG. 11 and the arc table 154 in FIG. 12 are empty, but modules and arcs are arranged on the flow definition creation area 178 shown in FIG. As the event types of arcs and arcs are determined, the contents of these tables are specified little by little. When the flow is finally completed, the contents of the node table 152 and the arc table 154 are determined, and the contents of the flow definition file can be created based on them.

フロー定義の修正では、図1に示すフロー定義実行管理装置60から任意のフロー定義を受取り、それらに基づいてノードテーブル152及びアークテーブル154の内容を作成する。以後の動作はフロー定義の新規作成と同様である。   In the modification of the flow definition, an arbitrary flow definition is received from the flow definition execution management device 60 shown in FIG. 1, and the contents of the node table 152 and the arc table 154 are created based on them. The subsequent operation is the same as that for creating a new flow definition.

フロー定義によって定められるモジュール間のグラフの例を図13に示す。これらは、図1に示すデータ処理システム64に相当する。図13に示すデータ処理システム200は、第1のプロセス222と第2のプロセス224とを含む。第1のプロセス222は、第1のモジュール230と、第2のモジュール232と、第3のモジュール234とを含む。第2のプロセス224は、第4のモジュール236と、第5のモジュール238と、第6のモジュール240とを含む。   An example of a graph between modules defined by the flow definition is shown in FIG. These correspond to the data processing system 64 shown in FIG. A data processing system 200 shown in FIG. 13 includes a first process 222 and a second process 224. The first process 222 includes a first module 230, a second module 232, and a third module 234. The second process 224 includes a fourth module 236, a fifth module 238, and a sixth module 240.

例えば第1のプロセス222をあるコンピュータ上で実行し、第2のプロセス224を別のコンピュータで実行することで、全体的な処理速度の向上を図ることができる。もちろん、第1のプロセス222と第2のプロセス224とを同一のコンピュータ上で動作させても問題はない。しかし、これらシステムをフロー定義に基づいてどのように構成し、効率よく動作させるかという問題がある。本実施の形態では、こうしたデータ処理システム200をフロー定義に基づいて構成し、効率よく動作させるため、以下に述べるようなモジュール実行の機構を用いている。   For example, the overall process speed can be improved by executing the first process 222 on one computer and executing the second process 224 on another computer. Of course, there is no problem even if the first process 222 and the second process 224 are operated on the same computer. However, there is a problem of how to configure these systems based on the flow definition to operate efficiently. In the present embodiment, in order to configure such a data processing system 200 based on the flow definition and operate efficiently, a module execution mechanism as described below is used.

図14に本実施の形態に係るフロー定義実行管理装置60により実現されるデータ処理システム250のブロック図を示す。このシステム250は、例えば図1に示すフロー定義ファイル86の一つに従って実現されるものであり、図13に示すシステム200と同様、第1のプロセス252及び第2のプロセス254を含む。フロー定義ファイル86は、本例では第1のプロセス252及び第2のプロセス254をそれぞれ構成するモジュール間のデータの流れを定義している。   FIG. 14 is a block diagram of a data processing system 250 realized by the flow definition execution management apparatus 60 according to this embodiment. This system 250 is implemented according to, for example, one of the flow definition files 86 shown in FIG. 1, and includes a first process 252 and a second process 254 as in the system 200 shown in FIG. In this example, the flow definition file 86 defines the flow of data between modules constituting the first process 252 and the second process 254, respectively.

本システム250はさらに、第1のプロセス252及び第2のプロセス254、並びに本システム250の外部とに接続され、第1のプロセス252及び第2のプロセス254内のモジュール間、及びこれらモジュールと本システム250の外部との間のイベントの流れをフロー定義ファイル86の記述に従って制御するためのモジュールマネージャ92とを含む。   The system 250 is further connected to the first process 252 and the second process 254 and to the outside of the system 250, between the modules in the first process 252 and the second process 254, and between these modules and the book. A module manager 92 for controlling the flow of events to and from the outside of the system 250 according to the description of the flow definition file 86.

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

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

モジュール260〜274は、いずれも入力と出力とを一個以上有する。各モジュールは、入力されたデータをそのモジュール特有の機能に従って内部で処理し、結果を出力する機能を持つ。例えば、音声の特徴抽出モジュールは、音声データを入力とし、その特徴パラメータを出力とする。   Each of the modules 260 to 274 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.

モジュールマネージャ92は、本システム250の外部から与えられる入力を受けるための入力モジュール282と、本システム250からの出力を外部に与えるための出力モジュール284と、入力モジュール282、出力モジュール284、メッセージマネージャ266及びメッセージマネージャ276に接続され、フロー定義ファイル86の記述に基づいて、各プロセス252及び254、並びに入力モジュール282及び出力モジュール284の間のイベントの流れを制御するためのメッセージマネージャ280と、図1に示すモジュールマネージャ92からデータ処理システム250の起動指示を受け、データ処理システム250の実行に必要な処理と起動処理、終了処理を実行するための起動・終了制御部286とを含む。メッセージマネージャ280は、イベントの流れを制御することにより、プロセス間のメッセージ通信を管理するものということができる。   The module manager 92 includes an input module 282 for receiving an input given from outside the system 250, an output module 284 for giving an output from the system 250 to the outside, an input module 282, an output module 284, a message manager. 266 and message manager 276, and a message manager 280 for controlling the flow of events between each process 252 and 254 and the input module 282 and output module 284 based on the description of the flow definition file 86, 1 includes a start / end control unit 286 for receiving a start instruction of the data processing system 250 from the module manager 92 shown in FIG. 1 and executing processing necessary for the execution of the data processing system 250, start processing, and end processing. The message manager 280 can be said to manage message communication between processes by controlling the flow of events.

図15に、モジュール間で通信されるイベント320の構成を示す。図15を参照して、イベント320は、送信元モジュールIDと、送信先モジュールIDと、イベントタイプと、データの内容とを含む。イベントタイプとは、イベントに含まれるデータの型のことであり、前述したWAVE型、FEATURE型等がその一例である。   FIG. 15 shows the configuration of the event 320 communicated between the modules. Referring to FIG. 15, an event 320 includes a transmission source module ID, a transmission destination module ID, an event type, and data contents. The event type is a type of data included in the event, and the above-mentioned WAVE type, FEATURE type, and the like are examples.

図16にメッセージマネージャ280の構成をブロック図形式で示す。図16を参照して、メッセージマネージャ280は、メッセージマネージャ280に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントタイプとをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有するフロー管理テーブル292と、どのプロセスにどのモジュールが含まれているかを検索できる構成を持つモジュール管理テーブル294と、起動・終了制御部286から与えられる起動指示に応答し、フロー定義ファイル86の記述に基づいてフロー管理テーブル292及びモジュール管理テーブル294を作成するためのテーブル作成処理部296とを含む。   FIG. 16 shows the configuration of the message manager 280 in the form of a block diagram. Referring to FIG. 16, message manager 280 determines the module of the transmission destination module using the event transmission source module ID and the event type as a key in order to determine the transmission destination module of the event input to message manager 280. Responding to a flow management table 292 having a configuration capable of searching, a module management table 294 having a configuration capable of searching which module is included in which process, and a start instruction given from the start / end control unit 286, A table creation processing unit 296 for creating a flow management table 292 and a module management table 294 based on the description of the flow definition file 86 is included.

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

図17にフロー管理テーブル292の構成の一例を、図18にモジュール管理テーブル294の構成の一例を、それぞれ示す。図17を参照して、フロー管理テーブル292は複数のエントリを含み、各エントリは、送信元モジュールIDと、イベントタイプと、送信先モジュールIDとを含む。これらは、図4に示すフロー定義ファイル86のアークの記述に相当する。受信したイベントに含まれる送信元モジュールID及びイベントタイプ(図15を参照されたい。)をキーにフロー管理テーブル292を検索することにより、当該イベントをどのモジュールに送信すべきかが、送信先モジュールIDの欄を見ることで判定できる。なお図17に示すフロー管理テーブル292は、図14に示す構成に必要な情報の一部のみを示す。   FIG. 17 shows an example of the configuration of the flow management table 292, and FIG. 18 shows an example of the configuration of the module management table 294. Referring to FIG. 17, the flow management table 292 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 86 shown in FIG. By searching the flow management table 292 using the transmission source module ID and event type (see FIG. 15) 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 column. Note that the flow management table 292 shown in FIG. 17 shows only a part of the information necessary for the configuration shown in FIG.

図18を参照して、モジュール管理テーブル294も複数のエントリを含む。各エントリはモジュールに対応するものであり、そのモジュールが属するプロセス名と、そのモジュールのモジュールIDとを含む。図18に示すモジュール管理テーブル294も、図14に示す本システム250の構成に必要な情報の一部のみを示す。   Referring to FIG. 18, module management table 294 also 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 294 shown in FIG. 18 also shows only a part of information necessary for the configuration of the system 250 shown in FIG.

次に図14の第1のプロセス252及び第2のプロセス254を構成する各部について説明する。各モジュールの構成については本発明とは直接関係ないので、それらについての詳細な説明は省略する。またメッセージマネージャ266とメッセージマネージャ276とは同じ構成を有しているので、以下、メッセージマネージャ266について説明する。   Next, each part constituting the first process 252 and the second process 254 in FIG. 14 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 266 and the message manager 276 have the same configuration, the message manager 266 will be described below.

図19を参照して、メッセージマネージャ266は、メッセージマネージャ266に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントタイプとをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有する、図16に示すものと同様形式のフロー管理テーブル302と、このメッセージマネージャ266が管理するプロセス(本実施の形態では第1のプロセス252)にどのモジュールが含まれているかを記述したモジュール管理テーブル300と、図16に示すフロー管理テーブル292を複写してフロー管理テーブル302を作成するためのフロー管理テーブル作成処理部306と、フロー定義ファイル86の記述に基づき、第1のプロセス252に含まれるモジュールIDを含むモジュール管理テーブル300を作成するためのモジュール管理テーブル作成処理部304とを含む。   Referring to FIG. 19, the message manager 266 determines the module ID of the transmission destination module using the event transmission source module ID and the event type as a key in order to determine the transmission destination module of the event input to the message manager 266. Which module is included in the flow management table 302 of the same format as that shown in FIG. 16 and the process managed by the message manager 266 (the first process 252 in the present embodiment) having a configuration capable of searching. The module management table 300 describing whether or not, the flow management table creation processing unit 306 for creating the flow management table 302 by copying the flow management table 292 shown in FIG. 1 process 252 And a module management table creation processing section 304 for creating a module management table 300 including Yuru ID.

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

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

図21に、モジュールマネージャ92によるデータ処理システム250の制御処理のフローチャートを示す。図21を参照して、モジュールマネージャ92の起動・終了制御部286は、フロー定義ファイル86の指定を伴う実行指示をフロー定義作成・実行指示装置62から受けると、ステップ340で、指定されたフロー定義ファイルを読み込む。そして、ステップ342〜346の処理をフロー定義ファイル内に記述された全てのプロセスについて繰返す。   FIG. 21 shows a flowchart of control processing of the data processing system 250 by the module manager 92. Referring to FIG. 21, when the start / end control unit 286 of the module manager 92 receives an execution instruction accompanying the specification of the flow definition file 86 from the flow definition creation / execution instructing device 62, in step 340, the specified flow Read the definition file. Then, the processes in steps 342 to 346 are repeated for all processes described in the flow definition file.

すなわち、ステップ342では、フロー定義ファイル内に記述されたプロセスを、同じくフロー定義ファイル内の当該プロセスについて記述されたホストに起動する。そして、このプロセスの定義内に記述された全てのモジュールについてステップ344及び346の処理を繰返す。   That is, in step 342, the process described in the flow definition file is activated on the host described for the process in the flow definition file. Then, the processes in steps 344 and 346 are repeated for all modules described in the process definition.

ステップ344では、プロセスの定義内に記述されたモジュールのインスタンスを生成する。そしてステップ346で、生成されたモジュールインスタンスに、同じモジュールについてプロセスの定義内に記述されたオプション/パラメータ値を配信する。   In step 344, an instance of the module described in the process definition is generated. In step 346, the option / parameter value described in the process definition for the same module is distributed to the generated module instance.

以上の処理を、全プロセス及び全モジュールに対し繰返すことで、データ処理システム250を構成する各モジュールを含むプロセスが、指定されたホスト上に立ち上がる。   By repeating the above processing for all processes and all modules, a process including each module constituting the data processing system 250 is started on the designated host.

ステップ348で、図16に示すテーブル作成処理部296及び図19に示すフロー管理テーブル作成処理部306に指示を与えて、ステップ340で読込んだフロー管理ファイルの内容に従い、フロー管理テーブル292及び302を作成する。さらにステップ350で、図16に示すテーブル作成処理部296及び図19に示すモジュール管理テーブル作成処理部304に指示を与え、フロー定義ファイルの内容に従ってモジュール管理テーブル294及び300を作成する。ステップ352で、先頭モジュール(入力モジュールがある場合には入力モジュール)に開始指示を与え、最初のイベントを発生させこのデータ処理システムの入力に与える。以後は、メッセージマネージャ280及び各プロセス内のメッセージマネージャ266,276によるイベント配信によってシステムが動作し、システム内の各モジュールで処理されたデータが出力ファイルに出力される。   In step 348, instructions are given to the table creation processing unit 296 shown in FIG. 16 and the flow management table creation processing unit 306 shown in FIG. 19, and the flow management tables 292 and 302 are read in accordance with the contents of the flow management file read in step 340. Create In step 350, an instruction is given to the table creation processing unit 296 shown in FIG. 16 and the module management table creation processing unit 304 shown in FIG. 19, and the module management tables 294 and 300 are created according to the contents of the flow definition file. In step 352, a start instruction is given to the first module (input module if there is an input module), and the first event is generated and given to the input of this data processing system. Thereafter, the system operates by event distribution by the message manager 280 and the message managers 266 and 276 in each process, and data processed by each module in the system is output to an output file.

ステップ354では、データ処理システム250内に未処理のイベントがあるか否かを判定し、イベントがなくなるまで待ち、未処理のイベントがなくなったタイミングで、ステップ342で起動した全てのプログラムをステップ356で終了させ、自分も終了する。   In step 354, it is determined whether or not there is an unprocessed event in the data processing system 250. The process waits until there are no more events. At the timing when there are no unprocessed events, all programs started in step 342 are processed in step 356. End with, and end yourself.

以上がモジュールマネージャ92の起動・終了制御部286によるデータ処理システム250の起動・終了制御の処理の概略である。   The outline of the start / end control processing of the data processing system 250 by the start / end control unit 286 of the module manager 92 has been described above.

メッセージマネージャ280のメッセージ振分処理部290及びメッセージマネージャ266のメッセージ振分処理部308も、後述するようにコンピュータハードウェア上で実行されるプログラムにより実現される。本実施の形態の場合、メッセージ振分処理部290及び308が受信したイベントの送信元がプロセス内のものか、プロセス外のものか、によって異なる処理を行なう。それぞれを実現するコンピュータプログラムの制御構造について、特にメッセージ振分処理部308について図22及び図23を参照して説明する。   The message distribution processing unit 290 of the message manager 280 and the message distribution processing unit 308 of the message manager 266 are also realized by programs 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 units 290 and 308 is within the process or outside the process. The control structure of the computer program that implements each will be described with reference to FIGS. 22 and 23, particularly the message distribution processing unit 308. FIG.

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

続いて、ステップ430の処理の結果見つかった全てのアークについて、以下の処理を行なう。すなわち、ステップ432で、当該アークの送信先モジュールIDが当該プロセス内のモジュールのものか否かを判定する。送信先モジュールIDが当該プロセス内のモジュールのものであればステップ434に進み、さもなければステップ440に進む。   Subsequently, the following processing is performed for all arcs found as a result of the processing in step 430. That is, in step 432, 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 434. Otherwise, the process proceeds to step 440.

ステップ434では、イベントの送信先に、検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールが同じプロセス内なので、ステップ436でこのイベントをイベントキュー310に出力する。   In step 434, 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 310 in step 436.

一方ステップ440では、イベントの送信先に、同じく検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールがプロセス外に存在しているので、ステップ442でこのイベントをモジュールマネージャ92に出力する。   On the other hand, in step 440, 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 92 in step 442.

ステップ434、436、440及び442の処理を、ステップ430で見出された全てのアークに対して行なうことにより、一つのイベントに対し、見つかった数だけのイベントが生成され、送信先モジュールの所在に応じて、それぞれイベントキュー310又はモジュールマネージャ92に送信されることになる。   By performing the processing in steps 434, 436, 440 and 442 for all arcs found in step 430, 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 310 or the module manager 92, respectively.

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

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

−動作−
図1〜図23に示すシステムは、以下のように動作する。動作は、フロー定義の作成と、作成したフロー定義に基づいてデータ処理システム250を動作させる処理との、大きく分けて二つの局面に分かれる。最初に、フロー定義について説明する。
-Operation-
The system shown in FIGS. 1 to 23 operates as follows. The operation is roughly divided into two aspects, that is, creation of a flow definition and processing for operating the data processing system 250 based on the created flow definition. First, the flow definition will be described.

利用者が図6に示すフロー定義作成・実行指示プログラム140を起動すると、利用可能なモジュール定義ファイルの内容及び使用可能なホストのリストがフロー定義実行管理装置60からフロー定義作成・実行指示装置62に送信される。フロー定義作成・実行指示装置62は、受信した情報に従ってモジュールタイプテーブル146、モジュールテーブル148及びホストテーブル150を作成する。画面には図7に示すような画面が表示される。以下では、フロー定義を新規に作成する場合を例にしてフロー定義作成・実行指示装置62の動作を説明する。   When the user starts the flow definition creation / execution instruction program 140 shown in FIG. 6, the contents of the usable module definition file and the list of usable hosts are transferred from the flow definition execution management device 60 to the flow definition creation / execution instruction device 62. Sent to. The flow definition creation / execution instruction device 62 creates a module type table 146, a module table 148, and a host table 150 according to the received information. A screen as shown in FIG. 7 is displayed on the screen. In the following, the operation of the flow definition creation / execution instruction device 62 will be described by taking as an example the case of newly creating a flow definition.

図7を参照して、利用者が画面170上で新規ボタン180を押すことで、フロー定義作成領域178が空白となる。モジュールパレット172には使用可能なモジュールタイプがアイコンとモジュールタイプ名により表示される。利用者がモジュールパレット172上のいずれかのアイコンを選び、ドラッグ・アンド・ドロップでフロー定義作成領域178上に配置することにより、図6に示すノードテーブル152中に、そのモジュールに対応するエントリが作成される。利用者が新たなモジュールを配置するたびに、ノードテーブル152に新たなエントリが作成される。なお、図11を参照して、この時点では各エントリのうち、ノードID、モジュールタイプ、及び座標のみが設定され、他の項目は空白である。   Referring to FIG. 7, when the user presses new button 180 on screen 170, flow definition creation area 178 becomes blank. The module palette 172 displays usable module types by icons and module type names. When the user selects any icon on the module palette 172 and arranges it on the flow definition creation area 178 by drag and drop, an entry corresponding to the module is displayed in the node table 152 shown in FIG. Created. Each time a user places a new module, a new entry is created in the node table 152. Referring to FIG. 11, at this time, only the node ID, module type, and coordinates are set in each entry, and the other items are blank.

利用者はさらに、各モジュールの間を矢印(アーク)で接続していく。アークが一つ配置されるたびに、アークテーブル154内に対応のエントリが作成される。ただしこの時点では、図12に示す情報のうち、開始ノードIDと終了ノードIDのみが格納され、イベントタイプは未定義である。   The user further connects each module with an arrow (arc). Each time an arc is placed, a corresponding entry is created in the arc table 154. However, at this time point, only the start node ID and the end node ID among the information shown in FIG. 12 are stored, and the event type is undefined.

モジュールの一つの矩形をクリックすると、モジュール設定フレームが表示される。モジュール設定フレームでは、当該モジュールタイプのうちで使用可能なモジュールの一覧が表示される。この一覧は、図9に示すモジュールテーブル148から作成できる。表示されるモジュールのうちの一つを選択することで、どのモジュールを使用するかが確定する。さらに、このモジュールをどのホスト上で実行させるかについても指定する。   Clicking on one of the module rectangles will display the module settings frame. In the module setting frame, a list of usable modules among the module types is displayed. This list can be created from the module table 148 shown in FIG. By selecting one of the displayed modules, it is determined which module will be used. It also specifies on which host this module should be run.

さらに、使用するモジュールが確定すると、当該モジュールで指定できるオプション/パラメータの入力フレームが画面左下に表示される。各オプション/パラメータを設定すると、モジュール定義情報に従ったチェックが行なわれ、エラーがあればエラー表示が行なわれ、再入力が促される。   Further, when a module to be used is determined, an option / parameter input frame that can be specified by the module is displayed at the lower left of the screen. When each option / parameter is set, a check according to the module definition information is performed. If there is an error, an error is displayed and a re-input is prompted.

ユーザがアークの一つをダブルクリックすると、イベントタイプ指定のためのリストボックスが表示される。リストボックスには、出所側のモジュールの出力イベントの型の集合と、行き先側のモジュールの入力イベントの型の集合との共通集合(積集合)の要素がリストされる。いずれかを選択することにより、当該アークのイベントタイプが定まり、図12に示すアークテーブル154のイベントの領域に選択されたイベントタイプを示す情報が格納される。なお、使用可能なイベントが一種類しかない場合には、アークのイベントタイプは自動的に設定される。   When the user double-clicks one of the arcs, a list box for specifying the event type is displayed. The list box lists elements of a common set (product set) of the set of output event types of the source module and the set of input event types of the destination module. By selecting one of them, the event type of the arc is determined, and information indicating the selected event type is stored in the event area of the arc table 154 shown in FIG. If there is only one type of event that can be used, the arc event type is automatically set.

こうして、全てのモジュールについて使用モジュール、ホスト、及びオプション/パラメータが決定され、各アークのイベントタイプが決定すると、それらに基づいてフロー定義を作成できる。フロー定義はフロー定義作成・実行指示装置62からフロー定義実行管理装置60に転送され、フロー定義ファイル86のうちの一つとしてフロー定義実行管理装置60に格納される。   Thus, the usage module, host, and options / parameters for all modules are determined, and once the event type for each arc is determined, a flow definition can be created based on them. The flow definition is transferred from the flow definition creation / execution instruction device 62 to the flow definition execution management device 60 and stored in the flow definition execution management device 60 as one of the flow definition files 86.

フロー定義の修正の場合も、最初にフロー定義ファイル86のうちの一つを選択して当該ファイルの内容をフロー定義作成・実行指示装置62に転送することを除いて、作成の場合と同様である。   The modification of the flow definition is the same as in the case of creation except that one of the flow definition files 86 is first selected and the contents of the file are transferred to the flow definition creation / execution instruction device 62. is there.

作成したフロー定義に従ってデータ処理システム64を動作させたい場合には、次のような操作を行なう。図7を参照して、「実行」ボタン188を押すと、フロー定義ファイルの選択ダイアログが表示される。そのうちの一つを選択することで、フロー定義作成・実行指示装置62からフロー定義実行管理装置60に対して当該フローファイルに基づくデータ処理の開始が指示される。   In order to operate the data processing system 64 in accordance with the created flow definition, the following operation is performed. Referring to FIG. 7, when an “execute” button 188 is pressed, a flow definition file selection dialog is displayed. By selecting one of them, the flow definition creation / execution instruction device 62 instructs the flow definition execution management device 60 to start data processing based on the flow file.

図1に示す管理プログラム80は、その指示に従いモジュールマネージャ92に対して選択されたフロー定義ファイルを特定する情報を与えるとともに、データ処理の開始を指示する。   The management program 80 shown in FIG. 1 gives information for specifying the selected flow definition file to the module manager 92 according to the instruction and instructs the start of data processing.

図14を参照して起動・終了制御部286は、この指示に応答して、指定されたフロー定義ファイルを読込み(図21のステップ340)、データ処理システム250の各プロセスを、指定されたホスト上に起動する(ステップ342)。さらに、フロー定義ファイルに記述された各モジュールについて、指定されたプロセス内にインスタンスを生成し(ステップ344)、フロー定義ファイル内に記述されたオプション/パラメータを配信する(ステップ346)。その後、図16に示すテーブル作成処理部296、及び図19に示すフロー管理テーブル作成処理部306、モジュール管理テーブル作成処理部304に指示を与えて各フロー管理テーブル292及び302、並びにモジュール管理テーブル294及び300を作成させる(図21のステップ348,350)。以上でデータ処理システム250のセットアップが完了する。   Referring to FIG. 14, in response to this instruction, activation / termination control unit 286 reads the designated flow definition file (step 340 in FIG. 21), and designates each process of data processing system 250 as the designated host. It starts up (step 342). Further, for each module described in the flow definition file, an instance is generated in the designated process (step 344), and the options / parameters described in the flow definition file are distributed (step 346). Thereafter, an instruction is given to the table creation processing unit 296 shown in FIG. 16 and the flow management table creation processing unit 306 and the module management table creation processing unit 304 shown in FIG. 19, and the flow management tables 292 and 302 and the module management table 294 are given. And 300 are created (steps 348 and 350 in FIG. 21). Thus, the setup of the data processing system 250 is completed.

次に起動・終了制御部286は、図14に示す入力モジュールに対し、入力ファイルからデータを読出しイベントとしてメッセージマネージャ280に与えるよう、始動の指示を与える(図21のステップ352)。入力モジュール282は入力ファイルからフレームデータを作成し、イベントとしてメッセージマネージャ280に与える。   Next, the start / end control unit 286 gives a start instruction to the input module shown in FIG. 14 so that data is read from the input file and given to the message manager 280 as an event (step 352 in FIG. 21). The input module 282 creates frame data from the input file and provides it to the message manager 280 as an event.

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

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

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

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

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

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

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

上に説明したシステム250では、各モジュールは自己の処理した結果のイベントをどのモジュールに送信するかについては全く意識する必要がない。どのプロセスにおいても、モジュールではなくメッセージマネージャが送信先モジュールを決定し、さらに送信先モジュールが同一プロセス内であればイベントキューを用いて当該イベントを配信し、プロセス外であれば、モジュールマネージャに当該イベントを配信する。イベントの配信を受けたモジュールマネージャが、送信先モジュールIDに基づいて送信先のプロセスを決定し、送信する。   In the system 250 described above, each module does not need to be aware of which module the event resulting from its processing is sent 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.

以上のように本実施の形態のシステムによれば、モジュール定義に従ってフロー定義を作成し、そのフロー定義を用いて複数のモジュールからなるシステムを効率よく設計し、かつ簡略な操作で実際に動作させることができる。モジュール間の接続関係を変えたり、使用するモジュールを、同じモジュールタイプで別のモジュールによって置換してシステムの性能を比較したりする作業が簡単に行なえる。   As described above, according to the system of the present embodiment, a flow definition is created according to a module definition, a system composed of a plurality of modules is efficiently designed using the flow definition, and actually operated with a simple operation. be able to. It is easy to change the connection relationship between modules, or to replace the module to be used with another module of the same module type and compare the system performance.

また、上記したように設計され、かつ動作する各モジュール間の通信を、各プロセス内とモジュールマネージャ内に設けたメッセージマネージャによって管理でき、各モジュールはイベントの入力となるモジュール及びイベントの行き先のモジュール等を意識する必要はない。従って各モジュールの独立性を高め、自由にシステムを組むことが可能になる。また、データはプロセス間を転送されながら各モジュールで処理され、かつ各プロセスではイベントキューによって処理時間の調整を行ないながら正しい順序でデータ処理を行なうことができる。その結果、リアルタイムで、音声認識等の多量のデータ処理を行なうことができる。またモジュールの組合せが自由にできるので、異なる構成のシステムの性能実験等を簡単に、かつ短い時間に行なうことが可能になる。   In addition, communication between each module designed and operated as described above can be managed by a message manager provided in each process and in the module manager. Each module is a module for inputting an event and a module for a destination of the event. There is no need to be conscious of such. Therefore, the independence of each module can be increased and the system can be freely assembled. Further, 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 of systems having different configurations in a short time.

−コンピュータによる実現−
この実施の形態のシステムは、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図24はこのコンピュータシステム530の外観を示し、図25はコンピュータシステム530の内部構成を示す。なお、前述したとおりこのシステムは、これら複数のコンピュータをネットワーク等で結合したものによって実現することもできる。
-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. 24 shows the external appearance of the computer system 530, and FIG. 25 shows the internal configuration of the computer system 530. As described above, this system can also be realized by a combination of a plurality of computers via a network or the like.

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

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

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

コンピュータシステム530に、この実施の形態に係るフロー定義作成・実行指示装置62、フロー定義実行管理装置60、又はシステム250(又はその一部の第1のプロセス252、第2のプロセス254、モジュールマネージャ92等)としての動作を行なわせるためのコンピュータプログラムは、CD−ROMドライブ550又はFDドライブ552に挿入されるCD−ROM562又はFD564に記憶され、さらにハードディスク554に転送される。又は、プログラムはネットワークを通じてコンピュータ540に送信されハードディスク554に記憶されてもよい。プログラムは実行の際にRAM560にロードされる。CD−ROM562から、FD564から、又はネットワークを介して、直接にRAM560にプログラムをロードしてもよい。   The computer system 530 includes a flow definition creation / execution instruction device 62, a flow definition execution management device 60, or a system 250 (or a part of the first process 252, the second process 254, and a module manager) according to this embodiment. 92, etc.) is stored in the CD-ROM 562 or FD 564 inserted into the CD-ROM drive 550 or the FD drive 552 and further transferred to the hard disk 554. Alternatively, the program may be transmitted to the computer 540 through a network and stored in the hard disk 554. The program is loaded into the RAM 560 when executed. The program may be loaded directly into the RAM 560 from the CD-ROM 562, the FD 564, or via a network.

このプログラムは、コンピュータ540(又はコンピュータ540と通信可能な他のコンピュータ)にこの実施の形態に係るフロー定義作成・実行指示装置62、フロー定義実行管理装置60、並びにシステム250に含まれる各プロセス252、254、モジュールマネージャ92、各プロセス中で実行されるモジュール等としての動作を行なわせる複数の命令を含む。このために必要な基本的機能のいくつかはコンピュータ540上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、もしくはコンピュータ540にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステムを実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した装置及びシステムを実現する命令のみを含んでいればよい。コンピュータシステム530の動作は周知であるので、ここでは繰返さない。   This program is stored in the computer 540 (or another computer that can communicate with the computer 540), the flow definition creation / execution instruction device 62, the flow definition execution management device 60, and each process 252 included in the system 250 according to this embodiment. 254, a module manager 92, and a plurality of instructions for performing operations as modules executed in each process. Some of the basic functions required for this are provided by operating system (OS) or third party programs running on the computer 540 or various toolkit modules installed on the computer 540. Therefore, this program does not necessarily include all functions necessary for realizing the system of this embodiment. This program need only include instructions that implement the above-described devices and systems by calling appropriate functions or “tools” in a controlled manner to obtain the desired result. The operation of computer system 530 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.

また、上記した実施の形態では、フロー定義作成・実行指示装置62はブラウザプログラム上で動作するプログラムにより実現されるものであることを前提としている。しかし本発明はそのような実施の形態には限定されず、フロー定義作成・実行指示装置62をブラウザと異なる独自のアプリケーションプログラムで実装してもよい。また、フロー定義作成・実行指示装置62としての機能の実質的な部分を全てフロー定義実行管理装置60に持たせ、フロー定義作成・実行指示装置62ではブラウザプログラム上の表示及びフロー定義のための操作のみを行なうようにしてもよい。   In the above-described embodiment, it is assumed that the flow definition creation / execution instruction device 62 is realized by a program operating on a browser program. However, the present invention is not limited to such an embodiment, and the flow definition creation / execution instruction device 62 may be implemented by a unique application program different from the browser. Also, the flow definition execution management device 60 has all the substantial parts of the function as the flow definition creation / execution instruction device 62. The flow definition creation / execution instruction device 62 is used for display on the browser program and for flow definition. Only the operation may be performed.

さらに、フロー定義ファイル86、モジュール定義ファイル82、入力ファイル90等がフロー定義実行管理装置60と同一のコンピュータ上に存在しているものに限定する必要はなく、ネットワークを介してアクセス可能な他のシステム内に存在しているものを利用可能なシステムとして設計してもよい。   Furthermore, the flow definition file 86, the module definition file 82, the input file 90, etc. need not be limited to those existing on the same computer as the flow definition execution management device 60, and other types that can be accessed via the network. What exists in the system may be designed as an available system.

今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。   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.

本発明の一実施の形態に係る音声認識データ処理システム50のブロック図である。1 is a block diagram of a speech recognition data processing system 50 according to an embodiment of the present invention. モジュール定義ファイルの構成を示す図である。It is a figure which shows the structure of a module definition file. モジュール定義ファイルの例を示す図である。It is a figure which shows the example of a module definition file. フロー定義ファイルの構成を示す図であるIt is a figure which shows the structure of a flow definition file フロー定義ファイルの例を示す図である。It is a figure which shows the example of a flow definition file. フロー定義作成・実行指示装置62のブロック図である。4 is a block diagram of a flow definition creation / execution instruction device 62. FIG. フロー定義作成・実行指示装置62の表示画面の模式図である。6 is a schematic diagram of a display screen of a flow definition creation / execution instruction device 62. FIG. モジュールタイプテーブル146の構成を示す模式図である。5 is a schematic diagram showing a configuration of a module type table 146. FIG. モジュールテーブル148の構成を示す模式図である。4 is a schematic diagram illustrating a configuration of a module table 148. FIG. ホストテーブル150の構成を示す模式図である。3 is a schematic diagram illustrating a configuration of a host table 150. FIG. ノードテーブル152の構成を示す模式図である。3 is a schematic diagram showing a configuration of a node table 152. FIG. アークテーブル154の構成を示す模式図である。3 is a schematic diagram showing a configuration of an arc table 154. FIG. 各々複数のモジュールを含む複数のプロセスからなるシステムの構成例を示す図である。It is a figure which shows the structural example of the system which consists of a some process each containing several modules. 本発明の一実施の形態に係るシステム250のブロック図である。FIG. 3 is a block diagram of a system 250 according to an embodiment of the present invention. イベント320の構成を示す図である。6 is a diagram showing a configuration of an event 320. FIG. 図14に示すモジュールマネージャ92のメッセージマネージャ280のブロック図である。It is a block diagram of the message manager 280 of the module manager 92 shown in FIG. フロー管理テーブル292の構成を示す図である。It is a figure which shows the structure of the flow management table 292. モジュール管理テーブル294の構成を示す図である。It is a figure which shows the structure of the module management table 294. 図14に示す第1のプロセス252のメッセージマネージャ266のブロック図である。FIG. 15 is a block diagram of the message manager 266 of the first process 252 shown in FIG. モジュール管理テーブル300の構成を示す図である。3 is a diagram illustrating a configuration of a module management table 300. FIG. 起動・終了制御部286が実行する処理の制御構造を示すフローチャートである。It is a flowchart which shows the control structure of the process which the starting / ending control part 286 performs. プロセス内イベントを受信したときの、各メッセージ振分処理部で実行される処理を示すフローチャートである。It is a flowchart which shows the process performed by each message distribution process part when the event in a process is received. モジュールマネージャ92のメッセージ振分処理部290がプロセス外イベントを受信したときに実行する処理を示すフローチャートである。It is a flowchart which shows the process performed when the message distribution process part 290 of the module manager 92 receives an out-of-process event. 本発明の一実施の形態に係るシステム250又はその一部のプロセスを実現するためのコンピュータシステムの外観図である。It is an external view of the computer system for implement | achieving the process of the system 250 which concerns on one embodiment of this invention, or its one part. 図24に示すコンピュータシステムの内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the computer system shown in FIG.

符号の説明Explanation of symbols

50 音声認識データ処理システム、60 フロー定義実行管理装置、62 フロー定義作成・実行指示装置、64,200,250 データ処理システム、66 プロセス用プログラム、80 管理プログラム、82 モジュール定義ファイル、84 入力ファイル情報、86 フロー定義ファイル、92 モジュールマネージャ、140 フロー定義作成・実行指示プログラム、146 モジュールタイプテーブル、148 モジュールテーブル、150 ホストテーブル、152 ノードテーブル、154 アークテーブル、172 モジュールパレット、178 フロー定義作成領域、222,252 第1のプロセス、224,254 第2のプロセス、230,232,234,236,238,240,260,262,264,270,272,274 モジュール、266,276,280 メッセージマネージャ、286 起動・終了制御部   50 speech recognition data processing system, 60 flow definition execution management device, 62 flow definition creation / execution instruction device, 64, 200, 250 data processing system, 66 process program, 80 management program, 82 module definition file, 84 input file information 86 Flow definition file, 92 Module manager, 140 Flow definition creation / execution instruction program, 146 Module type table, 148 Module table, 150 Host table, 152 Node table, 154 Arc table, 172 Module palette, 178 Flow definition creation area, 222,252 First process, 224,254 Second process, 230,232,234,236,238,240,260,262,264,270,2 72,274 Module, 266, 276, 280 Message Manager, 286 Start / End Control Unit

Claims (5)

コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するためのデータ処理システム設計装置であって、
各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、
前記モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、前記データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、1又は複数のプロセスの定義と、定義されたモジュールの入力と出力との間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を生成するためのフロー定義生成手段とを含み、
前記1又は複数のプロセスの定義の各々は、当該プロセスを実行するホスト名と、当該プロセスを実現するプログラム名と、当該プロセス内で実行されるべきモジュールに関する情報とを含み、
さらに、前記フロー定義生成手段により生成されたフロー定義情報を記憶するためのフロー定義情報記憶手段を含む、データ処理システム設計装置。
A data processing system design device for designing a data processing system by combining modules operable on a computer,
Module information storage means for storing module information including specifications of each module and option or parameter information;
Based on the specifications of each module and the option or parameter information stored in the module information storage means, a user defines a connection relationship between a plurality of modules in the data processing system, and Helps the user specify options or parameter values for each module, supports the definition of one or more processes, the connection relationship between the inputs and outputs of the defined modules, and the options or Flow definition generation means for generating flow definition information including parameter values,
Each of the one or more process definitions includes a host name that executes the process, a program name that realizes the process, and information about a module to be executed in the process,
Furthermore, the data processing system design apparatus contains the flow definition information storage means for memorize | stored the flow definition information produced | generated by the said flow definition production | generation means.
さらに、
前記フロー定義生成手段により生成されたフロー定義情報のうちの任意のものをユーザに選択させるフロー定義情報選択機能と、
前記フロー定義情報選択機能により選択されたフロー定義情報、及び前記モジュール情報記憶手段に記憶されたモジュ−ル情報に従って、コンピュータシステム上で前記選択されたフロー定義情報に従うデータ処理システムを実現するために必要なモジュールのインスタンスを生成するインスタンス生成機能と、
前記インスタンス生成機能により生成されたモジュールのインスタンス間で、前記選択されたフロー定義情報内の、前記モジュール間の接続関係に従ってデータを配信するデータ配信機能とを有する、請求項1に記載のデータ処理システム設計装置。
further,
A flow definition information selection function Ru allowed a user to select any of the flow definition information generated by the flow definition generating unit,
To realize a data processing system according to the selected flow definition information on a computer system according to the flow definition information selected by the flow definition information selection function and the module information stored in the module information storage means. and Louis instance generation function to generate an instance of the required modules,
Between instances of modules generated by the instantiation function, within the selected flow definition information, and a Lud over data distribution function to distribute the data according to the connection relationship between the modules, according to claim 1 Data processing system design equipment.
さらに、前記インスタンス生成機能により生成された各モジュールのインスタンスに、前記選択されたフロー定義情報内の、それぞれのモジュールのインスタンスのためのオプション又はパラメータ値を配信する機能有する、請求項2に記載のデータ処理システム設計装置。 Furthermore, an instance of each module generated by the instantiation function, within the selected flow definition information has the ability to deliver the option or parameter value for the instances of each module, in claim 2 The data processing system design device described. 前記モジュールの仕様は、当該モジュールの処理タイプと、当該モジュールを実現するプログラムを特定する情報と、当該モジュールの入力のデータ型の集合及び出力のデータ型の集合を特定するデータ型情報とを含み、
前記フロー定義生成手段は、
前記データ処理システムにおいて必要とされる処理タイプのモジュールをユーザの選択に従って特定するモジュール特定機能と、
前記モジュール特定手段により特定されたモジュールの任意の二つの間の、入力と出力との間の接続をユーザの指示に従って定義する接続特定機能と、
前記接続特定機能により互いに接続される二つのモジュールの一方の入力のデータ型の集合と、他方の出力のデータ型の集合との積集合に属するデータ型のうちの一つをユーザに選択させ、当該接続により表されるモジュール間で移動されるデータの型を特定して前記接続特定機能により特定された接続の属性に追加するデータ型特定機能と、
前記モジュール特定機能により特定されたモジュールに関する情報と、前記データ型特定機能により特定された接続とに基づいて、前記フロー定義を生成する機能とを有する、請求項1〜請求項3のいずれかに記載のデータ処理システム設計装置。
The specification of the module includes a processing type of the module, information for specifying a program that realizes the module, and data type information for specifying a set of input data types and a set of output data types of the module. ,
The flow definition generation means includes
And makes the chromophore at the distal end Joule specific function be identified according to the selection of the user module processing type required in the data processing system,
A connection specific functions that define in accordance with an instruction from the user a connection between any between the two inputs and outputs of the identified modules by the module specifying unit,
Let the user select one of the data types belonging to the intersection of the set of data types of one input of the two modules connected to each other by the connection specifying function and the set of data types of the other output; and added to Lud over data type specific functions to the attribute of the identified connected by the connection specific function to identify the type of data being transferred between modules, represented by the connection,
Information about the module identified by the module specific function, based on the connection identified by the data types specific function has a function and that generates the flow definition, any one of claims 1 to 3 The data processing system design device described in 1.
コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するためのデータ処理システム設計装置としてコンピュータを動作させるコンピュータプログラムであって、
前記コンピュータは、
各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、
1又は複数のプロセスの定義と、定義されたモジュールの入力と出力との間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を記憶するためのフロー定義情報記憶手段とを含み、
前記1又は複数のプロセスの定義の各々は、当該プロセスを実行するホスト名と、当該プロセスを実現するプログラム名と、当該プロセス内で実行されるべきモジュールに関する情報とを含み、
前記コンピュータプログラムは、前記コンピュータを、
前記モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、前記データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、前記フロー定義情報を生成して前記フロー定義情報記憶手段に記憶させるためのフロー定義生成手段として機能させる、コンピュータプログラム。
A computer program for operating a computer as a data processing system design device for designing a data processing system by combining modules operable on the computer,
The computer
Module information storage means for storing module information including specifications of each module and option or parameter information;
Flow definition information storage for storing flow definition information including one or more process definitions, connection relationships between defined module inputs and outputs, and options or parameter values for each specified module Means,
Each of the one or more process definitions includes a host name that executes the process, a program name that realizes the process, and information about a module to be executed in the process,
The computer program stores the computer,
Based on the specifications of each module and the option or parameter information stored in the module information storage means, a user defines a connection relationship between a plurality of modules in the data processing system, and assist in specifying user the option or parameter values for each module, the generated flow definition information the a flow definition generating means for storing the flow definition information storage means to function by a computer program.
JP2004104090A 2004-03-31 2004-03-31 Data processing system design apparatus and computer program therefor Expired - Lifetime JP4691895B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004104090A JP4691895B2 (en) 2004-03-31 2004-03-31 Data processing system design apparatus and computer program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004104090A JP4691895B2 (en) 2004-03-31 2004-03-31 Data processing system design apparatus and computer program therefor

Publications (2)

Publication Number Publication Date
JP2005292982A JP2005292982A (en) 2005-10-20
JP4691895B2 true JP4691895B2 (en) 2011-06-01

Family

ID=35325877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004104090A Expired - Lifetime JP4691895B2 (en) 2004-03-31 2004-03-31 Data processing system design apparatus and computer program therefor

Country Status (1)

Country Link
JP (1) JP4691895B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4952024B2 (en) * 2005-11-21 2012-06-13 ヤマハ株式会社 Music system control apparatus comprising a plurality of devices connected via a network and an integrated software program for controlling the music system
JP4735373B2 (en) * 2005-11-21 2011-07-27 ヤマハ株式会社 Music system control apparatus comprising a plurality of devices connected via a network and an integrated software program for controlling the music system
JP2007219175A (en) * 2006-02-16 2007-08-30 Univ Waseda Recognizer constructing system, recognizer constructing method, assembly service providing system and program
WO2008014724A1 (en) * 2006-07-28 2008-02-07 Accelergy Shanghai R & D Center Co., Ltd. Computer-aided graphical system, method and program product for designing experiment flow
WO2012060077A1 (en) * 2010-11-05 2012-05-10 日本電気株式会社 Information processing device, information processing system, information processing method, and program
JP6578028B2 (en) * 2018-02-08 2019-09-18 株式会社東芝 Model editing unit, model editing method, program, and storage medium
JP7150631B2 (en) * 2018-10-17 2022-10-11 エヌ・ティ・ティ・コミュニケーションズ株式会社 CONTROL DEVICE, SERVICE PROVIDING SYSTEM, CONTROL METHOD, AND PROGRAM

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163262A (en) * 1998-11-27 2000-06-16 Nec Corp System design technique
JP2001216142A (en) * 2000-02-04 2001-08-10 Hitachi Ltd Program preparation aiding device
JP2003223321A (en) * 2002-01-31 2003-08-08 Toshiba Corp Software component preparing method and program and software component preparing device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143309A (en) * 1991-11-18 1993-06-11 Hitachi Ltd Device for describing data flow model
JP3171361B2 (en) * 1994-05-06 2001-05-28 ヤマハ株式会社 DSP programming device
JPH08190477A (en) * 1995-01-11 1996-07-23 Nippon Telegr & Teleph Corp <Ntt> Method for actualizing communication network operation scenario, and generating method and executing method for its program
JPH1083420A (en) * 1996-06-28 1998-03-31 Fujitsu Ltd Model-based operation support system and method therefor
JPH1124904A (en) * 1997-07-01 1999-01-29 Mitsubishi Electric Corp Program generation device and storage medium storing program generation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163262A (en) * 1998-11-27 2000-06-16 Nec Corp System design technique
JP2001216142A (en) * 2000-02-04 2001-08-10 Hitachi Ltd Program preparation aiding device
JP2003223321A (en) * 2002-01-31 2003-08-08 Toshiba Corp Software component preparing method and program and software component preparing device

Also Published As

Publication number Publication date
JP2005292982A (en) 2005-10-20

Similar Documents

Publication Publication Date Title
JP3272281B2 (en) Data item display method and display device, storage medium storing program for controlling display of data item
US9063925B2 (en) System and method for recommending next commands when using a software application
US20050132043A1 (en) System and method for command line interface command processing
US20090300060A1 (en) User-experience-centric architecture for data objects and end user applications
JP4691895B2 (en) Data processing system design apparatus and computer program therefor
JP5426938B2 (en) Information processing apparatus and information processing method
US7765522B2 (en) System and method for providing an embedded complete controller specification through explicit controller overlays
CN106155768A (en) Split screen runs the method and device of application
JP2018142054A (en) Development support system and method
CN108369589A (en) Automatic theme label recommendations for classifying to communication are provided
JP2007219649A (en) Diagram editing device
JP2002259468A (en) Computer-readable recording medium with program for managing cad data recorded thereon, and program for managing cad data
JP5177082B2 (en) Development support device, program
JP3294691B2 (en) Object-oriented system construction method
JP2002007651A (en) Workflow preparation system
CN110457107A (en) Configuration software operational order management method, device and system
CN114004553B (en) System, server and client for generating plans in visual mode
WO2023238283A1 (en) Display control system, display control method, and display control program
JP2002055818A (en) Method for constructing application, method for executing application, application construction device, application execution system, and recording media stored with the application construction and execution methods
JP5300782B2 (en) Cooperation definition information setting device and program
JP2002259469A (en) Computer-readable recording medium with cad data managing program recorded thereon and the program
JP2007299233A (en) Customizing device, customizing method, and customizing program
JP2010015512A (en) Apparatus and method for creating configuration management model and program thereof
JPH04257973A (en) Device and method for supporting design
JPH09114895A (en) Constituting method for job processing execution supporting system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100902

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101215

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101220

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4691895

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250