(57)【要約】      （修正有）【課題】正当なソフトウェアを再アクティブ化する際の、ライセンスユーザの手間を省く。【解決手段】再アクティブ化ポリシーグループに関連する第１のソフトウェア製品をアクティブ化し、コンピュータハードウェア構成から取り出されたハードウェア識別子が第１ソフトウェア製品のアクティブ化に結合される。関連する再アクティブ化結合リストを含む第２のソフトウェア製品がアクティブ化され第１ソフトウェア製品について再アクティブ化が要求されて、更新されたハードウェア識別子が第１のソフトウェア製品の再アクティブ化ポリシーグループに関連付けられる。結合リストが再アクティブ化ポリシーグループと互換性があることを考慮し、第２の製品が第１ソフトウェア製品の再アクティブ化に関連付けられ得る場合、第２ソフトウェア製品は再アクティブ化の要求を受けない。【選択図】図２
2006048648.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア製品を再アクティブ化するための方法であって、
第１のソフトウェア製品のアクティブ化を要求するステップであって、前記第１ソフトウェア製品は、再アクティブ化ポリシーグループをホストするステップと、
第１のハードウェア識別子を前記第１ソフトウェア製品に関連付けるステップと、
第２のソフトウェア製品のアクティブ化を要求するステップであって、前記第２ソフトウェア製品は、結合リストを含むステップと、
前記第２ソフトウェア製品の前記結合リストが前記第１ソフトウェア製品との互換性を示す場合、前記第２ソフトウェア製品を前記第１ハードウェア識別子に関連付けるステップと、
前記第１ソフトウェア製品の再アクティブ化イベントを要求するステップと、
前記第１ソフトウェア製品の前記再アクティブ化イベントを前記第２ソフトウェア製品のものと見なし、それによって、前記第２ソフトウェア製品の再アクティブ化イベントの要求を回避するステップとを備えることを特徴とする方法。
【請求項２】
前記第２ソフトウェア製品を前記第１ハードウェア識別子に関連付ける前記ステップは、前記再アクティブ化ポリシーグループおよび前記第１ソフトウェア製品のうちの少なくとも１つとの互換性を示す結合リストを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記再アクティブ化ポリシーグループとの互換性は、前記再アクティブ化ポリシーグループに関連するハードウェア変更許容度に対する、現在のハードウェア識別子の、前記第１ハードウェア識別子との比較によって示されることを特徴とする請求項２に記載の方法。
【請求項４】
第１のソフトウェア製品のアクティブ化を要求する前記ステップは、第１のソフトウェア製品をコンピュータ上でアクティブ化することを要求するステップをさらに含み、前記コンピュータは、メモリ内に格納された前記第１ハードウェア識別子を備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記ハードウェア識別子は、前記第１ソフトウェア製品のアクティブ化時のハードウェア構成の表現を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記表現は、前記コンピュータ上にインストールされたコンポーネント識別子のハッシュ値を含むことを特徴とする請求項５に記載の方法。
【請求項７】
再アクティブ化ポリシーグループ識別子は、前記第１ハードウェア識別子に関連するメモリ内に格納されることを特徴とする請求項１に記載の方法。
【請求項８】
第１のソフトウェア製品のアクティブ化を要求する前記ステップは、ハードウェア変更閾値が超過され、および前記第１ソフトウェア製品がアクセスされる場合に再アクティブ化イベントをトリガする前記ハードウェア変更許容範囲を含む再アクティブ化ポリシーグループをホストするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記第１ソフトウェア製品の再アクティブ化の後に、第２のハードウェア識別子を前記再アクティブ化ポリシーグループに関連付けるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記第２ハードウェア識別子は、前記第１ソフトウェア製品の前記再アクティブ化時のハードウェア構成を表すことを特徴とする請求項１に記載の方法。
【請求項１１】
前記第１ソフトウェア製品の再アクティブ化イベントを要求する前記ステップは、
前記第１ソフトウェアアプリケーションにアクセスするステップと、
現在のハードウェア識別子を前記第１ハードウェア識別子と比較して、ハードウェア差異インディケーションを生成するステップと、
前記ハードウェア差異インディケーションが、前記再アクティブ化ポリシーグループに関連するハードウェア変更閾値より大きい場合、再アクティブ化データトランザクションを要求するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
複数のソフトウェアアプリケーションを再アクティブ化するための方法であって、
第１アプリケーションのアクティブ化を要求し、第１のハードウェア識別子を再アクティブ化ポリシーグループに関連付けるステップであって、前記第１アプリケーションは、前記再アクティブ化ポリシーグループを所有するステップと、
少なくとも１つの追加のアプリケーションのアクティブ化を要求し、前記少なくとも１つの追加のアプリケーションが前記再アクティブ化ポリシーグループと互換性がある場合に、前記少なくとも１つの追加のアプリケーションを前記第１ハードウェア識別子に関連付けるステップと、
前記アプリケーションのいずれか１つの再アクティブ化を要求するステップと、
残りのアプリケーションが前記再アクティブ化ポリシーグループに関連付けられる場合に、前記残りのアプリケーションの再アクティブ化は不要であると判断するステップとを備えることを特徴とする方法。
【請求項１３】
前記アプリケーションのいずれか１つの再アクティブ化の後に、第２のハードウェア識別子を前記再アクティブ化ポリシーグループに関連付けるステップをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記少なくとも１つの追加のアプリケーションを前記第１ハードウェア識別子に関連付ける前記ステップはさらに、
現在のハードウェア構成識別子が前記第１ハードウェア識別子の許容範囲内である場合に、再アクティブ化結合リストを使用して、前記少なくとも１つの追加のアプリケーションを前記第１アプリケーションに関連付けるステップであって、前記許容範囲は、前記再アクティブ化ポリシーグループに関連付けられるステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
メモリへのアクセスを有するプロセッサを備えるシステムであって、前記メモリは、
第１のソフトウェアアプリケーションがアクセスされるときに、現在のハードウェア識別子を第１のハードウェア識別子と比較するステップであって、前記第１ハードウェア識別子は、前記第１ソフトウェアアプリケーションのアクティブ化時に再アクティブ化ポリシーグループに関連付けられるステップと、
前記現在のハードウェア識別子が前記第１ハードウェア識別子からの差異の閾値を超える場合に、前記第１アプリケーションの再アクティブ化を要求するステップと
前記現在のハードウェア識別子を前記再アクティブ化ポリシーグループに関連付けるステップと、
少なくとも１つの他のソフトウェアアプリケーションが、前記少なくとも１つの他のソフトウェアアプリケーションの結合リストを介して、再アクティブ化ポリシーグループに結合される場合、少なくとも１つの他のソフトウェアアプリケーションの再アクティブ化は不要であると判定するステップとを含む方法を、実行時に実施する命令を有することを特徴とするシステム。
【請求項１６】
前記第１ハードウェア識別子は、信頼されたストア内に格納されることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記第１ハードウェア識別子は、ハッシュ値を含むことを特徴とする請求項１５に記載のシステム。
【請求項１８】
前記少なくとも１つの他のソフトウェアアプリケーションの前記結合リストは、第１のソフトウェアアプリケーション識別子をリストすることを特徴とする請求項１５に記載のシステム。
【請求項１９】
方法を実施するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体であって、前記方法は、
第１のソフトウェア製品のアクティブ化を要求するステップであって、前記第１ソフトウェア製品は、再アクティブ化ポリシーグループをホストするステップと、
第１のハードウェア識別子を前記第１ソフトウェア製品に関連付けるステップと、
第２のソフトウェア製品のアクティブ化を要求するステップであって、前記第２ソフトウェア製品は、結合リストを有するステップと、
前記第２ソフトウェア製品の前記結合リストが前記第１ソフトウェア製品との互換性を示す場合、前記第２ソフトウェア製品を前記第１ハードウェア識別子に関連付けるステップと、
前記第１ソフトウェア製品の再アクティブ化イベントを要求するステップと、
前記第１ソフトウェア製品の前記再アクティブ化イベントを前記第２ソフトウェア製品のものと見なし、それによって、前記第２ソフトウェア製品の再アクティブ化イベントの要求を回避するステップとを備えることを特徴とするコンピュータ読取り可能媒体。
【請求項２０】
前記第２ソフトウェア製品を前記第１ハードウェア識別子に関連付ける前記ステップは、前記再アクティブ化ポリシーグループおよび前記第１ソフトウェア製品のうちの少なくとも１つとの互換性を示す結合リストを含むことを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【請求項２１】
第１のソフトウェア製品のアクティブ化を要求する前記ステップは、ハードウェア変更許容範囲が超過され、および前記第１ソフトウェア製品がアクセスされる場合に再アクティブ化イベントをトリガする前記ハードウェア変更許容範囲を含む再アクティブ化ポリシーグループをホストするステップをさらに含むことを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【請求項２２】
前記第１ソフトウェア製品の再アクティブ化の後に、第２ハードウェア識別子を前記再アクティブ化ポリシーグループに関連付けるステップをさらに備えることを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【請求項２３】
前記第２ハードウェア識別子は、前記第１ソフトウェア製品の前記再アクティブ化時のハードウェア構成を表すことを特徴とする請求項２２に記載のコンピュータ読取り可能媒体。
【請求項２４】
前記第１ソフトウェア製品の再アクティブ化イベントを要求する前記ステップは、
前記第１ソフトウェアアプリケーションにアクセスするステップと、
現在のハードウェア識別子を前記第１ハードウェア識別子と比較して、ハードウェア差異インディケーションを生成するステップと、
前記ハードウェア差異インディケーションが、前記再アクティブ化ポリシーグループに関連するハードウェア変更許容範囲より大きい場合、再アクティブ化データトランザクションを要求するステップとを含むことを特徴とする請求項１９に記載のコンピュータ読取り可能媒体。
【請求項２５】
方法を実施するためのコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記方法は、
第１アプリケーションのアクティブ化を要求し、第１のハードウェア識別子を再アクティブ化ポリシーグループに関連付けるステップであって、前記アプリケーションは、前記再アクティブ化ポリシーグループを所有するステップと、
少なくとも１つの追加のアプリケーションのアクティブ化を要求し、前記少なくとも１つの追加のアプリケーションが前記再アクティブ化ポリシーグループと互換性がある場合に、前記少なくとも１つの追加のアプリケーションを前記第１ハードウェア識別子に関連付けるステップと、
前記アプリケーションのいずれか１つの再アクティブ化を要求するステップと、
残りのアプリケーションが前記再アクティブ化ポリシーグループに関連付けられる場合に、前記残りのアプリケーションの再アクティブ化は不要であると判断するステップとを備えることを特徴とするコンピュータ読取り可能媒体。
【請求項２６】
前記アプリケーションのいずれか１つの再アクティブ化の後に、第２のハードウェア識別子を前記再アクティブ化ポリシーグループに関連付けるステップをさらに備えることを特徴とする請求項２５に記載のコンピュータ読取り可能媒体。
【請求項２７】
前記少なくとも１つの追加のアプリケーションを前記第１ハードウェア識別子に関連付ける前記ステップはさらに、
現在のハードウェア構成識別子が前記第１ハードウェア識別子の許容範囲内である場合に、再アクティブ化結合リストを使用して、前記少なくとも１つの追加のアプリケーションを前記第１アプリケーションに関連付けるステップであって、前記許容範囲は、前記再アクティブ化ポリシーグループに関連付けられるステップをさらに含むことを特徴とする請求項２５に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、コンピュータソフトウェアライセンス付与の分野に関する。より詳細には、本発明は、１つまたは複数のソフトウェアアプリケーションライセンスの再アクティブ化の方法に関する。
【背景技術】
【０００２】
ソフトウェアの不正使用は、ソフトウェアメーカーにとっての財政上の大きな懸念である。ソフトウェアメーカーからの現在の動向は、アプリケーションの１つまたは複数のコピーの個人的な使用のためにユーザにライセンスを付与することであるが、ユーザはしばしば、ライセンス条件に違反し、ライセンスが付与された数よりも多くのコンピュータ上でアプリケーションを使用しようと試み得る。あるいは、ソフトウェアは、それを使用しようとし得る非ライセンスユーザの手に渡ることがある。
【０００３】
こうした非ライセンス行為を防止する１つの方法は、ライセンスユーザに、初期インストールの直後にソフトウェアアプリケーションのアクティブ化を行うように求めることである。このプロセスでは、ユーザは、ソフトウェアメーカーに、ソフトウェアの製品およびシリアル番号などの情報を提供する。これは、オンラインまたは電話で、要求された情報を表す数字を入力することによって実施され得る。製品およびシリアル番号はしばしば、数十桁の長さである。次いで、ソフトウェアメーカーは、その特定の製品のソフトウェアライセンスが有効であることを確認することができる。このプロセスの一環として、その特定のユーザマシンではなく、ソフトウェアがインストールされるハードウェアの構成を識別するハードウェア識別子（ＨＷＩＤ：ｈａｒｄｗａｒｅ  ｉｄｅｎｔｉｆｉｅｒ）が一般に生成される。このＨＷＩＤは、ソフトウェアをアクティブ化するときにユーザが有する初期ハードウェア構成として記録される。
【０００４】
一般に、メーカーは、ユーザが提供した製品、シリアル番号およびＨＷＩＤ情報に、その情報が有効であることの確認を付けて応答する。ユーザのためにソフトウェアアプリケーションが機能できるようにするために、アクティブ化コードがユーザコンピュータに発行され得る。動作において、インストールされたアプリケーションは次いで、後のアプリケーションアクセス時に、そのＨＷＩＤを用いて、ハードウェア構成が大きく変化していないことを確認することができる。アプリケーションアクセス時にＨＷＩＤが変更されている場合、それは、アプリケーションがソフトウェア契約に違反して別のマシンに移されたことの表れであり得る。こうした状況では、ユーザは、アプリケーションにアクセスするのを妨げられる。このように、アクティブ化のプロセスは、不正使用の状況においてソフトウェアアプリケーションを使用できないようにすることによって、ソフトウェアライセンス契約を保護するものとなり得る。
【０００５】
しかし、ユーザコンピュータ内のＨＷＩＤ変更の理由は、契約違反ではなかったかもしれない。ＨＷＩＤの変更は、正当なライセンス所有者がそのライセンスソフトウェアを実行するために使用している主要なハードウェアアップグレードの結果であり得る。こうした状況では、アプリケーションは、ソフトウェアがユーザによってアクセスされ得る前に、再アクティブ化の動作がうまく完了することを求める。再アクティブ化は、ユーザが製品に関する情報、およびシリアル番号情報の一部またはすべてを再入力することを求める。この場合もやはり、これは、数十桁を手入力することを伴い得る、オンラインまたは電話対話によって実施され得る。アクティブ化保護を備えるすべてのアプリケーションが、主要なハードウェア変更後に再アクティブ化を要求するので、それぞれのアプリケーションは、あらゆるアプリケーションに対して再アクティブ化が実施されるまで、正当なユーザがそのライセンスソフトウェアにアクセスするのを妨げることができる。これは、特に電話の通信リンクを介して手入力で実施される場合には、長い退屈な作業であり得る。
【０００６】
図１Ａに、複数の再アクティブ化が行われ得る典型的な従来技術のシナリオを示す。このシナリオでは、ユーザは、単一のコンピュータ上で、時点Ｔ＝０に、アプリケーション１をアクティブ化する。上記で論じたように、そのアクティブ化は、特定のＨＷＩＤが、アプリケーション１のアクティブ化の時点のコンピュータのハードウェア構成を示すように構成されるようにする。大きなハードウェア変更は行われず、またユーザが時点Ｔ＝１およびＴ＝２にアプリケーション２およびアプリケーション３をそれぞれアクティブ化すると想定する。時点Ｔ＝３に、正当なユーザのコンピュータはハードウェア変更を受け、このハードウェア変更は、様々なアプリケーション内で不正使用対策のアクティブ化ソフトウェアによって設定された許容閾値を超える。ハードウェア変更の閾値が超過されると、不正使用保護されたアプリケーションへの新しいどのアクセスによっても、再アクティブ化要求の発生が引き起こされる。
【０００７】
時点Ｔ＝４で、ユーザは、アプリケーション１にアクセスする。アプリケーションの不正使用対策ソフトウェアは、大きなハードウェア変更が行われたことを検出する。次いで、アプリケーションは、ユーザに再アクティブ化プロセスを実施するように求める。時点Ｔ＝５で、再アクティブ化プロセスが行われ、ユーザにソフトウェアへの継続アクセスが許可される。次いで、ユーザは、時点Ｔ＝６で、無作為の順序で次のアプリケーション、すなわちアプリケーション３にアクセスする。その不正使用保護されたソフトウェアは、大きなハードウェア変更を再び検出し、再アクティブ化を要求する。時点Ｔ＝７で、ユーザは、編集を行い、アプリケーション３を再アクティブ化する。時点Ｔ＝８で、ユーザは、次のアプリケーション、ここではアプリケーション２にアクセスする。この場合も、不正使用検出ソフトウェアは、大きなハードウェア変更を検出し、アプリケーション２の再アクティブ化を要求する。ユーザは、アプリケーション３へのアクセスを希望するならば従わなければならず、したがって。時点Ｔ＝９で、再アクティブ化が行われる。このプロセスは、元のＨＷＩＤに関連付けられている、ユーザがインストールした、ありとあらゆるアプリケーションについて継続され得る。
【０００８】
図１Ｂに、よりよいシナリオが示されている。この図では、Ｔ＝０からＴ＝５まで、同じ時系列が示されている。ユーザは、Ｔ＝０からＴ＝２まで、ソフトウェアをアクティブ化し、Ｔ＝３で、大きなハードウェア変更に遭遇し、Ｔ＝４およびＴ＝５で、アプリケーション１へのアクセスおよび再アクティブ化をそれぞれ行う。しかし、Ｔ＝６およびＴ＝８で、アプリケーション３およびアプリケーション２にそれぞれアクセスするときに、再アクティブ化が必要とされないならば、ユーザにとってより好都合である。しかし、このシナリオは、現行の不正使用対策アクティブ化方式、特に電話リンク再アクティブ化技術を使用する方式のもとでは、ユーザは現在使用することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、互換性のあるＨＷＩＤを有するソフトウェアを再アクティブ化しなければならないライセンスユーザの手間を省くために、正当なソフトウェアを再アクティブ化するさらに好都合な方法を可能にする方法が求められている。本発明は、本明細書で述べる利点によって、上記のニーズに対処し、それを解決する。
【課題を解決するための手段】
【００１０】
本発明の一実施形態は、ソフトウェアライセンスを再アクティブ化し、追加のアプリケーションの再アクティブ化が不要になるように、その再アクティブ化を１つまたは複数の追加のソフトウェアアプリケーションに適用させるための方法を含む。最初に、第１のアプリケーションのアクティブ化によって、第１のハードウェア識別子を第１の再アクティブ化ポリシーグループに関連付ける。第１アプリケーションは、第１再アクティブ化ポリシーグループのメンバである。少なくとも１つの追加のアプリケーションは、それが第１再アクティブ化ポリシーグループと互換性がある場合に、第１ハードウェア識別子に関連付けられ得る。再アクティブ化ポリシーグループ内の第１のアプリケーションが再アクティブ化される場合、再アクティブ化ポリシーグループ内の他のソフトウェアアプリケーションの再アクティブ化は不要である。第１アプリケーションの再アクティブ化によって、第１再アクティブ化ポリシーグループに関連する新しいハードウェア識別子が格納され、その新しいハードウェア識別子が、ユーザに他のアプリケーションの再アクティブ化を要求しないようにするために、他のアプリケーションによって使用される。
【００１１】
本発明の一実施形態では、あるアプリケーションと別のアプリケーションの間の互換性は、結合リスト内で確かめることができ、この結合リストは、２つのアプリケーションが、同じハードウェア識別子を共有することによって同じ再アクティブ化ポリシーグループに加わることができるようにし得る。したがって、一方のアプリケーション上で再アクティブ化が必要になる場合、他方のアプリケーションは、ユーザへのサービスの提供を続けるために、再アクティブ化される必要はない。
【００１２】
上記の要約、および例示的な実施形態についての以下の詳細な説明は、添付の図面と併せ読めばよりよく理解される。本発明の実施形態について例示するため、図面に本発明の例示的な構成を示すが、しかし、本発明は、開示する特定の方法および手段に限定されない。
【発明を実施するための最良の形態】
【００１３】
概要
ソフトウェアの不正使用（ｐｉｒａｃｙ）を撲滅する１つの方法は、ソフトウェアがあるマシンから別のマシンに移されていることを示すハードウェア環境の変化をソフトウェアアプリケーションが検出することを可能とする手段として、ハードウェア識別子を使用することである。このトリガによって、ソフトウェアは、ソフトウェアライセンスの再アクティブ化を要求することができる。しかし、ハードウェアのアップグレードによって不正使用検出ソフトウェアがすべてのライセンスの再アクティブ化を強制される場合、顧客は、所有しライセンス付与されたソフトウェアのそれぞれを再アクティブ化しているのを容易に気づくことができる。すべてのライセンスソフトウェアを再アクティブ化することにユーザの時間を浪費しないようにするために、本発明の一実施形態は、互換性のあるソフトウェアを単一の再アクティブ化ポリシーグループ内に置く。
【００１４】
再アクティブ化ポリシーグループは、ソフトウェアアプリケーションの１つの再アクティブ化が、ポリシーグループに属するすべてのソフトウェアアプリケーションにとって十分なものとなることを可能にする。多くのポリシーグループが存在しえ、それぞれがハードウェア変更に対してそれぞれ異なる許容度（ｔｏｌｅｒａｎｃｅ）を有し、またはそれぞれが異なる信頼連鎖（ｔｒｕｓｔ  ｃｈａｉｎｓ）をもつ。再アクティブ化は、電話またはオンラインで実施され得る。本発明は、単一の再アクティブ化がポリシーグループ内のすべてのアプリケーションにとって有効であることを可能にし、またソフトウェアアクティブ化の顧客体験を劇的に改善することができ、既存の製品アクティブ化技術へのアドオン（ａｄｄ−ｏｎ）となり得る。
【００１５】
本発明の例示的な実施形態
図２に、本発明のアクティブ化の態様を表すフローチャート２００を示す。最初に、ユーザは、購入したソフトウェアの製品識別子およびシリアル番号などの情報を入力することによって、コンピュータ上でソフトウェアライセンスをアクティブ化する（ステップ２０５）。この情報は、オンライン接続、または顧客が電話のキーパッドを使用して情報を入力する電話リンクを介して送信され得る。ライセンスソフトウェアがアクティブ化されるときのユーザコンピュータのハードウェア構成情報を表すハードウェア識別子（ＨＷＩＤ）も送信される。このＨＷＩＤは一般に、製品識別子、および製品のシリアル番号に関する情報と共にサーバ内に格納される。ソフトウェアを使用できるようにする確認がユーザコンピュータに送信され、またＨＷＩＤが、ソフトウェアアプリケーションポリシーのインディケーション（ｉｎｄｉｃａｔｉｏｎ）と共に格納される（ステップ２０７）。
【００１６】
他の互換性のあるソフトウェアアプリケーションが同じ再アクティブ化ポリシーを共有することができるように、ソフトウェアライセンス再アクティブ化ポリシーが存在する。例えば、同じハードウェア変更許容度を有する、同じソフトウェアメーカーからの複数の異なるアプリケーションがある場合、それは潜在的に、同じ再アクティブ化ポリシーを共有することができる。例えば、こうしたアプリケーションを単一のポリシーのもとでグループ化することによって、すべての互換性のあるアプリケーションは、同じポリシーを使用することができる。異なるハードウェア変更許容度を有し、または異なる信頼連鎖を有するソフトウェアアプリケーションには、異なる再アクティブ化ポリシーグループが与えられ、またはそれに当てはめられ得る。本発明のある態様によれば、ソフトウェアアプリケーションは、再アクティブ化ポリシーグループをホストすることができ、またはコンピュータシステム上に既に存在しているものに加わることができる。グループに加わる１つの方法は、ＨＷＩＤの互換性の比較であり得る。図２のフローチャートでは、以前にインストールされた再アクティブ化ポリシーグループが存在せず、また第１アプリケーションが再アクティブ化ポリシーグループを確立すると想定する。図２に戻ると、次いで、アクティブ化のときに、ＨＷＩＤが、第１アプリケーションに関する対応するソフトウェア再アクティブ化ポリシーグループ情報と共にユーザコンピュータ上に格納され得る（ステップ２１０）。上述したように、同じ情報が、ソフトウェアメーカーのサーバにも格納され得る。
【００１７】
同様に、ソフトウェアシリアル番号および製品識別子を入力することによって、第２のアプリケーションが、ユーザコンピュータ上でアクティブ化され得る（ステップ２１５）。本発明の一態様では、第２アプリケーションは、互換性があるかどうか確かめるために、第１再アクティブ化ポリシーグループに対してチェックされ得る（ステップ２２０）。この場合、それらに互換性があるかを判断するために、第２アプリケーションソフトウェア再アクティブ化ポリシーグループと、第１再アクティブ化ポリシーグループ間の比較が行われる。それらに互換性がない場合、第２のソフトウェアアプリケーションポリシーグループのインディケーションが、現在のコンピュータハードウェア構成のＨＷＩＤと共に格納される（ステップ２３０）。ソフトウェア再アクティブ化ポリシーグループに互換性がある場合、第２アプリケーションに、第１アプリケーションポリシーグループのＨＷＩＤが、第１再アクティブ化ポリシーのインディケーションと共に与えられる（ステップ２２５）。第２アプリケーションは、それが単一の再アクティブ化ポリシーグループに加わり得る前に、少なくとも１度はアクティブ化されることに留意されたい。これは、第１アプリケーションが、それが確立した再アクティブ化ポリシーグループに依然として結合されていると想定している。
【００１８】
上述したように、第２アプリケーションが第１アプリケーションと互換性があるかどうかチェックするためのテストが実施され得る。このテストは、再アクティブ化ポリシーグループに関連して設けられるハードウェア変更許容度、または信頼連鎖のチェックであり得る。第２アプリケーションが、それが信頼するアプリケーションをリストアップする結合リストを有し、第１アプリケーションがそのリストのメンバである場合、またハードウェア変更許容度が許容できるものである場合、第２アプリケーションは、第１アプリケーションの再アクティブ化ポリシーグループに加わることができ、第１アプリケーションＨＷＩＤをそれ自身のものとして格納し得る（ステップ２２５）。ソフトウェアアプリケーションの互換性は、結合リストを使用して達成され得る。結合リストは、アプリケーションと共に提供される、既知の互換アプリケーションをリストアップする一覧である。所与のメーカーからのこうしたリストは、メーカーがアプリケーションスイートを形成するために通常バンドルするアプリケーションを含み得る。ワシントン、レッドモンドのＭｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎ社から入手可能なＭｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ（商標）は、こうしたアプリケーションスイートの一例である。この例では、Ｗｏｒｄ、Ｅｘｃｅｌ、Ｐｏｗｅｒ  Ｐｏｉｎｔ、Ｏｕｔｌｏｏｋ、ＡｃｃｅｓｓおよびＶｉｓｉｏのアプリケーションは、ライセンス付与のために同じハードウェア変更許容度を有し、また結合リストを介した単一の再アクティブ化ポリシーグループ内に置かれる候補であり得る。そのメーカーが製造しないアプリケーションを含めて、他の任意のアプリケーションが、結合リスト内に入れられ得る。結合リストは、別のアプリケーションが、再アクティブ化されるソフトウェア再アクティブ化ポリシーグループのライセンスと互換性があるかどうかを評価するために、アプリケーション再アクティブ化が必要とされるときにアクセスされ得る。
【００１９】
図３は、本発明の単一再アクティブ化の態様を示すフローチャート３００である。図２に関して参照したユーザが、そのコンピュータにハードウェア変更を行ったと想定する。またそのハードウェア変更が、単一の再アクティブ化ポリシーグループのために存在するハードウェア変更閾値を超えると想定する。ユーザが、現在許容範囲外（ｏｕｔ−ｏｆ−ｔｏｌｅｒａｎｃｅ）の再アクティブ化ポリシーグループ内にある任意のアプリケーション、例えば第１アプリケーションにアクセスする場合、アクティブ化ソフトウェアは、大きく変更されたハードウェア環境を検出する（ステップ３０５）。このステップで、第１アプリケーションからアクセス可能な位置（信頼されたストア）に格納されているＨＷＩＤが、現在生成されたＨＷＩＤと比較される。製品再アクティブ化ソフトウェアは次に、更新されたＨＷＩＤが、同じ再アクティブ化ポリシーグループの他のメンバアプリケーションに関連して格納されているかどうか確かめるために、再アクティブ化ポリシーグループをチェックする（ステップ３１０）。使用可能なより最近のＨＷＩＤがあり、またその新しいＨＷＩＤがハードウェア変更許容度を超えない場合、第１アプリケーションは最新のＨＷＩＤを採用し、再アクティブ化は、実施される必要はない（ステップ３１５）。
【００２０】
第１ポリシーグループの再アクティブ化ポリシーの許容範囲（ｔｏｌｅｒａｎｃｅ）内に入る、より新しいＨＷＩＤがない場合、それはハードウェア許容の範囲外であり、また許容範囲外の状態が、ソフトウェアが不正使用されたことを示し得るので、第１アプリケーションは、再アクティブ化されなければならない（ステップ３２０）。再アクティブ化の成功の一環として、より新しい現在のＨＷＩＤが生成され、アプリケーションメーカーから確認が受信された後に、第１再アクティブ化ポリシーグループに関連する記憶装置に置かれる（ステップ３２０）。次いで、第２のアプリケーションがアクセスされ、許容範囲外のハードウェア構成が検出される（ステップ３２５）。この場合もやはり、そのアクティブ化のときに、現在のＨＷＩＤを第２ソフトウェアアプリケーションに対応する格納されているＨＷＩＤと比較することによって、許容範囲外ハードウェアのインディケーションが生成される。次いで、製品再アクティブ化ソフトウェアは、そのポリシーグループについて別のさらに新しいＨＷＩＤが存在するかどうか確かめるために、第２アプリケーション再アクティブ化ポリシーグループを探索する（ステップ３３０）。この場合、第１アプリケーションおよび第２アプリケーションが同じ再アクティブ化ポリシーグループに属すると想定し、製品再アクティブ化ソフトウェアは、そのポリシーグループに対応するさらに新しいＨＷＩＤを見つけることができる。そのさらに新しいＨＷＩＤは、第１アプリケーションの再アクティブ化によってもたらされたものである。許容範囲内のそのより新しいＨＷＩＤを検出すると、第２アプリケーションについて再アクティブ化が要求される必要はない（ステップ３３５）。このようにして、第１および第２アプリケーションは同じ再アクティブ化ポリシーグループに加わっており、またそのポリシーグループは以前にステップ３２０で再アクティブ化されているので、ユーザは、第２アプリケーションの再アクティブ化を行わないで済む。したがって、ステップ３３５では、第２アプリケーションのために新しい再アクティブ化が実施される必要はない。
【００２１】
しかし、第１アプリケーションおよび第２アプリケーションが同じ再アクティブ化ポリシーグループに属さない場合、第２アプリケーションの再アクティブ化が、第２アプリケーションポリシーのための新しいＨＷＩＤをそれに相応して生成するのに伴って必要とされる（ステップ３４０）。本発明の一態様によれば、第２アプリケーションが加入している第２ポリシーグループと互換性がある他の任意のアプリケーションは、その後にユーザによってアクセスされる場合に再アクティブ化される必要はない。
【００２２】
本発明の別の実施形態では、ＨＷＩＤは、特定のユーザマシンを具体的に識別しないための、疑似的な一意の汎用ハードウェア識別子であり得る。この手法には、ユーザプライバシーについての懸念を小さくする利点がある。一般に、ＨＷＩＤは、定数ではなく、識別子がハードウェア変更に応じて変化するという点で、ハードウェア構成変更の影響を受ける。ＨＷＩＤは、コンピュータ群のハードウェア構成を表す値のハッシュであり得る。ユーザのソフトウェアアプリケーションがアクティブ化されるときに、アクティブ化のときのコンピュータハードウェア構成を表すＨＷＩＤ、および単一の再アクティブ化ポリシーグループが、リンクとして作成され、信頼されるストア内に格納され得る。これは、ソフトウェアアプリケーションが再アクティブ化ポリシーグループをホストすると想定している。本発明の一態様によれば、アプリケーションは、再アクティブ化ポリシーグループ、結合リスト、またはその両方をホストすることができる。
【００２３】
本出願と同一の出願人による、２００３年１１月１２日に出願された「Obfuscated State Store For Rights Management System And The Like」という名称の同時係属の特許出願第１０／７０６０１８号を参照することにより援用する。この同時係属の出願は、ユーザコンピュータ上で格納される状態情報ストアについて開示している。この状態情報は、ハードウェア構成識別子として使用され得る。コンピューティング装置の構成に少なくともほぼ一意である情報を取得することができ、状態ストアの少なくとも一部が格納されるべき複数の位置が決定され得る。取得された情報の少なくとも１部に基づいて、疑似ランダムのファイル名、および対応するパスが生成されることができ、それによって、生成されたファイル名、および対応するパスも同様に、コンピューティング装置に対して少なくともほぼ一意となる。生成されたファイル名およびパスは対にされて、上記位置を形成する。その後に、状態ストアは、生成された位置に従って格納される。この技術の使用によって、ユーザがその位置を発見し得る可能性がほとんどなしに、ＨＷＩＤを生成し、ユーザコンピュータ上に格納することが可能になる。この構成法（ａｒｒａｎｇｅｍｅｎｔ）の使用は、ユーザがＨＷＩＤ情報へのアクセスを取得し、それを変更して、大きなハードウェア構成変更後の再アクティブ化の不正使用保護機構を使用不可能にすることを防ぐのに役立つ。
【００２４】
一実施形態では、上記の手法で使用される、信頼され隠された格納位置は、ユーザまたはクライアント側で永続するものであり、汎用の疑似一意ＨＷＩＤで署名された、ソフトウェアメーカーのサーバにリンクされる。クライアント側ＨＷＩＤが変更されないままであり、信頼されたソフトウェア製品の再アクティブ化プロセスによって、新しい疑似一意ＨＷＩＤがアクティブ化される場合、古い疑似一意ＨＷＩＤによってアクティブ化された他のソフトウェア製品は、本発明の態様に従って再アクティブ化を必要としない。
【００２５】
本発明の一実施形態では、再アクティブ化ポリシーグループは、それぞれ異なるポリシーグループを表現するために、ＸｒＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｒｉｇｈｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ：拡張可能権利マークアップ言語）で生成される。他の実施形態では、再アクティブ化ポリシーグループは、当業者に知られている他の適切な生成方法を使用して生成され得る。本発明の一態様として、ソフトウェア製品群が同じライセンス付与ハードウェア変更許容のポリシーを共有する場合、そのソフトウェア群のための単一の再アクティブ化が可能である。こうしたポリシーグループ内のソフトウェア製品は、双方向の信頼または単一方向の信頼として指定され得る。双方向の信頼では、対応するハードウェアがグループ内のソフトウェア製品のいずれか１つによって再アクティブ化される場合、すべてのソフトウェア製品が再アクティブ化され得る。単一方向の信頼では、対応するハードウェアが１つまたは複数の指定されたソフトウェア製品によって再アクティブ化される場合だけ、すべてのソフトウェア製品が再アクティブ化される。ある実施形態では、双方向または単一方向のポリシーグループに加わる際の認証機構が存在し得る。
【００２６】
上述したように、ソフトウェアアプリケーションは、再アクティブ化ポリシーグループ、結合リスト、またはその両方をホストすることができる。したがって、あるコンピュータ上でそれぞれ異なるときにインストールされ、アクティブ化された２つのアプリケーションが、２つの異なる再アクティブ化ポリシーグループによってカバーされている状態になり得る。しかし、２つのアプリケーションが、他のアプリケーションを含む結合リストなどの互換性がある関係であれば、その２つのアプリケーションは、同じ再アクティブ化ポリシーグループ内で結局は同期が取られ得る。このイベントは、アプリケーションのうちの１つについて再アクティブ化のイベントが保証されている場合に発生し得る。この再アクティブ化イベント要求は、ポリシーグループを許容範囲外に至らせるユーザコンピュータのハードウェア変更によってトリガされ得る。許容範囲外アプリケーションの再アクティブ化の後に、そのアプリケーションの再アクティブ化ポリシーグループに関連して、新しいＨＷＩＤが提供される。第２のアプリケーションにアクセスし、それが第２の再アクティブ化ポリシーグループの許容範囲外になる場合、互換性チェックを実施することができ、第２アプリケーションは、第１グループポリシーと互換性があることが分かり得る。次いで、第２アプリケーションは、その第１グループに加わり、従って、その再アクティブ化ＨＷＩＤを採用することによって、第１アプリケーションと同期するようになる。したがって、第２アプリケーションが、第１アプリケーションポリシーグループ、そのＨＷＩＤ、および互換アプリケーションをリストした結合リストからの恩恵を受けるので、第２アプリケーションの再アクティブ化は不要になる。
【００２７】
例示的なコンピューティング装置
図４および以下の議論は、本発明が実施され得る適切なコンピューティング環境についての簡潔で一般的な説明を提供するためのものである。汎用コンピュータについて以下に述べているが、これは一例にすぎず、本発明の実施形態は、ネットワーク／バスの相互運用性（ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ）および相互作用性（ｉｎｔｅｒａｃｔｉｏｎ）を有するクライアントなどの他のコンピューティング装置で実施され得る。したがって、本発明の実施形態は、非常に少ないまたは最小のクライアントリソースが関与するネットワークホストサービス（ｎｅｔｗｏｒｋｅｄ  ｈｏｓｔｅｄ  ｓｅｒｖｉｃｅｓ）の環境、例えばクライアント装置が、機器内に置かれたオブジェクトや、他のコンピューティング装置およびオブジェクトなどの単にネットワーク／バスとのインターフェースとして働くネットワーク環境内で実施され得る。要するに、データを格納することができ、またはデータを取り出すことができるいずれのところも、動作するのに望ましいまたは適切な環境である。
【００２８】
必須ではないが、本発明は、装置またはオブジェクトのためのサービスの開発者によって使用するために、オペレーティングシステムを介して実施され、かつ／またはアプリケーションソフトウェア内に含められ得る。ソフトウェアは、クライアントワークステーション、サーバ、または他の装置などの１つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明され得る。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。プログラムモジュールの機能は通常、様々な実施形態で望まれるように組み合わせることも、分散されることもできる。さらに、本発明の様々な実施形態は、他のコンピュータ構成で実施され得ることが当業者には理解されよう。使用に適し得る他の周知のコンピューティングシステム、環境および／または構成には、それだけに限らないが、パーソナルコンピュータ（ＰＣ：ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブルな家庭電化製品、ネットワークＰＣ、機器、ライト、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明の実施形態は、通信ネットワーク／バス、または他のデータ伝送媒体を介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境内で実施することもできる。分散コンピューティング環境内では、プログラムモジュールは、メモリ記憶装置を含めて、ローカルとリモートの両方のコンピュータ記憶媒体内に配置されることができ、またクライアントノードも同様に、サーバノードとして振る舞い得る。
【００２９】
したがって、図４に、本発明の諸実施形態が実施され得る適切なコンピューティングシステム環境６００の一例を示すが、上記で明らかにしたように、コンピューティングシステム環境６００は、適切なコンピューティング環境の一例にすぎず、本発明の実施形態の使用または機能の範囲に関する制限を示唆することを意図するものではない。コンピューティング環境６００は、例示的なオペレーティング環境６００内に示した構成要素のいずれか１つまたはその組合せに関するいずれかの依存関係または要件を有するものと解釈すべきでない。
【００３０】
図４を参照すると、本発明の一実施形態を実施するための例示的なシステムが、コンピュータシステム６１０の形の汎用コンピューティング装置を含んでいる。コンピュータシステム６１０の構成要素は、それだけに限らないが、処理装置６２０、システムメモリ６３０、およびシステムメモリを含めて様々なシステム構成要素を処理装置６２０に結合するシステムバス６２１を含み得る。システムバス６２１は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを用いたローカルバスを含めて、いくつかのタイプのバス構造のいずれかであり得る。限定のためではなく、例を挙げると、こうしたアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ：Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、マイクロチャネルアーキテクチャー（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、拡張ＩＳＡ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ビデオ電子規格協会（ＶＥＳＡ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、および周辺コンポーネント相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バス（メザニンバスとも呼ばれる）が含まれる。
【００３１】
コンピュータシステム６１０は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータシステム６１０からアクセスすることができる任意の使用可能な媒体とすることができ、揮発性と不揮発性、取出し可能と取出し不可能の両方の媒体を含む。限定のためではなく、例を挙げると、コンピュータ読取り媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装された揮発性と不揮発性、取出し可能と取出し不可能の両方の媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、読み出し専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリまたは他のメモリ技術、コンパクトディスク読み出し専用メモリ（ＣＤＲＯＭ：Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、コンパクトディスク再書込み可能（ＣＤＲＷ：ｃｏｍｐａｃｔ  ｄｉｓｃ−ｒｅｗｒｉｔａｂｌｅ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）または他の光ディスクス記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、またコンピュータシステム６１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または搬送波や他のトランスポート機構などの変調されたデータ信号内の他のデータを備え、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号内の情報を符号化するやり方でその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定するためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響などの無線媒体、ＲＦ、赤外線、および他の無線媒体が含まれる。上記内容のいずれかの組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれるべきである。
【００３２】
システムメモリ６３０は、読み出し専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）６３１およびランダムアクセスメモリ（ＲＡＭ）６３２など、揮発性および／または不揮発性の形のコンピュータ記憶媒体を含む。起動時などにコンピュータシステム６１０内の要素間で情報を転送する助けをする基本ルーチンを含む基本入出力システム（ＢＩＯＳ：ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）６３３は一般に、ＲＯＭ６３１に格納される。ＲＡＭ６３２は一般に、処理装置６２０によって即時にアクセス可能であり、かつ／またはそれによる操作を現在受けているデータおよび／またはプログラムモジュールを含む。限定するためではなく、例示するために、図４に、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６、およびプログラムデータ６３７を示す。
【００３３】
コンピュータシステム６１０は、他の取出し可能／取出し不可能、揮発性／不揮発性のコンピュータ記憶媒体をも含み得る。例示するためだけに、図４に、取出し不可能な不揮発性の磁気媒体から読み出し、またはそこに書き込むハードディスクドライブ６４１、取出し可能な不揮発性の磁気ディスク６５２から読み出し、またはそこに書き込む磁気ディスクドライブ６５１、およびＣＤ−ＲＯＭ、ＣＤＲＷ、ＤＶＤ、他の光メディアなどの取出し可能な不揮発性の光ディスク６５６から読み出し、またはそこに書き込むための光ディスクドライブ６５５を示す。この例示的なオペレーティング環境で使用され得る他の取出し可能／取出し不可能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ６４１は一般に、インターフェース６４０などの取出し不可能なメモリインターフェースを介してシステムバス６２１に接続され、磁気ディスクドライブ６５１および光ディスクドライブ６５５は一般に、インターフェース６５０などの取出し可能なメモリインターフェースによってシステムバス６２１に接続される。
【００３４】
上記で論じ、また図４に示したドライブおよびその関連のコンピュータ記憶媒体によって、コンピュータシステム６１０用の、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびその他のデータの記憶を提供する。図４では、例えば、ハードディスクドライブ６４１は、オペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６およびプログラムデータ６４７を格納するものとして示されている。こうした構成要素は、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６およびプログラムデータ６３７と同じであることも、それとは異なることもあることに留意されたい。少なくともそれらがそれぞれ異なるコピーであることを示すために、ここではオペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６およびプログラムデータ６４７に異なる番号が付与されている。ユーザは、キーボード６６２、および一般にマウス、トラックボールまたはタッチパッドと称されるポインティング装置６６１などの入力装置を用いて、コンピュータシステム６１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどを含み得る。これらのおよび他の入力装置はしばしば、システムバス６２１に結合されたユーザ入力インターフェース６６０を介して処理装置６２０に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など、他のインターフェースおよびバス構造によって接続されることもできる。モニタ６９１または他のタイプの表示装置もまた、ビデオインターフェース６９０などのインターフェースを介してシステムバス６２１に接続され、このインターフェースは、ビデオメモリ（図示せず）と通信し得る。コンピュータシステムは、モニタ６９１に加えて、出力周辺装置インターフェース６９５を介して接続され得るスピーカ６９７およびプリンタ６９６などの他の周辺出力装置をも含み得る。
【００３５】
コンピュータシステム６１０は、リモートコンピュータ６８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化されまたは分散された環境で動作することができる。リモートコンピュータ６８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、また図４にはメモリ記憶装置６８１だけが示されているが、コンピュータシステム６１０に関して上記で述べた要素の多くまたはすべてを一般に含む。図４に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）６７１、および広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）６７３を含むが、他のネットワーク／バスをも含み得る。こうしたネットワーキング環境は、家庭、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。
【００３６】
ＬＡＮネットワーキング環境内で使用される場合、コンピュータシステム６１０は、ネットワークインターフェースまたはアダプタ６７０を介してＬＡＮ６７１に接続される。ＷＡＮネットワーキング環境内で使用される場合、コンピュータシステム６１０は一般に、モデム６７２、またはインターネットなどのＷＡＮ６７３を介して通信を確立する他の手段を含む。内部にあることも、外部にあることもあるモデム６７２は、ユーザ入力インターフェース６６０または他の適切な機構を介してシステムバス６２１に接続され得る。ネットワーク環境では、コンピュータシステム６１０に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置内に格納され得る。限定のためではなく、例示するため、図４に、メモリ装置６８１内に常駐するリモートアプリケーションプログラム６８５を示す。図示するネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段が使用され得ることが理解されよう。
【００３７】
パーソナルコンピューティングとインターネットの集中に鑑みて、様々な分散コンピューティングフレームワークが開発され、また開発されている。個人およびビジネスユーザには同様に、アプリケーションおよびコンピューティング装置のためのシームレスに相互運用可能な、ウェブ対応のインターフェースが提供され、コンピューティング活動をますますウェブブラウザまたはネットワーク指向のものにしている。
【００３８】
例えば、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社から入手可能なＭＩＣＲＯＳＯＦＴ（登録商標）のＮＥＴ（商標）プラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディングブロックサービス、およびダウンロード可能な装置ソフトウェアを含む。例示的な実施形態について、コンピューティング装置内に常駐するソフトウェアに関連して本明細書では述べているが、操作が、ＮＥＴ（商標）の言語およびサービスのすべて、および他の分散コンピューティング環境フレームワークなどによって実施され、そこでサポートされ、またはそれを介してアクセスされるように、本発明の実施形態の１つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラミングインターフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）、あるいはコプロセッサ、表示装置および要求側オブジェクトのうちのいずれかの間の「ミドルマン（ｍｉｄｄｌｅ  ｍａｎ）」オブジェクトを介して実施することもできる。
【００３９】
上述したように、本発明の例示的な実施形態について、様々なコンピューティング装置およびネットワークアーキテクチャに関連して説明したが、基本の概念は、不正使用対策のソフトウェア機構を実装することが望まれる任意のコンピューティング装置またはシステムに適用することができる。したがって、本発明の例示的な実施形態に関して述べた方法およびシステムは、様々なアプリケーションおよび装置に適用され得る。例示的なプログラミング言語、名前および例は、様々な選択肢を表すものとしてここでは選択されているが、こうした言語、名前および例は、限定することを意図するものではない。本発明の実施形態によって達成されるものと同じ、類似のまたは等価のシステムおよび方法を達成するオブジェクトコードを提供する複数の方法があることが当業者には理解されよう。
【００４０】
本明細書で述べた様々な技術は、ハードウェアまたはソフトウェア、あるいは適切な場合にはその組合せと共に実装され得る。したがって、本発明の方法および装置、またはその特定の態様またはその一部は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン読取り可能記憶媒体などの有形媒体中に具現化されたプログラムコード（すなわち命令）の形を取ることができ、該プログラムコードがロードされて、コンピュータなどのマシンによって実行されるときに、該マシンは、本発明を実施するための装置になる。プロブラマブルなコンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性と不揮発性のメモリおよび／または記憶要素）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩなどを使用することによって本発明の一実施形態の信号処理サービスを使用し得る１つまたは複数のプログラムは、コンピュータと通信するために、ハイレベルの手続き型またはオブジェクト指向型のプログラミング言語で実装されることが好ましい。しかし、そのプログラムは、所望であれば、アセンブリまたはマシン言語で実装され得る。いずれの場合も、言語は、コンパイルされまたは解釈された言語であり、ハードウェア実装と組み合わせられ得る。
【００４１】
本発明の態様について、様々な形の好ましい諸実施形態に関連して述べたが、他の類似の実施形態を使用することができ、あるいはそこから逸脱せずに、本発明の同じ機能を実施するために、説明した諸実施形態に対して修正および追加が行われ得ることを理解されたい。さらに、特に複数の無線ネットワーク装置が増加し続けているので、ハンドヘルド装置のオペレーティングシステム、および他のアプリケーション固有のオペレーティングシステムを含めて、様々なコンピュータプラットフォームが企図されることを強調しておく。したがって、特許請求された本発明は、単一の実施形態に限定されるべきではなく、添付の特許請求の範囲による幅および範囲において解釈すべきである。
【図面の簡単な説明】
【００４２】
【図１Ａ】ライセンスソフトウェアの複数の再アクティブ化の従来技術シナリオの時系列を示す図である。
【図１Ｂ】ライセンスソフトウェアの複数の再アクティブ化を大幅に取り除くことができるより望ましいシナリオの時系列を示す図である。
【図２】本発明のアクティブ化の態様のフローチャートである。
【図３】本発明の再アクティブ化の態様のフローチャートである。
【図４】本発明の態様が実施され得る例示的なコンピューティング環境を示すブロック図である。
【符号の説明】
【００４３】
６００  コンピューティング環境
６２０  処理装置
６２１  システムバス
６３０  システムメモリ
６３４  オペレーティングシステム
６３５  アプリケーションプログラム
６３６  他のプログラムモジュール
６３７  プログラムデータ
６４０  取出し不可能な不揮発性メモリインターフェース
６４４  オペレーティングシステム
６４５  アプリケーションプログラム
６４６  他のプログラムモジュール
６４７  プログラムデータ
６５０  取出し可能な不揮発性メモリインターフェース
６６０  ユーザ入力インターフェース
６６１  マウス
６６２  キーボード
６７０  ネットワークインターフェース
６７１  ローカルエリアネットワーク
６７２  モデム
６７３  広域ネットワーク
６８０  リモートコンピュータ
６８５  リモートアプリケーションプログラム
６９０  ビデオインターフェース
６９１  モニタ
６９５  出力周辺装置インターフェース
６９６  プリンタ
６９７  スピーカ
【図１Ａ】
2006048648.tif 000003
【図１Ｂ】
2006048648.tif 000004
【図２】
2006048648.tif 000005
【図３】
2006048648.tif 000006
【図４】
2006048648.tif 000007
【外国語明細書】
2006048648000001.pdf