説明

アクセス方法、サーバ・リポジトリ、リクエスタ・リポジトリ、及びシステム

【課題】ディジタルワークに対する安全なアクセス方法、リポジトリ、プログラム、システムを提供する。
【解決手段】リクエスタ・リポジトリとサーバ・リポジトリとの第1及び第2の登録トランザクションが成功した場合、リクエスタ・リポジトリは、サーバ・リポジトリに記憶されたディジタルワークのリクエスタ・リポジトリによる使用に関する使用トランザクションを開始し、サーバ・リポジトリは、アクセス要求に関わる当該所定の使用目的に対応する使用権がアクセス要求により要求されたディジタルワークにアタッチされているか否かを判定し、アクセス要求に関わる所定の使用目的に対応する使用権がディジタルワークにアタッチされているならば、サーバ・リポジトリは、ディジタルワークへのリクエスタ・リポジトリによるアクセス要求を許可し、ディジタルワークのコンテンツをリクエスタ・リポジトリに転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルワークを、前記デジタルワークに関連し前記デジタルワークがいかに使用されるかを示す使用態様を指定する使用権に従って、ディジタルワークの使用または配給を制御するシステム及びリポジトリに関する。
【背景技術】
【0002】
電子出版と見なされる出版(パブリッシング)及び情報産業が直面している基本的な問題は、電子出版された資料(データ)の無許可、料金請求されない配給又は使用を如何にして阻止するかにある。電子出版される資料は、一般的にディジタル形式で配給され、これらの資料を再作成する(recreate)能力を有するコンピュータベースシステムにおいて再作成される。オーディオ及びビデオレコーディング、ソフトウェア、書籍、並びにマルチメディアワークは、全て電子出版されている。これらの業界における企業は、小売り店におけるオーディオCDの販売のような資料のデリバリについて責任を負うことに対するローヤリティを受け取る。ワーク(作品、著作物、著書を全般的に称する)の料金請求されない配給は結果的に支払われないローヤリティを生じることになる(例えば、オーディオレコーディングCDを他のディジタル媒体へコピーすること)。
【0003】
電子出版されたワークが、「完全に」再生され、配給されることができる簡単さが主な問題である。ネットワーク全体におよぶディジタルワークの転送は今や常識である。このように広範囲に使用される一つのネットワークは、Internet(インターネット)である。インターネットは、多くの大学、企業、及び政府機関におけるコンピュータのユーザが通信し、アイデアや情報を交換する広範囲なネットワークファシリティである。CompuServe及びProdigy のようなインターネット及び商業ネットワーク上に設けられたコンピュータ掲示板は、ディジタル情報のポスティング及び検索を許容する。Dialog及びLEXIS/NEXIS のような情報サービスは、幅広いトピックに対して現在情報のデータベースを提供する。さらに状況を悪化させる他のファクタは、NII(米国における全国情報基盤整備政策)の開発と拡大である。NIIが成長するにつれて、ネットワーク全体にわたるディジタルワークの転送が何回でも繰り返されて増大することが予想される。従って、広範囲な無許可コピーの危険性を伴わずに、ディジタルワークの配給のためにNIIを使用することが所望される。
【0004】
料金請求されない配給を抑制する最も簡単な方法は、無許可コピー及び転送を防止することにある。ディジタル形式で配給された現存の資料に関しては、種々の保護手段が使用されている。ソフトウェアの場合、作成され得るコピー数を制限したり又はコピー(複製)が検出された時に出力した物を改悪するようなコピー保護方式(スキーム)が用いられてきた。他の方式は、所定期間を経過すると、ソフトウェアを動作禁止にする。ワークステーションベースのソフトウェアに使用される技術は、ソフトウェアをランするには特別なハードウェアデバイスがワークステーション上に存在すべきであることを要求する。これに関しては、例えば、"Method and Apparatus for Protecting Computer Software Utilizing Coded Filter Network in conjuntion with an Active Coded Hardware Device" と題された米国特許第4,932,054 号を参照されたい。このような装置は、一般に、"dongles" と呼ばれるソフトウェアを備えている。
【0005】
さらに他の方式は、ソフトウェアを動作可能にするための「キー」を必要とするソフトウェアを配給することである。これは、ソフトウェアの"demos" (デモンストレーションの意)がプロダクト全体と共に媒体上に提供されるような配給方式において使用される。demos は自由に使用されることができるが、実際のプロダクトを使用する為には、キーが購入されなければならない。まず最初にキーを購入すれば、これらの方式はソフトウェアのコピーを妨害しない。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の一態様は、ディジタルワークの使用または配給を制御するシステムであって、
該システムは、複数のリポジトリを有し、該リポジトリ間でのディジタルワークの使用または配給を制御し、ディジタルワークにはディジタルワークがいかに使用され得るか、または、ディジタルワークがさらに配給され得るかを定義する使用権がアタッチされており、前記リポジトリは、当該システムのディジタルワークの使用または配給の制御を、ディジタルワークにアタッチされている前記使用権に基づいて行い、前記リポジトリの少なくとも一つは、リクエスタ動作モード、ならびに、サーバ動作モードを有する処理手段と、ディジタルワークと使用権を記憶する記憶手段と、を備えており、前記処理手段は、リクエスタ動作モードのときは、他のリポジトリに対してディジタルワークへのアクセス要求を行い、該ディジタルワークを受け取る一方、サーバ動作モードのときは、前記記憶手段に記憶されているディジタルワークへの所定の使用または配給目的のためのアクセス要求を受け取り、該アクセス要求に関わる所定の使用または配給目的に対応する使用権が当該アクセス対象のディジタルワークにアタッチされているか否かチェックし、該チェックに基づき、該アクセス要求の許可、拒絶を決定し、アクセス要求が許可される場合は、ディジタルワークの使用、または配給が許されることを特徴とする。
【0007】
前記他のリポジトリは、ディジタルワークと使用権を記憶する記憶手段を有していてもよい。
【0008】
本発明の別の態様は、他のリポジトリとの間でディジタルワークの使用または配給を制御するリポジトリであって、ディジタルワークには、該ディジタルワークがいかに使用され得るか、または、ディジタルワークがさらに配給され得るかを定義する使用権がアタッチされており、前記リポジトリは、ディジタルワークにアタッチされている前記使用権に基づいて、ディジタルワークの使用または配給の制御を行い、前記リポジトリは、リクエスタ動作モード、ならびに、サーバ動作モードを有する処理手段と、ディジタルワークと使用権を記憶する記憶手段を備えており、前記処理手段は、リクエスタ動作モードのときは、他のリポジトリに対してディジタルワークへのアクセス要求を行い、該ディジタルワークを受け取る一方、サーバ動作モードのときは、前記記憶手段に記憶されているディジタルワークへの所定の使用または配給目的のためのアクセス要求を受け取り、該アクセス要求に関わる所定の使用または配給目的に対応する使用権が当該アクセス対象のディジタルワークにアタッチされているか否かチェックし、該チェックに基づき、該アクセス要求の許可、拒絶を決定し、アクセス要求が許可される場合は、ディジタルワークの使用、または配給が許されるようにしたことを特徴とする。
【0009】
ディジタルワークは、ディジタル形式で変換されるか又は作成されると共にソフトウェアプログラムのような適切なレンダリング手段を用いて再作成され得るあらゆる書き込み、聴覚、グラフィカル、又はビデオベースのワークである。一つ以上のディジタルワークを含むフォルダは、ディジタルワークとして処理されることができる。本発明はディジタルワークのオーナーが彼らのワークに使用権をアタッチするのを可能にする。これらの使用権はディジタルワークがいかにして使用され、配給されるかを定義する。これらの使用権はディジタルワークの一部となり常に遵守される。
【0010】
使用権のインスタンスはフレキシブルで拡張可能な使用権文法を用いて定義される。概念的には、使用権文法における権利は権利を行使することに対する所定の行動と条件に対応したラベルである。例えば、COPY right(著作権)はディジタルワークのコピーが行われてもよいことを表記する。この権利の行使に対する条件は、リクエスタがいくらかのセキュリティ(機密保護)基準を渡さなければならない事にある。条件は権利其れ自体を制限するためにもアタッチされる。例えば、LOAN right(貸出し権)はワーク(作品)が貸し出される期間を制限するために定義されてもよい。
【0011】
本発明においては、使用権は、権利を行使するための種々の条件と一緒に権利コードを備えている。このような条件は、権利が同時に行使される回数を制限するコピーカウント(複製回数)の条件(例えば、所定回数ローンでのコピー数制限)、リクエスタが適切なレベルのセキュリティを有していることを確実とするセキュリティクラス条件、渡されるべきアクセステストを指定するためのアクセス条件、権利を行使するためのタイムベースの制約条件を示すタイム仕様、及び権利の行使に対する使用料を示す料金仕様を含む。ディジタルワークはディジタルワークへアタッチされた権利の異なるバージョンを有することができる。権利のバージョンは他のバージョンと同じ権利コードを有するが、条件(及び一般的には料金)は異なる。
【0012】
ディジタルワークとそれらのアタッチされた使用権はリポジトリ内に記憶される。ディジタルワークはリポジトリ同士の間で転送される。リポジトリは使用トランザクションステップの所定のセットに従ってディジタルワーク同士を交換するように対話する。使用権の行動は使用トランザクションステップの所定のセット内に組み込まれる。当該使用トランザクションステップは権利が行使される前に満たされるべき全ての条件を更にチェックする。これらの使用権トランザクションステップは権利の行使の要求と権利の実行のためにリポジトリによって使用されるプロトコルを定義する。
【0013】
本発明の他の態様は、アタッチされた一つ以上の使用権を有するディジタルワークを配給するための配給システムであって、関連するディジタルワークの所有者が前記関連するディジタルワークを伝送する方法を示す使用権のインスタンスを作成する文法を備え、前記文法から使用権を作成する手段を備え、作成された使用権をディジタルワークへアタッチする手段を備え、ディジタルワークへアクセスするためのリクエスタリポジトリを備え、前記要求リポジトリが使用トランザクションを発生する手段を有し、前記使用トランザクションの各々が使用権を指定し、アタッチされた作成された使用権を有するディジタルワークを記憶するサーバリポジトリを備え、前記サーバリポジトリが、前記リクエスタリポジトリからの使用トランザクションを処理してディジタルワークへのアクセスが許諾されるか否かを決定する手段を有していることよりなるディジタルワーク配給システムである。
【0014】
本発明の他の態様は、ディジタルワークの配給及び使用を制御するためのコンピュータベースシステムであって、ディジタルワークがいかにして使用され又は配給されるかを定義する使用権のインスタンスを作成する使用権文法を備え、前記使用権文法が使用権の伝送を定義するための第1の複数の文法エレメントと使用権のレンダリングを定義するための第2の複数の文法エレメントとを有し、使用権をディジタルワークへアタッチする手段を備え、ディジタルワークを記憶すると共に交換するための複数のリポジトリを備え、前記複数のリポジトリの各々が、ディジタルワークとそれらのアタッチされた使用権を記憶する手段と、トランザクション処理手段であって、要求されたディジタルワークへのアクセスを要求するためのリクエスタ動作モードを有し、前記要求が使用権を指定し、前記要求において指定された使用権と前記要求されたディジタルワークへアタッチされた使用権とに基づいて、前記要求されたディジタルワークへアクセスするための要求を処理するためのサーバ動作モードを有する、前記トランザクション処理手段と、通信媒体を介して前記複数のリポジトリの他のリポジトリと結合する結合手段と、を有することよりなるディジタルワークの配給及び使用の制御用コンピュータベースシステムである。
【発明の効果】
【0015】
ディジタルワークの使用または配給を制御するシステム及びリポジトリを提供する。
【図面の簡単な説明】
【0016】
【図1】本発明の好ましい実施の形態の動作の単純なインスタンス生成を示すフローチャートである。
【図2】本発明の好ましい実施の形態において、種々のリポジトリのタイプを示し、リポジトリ同士間でのリポジトリ・トランザクション・フローを示すブロック図である。
【図3】本発明の好ましい実施の形態において、クレジットサーバに連結されたリポジトリのブロック図である。
【図4】図4の(a)は、本発明の実施の形態において使用され得るレンダリングシステムの実施例を示す図である。図4の(b)は、本発明の実施の形態において使用され得るレンダリングシステムの実施例を示す図である。
【図5】本発明の好ましい実施の形態において使用され得るディジタルワークに対する内容ファイルレイアウトを示す図である。
【図6】本発明の好ましい実施の形態において使用され得る図5のディジタルワークの個々のディジタルワークに対する内容ファイルレイアウトを示す図である。
【図7】本発明の好ましい実施の形態の記述ブロックの構成要素を示す図である。
【図8】図5に示されたディジタルワークの内容ファイルレイアウトに対する記述ツリーを示す図である。
【図9】図6に示された個々のディジタルワークに対応している記述ツリーの部分を示す図である。
【図10】本発明の実施の形態において使用される記述ブロックの権利部分に対するレイアウトを示す図である。
【図11】いくつかのd-ブロックがPRINT 使用権を有する記述ツリーであり、当該記述ツリーが使用権の競合を解消するための「厳格」及び「寛大」なルールを示すために使用される図である。
【図12】本発明の好ましい実施の形態において使用されるリポジトリのハードウェア構成要素のブロック図である。
【図13】本発明の好ましい実施の形態において使用されるリポジトリの機能的(論理的)構成要素のブロック図である。
【図14】本発明の好ましい実施の形態における使用権の基本構成要素を示すブロック図である。
【図15】本発明の好ましい実施の形態の使用権文法のプログラム表示例である。
【図16】本発明の好ましい実施の形態で実行されるように、登録トランザクションにおいて実行される証明書デリバリ、ホットリストチェック及びパフォーマンステストのステップを示すフローチャートである。
【図17】登録トランザクションにおける各リポジトリが図16に示したステップを無事に完了した後で、本発明の好ましい実施の形態において実行されるセッション情報交換とクロック同期のステップを示すフローチャートである。
【図18】本発明の好ましい実施の形態で実行されるように、共通のオープニング及びクロージングステップを含む使用トランザクションに対する基本フローを示すフローチャートである。
【図19】本発明の好ましい実施の形態で実行されるように、ディジタルワークをサーバからクライアントリポジトリへ移動する時にフォローされる伝送プロトコルに従ったサーバ及びクライアントリポジトリの状態のブロック図である。
【発明を実施するための形態】
【0017】
レンダリングシステムが開示されている。本発明はディジタルワークを含む商業的トランザクション(取引)をサポートすることに関する。
【0018】
本明細書中において、用語「ディジタルワーク」、「ワーク」及び「内容」は、ディジタル表現に縮小されたあらゆるワーク(作品、著作物、著書等)を称する。これは、あらゆるオーディオ、ビデオ、テキスト又はマルチメディアワーク、及びワークを再作成するために必要とされ得るあらゆる付随するインタープリタ(例えば、ソフトウェア)を含む。用語「複合ワーク」は、他のディジタルワークの集合からなるディジタルワークを称する。用語「使用権」又は「権利」は、ディジタルワークの配布先として許諾された権利を称する用語である。一般に、これらの権利は、ディジタルワークがいかにして使用され得るか、及び当該ディジタルワークが更に配給され得るか否かを定義する。各使用権は、権利が行使される前に満たされなければならない一つ以上の指定条件を有している。
【0019】
図1は、種々の詳細は省略しているが、本発明の基本的な動作を示す高レベルフローチャートである。図1に関しては、ステップ101において、クリエータがディジタルワークを作成する。ステップ102において、クリエータは適切な使用権及び料金を決定し、ディジタルワークにそれらをアタッチし、次いでそれらをリポジトリ1内に記憶する。適切な使用権及び料金の決定は様々な経済的ファクタによる。アクセス要求が受信されるまで、ディジタルワークはリポジトリ1内に安全に残されている。アクセス要求は、他のリポジトリによるセッション開始から始まる。この時、ステップ103において、リポジトリ2は、リポジトリ1とセッションを開始する。以下により詳細に記述されているように、このセッション開始は、それぞれのリポジトリが信頼できることを確実とするのを助けるステップを含む。セッションが設定されることができると仮定すると、ステップ104において、リポジトリ2は主張された目的のためにDigital Work(ディジタルワーク)へのアクセスを要求することができる。この目的は、例えば、ディジタルワークをプリントすること又はディジタルワークのコピーを入手することであってもよい。この目的は、特定の使用権に対応している。いかなる場合でも、ステップ105において、リポジトリ1はディジタルワークへのアクセスが許諾されたか否かを決定するためにディジタルワークに対応する使用権をチェックする。使用権のチェックは、本質的に、アクセス要求に対応している権利がディジタルワークにアタッチされているか否か、及びこの権利に対応している全ての条件が満たされているか否かについての決定を含んでいる。アクセスが拒絶された場合、ステップ106において、リポジトリ1はエラーメッセージによってセッションを終了する。アクセスが許諾された場合、ステップ107において、リポジトリ1はディジタルワークをリポジトリ2へ転送する。ディジタルワークがリポジトリ2へ転送されると、ステップ108において、リポジトリ1及び2はそれぞれアクセスに対して請求情報を発生し、当該請求情報はクレジットサーバへ転送される。このような2重の請求報告は、請求処理を不正に欺こうとする企てから守るために行われる。
【0020】
図2は、本発明におけるリポジトリタイプ同士間の基本的な対話を示す。図2から明らかになるように、種々のリポジトリタイプは異なる機能を供給する。安全であると共に信頼できる通信を可能とする機能のコアセットをリポジトリが共有することが基本である。図2に関しては、リポジトリ201はリポジトリの一般的なインスタンスを示す。リポジトリ201は、サーバモードとリクエスタモードの二つの動作モードを有している。サーバモードの時、リポジトリは、ディジタルワークへのアクセス要求を受け取ったり、処理したりする。リクエスタモードの時、リポジトリは、ディジタルワークへアクセスするための要求を開始する。リポジトリ201は、その主な目的がディジタルワークのための交換媒体である点で一般的である。動作の過程において、当該リポジトリ201は、複数の他のリポジトリ、即ち、オーソライゼーションリポジトリ202、レンダリングリポジトリ203及びマスタリポジトリ204と通信してもよい。リポジトリ同士の間の通信は、リポジトリ・トランザクション・プロトコル205を用いて行われる。
【0021】
オーソライゼーションリポジトリ202との通信は、アクセスされているディジタルワークがオーソライゼーションを要求する条件を有している時に行われる。概念的に、オーソライゼーションとは、ディジタル的証明書であり、ディジタルワークへのアクセスを得る為にこの証明書の所有が要求される。オーソライゼーションとは、リポジトリ同士の間で移動できると共に料金や使用権の条件に当てられるディジタルワークそれ自体である。オーソライゼーションは、ディジタルワークへのアクセスにおいて関係する両リポジトリによって要求されてもよい。
【0022】
レンダリングリポジトリ203との通信は、ディジタルワークのレンダリングに関して行われる。以下に詳細に記述されるように、レンダリングリポジトリはレンダリングシステムを備えるレンダリングデバイスと連結されている(例えば、プリンタデバイス)。
【0023】
マスタリポジトリ205との通信は、識別証明書を入手することに関して行われる。識別証明書は、リポジトリが「信頼できる」として識別されるための手段である。識別証明書の使用は、登録トランザクションに関して以下に記述されている。
【0024】
図3は、クレジットサーバ301に連結されたリポジトリ201を示す。クレジットサーバ301は、リポジトリ201に対する請求情報を累積するデバイスである。このクレジットサーバ301は、請求トランザクションを記録するために請求トランザクション302を介してリポジトリ201と通信する。請求トランザクションは、クレジットサーバによって請求クリアリングハウス(情報機関)303へ定期的に報告される。クレジットサーバ301は、クリアリングハウストランザクション304を介して請求クリアリングハウス303と通信する。クリアリングハウス・トランザクション304は請求クリアリングハウス303への情報の安全な転送、即ち暗号化された転送を可能とする。
【0025】
レンダリングシステムは、リポジトリと、所望される形式でディジタルワークをレンダリングすることができるレンダリングデバイスとを備えたシステムとして一般に定義される。レンダリングシステムの実施例は、コンピュータシステム、ディジタルオーディオシステム、又はプリンタであってもよい。レンダリングシステムはリポジトリと同じセキュリティ(機密保護)特性を有している。レンダリング・リポジトリのレンダリングデバイスとの連結はレンダリングデバイスのタイプに適した方法で行われてもよい。
【0026】
図4(a)は、レンダリングシステムの実施例としてのプリンタを示している。図4に関しては、プリンタシステム401は、プリンタリポジトリ402及びプリンタデバイス403を含んでいる。なお、当該プリンタシステム401を画定するダッシュラインは、セキュリティシステム境界を画定している。境界との通信は安全であると仮定されている。セキュリティレベルによって、境界は、物理的な完全性を提供するように意図されたバリアも示す。プリンタリポジトリ402は、図2のレンダリングリポジトリ205のインスタンス生成である。当該プリンタリポジトリ402は、幾つかのインスタンスにおいて、プリンタエンジン403によってプリントアウトされるまで残るディジタルワークの一回切りのコピーも含んでいる。他のインスタンスにおいては、当該プリンタリポジトリ402は、使用に基づいて残ったり請求されることができるフォントのようなディジタルワークを含む。このデザインは、プリンタとプリント装置との間の全通信ラインが、物理的に安全な境界の中にない場合に、暗号化されることを確実とする。このデザイン形態によって、ディジタルワークが不正に得られるような潜在的な「フォルト」ポイントが取り除かれる。プリンタデバイス403は、プリントされた出力を作成するために使用されるプリンタ構成要素を示す。
【0027】
図4の(a)にはリポジトリ404も示されている。当該リポジトリ404はプリンタリポジトリ402に連結されている。当該リポジトリ404はディジタルワークを含む外部リポジトリを示す。
【0028】
図4の(b)は、レンダリングシステムとしてのコンピュータシステムの実施例である。コンピュータシステムは、ディジタルワーク(例えば、ソフトウェアプログラム)を実行(execute )し、ディジタルワーク(例えば、ディジタル化された写真)をディスプレイするので、「多機能(multi-function)」デバイスを備えていてもよい。論理的には、物理的リポジトリを一つだけしか必要としないにもかかわらず、各レンダリングデバイスはそれ自体のリポジトリを有しているように見える。図4の(b)に関しては、コンピュータシステム410は、ディスプレイ/実行リポジトリ411を含んでいる。当該ディスプレイ/実行リポジトリ411は、ディスプレイデバイス412及び実行デバイス413に連結されている。当該コンピュータシステム410を囲むダッシュラインボックスは、通信が安全であると仮定されるセキュリティ境界を示している。当該ディスプレイ/実行リポジトリ411は、ディジタルワークへのアクセスに対して請求された料金を通知するためにクレジットサーバ414と、記憶されたディジタルワークにアクセスするためにリポジトリ415と、に更に連結されている。
【0029】
使用権は、ディジタルワークに直接アタッチされている。従って、ディジタルワークの構造を理解することは重要である。特別な複合ディジタルワークにおいては、ディジタルワークの構造は、当然、階層のような非循環構造になるように編成されている。例えば、雑誌は、色々な人によって作成され所有されている可能性のある様々な記事や写真を載せている。これらの記事や写真の各々は階層構造におけるノードを示すことができる。結果的に、制御、即ち使用権は、クリエータ(作成者)によって各ノードへ配置されてもよい。制御と料金の請求が各ノードに対応付けされるのを可能とすることによって、ワークのクリエータは、権利及び料金が不正に欺かれないことを保証することが可能である。
【0030】
本発明の実施の形態においては、ディジタルワークに対するファイル情報は、「内容」ファイルと「記述ツリー」ファイルの二つのファイルへ分割される。リポジトリから見ると、「内容」ファイルは、そのフォーマットが、当該ディジタルワークを再生し、ディスプレイし、又はプリントするために使用されるインタープリタに完全に依存しているアドレス可能なバイトの流れである。「記述ツリー」ファイルは、ディジタルワークの内容とは無関係に、ワークに対する権利や料金を検討することを可能とする。なお、本明細書中で使用されている用語「記述ツリー」は、ディジタルワークの種々の構成要素同士の間の関係を示すために使用される任意のタイプの非循環構造を称する。
【0031】
図5は、内容ファイルのレイアウトを示す。図5に関しては、ディジタルワーク509は、ストーリーA:510、広告511、ストーリーB:512、及びストーリーC:513を備える。ディジタルワークは相対アドレス0からスタートして記憶されると仮定される。ディジタルワークの部分の各々は線形で記憶され、これによりストーリーA:510は、大体、0から30,000番目までのアドレスに記憶され、広告511は30,001から40,000番目までのアドレスに記憶され、ストーリーB:512は40,001から60,000番目までのアドレスに記憶され、ストーリーC:513は60,001から90,000番目までのアドレスに記憶される。ストーリーA:510の詳細は図6に示されている。図6に関しては、ストーリーA510はさらに小さく分けられて、大体、0から1500番目までのアドレスに記憶されたテキスト614、1501から10,000番目までのアドレスに記憶されたレンガ状に積まれた写真615、10,000から25,000番目までのアドレスに記憶されたグラフィックス616、25,001から30,000番目までのアドレスに記憶されたサイドバー617を示している。なお、内容ファイルにおけるデータは圧縮されるか(記憶保存のため)又は暗号化(セキュリティのため)されてもよい。
【0032】
ディジタルワークが階層としてのその構成要素部分によって示されることができることが容易に観察される。ディジタルワークに対する記述ツリーは、関連した記述子ブロック(d−ブロック)のセットを備える。各d−ブロックの内容は、図7に関して記述されている。図7に関しては、d−ブロック700は、リポジトリ内のワークに対する唯一の識別子である識別子701と、当該ワークの第1バイトの開始アドレスを提供する開始アドレス702と、当該ワーク内のバイトの数を付与するレングス703と、許諾された使用権及びそれらの状態データが保持されている権利部分704と、親のd−ブロックを指す親ポインタ705と、子のd−ブロックを指す子ポインタ706とを含んでいる。好ましい実施の形態において、識別子701は二つの部分を有している。第1の部分は、製造時にリポジトリへ割り当てられる唯一の数である。第2の部分は、作成時にワークへ割り当てられる唯一の数である。権利部分704は、権利に対応する種々の情報が保持されているルックアップテーブルのようなデータ構造を含む。それぞれの使用権によって要求された情報は、以下にもっと詳細に記述される。d−ブロックは厳格な階層を形成する。ワークのトップのd−ブロックは親を有しておらず、他の全てのd−ブロックは一つの親を有する。親と子のd−ブロック同士の間の使用権の関係と、競合の解消の方法が以下に説明されている。
【0033】
特別なタイプのd−ブロックは「シェル」d−ブロックである。シェルd−ブロックはその部分の内容以外の新しい内容を追加しない。シェルd−ブロックは権利と料金の情報を追加するために一般的にディジタルワークのディストリビュータによって使用される。
【0034】
図8は、図5のディジタルワークに対する記述ツリーを示す。図8に関しては、ディジタルワークに対するトップのd−ブロック820は、内部に含まれた種々のストーリーと広告を指示する。この時点で、トップのd−ブロック820は、(ストーリーA:510を表す)d−ブロック821、(広告511を表す)d−ブロック822、(ストーリーB:512を表す)d−ブロック823、及び(ストーリーC:513を表す)d−ブロック824を指示する。
【0035】
図9にはストーリーA:510に対する記述ツリーの部分が示されている。d−ブロック925はテキスト614を表し、d−ブロック926は写真615を表し、d−ブロック927はグラフィックス616を表し、d−ブロック928はサイドバー617を表す。
【0036】
記述子ブロックの権利部分704は、図10に更に示されている。図10は、各権利に対して権利部分704において反復される構造を示している。図10に関しては、各権利は、権利コードフィールド1050及び状態情報フィールド1052を有している。権利コードフィールド1050は権利に割り当てられた唯一のコードを有する。状態情報フィールド1052は、権利の状態とディジタルワークに関する情報を含む。このような情報は以下の表1に示されている。権利部分704内に記憶される権利は、一般に、権利コードに基づく数の順序であってもよい。
【0037】
【表1】

