(57)【要約】  複数のシミュレータを含む開発環境の導入及び保守に要するコストを抑制し、設計情報の共有を図って、シミュレータのパラメータ調整を容易にする。設計ファイルの漏洩がないことを保障可能な作業用計算機システムを備え、シミュレータあるいはソフトウェア利用履歴をユーザ毎に収集し、収集した情報からユーザ毎の開発工程を抽出するユーザ挙動監視システムを備え、前記ユーザ挙動監視システムにより収集した情報から、複雑なシミュレーション構成の自動最適化が可能な動的計算資源配分システムを備えた計算機上に開発環境を一元化するサービスの提供を可能にする。
2011016327.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを備えた複数の計算機を含んでシミュレーションを実行するシミュレーション用計算資源を備えた計算機システムであって、
ネットワークを介して端末に接続されて、前記端末からシミュレーションタスクの生成要求を受け付けて、前記端末からの前記要求に基づいて前記シミュレーションタスクに含まれるシミュレーション構成を生成し、前記シミュレーション構成に含まれるシミュレーションを前記シミュレーション用計算機資源に発行する動的計算資源配分部と、
前記端末から受け付けたシミュレーションタスクの生成要求を格納するストレージ部と、
前記端末から受け付けたシミュレーションタスクに対する操作履歴と、前記シミュレーションタスクの実行に要したシミュレーション用計算資源の負荷とを、前記端末のユーザ毎に収集する履歴監視部と、を備え、
前記シミュレーション用計算資源は、複数種のシミュレータを予め備え、
前記動的計算資源配分部は、
前記シミュレーション用計算資源に実行させたシミュレーションの要素を記録し、前記受け付けたシミュレーションタスクに対して前記記録した過去のシミュレーションの要素を適用し、当該要素を適用するシミュレーションを実行する前記シミュレーション用計算資源を前記履歴監視部が収集したシミュレーション用計算資源の負荷に基づいて割り当てる計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記動的計算資源配分部は、
前記端末から受け付けたシミュレーションタスクの生成の要求を満たすシミュレーション構成を生成するシミュレーションタスク入力部と、
前記生成されたシミュレーション構成から前記シミュレーション用計算資源に割り当てるシミュレーションの集合を生成するシミュレーションタスク生成部と、
前記シミュレーション用計算資源に割り当てるシミュレーションで使用するシミュレーションモデルを記録するツール・モデルデータベースと、
前記シミュレーション用計算資源の利用状態を管理する計算資源管理データベースと、
前記実行されたシミュレーション構成を記録するシミュレーション構成履歴データベースと、を有し、
前記シミュレーションタスク生成部は、前記タスク入力部で生成されたシミュレーション構成を、前記シミュレーション構成履歴データベースと、前記ツール・モデルデータベースと、前記計算資源管理データベースの情報に基づいて、前記シミュレーション用計算資源で実行可能な計算処理に変換する計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記シミュレーションタスク入力部は、
前記端末から選択可能なシミュレーションモデルを予め格納したツールパレットと、前記シミュレーションタスクに対して予め設定したシミュレーションモデルを配置可能なモデル構築画面と、を前記端末に提供し、
前記モデル構築画面上での入力に応じて前記シミュレーション構成を生成し、
前記ツールパレットは、固有の詳細情報が省かれた１つまたは複数のシミュレーションモデルが配置されているＧＵＩで構成され、
前記モデル構築画面は、前記ツールパレットから選択されたシミュレーションモデルを配置し、配置されたモデル間を線で結合し、前記シミュレーションモデルに固有の情報を表示及び設定するＧＵＩで構成されている計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記シミュレーションタスク生成部は、
前記ツール・モデルデータベースと、前記計算資源管理データベースと、前記シミュレーション構成履歴データベースに接続されて、前記シミュレーションタスク入力部が生成したシミュレーション構成を受け付けて、当該シミュレーション構成が必要とするシミュレーションツールとしてのシミュレータと前記シミュレーション用計算資源の割り当てを行ない、前記シミュレーション構成におけるシミュレーションモデルの結合関係と前記ツール・モデルデータベースに格納された情報に基づいて、前記シミュレーション用計算資源の結合関係が前記端末から受け付けたシミュレーションタスクの生成要求を満たす様に、前記シミュレータのパラメータを調整する計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記履歴監視部は、ユーザ挙動統計化部を有し、
前記ユーザ挙動統計化部は、
前記動的計算資源配分部が前記端末から受け付けるシミュレーションタスクの生成要求として、前記端末からの画面操作情報及びファイル操作情報を収集し、
特定の画面操作情報及び特定のファイル操作情報に特定のソフトウェアの操作を対応付けて、前記端末を使用するユーザの挙動を表すソフトウェア操作履歴情報を生成する計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記履歴監視部は、
前記ユーザ挙動統計化部が出力するソフトウェア操作履歴情報が含むファイルへの変更及び参照の依存関係及び時系列に基づいて、ソフトウェア操作履歴情報間の関係を抽出する計算機システム。
【請求項７】
請求項５に記載の計算機システムであって、
前記履歴監視部は、
前記ユーザ挙動統計化部が生成したソフトウェア操作履歴情報を解析して情報流を生成する情報流解析部と、前記画面操作情報及び前記ファイル操作情報に含まれる情報の依存関係を解析して開発進捗及びソフトウェア使用状況を抽出する開発進捗抽出部を有し、
前記動的計算資源配分部は、
シミュレーション構成履歴データベースに記録されたシミュレーション構成の実行履歴について前記開発進捗抽出部が抽出した情報に基づいて開発進捗における当該シミュレーションの寄与を見積もり、
前記シミュレーション用計算資源の負荷情報に基づいて前記シミュレーションの負荷の分布を見積もり、
前記寄与の見積もりと前記分布の見積もりに基づいて、前記シミュレーション構成に対するシミュレーションタスク生成部のタスク生成精度を評価する計算機システム。
【請求項８】
計算機を制御するプログラムであって、
前記計算機は、プログラムが格納されるメモリと、前記メモリに格納された前記プログラムを実行する演算装置と、を備え、
ネットワークを介して接続された端末からシミュレーションタスクの生成要求を受け付けて、前記端末からの前記要求に基づいて前記シミュレーションタスクに含まれるシミュレーション構成を生成し、前記シミュレーション構成に含まれるシミュレーションを、複数種のシミュレータを予め備えたシミュレーション用計算機資源に発行する第１の手順と、
前記端末から受け付けたシミュレーションタスクの生成要求を前記計算機のストレージに格納する第２の手順と、
前記端末から受け付けたシミュレーションタスクに対する操作履歴と、前記シミュレーションタスクの実行に要したシミュレーション用計算資源の負荷を、前記端末のユーザ毎に収集する第３の手順と、を含み、
前記第１の手順は、
前記シミュレーション用計算資源に実行させたシミュレーションの要素を記録し、前記受け付けたシミュレーションタスクに対して前記記録した過去のシミュレーションの要素を適用し、当該要素を適用するシミュレーションを実行する前記シミュレーション用計算資源を前記収集したシミュレーション用計算資源の負荷に基づいて割り当てる手順を前記演算装置に実行させるプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記第１の手順は、
前記端末から受け付けたシミュレーションタスクの生成の要求を満たすシミュレーション構成を生成するシミュレーションタスク入力手順と、
前記生成されたシミュレーション構成から前記シミュレーション用計算資源に割り当てるシミュレーションの集合を生成するシミュレーションタスク生成手順と、
前記シミュレーション用計算資源に割り当てるシミュレーションで使用するシミュレーションモデルをツール・モデルデータベースに記録する手順と、
前記シミュレーション用計算資源の利用状態を計算資源管理データベースで管理する手順と、
前記実行されたシミュレーション構成をシミュレーション構成履歴データベースに記録する手順と、を含み、
前記シミュレーションタスク生成手順は、前記シミュレーションタスク入力手順で生成されたシミュレーション構成を、前記シミュレーション構成履歴データベースと、前記ツール・モデルデータベースと前記計算資源管理データベースの情報に基づいて、前記シミュレーション用計算資源で実行可能な計算処理に変換するプログラム。
【請求項１０】
請求項９に記載のプログラムであって、
前記シミュレーションタスク入力手順は、
前記端末から選択可能なシミュレーションモデルを予め格納したツールパレットと、前記シミュレーションタスクに対して予め設定したシミュレーションモデルを配置可能なモデル構築画面と、を前記端末に提供する手順と、
前記モデル構築画面上での入力に応じて前記シミュレーション構成を生成する手順とを含み、
前記ツールパレットは、固有の詳細情報が省かれた１つまたは複数のシミュレーションモデルが配置されているＧＵＩで構成され、
前記モデル構築画面は、前記ツールパレットから選択されたシミュレーションモデルを配置し、配置されたモデル間を線で結合し、前記シミュレーションモデルに固有の情報を表示及び設定するＧＵＩで構成されているプログラム。
【請求項１１】
請求項１０に記載のプログラムであって、
前記シミュレーションタスク生成手順は、
前記生成したシミュレーション構成を受け付け、
前記ツール・モデルデータベースと、前記計算資源管理データベースと、前記シミュレーション構成履歴データベースを参照して、当該シミュレーション構成が必要とするシミュレーションツールとしてのシミュレータと前記シミュレーション用計算資源の割り当てを行ない、
前記シミュレーション構成におけるシミュレーションモデルの結合関係と前記ツール・モデルデータベースに格納された情報に基づいて、前記シミュレーション用計算資源の結合関係が前記端末から受け付けたシミュレーションタスクの生成要求を満たす様に、前記シミュレータのパラメータを調整するプログラム。
【請求項１２】
請求項８に記載のプログラムであって、
前記第３の手順は、
前記端末から受け付けるシミュレーションタスクの生成要求として、前記端末からの画面操作情報及びファイル操作情報を収集し、
特定の画面操作情報及び特定のファイル操作情報に特定のソフトウェアの操作を対応付けて、前記端末を使用するユーザの挙動を表すソフトウェア操作履歴情報を生成するプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記第３の手順は、
前記ソフトウェア操作履歴情報が含むファイルへの変更及び参照の依存関係及び時系列に基づいて、ソフトウェア操作履歴情報間の関係を抽出するプログラム。
【請求項１４】
請求項１２に記載のプログラムであって、
前記第３の手順は、
前記ソフトウェア操作履歴情報を解析して情報流を生成し、前記画面操作及びファイル操作情報に含まれる情報の依存関係を解析して開発進捗及びソフトウェア使用状況を抽出し、
前記第１の手順は、
シミュレーション構成履歴データベースに記録されたシミュレーション構成の実行履歴について前記抽出した情報に基づいて開発進捗における当該シミュレーションの寄与を見積もり、
前記シミュレーション用計算資源の負荷情報に基づいて前記シミュレーションの負荷の分布を見積もり、
前記寄与の見積もりと前記分布の見積もりに基づいて、前記シミュレーション構成に対するシミュレーションタスクのタスク生成精度を評価するプログラム。
【請求項１５】
シミュレーションに使用する計算資源を割り当てる方法であって、
ネットワークを介して接続された端末からシミュレーションタスクの生成要求を受け付けて、前記端末からの前記要求に基づいて前記シミュレーションタスクに含まれるシミュレーション構成を生成し、前記シミュレーション構成に含まれるシミュレーションを、複数種のシミュレータを予め備えたシミュレーション用計算機資源に発行する第１の手順と、
前記端末から受け付けたシミュレーションタスクの生成要求を前記計算機のストレージに格納する第２の手順と、
前記端末から受け付けたシミュレーションタスクに対する操作履歴と、前記シミュレーションタスクの実行に要したシミュレーション用計算資源の負荷を、前記端末のユーザ毎に収集する第３の手順と、を含み、
前記第１の手順は、
前記シミュレーション用計算資源に実行させたシミュレーションの要素を記録し、前記受け付けたシミュレーションタスクに対して前記記録した過去のシミュレーションの要素を適用し、当該要素を適用するシミュレーションを実行する前記シミュレーション用計算資源を前記収集したシミュレーション用計算資源の負荷に基づいて割り当てる、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込みシステムの開発に於いて複数のシミュレータが連携する複雑なシミュレーションを実行する開発環境で使用される技術に関わる。
【背景技術】
【０００２】
組込みシステムとは、制御対象を構成するメカニズムと、メカニズムから受け取った物理量を元に制御演算を行いメカニズムに制御値の出力を行なうハードウェアと、ハードウェア上で動作するソフトウェアと、から構成されるシステムである。例えば自動車の組込みシステムでは、制御対象であるエンジンと、エンジンを制御するマイコン等の電子機器と、その上で動作するソフトウェアと、を指す。組込みシステムに含まれるソフトウェアの挙動は制御対象のメカニズムとハードウェアの構成とに強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。【０００３】
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化している。そこで、作業期間短縮のため、ハードウェア及びソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加している。そのため、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。【０００４】
この問題を解決するため、設計時点でのメカニズム、ハードウェア及びソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。メカニズム・ハードウェア・ソフトウェア協調のシミュレーションでは、シミュレーション対象となるメカニズムやハードウェアの構成によって利用できるシミュレータが異なることと、すでに特定のシミュレータ用に作成されたシミュレーションモデルの蓄積があることから、異種シミュレータの相互接続による製品全体レベルの協調シミュレーションが行なわれる。【０００５】
従来、複数シミュレータを相互結合させた協調シミュレーションを行なうには、各個人の計算機上に実行環境を構築する必要があり、以下の５つの問題が存在する。１つ目は、複数拠点での同時開発のため、設計ファイルの共有、進捗の管理が困難になることである。２つ目は、異なるシミュレータを接続する必要があるため、個々のシミュレータ及びシミュレータ間の接続のパラメータ調整を人手で行なうコストが増大することである。【０００６】
３つ目は、複数のシミュレータを使用するため、その導入及び保守のコストが高いことである。４つ目は、複数のシミュレータを動作させるため、計算能力が不足することである。５つ目は、設計ファイルが個人ＰＣ上に格納されているため、情報漏えいのリスクが高まることである。【０００７】
上記の課題に対する対処法の一つとして、開発環境の一元化が考えられる。開発環境の一元化に関する公知の技術として、計算環境提供サービスが特許文献１に開示されている。このサービスはネットワーク上のサーバをユーザに有償貸与し、ユーザはサーバを遠隔操作することで計算環境を得る。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−２４１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記特許文献１の技術は、上記の問題点のうち４つ目と５つ目とを解決可能であるが、他の問題点を解決することができず、サービスユーザが個別に、それらに対処する必要がある。本発明が解決しようとする課題は、上記背景技術で述べた問題点の１つ目から３つ目である。【００１０】
再度述べると、第一の課題は、複数拠点での同時開発のため、設計ファイルの共有、進捗の管理が困難になることである。また、第二の課題は、異なるシミュレータを接続する必要があるため、個々のシミュレータ及びシミュレータ間の接続のパラメータ調整を人手で行なうコストが増大することである。さらに、第三の課題は、複数のシミュレータ及び計算資源を必要とするため、ソフトウェアとハードウェアの導入及び保守のコストが高くなり、容易にシミュレーションを行なうことが困難である点である。【００１１】
本発明は、上記の課題に鑑みてなされたもので、複数のシミュレータを含む開発環境の導入及び保守に要するコストを抑制し、設計情報の共有を図り、さらに、シミュレータのパラメータ調整を容易にすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、組込みシステム開発においてユーザ毎のシミュレータまたはソフトウェア利用履歴を高精度に抽出、記録する仕組みを備え、その仕組みにより収集した情報からユーザの開発工程を抽出し記録する仕組みを備えることで第一の課題を解決する。【００１３】
また、前記の仕組みにより収集した情報からシミュレーション構成の最適化を自動で行なう仕組みを備えることで第二の課題を解決する。【００１４】
更に、開発環境の一元化を前記の仕組みを伴った計算機上で実現させるサービスにより、環境整備にかかる初期投資の低減を可能にすることで、第三の課題を解決する。
【発明の効果】
【００１５】
したがって、本発明により、シミュレータあるいはソフトウェアは全てサーバ上で管理されるため、組込みシステム開発者が各自で事前購入と保守をする必要がなくなる。また、開発されたソフトウェアとそれを用いたシミュレーションの結果はサーバ上に管理されるため、設計ファイルの共有が容易となり、部外者への情報漏えいのリスクを最小限に抑えることが可能となる。【００１６】
更に、複数シミュレータの連携とシミュレータのパラメータ調整の自動化の仕組みとにより、開発者が、詳細なノウハウを必要とすることなく、速度及び精度の優れたシミュレーションを容易に実行することができるため、組込みシステムの開発効率が向上する。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態を示し、計算機システムの機能要素を示すブロック図である。
【図２】本発明の第１の実施形態を示し、ユーザ端末で行われる処理の一例を示すフローチャートである。
【図３】本発明の第１の実施形態を示し、システム全体の詳細な構成を示すブロック図である。
【図４】本発明の第１の実施形態を示し、ソフトウェア開発モードにおける、処理の一例を示すフローチャートである。
【図５】本発明の第１の実施形態を示し、シミュレーションモードにおける、処理の一例を示すフローチャートである。
【図６】本発明の第１の実施形態を示し、開発進捗・ツール利用状態・システム利用料確認モードにおける、処理の一例を示すフローチャートである。
【図７】本発明の第１の実施形態を示しシミュレーションタスク入力装置の画面イメージの一例を示す説明図である。
【図８】本発明の第１の実施形態を示し、シミュレーションタスク入力装置において作成されたタスクの構成を再利用する場合の画面イメージの一例を示す図である。
【図９】本発明の第１の実施形態を示し、シミュレーションタスク入力装置においてタスク入力の抽象度が低下した場合の画面イメージの一例を示す図である。
【図１０】本発明の第１の実施形態を示し、タスク入力装置により生成された、シミュレーションタスク構成を提示する画面イメージの一例を示す図である。
【図１１】本発明の第１の実施形態を示し、タスクの構成結果を示す説明図である。
【図１２】本発明の第１の実施形態を示し、シミュレーションタスク生成装置によるタスク生成のフローチャートを示す。
【図１３】本発明の第１の実施形態を示し、シミュレーション用計算資源を構成するクラスタノードの構成例を示した図である。
【図１４】本発明の第１の実施形態を示し、シミュレーション用計算資源の一例を示すブロック図である。
【図１５Ａ】本発明の第１の実施形態を示し、システム利用料金算出の処理の一例を示すフローチャートである。
【図１５Ｂ】本発明の第１の実施形態を示し、ライセンス料金算出の処理の一例を示すフローチャートである。
【図１６Ａ】本発明の第１の実施形態を示し、開発進捗の解析処理の一例を示すフローチャートである。
【図１６Ｂ】本発明の第１の実施形態を示し、ツール利用状況の解析処理の一例を示すフローチャートである。
【図１７】本発明の第１の実施形態を示し、資源利用量管理データベース及び、資源価格データベースのテーブル構成例を示した図である。
【図１８】本発明の第１の実施形態を示し、操作履歴データベースのテーブル構成例を示した図である。
【図１９】本発明の第１の実施形態を示し、ツール・モデルデータベースのテーブル構成例を示した図である。
【図２０】本発明の第１の実施形態を示し、資源価格データベースのテーブル構成例を示した図である。
【図２１】本発明の第１の実施形態を示し、時系列及び操作の流れを解析してユーザから課せられたタスクを基点として、シミュレーション試行、ファイルの変更を点とし、情報の依存関係を辺としたグラフ構造の情報流グラフの一例を示す。
【図２２】本発明の第１の実施形態を示し、開発進捗レポートの一例を示す図である。
【図２３】本発明の第１の実施形態を示し、コマンドリストの一例を示す説明図。
【図２４】本発明の第１の実施形態を示し、シミュレーション用計算資源１０１の状態を管理するデータベースの一例を示す説明図。
【図２５】本発明の第１の実施形態を示し、ツール利用状況レポートの一例を示す図である。
【図２６Ａ】本発明の第１の実施形態を示し、シミュレーション構成履歴データベースのシミュレーション構成テーブル２６００の一例を示す説明図。
【図２６Ｂ】本発明の第１の実施形態を示し、シミュレーション構成履歴データベースのシミュレータ構成テーブル２６０１の一例を示す説明図。
【図２７】本発明の第１の実施形態を示し、ユーザに対するシステム利用料レポートの例を示した図である。
【図２８】本発明の第１の実施形態を示し、ソフトウェア提供者に対するライセンス料レポートの例を示した図である。
【図２９】本発明の第２の実施形態を示し、計算機システムの機能要素を示すブロック図である。
【発明を実施するための形態】
【００１８】
第１の実施形態
以下、本発明の一実施形態を添付図面に基づいて説明する。図１は本発明の実施形態の一例の概略を示し、組み込みシステムの開発を支援する計算機システム（組み込み機器の開発業務支援システム）の機能ブロック図である。
【００１９】
組込みシステムの開発を行う計算機システムにおいて、動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２、システム負荷・ユーザ挙動監視システム１０３、作業用計算機システム１０６、セキュア通信を用いた画面伝送システム１０４、ユーザ端末１０７及びソフトウェア提供者端末１０８が、内部ネットワークを介して接続されている。
【００２０】
上記の構成を、以下では、本システムと呼ぶ。ユーザ端末１０７及びソフトウェア提供者端末１０８は、セキュア通信を用いた画面伝送システム１０４を介してのみ本システムにアクセスすることが可能である。なお、各システム、計算資源、端末は、プロセッサ、メモリ及びインターフェースを含む計算機で構成される。
【００２１】
また、組み込みシステムは、前記従来例で述べたように、制御対象のメカニズムと、メカニズムを駆動するハードウェアと、ハードウェアを制御するソフトウェアとを組み合わせたものである。
【００２２】
本システムの概要は、ユーザ端末１０７からの入力または指令に従って、作業用計算機システム１０６で組み込みソフトウェアを作成し、作成した組み込みソフトウェアのシミュレーションを動的計算資源配分システム１００で最適化する。
【００２３】
動的計算資源配分システム１００は、最適化したシミュレーションタスクを、複数の計算機を含むシミュレーション用計算資源１０１で実行する。シミュレーション用計算資源１０１は、シミュレーションを実行するシミュレーション用ソフトウェア（シミュレータ）と、シミュレータを実行する計算機（図１４、クラスタノード１４００）を含み、複数種類のシミュレーションを行うために複数のアプリケーションと、アプリケーションを実行する複数の計算機とを備える。
【００２４】
組み込みソフトウェアのシミュレーションを実行するときには、ユーザ端末１０７が、実行するシミュレーションを、動的計算資源配分システム１００に対して指令する。動的計算資源配分システム１００は、ユーザ端末１０７からの要求に基づいて、シミュレーション用計算資源１０１のソフトウェアリソースとハードウェアリソースとを確保して、シミュレーションを実行する。
【００２５】
画面伝送システム１０４は、ユーザ端末１０７またはソフトウェア提供者端末１０８との間でデータの送受信を行うゲートウェイとして機能し、ユーザ端末１０７（またはソフトウェア提供者端末１０８）の認証を行い、認証したユーザ端末１０７（またはソフトウェア提供者端末１０８）との間で暗号化通信などの秘匿性の高い通信（以下、セキュア通信）によりデータの授受を行う。
【００２６】
また、本システムはシミュレーション結果可視化システム１０２を含む。シミュレーション結果可視化システム１０２は、シミュレーション用計算資源１０１が算出したシミュレーション結果をグラフなどでユーザ端末１０７へ提供する計算機を備える。
【００２７】
また、本システムは、システム負荷・ユーザ挙動監視システム１０３を備えている。システム負荷・ユーザ挙動監視システム１０３は、シミュレーション用計算資源１０１のハードウェア、ソフトウェアの稼働状況を収集する計算機、ユーザ端末１０７からの入力、指令により開発した組み込みシステムの進捗状況を収集する計算機などを備え、ユーザ端末１０７毎の課金情報や統計情報を生成する。なお、各計算機システムの詳細については後述する。
【００２８】
図２は、本システムにおけるユーザ端末１０７で行われる組み込みシステムの開発作業のフローチャートである。図２及び図１を参照して、ユーザがユーザ端末１０７で本実施形態における本システムを利用する際の操作について説明する。
【００２９】
まずステップ３０１で、ユーザがユーザ端末１０７で画面伝送システム１０４に接続する。画面伝送システム１０４は、本システムへの接続権限を所有しているか否かを認証する。また、ソフトウェア提供者端末１０８も同様にして画面伝送システム１０４に接続し、画面伝送システム１０４は本システムへの接続権限を所有しているか否かを認証する。
【００３０】
認証後は、ユーザあるいはソフトウェア提供者は必ず画面伝送システム１０４を介してアクセスするため、以降ではアクセスが画面伝送システム１０４を介していることの説明を割愛する。
【００３１】
次にステップ３０２で、ユーザはユーザ端末１０７で作業内容の選択を行なう。本システムは３つの作業内容のモードを備えており、それらは、組み込みソフトウェアを作成するソフトウェア作成モード３１５、作成した組み込みソフトウェアで制御対象のメカニズムを制御するシミュレーションを実行するシミュレーションモード３１６及び本システムの計算機資源の利用状況を取得する開発進捗・ツール利用状態・システム利用料確認モード３１７である。上記３つのモードでは、提供されるサービス内容が異なる他に、システム利用料金の算出方法が異なる。
【００３２】
また、画面伝送システム１０４は、ユーザ端末１０７の認証が完了した後に、ユーザ端末１０７に対して上記３つのモードの何れかの選択を要求する。ユーザ端末１０７が画面伝送システム１０４に対して選択結果を通知すると、画面伝送システム１０４は、選択されたモードに対応する計算機システムに対して、ユーザ端末１０７からの利用開始を通知する。画面伝送システム１０４から利用開始の通知を受け付けた計算機システム（動的計算資源配分システム１００、作業用計算機システム１０６、システム負荷・ユーザ挙動監視システム１０３）は、ユーザ端末１０７に対してサービスの提供を開始する。
【００３３】
まずは、ユーザが、ユーザ端末１０７からソフトウェア作成モード３１５を選択した時の作業フローを説明する。ユーザ端末１０７は、ステップ３０４で、作業用計算機システム１０６を遠隔操作して組み込みシステムのためのソフトウェア開発を行ない、ステップ３０５で作成した設計ファイルを保存する。ユーザ端末１０７は、作業用計算機システム１０６または本システム内のストレージ装置に設計ファイルを格納する。
【００３４】
次に、ユーザが、ユーザ端末１０７からシミュレーションモード３１６を選択した時の作業フローを説明する。シミュレーションモードを選択した場合は、ユーザ端末１０７からの指令により、動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２は、ユーザ端末１０７が指示したシミュレーションを実行する。
【００３５】
まず、ステップ３０７で、ユーザはユーザ端末１０７から動的計算資源配分システム１００に対して、複数の商用シミュレーションソフトウェア（またはシミュレータ）を用いるシミュレーション構成（複数のシミュレーションタスクの依存関係）を入力する。
【００３６】
次のステップ３０８で、動的計算資源配分システム１００は、ユーザ端末１０７から受け付けたシミュレーションタスクを実行するのに十分な、シミュレータ、シミュレーション結果可視化システム１０２、シミュレーション用計算資源１０１で利用するＣＰＵ数、メモリ容量、特殊演算器（アクセラレータ）の数、記録領域の量を確保する。動的計算資源配分システム１００は、ユーザ端末１０７から入力されたシミュレーションタスクにおける各部品（開発するメカニズム、ハードウェア、ソフトウェア）の結合関係を基に、シミュレーションタスク構成が最適に実行されるように、シミュレーション用計算資源１０１上でのシミュレータの配置関係を算出し、実際のシミュレーションタスクを構築する。
【００３７】
なお、以下の説明では、シミュレーションタスク、シミュレーション構成、シミュレーションタスク構成を、次のように定義する。
【００３８】
シミュレーションタスクは、メカニズム、ハードウェア、ソフトウェアの組み込みシステムの各要素を結合したシミュレーション対象を示す。一つのシミュレーションタスクには、複数のシミュレーションを含むことができる。
【００３９】
シミュレーション構成は、シミュレーションタスクに複数のシミュレーションが含まれる場合に、各シミュレーション間の依存関係を定義する。
【００４０】
シミュレーションタスク構成は、シミュレーション用計算資源１０１のクラスタノード１４００とそのクラスタノード１４００に割り当てるシミュレーションとの関係を定義する。シミュレーションタスク構成は、例えば、図２３のようなコマンドリストで表現される。
【００４１】
例えば、組み込みシステムとして内燃機関の制御システムを開発する場合のタスク生成結果を、図１１に示す。エンジン制御ＥＣＵ（Electronic Control Unit）のシミュレーションをシミュレーションタスクとする場合、シミュレーション要素（部品）は、エンジン制御ＥＣＵ、エアフローメータ、インジェクタ、エンジンである。そして、それぞれがエンジン制御ＥＣＵ、エアフローメータ、インジェクタ、エンジンのそれぞれに対応する、複数のシミュレーションソフトウェアプログラム（シミュレータ）が実行される。各シミュレータを実行するクラスタノード１４００は、シミュレーションタスク構成によって割り当てられる。
【００４２】
各シミュレータの依存関係（シミュレーション構成）は、図１１の例では、以下の通りである。エアフローメータの吸入空気量などのデータが、エンジン制御ＥＣＵのシミュレータへ入力される。エンジン制御ＥＣＵからの燃料噴射量などが、インジェクタのシミュレータへ入力される。インジェクタからの燃料噴射期間、燃料噴射量が、エンジンのシミュレータに入力される。エンジンの回転速度などが、エアフローメータのシミュレータへ入力される。さらに、エンジンの出力が、系全体のシミュレータ（図１１のＬｏｇｅｒ００１．ｅｘｅ）に入力される。つまり、シミュレーションソフトウェアプログラム間のデータの入出力の関係が、シミュレーション構成である。
【００４３】
その後、ステップ３０９は、シミュレーションを実行する。具体的には、ユーザがユーザ端末１０７から動的計算資源配分システム１００で構築されたシミュレーションタスク構成の実行を指示すると、動的計算資源配分システム１００は、シミュレーション用計算資源１０１にシミュレーションタスクを投入する。シミュレーション用計算資源１０１内でシミュレーションタスクを割り当てられたクラスタノード１４００は、シミュレーションを実行する。
【００４４】
次に、ステップ３１０は、シミュレーション結果を表示する。具体的には、シミュレーション結果可視化システム１０２は、ユーザ端末１０７から入力されたシミュレーションタスク構成を解析し、ユーザが必要とするシミュレーション結果を推定する。シミュレーション結果可視化システム１０２は、さらに、その内部でシミュレーション結果可視化部７１５にユーザの要求を満たすシミュレーション結果を割り当てる。シミュレーション結果可視化部７１５は、シミュレーション結果可視化システム１０２に含まれる独立したプログラムであって、１つまたは複数の特定の種類のデータを固有の方法でグラフ化する。グラフ化の方法、受け取るデータの種類により、多数の実装形態がある。
【００４５】
シミュレーション用計算資源１０１で行なわれたシミュレーションの結果は、シミュレーション結果可視化システム１０２に送信される。上述のように、シミュレーション結果はユーザの望む形に加工され、セキュア通信を用いた画面伝送システム１０４を通してユーザ端末１０７に提示される。
【００４６】
次に、上記のソフトウェア作成モード３１５とシミュレーションモード３１６の実行中に、本システムのバックグラウンドで行なわれる情報の収集及び記録動作に関して説明する。
【００４７】
情報の収集、記録、統計化は、システム負荷・ユーザ挙動監視システム１０３により行なわれる。これにより、以降説明する開発進捗・ツール利用状態・システム利用料確認モード３１７で、収集されたデータをユーザに提供することが可能となる。
【００４８】
システム負荷・ユーザ挙動監視システム１０３は、セキュア通信を用いた作業用計算機システム１０６におけるユーザ端末１０７のＧＵＩ操作、ファイル操作と、動的計算資源配分システム１００におけるユーザ端末１０７からのシミュレーションの入力と、シミュレーション用計算資源１０１におけるＣＰＵ、メモリ、ネットワーク、ストレージへのシステム負荷と、を監視し、記録する。
【００４９】
システム負荷・ユーザ挙動監視システム１０３は、取得したユーザ端末１０７のＧＵＩ操作及びファイル操作の記録、ユーザ端末１０７から指令されたシミュレーション及びシステム履歴データを用いて、いくつかの処理を行う。それらは、ユーザ端末１０７に対する利用料金の算出、ユーザ端末１０７またはユーザの所属するグループの開発進捗レポートの作成、シミュレーション用計算資源１０１に導入されるシミュレータを提供するソフトウェア提供者に対するライセンス料支払額の算出及びシミュレーション用計算資源１０１に導入されるシミュレータの利用状況レポートの作成である。
【００５０】
上記開発進捗・ツール利用状態・システム利用料確認モード３１７を選択した時の作業フローを、図２を参照しながら説明する。本システムは、システム負荷・ユーザ挙動監視システム１０３を用いてこの作業を実行する。
【００５１】
ステップ３１３において、ユーザ端末１０７は、開発進捗レポート、ソフトウェア利用状態レポート、システム利用料レポートの中から、閲覧を希望する情報の種類を選択する。ステップ３１４において、ユーザ端末１０７は、画面伝送システム１０４を通じて上記選択した情報を閲覧する。
【００５２】
ユーザがユーザ端末１０７を操作して本システム上で組み込みシステム等の開発を行なっていれば、システム負荷・ユーザ挙動監視システム１０３が算出した本システムの利用料金情報及び開発進捗レポートを受け取る。
【００５３】
また、ユーザがソフトウェア提供者となって、本システムにソフトウェアを提供していれば、システム負荷・ユーザ挙動監視システム１０３が算出した、ソフトウェアの利用状況及びソフトウェアの利用により発生したライセンス収入報告を受け取ることができる。
【００５４】
次に、本システムの詳細について説明する。図３は本システムを実施するのに必要な装置の詳細な構成を示すブロック図である。ただし、本図における装置の接続関係は単に実施形態の一例を示すものであり、先に示した機能を得られるのであれば、周知または公知の技術を用いることができる。
【００５５】
なお、図２の、ステップ３０１で説明したユーザ接続用情報の確認（認証）は、図３の画面伝送システム１０４内のユーザ接続権限確認装置７０２によって実行される。ユーザ接続権限確認装置７０２で提供される認証方式としては、ユーザ（ユーザ端末１０７）を識別するＩＤ番号とパスワードを用いる方式に加え、暗号化された個人識別情報を含むファイルの交換を用いた認証方式、ユーザ側で暗号化された個人識別情報を含む装置を用いた認証方式などを用いることが可能である。
【００５６】
また、本システムへのログインプログラムの提供方法としては、ウェブブラウザ上のアプリケーションとして提供する方法、ユーザのパーソナルコンピュータ（ユーザ端末１０７）上で動作する独立したアプリケーションとして提供する方法、本システムへのログインプログラムのみが動作するように構築されたＯＳ（Operating  System）を前述の個人識別情報を含む装置に導入して提供する方法が考えられる。しかし、本発明ではユーザと本システムの間の通信の秘匿性が確保され、本システムを利用する権限のないものが本システムにログインすることが不可能である、という要件を満たすものであれば、周知または公知の技術を用いることができる。
【００５７】
図４はソフトウェア作成モード３１５における本システムの処理フローを図示したものである。図４と図３を用いて、ソフトウェア作成モード３１５における本システムの処理を詳細に説明する。ここで言及するソフトウェアとは、ユーザが開発する組込みシステムのソフトウェア、シミュレーションを実行する上で必要となるシミュレーションモデル及びシミュレーション結果可視化システム１０２を指す。
【００５８】
ステップ４０１で、ユーザ端末１０７は、ソフトウェア作成モードを選択する。ステップ４０２で、作業用計算機システム１０６は、ユーザ端末１０７を使用するユーザに適した作業環境を割り当てる。この割り当てによって、ユーザ端末１０７は動的計算資源配分システム１００のツール・モデルデータベース７０９等を、作業用計算機システム１０６を介して利用可能となる。作業用計算機システム１０６は、後に説明する作業用計算資源７２２と、ユーザファイルストレージ７０７と、作業環境提供装置７０３によって構成される。
【００５９】
ステップ３０４で、ユーザは、ユーザ端末１０７から上記割り当てられた作業環境を遠隔操作し、ソフトウェアの開発を行なう。ステップ３０５で、ユーザが作成した設計ファイル等は、ユーザファイルストレージ７０７に保管される。この際、ユーザがユーザファイルストレージ７０７に施した変更は、ステップ４０４で、ファイル来歴記録装置７１４により、ファイルアクセス履歴として、ＧＵＩ操作及びファイル来歴を記録する操作履歴データベース７０８に登録される。
【００６０】
ステップ４０３で、作業用計算機システム１０６が提供する作業環境上でのユーザ端末１０７におけるユーザのＧＵＩ操作は、後に説明するユーザ挙動統計化装置７１３によって取得され、操作履歴データベース７０８に登録される。登録されたＧＵＩ操作履歴は、開発進捗の可視化のために利用され、また、ソフトウェア利用状況の統計情報として利用される。
【００６１】
ステップ３０６で、ユーザ端末１０７のユーザがソフトウェアの開発を終え作業環境の利用の停止を選択した場合、ユーザ挙動統計化装置７１３は、ユーザ端末１０７のＯＳの機能を用いて作業環境へのログイン時間とログアウト時間の差分を利用時間として取得する。取得された利用時間は、ステップ４０５で、本システムにおけるシステム負荷を記録する資源利用量管理データベース７１１に登録され、ソフトウェア作成モード３１５の利用料金の算出に利用される。
【００６２】
作業用計算機システム１０６のユーザファイルストレージ７０７は、ネットワーク上に配置されたファイル保管領域であって、ソフトウェア作成モード３１５で作成された設計ファイル及びシミュレーションモード３１６におけるシミュレーションのログファイルが保存される。
【００６３】
ユーザファイルストレージ７０７はユーザごと、またはユーザの所属する団体ごとに小領域に分割されている。なお、ユーザファイルストレージ７０７は、転送性能と容量によりクラス分けが行なわれており、システム利用料算出時に使用されるストレージ利用単価にもクラスによって差がついている。
【００６４】
また、ユーザファイルストレージ７０７を構成するストレージシステムの機能により、小領域（例えば、ブロック）毎に使用量または割当量が資源利用量管理データベース７１１に予め登録されており、それらは、ユーザに対するシステム利用料の算出の際に使用される。
【００６５】
本システム管理者は、ユーザの任意の小領域に対する読み込み、書き込み、参照の各アクセス権限を事前に設定することにより、本システムの機密性を保持する。
【００６６】
作業用計算資源７２２は、一つまたは複数のＯＳ（Operating System）が動作する計算機を含んで構成される。作業用計算資源７２２は、本システムに提供されたソフトウェアが利用可能な状態である。作業環境を構成するために使用されるＯＳの種類に関しては、周知または公知の技術を用いることができ、典型的には、本システムに提供される全てのソフトウェアの動作を可能にするため、複数種類のＯＳを利用される。
【００６７】
また、ユーザ端末１０７により利用されるシミュレータあるいはソフトウェアが異なることから、ユーザ端末１０７に提供されるＯＳの設定は、典型的には、多岐にわたる。
【００６８】
通常の１つの計算機に対して１つのＯＳという構成では、上記要求を満たすために必要とされる計算機数が増大する。しかし、例えば、ＶＭＷａｒｅのような一つの計算機上に複数のＯＳを動作させることができる仮想化ソフトウェアを用いることで、作業用計算機システム１０６が提供する作業用計算資源に必要とされる計算機の数を、削減することが可能である。
【００６９】
また、作業用計算資源７２２には、ユーザ端末１０７のログイン時間とユーザのログアウト時間、ユーザの使用したソフトウェアの種類ごとの使用回数、利用時間、使用機能、を取得する機能が必要となる。これらの情報を取得する機能を実現するため、ＯＳで提供されている機能を利用する場合とＯＳが提供していない機能を補完するソフトウェアの導入を必要とする場合が考えられるが、機能の実現方法に関しては周知または公知の技術を用いることができる。
【００７０】
作業環境提供装置７０３は、ユーザ端末１０７を操作するユーザの要求を満たすＯＳの種類と利用するソフトウェアの種類から、最適なＯＳの構成を作業用計算資源７２２内から選択し、それをユーザファイルストレージ７０７の該当するユーザの領域と結合し、ユーザに提供する計算機である。
【００７１】
作業用計算資源７２２とユーザファイルストレージ７０７の結合の実現方法として、２つの方法が可能である。一つの方法は、全てのユーザに一つまたは複数の専用作業環境を作業用計算資源７２２から割り当てた後、ユーザファイルストレージ７０７に保存された成果物以外のユーザが作業環境に施した作業中の変更も作業環境上に保存し、次回以降の利用でも再利用可能にする。
【００７２】
他の一つの方法は、全てのユーザが同じ作業環境を用いた場合、ユーザファイルストレージ７０７に保存された成果物以外のユーザが作業環境に施した変更を破棄する。本発明では、成果物をユーザファイルストレージ７０７に登録する点を除く作業環境の提供方法に関して、詳細は周知または公知の技術を用いることができる。
【００７３】
ユーザファイルストレージ７０７と作業環境との接続の方法として、少なくとも２つの方法が可能である。一つの方法は、作業環境を構成するＯＳ上でユーザが唯一書き込み可能なディスク領域として、ユーザファイルストレージ７０７をマウントする。他の一つの方法は、作業環境を構成するＯＳ上にはマウントせず、ユーザに能動的にユーザファイルストレージ７０７に設計ファイルをコピーさせる。
【００７４】
図５はシミュレーションモード３１６における、本システムの処理フローを図示したものである。図５、図２、図３を用いて、シミュレーションモード３１６における動作を詳しく説明する。
【００７５】
ユーザ端末１０７がシミュレーションモード３１６を選択した場合は、動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２により、シミュレーションが実行される。
【００７６】
動的計算資源配分システム１００は、シミュレーションタスク入力装置７０４、シミュレーションタスク生成装置７０５及びシミュレーションタスク発行装置７２３から構成される。なお、図３において、これらの各装置は独立した計算機であるが、これら装置の機能を実現するプログラムを、一つの計算機で実行することができる。
【００７７】
シミュレーション結果可視化システム１０２は、シミュレーションタスク生成装置７０５によって割り当てられたシミュレーション結果可視化部７１５を含んで構成され、シミュレーション結果可視化部７１５は画面伝送システム１０４の画面伝送装置７０１と接続される。
【００７８】
図２のステップ３０７で、ユーザ端末１０７はシミュレーションタスク入力装置７０４を用いて、ユーザの望むシミュレーション構成を作成する。
【００７９】
シミュレーションタスク入力装置７０４を用いたシミュレーション対象の構築が終了すると、図５の制御が開始される。ステップ５０１で、動的計算資源配分システム１００のシミュレーションタスク生成装置７０５は、ユーザ端末１０７から受け付けたシミュレーション構成の実行に必要な計算資源の見積もりを行なう。
【００８０】
その後、ステップ３０８で、動的計算資源配分システム１００は、そのシミュレーションタスク生成装置７０５により算出された必要となる時間及び費用並びに計算資源（図１３、図１４のクラスタノード１４００）に割り当てられたシミュレーションの構成を、ユーザ端末１０７に提示する。
【００８１】
ユーザ端末１０７を使用するユーザは、動的計算資源配分システム１００から提示された情報が希望に沿わない際は、ステップ３０７に戻り、シミュレーションタスク入力装置７０４でパラメータの調整を行い、再度シミュレーションタスク生成装置７０５に対し見積もりを要求する。
【００８２】
一方、シミュレーションタスク生成装置７０５がユーザ端末１０７に対して提示するシミュレーションの実行に必要とされる時間と費用が、ユーザの希望に沿うものであれば、次のステップ３０９で、ユーザは、ユーザ端末１０７からシミュレーションタスク発行装置７２３に、上記生成したシミュレーションタスクの実行を指示する。
【００８３】
ユーザ端末１０７がシミュレーションタスク発行装置７２３にシミュレーションタスクの実行を指示すると、ステップ５０３で、シミュレーションタスク発行装置７２３は、シミュレーションタスク構成として生成された図２３に例示するコマンドリスト１２０２に従い、シミュレーション用計算資源１０１の中から、必要とするＣＰＵ数、メモリ量を満たす最小の数のクラスタノードを確保する。
【００８４】
ユーザ端末１０７から入力したシミュレーション構成に必要とされる全てのソフトウェアのライセンスを後に説明するライセンスサーバ７２４により確保し、シミュレーションが開始される。
【００８５】
ステップ５０４で、図１３、図１４に示すシミュレーション用計算資源１０１のクラスタノード１４００で実行されるシミュレータが、相互にデータを交換しながらシミュレーションを進める。
【００８６】
その際、ステップ３１０で、シミュレーション結果可視化システム１０２のシミュレーション結果可視化部７１５は、１つまたは複数のシミュレータ（クラスタノード１４００）より受信したデータを蓄積し、ユーザ端末１０７から指定されたグラフとなるよう蓄積したデータを加工する。
【００８７】
シミュレーション結果可視化部７１５で加工されたデータを、リアルタイムにユーザ端末１０７へ提示する指定があれば、シミュレーション結果可視化部７１５は、シミュレーションモード３１６では、画面伝送システム１０４を介してユーザ端末１０７にシミュレーションを可視化したデータ（グラフなど）を提供する。
【００８８】
リアルタイムで提示する指定がなされていない場合、シミュレーション結果可視化部７１５は、加工したデータをユーザファイルストレージ７０７に保持する。ユーザ端末１０７からの要求に応じて、シミュレーション結果可視化部７１５は、ユーザファイルストレージ７０７から可視化したデータを提供する。
【００８９】
シミュレーション実行中の本システムへの負荷は、以下の処理でシステム負荷・ユーザ挙動監視システム１０３に記録される。
【００９０】
図５に示すステップ５０６で、シミュレーション用計算資源１０１でシミュレーションタスク構成が割り当てられたクラスタノード１４００のＣＰＵ、メモリに対する負荷が測定され、ステップ５０５で、シミュレーションログが記録される。データは、資源利用量として、図３に示すシステム負荷・ユーザ挙動監視システム１０３の資源利用量管理データベース７１１に記録される。
【００９１】
資源利用量管理データベース７１１に格納されたシミュレーション実行中のシステム負荷は、操作履歴データベース７０８に格納されたシミュレーション実行後のユーザ端末１０７の挙動情報とあわせて解析される。解析結果は、シミュレーションタスク生成装置７０５のタスク生成アルゴリズムにフィードバックされ、シミュレーションタスク構成を生成する精度を向上させる。
【００９２】
シミュレーションモード３１６のユーザへの提示方法としては、二つの方法が可能である。一つの方法は、ソフトウェア作成モードと同様に、シミュレーション用計算資源１０1の中からタスク入力装置７０４とシミュレーション結果可視化部７１５を各々独立したアプリケーションとして実装してシミュレーション実行用作業環境を割り当てる。
【００９３】
他の一つの方法は、タスク入力装置７０４とシミュレーション結果可視化部７１５をウェブブラウザ上のアプリケーションとして提示する。本発明ではタスク入力装置７０４とシミュレーション結果可視化部７１５のユーザへの提示方法について、いずれの周知または公知の技術を用いてもよい。
【００９４】
動的計算資源配分システム１００のライセンスサーバ７２４は、シミュレーション用計算資源１０１上に導入されたソフトウェアを起動するために必要なライセンス鍵を保持する計算機である。
【００９５】
通常、商用のソフトウェアには、不正コピーの防止のため、ライセンス認証によるソフトウェア起動の制限がかけられている。ライセンス認証によるソフトウェア起動の制限の手法としては、２つの方法が可能である。一つの方法は、計算機固有の情報、例えば、ネットワークインターフェースの個体識別子またはハードディスクの固体識別子等を用いて、認証を計算機それぞれで行なう。他の一つの方法は、ある一台の計算機で認証を行い、他の計算機が認証された計算機にライセンスを取得する。
【００９６】
本実施形態では、ライセンスサーバ７２４によるライセンス認証を用いた方を説明している。しかし、認証の提供方法に関して、本発明では周知または公知の技術を用いることができる。一般的に、本実施形態のように多数の計算機によって構成されるシミュレーション用計算資源を備え、かつ実行するソフトウェアが動的に変化していくような環境では、前者の計算機毎の認証は必要とするライセンスの本数の増加を招くため、計算機管理のコストは増加する。
【００９７】
図７は、動的計算資源配分システム１００のシミュレーションタスク入力装置７０４の典型的構成の一例を示す。シミュレーションタスク入力装置７０４は、タスク構築画面８０１とツールパレット８０２を備えたＧＵＩアプリケーションを実行する計算機として実装される。
【００９８】
ツールパレット８０２は、シミュレーション構成に使用可能な全シミュレーションモデルを複数の部品ブロック８０４として備え、各部品ブロック８０４は、一つのシミュレーションモデルまたはシミュレーションモデルの集合からなる。またツールパレット８０２には多数のシミュレーションモデルが登録されることを想定し、シミュレーションモデルの種別ごとメニュー８０６に、種別を分割表示する実装も考えられる。
【００９９】
図７の実施形態では、自動車系、航空系、ＯＡ系、油圧機械系などの適用分野による分類と、電子系、環境モデルなどのシミュレーション対象の物理階層による分類、あるいは後に説明する、シミュレーションモデルを実行するシミュレータによる分類を提示している。本図はメニュー８０６から自動車系を選択しており、エンジン、モータ等自動車の組込みシステムにおけるメカ系部品と、インジェクタ、センサのような駆動系部品、制御コントローラのような電子系部品のシミュレーションモデルが表示されている。
【０１００】
ユーザは、ツールパレット８０２から選択した部品ブロック８０４を、タスク構成画面８０１上に配置し、タスク構成画面８０１に配置された部品ブロック８２０〜８２５間において、矢印線８１５を用いて部品間の接続関係を記述することが可能である。このとき、ユーザは、各部品ブロック８２０〜８２５がどのソフトウェアによって実行されるか、いくつのＩ／Ｏインターフェースとつながっているかを明示的に指定する必要がない。また、ユーザはユーザ端末１０７からタスク構成画面８０１に配置された部品ブロック８２０〜８２５ごとにパラメータ設定画面８０５を表示させることができる。
【０１０１】
パラメータ設定画面８０５は、最初は、各部品８２０〜８２５の標準的な動作パラメータを表示し、ユーザはユーザ端末１０７からシミュレーション構成に併せて動作パラメータを適切に変更することが可能である。各モデルの動作パラメータの一例としては、イベント更新のためのステップ周期８１７、抽象化レベル８０７、ユーザが可視化させたい内部データ８０８等がある。
【０１０２】
データの可視化を行うシミュレーション結果可視化部７１５は、タスク構築画面８０１上で、内部状態を監視したい部品または部品間の結合に対して挿入される形で、シミュレーション環境に割り当てられる。また、その際にどのような提示方法を使うかを抽象的に選ぶことが可能である。
【０１０３】
本実施形態では図７で示すようにエンジンブロック８２５の可視化に対し連続系のグラフ化可視化部８１１を割り当て、エンジン制御ＥＣＵ８２０の内部状態の可視化に離散系のグラフ化可視化部８２１を割り当てることをユーザが指定している。
【０１０４】
また、シミュレーション構成の全体に関わるパラメータの設定画面８１４では、ユーザは、後に説明するシミュレーションタスクの生成時にシミュレーションタスク生成装置７０５が用いるパラメータを設定する。
【０１０５】
本実施形態では、ユーザは、ユーザ端末１０７から指定するシミュレーション構成の目標終了時間８１６を指定する。目標終了時間８１３の設定方法としては、本図のように、シミュレーションが終了して欲しい時刻を指定する方法と、経過時間を指定する方法の２種類が想定されるが、本発明ではその指定方法について、周知または公知の技術を用いることができる。このように、タスク構成画面８０１は、ユーザ端末１０７からの入力に応じて、設定、表示を行うＧＵＩである。
【０１０６】
図７において、ユーザがユーザ端末１０７から入力したシミュレーション構成は、保存することが可能である。具体的には、ユーザは、タスク構築画面８０１の保存ボタン８１３を押すことにより、タスク構築画面８０１上のシミュレーション構成をシミュレーション構成履歴データベース７２１に保存することが可能である。シミュレーション構成を保存するのにあたり、ユーザは、ユーザ端末１０７から、保存されたシミュレーション構成の開示範囲、構成の詳細参照・変更権限の有無及び各部品ブロックの持つパラメータの編集項目のオン／オフを設定可能である。
【０１０７】
以降では、上記保存されたシミュレーション構成をサブシステムと呼称する。図８は、図７で保存されたサブシステムを再利用した際の画面提示例を図示したものである。サブシステムを用いることによって、作成したシミュレーション構成９００を他のユーザと共有して再利用することが可能である。
【０１０８】
ユーザがシミュレーション構成履歴データベース７２１に保存したシミュレーション構成９００は、ツールパレットのユーザ定義メニュー９０６に表示される。このシミュレーション構成９００をタスク構築画面８０１上に配置すると、図７において構築したシミュレーション環境が図８のように展開され、サブシステムを作成したユーザが設定したパラメータがパラメータ設定画面９０１に表示される。本例では、可視化対象９０５、部品全体の抽象化レベル９０３、各モデルのシミュレーションステップ周期９０２などがある。
【０１０９】
また事前に、サブシステムを作成したユーザがユーザ端末１０７から変更・参照権限を付与していた場合、サブシステムのユーザは、サブシステムを構成する各部品の詳細パラメータを参照・変更することまたはサブシステム内に新たなシミュレーションモデルもしくは可視化対象を追加することが可能である。
【０１１０】
図９は、動的計算資源配分システム１００のシミュレーションタスク入力装置７０４において、シミュレーション対象の各部品で使用するソフトウェアを明示的に指定する必要がある場合の構成例を示す。図７との相違は、ツールパレット１０００に表示される全てび部品のツールが指定されていることである。タスク構築画面８０１への配置の方法、動作パラメータの設置方法は上記図７と共通である。
【０１１１】
本発明はシミュレーションタスク入力装置７０４の構成を図７の構成例、図８の構成例、図９の構成例のいずれかに限定することはなく、これらのうち全てまたは一部を含む構成であっても良い。
【０１１２】
図１０は、シミュレーションタスクのユーザインターフェースの一例を示す画面イメージである。このユーザインターフェースは、シミュレーション用計算資源１０１へのシミュレーションタスク構成の割り当て結果をユーザ端末１０７に提示する。本実施形態は、シミュレーションタスク入力装置７０４の画面表示を再利用し、その画面中にシミュレーションの終了予定時間、シミュレーションにかかる全体のコスト及びその内訳を示している。
【０１１３】
シミュレーションの終了予定時間の提示方法は、本図のようにシミュレーションが終了して欲しい時刻を指定する方法と、経過時間を指定する方法の２種類が想定される。本発明では、その指定方法について、周知または公知の技術を用いることができる。また、計算資源割り当て結果の提示方法は、図１０に示した方法には限定しない。
【０１１４】
図７から図１０までで説明したタスク生成作業は、動的計算資源配分システム１００のシミュレーションタスク入力装置７０４を用いてユーザ端末１０７から作成したシミュレーション構成を入力として受け取り、それを実行可能なシミュレーションタスク構成の列へと変換する作業であると定義する。
【０１１５】
シミュレーションタスク構成の生成は、シミュレーションモデルの粒度及びシミュレーションモデルを実行するシミュレータの特性に合わせて、シミュレーションもしくは計算機構成などのパラメータ調節を行なう。
【０１１６】
シミュレーションモデルの粒度とは、シミュレーションモデルにおける最小ユニットのサイズである。例えば、ＳｙｓｔｅｍＣにおける信号線レベルの様な低い抽象度のモデル化とデータ通信レベルの様な高い抽象度のモデル化というように、シミュレーションモデルによって、その抽象度に大きな差異がある。これにより、シミュレーション実行に必要とされる計算量と直接結合関係にある部品間の通信量が大きく変わる。
【０１１７】
一般に、抽象度が低いシミュレーションモデルほど、多くの計算量と通信量を必要とするが、詳細な内部情報を取得することが可能である。一方、抽象度が高いシミュレーションモデルは少ない計算量と通信量を必要とするが、時間精度が低く、内部状態の取得も限られる。
【０１１８】
粒度の異なるシミュレーションモデルを２つ以上接続する場合、シミュレーションモデル間のデータの同期を一定時間ごとに行なう必要がある。ここで最適化を施さない接続を行なうと、シミュレーションの実行は粒度の粗いモデルに合わせられ、全体のシミュレーション速度は低下する。
【０１１９】
よって、シミュレーションの可視化したい箇所に合わせてデータの同期周期を最適化することにより、全体のシミュレーション速度を改善する手法が重要となる。しかし、同期周期の最適化は、シミュレーション実行前に決定的に推定可能なものではない。よって、本システムでは、以前に実行されたシミュレーションの構成とそのシミュレーション構成実行時のシステム負荷を学習データとした、シミュレーション構成の最適化手法を採用する。
【０１２０】
図１１は、組み込みシステムとして内燃機関の制御システムを開発する場合に、エンジン制御ＥＣＵのシミュレーションをシミュレーションタスクとし、シミュレーションタスク構成１１０１を生成した例を示す。シミュレーション要素のエンジン制御ＥＣＵ、エアフローメータ、インジェクタ、エンジンには、それぞれシミュレーションを実行するソフトウェア（図中実行ツール）と、シミュレーションを行うモデル（図中使用モデル）と、使用するパラメータ（使用パラメータ）と、シミュレーションを実行するクラスタノード１４００の識別子（図中実行ノード）が割り当てられる。
【０１２１】
図１２に動的計算資源配分システム１００のシミュレーションタスク生成装置７０５によるタスク生成のフローチャートを図示する。これは図５のシミュレーションタスクの生成ステップ５０１と、タスク構成の記録をするステップ５０２に対応する。以下に、シミュレーションタスク生成装置７０５のタスク生成工程を説明する。
【０１２２】
ステップ１２０３で、シミュレーションタスク生成装置７０５は、シミュレーションタスク入力装置７０４を用いて作成されたシミュレーション構成を入力として、タスクを生成する。
【０１２３】
ステップ１２０４で、シミュレーションタスク生成装置７０５は、シミュレーション構成に含まれる各部品を実行するシミュレータと対応付ける。部品とシミュレータの対応付けは、シミュレーション構成内で利用されるシミュレーションモデルの情報を記録しているツール・モデルデータベース７０９における検索（ステップ１２１０）により、シミュレーション構成に含まれる各部品を実行させるのに必要なシミュレータ（シミュレーションソフトウェア）の種類、そしてシミュレーションモデルの粒度の情報を取得する。
【０１２４】
取得する際、シミュレーションタスク生成装置７０５は、過去に実行したシミュレーションタスク構成を記録するシミュレーション構成履歴データベース７２１を参照する（ステップ１２１２）。同等の構成を実行した履歴を発見できた際は、ツール・モデルデータベース７０９への照会は行なわず、シミュレーション構成履歴データベース７２１の履歴データを再利用することが可能である。
【０１２５】
次にステップ１２０５で、シミュレーションタスク生成装置７０５は、シミュレータとシミュレーションモデルとのシミュレーション用計算資源１０１へタスクを割り当てる。このとき、計算資源管理データベース７０６を参照する（ステップ１２１１）。具体的には、各部品の計算量と通信量への要求と、後に説明する計算資源管理データベース７０６に記録されているシミュレーション用計算資源１０１の計算能力と通信容量及び計算資源の使用状態の情報と、に基づき、シミュレーション構成の各部品を模擬するため、シミュレータとシミュレーションモデルとのシミュレーション用計算資源１０１へのタスクの割り当てを行なう。
【０１２６】
タスクの割り当てにおいては、部品間の通信量の多寡に応じて、配置するクラスタノード１４００の位置を近くに配置するかあるいは遠くに配置するかを判断する。また、あまりにも通信量が多いものに関しては、同一ノード内へ割り当てる。また、各部品間ではＴＣＰ/ＩＰ通信によって実行時間及びデータの同期が行われるため、データ通信に使うポート番号の割り当ても行なう。
【０１２７】
また、シミュレーションタスク生成装置７０５は、シミュレーション実行中に逐次結果を表示する必要があるシミュレーション結果可視化部７１５が含まれている場合は、シミュレーション結果可視化部７１５とシミュレーションモード提示用のユーザインターフェースとの結合も行なう。
【０１２８】
シミュレーション用計算資源１０１への各シミュレーションタスクの割り当てが終了すると、次のステップ１２０６で、シミュレーションタスク生成装置７０５は、各シミュレーションタスクのパラメータ調整を行なう。
【０１２９】
シミュレーションタスクのパラメータ調整は、シミュレーション構成履歴データベース７２１を参照し、各シミュレータとシミュレーションモデルの組み合わせについて、類似の部品、部品の結合関係及びクラスタ配置を持つシミュレーションを行なった際の各シミュレータのパラメータの履歴を検索する（ステップ１２１２）。
【０１３０】
上記検索条件に該当する結果が見つかった場合は、そのシミュレーションのパラメータを用いる。検索結果が見つからなければシミュレーションタスク入力装置７０４で入力されたパラメータ及びシミュレーション構成履歴データベース７２１において類似する構成履歴を検索し、シミュレーション結果の有効性の高い構成から取得した、シミュレータ用のパラメータを生成する。
【０１３１】
シミュレーション結果の有効性とは、シミュレーション結果がユーザの希望に沿う解析結果や実行速度であったか否かを、シミュレーション実行後のユーザの挙動を解析して評価した数値である。シミュレーション結果の有効性解析のフローに関しては後ほど説明する。
【０１３２】
ステップ１２０７で、シミュレーションタスク生成装置７０５は、各シミュレータとシミュレーションモデルの組み合わせに対する実行パラメータを確定することにより、図２３に例示するような、シミュレーション用計算資源１０１で実行させるシミュレーションタスクのコマンドリスト１２０２を確定する。
【０１３３】
上記処理により、シミュレーションに必要なシミュレータ及びシミュレーション可視化部７１５の種類と数、計算資源の量、計算資源の結合関係が分かる。これらを基にシミュレーション構成履歴データベース７２１を参照し、類似のシミュレーションがどれだけの時間と計算資源が必要であるか予測できる。
【０１３４】
シミュレーションタスク生成装置７０５は、時間と使用資源の予想値が算出できると、ユーザ端末１０７からユーザに提示するシミュレーションの予想経費を算出する。上記の予想値は、ユーザに提示される。本システムはシミュレーション実行あるいは、シミュレーションタスクの再生成のどちらかの指示がユーザ端末１０７から来るまで待機する。
【０１３５】
ユーザ端末１０７からシミュレーションタスクの再生成の指示が行なわれた場合、シミュレーションタスク生成装置７０５は、ユーザ端末１０７に提示したシミュレーション構成のタスク生成精度を減算し、再度別の生成パラメータ（シミュレーションの要素）を使いシミュレーションタスクの生成を行なう。
【０１３６】
タスク生成精度とはシミュレーションタスク生成装置７０５により生成されたシミュレーションタスク毎に付与される数値であり、実行されたシミュレーションタスクに対するユーザの有効度評価に基づいて１減算または１加算されることで算出される。
【０１３７】
一方、ユーザ端末１０７から実行の指示があった場合は、シミュレーションタスク生成装置７０５は、コマンドリスト１２０２をタスク発行装置７２３に渡しシミュレーションを開始する。シミュレーションタスク生成装置７０５における、シミュレーション構成と履歴データの間の類似度の推定アルゴリズムに関しては、図１２で説明した動作フローを持つこと以外について、周知または公知の技術を用いることができる。
【０１３８】
ステップ１２０８では、演算資源負荷測定装置７１２は、シミュレーション実行中のシミュレーション用計算資源１０１でのシステム負荷を観測し、その観測結果を記録する。具体的には、シミュレーション用計算資源１０１の各クラスタノード１４００のシステム負荷（例えば、プロセッサ使用率）を取得し、資源利用量管理データベースに記録する。
【０１３９】
ステップ１２０９では、シミュレーションタスク生成装置７０５が、シミュレーション結果及び実行されたシミュレーションの構成について、シミュレーション実行後に解析を行い、当該シミュレーションの有効性を評価する。
【０１４０】
シミュレーション実行後に、ユーザがユーザ端末１０７で可視化されたシミュレーション結果を確かめる。その結果に応じユーザがどのような行動を取るかは、ユーザ挙動統計化装置７１３により取得が可能である。
【０１４１】
ユーザがユーザ端末１０７にてシミュレーション結果を受け、同じ部品構成のシミュレーションをシミュレータの動作に関わるパラメータを変えつつ再実行を繰り返していることが、ユーザ挙動統計化装置７１３の測定結果により判明した際は、シミュレーションタスク生成装置７０５は、ユーザがシミュレーションタスク生成装置７０５による自動割り当て性能に満足していないと判断し、シミュレーション構成履歴のタスク生成精度を減算する。
【０１４２】
ユーザがユーザ端末１０７でシミュレーション結果を受け、全く同じ部品構成、同じシミュレータ動作パラメータを用いていることがユーザ挙動統計化装置７１３の測定結果により判明した際は、シミュレーションタスク生成装置７０５は、該当するシミュレーション構成履歴のタスク生成精度を加算する。有効度の高いシミュレーション構成履歴が次回以降から用いられるように、シミュレーションタスク生成装置７０５は、シミュレーション構成履歴データベース７２１の各構成履歴エントリの有効度を用いている。
【０１４３】
前述の仕組みによりシミュレーションタスク生成装置７０５は自身のタスク生成精度を向上させることが可能である。
【０１４４】
以降、前記タスク生成装置７０５で用いるデータベースのテーブル構成例等について説明する。ツール・モデルデータベース７０９は、本システムで利用可能である任意シミュレーションモデルの情報を格納するデータベースである。図１９のテーブル構成１２００はツール・モデルデータベース７０９のテーブル構成の一例を図示したものである。
【０１４５】
本実施形態では、ツール・モデルデータベース７０９は、各シミュレーションモデルの識別子（図中部品名）と、シミュレーションモデルを実行可能なシミュレータの識別子（図中ツール）と、実行可能なシミュレータのバージョン情報（図中バージョン）、当該シミュレーションモデルの粒度（図中モデル粒度）と、当該シミュレーションモデルの入出力ポートの個数を図中コネクション情報として格納する。このテーブル構成は本発明を実現する上で最低限のテーブル構成であり、更に格納するべき情報を増やしてもよい。
【０１４６】
計算資源管理データベース７０６は、本システムのシミュレーション用計算資源１０１の状態を管理するデータベースである。図２４は、計算資源管理データベース７０６のテーブル構成の一例を図示したものである。
【０１４７】
本実施形態において、計算資源管理データベース７０６は、シミュレーション用計算資源１０１を構成するクラスタノード１４００の計算能力、ノードの位置情報、利用状態、利用状態からの復帰予定時間等を格納するデータベースである。
【０１４８】
図２４において、クラスタノードのクラス２４０１は、シミュレーション用計算資源１０１を、そのＣＰＵ性能及びＲＡＭ容量でクラス分けしたものである。クラスタノードのクラスは、後ほど説明するシミュレーション実行における費用の算出に利用される。
【０１４９】
本実施形態では、ノード配置２４０２は、対象とするクラスタノードのネットワーク上での位置情報を格納する。本実施形態は、ネットワーク上の位置情報としてＩＰアドレスを用いている。ＩＰアドレスによりネットワーク上での位置関係が把握でき、ネットワーク上での位置関係を基に通信量を見積もることが可能になる。一般的にＩＰアドレスの近いノードほど、高い通信量をサポートすることが可能である。
【０１５０】
このテーブル構成は本発明を実現する上で最低限のテーブル構成であり、更に格納するべき情報を増やしてもよい。
【０１５１】
動的計算資源配分システム１００のシミュレーション構成履歴データベース７１１は、シミュレーションタスク生成装置７０５によって生成されるシミュレーションタスクの構成、すなわち、あるシミュレーションにおいて利用されたシミュレータの種類、シミュレーションモデル、シミュレータ間の結合関係（シミュレーション構成）、各シミュレータで使用したパラメータ及びそのシミュレーション構成の実行結果の有効度を保存するデータベースである。
【０１５２】
図２６Ａは、シミュレーション構成履歴データベース７１１のシミュレーション構成テーブル２６００の一例を示すものである。本実施形態では、シミュレーションの識別子（図中シミュレーションＩＤ）、シミュレーションの開始時間（図中開始時刻）、目標終了時間、実際の終了時間（図中実終了時刻）、シミュレーション構成（図中シミュレーション構成ファイルパス）を格納する別のテーブルへのリンク及びシミュレーション有効度を格納する。
【０１５３】
図２６Ｂはシミュレーション構成履歴データベース７１１のシミュレータ構成テーブル２６０１の一例を示すものである。本実施形態では、シミュレータ構成の識別子（図中シミュレーションＩＤ）、シミュレータ種類、シミュレーションモデルのファイル格納先及びシミュレーション実行時に直接データを交換するシミュレーションモデルの識別子（図中隣接構成ＩＤ）を格納する。本データベースの構成は、図２６Ａ、図２６Ｂで図示する情報を含む限り、他の部分に関して周知または公知の技術を用いることができる。
【０１５４】
演算資源負荷測定装置７１２は、例えば、システム提供者により導入された、シミュレーション用計算資源１０１に搭載されているＯＳ標準のシステム状態取得用プログラムにより実現することができる。演算資源負荷測定装置７１２は、各プロセスの実行時間とＣＰＵ負荷、ＲＡＭ使用量の記録が可能であることを除き、その詳細に関しては、周知または公知の技術を用いることができる。図３に示すように、各クラスタノード１４００の負荷情報を取得するプログラムを、システム負荷・ユーザ挙動監視システム１０３の計算機が実行するようにしても良い。
【０１５５】
シミュレーション用計算資源１０１の構成例を図１３、図１４を用いて説明する。図１４は、シミュレーション用計算資源１０１の構成要素であるクラスタの最小構造の一例を図示する。図１３は、クラスタの構成要素であるクラスタノードの構成例を図示する。シミュレーション用計算資源１０１は、１つまたは複数のクラスタノード１４００及び一つまたは複数のストレージシステム１４０２が通信ネットワーク１４０１によって相互に接続されたクラスタ最小構造１４０３をもつ。
【０１５６】
またシミュレーション用計算資源１０１は、１つのクラスタ最小構造１４０３または複数のクラスタ最小構造１４０３が通信ネットワーク１４０１により接続された構造を持つことができる。通信ネットワーク１４０１には、ＬＡＮ（Local Area Network）、インターネット、ＷＡＮ(Wide Area Network)、専用回線、無線ネットワーク、公衆回線網、携帯電話網のいずれを適用することもでき、ネットワークの種類と接続構造には拘らない。通信ネットワーク１４０１はＶＰＮ（Virtual Private Network）などの仮想専用ネットワーク技術の適用を受けるときがある。
【０１５７】
クラスタノード１４００の構成例を、図１３を用いて説明する。クラスタノード１４００の基本的構成は、１つまたは複数のプロセッサ１３００、１つまたは複数のメモリ１３０３、コントローラ１３０１、１つまたは複数のアクセラレータ１３０２とネットワークインターフェース１３０４の要素を備える。各要素の個数、接続関係は限定しない。
【０１５８】
図６及び図３を用い、開発進捗・ツール利用状態・システム利用料確認モード３１７における処理の一例を解説する。
【０１５９】
開発進捗・ツール利用状態・システム利用料確認モード３１７で提供される情報は、後に説明する方法により、定期的にその時点でのシステム情報の検索６００による最新のデータを用いて解析される。具体的には、システム負荷・ユーザ挙動監視システム１０３内の開発進捗抽出装置７１８は、開発進捗レポートの作成６０３とソフトウェア利用状況レポートの作成６０４において、上記最新のデータを用いて上記情報を解析する。システム利用料生成装置７１６は、システム利用料レポートの作成６０１とライセンス料レポートの作成６０２において、上記最新のデータを用いて上記情報を解析する。
【０１６０】
開発進捗レポートは開発進捗情報データベース７２０に、ソフトウェア利用状況レポートはツール利用状況データベース７１９に、システム利用料レポート及びライセンス料レポートは課金管理データベース７１７に、それぞれ記録されている。
【０１６１】
ステップ３０２で開発進捗・ツール利用状態・システム利用料確認モード３１７を選択したユーザは、ステップ３１３で、確認したい情報の種類を、開発進捗レポート、ツール利用状況レポート及びシステム利用確認レポートの中から選択する。
【０１６２】
利用する情報がユーザ端末１０７で選択されると、本システムは該当する最新のレポートを開発進捗情報データベース７２０、ツール利用状況データベース７１９及び課金管理データベース７１７から検索する。該当するレポートデータが見つかった場合は、ステップ３１４で、画面伝送装置７０１を介してユーザ端末１０７に提示を行なう。
【０１６３】
ユーザは、本システムの利用契約を締結する際に、ユーザが見ることが出来る情報にあらかじめ制限をつけることが可能である。例として、本システムで開発を行なうユーザは、開発進捗レポートと利用料金情報を受け取ることが可能だが、ライセンス料情報に関しては閲覧することが不可能である。
【０１６４】
以降にシステム負荷・ユーザ挙動監視システム１０３内のシステム利用料生成装置７１６及び開発進捗抽出装置７１８における情報の解析手順と、その際に必要となるデータベースの構成例に関して説明する。
【０１６５】
図１５Ａは、システム利用料生成装置７１６が、操作履歴データベース７０８、資源利用量管理データベース７１１及び資源価格データベース７１０の情報から、ユーザ端末１０７を使用するユーザに請求する本システムの利用料金及びソフトウェア提供者に支払うライセンス料を算出する手順を示したものである。
【０１６６】
まず、ユーザに請求するシステム使用料の算出プロセスを説明する。ステップ１５００及びステップ１５０１で、システム利用料生成装置７１６は、ユーザ毎に、シミュレーション用計算資源１０１の負荷履歴と作業用計算機システム１０６のユーザによる使用時間内のＧＵＩ操作履歴を、それぞれ、資源利用量管理データベース７１１と操作履歴データベース７０８から検索する。
【０１６７】
ステップ１５０３で、システム利用料生成装置７１６は、シミュレーション用計算資源１０１の負荷履歴と作業用計算機システム１０６のＧＵＩ操作履歴の組み合わせにより、使用機能毎のＣＰＵ利用量、ＲＡＭ利用量及び所要時間を抽出する。
【０１６８】
一方、ステップ１５０２で、システム利用料生成装置７１６は、資源価格データベース７１０から、ユーザ端末１０７から使用したツールごとに、利用計算ノードをキーワードとして計算資源単価とツール単価を検索する。
【０１６９】
システム利用料生成装置７１６は、上記ステップ１５０２、１５０３で収集したデータを、ステップ１５０４で、
（ＣＰＵ使用量×ＲＡＭ使用量×計算資源単価＋ツール単価）×利用時間
の計算式に従って計算する。この計算式は、計算機資源の使用量に計算機資源の使用単価を乗じる計算に相当する。システム利用料生成装置７１６は、ユーザ端末１０７のユーザ毎に、本システムの機能の利用量に応じたシステム利用料金を計算して集計する。
【０１７０】
次にステップ１５１３で、システム利用料生成装置７１６は、資源利用量管理データベース７１１からユーザ端末１０７のユーザのストレージ利用量を検索し、資源価格データベース７１０からストレージ単価を検索する。さらに、ステップ１５０５で、ストレージ利用量とストレージ単価を掛け合わせて、ストレージ利用料金としてシステム利用料金に加算する。資源価格データベース７１０に関しては後ほど解説する。
【０１７１】
ステップ１５０５により、ユーザに対するシステム利用金額は、
【数１】
2011016327.tif 000003
で与えられる。
【０１７２】
ステップ１５０６で、システム利用料生成装置７１６は、上記算出したストレージ利用料金を加えたシステム利用料の合計及び明細をまとめ、図２７に例示されるようなシステム使用料金レポート２７００を作成する。最後にステップ１５１２で、作成したシステム使用料金レポート２７００を課金管理データベース７１７に登録する。
【０１７３】
次に図１５Ｂを用いて、ソフトウェア提供者に支払うソフトウェアライセンス料の算出プロセスを説明する。ステップ１５０７及びステップ１５０１で、システム利用料生成装置７１６が、ソフトウェア毎のシミュレーション用計算資源１０１の負荷履歴と、作業用計算機システム１０６のユーザによる使用時間内のＧＵＩ操作履歴を、それぞれ資源利用量管理データベース７１１と操作履歴データベース７０８から検索する。
【０１７４】
次にステップ１５０９で、シミュレーション用計算資源１０１の負荷履歴と作業用計算機システム１０６ＧＵＩ操作履歴の組み合わせにより、使用機能毎の細かい所要時間を抽出する。
【０１７５】
一方、ステップ１５０８で、システム利用料生成装置７１６は、資源価格データベース７１０から、ソフトウェアの使用単価を、ソフトウェアの機能をキーワードとして検索し、上記抽出した所要時間と掛け合わせる。ステップ１５１０により、ソフトウェア提供者に対するソフトウェアライセンス支払い料を、
【数２】
2011016327.tif 000004
により算出する。
【０１７６】
ステップ１５１１で、システム利用料生成装置７１６は、算出したソフトウェアライセンス料の合計及び明細を集計して、図２８で例示するようなライセンス料レポート２８００を作成する。最後にステップ１５１２で、作成したシステム使用料金レポート２８００を課金管理データベース７１７に登録する。
【０１７７】
以上により、システム利用料生成装置７１６はシステム使用料金レポート２７００とシステム使用料金レポート２８００を生成する。
【０１７８】
次に、図１５Ａ及び図１５Ｂで説明した資源価格データベース７１０の詳細について図２０を参照しながら説明する。システム負荷・ユーザ挙動監視システム１０３内の資源価格データベース７１０は、事前に、ソフトウェア提供者、ユーザと結んだライセンス料及びシステム利用料、の契約情報を保管する。
【０１７９】
資源価格データベース７１０のテーブル構成例を図２０を用いて説明する。資源価格データベース７１０のストレージ価格テーブル１７３０は、本システム内のストレージのクラスごとに、その性能、容量及び使用時間あたりの単価を保存する。
【０１８０】
資源価格データベース７１０のクラスタノード価格テーブル１７４０は、ノードの種類ごとに、搭載ＣＰＵ、ハード種類、メモリ搭載量、時間・単位ＣＰＵ使用量・単位ＲＡＭ使用量あたりの単価、を保存する。
【０１８１】
資源価格データベース７１０のツール価格テーブル１７５０は、ソフトウェア及び機能ごとに、ベンダ情報と機能毎・単位時間当たりの単価を保存する。単価情報は、ソフトウェア提供者への支払い用単価とユーザへの請求用単価の２つを格納する。
【０１８２】
システム負荷・ユーザ挙動監視システム１０３内の資源利用量管理データベース７１１は、シミュレーション用計算資源１０１と作業用計算資源７２２とユーザファイルストレージ７０７とに対する使用負荷を記録するデータベースである。
【０１８３】
図１７に、資源利用量管理データベース７１１のテーブル構成例を図示する。資源利用量管理データベース７１１は、ユーザ端末１０７が利用したユーザファイルストレージ７０７の利用履歴を格納するストレージ利用量履歴テーブル１７００、シミュレーション用計算資源１０１で利用したクラスタノード１４００の負荷履歴を格納するシステム負荷履歴テーブル１７１０及びリモートＯＳ利用時間テーブル１７２０を含んで構成される。
【０１８４】
ストレージ利用量履歴テーブル１７００は、ユーザ端末１０７のユーザがユーザファイルストレージ７０７上に確保しているストレージ領域ごとに、利用量を含む情報を記録する。本実施形態では、ユーザ識別子、使用ストレージ量及びストレージクラス識別子を記録する。
【０１８５】
作業用計算機システム１０６内のユーザファイルストレージ７０７における各ユーザのストレージ利用量は、システム負荷・ユーザ挙動監視システム１０３で実行されるストレージ利用量集計プログラムにより逐次モニタされている。
【０１８６】
システム負荷履歴テーブル１７１０は、ユーザ端末１０７のユーザがシミュレーション用計算資源１０１上で実行したタスクのシステム負荷を格納する。本実施形態では、使用したソフトウェア、タスクの開始時間、タスクの終了時間、使用したクラスタノードの種類、ＣＰＵ使用量及びメモリ使用量の平均値及びピーク値、を記録する。
【０１８７】
リモートＯＳ利用時間テーブル１７２０は、作業用計算機システム１０６内の作業環境用計算資源７２２におけるユーザの利用時間を記録する。本実施形態では、ユーザ識別子、作業環境用計算資源７２２へのログイン時間及びそのログアウト時間を記録する。操作履歴データベース７０８は、ユーザ端末１０７を介してユーザが本システム上でＧＵＩあるいはファイルに対し行なった操作を保持し、操作履歴から解析された挙動を保持するデータベースである。
【０１８８】
図１８に操作履歴データベース７０８のテーブル構成例を図示する。操作履歴データベース７０８は、ユーザ端末１０７からユーザが本システムを利用した履歴を格納するユーザ挙動ＲＡＷデータテーブル１８２０と、ユーザ挙動統計化装置７１３の解析結果を格納するイベントテーブル１８１０と、ユーザ毎にユーザ端末１０７からユーザファイルストレージ７０７にアクセスした履歴を格納するファイル来歴テーブル１８００と、から構成される。
【０１８９】
ユーザ挙動ＲＡＷデータテーブル１８２０は、シミュレーションタスク入力装置７０４及び作業用計算資源７２２に対するユーザの操作からユーザ挙動統計化装置７１３が取得したデータを、そのまま保持する。よって、本テーブル１８２０には、マウスに対する操作のような各ツールのＧＵＩ部品のイベント履歴や、記入されたテキスト等が記録されるのみである。
【０１９０】
イベントテーブル１８１０は、ユーザ挙動ＲＡＷデータテーブル１８２０とファイル来歴テーブル１８００のデータをユーザ挙動統計化装置７１３がテンプレート解析したデータを格納する。
【０１９１】
ユーザ挙動統計化装置７１３は、ＧＵＩ操作列（テンプレート）と対応する計算機操作のペアを格納しており、ユーザのＧＵＩ操作履歴とテンプレートを照合し、統計的手段により最も対応する確率の高いと判定された計算機操作イベントを出力する。本願ではこの照合をテンプレート解析と呼称する。
【０１９２】
ユーザ挙動統計化装置７１３のテンプレート解析により、ユーザ挙動ＲＡＷデータテーブル１８２０のＧＵＩ操作履歴の列から、各ツールに対する操作イベント、例えばツール上でどのような部品を扱ったか、どのようなオプションを選択したかが推定できるようになる。本実施形態では、イベントテーブル１８１０は、ユーザ識別子、ソフトウェアの種類、イベントの発生時刻、イベント内容を格納する。
【０１９３】
また、本実施形態では、ユーザ挙動統計化装置７１３に対して、テンプレート解析のアルゴリズムに関し上記で述べた機能以外については、周知または公知の技術を用いることができる。
【０１９４】
開発進捗状況及びツール利用状態の抽出において、本システムは、ユーザの要請を受けることなく定期的に情報解析を行い、その都度最新のレポートファイルを各データベースに格納する。本システムの情報解析手法は、材料であるソフトウェア部品から開発結果であるシミュレーション結果が創出される過程を、各ツールの利用及びファイルへのアクセスから推定する。
【０１９５】
図１６Ａを用いて、開発進捗抽出装置７１８がユーザの挙動履歴（操作履歴データベース７０８）を参照して開発進捗状況を抽出する処理の一例を以下に説明する。ステップ１６０７では、開発進捗抽出装置７１８が、ユーザ毎のジョブを検索する。この検索は、ユーザ端末１０７を使用するユーザまたはユーザグループに課せられたジョブ、例えば一定の部品とソフトウェアを含むシミュレーションが、ユーザもしくはユーザグループの管理者またはユーザ自身により、システムに登録されていることを前提とする。このジョブの入力方法、格納方法に関しては、周知または公知の技術を用いることができる。
【０１９６】
次に、ステップ１６０８では、開発進捗抽出装置７１８が、動的計算資源配分システム１００のシミュレーション構成履歴データベース７２１及び資源利用量管理データベース７１１を検索し、ステップ１６０７で検索したジョブに該当するシミュレーションタスク構成の履歴を探す。検索結果が見つかった場合、次のステップ１６０９で当該シミュレーションに関わる情報の依存関係解析を行なう。
【０１９７】
開発進捗抽出装置７１８は、ステップ１６００で、ユーザまたはユーザグループの識別番号と該当するシミュレーションをキーワードとして検索を実行する。資源利用量管理データベース７１１において、シミュレーションの実行時間並びにシミュレーションで使用されたソフトウェア及びファイルの情報を検索する。操作履歴データベース７０８において、ＧＵＩ操作、各ソフトウェアの各機能の利用イベント及びイベントが発生した時間の情報ファイルの来歴情報を検索する。
【０１９８】
そしてステップ１６００では、開発進捗抽出装置７１８は、検索結果を集計し、図２１で示されるような情報流グラフ２１００を作成する。
【０１９９】
図２１の情報流グラフ２１００は、時系列及び操作の流れを解析しユーザに課せられたシミュレーションタスクが基点であり、シミュレーション試行、ファイルの変更が点であり、情報の依存関係を辺である、グラフ構造を有する。図２１のステップ２１０１と２１０２のように、あるステップが変更を行なった情報あるいはファイルに対して、後の時間で該当する情報を参照しているステップがある場合、２つのステップの間には依存関係があるものと考える。
【０２００】
また、時系列が進む中で同じ依存関係の列が複数回現れる場合、開発進捗抽出装置７１８は、その依存関係列をループ２１０３としてまとめて可視化する。
【０２０１】
ステップ１６０２で、開発進捗抽出装置７１８は、上記ステップ１６００で得られた開発情報を解析した情報流グラフ２１００により、ユーザに課せられたシミュレーションジョブの実行過程で作成または変更を施されたファイルまたはソフトウェアの一覧を抽出することが可能である。ステップ１６０３において、開発進捗抽出装置７１８は、抽出結果を含む開発進捗レポートを発行して開発進捗情報データベース７２０に記録する。
【０２０２】
また、開発進捗抽出装置７１８は、情報流グラフ２１００のループ構造についても解析を行なう。ループ構造の解析の一例は、以下のようなものである。シミュレーション構成またはパラメータを変更することなくシミュレーションを試行し続けた場合、情報流グラフ２１００において、自己閉路すなわちある点から自分自身への辺が出る部分が、当該シミュレーション部分に存在することになる。ループ構造の解析は、このような自己閉路の抽出の他、ループの階層構造の抽出を行ない、ワークフローの作業効率を測定し、ユーザに課せられたジョブの達成度合いを抽出する。
【０２０３】
開発進捗抽出装置７１８は、ステップ１６０２で抽出されたシミュレーション工程の進捗割合、シミュレーション実行に際し作成されたファイルの情報、実行されたシミュレーションの回数とその有効度を有する開発進捗レポート１６０４（図２２に例示）を作成し、開発進捗情報データベース７２０に格納する。図２２の開発進捗レポート１６０４はあくまでもその構成の一例であり、上記で列挙した以外の情報の付加、表現方法に関しては、周知または公知の技術を用いることができる。
【０２０４】
最後に、開発進捗抽出装置７１８が行う、ユーザの挙動履歴によるソフトウェア利用状況の抽出に関して、図１６Ｂを用いて説明する。
【０２０５】
図１６Ｂのステップ１６０７からステップ１６００までは、上記図１６Ａに示したユーザの挙動履歴による開発進捗状況の抽出フローのステップ１６０７からステップ１６００までと同様なので、それらにおける重複した説明を省略する。図１６Ｂのステップ１６０８、１６０９において、資源利用量管理データベース７１１及びシミュレーション構成履歴データベース７２１に対する検索、情報流解析、情報流グラフ２１００の作成は、図１６Ａを参照して説明した開発進捗の解析と共通である。しかし、図１６Ｂに示すソフトウェア利用状況の抽出は、本システムに導入されているソフトウェアのＩＤをキーワードとして検索を行なう。
【０２０６】
開発進捗抽出装置７１８は、操作履歴データベース７０８のイベントテーブル１８１０から、該当ソフトウェアが備える機能及びパラメータの使用頻度分布を取得する。また、前述の開発進捗状況抽出に用いた情報流グラフ２１００に基づき、該当ソフトウェアと連携して使用されるファイルまたは別のソフトウェアに関する情報を収集する。
【０２０７】
ステップ１６０５において、開発進捗抽出装置７１８は、収集された情報を図２５に示されるようなツール利用状況レポート２５００として可視化できる形に加工する。ツール利用状況レポート２５００は、ツール利用状態データベース７１９に保管され、ソフトウェア提供者に発行される（ステップ１６０６）。
【０２０８】
図２５のツール利用状況レポート２５００はあくまでもその構成の一例であり、上記で列挙した以外の情報付加、表現方法に関しては、周知または公知の技術を用いることができる。
【０２０９】
以上述べたように、本実施形態では、動的計算資源配分システムは、ユーザ端末から入力されたシミュレーションタスクにおける各部品（開発するメカニズム、ハードウェア、ソフトウェア）の結合関係を基に、シミュレーションタスク構成が最適に実行されるように、シミュレーション用計算資源上でのシミュレータの配置関係を算出して実際のシミュレーションタスクを構築する。これにより、高速にシミュレーションを実行することができる。
【０２１０】
また、組込みシステム開発のユーザ毎に、シミュレータあるいはソフトウェア利用履歴を高精度で抽出して記録し、記録した情報からユーザ毎の開発工程を抽出する。これにより、ユーザ毎の進捗の管理を容易に行うことができる。
【０２１１】
更に、作業用計算資源７２２及びシミュレーション用計算資源１０１を一元化することで、開発環境の整備にかかる初期投資と保守費用を低減することができる。また、作業用計算資源７２２を及びシミュレーション用計算資源１０１を一元化することで、複数の拠点で同時開発を行う場合であっても、設計ファイル（シミュレーションモデルやパラメータなど）の共有が可能となり、組込みシステム開発の効率を向上させることが可能となる。特に、シミュレータあるいはソフトウェアは全て一元化された計算機システム上での管理となるため、組込みシステム開発者が各自でソフトウェアの事前購入と保守をする必要がなくなる。
【０２１２】
また、上記収集したユーザ毎の情報から過去のパラメータやシミュレーション構成を再利用して複数のシミュレータの連携とシミュレータのパラメータ調整の自動化を行うようにしたため、開発者（ユーザ）が詳細なノウハウを持たない場合でも速度及び精度の優れたシミュレーションを容易に実行することができる。これにより、組込みシステム開発の効率を向上させることが可能となる。
【０２１３】
また、開発されたソフトウェアと当該ソフトウェアを用いたシミュレーションの結果は、一元化された計算機システムにおいて安全に転送されるため、設計ファイルの共有が容易となり、部外者へ情報が漏えいするリスクを抑制することが可能となる。
【０２１４】
第２の実施形態．
図２９は本発明の第２の実施形態の一例の概略を示すブロック図である。第２の実施形態は、前記実施形態１の構成に加え、高セキュリティファイル送信システム１０５を備えている。高セキュリティファイル送信システム１０５を通じて、システム負荷・ユーザ挙動監視システム１０３から提供されるシステム利用料レポート、ライセンス料レポート、開発進捗レポート及びソフトウェア利用状況レポートを、ファイルとして、ユーザ端末１０７または提供者端末１０８が受け取ることができる。
【０２１５】
これにより、各レポートを取得して確認する際に、本システムのシステム負荷・ユーザ挙動監視システム１０３にユーザ端末１０７、提供者端末１０８を直接接続する必要がない。これにより、開発作業以外で、動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２及びシステム負荷・ユーザ挙動監視システム１０３に、ユーザ端末１０７等を接続する必要が無くなり、セキュリティをより高めることが可能となる。
【０２１６】
なお、上記第１実施形態の図３に示したシステム負荷・ユーザ挙動監視システム１０３を構成する開発進捗抽出装置７１８の機能を、本システムの利用によって発生するシステム使用料金及びライセンス利用料金を算出するシステム利用料金生成装置に組み込んでもよい。
【０２１７】
システム利用料金生成装置は、本システムにおけるユーザの開発工程を抽出する開発進捗を抽出し、本システムにおけるユーザの画面操作情報と、ファイル操作情報と、シミュレーション用計算資源に対する負荷から、システム利用料請求額及びライセンス料支払い額の算出と、ユーザ毎の開発進捗レポート及びソフトウェア利用状況レポートの作成を行う。
【０２１８】
また、上記第１実施形態の図３に示した作業用計算機システム１０６は、ネットワーク上に配置されてユーザ端末１０７から遠隔操作可能な計算機を含む作業用計算資源として機能する。また、作業用計算機システム１０６は、ネットワーク上に配置されてユーザ端末１０７から製作した設計ファイルを保存し、他のユーザ端末１０７と共有が可能なストレージを含むユーザファイルストレージとして機能する。
【０２１９】
さらに、作業用計算機システム１０６は、ユーザ端末１０７からの要求に応じて、上記作業用計算資源と上記ユーザファイルストレージを結合して提供する装置としての作業環境提供装置として機能する。このように、作業用計算機システム１０６は、ユーザ端末１０７での設計ファイル作成及び複数のユーザ端末１０７による設計ファイルの共有を実現する。
【０２２０】
また、上記第１実施形態の図３に示した動的計算資源配分システム１００のシミュレーションタスク入力装置７０４は、ユーザ端末１０７から使用可能なシミュレーションモデルを選択可能なツールパレットと、シミュレーションモデルを配置可能なモデル構築画面を備える。ツールパレットとモデル構築画面は、ユーザ端末１０７からの入力に応じてシミュレーションタスク入力装置７０４がシミュレーション構成することを可能とする、ＧＵＩである。
【０２２１】
ツールパレットは、固有の詳細情報が省かれた１つまたは複数のシミュレーションモデルを配置しているＧＵＩを提供する。モデル構築画面は、ユーザ端末１０７からの入力に応じて、ツールパレットから選択されたシミュレーションモデルを配置し、配置されたモデル間を線で結合し、シミュレーションモデル固有の情報を表示及び設定する。上記ツールパレットと上記モデル構築画面を使った画面操作に応じて、シミュレーションタスク入力装置７０４は、シミュレーション構成を構築する。
【０２２２】
また、上記第１実施形態の図３に示した動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２、システム負荷・ユーザ挙動監視システム１０３、作業用計算機システム１０６、セキュア通信を用いた画面伝送システム１０４内の各装置を、それぞれ計算機として表現したが、各装置で実行されるソフトウェアを一つの計算機で実行するようにしても良い。この場合、上記システム１０１〜１０４内の各装置は、例えば、ユーザ挙動統計化部と読み替えればよい。
【０２２３】
本システムで動作するソフトウェアプログラムは、圧縮してあるいは圧縮することなくコンピュータ読み取り可能な媒体に格納することができる。半導体メモリ、磁気ディスクまたは光ディスクなど、いずれの種類の媒体を使用してもよい。
【０２２４】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【産業上の利用可能性】
【０２２５】
以上のように、本発明はシミュレーションを実行して設計を行う計算機システム及び開発システムのプログラムに適用することができる。
【図１】
2011016327.tif 000005
【図２】
2011016327.tif 000006
【図３】
2011016327.tif 000007
【図４】
2011016327.tif 000008
【図５】
2011016327.tif 000009
【図６】
2011016327.tif 000010
【図７】
2011016327.tif 000011
【図８】
2011016327.tif 000012
【図９】
2011016327.tif 000013
【図１０】
2011016327.tif 000014
【図１１】
2011016327.tif 000015
【図１２】
2011016327.tif 000016
【図１３】
2011016327.tif 000017
【図１４】
2011016327.tif 000018
【図１５Ａ】
2011016327.tif 000019
【図１５Ｂ】
2011016327.tif 000020
【図１６Ａ】
2011016327.tif 000021
【図１６Ｂ】
2011016327.tif 000022
【図１７】
2011016327.tif 000023
【図１８】
2011016327.tif 000024
【図１９】
2011016327.tif 000025
【図２０】
2011016327.tif 000026
【図２１】
2011016327.tif 000027
【図２２】
2011016327.tif 000028
【図２３】
2011016327.tif 000029
【図２４】
2011016327.tif 000030
【図２５】
2011016327.tif 000031
【図２６Ａ】
2011016327.tif 000032
【図２６Ｂ】
2011016327.tif 000033
【図２７】
2011016327.tif 000034
【図２８】
2011016327.tif 000035
【図２９】
2011016327.tif 000036
【国際調査報告】
2011016327.tif 000037
2011016327.tif 000038
2011016327.tif 000039
2011016327.tif 000040