以下に添付図面を参照して、この発明にかかる解析支援プログラム、該プログラムを記録した記録媒体、解析支援装置、および解析支援方法の好適な実施の形態を詳細に説明する。
(計算機システムのシステム構成図)
まず、この発明の実施の形態にかかる計算機システムのシステム構成について説明する。図1は、この発明の実施の形態にかかる計算機システムのシステム構成図である。図1において、計算機システム100は、解析支援装置101と、端末装置102と、複数の資源計算機103(図1では3台)とが、ネットワーク110を介して通信可能となって接続されている。
解析支援装置101は、シミュレーション結果を資源計算機103から受信して、そのシミュレーション結果に対して各種の解析処理を実行するコンピュータ装置である。また、解析支援装置101は、解析処理のコンテンツタイプに応じて解析結果を一元管理し、ユーザからの要求に応じて解析結果を端末装置102に提供する機能を有する。
また、解析支援装置101は、資源計算機103からのシミュレーション結果を集約して格納するシミュレーション結果DB200と、シミュレーション結果を解析した解析結果を格納する解析結果DB300と、を備えている。シミュレーション結果DB200および解析結果DB300については後述する。
端末装置102は、ユーザからサービスの要求を受け付けるコンピュータ装置である。サービスの要求とは、たとえば、分子動力学計算などのシミュレーション結果の解析要求やその解析結果の閲覧要求などである。ユーザは、端末装置102においてWebブラウザを立ち上げることにより、解析支援装置101から提供される解析結果(Webページ)を閲覧することができる。
資源計算機103は、分子動力学計算などのシミュレーションを実行するコンピュータ装置である。各資源計算機103におけるシミュレーションが終了すると、そのシミュレーション結果を解析支援装置101に送信する。
計算機システム100では、膨大な計算量を要する分子動力学計算などのシミュレーションを複数の資源計算機103で並列に実行することにより、シミュレーションの高速化を実現することができる。たとえば、シミュレーションの中で、少しずつ初期条件を変えてトラジェクトリーを何本も走らせる場合、それらトラジェクトリーを複数の資源計算機103で分散して並列に実行することにより、シミュレーションの高速化を実現する。
(シミュレーション結果DBの記憶内容)
つぎに、シミュレーション結果DB200について説明する。図2は、シミュレーション結果DB200の記憶内容を示す説明図である。図2において、シミュレーション結果DB200は、任意の温度下における、分子動力学計算のシミュレーション結果を保持している。
具体的には、様々な分子構造を構成する原子A1〜Amごとに、時刻t0〜tnにおける各原子A1〜Amの原子座標(x,y,z)を有している。たとえば、原子A2についてのシミュレーション結果は、各時刻t0〜tnにおける原子座標(x20,y20,z20),(x21,y21,z21),…,(x2n,y2n,z2n)を有している。
シミュレーション結果DB200内のシミュレーション結果は、図1に示した複数の資源計算機103で並列に実行されたシミュレーションのシミュレーション結果を集約した情報である。解析支援装置101は、シミュレーション結果DB200に保持されているシミュレーション結果を入力データとして各種の解析処理を実行する。
(解析結果DB300の記憶内容)
つぎに、解析結果DB300について説明する。図3は、解析結果DB300の記憶内容とURL(Uniform Resource Locator)との対応関係を示す説明図である。解析結果DB300は、上述した非特許文献2に記載されているようなオブジェクトデータベースとして、各種の解析処理ごとの解析結果および各解析結果を格納し、その格納場所はURLによって一意的に対応付けられるようになっている。
具体的には、たとえば、「abcd」と名づけられた分子動力学計算のシミュレーション結果を用いて実行された成分ごとのエネルギー解析の解析結果が、URL「http://×××/energyanalysis/abcd」で指定される解析結果DB300内の格納場所に保持されている。
(計算機システム100のシステム概要)
ここで、計算機システム100のシステム概要について説明する。図4は、計算機システム100のシステム概要を示す説明図である。図4において、解析支援装置101により、ユーザからの解析要求に応じて、シミュレーション結果DB200に格納されているシミュレーション結果を解析データとする各種の解析処理を実行する。
そして、各種の解析処理の解析結果を解析結果DB300に格納する。このあと、ユーザからの閲覧要求に応じて、解析結果DB300に格納されている解析結果をWebページに変換してユーザの端末装置102に提供する。
たとえば、成分ごとのエネルギー解析の解析要求を受け付けた場合、エネルギー解析プログラムを用いて解析処理を実行し、そのエネルギー解析結果を解析結果DB300に格納する。このあと、ユーザからの閲覧要求を受け付けた場合、グラフ描画ツールを用いて生成されたWebページ410を端末装置102に提供する。
また、構造フォーマットの変換の解析要求を受け付けた場合、構造フォーマット変換プログラムを用いて解析処理を実行し、構造フォーマット変換結果を解析結果DB300に格納する。このあと、ユーザからの閲覧要求を受け付けた場合、分子構造描画ツールを用いて生成されたWebページ420を端末装置102に提供する。
このようにして、計算機システム100によれば、シミュレーション結果に関する各種の解析結果を表示するWebアプリケーションの利用にともなう利便性を向上させることにより、高品質なWebサービスの提供を実現する。
(コンピュータ装置のハードウェア構成)
つぎに、図1に示したコンピュータ装置のハードウェア構成について説明する。図5は、図1に示したコンピュータ装置のハードウェア構成を示す説明図である。図5において、コンピュータ装置は、コンピュータ本体510と、入力装置520と、出力装置530と、から構成されており、不図示のルータやモデムを介してLAN、WANやインターネットなどのネットワーク110に接続可能である。
コンピュータ本体510は、CPU、メモリ、インターフェースを有する。CPUは、コンピュータ装置のハードウェア構成の全体の制御を司る。メモリは、ROM、RAM、HD、光ディスク511、フラッシュメモリから構成される。メモリはCPUのワークエリアとして使用される。
また、メモリには各種プログラムが格納されており、CPUからの命令に応じてロードされる。HDおよび光ディスク511はディスクドライブによりデータのリード/ライトが制御される。また、光ディスク511およびフラッシュメモリはコンピュータ本体510に対し着脱自在である。インターフェースは、入力装置520からの入力、出力装置530への出力、ネットワーク110に対する送受信の制御をおこなう。
また、入力装置520としては、キーボード521、マウス522、スキャナ523などがある。キーボード521は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス522は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ523は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体510内のメモリに格納される。なお、スキャナ523にOCR機能を持たせてもよい。
また、出力装置530としては、ディスプレイ531、スピーカ532、プリンタ533などがある。ディスプレイ531は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ532は、効果音や読み上げ音などの音声を出力する。また、プリンタ533は、画像データや文書データを印刷する。
(解析支援装置の機能的構成)
つぎに、この発明の実施の形態にかかる解析支援装置101の機能的構成について説明する。図6は、この発明の実施の形態にかかる解析支援装置101の機能的構成を示すブロック図である。図6において、解析支援装置101は、シミュレーション結果DB200と、解析結果DB300と、取得部601と、作成部602と、生成部603と、受信部604と、抽出部605と、実行部606と、送信部607と、ページテンプレート生成部608と、表示情報生成部609と、から構成されている。
これら各機能601〜609は、メモリに格納された当該機能に関するプログラムをCPUに実行させることにより、当該機能を実現することができる。また、各機能601〜609からの出力データはメモリに保持される。また、図6中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをCPUに実行させる。
まず、取得部601は、解析対象を解析する各種の解析処理に共通する処理内容が定義された基底クラス情報を取得する機能を有する。解析対象とは、たとえば、分子状態の熱力学平均を求める分子動力学計算のシミュレーション結果などである。一般に、分子動力学計算のシミュレーションには膨大な計算量が必要となるため、たとえば、図1に示した複数の資源計算機103で並列に実行して処理の高速化を図ることができる。
各資源計算機103のシミュレーション結果は、解析支援装置101に集約されてシミュレーション結果DB200に格納される。解析支援装置101は、このシミュレーション結果を用いて各種の解析処理を実行し、その解析結果をWebページに変換して端末装置102に提供するWebアプリケーションを備えている。
ここで、基底クラス情報とは、ある解析対象に対して実行する各種の解析処理に共通する処理内容の定義である。たとえば、分子状態の時系列データによって扱う、期間(区間)ごとの平均、パラメータごとの平均、および全パラメータの平均を算出する処理など、各種の解析処理に共通する処理内容がテンプレートメソッドとして定義されている。
この基底クラス情報は、たとえば、計算機システム100の管理者(ユーザ)によって予め作成されて光ディスク511に保持されていてもよい。この場合、取得部601は、ユーザがキーボード521やマウス522などの入力装置520を操作して選択した基底クラス情報を光ディスク511から読み出して取得することとなる。
また、基底クラス情報は、解析支援装置101に直接入力することとしてもよく、あるいは、ネットワーク110を介して外部のコンピュータ装置から取得することとしてもよい。取得部601によって取得された基底クラス情報はメモリに保持される。なお、基底クラス情報の具体例については図7を用いて後述する。
作成部602は、解析対象の解析処理に用いる解析プログラムごとに、取得部601によって取得された基底クラス情報を派生元とする、各解析プログラムに固有の処理内容が定義された派生クラス情報を作成する機能を有する。
具体的には、取得部601によって取得された基底クラス情報をメモリから読み出し、その基底クラス情報を派生元とする派生クラス情報を作成してメモリに保持する。より具体的には、たとえば、キーボード521やマウス522などの入力装置520をユーザが操作して各解析プログラムに固有の処理内容を定義する情報を入力することにより派生クラス情報を作成する。
また、作成部602は、解析対象の解析結果をグラフィカルに表示する表示プログラムに固有の処理内容を定義する派生クラス情報を作成することとしてもよい。すなわち、解析結果の表示形式に応じた表示プログラムに固有の処理内容を派生クラス情報として定義する。なお、派生クラス情報の具体例については図7を用いて後述する。
生成部603は、取得部601によって取得された基底クラス情報および作成部602によって作成された派生クラス情報に基づいて、各解析プログラムの解析処理に応じたコンテンツタイプを生成する機能を有する。コンテンツタイプとは、各種の解析処理の解析結果を分類するための情報である。本実施の形態では、各解析プログラムに固有の処理内容を派生クラス情報として定義したクラス情報を各種の解析結果のコンテンツタイプとする。
ここで、コンテンツタイプの生成手法の一例について説明する。図7は、コンテンツタイプに対応する派生クラス情報と、基底クラス情報との関係を示す説明図である(UML(Unified Modeling Language)によるクラス図)。以下、分子動力学シミュレーションのシミュレーション結果を解析対象とし、また、ポテンシャルエネルギーを解析結果として取り出すクラス情報が記述されたコンテンツタイプを生成する。
図7において、基底クラス情報710と、派生クラス情報720と、解析プログラムP1と、シミュレーション結果S1と、が示されている。まず、ユーザの操作入力により、派生させるクラス(ポテンシャルエネルギーを解析結果として取り出すクラス)に適した基底クラス情報710を指定する。この基底クラス情報710には、分子動力学シミュレーションのシミュレーション結果を解析する各種の解析処理に共通する処理内容(インスタンスメソッド)が定義されている。
具体的には、value()は、引数が「パラメータリスト{p}および時間ステップのインデックスi」、返り値が「パラメータリスト{p}で指定されるトラジェクトリーの時間ステップiでの解析結果」と定義されたインスタンスメソッドである。このvalue()は、後述する派生クラス情報720によって上書きされるテンプレートメソッドである。
また、timeAverage()は、引数が「パラメータのリスト」、返り値が「パラメータリスト{p}で指定されるトラジェクトリーにおけるvalue()で返される解析結果の時間平均」と定義されたインスタンスメソッドである。
averageOverParameter()は、引数が「パラメータのリスト」、返り値が「パラメータリストで指定されるトラジェクトリーの集合についてvalue()で返される解析結果を加算した平均値」と定義されたインスタンスメソッドである。average()は、返り値が「value()で返される解析結果をすべてのトラジェクトリーについて加算した平均値」と定義されたインスタンスメソッドである。
figure()は、返り値が「解析結果のグラフ」と定義されたインスタンスメソッドである。pageTemplate()は、返り値が「解析結果を表示するためのデフォルトのページテンプレート」と定義されたインスタンスメソッドである。なお、「BaseAnalysisContentsType」は基底クラス情報710のクラス名である。
つぎに、ユーザの操作入力により、派生クラス情報710のクラス名を入力する。このクラス名は任意であり、たとえば、エネルギー解析に関するコンテンツタイプをあらわす「EnergyAnalysisContentsType」を入力する。入力されたクラス名は「UserDefinedContentsType」の部分に上書きされる。
このあと、ユーザの操作入力により、解析対象となるシミュレーション結果S1および解析処理に用いる解析プログラムP1を指定する。ここで、シミュレーション結果S1は分子動力学計算のシミュレーション結果、解析プログラムP1は成分ごとのエネルギー解析を実行する解析プログラムである。
このとき、シミュレーション結果をグラフィカルに表示する表示プログラムが必要となる場合には、その表示プログラムをあわせて指定することとなる。たとえば、シミュレーション結果をグラフ化して表示するためのグラフ描画ツールの指定をおこなう。
つぎに、ユーザの操作入力により、基底クラス情報710を派生元として派生させるインスタンスメソッドを選択して派生クラス情報720を定義する。ここでは、value()を選択して派生クラス情報720の処理内容を定義して、基底クラス情報710のテンプレートメソッドに上書きする。
具体的には、派生クラス情報720に解析プログラムP1に固有の処理内容を定義する。ここで、value()は、引数が「パラメータリスト{p}および時間ステップのインデックスi」、返り値が「パラメータリスト{p}で指定されるトラジェクトリーの時間ステップiでのポテンシャルエネルギー」と定義されたインスタンスメソッドである。
すなわち、引数のパラメータと時間インデックスに応じてシミュレーション結果DB200から値を取り出して、解析プログラムP1に与え、その解析結果を返り値とする処理を定義するインスタンスメソッドである。
より具体的には、既存のCMS(Contents Management System)が提供するインターフェースを利用してインスタンスメソッドのコード入力をおこなう。ここで、ユーザの操作入力により、シミュレーション結果S1へのアクセス方法を指定するコード入力について説明する。
図8は、表示画面の一例を示す説明図である。図8において、表示画面800は、コンテンツタイプの生成途中に表示される操作画面である。表示画面800において、カーソルCを移動させて、アドレスボタン810をクリックして、派生させるクラスのインスタンスメソッド名を入力する。
また、カーソルCを移動させてパラメータリストボタン820をクリックして、使用するパラメータを入力する。また、カーソルCを移動させてコードボックス830をクリックして、解析結果を格納する解析結果DB300へのアクセス方法を記述する。
なお、他のインスタンスメソッドの上書きをおこなう場合にも同様に、上記インターフェースを利用してコード入力をおこなう。特に、シミュレーション結果をグラフィカルに表示する表示プログラムを指定した場合には、その表示プログラムを呼び出すインスタンスメソッド「figure()」のコード入力をおこなう。
このようにして、CMSが提供するインターフェースを利用して生成されたコンテンツタイプをインポートしてメモリに保持する。なお、インポートが失敗した場合には、コンテンツタイプの生成処理を始めからやり直すか、あるいは、生成処理を終了するかの選択をユーザにおこなわせることとしてもよい。
ここで、図6の説明に戻り、受信部604は、ネットワーク110を介して接続された端末装置102から、解析対象となる任意のシミュレーション結果と、当該シミュレーション結果を解析する解析処理に応じたコンテンツタイプとによって指定される解析要求を受信する機能を有する。受信部604によって受信された解析要求はメモリに保持される。
この解析要求は端末装置102のユーザによっておこなわれる。具体的には、端末装置102のユーザにより、解析対象となる任意のシミュレーション結果を指定するとともに、当該シミュレーション結果を解析する解析処理に応じた任意のコンテンツタイプを指定する。
コンテンツタイプの指定は、生成部603によって生成されたコンテンツタイプ群の中から任意のコンテンツタイプを指定することとしてもよい。また、解析処理に応じたキーワード(クラス名など)を入力することにより、そのキーワードに適合するコンテンツタイプを指定することとしてもよい。
また、受信部604は、ネットワーク110を介して接続された複数の資源計算機103から、各資源計算機103で実行されたシミュレーションのシミュレーション結果を受信して、シミュレーション結果DB200に格納する。さらに、受信部604は、端末装置102から後述する解析結果の送信要求を受信する機能を有する。
抽出部605は、受信部604によって受信された解析要求に応じたコンテンツタイプを生成部603によって生成されたコンテンツタイプ群の中から抽出する機能を有する。また、解析要求にコンテンツタイプを示すキーワードが含まれている場合、コンテンツタイプ群の中からキーワードに適合するコンテンツタイプを検索して、その検索結果を抽出する。
具体的には、抽出部605は、受信部604によって受信された解析要求をメモリから読み出して、その解析要求に応じたコンテンツタイプを抽出してメモリに保持する。たとえば、シミュレーション結果S1を用いてエネルギー解析を実行する解析要求を受信した場合、図7および図8で説明したコンテンツタイプを抽出することとなる。
実行部606は、抽出部605によって抽出されたコンテンツタイプと関連付けられた解析プログラムにシミュレーション結果を与えることにより、当該シミュレーション結果の解析処理を実行する機能を有する。具体的には、実行部606は、抽出部605によって抽出されたコンテンツタイプをメモリから読み出して、そのコンテンツタイプと関連付けられた解析プログラムを呼び出す。
そして、コンテンツタイプに定義されている処理内容に基づいて、その解析プログラムにシミュレーション結果を与えることにより、当該シミュレーション結果の解析処理を実行して、その解析結果を解析結果DB300に保持する。
たとえば、シミュレーション結果S1を用いて成分ごとのエネルギー解析を実行する場合、解析プログラムP1を呼び出して、エネルギー解析を実行し、その解析結果を解析結果DB300に格納する。この解析結果DB300は非特許文献2に記載されているようなオブジェクトデータベースであり、解析結果を格納した場所はURLで一意的に指定される。
このオブジェクトデータベースでは、解析結果は、解析処理の内容に対応するオブジェクトの中に含まれ、シミュレーション結果の名称で識別される。このため、解析結果を指定するURLは、解析処理の内容とシミュレーション結果の名称をあらわす文字列を含んでいる。
具体的には、たとえば、シミュレーション結果abcdに対して成分ごとのエネルギー解析を実行した場合、その格納場所をあらわすURLは「http://×××/energyanalysis/abcd」であり、解析結果DB300の中で、エネルギー解析結果は「energyanalysis」オブジェクトの中に「abcd」という識別子が付されて保持される。
送信部607は、実行部606によって実行された解析処理の解析結果を端末装置102に送信する機能を有する。具体的には、送信部607は、実行部606によって実行された解析処理の解析結果を解析結果DB300から読み出して、その解析結果を端末装置102に送信する。
送信部607による解析結果の送信は、実行部606による解析処理が終了すると自動的におこなわれてもよく、また、受信部604によって端末装置102のユーザから解析結果の送信要求を受信した場合に送信することとしてもよい。この送信要求は、たとえば、解析結果を特定するためのURLであってもよく、また、解析結果を特定するキーワードであってもよい。
このURLは、解析結果DB300に格納されている解析結果の格納場所をあらわす情報であり、たとえば、端末装置102のWebブラウザに表示された複数のURLの中から任意のURLをユーザが選択することとしてもよい。たとえば、成分ごとのエネルギー解析の解析結果の送信要求をおこなう場合、端末装置102のWebブラウザでURL「http://×××/energyanalysis/abcd」を指定する。
ここで、解析結果をWebページに変換して端末装置102に提供する際の具体的な処理内容について説明する。まず、ページテンプレート生成部608は、抽出部605によって抽出されたコンテンツタイプに定義されているページテンプレートの生成に関する処理内容を参照することにより、実行部606によって実行された解析処理の解析結果に適用するページテンプレートを生成する機能を有する。
具体的には、たとえば、ページテンプレート生成部608は、図7に示したインスタンスメソッドのpageTemplate()を参照することにより、コンテンツタイプに応じたページテンプレートを生成する。ページテンプレート生成部608によって生成されたページテンプレートはメモリに保持される。
より具体的には、たとえば、CMSが提供するページテンプレートの書式に従って、ユーザの操作入力により、解析結果であるグラフの説明、および解析結果をグラフ化するfigure()の呼び出しコードを含むページテンプレートを生成する。
ここで、CMSが提供する「zope page template」を使用して生成したページテンプレートを図9に示す。図9は、ページテンプレートの一例を示す説明図である。図9において、ページテンプレート900は「zope page template」を使用して生成されたページテンプレートの一例である。
この場合、解析結果の説明は<h2>Time change of potential energies</h2>のようにページテンプレート900に埋め込まれる。また、グラフは“src python:context.analysis.figure()”のようにページテンプレート900に埋め込まれる。
表示情報生成部609は、ページテンプレート生成部608によって生成されたページテンプレートに解析結果を適用することにより、その解析結果を表示する表示情報を生成する機能を有する。具体的には、たとえば、表示情報生成部609は、ページテンプレート生成部608によって生成されたページテンプレートをメモリから読み出して、そのページテンプレートに解析結果を適用することによりWebページ情報を生成する。
より具体的には、たとえば、CMSの機能を利用してページテンプレートからWebページ情報を生成する。ここでは、CMSの機能を利用して、ページテンプレート900に埋め込まれた<h2>Time change of potential energies</h2>をそのままWebページに表示する。
また、グラフを表示する場合、figure()が呼び出されて、ページテンプレート900に埋め込まれたグラフ“src python:context.analysis.figure()”をWebページに表示する。このとき、コンテンツタイプに関連付けられた表示プログラムを用いてグラフの表示処理をおこなう。
さらに、端末装置102において表示情報(Webページ情報)のカスタマイズを簡単におこなうことができるようにするために、ページテンプレート生成部608により、グラフを<img src=“”tal:attribute=“src python:context.analysis.figure()”/>の形式でページテンプレート900に埋め込むこととしてもよい。
図10は、Webページの一例を示す説明図である。図10において、グラフ1000が上述した形式(<img src=“”tal:attribute=・・・)によって表示されている。このように、解析結果をレンダリングするときに、その解析結果のコンテンツタイプに応じて、imgタグのsrc属性が適切なグラフ1000で置き換えられて表示されることとなる。
また、WYSIWYGエディタを使用する場合には、tal:のようなXML名前空間に属する構文を読み飛ばして保持することとなるため、端末装置102のユーザは、グラフ1010をドラッグ&ドロップによって移動するなどのカスタマイズをおこなうことができる。
図11は、Webページの画面遷移を示す説明図である。表示画面D1において、カーソルCを移動してグラフ1110をクリックしてウィンドウ枠1120を出現させ、そのウィンドウ枠1120をドラッグ&ドロップすることにより、グラフ1110を移動させることができる。
また、ウィンドウ枠1120のアイコンIにカーソルCが重なった状態でドラッグさせることにより、グラフ1110の縦横比を変化させることができる。さらに、カーソルCを移動させて、タイトルボタン1130をクリックして、タイトル内容の編集をおこなうことができる。
この結果、表示画面D2において、グラフ1110を拡大したグラフ1140が表示されている。また、表示画面D1ではタイトルの下に位置していたグラフ1110を移動させたことにより、表示画面D2ではグラフ1140がタイトルの上に位置している。さらに、タイトル内容に「水中でのシクロスポリンの構造緩和」の記述が追加されている。
このように、解析結果の表示はコンテンツタイプに応じた生成されたページテンプレートを用いておこない、また、グラフや表については、WYSIWYGエディタによって編集可能な状態でページテンプレートに埋め込まれるため、Webページ情報をカスタマイズする際におけるユーザの利便性を向上させることができる。
(解析支援装置101の解析支援処理手順)
つぎに、この発明の実施の形態にかかる解析支援装置101の解析支援処理手順について説明する。まず、コンテンツタイプの生成処理の手順について説明する。図12は、コンテンツタイプの生成処理手順を示すフローチャートである。
図12のフローチャートにおいて、まず、取得部601により、解析対象を解析する各種の解析処理に共通する処理内容が定義された基底クラス情報を取得したか否かを判断する(ステップS1201)。ここで、基底クラス情報を取得するのを待って(ステップS1201:No)、取得した場合(ステップS1201:Yes)、その基底クラス情報をメモリに保持する(ステップS1202)。
つぎに、この基底クラス情報を派生元とする派生クラス情報のクラス名が入力されたか否かを判断する(ステップS1203)。ここで、クラス名が入力されるのを待って(ステップS1203:No)、入力された場合(ステップS1203:Yes)、そのクラス名を基底クラス情報と関連付けてメモリに保持する(ステップS1204)。
つぎに、解析対象となるシミュレーション結果および当該シミュレーション結果の解析処理に用いる解析プログラムの指定を受け付けたか否かを判断する(ステップS1205)。ここで、シミュレーション結果および解析プログラムの指定を受け付けるのを待って(ステップS1205:No)、指定を受け付けた場合(ステップS1205:Yes)、シミュレーション結果および解析プログラムを派生クラスと関連付けてメモリに保持する(ステップS1206)。
このあと、作成部602により、ステップS1201において取得された基底クラス情報を派生元とする、ステップS1205において指定された解析プログラムに固有の処理内容を定義する派生クラス情報が作成されたか否かを判断する(ステップS1207)。
ここで、派生クラス情報が作成されるのを待って(ステップS1207:No)、作成された場合(ステップS1207:Yes)、生成部603により、ステップS1201において取得された基底クラス情報およびステップS1207において作成された派生クラス情報に基づいて、ステップS1205において指定された解析プログラムの解析処理に応じたコンテンツタイプを生成する(ステップS1208)。
最後に、生成されたコンテンツタイプのインポートが成功したか否かを判断して(ステップS1209)、インポートが成功した場合(ステップS1209:Yes)、このコンテンツタイプをメモリに保持して、本フローチャートによる一連の処理を終了する。一方、インポートに失敗した場合(ステップS1209:No)、ステップS1201に戻り、一連の処理を繰り返すこととしてもよい。
なお、シミュレーション結果をグラフィカルに表示する表示プログラムが必要となる場合には、ステップS1205において、さらに、表示プログラムの指定を受け付けて、ステップS1206において派生クラスと関連付けてメモリに保持する。また、ステップS1207において、さらに、その表示プログラムに固有の処理内容を定義する派生クラス情報が作成されたか否かを判断する。
つぎに、シミュレーション結果を解析する解析処理の手順について説明する。図13は、シミュレーション結果の解析処理手順を示すフローチャートである。図13のフローチャートにおいて、まず、受信部604により、ネットワーク110を介して接続された端末装置102から、解析対象となる任意のシミュレーション結果および当該シミュレーション結果を解析する解析処理に応じたコンテンツタイプによって指定される解析要求を受信したか否かを判断する(ステップS1301)。
ここで、解析要求を受信するのを待って(ステップS1301:No)、受信した場合(ステップS1301:Yes)、抽出部605により、ステップS1301において受信された解析要求に応じたコンテンツタイプを、生成部603によって生成されたコンテンツタイプ群の中から抽出する(ステップS1302)。
このあと、実行部606により、ステップS1302において抽出されたコンテンツタイプと関連付けられた解析プログラムを呼び出して(ステップS1303)、解析要求に応じたシミュレーション結果をシミュレーション結果DB200から抽出して、その解析プログラムに与えることにより、当該シミュレーション結果の解析処理を実行する(ステップS1304)。
最後に、ステップS1304において実行された解析処理の解析結果を解析結果DB300に格納して(ステップS1305)、本フローチャートによる一連の処理を終了する。
つぎに、Webページ情報(表示情報)の送信処理の手順について説明する。図14は、Webページ情報の送信処理手順を示すフローチャートである。図14のフローチャートにおいて、まず、受信部604により、解析結果DB300に格納されている解析結果の送信要求を受信したか否かを判断する(ステップS1401)。
ここで、送信要求を受信するのを待って(ステップS1401:No)、受信した場合(ステップS1401:Yes)、ページテンプレート生成部608により、その送信要求に応じた解析結果を解析結果DB300から抽出して(ステップS1402)、その解析結果のコンテンツタイプに定義されているページテンプレートの生成に関する処理内容を参照することにより、解析結果に適用するページテンプレートを生成する(ステップS1403)。
つぎに、表示情報生成部609により、ステップS1403において生成されたページテンプレートにステップS1402において抽出された解析結果を適用することにより、その解析結果を表示するWebページ情報を生成して(ステップS1404)、このあと、送信部607により、そのWebページ情報を端末装置102に送信する(ステップS1405)。
このように、本実施の形態によれば、解析対象を解析する各種の解析処理およびその解析結果の表示形式に応じたコンテンツタイプを予め作成して保持することができる。そして、ユーザからの解析要求に応じたシミュレーション結果の解析処理を、その解析要求に応じたコンテンツタイプを用いて自動的におこなうことができる。これにより、シミュレーション結果の解析処理を実行するWebサービスの利用にともなう煩雑さを低減させることができる。
また、ユーザから解析結果の送信要求があった場合には、その解析結果のコンテンツタイプに応じたページテンプレートを自動的に生成することができる。そして、このページテンプレートに解析結果を適用したWebページ情報をユーザの端末装置102に送信することができる。
このとき、解析結果の表示はコンテンツタイプに応じて生成されたページテンプレートを用いておこない、グラフや表については、WYSIWYGエディタによって編集可能な状態でページテンプレートに埋め込まれるため、Webページ情報をカスタマイズする際におけるユーザの利便性を向上させることができる。
これにより、端末装置102のユーザによる各種の解析処理をおこなうために必要な作業は、Webブラウザを立ち上げて解析支援装置101のWebアプリケーションに接続する簡単な作業となり、専用のソフトウェアのインストールや設定など煩雑な作業が不要となる。
以上説明したように、解析支援プログラム、該プログラムを記録した記録媒体、解析支援装置、および解析支援方法によれば、Webアプリケーションの利用にともなう利便性を向上させることにより、高品質なシミュレーション解析をWebサービスとして提供することができる。
なお、本実施の形態で説明した解析支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した解析支援装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した解析支援装置101の機能的構成601〜609をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、解析支援装置101を製造することができる。
(付記1)解析対象を解析する各種の解析処理に共通する処理内容が定義された基底クラス情報を取得させる取得工程と、
前記解析対象の解析処理に用いる解析プログラムごとに、前記取得工程によって取得された基底クラス情報を派生元とする、前記各解析プログラムに固有の処理内容を定義する派生クラス情報を作成させる作成工程と、
前記基底クラス情報および前記作成工程によって作成された派生クラス情報に基づいて、前記各解析プログラムの解析処理に応じたコンテンツタイプを生成させる生成工程と、
をコンピュータに実行させることを特徴とする解析支援プログラム。
(付記2)前記作成工程は、
さらに、前記解析プログラムごとに、前記基底クラス情報を派生元とする、前記解析対象の解析結果をグラフィカルに表示する表示プログラムに固有の処理内容を定義する派生クラス情報を作成させることを特徴とする付記1に記載の解析支援プログラム。
(付記3)ネットワークを介して接続された端末装置から、前記解析対象となる任意のシミュレーション結果と、当該シミュレーション結果を解析する解析処理に応じたコンテンツタイプとによって指定される解析要求を受信させる受信工程と、
前記受信工程によって受信された解析要求に応じたコンテンツタイプを前記生成工程によって生成されたコンテンツタイプ群の中から抽出させる抽出工程と、
前記抽出工程によって抽出されたコンテンツタイプと関連付けられた解析プログラムに前記シミュレーション結果を与えることにより、当該シミュレーション結果の解析処理を実行させる実行工程と、
前記実行工程によって実行された解析処理の解析結果を前記端末装置に送信させる送信工程と、
を前記コンピュータに実行させることを特徴とする付記1または2に記載の解析支援プログラム。
(付記4)前記解析結果の送信要求を受信させる受信工程を前記コンピュータに実行させ、
前記送信工程は、
前記受信工程によって前記送信要求を受信した場合、前記解析結果を前記端末装置に送信させることを特徴とする付記3に記載の解析支援プログラム。
(付記5)前記抽出工程によって抽出されたコンテンツタイプに定義されているページテンプレートの生成に関する処理内容を参照することにより、前記実行工程によって実行された解析処理の解析結果に適用するページテンプレートを生成させるページテンプレート生成工程と、
前記ページテンプレート生成工程によって生成されたページテンプレートに前記解析結果を適用することにより、前記解析結果を表示する表示情報を生成させる表示情報生成工程と、を前記コンピュータに実行させ、
前記送信工程は、
前記表示情報生成工程によって生成された表示情報を前記端末装置に送信させることを特徴とする付記3または4に記載の解析支援プログラム。
(付記6)前記シミュレーション結果は、前記ネットワークを介して接続された複数の資源計算機で並列に実行されたシミュレーション結果を集約した情報であることを特徴とする付記3〜5のいずれか一つに記載の解析支援プログラム。
(付記7)付記1〜5のいずれか一つに記載の解析支援プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記8)解析対象を解析する各種の解析処理に共通する処理内容が定義された基底クラス情報を取得する取得手段と、
前記解析対象の解析処理に用いる解析プログラムごとに、前記取得手段によって取得された基底クラス情報を派生元とする、前記各解析プログラムに固有の処理内容を定義する派生クラス情報を作成する作成手段と、
前記基底クラス情報および前記作成手段によって作成された派生クラス情報に基づいて、前記各解析プログラムの解析処理に応じたコンテンツタイプを生成する生成手段と、
を備えることを特徴とする解析支援装置。
(付記9)解析対象を解析する各種の解析処理に共通する処理内容が定義された基底クラス情報を取得する取得工程と、
前記解析対象の解析処理に用いる解析プログラムごとに、前記取得工程によって取得された基底クラス情報を派生元とする、前記各解析プログラムに固有の処理内容を定義する派生クラス情報を作成する作成工程と、
前記基底クラス情報および前記作成工程によって作成された派生クラス情報に基づいて、前記各解析プログラムの解析処理に応じたコンテンツタイプを生成する生成工程と、
を含むことを特徴とする解析支援方法。