【0038】
記述データを内容から分離することによってディジタルワークを示すアプローチは、ファイルの各部分が同一の境界内に存在するが、内容の実際表示には関わっていないことを仮定している。特に、それは、内容表示がオブジェクト指向のアプローチを取るか否かの問題には中立である。内容をオブジェクトとして示すことは自然である。原理的に、請求構造を含む内容オブジェクトと、d−ブロック内で示される権利情報とを有することは都合が良い。表示のデザインにおいてこのようなバリエーションは可能であり、また代替的に実行可能であるが、例えば、オブジェクトの解読のような処理オーバーヘッドを導入することもある。
【0039】
ディジタルワークは階層ファイルシステムの一部としてリポジトリ内に記憶される。フォルダ(ディレクトリ及びサブディレクトリとも呼ばれる)は、ディジタルワークと共に他のフォルダを含む。フォルダ内のディジタルワーク及びフォルダは、アルファベット順に並べられる。これらのディジタルワークはこれらのファイルがいかにして使用されるかを反映するようにタイプされる。フォルダそれ自体がディジタルワークとして取り扱われるように、使用権はフォルダにアタッチされ得る。フォルダへのアクセスは、あらゆる他のディジタルワークと同じ方法で処理される。以下により詳細に記述されるように、フォルダの内容はそれら自体の権利に従属する。さらに、ファイルマネジメント権利がフォルダにアタッチされて、いかにしてフォルダ内容が管理され得るかを定義する。
【0040】
使用権がディジタルワークの一部として取り扱われることは本発明にとっての基本である。ディジタルワークが配給されると、許諾された使用権の範囲はそのまま変わらないか又は狭められる。例えば、ディジタルワークがドキュメントサーバからリポジトリへ転送されると、使用権は、コピーを所定期間貸出す権利を含む(オリジナル権と呼ばれる)。リポジトリがディジタルワークのコピーを貸出す時、貸し手のコピーの使用権(次の権利のセットと呼ばれる)は、コピーを貸出すための任意の付加的権利を禁止するようにセットされることができる。基本的な考えは、彼らが持っている権利より以上の権利は許諾できないということである。
【0041】
使用権のディジタルワークへのアタッチメントは種々の方法で行われることができる。ディジタルワーク全体に対して使用権が同じである場合、ディジタルワークがディジタルワークサーバにおけるデポジットのために処理される時、当該使用権が(ディジタルワークへ)アタッチされる。種々の構成要素毎に異なる使用権を有するディジタルワークの場合、(使用権のアタッチは)ディジタルワークの作成中に実行され得る。使用権アタッチの自動化されたプロセスを提供する著作ツール又はディジタルワークアセンブリングツールが使用され得る。
【0042】
以下に記述されるように、ディジタルワークがコピーされ、転送され、又は貸出される時、「次の権利のセット」が指定され得る。この「次の権利のセット」はそれが伝送される時にディジタルワークへアタッチされる。
【0043】
ディジタルワークの各部分がそれ自体の使用権を有するかもしれないので、「含まれている部分」の権利がその親又はコンテナ(container )部分とは異なるインスタンスがある。これにより、何時、どのように権利が行使されるかを指定するために競合ルールが設定されなければならない。ディジタルワークの階層ストラクチュア(構造)はこのようなルールの実施を円滑にする。「厳格な」ルールとは次のようになる:その部分と、その部分を含む先祖のd−ブロックと、全ての子孫のd−ブロックに対して許諾された場合、及びその場合だけにおいて、ディジタルワークの当該部分に対する権利が許諾される。許諾されることにより、(1)それぞれの部分の各々が権利を有していなくてはならないことと、(2)その権利を行使するためのあらゆる条件が満たされることとが示される。
【0044】
もっと寛大なルールを用いて本発明を実行することも可能である。もっと寛大なルールにおいては、その部分へのアクセスが、権利を有する子孫の部分に対しては動作可能とされるが、権利を有さない子孫に対しては拒絶される。
【0045】
厳格なルール及び寛大なルールの使用例が図11に関して示されている。図11に関しては、ルートd−ブロック1101は子d−ブロック1102乃至1105を有している。この場合、ルートd−ブロックは雑誌を示し、子d−ブロック1102乃至1105の各々は雑誌における記事を示す。厳格なルールに従ったルートd−ブロック1101によって示されたディジタルワークをPRINT するための要求が行われると仮定する。次に、このルートd−ブロック1101と子d−ブロック1102乃至1105に対する権利が検討される。ルートd−ブロック1101と子d−ブロック1102と1105のPRINT 権は許諾される。子d−ブロック1103のPRINT 権は許諾されないが、子d−ブロック1104は使用料の支払いを条件としてPRINT 権を得る。
【0046】
厳格なルール下では、子d−ブロックがPRINT 権(単体)を有していないので、PRINT 権は行使されることができない。寛大なルール下では、結果が異なる。子d−ブロック1102と1105によって示されたディジタルワークは、プリントされることができ、d−ブロック1104によって示されたディジタルワークは、使用料が支払われれば、プリントされることができる。d−ブロック1103によって示されるディジタルワークだけがプリントされることができない。要求が個別ディジタルワークの各々に指定された場合、厳格なルール下では同じ結果が達成される。
【0047】
本発明は、アクセスの許容及び非許容の様々なコンビネーションをサポートする。さらに、以下に説明されるように、使用権文法は、ディジタルワークの所有者が、制約条件がコンテナ部分によってワークに課せられるか否かを指定するのを許容する。ディジタルワークが使用権競合のために認可され得る方法は、実施に関する特性であり、この方法は、ディジタルワークの性質に依存する。
【0048】
図2の記述において、リポジトリが種々の形式を取ることが示されている。全てのリポジトリはディジタルワーク転送のためのサービスのコアセットを提供する。ディジタルワークが交換される方法は、リポジトリ同士の間の全てのトランザクションに対する基本である。種々のリポジトリタイプはそれらが実行する最終的な機能が異なっている。リポジトリはそれら自体がデバイスであってもよいし、又は他のシステムに組み込まれてもよい。図2のレンダリングリポジトリ203がその一例である。
【0049】
リポジトリはリポジトリ識別子と自身を対応付ける。一般的に、リポジトリ識別子は製造時に当該リポジトリへ割り当てられた唯一の数字である。各リポジトリはまた、特別なセキュリティクラス内にあるものとして分類される。いくつかの通信及びトランザクションは、特別なセキュリティクラス内にあるリポジトリ上で条件が付与される。種々のセキュリティクラスは以下に詳細に記述される。
【0050】
動作に欠くことのできないものとして、リポジトリは識別証明書の所有を必要とする。識別証明書は偽造を防止するために暗号化され、Master repository (マスタリポジトリ)によって発行される。マスタリポジトリはリポジトリがディジタルワークを受け取るのを可能にするオーソライゼーションエージェントの役割を果たす。識別証明書は定期的に更新されなければならない。識別証明書は登録トランザクションに関して以下により詳細に説明される。
【0051】
リポジトリはハードウェアと機能表現の両方を備えている。機能表現は、一般に、ハードウェアの具体化部分で実行されるソフトウェアである。或いは、機能表現は、Application Specific Integrated Circuit (ASIC)チップのようなハードウェアの具体化部分に埋め込まれてもよい。
【0052】
リポジトリのハードウェアの具体化部分は、合意が得られれば、リポジトリを動作不可能にさせるセキュリティハウジングに囲まれている。リポジトリのハードウェアの具体化部分の基本的構成要素は図12に関して記述されている。図12に関しては、リポジトリは、処理手段1200、記憶システム1207、クロック1205及び外部インタフェース1206からなる。処理手段1200はプロセッサエレメント1201とプロセッサメモリ1202を備える。当該処理手段1200は、コントローラと、リポジトリトランザクションと、このリポジトリのための使用権トランザクション機能とを提供する。ディジタルワークとトランザクションメッセージの復号及び/又は圧縮解除のようなリポジトリの動作上の種々の機能も処理手段1200によって実行される。プロセッサエレメント1201は、マイクロプロセッサ又は他の適切な演算構成要素であってもよい。プロセッサメモリ1202は、一般的に、ROM(リードオンリーメモリ)及びRAM(ランダムアクセスメモリ)を更に備える。このようなメモリは、リポジトリの機能を実行する時に、プロセッサエレメント1201によって使用されるソフトウェア命令を含む。
【0053】
記憶システム1207は、記述子記憶装置1203及び内容記憶装置1204を更に備える。記述子記憶装置1203は、ディジタルワーク用の記述ツリーを記憶し、内容記憶装置1204は対応する内容を記憶する。記述子記憶装置1203及び内容記憶装置1204は、同じタイプの記憶媒体である必要はないし、また、必ずしも同じ物理的デバイス上に置かれる必要もない。ここで、例えば、記述子記憶装置1203は、(記述ツリー情報の迅速な検索のための)固体記憶装置上に記憶されてもよいが、内容記憶装置1204は光ディスクのような高容量記憶装置上に置かれてもよい。
【0054】
クロック1205は、使用権のための又はディジタルワークに対応され得る使用料を課金するための種々のタイムベースの条件をタイムスタンプするために使用される。当該クロック1205は、タイムスタンプの完全性を維持するため、途絶しない電源、例えば、バッテリを有する。外部インタフェース手段1206は、他のリポジトリ及びクレジットサーバへ信号接続を提供する。外部インタフェース手段1206は、RS−232又はPersonal Computer Manufacturers Card Industry (PCMCIA)規格、又はFDDIのような標準インタフェースを介して信号の交換を提供する。外部インタフェース手段1206はネットワーク接続性を提供してもよい。
【0055】
リポジトリの機能的な具体化部分は図13に記述されている。図13に関しては、機能的な具体化部分は、オペレーティングシステム1301、コアリポジトリサービス1302、使用トランザクションハンドラ1303、リポジトリ特定機能1304、及びユーザインタフェース1305を備える。オペレーティングシステム1301はリポジトリにとって特定であり、一般的に使用されているプロセッサのタイプに依存する。オペレーティングシステム1301は、リポジトリの基本的構成要素同士の間で制御し、インタフェースするための基本的サービスも提供する。
【0056】
コアリポジトリサービス1302は、各リポジトリ及び全てのリポジトリによって要求される機能のセットを備える。このコアリポジトリサービス1302は、以下に詳細に定義されるセッション開始トランザクションを含む。このサービスのセットは、ディジタルチケットを「パンチ」するために使用されるジェネリックチケットエージェントと、オーソライゼーション仕様を処理するためのジェネリックオーソライゼーションサーバとを含んでいる。ディジタルチケット及びオーソライゼーションは、ディジタルワークの配給及び使用を制御するための特定メカニズムであり、以下により詳細に説明されている。複数の識別証明書1306がコアリポジトリサービスに連結されていることに注目されたい。識別証明書1306はリポジトリの使用を可能とするために必要とされる。
【0057】
使用トランザクションハンドラ1303は、ディジタルワークへのアクセス要求を処理すると共にアクセスに基づいて料金を請求する機能を備えている。サポートされている使用トランザクションはリポジトリタイプにより異なる。例えば、ディジタルワークに対するアクセス要求をハンドル(処理)することが必要ではないリポジトリもある。
【0058】
リポジトリ特定機能1304はリポジトリにとって唯一の機能を備える。例えば、マスタリポジトリはディジタル的証明書を発行すると共に暗号化キーを保持するための特別な機能を有している。このリポジトリ特定機能1304は、リポジトリに対するユーザインタフェースの実行を含む。
【0059】
幾つかのディジタルワークに対しては、オーソライズされていないコピーのあらゆる個々のインスタンスによって生じる損失は重要ではなく、主な経済的関心は、アクセスの利便性やロー・オーバーヘッドの請求を確実とすることにある。このような場合において、セキュリティの対策や保証が充分でなくても、単純かつ廉価なハンドヘルド・リポジトリやネットワークベースのワークステーションが適切なリポジトリであるかもしれない。
【0060】
封切られたばかりの映画、有価証券、又は株式証券のような幾つかのディジタルワークの他の極端なケースは、非常に価値が高いため、それらがコピーされたり、偽造されることがないのを確実にするために、警戒やかなり入念なセキュリティ(機密保護)対策を取ることが賢明である。このようなディジタルワークを保持するのに適したリポジトリは、物理的完全性を確実にするための、及び使用前のオーソライゼーションを検証するための念入りな対策を有することができる。
【0061】
汎用プロトコルを配列することによって、全ての種類のリポジトリは原則として相互通信することができる。しかしながら、幾つかのワーク(著作物)のクリエータは、彼らのワークがセキュリティレベルが充分に高いリポジトリへのみ転送を指定したいと望む。このため、ドキュメントリポジトリはセキュリティのクラス及びレベルに対してランキングシステムを有する。本発明の好ましい実施の形態におけるセキュリティクラスは表2に説明されている。
【0062】
【表2】




