(57)【要約】  【課題】  簡単かつ便利な方法でライセンスを転送可能とすることによって、合法ユーザに対するライセンスの可用性を保証するライセンス管理システムを提供する。  【解決手段】  ソフトウェア・プロダクト（４、５５、６５）を用いるためのライセンスをデータ・トークン（７、５６、６７）によって表すソフトウェア・ライセンス管理システム（１、５０、６０）。このシステムは、ユーザ・デバイス（３、５３、６４）においてソフトウェア・プロダクトの使用を制御するためのソフトウェア・コントローラ（６ａ、５２ａ、６２ａ）と、データ通信ネットワーク（５、５４、６３）を介してソフトウェア・コントローラと通信を行うためのライセンス管理サーバ（２、５１、６１）と、を含む。ソフトウェア・コントローラ（６ａ、５２ａ、６２ａ）は、実質的に、ライセンス管理サーバ（２、５１、６１）によってソフトウェア・コントローラに供給される現在のデータ・トークン（７、５６、６７）に関連した使用期間中のみ、ユーザ・デバイスにおけるソフトウェア・プロダクトの使用を可能とする。必要な場合、交換トークンを、別の同様のソフトウェア・コントローラに供給して、例えば故障の場合に、ライセンスを移すことができる。ソフトウェア・コントローラ（６ａ、５２ａ、６２ａ）は、新しいデータ・トークンに交換するため、ライセンス管理サーバ（２、５１、６１）に現在のデータ・トークンまたは交換トークンのいずれかを供給するように適合されている。これは、２つの環境において実行される。すなわち、（ａ）ライセンス管理サーバによって供給される現在のデータ・トークンに関連付けた使用期間を超えてソフトウェア・プロダクトのためのライセンスを延長するため、および（ｂ）別のソフトウェア・コントローラからライセンスを移すために交換トークンを受信した場合、である。ライセンス管理サーバは、現在のデータ・トークンを置換する場合、新しいデータ・トークンをソフトウェア・コントローラに供給する。新しいデータ・トークンは、ソフトウェア・プロダクトの使用を継続することができる新しい使用期間を有する。環境（ａ）において、ライセンスはこのように延長され、環境（ｂ）において、ライセンスはこのように新しいソフトウェア・コントローラに移される。また、システム（１、５０、６０）は、多数のユーザ・デバイス上で同時にソフトウェア・プロダクト（４、５５、６５）の使用を防止または禁止するための機構を組み込んでいる。【選択図】  図１
2007520815.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア・プロダクト（４、６５）を用いるためのライセンスをデータ・トークン（７、６７）によって表すソフトウェア・ライセンス管理システム（１、６０）であって、
ユーザ・デバイス（３、６４）においてソフトウェア・プロダクト（４、６５）の使用を制御するためのソフトウェア・コントローラ（６ａ、６２ａ）と、
データ通信ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、６２ａ）と通信を行うためのライセンス管理サーバ（２、６１）と、
を含み、前記ソフトウェア・コントローラ（６ａ、６２ａ）が、
実質的に、前記ライセンス管理サーバ（２、６１）によって前記ソフトウェア・コントローラに供給される現在のデータ・トークン（７、６７）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（４、６５）の前記使用を可能とし、
前記ライセンス管理サーバによって供給される前記現在のデータ・トークン（７、６７）に依存した交換トークンに対するユーザ・アクセスを可能とし、これによって、前記交換トークンを、現在のデータ・トークンとして、別の前記ソフトウェア・コントローラ（６ｂ、６２ｂ）に供給することができるようにし、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（７、６７）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクト（４、６５）のための前記ライセンスを延長するため、および（ｂ）前記現在のデータ・トークンが別の前記ソフトウェア・コントローラからの交換トークンである場合、前記現在のデータ・トークンを置換する新しいデータ・トークンに交換するため、前記ネットワーク（５、６３）を介して前記ライセンス管理サーバに前記現在のデータ・トークン（７、６７）および前記交換トークンの一方を供給するように適合され、
前記ライセンス管理サーバ（２、６１）が、
現在のデータ・トークンを交換するため、前記現在のデータ・トークン（７、６７）を置換するための新しい使用期間が関連付けられた新しいデータ・トークン、または、前記ソフトウェア・コントローラから受信した前記現在のデータ・トークンに対応する交換トークンを、前記ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、６２ａ）に供給し、
交換のために前記ソフトウェア・コントローラから受信した前記トークンが、前記ライセンス管理サーバ（２、６１）によってすでに交換されたトークンに対応するか否かを検出するように適合されている、システム。
【請求項２】
前記交換トークンが前記現在のデータ・トークン（７、６７）のコピーであり、前記ライセンス管理サーバ（２、６１）が、同じデータ・トークンが交換のために２度受信されたか否かを検出するように適合されている、請求項１に記載のシステム。
【請求項３】
前記ライセンス管理サーバ（２、６１）が、
交換のために前記サーバ（２、６１）が受信した各データ・トークン（７、６７）に対応するトークン識別子をストアし、
各受信したデータ・トークンのための前記トークン識別子を前記ストアしたトークン識別子と比較して、同じデータ・トークン（７、６７）が交換のために２度受信されたか否かを検出するように適合されている、請求項２に記載のシステム。
【請求項４】
データ・トークン（７、６７）のための前記トークン識別子がそのデータ・トークンを含む、請求項３に記載のシステム。
【請求項５】
前記ライセンス管理サーバ（２、６１）から前記ソフトウェア・コントローラ（６ａ、６２ａ）が受信したデータ・トークンのチェーン内の交互のデータ・トークン（７、６７）に関連した前記使用期間が重複しないように前記システムが適合されている、請求項１乃至４のいずれかに記載のシステム。
【請求項６】
各データ・トークン（７、６７）に交換期間が関連付けられ、
現在のデータ・トークンに関連した前記交換期間中のみ、前記現在のデータ・トークンを置換するための新しいデータ・トークンを前記ソフトウェア・コントローラ（６ａ、６２ａ）によって取得可能であるように前記システムが適合されている、請求項１乃至５のいずれかに記載のシステム。
【請求項７】
データ・トークン（７、６７）に関連付けた前記使用期間および交換期間が重複する、請求項６に記載のシステム。
【請求項８】
前記ソフトウェア・コントローラ（６ａ、６２ａ）が、前記ユーザによるストアのために前記交換トークンを供給することによって前記交換トークンに対するユーザ・アクセスを可能とするように適合されている、請求項１乃至７のいずれかに記載のシステム。
【請求項９】
前記ソフトウェア・コントローラ（６ａ、６２ａ）が、前記交換トークンをバックアップ・ストレージ位置にストアし、前記ストレージ位置における前記交換トークンにアクセスするためのアクセス・データを前記ユーザに供給することによって、前記交換トークンに対するユーザ・アクセスを可能とするように適合されている、請求項１乃至７のいずれか１項に記載のシステム。
【請求項１０】
前記ライセンス管理サーバ（２、６１）が、受信したトークンがすでに交換したトークンに対応しない場合にのみ、前記受信したトークンに交換するために新しいデータ・トークン（７、６７）を供給するように適合されている、請求項１乃至９のいずれかに記載のシステム。
【請求項１１】
前記ライセンス管理サーバ（２、６１）が、受信したトークンがすでに交換したトークンに対応する場合にのみ、前記受信したトークンに交換するために新しいデータ・トークン（７、６７）を供給するように適合されている、請求項１乃至１０のいずれかに記載のシステム。
【請求項１２】
ソフトウェア・プロダクト（５５）を用いるためのライセンスをデータ・トークン（５６）によって表すソフトウェア・ライセンス管理システム（５０）であって、
ユーザ・デバイス（５３）においてソフトウェア・プロダクト（５５）の使用を制御するためのソフトウェア・コントローラ（５２ａ）と、
データ通信ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）と通信を行うためのライセンス管理サーバ（５１）と、
を含み、前記ソフトウェア・コントローラ（５２ａ）が、
実質的に、前記ライセンス管理サーバ（５１）によって前記ソフトウェア・コントローラに供給される現在のデータ・トークン（５６）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（５５）の前記使用を可能とし、
前記ライセンスに関連する交換トークン（５７）を受信し、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（５６）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）現在のデータ・トークン（５６）が存在しない場合に前記交換トークン（５７）が前記ソフトウェア・コントローラによって受信された場合、新しいデータ・トークンに交換するため、前記ネットワーク（５４）を介して前記ライセンス管理サーバ（５１）に前記現在のデータ・トークン（５６）および前記交換トークン（５７）の一方を供給するように適合され、
前記ライセンス管理サーバ（５１）が、
前記ライセンスのもとで前記ソフトウェア・コントローラ（５２ａ）に供給される各データ・トークン（５６）ごとに前記使用期間をストアし、
現在のデータ・トークン（５６）を交換するための新しいデータ・トークン、または、前記ソフトウェア・コントローラから受信した前記交換トークン（５７）を、前記ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）に供給し、前記新しいデータ・トークンが、前記ライセンスのもとで以前に供給されたデータ・トークンの前記使用期間と重複しない新しい使用期間を有するように適合されている、システム。
【請求項１３】
前記データ・トークン（７、５６、６７）がコインを含む、請求項１乃至１２のいずれかに記載のシステム。
【請求項１４】
データ・トークン（７、５６、６７）に関連付けられた前記使用期間が前記データ・トークンにおいて指示されている、請求項１乃至１３のいずれかに記載のシステム。
【請求項１５】
前記ソフトウェア・コントローラ（６ａ、５２ａ、６２ａ）が、前記ソフトウェア・プロダクト（４、５５、６５）のための前記ライセンスを延長するために、前記現在のデータ・トークン（７、５６、６７）および前記交換トークンの一方を自動的に前記ライセンス管理サーバ（２、５１、６１）に供給するように適合されている、請求項１乃至１４のいずれかに記載のシステム。
【請求項１６】
各データ・トークン（５６）に交換期間が関連付けられ、
現在のデータ・トークン（５６）に関連した前記交換期間中のみ、前記現在のデータ・トークンを置換するための新しいデータ・トークンを前記ソフトウェア・コントローラ（５２ａ）によって取得可能であるように前記システムが適合されている、請求項１２に記載のシステム。
【請求項１７】
データ・トークン（７、５６、６７）に関連付けられた前記交換期間が前記データ・トークンにおいて指示されている、請求項６または１６に記載のシステム。
【請求項１８】
前記データ・トークン（６７）が複数のソフトウェア・プロダクト（６５）を用いるためのライセンスを表し、
前記ソフトウェア・コントローラ（６２ａ）が、バックアップ・ストレージ位置（５８）において、前記複数のソフトウェア・プロダクトを示すプロダクト・データをストアし、実質的に、前記ライセンス管理サーバ（６１）が供給する前記現在のデータ・トークン（６７）に関連付けた前記使用期間中のみ、前記ソフトウェア・プロダクト（６７）の各々の使用を可能とするように適合された、請求項１乃至１７のいずれかに記載のシステム。
【請求項１９】
前記プロダクト・データが、各ソフトウェア・プロダクトごとに、そのソフトウェア・プロダクトのための個々のライセンス（ＬSP）を表すデータを含む、請求項１８に記載のシステム。
【請求項２０】
前記プロダクト・データが前記ソフトウェア・プロダクト（６５）を含む、請求項１８または１９に記載のシステム。
【請求項２１】
ソフトウェア・プロダクト（４、６５）を用いるためのライセンスをデータ・トークン（７、６７）によって表すソフトウェア・ライセンス管理システム（１、６０）において用いるためのソフトウェア・コントローラ（６ａ、６２ａ）であって、前記システム（１、６０）が、データ通信ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、６２ａ）と通信を行うためのライセンス管理サーバ（２、６１）を有し、前記ソフトウェア・コントローラ（６ａ、６２ａ）が、ユーザ・デバイス（３、６４）においてソフトウェア・プロダクト（４、６５）の使用を制御するための制御ロジックを含み、前記制御ロジックが、
実質的に、前記ライセンス管理サーバ（２、６１）によって前記ソフトウェア・コントローラ（６ａ、６２ａ）に供給される現在のデータ・トークン（７、６７）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（４、６５）の前記使用を可能とし、
前記ライセンス管理サーバ（２、６１）によって供給される前記現在のデータ・トークン（７、６７）に依存した交換トークンに対するユーザ・アクセスを可能とし、これによって、前記交換トークンを、現在のデータ・トークンとして、別の前記ソフトウェア・コントローラ（６ｂ、６２ｂ）に供給することができるようにし、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（７、６７）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）前記現在のデータ・トークンが別の前記ソフトウェア・コントローラからの交換トークンである場合、前記現在のデータ・トークンを置換する新しいデータ・トークンに交換するため、前記ネットワーク（５、６３）を介して前記ライセンス管理サーバ（２、６１）に前記現在のデータ・トークン（７、６７）および前記交換トークンの一方を供給するように適合されている、ソフトウェア・コントローラ。
【請求項２２】
ソフトウェア・プロダクト（４、６５）を用いるためのライセンスをデータ・トークン（７、６７）によって表すソフトウェア・ライセンス管理システム（１、６０）において、請求項２１に記載のソフトウェア・コントローラ（６ａ、２６ａ）と共に用いるためのライセンス管理サーバ（２、６１）であって、
データ通信ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、６２ａ）と通信を行い、  
現在のデータ・トークンを交換するため、前記現在のデータ・トークン（７、６７）を置換するための新しい使用期間が関連付けられた新しいデータ・トークン、または、前記ソフトウェア・コントローラ（６ａ、６２ａ９から受信した前記現在のデータ・トークンに対応する交換トークンを、前記ネットワークを介して前記ソフトウェア・コントローラ（６ａ、６２ａ）に供給し、
交換のために前記ソフトウェア・コントローラから受信した前記トークンが、前記ライセンス管理サーバ（２、６１）によってすでに交換されたトークンに対応するか否かを検出するように適合されている制御ロジックを含む、ライセンス管理サーバ。
【請求項２３】
ソフトウェア・プロダクト（５５）を用いるためのライセンスをデータ・トークン（５６）によって表すソフトウェア・ライセンス管理システム（５０）において用いるためのソフトウェア・コントローラ（５２ａ）であって、前記システム（５０）が、データ通信ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）と通信を行うためのライセンス管理サーバ（５１）を有し、前記ソフトウェア・コントローラ（５２ａ）が、ユーザ・デバイス（５３）においてソフトウェア・プロダクト（５５）の使用を制御するための制御ロジックを含み、この制御ロジックが、
実質的に、前記ライセンス管理サーバ（５１）によって前記ソフトウェア・コントローラ（５２ａ）に供給される現在のデータ・トークン（５６）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（５５）の前記使用を可能とし、
前記ライセンスに関連付けた交換トークン（５７）を受信し、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（５６）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクト（５５）のための前記ライセンスを延長するため、および（ｂ）現在のデータ・トークン（５６）が存在しない場合に前記交換トークン（５７）が前記ソフトウェア・コントローラ（５２ａ）によって受信された場合、新しいデータ・トークンに交換するため、前記ネットワーク（５４）を介して前記ライセンス管理サーバ（５１）に前記現在のデータ・トークン（５６）および前記交換トークン（５７）の一方を供給するように適合されている、ソフトウェア・コントローラ。
【請求項２４】
ソフトウェア・プロダクト（５５）を用いるためのライセンスをデータ・トークン（５６）によって表すソフトウェア・ライセンス管理システム（５０）において、請求項２３に記載のソフトウェア・コントローラ（５２ａ）と共に用いるためのライセンス管理サーバ（５１）であって、
データ通信ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）と通信を行い、
前記ライセンスのもとで前記ソフトウェア・コントローラ（５２ａ）に供給される各データ・トークン（５６）ごとに前記使用期間をストアし、
現在のデータ・トークン（５６）を交換するための新しいデータ・トークン、または、前記ソフトウェア・コントローラから受信した前記交換トークン（５７）を、前記ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）に供給し、前記新しいデータ・トークンが、前記ライセンスのもとで以前に供給されたデータ・トークンの前記使用期間と重複しない新しい使用期間を有するように適合されている制御ロジックを含む、ライセンス管理サーバ。
【請求項２５】
データ・トークン（７、６７）によって表されるライセンスに従ってユーザ・デバイス（３、６４）においてソフトウェア・プロダクト（４、６５）の使用を制御するためのコンピュータ・プログラムであって、前記ユーザ・デバイス（３、６４）がデータ通信ネットワーク（５、６３）を介してライセンス管理サーバ（２、６１）に接続可能であり、前記コンピュータ・プログラムが、
実質的に、前記ライセンス管理サーバ（２、６１）によって前記ユーザ・デバイスに供給される現在のデータ・トークン（７、６７）に関連した使用期間中のみ、前記ユーザ・デバイス（３、６４）における前記ソフトウェア・プロダクト（４、６５）の使用を可能とし、
前記ライセンス管理サーバ（２、６１）によって供給される前記現在のデータ・トークン（７、６７）に依存した交換トークンに対するユーザ・アクセスを可能とし、これによって、前記交換トークンを、現在のデータ・トークンとして、別のユーザ・デバイスに供給することができるようにし、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（７、６７）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）前記現在のデータ・トークンが別のユーザ・デバイスからの交換トークンである場合、前記現在のデータ・トークンを置換する新しいデータ・トークンに交換するため、前記ネットワーク（５、６３）を介して前記ライセンス管理サーバ（２、６１）に前記現在のデータ・トークン（７、６７）および前記交換トークンの一方を供給するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項２６】
ソフトウェア・プロダクト（４、６５）を用いるためのライセンスをデータ・トークン（７、６７）によって表すソフトウェア・ライセンス管理システム（１、６０）のライセンス管理サーバ（２、６１）において用いるためのコンピュータ・プログラムであって、前記システム（１、６０）が、請求項２１に記載のソフトウェア・コントローラ（６ａ、２６ａ）を含み、前記ライセンス管理サーバ（２、６１）が、データ通信ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、２６ａ）と通信を行うように適合され、前記コンピュータ・プログラムが、
現在のデータ・トークンを交換するため、前記現在のデータ・トークン（７、６７）を置換するための新しい使用期間が関連付けられた新しいデータ・トークン、または、前記ソフトウェア・コントローラから前記ライセンス管理サーバ（２、６１）が受信した前記現在のデータ・トークンに対応する交換トークンを、前記ネットワーク（５、６３）を介して前記ソフトウェア・コントローラ（６ａ、６２ａ）に供給すること、および、
交換のために前記ソフトウェア・コントローラから受信した前記トークンが、前記ライセンス管理サーバ（２、６１）によってすでに交換されたトークンに対応するか否かを検出することを前記ライセンス管理サーバ（２、６１）に実行させるように適合されているプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項２７】
データ・トークン（５６）によって表されるライセンスに従ってユーザ・デバイス（５３）においてソフトウェア・プロダクト（５５）の使用を制御するためのコンピュータ・プログラムであって、前記ユーザ・デバイス（５３）がデータ通信ネットワーク（５４）を介してライセンス管理サーバ（５１）に接続可能であり、前記コンピュータ・プログラムが、
実質的に、前記ライセンス管理サーバ（５１）によって前記ユーザ・デバイスに供給される現在のデータ・トークン（５６）に関連した使用期間中のみ、前記ユーザ・デバイス（５３）における前記ソフトウェア・プロダクト（５５）の使用を可能とし、
前記ライセンスに関連付けた交換トークン（５７）を受信し、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（５６）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）現在のデータ・トークン（５６）が存在しない場合に前記交換トークン（５７）が前記ユーザ・デバイス（５３）によって受信された場合、新しいデータ・トークンに交換するため、前記ネットワーク（５４）を介して前記ライセンス管理サーバ（５１）に前記現在のデータ・トークン（５６）および前記交換トークン（５７）の一方を供給するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項２８】
ソフトウェア・プロダクト（５５）を用いるためのライセンスをデータ・トークン（５６）によって表すソフトウェア・ライセンス管理システム（５０）のライセンス管理サーバ（５１）において用いるためのコンピュータ・プログラムであって、前記システム（５０）が、請求項２３に記載のソフトウェア・コントローラ（５２ａ）を含み、前記ライセンス管理サーバ（５１）が、データ通信ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）と通信を行うように適合され、前記コンピュータ・プログラムが、
前記ライセンスのもとで前記ソフトウェア・コントローラ（５２ａ）に供給される各データ・トークン（５６）ごとに前記使用期間をストアすること、および、
現在のデータ・トークン（５６）を交換するための新しいデータ・トークン、または、前記ソフトウェア・コントローラから前記ライセンス管理サーバ（５１）が受信した前記交換トークン（５７）を、前記ネットワーク（５４）を介して前記ソフトウェア・コントローラ（５２ａ）に供給し、前記新しいデータ・トークンが、前記ライセンスのもとで以前に供給されたデータ・トークンの前記使用期間と重複しない新しい使用期間を有することを前記ライセンス管理サーバ（５１）に実行させるように適合されているプログラム・コード手段を含む、コンピュータ・プログラム。
【請求項２９】
データ・トークン（７、６７）によって表されるライセンスに従ってユーザ・デバイス（３、６４）においてソフトウェア・プロダクト（４、６５）の使用を制御するための方法であって、前記ユーザ・デバイス（３、６４）がデータ通信ネットワーク（５、６３）を介してライセンス管理サーバ（２、６１）に接続可能であり、前記方法が、前記ユーザ・デバイス（３、６４）において、
実質的に、前記ライセンス管理サーバ（２、６１）によって前記ユーザ・デバイスに供給される現在のデータ・トークン（７、６７）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（４、６５）の使用を可能とするステップと、
前記ライセンス管理サーバ（２、６１）によって供給される前記現在のデータ・トークン（７、６７）に依存した交換トークンに対するユーザ・アクセスを可能とし、これによって、前記交換トークンを、現在のデータ・トークンとして、別のユーザ・デバイスに供給することができるようにするステップと、
（ａ）前記ライセンス管理サーバによって供給される現在のデータ・トークン（７、６７）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）前記現在のデータ・トークンが別のユーザ・デバイスからの交換トークンである場合、前記現在のデータ・トークンを置換する新しいデータ・トークンに交換するため、前記ネットワーク（５、６３）を介して前記ライセンス管理サーバ（２、６１）に前記現在のデータ・トークン（７、６７）および前記交換トークンの一方を供給するステップと、
を含む、方法。
【請求項３０】
ユーザ・デバイス（３、６４）におけるソフトウェア・プロダクト（４、６５）のシステム使用が請求項２９に記載の方法によって制御される、ソフトウェア・ライセンス管理システム（１、６０）のライセンス管理サーバ（２、６１）の動作のための方法であって、前記ライセンス管理サーバ（２、６１）の動作のための前記方法が、
現在のデータ・トークンを交換するため、前記現在のデータ・トークン（７、６７）を置換するための新しい使用期間が関連付けられた新しいデータ・トークン、または、前記ユーザ・デバイス（３、６４）から受信した前記現在のデータ・トークンに対応する交換トークンを、前記ネットワーク（５、６３）を介して前記ユーザ・デバイス（３、６４）に供給するステップと、
交換のために前記ユーザ・デバイス（３、６４）から受信した前記トークンが、前記ライセンス管理サーバ（２、６１）によってすでに交換されたトークンに対応するか否かを検出するステップと、
を含む、方法。
【請求項３１】
データ・トークン（５６）によって表されるライセンスに従ってユーザ・デバイス（５３）においてソフトウェア・プロダクト（５５）の使用を制御するための方法であって、前記ユーザ・デバイス（５３）がデータ通信ネットワーク（５４）を介してライセンス管理サーバ（５１）に接続可能であり、前記方法が、前記ユーザ・デバイス（５３）において、
実質的に、前記ライセンス管理サーバ（５１）によって前記ユーザ・デバイスに供給される現在のデータ・トークン（５６）に関連した使用期間中のみ、前記ソフトウェア・プロダクト（５５）の使用を可能とするステップと、
（ａ）前記ライセンス管理サーバ（５１）によって供給される現在のデータ・トークン（５６）に関連付けた前記使用期間を超えて前記ソフトウェア・プロダクトのための前記ライセンスを延長するため、および（ｂ）現在のデータ・トークン（５６）が存在しない場合に前記交換トークン（５７）が前記ユーザ・デバイス（５３）によって受信された場合、新しいデータ・トークンに交換するため、前記ネットワーク（５４）を介して前記ライセンス管理サーバ（５１）に、前記ライセンスに関連付けた、前記現在のデータ・トークン（５６）および前記交換トークン（５７）の一方を供給するステップと、
を含む、方法。
【請求項３２】
ユーザ・デバイス（５３）におけるソフトウェア・プロダクト（５５）のシステム使用が請求項３１に記載の方法によって制御される、ソフトウェア・ライセンス管理システム（５０）のライセンス管理サーバ（５１）の動作のための方法であって、前記ライセンス管理サーバ（５１）の動作のための前記方法が、
前記ライセンスのもとで前記ソフトウェア・コントローラ（５３）に供給される各データ・トークン（５６）ごとに前記使用期間をストアするステップと、
現在のデータ・トークン（５６）を交換するための新しいデータ・トークン、または、前記ユーザ・デバイス（５３）から受信した前記交換トークン（５７）を、前記ネットワーク（５４）を介して前記ユーザ・デバイス（５３）に供給し、前記新しいデータ・トークンが、前記ライセンスのもとで以前に供給されたデータ・トークンの前記使用期間と重複しない新しい使用期間を有する、ステップと、
を含む、方法。    
【請求項３３】
請求項２５乃至２８のいずれかに記載のコンピュータ・プログラムが記憶されたコンピュータコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタル権利管理に関する。デジタル権利管理は、ソフトウェア・ライセンスの管理に関係し、そのライセンスに違反しないことを保証することが目的である。ユーザ・デバイスにおいて、ライセンスが付与されたソフトウェア・プロダクトの使用を制御して、そのライセンスに違反した使用を防ぐようにするための機構を設けることによって、ライセンスを実施することができる。本発明の実施形態は、ソフトウェア・ライセンス管理システムにおいて用いる方法および装置を提供し、ユーザ・デバイスにおけるソフトウェア・プロダクトの使用をそのように制御することを伴う。
【背景技術】
【０００２】
ソフトウェア・プロダクト（プログラム、オーディオ・ファイル、ビデオ・ファイル等）のためのライセンスは、一般に、ソフトウェア・プロダクトの単一のインスタンスの使用に制限されている。すなわち、ライセンスが付与されたプロダクトは、２人以上のユーザによって、または、より正確には、同時に２つのユーザ・デバイス（ＰＣ、ＤＶＤプレーヤ等）で合法的に使用することができない。かかる限定使用ライセンスを実施するための標準的な手法は、ライセンスを特定のユーザ・デバイスにバインドすることである。これを実行するには、プロセッサＩＤ、セキュリティ・チップのＩＤ、または何らかのコンフィギュレーションの詳細の組み合わせ等の一意のデバイス識別子をライセンス内に符号化し、ユーザ・デバイスが正しいデバイス識別子を有することを確かめた後に、ライセンスが付与されたソフトウェアを動作させれば良い。例えば、メディア・プレーヤ等の使用プログラムでは、正しい識別子を有するデバイス上で動作していることを調べた後に、ライセンスが付与されたオーディオまたはビデオ・ファイルを実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ソフトウェア・ライセンスを特定のユーザ・デバイスにバインドすることは、デバイスが故障した場合にライセンスが実施不可能になるという欠点を有する。すなわち、この手法は、ユーザに対するライセンスの可用性を保証しない。この可用性の問題は、現在、２つの方法のうち一つで対処されているが、それらは双方とも、ほとんどのアプリケーションに対して望ましくないという新しい問題を生じる。第１の手法は、最初から２つ以上のユーザ・デバイスにライセンスをバインドするというものである。このため、現在のデバイスが故障した場合、別のデバイスによってライセンスを実施可能である。しかしながら、ユーザが全てのデバイス上で同時にライセンスを実施してライセンスを侵害することを、技術的に阻止することができない。更に、ライセンスを取得した時点で、全てのユーザがこの目的のために２つ以上のデバイスを利用可能であるわけではない。第２の手法は、古いデバイスが故障したこと、または古いデバイスのアイデンティティが変化したことをユーザが証明できるならば、新しいデバイスのための新しいライセンスをユーザに与えるというものである。これは、通常、調査の目的のためにユーザが古いデバイスをライセンサーに渡すことを伴う。この手法は、ユーザにとって著しく不便であるだけでなく、ユーザに関する情報、および、場合によっては、ユーザ・デバイスにストアされているデータにライセンサーがアクセス可能であるという、大きなプライバシー上の問題を生じる。
【０００４】
２つ以上のユーザ・デバイス上でソフトウェア・ライセンスを実施することができる異なるタイプのライセンス付与の方式は、「フローティング・ライセンス（floating license）」のものである。この場合、ライセンスは、（例えば企業の）あるユーザ・グループにバインドされ、この方式は、いずれの時点でも、ソフトウェア・プロダクトの指定された数までのライセンスをアクティブに使用可能であることを規定する。同時使用されるライセンス数に対して指定される制限は、通常、ユーザ・グループのための中央ライセンス付与サーバによって制御される。ソフトウェア・プロダクトを実行するため、ユーザ・デバイスはライセンス付与サーバに連絡を取って、一時的なライセンスを要求し、利用可能な場合（すなわち、現在使用中のライセンスが制限数未満である場合）、これを受信する。そして、通常、使用が終了すると、ライセンスはライセンス付与サーバに戻される。何らかの有効時間または使用期間がライセンスに関連付けられているという点で、ライセンスは一時的である。このように、制限されたオフ・ラインでの使用が可能となるが、使用期間が終了すると、ソフトウェア・プロダクトの実行を続けるために新しいライセンスを取得しなければならない。この方式は、異なるユーザ・デバイス間のライセンスの移動性（transferability）を与えるが、これは、企業ネットワーク等の信頼のある環境内におけるソフトウェア・プロダクトの多数インスタンスの使用を制御するために設計されている。これは、もっと一般的な環境において単一インスタンス用のライセンスによって生じる上述の問題には対処しない。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、ソフトウェア・プロダクトを用いるためのライセンスをデータ・トークンによって表すソフトウェア・ライセンス管理システムを提供する。このシステムは、ユーザ・デバイスにおいてソフトウェア・プロダクトの使用を制御するためのソフトウェア・コントローラと、データ通信ネットワークを介してソフトウェア・コントローラと通信を行うためのライセンス管理サーバと、を含む。ソフトウェア・コントローラは、実質的に、ライセンス管理サーバによってソフトウェア・コントローラに供給される現在のデータ・トークンに関連した使用期間中のみ、ソフトウェア・プロダクトの使用を可能とし、ライセンス管理サーバによって供給される現在のデータ・トークンに依存した交換トークンに対するユーザ・アクセスを可能とし、これによって、交換トークンを、現在のデータ・トークンとして、別の前記ソフトウェア・コントローラに供給することができるようにし、（ａ）ライセンス管理サーバによって供給される現在のデータ・トークンに関連付けた使用期間を超えてソフトウェア・プロダクトのためのライセンスを延長するため、および（ｂ）現在のデータ・トークンが別の前記ソフトウェア・コントローラからの交換トークンである場合、現在のデータ・トークンを置換する新しいデータ・トークンに交換するため、ネットワークを介してライセンス管理サーバに現在のデータ・トークンおよび交換トークンの一方を供給するように適合されている。更に、ライセンス管理サーバは、現在のデータ・トークンを交換するため、現在のデータ・トークンを置換するための新しい使用期間が関連付けられた新しいデータ・トークン、または、ソフトウェア・コントローラから受信した現在のデータ・トークンに対応する交換トークンを、ネットワークを介してソフトウェア・コントローラに供給し、交換のためにソフトウェア・コントローラから受信した前記トークンが、ライセンス管理サーバによってすでに交換されたトークンに対応するか否かを検出するように適合されている。
【０００６】
このため、本発明を具現化するシステムにおいては、ソフトウェア・コントローラが、現在のデータ・トークンに従ってユーザ・デバイスにおけるソフトウェア・プロダクトの使用を制御する。このデータ・トークンは、ソフトウェア・プロダクトのためのライセンスを表し、ライセンス管理サーバによって供給される。具体的には、データ・トークンには使用期間が関連付けられており、ソフトウェア・コントローラは、実質的にその使用期間中のみソフトウェア・プロダクトの使用を可能とする。しかしながら、現在のトークンの使用期間を超えてライセンスを延長する必要がある場合（上述の（ａ）環境）、ソフトウェア・コントローラは、現在のトークン（または現在のトークンに依存する交換トークン）を、ライセンス管理サーバに供給して、新しいデータ・トークンと交換することができる。ライセンス管理サーバによって戻された新しいデータ・トークンは、新しい使用期間を有する。そして、新しいデータ・トークンは、ソフトウェア・コントローラが保持する現在のトークンになるので、ソフトウェア・コントローラは、この新しい使用期間中のソフトウェア・プロダクトの使用を可能とする。このようにトークンを交換することによって、ライセンスは継続的に延長することができ、通常動作においてソフトウェア・プロダクトを連続して用いることができる。しかしながら、ユーザ・デバイスにおいて故障が生じた場合にユーザに対するライセンスの可用性を保証するため、ソフトウェア・コントローラは、ユーザが上述の交換トークンにアクセスすることを可能とする。従って、この交換トークンを、例えば新しいユーザ・デバイスのための別の同様のソフトウェア・コントローラに転送して、上述のように新しいデータ・トークンと交換することができる。これによって、デバイス故障のためにライセンスが失われることから合法ユーザを保護するが、システムの３つの機構が共に機能して、ライセンスを悪用しようとする不正な試みに対する保護を与える。具体的には、これらの機構は、元のデバイス上で継続しながら、１つ以上の追加デバイス上で交換トークンを使用する試みを失敗させる。３つの機構について、以下で順番に説明する。
【０００７】
第１に、ソフトウェア・コントローラは上述のようにソフトウェア・プロダクトの使用を可能とするが、現在のデータ・トークンがライセンス管理サーバによって供給されると、これは、現在のデータ・トークンが交換トークンである場合は当てはまらない（第１のソフトウェア・コントローラから取得した交換トークンが別のソフトウェア・コントローラに供給された場合に生じる）。この場合、すなわち、現在のデータ・トークンが交換トークンである場合（上述の（ｂ）環境）、ソフトウェア・コントローラは、その交換トークンを、交換のためにライセンス管理サーバに供給する。従って、事実上、この交換トークンは交換可能であるが使用することはできない。
【０００８】
第２に、ライセンス管理サーバは、交換のためにソフトウェア・コントローラから受信したトークンが、ライセンス管理サーバによってすでに交換したトークンに対応するか否かを検出することができる（すなわち、受信したトークンがすでに交換されたものと同一であるか、またはすでに交換されたデータ・トークンに対応する交換トークンであるか、またはその逆である場合）。このため、あるソフトウェア・コントローラから取得した交換トークンが第２のソフトウェア・コントローラに供給された場合、第２のソフトウェア・コントローラは、これを新しいデータ・トークンと交換するので、ソフトウェア・プロダクトの使用を継続することができるが、第１のソフトウェア・コントローラが同じ交換トークン（または対応する現在のデータ・トークン）を用いて新しいデータ・トークンを取得しようとすると、これはライセンス管理サーバによって検出される。
【０００９】
第３に、第１のソフトウェア・コントローラからの交換トークンが、第２のソフトウェア・コントローラにコピーされ、新しいデータ・トークンに交換された場合、交換トークンに対応する元のデータ・トークンに関連付けた使用期間によって、この使用期間がまだ終了していない場合であっても、第１のソフトウェア・コントローラによるソフトウェア・プロダクトの継続使用は制限された期間のみであることが確実となる。使用期間を超えてライセンスを延長することが必要になると、上述の第２の機構により、第１のソフトウェア・コントローラによる新しいデータ・トークンを取得する試みが、ライセンス管理サーバによって検出される。従って、元のデータ・トークンおよび新しいデータ・トークンの使用期間が重複する場合であっても、不正の同時使用の機会は限定されるのみである。更に、以下で述べる好適な機構によって、所望の場合、潜在的な同時使用期間を排除するかまたは最小限に抑えることができる。
【００１０】
交換トークンは現在のデータ・トークンに依存するので、ライセンス管理サーバから新しい現在のトークンが取得されるたびに、ソフトウェア・コントローラは、新しい交換トークンに対するアクセスを可能とする。一般に、交換トークンは、様々な方法で、以下で更に述べるように、現在のデータ・トークンに依存する場合がある。しかしながら、特定の好適な実施形態では、交換トークンは、単に現在のデータ・トークンのコピーである。その場合、現在のデータ・トークンおよび交換トークンは同一であるので、交換プロセスにおいて現在のデータ・トークンは常にライセンス管理サーバに供給され、ライセンス管理サーバは、同じデータ・トークンが交換のために２度受信されたか否かを検出することによって、二重交換の試行を検出することができる。
【００１１】
本発明の第２の態様は、ソフトウェア・プロダクトを用いるためのライセンスをデータ・トークンによって表すソフトウェア・ライセンス管理システムを提供する。このシステムは、ユーザ・デバイスにおいてソフトウェア・プロダクトの使用を制御するためのソフトウェア・コントローラと、データ通信ネットワークを介してソフトウェア・コントローラと通信を行うためのライセンス管理サーバと、を含む。しかしながら、ここで、ソフトウェア・コントローラは、実質的に、ライセンス管理サーバによってソフトウェア・コントローラに供給される現在のデータ・トークンに関連した使用期間中のみ、ソフトウェア・プロダクトの前記使用を可能とし、ライセンスに関連する交換トークンを受信し、（ａ）ライセンス管理サーバによって供給される現在のデータ・トークンに関連付けた使用期間を超えてソフトウェア・プロダクトのためのライセンスを延長するため、および（ｂ）現在のデータ・トークンが存在しない場合に交換トークンがソフトウェア・コントローラによって受信された場合、新しいデータ・トークンに交換するため、ネットワークを介してライセンス管理サーバに現在のデータ・トークンおよび交換トークンの一方を供給するように適合されている。ライセンス管理サーバは、ここで、ライセンスのもとでソフトウェア・コントローラに供給される各データ・トークンごとに使用期間をストアし、現在のデータ・トークンを交換するための新しいデータ・トークン、または、ソフトウェア・コントローラから受信した前記交換トークンを、ネットワークを介してソフトウェア・コントローラに供給し、新しいデータ・トークンが、ライセンスのもとで以前に供給されたデータ・トークンの使用期間と重複しない新しい使用期間を有するように適合されている。
【００１２】
従って、本発明のこの態様の実施形態において、交換トークンは、本発明の第１の態様の実施形態におけるように、現在のデータ・トークンに明確に依存するわけではないが、ライセンス管理サーバによってデータ・トークンが発行されるライセンスと単に関連付けられている。例えば、この場合、交換トークンは、単に、「あなたはライセンス番号Ｙでソフトウェア・プロダクトＸを使用することができます」等のライセンスの固定的な表現とすることができ、または、ユーザが知っていて、いずれのソフトウェア・コントローラにも供給することができるライセンスの他の任意の形態であると有効である。このため、これらの実施形態におけるソフトウェア・コントローラは、上述の本発明の第１の態様の実施形態におけるように、交換トークンに対するユーザ・アクセスを可能とすることは必ずしも必要ではない。しかしながら、他の点では、ソフトウェア・コントローラの通常動作は、実質的に上述の通りとすることができ、ソフトウェア・コントローラは、ライセンス管理サーバから新しいデータ・トークンを取得して、現在のトークンを置換し、ライセンス管理サーバに交換トークンまたは現在のトークンのいずれかを供給することによって、ソフトウェア・プロダクトの継続的な使用を可能とする（上述の（ａ）環境）。デバイス故障の場合、前述のように、ユーザは交換トークンを新しいソフトウェア・コントローラに供給することができる。新しいソフトウェア・コントローラは、現在のデータ・トークンを持たないが交換トークンを受信し（上述の（ｂ）環境）、交換トークンをライセンス管理サーバに供給して現在のデータ・トークンを取得する。これによって、このソフトウェア・コントローラを用いて通常動作を継続することができる。しかしながら、ライセンス管理サーバの動作は、ここで、２つ以上のソフトウェア・コントローラ上での不正な同時使用を防ぐように機能する。具体的には、ライセンスのもとでソフトウェア・コントローラに供給される新しいデータ・トークンごとに、ライセンス管理サーバには、関連した使用期間が記録されている。次の新しいデータ・トークンがライセンスのもとで発行されると、この次のトークンのための新しい使用期間が、以前に供給したトークンについてストアされている使用期間と重複しないように設定される。このように、ライセンス管理サーバは、使用期間ごとに１つのみの現在のデータ・トークンが発行されること、すなわち、いずれの所与の時点でも、ソフトウェア・プロダクトの使用を可能とするのは１つのみのデータ・トークンであることを保証する。
【００１３】
前述のことから、本発明の第１および第２の態様を具現化するライセンス管理システムは、システムの悪用およびライセンスの侵害を防ぎながら、簡単かつ便利な方法でライセンスを転送可能とすることによって、合法ユーザに対するライセンスの可用性を保証する。このため、本発明の実施形態は、上述の単一インスタンス・ライセンスの実施に関連する問題に対して優れた解決法を提供する。
【００１４】
一般に、本発明の実施形態では、いずれかの便利な形態のデータ・トークンを使用可能である。しかしながら、特に好適な実施形態では、データ・トークンはコインを含む。コインは、特定の形態のデータ・トークンであり、特別な暗号特性を有し、例えばオンラインの買い物またはバンキング・トランザクションのような電子支払いシステムにおける支払いの手段として用いることが知られている。コインの特色は、何らかの暗号特性によって、それらを匿名で「使う」（すなわち適切な値と交換する）ことが可能なことである。すなわち、それらを使うプロセスで適切なアルゴリズムを用いれば、コインの暗号特性によって、使用者の匿名性を維持しながら、信憑性が保証される。コイン技術の原理およびコインの様々な効率的な実施（すなわち、コインの発行および交換のためのコンパクトなコインの表現および効率的なプロトコル）は、当技術分野において周知であり、以下は、例示的な背景のための引用である。
【００１５】
Stefan Brands, 「Rethinking Public key Infrastructures andDigital Certificates: Building in Privacy」、The MIT Press、２０００年８月。
「Security withoutIdentification: Transaction Systems to make Big Brother Obsolete」、David Chaum、Communications of the ACM 28/10（１９８５年）１０３０〜１０４４。
「Untraceable ElectronicCash」、David Chaum等、Crypto ’88,LNCS 403, Springer-Verlag（１９９０年ベルリン）、３１９〜３２７。  
「Privacy ProtectedPayments-Unconditional Payer and/or Payee Untraceability」、David Chaum、SMART CARD 2000: The Future of IC Cards,Proceedings of the IFIP WG 11.6 International Conference 1987、North-Holland、アムステルダム、１９８９年、６９〜９３。
「Untraceable Off-lineCash in Wallet with Observers」、Stefan Brands、Crypto ‘93、LNCS 773、Springer-Verlag、ベルリン、１９９４年、３０２〜３１８。
【００１６】
ここでコイン・システムの実施の詳細について考察する必要はなく、この目的のためには、コインが実質的に匿名のデータ・トークンであること、すなわち、ユーザの匿名性を維持しながらこれをトランザクションに使用可能であることを理解すれば充分である。むろん、コイン・システムの性質は通常、不正に対して高いレベルのセキュリティをコインが与えることができるようになっている。また、コインは、以下で更に述べる「アンライカビリティ」の特性等、更に別の所望の特性を提供することができる。このため、本発明の好適な実施形態においてデータ・トークンとしてコインを用いることは、非常に好都合であり、良好なセキュリティおよびユーザのプライバシー保護を与える。
【００１７】
一般に、本発明を具現化するライセンス管理システムは、例えば技術プログラムのようなソフトウェア・プロダクトのいずれかのタイプ、または歌、映画、または他のオーディオ／ビデオ・ファイル等のデータ・ファイルのために用いることができ、対象のユーザ・デバイスは、かかるソフトウェアを使用可能ないずれかのタイプのデバイス、例えばＤＶＤまたは音楽プレーヤ、移動電話、ＰＣ、または他のコンピューティング・デバイスとすることができる。いくつかの実施形態では、ソフトウェア・コントローラは、ユーザ・デバイスと共に用いるための専用ハードウェアによって実施可能である。しかしながら、通常、ソフトウェア・コントローラは、ユーザ・デバイス上で動作するソフトウェアによって実施することができる。従って、例えばライセンス付与されたプロダクトが技術プログラムである場合、ソフトウェア・コントローラを実施するためのプログラムがライセンス付与されたソフトウェア・プロダクト自体の一部を形成するという実施形態を想定することができる。あるいは、ソフトウェア・コントローラは、例えばオーディオまたはビデオ・ファイルを実行するためのメディア・プレーヤ等のライセンス付与されたプロダクトを実行するためのプラットフォームを形成する使用プログラムによって実施可能である。
【００１８】
システムにおいて所与のデータ・トークンによって表されるような、ソフトウェア・プロダクトを用いるためのライセンスは、一時的なものであり、実質的にそのトークンの使用期間中のみソフトウェア・プロダクトの使用がソフトウェア・コントローラによって可能となると効果的である。例えばある特別な環境においてのみというように、ソフトウェア・コントローラによって何らかの制限を加えた使用期間外のプロダクトの使用が可能となるが、一般的には使用期間外の使用は禁止されるという実施形態を想定することができる。簡略化のため、好適な実施形態においては、ソフトウェア・コントローラは、現在のデータ・トークンの使用期間中のみ使用を許可するので、新しいデータ・トークン（これはその後、新しい現在のトークンになる）を取得することなくこの使用期間が終了すると、ソフトウェア・プロダクトの使用は防止される。
【００１９】
システムにおいて、データ・トークンに関連付けられた使用期間を、様々な方法で規定することができる。例えば、いくつかのシステムでは、使用期間は、現在のトークンの受信からの指定された時間として、ソフトウェア・コントローラにおいて予め設定することができる。しかしながら、好ましくは、使用期間は、例えば受信からの指定された時間として、または指定された終了時間によって、または開始および終了時間によって、データ・トークン自体において指定する。
【００２０】
ユーザの便宜のため、新しいデータ・トークンを取得するための交換プロセスは、好ましくは、ソフトウェア・コントローラによって自動的に実行される。具体的には、上述の環境（ａ）における交換プロセスにおいて（すなわち、現在のトークンの使用期間を超えてライセンスを延長するために）、現在の使用期間が終了する時または終了間近に、または、トリガ・イベントの発生後デバイスが次にオン・ラインになる場合に、ソフトウェア・コントローラは、自動的に交換プロセスを開始する。これによって、ネットワークへのアクセスが利用可能であるならば、ライセンス更新プロセスを、ユーザに対して透明なものとすることができる。
【００２１】
本発明の第１の態様の実施形態において、現在のトークンが新しいトークンに交換されると、新しいトークンの使用期間を、古いトークンの使用期間の終了時に開始するように設定することができる。これによって、２つのユーザ・デバイス上でソフトウェア・プロダクトを同時に用いることは不可能となる。かかる実施形態では、ソフトウェア・コントローラは、トークンを交換する前に現在の使用期間が終了するまで待機することができるが、この時点でネットワーク接続が利用可能でない場合は分断が生じる可能性がある。あるいは、現在の使用期間が終了する前に交換プロセスを開始することができる場合、ソフトウェア・コントローラは、古い交換済みのトークンのコピーを維持することができ、新しいトークンの使用期間が始まるまで、古いトークンの終了した使用期間中のソフトウェア・プロダクトの使用を可能とする。しかしながら、簡略化のため、これらの実施形態において、新しいトークンの使用期間がそのトークンの発行時に開始することが好ましい。この場合、古いトークンの終了前に新しいトークンが取得されると、限定的な同時使用が可能となる。しかしながら、ここで、好適な実施形態では、交換プロセスによってソフトウェア・コントローラが各々取得した第１、第２、および第３のデータ・トークンのチェーンがチェーン内の以前のトークンを置換するために、システムは、第１および第３のデータ・トークンの使用期間が重複しないことを保証する。更に一般的には、好適なシステムは、ライセンス管理サーバからソフトウェア・コントローラが受信したデータ・トークンのチェーンにおける交互のデータ・トークンに関連付けられた使用期間が重複しないように、適合される。この機構（これは、使用期間の適切な設定によって、あるいは交換プロセスの時間を制御することによって、またはその両方によって、様々な方法で実施可能である）は、これらの実施形態において、３つ以上のソフトウェア・コントローラがソフトウェア・プロダクトを同時に使用することを防ぐ。むろん、２つのソフトウェア・コントローラによる潜在的な同時使用は、先に説明したように、限定された期間のみのものである。更に、かかる同時使用は、これから述べる好適な機構によって、所望の最低レベルに抑えることができる。
【００２２】
特定の好適な実施形態において、使用期間に加えて、交換期間を各データ・トークンに関連付けることができる。かかる実施形態では、現在のデータ・トークンを置換する新しいデータ・トークンが、その現在のデータ・トークンに関連付けた交換期間中のみソフトウェア・コントローラによって取得可能であるように、システムを適合させる。例えば、ソフトウェア・コントローラは、現在のデータ・トークンに関連付けた交換期間中のみ交換プロセスを開始するために適合させることができる。使用期間と同様、交換期間は、（必須ではないが）好ましくは、例えば開始時間、または開始および終了時間によって、データ・トークン自体において指定される。ソフトウェア・コントローラは、交換期間が開始すると、または、その後にライセンス管理サーバに対するオンライン・アクセスが利用可能となったらすぐに、現在のデータ・トークンを交換する試みを行うことができる。
【００２３】
本発明の第１の実施形態では、使用期間に対する交換期間のタイミングによって、上述の潜在的な同時使用期間を制御するための便利な機構が提供される。交換期間を、使用期間の終了時に開始させて、同時使用の可能性を排除することも可能であるが、交換期間が使用期間と重複して、先に述べたように可能な分断を回避することが好ましい。この重複の程度は、最大の可能な同時使用期間を決定し、更に以下で述べるように、所与のシステムにおいて適切と見なされる通りに設定することができる。
【００２４】
ソフトウェア・コントローラが交換トークンに対するユーザ・アクセスを可能とする実施形態では、これは、多数の異なる方法で達成可能であり、具体的な例については以下で説明する。同様に、本発明の第１の態様の実施形態におけるライセンス管理サーバは、以下で更に述べるように、二重交換の試行を検出するための様々な機構を用いることができる。
【００２５】
ここまで、単一のソフトウェア・プロダクトに関連付けて動作について論じてきたが、実際には、ソフトウェア・コントローラは、複数のソフトウェア・プロダクトの使用を制御することができ、各ソフトウェア・プロダクトごとに、上述のように各データ・トークンを供給し交換する。ここで、所与のデータ・トークンを関連付ける特定のソフトウェア・プロダクトのアイデンティティは、データ・トークン自体において指定することができる。しかしながら、ユーザが、例えば何百曲もの歌等、多数のソフトウェア・プロダクトのライセンスを有する場合、個々のプロダクトに対するデータ・トークンの付与および更新は非現実的になる場合がある。かかる場合、単一の包括的ライセンスのもとで全てのライセンスを処理し、上述のシステムを包括的ライセンスに適用することによって個々のライセンスを管理することが望ましい。このため、本発明を具現化する特定のシステムでは、データ・トークンは、複数のソフトウェア・プロダクトを用いるためのライセンスを表す場合がある。このような場合、ソフトウェア・コントローラは、更に、バックアップ・ストレージ位置において前記複数のソフトウェア・プロダクトを示すプロダクト・データをストアし、ライセンス管理サーバによって供給される現在のデータ・トークンに関連付けた使用期間中のみ実質的にソフトウェア・プロダクトの各々の使用を可能とするように適合させることができる。以下に、このタイプのライセンス管理システムの動作を説明する様々な例を記載する。
【００２６】
本発明の更に別の態様はそれぞれ、上述のようなライセンス管理システムのソフトウェア・コントローラおよびライセンス管理サーバを提供する。具体的には、本発明の更に別の各態様は、請求項２１および２３に記載するようなソフトウェア・コントローラ、および、請求項２２および２４に記載するようなライセンス管理サーバを提供する。本発明の追加の各態様は、かかるソフトウェア・コントローラおよびライセンス管理サーバを実施するためのコンピュータ・プログラムを提供する。更に、一般に、本発明を具現化する装置を参照して本明細書中で特徴を説明する場合、本発明を具現化する方法において、対応する特徴を提供することができ、逆もまた同様である。このため、本発明の更に別の各態様は、請求項２９または３１に記載するようなユーザ・デバイスにおけるソフトウェア・プロダクトの使用を制御するための方法、および、請求項３０または３２に記載するようなライセンス管理サーバの動作のための方法を提供する。
【００２７】
ここで、添付図面を参照して、一例として、本発明の実施形態について説明する。
【発明を実施するための最良の形態】
【００２８】
図１の概略図は、ソフトウェア・ライセンス管理システムの第１の実施形態の主要構成要素および基本的な動作を示す。全体的に１として示すこのシステムは、ソフトウェア・プロダクトのライセンサによって（またはその代わりに）操作されるＤＲＭ（デジタル権利管理）サーバ２の形態のライセンス管理サーバを含む。ＤＲＭサーバ２は、インターネット等のデータ通信ネットワーク５を介して、例えばユーザＰＣ等のユーザ・デバイス３と通信を行うことができ、このデバイスにおいてソフトウェア・プロダクト４を実行可能である。更に具体的には、このシステムは、ユーザ・デバイスにおいてソフトウェア・プロダクト４に対するアクセスを制御するためのソフトウェア・コントローラ６ａを含み、更に、ネットワーク接続がある場合、ソフトウェア・コントローラ６ａおよびＤＲＭサーバ２は、ネットワーク５を介して通信を行って、以下で記載する機能を実行することができる。
【００２９】
図において、ＤＲＭサーバ２は単一のブロックで表すが、サーバ２は、一般的には、以下で述べる機能を実行するようにコンピュータ（複数のコンピュータ）を構成するソフトウェアを実行する１つ以上のコンピュータによって実施することができる。ソフトウェア・コントローラ６ａは、一般に、ハードウェア、またはソフトウェア、またはそれらの組み合わせによって実施可能である。例えば、ソフトウェア・コントローラは、ユーザ・デバイスに関連付けられた、専用の、好ましくは改ざん防止したハードウェアによって実施することができる。しかしながら、本実施形態において、ソフトウェア・コントローラは、ソフトウェア・プロダクト４の使用を制御するためにユーザ・デバイス３上で動作する使用プログラムによって実施されることを想定する。例えば、ソフトウェア・コントローラ６ａを実施する使用プログラムは、オーディオまたはビデオ・ファイルの形態のソフトウェア・プロダクト４に対するアクセスを制御するためのメディア・プレーヤとすることができる。しかしながら、一般に、ソフトウェア・コントローラまたはＤＲＭサーバの機能がコンピュータ・プログラムによって実施される場合、かかるプログラムは、様々な、より一般的な制御機能を実行するためのもっと大きいプログラムの一部を形成することができ、更に、コンピューティング・デバイスにロードするために別個に供給して、上述の機能を実行するようにデバイスを構成することができる。具体的には、かかるコンピュータ・プログラムを構成するプログラム・コード手段は、ユーザまたはシステム・オペレータに送信されるディスケットまたは電子伝送等のコンピュータ読み取り可能媒体において供給され具現化されて、コンピューティング・デバイスにロードすることができる。
【００３０】
システム１の動作において、ソフトウェア・プロダクト４に対する一時的なライセンスは、ＤＲＭサーバ２によってソフトウェア・コントローラ６ａに供給されるコイン７の形態のデータ・トークンによって表される。これについて、以下で更に詳しく述べる。簡略化のため、以下の説明は単一のソフトウェア・プロダクト４を中心とするが、実際には、ソフトウェア・コントローラ６ａは、各々が各コイン７によって表される一時的なライセンスを有する複数のソフトウェア・プロダクト４の使用を制御することができる。このため、所与のコインが関連する特定のプロダクト４のアイデンティティを、コイン７において符号化することができる。コイン７は、先に論じた一般的に既知の方法で実施することができ、コイン・システムに関連付けた特定の暗号特性を有し、これによって、以下で述べる交換プロセスにおいて、コインを匿名で（すなわち交換のためにコインを供給するデバイスを識別することなく）交換することができる。コインの基本的な特性に加えて、コイン７は、２つの関連した有効期間、すなわち使用期間および交換期間を有する。使用期間は、開始時刻Ｐ1および終了時刻Ｐ2によって規定され、交換期間は、同様に、開始時刻および終了時刻Ｑ1およびＱ2によってそれぞれ規定される。これらの期間は、その開始時刻および終了時刻によって規定され、値をコインに符号化するための標準的な技法を用いて、一般的に既知の方法でコインにおいて符号化される。この実施形態では、使用期間および交換期間は、２つの期間の間に短い重複しか存在しないように規定される。特に、使用期間Ｐ2−Ｐ1に比べて、Ｑ1は、比較的小さい時間期間だけＰ2よりも前にある。一例として、使用期間Ｐ2−Ｐ1は１週間とすることができ、重複Ｐ2−Ｑ1は１日のみとすることができる。交換期間Ｑ2−Ｑ1は、使用期間に比べて長く、例えば数年間とすることができる。この実施形態において、使用期間の開始すなわち時刻Ｐ1は、ソフトウェア・コントローラ６ａにコインを供給する時点に設定する。かかるコインを受信した時のソフトウェア・コントローラの動作を、図２の概略的なフロー・チャートに表し、ソフトウェア・コントローラがＤＲＭサーバ２からコインを受信したばかりであることを最初に想定して、以下に説明する。
【００３１】
図２のステップ１０に、ソフトウェア・コントローラ６ａによるコイン７の受信を表す。ステップ１１において、ソフトウェア・コントローラは、受信したコインがコピー・コイン（以下を参照）であるか否かを判定する。この場合、コイン７はＤＲＭサーバ２から受信されたので、コインはコピー・コインではなく、動作はステップ１２に移る。ここで、ソフトウェア・コントローラは、新たに受信したコインのコピーを作成することをユーザに要求する。例えば、ソフトウェア・コントローラ６ａは、例えばユーザ・デバイス３に挿入されたディスケット上にストレージ位置を入力することをユーザに要求するメッセージを表示する。次いで、適切なユーザ・アクションに応答して、ソフトウェア・コントローラは、入力されたストレージ位置にコイン７のコピーを供給する。このように、コイン７のコピーを、図１に示すようにユーザに出力することが有効である。（従って、このシステムでは、コピー・コインが先に論じた交換トークンとして機能するので、この実施形態では、交換トークン（コピー・コイン）および現在のデータ・トークン（コイン７）は同一である）次に、図２の決定ステップ１３に示すように、ソフトウェア・コントローラは、例えば、現在の時刻ｔをコイン７に符号化された時刻Ｑ1と比較することによって、交換期間の開始を待つことが有効である。交換期間が開始すると、すなわちｔ≧Ｑ1になると、動作は進んで（ステップ１３で「Ｙｅｓ」）ステップ１４に移り、ソフトウェア・コントローラ６ａは、コイン交換プロセスを自動的に開始する。このプロセスは、ソフトウェア・コントローラが、新しいコインに交換するため、ネットワーク５を介して現在のコイン７をＤＲＭサーバ２に供給することを伴う。ステップ１５において、ソフトウェア・コントローラは、交換プロセスが成功したか否か、すなわちＤＲＭサーバ２からの新しいコインの受信が成功したか否かを判定する。成功していない場合（ステップ１５で「Ｎｏ」）、ソフトウェア・コントローラは、ステップ１６において、以下で更に述べるように、ＤＲＭサーバによって交換が拒絶されたか否かを判定する。そうである場合（ステップ１６で「Ｙｅｓ」）、ソフトウェア・コントローラは、ステップ１７でメッセージを表示してユーザに通知し、プロセスは終了する。そうでない場合（ステップ１６で「Ｎｏ」）、すなわち、交換プロセスが、接続中断またはネットワーク接続の可用性の不足のような何らかの他の理由で失敗した場合、ソフトウェア・コントローラは、図のステップ１８によって表す適切な再試行遅延の後に、交換プロセスを再試行する。しかしながら、まず、ソフトウェア・コントローラは、ステップ１９において、コインの交換期間がまだ終了していないこと、すなわちｔ＜Ｑ2であることを調べる。交換期間が終了した場合（ステップ１９で「Ｎｏ」）、動作はステップ１７に進んで、ユーザに障害を通知し、プロセスは終了する。交換期間が終了していないと仮定すると（ステップ１９で「Ｙｅｓ」）、動作はステップ１４に戻り、交換プロセスを再試行する。交換プロセスが最終的に成功すると仮定すると（ステップ１５で「Ｙｅｓ」）、古いコイン７についてのプロセスは完了する。次いで、ＤＲＭサーバから受信した新しいコインは、新しい現在のコイン７になり、このコインについて図２のプロセスを繰り返す。この新しいコイン７は、上述のような新しい使用期間および交換期間を有し、新しい使用期間の開始時刻Ｐ1は新しいコインが供給された時刻に設定される。このようにして、ソフトウェア・プロダクト４を用いるためのライセンスは、古いコインの使用期間を超えて延長され、後続の現在のコインがそれぞれ新しいコインに交換されると、連続して更新することができる。
【００３２】
図２のプロセスが行われているいずれの所与の時点でも、ソフトウェア・コントローラ６ａは、現在のコイン７に従ってソフトウェア・プロダクト４の使用を制御する。具体的には、図３に、ソフトウェア・プロダクトを実行するためのユーザ要求に応答したソフトウェア・コントローラの動作を示す。この図のステップ３０に、ユーザ要求の受信を表す。次いで、動作はステップ３１に進み、ここで（ソフトウェア・コントローラが複数のソフトウェア・プロダクトのためのコインを保持可能であると想定する）、ソフトウェア・コントローラは、現在のコインが対象のソフトウェア・プロダクト４のために保持されているものであるか否かを判定する。現在のコインにおいて符号化されたプロダクトのアイデンティティが、ソフトウェア・プロダクト４のものと一致すると想定すると（ステップ３１で「Ｙｅｓ」）、ステップ３２において、ソフトウェア・コントローラ６ａは、コイン７の使用期間がまだ終了していないこと、すなわちｔ＜Ｐ2であるか否かを判定する。そうであると仮定すると（ステップ３２で「Ｙｅｓ」）、ライセンスのもとで使用が許可され、ステップ３３において、ソフトウェア・コントローラはソフトウェア・プロダクト４を実行する。しかしながら、ステップ３１に戻り、ここでソフトウェア・プロダクトのための現在のコインが見つからない場合（ステップ３１で「Ｎｏ」）、プロダクトはライセンスを付与されていない。そして、ステップ３４において、ソフトウェア・コントローラは、実行要求を拒絶するメッセージを表示し、プロセスは完了する。同様に、ステップ３２において、ソフトウェア・プロダクトのための現在のコインの使用期間が終了していることがわかった場合（何らかの理由でこのコインの交換が失敗したため）、ステップ３４において、ソフトウェア・プロダクトの実行は拒絶され、プロセスは終了する。（何も実行されていない場合、適宜、この時点でコイン交換プロセスを開始することができる。）
【００３３】
図２に戻ると、ソフトウェア・コントローラ６ａが受信したコインがＤＲＭサーバ２によって供給されたものである場合、動作は上述したとおりである。しかしながら、ソフトウェア・コントローラは、ユーザによって供給されたコピー・コインを受信する場合がある。例えば、ユーザ・デバイス３が故障して、ソフトウェア・コントローラ６ａに対するアクセスが阻止される場合を考える。図１において６ｂに示すように、新しい同様のソフトウェア・コントローラを用いて、ユーザは新しいデバイスを取得することができる。（この実施形態において、ソフトウェア・コントローラ６ｂは、あらゆる関連する点においてソフトウェア・コントローラ６ａと同一に動作し、そのため、一方の動作のいかなる説明も他方にも等しく適用される）。ここではユーザが以前にストアしたコピー・コインである交換トークンを新しいコントローラに入力することによって、ソフトウェア・プロダクト４のためのライセンスをソフトウェア・コントローラ６ｂに移すことができる。図２のステップ１０においてこのコインを受信した後、ステップ１１において、コインはコピー・コインとして識別される。（本質的に、上述した交換プロセスに従って受信されないコインはいずれも、ここではコピー・コインとして識別される。）次いで、動作は直接ステップ１９に進み（ステップ１１において「Ｙｅｓ」）、コピー・コインのための交換期間が終了していないことを調べる。終了している場合、ステップ１７においてユーザに通知し、プロセスは終了する。しかしながら、ステップ１９において交換期間が終了していないと仮定すると、動作はステップ１４に進み、ネットワーク５を介してコイン交換プロセスが開始し、上述のように進行する。このため、コピー・コインは、ソフトウェア・コントローラによって自動的に新しいコインに交換される。すでに述べたように、新しいコインのもとで、ソフトウェア・プロダクトの使用を続けることができる。このように、新しいソフトウェア・コントローラ６ｂへのライセンスの転送が順調に行われる。
【００３４】
ソフトウェア・プロダクトのために最初にライセンスを取得した場合、いくつかの実施形態において、上述の使用期間および交換期間を有する最初のコインを、ＤＲＭサーバ２によって供給することができる。これは、例えば、最初のプロダクト・ライセンスがオンラインで購入される場合である。しかしながら、ユーザが（例えば店舗またはウェブ・サイトにおいてソフトウェア・プロダクトを購入することによって）新しいライセンスを買う場合、特別なコインを受け取り、これを、上述のようないずれかのソフトウェア・コントローラ６ａ、６ｂに入力することができると好ましい。この最初のコインは、使用期間を有しないが、交換期間の終了時刻Ｑ2によって規定された交換期間を有する。ソフトウェア・コントローラに供給されると、この最初のコイン（ＤＲＭサーバによる交換プロセスの後に供給されたのではない）は、上述のようなコピー・コインと全く同様に扱われる。このため、その交換期間の終了前にソフトウェア・コントローラが最初のコインを受信すると仮定すると、これは、すでに説明したプロセスによって新しい現在のコインに交換され、動作は通常のように継続する。
【００３５】
図４に、ソフトウェア・コントローラ６ａから交換のためのコインを受信した時のＤＲＭサーバ２の動作を示す。図のステップ４０に、コインの受信を表す。動作はすぐにステップ４１に進み、ＤＲＭサーバ２は、同じコインが以前に受信され新しいコインに交換されたか否かを調べる。この実施形態において、ＤＲＭサーバは、ステップ４１においてこれを行うため、受信したコインを、サーバが以前に受信し交換したストアされているコイン・リストと比較する。決定ステップ４２において「Ｙｅｓ」によって示すように、受信したコインがこのリスト上のコインと一致する場合、受信したコインはすでに「使われている」。この場合、動作はステップ４３に進み、ＤＲＭサーバは拒絶の通知をソフトウェア・コントローラに戻し、プロセスは終了する。しかしながら、受信したコインがまだ使われていない（ステップ４２において「Ｎｏ」）と仮定すると、このコインを新しいコインに交換することができる。このため、ステップ４４において、ＤＲＭサーバは、受信したコインを、上述した「使用済みコイン・リスト」に交換済みコインとしてストアし、ステップ４５において、新しいコインをソフトウェア・コントローラに供給する。この新しいコインは、上述のような使用期間および交換期間を有し、使用期間の開始時刻Ｐ1は現時点に設定される。次いで、プロセスは完了する。
【００３６】
上述のシステム動作は、必要な場合に新しいデバイスにライセンスを移すための簡単かつ便利な機構を提供することによって、ユーザに対するライセンスの可用性を保証することがわかる。しかしながら、システムは、多数のデバイス上でライセンスを同時に用いることによってシステムをだまそうとするユーザを失敗させるようにも動作する。具体的には、ここで交換トークンとして機能する現在のコインのコピーは、転送の目的のためにユーザに利用可能となるが、このコピー・コイン自体は新しいデバイス上で使用可能でない。これは、ソフトウェア・コントローラによって、コピー・コインは使用されるのではなく交換のみ可能であるからである。不正ユーザは、第１のデバイス上での使用を続けながら、第１のコインのコピーを交換して新しいデバイス上でソフトウェア・プロダクトの使用を始める場合があるが、第１のコインは間もなく終了する。このコインは交換することができない。なぜなら、ＤＲＭサーバが、すでに新しいデバイスによってコインが交換されたことを検出するからであり、そのため、使用期間が終了すると、第１のデバイス上でのソフトウェア・プロダクトの使用は不可能になる。更に、コインの使用期間および交換期間が比較的短く重複することは、これに対応して２つのソフトウェア・コントローラによる同時使用の潜在的な期間が短いことを意味する。これは、図５に明らかに示されている。交換コインのチェーンにおける３つのコインの使用期間および交換期間は、互いに関係するように示されている。図のコイン１では、使用および交換期間は、それぞれ（Ｐ１1、Ｐ１2）および）（Ｑ１1、Ｑ１2）によって区切られている。このコインが、最も早い機会に（すなわちｔ＝Ｑ１1）コイン２に交換された場合、（Ｐ２1、Ｐ２2）および（Ｑ２1、Ｑ２2）によって区切られるコイン２の同等の使用および交換期間は、図に示す通りである。同様に、コイン２との交換においてできるだけ早く供給される、第３のコインすなわちコイン３の使用および交換期間は、図において（Ｐ３1、Ｐ３2）、（Ｑ３1、Ｑ３2）によって示される。まず、このシステムにおいて、コイン１およびコイン３の使用期間に重複がないことがわかる。従って、同時使用の可能性は、２つのソフトウェア・コントローラの最大値に限定される。更に、最大の可能な同時使用期間すなわちＰ１2−Ｑ１1は、極めて短く（この具体的な例では１日のみ）、一般に、所与のシステムにとって所望の許容可能レベルに設定することができる。
【００３７】
コイン交換プロセスの基本について、簡単な用語で説明したが、当業者には、このプロセスの詳細な実施は、既存のコイン・システムにおけるコインの発行および使用を管理する様々な既知のアルゴリズムおよびプロトコルを利用可能であることは、明らかであろう。このため、例えば、コインを交換のためにＤＲＭサーバに供給する場合、ソフトウェア・コントローラおよびＤＲＭサーバのインタラクションによって、既存のシステムにおいてコインを使うために用いる基本的な支払いアルゴリズムを実施可能である。同様に、ソフトウェア・コントローラに対して新しいコインを供給することは、基本的なコイン発行アルゴリズムを実施するためのソフトウェア・コントローラおよびＤＲＭサーバのインタラクションによって実行することができる。ここで、新しいコインは、ソフトウェア・コントローラによって部分的に構築することができ、この部分的なコインは妥当性確認のためにＤＲＭサーバに送信される。そして、ＤＲＭサーバによる新しいコインの供給は、妥当性確認部分（デジタル署名等）と共に部分コインを戻すことを含む場合があり、これによって新しいコインを有効なコインとして確認する。いずれの場合であっても、上述のシステムにおいてコインを用いてライセンスを表すことは、ユーザのプライバシーを保護しながら高レベルのセキュリティを与えることは認められよう。具体的には、コインは匿名で使うことができるので、ライセンスも匿名で更新し転送することができる。ここで、ＤＲＭサーバは、誰がどのソフトウェア・コントローラ上でライセンスを用いているかを追跡することができない。更に、コインは、「アンライカビリティ」という追加の特性を有することができる。すなわち、いずれの所与のコインも、交換されたコイン、または、実際には、交換済みコインのチェーン内のいずれかの前または後のコインに関連付けられている（すなわち「リンクされている」）ものとして識別することができない。このため、ユーザは、その使用活動の性質および程度についてライセンサーが情報を収集することができないことを確信することができる。従って、概して、前述の実施形態は、極めて効率的なライセンス管理システムを提供し、ユーザに対して移動性およびプライバシーを保証しながら、ライセンスの実施を可能とする。
【００３８】
上述の実施形態において、ソフトウェア・コントローラ６ａは現在のコインのコピーをユーザに供給するが、ソフトウェア・コントローラは、他の方法でコピー・コインに対するユーザ・アクセスを可能とすることができる。例えば、ソフトウェア・コントローラは、例えばＤＲＭサーバにおいてバックアップのストレージ位置にコピー・コインをストアすることができ、ユーザに何らかの形態のアクセス・データを供給して、ユーザがコピーの検索を行うことを可能とする。かかるアクセス・データは、単にストレージ位置自体とすることができ、または、例えば、位置およびコピー・コインのためのアクセス・コードとすることも可能である。
【００３９】
上述の実施形態において、ＤＲＭサーバ２は、後に受信するコインと比較するために、リスト内に各「使用済み」コインをストアする。このリストに各コイン全体をストアして、ユーザが交換拒絶に意義を唱えた場合に証拠としてコイン全体が利用可能であるようにすることが好ましい。しかしながら、これは必須ではなく、ＤＲＭサーバは単に、例えば発行されたコインの署名、または他の妥当性確認部分、またはその形態値のような、使用済みコインに対応するトークン識別子をストアすることができる。更に、ＤＲＭサーバは、同じコインが交換のために２度受信されたか否かを検出するために様々な機構を用いることができる。例えば、ＤＲＭサーバは、発行された全コインのリストを維持し、後にコインが交換された場合にリストからそのコインを消去することができる。そして、受信されたコインは、リストに存在しない場合、すでに使用したものとして識別する。（上述の特別な最初のコインは、ここではそのように識別され、このチェックから除外される。）一般に、以前に使用したコインの検出は、既存のコイン・システムにおいてコインの「二重使用」を検出するための既知の様々な機構に従って実行することができる。かかる機構は、好ましくはオンライン機構であり、交換プロセスの一部として実行されるので、新しいコインは、まだ使用されていないコインを交換する場合にのみ供給される。しかしながら、オフライン機構も使用可能であり、これによって、受信したコインが二重使用されたか否かを調べる前に、受信したコインを交換する場合に新しいコインを供給する。後に二重使用が検出されると、適切なアクションを取ってユーザにペナルティーを与える。（コインは匿名であるが、かかるオフライン機構を用いる既知のコイン・システムの設計においては、コインを１度用いるよりもコインの二重使用の方が使用者のアイデンティティについて多くの情報を与え、それ以上のコイン交換を拒絶する等の適切なアクションを取ることを可能とするための充分な情報を与えるようになっている。新しいコインにおいて正しい使用者のアイデンティティを符号化するという保証は、ソフトウェア・コントローラによって与えられるか、または、交換の際に古いコインと比較して、暗号ゼロ知識機構によって証明することができる。）
【００４０】
前述の説明において、コイン交換期間Ｑ2−Ｑ1は、コインを交換するために充分な時間を与えるほどの長さである。しかしながら、使用期間は比較的短く、使用期間および交換期間の重複は使用期間に比べて小さい。これらの特徴によって、コインの頻繁な交換が強要され、不正の可能性が所望の最低レベルに抑えられる。故障の際には、最悪の場合、新しいデバイス上で使用を開始するために、交換期間の開始まで、ユーザは約数日（Ｑ1−Ｐ1）待たなければならない。しかしながら、使用期間および交換期間の相対的な長さおよび重複は、所与のシステムに適切と考えられる特定の性質を与えるように設定することができる。例えば、他の実施形態では、コイン交換の頻度を低下させて、不正の可能性を許容可能なレベルに維持しながら、合法ユーザにもっと広いオフライン使用の範囲を与えることが望ましい場合がある。かかる実施形態では、コインの使用期間はもっと長くして、使用期間および交換期間の重複を長くすることができる。そして、交換期間が始まって不正を失敗させるとすぐに、ソフトウェア・コントローラはコインを交換しようとする場合があるが、残りの使用期間は、もっと長いオフライン使用時間を与える。いくつかの実施形態では、ユーザまたはライセンスのタイプに応じて異なるようにこれらの期間を選択することができる。例えば、ユーザは、短い使用期間および長い使用期間を選択することができ、前者はデバイスの故障後に与える待機時間が短く、後者は交換回数が少なくて済み、従ってオンライン動作が少ない。
【００４１】
上述のシステムにおいて、コイン交換プロセスは、ＤＲＭサーバ２およびソフトウェア・コントローラ６ａ、６ｂのインタラクションによって実施され、ＤＲＭサーバが有効なソフトウェア・コントローラとインタラクトしていることを検証する必要がある実施形態が考えられる。例えば、ライセンス付与されたソフトウェア・プロダクトの使用において、ソフトウェア・コントローラに何らかの秘密情報を与えなければならない場合がある。このため、ソフトウェア・コントローラがＤＲＭサーバに、これが有効であり正しいソフトウェア・コントローラであると証明することができ、ＤＲＭサーバがソフトウェア・コントローラに対してそれ自身を識別することができる機構を設け、更に、ＤＲＭサーバが特定のソフトウェア・コントローラを識別することができない（これはユーザのプライバシーを侵すので）ことが望ましい場合がある。これは、当業者に明らかな様々な標準的な方法で達成可能である。一例として、ＤＲＭサーバは、ＳＳＬ／ＴＬＳ（Secure Sockets Layer/Transport Layer Security）を用いて、いずれのソフトウェア・コントローラによっても検査可能なサーバ証明書によって、それ自身を認証することができる。ソフトウェア・コントローラは、匿名の信用証明によってそれら自身を認証することができる（例えば、「An Efficient System for Non-transferable Anonymous Credentials withOptional Anonymity Revocation」、Jan Camenisch等、EUROCRYPT 2001、LNCS 2045、Springer-Verlag、ベルリン、２００１年、９３〜１１８を参照）。かかる信用証明は、他のものを明らかにすることなく、ある権利を証明する。以前に確立され認証されたＳＳＬ／ＴＬＳチャネルを介して信用証明が示される場合、このチャネルを用いてＤＲＭサーバからソフトウェア・コントローラに秘密情報を送信することができ、秘密が正しいソフトウェア・コントローラのみに機密に送信されることが保証される。更に、ＤＲＭサーバに対するセキュアなチャネルを確立し、秘密を受信し、コインを交換するためのプロトコルは、個々のソフトウェア・コントローラを識別しない。
【００４２】
上述のシステムにおけるソフトウェア・コントローラは、そのコインの交換期間中のみ現在のコインの交換を開始するように適合されている。しかしながら、システムは、他の機構を用いて、確実に現在のコインの交換期間中にのみ現在のコインを新しいコインによって置換可能とすることができる。例えば、ＤＲＭサーバ２は、受信したコインの交換期間が終了していない場合にのみ、そのコインを交換するように適合させることができる。ＤＲＭサーバが発行済みコインのリストを維持する実施形態では、コインの交換期間が終了すると、それらをこのリストから削除することができる。
【００４３】
図１のシステムにおいて、交換トークンは現在のコイン７のコピーであるので、交換トークンおよび現在のデータ・トークンは、この場合は同一である。しかしながら、一般に、交換トークンは現在のデータ・トークンに様々に依存する場合があり、その依存性は二重交換試行を検出するための基準を与える。例えば、交換トークンは、現在のデータ・トークンの短い形態とすることができ、ライセンス管理サーバによって現在のトークンを用いて供給するか、またはソフトウェア・コントローラによって現在のトークンから導出することができる。次いで、必要な場合には新しいソフトウェア・コントローラに転送するための各交換プロセスの後に、新しい交換トークンをユーザに利用可能とすることができる。また、ソフトウェア・コントローラの通常の動作において、各交換プロセスは、現在のデータ・トークンでなく交換トークンをライセンス管理サーバに供給することによって実行可能である。ライセンス管理サーバは、交換トークンから対応する現在のデータ・トークンを導出することができ、または、例えば、各発行済みデータ・トークンのコピーをストアし、交換トークン内の情報から適切な発行済みデータ・トークンを識別することができる。交換トークンと現在のデータ・トークンとの間のかかる依存性のため、ライセンス管理サーバは、上述したように、受信したトークンがすでに交換済みのトークンに対応するか否かを調べることができる。
【００４４】
上述の実施形態は高レベルのユーザ・プライバシーを提供するが、ユーザのプライバシーの優先度が低い場合、様々な代替的な実施形態を考えることができる。かかる代替的な実施形態の１例を図６に示す。図６のシステム５０は、ＤＲＭサーバ５１およびユーザ・デバイス５３上で動作するソフトウェア・コントローラ５２ａを含み、ソフトウェア・コントローラおよびＤＲＭサーバはネットワーク５４を介して通信を行う。ソフトウェア・コントローラ５２ａは、現在のデータ・トークン５６に関連した使用期間に基づいて、概ね前述したように、ソフトウェア・プロダクト５５の使用を制御する。しかしながら、ここでは、ソフトウェア・コントローラは、ソフトウェア・プロダクトを用いるためのライセンスに関連付けた交換トークン５７も有する。このシステムにおいて、交換トークン５７は、本質的に、例えばライセンス番号のようなライセンスの固定表現であり、ＤＲＭサーバ５１に既知であると想定する。この交換トークンは、例えばライセンスの最初の購入時にＤＲＭサーバ５１から取得することができ、デバイス故障の場合に用いるためにユーザが保持する。動作の開始時に、交換トークンが最初にソフトウェア・コントローラ５２ａによって取得されると、ソフトウェア・コントローラは、この目的のため、交換トークンに対するユーザ・アクセスを可能とする。あるいは、交換トークンは、ライセンスの購入時にユーザによって直接取得することができ、これによって、ユーザは、いずれかのソフトウェア・コントローラに交換トークンを供給して、ソフトウェア・プロダクトの使用を開始することができる。
【００４５】
通常動作において、図１のシステムにおけると同様に、ソフトウェア・コントローラ５２ａは、現在のデータ・トークン５６に関連付けられた使用期間中にユーザ・デバイスにおけるソフトウェア・プロダクト５５の使用を可能とする。しかしながら、ライセンスを延長するために新しいデータ・トークンを取得することが必要となった場合、ソフトウェア・コントローラ５２ａは、交換トークン５７をＤＲＭサーバ５１に供給する。次いで、ＤＲＭサーバ５１は、交換の際の新しいデータ・トークンを供給する。新しいデータ・トークンは新しい使用期間を有し、前述のようにソフトウェア・コントローラ５２ａにおいて現在のデータ・トークンを置換し、これによってソフトウェア・プロダクト５５の使用を続けることができる。しかしながら、ＤＲＭサーバ５１が対象のライセンスのもとで新しいデータ・トークンを発行するたびに、新しく発行されたトークンの使用期間は、ＤＲＭサーバによってライセンス番号に対して記録される。次に交換のために交換トークンをＤＲＭサーバ５１に供給する時、ＤＲＭサーバは交換トークンから対象のライセンスを識別し、以前発行したトークンのストアされた使用期間を検索し、新しいトークンのための使用期間を以前の使用期間の終了時に開始するように設定する。このように、ＤＲＭサーバによって、新しい使用期間が古い使用期間と重複しないことが保証され、これによって、いずれの所与の時点でも、１つのみのデータ・トークンがソフトウェア・プロダクトの使用を可能とする。現在のトークン５６の使用期間の終了前に、ソフトウェア・コントローラ５２ａによって交換プロセスが実行される場合、ソフトウェア・コントローラは古い交換されたトークンのコピーを維持し、新しいトークンの使用期間が開始するまで、このトークンの終了していない使用期間中にソフトウェア・プロダクトの使用を可能とする。また、ユーザ・デバイス５３における故障の場合、ライセンスを、新しいソフトウェア・コントローラ５２ｂに合法に転送することができる。この場合、ユーザは単に交換トークン５７を新しいソフトウェア・コントローラ５２ｂに供給する。現在のデータ・トークン５６を有しないソフトウェア・コントローラ５２ｂが交換トークン５７を受信すると、これは、前述のように、現在のデータ・トークン５６と交換するために、交換トークンをＤＲＭサーバ５１に供給する。これによって、新しいソフトウェア・コントローラ５２ｂによって、ソフトウェア・プロダクト５５の使用を継続することができる。しかしながら、新しく発行されたトークンの使用期間は、ソフトウェア・コントローラ５２ａに発行された最後のトークンのものと重複しないので、このシステムは、不正なユーザが２つ以上のデバイス上でソフトウェア・プロダクトを同時に用いることを防ぐ。
【００４６】
図６の実施形態は、単一インスタンスのライセンスの移動性に関連する問題に対して単純な解決策を提供するが、図１のシステムよりも提供されるユーザ・プライバシーは小さい。なぜなら、交換トークンは対象のライセンスに関連付けられ、これによって、ＤＲＭサーバは、理論上、特定のユーザの使用活動を監視することができるからである。それにもかかわらず、一部のシステムにおいては、かかる特に単純な交換トークンの形態の使用が望ましい場合がある。むろん、ここでも代替案を考えることができる。例えば、通常動作において、ソフトウェア・コントローラ５２ａは、交換トークンでなく現在のデータ・トークンを交換のためにＤＲＭサーバに供給することができ、この交換トークンは、新しいデバイスにライセンスを転送するためだけに用いられる。現在のデータ・トークン自体は様々な形態を取ることができ、実施形態によってはコインである場合もあるが、コインによって与えられるプライバシーの利点は、ここでは厳密には必要とされない。また、更新可能交換トークンを含む他の形態の交換トークンも考えられる。例えば、上述のような単一の固定交換トークンの代わりに、１度だけのパスワードまたはハッシュ・チェーンのリストを用い、これによって、後に交換を行うたびに交換トークンを更新することができる。ここでも、これらは対象のライセンスに関連付けることができ、これによってＤＲＭサーバは適切なライセンスを識別することができるが、交換トークンの更新によって、いったんユーザが新しいデバイスに移ると、古いユーザ・デバイスから検索した古い交換トークンを用いてライセンスを引き継ぐことは確実に不可能となる。
【００４７】
ここまで述べてきた実施形態において、ソフトウェア・コントローラは、複数のソフトウェア・プロダクトの使用を制御することができ、ソフトウェア・プロダクトの各々に、上述のように各コインが供給され交換される。しかしながら、数百の歌等、極めて多数のソフトウェア・プロダクトのためのライセンスをユーザが有する場合、ユーザにとっては、全ての個々のライセンスを、単一の包括的ライセンスまたは「メタ・ライセンス」のもとで組み合わせることが好都合である場合があり、これによって全ての個々のライセンスを共に有効に更新することができる。ここで、本発明を具現化するかかるライセンス管理システムの一例について、システムの主要構成要素および基本的な動作を示す図７を参照して説明する。
【００４８】
図７のシステム６０は、ＤＲＭサーバ６１およびソフトウェア・コントローラ６２ａを含み、概ね上述の図１のシステムについて説明した通りに動作するが、以下で説明するいくつかの相違がある。このため、ソフトウェア・コントローラ６２ａは、ネットワーク６３を介してＤＲＭサーバ６１と通信を行うことができ、ユーザ・デバイス６４において複数のソフトウェア・プロダクトの使用を制御する。図において、ソフトウェア・プロダクトＳＰの集合を全体的に６５で示す。これらの各々について、ユーザは、６６で集合的に示すように、個々のプロダクト・ライセンスＬSPを保持する。これらの個々のライセンス６６の特定の形態、および、それらを取得する方法については、記載するシステム動作に左右されない。しかしながら、全ソフトウェア・プロダクト６５の使用は、コイン６７の形態の単一データ・トークンに従って、ソフトウェア・コントローラ６２ａによって制御される。従って、この実施形態では、コイン６７は、複数のソフトウェア・プロダクト６５のためのメタ・ライセンスを表す。例えば、かかるメタ・ライセンスは、歌、映画等の特定のタイプまたはカテゴリのソフトウェア・プロダクトに相当する場合があり、従って、例えば音楽プレーヤ、ビデオ・プレーヤのようなかかる製品にアクセスするために適合された特定のタイプのソフトウェア・コントローラに提供することができる。あるいは、例えば、ソフトウェア・コントローラは、特定の使用プログラムのための動作プラットフォームとして機能する「メタ使用プログラム」によって実施することができ、コインは、これらの特定の使用プログラムによって実行されるソフトウェア・プロダクトを使用するためのライセンスを表す。一例として、本実施形態において、ソフトウェア・コントローラ６２ａはオーディオ・プレーヤ・プログラムによって実施され、個々のソフトウェア・プロダクト６５は歌のためのオーディオ・ファイルであることを想定する。
【００４９】
この実施形態において、コイン６７に基づいたライセンシング・システムは、２つの長期秘密鍵ｋ１およびｋ２によって補足される。図に示すように、ソフトウェア・コントローラ６２ａはメタ・ライセンスのための鍵ｋ１、ｋ２の双方を保持するのに対し、ＤＲＭサーバ６１はメタ・ライセンスに対応する第２の鍵ｋ２のみを知っている。これらの鍵ｋ１、ｋ２は、例えば、第１の実施形態に関して上述したようなＤＲＭサーバからの第１のコイン６７の取得時のように、メタ・ライセンスの開始時に、当業者に認められるいずれかの便利な方法でセットアップすることができる。いったん鍵がセットアップされると、ソフトウェア・コントローラ６２ａは、双方の鍵ｋ１、ｋ２のもとでソフトウェア・プロダクト６５を示すプロダクト・データを暗号化し、この暗号化データをバックアップ・ストレージ位置にストアする。バックアップ・ストレージは、図において６８で示し、一般に、これは、例えば何らかの他のユーザ・デバイス、または、ＤＲＭサーバ、または、何らかのサード・パーティ・ストレージ位置のように、いずれかの好都合なストレージ位置とすることができる。この例では、ソフトウェア・コントローラ６２ａが暗号化したプロダクト・データは、ソフトウェア・プロダクトＳＰ自体、および、図に示すような関連した個々のライセンスＬSPを含む。最初のバックアップは、メタ・ライセンスの開始時に、ソフトウェア・コントローラ６２ａによって行われ、その後、動作中に、例えば周期的に、または、更に別のソフトウェア・プロダクト６５のために新しい個々のライセンスを取得する際に、更に別のバックアップが定期的に行われる。所望の場合、かかる後のバックアップは、完全または増分的とすることができる。
【００５０】
コイン６７を用いたシステムの動作は、概ね、図１の実施形態を参照して記載した通りである。このため、コイン６７は、上述のような使用期間および交換期間を有し、ソフトウェア・コントローラ６２ａは、現在のコイン６７の使用期間中のみ、ライセンスを付与したソフトウェア・プロダクト６５を動作可能とする。具体的には、プロダクト６５を実行するためのユーザ要求を受信すると、ソフトウェア・コントローラの動作は、ほぼ図３に示す通りである。ただし、ステップ３１において、ソフトウェア・コントローラは、対象のプロダクトについて個々のライセンスＬSPが保持されていることを調べ、次いで現在のコイン６７のためのステップ３２に移る。図２を参照して上述したように、現在のコイン６７は定期的に新しいコインと交換される。しかしながら、この実施形態の図２のステップ１２において、ソフトウェア・コントローラ６２ａは、図７に示すように、第１の鍵ｋ１および、バックアップ６８における暗号化プロダクト・データのストレージ位置と共に、現在のコインのコピーを供給する。これらは、次いで、故障の場合に用いるため、ユーザによってストアすることができる。
【００５１】
また、ＤＲＭサーバ６１の動作は、概ね、図１のシステムのサーバ２について記載した通りであるが、この場合、ＤＲＭサーバは、現在のコイン６７に関連付けてメタ・ライセンスのための第２の鍵ｋ２をストアする。例えば、ストアされた鍵ｋ２は、現在のコインのためのトークン識別子によって相互参照することができる（ここでは、トークン識別子はコイン自体である場合がある）ので、所与のコインを交換のために受信すると、そのコインに関連付けた鍵ｋ２を検索することができる。そして、この実施形態において、ＤＲＭサーバ６１が、古いコインを交換する際に新しいコインを供給する時はいつでも（図４のステップ４４に相当する）、ＤＲＭサーバは、新しいコインと共に関連する鍵ｋ２を供給する。
【００５２】
この実施形態において、ユーザ・デバイス６４が故障した場合、ユーザは、鍵ｋ１および暗号化プロダクト・データのバックアップ・ストレージ位置と共に、ソフトウェア・コントローラ６２ａが以前供給したコピー・コインを、図７の６２ｂに示すような別の同一のソフトウェア・コントローラに入力することができる。新しいソフトウェア・コントローラは、供給されたコインをコピー・コインとして識別し（図２のステップ１１）、このため、このコインを交換のためにＤＲＭサーバ６２に送信する。次いで、ＤＲＭサーバは、コピー・コインを新しいコインに交換し、新しいコインは、第２の鍵ｋ２と共にソフトウェア・コントローラ６２ｂに戻される。そして、ソフトウェア・コントローラ６２ｂは双方の鍵を有し、バックアップ・ストレージ６８にアクセスしてプロダクト・データを復号して全ての個々のライセンスＬSPを引き継ぐことができる。そして、新しいソフトウェア・コントローラを用いた動作は、通常のように継続することができる。
【００５３】
図７の実施形態は、コイン６７が表す単一のメタ・ライセンスのもとで、多数のライセンス付与されたソフトウェア・プロダクトの使用を制御するための便利なシステムを提供することがわかる。故障の場合、メタ・ライセンスおよび個々のプロダクト・ライセンスを新しいデバイスに容易に移すことができるが、交換可能コイン・システムは、上述の第１の実施形態と同じ方法で、不正に対する保護を与える。更に、上述のシステムにおける第１の鍵ｋ１は、ユーザのためのバックアップのプライバシーを保証し、一方で、第２の鍵ｋ２は、ユーザ自身が他のデバイス上で不法にバックアップを使用できないことを保証する。
【００５４】
図７の実施形態において、メタ・ライセンスを表すデータ・トークンはコイン６７であるが、各鍵ｋ２には１つのみのメタ・ライセンスがあるので、同じライセンスに属する異なるトークンをリンク不可能に維持することには意味がない。このため、所望の場合、ここで、データ・トークンについてもっと単純な表現を用いることができる。例えば、トークンは、単に、（例えば、コインがすでに用いられたか否かの説明責任を望む場合、一方向的な機能のプリイメージ（preimage）の）１度だけのパスワードとすることができる。かかるデータ・トークンを交換するため、ソフトウェア・コントローラは、上述のようなセキュアなチャネルを介して、１度だけのパスワードをＤＲＭサーバに送信することができる。いずれの場合であっても、交換済みデータ・トークンのチェーンがリンク不可能である場合、ユーザは現在のトークンをストアすることを忘れたがチェーン内に少なくとも１つの以前のトークンを有し、ＤＲＭサーバは、所与の使用期間中に同じメタ・ライセンスについて２つのトークンをリリースしないことを確実としながら、この以前のトークンを現在のトークンと交換することを可能とするように適合させることができる。
【００５５】
ソフトウェア・コントローラが、バックアップ６８において、ｋ１のみのもとで暗号化された現在のコインを常にストアする場合、図７の実施形態において、ユーザのタスクを更に簡略化することができる。この場合、ソフトウェア・コントローラは、ｋ２およびバックアップの位置をユーザに供給すれば良いだけである。これらは、必要な場合、新しいソフトウェア・コントローラに供給され、これは次いで、現在のコインを検索し復号した後に、これをＤＲＭサーバに供給することができる。また、ユーザは、第３の鍵ｋ３を用いてｋ１を暗号化することができ、この場合ｋ３は弱いパスワードとすることができる。ここで、バックアップの可用性および機密性の良好なバランスを取るために、他の様々な可能性が考えられる。
【００５６】
全体として、図７の方式は、以前の実施形態と同じセキュリティをＤＲＭサーバに与える。ユーザは、特定のメタ・ライセンスが更新される時をＤＲＭサーバが監視することができるという点で、ある程度のプライバシーを失うが、メタ・ライセンスが充分に粗い場合は、これはあまり重要ではない。なぜなら、ほとんどのデバイスは、定期的にメタ・ライセンスを更新するからである。更に、サーバにストアされている場合、バックアップ６８の長さは、ある量の情報を与える。ソフトウェア・コントローラはアイデンティティを有しないので、ＤＲＭサーバに識別されることなく、ユーザはソフトウェア・コントローラを変更することができ、ユーザは、ＤＲＭサーバがリンクすることができないように、多数のメタ・ライセンスを有することができる。
【００５７】
留意すべきことは、古いコインを交換する際に新しいコインが供給されるたびに、図７の実施形態におけるＤＲＭサーバは鍵ｋ２を供給するが、受信したコインがコピー・コインである場合はこれをする必要があるだけである。このため、他の実施形態では、ＤＲＭサーバは、受信したコインがコピー・コインであるという指示（例えばソフトウェア・コントローラによって与えられる）に応答して、ｋ２に新しいコインを供給すれば良いだけである。また、バックアップにおいて暗号化されストアされたプロダクト・データは、ここでは、個々のソフトウェア・プロダクトおよびそれらのライセンスの双方を含むが、プロダクト・データが、単に、個々にライセンス付与されたプロダクトを将来の使用のために識別することができる何らかの形態の識別データを含むという実施形態を考えることができる。個々のライセンスＬSP自体は、例えば個々のデータ・トークンによって、いずれかの便利な方法で表すことができる。
【００５８】
現在のデータ・トークンがメタ・ライセンスのために保持され、個々のプロダクト・ライセンスＬSPが保持される場合にのみ、多数のソフトウェア・プロダクトのいずれかの使用を可能とするようにソフトウェア・コンントローラを適合させた、様々な代替的な実施形態を考えることができる。例えば、上述のような様々な形態の交換トークンを用いて、メタ・ライセンスを更新するか、あるいは転送するか、またはその両方を行うことができる。個々のライセンスＬSPは、例えばＤＲＭサーバから、または他の何らかの関連サーバからのように、様々な方法で取得することができ、このサーバは、メタ・ライセンスに特別にバインドされた形態で個々のライセンスを利用可能とすることができる。一例として、特に単純な実施形態では、メタ・ライセンスを更新するための交換トークンは、ライセンス番号Ｎを有する固定の平文長期ライセンスとすることができる。個々のプラダクト・ライセンスＬSPを購入する場合、ユーザはどのメタ・ライセンス番号Ｎのもとでそれを購入するかを指示する。ここで、個々のライセンスＬSPは、メタ・ライセンス番号ＮのもとでプロダクトＳＰの使用を可能とするライセンス・テキストのもとでの署名とすることができる。（これは、ほとんど、個々のライセンスが特定のユーザ・デバイスにバインドされているようなものであるが、ただし、デバイスは仮想的であり、どの実際のデバイスが現在メタ・ライセンスを所有するかとして規定される。）ソフトウェア・コントローラは、メタ・ライセンスのための交換トークンを用いて、概ね上述のように、メタ・ライセンスのための現在のデータ・トークンを取得することができ、次いで、個々のライセンスＬSPに規定されたメタ・ライセンスＮのための現在のデータ・トークンを有する場合、ソフトウェア・プロダクトＳＰの使用を可能とする。ソフトウェア・コントローラは、前述のようにバックアップ位置に個々のライセンスＬSPをストアし（そして、このバックアップは、好ましくは、上述のｋ１のようなユーザに既知の鍵のもとで、セキュリティの理由のため暗号化される）、これによって、メタ・ライセンスの転送時に、個々のライセンスを新しいソフトウェア・コントローラによって引き継ぐことができる。
【００５９】
上述した代替的な実施形態は、特定の単純な実施を与えるが、高レベルのユーザ・プライバシーを提供しない。具体的には、個々のプロダクト・ライセンスを匿名で購入することができても、１つのメタ・ライセンスのもとで一人のユーザが購入した個々のライセンスは全て、番号Ｎによってリンクすることができる。これは、上述のｋ２のような、ソフトウェア・コントローラおよびＤＲＭサーバに既知であるがユーザには知られていない鍵のもとでバックアップを暗号化することによって、回避することができる。メタ・ライセンスのための交換トークンは、ここでも、固定の平文長期ライセンスとすることができるが、この場合、これは、鍵ｋ２を用いるためのライセンスである。ライセンス・テキストにおいて、ｋ２は識別子（鍵ｋ２のデータベースに対するインデクス等）によって示され、これによって、ＤＲＭサーバはｋ２を検索することができるが、ｋ２についての（メタ・ライセンスを見る）ユーザの情報は与えない。新しいソフトウェア・コントローラは、ＤＲＭサーバが有効なソフトウェア・コントローラとインタラクトしていることを確認するための前述の機構を介して、現在のデータ・トークンと共に鍵ｋ２を取得する。前述のように、この実施形態において、固定交換トークンの代替案として、１度だけのパスワードまたはハッシュ・チェーンを用いることも可能である。
【００６０】
更に別の例として、メタ・ライセンスを更新してもっと高度のプライバシーを与えるためにコインを用いる場合、ＤＲＭサーバが「通常の」交換において見ることができない方法でコインがｋ２を指定する場合であるが、メタ・ライセンスを新しいソフトウェア・コントローラに転送して新しいコントローラがｋ２を明確にｋ２を要求する場合にのみ、後続のコインをリンク不可能とすることができる。これは、コイン交換プロセスにおいて既知のゼロ知識技法を適用することによって、達成可能である。
【００６１】
本発明の範囲から逸脱することなく、上述の具体的な実施形態に、様々な他の変更および変形を行うことができる。例えば、前述の実施形態において、対象のソフトウェア・ライセンスは無限の持続時間のものであるので、不定の期間にわたってデータ・トークンを継続的に交換可能であることを想定した。しかしながら、他の実施形態において、有限持続時間のライセンス等、多くのタイプのライセンスを用いることができ、これによって、データ・トークンの交換をライセンスの持続時間に、または、例えば試用のような特定のタイプの使用対専門的な使用のためのライセンスに限定する。更に、使用期間および交換期間は、与えられる場合、様々な方法で規定することができる。例えば、使用期間は、終了時刻（上述のＰ2）のみで規定し、交換期間は開始時刻（上述のＱ1）のみで規定することができる。しかしながら、交換期間の終了時刻（上述のＱ2）を用いると、ＤＲＭサーバが比較のために古いデータ・トークンをストアする必要性が限定される。使用期間の開始時刻（上述のＰ1）を設けると、所与のシステムにおいて所望の場合、これらの時刻の設定に柔軟性が与えられる。例えば、これらの時刻は、実際の交換時刻の後に設定して、使用期間における重複を生成することなく交換に柔軟性を得ることができる。更に別の例では、セキュリティに何も追加せずに、本発明の実施形態において、ソフトウェア・コントローラをＤＲＭサーバに対して識別可能とすることができる。かかる実施形態は、ライセンスのための移動性および不正からの保護を与えるが、プライバシーの利点の一部は失われる。また、より高度のプライバシーのために、ソフトウェア・コントローラ（および、設けられている場合はバックアップ）からＤＲＭサーバに対する制御されていない情報フローを全て防ぐことが望ましい場合がある。これは、特にコイン・システムについて存在するような、wallets-with-observerアーキテクチャのための標準的な方法を用いて、達成することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明を具現化する第１のソフトウェア・ライセンス管理システムを示す概略ブロック図である。
【図２】図１のシステムにおけるソフトウェア・コントローラによって実行される動作を示すフロー・チャートである。
【図３】図１のシステムにおけるソフトウェア・コントローラによって実行される動作を示すフロー・チャートである。
【図４】図１のシステムにおいてライセンス管理サーバの動作を示すフロー・チャートである。
【図５】図１のシステムにおいて交換済みデータ・トークンのチェーン内の連続データ・トークンの使用期間の関係を示す図である。
【図６】本発明を具現化する第２のソフトウェア・ライセンス管理システムを示す概略ブロック図である。
【図７】本発明を具現化する第３のソフトウェア・ライセンス管理システムを示す概略ブロック図である。
【図１】
2007520815.tif 000003
【図２】
2007520815.tif 000004
【図３】
2007520815.tif 000005
【図４】
2007520815.tif 000006
【図５】
2007520815.tif 000007
【図６】
2007520815.tif 000008
【図７】
2007520815.tif 000009
【国際調査報告】
2007520815.tif 000010
2007520815.tif 000011
2007520815.tif 000012
2007520815.tif 000013
2007520815.tif 000014