JP4691895B2 - データ処理システム設計装置及びそのためのコンピュータプログラム - Google Patents

データ処理システム設計装置及びそのためのコンピュータプログラム 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
English (en)
Other versions
JP2005292982A (ja
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/ja
Publication of JP2005292982A publication Critical patent/JP2005292982A/ja
Application granted granted Critical
Publication of JP4691895B2 publication Critical patent/JP4691895B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、コンピュータ上で複数のモジュールを組合せることによりデータ処理システムを構築するモジュール型システムの設計及び実行方式に関し、特に、様々なモジュールを所定の目的にあわせて自由に組合せることにより、容易にモジュール型のデータ処理システムを構築し、かつ簡便に動作させて結果を得ることが可能なシステムの設計装置及びプログラムに関する。
実時間の音声認識システム等の構築過程においては、音声認識のための処理の設定を様々に変えて、認識率等の性能を確認したいことがある。そのために例えばオプション値等を変えて同じプログラムを動作させるだけでなく、あるプログラムを全く別のプログラムに置換したり、処理の流れを自由に変更して実験したりできれば便利である。
そのための一つの手段は、それぞれ特有の機能を持つ複数のモジュールを予め準備し、それらを目的にあわせて適切な形で組合せることが可能な、いわゆるモジュール型のシステムである。
しかし、従来のモジュール型システムは、主としてプログラム又は装置の設計段階で採用されている。すなわち、目的にあわせて既存のモジュールを選択し、それらを実際のシステムの条件にあわせて改造することにより、最終製品を製造するもので、エンドユーザが色々なモジュールを自由に組合せてシステムを組立て、テストデータを用いてそうしたシステムの動作を確認するような仕組みは提供されていない。
こうした問題は、音声認識のように多量のデータを処理する必要があり、またデータ処理にも多くのバラエティが存在する場合に特に重要であるが、音声認識にかぎらず種々のデータ処理においても発生し得る。
それゆえに本発明の目的は、モジュールを自由に組合せ、かつ容易に動作を確認できる、モジュール型システムの設計に適したデータ処理システム設計装置を提供することである。
本発明の第1の局面に係るデータ処理システム設計装置は、コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するための装置である。この装置は、各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、定義されたモジュール間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を生成するためのフロー定義生成手段と、フロー定義生成手段により生成されたフロー定義情報を記憶するためのフロー定義情報記憶手段とを含む。
好ましくはこの装置はさらに、フロー定義生成手段により生成されたフロー定義情報のうちの任意のものをユーザに選択させるためのフロー定義情報選択手段と、フロー定義情報選択手段により選択されたフロー定義情報、及びモジュール情報記憶手段に記憶されたモジュ−ル情報に従って、コンピュータシステム上で選択されたフロー定義情報に従うデータ処理システムを実現するために必要なモジュールのインスタンスを生成するためのインスタンス生成手段と、インスタンス生成手段により生成されたモジュールのインスタンス間で、選択されたフロー定義情報に従ってデータを配信し処理させるためのデータ配信手段とを含む。
さらに好ましくは、この装置は、インスタンス生成手段により生成された各モジュールのインスタンスに、選択されたフロー定義情報内の、それぞれのモジュールのインスタンスのためのオプション又はパラメータ値を配信するための手段をさらに含む。
モジュールの仕様は、当該モジュールの処理タイプと、当該モジュールを実現するプログラムを特定する情報と、当該モジュールの入力のデータ型の集合及び出力のデータ型の集合を特定するデータ型情報とを含んでもよい。フロー定義生成手段は、データ処理システムにおいて必要とされる処理タイプのモジュールをユーザの選択に従って特定するためのモジュール特定手段と、モジュール特定手段により特定されたモジュールの任意の二つの間の接続をユーザの指示に従って定義するための接続特定手段と、接続特定手段により互いに接続される二つのモジュールの一方の入力のデータ型の集合と、他方の出力のデータ型の集合との積集合に属するデータ型のうちの一つをユーザに選択させ、当該接続により表されるモジュール間で移動されるデータの型を特定して接続特定手段により特定された接続の属性に追加するためのデータ型特定手段と、モジュール特定手段により特定されたモジュールに関する情報と、データ型特定手段により特定された接続とに基づいて、フロー定義を生成するための手段とを含んでもよい。
本発明の第2の局面に係るコンピュータプログラムは、コンピュータにより実行されると、上記したいずれかのデータ処理システムとして当該コンピュータを動作させる。
−構成−
以下、本発明の一実施の形態に係るシステムについて説明する。本システムは、利用可能なプログラムモジュールの中から必要なモジュールを選択し、モジュール間のデータの流れに応じてウェブブラウザの画面上でモジュール間を線(矢印)で結ぶことにより、モジュールの組合せによるシステムを設計し、かつ動作させることが可能な、音声認識を行なうためのシステムである。
本システムでは、音声をリアルタイムで処理することを目的に、音声データを10msec程度の時間間隔で所定の長さの単位(これをフレームと言う)に分割して、フレーム単位で各モジュールの間でデータを受け渡しながら処理を実行する。フレーム単位のデータは、あるモジュールに入力され、そのモジュールで当該フレームに対する処理を行なった後に、次のモジュールに渡される。このフレーム単位のデータを本明細書では「イベントメッセージ(以後イベントと略す)」という。
イベントには、データの種類に応じていくつかの型がある。例えば、生の音声データの場合はWAVE型、特徴パラメータの場合はFEATURE型等、である。従ってモジュールの入出力においては、そこに入力されるデータ、又はそこから出力されるデータがどのような型かを明確に定義しておく必要がある。データの型に応じて決まるイベントの型を、本明細書では「イベントタイプ」と呼ぶ。
そして、システムを組む場合には、目的に従ってモジュールを選択し、どのモジュールのどの出力をどのモジュールのどの入力に与えるかを、データの型を考慮しながら決定する必要がある。このように、モジュール間のデータの流れを記述したものを本明細書ではフロー定義と呼び、典型的にはコンピュータ読取可能な形式で記憶装置に格納される。本システムでは、モジュール定義をサーバに格納しておき、ウェブブラウザでこのモジュール定義を読込んで、ウェブブラウザ上でシステム設計を行なう。システム設計により得られるものは、モジュール間の接続及びそれに伴うオプション/パラメータ値と、データの流れとを定義したデータである。本明細書では、このデータをフロー定義と呼び、それをファイルにしたものをフロー定義ファイルと呼ぶ。
図1に、本発明の一実施の形態に係る音声認識データ処理システム50の機能的なブロック図を示す。図1を参照して、この音声認識データ処理システム50は、前述したようなモジュール定義ファイル82を予め記憶し、ウェブサーバを通じて、ユーザによるフロー定義の保守・及び実行等の制御を行なうためのフロー定義実行管理装置60と、フロー定義実行管理装置60に記憶されているモジュール定義ファイル82を用いて、ウェブブラウザ経由でフロー定義の作成を行ない、作成したフロー定義をフロー定義実行管理装置60に格納させる処理と、作成したフロー定義に従い、各モジュールを組合せて得られるシステムをフロー定義実行管理装置60に実行させる指示を与えるためのフロー定義作成・実行指示装置62とを含む。なお本実施の形態では、フロー定義実行管理装置60はサーバ装置上で動作し、フロー定義作成・実行指示装置62はクライアント装置上で動作するが、図面ではその詳細は省略する。
音声認識データ処理システム50は、1又は複数個のコンピュータシステムから構成されており、それらシステムに備えられた記憶装置には、各モジュールをコンピュータプロセス上で実行させるための一群のプロセス用プログラム66が記憶されている。フロー定義実行管理装置60は、これらコンピュータハードウェアとプロセス用プログラム66とを用いて、フロー定義作成・実行指示装置62により設計された、モジュール100〜110からなるデータ処理システム64によるデータ処理を実行させる。フロー定義実行管理装置60によるデータ処理及びその制御の詳細については後述する。
フロー定義実行管理装置60は、前述したとおり、フロー定義実行管理装置60で実行可能なモジュールの仕様をそれぞれ定義したモジュール定義ファイル82と、モジュール定義ファイル82を用いてフロー定義作成・実行指示装置62によって定義されたフロー定義を格納するフロー定義ファイル86と、処理のための入力データを格納する入力ファイル90及び出力結果を格納する出力ファイル88とを含む。入力ファイル90及び出力ファイル88はいずれも利用者により選択される。特に出力ファイル88は、フロー定義に従ったデータ処理を実行するときに確保される。
フロー定義実行管理装置60はさらに、複数種類の入力ファイルに関する情報を格納する入力ファイル情報記憶部84と、フロー定義作成・実行指示装置62との間でモジュール定義ファイル82及びフロー定義等の情報をウェブ経由で交換するための管理プログラム80と、フロー定義作成・実行指示装置62によってシステム64の動作の実行が指示されると管理プログラム80によって起動され、データ処理システム64をコンピュータ資源を用いて実現し、入力ファイル90からの入力を与えてデータ処理させ、その結果を出力ファイル88に出力させる処理を制御するためのモジュールマネージャ92とを含む。
図1においては、データ処理システム64は複数のモジュール100,102,104,106,108及び110を含んでいる。実際には、モジュール定義はクラス化されており、モジュール100,102,104,106,108及び110は、モジュールマネージャ92の制御によってデータ処理システム64を実現するプロセス内に生成される、各モジュールのオブジェクトクラスのインスタンスである。従って、同一のモジュール定義から、同一のプロセス又は別々のプロセス内に複数のモジュールのインスタンスが生成され動作することもある。
図2は、モジュール定義ファイル82の内容を示す。図2を参照して、モジュール定義ファイル82は、内部的なモジュール名と、フロー定義作成・実行指示装置62の画面に表示するためのモジュール名(表示用)と、フロー定義作成・実行指示装置62の画面にモジュールに関する説明を表示するためのテキストからなるモジュール説明(表示用)と、作者名と、バージョン情報とを含む。
モジュール定義ファイル82はさらに、このモジュールのタイプを内部的に区別するためのモジュールタイプと、フロー定義作成・実行指示装置62の画面にモジュールタイプを表示するために使用するモジュールタイプ(表示用)と、当該モジュールを使用可能なユーザ情報からなるセキュリティ制限情報とを含む。モジュールタイプは、モジュールの基本的な機能を示すものであり、本実施の形態のように音声認識の場合には、発話区間切出し(これを以下「EPD」と呼ぶ。)、特徴抽出、CMS(平均ケプストラムによる正規化処理)、特徴パラメータ編集、デコーダ、再評価、結果出力等がある。
モジュール定義ファイル82はさらに、このモジュールが処理できるイベントとして、受取イベントタイプと、出力イベントタイプと、入出力イベント関連情報と、モジュールの枝番とを含む。受取イベントタイプ及び出力イベントタイプは、それぞれ当該モジュールで可能なイベントタイプの集合である。
モジュール定義ファイル82はさらに、このモジュールのオプション情報を含む。同種のオプションは、同一のセクションにまとめられる。ただし、オプションによってはセクションに属さないものもある。従ってモジュール定義ファイル82は、0、1、又は複数のセクションを含みうる。セクションに属さないオプションは、セクション内ではなくセクション外に記述されているが、記載の仕方は、後述するセクション内のオプションのものと同様である。
各セクションは、内部的なセクション名と、ユーザに表示するためのセクション名とを含む。各セクションはさらに、1又は複数のオプションを含む。
各オプションは、内部的にオプションを区別するためのオプション名と、ユーザに対してオプションを表示する際の表示用オプション名と、フロー定義作成・実行指示装置62においてこのオプションに関するヘルプを表示する際のヘルプテキストとなるオプションヘルプ(表示用)とを含む。
オプションはさらに、ユーザによる値の指定がなかった場合のオプション値のデフォルト値と、オプション値がとり得る内部的な値を列挙する、有効値フィールドと、オプション値がとり得る内部的な値に対応する、表示用の値を列挙する表示用有効値フィールドとを含む。実際には表示用のテキストは別ファイルにより記憶されており、モジュール定義ファイル82に記憶されているのは表示用テキストの識別番号である。
モジュール定義ファイル82はさらに、オプション値が数値であるときの有効範囲を定める有効範囲フィールドを含む。有効範囲フィールドは、その最小値及び最大値と、それぞれ最小値及び最大値を有効範囲に含むか否かを示す二つのフラグとを含む。
モジュール定義ファイル82はこれらに加えて、オプション値の型(string、integer、double、boolean、file、modelのいずれか)と、オプションを指定できる回数を示す複数指定回数フィールドと、オプションが必須か否かを示す必須フィールドと、オプション値が所定の複数の候補から選択するタイプである場合、フロー定義作成・実行指示装置62で行なわれるフロー定義作成処理においてその選択のために使用するGUI(グラフィカル・ユーザ・インタフェース)部品のタイプを示す表示タイプフィールドとを含む。
図3には、モジュール定義ファイル82の具体的な一例を示す。図3に示すように、モジュール定義ファイル82は、XML(eXtended Markup Language)で記述されている。開始タグ<module>と終了タグ</module>とで囲まれた部分がモジュール定義である。開始タグ<module-info>と終了タグ</module-info>で囲まれた部分がこのモジュールに関するオプション以外の情報を示す。開始タグ<options>と終了タグ</options>に囲まれた部分がオプション全体に関する情報を示す。開始タグ<section>と終了タグ</section>とに囲まれた部分がセクションに関する情報を示し、開始タグ<option>と終了タグ</option>とに囲まれた部分が個々のオプションに関する情報を示す。
フロー定義作成・実行指示装置62は、各モジュールに関するモジュール定義情報を用いて、利用者がフロー定義を作成する際の画面情報を生成したり、接続関係の制約を課したり、オプションの値の設定を行なったりする際の利用者の補助を行なう。
図4に、フロー定義ファイル86の構成の詳細を示す。フロー定義ファイル86は、ユーザが作成したフロー定義及びオプション値等を格納するためのXML形式のファイルであり、一つのフロー定義ファイル86が一つのデータ処理を定義する。このフロー定義ファイルは、図1に示すモジュールマネージャ92の起動時にフロー定義作成・実行指示装置62を介して、利用者により選択され指定される。モジュールマネージャ92はフロー定義ファイル86を読込み、フロー定義ファイル86内に記述されたプロセスを起動し、フロー定義ファイル86内に記述されたモジュールのインスタンスを生成し、各モジュールインスタンスに、フロー定義ファイル86に記述されたオプション値を配信して設定した後、データ処理システムを起動する。図5にはフロー定義ファイル86の具体的な一例を示す。以後、図4について説明するが図5についても適宜参照されたい。
図4を参照して、フロー定義ファイル86は、コンピュータ上でのデータ処理を実行する一つの単位を形成するプロセスに関する情報を含む。プロセスに関する情報は、データ処理システムに含むプロセスの数だけ繰返される。プロセスに関する情報は、プロセス名と、当該プロセスを実行するホスト名と、当該プロセスのためのプログラム名と、当該プロセス内で実行すべきモジュールに関する情報とを含む。
モジュールに関する情報は、一つのプロセスに含まれるモジュールの数だけ繰返される。各モジュールに関する情報は、モジュール名と、枝番付のモジュール名と、モジュール識別子と、枝番とを含む。一つのプロセス内において同じモジュールが複数個動作する場合があるため、それらを区別するために枝番が設けられる。
フロー定義ファイル86はさらに、ファイルに関する情報を含む。ファイルに関する情報は、データ処理システムの入力ファイルに関する情報と、出力ファイルに関する情報とを含む。各ファイルに関する情報は、入出力名、ファイル名、フォーマット、イベントタイプ、データタイプ、及びサイズを含む。これらは、ファイルが複数個ある場合にはその数だけ繰返される。
フロー定義ファイル86はさらに、システム内のモジュール間の接続関係を示す矢印に関する情報を含む。矢印に関する情報は、データ処理システム内に存在する矢印の数だけ繰返される。
矢印に関する情報は、矢印の出所に関する情報と、矢印の行き先に関する情報と、矢印が示すイベントに関する情報とを含む。出所に関する情報は、矢印の出所のモジュール名と、この矢印が当該モジュールの何番目の出力からのものかを示す番号とを含む。同様に、行き先に関する情報は、矢印の行き先のモジュール名と、当該矢印の行き先が、行き先モジュールの何番目の入力であるかを示す番号とを含む。イベントに関する情報は、当該イベントのデータの型を示すイベントタイプを含む。
フロー定義ファイル86はさらに,各モジュールのオプションに関する情報を含む。モジュールオプションに関する情報は、モジュール数だけ繰返される。
モジュールオプションに関する情報は、もしセクションにまとめられているオプションがあれば、セクションに関する情報を含み、各セクションに関する情報は、当該セクションに属するオプションの値に関する情報を含む。モジュールオプションに関する情報はまた、セクションにまとめられていないオプションの値に関する情報も含む。
なお本実施の形態では、モジュールに関する情報のうち、枝番が付されたものに関しては、同じモジュールであって枝番がないもののオプション値との差分のみを記述することにより、データ量を削減している。
図6に、フロー定義作成・実行指示装置62のブロック図を示す。図6を参照して、フロー定義作成・実行指示装置62は、フロー定義実行管理装置60から受けるモジュール定義ファイル82(図1を参照されたい。)の内容に基づいて、GUIによりフロー定義を作成するとともに、作成されたフロー定義を指定してフロー定義実行管理装置60に対してデータ処理の実行を指示するためのフロー定義作成・実行指示プログラム140と、モジュール定義ファイル82の内容から抽出される、モジュールタイプに関する情報を格納するためのモジュールタイプテーブル146と、フロー定義実行管理装置60から受取ったモジュール定義ファイル82の内容を格納するためのモジュールテーブル148と、フロー定義作成・実行指示装置62が接続されているコンピュータシステムに属するホストのリストを格納するためのホストテーブル150とを含む。これらテーブルの詳細については後述する。
フロー定義作成・実行指示装置62はさらに、ユーザとの間のインタフェースを実現するためのモニタ142並びにキーボード及びポインティングデバイスを含む入力装置144と、モニタ142及び入力装置144を用いたGUIによりユーザにより画面上に作成されるフロー定義のグラフに関する情報を格納するための、ノードテーブル152及びアークテーブル154とを含む。各モジュールは、フロー定義のグラフ中のノードに相当し、矢印はアークに相当する。矢印に関しては、以後「アーク」と呼ぶ。これらテーブルの詳細についても後述する。
図7を参照して、フロー定義作成・実行指示プログラム140によるフロー定義の画面及びその手法について説明する。図7を参照して、フロー定義作成・実行指示プログラム140によってモニタ142上に表示されるフロー定義画面170は、フロー定義作成領域178と、フロー定義を新規に作成する際に操作する新規ボタン180、作成済みのフロー定義を保存する際に操作する保存ボタン182、作成済みのフロー定義を削除する際に操作する削除ボタン184、作成済みのフロー定義から所定の条件に合致するものを検索する際に操作する検索ボタン186、及び作成済みのフロー定義の実行を指示する際に操作する実行ボタン188とを含む。
画面170はさらに、フロー定義中に使用可能なモジュールタイプをアイコンで表示するモジュールパレット172と、アークを作成する際に操作するアークボタン176とを含む。
画面170を用いたフロー定義の作成は、次のような手順で行なう。まず、マウスポインタ174で示すように、使用したいモジュールのアイコンをモジュールパレット172からフロー定義作成領域178上に、ドラッグ・アンド・ドロップして配置する。次に、各モジュールについて、利用可能なモジュールの中でどのモジュールを使用するかを決定し、オプションを設定する。さらに、モジュール間にアークを配置し、モジュール間の入出力関係を定義する。最後に、各アークのイベントタイプを設定する。
例えば画面上で配置されたモジュールの矩形を選択(マウスでクリック)することにより、そのモジュールタイプのモジュールとして利用可能なものの選択画面が表示される。モジュールが選択されると当該モジュールのオプションを設定する画面が表示される。オプションを設定すると、当該モジュールのモジュール定義ファイル82に記述されたオプション情報に従ったチェックが行なわれ、誤りがあればエラーメッセージが表示され再入力が促される。
アークを選択(アークをマウスでダブルクリック)すると、当該アークのイベントタイプを選択する画面が表示される。ここで表示されるイベントタイプは、アークの出所のモジュールの出力イベントタイプとしてリストされているものからなる集合と、アークの行き先のモジュールの入力イベントタイプとしてリストされているものからなる集合との共通集合(積集合)の要素である。モジュールの組合せからアークのイベントタイプが一意に定まる場合、そのイベントタイプが自動的に設定される。
こうした操作には、モジュールタイプテーブル146、モジュールテーブル148、及びホストテーブル150の情報が使用され、作成されるフロー定義に関する情報はノードテーブル152及びアークテーブル154に保持される。
画面170を用いた操作は、例えば画面上にオブジェクトを配置することでアプリケーションプログラムの骨格を作成するアプリケーション作成ツールにおいて行なわれるものと本質的に変わらない。
図8にモジュールタイプテーブル146の構成を示す。図8を参照して、モジュールタイプテーブル146の各エントリは、モジュールタイプと、画面170上に当該モジュールタイプを表示する際の表示文字列とを含む。これら情報は、フロー定義実行管理装置60から与えられるモジュール定義ファイル82から抽出できる。
図9に、モジュールテーブル148の構成を示す。図9を参照して、モジュールテーブル148の各エントリは、モジュール識別番号(ID)と、当該モジュールのモジュールタイプと、そのモジュールを実行するプロセスのプログラムへのフルパスとを含む。このモジュールテーブル148の情報も、モジュール定義ファイル82から抽出できる。
図10に、ホストテーブル150の構成を示す。図10に示すように、ホストテーブル150は、システム内で利用可能なホスト名をリストしたものである。本実施の形態では、ホストテーブル150の内容はフロー定義実行管理装置60が管理し、フロー定義作成・実行指示装置62に通知する。
図11に、ノードテーブル152の構成を示す。図11を参照して、ノードテーブル152の各エントリは、ノードIDと、当該ノードを構成するモジュールタイプと、当該モジュールの、画面表示の矩形の左上座標及び右下座標と、このモジュールを実行するプログラムのフルパス名と、実行される実行モジュールIDと、このモジュールが実行されるホストを示す実行マシン名とを含む。
図12に、アークテーブル154の構成を示す。図12を参照して、アークテーブル154の各エントリは、開始ノードIDと、終了ノードIDと、当該アークのイベントタイプとを含む。
フロー定義の新規作成では、当初、図11のノードテーブル152及び図12のアークテーブル154は空であるが、図7に示すフロー定義作成領域178上にモジュール及びアークが配置され、モジュールのパラメータ、及びアークのイベントタイプが決定されていくと、これらテーブルの内容が少しずつ特定される。最終的にフローが完成すると、ノードテーブル152及びアークテーブル154の内容が確定し、それらに基づいてフロー定義ファイルの内容を作成できる。
フロー定義の修正では、図1に示すフロー定義実行管理装置60から任意のフロー定義を受取り、それらに基づいてノードテーブル152及びアークテーブル154の内容を作成する。以後の動作はフロー定義の新規作成と同様である。
フロー定義によって定められるモジュール間のグラフの例を図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とを含む。
例えば第1のプロセス222をあるコンピュータ上で実行し、第2のプロセス224を別のコンピュータで実行することで、全体的な処理速度の向上を図ることができる。もちろん、第1のプロセス222と第2のプロセス224とを同一のコンピュータ上で動作させても問題はない。しかし、これらシステムをフロー定義に基づいてどのように構成し、効率よく動作させるかという問題がある。本実施の形態では、こうしたデータ処理システム200をフロー定義に基づいて構成し、効率よく動作させるため、以下に述べるようなモジュール実行の機構を用いている。
図14に本実施の形態に係るフロー定義実行管理装置60により実現されるデータ処理システム250のブロック図を示す。このシステム250は、例えば図1に示すフロー定義ファイル86の一つに従って実現されるものであり、図13に示すシステム200と同様、第1のプロセス252及び第2のプロセス254を含む。フロー定義ファイル86は、本例では第1のプロセス252及び第2のプロセス254をそれぞれ構成するモジュール間のデータの流れを定義している。
本システム250はさらに、第1のプロセス252及び第2のプロセス254、並びに本システム250の外部とに接続され、第1のプロセス252及び第2のプロセス254内のモジュール間、及びこれらモジュールと本システム250の外部との間のイベントの流れをフロー定義ファイル86の記述に従って制御するためのモジュールマネージャ92とを含む。
第1のプロセス252は、第1のモジュール260と、第2のモジュール262と、第3のモジュール264と、これら3つのモジュール260,262及び264の間、ならびにこれらモジュールとモジュールマネージャ92との間のイベントの流れをフロー定義ファイル86の記述に従って制御し、プロセス内のメッセージ通信を管理するためのメッセージマネージャ266とを含む。
第2のプロセス254も第1のプロセス252と同様、第4のモジュール270と、第5のモジュール272と、第6のモジュール274と、これら3つのモジュール270,272及び274の間、ならびにこれらモジュールとモジュールマネージャ92との間のイベントの流れをフロー定義ファイル86の記述に従って制御するためのメッセージマネージャ276とを含む。
モジュール260〜274は、いずれも入力と出力とを一個以上有する。各モジュールは、入力されたデータをそのモジュール特有の機能に従って内部で処理し、結果を出力する機能を持つ。例えば、音声の特徴抽出モジュールは、音声データを入力とし、その特徴パラメータを出力とする。
モジュールマネージャ92は、本システム250の外部から与えられる入力を受けるための入力モジュール282と、本システム250からの出力を外部に与えるための出力モジュール284と、入力モジュール282、出力モジュール284、メッセージマネージャ266及びメッセージマネージャ276に接続され、フロー定義ファイル86の記述に基づいて、各プロセス252及び254、並びに入力モジュール282及び出力モジュール284の間のイベントの流れを制御するためのメッセージマネージャ280と、図1に示すモジュールマネージャ92からデータ処理システム250の起動指示を受け、データ処理システム250の実行に必要な処理と起動処理、終了処理を実行するための起動・終了制御部286とを含む。メッセージマネージャ280は、イベントの流れを制御することにより、プロセス間のメッセージ通信を管理するものということができる。
図15に、モジュール間で通信されるイベント320の構成を示す。図15を参照して、イベント320は、送信元モジュールIDと、送信先モジュールIDと、イベントタイプと、データの内容とを含む。イベントタイプとは、イベントに含まれるデータの型のことであり、前述したWAVE型、FEATURE型等がその一例である。
図16にメッセージマネージャ280の構成をブロック図形式で示す。図16を参照して、メッセージマネージャ280は、メッセージマネージャ280に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントタイプとをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有するフロー管理テーブル292と、どのプロセスにどのモジュールが含まれているかを検索できる構成を持つモジュール管理テーブル294と、起動・終了制御部286から与えられる起動指示に応答し、フロー定義ファイル86の記述に基づいてフロー管理テーブル292及びモジュール管理テーブル294を作成するためのテーブル作成処理部296とを含む。
メッセージマネージャ280はさらに、第1のプロセス252、第2のプロセス254、入力モジュール282及び出力モジュール284に接続され、第1のプロセス252、第2のプロセス254及び入力モジュール282から与えられるイベントを、フロー管理テーブル292及びモジュール管理テーブル294の記述に基づいて第1のプロセス252、第2のプロセス254、及び出力モジュール284のいずれかに出力するためのメッセージ振分処理部290を含む。
図17にフロー管理テーブル292の構成の一例を、図18にモジュール管理テーブル294の構成の一例を、それぞれ示す。図17を参照して、フロー管理テーブル292は複数のエントリを含み、各エントリは、送信元モジュールIDと、イベントタイプと、送信先モジュールIDとを含む。これらは、図4に示すフロー定義ファイル86のアークの記述に相当する。受信したイベントに含まれる送信元モジュールID及びイベントタイプ(図15を参照されたい。)をキーにフロー管理テーブル292を検索することにより、当該イベントをどのモジュールに送信すべきかが、送信先モジュールIDの欄を見ることで判定できる。なお図17に示すフロー管理テーブル292は、図14に示す構成に必要な情報の一部のみを示す。
図18を参照して、モジュール管理テーブル294も複数のエントリを含む。各エントリはモジュールに対応するものであり、そのモジュールが属するプロセス名と、そのモジュールのモジュールIDとを含む。図18に示すモジュール管理テーブル294も、図14に示す本システム250の構成に必要な情報の一部のみを示す。
次に図14の第1のプロセス252及び第2のプロセス254を構成する各部について説明する。各モジュールの構成については本発明とは直接関係ないので、それらについての詳細な説明は省略する。またメッセージマネージャ266とメッセージマネージャ276とは同じ構成を有しているので、以下、メッセージマネージャ266について説明する。
図19を参照して、メッセージマネージャ266は、メッセージマネージャ266に入力されるイベントの送信先モジュールを決定するため、イベントの送信元モジュールIDとイベントタイプとをキーとして、送信先モジュールのモジュールIDを検索できるような構成を有する、図16に示すものと同様形式のフロー管理テーブル302と、このメッセージマネージャ266が管理するプロセス(本実施の形態では第1のプロセス252)にどのモジュールが含まれているかを記述したモジュール管理テーブル300と、図16に示すフロー管理テーブル292を複写してフロー管理テーブル302を作成するためのフロー管理テーブル作成処理部306と、フロー定義ファイル86の記述に基づき、第1のプロセス252に含まれるモジュールIDを含むモジュール管理テーブル300を作成するためのモジュール管理テーブル作成処理部304とを含む。
メッセージマネージャ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とを含む。
図20にモジュール管理テーブル300の形式を模式的に示す。メッセージマネージャ266が管理する第1のプロセス252の場合、そこに含まれるモジュールは第1のモジュール260、第2のモジュール262、及び第3のモジュール264である。従ってこの場合のモジュール管理テーブル300の内容は図20に示した通りとなる。
図21に、モジュールマネージャ92によるデータ処理システム250の制御処理のフローチャートを示す。図21を参照して、モジュールマネージャ92の起動・終了制御部286は、フロー定義ファイル86の指定を伴う実行指示をフロー定義作成・実行指示装置62から受けると、ステップ340で、指定されたフロー定義ファイルを読み込む。そして、ステップ342〜346の処理をフロー定義ファイル内に記述された全てのプロセスについて繰返す。
すなわち、ステップ342では、フロー定義ファイル内に記述されたプロセスを、同じくフロー定義ファイル内の当該プロセスについて記述されたホストに起動する。そして、このプロセスの定義内に記述された全てのモジュールについてステップ344及び346の処理を繰返す。
ステップ344では、プロセスの定義内に記述されたモジュールのインスタンスを生成する。そしてステップ346で、生成されたモジュールインスタンスに、同じモジュールについてプロセスの定義内に記述されたオプション/パラメータ値を配信する。
以上の処理を、全プロセス及び全モジュールに対し繰返すことで、データ処理システム250を構成する各モジュールを含むプロセスが、指定されたホスト上に立ち上がる。
ステップ348で、図16に示すテーブル作成処理部296及び図19に示すフロー管理テーブル作成処理部306に指示を与えて、ステップ340で読込んだフロー管理ファイルの内容に従い、フロー管理テーブル292及び302を作成する。さらにステップ350で、図16に示すテーブル作成処理部296及び図19に示すモジュール管理テーブル作成処理部304に指示を与え、フロー定義ファイルの内容に従ってモジュール管理テーブル294及び300を作成する。ステップ352で、先頭モジュール(入力モジュールがある場合には入力モジュール)に開始指示を与え、最初のイベントを発生させこのデータ処理システムの入力に与える。以後は、メッセージマネージャ280及び各プロセス内のメッセージマネージャ266,276によるイベント配信によってシステムが動作し、システム内の各モジュールで処理されたデータが出力ファイルに出力される。
ステップ354では、データ処理システム250内に未処理のイベントがあるか否かを判定し、イベントがなくなるまで待ち、未処理のイベントがなくなったタイミングで、ステップ342で起動した全てのプログラムをステップ356で終了させ、自分も終了する。
以上がモジュールマネージャ92の起動・終了制御部286によるデータ処理システム250の起動・終了制御の処理の概略である。
メッセージマネージャ280のメッセージ振分処理部290及びメッセージマネージャ266のメッセージ振分処理部308も、後述するようにコンピュータハードウェア上で実行されるプログラムにより実現される。本実施の形態の場合、メッセージ振分処理部290及び308が受信したイベントの送信元がプロセス内のものか、プロセス外のものか、によって異なる処理を行なう。それぞれを実現するコンピュータプログラムの制御構造について、特にメッセージ振分処理部308について図22及び図23を参照して説明する。
図22は、プロセス内のモジュールからイベントを受信した場合に、図19に示すメッセージマネージャ266のメッセージ振分処理部308が実行する処理プログラムのフローチャートである。図16に示すメッセージマネージャ280のメッセージ振分処理部290についても同様である。図22を参照して、プロセス内モジュールからイベントを受信すると、ステップ430で、当該イベントの送信元モジュールIDとイベントタイプとをキーにフロー管理テーブル302を検索し、該当する全てのアークを取出す。
続いて、ステップ430の処理の結果見つかった全てのアークについて、以下の処理を行なう。すなわち、ステップ432で、当該アークの送信先モジュールIDが当該プロセス内のモジュールのものか否かを判定する。送信先モジュールIDが当該プロセス内のモジュールのものであればステップ434に進み、さもなければステップ440に進む。
ステップ434では、イベントの送信先に、検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールが同じプロセス内なので、ステップ436でこのイベントをイベントキュー310に出力する。
一方ステップ440では、イベントの送信先に、同じく検索されたアークに含まれる送信先モジュールIDを設定する。送信先モジュールがプロセス外に存在しているので、ステップ442でこのイベントをモジュールマネージャ92に出力する。
ステップ434、436、440及び442の処理を、ステップ430で見出された全てのアークに対して行なうことにより、一つのイベントに対し、見つかった数だけのイベントが生成され、送信先モジュールの所在に応じて、それぞれイベントキュー310又はモジュールマネージャ92に送信されることになる。
図23は、プロセス外からイベントを受信した場合に、図16に示すメッセージマネージャ280のメッセージ振分処理部290が実行する処理プログラムのフローチャートである。図23を参照して、プロセス外からイベントを受信すると、ステップ460で、モジュール管理テーブル294中でイベント中の送信先モジュールIDを検索し、当該送信先モジュールを含むプロセスを決定する。ステップ462では、決定されたプロセスが自分自身か否かを判定する。もし自分自身が送信先であればステップ464で自己のイベントキューに当該イベントを格納する。もし自分自身が送信先でなければ、ステップ466で送信先モジュールを含むプロセスに当該イベントを送信する。
一方、図19に示すメッセージマネージャ266がプロセス外からイベントを受信した場合、当該イベントの送信先については、プロセス内であることが保証されている。従って当該イベントを図19に示すメッセージ振分処理部308に格納する。
−動作−
図1〜図23に示すシステムは、以下のように動作する。動作は、フロー定義の作成と、作成したフロー定義に基づいてデータ処理システム250を動作させる処理との、大きく分けて二つの局面に分かれる。最初に、フロー定義について説明する。
利用者が図6に示すフロー定義作成・実行指示プログラム140を起動すると、利用可能なモジュール定義ファイルの内容及び使用可能なホストのリストがフロー定義実行管理装置60からフロー定義作成・実行指示装置62に送信される。フロー定義作成・実行指示装置62は、受信した情報に従ってモジュールタイプテーブル146、モジュールテーブル148及びホストテーブル150を作成する。画面には図7に示すような画面が表示される。以下では、フロー定義を新規に作成する場合を例にしてフロー定義作成・実行指示装置62の動作を説明する。
図7を参照して、利用者が画面170上で新規ボタン180を押すことで、フロー定義作成領域178が空白となる。モジュールパレット172には使用可能なモジュールタイプがアイコンとモジュールタイプ名により表示される。利用者がモジュールパレット172上のいずれかのアイコンを選び、ドラッグ・アンド・ドロップでフロー定義作成領域178上に配置することにより、図6に示すノードテーブル152中に、そのモジュールに対応するエントリが作成される。利用者が新たなモジュールを配置するたびに、ノードテーブル152に新たなエントリが作成される。なお、図11を参照して、この時点では各エントリのうち、ノードID、モジュールタイプ、及び座標のみが設定され、他の項目は空白である。
利用者はさらに、各モジュールの間を矢印(アーク)で接続していく。アークが一つ配置されるたびに、アークテーブル154内に対応のエントリが作成される。ただしこの時点では、図12に示す情報のうち、開始ノードIDと終了ノードIDのみが格納され、イベントタイプは未定義である。
モジュールの一つの矩形をクリックすると、モジュール設定フレームが表示される。モジュール設定フレームでは、当該モジュールタイプのうちで使用可能なモジュールの一覧が表示される。この一覧は、図9に示すモジュールテーブル148から作成できる。表示されるモジュールのうちの一つを選択することで、どのモジュールを使用するかが確定する。さらに、このモジュールをどのホスト上で実行させるかについても指定する。
さらに、使用するモジュールが確定すると、当該モジュールで指定できるオプション/パラメータの入力フレームが画面左下に表示される。各オプション/パラメータを設定すると、モジュール定義情報に従ったチェックが行なわれ、エラーがあればエラー表示が行なわれ、再入力が促される。
ユーザがアークの一つをダブルクリックすると、イベントタイプ指定のためのリストボックスが表示される。リストボックスには、出所側のモジュールの出力イベントの型の集合と、行き先側のモジュールの入力イベントの型の集合との共通集合(積集合)の要素がリストされる。いずれかを選択することにより、当該アークのイベントタイプが定まり、図12に示すアークテーブル154のイベントの領域に選択されたイベントタイプを示す情報が格納される。なお、使用可能なイベントが一種類しかない場合には、アークのイベントタイプは自動的に設定される。
こうして、全てのモジュールについて使用モジュール、ホスト、及びオプション/パラメータが決定され、各アークのイベントタイプが決定すると、それらに基づいてフロー定義を作成できる。フロー定義はフロー定義作成・実行指示装置62からフロー定義実行管理装置60に転送され、フロー定義ファイル86のうちの一つとしてフロー定義実行管理装置60に格納される。
フロー定義の修正の場合も、最初にフロー定義ファイル86のうちの一つを選択して当該ファイルの内容をフロー定義作成・実行指示装置62に転送することを除いて、作成の場合と同様である。
作成したフロー定義に従ってデータ処理システム64を動作させたい場合には、次のような操作を行なう。図7を参照して、「実行」ボタン188を押すと、フロー定義ファイルの選択ダイアログが表示される。そのうちの一つを選択することで、フロー定義作成・実行指示装置62からフロー定義実行管理装置60に対して当該フローファイルに基づくデータ処理の開始が指示される。
図1に示す管理プログラム80は、その指示に従いモジュールマネージャ92に対して選択されたフロー定義ファイルを特定する情報を与えるとともに、データ処理の開始を指示する。
図14を参照して起動・終了制御部286は、この指示に応答して、指定されたフロー定義ファイルを読込み(図21のステップ340)、データ処理システム250の各プロセスを、指定されたホスト上に起動する(ステップ342)。さらに、フロー定義ファイルに記述された各モジュールについて、指定されたプロセス内にインスタンスを生成し(ステップ344)、フロー定義ファイル内に記述されたオプション/パラメータを配信する(ステップ346)。その後、図16に示すテーブル作成処理部296、及び図19に示すフロー管理テーブル作成処理部306、モジュール管理テーブル作成処理部304に指示を与えて各フロー管理テーブル292及び302、並びにモジュール管理テーブル294及び300を作成させる(図21のステップ348,350)。以上でデータ処理システム250のセットアップが完了する。
次に起動・終了制御部286は、図14に示す入力モジュールに対し、入力ファイルからデータを読出しイベントとしてメッセージマネージャ280に与えるよう、始動の指示を与える(図21のステップ352)。入力モジュール282は入力ファイルからフレームデータを作成し、イベントとしてメッセージマネージャ280に与える。
図16を参照して、メッセージマネージャ280のメッセージ振分処理部290は、フロー管理テーブル292及びモジュール管理テーブル294を参照して、当該イベントの送信先のモジュールを含むプロセスを決定し(図23のステップ460)、イベントを当該プロセスに送信する(ステップ464又は466)。本例では、例えば第1のプロセス252にこのイベントが送信されるものとする。
図19を参照して、メッセージマネージャ266のメッセージ振分処理部308は、このイベントがプロセス外からのものなので、当該イベントをイベントキュー310に格納する。プロセス内メッセージ配信部312が、イベントキュー310からイベントを読出し、送信先モジュールIDにより指定されるモジュールにイベントを配信する。
このイベントを受けたモジュールは、結果のイベントをメッセージマネージャ266のメッセージ振分処理部308に返信してくる。このとき、イベントの送信元モジュールID及びイベントタイプには、それぞれ当該モジュールにより値が設定されている。送信先モジュールIDについては設定されていない。
メッセージ振分処理部308は、受けたイベントの送信元モジュールIDとイベントタイプとをキーにフロー管理テーブル302を検索し(図22のステップ430)、一致するアークを得る。メッセージ振分処理部308はさらに、モジュール管理テーブル300を参照して、当該送信先モジュールが第1のプロセス252内か否かを判定する(ステップ432)。第1のプロセス252内であれば(すなわち当該モジュールIDがモジュール管理テーブル300内に存在すれば)、当該アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ434)、メッセージ振分処理部308はこのイベントをイベントキュー310に書出す(ステップ436)。
送信先が第1のプロセス252外であれば、アークに含まれている送信先モジュールIDをイベントの送信先モジュールIDに設定し(ステップ440)、モジュールマネージャ92にこのイベントを送信する(ステップ442)。
モジュールマネージャ92のメッセージマネージャ280では、最初の入力データを受けた場合と同様、フロー管理テーブル292とモジュール管理テーブル294とに基づいてこのイベントの送信先プロセスを決定し、そのプロセスのメッセージマネージャにイベントを送信する。フロー管理テーブル292により、システム外に出力することが示されている場合、メッセージ振分処理部290は出力モジュール284にイベントを出力する。出力モジュール284は、このイベントをさらに外部に出力する。
以下、メッセージマネージャ280のメッセージ振分処理部290、並びに第1のプロセス252及び第2のプロセス254のメッセージマネージャ266及び276は、上記したのと同様の処理を繰返す。その結果、外部から次々に入力モジュール282に入力されたデータは、それぞれ所定のモジュールによって処理され、結果のイベントが出力モジュール284から出力される。
上に説明したシステム250では、各モジュールは自己の処理した結果のイベントをどのモジュールに送信するかについては全く意識する必要がない。どのプロセスにおいても、モジュールではなくメッセージマネージャが送信先モジュールを決定し、さらに送信先モジュールが同一プロセス内であればイベントキューを用いて当該イベントを配信し、プロセス外であれば、モジュールマネージャに当該イベントを配信する。イベントの配信を受けたモジュールマネージャが、送信先モジュールIDに基づいて送信先のプロセスを決定し、送信する。
従って、モジュールの独立性が極めて高くなり、システム構成に従ってモジュールを変更したりする必要はない。さらに、プロセス間通信については、どのプロセスも送信先のプロセスを意識せず、すべてモジュールマネージャに送信するだけでよい。従って、各プロセス間通信のためのオーバヘッドが少なくなる。
以上のように本実施の形態のシステムによれば、モジュール定義に従ってフロー定義を作成し、そのフロー定義を用いて複数のモジュールからなるシステムを効率よく設計し、かつ簡略な操作で実際に動作させることができる。モジュール間の接続関係を変えたり、使用するモジュールを、同じモジュールタイプで別のモジュールによって置換してシステムの性能を比較したりする作業が簡単に行なえる。
また、上記したように設計され、かつ動作する各モジュール間の通信を、各プロセス内とモジュールマネージャ内に設けたメッセージマネージャによって管理でき、各モジュールはイベントの入力となるモジュール及びイベントの行き先のモジュール等を意識する必要はない。従って各モジュールの独立性を高め、自由にシステムを組むことが可能になる。また、データはプロセス間を転送されながら各モジュールで処理され、かつ各プロセスではイベントキューによって処理時間の調整を行ないながら正しい順序でデータ処理を行なうことができる。その結果、リアルタイムで、音声認識等の多量のデータ処理を行なうことができる。またモジュールの組合せが自由にできるので、異なる構成のシステムの性能実験等を簡単に、かつ短い時間に行なうことが可能になる。
−コンピュータによる実現−
この実施の形態のシステムは、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図24はこのコンピュータシステム530の外観を示し、図25はコンピュータシステム530の内部構成を示す。なお、前述したとおりこのシステムは、これら複数のコンピュータをネットワーク等で結合したものによって実現することもできる。
図24を参照して、このコンピュータシステム530は、FD(フレキシブルディスク)ドライブ552及びCD−ROM(コンパクトディスク読出専用メモリ)ドライブ550を有するコンピュータ540と、キーボード546と、マウス548と、モニタ542とを含む。
図25を参照して、コンピュータ540は、FDドライブ552及びCD−ROMドライブ550に加えて、CPU(中央処理装置)556と、CPU556、FDドライブ552及びCD−ROMドライブ550に接続されたバス566と、ブートアッププログラム等を記憶する読出専用メモリ(ROM)558と、バス566に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ(RAM)560とを含む。コンピュータシステム530はさらに、プリンタ544を含んでいる。
コンピュータ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にプログラムをロードしてもよい。
このプログラムは、コンピュータ540(又はコンピュータ540と通信可能な他のコンピュータ)にこの実施の形態に係るフロー定義作成・実行指示装置62、フロー定義実行管理装置60、並びにシステム250に含まれる各プロセス252、254、モジュールマネージャ92、各プロセス中で実行されるモジュール等としての動作を行なわせる複数の命令を含む。このために必要な基本的機能のいくつかはコンピュータ540上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、もしくはコンピュータ540にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステムを実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した装置及びシステムを実現する命令のみを含んでいればよい。コンピュータシステム530の動作は周知であるので、ここでは繰返さない。
上記した実施の形態では、モジュール管理テーブルについては各プロセスに用意した。しかし本発明はそのような実施の形態には限定されず、モジュール管理テーブルをシステム内の全てのモジュールで同じものを使用するようにしてもよい。また、上記実施の形態では、モジュール識別子はシステム内で一意であるものとした。しかし本発明はそのような実施の形態には限定されず、プロセス内でのみモジュール識別子が一意になるようにしてもよい。ただしその場合、イベント通信ではプロセス名とモジュール識別子とによって送信元及び送信先を特定する必要がある。
また、上記した実施の形態では、フロー定義作成・実行指示装置62はブラウザプログラム上で動作するプログラムにより実現されるものであることを前提としている。しかし本発明はそのような実施の形態には限定されず、フロー定義作成・実行指示装置62をブラウザと異なる独自のアプリケーションプログラムで実装してもよい。また、フロー定義作成・実行指示装置62としての機能の実質的な部分を全てフロー定義実行管理装置60に持たせ、フロー定義作成・実行指示装置62ではブラウザプログラム上の表示及びフロー定義のための操作のみを行なうようにしてもよい。
さらに、フロー定義ファイル86、モジュール定義ファイル82、入力ファイル90等がフロー定義実行管理装置60と同一のコンピュータ上に存在しているものに限定する必要はなく、ネットワークを介してアクセス可能な他のシステム内に存在しているものを利用可能なシステムとして設計してもよい。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
本発明の一実施の形態に係る音声認識データ処理システム50のブロック図である。 モジュール定義ファイルの構成を示す図である。 モジュール定義ファイルの例を示す図である。 フロー定義ファイルの構成を示す図である フロー定義ファイルの例を示す図である。 フロー定義作成・実行指示装置62のブロック図である。 フロー定義作成・実行指示装置62の表示画面の模式図である。 モジュールタイプテーブル146の構成を示す模式図である。 モジュールテーブル148の構成を示す模式図である。 ホストテーブル150の構成を示す模式図である。 ノードテーブル152の構成を示す模式図である。 アークテーブル154の構成を示す模式図である。 各々複数のモジュールを含む複数のプロセスからなるシステムの構成例を示す図である。 本発明の一実施の形態に係るシステム250のブロック図である。 イベント320の構成を示す図である。 図14に示すモジュールマネージャ92のメッセージマネージャ280のブロック図である。 フロー管理テーブル292の構成を示す図である。 モジュール管理テーブル294の構成を示す図である。 図14に示す第1のプロセス252のメッセージマネージャ266のブロック図である。 モジュール管理テーブル300の構成を示す図である。 起動・終了制御部286が実行する処理の制御構造を示すフローチャートである。 プロセス内イベントを受信したときの、各メッセージ振分処理部で実行される処理を示すフローチャートである。 モジュールマネージャ92のメッセージ振分処理部290がプロセス外イベントを受信したときに実行する処理を示すフローチャートである。 本発明の一実施の形態に係るシステム250又はその一部のプロセスを実現するためのコンピュータシステムの外観図である。 図24に示すコンピュータシステムの内部構成を示すブロック図である。
符号の説明
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 起動・終了制御部

