(57)【特許請求の範囲】
【請求項１】
ライセンス数分のレコードを持つサーバ装置と、複数のクライアント装置と、前記サーバ装置、前記クライアント装置を接続するネットワークとを備え、
インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録し、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する前記クライアント装置と、
前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新し、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する前記サーバ装置と、
を有することを特徴とするソフトウェア管理システム。
【請求項２】
ライセンス数分のレコードを持つサーバ装置と、複数のクライアント装置と、前記サーバ装置、前記クライアント装置を接続するネットワークとを備えるソフトウェア管理システムにおけるソフトウェア管理方法であって、
前記クライアント装置が、インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録する手順と、
前記クライアント装置が、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する手順と、
前記サーバ装置が、前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新する手順と、
前記サーバ装置が、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する手順と、
を含むことを特徴とするソフトウェア管理方法。
【請求項３】
ライセンス数分のレコードを持つサーバ装置を制御する第１のプログラムと、前記サーバ装置とネットワークで接続された複数のクライアント装置を制御する第２のプログラムを記録する記録媒体であって、
インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録する手順と、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する手順とを前記クライアント装置に実行させる前記第２のプログラムと、
前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新する手順と、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する手順とを前記サーバ装置に実行させる前記第１のプログラムと、
を記録することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェア管理システム、ソフトウェア管理方法、および、記録媒体に関し、特に、クライアントサーバシステムにおいて、クライアントで実行されるソフトウェアの継続不正使用を抑止するソフトウェア管理システム、ソフトウェア管理方法、および、記録媒体に関する。
【０００２】
【従来の技術】
ライセンス数の管理の従来技術として、たとえば、「特開平１０−１３３８６８号公報」記載の技術が存在する。この技術は、サーバ装置によりソフトウェア使用権が管理されているシステムにおいて、クライアント装置がネットワークから切り離された場合でも、ソフトウェアの実行を可能とする使用権管理方式である。
【０００３】
また、この従来技術は、クライアント装置へのソフトウェアインストールに際して、サーバ装置へソフトウェアの使用権認証鍵の発行を要求し、クライアント装置がサーバ装置からソフトウェアの使用権認証鍵を入手した際にそのソフトウェアの使用権認証鍵を記憶してソフトウェアの導入を行い、クライアント装置におけるソフトウェアの実行に際して記憶したソフトウェアの使用権認証鍵の認証を行って実行の可否を判定し、その判定結果に基づきソフトウェアの起動・中断を制御するものである。
【０００４】
【発明が解決しようとする課題】
上述した従来技術の第１の問題点は、サーバ装置において、クライアント装置で実行しているソフトウェアの数、すなわち、同時使用数をリアルタイムに監視できないことである。
【０００５】
その理由は、クライアント装置にソフトウェアをインストールする際にのみ、サーバ装置に対してその使用権の確認を行う構成となっているからである。
【０００６】
第２の問題点は、ソフトウェアをインストールしたクライアント装置を取り外し、別のクライアント装置に置き換える際の作業が複雑なことである。
【０００７】
その理由は、置き換え前のクライアント装置のソフトウェアの使用権認証鍵をサーバ装置に返却する作業と、置き換え後のクライアント装置においてソフトウェアの使用権認証鍵の発行を新たにサーバ装置に要求する作業が発生するからである。
【０００８】
第３の問題点は、サーバ装置変更の際に、変更前のサーバ装置に登録されていたソフトウェア使用権認証鍵を変更後のサーバ装置に再登録する作業が発生することである。
【０００９】
本発明の目的は、ソフトウェアの実行時にその使用権の確認を行うことにより、サーバ装置への同時接続数のリアルタイムな監視を可能にすると共に、ソフトウェアをインストールしたクライアント装置変更に伴う、ソフトウェア使用権認証鍵の返却と新たな要求の作業を不要にし、さらに、サーバ装置変更に伴う、ソフトウェア使用権認証鍵の再登録を不要にしたソフトウェア管理システムを実現することである。
【００１０】
【課題を解決するための手段】
【００１２】
本発明のソフトウェア管理システムは、ライセンス数分のレコードを持つサーバ装置と、複数のクライアント装置と、前記サーバ装置、前記クライアント装置を接続するネットワークとを備え、
インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録し、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する前記クライアント装置と、
前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新し、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する前記サーバ装置と、
を有する
【００１５】
本発明のソフトウェア管理方法は、ライセンス数分のレコードを持つサーバ装置と、複数のクライアント装置と、前記サーバ装置、前記クライアント装置を接続するネットワークとを備えるソフトウェア管理システムにおけるソフトウェア管理方法であって、
前記クライアント装置が、インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録する手順と、
前記クライアント装置が、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する手順と、
前記サーバ装置が、前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新する手順と、
前記サーバ装置が、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する手順と、
を含む。
【００１８】
本発明の記録媒体は、ライセンス数分のレコードを持つサーバ装置を制御する第１のプログラムと、前記サーバ装置とネットワークで接続された複数のクライアント装置を制御する第２のプログラムを記録する記録媒体であって、
インストールしたソフトウェアの起動後、前記サーバ装置への初回アクセス時に、ソフトウェアの使用を可能とするための要求である初回用ソフトウェア認証用番号を前記サーバ装置へ送信し、前記サーバ装置から返送されたクライアント用ソフトウェア認証用番号を登録する手順と、２回目以降の前記サーバ装置へのアクセス時には、前記サーバ装置から受け取り登録した前記クライアント用ソフトウェア認証用番号を、ソフトウェアの終了時まで前記サーバ装置へ送信し、送信した前記クライアント用ソフトウェア認証用番号を前記サーバ装置から返送されると前記ソフトウェアの実行を継続し、アクセス不許可を示すデータを返送されると前記ソフトウェアの実行を中止し終了する手順とを前記クライアント装置に実行させる前記第２のプログラムと、
前記クライアント装置から初回用ソフトウェア認証用番号を受け取ると、保有するカウンタの値をクライアント用ソフトウェア認証用番号として、保有する登録位置ポインタの値が指す前記レコードの１つに登録し、登録した前記クライアント用ソフトウェア認証用番号を前記クライアント装置に返送し、前記カウンタの値をカウントアップし、前記登録位置ポインタの値を更新する手順と、前記クライアント装置から前記クライアント用ソフトウェア認証用番号を受け取ると、受け取った前記クライアント用ソフトウェア認証用番号が、前記レコードに存在するかどうか検索し、存在すれば、受け取った前記クライアント用ソフトウェア認証用番号をそのままアクセス許可を示すデータとして、前記クライアント装置に返送し、存在しなければ、受け取った前記クライアント用ソフトウェア認証用番号と前記レコードに存在する前記クライアント用ソフトウェア認証用番号の最大のものとを比較し、受け取った前記クライアント用ソフトウェア認証用番号の方が小さい場合には、受け取った前記クライアント用ソフトウェア認証用番号を、前記登録位置ポインタが指す前記レコードに登録し、受け取った前記クライアント用ソフトウェア認証用番号ソフトウェア認証用番号をアクセス許可を示すデータとして前記クライアント装置に返送し、前記登録位置ポインタの値を更新し、受け取った前記クライアント用ソフトウェア認証用番号の方が大きい場合には、ライセンス数を超えているとして、アクセス不許可を示すデータを前記クライアント装置に返送する手順とを前記サーバ装置に実行させる前記第１のプログラムと、
を記録する。
【００１９】
【発明の実施の形態】
本発明の第１の実施の形態について図面を参照して詳細に説明する。
図１は、本発明の第１の実施の形態を示すブロック図である。
図１を参照すると、本発明の第１の実施の形態は、サーバマシン２０と、クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・と、これらを接続するネットワーク１０（たとえば、ローカルエリアネットワーク）とから構成される。
【００２０】
各クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・は、サーバアクセス部３０１と、ソフトウェア実行継続部３０２と備える。また、サーバマシン２０は、認証用番号管理部２０２を内蔵するライセンス監視部２０１を備える。
【００２１】
クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・のサーバアクセス部３０１は、インストールされたソフトウェアの起動後、サーバマシン２０への初回アクセス時にソフトウェアの使用権の認証用番号を要求すると共に、サーバマシン２０から発行された認証用番号を登録し、ソフトウェアの終了時まで、サーバマシン２０へのアクセス時に認証用番号を利用する。
【００２２】
クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・のソフトウェア実行継続部３０２は、サーバマシン２０からアクセス可能である旨のデータを受信すればソフトウェアの実行を継続する。
【００２３】
サーバマシン２０のライセンス監視部２０１は、クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・から受信した認証用番号が、認証用番号管理部２０２（データベース）内に登録されているものかどうか、あるいは、ライセンス数を超えない範囲で新たに登録できるものかを監視し、更に、アクセス許可を示すデータとしての認証用番号、または、アクセス不許可を示すデータを、クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・に返送する。
【００２４】
図２は、認証用番号管理部２０２の詳細を示すブロック図である。
図２を参照すると、認証用番号管理部２０２は、ソフトウェア認証用番号が登録されるレコード０、レコード１、および、これらを指し示す値（それぞれ、「０」、「１」）を保持する登録位置ポインタ２０３を含んでいる。登録位置ポインタ２０３の値は、ソフトウェア認証用番号が登録されると更新される。レコードの数は１以上、いくつであってもかまわない。
【００２５】
次に、本発明の第１の実施の形態の動作について図面を参照して説明する。
図３は、本発明の第１の実施の形態の動作を示す説明図である。
【００２６】
ソフトウェアの使用権において、クライアントマシン３０、クライアントマシン３１、クライアントマシン３２からサーバマシン２０に対しての同時アクセスライセンス数が“２”である場合に、３つのクライアントマシン３０、クライアントマシン３１、クライアントマシン３２からアクセスした時の動作について説明する。
【００２７】
図３（ａ）〜図３（ｆ）において、サーバマシン２０はソフトウェア認証用番号をライセンス数の２つまで登録することができる認証用番号管理部２０２をライセンス監視部２０１内に備え、初期の状態において認証用番号管理部２０２内の２つのレコードは空であり、登録位置ポインタ２０３の値は、「０」であり、レコード０を指している。
【００２８】
アクセスとは、ソフトウェアが必要とするデータをサーバマシン２０に取りに行くなどをするためにサーバマシン２０に接続する動作のことである。また、初回アクセスとは、ソフトウェアを起動して１回目に、サーバマシン２０へ接続する動作のことであり、２回目以降のアクセスとは起動したソフトウェアを終了するまでの間に、再度、サーバマシン２０へ接続する動作のことである。
【００２９】
図３（ａ）、図３（ｂ）、および、図３（ｃ）は、３つの各クライアントマシン３０、クライアントマシン３１、クライアントマシン３２がソフトウェア起動後、サーバマシン２０への初回アクセス時の動作を示す。クライアントマシン３０、クライアントマシン３１、クライアントマシン３２からサーバマシン２０への初回アクセスはサーバマシン２０により必ず許可される。
【００３０】
図３（ａ）において、クライアントマシン３０のサーバアクセス部３０１は、インストールしたソフトウェアの起動後、サーバマシン２０への初回アクセス時にソフトウェアの使用権の要求として、ソフトウェア認証用番号“０”（初回用ソフトウェア認証用番号）をサーバマシン２０へ送信する。この要求、すなわちソフトウェア認証用番号“０”を受け取ったサーバマシン２０のライセンス監視部２０１は、ソフトウェア認証用番号を管理する認証用番号管理部２０２が空であるので、ソフトウェア認証用番号“１”（クライアント用ソフトウェア認証用番号）を登録位置ポインタ２０３の値「０」で指定されるレコード０に登録すると共に、クライアントマシン３０へソフトウェア認証用番号“１”を返送する。また、登録位置ポインタ２０３の値は、更新され、「１」となる。
【００３１】
クライアントマシン３０は、サーバマシン２０より受け取ったソフトウェア認証用番号“１”をサーバアクセス部３０１に登録する。
【００３２】
次に、図３（ｂ）において、同様にクライアントマシン３１もサーバマシン２０へ初回アクセス時にソフトウェア認証用番号“０”を送信する。この要求を受け取ったサーバマシン２０のライセンス監視部２０１は、現在、認証用番号管理部２０２のレコード０に存在する“１”より１つ大きなソフトウェア認証用番号“２”を認証用番号管理部２０２の空いているレコード１に登録すると共に、クライアントマシン３１へソフトウェア認証用番号“２”を返送する。また、登録位置ポインタ２０３の値は、更新され、「０」となる。
【００３３】
クライアントマシン３１は、サーバマシン２０より受け取ったソフトウェア認証用番号“２”をサーバアクセス部３０１に登録する。
【００３４】
次に、図３（ｃ）において、同様にクライアントマシン３２もサーバマシン２０へ初回アクセス時にソフトウェア認証用番号“０”を送信する。
【００３５】
この要求を受け取ったサーバマシン２０のライセンス監視部２０１は、現在、認証用番号管理部２０２のレコードに空きがないため、認証用番号管理部２０２に存在するソフトウェア認証用番号の最大のものより１つ大きなソフトウェア認証用番号を、現在登録位置ポインタ２０３の値「０」で指定されるレコード０に上書き登録する。すなわちソフトウェア認証用番号“３”をソフトウェア認証用番号“１”が登録されているレコード０に上書き登録する。さらに、登録したソフトウェア認証用番号“３”をクライアントマシン３２へ返送する。また、登録位置ポインタ２０３の値は、更新され、「１」となる。
【００３６】
クライアントマシン３２は、サーバマシン２０より受け取ったソフトウェア認証用番号“３”をサーバアクセス部３０１に登録する。
【００３７】
図３（ｄ）、図３（ｅ）は、クライアントマシン３０、および、クライアントマシン３１が、ソフトウェア起動後ソフトウェア終了時までの２回目のサーバマシン２０へのアクセスにおける動作を示す図である。この場合、サーバマシン２０は、サーバマシン２０への２回目以降アクセス数がソフトウェア使用権のライセンス数“２”を超えないためアクセスを許可する。
【００３８】
次に、図３（ｄ）において、クライアントマシン３１は、図３（ｂ）の動作で登録したソフトウェア認証用番号“２”をサーバマシン２０へ送信する。このソフトウェア認証用番号“２”を受け取ったサーバマシン２０のライセンス監視部２０１は、ソフトウェア認証用番号“２”が、認証用番号管理部２０２に存在するかどうか検索する。ソフトウェア認証用番号“２”が認証用番号管理部２０２のレコード１に存在しているので、そのままソフトウェア認証用番号“２”をクライアントマシン３１へ返送する。
【００３９】
次に、図３（ｅ）において、クライアントマシン３０は、図３（ａ）の動作で登録したソフトウェア認証用番号“１”をサーバマシン２０へ送信する。このソフトウェア認証用番号“１”を受け取ったサーバマシン２０のライセンス監視部２０１は、このソフトウェア認証用番号“１”が認証用番号管理部２０２に存在するかどうか検索する。
【００４０】
ソフトウェア認証用番号“１”が認証用番号管理部２０２に存在しないため、ライセンス監視部２０１は、認証用番号管理部２０２に存在するソフトウェア認証用番号の最大のもの“３”とこのソフトウェア認証用番号“１”とを比較する。ソフトウェア認証用番号“１”の方が小さいため、現在登録位置ポインタ２０３の値「１」で指定されるレコード１に上書き登録する。すなわち、ソフトウェア認証用番号“１”をソフトウェア認証用番号“２”が登録されているレコード１に上書き登録し、クライアントマシン３０へソフトウェア認証用番号“１”を返送する。また、登録位置ポインタ２０３の値は、更新され、「０」となる。
【００４１】
次に、図３（ｆ）において、クライアントマシン３１は同様にソフトウェア認証用番号“２”をサーバマシン２０へ送信する（３回目）。このソフトウェア認証用番号“２”を受け取ったサーバマシン２０のライセンス監視部２０１は、ソフトウェア認証用番号“２”が、認証用番号管理部２０２に存在するかどうか検索する。
【００４２】
ソフトウェア認証用番号“２”が認証用番号管理部２０２に存在しないため、ライセンス監視部２０１は、認証用番号管理部２０２に存在するソフトウェア認証用番号の最大のもの“３”とこのソフトウェア認証用番号“２”とを比較する。ソフトウェア認証用番号“２”の方が小さいため、現在登録位置ポインタ２０３の値「０」で指定されるレコード０に上書き登録する。すなわち、ソフトウェア認証用番号“２”をソフトウェア認証用番号“３”が登録されているレコード０に上書き登録し、クライアントマシン３１へソフトウェア認証用番号“２”を返送する。また、登録位置ポインタ２０３の値は、更新され、「１」となる。
【００４３】
図３（ｇ）は、クライアントマシン３２が、ソフトウェア起動後ソフトウェア終了時までの２回目のサーバマシン２０へのアクセスにおける動作を示す図である。この場合、サーバマシン２０へのアクセス数がソフトウェア使用権のライセンス数“２”を超えてしまうため、アクセスが却下される。
【００４４】
図３（ｇ）において、クライアントマシン３２は、図３（ｃ）の動作で登録したソフトウェア認証用番号“３”をサーバマシン２０へ送信する。このソフトウェア認証用番号“３”を受け取ったサーバマシン２０のライセンス監視部２０１は、ソフトウェア認証用番号“３”が、認証用番号管理部２０２に存在するかどうか検索する。ソフトウェア認証用番号“３”が、認証用番号管理部２０２に存在しないため、ライセンス監視部２０１は、認証用番号管理部２０２に存在するソフトウェア認証用番号の最大のもの“２”とこのソフトウェア認証用番号“３”とを比較する。ソフトウェア認証用番号“３”の方が大きいため、ライセンス数を超えているとして、「アクセス不許可」を示すデータをクライアントマシン３２へ返送する。
【００４５】
サーバマシン２０から「アクセス不許可」を示すデータを受け取ったクライアントマシン３０は、ソフトウェアの実行を中止し、ソフトウェアを終了する。
【００４６】
以上の動作を行うために、サーバマシン２０のライセンス監視部２０１は、内部に１つのカウンタを持っており、各クライアントマシン３０、各クライアントマシン３１、各クライアントマシン３２、・・・から初回アクセスがあるごとにカウンタの値をソフトウェア認証用番号として返送する。また、ライセンス監視部２０１は、ソフトウェア認証用番号の返送ごとに、カウンタの値をカウントアップする。また、カウンタの値がオーバーフローする前に、カウンタの値は、「１」に初期化される。
【００４７】
たとえば、クライアントマシン３２が「アクセス不許可」を示すデータを受け取った後、ソフトウェアを再起動し、サーバマシン２０へソフトウェア認証用番号“０”を送信すると、サーバマシン２０は、クライアントマシン３０へソフトウェア認証用番号“４”を返送する。
【００４８】
以上の図３（ａ）〜図３（ｆ）において、矢印で示す「登録位置」は、サーバマシン２０がクライアントマシン３０、クライアントマシン３１、クライアントマシン３２にソフトウェア認証用番号を返送後で、かつ、登録位置更新前の登録位置ポインタ２０３の値を示す。
【００４９】
次に、特に、クライアントマシン３０の動作について、図面を参照してさらに詳細に説明する。
【００５０】
クライアントマシン３１、クライアントマシン３２、・・・の動作は、同一であるので、クライアントマシン３０に代表させて説明する。
【００５１】
図４は、クライアントマシン３０のソフトウェア起動後、サーバマシン２０への初回アクセスの動作を示すフロチャートである。
【００５２】
図４を参照すると、クライアントマシン３０のサーバアクセス部３０１は、インストールしたソフトウェアの起動後、サーバマシン２０への初回アクセス時に、ソフトウェアの使用を可能とするための要求であるソフトウェア認証用番号“０”をサーバマシン２０へ送信する（図４ステップＡ１）。
【００５３】
次に、サーバマシン２０のライセンス監視部２０１は、カウンタ値「１」を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコード０に、ソフトウェア認証用番号“１”として登録する（図４ステップＡ２）。
【００５４】
次に、ライセンス監視部２０１は、登録したソフトウェア認証用番号“１”をクライアントマシン３０に返送する（図４ステップＡ３）。
【００５５】
次に、ライセンス監視部２０１は、カウンタ値をカウントアップし、「２」とする（図４ステップＡ４）。
【００５６】
次に、登録位置ポインタ２０３が更新され、レコード１を指す値となる（図４ステップＡ５）。
【００５７】
次に、クライアントマシン３０は、サーバマシン２０から受け取ったソフトウェア認証用番号“１”をサーバアクセス部３０１に登録する（図４ステップＡ６）。
【００５８】
次に、特に、クライアントマシン３２、および、サーバマシン２０の２回目以降アクセスについて、さらに詳細に説明する。
【００５９】
図５は、クライアントマシン３２、サーバマシン２０の２回目以降アクセスの動作を示すフロチャートである。
【００６０】
図５を参照すると、クライアントマシン３２のサーバアクセス部３０１は、２回目以降のサーバマシン２０へのアクセス時には、サーバマシン２０より受け取り登録したソフトウェア認証用番号、すなわち“０”以外のソフトウェア認証用番号（たとえば“３”）を、ソフトウェアの終了時までサーバマシン２０へ送信する（図５ステップＢ１）。
【００６１】
このソフトウェア認証用番号“３”を受け取ったサーバマシン２０のライセンス監視部２０１は、このソフトウェア認証用番号“３”が、認証用番号管理部２０２内に存在するか検索する（図５ステップＢ２）。
【００６２】
受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在すれば（図５ステップＢ２／ＹＥＳ）、受け取ったソフトウェア認証用番号“３”をそのままアクセスを許可するデータとして、クライアントマシン３２に返送する（図５ステップＢ３）。
【００６３】
受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在しなければ（図５ステップＢ２／ＮＯ）、受け取ったソフトウェア認証用番号“３”と認証用番号管理部２０２内に存在するソフトウェア認証用番号の最大のものとを比較する（図５ステップＢ４）。
【００６４】
受け取ったソフトウェア認証用番号“３”の方が小さい場合には（図５ステップＢ４／ＮＯ）、受け取ったソフトウェア認証用番号“３”を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコードに登録する（図５ステップＢ５）。
【００６５】
さらに、アクセスを許可するデータとして、クライアントマシン３２に登録したソフトウェア認証用番号“３”を返送し、登録位置ポインタ２０３の値を更新する（図５ステップＢ６）。
【００６６】
受け取ったソフトウェア認証用番号の方が大きい場合には（図５ステップＢ４／ＹＥＳ）、ライセンス数を超えているとして、「アクセス不許可」を示すデータをクライアントマシン３２に返送する（図５ステップＢ７）。
【００６７】
クライアントマシン３２のソフトウェア実行継続部３０２は、サーバマシン２０より受け取ったデータが、アクセスを許可するデータ（ソフトウェア認証用番号“３”）であればソフトウェアの実行を継続し（図５ステップＢ８）、「アクセス不許可」を示すデータであれば実行を中止し、終了する（図５ステップＢ９）。
【００６８】
上述したように、サーバマシン２０はソフトウェアの認めるライセンス数を記憶しておくことにより、クライアントマシン３０、クライアントマシン３１、クライアントマシン３２、・・・で動作するソフトウェアの同時使用数を管理することができる。
【００６９】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
本発明の第２の実施の形態は、クライアントマシン３０が、インストールしたソフトウェアの起動後、サーバマシン２０への初回アクセス時に、ソフトウェアの使用を可能とするための要求であるソフトウェア認証用番号“０”をサーバマシン２０へ送信する第１のステップ（図４ステップＡ１）と、サーバマシン２０が、カウンタ値「１」を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコード０に、ソフトウェア認証用番号“１”として登録する第２のステップ（図４ステップＡ２）と、登録したソフトウェア認証用番号“１”をクライアントマシン３０に返送する第３のステップ（図４ステップＡ３）と、カウンタ値をカウントアップし、「２」とする第４のステップ（図４ステップＡ４）と、登録位置ポインタ２０３を更新し、レコード１を指す値とする第５のステップ（図４ステップＡ５）と、クライアントマシン３０が、サーバマシン２０から受け取ったソフトウェア認証用番号“１”をサーバアクセス部３０１に登録する第６のステップ（図４ステップＡ６）と、クライアントマシン３２が、２回目以降のサーバマシン２０へのアクセス時には、サーバマシン２０より受け取り登録したソフトウェア認証用番号、すなわち“０”以外のソフトウェア認証用番号（たとえば“３”）を、ソフトウェアの終了時までサーバマシン２０へ送信する第７のステップ（図５ステップＢ１）と、このソフトウェア認証用番号“３”を受け取ったサーバマシン２０のライセンス監視部２０１が、このソフトウェア認証用番号“３”が、認証用番号管理部２０２内に存在するか検索する第８のステップ（図５ステップＢ２）と、受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在すれば（図５ステップＢ２／ＹＥＳ）、受け取ったソフトウェア認証用番号“３”をそのままアクセスを許可するデータとして、クライアントマシン３２に返送する第９のステップ（図５ステップＢ３）と、受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在しなければ（図５ステップＢ２／ＮＯ）、受け取ったソフトウェア認証用番号“３”と認証用番号管理部２０２内に存在するソフトウェア認証用番号の最大のものとを比較する第１０のステップ（図５ステップＢ４）と、受け取ったソフトウェア認証用番号“３”の方が小さい場合には（図５ステップＢ４／ＮＯ）、受け取ったソフトウェア認証用番号“３”を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコードに登録する第１１のステップ（図５ステップＢ５）と、さらに、アクセスを許可するデータとして、クライアントマシン３２に登録したソフトウェア認証用番号“３”を返送し、登録位置ポインタ２０３の値を更新する第１２のステップ（図５ステップＢ６）と、受け取ったソフトウェア認証用番号の方が大きい場合には（図５ステップＢ４／ＹＥＳ）、ライセンス数を超えているとして、「アクセス不許可」を示すデータをクライアントマシン３２返送する第１３のステップ（図５ステップＢ７）と、クライアントマシン３２のソフトウェア実行継続部３０２が、サーバマシン２０より受け取ったデータが、アクセスを許可するデータ（ソフトウェア認証用番号“３”）であればソフトウェアの実行を継続する第１４のステップ（図５ステップＢ８）と、「アクセス不許可」を示すデータであれば実行を中止し、終了する第１５のステップ（図５ステップＢ９）とを含む方法である。
【００７０】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
図６は、本発明の第３の実施の形態を示すブロック図である。
図６を参照すると、本発明の第３の実施の形態は、本発明の第２の実施の形態の各ステップをコンピュータ４０（たとえば、サーバマシン２０、クライアント３０）に実行させるプログラムを記録する記録媒体４２である。このプログラムは、記録媒体４２からコンピュータ４０にロードされ実行される。
【００７１】
詳細には、本発明の第３の実施の形態は、クライアントマシン３０が、インストールしたソフトウェアの起動後、サーバマシン２０への初回アクセス時に、ソフトウェアの使用を可能とするための要求であるソフトウェア認証用番号“０”をサーバマシン２０へ送信する第１のステップ（図４ステップＡ１）と、サーバマシン２０が、カウンタ値「１」を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコード０に、ソフトウェア認証用番号“１”として登録する第２のステップ（図４ステップＡ２）と、登録したソフトウェア認証用番号“１”をクライアントマシン３０に返送する第３のステップ（図４ステップＡ３）と、カウンタ値をカウントアップし、「２」とする第４のステップ（図４ステップＡ４）と、登録位置ポインタ２０３を更新し、レコード１を指す値とする第５のステップ（図４ステップＡ５）と、クライアントマシン３０が、サーバマシン２０から受け取ったソフトウェア認証用番号“１”をサーバアクセス部３０１に登録する第６のステップ（図４ステップＡ６）と、クライアントマシン３２が、２回目以降のサーバマシン２０へのアクセス時には、サーバマシン２０より受け取り登録したソフトウェア認証用番号、すなわち“０”以外のソフトウェア認証用番号（たとえば“３”）を、ソフトウェアの終了時までサーバマシン２０へ送信する第７のステップ（図５ステップＢ１）と、このソフトウェア認証用番号“３”を受け取ったサーバマシン２０のライセンス監視部２０１が、このソフトウェア認証用番号“３”が、認証用番号管理部２０２内に存在するか検索する第８のステップ（図５ステップＢ２）と、受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在すれば（図５ステップＢ２／ＹＥＳ）、受け取ったソフトウェア認証用番号“３”をそのままアクセスを許可するデータとして、クライアントマシン３２に返送する第９のステップ（図５ステップＢ３）と、受け取ったソフトウェア認証用番号“３”が認証用番号管理部２０２内に存在しなければ（図５ステップＢ２／ＮＯ）、受け取ったソフトウェア認証用番号“３”と認証用番号管理部２０２内に存在するソフトウェア認証用番号の最大のものとを比較する第１０のステップ（図５ステップＢ４）と、受け取ったソフトウェア認証用番号“３”の方が小さい場合には（図５ステップＢ４／ＮＯ）、受け取ったソフトウェア認証用番号“３”を、認証用番号管理部２０２の登録位置ポインタ２０３が指すレコードに登録する第１１のステップ（図５ステップＢ５）と、さらに、アクセスを許可するデータとして、クライアントマシン３２に登録したソフトウェア認証用番号“３”を返送し、登録位置ポインタ２０３の値を更新する第１２のステップ（図５ステップＢ６）と、受け取ったソフトウェア認証用番号の方が大きい場合には（図５ステップＢ４／ＹＥＳ）、ライセンス数を超えているとして、「アクセス不許可」を示すデータをクライアントマシン３２返送する第１３のステップ（図５ステップＢ７）と、クライアントマシン３２のソフトウェア実行継続部３０２が、サーバマシン２０より受け取ったデータが、アクセスを許可するデータ（ソフトウェア認証用番号“３”）であればソフトウェアの実行を継続する第１４のステップ（図５ステップＢ８）と、「アクセス不許可」を示すデータであれば実行を中止し、終了する第１５のステップ（図５ステップＢ９）とをコンピュータ４０に実行させるプログラムを記録する記録媒体４２である。
【００７２】
【発明の効果】
本発明の第１の効果は、クライアントマシン上で動作するクライアントサーバソフトウェアの同時使用数のリアルタイムな監視を可能にすると共に、ソフトウェアをインストールしたクライアント装置の変更に伴うソフトウェア認証用番号の返却と新たな要求の作業を不要にできることである。
【００７３】
第２の効果は、さらに、サーバマシンの変更に伴うソフトウェア認証用番号の再登録を不要にできることである。
【００７４】
その理由は、クライアントマシンからサーバマシンへのアクセス時にのみソフトウェア認証用番号の登録および発行を行うため、サーバマシンはソフトウェアの認めるライセンス数のみを認知しておくだけで、クライアントマシン上で動作するソフトウェアの同時使用数を監視することができるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態を示すブロック図である。
【図２】図１の認証用番号管理部を示すブロック図である。
【図３】本発明の第１の実施の形態の動作を示す説明図である。
【図４】本発明の第１の実施の形態の動作を示すフロチャートである。
【図５】本発明の第１の実施の形態の動作を示すフロチャートである。
【図６】本発明の第３の実施の形態の動作を示すブロック図である。
【符号の説明】
１０    ネットワーク
２０    サーバマシン
３０    クライアントマシン
３１    クライアントマシン
３２    クライアントマシン
４０    コンピュータ
４２    記録媒体
２０１    ライセンス監視部
２０２    認証用番号管理部
２０３    登録位置ポインタ
３０１    サーバアクセス部
３０２    ソフトウェア実行継続部
【図１】
0003792488.tif 000002
【図２】
0003792488.tif 000003
【図３】
0003792488.tif 000004
【図４】
0003792488.tif 000005
【図５】
0003792488.tif 000006
【図６】
0003792488.tif 000007