JP4691895B2 - Data processing system design apparatus and computer program therefor - Google Patents
Data processing system design apparatus and computer program therefor Download PDFInfo
- 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 - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
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
音声認識データ処理システム50は、1又は複数個のコンピュータシステムから構成されており、それらシステムに備えられた記憶装置には、各モジュールをコンピュータプロセス上で実行させるための一群のプロセス用プログラム66が記憶されている。フロー定義実行管理装置60は、これらコンピュータハードウェアとプロセス用プログラム66とを用いて、フロー定義作成・実行指示装置62により設計された、モジュール100〜110からなるデータ処理システム64によるデータ処理を実行させる。フロー定義実行管理装置60によるデータ処理及びその制御の詳細については後述する。
The speech recognition
フロー定義実行管理装置60は、前述したとおり、フロー定義実行管理装置60で実行可能なモジュールの仕様をそれぞれ定義したモジュール定義ファイル82と、モジュール定義ファイル82を用いてフロー定義作成・実行指示装置62によって定義されたフロー定義を格納するフロー定義ファイル86と、処理のための入力データを格納する入力ファイル90及び出力結果を格納する出力ファイル88とを含む。入力ファイル90及び出力ファイル88はいずれも利用者により選択される。特に出力ファイル88は、フロー定義に従ったデータ処理を実行するときに確保される。
As described above, the flow definition
フロー定義実行管理装置60はさらに、複数種類の入力ファイルに関する情報を格納する入力ファイル情報記憶部84と、フロー定義作成・実行指示装置62との間でモジュール定義ファイル82及びフロー定義等の情報をウェブ経由で交換するための管理プログラム80と、フロー定義作成・実行指示装置62によってシステム64の動作の実行が指示されると管理プログラム80によって起動され、データ処理システム64をコンピュータ資源を用いて実現し、入力ファイル90からの入力を与えてデータ処理させ、その結果を出力ファイル88に出力させる処理を制御するためのモジュールマネージャ92とを含む。
The flow definition
図1においては、データ処理システム64は複数のモジュール100,102,104,106,108及び110を含んでいる。実際には、モジュール定義はクラス化されており、モジュール100,102,104,106,108及び110は、モジュールマネージャ92の制御によってデータ処理システム64を実現するプロセス内に生成される、各モジュールのオブジェクトクラスのインスタンスである。従って、同一のモジュール定義から、同一のプロセス又は別々のプロセス内に複数のモジュールのインスタンスが生成され動作することもある。
In FIG. 1, the
図2は、モジュール定義ファイル82の内容を示す。図2を参照して、モジュール定義ファイル82は、内部的なモジュール名と、フロー定義作成・実行指示装置62の画面に表示するためのモジュール名(表示用)と、フロー定義作成・実行指示装置62の画面にモジュールに関する説明を表示するためのテキストからなるモジュール説明(表示用)と、作者名と、バージョン情報とを含む。
FIG. 2 shows the contents of the
モジュール定義ファイル82はさらに、このモジュールのタイプを内部的に区別するためのモジュールタイプと、フロー定義作成・実行指示装置62の画面にモジュールタイプを表示するために使用するモジュールタイプ(表示用)と、当該モジュールを使用可能なユーザ情報からなるセキュリティ制限情報とを含む。モジュールタイプは、モジュールの基本的な機能を示すものであり、本実施の形態のように音声認識の場合には、発話区間切出し(これを以下「EPD」と呼ぶ。)、特徴抽出、CMS(平均ケプストラムによる正規化処理)、特徴パラメータ編集、デコーダ、再評価、結果出力等がある。
The
モジュール定義ファイル82はさらに、このモジュールが処理できるイベントとして、受取イベントタイプと、出力イベントタイプと、入出力イベント関連情報と、モジュールの枝番とを含む。受取イベントタイプ及び出力イベントタイプは、それぞれ当該モジュールで可能なイベントタイプの集合である。
The
モジュール定義ファイル82はさらに、このモジュールのオプション情報を含む。同種のオプションは、同一のセクションにまとめられる。ただし、オプションによってはセクションに属さないものもある。従ってモジュール定義ファイル82は、0、1、又は複数のセクションを含みうる。セクションに属さないオプションは、セクション内ではなくセクション外に記述されているが、記載の仕方は、後述するセクション内のオプションのものと同様である。
The
各セクションは、内部的なセクション名と、ユーザに表示するためのセクション名とを含む。各セクションはさらに、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 /
オプションはさらに、ユーザによる値の指定がなかった場合のオプション値のデフォルト値と、オプション値がとり得る内部的な値を列挙する、有効値フィールドと、オプション値がとり得る内部的な値に対応する、表示用の値を列挙する表示用有効値フィールドとを含む。実際には表示用のテキストは別ファイルにより記憶されており、モジュール定義ファイル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
モジュール定義ファイル82はさらに、オプション値が数値であるときの有効範囲を定める有効範囲フィールドを含む。有効範囲フィールドは、その最小値及び最大値と、それぞれ最小値及び最大値を有効範囲に含むか否かを示す二つのフラグとを含む。
The
モジュール定義ファイル82はこれらに加えて、オプション値の型(string、integer、double、boolean、file、modelのいずれか)と、オプションを指定できる回数を示す複数指定回数フィールドと、オプションが必須か否かを示す必須フィールドと、オプション値が所定の複数の候補から選択するタイプである場合、フロー定義作成・実行指示装置62で行なわれるフロー定義作成処理においてその選択のために使用するGUI(グラフィカル・ユーザ・インタフェース)部品のタイプを示す表示タイプフィールドとを含む。
In addition to these, the
図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
フロー定義作成・実行指示装置62は、各モジュールに関するモジュール定義情報を用いて、利用者がフロー定義を作成する際の画面情報を生成したり、接続関係の制約を課したり、オプションの値の設定を行なったりする際の利用者の補助を行なう。
The flow definition creation /
図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
図4を参照して、フロー定義ファイル86は、コンピュータ上でのデータ処理を実行する一つの単位を形成するプロセスに関する情報を含む。プロセスに関する情報は、データ処理システムに含むプロセスの数だけ繰返される。プロセスに関する情報は、プロセス名と、当該プロセスを実行するホスト名と、当該プロセスのためのプログラム名と、当該プロセス内で実行すべきモジュールに関する情報とを含む。
Referring to FIG. 4, the
モジュールに関する情報は、一つのプロセスに含まれるモジュールの数だけ繰返される。各モジュールに関する情報は、モジュール名と、枝番付のモジュール名と、モジュール識別子と、枝番とを含む。一つのプロセス内において同じモジュールが複数個動作する場合があるため、それらを区別するために枝番が設けられる。 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
フロー定義ファイル86はさらに、システム内のモジュール間の接続関係を示す矢印に関する情報を含む。矢印に関する情報は、データ処理システム内に存在する矢印の数だけ繰返される。
The
矢印に関する情報は、矢印の出所に関する情報と、矢印の行き先に関する情報と、矢印が示すイベントに関する情報とを含む。出所に関する情報は、矢印の出所のモジュール名と、この矢印が当該モジュールの何番目の出力からのものかを示す番号とを含む。同様に、行き先に関する情報は、矢印の行き先のモジュール名と、当該矢印の行き先が、行き先モジュールの何番目の入力であるかを示す番号とを含む。イベントに関する情報は、当該イベントのデータの型を示すイベントタイプを含む。 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
モジュールオプションに関する情報は、もしセクションにまとめられているオプションがあれば、セクションに関する情報を含み、各セクションに関する情報は、当該セクションに属するオプションの値に関する情報を含む。モジュールオプションに関する情報はまた、セクションにまとめられていないオプションの値に関する情報も含む。 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 /
フロー定義作成・実行指示装置62はさらに、ユーザとの間のインタフェースを実現するためのモニタ142並びにキーボード及びポインティングデバイスを含む入力装置144と、モニタ142及び入力装置144を用いたGUIによりユーザにより画面上に作成されるフロー定義のグラフに関する情報を格納するための、ノードテーブル152及びアークテーブル154とを含む。各モジュールは、フロー定義のグラフ中のノードに相当し、矢印はアークに相当する。矢印に関しては、以後「アーク」と呼ぶ。これらテーブルの詳細についても後述する。
The flow definition creation /
図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 /
画面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
例えば画面上で配置されたモジュールの矩形を選択(マウスでクリック)することにより、そのモジュールタイプのモジュールとして利用可能なものの選択画面が表示される。モジュールが選択されると当該モジュールのオプションを設定する画面が表示される。オプションを設定すると、当該モジュールのモジュール定義ファイル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
アークを選択(アークをマウスでダブルクリック)すると、当該アークのイベントタイプを選択する画面が表示される。ここで表示されるイベントタイプは、アークの出所のモジュールの出力イベントタイプとしてリストされているものからなる集合と、アークの行き先のモジュールの入力イベントタイプとしてリストされているものからなる集合との共通集合(積集合)の要素である。モジュールの組合せからアークのイベントタイプが一意に定まる場合、そのイベントタイプが自動的に設定される。 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
図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
図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
図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
フロー定義の修正では、図1に示すフロー定義実行管理装置60から任意のフロー定義を受取り、それらに基づいてノードテーブル152及びアークテーブル154の内容を作成する。以後の動作はフロー定義の新規作成と同様である。
In the modification of the flow definition, an arbitrary flow definition is received from the 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
例えば第1のプロセス222をあるコンピュータ上で実行し、第2のプロセス224を別のコンピュータで実行することで、全体的な処理速度の向上を図ることができる。もちろん、第1のプロセス222と第2のプロセス224とを同一のコンピュータ上で動作させても問題はない。しかし、これらシステムをフロー定義に基づいてどのように構成し、効率よく動作させるかという問題がある。本実施の形態では、こうしたデータ処理システム200をフロー定義に基づいて構成し、効率よく動作させるため、以下に述べるようなモジュール実行の機構を用いている。
For example, the overall process speed can be improved by executing the
図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
本システム250はさらに、第1のプロセス252及び第2のプロセス254、並びに本システム250の外部とに接続され、第1のプロセス252及び第2のプロセス254内のモジュール間、及びこれらモジュールと本システム250の外部との間のイベントの流れをフロー定義ファイル86の記述に従って制御するためのモジュールマネージャ92とを含む。
The
第1のプロセス252は、第1のモジュール260と、第2のモジュール262と、第3のモジュール264と、これら3つのモジュール260,262及び264の間、ならびにこれらモジュールとモジュールマネージャ92との間のイベントの流れをフロー定義ファイル86の記述に従って制御し、プロセス内のメッセージ通信を管理するためのメッセージマネージャ266とを含む。
The
第2のプロセス254も第1のプロセス252と同様、第4のモジュール270と、第5のモジュール272と、第6のモジュール274と、これら3つのモジュール270,272及び274の間、ならびにこれらモジュールとモジュールマネージャ92との間のイベントの流れをフロー定義ファイル86の記述に従って制御するためのメッセージマネージャ276とを含む。
As with the
モジュール260〜274は、いずれも入力と出力とを一個以上有する。各モジュールは、入力されたデータをそのモジュール特有の機能に従って内部で処理し、結果を出力する機能を持つ。例えば、音声の特徴抽出モジュールは、音声データを入力とし、その特徴パラメータを出力とする。
Each of the
モジュールマネージャ92は、本システム250の外部から与えられる入力を受けるための入力モジュール282と、本システム250からの出力を外部に与えるための出力モジュール284と、入力モジュール282、出力モジュール284、メッセージマネージャ266及びメッセージマネージャ276に接続され、フロー定義ファイル86の記述に基づいて、各プロセス252及び254、並びに入力モジュール282及び出力モジュール284の間のイベントの流れを制御するためのメッセージマネージャ280と、図1に示すモジュールマネージャ92からデータ処理システム250の起動指示を受け、データ処理システム250の実行に必要な処理と起動処理、終了処理を実行するための起動・終了制御部286とを含む。メッセージマネージャ280は、イベントの流れを制御することにより、プロセス間のメッセージ通信を管理するものということができる。
The
図15に、モジュール間で通信されるイベント320の構成を示す。図15を参照して、イベント320は、送信元モジュールIDと、送信先モジュールIDと、イベントタイプと、データの内容とを含む。イベントタイプとは、イベントに含まれるデータの型のことであり、前述したWAVE型、FEATURE型等がその一例である。
FIG. 15 shows the configuration of the
図16にメッセージマネージャ280の構成をブロック図形式で示す。図16を参照して、メッセージマネージャ280は、メッセージマネージャ280に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントタイプとをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有するフロー管理テーブル292と、どのプロセスにどのモジュールが含まれているかを検索できる構成を持つモジュール管理テーブル294と、起動・終了制御部286から与えられる起動指示に応答し、フロー定義ファイル86の記述に基づいてフロー管理テーブル292及びモジュール管理テーブル294を作成するためのテーブル作成処理部296とを含む。
FIG. 16 shows the configuration of the
メッセージマネージャ280はさらに、第1のプロセス252、第2のプロセス254、入力モジュール282及び出力モジュール284に接続され、第1のプロセス252、第2のプロセス254及び入力モジュール282から与えられるイベントを、フロー管理テーブル292及びモジュール管理テーブル294の記述に基づいて第1のプロセス252、第2のプロセス254、及び出力モジュール284のいずれかに出力するためのメッセージ振分処理部290を含む。
The
図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
図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
次に図14の第1のプロセス252及び第2のプロセス254を構成する各部について説明する。各モジュールの構成については本発明とは直接関係ないので、それらについての詳細な説明は省略する。またメッセージマネージャ266とメッセージマネージャ276とは同じ構成を有しているので、以下、メッセージマネージャ266について説明する。
Next, each part constituting the
図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
メッセージマネージャ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
図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
図21に、モジュールマネージャ92によるデータ処理システム250の制御処理のフローチャートを示す。図21を参照して、モジュールマネージャ92の起動・終了制御部286は、フロー定義ファイル86の指定を伴う実行指示をフロー定義作成・実行指示装置62から受けると、ステップ340で、指定されたフロー定義ファイルを読み込む。そして、ステップ342〜346の処理をフロー定義ファイル内に記述された全てのプロセスについて繰返す。
FIG. 21 shows a flowchart of control processing of the
すなわち、ステップ342では、フロー定義ファイル内に記述されたプロセスを、同じくフロー定義ファイル内の当該プロセスについて記述されたホストに起動する。そして、このプロセスの定義内に記述された全てのモジュールについてステップ344及び346の処理を繰返す。
That is, in
ステップ344では、プロセスの定義内に記述されたモジュールのインスタンスを生成する。そしてステップ346で、生成されたモジュールインスタンスに、同じモジュールについてプロセスの定義内に記述されたオプション/パラメータ値を配信する。
In
以上の処理を、全プロセス及び全モジュールに対し繰返すことで、データ処理システム250を構成する各モジュールを含むプロセスが、指定されたホスト上に立ち上がる。
By repeating the above processing for all processes and all modules, a process including each module constituting the
ステップ348で、図16に示すテーブル作成処理部296及び図19に示すフロー管理テーブル作成処理部306に指示を与えて、ステップ340で読込んだフロー管理ファイルの内容に従い、フロー管理テーブル292及び302を作成する。さらにステップ350で、図16に示すテーブル作成処理部296及び図19に示すモジュール管理テーブル作成処理部304に指示を与え、フロー定義ファイルの内容に従ってモジュール管理テーブル294及び300を作成する。ステップ352で、先頭モジュール(入力モジュールがある場合には入力モジュール)に開始指示を与え、最初のイベントを発生させこのデータ処理システムの入力に与える。以後は、メッセージマネージャ280及び各プロセス内のメッセージマネージャ266,276によるイベント配信によってシステムが動作し、システム内の各モジュールで処理されたデータが出力ファイルに出力される。
In
ステップ354では、データ処理システム250内に未処理のイベントがあるか否かを判定し、イベントがなくなるまで待ち、未処理のイベントがなくなったタイミングで、ステップ342で起動した全てのプログラムをステップ356で終了させ、自分も終了する。
In
以上がモジュールマネージャ92の起動・終了制御部286によるデータ処理システム250の起動・終了制御の処理の概略である。
The outline of the start / end control processing of the
メッセージマネージャ280のメッセージ振分処理部290及びメッセージマネージャ266のメッセージ振分処理部308も、後述するようにコンピュータハードウェア上で実行されるプログラムにより実現される。本実施の形態の場合、メッセージ振分処理部290及び308が受信したイベントの送信元がプロセス内のものか、プロセス外のものか、によって異なる処理を行なう。それぞれを実現するコンピュータプログラムの制御構造について、特にメッセージ振分処理部308について図22及び図23を参照して説明する。
The message
図22は、プロセス内のモジュールからイベントを受信した場合に、図19に示すメッセージマネージャ266のメッセージ振分処理部308が実行する処理プログラムのフローチャートである。図16に示すメッセージマネージャ280のメッセージ振分処理部290についても同様である。図22を参照して、プロセス内モジュールからイベントを受信すると、ステップ430で、当該イベントの送信元モジュールIDとイベントタイプとをキーにフロー管理テーブル302を検索し、該当する全てのアークを取出す。
FIG. 22 is a flowchart of a processing program executed by the message
続いて、ステップ430の処理の結果見つかった全てのアークについて、以下の処理を行なう。すなわち、ステップ432で、当該アークの送信先モジュールIDが当該プロセス内のモジュールのものか否かを判定する。送信先モジュールIDが当該プロセス内のモジュールのものであればステップ434に進み、さもなければステップ440に進む。
Subsequently, the following processing is performed for all arcs found as a result of the processing in
ステップ434では、イベントの送信先に、検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールが同じプロセス内なので、ステップ436でこのイベントをイベントキュー310に出力する。
In
一方ステップ440では、イベントの送信先に、同じく検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールがプロセス外に存在しているので、ステップ442でこのイベントをモジュールマネージャ92に出力する。
On the other hand, in
ステップ434、436、440及び442の処理を、ステップ430で見出された全てのアークに対して行なうことにより、一つのイベントに対し、見つかった数だけのイベントが生成され、送信先モジュールの所在に応じて、それぞれイベントキュー310又はモジュールマネージャ92に送信されることになる。
By performing the processing in
図23は、プロセス外からイベントを受信した場合に、図16に示すメッセージマネージャ280のメッセージ振分処理部290が実行する処理プログラムのフローチャートである。図23を参照して、プロセス外からイベントを受信すると、ステップ460で、モジュール管理テーブル294中でイベント中の送信先モジュールIDを検索し、当該送信先モジュールを含むプロセスを決定する。ステップ462では、決定されたプロセスが自分自身か否かを判定する。もし自分自身が送信先であればステップ464で自己のイベントキューに当該イベントを格納する。もし自分自身が送信先でなければ、ステップ466で送信先モジュールを含むプロセスに当該イベントを送信する。
FIG. 23 is a flowchart of a processing program executed by the message
一方、図19に示すメッセージマネージャ266がプロセス外からイベントを受信した場合、当該イベントの送信先については、プロセス内であることが保証されている。従って当該イベントを図19に示すメッセージ振分処理部308に格納する。
On the other hand, when the
−動作−
図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
利用者が図6に示すフロー定義作成・実行指示プログラム140を起動すると、利用可能なモジュール定義ファイルの内容及び使用可能なホストのリストがフロー定義実行管理装置60からフロー定義作成・実行指示装置62に送信される。フロー定義作成・実行指示装置62は、受信した情報に従ってモジュールタイプテーブル146、モジュールテーブル148及びホストテーブル150を作成する。画面には図7に示すような画面が表示される。以下では、フロー定義を新規に作成する場合を例にしてフロー定義作成・実行指示装置62の動作を説明する。
When the user starts the flow definition creation /
図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
利用者はさらに、各モジュールの間を矢印(アーク)で接続していく。アークが一つ配置されるたびに、アークテーブル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 /
フロー定義の修正の場合も、最初にフロー定義ファイル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 /
作成したフロー定義に従ってデータ処理システム64を動作させたい場合には、次のような操作を行なう。図7を参照して、「実行」ボタン188を押すと、フロー定義ファイルの選択ダイアログが表示される。そのうちの一つを選択することで、フロー定義作成・実行指示装置62からフロー定義実行管理装置60に対して当該フローファイルに基づくデータ処理の開始が指示される。
In order to operate the
図1に示す管理プログラム80は、その指示に従いモジュールマネージャ92に対して選択されたフロー定義ファイルを特定する情報を与えるとともに、データ処理の開始を指示する。
The
図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 /
次に起動・終了制御部286は、図14に示す入力モジュールに対し、入力ファイルからデータを読出しイベントとしてメッセージマネージャ280に与えるよう、始動の指示を与える(図21のステップ352)。入力モジュール282は入力ファイルからフレームデータを作成し、イベントとしてメッセージマネージャ280に与える。
Next, the start /
図16を参照して、メッセージマネージャ280のメッセージ振分処理部290は、フロー管理テーブル292及びモジュール管理テーブル294を参照して、当該イベントの送信先のモジュールを含むプロセスを決定し(図23のステップ460)、イベントを当該プロセスに送信する(ステップ464又は466)。本例では、例えば第1のプロセス252にこのイベントが送信されるものとする。
Referring to FIG. 16, the message
図19を参照して、メッセージマネージャ266のメッセージ振分処理部308は、このイベントがプロセス外からのものなので、当該イベントをイベントキュー310に格納する。プロセス内メッセージ配信部312が、イベントキュー310からイベントを読出し、送信先モジュールIDにより指定されるモジュールにイベントを配信する。
Referring to FIG. 19, message
このイベントを受けたモジュールは、結果のイベントをメッセージマネージャ266のメッセージ振分処理部308に返信してくる。このとき、イベントの送信元モジュールID及びイベントタイプには、それぞれ当該モジュールにより値が設定されている。送信先モジュールIDについては設定されていない。
The module that has received this event returns the resulting event to the message
メッセージ振分処理部308は、受けたイベントの送信元モジュールIDとイベントタイプとをキーにフロー管理テーブル302を検索し(図22のステップ430)、一致するアークを得る。メッセージ振分処理部308はさらに、モジュール管理テーブル300を参照して、当該送信先モジュールが第1のプロセス252内か否かを判定する(ステップ432)。第1のプロセス252内であれば(すなわち当該モジュールIDがモジュール管理テーブル300内に存在すれば)、当該アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ434)、メッセージ振分処理部308はこのイベントをイベントキュー310に書出す(ステップ436)。
The message
送信先が第1のプロセス252外であれば、アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ440)、モジュールマネージャ92にこのイベントを送信する(ステップ442)。
If the transmission destination is outside the
モジュールマネージャ92のメッセージマネージャ280では、最初の入力データを受けた場合と同様、フロー管理テーブル292とモジュール管理テーブル294とに基づいてこのイベントの送信先プロセスを決定し、そのプロセスのメッセージマネージャにイベントを送信する。フロー管理テーブル292により、システム外に出力することが示されている場合、メッセージ振分処理部290は出力モジュール284にイベントを出力する。出力モジュール284は、このイベントをさらに外部に出力する。
The
以下、メッセージマネージャ280のメッセージ振分処理部290、並びに第1のプロセス252及び第2のプロセス254のメッセージマネージャ266及び276は、上記したのと同様の処理を繰返す。その結果、外部から次々に入力モジュール282に入力されたデータは、それぞれ所定のモジュールによって処理され、結果のイベントが出力モジュール284から出力される。
Thereafter, the message
上に説明したシステム250では、各モジュールは自己の処理した結果のイベントをどのモジュールに送信するかについては全く意識する必要がない。どのプロセスにおいても、モジュールではなくメッセージマネージャが送信先モジュールを決定し、さらに送信先モジュールが同一プロセス内であればイベントキューを用いて当該イベントを配信し、プロセス外であれば、モジュールマネージャに当該イベントを配信する。イベントの配信を受けたモジュールマネージャが、送信先モジュールIDに基づいて送信先のプロセスを決定し、送信する。
In the
従って、モジュールの独立性が極めて高くなり、システム構成に従ってモジュールを変更したりする必要はない。さらに、プロセス間通信については、どのプロセスも送信先のプロセスを意識せず、すべてモジュールマネージャに送信するだけでよい。従って、各プロセス間通信のためのオーバヘッドが少なくなる。 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
図24を参照して、このコンピュータシステム530は、FD(フレキシブルディスク)ドライブ552及びCD−ROM(コンパクトディスク読出専用メモリ)ドライブ550を有するコンピュータ540と、キーボード546と、マウス548と、モニタ542とを含む。
Referring to FIG. 24, this
図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-
コンピュータ540はさらにローカルエリアネットワーク(LAN)への接続を提供するネットワークアダプタボード568を含む。
コンピュータシステム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
このプログラムは、コンピュータ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 /
上記した実施の形態では、モジュール管理テーブルについては各プロセスに用意した。しかし本発明はそのような実施の形態には限定されず、モジュール管理テーブルをシステム内の全てのモジュールで同じものを使用するようにしてもよい。また、上記実施の形態では、モジュール識別子はシステム内で一意であるものとした。しかし本発明はそのような実施の形態には限定されず、プロセス内でのみモジュール識別子が一意になるようにしてもよい。ただしその場合、イベント通信ではプロセス名とモジュール識別子とによって送信元及び送信先を特定する必要がある。 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 /
さらに、フロー定義ファイル86、モジュール定義ファイル82、入力ファイル90等がフロー定義実行管理装置60と同一のコンピュータ上に存在しているものに限定する必要はなく、ネットワークを介してアクセス可能な他のシステム内に存在しているものを利用可能なシステムとして設計してもよい。
Furthermore, the
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。 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 音声認識データ処理システム、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
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.
前記フロー定義生成手段は、
前記データ処理システムにおいて必要とされる処理タイプのモジュールをユーザの選択に従って特定するモジュール特定機能と、
前記モジュール特定手段により特定されたモジュールの任意の二つの間の、入力と出力との間の接続をユーザの指示に従って定義する接続特定機能と、
前記接続特定機能により互いに接続される二つのモジュールの一方の入力のデータ型の集合と、他方の出力のデータ型の集合との積集合に属するデータ型のうちの一つをユーザに選択させ、当該接続により表されるモジュール間で移動されるデータの型を特定して前記接続特定機能により特定された接続の属性に追加するデータ型特定機能と、
前記モジュール特定機能により特定されたモジュールに関する情報と、前記データ型特定機能により特定された接続とに基づいて、前記フロー定義を生成する機能とを有する、請求項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.
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 - Fee Related 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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)
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 creation support 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)
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 business support system and method |
JPH1124904A (en) * | 1997-07-01 | 1999-01-29 | Mitsubishi Electric Corp | Program generation device and storage medium storing program generation program |
-
2004
- 2004-03-31 JP JP2004104090A patent/JP4691895B2/en not_active Expired - Fee Related
Patent Citations (3)
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 creation support 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 | |
US20170004006A1 (en) | Method of assisting creation of automatic execution service | |
CN106155768A (en) | Split screen runs the method and device of application | |
JP4691895B2 (en) | Data processing system design apparatus and computer program therefor | |
CN111753040B (en) | Geospatial data processing method, device and system | |
US7765522B2 (en) | System and method for providing an embedded complete controller specification through explicit controller overlays | |
JP2011008358A (en) | Information processor and information processing method | |
CN108369589A (en) | Automatic theme label recommendations for classifying to communication are provided | |
JP2007219649A (en) | Diagram editing device | |
JP5177082B2 (en) | Development support device, program | |
JP3294691B2 (en) | Object-oriented system construction method | |
CN100541429C (en) | System and method for automatic application development using user guidance | |
CN110457107A (en) | configuration software operation instruction management method, device and system | |
CN114004553B (en) | System, server and client for generating plans in visual mode | |
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 | |
JP5447621B2 (en) | PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM | |
JP5300782B2 (en) | Cooperation definition information setting device and program | |
JP2012194616A (en) | Object-oriented model design support device | |
JP2007299233A (en) | Customizing device, customizing method, and customizing program | |
JP2019032679A (en) | File generation device, file generation method, and file generation program | |
JP2002259469A (en) | Computer-readable recording medium recording a program for managing CAD data and program | |
JP2010015512A (en) | Apparatus and method for creating configuration management model and program thereof |
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 |
|
LAPS | Cancellation because of no payment of annual fees |