【0063】
表2に記述されたセキュリティレベルの特性表示は固定的なものではない。もっと重要なのは、異なるリポジトリに対して異なるセキュリティレベルを有することの考えである。新しいセキュリティクラス及び必要条件が社会的状況やテクノロジの変化に応じて進化することが望まれる。
【0064】
リポジトリ・ユーザ・インタフェース
ユーザインタフェースは、ユーザがリポジトリと対話してディジタルワークへのアクセスを得るためのトランザクションを呼出すか又は使用権を行使するメカニズムとして広く定義付けられている。上記のように、リポジトリは種々の形式で組み込まれる。リポジトリに対するユーザインタフェースは、特定の実施例によって異なる。ユーザインタフェースは、ディジタルワークを示すアイコンや実行され得る種々のトランザクションを有するグラフィカルユーザインタフェース(GUI)であってもよい。ユーザインタフェースは情報がユーザにプロンプトされる生成ダイアログであってもよい。
【0065】
ユーザインタフェース自体はリポジトリの一部である必要はない。リポジトリが他のデバイス内に埋め込まれてもよい場合、ユーザインタフェースは、リポジトリが埋め込まれるデバイスの一部であるにすぎない。例えば、リポジトリはコンピュータシステム内の利用可能なスロットに挿入される「カード」内に埋め込まれることができる。ユーザインタフェースは、コンピュータシステムで実行されるディスプレイ、キーボード、カーソル制御デバイス及びソフトウェアの組み合わせである。
【0066】
最低でも、ユーザインタフェースは、ユーザが、アクセス要求及び英数字データのような情報を入力すると共にトランザクション状態に対してフィードバックを提供するのを可能にしなければならない。ユーザインタフェースは、次に、要求を保守するために、リポジトリに対して、適切なトランザクションを開始させる。特別なユーザインタフェースの他のファセットはリポジトリが提供する機能に依存する。
【0067】
本発明において、料金は権利の行使に対応付けられる。料金支払の必要条件は、使用権言語における使用権の各バージョンと共に記述される。このような料金の記録及び通知はクレジットサーバによって行われる。料金を権利に対応付けることによって可能とされるいくつかの可能性の内の一つは、広範囲の請求モデルをサポートすることの可能性である。従来のソフトウェアによって使用された最も簡単なモデルは、購入時には単一料金しか設定されておらず、その後は、購入者は彼又は彼女が望む限り何度もワークを使用できる無制限の権利を得たのである。他のモデルとしては、課金される使用及び可変料金を含む。単一ワークは異なる使用に対して異なる料金を有することができる。例えば、ディスプレイ上の写真を見ることは、ハードコピーを作成すること又は当該ハードコピーを新しく作成されたワークに組み込むこととは別の料金を有する。これらの他の請求モデルへのキーは、料金を設定してこれらのトランザクションに対する料金計算を行うロー・オーバーヘッド手段を有することにある。
【0068】
クレジットサーバは、料金が請求され支払われるよう、これらのトランザクションを確実にオーソライズし、記録する計算システムである。当該クレジットサーバは料金を請求クリアリングハウスへ通知する。当該請求クリアリングハウスは、金融トランザクションが発生するとこれらのトランザクションを管理する。結果的には、請求書が発生され、その料金が清算される。好ましくは、クレジットサーバは、料金トランザクションを記憶し、清算のためにネットワークを介して請求クリアリングハウスと周期的に通信する。このような実施例において、請求クリアリングハウスとの通信は、完全性とセキュリティの理由のために暗号化される。他の実施例において、クレジットサーバは、ユーザの勘定に対してトランザクションが「リアルタイム」で発生する「デビット(借り方)カード」として作用する。
【0069】
クレジットサーバは、メモリ、処理手段、クロック、並びにリポジトリ及び金融機関と結合するためのインタフェース手段(例えば、モデム)からなる。クレジットサーバは、セキュリティ及び認証の機能を有する必要もある。これらのエレメントはリポジトリのエレメントと本質的に同じエレメントである。従って、単一デバイスが対応する機能とプロトコルを実行するための適切な処理エレメントを有していると仮定すれば、それはリポジトリとクレジットサーバの両方であることができる。一般的に、しかしながら、クレジットサーバは、リポジトリに結合され、以下に説明されるように金融トランザクションを介して対話する。金融機関との対話は、金融機関自体によって設定されたプロトコルを介して行われてもよい
【0070】
本発明の実施の形態において、サーバとリポジトリの両方に対応しているクレジットサーバは、請求クリアリングハウス(情報の中心機関)へ金融トランザクションを通知する。例えば、ディジタルワークがその料金に関して一つのリポジトリから他のリポジトリへコピーされる時、リポジトリの各々に結合されたクレジットサーバはこのトランザクションを請求クリアリングハウスに通知する。このことは、クレジットサーバと請求クリアリングハウスの通信が中断された場合でも、トランザクションの料金計算が行われることを保証する観点から望ましい。しかしながら、幾つかの実施例では、いくつかのトランザクションを失う危険性のある時にトランザクションの処理を最小とするように当該トランザクションへ通知する単一クレジットサーバのみを組み込むことができる。
【0071】
本発明は、ディジタルワークとそれらの部分に対応している権利を定義するために高レベル「使用権言語」のステートメントを用いる。使用権ステートメントはリポジトリによって解読され、あるディジタルワークに対してどのトランザクションが無事に遂行され得るかを決定するため、及びこれらのトランザクションに対するパラメータを決定するために使用される。例えば、言語におけるセンテンスは、所与のディジタルワークがコピーされ得るか否か、何時そしていかにしてそれが使用され得るか、及びその使用に対していくら(あれば)請求されるべきかを決定する。使用権ステートメントが発生すると、これらは、トランザクションの処理中にアクセスするために適切な形式でコード化される。
【0072】
使用権をディジタルワークの階層表現と組み合わせて言語で定義することによって、(ディジタルワークの)広範囲の配給と料金方式のサポートが可能となる。一つの例は、権利の複数のバージョンをワークにアタッチする可能性である。そこで、クリエータは10ドルで5部のコピーを作成するPRINT 権や、100ドルでコピーを無制限に作成するPRINT 権をアタッチすることができる。次に、購入者は、どのオプションが彼のニーズに一番適しているかを選択することができる。他の例としては、権利と料金が加算されるものである。ここで、複合ワークの場合、構成要素ワークの各々の権利及び料金は、全体としてワークに対する権利及び料金を決定するときに使用される。
【0073】
権利の基本的な内容は、図14に示されている。図14に関しては、権利1450は、トランザクショナル構成要素1451及び仕様構成要素1452を有する。権利1450は、権利によって組み込まれる使用又は配給の特権を示すラベル(例えば、COPY又はPRINT )を有する。トランザクショナル構成要素1451は、ディジタルワークが使用されるか又は配給される特別な方法に対応している。当該トランザクショナル構成要素1451は、一般的に、権利についての使用又は配給の特権を実行するリポジトリ内のソフトウェア命令の中に組み込まれている。仕様構成要素1452は、権利が行使される前に満たされなければならない条件を指定するか又は種々のトランザクションに関連したパラメータを指定するために使用される。本発明の好ましい実施の形態においては、これらの仕様は、コピーカウント1453、料金と報酬1454、タイム1455、アクセスとセキュリティ1456、及び制御1457を含む。これらの仕様の各々は、言語文法エレメントに関して以下に詳細に説明されている。
【0074】
使用権言語は以下に説明される文法に基づく。文法は、言語に対するシンボルの有効なシーケンスを定義するために便利な手段である。文法を説明する際、代替物からの明確な選択を示すために表記[a|b|c]が使用される。この例において、センテンスは、"
a"、"b"、又は"c"のいずれかを有することができる。センテンスはその内の一つを正
確に含んでいなければならない。ブレース{}が選択項目を示すために使用される。ブラケット[]やバーやブレースが使用権センテンスの言語を記述するために使用されるが、言語の実際のセンテンス内には現れない。
【0075】
これに対して、括弧()は使用権言語の部分である。括弧はリストされた項目をグループ化するために使用される。表記(x* )は可変長リスト、即ち、タイプxの一つ以上の項目を含むリストを示すために使用される。表記(x)* はxを含む可変数リストを示すために使用される。
【0076】
文法におけるキーワードはコロンが付加されるワードである。キーワードは言語における共通で、非常に特別なケースである。これらは単一値、一般には識別子を示すために時々使用される。多くの場合、キーワードとパラメータは全体的にオプショナルである。キーワードが与えられると、その値として単一の識別子を取る。いくつかの場合において、キーワードは識別子のリストを取る。
【0077】
使用権言語において、時間は、hours:minutes:seconds(又はhh:mm:ss) 表現で指定される。タイムゾーンインジケータ、例えば、PDT(Pacific Daylight Time)も指定されることができる。日付は年/月/日(又はYYYY/MMM/DD)として示される。これらの時間及び日付の表現は、時刻即ち時間の単位を指定することができる。お金の単位はドルに換算して指定される。
【0078】
使用権言語において、種々の「もの」が互いに対話する必要がある。例えば、使用権のインスタンスは、銀行トランザクション、ディジタルチケット等を指定する。このような物は、識別される必要があり、本発明においては接尾辞"-ID" を用いて指定される。
【0079】
使用権文法は図15にその全体のリストが作成されており、以下に詳細に記述されている。
【0080】
文法エレメント1501"Digital Work Rights=(Rights* )"は、ディジタルワーク権利を権利のセットとして定義する。ディジタルワークにアタッチされる権利のセットはそのディジタルワークがいかにして転送され、使用され、実行され又は再生されるかを定義する。権利のセットは全体的なディジタルワークにアタッチされ、複合ディジタルワークの場合はディジタルワークの構成要素の各々にアタッチされる。ディジタル構成要素の使用権は異なる。
【0081】
文法エレメント1502"Right:=(Right-Code{Copy-Count}{Control-Spec}{Time-Spec }{Access-Spec }{Fee-Spec})"は、権利の内容を列挙している。各使用権は権利コードを指定しなければならない。各使用権は権利が行使され得る前に満たされなければならない条件も選択的に指定することができる。これらの条件とは、コピーカウント、制御、タイム、アクセス、及び料金の条件である。本発明の好ましい実施の形態において、オプショナルエレメントに関しては、以下のデフォルトが適用される。即ち、1のコピーカウント、権利の使用に関する時間制限の非設定、権利を使用するために要求されるアクセステスト又はセキュリティレベルの非設定、及び無料。これらの条件はそれぞれ以下により詳細に記述される。
【0082】
それぞれが同じ権利コードを有する複数の権利バージョンをディジタルワークが有していてもよいことに注目することは重要である。複数のバージョンは、ディジタルワークにアクセスするための代替条件や料金を提供する。
【0083】
文法エレメント1503"Right-Code:= Render-Code |Transport-Code|File-Management-Code|Derivative-Works-Code Configuration-Code" は、(各権利が異なる権利コードによって識別されるが、)特定権利の各々を特別の権利タイプに区別する。このように、文法は、ディジタルワークの部分に対応し得る可能性のある権利のカタログを提供する。以下において、権利はそれらを記述する便宜上、カテゴリ別に分けられる。
【0084】
文法エレメント1504"Render-Code:= Play: {Player:Player-ID}|Print:{Printer:Printer-ID} "は、全てがディジタルワークの一時的で、短命の、又はノンディジタルのコピーの作成を含む権利のカテゴリのリストである。これらのコピーは使用された後は消去される。
・Play−幾つかのプロセッサ上でディジタルワークをレンダリング又は実行するプロセス。これはディジタル映画の再生、ディジタル音楽の再生、ビデオゲームの再生、コンピュータプログラムの実行、又はディスプレイ上でのドキュメントの再生などのものを含む。
・Print −使用権によってこれ以上は保護されない媒体へワークをレンダリングすること、例えば、用紙にプリントすること。
【0085】
文法エレメント1505"Transport-Code:= Copy|Transfer|Loan{Remaining-Rights:Next-Set-of-Rights } {(Next-Copy-Rights:Next-Set of Rights) }" は、持続性があり、他のリポジトリ上で使用可能なディジタルワークのコピーの作成を含む権利のカテゴリのリストである。オプショナルなNext-Copy-Rightsは、伝送された後のワークの権利を決定する。これが指定されない場合、伝送されたコピーの権利はオリジナルの権利と同じである。オプショナルなRemaining-Rightsは、コピーが貸出された時にディジタルワークと共に残っている権利を指定する。この権利が指定されない場合、デフォルトは、コピーが貸し出された時に権利が行使されないデフォルトである。
・Copy−ワークの新しいコピーを作成する。
・Transfer−ワークを一つのリポジトリから他のリポジトリへ移動する。
・Loan−指定された期間、コピーを他のリポジトリへ貸し出す。
【0086】
文法エレメント1506"File-Management-Code:=Backup {Back-Up-Copy-Rights:Next-Set-of Rights}|Restore |Delete|Folder|Directory {Name:Hide-Local |Hide-Remote }{Parts:Hide-Local|Hide-Remote }" は、コピー所有者を悲惨な機器の故障から保護するためにバックアップコピーのようなファイルマネージメントのための動作を含む権利のカテゴリのリストである。
【0087】
多数のソフトウェアライセンス及び著作権法は、コピー所有者を悲惨な機器の故障から保護するためにバックアップコピーを作成する権利をコピーの所有者に与える。しかしながら、制御されないバックアップコピーの作成は、オーソライズされたコピーが販売された後でも制御されないバックアップコピーが保存され復元されることもできるので、本質的に使用を制御する能力とならない。
【0088】
File-Management (ファイルマネージメント)の権利は、使用権を尊重する方法でバックアップコピーの作成及び復元を可能とし、コピー所有者と権利授与者及び収入所有者の双方の要求条件を尊重する。ワーク記述のバックアップコピー(使用権及び料金データを含む)は、適切なプロトコル及び使用権制御下において、充分に高度なセキュリティを有する他のドキュメントリポジトリへ送られ得る。更なる権利によってディジタルワークのフォルダへの編成が許容される。これらのフォルダはこれら自体がディジタルワークとして扱われ、それらの内容が、リポジトリの内容を決定しようとするパーティから「隠蔽」されてもよい。
・Backup−媒体の故障に対する保護としてディジタルワークのバックアップコピーを作成すること。
・Restore −ディジタルワークのバックアップコピーを復元すること。
・Delete−ディジタルワークのコピーを削除又は消去すること。
・Folder−フォルダを作成及びネーミングし、フォルダ同士の間でファイル及びフォルダを移動すること。
・Directory −フォルダ又はその内容を隠蔽すること。
【0089】
文法エレメント1507"Derivative-Works-Code:= Extract|Embed |Edit{Process:Process-ID} {Next-Copy-Rights:Next-Set-of-Rights }" は、新しいワークを作成す
るためのディジタルワークの使用を含む権利のカテゴリのリストである。
・Extract −新しいワークの作成目的のため、ワークの部分を取り除くこと。
・Embed −現存のワーク内にワークを組み込むこと。
・Edit−現存のディジタルワークの部分をコピー、選択、及び変更することによりディジタルワークを変更すること。
【0090】
文法エレメント1508"Configuration-Code:=Install|Uninstall"は、リポジトリ(一般的にレンダリングリポジトリ)上でソフトウェアをインストールする権利及びインストールしない権利のカテゴリのリストである。これは一般的にレンダリングリポジトリ内での新しいタイプの再生手段のインストールに対して発生する。
・Install −リポジトリ上で新しいソフトウェアをインストールすること。
・Uninstall −リポジトリから現存のソフトウェアを除去すること。
【0091】
文法エレメント1509"Next-Set-Of-Rights:= { Add: Set-Of-Rights)}{(Delete:Set-Of-Rights)}{(Replace:Set-Of-Rights}{(Keep:Set-Of-Rights)}" は、ディジタルワークのコピーに対する権利がどのように進められるかを定義する。Next-Copy-Rightsが指定されない場合、次のコピーに対する権利は現在コピーの権利と同じである。さもなければ、次のコピーに対する権利のセットが指定され得る。Add の後の権利のバージョンは、権利の現在セットに加算される。Deleteの後の権利は、権利の現在セットからデリートされる。権利コードだけがDeleteの後にリストされた場合、これらのコードを有する権利の全てのバージョンがデリートされる。Replace の後の権利のバージョンは、権利の現在セットにおける同じタイプの権利の全てのバージョンを包含する。
【0092】
Remaining-Rightsが指定されない場合は、全てのローンコピーが貸し出された後、オリジナルに対する権利はない。Remaining-Rightsが指定された場合、背後でどの権利をキープすべきかについての表現を単純化するためにKeep: トークンが使用されることができる。キープ手段に続く権利コードのリストは、リストされた権利のバージョンの全てが残りのコピーの中に保持されていることを意味する。この仕様は、引き続くDelete: 又はReplace:仕様によって無効にされることができる。
【0093】
種々のトランザクションに関しては、権利に対して同時に行使され得るワークの「コピー」の数について何らかの制限を行うことが所望される。例えば、一度に貸し出され、一度に閲覧され得るディジタルワークのコピー数を制限することが所望される。
【0094】
文法エレメント1510"Copy-Count:= (Copies:positive-integer |0 |unlimited)" は、権利を得ることを条件とするワークの「コピー」数を定義する条件を提供する。コピーカウントはゼロ、固定数、又は無制限である。ディジタルワークに対して単一のコピーカウントが存在していることに対抗して、コピーカウントは各権利に対応している。権利に対するCopy-Countは権利が行使される度にデクリメントされる。権利に対するCopy-Countがゼロに等しい場合、この権利はもう行使されない。Copy-Countが指定されない場合、デフォルト値は1である。
【0095】
権利と料金は、概して、クリエータによって許諾された権利に依存すると共に、新しいディストリビュータによって課される更なる制限にも左右される。制御仕様は、クリエータと、更なる制限及び料金の賦課を支配する彼らのディストリビュータと、の間での対話を処理する。例えば、ディジタルワークのディストリビュータは、ディジタルワークの最終的な消費者が、購入されたディジタルワークを商業的に活用して料金をつり上げたり、さもなければ、利益を得たりすることを望まない。
【0096】
文法エレメント1511"Control-Spec:= (Control:{Restrictable|Unrestrictable}{Unchargeable|Chargeable})"は、権利の行使に対する親の使用権及び料金の影響を指定するための条件を提供する。より高いレベルのd−ブロックが、権利に対して更なる制限(タイム仕様及びアクセス仕様)を課すことができる場合、ディジタルワークは制限可能である。更なる制約が課せられない場合は制限不可能である。デフォルトの設定は制限可能である。それ以上の料金を権利の使用に課すことができない場合、権利は請求不可能である。それ以上の料金を権利の使用に課すことができる場合、権利は請求可能である。このデフォルトは請求可能である。
【0097】
何時権利が行使されるかの開始日を割当てたり又は期間を指定することがしばしば望まれる。文法エレメント1512"Time-Spec:=({Fixed-Interval|Sliding-Interval|Meter-Time}Until:Expiration-Date)" は、権利の行使への時間の条件を指定することを備える。権利は指定された時間の間、許諾され得る。異なる時間仕様の種類は異なる種類の権利に対して適正である。幾つかの権利は決められた所定の期間、行使されことができる。幾つかの権利は、あるトランザクションにより権利が呼び出される時刻からスタートするインターバルの間だけ行使されてもよい。幾つかの権利は、ある種類の課金時間に従って行使されるか又は請求されることができ、この課金時間は、分離されたインターバルへ分割され得る。例えば、絵画を1時間見る権利は、10分の閲覧を6回、15分の閲覧を4回、及び20分の閲覧を3回に分割されてもよい。
【0098】
用語「タイム」及び「デート」は同義語として使用されて時刻を表している。いくつかの種類の時間仕様がある。各仕様は、使用権が適用される時間に対して制限を示す。Expiration-Date は使用権が終了する時刻を指定する。例えば、Expiration-Date が「1995年1月1日」である場合、権利は1995年の最初の時刻に終了する。Expiration-Date が *forever * と指定された場合、権利は終了せずに継続するものとして解読される。満期日だけが与えられている場合、その権利はその満期日までに所望されるだけ行使されることができる。
【0099】
文法エレメント1513"Fixed-Interval:= From:Start-Time"は開始時間から満期日までランされる所定のインターバルを定義するために使用される。
【0100】
文法エレメント1514"Sliding-Interval:= Interval:Use-Duration"は、不定の(又は「オープン」)なスタート時間を定義するために使用される。該エレメントは、内容がアクセス可能である時間の連続期間に制限をセットする。この期間は、最初のアクセスの時にスタートし、この期間が経過した後か又は満期日に達した後かのいずれか早い方で終了する。例えば、権利が10時間の連続アクセスを付与する場合、使用期間は、最初のアクセスが行われた時に開始し、10時間後に終了する。
【0101】
文法エレメント1515"Meter-Time:=Time-Remaining:Remaining-Use"が「課金時間」、即ち、権利が実際に行使された時間の測定、を定義するために使用される。これは、ディジタルワーク使用中の時間(期間)が連続的である必要がない点で、Sliding-Interval仕様とは異なる。例えば、権利が三日間のアクセスを保証する場合、これらの日数は、一ケ月以上にわたり分散されることができる。この仕様によって、これらの権利は、課金時間を使い果すか又は満期日に達するかのいずれか早い方まで行使される。
【0102】
Remaining-Use:=Time-Unit
Start-Time:=Time-Unit
Use-Duration:=Time-Unit
時間仕様の全てはそれらの最終的なインスタンス生成においてタイムユニット仕様を含む。
【0103】
本発明は、配給又は使用方式へ導入される種々のセキュリティメカニズムを提供する。文法エレメント1516"Access-Spec:=( {SC:Security-Class }{Authorization:Authorization-ID* }{Other-Authorization:Authorization-ID* }{Ticket:Ticket-ID}) はアクセス及び転送を限定する手段を提供する。アクセス仕様は権利を行使するためにリポジトリに対して要求されたセキュリティクラス又は満たされなければならない要求されたオーソライゼーションテストを指定することができる。
【0104】
キーワード"SC:" はアクセスにおいて含まれるリポジトリに対する最小のセキュリティレベルを指定するために使用される。"SC:" が指定されない場合、最低のセキュリティレベルが受容可能である。
【0105】
オプショナルな"Authorization" キーワードは、ワークと同じリポジトリでの要求されるオーソライゼーションを指定するために使用される。オプショナルな"Other-Authorization" キーワードは、トランザクションにおける他のリポジトリへ要求されるオーソライゼーションを指定するために使用される。
【0106】
オプショナルな"Ticket:" キーワードはトランザクションに要求されたチケットの識別を指定する。ディジタルチケットを含むトランザクションは、トランザクションが進められる前に「パンチ」することができるか又はこのチケットを有効にすることができる適切なディジタルチケットエージェントを検索しなければならない。チケットは以下により詳細に記述されている。
【0107】
リポジトリとドキュメントサーバを含むトランザクションにおいて、いくつかの使用権は、リポジトリが特定のオーソライゼーションを有すること、サーバがいくつかのオーソライゼーションを有すること、又は両リポジトリが(恐らく異なる)オーソライゼーションを有することを要求することができる。オーソライゼーション自体は、他のディジタルワークと同様にリポジトリ同士の間で移動することができるディジタルワーク(これ以降、オーソライゼーションオブジェクトと呼ばれる)である。これらのコピー及び転送は、他のディジタルワークと同じオーソライゼーション及び料金を受けることができる。リポジトリはこのオーソライゼーションオブジェクトがこのリポジトリ内に含まれる場合、オーソライゼーションを有すると言われる。
【0108】
いくつかのケースにおいて、オーソライゼーションはドキュメントサーバ及びリポジトリ以外のソースから要求されてもよい。Authorization-IDによって参照されるオーソライゼーションオブジェクトは、リポジトリとオーソライゼーションソースの間での通信リンクをセットアップするために使用されるディジタルアドレス情報を含むことができる。これらは電話番号に類似している。このようなアクセステストに対しては、通信が設定される必要があり、権利が行使される前にオーソライゼーションを得なければならない。
【0109】
一度だけの使用権に関するこの方式の変形は、ディジタルチケットを持つことである。チケットはディジタルチケットエージェントに提供され、チケットにそのタイプが指定される。最も単純なケースにおいては、全てのリポジトリへ利用可能な、保証されたジェネリックチケットエージェントが、このチケットを「パンチ」するために利用可能である。他のケースにおいては、チケットは「特別」のチケットエージェントを検索するためのアドレス情報を含むことができる。チケットは一旦パンチされると、同じ種類のトランザクションに再度使用することはできない(以下に説明されるように、非パンチ状態にされる、即ちリフレッシュされる場合は除く)。パンチングは、チケットが使用される日時のタイムスタンプでチケットにマーキングすることを含む。チケットはディジタルワークであり、これらのディジタルワークの使用権に従って、リポジトリ同士の間でコピー又は転送され得る。
【0110】
本発明の好ましい実施の形態において、「パンチされた」チケットは、それがコピーされるか又は抽出される時、「非パンチ状態にされる」即ち「リフレッシュされる」。Copy及びExtract 動作はそのディジタルチケットの特性として日時を保存する。チケットエージェントがチケットを付与された時、当該ディジタルエージェントは、それが、パンチされた最終時間の後でコピーされたか否かを単純にチェックすることができる。ディジタルチケットは、当然、そのコピーを有するか、又は当該コピーにアタッチされた使用権を抽出しなければならない。
【0111】
チケットをパンチしない能力は以下の場合に重要である。
・ディジタルワークが一回だけの使用に限定されて低コストで頒布される。
・ディジタルワークが、他のワークの購入の際の割引をするために一回使用可能なチケットによって頒布される。
・ディジタルワークが、未来のアップグレード用に使用することができる(購入価格に含まれ、恐らくそのワーク内に埋め込まれた)チケットによって頒布される。
【0112】
これらの各ケースにおいて、購入されたコピーが、(チケットを含む)ディジタルワークから成される場合、新しい所有者は、そのコピーの販売者がそのワークを使用してもしなくても、フレッシュ(パンチされてない)チケットを得ることを期待する。これに対して、ワークの貸出し又はワークを単に他のリポジトリへ転送することは、チケットを再利用することではない。
【0113】
ディジタルワークの使用に対する請求は、商業的流通システムに対する基本である。文法エレメント1517"Fee-Spec:= {Scheduled-Discount}Regular-Fee-Spec|Scheduled-Fee-Spec|Markup-Spec"はディジタルワークの使用に対する請求のオプションの範囲を提供する。
【0114】
この方法の主要な特徴は潜在的に少量のトランザクションに対するローオーバーヘッド請求の開発である。これにより、数千のトランザクションの各々に対してほんの数セントの料金を集めることが容易となる。
【0115】
文法は、使用毎に請求が発生する使用と、タイムユニットによって課金される使用と、を区別する。トランザクションは、ディジタルワークを使用するためにユーザが支払う料金だけでなく、ユーザを誘導してディジタルワークを使用又は配給させるために権利許諾者がユーザに支払った報酬をサポートすることができる。
【0116】
オプショナルなスケジュールされた割引は、料金仕様の残りの部分に対応し、所定割合の時間だけ料金を割り引く。指定されない場合、スケジュールされた割引はない。規定の料金仕様は時間当たりで一定している。スケジュールされた料金仕様は、料金仕様が変化する日付のスケジュールを付与する。マークアップ仕様は既に請求されている料金に対して手数料を加算するためにd−ブロック内で使用される。
【0117】
文法エレメント1518"Scheduled-Discount:=(Scheduled-Discount:(Time-Spec Percentage) * )"。Scheduled-Discountは、本質的に、ディジタルワークの権利の当該バージョンに対する他の料金仕様のスケジュールされた変更子である。(これは子又は親のディジタルワーク又は他の権利バージョンに対応しない)。これは時間とパーセンテージのペアリストである。トランザクションの時にまだ経過していないリスト内の最新時間が、実施される時間である。このパーセンテージは割引パーセントを付与する。例えば、数字10は10%の割引を示す。
【0118】
文法エレメント1519"Regular-Fee-Spec:=({Fee:|Incentive:} Per-Use-Spec |Metered-Rate-Spec |Best-Price-Spec |Call-For-Price-Spec {Min:Money-Unit Per:Time-Spec}{Max:Money-Unit Per:Time-Spec}To:Account-ID)" は数種類の料金仕様を提供している。
【0119】
Fee:が指定されたならば、料金はコピー所有者/ユーザによって総収入所有者へ支払われる。Incentive:が指定されると、報酬は収入所有者によってユーザへ支払われる。Min:仕様が付与されると、その使用に対してタイム仕様毎に請求される最小の料金が示される。次に、Max:仕様が与えられると、その使用に対してタイム仕様毎に請求される最大の料金が示される。Fee:が指定されると、Account-IDは料金が支払われる勘定書を識別する。Incentive:が指定されると、Account-IDは料金が支払われる勘定書を識別する。
【0120】
文法エレメント1520"Per-Use-Spec:= Per-Use:Money-Unit" は、トランザクションに掛かった時間に関係なく、権利が行使される度に支払われる単純な料金を定義する。
【0121】
文法エレメント1521"Metered-Rate-Spec:= Metered:Money-Unit Per:Time-Spec"は権利が行使された時間に応じて支払われる課金レート料金を定義する。このように、トランザクションを終了するのに掛かった時間がこの料金を決定する。
【0122】
文法エレメント1522"Best-Price-Spec:= Best-Price:Money-unit Max:Money-unit"は勘定書が設定された時に決定される最適価格を指定するために使用される。この仕様は、リポジトリが利用できない情報に依存する特別な取引(deal)、リベート、及び価格表示を含む。全ての料金仕様は、消費者が問屋であるか若しくは好ましい顧客であるか、又は販売者が何らかの方法でオーソライズされていることなどを示すことができるチケット又はオーソライゼーションと合成されることができる。 Max: フィールドにおける金額は使用にかかる経費の最大の額である。これは、クレジットサーバに仮請求された金額である。しかしながら、最終的に取引が成立した時にいかなる超過金額も別のトランザクションで消費者へ返却される。
【0123】
文法エレメント1523"Call-For-Price-Spec:= Call-For-Price"は、価格が変動する場合を含むことを意図している点で、"Best-Price-Spec" に類似している。Call-For-Price-Spec は、価格を決定するためにディーラーとの情報交換を要求する。権利が行使される時にリポジトリがディーラーと通信できない場合、このオプションは行使されることができない。このことは、ディーラーが、権利を行使するためにプライスを付け、取引証明を渡す安全なトランザクションに基づいており、この取引証明は請求プロセスにおいて参照されたり又は取込まれる。
【0124】
文法エレメント1524"Scheduled-Fee-Spec:=(Schedule:(Time-Spec Regular-Fee-Spec) * ) は、料金仕様が変化する日付のスケジュールを提供するために使用される。最新の過去の日付を有するこの料金仕様が、実施される料金仕様である。これは料金の合意を各期間ごとに変更するための手段を提供するので、より一般的である。
【0125】
文法エレメント1525"Markup-Spec:=Markup:percentage To: Account-ID" は、既に請求されている料金に手数料を加算するために提供される。例えば、5%のマークアップはこれまでの累積料金の5%の料金がディストリビュータに割り当てられることを示す。マークアップ仕様は他の種類の料金仕様の全てに適用されることができる。当該マークアップ仕様はディストリビュータによって提供されたシェル内に一般に使用される。これは現在d−ブロックの部分であるd−ブロックに対応する料金に当てはまる。これは税金又はディストリビュータオーバーヘッドに使用するために役立つ仕様である。
【0126】
ユーザがディジタルワークへのアクセスを要求する時、リポジトリは種々のトランザクションを開始する。呼び出されたトランザクションの組み合わせは使用権に割り当てられた仕様に依存する。セッション開始トランザクション、金融トランザクション及び使用トランザクションの三つの基本的なタイプのトランザクションがある。概して、セッション開始トランザクションは有効なセッションを設立するために最初に開始される。有効なセッションが設定されると、種々の使用権に対応するトランザクションが呼び出される。最後に、特定トランザクションリクエスト(request specific transactions )が実行される。
【0127】
トランザクションは、二つのリポジトリ(一つがサーバとして作用する)の間、リポジトリとドキュメント再生プラットフォーム(例:実行及び閲覧用)の間、リポジトリとクレジットサーバの間、又はリポジトリとオーソライゼーションサーバの間で発生する。トランザクションが一つ以上のリポジトリ同士の間で発生する時、これらのリポジトリ同士の間に信頼できる通信チャネルがあると仮定される。この通信チャネルは、例えば、転送エラーを検出し、補正するための組込み(built-in)機能を有するTCP/IPチャネル又は他の市販されているチャネルであってもよい。しかしながら、通信チャネルが安全であるとは仮定されない。セキュリティ及びプライバシーの提供は、リポジトリを指定、実行するための必要条件の一部であり、これにより、種々のトランザクションに対する必要性が構成される。
【0128】
トランザクションはリポジトリ同士の間のいくつかの通信があることを要求する。リポジトリ同士の間の通信はメッセージと称されるユニットにおいて発生する。通信ラインは安全でないと仮定されるので、最低セキュリティクラスより上にある全てのリポジトリとの通信は、パブリックキー暗号技術を用いて暗号化される。パブリックキー暗号化は暗号化技術において周知の技術である。用語「キー」は暗号化及び復号のアルゴリズムと共に使用される。キーはペアで現れ、そこでは、「書き込みキー」がデータを暗号化するために使用され、「チェッキング・キー」がデータを復号するために使用される。書き込み及びチェッキング・キーは共にパブリック又はプライベートであってもよい。パブリックキーは他に配給されるキーである。プライベートキーは秘密保持される。
【0129】
キーの管理とセキュリティはパブリックキー暗号化システムの成功において有用である。本発明の好ましい実施の形態において、一つ以上のマスタリポジトリはこれらのキーを保持し、リポジトリによって使用される識別証明書を作成する。
【0130】
発送リポジトリが受信リポジトリにメッセージを転送する時、この発送リポジトリは、当該受信リポジトリのパブリックな書き込みキーを用いてそのデータの全てを暗号化する。発送リポジトリは、それ自体の名前、受信リポジトリの名前、(以下に記述される)臨時語(nonce )のようなセッション識別子、及び各メッセージにおけるメッセージカウンタを含む。
【0131】
このように、通信は、復号に対してプライベートなチェッキング・キーを保持する受信リポジトリによってのみ(高い確率で)読み出されることができる。補助データはセキュリティを様々な再生攻撃から保護するために使用される。メッセージが誤ったカウンタ又は古い臨時語と共に到着した場合、リポジトリは、誰かが通信を妨害し、トランザクションが終了したと仮定することができる。
【0132】
暗号化のために使用されるリポジトリのためのそれぞれのパブリックキーは以下に記述される登録トランザクションにおいて得られる。
【0133】
使用トランザクションはリポジトリ同士の間のセッションにおいて実行される。一つ以上のリポジトリを含む使用トランザクションに対して、又はリポジトリとクリジットサーバの間の金融トランザクションに対して、登録トランザクションが実行される。ログイントランザクションと呼ばれる第2のトランザクションが、セッションを開始するために要求されることもある。リポジトリ同士の間の通信チャネルは信頼できるが、安全ではないと仮定されるので、非リポジトリがリポジトリへの合法的でないアクセスを得るためにプロトコルを模倣するかもしれない危険性がある。
【0134】
二つのリポジトリ間の登録トランザクションは、図16及び17に関して記述されている。記述されているステップは、識別を「リポジトリ−2」に登録する「リポジトリ−1」の観点からである。その識別をリポジトリ−1に登録しているリポジトリ−2に対して同じセットのステップが反復されるよう、登録は対称的でなければならない。図16に関しては、ステップ1601においてリポジトリ−1は最初に暗号化された登録識別子を発生し、ステップ1602において登録メッセージを発生する。登録メッセージは、マスタリポジトリの識別子、リポジトリ−1に対する識別証明書、及び暗号化されたランダム登録識別子で構成されている。識別証明書は、そのプライベートキーでマスタリポジトリによって暗号化され、当該リポジトリ(ここではリポジトリ−1)が本物のリポジトリであることを証明する。識別証明書はリポジトリ、リポジトリセキュリティレベル、及び(その時間を過ぎれば証明書がもはや有効ではないことを示す)タイムスタンプのためのパブリックキーも含む。登録識別子はこの登録のためのリポジトリによって発生された数字である。当該登録識別子はセッションに対して唯一であり、リポジトリ−1のプライベートキーで暗号化される。当該登録識別子はいくつかの種類の通信ベース攻撃を検出することによって認証のセキュリティを改善するために使用される。次に、ステップ1603において、リポジトリ−1は、登録メッセージをリポジトリ−2へ転送する。
【0135】
登録メッセージを受け取ると、ステップ1604において、リポジトリ−2は当該メッセージがマスタリポジトリに必要とされるパブリックキーを持っているか否かを決定する。リポジトリ−2が識別証明書を復号するのに必要とされるパブリックキーを持たない場合、ステップ1618において、登録トランザクションはエラーで終了する。
【0136】
リポジトリ−2が適当なパブリックキーを有すると仮定すると、ステップ1605において、識別証明書が復号される。ステップ1606において、リポジトリ−2は暗号化された登録識別子を保存し、ステップ1607において、リポジトリ識別子を抽出する。ステップ1608において、抽出されたリポジトリ識別子は、採用されたドキュメントリポジトリの「ホットリスト」に対してチェックされる。本発明の好ましい実施の形態において、各リポジトリは採用されたリポジトリの「ホットリスト」を含む。そのリポジトリが「ホットリスト」に載っている場合、ステップ1618において、登録トランザクションはエラーで終了する。リポジトリはそれらの証明書の期限が切れると、ホットリストから除外されることができ、これによりリストは際限なく成長しなくてもよい。さらに、リポジトリは以前に受け取ったホットリスト証明書のショートリストを保持することによって、当該リポジトリは実際にこのリストを検討する作業を避けることができる。これらのリストはマスタリポジトリによって暗号化される。能率を改善するためのアプローチのためのマイナーな変形は、ホットリスト証明書の名前のリストを最初に交換するリポジトリを有し、結果的に、以前に受け取ったことのないリストのみが交換される。「ホットリスト」はマスタリポジトリによって保持され、配給される。
【0137】
トランザクションがエラーで終了する代わりに、トランザクションが、他の登録メッセージが他のマスタリポジトリによって作成された識別証明書に基づいて送られることを要求することができることに注目されたい。これは、申し分のない識別証明書が見つかるまで又は信頼が確立されないことが決定するまで反復される。
【0138】
リポジトリがホットリスト上にないと仮定した場合、リポジトリ識別は検証されなければならない。言い換えれば、リポジトリ−2は、(リンクの)他端におけるリポジトリが実際にリポジトリ−1であることを検証する必要がある。これはパフォーマンステストと呼ばれ、リポジトリ−1とリポジトリ−2の間の前のセッション開始のレコードを再生する偽リポジトリを介してリポジトリへの無効なアクセスを防止するために実行される。パフォーマンステストは、ステップ1609においてパフォーマンスメッセージを発生するリポジトリ−2によって開始される。パフォーマンスメッセージは、臨時語(ノンス)、それぞれのリポジトリの名前、時間、及びリポジトリ−1から受け取られた登録識別子からなる。ノンスは、いくつかの任意の可変情報(例えば、時間又は温度)に基づいて生成されたメッセージである。このノンスは、リポジトリ−1がメッセージ上で今まで一度も見たことが要求されるプライベートキーを用いて、当該リポジトリ−1がメッセージの正確な暗号化を実際に展開することができるか否かをチェックするために使用される。パフォーマンスメッセージはリポジトリ−1の登録メッセージ内で指定されたパブリックキーを用いて暗号化される。このパフォーマンスメッセージは、ステップ1610において、リポジトリ−1へ転送され、ステップ1611において、そのプライベートキーを用いてリポジトリ−1によって復号される。次に、リポジトリ−1は、ステップ1612において二つのリポジトリの名前が正しいか、ステップ1613において時間が正確か、ステップ1614において登録識別子がリポジトリ−1が送った識別子に対応しているか否かを確かめるためにチェックする。これらのテストのうちのどれかが不合格ならば、トランザクションはステップ1616で終了する。これらのテストが合格すれば、ステップ1615において、リポジトリ−1はノンスをリポジトリ−2へ暗号化しないで転送する。次に、リポジトリ−2は、ステップ1617において、受け取ったノンスを元のノンスと比較する。これらが一致しない場合、ステップ1618において、登録トランザクションはエラーで終了する。これらが同じ場合は、登録トランザクションは無事に終了する。
【0139】
この時、このトランザクションが終了しなかったと仮定すると、これらのリポジトリは、セッションの間の全ての通信において使用されるセッションキーを含むメッセージを交換し、クロックを同期する。図17は、セッション情報交換及びクロック同期ステップを示す(再度、リポジトリ−1の観点から)。図17に関しては、ステップ1701においてリポジトリ−1はセッションキーのペアを作成する。第1のキーは、プライベートに保持され、メッセージを暗号化するためにリポジトリ−1によって使用される。第2のキーはリポジトリ−2によって使用されるパブリックキーであり、メッセージの復号を行う。この第2のキーは、ステップ1702において、リポジトリ−2のパブリックキーを用いて暗号化され、ステップ1703において、リポジトリ−2へ送られる。受け取ったら、ステップ1704において、リポジトリ−2は当該第2のキーを復号する。第2のキーは次に続く通信においてメッセージを復号するために使用される。各リポジトリがこのステップを終了すると、これらのリポジトリは共に、もう一方のリポジトリが本物であり、これらのリポジトリがオリジナルのリポジトリと通信していることが確認される。各リポジトリはセッション中の更なる通信を復号するときに使用されるキーをもう一方のリポジトリへ付与する。このキーはそれ自体が受信リポジトリのみのパブリックキーで転送されるので、引き続くメッセージを復号するために使用されるキーを復号することが可能である。
【0140】
セッションの情報が交換された後、リポジトリはこれらのクロックの同期をとらなければならない。クロックの同期は、これらのリポジトリの互いのトランザクションの金融記録に対して合意が得られたタイムベースを設定するために当該リポジトリによって使用される。図17に戻って、ステップ1705において、リポジトリ−2は、タイムスタンプ交換メッセージを発生することによって、クロック同期を開始し、ステップ1706においてこのメッセージをリポジトリ−1へ転送する。受信すると、ステップ1707においてリポジトリ−1はそれ自体のタイムスタンプメッセージを発生し、ステップ1708においてそのメッセージをリポジトリ−2へ戻すように転送する。ステップ1709において、リポジトリ−2は現在時間を記し、ステップ1710において、リポジトリ−1から受け取った時間を記憶する。ステップ1711において、現在時間がリポジトリ−1から受け取った時間と比較される。ステップ1712において、この差は、所定の許容値(例えば、1分)を超過しているかを見るためにチェックされる。超過している場合、ステップ1713において、リポジトリ−2は、当該リポジトリ−2がリポジトリの偽造を示すかもしれないのでトランザクションを終了する。超過していない場合、ステップ1714において、リポジトリ−2は調整されたタイムデルタを計算する。調整されたタイムデルタは、リポジトリ−2のクロックタイムとリポジトリ−1及びリポジトリ−2からの時間の平均との差である。
【0141】
より高い精度を達成するために、リポジトリ−2は時間を一定回数(例えば、5回)まで再び要求し、クロック同期ステップを反復し、その結果を平均する。
【0142】
第2のセッション開始トランザクションはLogin transaction (ログイン・トランザクション)である。Login transaction はトランザクションを要求するユーザの真偽をチェックするために使用される。Login transaction は、クレジットサーバへ請求される金融トランザクションのオーソライゼーションに関して特に慎重である。Login transaction は、ユーザインタフェースにおけるユーザとリポジトリに対応しているクレジットサーバとの対話を含む。ここで交換される情報は、ユーザに対して自体を識別するためにリポジトリ/クレジットサーバによって供給されるログインストリングと、クレジットサーバに対して自身を識別するためにユーザによって提供されるPersonal Identification Number(PIN) (個人識別番号)である。ユーザが、ユーザインタフェースが常駐しているリポジトリとは異なるリポジトリでクレジットサーバへアクセスしている場合、情報の交換はそれぞれのリポジトリのパブリック及びプライベートキーを用いて暗号化される。
【0143】
Billing Transaction (請求トランザクション)はクレジットサーバとの金銭上のトランザクションに関する。請求トランザクションは全ての他の条件が満たされた時に実行され、この要求を許諾するために使用料が要求される。大抵の場合、請求トランザクションは当該技術分野においては良く理解される。これらのトランザクションは、リポジトリとクレジットサーバの間、又はクレジットサーバと請求クリアリングハウスの間にある。つまり、要求されるトランザクションは以下を含む:
・リポジトリとユーザがそれらの本物をクレジットサーバへ設定するための登録及びLOGIN トランザクション。リポジトリとクレジットサーバが単一システムとして実行される場合、これらのトランザクションは完全に内部トランザクションである。
・クレジットサーバがその本物を請求クリアリングハウスへ設定する登録及びLOGIN トランザクション。
・料金を割り当てるためのAssign-fee transaction。このトランザクションにおける情報は、トランザクション識別子、トランザクションにおけるリポジトリの同一性、及びディジタルワークの該当部分からの請求のリストを含む。トランザクションにおいて何らかの異常事態、例えば、通信妨害などが発生した場合、この情報も含まれる。
・請求を割り当てるためのBegin-charge transaction(請求開始トランザクション)。このトランザクションは、課金使用に用いられることを除いては料金割当てトランザクション(Assign-fee transaction)とほぼ同様である。なお、このトランザクションは、料金割当てトランザクションと共に使用料情報を含む。次に、クレジットサーバはクロックをランする役割を果たす。
・課金使用に対する請求を終了するEnd-charge transaction。(このアプローチの変形ではリポジトリは時間ブロック毎に周期的請求情報を交換する。)
・パーソナルクレジットサーバと請求クリアリングハウスの間のReport-charges
transaction(請求通知トランザクション)。このトランザクションは請求(billing) 期
間において少なくとも一度は呼び出される。これは、請求に関する情報を渡すために使用される。貸借カード上で、このトランザクションは、必要に応じて、バランス(貸借対照)情報及びクレジットの制限を更新するために使用される。
【0144】
全ての請求トランザクションにはトランザクションIDが付与され、サーバとクライアントの両方によってクレジットサーバへ通知される。これによって、トランザクションのパーティの一人が銀行カードを無くした場合、請求情報の損失の可能性を軽減し、システムの偽造に対するチェックを行う。
【0145】
セッション開始トランザクションが終了した後で、使用の要求が処理されてもよい。使用要求を処理する時に実行されるステップの記述を簡素化するため、用語「リクエスタ」は要求を開始するリクエスタモードのリポジトリを称するために使用される。用語「サーバ」は、サーバモードのリポジトリを称するために使用されると共に、所望されるディジタルワークも含む。ワークをプリントするか又は閲覧するかの要求のような多数のケースにおいては、リクエスタ及びサーバは同じデバイスであってもよいし、以下に記述されているトランザクションは完全に内部トランザクションであってもよい。このようなインスタンスにおいて、登録トランザクションのようないくつかのトランザクションステップが実行されなくてもよい。
【0146】
使用権トランザクションの全てのセマンティックス(意味論)の一部であるいくつかの共通のステップがある。これらのステップは共通トランザクションステップと呼ばれる。「オープニング」ステップと「クロージング」ステップの二つのステップがある。簡素化のために、これらは使用権トランザクションの全ての記述においてそれらを反復するよりも、本発明においてはリストされている。
【0147】
トランザクションは、ディジタルワークの一部、完全なディジタルワーク、又は他のディジタルワークを含むDigital workを指示することができる。本明細書中には詳細に記述されていないが、トランザクションは複数のディジタルワークからなるフォルダさえも指示することができる。用語「ワーク」はアクセスされているディジタルワークの任意の部分又は任意のセットを指示するために使用される。
【0148】
ステップの多くは特定の条件が満たされているか否かを決定することを含む。各使用権は、権利が行使される前に満たされなければならない一つ以上の条件を有することもあることを思い出して頂きたい。ディジタルワークは部分を有し、部分は部分を有する。異なる部分は異なる権利及び料金を有することができる。従って、トランザクションに含まれる全ての部分に対して必要条件が満たされることを検証することが必要である。要するに、権利が存在しているか及び行使するための条件が満たされているかのチェックに指示される時、全てのこのようなチェックがワークの関連部分のそれぞれに対して発生するように意図されている。
【0149】
図18はトランザクションのための最初の共通のオープニング及びクロージングステップを示している。この時点で、登録が発生し、「信頼できる(trusted) 」セッションが適所に置かれていると仮定される。汎用テストは、ワークを含むフォルダ又はファイルシステム階層内の高位にあるフォルダを含む幾つかのフォルダに対応している使用権に対するテストである。これらのテストは、ワークがワークそれ自体にアタッチされていることに対抗して、ワークが特定のリポジトリ上にあった結果としてのワークに課せられた必要条件に対応している。図18に関しては、ステップ1801において、使用トランザクションを開始する前に、リクエスタは当該トランザクションに対応している権利が行使される前に、要求されるあらゆる汎用テストを実行する。例えば、(ソフトウェアの)インストール権、アンインストール権及びデリート権が、権利が行使される前にリクエスタがオーソライゼーション証明書を有することを要求するために実行されてもよい。他の例は、ディジタルワークがリクエスタへコピーされる前に、ディジタルチケットが提示され、パンチされるという必要条件である。汎用テストのいずれかが不合格ならば、ステップ1802において、トランザクションは開始されない。使用要求を受けて、このように要求されたテストに合格したと仮定すると、ステップ1803において、サーバは、トランザクションの記録又は通知に使用されるトランザクション識別子を発生する。次に、サーバは、ステップ1804において、要求されたトランザクションに対応している権利がディジタルワークに対して許諾されたか否かをチェックする。当該要求に対応している権利がディジタルワークに対して許諾されなかった場合、ステップ1805においてトランザクションは終了する。要求された権利がディジタルワークに対して許諾された場合、サーバは、権利を行使するための種々の条件が満たされたか否かを決定する。ステップ1806において、タイムベースの条件が検討される。これらの条件は権利のバージョンに対するタイム仕様を検討することによってチェックされる。いずれの条件も満たされなかった場合、ステップ1805においてトランザクションは終了する。
【0150】
タイムベースの条件が満たされた場合、ステップ1807においてサーバはセキュリティ及びアクセス条件をチェックする。このようなセキュリティ及びアクセス条件は以下の場合に満たされる。
1)リクエスタが指定されたセキュリティクラス又はそれより高位のセキュリティクラスにあること。
2)サーバがあらゆる指定されたオーソライゼーションテストに合格していること。
3)リクエスタがあらゆる指定されたオーソライゼーションテストに合格し、あらゆる要求されたディジタルチケットを有していること。
いずれの条件も満たされなかった場合、ステップ1805においてトランザクションは終了する。
【0151】
セキュリティ及びアクセス条件がすべて満たされたと仮定すると、ステップ1808においてサーバはコピーカウント条件をチェックする。コピーカウントがゼロに等しい場合、トランザクションは完了することができず、ステップ1805においてトランザクションは終了する。
【0152】
コピーカウントがゼロに等しくないと仮定すると、ステップ1809において、サーバは、要求された権利のために使用されているコピーが、要求された権利(又は関連部分)のためのコピーカウントに等しいか又はそれ以上であるか否かをチェックする。使用中のコピーがコピーカウントより大きいか又は等しい場合、これはトランザクションのバージョンに対する使用権が使い果たされたことを示す。従って、ステップ1805において、サーバはトランザクションを終了する。コピーカウントがトランザクションに使用されているコピーより少ない場合、トランザクションは続けられ、ステップ1810においては、使用されているコピーが当該トランザクションにおいて要求されたディジタルワークの数だけインクリメントされる。
【0153】
次に、サーバは、ステップ1811においてディジタルワークが"Loan"アクセス権利を有しているか否かをチェックする。"Loan"アクセス権利は、全てのコピーが貸し出されても権利が残存していることがあるので、特別のケースである。ディジタルワークが"Loan"アクセス権利を有している場合、ステップ1812において、全てのコピーが貸し出されたか否かを見るためにチェックされる。貸し出されたコピーの数はディジタルワークの貸出権利の全てのバージョンに対するCopy-Counts の合計である。複合ワークに関しては、関連する数字は、複合ワークの各構成要素の合計のような最小数である。全てのコピーが貸し出された場合、ステップ1813において、残りの権利が決定される。残りの権利は、"Loan"の権利のバージョンからの残りの権利仕様から決定される。"Loan"の権利が一つだけの場合、決定は簡単である。残りの権利はLoanの権利のバージョンにおいて仕様された権利か、又はRemaining-Rights: が指定されていない場合は無しである。Loanの権利の複数バージョンがある場合、及び全てのバージョンの全てのコピーが貸し出された場合、残りの権利は、Loanの権利の全てのバージョンに渡って残っている権利の最小セット(共通部分)として取られる。ステップ1814において、サーバは要求されたセットが残りの権利のセット内にあるか否かを決定する。要求されたセットが残りの権利のセット内にない場合、ステップ1805において、サーバはトランザクションを終了する。
【0154】
Loanがディジタルワークの使用権ではない場合、又は全てのコピーが貸し出されず、又は要求された権利が残りの権利のセット内にある場合、ステップ1815において、その権利に対する料金の条件がチェックされる。これはリポジトリとそれに対応するクレジットサーバの間の種々の金融トランザクションを開始する。さらに、ディジタルワークの使用のあらゆる課金が開始される。任意の金融トランザクションが失敗すると、ステップ1805においてトランザクションは終了する。
【0155】
条件がチェックされる順番がステップ1806乃至1815の順序に従わなくともよいことに注目されたい。
【0156】
この時点で、権利特定ステップは今や実行され、ステップ1816として表される。この権利特定ステップは以下により詳細に記述されている。
【0157】
共通のクロージングトランザクションステップが実行される。クロージングトランザクションステップの各々は、トランザクションが無事に完了した後で、サーバによって実行される。図18に戻ってみると、ステップ1817において、要求された権利に対して使用されているコピーの値は当該トランザクションに含まれているコピー数だけデクリメントされる。次に、権利が計量による使用料金仕様を有する場合、ステップ1818において、サーバはトランザクションに含まれている全ての部分に対する権利に対応しているRemaining-Use-Timeから経過した時間を減算する。最後に、権利に対応している料金仕様がある場合、ステップ1819において、サーバは請求を確認するためにEnd-Charge(請求終了)金融トランザクションを開始する。
【0158】
考慮すべき重要な部分は、サーバからリクエスタへのディジタルワークの転送である。本明細書中に記述されている転送プロトコルは有効セッションが作成された後で発生する事象に関する。転送プロトコルは、リポジトリ同士の間での通信中断ケースを取り扱わなければならない。通信チャネルへのノイズ注入のような妨害は完全性チェック(例えば、パリティ、チェックサム等)によって検出されることができる。当該完全性チェックは、伝送プロトコルの中へ組み込まれているが本明細書中では詳細に説明しない。
【0159】
転送プロトコルの基盤となる目標は、通信チャネルの故意又は事故による妨害のようないくつかの故障モードを阻止することである。例えば、トランザクションの終りに近い特定の時間においてユーザがクレジットサーバを有するカードを引いたと仮定する。「カードを引く」ことによってリポジトリが作成されたワークのコピー数を正確に数え損なうような無防備な時間があってはならない。要するに、ディジタルワークを使った後で、支払いを避けるための手段としてパーティが接続を破壊できるような時間があってはならない。
【0160】
トランザクションが妨害(及び失敗)された場合、両方のリポジトリは、ディジタルワークと、失敗前の当該ディジタルワークの状態に対する会計、及び失敗それ自体のモジュール記録を回復する。
【0161】
図19は、トランザクション中に情報を転送する過程におけるステップを示す状態ブロックである。各ボックスは、サーバモード(中央の点線1901の上)又はリクエスタモード(点線1901の下)のいづれかにおいてリポジトリの状態を示す。実線の矢印は状態同士の間の遷移を表す。ダッシュラインの矢印は、リポジトリ同士の間のメッセージ通信を表す。実線の遷移矢印を指し示すダッシュラインのメッセージ矢印は、メッセージが受け取られた時、遷移が発生することを意味すると解釈される。ラベル付けされてない遷移の矢印は、無条件で発生する。状態遷移矢印における他のラベルは遷移をトリガーする条件を記述する。
【0162】
図19に関しては、サーバは最初に新しいトランザクションがスタートメッセージ1903を介して開始される1902の状態にある。このメッセージはトランザクション識別子と、転送されるデータのブロックのカウントとを含むトランザクション情報を含む。最初は、1904において待機状態にあるリクエスタはデータ待機状態1905を実行する。
【0163】
サーバはデータ転送状態1906を実行し、データブロック1907を転送し、次にアクノレッジ状態1908の待機を実行する。データが受け取られると、リクエスタはデータ受け取り状態1909を実行し、データブロックが完全に受け取られた時それはアクノレッジ状態1910を実行し、Acknowledgement message (アクノレッジ・メッセージ)1911をサーバへ転送する。
【0164】
より多くのブロックを送る場合、サーバはリクエスタからAcknowledgement message を受け取るまで待機する。Acknowledgement message が受け取られると、サーバは次のブロックをリクエスタへ送り、アクノレッジを再び待機する。このリクエスタも同じ状態サイクルを反復する。
【0165】
サーバが最終ブロックを送る前に通信の失敗を検出した場合、当該サーバはトランザクションが取り消されるキャンセル状態1912に入る。同様に、リクエスタが最終ブロックを受け取る前に通信の失敗を検出した場合、当該リクエスタは取消状態1913に入る。
【0166】
送ろうとするブロックがなくなった場合、サーバはトランザクションにコミット(委任)し、状態1914における最終のAcknowledgement (アクノレッジ)を待機する。サーバが最終のAcknowledgement message を受け取る前に通信の失敗があった場合、サーバはやはりトランザクションにコミットするが、状態1915におけるそのクレジットサーバへの事象に関する通知を含む。この通知は二つの目的を果たす。この通知は、完全には受け取られなかったディジタルワークを受け取ったものとして請求されたことについてのユーザによる主張を合法とするのを補助する。さらに、これは、疑わしい使用パターン及び妨害を有するリポジトリや通信ラインを識別するのを補助する。サーバは、次に、その完了状態1916を実行する。
【0167】
受け取ろうとするブロックがもうないリクエスタサイドでは、リクエスタは状態1917においてこのトランザクションにコミットする。リクエスタがこの状態における通信の失敗を検出すると、リクエスタは状態1918におけるその失敗をクレジットサーバへ通知するが、依然としてそのトランザクションにコミットし続ける。リクエスタがコミットした時、それはアクノレッジ・メッセージをサーバへ送る。サーバは、次に、その完了状態1919に入る。
【0168】
キー特性は、サーバ及びリクエスタの両方が、全てのデータブロックが引き渡される前にトランザクションが妨害された場合にトランザクションをキャンセルすると共に、全てのデータブロックが引き渡された場合に当該トランザクションにコミットすることである。
【0169】
サーバが全てのデータブロックを送った(及びコミットした)が、リクエスタは全部を受け取っていなかったり、そのトランザクションをキャンセルするような可能性がある。この場合、恐らくは、両方のリポジトリが通信の失敗を検出し、それをこのリポジトリのクレジットサーバへ通知する。通信の失敗の非常に正確なタイミングに依存するのでこのケースは恐らくは稀である。唯一の結果は、リクエスタリポジトリにおけるユーザは、クレジットサービスからの払戻しを望み、この払戻しに対するケースは両リポジトリによる通知により実証されることである。
【0170】
データの損失を防止するために、サーバは、リクエスタからの最終アクノレッジを受け取るまで、あらゆる転送されたディジタルワークをデリートしてはならない。しかし、サーバ又はファイルを使用してもならない。この状態を処理する周知の方法は、「2相コミット」又は2PC(2 phase commit)と呼ばれる。
【0171】
「2相コミット」は以下のように作用する。第1フェーズは上記に示された方法と同様に作用する。サーバはリクエスタへ全てのデータを送る。両方のリポジトリは、トランザクション(及び適切なファイル)にコミットされなかったものとしてマークする。サーバは、ready-to-commit メッセージをリクエスタへ送る。リクエスタはアクノレッジをリターンする。次に、サーバはコミットし、リクエスタにコミットメッセージを送る。リクエスタがコミットメッセージを受け取った時、リクエスタはファイルにコミットする。
【0172】
通信の失敗又は他のクラッシュがあった場合、リクエスタはトランザクションの状況を決定するためにサーバと共にチェックバックしなければならない。サーバはこれに対して最終ワードを有している。リクエスタが全てのデータを受け取っているかもしれないが、リクエスタが最終メッセージを得ていなかった場合、リクエスタはコミットしてはいない。サーバが一旦コミットすると、ファイルが完全に転送されたことが2PCサイクルを開始する前にわかっているので、サーバは先へ進んで(トランザクション記録を除いて)ファイルをデリートすることができる。
【0173】
同じ効果を達成するために使用されることができる技術的に公知の変形がある。例えば、サーバがワークをクライアントへ転送する時に付加的暗号化レベルを使用することができる。クライアントがメッセージアクノレッジの受領情報を送った後でのみ、このクライアントはキーを送る。次に、クライアントはディジタルワークに対しての支払いに合意する。この変形のポイントは、クライアントがワークを受け取ったことの明白な会計履歴を提供することにある。しかしながら、信用のあるシステムに関しては、この変形は暗号化レベルの追加によって会計処理能力の実利得をもたらさない。
【0174】
特定の使用権に対するトランザクションを以下に説明する。
Copy Transaction(コピートランザクション)は、同等か又はやや少ない使用権を有するワークの一つ以上の独立コピーを作成するための要求である。コピーは、それがディジタルワーク全体又はディジタルワークを含むフォルダ全体を指示する点で後で説明される抽出権とは異なる。コピー動作はディジタルワークのある部分を取り除くために使用することはできない。
・リクエスタはサーバへCopy Transactionを開始するようにメッセージを送る。このメッセージはコピーされるワーク、トランザクションに使用される著作権のバージョン、ワークを配置するための宛て先アドレス(フォルダ内の位置)情報、ワークに対するファイルデータ(サイズを含む)、要求されたコピー部数を示す。
・リポジトリは共通のオープニング・トランザクション・ステップを実行する。
サーバは、転送プロトコルに従って、要求された内容及びデータをクライアントへ転送する。Next-Set-Of-Rightsが権利のバージョンに提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルの権利が転送される。あらゆる場合において、送られているディジタルワークのコピーに対するCopy-Countフィールドが、要求されたコピー部数にセットされる。
・リクエスタは、ワークの内容、データ、及び使用権を記録し、このワークを記憶する。リクエスタはコピーが作成された日付と時間をディジタルワークの属性の中に記録する。・リポジトリは、共通のクロージングトランザクションステップを実行する。
【0175】
Transfer transaction(転送トランザクション)は、同等又はやや少ない使用権を有するワークのコピーを他のリポジトリへ移動するための要求である。Copy
Transactionとは対照的に、これはサーバからワークコピーを除去することになる。
・リクエスタはサーバへTransfer transactionを開始するようにメッセージを送る。このメッセージは転送されるワーク、当該トランザクションにおいて使用される転送権のバージョン、ワークを配置するための宛て先アドレス情報、このワークのためのファイルデータ、及び含まれるコピー数を示す。
・リポジトリは共通のオープニングトランザクションステップを実行する。
・サーバは、転送プロトコルに従って、要求された内容及びデータをリクエスタへ転送する。Next-Set-Of-Rightsが権利のバージョンに提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルの権利が転送される。両方のケースにおいて、転送された権利に対するCopy-Countフィールドは、要求されたコピー部数にセットされる。
・リクエスタはワークの内容、データ、及び使用権を記録し、このワークを記憶する。
・サーバは当該トランザクションに含まれるコピー数だけそのコピーカウントをデクリメントする。
・リポジトリは共通のクロージングトランザクションステップを実行する。
・サーバ内に残っているコピー数が現在ゼロである場合、ディジタルワークはメモリから消去される。
【0176】
Loan transaction(貸出しトランザクション)はディジタルワークのコピーを貸し出すためのメカニズムである。この貸出しの最大期間はディジタルワークの内部パラメータによって決定される。ワークは所定期間の後で自動的に返却される。
・リクエスタはサーバへLoan transactionを開始するようにメッセージを送る。このメッセージは貸し出されるワーク、当該トランザクションにおいて使用される貸出権のバージョン、ワークを配置するための宛て先アドレス情報、包含されるコピー数、ワークのためのファイルデータ、及び貸出しの期間を示す。
・サーバは、要求された貸出期間の有効性をチェックし、この期間が有効でない場合は、エラーで終了する。貸出されたコピーに対する貸出しは、サーバへのオリジナルの貸出期間を超過することができない。
・リポジトリは共通のオープニングトランザクションステップを実行する。
・サーバは、要求された内容及びデータをリクエスタへ転送する。Next-Set-Of-Rightsが提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルの権利が、貸出期間を反映するように更新されてから、転送される。
・リクエスタはワークの内容、データ、使用権、及び貸出期間を記録し、このワークを記憶する。
・サーバは貸し出されたコピー数を反映するようにディジタルワークにおける使用権情報を更新する。
・リポジトリは、共通のクロージングトランザクションステップを実行する。
・サーバは、ディジタルワークに対する使用権データを更新する。これは、ワークが返却されるまで、このワークの使用を除外する。リクエスタプラットフォームにいるユーザは、ここで、ディジタルワークの転送されたコピーを使用することができる。オリジナルリポジトリにアクセスしているユーザは、コピーが残っていない限り、ディジタルワークを使用することができない。次に発生することは、時間における事象の順序に依存する。
ケース1:貸出し期間の時間はまだ使い切られておらず、リクエスタがリポジトリへReturn message(返却メッセージ)を送る場合、
・返却メッセージはリクエスタ識別、及びトランザクションIDを含む。
・サーバは、返却されたコピー部数だけ使用中のコピーをデクリメントする。(返却されたディジタルワークの数が実際に貸し出された数より大きい場合はエラーとして処理される。)このステップは、ここで、他のユーザに対するサーバにおいてワークを有効にすることができる。
・リクエスタはそのコピーを無効にして、メモリからその内容を除去する。
リクエスタは全ての現在使用を終了し、メモリからディジタルワークコピーを消去する。いずれにしろワークは自動的に返却されるのであるが、リクエスタは貸出し期間より早くワークを返却することが想定される。早めの返却理由の一つは、貸出しコストを決定する計量による料金の存在である。早期返却はこの料金を削減することができる。
ケース2:貸出し期間の時間が使い果たされ、リクエスタがまだReturn messageを送っていない場合、
・サーバは、使用中のコピーフィールドを、貸し出されたディジタルワークの数だけデクリメントする。
・リクエスタは、ディジタルワークのコピーを自動的に無効にする。当該リクエスタは全ての現在使用を終了し、メモリからディジタルワークコピーを消去する。ワークはいずれにしろ自動的に返却されるのにもかかわらず、リクエスタは貸出し期間より早くワークを返却することが想定される。早期返却理由の一つは、貸出しコストを決定する計量による料金の存在である。早期返却はこの料金を削減することができる。
【0177】
Play Transaction(再生トランザクション)はワークの内容を使用するための要求である。一般に、ワークを「再生(play)」することは、スピーカ又はディスプレイデバイスのようなある種類のトランスデューサを介してディジタルワークへ送ることである。この要求は、これらの内容が他のシステムへディジタル式に通信されないように意図されていることを示唆している。例えば、これらの内容はプリンタへ送られるか、ディジタル媒体に記録されるか、トランザクション後に保持されるか、又は他のリポジトリへ送られる。
【0178】
用語「再生(Play)」は、音楽の再生、映画の再生、又はビデオゲームの再生などの例に対して自然である。再生の一般的な形態は、ディジタルワークを使用するために「プレーヤー」が使用されることを意味する。しかしながら、この用語「再生」は、全ての記録媒体及び記録種類を網羅する。従って、ある人がディジタルワークを「再生」するとは、それを読み出すためにレンダリングすることを意味し、又はコンピュータプログラムを「再生」するとは、それを実行することを意味する。ディジタルチケットに関しては、プレーヤーはディジタルチケットエージェントにもなり得る。
・リクエスタはサーバへPlay Transactionを開始するようにメッセージを送る。このメッセージは、再生されるワーク、当該トランザクションにおいて使用される再生権のバージョン、使用されているプレーヤーの識別、及びワークに対するファイルデータを示す。
・サーバは、プレーヤーの識別の有効性と、このプレーヤー識別と権利上のプレーヤー仕様の互換性をチェックする。これらが満たされない場合、エラーで終了する。
・リクエスタは、共通のオープニングトランザクションステップを実行する。
・サーバ及びリクエスタは、転送プロトコルに従って、プレーヤーによって要求された通りに、データのブロックの読み出し、書き込みを行う。リクエスタはプレーヤーを用いてワークの内容を再生する。
・プレーヤーが終了した時、プレーヤーとリクエスタはそれらのメモリから内容を除去する。
・リポジトリは共通のクロージングトランザクションステップを実行する。
【0179】
Print transaction (プリント・トランザクション)はワークの内容を「プリンタ」上でレンダリング(描画)するために当該ワークの内容を得るための要求である。我々は、インクで用紙に書き込む一般的なケースを含むように、用語「プリンタ」を使用する。しかしながら、我々のこの用語の使用における「プリンティング」の主な態様は、使用権の保護の外側にある場所で、ディジタルワークのコピーを作成することにある。全ての権利と同様に、これは特別のオーソライゼーション証明書を要求してもよい。
【0180】
ディジタルワークが一旦プリントされると、発行者及びユーザは、どんな著作権法が効力があるかによって制限される。しかしながら、プリンティングはそれらの内容をリポジトリの制御外へ移動する。例えば、他の実施メカニズムがない場合、ディジタルワークが一旦用紙にプリントされると、ディジタルワークは使用料金を集金するリポジトリによって妨害されずに通常の複写機でコピーされることができる。ディジタルデスクへのプリンタが許容された場合、このディジタルコピーは使用権の制御外にある。クリエータはこのような著作権法を侵すコピーに絶対に暗黙に同意しないが、クリエータとユーザは共にこのことを知っている。
・リクエスタは、サーバへPrint transaction を開始するようにメッセージを送る。このメッセージは再生されるワーク、使用されるプリンタの識別、ワークのためのファイルデータ、及び要求されているコピー数を示す。
・サーバは、プリンタ識別の有効性、及びプリンタ識別と権利上のプリンタ仕様の互換性をチェックする。これらの条件が満たされない場合、エラーで終了する。
・リポジトリは共通のオープニングトランザクションステップを実行する。
・サーバは、転送プロトコルに従って、データのブロックを転送する。
・リクエスタは、プリンタを用いて、ワーク内容をプリントする。
・プリンタが終了した時、プリンタとリクエスタはそれらのメモリからこれらの内容を除去する。
・リポジトリは共通のクロージングトランザクションステップを実行する。
【0181】
Backup transaction(バックアップ・トランザクション)は、媒体の故障に対する保護としてディジタルワークのバックアップコピーを作成するための要求である。リポジトリの内容において、セキュリティバックアップコピーは、以下の三つの点において他のコピーとは異なる。(1)これらのセキュリティバックアップコピーはCopy transactionではなく、Backup transactionの制御下で作成される。(2)これらは正規のコピーとしてカウントしない。(3)これらは正規のコピーとして使用可能ではない。概して、バックアップコピーは暗号化されている。
【0182】
バックアップコピーはこれらに割り当てられる権利に依って転送されたり又はコピーされたりするが、それらの再生、プリント又は埋め込み(embedding )のためにバックアップコピーを有用にするための唯一の方法はそれらを復元することである。
【0183】
Backup operation(バックアップ動作)の出力は、ワークの内容及び記述を含む暗号化されたデータファイルと、暗号化された内容を復元する暗号化キーを有する復元ファイルとの両方である。多くの場合において、暗号化されたデータファイルは、セキュリティのための暗号化のみに頼って、この出力を保護システムの外側のディスクに「プリント」するための権利を有する。このようなファイルは、物理的に安全であり便利な所に記憶されることができる。復元ファイルはリポジトリ内に保持される。このファイルは、バックアップコピーの復元のために必要である。このファイルは、リポジトリ同士の間での転送のための権利を有することができる。
・リクエスタは、サーバへBackup transactionを開始するようにメッセージを送る。このメッセージはバックアップされるワーク、当該トランザクションにおいて使用されるバックアップ権のバージョン、バックアップコピーを配置するための宛て先アドレス情報、及びワークに対するファイルデータを示す。
・リポジトリは共通のオープニングトランザクションステップを実行する。
・サーバは、要求された内容及びデータを、リクエスタへ転送する。Next-Set-Of-Rightsが提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルのバックアップファイルに対するデフォルトの権利セットがサーバによってセットされる。
・リクエスタは、ワークの内容、データ、及び使用権を記録する。それは、次に、一回使用のキーを作成し、内容ファイルを暗号化する。それはキー情報を復元ファイル内に保存する。
・リポジトリは共通のクロージングトランザクションステップを実行する。
【0184】
いくつかのケースにおいて、磁気光学的記憶装置システム又は磁気テープのようなオフライン記憶装置を守るために大量の暗号化された内容ファイルをアーカイブ(保管)することができることは便利である。非リポジトリアーカイブファイルの作成は暗号化プロセスと同じ程安全である。このような非リポジトリアーカイブ記憶装置は、「プリンティング」の形式と見なされ、特定の「アーカイブ・プリンタ」を有するプリント権によって制御される。アーカイブプリンタデバイスは、検索されることができるように、暗号化された内容ファイル(しかし、記述ファイルではない)をオフライン保存するようにプログラムされる。
【0185】
Restore transaction (復元トランザクション)は、ディジタルワークの暗号化されたバックアップコピーを使用可能なコピーへ変換するための要求である。復元動作は、災害による媒体の故障を補償するために使用されるように意図されている。全ての使用権と同様に、復元権はオーソライゼーションチェックを含む料金及びアクセステストを含むことができる。
・リクエスタは、Restore transaction を開始するようにサーバへメッセージを送る。このメッセージは復元されるワーク、当該トランザクションにおいて使用される復元権のバージョン、ワークを配置するための宛て先アドレス情報、及びワークに対するファイルデータを示す。
・サーバは、内容ファイルが使用可能であることを検証する(即ち、この要求に対応したディジタルワークがバックアップされている)。内容ファイルが使用可能でない場合、トランザクションはエラーで終了される。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・サーバは、復元ファイルからキーを検索する。当該サーバは、ワーク内容、データ、及び使用権の暗号を解読する。
・サーバは、転送プロトコルに従って、要求された内容及びデータをリクエスタへ転送する。Next-Set-Of-Rightsが提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルのバックアップファイルに対するデフォルトの権利セットがサーバによって転送される。
・リクエスタは、ディジタルワークを記憶する。
・リポジトリは共通のクロージング・トランザクション・ステップを実行する。
【0186】
Delete transaction(デリート・トランザクション)は、ディジタルワーク又はリポジトリからのディジタルワークの多数のコピーをデリートする。実際的には、全てのディジタルワークがデリート権を有している。
・リクエスタは、Delete transactionを開始するようにサーバへメッセージを送る。このメッセージは、デリートされるワーク、当該トランザクションのためのデリート権のバージョンを示す。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・サーバはファイルをデリートし、それをファイルシステムから消去する。
・リポジトリは共通のクロージング・トランザクション・ステップを実行する。
【0187】
Directory transaction (ディレクトリ・トランザクション)は、フォルダ、ディジタルワーク、及びそれらの部分についての情報に対する要求である。これは、フルパワーの使用権言語のアクセス仕様へ汎用化されることを除いては、TENEX のような従来のファイルシステムにおける保護コードとほぼ同じ考え方である。
【0188】
Directory transaction は、ディジタルワークに対応している権利及び料金の記述を渡す重要な役割を有している。ユーザが権利を行使したいと思う時、ユーザのリポジトリのユーザインタフェースは、使用可能な権利のバージョンを決定するためにディレクトリ要求を暗黙に作成する。一般に、例えば、権利の行使に対する異なる請求の選択候補を有して、これらはユーザに提供される。このように、多くのDirectory transaction は、ユーザの眼に見えないし、全ての権利を行使することの通常のプロセスの一部として行使される。
・リクエスタは、Directory transaction を開始するようにサーバへメッセージを送る。このメッセージはディレクトリ要求の根源であるファイル又はフォルダ、及び当該トランザクションに使用されたディレクトリ権のバージョンを示す。
サーバはリクエスタへの情報がアクセス可能であることを検証する。特に、これらのディレクトリ仕様においてHIDE-NAME (名前の隠蔽)状態を有するあらゆるファイルのネームをリターンしないし、これらの仕様においてHIDE-PARTS(部分の隠蔽)を有するあらゆるフォルダ又はファイルの部分をリターンしない。情報がアクセス可能でない場合、サーバはエラーでこのトランザクションを終了する。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・サーバは、転送プロトコルに従って、要求されたデータをリクエスタへ送る。
リクエスタはデータを記憶する。
・リポジトリは共通のクロージングトランザクションステップを実行する。
【0189】
Folder transaction(フォルダトランザクション)は、フォルダを作成及びリネーム(名前の変更)し、又はワークをフォルダ同士の間で移動するための要求である。Directory rights(ディレクトリ権)と共に、Folder rights (フォルダ権)は、リポジトリの構成が他のリポジトリからアクセス又は修正されることができる度合いを制御する。
・リクエスタは、サーバへ、Folder transactionを開始するようにメッセージを送る。このメッセージは、フォルダ要求の根源であるフォルダ、及び当該トランザクションのためのフォルダ権のバージョン、動作、及びデータを示す。動作は、ファイルの作成、リネーム、及び移動の内の一つであってもよい。このデータは、フォルダ又はディジタルワーク及びネームの仕様のような動作に対して要求される仕様である。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・サーバは、要求された動作を実行する。例えば、フォルダ作成、フォルダ・リネーム、又はフォルダ間のワークの移動、を実行する。
・リポジトリは、共通のクロージングトランザクションステップを実行する。
【0190】
Extract transaction (抽出トランザクション)は、ディジタルワークの一部をコピーし、それを含む新たなワークを作成するための要求である。Extract transaction は、ディジタルワークの一部を、追加の制限又は料金が配置されたd−ブロック又はシェルから分離させるために使用され得るという点でコピーとは異なる。抽出動作は、それが、ワークのd−ブロック内への埋め込みだけで、ワークの内容を変更しないという点で編集動作とも異なる。抽出は新しいディジタルワークを作成する。
・リクエスタは、サーバへ、Extract transaction を開始するようにメッセージを送る。このメッセージは、抽出されるワークの部分、当該トランザクションにおいて使用される抽出権のバージョン、その部分を新しいワークとして配置するための宛て先アドレス情報、ワークのためのファイルデータ、及び含まれるコピー数を示す。
・リポジトリは共通のオープニングトランザクションステップを実行する。
・サーバは、転送プロトコルに従って、要求された内容及びデータをリクエスタへ転送する。Next-Set-Of-Rightsが提供された場合、これらの権利が新しいワークに対する権利として転送される。そうでない場合、オリジナルの権利が転送される。この権利に対するCopy-Countフィールドは要求されるコピー数にセットされる。
・リクエスタは、内容、データ、及び使用権を記録し、このワークを記憶する。リクエスタは、ワークの属性において新しいワークが作成された日時を記録する。
・リポジトリは共通のクロージング・トランザクション・ステップを実行する。
【0191】
Embed transaction (埋め込みトランザクション)は、ディジタルワークを他のディジタルワークの一部とするか、又はワークのディストリビュータによって料金の追加を可能とさせるためにシェル又はd−ブロックを追加するための要求である。
・リクエスタは、Embed transaction を開始するようにサーバへメッセージを送る。このメッセージは、組み込まれるワーク、当該トランザクションに使用される埋め込み権のバージョン、部分をワークとして配置するための宛て先アドレス情報、ワーク用のファイルデータ、及び含まれるコピー数を示す。
・サーバは、部分及び宛て先における全ての権利に対する制御仕様をチェックする。互換性がない場合、サーバはエラーでトランザクションを終了する。
・リポジトリは共通のオープニング・トランザクション・ステップを実行する。
サーバは、転送プロトコルに従って、要求された内容及びデータをリクエスタへ転送する。Next-Set-Of-Rightsが提供された場合、これらの権利がワークに対する権利として転送される。そうでない場合、オリジナルの権利が転送される。この権利に対するCopy-Countフィールドが要求されるコピー数へセットされる。
リクエスタは内容、データ、及び使用権を記録し、宛て先ファイルにワークを組み込む。
・リポジトリは共通のクロージング・トランザクション・ステップを実行する。
【0192】
Edit transaction(編集トランザクション)は、現存のディジタルワークの部分をコピー、選択、及び変更することによって新しいディジタルワークを作成するための要求である。この動作は、実際、ディジタルワークの内容を変更することができる。許容される変更の種類は、使用されているプロセスに依存する。抽出動作と同様に、編集はディジタルワークの部分上で動作する。抽出動作とは対照的に、編集は、ワークの権利又は位置に影響しない。許容される変更の種類はこれらの権利において指定されたプロセッサのタイプ仕様によって決定される。本発明の好ましい実施の形態において、Edit transactionは、ワーク自体を変更し、新しいワークを作成しない。しかしながら、ワークの新しいコピーを作成させるには合理的な変化である。
・リクエスタは、サーバへ、Edit transactionを開始するようにメッセージを送る。このメッセージは、編集されるワーク、当該トランザクションに使用される編集権のバージョン、ワーク用のファイルデータ(サイズを含む)、当該プロセスのためのプロセス−ID、及び含まれるコピー数を示す。
・サーバは、リクエスタによって使用されるプロセス−IDの権利におけるあらゆるプロセス−ID仕様に対して互換性をチェックする。互換性がない場合、このトランザクションをエラーで終了する。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・リクエスタは、ディジタルワークの内容を所望されるように変更するために当該プロセスを使用する。(例えば、リクエスタは、ディジタルワークの一部を選択し、複写し、それを他の情報と連結し、又は情報に基づいて関数を演算することができる。これは、結局、テキスト、音楽、又は画像(絵)を編集すること、又はデリバティブ(系列)ワークを作成するのに有用な他のステップを任意に使うことに相当する。)
・リポジトリは、共通のクロージング・トランザクション・ステップを実行する。
【0193】
Edit transaction(編集トランザクション)は、広範囲の種類のワークを網羅するために使用される。ディジタルワークの任意の部分を入力として取り、次に、何らかの方法でこの入力を変更するプロセスが該トランザクションのカテゴリである。例えば、テキストに関しては、このテキストを編集するためのプロセスは、編集権を要求する。テキスト中のワードを「要約」し、又はカウントするプロセスも編集と見なされる。音楽ファイルに関しては、プロセッシングは、ピッチやテンポの変更、若しくは反響(エコー)の追加、又はあらゆる他のオーディオ効果を含むことができる。ディジタルビデオに関しては、画像を変更するものは編集権を必要とする。例としては、着色、スケーリング(拡大縮小)、スチール写真の抽出、フレームを選択し結合してストーリーボードを作成すること、信号プロセッシングによる画像の鮮明化、その他である。
【0194】
何人かのクリエータは、(ワーク上で)実行されるプロセスの種類を制限することによって彼らのワーク(作品)の認証を保護したがるかもしれない。編集権がない場合、プロセッシングは全く許容されない。どの種類のプロセスが許容されるかを指定するためにプロセッサ識別子が含まれることができる。プロセッサ識別子が指定されなかった場合、任意のプロセッサが使用され得る。特定プロセスの一例に関しては、写真家は彼の写真の使用をオーソライズしようとするかもしれないが、着色されるのをいやがるかもしれない。音楽家は彼の作品の部分の抽出をオーソライズしようとするかもしれないが、階調特性を変更するのはいやがるかもしれない。
【0195】
オーソライゼーショントランザクションが定義されるには多数の方法がある。以下において、一つの好ましい方法は、我々がリポジトリのために既に必要とする他のトランザクションに関してそれらを簡単に定義することである。このように、「オーソライゼーショントランザクション」を述べるのはしばしば簡単ではあるが、これらのトランザクションは実際にはリポジトリが既に有している他のトランザクションから構成されている。
【0196】
使用権は、オーソライゼーションオブジェクト(標準フォーマットファイルにおけるディジタルワーク)を識別するオーソライゼーション−IDを指定することができ、このオーソライゼーションオブジェクトは、リポジトリが所有していなければならないと共に当該リポジトリが処理しなければならない。オーソライゼーションは、当該オーソライゼーションの解読を開始するリポジトリのジェネリックオーソライゼーション(又はチケット)サーバへ付与される。
【0197】
前に述べたように、オーソライゼーションはサーバ識別子を含み、該サーバ識別子はジェネリックオーソライゼーションサーバ又は他のサーバであってもよい。遠隔オーソライゼーションサーバが要求される時、サーバはディジタルアドレスを含むことができる。当該サーバはさらにディジタル証明書を含むことができる。
【0198】
遠隔オーソライゼーションサーバが要求される場合、オーソライゼーションプロセスは最初に以下のステップを実行する。
・ジェネリックオーソライゼーションサーバは、通信チャネルをセットアップ(設定)しようとする。(チャネルがセットアップされない場合、オーソライゼーションはエラーで失敗する。)
・チャネルがセットアップされた場合、遠隔リポジトリによって登録プロセスを実行する。(登録に失敗した場合、オーソライゼーションはエラーで失敗する。)
・登録が終了すると、ジェネリックオーソライゼーションサーバは遠隔リポジトリによって「再生」トランザクションを呼び出し、再生されるディジタルワークとしてのオーソライゼーションドキュメントと、「プレーヤー」としての遠隔オーソライゼーションサーバ(プログラム)を供給する。(プレーヤーが見つからないか又はプレーヤーがいくつかの他のエラーを有していた場合、オーソライゼーションはエラーで終了する。)
・オーソライゼーションサーバは、次に、オーソライゼーションを「再生」する。これは、証明書を発行したマスタリポジトリのパブリックキー又はそれを転送したリポジトリからのセッションキーのいずれかを使ってそれを復号することを含む。オーソライゼーションサーバは、種々のテストを実行する。これらのテストはオーソライゼーションサーバによって変化する。これらは、オーソライゼーションの発行及び有効期間をチェックし、知られている無効オーソライゼーションのホットリストをチェックするようなステップを含む。オーソライゼーションサーバは、リポジトリ上においても、ディレクトリをチェックし、パスワードを送ってくれる誰かを見つけ、又は幾つかの他のディジタルワークの再生のようなあらゆる他のトランザクションを実行することを要求することができる。オーソライゼーションサーバは、さらに、位置又は最近の事象に関する情報をチェックするためにいくつかの特別なプロセスを呼び出してもよい。このようなステップに関する「スクリプト」はオーソライゼーションサーバ内に含まれている。
・要求されるステップの全てが申し分なく終了した場合、オーソライゼーションサーバはトランザクションを正常に終了し、このオーソライゼーションが許諾されたことを合図する。
【0199】
Install transaction (インストール・トランザクション)はリポジトリ上で実行可能なソフトウェアとしてディジタルワークをインストールするための要求である。一般的なケースにおいて、リクエスタ・リポジトリはレンダリングリポジトリであり、このソフトウェアは新しい種類又は新しいバージョンのプレーヤーである。さらに一般的なケースにおいて、ソフトウェアは、リクエスタリポジトリがインストールされる前に、当該リクエスタリポジトリのファイルシステムにコピーされる。
・リクエスタはサーバへInstall メッセージを送る。このメッセージは、インストールされるワーク、呼び出されるインストール権のバージョン、及びそのワークのためのファイルデータ(そのサイズを含む)を指示する。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・リクエスタは、ソフトウェアのためのディジタル証明書のコピーを抽出する。この証明書が見つからず、又はこの証明書に対するマスタリポジトリがリクエスタに知らされていない場合、トランザクションはエラーで終了する。
・リクエスタは、マスタリポジトリのパブリックキーを用いてディジタルワーク証明書を復号すると共に、供給者とクリエータの識別、ソフトウェアを復号するためのキー、互換性情報、及び偽造チェックコードを記録する。(このステップはソフトウェアを認証する。)
・リクエスタは、証明書からのキーを用いてソフトウェアを復号し、単方向ハッシュ関数を用いてチェックコードをリクエスタ上で演算する。チェックコードが証明書からの偽造チェックコードと符号しない場合、インスタレーション・トランザクションはエラーで終了する。(このステップは、種々のスクリプトを含むソフトウェアの内容が偽造されていなかったことを確実とする。)
・リクエスタは互換性チェックスクリプトにおいて命令を検索し、それらをフォローする。ソフトウェアがリポジトリと互換性がない場合、インスタレーション・トランザクションはエラーで終了する。(このステップはプラットフォームの互換性をチェックする。)・リクエスタはインスタレーションスクリプトにおいて命令を検索し、それらをフォローする。このプロセスにおいてエラーがあった場合(例えば、不十分なリソース)、トランザクションはエラーで終了する。インスタレーションプロセスは、他のトランザクションを実行する時のリポジトリ動作の一部としてソフトウェアを実行すること以外の任意の使用権を行使するためのワークとしてもはやアクセスできないリポジトリに、実行可能なソフトウェアを配置することに注目されたい。
・リポジトリは共通のクロージングトランザクションステップを実行する。
【0200】
Uninstall transaction (アンインストール・トランザクション)は、リポジトリからソフトウェアを除外するための要求である。リポジトリからのソフトウェアの制御されない又は不正確な除外がその行動上の完全性を損傷し得るので、このステップは制御される。
・リクエスタは、Uninstall メッセージをサーバへ送る。このメッセージは、インストールされないワーク、呼び出されるUninstall 権のバージョン、及びこのワークのためのファイルデータ(そのサイズを含む)を示す。
・リポジトリは、共通のオープニングトランザクションステップを実行する。
・ソフトウェアのためのディジタル証明書のコピーを抽出する。この証明書が見つからず、又はこの証明書のためのマスタリポジトリがリクエスタに知らされていない場合、トランザクションはエラーで終了する。
・リクエスタは、ソフトウェアがインストールされたか否かをチェックする。ソフトウェアがインストールされない場合、トランザクションはエラーで終了する。
・リクエスタは、マスタリクエスタのパブリックキーを用いてディジタル証明書を復号すると共に、供給者とクリエータの識別、ソフトウェアを復号するためのキー、互換性情報、及び偽造チェックコードを記録する。(このステップは、ソフトウェアを除外するためのスクリプトを含むソフトウェアの証明書を認証する。)
・リクエスタは、証明書からのキーを用いてソフトウェアを復号し、単方向ハッシュ関数を用いてチェックコードをリクエスタ上で演算する。チェックコードが証明書からの偽造チェックコードと符号しない場合、インスタレーション・トランザクションはエラーで終了する。(このステップは、種々のスクリプトを含むソフトウェアの内容が偽造されていなかったことを確実とする。)
・リクエスタは、アンインスタレーション(除外設定)スクリプトにおける命令を検索し、これらの命令をフォローする。このプロセスにエラーが発生した場合(例えば、不十分なリソース)、当該トランザクションはエラーで終了する。
・リポジトリは共通のクロージング・トランザクション・ステップを実行する。
【符号の説明】
【0201】
201 リポジトリ
301 クレジットサーバ
401 プリントシステム
402 プリンタリポジトリ
403 プリントデバイス
410 マルチ機能システム

