(57)【要約】【課題】複数のライセンスを消費するジョブによってライセンスが無駄に消費されることを防ぐこと。【解決手段】ライセンス管理装置は、投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する入力ファイル解析部と、ライセンスごとに許諾された個数および消費された個数を保持し、抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく投入されたジョブを待機させ、抽出されたすべてのライセンスに余りが生じた時点で抽出されたライセンスを消費するとともに投入されたジョブの実行を許可するライセンス管理部と、を備えている。【選択図】図１
2012164038.tif 000002
【特許請求の範囲】
【請求項１】
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する入力ファイル解析部と、
ライセンスごとに許諾された個数および消費された個数を保持し、抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく投入されたジョブを待機させ、抽出されたすべてのライセンスに余りが生じた時点で抽出されたライセンスを消費するとともに投入されたジョブの実行を許可するライセンス管理部と、を備えていることを特徴とするライセンス管理装置。
【請求項２】
前記入力ファイル解析部は、投入されたジョブの入力ファイルにおいて指定されたキーワードを抽出し、抽出したキーワードを解析することで、該ジョブを実行する際に必要とされるライセンスを識別することを特徴とする、請求項１に記載のライセンス管理装置。
【請求項３】
前記ライセンス管理部は、ライセンスの余りをカウントするカウンタをライセンスごとに保持し、該カウンタのカウント値に基づいて、ライセンスの余りの有無を判定することを特徴とする、請求項１または２に記載のライセンス管理装置。
【請求項４】
前記入力ファイル解析部は、ライセンスごとに各ユーザの使用履歴を蓄積し、ライセンスごとに各ユーザに使用制限を課すことを特徴とする、請求項１ないし３のいずれか１項に記載のライセンス管理装置。
【請求項５】
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する工程と、
ライセンスごとに許諾された個数および消費された個数を保持する工程と、
抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく、投入されたジョブを待機させる工程と、
抽出されたすべてのライセンスに余りが生じた時点で、抽出されたライセンスを消費するとともに投入されたジョブの実行を許可する工程と、を含むことを特徴とするライセンス管理方法。
【請求項６】
投入されたジョブの入力ファイルにおいて指定されたキーワードを抽出し、抽出したキーワードを解析することで、該ジョブを実行する際に必要とされるライセンスを識別する工程を含むことを特徴とする、請求項５に記載のライセンス管理方法。
【請求項７】
ライセンスの余りをカウントするカウンタをライセンスごとに保持し、該カウンタのカウント値に基づいて、ライセンスの余りの有無を判定する工程を含むことを特徴とする、請求項５または６に記載のライセンス管理方法。
【請求項８】
ライセンスごとに各ユーザの使用履歴を蓄積し、ライセンスごとに各ユーザに使用制限を課す工程を含むことを特徴とする、請求項５ないし７のいずれか１項に記載のライセンス管理方法。
【請求項９】
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する処理と、
ライセンスごとに許諾された個数および消費された個数を保持する処理と、
抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく、投入されたジョブを待機させる処理と、
抽出されたすべてのライセンスに余りが生じた時点で、抽出されたライセンスを消費するとともに投入されたジョブの実行を許可する処理と、をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理装置、ライセンス管理方法およびプログラムに関し、特に、ライセンスの数が制限されたアプリケーションソフトウェア（以下、アプリケーションという。）に対するライセンス管理装置、ライセンス管理方法およびプログラムに関する。
【背景技術】
【０００２】
半導体素子の構造および特性を、コンピュータを用いて模擬するＴＣＡＤ（Ｔｅｃｈｎｏｌｏｇｙ  Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムについて、図面を参照して説明する。図９は、ＴＣＡＤシステムの構成を一例として示すブロック図である。図９を参照すると、ＴＣＡＤシステムは、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部１１０、アプリケーション選択部１２０、ＪＯＢスケジューリングサブシステム部１４０、ＪＯＢ実行部１５０、および、ライセンスサブシステム部１６０を備えている。
【０００３】
アプリケーション選択部１２０は、アプリケーションを選択する。アプリケーション選択部１２０において選択されるアプリケーションとして、例えば、プロセスシミュレーション（Ｐｒｏｃｅｓｓ  Ｓｉｍｕｌａｔｉｏｎ）、デバイスシミュレーション（Ｄｅｖｉｃｅ  Ｓｉｍｕｌａｔｉｏｎ）等がある。
【０００４】
プロセスシミュレーションによると、プロセス工程に含まれるイオン注入、拡散、デポ、エッチング等をシミュレートすることで、出力結果としてプロセス工程後のデバイス構造（例えば、形状データ、不純物濃度データ等）が得られる。
【０００５】
一方、デバイスシミュレーションによると、デバイス構造（形状データ、不純物濃度データ）、境界条件（電源、コンタクト、電圧条件）を入力データとすることで、出力結果としてＩ−Ｖ特性等のデバイス特性が得られる。
【０００６】
ＧＵＩ部１１０により、ジョブ（ＪＯＢ）投入および終了管理が行われる。ここで、ＪＯＢ投入および終了管理とは、例えば、ＧＵＩの表示ウインドウを用いてプロセスシミュレーションを実行するとともに、その入出力ファイルを管理すること、プロセスシミュレーションの結果を元にデバイスシミュレーションを実行するとともに、その入出力ファイルを管理すること、等をいう。
【０００７】
ＪＯＢ実行部１５０は、ＪＯＢを実行する。ここで、ＪＯＢの実行とは、ＪＯＢスケジューリングサブシステム部１４０を用いず、ローカルマシンにおいてＪＯＢを実行することをいう。
【０００８】
ライセンスサブシステム部１６０は、ＴＣＡＤシステムにおいて許諾されたライセンスを管理する。例えば、ＴＣＡＤシステムにおいては、ＦｌｅｘＬＭ（フレックスエルエム）のライセンスＦｅａｔｕｒｅが、総数で８０種類ほど存在し、ＧＵＩに関連するライセンスＦｅａｔｕｒｅが１５種類、プロセスシミュレーションに関連するライセンスＦｅａｔｕｒｅが２０種類、デバイスシミュレーションに関連するライセンスＦｅａｔｕｒｅが３９種類存在する。
【０００９】
また、マルチスレッド用途のライセンスＦｅａｔｕｒｅは、プロセスシミュレーションおよびデバイスシミュレーションの双方において、共通に使用される。
【００１０】
例えば、マルチスレッド用途ライセンスが１０本あり、プロセスシミュレーションで２本のライセンスが使用され、デバイスシミュレーションで８本のライセンスが使用されている場合には、合計で１０本のライセンスが使用されていることになり、マルチスレッド用ライセンス（ｍｐ）のすべてが使用されていることになる。
【００１１】
以下では、簡単のため、プロセスシミュレーションに関連する２０種類のライセンスＦｅａｔｕｒｅのうちの３種類（ｎｏｒｍａｌ，３Ｄ，ｐａｒａｌｌｅｌ）に着目する。また、デバイスシミュレーションに関連する３９種類のライセンスＦｅａｔｕｒｅのうちの８種類（ｎｏｒｍａｌ，３Ｄ，ｐａｒａｌｌｅｌ，ｄｅｖｉｃｅ−ｄｅｎｓｉｔｙｇｒａｄ，ｄｅｖｉｃｅ−ｓｃｈｒｏｅｄｉｎｇｅｒ，ｄｅｖｉｃｅ−ｍｉｘｅｄｍｏｄｅ，ｄｅｖｉｃｅ−ｈｙｄｒｏ，ｄｅｖｉｃｅ−ｔｈｅｒｍｏ）に着目する。
【００１２】
特許文献１において、ライセンスの使用効率を向上させるライセンス管理システムが記載されている。
【００１３】
また、特許文献２において、ライセンスソフトウェアを含むジョブの実行を効率よく行うジョブ実行管理装置が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−２８５４９７号公報
【特許文献２】特開２００４−２４６５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
以下の分析は、本発明者によってなされたものである。
【００１６】
ＴＣＡＤシステムにはライセンスが許諾された複数のアプリケーションが含まれる。したがって、ＴＣＡＤシステムにおいて実行されるＪＯＢの内容は複雑である。また、各ライセンスは一般に高価であり、１つのＪＯＢにおいて、複数のライセンスが必要とされる場合もある。さらに、各ＪＯＢは、完了するまでに長い時間を要する。
【００１７】
ＴＣＡＤシステムは、ライセンス構成が複雑であるため、ＪＯＢを実行する前に、予めどのライセンスが必要となるのかを判断することが難しい。しかし、必要とされるライセンスを事前に確認することなくＪＯＢを実行した場合には、一部のライセンスを消費したまま、他のＪＯＢによって消費されたライセンスに空きが生じるまでＪＯＢが待機状態に置かれるという現象が生じうる。また、このような場合において、ＪＯＢの実行が進んでいるのか否かを判断することは困難である。
【００１８】
さらに、ＴＣＡＤシステムに含まれるアプリケーションは、複数のベンダーにまたがる場合がある。このような場合には、上記の問題を１社のベンダーによって解消することは困難である。
【００１９】
以上より、ＴＣＡＤシステムのＪＯＢは長時間を要することが多く、ＪＯＢによってライセンスが無駄に消費されることで、高価なライセンスを有効に活用することができないという問題がある。また、ライセンスを有効に活用できないことにより、アプリケーションのライセンス費用を削減することも困難となっている。
【００２０】
そこで、複数のライセンスを消費するジョブによってライセンスが無駄に消費されることを防ぐことが課題となる。
【課題を解決するための手段】
【００２１】
本発明の第１の視点に係るライセンス管理装置は、
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する入力ファイル解析部と、
ライセンスごとに許諾された個数および消費された個数を保持し、抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく投入されたジョブを待機させ、抽出されたすべてのライセンスに余りが生じた時点で抽出されたライセンスを消費するとともに投入されたジョブの実行を許可するライセンス管理部と、を備えている。
【００２２】
本発明の第２の視点に係るライセンス管理方法は、
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する工程と、
ライセンスごとに許諾された個数および消費された個数を保持する工程と、
抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく、投入されたジョブを待機させる工程と、
抽出されたすべてのライセンスに余りが生じた時点で、抽出されたライセンスを消費するとともに投入されたジョブの実行を許可する工程と、を含む。
【００２３】
本発明の第３の視点に係るプログラムは、
投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する処理と、
ライセンスごとに許諾された個数および消費された個数を保持する処理と、
抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく、投入されたジョブを待機させる処理と、
抽出されたすべてのライセンスに余りが生じた時点で、抽出されたライセンスを消費するとともに投入されたジョブの実行を許可する処理と、をコンピュータに実行させる。
【発明の効果】
【００２４】
本発明に係るライセンス管理装置、ライセンス管理方法およびプログラムによると、複数のライセンスを消費するジョブによってライセンスが無駄に消費されることを防ぐことができる。
【図面の簡単な説明】
【００２５】
【図１】第１の実施形態に係るライセンス管理装置を備えたＴＣＡＤシステムの構成を示すブロック図である。
【図２】第１の実施形態に係るライセンス管理装置における入力ファイル解析部の構成を示すブロック図である。
【図３】第１の実施形態に係るライセンス管理装置の構成を詳細に示すブロック図である。
【図４】第１の実施形態に係るライセンス管理装置におけるライセンス管理部の構成を示すブロック図である。
【図５】第１の実施形態に係るライセンス管理装置におけるスクリプトとラインセンスタイプとの関係を示す表である。
【図６】第１の実施形態に係るライセンス管理装置のライセンス管理部におけるライセンスカウンタの上限を示す表である。
【図７】第２の実施形態に係るライセンス管理装置における入力ファイル解析部の構成を示すブロック図である。
【図８】第２の実施形態に係るライセンス管理装置における入力ファイル解析部の構成を示すブロック図である。
【図９】ＴＣＡＤシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２６】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２７】
図１を参照すると、ライセンス管理装置（７０）は、投入されたジョブの入力ファイルを解析し、該ジョブを実行する際に必要とされるライセンスを抽出する入力ファイル解析部（３０）と、ライセンスごとに許諾された個数および消費された個数を保持し、抽出されたライセンスのうちの少なくともいずれかのライセンスがすべて消費されている場合には、抽出されたライセンスのいずれも消費することなく投入されたジョブを待機させ、抽出されたすべてのライセンスに余りが生じた時点で抽出されたライセンスを消費するとともに投入されたジョブの実行を許可するライセンス管理部（４１）と、を備えている。
【００２８】
また、入力ファイル解析部（３０）は、投入されたジョブの入力ファイルにおいて指定されたキーワードを抽出し、抽出したキーワードを解析することで、該ジョブを実行する際に必要とされるライセンスを識別するようにしてもよい。
【００２９】
さらに、図６を参照すると、ライセンス管理部（４１）は、ライセンスの余りをカウントするカウンタ（例えば、ＣＰ１，ＣＰ２，ＣＭ３，ＣＤ１，ＣＤ２）をライセンスごとに保持し、該カウンタのカウント値に基づいて、ライセンスの余りの有無を判定するようにしてもよい。
【００３０】
また、図８を参照すると、入力ファイル解析部（８０）は、ライセンスごとに各ユーザの使用履歴を蓄積し、ライセンスごとに各ユーザに使用制限を課すようにしてもよい。
【００３１】
本発明によると、複数のライセンスを消費するジョブにおいて一部のライセンスが不足する場合に、不足するライセンス以外のライセンスが無駄に消費されることが無くなる。すなわち、本発明では、複数のライセンスを消費するジョブについて、すべてのライセンスに余りが生じるまで、当該ジョブには一切ライセンスを消費させないようにする。したがって、本発明によると、複数のライセンスを消費するジョブによってライセンスが無駄に消費されることを防ぐことができる。また、本発明によると、ユーザ数の増加に伴って、どの程度ライセンスの数を増加させればよいかを把握することもできる。
【００３２】
（実施形態１）
第１の実施形態に係るライセンス管理装置について、図面を参照して説明する。図１は、本実施形態に係るライセンス管理装置７０を備えたＴＣＡＤシステムの構成を一例として示すブロック図である。
【００３３】
図１を参照すると、ＴＣＡＤシステムは、ＧＵＩ部１０、アプリケーション選択部２０、入力ファイル解析部３０、ＪＯＢスケジューリングサブシステム部４０、ＪＯＢ実行部５０、および、ライセンスサブシステム部６０を備えている。また、ライセンス管理装置７０は、入力ファイル解析部３０およびライセンス管理部４１を備えている。図１に示した構成のうちのＧＵＩ部１０、アプリケーション選択部２０、ＪＯＢ実行部５０、および、ライセンスサブシステム部６０の動作は、図９に示したＴＣＡＤシステムに含まれる各部の動作と同様であることから、説明を省略する。
【００３４】
入力ファイル解析部３０は、ＪＯＢスケジューリングサブシステム部４０によりＪＯＢスケジューリングを行う前に、ＪＯＢごとに使用する予定のライセンス情報を取得する。なお、入力ファイル解析部３０は、プログラムとして実現してもよい。
【００３５】
入力ファイル解析部３０は、ＪＯＢ実行前に入力ファイルを解析し、実行するＪＯＢが必要とするライセンスを識別し、ＪＯＢスケジューリングサブシステム部４０へ渡す。
【００３６】
入力ファイル解析部３０、例えば、ＴＣＡＤシステムにおいて、データベースを参照することにより、３Ｄシミュレーションの有無、マルチスレッドの有無、特定の物理モデルの使用の有無等などに応じて、必要なライセンスを識別する。
【００３７】
図２は、入力ファイル解析部３０の構成を一例として示すブロック図である。図２を参照すると、入力ファイル解析部３０は、入力データ読み込み部３１、キーワード抽出・解析部３２、ライセンスフラグ判定部３３、および、ライセンスタイプ指定・スクリプト実行部３４を備えている。入力ファイル解析部３０は、アプリケーションごとに別個に設けるようにしてもよいし、アプリケーションごとに異なる動作を行うようにしてもよい。本実施形態では、入力ファイル解析部３０を上記のように動作させることで、ＴＣＡＤシステムにおいて、ライセンスを有効に使用できるようにする。
【００３８】
入力データ読み込み部３１は、ＪＯＢの入力データを読み込む。キーワード抽出・解析部３２は、読み込んだ入力データからキーワードを抽出するとともに、抽出したキーワードを解析する。
【００３９】
例えば、プロセスシミュレーションの場合には、キーワードとして、３Ｄ、ｐａｒａｌｌｅｌ等がある。一方、デバイスシミュレーションの場合には、キーワードとして、３Ｄ、ｐａｒａｌｌｅｌ、ｄｅｖｉｃｅ−ｄｅｎｓｉｔｙｇｒａｄ、ｄｅｖｉｃｅ−ｓｃｈｒｏｅｄｉｎｇｅｒ、ｄｅｖｉｃｅ−ｍｉｘｅｄｍｏｄｅ、ｄｅｖｉｃｅ−ｈｙｄｒｏ、ｄｅｖｉｃｅ−ｔｈｅｒｍｏ等がある。
【００４０】
ライセンスフラグ判定部３３は、キーワードの解析結果に基づいて、ライセンスを示すフラグ（ライセンスフラグ）の有無を判定し、ＪＯＢごとに必要とされるライセンスの種類を抽出する。ＪＯＢごとに必要とされるライセンスとして、一例として、次のような場合が考えられる。
【００４１】
プロセスシミュレーションであるＰＪＯＢ１では、ライセンスＦｅａｔｕｒｅ  Ｐ１（ｎｏｒｍａｌ）を必要とする。また、プロセスシミュレーションであるＰＪＯＢ２では、ライセンスＦｅａｔｕｒｅ  Ｐ１およびＰ２（３Ｄ）を必要とする。さらに、プロセスシミュレーションであるＰＪＯＢ３では、ライセンスＦｅａｔｕｒｅ  Ｐ１およびＰ２（３Ｄ）およびＭ３（ｐａｒａｌｌｅｌ）を必要とする。例えば、ライセンスＦｅａｔｕｒｅ  Ｐ２およびＭ３は、ライセンスＦｅａｔｕｒｅ  Ｐ１と比較して、許諾されたライセンスの数が少なく、かつ、ライセンス料が高価である場合が考えられる。
【００４２】
一方、デバイスシミュレーションであるＤＪＯＢ１では、ライセンスＦｅａｔｕｒｅ  Ｄ１（ｎｏｒｍａｌ）を必要とする。また、デバイスシミュレーションであるＤＪＯＢ２では、ライセンスＦｅａｔｕｒｅ  Ｄ１およびＤ２（３Ｄ）を必要とする。さらに、デバイスシミュレーションであるＤＪＯＢ３では、ライセンスＦｅａｔｕｒｅ  Ｄ１およびＤ２（３Ｄ）およびＭ３（ｐａｒａｌｌｅｌ）を必要とする。例えば、ライセンスＦｅａｔｕｒｅ  Ｄ２およびＭ３は、ライセンスＦｅａｔｒｅ  Ｄ１と比較して、許諾されたライセンスの数が少なく、かつ、ライセンス料が高価であるような場合が考えられる。
【００４３】
ライセンスタイプ指定・スクリプト実行部３４は、ＪＯＢで必要とされるライセンスを識別した後に、スクリプト（ライセンスタイプ指定スクリプト）を生成し、ＪＯＢスケジューリングサブシステム部４０に実行させる。
【００４４】
ここで、ライセンスタイプ指定スクリプトとは、ライセンスの識別後にＪＯＢスケジューリングサブシステム部４０に実行させるスクリプトであり、使用予定のライセンスの種類（ライセンスタイプ）を指定する。
【００４５】
例えば、プロセスシミュレーション実行用のスクリプトであるプロセススクリプト（Ｐｒｏｃｅｓｓ  Ｓｃｒｉｐｔ）は、スクリプト実行時にどのタイプであるかを自動指定し、ライセンス管理部４１を伴うＪＯＢスケジューリングサブシステム部４０で実行されるスクリプトのことをいう。ライセンスタイプの指定として、例えば、非３Ｄの１ＣＰＵＪＯＢ、非３ＤのマルチスレッドＪＯＢ、３Ｄの１ＣＰＵＪＯＢ、３ＤのマルチスレッドＪＯＢ等が挙げられる。
【００４６】
同様に、デバイスシミュレーション実行用のスクリプトであるデバイススクリプト（Ｄｅｖｉｃｅ  Ｓｃｒｉｐｔ）のライセンスタイプの指定として、非３Ｄの１ＣＰＵＪＯＢ、非３ＤのマルチスレッドＪＯＢ、３Ｄの１ＣＰＵＪＯＢ、３ＤのマルチスレッドＪＯＢ、非３ＤのマルチスレッドのＭｉｘｅｄＭｏｄｅＪＯＢ、３ＤのマルチスレッドのＭｉｘｅｄＭｏｄｅＪＯＢ、非３ＤのマルチスレッドのＨｙｄｒｏモデル使用ＪＯＢ、３ＤのマルチスレッドのＨｙｄｒｏモデル使用ＪＯＢ、非３Ｄのマルチスレッドの量子効果（ｄｅｎｓｉｔｙｇｒａｄ）モデル使用ＪＯＢ、３Ｄのマルチスレッドの量子効果（Ａ）モデル使用ＪＯＢ、非３Ｄのマルチスレッドの量子効果（ｓｃｈｒｏｅｄｉｎｇｅｒ）モデル使用ＪＯＢ、３Ｄのマルチスレッドの量子効果（Ｂ）モデル使用ＪＯＢ、非３ＤのマルチスレッドのＴｈｅｒｍｏモデル使用ＪＯＢ、３ＤのマルチスレッドのＴｈｅｒｍｏモデル使用ＪＯＢ、非３Ｄのマルチスレッドの全ての物理モデル使用ＪＯＢ、３Ｄのマルチスレッドの全ての物理モデル使用ＪＯＢ等が挙げられる。
【００４７】
ＪＯＢスケジューリングサブシステム部４０は、ライセンス管理部４１およびスケジューリング部４２を有し、ＪＯＢのスケジューリングを行う。
【００４８】
図３（ａ）を参照すると、図３（ｂ）のように入力ファイル解析部３０を設けない場合には、ＪＯＢスケジューリングサブシステム部１４０は、ライセンス管理部１４１を使用することなく、ＪＯＢスケジューリングを行う。このとき、ＪＯＢにおいて不足するライセンスが１つでも存在すると、ＪＯＢの実行途中で不足分のライセンスの取得待ち状態となり、このＪＯＢによってすでに取得された分のライセンスが無駄になる。
【００４９】
本実施形態では、図３（ｂ）に示すように、ＪＯＢスケジューリングサブシステム部４０のライセンス管理部４１を使用することで、上述のように、ライセンスが無駄に消費されることを回避する。
【００５０】
ＪＯＢスケジューリングサブシステム部４０は、入力ファイル解析部３０によって指定されたライセンスタイプ指定スクリプトに基づいて、ライセンス管理部４１のライセンスタイプを指定する。
【００５１】
ライセンス管理部４１は、ライセンスタイプ（例えば、Ｐ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２）のそれぞれについて、ライセンスの余りを示すカウンタ値（ライセンスカウンタ）（例えば、ＣＰ１，ＣＰ２，ＣＭ３，ＣＤ１，ＣＤ２）を保持する。
【００５２】
ライセンス管理部４１は、指定されたライセンスタイプごとに、ライセンスが消費された場合には、ライセンスカウンタをデクリメント（−１）する。ライセンス管理部４１は、ライセンスカウンタのカウント値が０である場合には、許容されたライセンス数を超えるものと判定し、ＪＯＢを待ち行列に入れる。また、ライセンス管理部４１は、ライセンスカウンタが１以上となるまで、待ち行列に入れたＪＯＢをＪＯＢ実行部５０に移行させない。ライセンス管理部４１は、ＪＯＢの実行が終了すると、当該ＪＯＢで消費されていたライセンスタイプに対するライセンスカウンタをインクリメント（＋１）する。
【００５３】
図５は、プロセススクリプトＰＪＯＢ１〜ＰＪＯＢ３、および、デバイススクリプトＤＪＯＢ１〜ＤＪＯＢ３に対するライセンスタイプを一例として示す表である。
【００５４】
図６は、ライセンスカウンタＣＰ１，ＣＰ２，ＣＭ３，ＣＤ１，ＣＤ２のそれぞれのカウンタ値の上限、すなわち、ライセンスタイプＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のそれぞれのライセンスの許諾数を一例として示す表である。
【００５５】
ＪＯＢスケジューリングサブシステム部４０によるＪＯＢスケジューリングについて、図５および図６に示した場合を例として説明する。ここでは、ＰＪＯＢ１，ＰＪＯＢ２，ＰＪＯＢ３，ＤＪＯＢ３，ＤＪＯＢ１，ＤＪＯＢ２の順にＪＯＢが投入されたとする。このとき、各ＪＯＢは、次のように実行される。
【００５６】
まず、ＰＪＯＢ１が投入される。入力ファイル解析部３０は、ライセンスタイプがＰ１であると判定し、ライセンスタイプ指定スクリプトに基づいてＪＯＢスケジューリングサブシステム部４０を動作させる。このとき、ライセンス管理部４１は、ライセンスカウンタＣＰ１をデクリメント（−１）してＣＰ１＝２とし、ＪＯＢを実行する（ステップＡ１）。
【００５７】
次に、ＰＪＯＢ２が投入される。入力ファイル解析部３０は、ライセンスタイプがＰ１およびＰ２であると判定する。このとき、ライセンス管理部４１は、ライセンスカウンタＣＰ１およびＣＰ２をそれぞれデクリメント（−１）してＣＰ１＝１，ＣＰ２＝１とし、ＪＯＢを実行する（ステップＡ２）。
【００５８】
次に、ＰＪＯＢ３が投入される。入力ファイル解析部３０は、ライセンスタイプがＰ１，Ｐ２およびＭ３であると判定する。このとき、ライセンス管理部４１は、ライセンスカウンタＣＰ１，ＣＰ２およびＭ３をそれぞれデクリメント（−１）してＣＰ１＝０，ＣＰ２＝０，ＣＭ３＝０とし、ＪＯＢを実行する（ステップＡ３）。
【００５９】
次に、ＤＪＯＢ３が投入される。入力ファイル解析部３０は、ライセンスタイプがＤ１，Ｄ２およびＭ３であると判定する。このとき、ライセンス管理部４１は、Ｍ３のライセンスカウンタＣＭ３が０であるため、ＪＯＢを待ち行列に入れて待機させる（ステップＡ４）。
【００６０】
次に、ＤＪＯＢ１が投入される。入力ファイル解析部３０は、ライセンスタイプがＤ１であると判定する。このとき、ライセンス管理部４１は、ライセンスカウンタＣＤ１をデクリメント（−１）してＣＤ１＝２とし、ＪＯＢを実行する（ステップＡ５）。
【００６１】
次に、ＤＪＯＢ２が投入される。入力ファイル解析部３０は、ライセンスタイプがＤ１およびＤ２であると判定する。このとき、ライセンス管理部４１は、ライセンスカウンタＣＤ１およびＣＤ２をそれぞれデクリメント（−１）して、ＣＤ１＝１，ＣＤ２＝０とし、ＪＯＢを実行する（ステップＡ６）。
【００６２】
ここで、ＰＪＯＢ３の実行が終了した場合には、ライセンス管理部４１は、ライセンスカウンタＣＰ１，ＣＰ２およびＣＭ３をそれぞれインクリメント（＋１）して、ＣＰ１＝１，ＣＰ２＝１，ＣＭ３＝１とする（ステップＡ７）。
【００６３】
さらに、ＤＪＯＢ２の実行が終了すると、ライセンス管理部４１は、ライセンスカウンタＣＤ１およびＣＤ２をそれぞれインクリメント（＋１）して、ＣＤ１＝２，ＣＤ２＝１とする（ステップＡ８）。
【００６４】
ライセンス管理部４１は、待機させていたＤＪＯＢ３について、ライセンスカウンタＣＤ１，ＣＤ２およびＣＭ３をそれぞれデクリメント（−１）して、ＣＤ１＝１，ＣＤ２＝０，ＣＭ３＝０とし、ＪＯＢを実行する（ステップＡ９）。
【００６５】
ＤＪＯＢ３の実行が終了すると、ライセンス管理部４１は、ライセンスカウンタＣＤ１，ＣＤ２およびＣＭ３をそれぞれインクリメント（＋１）して、ＣＤ１＝２，ＣＤ２＝１，ＣＭ３＝１とする（ステップＡ１０）。
【００６６】
ＰＪＯＢ１の実行が終了すると、ライセンス管理部４１は、Ｐ１のライセンスカウンタＣＰ１をインクリメント（＋１）して、ＣＰ１＝２とする（ステップＡ１１）。
【００６７】
ＰＪＯＢ２の実行が終了すると、ライセンス管理部４１は、Ｐ１およびＰ２のライセンスカウンタＣＰ１およびＣＰ２をそれぞれインクリメント（＋１）して、ＣＰ１＝３，ＣＰ２＝２とする（ステップＡ１２）。
【００６８】
ＤＪＯＢ１の実行が終了すると、ライセンス管理部４１は、Ｄ１のライセンスカウンタＣＤ１をインクリメント（＋１）して、Ｄ１＝３とする（ステップＡ１３）。
【００６９】
一方、図３（ａ）に示すように、ライセンス管理部１４１の処理を経ることなく、ＪＯＢを実行すると、次のようになる。
【００７０】
まず、ＰＪＯＢ１が投入され、ＪＯＢが実行される。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、２，２，１，３，１となる（ステップＢ１）。
【００７１】
次に、ＰＪＯＢ２が投入され、ＪＯＢが実行される。する。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、１，１，１，３，１となる（ステップＢ２）。
【００７２】
次に、ＰＪＯＢ３が投入され、ＪＯＢが実行される。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、０，０，０，３，１となる（ステップＢ３）。
【００７３】
次に、ＤＪＯＢ３が投入され、ＪＯＢが実行される。すると、ライセンスＦｅａｔｕｒｅ  ＤｎｏｒｍａｌおよびＤ３Ｄのライセンス、すなわち、ライセンＤ１およびＤ２が消費され、ライセンスＦｅａｔｕｒｅ  ｐａｒａｌｌｅｌに相当するライセンスＭ３が不足することにより、ライセンスの取得待ち状態となる。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、０，０，０，２，０となる（ステップＢ４）。
【００７４】
次に、ＤＪＯＢ１が投入され、ＪＯＢが実行される。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、０，０，０，１，０となる（ステップＢ５）。
【００７５】
次に、ＤＪＯＢ２が投入され、ＪＯＢが実行される。すると、ライセンスＦｅａｔｕｒｅ  Ｄｎｏｒｍａｌに相当するライセンスＤ１が消費され、ライセンスＦｅａｔｕｒｅ  Ｄ３Ｄに相当するライセンスＤ２が不足することにより、ライセンスの取得待ち状態となる。このとき、このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、０，０，０，０，０となる（ステップＢ６）。
【００７６】
ここで、ＰＪＯＢ３の実行が終了した場合には、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、１，１，１，０，０となる（ステップＢ７）。
【００７７】
実行中のＤＪＯＢ３について、ライセンスＦｅａｔｕｒｅ  ｐａｒａｌｌｅｌに相当するライセンスＭ３が取得され、ＪＯＢの処理が実際に進行する。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、１，１，０，０，０となる（ステップＢ８）。
【００７８】
次に、ＤＪＯＢ３の実行が終了する。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、１，１，１，１，１となる（ステップＢ９）。
【００７９】
実行中のＤＪＯＢ２について、ライセンスＦｅａｔｕｒｅ  Ｄ３Ｄに相当するライセンスＤ２が取得され、ＪＯＢの処理が実際に進行する。このとき、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、１，１，１，１，０となる（ステップＢ１０）。
【００８０】
ＰＪＯＢ１の実行が終了すると、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、２，１，１，１，０となる（ステップＢ１１）。
【００８１】
ＰＪＯＢ２の実行が終了すると、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、３，２，１，１，０となる（ステップＢ１２）。
【００８２】
ＤＪＯＢ１の実行が終了すると、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、３，２，１，２，０となる（ステップＢ１３）。
【００８３】
ＤＪＯＢ２の実行が終了すると、ライセンスＰ１，Ｐ２，Ｍ３，Ｄ１，Ｄ２のライセンスの余りは、それぞれ、３，２，１，３，１となる（ステップＢ１３）。
【００８４】
このとき、ステップＢ４およびＢ６において、ライセンスＦｅａｔｕｒｅ  Ｄｎｏｒｍａｌに相当するライセンスＤ１の２本が無駄に消費され、ライセンスＦｅａｔｕｒｅ  Ｄ３Ｄに相当するライセンスＤ２の１本が無駄に消費される。ここに示した状況よりもライセンス構成が複雑で、ライセンスの本数が多く、ＪＯＢの数も多いような状況では、ライセンスの無駄な消費がさらに頻発し、高価なライセンスを有効に活用することができない。
【００８５】
一方、本実施形態のライセンス管理装置７０によると、上述のステップＡ４においてライセンスが無駄に消費されることがなく、ライセンスを有効に活用することができる。
【００８６】
（実施形態２）
第２の実施形態に係るライセンス管理装置について、図面を参照して説明する。本実施形態は、学習機能部で蓄積した情報に基づいて、入力ファイル解析部をライセンスの使用状況に適したものへと改善する構成を有する。
【００８７】
図７は、本実施形態に係るライセンス管理装置における入力ファイル解析部８０の構成を示すブロック図である。図７を参照すると、入力ファイル解析部８０は、学習機能部８１を有する。
【００８８】
学習機能部８１は、学習機能として、入力ファイル解析部３０による識別結果に応じて選択されたライセンスタイプ指定に関する情報と、使用者情報とを蓄積する。
【００８９】
図８を参照すると、例えば、各ＪＯＢのライセンスタイプごとに使用制限を設けるようにしてもよい。これにより、ＴＣＡＤシステムを使用状況に適したシステムへ改善することができる。
【００９０】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００９１】
１０，１１０    ＧＵＩ部
２０，１２０    アプリケーション選択部
３０，８０，１３０    入力ファイル解析部
３１    入力データ読み込み部
３２    キーワード抽出・解析部
３３    ライセンスフラグ判定部
３４    ライセンスタイプ指定・スクリプト実行部
４０，１４０    ＪＯＢスケジューリングサブシステム部
４１，１４１    ライセンス管理部
４２，１４２    スケジューリング部
５０，１５０    ＪＯＢ実行部
６０，１６０    ライセンスサブシステム部
７０    ライセンス管理装置
８１    学習機能部
【図１】
2012164038.tif 000003
【図２】
2012164038.tif 000004
【図３】
2012164038.tif 000005
【図４】
2012164038.tif 000006
【図５】
2012164038.tif 000007
【図６】
2012164038.tif 000008
【図７】
2012164038.tif 000009
【図８】
2012164038.tif 000010
【図９】
2012164038.tif 000011