Claims (5)

  1. コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するためのデータ処理システム設計装置であって、
    各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、
    前記モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、前記データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、1又は複数のプロセスの定義と、定義されたモジュールの入力と出力との間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を生成するためのフロー定義生成手段とを含み、
    前記1又は複数のプロセスの定義の各々は、当該プロセスを実行するホスト名と、当該プロセスを実現するプログラム名と、当該プロセス内で実行されるべきモジュールに関する情報とを含み、
    さらに、前記フロー定義生成手段により生成されたフロー定義情報を記憶するためのフロー定義情報記憶手段を含む、データ処理システム設計装置。
  2. さらに、
    前記フロー定義生成手段により生成されたフロー定義情報のうちの任意のものをユーザに選択させるフロー定義情報選択機能と、
    前記フロー定義情報選択機能により選択されたフロー定義情報、及び前記モジュール情報記憶手段に記憶されたモジュ−ル情報に従って、コンピュータシステム上で前記選択されたフロー定義情報に従うデータ処理システムを実現するために必要なモジュールのインスタンスを生成するインスタンス生成機能と、
    前記インスタンス生成機能により生成されたモジュールのインスタンス間で、前記選択されたフロー定義情報内の、前記モジュール間の接続関係に従ってデータを配信するデータ配信機能とを有する、請求項1に記載のデータ処理システム設計装置。
  3. さらに、前記インスタンス生成機能により生成された各モジュールのインスタンスに、前記選択されたフロー定義情報内の、それぞれのモジュールのインスタンスのためのオプション又はパラメータ値を配信する機能有する、請求項2に記載のデータ処理システム設計装置。
  4. 前記モジュールの仕様は、当該モジュールの処理タイプと、当該モジュールを実現するプログラムを特定する情報と、当該モジュールの入力のデータ型の集合及び出力のデータ型の集合を特定するデータ型情報とを含み、
    前記フロー定義生成手段は、
    前記データ処理システムにおいて必要とされる処理タイプのモジュールをユーザの選択に従って特定するモジュール特定機能と、
    前記モジュール特定手段により特定されたモジュールの任意の二つの間の、入力と出力との間の接続をユーザの指示に従って定義する接続特定機能と、
    前記接続特定機能により互いに接続される二つのモジュールの一方の入力のデータ型の集合と、他方の出力のデータ型の集合との積集合に属するデータ型のうちの一つをユーザに選択させ、当該接続により表されるモジュール間で移動されるデータの型を特定して前記接続特定機能により特定された接続の属性に追加するデータ型特定機能と、
    前記モジュール特定機能により特定されたモジュールに関する情報と、前記データ型特定機能により特定された接続とに基づいて、前記フロー定義を生成する機能とを有する、請求項1〜請求項3のいずれかに記載のデータ処理システム設計装置。
  5. コンピュータ上で動作可能なモジュールを組合せることによりデータ処理システムを設計するためのデータ処理システム設計装置としてコンピュータを動作させるコンピュータプログラムであって、
    前記コンピュータは、
    各モジュールの仕様、及びオプション又はパラメータ情報を含むモジュール情報を記憶するためのモジュール情報記憶手段と、
    1又は複数のプロセスの定義と、定義されたモジュールの入力と出力との間の接続関係と、指定された各モジュールのオプション又はパラメータ値とを含むフロー定義情報を記憶するためのフロー定義情報記憶手段とを含み、
    前記1又は複数のプロセスの定義の各々は、当該プロセスを実行するホスト名と、当該プロセスを実現するプログラム名と、当該プロセス内で実行されるべきモジュールに関する情報とを含み、
    前記コンピュータプログラムは、前記コンピュータを、
    前記モジュール情報記憶手段に記憶された各モジュールの仕様、及びオプション又はパラメータ情報に基づいて、前記データ処理システム内の複数のモジュール間の接続関係をユーザが定義すること、及び当該データ処理システム内の各モジュールのオプション又はパラメータ値をユーザが指定することを補助し、前記フロー定義情報を生成して前記フロー定義情報記憶手段に記憶させるためのフロー定義生成手段として機能させる、コンピュータプログラム。