【特許請求の範囲】
【請求項1】
ディジタルワークの使用または配給を制御するシステムであって、
該システムは、複数のリポジトリを有し、該リポジトリ間でのディジタルワークの使用または配給を制御し、
ディジタルワークにはディジタルワークがいかに使用され得るか、または、ディジタルワークがさらに配給され得るかを定義する使用権がアタッチされており、
前記リポジトリは、当該システムのディジタルワークの使用または配給の制御を、ディジタルワークにアタッチされている前記使用権に基づいて行い、
前記リポジトリの少なくとも一つは、
リクエスタ動作モード、ならびに、サーバ動作モードを有する処理手段と、
ディジタルワークと使用権を記憶する記憶手段と、を備えており、
前記処理手段は、
リクエスタ動作モードのときは、他のリポジトリに対してディジタルワークへのアクセス要求を行い、該ディジタルワークを受け取る一方、
サーバ動作モードのときは、前記記憶手段に記憶されているディジタルワークへの所定の使用または配給目的のためのアクセス要求を受け取り、該アクセス要求に関わる所定の使用または配給目的に対応する使用権が当該アクセス対象のディジタルワークにアタッチされているか否かチェックし、該チェックに基づき、該アクセス要求の許可、拒絶を決定し、アクセス要求が許可される場合は、ディジタルワークの使用、または配給が許される
ことを特徴とするディジタルワークの使用または配給を制御するシステム。
【請求項2】
前記他のリポジトリは、ディジタルワークと使用権を記憶する記憶手段を有することを特徴とする請求項1に記載のディジタルワークの使用または配給を制御するシステム。
【請求項3】
他のリポジトリとの間でディジタルワークの使用または配給を制御するリポジトリであって、
ディジタルワークには、該ディジタルワークがいかに使用され得るか、または、ディジタルワークがさらに配給され得るかを定義する使用権がアタッチされており、
前記リポジトリは、ディジタルワークにアタッチされている前記使用権に基づいて、ディジタルワークの使用または配給の制御を行い、
前記リポジトリは、
リクエスタ動作モード、ならびに、サーバ動作モードを有する処理手段と、
ディジタルワークと使用権を記憶する記憶手段を備えており、
前記処理手段は、
リクエスタ動作モードのときは、他のリポジトリに対してディジタルワークへのアクセス要求を行い、該ディジタルワークを受け取る一方、
サーバ動作モードのときは、前記記憶手段に記憶されているディジタルワークへの所定の使用または配給目的のためのアクセス要求を受け取り、該アクセス要求に関わる所定の使用または配給目的に対応する使用権が当該アクセス対象のディジタルワークにアタッチされているか否かチェックし、該チェックに基づき、該アクセス要求の許可、拒絶を決定し、アクセス要求が許可される場合は、ディジタルワークの使用、または配給が許されるようにした、
ことを特徴とするディジタルワークの使用または配給を制御するリポジトリ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−208951(P2012−208951A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2012−157059(P2012−157059)
【出願日】平成24年7月13日(2012.7.13)
【分割の表示】特願2009−206889(P2009−206889)の分割
【原出願日】平成7年11月17日(1995.11.17)
【出願人】(500470703)コンテントガード ホールディングズ インコーポレイテッド (54)
【氏名又は名称原語表記】ContentGuard Holdings, Inc.