(57)【要約】      （修正有）【課題】ソフトウェア使用制御に関して、多様なライセンス形態をサポートし、さらにオフラインでのライセンス利用の可用性を向上する。【解決手段】ライセンス契約の内容が登録される契約情報テーブルと、ライセンスの使用状況が登録されるライセンス管理テーブルとを備え、契約情報テーブルには、何台のクライアントＰＣにソフトウェアをインストールしてよいかを定めたインストールライセンスと、同時に何台で当該ソフトウェアを利用してよいかを定めた同時起動ライセンスとの数および期間が登録されており、ライセンス管理手段は、インストール要求を受けた場合に、現在使用されているインストールライセンス数が許容された数未満である場合に新たにインストールライセンスを付与し、アプリケーションソフトウェアの起動要求を受けた場合に、現在使用されている同時起動ライセンス数が許容された数未満である場合に新たに同時起動ライセンスを付与する。【選択図】図１２
2015014817.tif 000002
【特許請求の範囲】
【請求項１】
ユーザー側の１以上のクライアントＰＣにおけるアプリケーションソフトウェアのライセンス使用を管理するソフトウェア使用制御システムにおいて、前記クライアントＰＣと直接あるいは前記ユーザー側の事務所内サーバーを介して通信ネットワークで接続されるライセンス管理サーバーを具え、当該ライセンス管理サーバーが、
前記ユーザー毎のライセンス契約の内容が登録される契約情報テーブルと、前記ユーザー毎のライセンスの使用状況が登録されるライセンス管理テーブルとを少なくとも記憶する記憶手段と、
前記契約情報テーブルおよび前記ライセンス管理テーブルを参照して個別のクライアントＰＣにおけるアプリケーションソフトウェアのライセンス管理を行うライセンス管理手段とを具え、
前記契約情報テーブルには、各ユーザーが特定のアプリケーションソフトウェアを使用する権利について締結するソフトウェアライセンスと、ユーザー毎に何台のクライアントＰＣに前記アプリケーションソフトウェアをインストールしてよいかを定めたインストールライセンスと、インストールされたクライアントＰＣのうち同時に何台で当該アプリケーションソフトウェアを利用してよいかを定めた同時起動ライセンスの数および期間が登録されており、
前記ライセンス管理手段は、
（１）前記クライアントＰＣから直接あるいは前記ユーザー側の事務所内サーバーを介して前記アプリケーションソフトウェアのインストール要求を受けた場合に、前記ソフトウェアライセンスの有無および有効期間と、前記インストールライセンスの数およびそれぞれの有効期間と、現在使用されているインストールライセンスの数を確認し、現在使用されているインストールライセンス数が有効なインストールライセンスの数未満である場合に新たにインストールライセンスを付与し、
（２）前記クライアントＰＣから直接あるいは前記ユーザー側の事務所内サーバーを介して前記アプリケーションソフトウェアの起動要求を受けた場合に、少なくとも前記同時起動ライセンスの数および有効期間と、現在使用されている同時起動ライセンスの数とを確認し、現在使用されている同時起動ライセンス数が有効な同時起動ライセンスの数未満である場合に新たに同時起動ライセンスを付与することを特徴とするソフトウェア使用制御システム。
【請求項２】
請求項１に記載のソフトウェア使用制御システムにおいて、前記契約情報テーブルがさらに、前記同時起動ライセンスのうち所定のクライアントＰＣ用に確保される同時起動ライセンスを規定する占有使用欄を具えるとともに、
前記ライセンス管理手段は、前記アプリケーションソフトウェアの起動要求を受けた場合に、前記同時起動ライセンスのうち前記所定のクライアントＰＣ用に確保されたものを除いた数を前記有効な同時起動ライセンスの数として抽出して、現在使用されている同時起動ライセンス数が有効な同時起動ライセンスの数未満である場合に新たに同時起動ライセンスを付与することを特徴とするソフトウェア使用制御システム。
【請求項３】
請求項１または２に記載のソフトウェア使用制御システムにおいて、当該システムが前記クライアントＰＣおよび／または前記事務所内サーバーを含んでおり、
前記クライアントＰＣおよび／または前記事務所内サーバーは、前記同時起動ライセンスの要求時に前記ライセンス管理サーバーとの接続障害を検知した場合に、
（ａ）前記通信ネットワークへアクセスできない場合に、前記アプリケーションソフトウェアを第１の期間だけ起動可能とし、
（ｂ）前記通信ネットワークへアクセス可能であり、且つ前記ライセンス管理サーバーのメンテナンス情報が取得できない場合に、前記アプリケーションソフトウェアを第２の期間だけ起動可能とし、
（ｃ）前記通信ネットワークへアクセス可能であり、且つ前記ライセンス管理サーバーのメンテナンス情報が取得できた場合に、期間の制限なく前記アプリケーションソフトウェアを起動可能とすることを特徴とするソフトウェア使用制御システム。
【請求項４】
請求項１乃至３に記載のソフトウェア使用制御システムにおいて、前記クライアントＰＣが、前記ライセンス管理サーバーの記憶手段の登録内容のうち当該ユーザーにかかる契約情報とライセンス使用状況を取得して表示するライセンス状況表示手段を具えることを特徴とするソフトウェア使用制御システム。
【請求項５】
請求項４に記載のソフトウェア使用制御システムにおいて、前記クライアントＰＣがさらに、所定のクライアントＰＣを指定して前記同時起動ライセンスの解放、あるいは前記同時起動ライセンスのうち前記所定のクライアントＰＣ用に確保された同時起動ライセンスの解放を前記ライセンス管理サーバーに要求するライセンス解放要求手段を具えることを特徴とするソフトウェア使用制御システム。
【請求項６】
請求項１に記載のソフトウェア使用制御システムにおいて、前記ユーザー側に配置されて前記ユーザー側の１以上のクライアントＰＣおよび前記ライセンス管理サーバーと接続される事務所内サーバーを具え、当該事務所内サーバーは、
少なくとも当該ユーザーに関するライセンス契約の内容が登録される事務所内サーバー契約情報テーブルと、各クライアントＰＣにおけるライセンスの使用状況が登録される事務所内サーバーライセンス管理テーブルとを記憶する記憶手段と、
個々のクライアントＰＣにおけるアプリケーションソフトウェアのライセンス管理を行う事務所内サーバーライセンス管理手段とを具え、
前記事務所内サーバー契約情報テーブルには、前記ライセンス管理サーバーの契約情報テーブルのうち、当該ユーザーにかかるインストールライセンスと、当該ユーザーにかかる同時起動ライセンスの数および期間が登録され、
前記事務所内サーバーライセンス管理手段は、
（１）前記クライアントＰＣから前記アプリケーションソフトウェアのインストール要求を受けた場合に、前記インストールライセンスの数およびそれぞれの有効期間と、現在使用されているインストールライセンスの数を確認し、現在使用されているインストールライセンス数が有効なインストールライセンスの数未満である場合に新たにインストールライセンスを付与し、
（２）前記クライアントＰＣから前記アプリケーションソフトウェアの起動要求を受けた場合に、少なくとも前記同時起動ライセンスの数および有効期間と、現在使用されている同時起動ライセンスの数とを確認し、現在使用されている同時起動ライセンス数が有効な同時起動ライセンスの数未満である場合に新たに同時起動ライセンスを付与することを特徴とするソフトウェア使用制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア使用制御システムに関し、特に会計事務所および一般企業で使用される会計・税務に関するソフトウェア使用制御に関する。
【背景技術】
【０００２】
従来、ソフトウェアの販売は使用許諾権（ライセンス）の販売になるため、一つのライセンスが付与されたソフトウェアを複数台のコンピューターへインストールすることは原則として禁止されており、ソフトウェアのライセンス数を超過しての使用はできないことが多い。
【０００３】
コンピューター単位でライセンスを付与してソフトウェアの使用を制限するノードロックライセンス方式では、ハードウェアにライセンスが依存するため、コンピューターが他の用途で利用されている時など、ソフトウェアの使用が出来ない不便がある。このため、他の利用者が、そのソフトウェアを試用して、使いやすさ等を体験することもできず、追加でライセンスを購入することを躊躇する結果、事業所全体としての作業効率を向上させる機会を失うことにもなる。
【０００４】
ノードロックライセンス方式の不便さを補う手段として、ソフトウェアを使用する時のみライセンスをコンピューター単位で一時的に付与するフローティングライセンス方式がある。
【０００５】
会計事務所では、多数の顧問先企業の月々の決算業務や税務申告を行っている。とりわけ税務申告においては、税制改正などによって、ソフトウェアを最新のバージョンにしたり、使用頻度の少ないソフトウェア（例えば、相続税）などを使用する場合に、利用するソフトウェアのラインセンスのみを必要な時に購入して使用する形態が普及している。
複数の所員から構成される会計事務所においては、業務効率の面から前述のフローティングライセンス方式での利用が好まれる傾向がある。
【０００６】
また、ソフトウェアのライセンスを管理する際に、ライセンスを管理するサーバーとして、インターネット等のＷＡＮ（ワイドエリアネットワーク）を介して接続されたサーバーを用いた管理システムが構築されることがある。
【０００７】
例えば、ＷＡＮ回線が障害等でライセンスを取得できないことによる不都合を解消する技術として、特許文献１がある。かかる技術によれば、外部のライセンス管理サーバーから、ＷＡＮ回線を介して、事務所内のサーバーに、ライセンス管理情報を一時的に伝送することで、以降は、事務所内のサーバーにライセンス管理が全面的に委譲されるため、ＷＡＮ回線に障害が発生しても、問題は生じない。
【０００８】
しかし、ライセンス管理サーバーから遮断された事務所内サーバーでライセンス管理が行われるため、各端末において適切にライセンスを管理しているかどうかは不明であり、アプリケーションプログラム提供者はリスクを負うことにもなり、また、動的なライセンス配布管理に対応しがたいという不都合が生じる。
【０００９】
また、従前からＣＡＤソフトなどにおいてもライセンス利用の考えが利用されている。ＣＡＤなどの場合は、ライセンスを発行するベンダーからライセンスを入手して、ＣＡＤを利用する者が事務所内に設置したライセンス管理サーバーにライセンスを格納し、さらにライセンス利用を許可する端末固有のＭＡＣアドレスなどを利用して、ライセンスの使用制限を行うローカルでの利用が主流であり、ライセンス利用の都度、インターネットなどを介してベンダーのライセンス管理サーバーへアクセスする形態ではないため、動的なライセンス配布管理に対応しがたいという不都合が生じる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−５６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
フローティングライセンス方式では、ライセンス管理サーバーを使用してライセンスの管理を行う方法が一般的である。このような方式では、クライアントサーバ型の形態を取り、クライアント機でソフトウェアの起動がされるとその起動数をカウントして、同時使用できるソフトウェアの数を制限する。
【００１２】
近年では、インターネット等の広域ネットワークを利用したライセンス管理サーバーの利用が普及しているが、通信障害があった場合は、ライセンスの取得が出来ないなどの問題がある。また、ライセンスの購入時期、有効期間、契約状況などによっては、同時使用できるソフトウェアの数を単純に制限する方法では不都合な場合がある。
【００１３】
さらには、使用するソフトウェアのプログラムの管理やクライアント機への配信方法、ライセンスの管理などが複雑化するという問題がある。
【００１４】
そこで本発明は、一般企業の事務所や会計事務所にて使用される  会計・税務に関するソフトウェアの使用に関して、クライアント機と、インターネットを介して接続する外部のライセンス管理サーバーを設けることで、通信障害発生時のライセンス管理や、必要に応じて、会計事務所内にクライアント機へプログラムの配信とライセンス管理を行う事務所内サーバーを配すること等により、プログラムの配信ないし同時起動数の管理を行って、インストールの効率化を図ることを目的とする。
【課題を解決するための手段】
【００１５】
本願発明は、１以上のクライアントＰＣにおけるアプリケーションソフトウェアのライセンス使用を管理するソフトウェア使用制御システムにおいて、
ライセンス契約の内容が登録される契約情報テーブルと、ライセンスの使用状況が登録されるライセンス管理テーブルとを少なくとも記憶する記憶手段と、
前記契約情報テーブルおよび前記ライセンス管理テーブルを参照して個別のクライアントＰＣにおけるアプリケーションソフトウェアのライセンス管理を行うライセンス管理手段とを具え、
前記契約情報テーブルには、何台のクライアントＰＣに前記アプリケーションソフトウェアをインストールしてよいかを定めたインストールライセンスと、インストールされたクライアントＰＣのうち同時に何台で当該アプリケーションソフトウェアを利用してよいかを定めた同時起動ライセンスとの数および期間が登録されており、
前記ライセンス管理手段は、
（１）前記クライアントＰＣから前記アプリケーションソフトウェアのインストール要求を受けた場合に、前記インストールライセンスの数およびそれぞれの有効期間と、現在使用されているインストールライセンスの数を確認し、現在使用されているインストールライセンス数が有効なインストールライセンスの数未満である場合に新たにインストールライセンスを付与し、
（２）前記アプリケーションソフトウェアの起動要求を受けた場合に、少なくとも前記同時起動ライセンスの数および有効期間と、現在使用されている同時起動ライセンスの数とを確認し、現在使用されている同時起動ライセンス数が有効な同時起動ライセンスの数未満である場合に新たに同時起動ライセンスを付与することを特徴とする。
【００１６】
また、前記契約情報テーブルがさらに、前記同時起動ライセンスのうち所定のクライアントＰＣ用に確保される同時起動ライセンスを規定する占有使用欄を具えるとともに、
前記ライセンス管理手段は、前記アプリケーションソフトウェアの起動要求を受けた場合に、前記同時起動ライセンスのうち前記所定のクライアントＰＣ用に確保されたものを除いた数を前記有効な同時起動ライセンスの数として抽出して、現在使用されている同時起動ライセンス数が有効な同時起動ライセンスの数未満である場合に新たに同時起動ライセンスを付与することが好ましい。
【００１７】
さらに、システムが前記クライアントＰＣおよび／または前記事務所内サーバーを含み、
前記クライアントＰＣおよび／または前記事務所内サーバーは、前記同時起動ライセンスの要求時に前記ライセンス管理サーバーとの接続障害を検知した場合に、
（ａ）前記通信ネットワークへアクセスできない場合に、前記アプリケーションソフトウェアを第１の期間だけ起動可能とし、
（ｂ）前記通信ネットワークへアクセス可能であり、且つ前記ライセンス管理サーバーのメンテナンス情報が取得できない場合に、前記アプリケーションソフトウェアを第２の期間だけ起動可能とし、
（ｃ）前記通信ネットワークへアクセス可能であり、且つ前記ライセンス管理サーバーのメンテナンス情報が取得できた場合に、期間の制限なく前記アプリケーションソフトウェアを起動可能とすることが好ましい。
【発明の効果】
【００１８】
本発明によれば、アプリケーションソフトウェアのライセンスが、各事務所が前提としてソフトウェアを使用する権利について締結する上位概念としての「ソフトウェアライセンス」と、事務所毎に何台のクライアントＰＣに当該ソフトウェアをインストールしてよいかを決めた中位概念としての「インストールライセンス」と、インストールされたクライアントＰＣのうち同時に何台で当該ソフトウェアを利用してよいかを決めた下位概念としての「同時起動ライセンス」とで規定され、それぞれの契約に基づいて各種ライセンスチェックが行われるため、様々なライセンス態様に適切に対応したソフトウェア制御を実現することができる。
【００１９】
また、本発明によれば、ライセンスの追加購入や利用停止、同時起動数の制御などが効率的に可能となる。
【００２０】
さらに、障害の状況に応じて段階的にオフライン利用状態を設定することで、ライセンス管理サーバーへのアクセス無しでも限度内でソフトウェアの使用が可能となる。
【図面の簡単な説明】
【００２１】
【図１】図１は、ソフトウェア使用制御システム１００の全体構成を示すブロック図である。
【図２】図２は、ライセンス管理サーバー１０の構成を示すブロック図である。
【図３】図３は、事務所内サーバー２０の構成を示すブロック図である。
【図４】図４は、クライアントＰＣ３０の構成を示すブロック図である。
【図５】図５は、本発明によるソフトウェア使用制御システムで管理されるライセンスの態様や種類を説明する概念図である。
【図６】図６は、ライセンス管理サーバー１０に保存される各事務所のライセンス内容を登録する契約情報管理テーブルの一実施例を示す図である。
【図７】図７は、各事務所におけるソフトウェアアプリケーションのインストール台数と同時起動台数を管理するためのライセンス管理テーブルを示す図である。
【図８】図８は、事務所内サーバー２０および／またはクライアントＰＣ３０からライセンス管理サーバー１０へ接続する際の認証用ＩＤとパスワードを管理する認証管理テーブルの一実施例を示す図である。
【図９】図９は、事務所内サーバー２０が当該事務所内のクライアントＰＣ３０を管理するためのクライアントＰＣ情報管理テーブルを示す図である。
【図１０】図１０は、ライセンス管理サーバー１０に登録されるアプリケーションソフトウェアを管理するためのアプリ管理テーブルを示す図である。
【図１１】図１１は、クライアントＰＣ３０に特定のアプリケーションソフトウェアをインストールする手順を説明する図である。
【図１２】図１２は、クライアントＰＣ３０のインストール処理の詳細を説明するフロー図である。
【図１３】図１３は、ライセンス管理サーバー１０のフローティングライセンス許可フローを示す図である。
【図１４】図１４は、ライセンス管理サーバー１０に記録される死活監視ログを示す図である。
【図１５】図１５は、図１３に示すフローティングライセンス許可フローの別の実施例を説明する図である。
【図１６】図１６は、障害発生時の動作モード（０〜３）を規定した動作モード管理テーブルを示す図である。
【図１７】図１７は、障害発生を検知した場合にその記録とオフライン起動回数や時間を記録する障害管理テーブルを示す図である。
【図１８】図１８は、ライセンス管理サーバー１０で記録される障害履歴テーブルを示す図である。
【図１９】図１９は、外部ネットワークやライセンス管理サーバー１０のメンテナンス時および障害発生時等において、事業所内サーバー２０がライセンス管理サーバー１０のライセンス管理を一時的に代替する場合のフローティングライセンス許可フローを説明する図である。
【図２０】図２０は、本願システム全体についての処理の流れを示すシーケンス図である。
【図２１】図２１は、ライセンス管理サーバー１０に障害が発生するかメンテナンス中によりオフライン処理を許可するシーケンス図である。
【図２２】図２２は、インターネットアクセス障害が発生した際のオフライン処理を許可するシーケンス図である。
【図２３】図２３は、第２実施例にかかるソフトウェア制御システムの全体構成を示す図である。
【図２４】図２４は、第２実施例におけるアプリケーションソフトウェアの起動から終了までの流れを説明するシーケンス図である。
【図２５】図２５は、第２実施例におけるライセンス管理サーバー２３０の障害またはメンテナンス時のオフライン動作シーケンスを示す図である。
【図２６】図２６は、第２実施例におけるインターネットアクセス障害時のオフライン動作シーケンスを示す図である。
【図２７】図２７は、アプリケーションソフトウェアを利用中の端末が故障した場合の起動ライセンスの解放と別の端末に起動ライセンスを割り当てる処理を説明するシーケンス図である。
【図２８】図２８は、クライアントＰＣ２３０で既にアプリケーションソフトウェアが起動している状態において、ライセンス管理サーバー２１０の障害発生またはメンテナンス、あるいはインターネット接続障害が発生した場合の処理フローを示す。
【図２９】図２９は、第３実施例にかかる契約情報テーブルの一例を示す図である。
【図３０】図３０は、第３実施例にかかるクライアント端末３０に表示される管理画面の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照して、この発明に係るソフトウェア使用制御システムの実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２３】
第１実施例は、会計事務所内に事務所内サーバーおよび１以上のクライアントＰＣが設置されており、会計事務所からインターネットを介してライセンス管理サーバーと接続してソフトウェアを使用する形態の例を説明する。
【００２４】
［実施例１に係るソフトウェア使用制御システムの構成］
まず、図１を用いて、第１の実施形態に係るソフトウェア使用制御システムの構成について説明する。図１は、第１の実施形態に係るソフトウェア使用制御システムの構成を示すブロック図である。
【００２５】
図１に例示するように、第１の実施形態に係るソフトウェア使用制御システム１００は、ライセンス管理サーバー１０と、事務所内サーバー２０と、１以上のクライアントＰＣ（Personal  Computer）３０ａ、３０ｂ・・・とを備える。また、本実施例のソフトウェア使用制御システム１００では、ライセンス管理サーバー１０と事務所サーバー２０はインターネット４０を介して接続されており、事務所内サーバー２０とクライアントＰＣ３０は事務所内でＬＡＮ接続されている。複数のクライアントＰＣ３０ａ、３０ｂ・・・について、特に区別無く説明する場合には、クライアントＰＣと記載する。
【００２６】
ライセンス管理サーバー１００は、ソフトウェアの使用に関する情報や、ユーザーの契約に関する情報に基づいてライセンスを管理するサーバーであり、事務所内サーバー２０からソフトウェア起動要求を受け付け、ライセンスの使用状況を確認して起動の許可／不許可を事務所サーバーへ通知すると共に、ソフトウェアの使用状況の監視（死活監視）などを行う。
【００２７】
事務所内サーバー２０は、会計事務所や企業の事務所内に設置されたサーバー装置であり、同事務所内に設置されたクライアントＰＣ３０に接続され、クライアントＰＣ３０の情報管理や、ライセンス管理サーバー１０への接続を管理する。本実施例ではアプリケーションソフトウェアをクライアントＰＣ３０へ配信する機能も有する。例えば、事務所内サーバー２０は、クライアントＰＣ３０からソフトウェアライセンスの使用要求を受け付け、インターネット４０を介してライセンス管理サーバー１０へ使用の許可を要求する。あるいは、必要に応じて、ライセンス管理サーバー１０に逐次使用の許可を要求せず、自機内の管理情報により、直接にクライアントＰＣ３０の使用要求を許可する処理を行うことができる。
【００２８】
クライアントＰＣ３０は、例えば、デスクトップ型ＰＣ、タブレット型ＰＣ、ノート型ＰＣ等の情報処理装置であり、事務所内で使用されるコンピューター端末である。クライアントＰＣ３０は、事前準備として、固有のＩＤが割り当てられ保持している。そして、ＬＡＮ接続されている事務所サーバー２０から所望するアプリケーションソフトウェアをダウンロードしてインストールし、アプリケーションソフトウェアを使用することができる。
【００２９】
以下に、図２−４を参照しながら、ライセンス管理サーバー１０の構成、事務所内サーバー２０の構成、クライアントＰＣ３０の構成を順に説明していく。
【００３０】
［ライセンス管理サーバーの構成］
まず、図２を用いて、図１に示したライセンス管理サーバー１０の構成を説明する。図２は、実施例１に係るライセンス管理サーバー１０の構成を示すブロック図である。図２に示すように、このライセンス管理サーバー１０は、制御部１１と、記憶部１２と、通信部１３とを具える。以下にこれら各部の処理を説明する。
【００３１】
制御部１１は、各種の処理手順などを規定したプログラムをＲＡＭ（ランダムアクセスメモリ）上にロードしてＣＰＵが各処理ステップを実行することにより構成されるものであって、各種の処理を実行制御する機能を有し、所要データを一時的に格納するためのワークメモリ（ＲＡＭ等）を有し、これらによって種々の処理を実行する。制御部１１はプログラムないし機能モジュールとして、ソフトウェアアプリケーションを使用する契約事務所の情報を処理する事務所情報制御部と、事務所内サーバー２０やクライアントＰＣ３０からの接続認証を行う外部端末認証部と、各クライアントＰＣ３０のインストールライセンス情報を処理するインストールライセンス制御部と、同時起動ライセンス情報制御部とを備える。
【００３２】
記憶部１２は、制御部１１による各種処理に必要なデータおよびプログラムを格納するものであり、事務所毎のライセンス契約情報などを登録した各種管理テーブルや、事務所内サーバー２０へ配信するプログラムを記憶する。アプリケーションプログラム登録部には、各アプリケーションプログラムが登録されており、適宜、最新のバージョンのものに更新可能に構成されている。ただし、アプリケーションプログラム登録部はライセンス管理サーバー内に必ずしも設けられる必要はなく、別のサーバー内に設けられ、ここから各アプリケーションプログラムが配信されるように構成してもよい。
【００３３】
通信部１３は、接続される事務所内サーバー２０との間でやり取りする各種情報に関する通信を制御する。具体的には、通信部１３は、事務所ＩＤやライセンス要求されるソフトウェアＩＤなどを事務所サーバー２０から受信し、ライセンスの許可情報を事務所内サーバー２０へ通知する。
【００３４】
［事務所内サーバーの構成］
次に、図３を用いて、図１に示した事務所内サーバー２０の構成を説明する。図３は、実施例１に係る事務所内サーバー２０の構成を示すブロック図である。図３に示すように、この事務所サーバー２０は、制御部２１と、記憶部２２と、通信部２３とを具える。以下にこれら各部の処理を説明する。
【００３５】
制御部２１は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２１のプログラムないし機能モジュールとして、各クライアントＰＣ３０にインストールプログラムを配信するインストールプログラムインストール制御部と、ライセンス管理サーバー２０と接続するためのライセンス管理サーバーアクセス制御部と、クライアントＰＣ３０から接続を処理するクライアントＰＣアクセス制御部と、アプリケーション制御部とを備える。
【００３６】
記憶部２２は、制御部による各種処理に必要なデータおよびプログラムを格納するものであり、各種管理テーブルや、クライアントＰＣへ配信するアプリケーションプログラムを記憶する。アプリケーションプログラム登録部には、契約に係る各アプリケーションプログラムが登録されており、これらは適宜ライセンス管理サーバー１０から最新のバージョンのものに更新可能に構成されるとともに、インストールライセンスが割り当てられるクライアントＰＣ３０に適宜ダウンロードないし更新させることができる。
【００３７】
通信部２３は、接続されるライセンス管理サーバー１０とクライアントＰＣ３０との間でやり取りする各種情報に関する通信を制御する。具体的には、通信部２３は、事務所内でＬＡＮ接続されているクライアントＰＣ３０から、ライセンスの使用許可を要求されるソフトウェアのＩＤなどを受信し、インターネット４０を介してライセンス管理サーバー１０へライセンスの使用許可を要求し、ライセンス管理サーバー１０から受信したライセンスの使用許可情報を受信し、クライアントＰＣ３０へ通知する。
【００３８】
［クライアントＰＣの構成］
次に、図４を用いて、図１に示したクライアントＰＣ３０の構成を説明する。図４は、実施例１に係るクライアントＰＣ３０の構成を示すブロック図である。図４に示すように、このクライアントＰＣ３０は、制御部３１と、記憶部３２と、通信部３３と、入力部３４と、出力部３５とを具える。以下にこれら各部の処理を説明する。
【００３９】
制御部３１は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。本発明に直接関連するモジュールとして、ソフトウェア情報取得部と、ソフトウェア管理部とを備える。その他に当然ながらアプリケーションソフトウェアを実行する機能も有する。
【００４０】
記憶部３２は、制御部３１による各種処理に必要なデータおよびプログラムを格納するものであり、各種管理テーブル、アプリケーションプログラムを記憶する。
【００４１】
通信部３３は、事務所内サーバー２０とクライアントＰＣ３０との間でやり取りする各種情報に関する通信を制御する。具体的には、通信部３３は、事務所内でＬＡＮ接続されている事務所内サーバー２０（を介してライセンス管理サーバー１０）へライセンスの使用許可を要求し、事務所サーバー２０から通知されるライセンスの使用許可情報を受信する。
【００４２】
入力部３４は、使用するアプリケーションソフトの選択指示などを入力するものであり、キーボードやマウス、マイクなどを備えて構成される。また、出力部３５は、モニタ（ディスプレイ、タッチパネル）やスピーカを備えて構成される。
【００４３】
［ライセンス形態・概念の説明］
図５は、本発明によるソフトウェア使用制御システムで管理されるライセンスの態様や種類を説明する概念図である。本出願において、アプリケーションソフトウェアのライセンスは、各事務所が前提としてソフトウェアを使用する権利について締結する上位概念としての「ソフトウェアライセンス」と、事務所毎に何台のクライアントＰＣ３０に当該ソフトウェアをインストールしてよいかを決めた中位概念としての「インストールライセンス」と、インストールされたクライアントＰＣのうち同時に何台で当該ソフトウェアを利用してよいかを決めた下位概念としての「同時起動ライセンス」が規定されている。
【００４４】
図５（ａ）に示す例では、「法人税申告書」作成ソフトウェアについて、これを利用する事務所がソフトウェアライセンスを１年間で契約し、その後継続してもう１年間契約を延長している。そして、ソフトウェアライセンスと同時に２本のインストールライセンスが契約され、その後に契約期間半ばでインストールライセンスが１本追加されている。あくまでも契約内容はソフトウェア提供者と利用者が合意すれば任意に設定できるが、本図に示す例ではインストールライセンスの利用期間はソフトウェアライセンスに付随し、追加されたインストールライセンスはソフトウェアライセンスの終期とともに１年未満で終了する。本例ではソフトウェアライセンスが１年延長されたことに伴いインストールライセンスは３本とも１年間延長される。本図では明示しないが、インストールライセンスとは別に同時起動ライセンスを設定することができ、同時起動ライセンスはインストールライセンスの数以下となる。これらがライセンス管理サーバー１０で管理され、契約数を超えるクライアントＰＣ３０にソフトウェアをインストールすることはできず、同時起動ライセンスの契約数を超えるクライアントＰＣ３０で当該ソフトウェアを同時に利用することができない。
【００４５】
図５（ｂ）では、同時起動ライセンスの契約例を示す。前提として事務所とソフトウェア提供者側でソフトウェアライセンスが締結され、少なくとも３本のインストールライセンスが購入されている。図５に示すように、最初に１年間を期限とする２本の同時起動ライセンスが購入され、１本は１年後にもう１年間継続され、１本は１年後に契約を更新しないことにより消滅する。また、最初の１年経過前にもう１年間の同時起動ライセンスがもう１本追加購入され、これは購入から１年間有効であり、１年経過後に更新されずに消滅する。したがって、図５に示すように、最初は２本の同時起動ライセンスが存在し、その後に１本追加されて３本となり、その後に１本が契約継続、１本が契約満了して同時起動ライセンスは２本となり、その後に、追加された１本の契約期間が満了して最終的に１本が残る。このように、ソフトウェア提供者と利用者（事務所）の間ではソフトウェアライセンス、インストールライセンス、同時起動ライセンスという３つの概念を用いて様々な形態のライセンスを設定することができ、これらの様々なライセンスに適切に対応したソフトウェア制御が本発明のシステムにより実現される。
【００４６】
［各種テーブルの説明］
（１）契約情報管理テーブル（ライセンス管理サーバー・事務所内サーバー）
図６は、ライセンス管理サーバー１０に保存される各事務所のライセンス内容を登録する契約情報管理テーブルの一実施例を示す図である。本図に示すように、契約情報管理テーブルには、事務所ＩＤ、アプリＩＤ、ソフトウェアライセンス（始期−終期）、インストールライセンス（始期−終期）、および同時起動ライセンス（始期−終期）の登録欄が設けられている。この契約情報管理テーブルには、アプリケーションソフトウェアの提供者と各事務所の間で締結される契約に応じて、各事務所が契約したアプリケーションソフトウェア毎に、インストールライセンスの数および各々の始期と終期、同時起動ライセンスの数および各々の始期と終期が登録される。終期は、図５の概念に基づき、始期と使用期間（図の例では年単位だが１ヶ月、１週間単位の管理でもよい）の情報を元にして決定され、テーブルに記録される。ここで、同時起動ライセンスの数は常にインストールライセンスの数と同じか少なく設定される。新たにライセンスが購入されるか期間更新されると、図５の概念に基づいて終期が設定され、新たな終期に関して契約情報管理テーブルが更新される。また、ライセンス管理サーバー１０は少なくとも１日１回契約情報管理テーブルをチェックし、ライセンスの終期が経過したものを削除するか無効フラグを立てる。このようにして、図５で示したような多様なライセンス形態を柔軟に記録・管理することができる。なお、契約情報管理テーブルの事務所毎の登録内容が当該事務所の事務所内サーバー２０に随時通知され、事務所内サーバー２０では当該事務所についての同じ契約内容を保持する。
【００４７】
（２）ライセンス管理テーブル（ライセンス管理サーバー・事務所内サーバー）
図７ａ、ｂは、ライセンス管理サーバー１０および必要に応じて事務所内サーバー２０が保有する、各事務所におけるソフトウェアアプリケーションのインストール台数と同時起動台数をアクティブに管理するためのライセンス管理テーブルの２種類の実施例を示す。図７ａに示す例では、ライセンス管理テーブルは、各事務所が契約したアプリケーションソフトウェア毎に、当該事務所におけるインストール済みクライアントＰＣ３０のＩＤと、当該アプリケーションソフトウェアを現在起動しているクライアントＰＣ３０のＩＤ（これらを「ＰＣＩＤ」と称す。）とが登録される。ここで、事務所ＩＤはライセンス管理サーバー１０では事務所毎の情報を記録し、事務所内サーバー２０では、当該事務所の情報だけを記録する。インストール済みＰＣＩＤ欄と、起動ＰＣＩＤ欄は事務所内サーバー２０からの通知等により随時更新される。すなわち、事務所側からインストール要求を受けるとライセンス管理サーバー１０は契約情報テーブル（図６）のインストールライセンス数とライセンス管理テーブル（図７）のインストール済みＰＣ数を確認して、ライセンス内であれば新たにインストールライセンスを付与し、インストール済み通知に含まれるＰＣＩＤをライセンス管理テーブルに登録する。同様に、起動要求を受けたら契約情報テーブル（図６）とライセンス管理テーブル（図７）を参照して、同時起動ＰＣ数が同時起動ライセンス数未満であれば同時起動ライセンスを付与し、起動済み通知に含まれるＰＣＩＤをライセンス管理テーブルに登録する。事務所内サーバー２０からいずれかのクライアントＰＣ３０のアプリケーションソフトウェアの終了報告を受けると、ライセンス管理サーバー１０はライセンス管理テーブルの該当する同時起動ＰＣＩＤを削除する。さらに、ライセンス管理サーバー１０は定期的にアプリケーションソフトウェアを起動しているクライアントＰＣ３０またはこれを監視する事務所内サーバー２０から起動中通知を受け取って各クライアントＰＣにおけるアプリケーションの死活監視を行い、起動中であると登録されたクライアントＰＣから定期的な起動中通知を１度でも取得できない場合、あるいは定期的な起動中通知を取得できずに所定期間経過の場合に、ライセンス管理テーブルの起動ＰＣＩＤから当該クライアントＰＣの分を削除する。このほか、ライセンス管理サーバー１０は、アプリケーションソフトウェアを起動しているクライアントＰＣ３０またはこれを監視する事務所内サーバー２０に対して、定期的に起動中であるか否かを問い合わせることで、上記のような各クライアントＰＣにおけるアプリケーションの死活監視を行い、ライセンス管理テーブルの起動ＰＣＩＤから当該クライアントＰＣの分を削除することもできる。これにより同時起動ライセンスのデッドロックを防止することができる。
【００４８】
図７ｂに示す別の実施例では、ライセンス管理テーブルは、各事務所のアプリケーション毎に、インストール可能台数、インストール済みＰＣ台数、同時起動可能台数、および同時起動ＰＣ台数を管理する。このうち、インストール可能台数と同時起動可能台数は、契約情報テーブル（図６）を参照することにより適宜更新される。インストール済み台数と同時起動台数は事務所内サーバー２０からの通知により随時更新される。ライセンス管理サーバー１０は、事務所内サーバー２０からインストール要求または起動要求を受けると、このライセンス管理テーブルを参照して、ライセンス内であればライセンスを付与するとともにテーブルを更新する。図７（ａ）のように各ＰＣＩＤを登録するほか、図７（ｂ）のように全体として何台インストール／起動されているかを管理するだけでもフローティングライセンス管理を行うことができる。同時起動数はアプリケーションの終了通知を受けると１つ減じられるが、本例の場合も各クライアントＰＣにおけるアプリケーションソフトウェアの死活監視を行って、定期的な起動中通知を１度でも取得できない場合、あるいは定期的な起動中通知を取得できずに所定期間経過の場合には、当該クライアントＰＣではアプリケーションソフトウェアが最早使用されていないものと判断して、同時起動数を１つ減らしてもよい。
【００４９】
以上は、主にライセンス管理サーバー１０が主体となって、事務所内サーバー２０を介して、各クライアントＰＣ３０の起動要求を管理する処理を説明したが、事務所内サーバー２０が、ライセンス管理サーバー１０に逐次クライアントＰＣ３０の起動要求を通知せずに、事務所内サーバー２０が主体となって、前記のライセンス管理テーブル（図７ａないし図７ｂ）を利用して、各クライアントＰＣ３０の起動要求を管理することができる。この場合において、各ライセンス管理テーブルは、ライセンス管理サーバー１０の記憶部に格納されたもののうち、当該事務所にかかる部分のみを事務所内サーバー２０が共用して利用するようにしてもよいし、必要に応じて事務所内サーバー２０の記憶部に格納され随時ライセンス管理サーバー１０と同期されるテーブルを利用するようにしてもよい。
【００５０】
（３）認証管理テーブル（ライセンス管理サーバー）
図８は、ライセンス管理サーバー１０が保有する、事務所内サーバー２０および／またはクライアントＰＣ３０からライセンス管理サーバー１０へ接続する際の認証用ＩＤとパスワードを管理するテーブルの一実施例を示す。本図に示す例では、認証ライセンス管理テーブルには、事務所ＩＤ、認証パスワード、事務所サーバーの接続先アドレスが登録される。ライセンス管理サーバー１０は事務所内サーバー２０やクライアントＰＣ３０から接続要求を受けると、要求に含まれるＩＤとパスワードを照合して合致した場合に接続を許可する。
【００５１】
（４）クライアントＰＣ情報管理テーブル（事務所内サーバー・ライセンス管理サーバー）
図９は、事務所内サーバー２０が当該事務所内のクライアントＰＣ３０を管理するためのテーブルを示す。このクライアントＰＣ情報管理テーブルには、クライアントＰＣＩＤと、各クライアントＰＣの名称（任意、例えば「田中事務員専用ＰＣ」等）が登録される。これと同じものが通知されてライセンス管理サーバー１０が保有するようにしてもよい。
【００５２】
（５）アプリ管理テーブル（ライセンス管理サーバー・事務所内サーバー）
図１０は、ライセンス管理サーバー１０に登録されるアプリケーションソフトウェアを管理するためのテーブルを示す。このアプリ管理テーブルは、アプリＩＤ、アプリ名、およびバージョン情報が登録される。アプリケーションソフトウェアの新たなバージョンがライセンス管理サーバー１０に登録されるとこのテーブルが更新される（すなわち最新のバージョンを記録している）。ライセンス管理サーバー１０は、起動要求を受けた際に要求に含まれるアプリＩＤとバージョン情報に基づいてアプリ管理テーブルを確認し、要求にかかるクライアントＰＣ３０にインストールされているアプリケーションが登録されたバージョンより古いものである場合（通常は、バージョンの値が小さい場合）にはバージョンアップを通知することができる。また、アプリ管理テーブルに新たなバージョンが登録された場合に、図７ａのライセンス管理テーブルを参照してどの事務所のどのクライアントＰＣに当該アプリケーションソフトウェアがインストールされているかを抽出し、これらのクライアントＰＣにバージョンアップの案内が自動的に発信されるように構成してもよい。なお、ライセンス管理サーバー１０と事務所内サーバー２０が定期的に通信することにより、事務所内サーバー２０が同一のアプリ管理テーブルを保持するようにしてもよい。
【００５３】
［事務所内サーバーからクライアントＰＣへのアプリインストール］
図１１は、クライアントＰＣ３０に特定のアプリケーションソフトウェアをインストールする手順を説明する図である。前提として、ライセンス管理サーバー１０の記憶手段に、インストール処理を実行するためのプログラムであるインストーラーと、ライセンス管理サーバー１０に接続するための接続ツールと、ソフトウェアアプリケーションのパッケージとの最新版が登録されており、事務所内サーバー２０からライセンス管理サーバー１０に定期的に通信することにより、これらのプログラムやツールが事務所内サーバー２０の共有フォルダにコピーされている。接続ツールには、ライセンス管理サーバー１０と接続するための接続アドレス等が含まれている。クライアントＰＣ３０は、事務所内サーバー２０の共有フォルダにアクセスして、インストーラーや接続ツールを取得して、所望するアプリケーションプログラムのインストールを行う。本実施例では、アプリケーションプログラムを事務所内サーバーに記憶しておき、事務所内サーバーからクライアントＰＣにインストールさせる例を説明するが、アプリを事務所内サーバーに記憶せず、外部のライセンス管理サーバーから、アプリケーションプログラムをダイレクトにダウンロードするように構成してもよい。クライアントＰＣ３０のインストール処理の詳細を、図１２を用いて説明する。
【００５４】
図１２に示すように、まずクライアントＰＣ３０から事務所内サーバー２０の共有フォルダを参照して、インストーラーをダウンロードする（ａ１−ａ２）。このインストーラーを起動すると、事務所内サーバー２０の共有フォルダから接続ツールをダウンロードする（ａ４）。取得した接続ツールにはライセンス管理サーバー１０の接続先アドレスや、アプリケーションプログラムのＩＤ等が含まれている。接続ツールを起動すると（ａ５）、事務所内サーバー２０を介して自動的にライセンス管理サーバー１０にインストールライセンス要求が発信される（ａ６）。このインストールライセンス要求には事務所ＩＤ、クライアントＰＣのＰＣＩＤ、サーバー接続用の認証パスワード、アプリＩＤ等が含まれる。ライセンス管理サーバー１０はライセンス管理テーブル（図７）や必要に応じて契約情報テーブル（図６）を参照して、当該事務所におけるインストール済みライセンス数が購入されたインストールライセンス数より少なければ、インストールライセンスを付与する旨返信する（ａ７）。これを受けてクライアントＰＣ３０はソフトウェアパッケージをダウンロードしてアプリケーションソフトウェアをインストールし（ａ８）、事務所内サーバー２０を介してライセンス管理サーバー１０にインストールライセンス使用通知を送信する（ａ９）。ライセンス管理サーバー１０はライセンス管理テーブル（図７）に新たなクライアントＰＣ３０にアプリケーションソフトウェアがインストールされたことを記録する。これは、図７ａの場合はインストール済みＰＣＩＤ欄に当該クライアントＰＣのＰＣＩＤを記録し、図７ｂの場合はインストール済み数を１つ加算する。
【００５５】
［ライセンス管理サーバーのフローティングライセンス許可フロー］
図１３は、ライセンス管理サーバー１０のフローティングライセンス許可フローを示したものである。フローティングライセンスのチェックは、大まかには、（必要に応じて）インストールライセンスのチェックと、同時起動ライセンスのチェックといった段階的、階層的なチェック手順で構成される。クライアントＰＣ３０でアプリケーションソフトウェアを起動しようとすると、事務所内サーバー２０を介して、ライセンス管理サーバー１０に対して起動ライセンス要求が発信される（ｂ１−ｂ２）。起動ライセンス要求には、少なくとも事務所ＩＤ、アプリＩＤが含まれ、任意で（必要に応じて）端末のＰＣＩＤが含まれる。ここで、「任意で（必要時応じて）」としているのは、事務所内サーバーが必要な数の同時起動ライセンスを取得後、端末に対して割り振るようにした場合には、ライセンス管理サーバー側に端末のＰＣＩＤを通知する必要がないことによる。ライセンス管理サーバー１０では、アプリケーションソフトウェアの起動ライセンス要求を受け取ると、記憶部に記録された契約情報テーブル（図６）を参照して（ｂ３）、最初に当該ソフトウェアの契約が存在するかのソフトウェアライセンスのチェックを行う（ｂ４）。すなわち、事務所ＩＤとアプリＩＤからソフトウェアライセンスの有無と有効期間を確認し、ライセンスがない場合や有効期間外である場合には、ライセンス要求を拒絶する。この場合、クライアントＰＣ３０には「アプリケーションを起動できません」のメッセージが表示され、アプリケーションの起動自体を制限するか、必要に応じて一部起動したアプリケーションが強制終了される（ｂ１２）。別の実施例では、より具体的に「ソフトウェアライセンスが購入されていません。」等のメッセージを表示するようにしてもよい。
【００５６】
ソフトウェアライセンスが確認されたら、次に、インストールライセンスのチェックを行う（ｂ６）。ここでは、図７のライセンス管理テーブルを参照して，インストール数がライセンス内であるかを確認する（ｂ７）。図７ａに示す実施例では、起動要求に含まれるＰＣＩＤがインストール済みＰＣＩＤ欄に登録されているかを確認する。図７ｂに示す実施例では、当該アプリケーションソフトウェアのインストール済み数がインストール可能数を越えていないかチェックする。問題があればライセンスを拒絶する（ｂ１２へ）。問題なければ、次に、同時起動ライセンスのチェックを行う（ｂ８）。これは、図７ａの実施例の場合、図６の契約情報テーブルの同時起動ライセンス数を確認し、図７ａのライセンス管理テーブルの起動ＰＣＩＤ数がライセンス数未満であれば新たな起動ライセンスを許可する。図７ｂの実施例の場合、同時起動可能数が同時起動台数より少なければ新たな起動ライセンスを許可する（ｂ９−ｂ１０）。これがクライアントＰＣ３０に通知され、アプリケーションが起動される（ｂ１１）。起動ライセンスを付与した場合にはライセンス管理テーブル（図７）に記録される。
【００５７】
以上は、主にライセンス管理サーバー１０が主体となって、事務所内サーバー２０を介して、各クライアントＰＣ３０の起動要求を管理する処理を説明したが、事務所内サーバー２０が主体となって、前記のライセンス管理テーブル（図７ａないし図７ｂ）を利用して、各クライアントＰＣ３０の起動要求を管理するようにしてもよい。この場合の各ライセンス管理テーブルを利用した処理フローは同様である。
【００５８】
例えば、当該事務所における法人税のアプリケーションプログラムの同時起動数の契約情報が３台の場合に、既に２台起動している場合には、３台目の起動要求は同時起動ライセンスの範囲内であるため起動が許可され、ライセンス管理サーバー１０が保有するライセンス管理テーブルに、３台目の起動を許可したことが記録される。この状態からさらに他の端末からの法人税のアプリケーションプログラムの起動要求があった場合には、起動要求が許可されないことになる。起動要求が許可されない場合、アプリケーションの起動自体を制限すると共に、クライアントＰＣ３０には「アプリケーションを起動できません」のメッセージが表示される。この場合にユーザーは、後述の図３０のようなフローティング起動状況画面を表示させて、起動したいアプリの使用（起動）状況を確認して、空きが出ないかを確認するようにしてもよい。あるいは、ライセンス管理サーバー１０または事務所内サーバー２０が、起動要求が許可されなかったアプリについて、いずれかの端末での使用が終了して起動ライセンスに空きが生じた場合に、許可されなかったクライアントＰＣ３０に対して空きが生じたことを通知するように構成してもよい。
【００５９】
いずれかのクライアントＰＣ３０でアプリケーションプログラムが終了した場合にもライセンス管理サーバー１０に通知され、ライセンス管理テーブルに起動終了が反映される。さらに、アプリケーションプログラムを実行する各クライアントＰＣ３０からは定期的にアプリケーションの使用報告がライセンス管理サーバー１０に送信され、これがライセンス管理サーバー１０で図１４に示すような死活監視ログとして記録される。ライセンス管理サーバー１０は周期的に図７のライセンス管理テーブルと図１４の死活監視ログを参照して、起動中であると登録されたクライアントＰＣから定期的な起動中通知を１度でも取得できない場合、あるいは、定期的な起動中通知を取得できずに所定期間経過の場合には、ライセンス管理テーブルの起動ＰＣＩＤから当該クライアントＰＣの分を削除する。これにより同時起動ライセンスのデッドロックを防止することができる。
【００６０】
図１５は、図１３に示すフローティングライセンス許可フローの別の実施例を説明する図である。図１５に示すフローチャートは、インストールライセンスのチェックにかかるステップｂ６−ｂ７がない以外は図１３に示すものと同一である。同じ処理には同じ符号を付して示している。このように、フローティングライセンスの許可にあたり、インストールライセンスのチェックを行わず、ソフトウェアライセンスと同時起動ライセンスのチェックのみを行って起動を許可するようにしてもよい。さらなる別の実施例では、ステップｂ４−ｂ５のソフトウェアライセンスを省略してもよい（図示せず）。なお、インストールライセンスの確認のステップ（ｂ６−ｂ７）がないのは、アプリを起動できるということはそもそもインストールライセンが有効であることを前提とするため省略したものである。
【００６１】
このように、インストールライセンスと同時起動ライセンスという異なる概念を柔軟に組み合わせて多様なライセンスを定義することができる。このような柔軟なライセンス構造のイメージを図１３、図１５の右側に示している。例えば、タイプＡのライセンス構造では、アプリケーションソフトウェア（例えば、法人税申告書や減価償却等）のソフトウェアライセンスの構成として、利用を開始する利用開始日と利用の終了時を示す利用期限日の情報が第１の階層として構成され、第２の階層には、インストールライセンスに基づくソフトウェアのアクティベーション（有効化、ここではインストールを意味する）があり、第３の階層として、同時起動ライセンスに基づいて起動が許可されたフローティング（起動数）が割り当てられている様子を示している。
【００６２】
タイプＢのライセンス構造の場合は、ソフトウェアライセンスの第１の階層として、インストールライセンスと同時起動ライセンスとが同列に割り当てられており、利用開始日と利用期限日の情報が第２の階層として同時起動ライセンスの下の階層に割り当てられている。このような階層構造を前提として、インストールライセンスと同時起動ライセンスとを複合的、階層的に用いることで、フローティングライセンスの多面的な管理が可能となる。
【００６３】
特にタイプＢの構成をとった場合には、ソフトウェアライセンスの下層にインストールライセンスと同時起動ライセンスを並列的に設定できるので、例えば、同じ会社の本店と支店であっても、独立したフローティングライセンス管理が可能となるといった、より柔軟なフローティングライセンス管理が可能となる。
【００６４】
ここで、図１３等に示すＮＥＴライセンスとは、事務所との契約によってライセンス管理サーバーに登録されたインストールライセンスや同時起動ライセンスに基づいて、事務所側クライアントＰＣからインストール要求／起動要求があった場合に、ライセンスチェックを行ったうえで実際に付与されるライセンス（インストールライセンスまたは同時起動ライセンス）にあたる概念である。すなわち、ライセンス管理サーバー側から見て、個別の事務所の、個別のアプリについて、契約上のライセンスと実際に付与したライセンスとを区別するために便宜上言い換えたものであって、契約上のライセンス（ライセンス許可可能数）に対する実際に付与されたライセンスをＮＥＴライセンスと称している。
【００６５】
［外部のライセンス管理サーバーの接続障害時の処理］
本発明のソフトウェア制御システムはさらに、ライセンス管理サーバー１０の障害発生、ライセンス管理サーバー１０のメンテナンス中、あるいはインターネット接続障害によりライセンス管理サーバー１０と通信できない場合にも、クライアントＰＣでアプリケーションソフトウェアを起動できるようにする機能を有する。以下、これについて詳細に説明する。
【００６６】
［障害発生時に使用するテーブル類の説明］
（６）動作モード管理テーブル（事務所内サーバー・クライアントＰＣ）
図１６は、障害発生時の動作モード（０〜３）を規定したテーブルである。動作モード０は障害が発生していない通常動作時であって、クライアントＰＣのアプリケーションソフトウェアも上述した通常動作を行う動作モードである。動作モード１はライセンス管理サーバー１０がメンテナンス中の場合に、時間制限を課すことなくオフライン動作を許可する動作モードである。この場合に、予め事務所内サーバー２０にメンテナンス期間が通知され記録されるか、ライセンス管理サーバー１０の前段にある認証サーバー（図示せず）にメンテナンス情報が記録され接続要求があった場合にその旨が返信されるようにする。動作モード２はライセンス管理サーバー１０に障害が発生した場合に、Ｘ時間（例えば１２時間）だけオフライン動作を許可する動作モードである。動作モード３はインターネット接続に障害が発生した場合にＹ時間（例えば６時間）だけオフライン動作を許可する動作モードである。インターネット障害としては、ハブやルーターの故障、接続ケーブルの故障、インターネットプロバイダーのメンテナンスや障害発生などが含まれる。この動作モード管理テーブルは事務所内サーバー２０および／または各クライアントＰＣに登録される。なお、上記のＸ時間とＹ時間はアプリケーションソフトウェアの提供者側で任意に設定することができるが、利用者側では変更できないように構成する。例えば、ライセンス管理サーバー１０に設定可能な大元となる動作モード管理テーブルが登録されており、事務所内サーバー２０および／または各クライアントＰＣ３０がアプリケーションソフトウェアをダウンロードする際に当該動作モード管理テーブルを変更不能な形態で取り込むようにすることが考えられる。
【００６７】
（７）障害管理テーブル（事務所内サーバー・クライアントＰＣ）
図１７は、障害発生を検知した場合にその記録とオフライン起動回数や時間を記録するテーブルである。障害管理テーブルには、障害事象と、障害発生日時の他、オフライン起動回数や起動時間が記録される。この情報は障害回復時にライセンス管理サーバー１０に通知され、ライセンス管理サーバー１０でも記録される。
【００６８】
（８）ライセンス管理サーバー１０の障害履歴テーブル
図１８は、ライセンス管理サーバー１０で記録される障害履歴テーブルである。このテーブルには、事務所ＩＤ、事務所名称、合計オフライン起動回数、合計オフライン起動時間等が記録される。ライセンス管理サーバー１０は、障害回復時にクライアントＰＣ３０または事務所内サーバー２０から図１７のように記録された障害情報を取得して、障害履歴テーブルに障害発生回数とオフライン起動時間を加算する。この記録に基づいて、オフライン起動への追加課金等の管理を行うことが考えられる。
【００６９】
［障害発生時のフローティングライセンス許可フロー］
図１９は、外部ネットワークの障害発生時（プロバイダのメンテナンス含む）やライセンス管理サーバー１０のメンテナンス時および障害発生時等において、事業所内サーバー２０がライセンス管理サーバー１０のライセンス管理を一時的に代替している場合のフローティングライセンス許可フローを示している。
【００７０】
まず、クライアントＰＣ３０において、所望のアプリを起動しようとすると（ｃ１）、事務所内サーバー２０を介して、ライセンス管理サーバー１０に起動ライセンスの要求処理が実行される（ｃ２）。ここで何ら障害が発生していない場合は、図１３または図１５に示すライセンスチェックが行われ（ｃ４）、起動ライセンスが付与されて（ｃ５）、クライアントＰＣ３０は動作モード０（図１６参照）でアプリケーションソフトウェアが起動して通常動作が行われる（ｃ６）。
【００７１】
ステップｃ３において起動ライセンス要求に対する応答が所定期間ない場合、前記の障害ないしメンテナンスの状況の確認が行われる。最初にインターネットの接続をチェックし（ｃ７）、インターネットアクセスに対する応答があって（ｃ８）、ライセンス管理サーバー１０のメンテナンス中の情報が取得された場合には、動作モード１のオフライン動作許可モードに移行し、基本的に、メンテナンス中である限り、時間制限無くオフライン動作が許可される。時間制限なくオフライン動作を許可するのは、事務所やクライアントＰＣ側に責任はなく、ライセンス管理サーバー１０の都合であることによる。
【００７２】
次に、ステップＣ８でインターネットアクセスに対する応答がある場合において、メンテナンス情報が取得できない場合には（ｃ９：Ｎ）、事務所内サーバー２０またはクライアントＰＣ３０はライセンス管理サーバー１０に障害が発生していると判断し、図１６の動作モード管理テーブルが参照され、Ｘ時間（例えば１２時間）の動作モード１に移行する。ライセンス管理サーバー１０の障害時にＸ時間（例えば１２時間）とすることで、すぐに復旧する場合や、比較的長時間のダウンにも対応するという柔軟な対応が可能となる。なお、この第１実施例では、事務所内サーバー２０が存在するので、あえて上記のようなオフライン動作モードに移行させずに、事務所内サーバー２０の記憶部に格納された各種管理テーブルを利用して、クライアントＰＣ３０の使用要求（起動要求）に対し許可するサービスを継続することもできる。また、すでに、起動ライセンスを取得してアプリを起動して利用している端末については、後述の図２８の説明と同様に、特にオフライン動作モードに移行することなく、検出した障害状況ないしメンテナンス状況を記録するに留め、そのまま自機で使用したい間だけ当該アプリを使用することができる。
【００７３】
さらに、ステップｃ７でインターネットの接続をチェックし、インターネットアクセスに対する応答がない場合（ｃ８：Ｎ、外部ネットワークの障害、サービスプロバイダのメンテナンス等）、動作モード３でＹ時間（例えば６時間）のオフライン動作を許可することとし、同様に、すぐに復旧する場合や、比較的長時間のダウンにも対応するという柔軟な対応が可能となる。
【００７４】
このように、オフライン時に事務所内サーバー２０がライセンス管理を代替可能な時間を、障害やメンテナンスの状況、レベルに応じて可変にすることで、柔軟な対応が可能となる。
【００７５】
なお、予め、ライセンス管理サーバーから、自己がメンテナンス中であってサービス応答できない予定日時の情報が事務所内サーバーに通知され、その予定日時情報を元に、図１９ステップｃ１０のオフライン動作モード１に移行するようにしてもよい。
【００７６】
クライアントＰＣ３０におけるオフライン起動時間は事務所内サーバー２０および／またはクライアントＰＣ３０の障害管理テーブル（図１７）に記録され、オフライン起動許可された時間経過後にライセンス管理サーバー１０との通信が復旧していなければアプリケーションソフトウェアが強制終了される。後に障害が復旧した際には、ライセンス管理サーバー１０に障害管理テーブルの情報が通知され、ライセンス管理サーバー１０側の障害履歴テーブル（図１８）にも記録される。
【００７７】
［アプリケーションの起動から終了までの全体の処理の流れ］
図２０は、アプリケーションの起動から終了までの、クライアントＰＣ、事務所内サーバー、ライセンス管理サーバーで構成されるシステム全体についての処理の流れを示すシーケンス図である。本シーケンス図は図１３、図１５のフローチャートの処理に対応している。
【００７８】
オペレーターが、クライアントＰＣ３０においてキーボードやマウスを操作するか、携帯端末を介したリモート操作により、画面上のアプリ起動アイコン（図示せず）を操作してアプリケーションプログラムを起動しようとすると、クライアントＰＣ３０から事務所内サーバー２０を介して、ライセンス管理サーバー１０に対して接続要求およびアプリ起動要求が通知される。あるいは、逐次、ライセンス管理サーバーに、クライアントＰＣ３０の使用要求を通知して許可を受けるというスキームを経ずに、事務所内サーバーが主体となって、自機内に格納した各種管理テーブルないしライセンス管理サーバー側に格納された各種管理テーブルに基づいて、クライアントＰＣ３０の使用要求を許可するようにしてもよい。この場合、図２０において、事務所内サーバー２０とライセンス管理サーバー１０へと間の通信は、必要に応じて（事務所内サーバー２０の記憶部にライセンス管理テーブルを記録しない場合等）、ライセンス管理サーバー内のライセンス管理テーブルなどの参照処理を行う場合や所定のタイミングでのライセンス管理テーブルや契約情報テーブルの参照処理を行う場合を除いて、クライアントＰＣ３０と事務所内サーバー２０との間の通信だけで、起動要求〜起動許可等のライセンス管理が遂行される。
【００７９】
ライセンス管理サーバー１０では、かかる接続要求および起動要求通知を受け取ると、認証管理テーブル（図８）を参照してＩＤとパスワードの照合を行い、認証が成功したらライセンスチェック処理過程（図１３）に移行する。ここでは、図６の契約情報テーブルと図７のライセンス管理テーブルが参照され、ソフトウェアライセンス有効期限内か、当該起動要求があった端末が、インストールライセンスが付与され、すでに起動しようとするアプリケーションプログラムがインストールされた端末であるかどうかを判定する。
【００８０】
なお、ここで、図１０のアプリ管理テーブルを参照して、起動要求にかかるアプリケーションソフトウェアのバージョンを判定し、バージョンが最新のものでない場合には、起動に先立って、最新のバージョンに更新するように事務所内サーバー２０を介して制御するようにしてもよい。
【００８１】
インストールライセンスの適切性が確認できたら、次に同時起動数の確認処理に移行する。同時起動数の確認処理では、起動要求のあった事務所において、当該アプリケーションプログラムについて、他のクライアントＰＣ３０の起動済み状況に照らして、契約情報に係る同時起動数の範囲内にあるかの確認が行われる。なお、図１５で説明したように、インストールライセンスのチェックは省略することができる。
【００８２】
より具体的には、図６の契約情報テーブルを参照して当該事務所において同時に何台まで起動可能かを確認しつつ、図７のライセンス管理テーブルを参照して、当該事務所において、他の端末が、当該起動要求のあったアプリを使用している状況をリアルタイムで確認する。そして、最大同時起動数の値の範囲内にあると判定する場合には、起動許可を通知する（起動ライセンス発行）。このとき、ライセンス状態管理テーブル（図７）の起動ＰＣＩＤ欄に要求にかかるクライアント端末３０のＰＣＩＤを記録するか、同時起動数の値を１つ加算して更新登録する。例えば、図７ｂのＩＤ「１００４」の事務所では、アプリＩＤ「Ａ００１」のアプリケーションソフトウェアについて、同時起動数が２となっているが、新たな起動要求を許可した場合には、この数値を２から３に更新することになる。
【００８３】
このようにして起動ライセンスが発行されると、事務所内サーバー２０が、クライアントＰＣ３０に対して、当該起動要求のあったアプリケーションソフトウェアの起動を許可する。そして、クライアントＰＣ３０において、初めて、当該起動要求のあったアプリケーションソフトウェアの起動がなされる。
【００８４】
また、クライアントＰＣ３０において、アプリケーションソフトウェアの終了処理がなされると、データのセーブ（登録）処理に並行して、アプリ終了通知が事務所内サーバー２０を経由してライセンス管理サーバー１０に通知される。ライセンス管理サーバー１０では、当該終了通知のあった事務所の当該アプリについて、ライセンス管理テーブルの同時起動数を一つ減じるか起動ＰＣＩＤ欄から当該ＰＣＩＤを削除する。
【００８５】
このように、事務所あるいは事業者に対して１以上のインストールライセンスを予め配布しておき、当該事務所または事業者が所有する複数のコンピューター端末のうち、アプリケーションプログラムを利用する可能性のある端末を予め決定して、アプリケーションプログラムをプレインストールしておくことで、同時起動ライセンス数の範囲内で、必要なクライアントＰＣ３０ですぐにアプリケーションソフトウェアが使用可能となる。
【００８６】
このことは、例えば会計事務所における会計処理などの場合に、多数の税務会計処理に係るアプリケーションプログラムを随時切替えながら業務を遂行することが求められる用途において、インストールや各種の初期設定の時間を省き、必要な端末で直ちにアプリケーションプログラムを使用可能とすることができる点で有用である。
【００８７】
特に、会計事務所の顧問先に対する会計税務サービスや、企業において本店の支店に対する会計処理や、親会社の子会社に対する会計処理においては、複数の顧問先ないし支店等に対し、その顧問先等の業種、業務に応じて、複数のアプリケーションプログラムを駆使して、随時切替えながら処理することが求められるため、特に効果的である。
【００８８】
また、インストールライセンスが割り当てられた端末に、予めアプリケーションプログラムをプレインストールしておくのみならず、ライセンス管理サーバー１０と事務所内サーバー２０が連携して、最新のアプリケーションプログラムを随時更新するようにすることができ、税制改正や会計基準の変更等により頻繁なアプリケーションプログラムの更新が必要となるような税務会計分野での用途に、特に効果的である。
【００８９】
このように、ソフトウェアライセンスと、インストールライセンスと、同時起動ライセンスとを、多面的、複合的、有機的に活用することで、特に税務会計分野でのアプリケーションプログラムのフローティングライセンスの使い勝手を飛躍的に向上させることができる。
【００９０】
［ライセンス管理サーバーオフライン処理］
図２１、２２を用いて、図１９のフローチャートで説明したオフライン動作のシステム全体の処理を説明する。図２１は、ライセンス管理サーバー１０に障害が発生するかメンテナンス中によりオフライン処理を許可するシーケンス図である。クライアントＰＣ３０のアプリ起動時に、事務所サーバー２０を介してライセンス管理サーバー１０に起動ライセンス要求が発信される。しかしライセンス管理サーバー１０に障害が発生しており、ライセンス許可／拒絶の応答が所定期間返信されずにタイムアウトすると、クライアントＰＣ３０から最初にインターネットアクセスチェックがなされ、インターネットアクセスが正常であればライセンス管理サーバー１０のメンテナンス情報が確認される。ここでメンテナンス情報が取得できればクライアントＰＣ３０はオフライン動作モード１で時間制限なくオフライン動作が許可され、メンテナンス情報が確認できなければライセンス管理サーバー１０の障害として動作モード２でＹ時間のオフライン動作が許可される。アプリケーションプログラムの利用が終了した場合には事務所内サーバー２０に通知され、起動回数やオフライン起動時間が記録される。
【００９１】
図２２は、サーバー障害ではなく、インターネットアクセス障害が発生した際のオフライン処理を許可するシーケンス図である。本シーケンスでは、アプリケーションプログラムの起動要求が通信障害によりライセンス管理サーバー１０に届かずタイムアウトすることにより、クライアントＰＣ３０からインターネットアクセスチェックを行うと通信障害が確認され、この場合に事務所内サーバー２０が動作モード３によりＹ時間のオフライン動作を許可する。なお、この第１実施例では、事務所内サーバー２０が存在するので、あえて上記のようなオフライン動作モードに移行させずに、事務所内サーバー２０の記憶部に格納された各種管理テーブルを利用して、クライアントＰＣ３０の使用要求（起動要求）に対し許可するサービスを継続することもできる。
【００９２】
以上、本発明の第１の実施例について詳細に説明したが、本発明は上記の構成および動作に限定されるものではない。本発明の目的である柔軟なフローティングライセンス管理を実現できる限りにおいて、システムの各構成要素やテーブル詳細、処理の詳細などは適宜変更することができる。例えば、上記には所望の動作を達成する上で最小限のテーブル構成および処理構成を示しているが、他に様々な改良や変更を加えることができる。例えばライセンス管理サーバー１０、事務所内サーバー２０、クライアントＰＣ３０の１以上で、インストールライセンスに基づくアプリケーションソフトウェアのインストール日時や起動ライセンスに基づく起動時間等をテーブルに記録してもよい。さらに、本発明のシステムは事務所内サーバー２０を設けなくても実現することができる。これについて以下に説明する。
【実施例２】
【００９３】
［システム構成］
図２３は、第２実施例にかかるソフトウェア制御システムの全体構成を示す図である。図２３に示すように、本実施例のソフトウェア制御システム２００は、外部のライセンス管理サーバー２１０と、事務所内の複数のクライアントＰＣ２３０とがインターネット４０を介して接続されている。本実施例のライセンス管理サーバー２１０は、第１実施例のライセンス管理サーバー１０の構成とほぼ同様であり、図６の契約情報テーブル、図７のライセンス管理テーブル、図８の認証管理テーブル、図９のクライアントＰＣ情報管理テーブル、図１０のアプリ管理テーブル、図１８の障害履歴テーブル等を備えている。通信部３３は、接続される各クライアントＰＣ２３０との間でやり取りする各種情報に関する通信を制御する。具体的には、通信部３３は、事務所ＩＤやライセンス要求されるアプリＩＤなどを各クライアントＰＣ２３０から受信し、ライセンスの許可情報を各クライアントＰＣ２３０へ通知する。一方、事務所側の各クライアントＰＣ２３０は、第１実施例において事務所内サーバー２０が保有していた各種テーブル（当該事務所または当該クライアントＰＣ２３０の情報のみを有する契約情報テーブル、ライセンス管理テーブル、認証管理テーブル、図１６の動作モード管理テーブル、図１７の障害管理テーブル等）の一部または全部を備える。
【００９４】
［動作フロー］
（１）ソフトウェアインストール
本実施例において、各クライアントＰＣ３０でアプリケーションソフトウェアをインストールする処理は基本的に第１実施例の処理と同様であり、事務所内サーバー２０がないのでクライアントＰＣ２３０とライセンス管理サーバー２１０が直接やりとりを行ってアプリインストールが行われる。
【００９５】
ここで、ライセンス管理サーバー２１０からクライアントＰＣ２３０へのアプリインストール処理の詳細を、事務所内サーバーからのインストールの処理フロー図である図１２を流用して説明する。まず、クライアントＰＣ２３０から、インストールのために、ライセンス管理サーバー２１０にアクセスすると、ライセンス管理サーバー２１０では、記憶部に格納した契約情報テーブル（図６）および認証管理テーブル（図８）を参照し、契約情報及び事務所ＩＤと認証パスワードを用いて、当該クライアントＰＣ２３０が、インストールしようとしているソフトウェアライセンスについて所定の契約に係る事務所に属している端末であることを認識し、ライセンス管理サーバーへ接続が許可され、インストーラーをダウンロードする（ステップａ１〜ａ２）。以降は、クライアントＰＣ２３０が直接ライセンス管理サーバー２１０にアクセスする点を除けば、ａ３〜ａ９のステップを実行してアプリをインストールする処理は同様であり、本実施例において各処理の詳細はこの構成の変更に合わせて適宜調整されるが、これらは当業者であれば自明な変更であるためその詳細な説明は省略する。
【００９６】
なお、クライアントＰＣ２３０にアプリをインストールする際に（ステップａ８）、ライセンス管理サーバー２１０の記憶部に格納された契約情報テーブル（図６）、およびライセンス管理テーブル（図７）あるいは、ライセンス管理サーバー２１０が、クライアントＰＣ２３０と共通に保有しているクライアントＰＣ情報管理テーブル（図９）やアプリ管理テーブル（図１０）等、ないし、クライアントＰＣ２３０が記憶部に格納しているアプリ管理テーブル（図１０）やインストールアプリ管理テーブル（図９）等に、それぞれインストールしたアプリケーションソフトウェアの情報（例えば、当該アプリケーションソフトウェアのアプリＩＤやバージョン情報、当該アプリケーションソフトウェアがどの事務所のどの端末にインストールされたかの関連付け情報、インストールした日付情報、ライセンス有効日付やライセンス期限の情報等）の登録が行われる。
【００９７】
（２）フローティングライセンス管理
図２４は、アプリケーションソフトウェアの起動から終了までの流れを説明するシーケンス図である。フローティングライセンス管理も第１実施例とほぼ同様であり、事務所内サーバーを介さずにクライアントＰＣ２３０とライセンス管理サーバー２１０が直接やりとりを行ってライセンス管理が行われる。ライセンスチェックの詳細は図１３、図１５で示す第１実施例のものと同様である。また、障害発生後にアプリケーションソフトウェアを起動しようとする際の障害発生時のフローも図１９に示す第１実施例の動作と同様であり、障害事象に応じて動作モード１〜３のいずれかでオフライン動作が可能となっている。図２５に、ライセンス管理サーバー２３０の障害またはメンテナンス時のオフライン動作シーケンスを示し、図２６に、インターネットアクセス障害時のオフライン動作シーケンスを示す。
【００９８】
図２７は、起動ライセンスを受けて特定の端末（例えばクライアントＰＣ２３０ａ）がアプリケーションソフトウェアを利用している場合に、当該クライアントＰＣ２３０ａが故障した場合の起動ライセンスの解放と別の端末に起動ライセンスを割り当てる処理を説明するシーケンス図である。最初のクライアントＰＣ２３０ａからの要求に応じて起動ライセンスが付与され、当該クライアントＰＣ２３０ａでアプリケーションソフトウェアを使用している場合、定期的にライセンス管理サーバー２１０に使用報告が上げられ、図１４の死活監視管理テーブルに記録される。ライセンス管理サーバー２１０は定期的に死活監視管理テーブルを参照して、定期的に起動中であるか否かを問い合わせを行って応答がなかった場合、または定期的なクライアントＰＣからの起動中通知を１度でも取得できない場合、もしくは定期的な起動中通知を取得できずに所定期間経過の場合には、障害その他の理由により当該クライアントＰＣ２３０ａは最早アプリケーションソフトウェアを使用していないものと判断する。この場合、ライセンス管理サーバー２１０は図７のライセンス管理テーブルで起動ＰＣＩＤ欄から当該クライアントＰＣ２３０ａを削除するか（図７ａの場合）、同時起動数から１台減じて（図７ｂの場合）テーブルを更新し、他のクライアントＰＣで当該アプリケーションソフトウェアを利用できるようにする。以降に他のクライアントＰＣ（例えばクライアントＰＣ２３０ｂ）から起動ライセンス要求があった場合にはライセンス管理テーブルを参照して当該クライアントＰＣ２３０ｂに起動ライセンスが別途付与される。このように、所定期間報告のないクライアント端末の起動ライセンスを適宜解放することにより、同時起動ライセンスが定数に達してデッドロックしてしまう事態を解消することができる。
【００９９】
（３）アプリケーションが既に起動している場合に障害が発生した場合の処理フロー
図２８は、例えば図１３に示すライセンス許可フローにより起動ライセンスが付与され、クライアントＰＣ２３０で既にアプリケーションソフトウェアが起動している状態において、ライセンス管理サーバー２１０の障害発生またはメンテナンス、あるいはインターネット接続障害が発生した場合の処理フローを示す。前提として、正常な手続により起動ライセンスが付与されており、クライアントＰＣ２３０でアプリケーションソフトウェアが使用中である（ｄ１）。アプリケーションソフトウェアないしクライアントＰＣ２３０は定期的にアプリケーションの使用報告をライセンス管理サーバー２１０に対して行っている（ｄ２）。ライセンス管理サーバー２１０はこれを図１４の死活監視管理テーブルに蓄積し、各クライアントＰＣ２３０におけるアプリケーションソフトウェアの死活監視を行っている。いずれかの時点で、定期報告に対するライセンス管理サーバー２１０の応答が所定期間得られなかった場合（ｄ３）、クライアントＰＣ２３０はライセンス管理サーバー２１０のメンテナンス情報を取得できるかチェックする（ｄ４）。これは前述したように、予めライセンス管理サーバー２１０側からメンテナンス予告通知を受けていれば自ＰＣ内のその登録場所を参照し、あるいはメンテナンス管理サーバー２１０の前段にある認証サーバー（図示せず）にメンテナンス情報を問い合わせることにより行われる。
【０１００】
ここでライセンス管理サーバー２１０が現在メンテナンス中であるとの情報が取得できれば（ｄ５：Ｙ）、クライアントＰＣ２３０の障害管理テーブル（図１７）に日時とサーバーメンテナンス中であるとの情報を記録する（ｄ１０）。また、メンテナンス情報が取得できない場合（ｄ５：Ｎ）、インターネットアクセスチェックを行って（ｄ６）、インターネットアクセスが正常である場合は（ｄ７）、ライセンス管理サーバー２１０の障害発生を障害管理テーブルに記録する（ｄ９）。インターネットアクセスが不可能である場合は、障害管理テーブルに通信障害発生を記録する（ｄ８）。いずれの場合も、障害事象や日時を障害管理テーブルに記録するに留め、特別なオフライン動作モードに移行することなく、既に起動しているアプリケーションソフトウェアは自機において当該ソフトウェアの使用の継続を希望する限り、使用終了を行うまで継続利用可能とする（ｄ１１）。定期的にライセンス管理サーバー２１０への報告試行は続けられ、サーバー２１０との通信が正常に復帰したら障害管理テーブル（図１７）の内容がサーバー２１０に報告される。このように、正常時に付与された起動ライセンスに基づいてアプリケーションソフトウェアを使用している場合に何らかの障害が発生しても、クライアントＰＣ２３０において継続してアプリケーションソフトウェアを使用できるようにすることにより、ユーザーの便宜となる。
【実施例３】
【０１０１】
図２９、３０を用いて、本発明のさらなる実施例について説明する。本実施例は、上述した実施例１ないし実施例２におけるフローティングライセンスについて、例えば会計事務所の所長専用ＰＣなどの優先的にアプリケーションソフトウェアを利用すべき端末に占有使用する権利を確保する運用形態である。図２９は、実施例１におけるライセンス管理サーバー１０および／または事務所内サーバー２０とクライアントＰＣ３０に登録される契約情報テーブルの一例を示す図である。なお、実施例２における図２３のライセンス管理サーバー２１０ないしクライアントＰＣ２３０においても同様の処理が可能であるが、以下の説明では、説明の簡略化のため、実施例１の各装置の符号を用いて説明する。この契約情報テーブルには図６に示す契約情報テーブルの内容に加え占有使用欄が設けられており、この占有使用欄は設定フラグと、占有使用権が設定される端末のＰＣＩＤ（図９参照）が登録される。設定フラグは、専用使用権の有効／無効を示すフラグであり、フラグが有効な場合は契約された同時起動ライセンスのうち占有使用権が設定された端末のために設定台数分だけ他のクライアント端末３０への割り当てが制限される。ここで設定フラグを設けているのは、例えば設定した端末の利用者が休暇をとっている場合などに、占有使用権を解放して他の端末がアプリケーションソフトウェアを利用できるようにするためである。本実施例の占有使用権の概念は、上記実施例１と２のいずれの形態にも適用することができる。本実施例ではクライアント端末毎のライセンス管理が必要となるため、ライセンス管理テーブルは図７（ａ）に示すものが用いられる。
【０１０２】
占有使用権の設定は、予めクライアント端末３０または事務所内サーバー２０からライセンス管理サーバー１０へ申請することにより行われる。この申請は例えば設定画面を呼び出して行うことができ、申請には少なくとも占有使用を設定する端末のＰＣＩＤが含まれる。ライセンス管理サーバー１０はこの申請を受け取ると、図２９の契約情報テーブルの占有使用欄にＰＣＩＤを登録し、デフォルトでは占有使用フラグをＯＮにする。
【０１０３】
フローティングライセンスの管理は図１３または図１５とほぼ同様であるが、ステップｂ８の同時起動ライセンスのチェック処理において、ライセンス管理サーバー１０は、ライセンスを要求する端末のＰＣＩＤが占有使用欄に登録されていれば常に起動ライセンスを発行し、図７のライセンス管理テーブルを更新する。起動ライセンスの要求にかかる端末のＰＣＩＤが占有使用欄に登録されていなければ、契約情報テーブルにて占有使用権の設定台数とフラグ、同時起動ライセンス数を取得し、次に図７（ａ）のライセンス管理テーブルを参照して、同時起動ライセンス数に占有使用権のある台数を除いた上で、同時起動ライセンスが余っていれば起動ライセンスを付与してライセンス管理テーブルを更新する。このようにして、同時起動ライセンスのうち占有使用が設定された端末には常にライセンスが確保され、例えば会計事務所の所長などがいつでもアプリケーションソフトウェアを利用できる態勢が確保される。
【０１０４】
さらに、クライアント端末３０側で事務所内における現在のアプリケーション使用端末の把握や起動ライセンスの解放要求、占有使用権の解除などを設定できるようにしてもよい。図３０は、クライアント端末３０のモニタ画面、または事務所内サーバーあるいはライセンス管理サーバーがサービスするウェブページに表示される管理画面の一例を示す図である。図３０に示す管理画面には、アプリケーションソフトウェア毎のインストールライセンス・同時起動ライセンスの契約数と現在の導入済み／起動済み数の概要が反映されたフローティング起動状況概要ウィンドウ４１と、事務所内の起動状況の詳細を示すフローティングライセンス起動状況詳細ウィンドウ４２と、管理画面を表示する端末に占有使用権が設定されている場合の占有使用解除ボタン４３と、任意の起動中端末の起動中状態を停止する起動権解放ボタン４４とを具える。この画面は専用アイコンやアプリ上のボタン押下などで任意に呼び出し可能に構成することができ、また例えばアプリケーションソフトウェアの起動時に同時起動ライセンスがすべて使用されており起動ライセンスの発行が拒否される場合に自動的に表示されるようにしてもよい。
【０１０５】
フローティングライセンス起動状況概要ウィンドウ４１は、例えばクライアント端末３０がライセンス管理サーバー１０からその時点における契約情報テーブル（図２９）とライセンス管理テーブル（図７（ａ））の内容を取得し、当該事務所で契約しているアプリケーションソフトウェア名、ライセンスＩＤ（図１０のアプリＩＤに対応）、インストールライセンス数、インストール済みＰＣＩＤ数、同時起動ライセンス数、同時起動ＰＣＩＤ数を並べて表示される。フローティングライセンス軌道状況詳細ウィンドウ４２は、さらにクライアントＰＣ情報管理テーブル（図２３）の内容を取得し、アプリケーションソフトウェアとクライアント端末ごとに利用期限と、占有使用権の有無、起動中であるか否か、起動ライセンスを解放したかの欄を並べて表示される。
【０１０６】
この管理画面を表示するクライアント端末３０が占有使用権を有する場合、すなわち図２９の契約情報テーブルの占有使用欄にＰＣＩＤが登録された端末である場合には、占有使用解除ボタン４３がアクティブに表示される。上述したようにこの端末はアプリケーションソフトウェアの占有使用が可能であり、すなわち同時起動ライセンスがいつでも確保されている。例えばこの端末に不具合が生じたり、端末を持ち出して顧問先や得意先に出張するような場合および自宅に持ち帰ってアプリ利用以外の用途に用いる場合、さらにはユーザーが休暇を取るなどで暫くアプリケーションソフトウェアを使用しない場合、占有使用解除ボタン４３を押下すると、必須ではないが確認画面を経た後にライセンス管理サーバー１０に占有解除申請が送信される。ここで、占有使用の端末が故障した場合には、別の端末から、事務所内サーバーあるいはライセンス管理サーバーがサービスするウェブページにアクセスして、図３０の管理画面を表示して、占有解除申請を送信するようにしてもよい。ライセンス管理サーバー１０は図２９の契約情報テーブルの占有使用フラグをＯＦＦに切り替える。これにより、当該クライアント端末の占有使用権が一時的に解除され、必要に応じて他の端末に起動ライセンスが付与されることになる。占有使用解除中はボタン４３が「占有使用開始」のように表示され、例えば端末の修理が終了したり、ユーザーが休暇から戻ったりした際にこのボタン４３を再び押下するとライセンス管理サーバー１０に占有使用申請が送られ、契約情報テーブルの占有使用フラグが再びＯＮにされる。
【０１０７】
さらに、例えば既にアプリケーションソフトウェアを使用している端末に不具合が生じたり、端末を持ち出して顧問先や得意先に出張したり、端末を自宅に持ち帰ってアプリ利用以外の用途に用いたりするような場合、あるいはいずれかの端末のユーザーが昼休憩などで離席しているような場合に、特定のクライアント端末を指定して起動ライセンスを解放することができる。例えば、図３０の画面上のフローティングライセンス起動情報詳細ウィンドウ４２のいずれかのライセンスを反転表示させ、起動権解放ボタン４４を押下すると、これがライセンス管理サーバー１０に通知され、サーバー１０は通知に含まれるＰＣＩＤとアプリＩＤからライセンスを特定して解放する。このことがクライアント端末３０に返信され、フローティングライセンス起動状況詳細ウィンドウ４２の起動権解放欄に表示される。これにより他のクライアント端末が起動ライセンスを取得できるようになる。この場合、クライアントＰＣ３０のモニタ画面、または事務所内サーバーあるいはライセンス管理サーバーがサービスするウェブページに表示される管理画面のいずれか一つ、あるいは複数の画面利用を組み合わせて、起動権の解放を制御できるようにしてもよい。一実施例では、予め占有使用登録されている端末の起動権は解放できないようにして、重要な端末で起動できなくなるような不便を防止するようにしてもよい。使用中にも拘わらず起動ライセンスを失ったクライアント端末では、例えば確認画面が表示され、データ保存の機会が与えられた上で、アプリケーションソフトウェアが強制終了されるようにしてもよい。
【０１０８】
さらに、図３０のようなフローティングライセンス起動情報詳細ウィンドウ４２によれば、他の端末利用者が当該アプリの同時起動ライセンスを全て使い切っていることにより当該アプリの起動要求を却下された端末利用者や、事務所長などの管理者が、事務所内でどのアプリにどれだけの同時起動ライセンスが確保され、そのうちどれだけの同時起動ライセンスが使用されているのか、起動ライセンスの空きがあるのかないのか、あるいは所望のアプリの同時起動ライセンスが解放されたのかどうかを確認して待機したり、アプリケーションソフトウェアを使っている端末の利用者に今後の使用予定を問い合わせる等に活用することができる。
【０１０９】
あるいは、使用したいアプリについて、起動ライセンスに空きがない場合には、図３０の表示画面に、別途、予約ボタンを設ける等して、同時起動数に空きができた場合に、優先的に使用できるようにしてもよい。
【０１１０】
上記に説明した本願発明によれば、ソフトウェアライセンスの下位に設けられた、インストールライセンスないし同時起動ライセンスを初めとする各種の複合的、階層的なライセンス概念を導入することにより、各種の事務所（会社、会計事務所等）の特性や、多様なソフトウェアの体系に対応したフローティングライセンスの管理を、事務所側に専門的な担当者を割り当てることなく、簡易に遂行することができる。
【０１１１】
また、ソフトウェアライセンスを構成する各種のライセンス概念、たとえば、インストールライセンスを、同時起動ライセンスとは別枠で構成するなど、複数ないし階層的なライセンス概念を導入することとしたので、インストールライセンスの概念により、所定の端末において、常に、自動的に最新のアプリケーションプログラムを格納しておいた上で、アプリを使用したい場合に、同時起動ライセンスの範囲内で、直ちに、最新のアプリを利用できるという管理を行うことができる。これにより、税務会計分野の業務アプリのように、税制改正や会計基準等の改正により、頻繁にアプリの更新をしなければならない用途に特に好適である。
【０１１２】
また、フローティングライセンスの管理において、ライセンス管理サーバーと、ライセンスを付与されるクライアントＰＣとの間で、何らの工夫も加えずに、インターネット等のＷＡＮ回線（外部ネットワーク）を利用した場合、ライセンス管理サーバーのメンテナンスや障害発生時や外部ネットワークのメンテナンスや障害発生時に、フローティングライセンスを適切に付与したり管理できないという不都合が生じうるが、本願発明によれば、状況に応じて段階的なオフライン動作モードに移行することで、フローティングライセンスの管理および発行を継続できる。
【０１１３】
このように、安全かつ適切にフローティングライセンスの管理の仕組みを提供したので、最小限のライセンスだけ導入して事務所内の複数の端末で利用可能とすることで、利用者においてコストを削減しつつ、いわゆる試用のような形で複数の担当者がアプリケーションソフトウェアを利用して使いやすさ等を体験したり使用方法の練習をしたりすることが可能となり、追加でライセンスを導入する契機を提供することができる。
【０１１４】
また、追加でライセンスを購入することを誘引する結果、事業所全体としての作業効率を向上させる機会を提供することができる。
【産業上の利用可能性】
【０１１５】
本発明は、アプリケーションプログラムのライセンスを配布して、アプリケーションプログラムを所定期間、必要な本数だけ利用するフローティングライセンスサービスシステムに利用することができる。
【符号の説明】
【０１１６】
１０、２１０    ライセンス管理サーバー
２０、２２０    事務所内サーバー
３０、２３０    クライアントＰＣ
１１、２１、３１    制御部
１２、２２、３２    記憶部
１３、２３、３３    通信部
４１    フローティング起動状況概要ウィンドウ
４２    フローティングライセンス起動状況詳細ウィンドウ
４３    占有使用解除ボタン
４４    起動権解放ボタン
１００、２００    ソフトウェア管理システム
【図１】
2015014817.tif 000003
【図２】
2015014817.tif 000004
【図３】
2015014817.tif 000005
【図４】
2015014817.tif 000006
【図５】
2015014817.tif 000007
【図６】
2015014817.tif 000008
【図７】
2015014817.tif 000009
【図８】
2015014817.tif 000010
【図９】
2015014817.tif 000011
【図１０】
2015014817.tif 000012
【図１１】
2015014817.tif 000013
【図１２】
2015014817.tif 000014
【図１３】
2015014817.tif 000015
【図１４】
2015014817.tif 000016
【図１５】
2015014817.tif 000017
【図１６】
2015014817.tif 000018
【図１７】
2015014817.tif 000019
【図１８】
2015014817.tif 000020
【図１９】
2015014817.tif 000021
【図２０】
2015014817.tif 000022
【図２１】
2015014817.tif 000023
【図２２】
2015014817.tif 000024
【図２３】
2015014817.tif 000025
【図２４】
2015014817.tif 000026
【図２５】
2015014817.tif 000027
【図２６】
2015014817.tif 000028
【図２７】
2015014817.tif 000029
【図２８】
2015014817.tif 000030
【図２９】
2015014817.tif 000031
【図３０】
2015014817.tif 000032