(57)【要約】【課題】  分散プロセス環境に好適なソフトウェアライセンス管理方式を提供する。【解決手段】  ローカルコンピュータのユーザーは、それぞれのライセンス管理ソフトウェアを使用して、ローカルコンピュータがアプリケーションプログラムのソフトウェア機能を実行することが許可されていることを実証するライセンス証明と共にその要求を送信することにより、リモートコンピュータが該ソフトウェア機能を実行することを要求する。そのソースを検証し、それがソフトウェア機能を実行する権利を有することを確認し、そして当該要求が適時になされたことを検証すると、リモートコンピュータ上のライセンス管理ソフトウェアは、要求どおり、当該コンピュータ上のユーザーが当該ソフトウェア機能を実行することを許可する。【選択図】  図５
2008547088.tif 000002
【特許請求の範囲】
【請求項１】
分散プロセスにおいてソフトウェアライセンスを管理する方法であって、アプリケーションプログラムの複数のソフトウェア機能を実行するためのライセンスをチェックアウトする工程と、前記複数のソフトウェア機能の一つのライセンス証明を生成する工程と、前記複数のソフトウェア機能の前記一つを実行する要求と共に前記ライセンス証明を与える工程と、を含む方法。
【請求項２】
前記ライセンスの前記チェックアウト工程は、ライセンスマネジャーに、前記アプリケーションプログラムの実行を許可することを要求する工程を含む、請求項１に記載の方法。
【請求項３】
前記ライセンスの前記チェックアウト工程は、前記アプリケーションプログラムの実行要求の許諾により、前記アプリケーションプログラムを実行する同時ユーザーの数が許可された数を超えない場合に、前記アプリケーションプログラムを実行することが許される工程を含む、請求項２に記載の方法。
【請求項４】
前記複数のソフトウェア機能は前記アプリケーションプログラムの特徴を表す、請求項１に記載の方法。
【請求項５】
前記複数のソフトウェア機能は前記アプリケーションプログラムのコンポーネントを表す、請求項１に記載の方法。
【請求項６】
前記ライセンス証明は、前記複数のソフトウェア機能を実行するための権利を指示する認証署名を含む、請求項１に記載の方法。
【請求項７】
前記認証署名は、前記アプリケーションプログラムに関連付けられ前記アプリケーションプログラムのベンダーにより与えられるライセンス証明書からコピーされる、請求項６に記載の方法。
【請求項８】
前記ライセンス証明は、前記ライセンスがいつチェックアウトされたかを指示するタイムスタンプを含む、請求項１に記載の方法。
【請求項９】
前記ライセンス証明を与える工程は、前記ライセンス証明を暗号化して暗号化ライセンス証明を生成する工程と、前記複数のソフトウェア機能の前記一つを実行する要求と共に前記暗号化ライセンス証明を与える工程とを含む、請求項１に記載の方法。
【請求項１０】
前記ライセンス証明は、暗号化ライセンス証明を生成するための共有秘密鍵を使用して暗号化され、実質的に前記共有秘密鍵を所有するエンティティのみが前記暗号化ライセンス証明を解読できるようにする、請求項９に記載の方法。
【請求項１１】
前記ライセンス証明は、暗号化ライセンス証明を生成するための送信元の秘密鍵を使用して暗号化され、前記送信元の公開鍵を使用する前記暗号化ライセンス証明の解読は、実質的に前記送信元のみが前記暗号化ライセンス証明を生成できたということを検証する、請求項９に記載の方法。
【請求項１２】
前記ライセンス証明はデータオブジェクトとして生成される、請求項１に記載の方法。
【請求項１３】
前記複数のソフトウェア機能の前記一つを実行する要求と共に前記ライセンス証明を受信する工程と、前記ライセンス証明のソースと認証とを検証する工程と、前記ライセンス証明の権限下で前記複数のソフトウェア機能の前記一つを実行する工程と、をさらに含む請求項１に記載の方法。
【請求項１４】
前記ライセンス証明は暗号化ライセンス証明として受信され、
前記ライセンス証明の前記ソースの検証は、前記暗号化ライセンス証明の解読が成功するとプロバイダーが前記ライセンス証明の前記ソースとして検証されるように、前記暗号化ライセンス証明の前記プロバイダーとのみ共有される秘密鍵により前記ライセンス証明を解読する工程を含む、請求項１３に記載の方法。
【請求項１５】
前記ライセンス証明は、前記暗号化ライセンス証明のプロバイダーの秘密鍵により暗号化された暗号化ライセンス証明として受信され、
前記ライセンス証明の前記ソースの前記検証は、前記暗号化ライセンス証明の解読に成功すると前記プロバイダーが前記ライセンス証明の前記ソースとして検証されるように、前記暗号化ライセンス証明の前記プロバイダーの公開鍵により前記ライセンス証明を解読する工程を含む、請求項１３に記載の方法。
【請求項１６】
前記ライセンス証明は、前記複数のソフトウェア機能を実行するための権利を指示する、前記アプリケーションプログラムのベンダーにより与えられるライセンス証明書からコピーされた認証署名を含み、前記ライセンス証明の前記認証は、前記認証署名を本物として検証する工程を含む、請求項１３に記載の方法。
【請求項１７】
ソフトウェア機能を実行するためのライセンスの証明を与える方法であって、ソフトウェア機能の実行を許可するライセンスからの情報を含むライセンス証明を生成する工程と、前記ソフトウェア機能を実行する要求と共に前記ライセンス証明を与える工程とを含む方法。
【請求項１８】
前記ライセンス証明は、コンピュータプログラムのどのソフトウェア機能がその実行を許可されるかを指示する前記ライセンスからの情報を含む、請求項１７に記載の方法。
【請求項１９】
前記ソフトウェア機能は前記コンピュータプログラムの特徴を指示する、請求項１８に記載の方法。
【請求項２０】
前記ソフトウェア機能は前記コンピュータプログラムのコンポーネントを指示する、請求項１８に記載の方法。
【請求項２１】
前記ライセンス証明は、前記ソフトウェア機能を実行する権利を指示する認証署名を含む、請求項１７に記載の方法。
【請求項２２】
前記ライセンス証明は、前記ソフトウェア機能を実行する権利を指示する前記ライセンスからコピーされた認証署名を含む、請求項１７に記載の方法。
【請求項２３】
前記ライセンス証明は、ライセンス管理エージェントがいつ前記ライセンスを起動したかを指示するタイムスタンプを含む、請求項１７に記載の方法。
【請求項２４】
前記ライセンス証明を暗号化して暗号化ライセンス証明を生成する工程と、前記ソフトウェア機能を実行する要求と共に前記暗号化ライセンス証明を与える工程とをさらに含む、請求項１７に記載の方法。
【請求項２５】
前記ライセンス証明は暗号化ライセンス証明を生成するための共有秘密鍵を使用して暗号化され、その結果実質的に前記共有秘密鍵を所有するエンティティのみが前記暗号化ライセンス証明を解読できる、請求項２４に記載の方法。
【請求項２６】
前記ライセンス証明は、暗号化ライセンス証明を生成するための送信元の秘密鍵を使用して暗号化され、前記送信元の公開鍵を使用する前記暗号化ライセンス証明の解読は、実質的に前記送信元のみが前記暗号化ライセンス証明を生成できたということを検証する、請求項２４に記載の方法。
【請求項２７】
前記ライセンス証明はデータオブジェクトとして生成される、請求項１７に記載の方法。
【請求項２８】
ソフトウェア機能を実行するためのライセンスの証明を与える装置であって、ソフトウェア機能の実行を許可するライセンスからの情報を含むライセンス証明を生成し、前記ソフトウェア機能を実行する要求と共に前記ライセンス証明を与えるように構成されたプロセッサを含む、装置。
【請求項２９】
前記ライセンス証明は、コンピュータプログラムのどのソフトウェア機能がその実行を許可されるかを指示する前記ライセンスからの情報を含む、請求項２８に記載の装置。
【請求項３０】
前記ソフトウェア機能は前記コンピュータプログラムの特徴を指示する、請求項２９に記載の装置。
【請求項３１】
前記ソフトウェア機能は前記コンピュータプログラムのコンポーネントを指示する、請求項２９に記載の装置。
【請求項３２】
前記ライセンス証明は、前記ソフトウェア機能を実行する権利を指示する認証署名を含む、請求項２８に記載の装置。
【請求項３３】
前記ライセンス証明は、前記ソフトウェア機能を実行する権利を指示する前記ライセンスからコピーされた認証署名を含む、請求項２８に記載の装置。
【請求項３４】
前記ライセンス証明は、ライセンス管理エージェントがいつ前記ライセンスを起動したかを指示するタイムスタンプを含む、請求項２８に記載の装置。
【請求項３５】
前記プロセッサは、暗号化ライセンス証明を生成するために前記ライセンス証明を暗号化し、前記ソフトウェア機能を実行する要求と共に前記暗号化ライセンス証明を与えるようにさらに構成される、請求項２８に記載の装置。
【請求項３６】
前記ライセンス証明は共有秘密鍵を使用して暗号化され、その結果実質的に前記共有秘密鍵を所有するエンティティのみが前記暗号化ライセンス証明を解読できる、請求項３５に記載の装置。
【請求項３７】
前記ライセンス証明は送信元の秘密鍵を使用して暗号化され、前記送信元の公開鍵を使用する暗号化ライセンス証明の解読は、実質的に前記送信元のみが前記暗号化ライセンス証明を生成できたということを検証する、請求項３５に記載の装置。
【請求項３８】
前記プロセッサは、データオブジェクトとして前記ライセンス証明を生成するようにさらに構成される、請求項２８に記載の装置。
【請求項３９】
リモートエンティティがソフトウェア機能を実行するためのライセンスを有するということを確認する方法であって、リモートエンティティからソフトウェア機能を実行する要求と共にライセンス証明を受信する工程と、前記ライセンス証明が前記リモートエンティティから来たことを検証して前記ソフトウェア機能を実行するための許可を指示する工程とを含む、方法。
【請求項４０】
前記ライセンス証明が前記リモートエンティティから来たことを検証し、前記ソフトウェア機能を実行するための許可を指示した後に前記要求に応じて前記ソフトウェア機能を実行する工程をさらに含む、請求項３９に記載の方法。
【請求項４１】
前記ソフトウェア機能の実行から生じた情報を前記リモートエンティティへ送信する工程をさらに含む、請求項４０に記載の方法。
【請求項４２】
前記ライセンス証明は、コンピュータプログラムのどの機能の実行が許可されるかについての情報を含む、請求項３９に記載の方法。
【請求項４３】
前記ソフトウェア機能を実行するための許可の検証は、前記ソフトウェア機能が、その実行を許可された前記コンピュータの前記機能の一つであることを検証する工程を含む、請求項４２に記載の方法。
【請求項４４】
前記ライセンス証明は、前記ソフトウェア機能を実行するための前記許可を確認する認証署名を含む、請求項３９に記載の方法。
【請求項４５】
前記ソフトウェア機能を実行するための許可を前記ライセンス証明が指示するという前記検証は、前記認証署名が前記ソフトウェア機能のベンダーにより発行されたということを検証する工程を含む、請求項４４に記載の方法。
【請求項４６】
ライセンス管理エージェントは、前記ソフトウェア機能の前記実行を許可するチェックアウトタイム時にライセンスを起動する、請求項３９に記載の方法。
【請求項４７】
前記チェックアウトタイムは、選択されたタイムゾーンによる日時により指示される、請求項４６に記載の方法。
【請求項４８】
前記ライセンス証明が前記ソフトウェア機能を実行するための前記許可を指示するという前記検証は、現在時刻と前記チェックアウト時間との間の時間間隔が閾値以下であるということを検証する工程を含む、請求項４７に記載の方法。
【請求項４９】
前記時間間隔が前記閾値以上である場合、エラー通知が前記リモートエンティティに返送される、請求項４８に記載の方法。
【請求項５０】
前記ライセンス証明が暗号化ライセンス証明として受信される請求項３９に記載の方法であって、
前記方法は、前記暗号化ライセンス証明が共有秘密鍵により暗号化されたということを検証し、したがってまた前記リモートエンティティは実質的に前記共有秘密鍵を知る他の唯一のエンティティであるので前記暗号化ライセンス証明が前記リモートエンティティにより送信されたということを検証するために、前記共有秘密鍵を使用して前記暗号化ライセンス証明を解読する工程をさらに含む、方法。
【請求項５１】
前記ライセンス証明が暗号化ライセンス証明として受信される請求項３９に記載の方法であって、
前記方法は、前記暗号化ライセンス証明が前記リモートエンティティの秘密鍵により暗号化されたということを検証し、したがってまた前記リモートエンティティは実質的に前記秘密鍵を知る唯一のエンティティであるので前記暗号化ライセンス証明が前記リモートエンティティにより送信されたということを検証するために、前記リモートエンティティに関連付けられた公開鍵を使用して前記暗号化ライセンス証明を解読する工程を、さらに含む方法。
【請求項５２】
ソフトウェア機能を実行するためのライセンスをリモートエンティティが有することを確認する装置であって、リモートエンティティからソフトウェア機能を実行する要求と共にライセンス証明を受信し、前記ライセンス証明が前記リモートエンティティから来たことを検証し、前記ソフトウェア機能を実行するための許可を指示するように構成されたプロセッサを含む、装置。
【請求項５３】
前記プロセッサは、前記ライセンス証明が前記リモートエンティティから来たことを検証し、前記ソフトウェア機能を実行するための許可を指示した後に、前記要求に応じて前記ソフトウェア機能を実行するようにさらに構成される、請求項５２に記載の装置。
【請求項５４】
前記プロセッサは、前記ソフトウェア機能を実行することにより生じる情報を前記リモートエンティティへ送信するようにさらに構成される、請求項５３に記載の装置。
【請求項５５】
前記ライセンス証明は、コンピュータプログラムのどの機能の実行が許可されるかについての情報を含む、請求項５２に記載の装置。
【請求項５６】
前記プロセッサは、前記ソフトウェア機能が、その実行を許可された前記コンピュータプログラムの機能の一つであるということを検証するようにさらに構成される、請求項５５に記載の装置。
【請求項５７】
前記ライセンス証明は、前記ソフトウェア機能を実行するための前記許可を確認する認証署名を含む、請求項５２に記載の装置。
【請求項５８】
前記プロセッサは、前記認証署名は前記ソフトウェア機能のベンダーにより発行されたということを検証するようにさらに構成される、請求項５７に記載の装置。
【請求項５９】
前記ソフトウェア機能の実行を許可するライセンスは、チェックアウトタイム時にライセンス管理エージェントにより起動される、請求項５２に記載の装置。
【請求項６０】
前記チェックアウトタイムは、選択されたタイムゾーンによる日時により指示される、請求項５９に記載の装置。
【請求項６１】
前記プロセッサは、現在時刻と前記チェックアウトタイムとの間の時間間隔が閾値以下であるということを検証するようにさらに構成される、請求項６０に記載の装置。
【請求項６２】
前記時間間隔が前記閾値以上である場合、エラー通知が前記リモートエンティティに返送される、請求項６１に記載の装置。
【請求項６３】
前記ライセンス証明は暗号化ライセンス証明として受信され、
前記プロセッサは、前記暗号化ライセンス証明が共有秘密鍵により暗号化されたということを検証し、したがってまた前記リモートエンティティは実質的に前記共有秘密鍵を知る他の唯一のエンティティであるので前記暗号化ライセンス証明が前記リモートエンティティにより送信されたということを検証するために、前記共有秘密鍵を使用して前記暗号化ライセンス証明を解読するようにさらに構成される、請求項５２に記載の装置。
【請求項６４】
前記ライセンス証明は暗号化ライセンス証明として受信され、
前記プロセッサは、前記暗号化ライセンス証明が前記リモートエンティティの秘密鍵により暗号化されたということを検証し、したがってまた前記リモートエンティティは実質的に前記秘密鍵を知る唯一のエンティティであるので前記暗号化ライセンス証明が前記リモートエンティティにより送信されたということを検証するために、前記リモートエンティティに関連付けられた公開鍵を使用して前記暗号化ライセンス証明を解読するようにさらに構成される、請求項５２に記載の装置。
【請求項６５】
異なるプロセス空間にまたがる分散プロセスにおいてソフトウェア機能を実行する方法であって、前記方法は、ライセンス証明を生成し、そしてソフトウェア機能を実行する要求と共に前記ライセンス証明を送信するように、第１のプロセス空間において実行する第１のコンピュータプログラムを実行する工程と、前記ライセンス証明を受信し、そして前記ライセンス証明が前記第１コンピュータプログラムにより生成されたということと、前記ライセンス証明が、前記ソフトウェア機能を実行するための許可を含むということとを検証するように第２のプロセス空間において実行する第２のコンピュータプログラムを実行する工程と、を含む方法。
【請求項６６】
前記第１のプロセス空間は、前記第１のコンピュータプログラムを実行する第１のコンピュータに関連した第１のメモリアドレス空間であり、前記第２のプロセス空間は、前記第２のコンピュータプログラムを実行する第２のコンピュータに関連した第２のメモリアドレス空間である、請求項６５に記載の方法。
【請求項６７】
前記第１のコンピュータと前記第２のコンピュータは、前記第２のコンピュータを保護するファイアウォールを介し通信を行う、請求項６６に記載の方法。
【請求項６８】
前記ライセンス証明は、前記ソフトウェア機能を含むアプリケーションプログラムのライセンス契約条件を指示する、チェックアウトタイム時に起動されたライセンスからコピーされた情報を含む、請求項６５に記載の方法。
【請求項６９】
前記アプリケーションプログラムは前記ソフトウェア機能に加えて少なくとも一つの他のソフトウェア機能を含む、請求項６８に記載の方法。
【請求項７０】
前記ライセンスからコピーされた前記情報は、前記ソフトウェア機能を実行するための権利を指示する認証署名を含む、請求項６８に記載の方法。
【請求項７１】
前記ライセンス証明はチェックアウトタイムを指示するタイムスタンプを含む、請求項６８に記載の方法。
【請求項７２】
前記第２のプログラムの実行は、前記ライセンス証明が前記ソフトウェア機能を実行するための許可を含むということの検証の一部として、現在時刻と前記チェックアウトタイムとの間の時間間隔が閾値以下であるということを検証する、請求項７１に記載の方法。
【請求項７３】
前記時間間隔が前記閾値以上である場合、エラー通知が前記第１のコンピュータプログラムに返送される、請求項７２に記載の方法。
【請求項７４】
前記時間間隔が閾値未満である場合、前記方法は、前記ライセンス証明に含まれる前記許可を利用して前記ソフトウェア機能を実行する要求に応ずるために、前記第２のコンピュータプログラムを実行する工程をさらに含む、請求項７２に記載の方法。
【請求項７５】
前記第１のコンピュータプログラムの実行は、暗号化ライセンス証明を生成するための暗号鍵を使用して前記ライセンス証明を暗号化するとともに、前記ソフトウェア機能を実行する要求と共に前記暗号化ライセンス証明を送信し、前記第２のコンピュータプログラムの実行は、前記ライセンス鍵が前記第１のコンピュータプログラムにより生成されたということを検証するために、そして前記ライセンス証明が前記ソフトウェア機能を実行するための前記許可を含むということの検証を容易にするために、前記受信された暗号化ライセンス証明を解読鍵を使用して解読する、請求項６５に記載の方法。
【請求項７６】
前記暗号鍵と前記解読鍵の両方は、前記第１のコンピュータプログラムと前記第２のコンピュータプログラムに知らされた共有秘密鍵である、請求項７５に記載の方法。
【請求項７７】
前記暗号鍵は前記第１のコンピュータプログラムに関連付けられた秘密鍵であり、前記解読鍵は前記第１のコンピュータプログラムに関連付けられた公開鍵である、請求項７５に記載の方法。
【請求項７８】
異なるプロセス空間にまたがる分散プロセスにおいてソフトウェア機能を実行するシステムであって、前記システムは、ライセンス証明を生成し、そしてソフトウェア機能を実行する要求と共に前記ライセンス証明を送信するように、第１のプロセス空間において実行する第１のコンピュータプログラムを実行する第１のコンピュータと、前記ライセンス証明を受信し、そして前記ライセンス証明が前記第１のコンピュータプログラムにより生成されたということと、前記ライセンス証明が、前記ソフトウェア機能を実行するための許可を含むということとを検証するように、第２のプロセス空間において実行する第２のコンピュータプログラムを実行する第２のコンピュータとを含む、システム。
【請求項７９】
前記第１のプロセス空間は前記第１のコンピュータに関連した第１のメモリアドレス空間であり、前記第２のプロセス空間は第２のコンピュータに関連した第２のメモリアドレス空間である、請求項７８に記載のシステム。
【請求項８０】
前記第１のコンピュータと前記第２のコンピュータは、前記第２のコンピュータを保護するファイアウォールを介し通信を行う、請求項７９に記載のシステム。
【請求項８１】
前記ライセンス証明は、前記ソフトウェア機能を含むアプリケーションプログラムのライセンス契約条件を指示する、チェックアウトタイム時に起動されたライセンスからコピーされた情報を含む、請求項７８に記載のシステム。
【請求項８２】
前記アプリケーションプログラムは前記ソフトウェア機能に加えて少なくとも一つの他のソフトウェア機能を含む、請求項８１に記載のシステム。
【請求項８３】
前記ライセンスからコピーされた前記情報は、前記ソフトウェア機能を実行するための権利を指示する認証署名を含む、請求項８１に記載のシステム。
【請求項８４】
前記ライセンス証明は、チェックアウトタイムを指示するタイムスタンプを含む、請求項８１に記載のシステム。
【請求項８５】
前記第２のプログラムの実行は、前記ライセンス証明が前記ソフトウェア機能を実行するための許可を含むということの検証の一部として、現在時刻と前記チェックアウトタイムとの間の時間間隔が閾値以下であるということを検証する、請求項８４に記載のシステム。
【請求項８６】
前記時間間隔が前記閾値以上である場合、エラー通知が前記第１のコンピュータプログラムに返送される、請求項８５に記載のシステム。
【請求項８７】
前記時間間隔が閾値未満である場合、前記方法は、前記ライセンス証明に含まれる前記許可を利用して前記ソフトウェア機能を実行する要求に応ずるために、前記第２のコンピュータプログラムを実行する工程をさらに含む、請求項８５に記載のシステム。
【請求項８８】
前記第１のコンピュータプログラムの実行は、暗号化ライセンス証明を生成するための暗号鍵を使用して前記ライセンス証明を暗号化するとともに、前記ソフトウェア機能を実行する要求と共に前記暗号化ライセンス証明を送信し、前記第２のコンピュータプログラムの実行は、前記ライセンス鍵が前記第１のコンピュータプログラムにより生成されたということを検証するために、そして前記ライセンス証明が前記ソフトウェア機能を実行するための前記許可を含むということの検証を容易にするために、前記受信された暗号化ライセンス証明を解読鍵を使用して解読する、請求項７８に記載のシステム。
【請求項８９】
前記暗号鍵と前記解読鍵の両方は、前記第１のコンピュータプログラムと前記第２のコンピュータプログラムに知らされた共有秘密鍵である、請求項８８に記載のシステム。
【請求項９０】
前記暗号鍵は前記第１のコンピュータプログラムに関連付けられた秘密鍵であり、前記解読鍵は前記第１のコンピュータプログラムに関連付けられた公開鍵である、請求項８８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、一般にソフトウェアライセンスマネジャーに関し、特にソフトウェア機能の遠隔実行のためにライセンス証明（ｌｉｃｅｎｓｅ  ｐｒｏｏｆｓ）を採用するソフトウェアライセンスマネジャーに関する。
【背景技術】
【０００２】
発明の背景
ソフトウェアライセンスマネジャーは、アプリケーションプログラム（すなわちソフトウェア）が許可によってのみ使用され得るようにその使用を制御する。通常のタイプのソフトウェアライセンスマネジャーは、ネットワークにおいて同時に使用されるアプリケーションプログラムのコピー数を追跡し、その使用を、当該ネットワーク用に購入されたフローティングライセンスの数により決定される最大数に制限する。
【０００３】
図１と図２に、このようなフローティングライセンスが管理されるコンピュータネットワークと、それらを管理するソフトウェアとをそれぞれ例示する。本例では、ネットワークは、クライアントコンピュータ１１０、１２０、１３０と、ローカルエリアネットワーク１５０を介しクライアントコンピュータに接続されるライセンスサーバー１４０とを含む。
【０００４】
アプリケーションプログラムのコピーは、各クライアントコンピュータ上にインストールされてもよいし、また随意にライセンスサーバー上にインストールされてもよい。このような３つのコピーの例を、アプリケーションプログラムコピー２１１、２２１、２３１として示す。ライセンスマネジャー２４１とベンダー支給のライセンス証明書２４２は、ライセンスマネジャー２４１が、ネットワークにおいて同時に実行するコピー数を、ライセンス証明書２４２の他のライセンス関連情報と共に指示されるネットワーク用に購入されたフローティングライセンスの数に制限されるようにライセンスサーバー１４０上にインストールされる。
【０００５】
アプリケーションプログラムの各コピーは、ライセンスマネジャー２４１が当該コピーへのユーザーアクセスを制御できるようにライセンスマネジャー２４１と通信を行うライセンスマネジャーインターフェースを備えている。したがって、例えば、ユーザーがアプリケーションプログラムコピー２１１を実行しようとする場合、そのライセンスマネジャーインターフェース２１２はライセンスマネジャー２４１にユーザーの要求を送信する。そしてライセンスマネジャー２４１は、該要求の許諾が、同時に実行するアプリケーションプログラムのコピーの数を、許可フローティングライセンスの数を超えさせるかどうかに依存して該要求を許諾または拒否する。
【０００６】
このようなフローティングライセンス管理方式は、アプリケーションプログラムが単一プロセス空間において実行される場合は有用かつ効果的であることを証明したが、アプリケーションプログラムが多元プロセス空間または分散プロセス環境（新たに登場したウェブサービスの世界やサービス指向型アーキテクチャ（ｓｅｒｖｉｃｅ−ｏｒｉｅｎｔｅｄ  ａｒｃｈｉｔｅｃｔｕｒｅ：ＳＯＡ）など）において実行される場合には改良され得る。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
発明の目的および概要
したがって、本発明の一つまたは複数の態様の目的は、分散プロセス環境に好適なソフトウェアライセンス管理方式を提供することである。
【０００８】
このような環境では、アプリケーションプログラムを動作させるライセンスが、アプリケーションプログラムの個々のソフトウェア機能を実行するために、移動可能なサブライセンスに細分化される改良型ライセンス賦与方式は好都合である。この方式を使用することにより、一つのコンピュータエンティティは、アプリケーションプログラムのライセンスをチェックアウトし（すなわち、アプリケーションプログラムを実行するためにそのローカルライセンスマネジャーから許可を受け）、チェックアウト済みライセンスの対応するサブライセンスの権限下で該アプリケーションプログラムの一つのソフトウェア機能を実行することができる。さらに、上記コンピュータエンティティは、他のソフトウェア機能を実行するためのサブライセンスを他のコンピュータエンティティへ転送し、該他のコンピュータエンティティが転送されたサブライセンスの権限下で該他のソフトウェア機能を実行するようにできる。したがって、この場合の２つのコンピュータエンティティは同じチェックアウト済みライセンスを共有しつつ、異なるプロセス空間において該アプリケーションプログラムの異なるソフトウェア機能を実行することができる。分散プロセスは、さらに多くのコンピュータエンティティが同じチェックアウト済みライセンスの権限下で異なるソフトウェア機能を同時に実行できるように他のコンピュータエンティティに追加のサブライセンスを転送することによりさらに拡張され得る。
【０００９】
本発明の一つまたは複数の態様の別の目的は、ソフトウェア機能を実行するためのライセンスの証明を与える方法と装置を提供することであり、これにより、分散プロセス環境においてソフトウェア機能を実行することを別のコンピュータエンティティに要求するコンピュータエンティティが、ソフトウェア機能を実行するためのライセンスを既にチェックアウトしたということを他のコンピュータエンティティに対し証明することができる。
【００１０】
本発明の一つまたは複数の態様の別の目的は、ソフトウェア機能を実行するためのライセンスをリモートエンティティが有することを確認する方法と装置を提供することであり、これにより、分散プロセス活動の一部としてソフトウェア機能を実行するために別のコンピュータエンティティから要求を受信するコンピュータエンティティは、他のコンピュータエンティティがソフトウェア機能を実行するためのライセンスを既にチェックアウトしたことを確認することができ、したがってそのために実行されるソフトウェア機能を有する権利を賦与される。
【００１１】
本発明の一つまたは複数の態様のさらに別の目的は、異なるプロセス空間にまたがる分散プロセスにおいて同じライセンスを使用してソフトウェア機能を実行するための方法とシステムを提供することであり、これにより、分散プロセスに参加する任意のコンピュータエンティティがそのために別のライセンスをチェックアウトする必要なくソフトウェア機能を実行できる。
【課題を解決するための手段】
【００１２】
これら及び更なる目的は本発明の様々な態様により達成される。簡単に言うと、その一態様は分散プロセスにおいてソフトウェアライセンスを管理する方法であって、本方法は、アプリケーションプログラムの複数のソフトウェア機能を実行するためのライセンスをチェックアウトする工程と、複数のソフトウェア機能の一つのライセンス証明を生成する工程と、複数のソフトウェア機能の一つを実行する要求と共に上記ライセンス証明を与える工程とを含む。
【００１３】
別の態様は、ソフトウェア機能を実行するためのライセンスの証明を与える方法であって、本方法は、ソフトウェア機能の実行を許可するライセンスからの情報を含むライセンス証明を生成する工程と、ソフトウェア機能を実行する要求と共に上記ライセンス証明を与える工程とを含む。
【００１４】
別の態様は、ソフトウェア機能を実行するためのライセンスの証明を与える装置であって、本装置は、ソフトウェア機能の実行を許可するライセンスからの情報を含むライセンス証明を生成し、ソフトウェア機能を実行する要求と共に上記ライセンス証明を与えるように構成されたプロセッサを含む。
【００１５】
別の態様は、ソフトウェア機能を実行するためのライセンスをリモートエンティティが有することを確認する方法であって、本方法は、リモートエンティティからのソフトウェア機能を実行する要求と共にライセンス証明を受信する工程と、該ライセンス証明がリモートエンティティから来たことを検証し、ソフトウェア機能を実行するための許可を指示する工程とを有する。
【００１６】
別の態様は、ソフトウェア機能を実行するためのライセンスをリモートエンティティが有することを確認する装置であって、本装置は、リモートエンティティからのソフトウェア機能を実行する要求と共にライセンス証明を受信し、そして該ライセンス証明がリモートエンティティから来たことを検証し、ソフトウェア機能を実行するための許可を指示するように構成されたプロセッサを含む。
【００１７】
さらに別の態様は、異なるプロセス空間にまたがる分散プロセスにおいてソフトウェア機能を実行する方法であって、本方法は、ライセンス証明を生成し、ソフトウェア機能を実行する要求と共に該ライセンス証明を送信するように、第１のプロセス空間において実行する第１のコンピュータプログラムを実行する工程と、ライセンス証明を受信し、該ライセンス証明が第１コンピュータプログラムにより生成されたということと、該ライセンス証明が、ソフトウェア機能を実行するための許可を含むということとを検証するように、第２のプロセス空間において実行する第２のコンピュータプログラムを実行する工程とを含む。
【００１８】
さらに別の態様は、異なるプロセス空間にまたがる分散プロセスにおいてソフトウェア機能を実行するためのシステムであって、本システムは、ライセンス証明を生成し、ソフトウェア機能を実行する要求と共に該ライセンス証明を送信するように、第１のプロセス空間において実行する第１のコンピュータプログラムを実行する第１のコンピュータと、ライセンス証明を受信し、ライセンス証明が第１コンピュータプログラムにより生成されたということと、該ライセンス証明が、ソフトウェア機能を実行するための許可を含むということとを検証するように、第２のプロセス空間において実行する第２のコンピュータプログラムを実行する第２のコンピュータとを含む。
【００１９】
本発明の様々な態様の更なる目的、特徴、利点は、添付の図面と組み合わせて理解すべき以下の好ましい実施形態の説明から明らかになるであろう。
【発明を実施するための最良の形態】
【００２０】
好適な実施形態の詳細な説明
本明細書で使用されるように、用語「互換（ｃｏｍｐａｔｉｂｌｅ）ライセンスマネジャー」は、サブライセンス可能かつ転送可能なソフトウェア機能の態様を認識するとともに本明細書で説明されるようにそれらの使用を管理するライセンスマネジャーを意味し、用語「互換ライセンスマネジャーインターフェース」は、サブライセンス可能かつ転送可能なソフトウェア機能の態様をまた認識するとともに本明細書で説明されるようにそれらの使用の管理において互換ライセンスマネジャーと協働するライセンスマネジャーインターフェースを意味する。
【００２１】
図３に、例として、インターネット３３０のような通信媒体を介し互いに通信を行う２つのネットワーク３１５、３２５を含む分散プロセス環境のブロックを例示する。ネットワーク３１５、３２５のそれぞれはライセンスサーバー（例えば、ネットワーク３１５のライセンスサーバー３１４、ネットワーク３２５のライセンスサーバー３２４）、複数のクライアントコンピュータ（例えば、ネットワーク３１５のクライアントコンピュータ３１１〜３１３、ネットワーク３２５のクライアントコンピュータ３２１〜３２３）、ファイアウォール（例えば、ネットワーク３１５のファイアウォール３１６、ネットワーク３２５のファイアウォール３２６）を含む。
【００２２】
ネットワーク３１５、３２５のそれぞれはローカルエリアネットワークであってもよいし、あるいはより一般的にはライセンスサーバー上で実行するライセンスマネジャープログラム（「ライセンスマネジャー」）が、そのコンピュータ上で実行する一つまたは複数のライセンス済みコンピュータプログラム（本明細書では、「アプリケーションプログラム」とも呼ばれる）を管理するようにライセンスサーバーを共有するコンピュータのグループであってもよい。また、図３では２つのネットワークのみが示されるが、無制限の数のネットワークが分散プロセス活動に参加してもよいし、したがって無制限の数のネットワークがその中に示される分散プロセス環境に追加されてもよく、しかもこれらは依然として本発明の様々な態様の意図する範囲に含まれることを十分に理解すべきである。
【００２３】
ネットワーク３１５、３２５のコンピュータ上で実行するアプリケーションプログラムは、アプリケーションプログラムに含まれるソフトウェア機能がサブライセンス可能であることと、このようなサブライセンスはそのソフトウェア機能の実行が互換ライセンスマネジャーにより管理される他のコンピュータまたはコンピュータエンティティに転送可能であるということとを除き、従来のフローティングライセンスまたはノードロックライセンスのようにライセンスされ管理されてよい。
【００２４】
従来のフローティングライセンス方式の場合、ネットワークの所有者は、通常、同時にネットワークのアプリケーションプログラムを実行することを許可されるユーザーの数が当該数に制限されるように、多くの同時ライセンスを購入する。従来のノードロックライセンスの場合、アプリケーションプログラムは、規定されたコンピュータ上でのみで実行されることを許可される。このようなフローティングおよび／またはノードロックライセンスの使用を管理するライセンスマネジャーの例は、米国カリフォルニア州サンタクララのマクロビジョン社（Ｍａｃｒｏｖｉｓｉｏｎ  Ｃｏｒｐｏｒａｔｉｏｎ，  Ｓａｎｔａ  Ｃｌａｒａ，  Ｃａｌｉｆｏｒｎｉａ）の製品ＦＬＥＸｌｍ（商標）である。
【００２５】
但し、本例のライセンス管理方式では、アプリケーションプログラムは、図４に例示するアプリケーションプログラム４００に含まれるソフトウェア機能４０１〜４０４などの複数のソフトウェア機能を含む。各ソフトウェア機能は、アプリケーションプログラムの異なる特徴または異なる実行可能なモジュールを表してよい。該ソフトウェア機能を実行するための許可が別のコンピュータエンティティに転送され、次にこの別のコンピュータエンティティが、このように転送された許可の元に、そして転送された許可を認証し認識する互換ライセンスマネジャーの管理の元で該ソフトウェア機能を実行できるように、各ソフトウェア機能はサブライセンス可能であってよい。
【００２６】
図５と図６に、例として、分散プロセス環境のソフトウェアライセンスの管理に関与するソフトウェアモジュール（すなわちコンピュータプログラム、コンピュータファイル／オブジェクト）を例示する。図５は同じネットワーク（例えば、ネットワーク３１５のクライアントコンピュータ３１１、３１２）の２つのコンピュータが分散プロセス活動において協働している場合に適用可能であり、図６は異なるネットワーク（例えば、ネットワーク３１５のクライアントコンピュータ３１１と、ネットワーク３２５のクライアントコンピュータ３２１）の２つのコンピュータが分散プロセス活動において協働している場合に適用可能である。これらの説明には用語「互換」は含まれないが、図５〜９において図示され、説明され、および／または参照されるすべてのライセンスマネジャーとライセンスマネジャーインターフェースは、互換ライセンスマネジャーと互換ライセンスマネジャーインターフェースである。
【００２７】
図５と図６の両者に共通に、ネットワーク３１５のクライアントコンピュータ３１１などの第１のコンピュータエンティティは、その上にインストールされたアプリケーションプログラム４００のコピー５１１を有し、ネットワーク３１５のライセンスサーバー３１４などの対応するライセンスサーバーは、その上にインストールされたライセンスマネジャー５１４とライセンス証明書（ｌｉｃｅｎｓｅ  ｃｅｒｔｉｆｉｃａｔｅ）５１５を有する。
【００２８】
ライセンス証明書５１５は、通常、アプリケーションプログラム４００のベンダーにより提供される。ライセンス証明書５１５は、ソフトウェアライセンスのタイプ（例えば、フローティングまたはノードロック）、規定されたネットワーク上で許可された同時ユーザーの数（フローティングライセンスに対して）またはアプリケーションプログラムを実行することを許可された一つまたは複数のコンピュータの識別子（ノードロックライセンスに対して）、アプリケーションプログラムのベンダー名、アプリケーションプログラムのバージョンまたは改訂番号、ライセンスの有効期限、ライセンス（例えば、アプリケーションプログラム４００のソフトウェア機能４０１〜４０４のいずれかまたはすべて）内に含まれるソフトウェア機能の指示、ベンダーから来るライセンス証明書５１５を認証する認証署名、などのライセンス関連情報を含む。
【００２９】
アプリケーションプログラム４００のコピー５１１へのユーザーアクセスは、コピー５１１に付随するライセンスマネジャーインターフェース５１２を介しライセンスマネジャー５１４により制御される。クライアントコンピュータ３１１のユーザーがアプリケーションプログラム４００のコピー５１１を実行しようとする場合、ライセンスマネジャーインターフェース５１２はライセンスマネジャー５１４に実行要求を送信する。ライセンスマネジャーインターフェース５１２とライセンスマネジャー５１４間の通信は、セキュアであることが好ましく、コピー５１１の不正使用を防ぐために従来の認証技術を含む。
【００３０】
実行要求を受信すると、ライセンスマネジャー５１４は、ライセンス証明書５１５を読み、その中に規定されたソフトウェアライセンスの契約条件が、ユーザーがその時にコピー５１１を実行するのを許可するかどうかを判断する。例えば、ライセンス契約条件がフローティングライセンスを同時ユーザーの最大数で規定する場合、ライセンスマネジャー５１２は、クライアントコンピュータ３１１から受信された実行要求を許諾した場合その最大数を超えるかどうかを判断する。その最大数を超えた場合、要求は拒否され、ユーザーは、ネットワーク３１５の別のユーザーがアプリケーションプログラム４００のコピーの実行を停止するまで待つ必要がある。一方、その最大数を超えなかった場合、要求は許諾され、ユーザーは、アプリケーションプログラム４００のコピー５１１を実行することが許される。
【００３１】
この許諾は利用可能なライセンスの数を一個ずつ減らすことと考えられるので、コピー５１１を実行するためのライセンスマネジャー５１４による実行要求の許諾はライセンスを「チェックアウトする」という。その後ユーザーがコピー５１１の実行を停止すると、ライセンスマネジャーインターフェース５１２は、ライセンスマネジャー５１４が利用可能ライセンスの数をインクリメントできるようにライセンスマネジャー５１４にこのアクションを通知する。この逆のプロセスは、ライセンスを「チェックイン」するという。
【００３２】
ライセンス契約条件がフローティングライセンスまたはノードロックライセンスを規定するかにかかわらず、ライセンスマネジャー５１４による要求の取り扱いは実質的に先行技術のライセンスマネジャーにより行なわれるのと同じである。この場合、ライセンスをチェックアウトするということは、アプリケーションプログラム４００のすべてのライセンス済みソフトウェア機能（ライセンス証明書５１５に指示されるもの）が、実行要求元クライアントコンピュータ５１１により実行されることを許可されたことを意味する。具体的には、ソフトウェア機能４０１〜４０３のみがライセンスされソフトウェア機能４０４がライセンスされない場合、ソフトウェア機能４０１〜４０３は、その実行要求が許諾されるとクライアントコンピュータ３１１によりチェックアウトされる。
【００３３】
ライセンス済みソフトウェア機能のそれぞれはサブライセンス可能であり、そしてこのようなサブライセンシーは他のコンピュータエンティティに転送可能である。したがって、クライアントコンピュータ３１１（この場合、「ライセンス証明プロバイダー」または単に「プロバイダー」と呼ばれる）が、そのネットワーク３１５のクライアントコンピュータ３１２またはネットワーク３２５のクライアントコンピュータ３２１（この場合、「ライセンス証明アクセプタ」または単に「アクセプタ」と呼ばれる）などの別のコンピュータエンティティに、ライセンス済みソフトウェア機能の一つを実行することを要求する場合、ここに説明したソフトウェアライセンス賦与メカニズムを使用することにより自由にそのようにできる。
【００３４】
別のコンピュータエンティティにソフトウェア機能を実行させる権限を有することを証明するために、クライアントコンピュータ３１１（「プロバイダー」）は、ライセンス済みソフトウェア機能を実行する要求と共に他のコンピュータエンティティ（「アクセプタ」）に送信するライセンス証明７００を生成する。好ましくは、ライセンス証明７００は、プログラミング言語ニュートラルなＸＭＬ表現のように容易に送信または逐次化され得る表現を有するデータオブジェクトとして生成される。
【００３５】
図７に、例として、ライセンス証明７００に含まれる項目を例示する。ライセンス証明７００内に含まれるのは、ライセンス説明の部分７０１、認証署名のフィールド７０２、タイムスタンプのフィールド７０３である。ライセンス説明７０１は、ベンダーの名前、バージョンまたは改訂番号、ライセンスに含まれるアプリケーションプログラムのソフトウェア機能の識別子、ライセンスの有効期限、などのアプリケーションプログラムのライセンス関連情報を含む。認証署名７０２は、ベンダーにより許可されている項目あるいはベンダーから来る項目を認証するベンダー提供の署名である。タイムスタンプ７０３は、使用のためにライセンスがライセンスマネジャーからチェックアウトされた時間／日付である。
【００３６】
ライセンス説明７０１と認証署名７０２は、ライセンスマネジャー５１４によりライセンス証明書５１５からライセンスマネジャーインターフェース５１２に与えられる。好ましくは、タイムスタンプ７０３もまた、コピー５１１を実行するためのライセンスがいつチェックアウトされたかを示すためにライセンスマネジャー５１４によりライセンスマネジャーインターフェース５１２に与えられる。あるいは、タイムスタンプは、コピー５１１を実行するための許可をライセンスマネジャー５１４から受信するときに、クライアントコンピュータ３１１上で実行する従来の時間／日付機能を使用してライセンスマネジャーインターフェース５１２により決定されてもよい。
【００３７】
以下は、ライセンス権の表示に類似したフラットテキスト表現を使用する、解読されたライセンス証明の例である。
ＣｏｍｐｕｔｉｎｇＦｅａｔｕｒｅ  ｍｖｓｎ  １．０  １−ｊｕｎ−２００５  ＨＯＳＴＩＤ＝ＤＥＭＯ
ＳＩＧＮ＝’’１Ｆ５４  Ｅ５３Ｆ  Ａ５５Ａ  Ｂ２３３  Ｃ７５Ｂ  Ｅ７ＥＥ  １０８８  ３ＦＤ３  Ｅ１１４  ９２ＦＦ  Ｃ１Ａ０  ８Ｆ０Ｅ  １１ＡＢ  ５３０Ｄ  Ｆ３６Ｂ  １７５２  ３Ｄ５Ｅ  ７６１Ｆ  ６６ＥＦ  １６７２  ８５Ａ３  ６０２８  Ａ１１３  ２６６８  ０ＣＤＣ  ４ＣＢＢ  ６８６Ｆ  ００６５  Ｆ３Ｄ４  ９８６Ｃ’’
ＴＩＭＥＳＴＡＭＰ＝’’２６  Ａｕｇ  ２００４  ２３：５１：１２  ＧＭＴ’’．
【００３８】
好ましくは、ソフトウェア機能を実行する要求とライセンス証明５１６は、ライセンス証明プロバイダーとライセンス証明アクセプタコンピュータエンティティのライセンスマネジャーインターフェース（例えば、ライセンスマネジャーインターフェース５１２、５２２）を介し伝達される。アクセプタが要求とライセンス証明７００を受信すると、好ましくは、ライセンスマネジャーインターフェース５２２は、ライセンス証明７００が適切に許可されたことを確認するための認証署名７０２を認証し、ライセンス証明プロバイダーがライセンス説明７０１にしたがって要求ソフトウェア機能を実行する権限を有するということを検証し、そしてライセンスがタイムスタンプ７０３にしたがって最近適切にチェックアウトされたということを検証するライセンスマネジャー（例えば、アクセプタがプロバイダーと同じネットワークに存在する場合は図５の５１４、あるいはアクセプタがプロバイダーとは異なるネットワークに存在する場合は図６の５２４）に該ライセンス証明を渡す。これらの条件がすべて満足された場合、ライセンスマネジャーは、そうするために別のライセンスをチェックアウトすることなくライセンス証明７００の権限下でライセンスマネジャーインターフェース５２２が要求ソフトウェア機能を実行することを許可する。
【００３９】
セキュリティ目的のために、クライアントコンピュータ３１１は、ソフトウェア機能を実行する要求と共に別のクライアントコンピュータに送信する前に、少なくともライセンス証明７００を暗号化することが望ましいであろう。情報がインターネット上で送信される場合、ライセンス証明の悪用または改ざんの防止は特に関心事である。
【００４０】
互換ライセンスマネジャーインターフェース（例えば、ライセンスマネジャーインターフェース５１２、５２２）および／または互換ライセンスマネジャー（例えば、ライセンスマネジャー５１４、５２４）のみにより知られた共有秘密鍵を使用してライセンス証明を暗号化することにより、通信のソース（すなわち、互換ライセンスマネジャーインターフェースから来たということ）を認証することができ、通信は改ざんに対し保護され、その悪用は阻止される。
【００４１】
あるいは、プロバイダーに関連付けられた公開鍵を使用して受信側においてそれを解読できるように、プロバイダーに関連付けられた秘密鍵を使用してライセンス証明を暗号化することにより、通信のソース（すなわち、プロバイダーから来たということ）を認証することができ、その通信は改ざんから保護され、その悪用は阻止される。
【００４２】
図５に図示した配置がこの場合でも使用されるように、一つのネットワーク（例えば、ネットワーク３１５）のライセンス証明プロバイダーのライセンスマネジャー５１４が別のネットワーク（例えば、ネットワーク３２５）のライセンス証明アクセプタのライセンスマネジャーインターフェース５２２と直接に対話することも実行可能かもしれないが、ファイアウォール（例えば、ネットワーク３１５のファイアウォール３１６、ネットワーク３２５のファイアウォール３２６）がネットワークに存在する場合、このような配置における２つのモジュール間の通信は複雑になるかもしれない。したがって、ライセンスマネジャーとライセンスマネジャーインターフェースがファイアウォールを介し通信を行うことを回避するためには、図７に示された配置がこのような場合には好ましい。
【００４３】
上述のソフトウェアライセンス賦与方式をさらに詳しく述べるために、図８と図９に、例として、送受信コンピュータエンティティにおいて行なわれる方法またはプロセスを例示する。
【００４４】
図８を参照すると、工程８０１においてクライアントコンピュータ（例えば、３１１）は、それを実行しようとするかそうでなければその実行要求を行うユーザーによりアプリケーションプログラム（例えば、４００）のコピー（例えば、５１１）を実行するためのライセンスをチェックアウトし、ライセンスマネジャー（例えば、５１４）は、ベンダー支給のライセンス証明書（例えば、５１５）から読み取ったライセンス契約条件にしたがって、ユーザーがコピーを実行することを許可する。
【００４５】
工程８０２において、ユーザーが、アプリケーションプログラムの一部として含まれるソフトウェア機能を実行するために、分散プロセス活動の一部として別のコンピュータエンティティ（例えば、同じネットワークの３１２または異なるネットワークの３２１）に対する要求を開始すると、アプリケーションプログラムのコピーに付随するライセンスマネジャーインターフェース（例えば、５１２）は、ライセンスマネジャーにより与えられた情報からライセンス証明７００（好ましくはライセンス説明７０１、認証署名７０２、タイムスタンプ７０３を含む）を生成する。
【００４６】
工程８０３において、ライセンスマネジャーインターフェースは、ライセンスマネジャーインターフェースに一意的に関連付けられた共有秘密鍵または秘密鍵のいずれかを使用してライセンス証明を暗号化し、工程８０４において、ライセンスマネジャーインターフェースは、他のコンピュータエンティティ上にインストールされた互換ライセンスマネジャーインターフェース（例えば、５２２）に暗号化ライセンス証明と共に実行要求（規定されたソフトウェア機能に対する）を送信する。
【００４７】
この時点では、ユーザー自身の実行する権利がたった今、他のコンピュータエンティティ（ライセンス証明アクセプタ）に転送されたところなので、ライセンスマネジャーインターフェースはユーザーがソフトウェア機能を実行しないようにするのが好ましい。他のコンピュータエンティティが要求どおりに該ソフトウェア機能を実行した後は、他のコンピュータエンティティがユーザーに付随するライセンスマネジャーインターフェースにライセンス証明を返却すれば、あるいはそうでなければライセンス証明を使用して実行が完了したこと指示すれば、ユーザーはソフトウェア機能を実行することができる。
【００４８】
図９を参照すると、工程９０１において、他のコンピュータエンティティ（例えば、３１２または３２１）のライセンスマネジャーインターフェース（例えば、５２２）は、要求元コンピュータエンティティ（例えば、３１１）からソフトウェア機能実行要求と暗号化ライセンス証明（例えば、５１６）を受信する。
【００４９】
工程９０２において、好ましくは、ライセンスマネジャーインターフェースはプロセスのために暗号化ライセンス証明をそのライセンスマネジャー（例えば、他のコンピュータエンティティが要求元コンピュータエンティティと同じネットワーク上に存在する場合はライセンスマネジャー５１５、あるいは他のコンピュータエンティティが要求元コンピュータエンティティと異なるネットワーク上に存在する場合はライセンスマネジャー５２５に、したがって異なるライセンスマネジャーにより管理される）に送信し、そしてライセンスマネジャーは暗号化ライセンス証明を解読する。
【００５０】
この場合の解読は、例えば、ライセンス証明が共有秘密鍵により暗号化されていた場合は共有秘密鍵を使用して、あるいはライセンス証明が送信元の秘密鍵により暗号化されていた場合は暗号化ライセンス証明の送信元（例えば、ライセンス証明プロバイダー）に関連付けられた公開鍵を使用して行なうことができる。いずれの場合も、暗号化ライセンス証明を解読するために使用される鍵は、特定のソフトウェアライセンス管理方式において使用される規定に依存するであろう。そして解読の成功は、暗号化ライセンス証明のソースが認証されたことを示す。
【００５１】
工程９０３において、ライセンスマネジャーは解読されたライセンス証明を読み、工程９０４と工程９０５においてライセンスマネジャーは、コンピュータエンティティ（例えば、ライセンス証明アクセプタ）がアプリケーションプログラム（例えば、４００）のインストールされたコピー（例えば、５２１）からソフトウェア機能を実行するのを許可するかどうかを判断する。
【００５２】
工程９０４において、ライセンスマネジャーは、ライセンス証明がコンピュータエンティティにソフトウェア機能を実行させるに十分な権利を指示しているかどうかを判断する。例えば、ライセンスマネジャーは、実行要求がなされたソフトウェア機能がライセンス済みソフトウェア機能であるということを確認することができる。また、ライセンスマネジャーは、アプリケーションプログラム（例えば、４００）のベンダーの認証署名としてライセンス証明から読み込まれたものと、要求されたソフトウェア機能を実行するために使用されるアプリケーションプログラム（例えば、４００）のコピー（例えば、５２１）のライセンス証明書（例えば、ライセンスマネジャー５１４がこのタスクを行なっている場合はライセンス証明書５１５、あるいはライセンスマネジャー５２４が行なっている場合はライセンス証明書５２５）内に見出されるベンダーの認証署名とを比較することにより、当該認証署名を検証することができる。また、ライセンスマネジャーは、ライセンス証明内に記載されるライセンスが期限切れになったかどうか、および／または該ライセンスがそのコンピュータ上にインストールされるアプリケーションプログラムの同じバージョンかまたは修正版に対するものかどうかを判断することができる。ライセンスマネジャーが、コンピュータエンティティにソフトウェア機能を実行させるためには十分な権利が存在しないと判断した場合、工程９０５においてライセンスマネジャーは適切なライセンスマネジャーインターフェース（例えば、５２２）にその事実を通知して、実行要求元クライアントコンピュータのカウンタパート（例えば、ライセンス証明プロバイダー）に適切なエラー通知を返送できるようにする。
【００５３】
工程９０５において、ライセンスマネジャーは、ライセンス証明が、適度に最近の期間内にそうでなければ予め決められた期間内に生成されたかどうかを判断する。例えば、ライセンスマネジャーは、ライセンス証明７００のタイムスタンプ（例えば、７０３）とそのシステム上の（または、同意されたタイムゾーンの）現在時間とを比較することができ、その差異が４８時間などの所定の期間より大きい場合はライセンス証明がもはや有効ではないと判断する。ライセンス証明が適度に最近の期間内にそうでなければ予め決められた期間内に生成されていないため、ライセンスマネジャーがライセンス証明はもはや有効ではないと判断した場合、工程９０６において、ライセンスマネジャーは適切なライセンスマネジャーインターフェース（例えば、５２２）にその事実を通知し、実行要求元クライアントコンピュータのそのカウンタパート（例えば、ライセンス証明プロバイダー）に適切なエラー通知を返送できるようにする。
【００５４】
一方、ライセンス証明が、コンピュータエンティティにソフトウェア機能を実行させるに十分な権利を指示し、そしてライセンス証明が適度に最近の期間内にそうでなければ予め決められた期間内に生成されたと、ライセンスマネジャーが判断した場合、工程９０８において、ライセンスマネジャーは適切なライセンスマネジャーインターフェース（例えば、５２２）にその事実を通知し、そのクライアントコンピュータ（例えば、ライセンス証明アクセプタ）のユーザーが要求ソフトウェア機能を実行できるようにする。次に、工程９０９において、該ソフトウェア機能の実行結果を要求元クライアントコンピュータ（例えば、ライセンス証明プロバイダー）に戻すことができる。
【００５５】
上述の実施例では、分散プロセス環境の別のコンピュータにより一つのソフトウェア機能のみが実行要求されると仮定した。しかしながら、実際上、要求元コンピュータは、一つまたは複数の分散プロセス活動において二つ以上のソフトウェア機能を実行することを別のクライアントコンピュータに要求してもよく、このような可能性は本発明の様々な態様の範囲に完全に含まれると考えられる。また、実行要求を受信するクライアントコンピュータが実際にソフトウェア機能を実行するものと仮定してきた。しかしながら、実際上、ライセンス証明アクセプタは、受信されたライセンス証明を単に渡すことにより、そのネットワークのまたはその外の他のクライアントコンピュータに該要求を中継して上記他のクライアントコンピュータに対し要求を実行してもよく、このような可能性も本発明の様々な態様の範囲内に完全に含まれるものと考えられる。
【００５６】
本発明の様々な態様は好ましい実施形態に関し説明されてきたが、本発明は、添付された請求項の全ての範囲内で完全に保護される権利を有することを理解されたい。
【図面の簡単な説明】
【００５７】
【図１】従来のライセンスマネジャーを採用したコンピュータネットワークのブロック図を例示する。
【図２】従来のフローティングライセンスの管理において採用されるソフトウェアモジュールを例示する。
【図３】本発明の態様を利用する分散プロセス環境のブロック図を例示する。
【図４】本発明の態様を利用するアプリケーションプログラムのサブライセンス可能なソフトウェア機能をそれぞれ例示する。
【図５】本発明の態様を利用する、単一ネットワークのソフトウェアライセンスの管理において採用されるソフトウェアモジュールを例示する。
【図６】本発明の態様を利用する、多元的ネットワーク環境のソフトウェアライセンスの管理において採用されるソフトウェアモジュールを例示する。
【図７】本発明の態様を利用するライセンス証明内に格納される項目を例示する。
【図８】本発明の態様を利用する、ソフトウェア機能を実行する要求と共にライセンス証明を生成し送信する方法を例示する。
【図９】本発明の態様を利用する、ソフトウェア機能を実行する要求と共にライセンス証明を処理する方法を例示する。
【図１】
2008547088.tif 000003
【図２】
2008547088.tif 000004
【図３】
2008547088.tif 000005
【図４】
2008547088.tif 000006
【図５】
2008547088.tif 000007
【図６】
2008547088.tif 000008
【図７】
2008547088.tif 000009
【図８】
2008547088.tif 000010
【図９】
2008547088.tif 000011
【国際調査報告】
2008547088.tif 000012