JP2004104090A 2004-03-31 2004-03-31 データ処理システム設計装置及びそのためのコンピュータプログラム Expired - Lifetime JP4691895B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004104090A JP4691895B2 (ja) 2004-03-31 2004-03-31 データ処理システム設計装置及びそのためのコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004104090A JP4691895B2 (ja) 2004-03-31 2004-03-31 データ処理システム設計装置及びそのためのコンピュータプログラム

Publications (2)

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

Family

ID=35325877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004104090A Expired - Lifetime JP4691895B2 (ja) 2004-03-31 2004-03-31 データ処理システム設計装置及びそのためのコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4691895B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4735373B2 (ja) * 2005-11-21 2011-07-27 ヤマハ株式会社 ネットワークを介して接続された複数の機器で構成される音楽システムの制御装置及び該音楽システムを制御するための統合的なソフトウェアプログラム
JP4952024B2 (ja) * 2005-11-21 2012-06-13 ヤマハ株式会社 ネットワークを介して接続された複数の機器で構成される音楽システムの制御装置及び該音楽システムを制御するための統合的なソフトウェアプログラム
JP2007219175A (ja) * 2006-02-16 2007-08-30 Univ Waseda 認識器構築システム、認識器構築方法、組立サービス提供システム、およびプログラム
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 (ja) * 2010-11-05 2012-05-10 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法およびプログラム
JP6578028B2 (ja) * 2018-02-08 2019-09-18 株式会社東芝 モデル編集ユニット、モデル編集方法、プログラム、及び記憶媒体
JP7150631B2 (ja) * 2018-10-17 2022-10-11 エヌ・ティ・ティ・コミュニケーションズ株式会社 制御装置、サービス提供システム、制御方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163262A (ja) * 1998-11-27 2000-06-16 Nec Corp システム設計手法
JP2001216142A (ja) * 2000-02-04 2001-08-10 Hitachi Ltd プログラム作成支援装置
JP2003223321A (ja) * 2002-01-31 2003-08-08 Toshiba Corp ソフトウェア部品作成方法、ソフトウェア部品作成プログラム及びソフトウェア部品作成装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143309A (ja) * 1991-11-18 1993-06-11 Hitachi Ltd データフローモデルの記述装置
JP3171361B2 (ja) * 1994-05-06 2001-05-28 ヤマハ株式会社 Dspプログラミング装置
JPH08190477A (ja) * 1995-01-11 1996-07-23 Nippon Telegr & Teleph Corp <Ntt> 通信網オペレーションシナリオ実現方法およびそのプログラムの作成方法と実行方法
JPH1083420A (ja) * 1996-06-28 1998-03-31 Fujitsu Ltd モデルベースの業務支援システムおよび方法
JPH1124904A (ja) * 1997-07-01 1999-01-29 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成プログラムを記憶した記憶媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163262A (ja) * 1998-11-27 2000-06-16 Nec Corp システム設計手法
JP2001216142A (ja) * 2000-02-04 2001-08-10 Hitachi Ltd プログラム作成支援装置
JP2003223321A (ja) * 2002-01-31 2003-08-08 Toshiba Corp ソフトウェア部品作成方法、ソフトウェア部品作成プログラム及びソフトウェア部品作成装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3272281B2 (ja) データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
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
JP4691895B2 (ja) データ処理システム設計装置及びそのためのコンピュータプログラム
JP5426938B2 (ja) 情報処理装置、情報処理方法
US7765522B2 (en) System and method for providing an embedded complete controller specification through explicit controller overlays
CN106155768A (zh) 分屏运行应用的方法及装置
JP2018142054A (ja) 開発支援システムおよび方法
JP2007219649A (ja) ダイヤグラム編集装置
JP2002259468A (ja) Cadデータを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびcadデータを管理するためのプログラム
JP5177082B2 (ja) 開発支援装置,プログラム
JP3294691B2 (ja) オブジェクト指向システム構築方法
JP2002007651A (ja) ワークフロー作成システム
CN110457107A (zh) 组态软件操作指令管理方法、装置和***
JP2007164532A (ja) タスク表示装置、タスク表示方法及びタスク表示プログラム
JPH086955A (ja) 情報検索装置及び方法
WO2023238283A1 (ja) 表示制御システム、表示制御方法、および、表示制御プログラム
JP2002055818A (ja) アプリケーション構築方法及び実行方法並びにアプリケーション構築装置及びアプリケーション実行システム並びにアプリケーション構築方法を記録した記録媒体及びアプリケーション実行方法を記録した記録媒体
JP5447621B2 (ja) プログラム生成装置、プログラム生成方法ならびにプログラム
JP5300782B2 (ja) 連携定義情報設定装置及びプログラム
JP2002259469A (ja) Cadデータを管理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびプログラム
JP2010015512A (ja) コンフィグ設定管理モデル作成装置、コンフィグ設定管理モデル作成方法およびそのプログラム
JPH04257973A (ja) 設計支援装置及び設計支援方法

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