JP2007511821A - 分散ドキュメントのバージョンコントロール - Google Patents

分散ドキュメントのバージョンコントロール Download PDF

Info

Publication number
JP2007511821A
JP2007511821A JP2006538261A JP2006538261A JP2007511821A JP 2007511821 A JP2007511821 A JP 2007511821A JP 2006538261 A JP2006538261 A JP 2006538261A JP 2006538261 A JP2006538261 A JP 2006538261A JP 2007511821 A JP2007511821 A JP 2007511821A
Authority
JP
Japan
Prior art keywords
document
client
server
information
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006538261A
Other languages
English (en)
Other versions
JP2007511821A5 (ja
Inventor
ジョナサン ディー. ハーバッチ,
ジェームズ ドナヒュー,
ウィリアム エム. シャピロ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of JP2007511821A publication Critical patent/JP2007511821A/ja
Publication of JP2007511821A5 publication Critical patent/JP2007511821A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Electrotherapy Devices (AREA)
  • Multi Processors (AREA)
  • Inorganic Insulating Materials (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

分散ドキュメントのバージョンコントロールを提供するシステムと技術である。一般に、一つの実施において、上記技術は、分散電子ドキュメントに関連したアクションを行なうような要求を受信することと、上記要求に応答して、分散電子ドキュメントとは異なる第2の電子ドキュメントを示す、分散電子ドキュメントに関連した情報を識別することと、第2の電子ドキュメントに関連した情報を伝え、第2の電子ドキュメントに関連して行われるべきアクションを行なわせることとを含む。要求の受信は、サーバで行なわれ、要求は、クライアントにおいて局所的に保持されている分散電子ドキュメントに関連したアクションを行なうようなクライアントからの要求であり得る。上記関連情報は、サーバにおいて保持され得、第2の電子ドキュメントの情報を伝えることは、サーバからクライアントへの、第2の電子ドキュメントの情報を関係付けることを含み得る。

Description

本発明は、ドキュメントコントロールに関するシステムと技術について、例えば、分散ドキュメントのバージョンコントロールについて述べている。
伝統的なドキュメントコントロールシステムは、システムによって保護(secure)されたドキュメントに対する暗号化キーを格納、および、統率するサーバを含んでいた。上記システムでは、保護されたドキュメントが開かれるより前に上記サーバに対して接続を要求し、ドキュメントに対する堅牢な保護を提供してきた。そのようなシステムはまた、ユーザがオフラインのときにクライアント上の復号化ドキュメントキーをキャッシュし、短い時間の間だけクライアントがドキュメントを開くことが出来るようにすることによって、最初はオンライン中に開かれたドキュメントに対してオフライン能力を提供してきた。そのようなシステムはまた、オフライン中のログ情報のキャッシュを含むドキュメントアクセス情報をログし、ドキュメントアクセスを監査(audit)するのに用いることが可能であった。
従来のドキュメントマネジメントシステムは、ドキュメント認証情報を含んできた。ここにドキュメント認証情報とは、ドキュメントに関連した情報であって、異なる個人のグループが異なる認証を有することを可能にする情報である。従来のドキュメントビューイング・ソフトウェア・アプリケーションはまた、ドキュメントマネジメントシステム・フォーマットからソフトウェア・アプリケーションに用いられているフォーマットへドキュメント認証情報を送信するようにデザインされた、ソフトウェア・プラグインをも含んできた。ここに、上記ソフトウェア・プラグインは、それぞれがドキュメントマネジメントシステムと統合するように要求されたソフトウェア・プラグインである。さらに、eXtensible Rights Markup Language(XrML(登録商標))が定義されており、ドキュメントビューイング・アプリケーションが、XrML(登録商標)規則にしたがう任意のシステムからのリソース(resource)と許可(permission)とを理論上理解できるようになっている。
ドキュメントを保護するために、多くの異なる暗号化スキームが用いられてきた。これらは、ドキュメント毎を基礎とした対称的な暗号化スキームと、組み合わせの非対称的な暗号化スキーム(例えば、Pretty Good Privacy(PGP(登録商標)暗号化))とを含んできた。上記対称的な暗号化スキームは、個人に対し個々のドキュメントに対するパスワードを記憶するように要求するものであり、上記非対称的な暗号化スキームは、ユーザが有している一つのパスワードに基づいて複数のドキュメントを復号化する能力を提供するものであった。また、ネットワーク・マルチキャスト/ブロードキャストの文脈では、クライアント上の暗号化キーをキャッシュする様々な暗号化プロトコルが用いられてきた。多くのソフトウェアプロダクトは、現存するエンタープライズ認証システム(enterprise authentication system)(例えば、Lightweight Directory Access Protocol)と直接的に統合し得る。さらにまた、様々なシステムは、Tumbleweed Messaging Management System(登録商標)のように、ユーザがある分散ドキュメントの最新バージョンを探すことが出来るようにする機能をも提供して来た。ここに、上記Tumbleweed Messaging Management System(登録商標)は、e−メールシステムを保護する(secure)するシステムであり、添付のドキュメントを有したe−メールの受取人に対し、添付のドキュメントのオリジナルバージョンがアップデートされた際に、現在のドキュメントにリンクするURL(Universal Resource Locator)を有するe−メール通知を、送信することが可能なシステムである。
(発明の要約)
一般に、本発明は、一局面では、分散電子ドキュメントに関連したアクションを行なうようにする要求を受信することと、上記要求に応答して上記分散電子ドキュメントに関連した情報を識別することとを特徴とし、上記関連した情報は、分散電子ドキュメントとは異なる第2の電子ドキュメントを示し、上記第2の電子ドキュメントに関する情報を知らせ、第2の電子ドキュメントに関連して行なわれるべきアクションを行なわせることを含む。要求を受信することは、サーバにおいて、分散電子ドキュメントに関連したアクションを行なわせる、クライアントからの要求を受信することを含み得、上記分散電子ドキュメントは、クライアントにおいて局所的に保持される。関連した情報を識別することは、サーバに保持された関連した情報を識別することを含み得る。第2のドキュメント情報を知らせることは、サーバからの第2のドキュメント情報をクライアントに関係付けることを含み得る。
第2のドキュメント情報を関係付けることは、第2のドキュメント情報をクライアントに送信し、上記クライアントが上記第2のドキュメントを入手出来るようにすることを含み得る。第2のドキュメント情報を関係付けることは、第2の電子ドキュメントを入手することと、第2の電子ドキュメントをクライアントに送信することとを含み得る。分散ドキュメントおよび第2のドキュメントは、異なる言語バージョンのドキュメントであり得る。分散ドキュメントと第2のドキュメントとは、一連の異なるバージョンのドキュメントであり得る。
第2の電子ドキュメントは、分散電子ドキュメントの新しいバージョンであり得、関係した情報は、上記アクションが上記クライアントにおける分散電子ドキュメントに関連して認証されていないことを示すドキュメント認証情報であり得る。ドキュメント認証情報は、上記分散電子ドキュメントよりも小さな粒度レベル(level of granularity)におけるアクセス認証を指定し得る。上記関連した情報は、第2の電子ドキュメントを示すユーザ依存の関連情報を含み得、第2の電子ドキュメントを入手することは、上記ユーザ依存の関連情報とクライアントにおいて識別されたユーザとに基づいて第2の電子ドキュメントを識別することを含み得る。
第2の電子ドキュメントを入手することは、識別されたユーザに基づいて第2の電子ドキュメントの少なくとも一部を生成することを含み得る。上記分散ドキュメントおよび第2のドキュメントは、異なるフォーマットバージョンのドキュメントを含み得る。上記分散電子ドキュメントは、ソフトウェアプログラムであり得、上記第2の電子ドキュメントは、上記ソフトウェアプログラムの新しいバージョンであり得、上記アクションは、上記ソフトウェアプログラムを実行させることを含み得る。
上記オペレーションはまた、クライアントにおける分散電子ドキュメントにアクセスすることと、サーバのアドレス、および、分散電子ドキュメントにおけるドキュメント識別子とを識別することと、上記アドレスを用いているサーバへ、上記ドキュメント識別子、および、上記要求されたアクションを送信することと、上記クライアントにおける分散ドキュメントを第2のドキュメントを用いて置き換えることとを含み得る。分散ドキュメントを置き換えることは、第2のドキュメントに関するアクションを実行することを含み得る。上記第2のドキュメントは、サーバのアドレスと、第2のドキュメントの識別子とを含み得、上記分散ドキュメントを置き換えることは、分散ドキュメントを格納デバイス内の第2のドキュメントを用いて上書きすることを含み得る。
別の局面によれば、本発明は、局所的に保持された分散ドキュメントを開く動作と、分散ドキュメントから識別されたドキュメントコントロールサーバに接続する動作と、上記ドキュメントコントロールサーバから受信した情報に基づいて、分散ドキュメントの代わりに、少なくとも1つのドキュメントアクションに関連した第2のドキュメントの使用を強いる動作とを含み得る。上記動作はまた、受信した情報に基づいて第2のドキュメントを入手することを含み得、あるいは、上記受信された情報は、第2のドキュメントを含み得る。上記第2のドキュメントは、分散ドキュメントの新しいバージョンであり得、使用を強いることは、トランスパレントに分散ドキュメントを閉じ、第2のドキュメントを開くことを含み得る。
使用を強いることはまた、分散ドキュメントを第2のドキュメントを用いてトランスパレントに上書きすることを含み得る。受信した情報は、第2のドキュメントに関連した認証を分散ドキュメントを用いて指定するドキュメント認証情報であり得る。さらに、分散ドキュメントは、ソフトウェアプログラムであり得、第2のドキュメントは、上記ソフトウェアプログラムの新しいバージョンであり得、上記少なくとも1つのドキュメントアクションは、上記ソフトウェアプログラムを実行することを含み得る。
別の局面によれば、システムは、クライアントに対して局所的な分散電子ドキュメントに関連したアクションが行なわれる際に要求をサーバに送信するように動作することが出来るクライアントと、要求を受信するように動作することが出来るサーバとを含み、クライアントに応答して、上記サーバは、分散電子ドキュメントに関連した情報を識別するように動作することが出来、上記関連した情報は、サーバに保持され、分散電子ドキュメントとは異なるドキュメント、および、関連したドキュメントであり得、上記サーバは、上記第2の電子ドキュメントに関する情報をクライアントに関係付け、アクションが容易に行なわれるようにする。
サーバは、コンフィギュレーションとロギングコンポーネントとを伴うサーバコアと、動的にロードされた複数のメソッド(method)を横断する機能を提供する内部のサービスコンポーネントと、1つ以上のアクセスコントロールサービス・プロバイダを含む動的にロードされた外部のサービスプロバイダとを含み得る。上記システムはまた、サーバを含む、ドキュメントコントロールサーバのクラスタを有するビジネスロジック階層と、ビューア・クライアント、セキュア・クライアント、および、アドミニストレーション・クライアントを含むクライアントを有するアプリケーション階層と、上記クライアント要求をドキュメントコントロールサーバへルーティングするロードバランサーとを含んでいる。
上記サーバは、翻訳コンポーネントを含んだパーミション仲介サーバ(permissions−broker server)であり得る。上記局所的なドキュメントは、既にパーミション仲介サーバによって保護されたドキュメントであり得、上記翻訳コンポーネントは、上記クライアントから受信した要求に応答して、第1の認証定義フォーマットの第1のドキュメント認証情報を、第2の認証定義フォーマットの第2のドキュメント認証情報に翻訳するように動作することが出来る。
上記サーバは、上記要求に応答し、1つ以上のデータ処理装置に認証手続きに効果的な動作を実行させるように動作することが出来る命令を有したソフトウェアプログラムを入手し、送信するように動作することが可能な、パーミション仲介サーバであり得る。クライアントは、上記認証プログラムを用いて実際のユーザを識別し、上記実際のユーザと上記第2のドキュメントに関連したドキュメント関連情報とに基づいて、上記第2のドキュメントに関連したアクションをコントロールし得る。
上記サーバは、クライアントの要求に応答して、オフラインアクセス情報をクライアントに同期化させるように動作することが出来るドキュメントコントロールサーバであり得る。オフラインアクセス情報は、グループに関連した第1のキーを含み得、上記第1のキーは、クライアントにおいて、第3のドキュメントにおける第2のキーを復号化することによって上記第3のドキュメントにアクセスすることに利用出来る。上記クライアントは、オフラインの際、上記第1のキーを用いて上記第3のドキュメントにおける第2のキーを復号化することにより、グループのメンバーであるユーザが第3のドキュメントにアクセスすることを許可し得、さらに、第3のドキュメントに関連したドキュメント認証情報に基づいて、第3のドキュメントに関連したアクションを統率し得る。
本発明は、以下の利点の1つ以上を具体化するように実施され得る。ドキュメントコントロールシステムは、ドキュメントマネジメントシステム、格納システム、ならびに、認証コントロール機構およびアクセスコントロール機構のような、現存のエンタープライズ基盤(enterprise infrastructure)と容易かつ実体的に統合され得る。ドキュメントコントロールシステムのユーザは、最小限のわずらわしさを伴って、認証されたアクションを実行することが可能であり得る。クライアント命令は最小化され得、サーバ・イニシエート(server initiated)であり得、クライアントのカスタマイズがトランスパレントに実行され得、これにより、エンタープライズ・ソリューションを配設(deploy)するプロセスが容易化される。さらに、上記ドキュメントコントロールシステムは、複数のプラットフォームに配設され得るが、特定のプラットフォームと密接に結びつくことはない。
クライアントの機能は、サーバに強いられ得る。クライアント・アプリケーションのサイズと複雑さとを最小化することによって、単純な管理と配設が可能になる。クライアントの動作を効果的にする新しい機能が、クライアントに関する複雑なアップデートを要求することなしに、サーバにおいて実施され得る。認証システムは、必要に応じてクライアントにプラグインされることが可能であり得る。上記認証システムは、後に発展した認証機構を含む、複数の異なる認証機構と統合され得る。上記認証システムは、例えば、一定の時間の間にログイン・チケットをキャッシュすることによって、または、ユーザを再びトランスパレントに認証すること等によって、トランスパレントな認証をサポートし得る。上記認証システムは、配設が容易であり得る。サーバ・アドミニストレータは、新しく配設された認証プロセスを有したユーザ認証を含み得、新しい認証プロセスは、認証が発生した際に、上記クライアントに自動的にプラグインされ得る。上記認証プロセスは、ドキュメント認証およびアクションから独立したものであり得、このため、実際のドキュメントの分散に関する本質を考慮に入れる必要なしに、アクション間の認証が発生し得る。
ドキュメントコントロールシステムは、ドキュメント認証情報に関する自身についての表現を有した現存のクライアント・アプリケーションを用いることが出来る。上記クライアントアプリケーションは、コントロールされるドキュメントに用いるドキュメント認証情報の全てを表現出来るわけではない。サーバ・プラグインは、複数のタイプのドキュメント認証情報の間で翻訳を行なうことが出来、エンタープライズシステムで用いられ得るような追加的なドキュメント保護構想(document protection concept)が現存のクライアント・アプリケーションと共に用いられることを許容する。パーミション仲介サーバにおけるドキュメント認証情報についての動的な翻訳と仕様とが、多目的かつアップグレードが迅速に行なえるドキュメントコントロールシステムを生成し得る。上記システムは、必要に応じて、異なるドキュメントを一斉に提供するのと同様に、古いフォーマットの認証を翻訳することが出来るため、迅速にバックワード・コンパティブル(backwards compatible)に構成され得る。
オフラインアクセス・モデルは、ユーザが最初にアクセスしたときには、オフラインになり得るように提供され得る。ユーザは、オンライン中のアクセスが否定されたオフラインのドキュメントにアクセスすることを妨害されるのと同時に、一方で、オフラインであるという単純な理由により、アクセス認証を有しているドキュメントへのアクセスを妨害されずに済む。取り消し(revocation)が発行された時とそれがシステム内の全クライアントに対し有効になった時との間に、有界な時間が提供され得る。さらに、ポリシーがモディファイされた時とクライアントがモディファイされたポリシーを用いる時との間に、有界な時間が提供され得る。
ドキュメント情報送達技術は、アクセスされるべき異なるバージョンのドキュメントに関する情報を、自動的に送信するように提供され得る。ドキュメントは、上述のように、ドキュメントコントロールシステムに束縛(tether)され得、上記ドキュメントが開かれた際、上記システムは、代わりにアクセスされる異なるドキュメントに関する情報を関係付けし得る。様々なワークフローが定義され得る。そのようなワークフローは、ユーザが常に最新バージョンのドキュメントを保有することを保証(ensure)し得る。あるいは、上記ワークフローは、カスタマイズされたユーザ依存のドキュメント送達を提供し得る。異なるドキュメントを視覚することがユーザに対して提案、または、強制され得る。あるいは、その両方が、ドキュメントに依存して行なわれ得る。
本発明に関する1つ以上の実施形態に関する詳細は、添付の図面と以下に続く詳細な記述とによって示される。本発明に関するその他の特徴と利点とが、詳細な記述、図面、および請求の範囲によって明らかになる。
(詳細な記述)
記述されているシステムおよび技術は、ドキュメントコントロールシステムを実現するのに用いられ得る。例えば、上記システムおよび技術は、ドキュメントマネジメントと関係してエンタープライズによって用いられ得る。ドキュメントコントロールシステムは、スタンドアロンなシステムとして、または、別のシステムのコンポーネントとして動作し得る。ドキュメントコントロールシステムは、ドキュメントがどこに存在するかに関わらず、誰がドキュメントを視覚することが出来るかと彼らが何をすることが出来るかとをコントロールすることによって、堅牢なドキュメント保護を提供し得る。ここで用いられているように、「ドキュメント」という用語と「電子ドキュメント」という用語とは、電子データのセットを意味する。上記電子データは、ファイルに格納された電子データとネットワークを介して受信した電子データとの両方を含み得、オペレーティングシステム(OS)またはソフトウェア・アプリケーションのグラフィカルユーザインターフェースにおいて、単一のドキュメントアイコンとして表現され得る。電子ドキュメントは、必ずしもファイルに対応してはいない。ドキュメントは、他のドキュメントを保持しているファイルの一部に、該当するドキュメント専用の単一のファイルに、または、コーディネートされたファイルのセットに格納され得る。さらに、ここで用いられているように、「定期的に」という用語は、ある時間からある時間へ繰り返されることを意味し、一定の定まった期間を要求しない。
記述されているシステムおよび技術は、例えば、PORTABLE DOCUMENT FORMAT(PDF)を含む、多くの異なるタイプのドキュメントと共に用いられ得る。PDFドキュメントとは、California,San JoseのAdobe Systems Incorporatedによって発明されたフォーマットのドキュメントである。PDFドキュメントは、電子ドキュメントのアピアランス(appearance)を定義することが可能なプラットフォーム独立ドキュメント・フォーマットの電子ドキュメントの例である。このドキュメントフォーマットは、グラフィックス、アニメーション、および音声を含む多くの異なるタイプのデータを格納することが可能な、プラットフォーム独立型のフォーマットであり得る。規定のアピアランスは、複数のタイプのディスプレイデバイスに対して定義され、終点デバイス(final destination device)に関わらず、ドキュメントオーガナイザーにドキュメントのルック(look)とフィール(feel)とについてのコントロールを提供する。このタイプのフォーマットを用いたドキュメントを上述の技術と共に用いると、その結果のシステムに対し、追加的な利点が生じ得る。例えば、ドキュメントコントロールシステムは、特定のソフトウェア・デベロップメント・プラットフォームとは結びつかないアーキテクチャを有し得(例えば、システムはJava(登録商標)および .NET(登録商標)の両方の上で実行されるようにデザインされ得る)、PDFドキュメントのような、プラットフォーム独立ドキュメントを用い得る。このため、ドキュメントコントロールシステムは、いくつかのプラットフォームを横断して迅速に機能し得る。
図1は、ドキュメントコントロールシステムの動作環境を示すブロック図である。ネットワーク100は、1つ以上のクライアント110と、1つ以上のサーバ120と、1つ以上のエンタープライズシステム130との間に、コミュニケーションリンクを提供し得る。ネットワーク100は、1つ以上のネットワークプロトコルを用いて通信することが可能な複数の通信ネットワーク・リンキングマシン(communication network linking machine)であればどんなものであってもよく、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、エンタープライズネットワーク、バーチャルプライベートネットワーク(VPN)、および/または、Internetを含み得る。クライアント110は、ネットワーク100を介してサーバ120と通信することが可能な任意のマシンまたはプロセスであり得、サーバ120は、ネットワーク100を介してエンタープライズシステム130と通信することが可能な任意のマシンまたはプロセスであり得る。さらに、クライアント110は、エンタープライズシステム130と通信することが出来る。
エンタープライズシステム130は、格納システム、認証システム、通信システム、および/または、ドキュメントマネジメントシステムであり得る。サーバ120は、現存するエンタープライズシステム130と密接に統合されるように、かつ、現存するエンタープライズ基盤を活用するようにデザインされ得る。例えば、サーバ120は、エンタープライズにおけるユーザの情報とグループの情報とについての十分なサポートを提供し得る。最近の企業合併に関わった大きな企業に見られるように、上記のような情報は、複数のソースから来る。サーバ120は、最小限目立たないようにしながらドキュメントセキュリティを提供し、上記システムを利用しやすくし、これにより、効果的に配設されるようにし得る。例えば、サーバ120は、以下でさらに記述されるような洗練されたオフラインアクセス機構を提供するドキュメントコントロールシステムを実施し得る。上記オフラインアクセス機構は、ユーザがたとえオンラインの間に既にドキュメントを見ていなかったとしても、オフラインの間にドキュメントを見ることが出来るようにする。このようにして、ドキュメントコントロールシステムは、通常の動作の間はロー・プロフィール(low−profile)を維持しながら、ドキュメントセキュリティの存在を目立たなくし、より利用しやすくし得る。
図2は、例示的なドキュメントコントロールサーバ200を示すブロック図である。ドキュメントコントロールサーバ200は、コンフィギュレーション220とロギングコンポーネント230とを伴うサーバコア210を含み得る。サーバコア210は、サーバ200に接続しているクライアントに対して連続手続き呼び出し(remote procedue call)(RPC)インターフェースを提供し得る。内部のサービスコンポーネント240は、複数のメソッド250を横断する機能を提供し得る。メソッド250と外部のサービスプロバイダ260とを含む、サーバ200のその他のコンポーネントは、コンフィギュレーション・コンポーネント220によって提供された情報に基づいて動的にロードされ得る。メソッド250は、サーバ200によるクライアントへの転送機能(例えば、ドキュメントの保護、監査クエリの実行、等)を指定し得る。外部のサービスプロバイダ260は、メソッド250(例えば、データの格納、ユーザの監査)に利用可能な外部ファシリティ(external facility)を指定し得る。
コンフィギュレーションコンポーネント220は、コンフィギュレーションオブジェクトに対するインターフェースを定義することが出来、ロギングコンポーネント230は、サーバ200によって用いられ、多種多様な情報をログする、ロギングオブジェクトに対するインターフェースを定義することが出来る。コンフィギュレーションオブジェクトは、サーバ・コンフィギュレーションファイル(例えば、サーバ200によって読み取られる「ini」ファイル)であり得、ロギングオブジェクトは、ログファイル(例えば、テキストファイル)であり得る。あるいは、コンフィギュレーションオブジェクトおよびロギングオブジェクトは、標準化されたインターフェース(例えば、それぞれがjava(登録商標)標準JMX(java management extension)およびlog4j)を用いた局所的なオブジェクトまたは遠隔的なオブジェクトであり得る。
サーバコア210によって提供されたRPCインターフェースは、メソッド・インターフェースをクライアントに提示するのに用いられ得る。クライアントは、名前が付けられたメソッドの各々をRPCすることが出来、適切な引数(argument)のセットを提供し得る。サーバ200は、サーバーメソッド・インターフェースを転送するというメソッドのクラスを読み取り、サーバ200がクライアントから入手を行なうことが出来るというメソッドを定義することによって、自身を初期化し得る。内部のサービス240は、複数のメソッド250の全てにわたって横断的に用いられるサーバの内部コンポーネントであり得る。これらは、メソッドの依存性にしたがって、静的に定義され、および/または、動的にロードされ得る。内部のサーバ240は、暗号化コンポーネントと、ドキュメント保護プロセスと、アクセスコントロール評価と、生成基盤(creation infrastructure)とを含み得る。
サーバ200がクライアントへの転送を行うというメソッドは、エンタープライズシステム環境のバックエンド基盤(backend infrastructure)に依存する追加的なサービスに潜在的に依存し得る。外部のサービスプロバイダ260は、メソッド250とそれらの実行環境との間の接続を指定するサービスプロバイダ・インターフェースのセットを定義し得る。初期化のもと、サーバ200は、上記環境に必要とされるサービスプロバイダのセットをロードし、初期化し得る。外部のサービスプロバイダ260は、デフォルトの実行を含み得、時間が経つと、含まれているサービスプロバイダ・インターフェースを用いて、異なるバックエンド基盤に対して仕立てられた追加的な実行を追加し得る。
例示的なサービスプロバイダが以下で議論されるが、追加的なサービスプロバイダや代替的なサービスプロバイダであってもよい。サービスプロバイダの定義は、サービスプロバイダを実施させるインターフェースの言葉で与えられる。これらのインターフェースは、一般的に定義され得るので、多種多様なシステムにおいて横断的に実施され得る。このため、システムの境界を行き交う情報は、様々なシステムにおいてよりフレキシブルな実施を提供するために、単純な言葉で定義され得る。
ユーザを認証するために認証サービスプロバイダが用いられ得る。コンピュータセキュリティの文脈では、認証とは、受信した通信をもとに、プログラム可能なマシンに別のマシンの身元を確認(confirm)させる手続き、および/または、他のマシンの実際のユーザを確認させる手続きである。認証が用いられ得るシステムには多くのタイプがあり、認証プロセスを引き起こし得るイベントには多くのタイプがあり、これらは特定の実行に対する要求に依存している。ここで述べられている認証システムと認証技術とは、上述のドキュメントコントロールシステムにおいて、または、その他のシステムにおいて用いられ得る。
図3は、認証システムにおけるワークフローを示すブロック図である。クライアント310は、ネットワーク300を介して接続された仲介サーバ320と通信することが出来る。クライアント310が認証されたユーザに依存したアクションを行なう必要がある場合、クライアント310は、仲介サーバ320に要求350を送信し得る。例えば、クライアント310がドキュメント305に関連したアクションを行なう必要がある場合、クライアント310は、要求350を送信し得る。アクションに関連した用途のために、要求350は、サーバ320に対し、目下承認されている認証プロセスに関するアップデートがクライアント310から所望されていることを示し得る。要求350は、アクション、および/または、1つ以上の認証プロセスが、クライアント310に近接した位置に既に存在していることを示す情報を含み得る。また、サーバ320は、受信した情報に基づき、クライアント310で用いる認証プロセスを送信することによって、クライアントの要求に応答すべきかどうかを決定し得る。
加えて、要求350は、クライアント310とサーバ320との間の複数の通信を表現し得る。クライアント310は、はじめに、アクションが要求されたことをサーバ320に通信し得る。クライアントは、認証が行なわれるべきかどうかを知らせるように要求し、もし認証が行なわれるべきならば、どのように認証が行なわれるべきかを知らせるように要求し得る。サーバ320とドキュメント305とを識別する情報は、ドキュメント自身に含まれ得、サーバ320は、ドキュメント305を識別する情報と要求されたアクションとに基づいて、ユーザ認証が必要とされているかどうかを決定し得る。サーバ320は、認証が必要とされているかどうかについて応答し、クライアント310は、もし認証が必要とされているなら、用いられるべき認証のタイプの中から、どれを用いるかを選択し得る。上記用いられるべき認証のタイプは、潜在的に、承認可能な認証機構の複数のタイプを含み得る。クライアント310が指定された認証機能をいまだに有していない場合、クライアント310は、対応する認証アップデートを要求し得る。
サーバ320は、パーミション仲介サーバ専用であり得、あるいは、サーバ320は、その他のリソースを同様に供給し得る。例えば、サーバ320は、ここで述べられているようなドキュメントコントロールサーバであり得、様々なクライアント・イニシエートの動作(例えば、ドキュメントを見ること、取り消し、および、保護)は、事実上サーバベースの動作にもなり得る。これらの動作の完了により、サーバへの接続が要求され得る。クライアントによってイニシエートされた上記サーバベースの動作はまた、動的に送達された認証プロセスを用いて認証を引き起こし得る。
サーバ320は、認証プロセス315を入手し、認証プロセス315をクライアント310に送信することによって要求350に応答することが出来る。認証プロセス315は、サーバ320によって、または、別のサーバ(例えば、エンタープライズシステムにおけるサーバ)によって格納され得る。このため、認証コンポーネントはクライアント310に、サーバ320に、および随意に、分離された認証サーバに存在し得る。認証は、サーバ320が現存するエンタープライズ認証機構(例えば、パスワードベースの認証)を用い得るように、あるいはさらに、後に発達し得るカスタムな認証機構(例えば、バイオメトリック認証、または、新しいスマートカードシステム)を実行し得るように構成することが可能なサービスプロバイダインターフェースを介して取り扱われ得る。認証サービスプロバイダインターフェースは、サーバ320がユーザを認証するのに用いるメソッドを定義し得る。認証サービスプロバイダは、Windows(登録商標)認証およびLDAP(Lightweight Directory Access Protocol)認証に対して、また、例えば、California,PleasantonのDocumentum,Incによって提供されたDocumentum(登録商標)コンテンツマネジメントシステムにおけるDocumentum(登録商標)ログインマネージャを用いた認証のような、1つ以上のドキュメントマネジメントシステムに対しても実行され得る。
認証プロセス315は、認証手続きを効率化するオペレーションをマシンに実行させるように動作出来る命令を有したソフトウェアプログラムを表現する。認証プロセス315は、クライアント310を受容するときクライアント310のコンポーネントになり得、あるいは、クライアント310と通信するときスタンドアロンになり得る。認証プロセス315は、California,San JoseのAdobe Systems Incorporatedによって提供されるADOBE ACROBAT(登録商標)ソフトウェアのようなドキュメントビューイングアプリケーションへのプラグインになり得る。認証プロセスは、クライアント310によって提供された現存するインターフェースを用い、認証情報をサーバ320へ通信し得る(例えば、以下でさらに述べられるように、ドキュメントビューイングアプリケーションは、認証プロセス315と通信するセキュリティハンドラ・コンポーネント317を含み得る)。認証プロセス315は、クライアント認証ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))またはサーバサービスプロバイダであり得る。
このため、クライアント310は、要求350をサーバ320へ送信した結果としての新しい認証プロセスを用いて、トランスパレントにアップデートされ得る。その結果、認証に関する特定のプロセスは構造化可能(configurable)になり、かつ、認証コンポーネントの端から端へ(end−to−end)の送達は、アップデートに気づいているユーザなしに実行され得る。アドミニストレータがドキュメントに対して用いられるべき認証手続きを変更する際、ドキュメントに関連して指定された認証を要求するというアクションを実行しようとしている全クライアントが自動的かつトランスパレントにアップデートされ、新たに指定された機構を用いて認証を行なうことが可能になり得る。認証手続きは、ドキュメント上の一連の手続きの間でも変更され得る。このようにして、新しい要求350は、既に送達されたドキュメントの上で実行されるべきアクションと同一のアクションに対して送達される、新しい認証プロセス315になる。
認証プロセス315は、クライアント310において認証手続きを実行し、必要に応じて、任意のローカルハードウェアとインターフェースをとり、上記ローカルハードウェアをコントロールし(例としては、バイオメトリック読み取りデバイスを用いたバイオメトリック認証手続きがある)、認証プロセス315は、クライアント310によって提供されたインターフェースを用いて、認証情報をもとのサーバ320へ通信し得る。認証プロセス315は、試みられているアクションに依存して、マルチレベルおよび/またはマルチファクターの認証を含む、多種多様な異なる認証手続きを実行し得る。認証プロセス315は各要求に応答して動的に送達され得るため、組織(organization)は、必要に応じて新しいセキュリティ機能(security feature)をドキュメントコントロールシステムに追加することによって、認証手続きを迅速に変更し得る。
認証プロセス315は、クライアント310における(例えば、テキスト、バイオメトリックデータ、等の)入力を目的としたユーザをクエリし、受信した入力を暗号化し、暗号化した入力をサーバ320における認証プロバイダに返す(例えば、サーバ320へ情報を転送するクライアント310におけるセキュリティハンドラ317に暗号化した入力を送信する)。その結果、サーバ320は、直接的、または、認証サーバ330と連動してのいずれかによって、認証を取り扱うことが出来る。このパススルー(pass−through)認証機構において、クライアント310は、サーバ320にクレデンシャル(credential)を提供し、サーバ320は、ユーザ認証を行うLDAPまたはRADIUSのような第三者認証システムと共に機能することが出来る。認証が成功した場合、認証サービスプロバイダは、認証されたユーザ名を返し得る。
加えて、サーバ320は、クライアント認証情報を直接的に解釈(interpret)することが必ずしも可能でなくてもよい。クライアント310がサーバ320に対してクレデンシャルを直接的に付与する代わりに、クライアント310は、まず認証を行い、その後、結果として生じた情報をサーバ320に提供し、既に認証されたクライアント310をサーバ320が再び照合(verify)出来るようにする。例えば、認証プロセス315は、認証サーバ330と接続してユーザを直接的に認証し、認証を受信したことは、サーバ320へ返され得る。サーバ320は、受信したことを認証サーバ330へパスし、実際に認証が成功したことを確かめる。このため、クライアント310は、個々のサーバシステムへ直接的にクレデンシャルを提供し、個々の認証システムを用いてユーザの身元を確かめるのに用いられ得る認証トークン(authenticated token)をサーバ320へ提供し得る。
サーバ320は、複数の認証サービスプロバイダを用い得る。サーバ320は、以下で述べられるインターフェースを用いることにより、必要に応じて1つ以上の認証プロセス315をクライアント310へ動的に送達し得る。そのような認証プロセス315は、クライアント310へセキュアに送達され得、セキュアコードライブラリの読み取りに関連して以下で述べられるように、なりすまし(spoofing)が防止され得る。クライアント310はまた、例えばユーザ名パスワードテキスト入力をキャプチャし得る認証ライブラリのような、既に利用可能なデフォルトの認証プロセスを1つ以上有することが出来る。そのようなデフォルトの認証プロセスは、ユーザインターフェース(UI)のカスタマイズに対するサポートと、上記の情報を抽出するための標準的なフォーマットとを、認証プロセスサーバ内に含み得る。さらに、クライアント310は、ある時間の間、クレデンシャルを保持することが出来るため、ユーザは、動作を実行するたびにログオンする必要がない。オフラインアクセスをサポートするためのそのようなクライアントクレデンシャルの保持に関する例は、図11〜14を参照してさらに記述される。
セキュアコードライブラリのロードは、1つ以上の認証ライブラリ(例えば、DLL,java bytecode,javascript,等)をクライアントに押し付け、認証ライブラリをクライアント上でのなりすまし(例えば、トロイの木馬プログラム)から防御する一方で、ユーザ側にはいかなるアクション(または知識)をも要求することなしにクライアントのアップデートまたはカスタマイズを提供するように、サーバ320の全てに対して実行され得る。サーバ320からダウンロードされた認証ライブラリの認証を照合するために、ある機構が提供され得る。サーバ320が認証ライブラリをクライアントに押し付けるとき、サーバ320は、ライブラリのハッシュ(hash)を計算し、さらにこのハッシュをクライアント310へ送信し得、および/または、サーバ320は、認証ライブラリをクライアントに送信する前に、上記認証ライブラリに署名し得る。ハッシュは、クライアントにおいて、局所的に保持され得る。クライアント310は、認証ラインブラリのハッシュを計算し、ロード時間の間に、保持された値に対してそれを照合することによって、認証ライブラリが有効であることを保証し得る。加えて、選択されたライブラリのセットが、あるいは、ライブラリの全てが、プロバイダによって署名され得る。プロバイダの公開キーは、クライアント310に保持され得る(例えば、DLLは、クライアント310がAdobe公開キーを含むADOBE ACROBAT(登録商標)ソフトウェアである場合に、Adobeによって署名され得る)。
図4は、サーバに採用される認証技術を示すフローチャートである。400において、ドキュメントに関連したアクションを行なうような要求が受信される。410において、要求に応答して、認証プロセスが入手される。420において、現在のユーザを識別することに用いるために、および、現在のユーザと上記電子ドキュメントに関連したドキュメント認証情報とに基づいて電子ドキュメントに関連したアクションをコントロールすることに用いるために、認証プロセスがクライアントへ送信される。このため、サーバ上において認証機構が指定され、必要に応じ、クライアントに対してトランスパレントな方法で、適切なコードがクライアントへ動的にダウンロードされ得る。
認証インターフェースは、テキストベースのユーザ名パスワードに関する記述、または、単一の認証ライブラリのどちらか一方を提供し得る。このことは、2種類の認証方法を用いて実施され得る。第1の方法は、そのどちらをも無視して実施され得た場合でも、ユーザ名と同様に、オパーク・トークン(例えば、連続したバイト列)を必要とし得る。第2の方法は、ユーザ名、パスワード、および、「ドメイン」または「連結列(connect string)」を指定し得る第3の引数を随意に必要とし得る。認証プロバイダは、暴力的な攻撃に対する自身の防御を実行し得、正しいクレデンシャルが提示された場合でさえも、認証を否定するというオプションを有し得る。
実行はまた、ユーザが首尾よく認証(照合)されたかどうかを指定する認証回答(authentification reply)をも返し得る。照合が否の場合、なぜその人物が照合されなかった(例えば、そのようなユーザはいなかった)のかを示す追加的なエラーメッセージが返され得る。このエラーメッセージは、必ずしもクライアントには返されないが、(認証システムをクラックするのに用いられ得る手助けとなる情報をクライアントに提供しないように)サーバ上にログのみされ得る。将来の認証の試みにおいて用いられるべきトークンもまた、サーバがこれを無視することもあり得るが、返され得る。ユーザ名もまた、誰が認証されたかをサーバが理解出来るように、照合の試みに対して、返され得る。アクセスコントロールリスト(ACL)サービスプロバイダは、このユーザ名を受け取り、標準化(canonicalize)し得る。ユーザ名の標準形(canonical form)は、複数のワークフローに対して一貫して横断的に用いられ得、システムにおける(複数の)標準形を支配する(複数の)定義は、実行によって変化し得る。
クライアントは、複数のメソッドを介して認証を行い得るので、サーバは、上記クライアントがデフォルトによってどのように認証を試み得るのか、または、認証がどのメソッドを次に試みることが出来ないのかを記述することが可能であり得る。認証サービスプロバイダは、例えば、特定のコードライブラリを介して、または、ユーザに対して表示されているベーシックテキストエントリダイアログ(basic text entry dialog)を介して、どのように認証が発生し得るかを記述し得る。コードライブラリが用いられると、サーバは、コードライブラリについてのメタデータ(例えば、DLL名、サイズ、等)をクライアントに通信し得る。ベーシックテキストエントリダイアログが用いられると、サーバは、UIのうちのどれがユーザにふさわしいかを指定し得る。上記UIでは、例えば、タイトルが「あなたの社内LDAPパスワードを入力してください」と要求したり、2つのフィールド「ユーザ名」、「パスワード」のみを要求したりする。
上述の認証システムおよび認証技術に加えて、ドキュメントコントロールシステムとドキュメントコントロール技術とが提供され得る。これらは、上述の認証と組み合わされたり、別々に用いられたりし得る。
図5は、ドキュメントコントロールシステムにおけるワークフローを示すブロック図である。クライアント510は、ネットワーク500を介してパーミション仲介サーバ520と通信接続され得る。ドキュメントソース530もまた、ネットワーク500を介してパーミション仲介サーバ520と通信接続され得る。ドキュメントソース530は、ドキュメントレポジトリ(例えば、ドキュメントマネジメントシステムまたはファイルシステム)、および/または、ドキュメントハンドリングシステム(例えば、e−メールシステム)であり得る。一般に、ドキュメントソース530は、以下の2通りであると考えられる。(1)ドキュメント540が将来保持され、アクセス可能になることが見込まれているドキュメントソース、(2)ドキュメント540が将来保持され、アクセス可能になることが見込まれてはいないドキュメントソース。
ドキュメントソース530が第1のタイプの場合、ドキュメント認証情報550は、ドキュメントソース530に保持され、必要に応じてパーミション仲介サーバ520へ送信され得る。このため、ドキュメント認証情報550は、(そのような情報は、サーバ520に対して指定されたパーミション定義フォーマットでサーバ520に保持され得るが)必ずしもパーミション仲介サーバ520に保持されなくともよい。ドキュメントソース530が第2のタイプの場合、ドキュメント認証情報550は、ドキュメントソース530において、または、ドキュメント仲介サーバ520において生成される。あるいは、ドキュメント540が保護され、保護されたドキュメント545を生成する場合、ドキュメント認証情報550は、クライアント510において生成され得る。ドキュメント認証情報550は、パーミション仲介サーバ520に保持され得る。ドキュメント認証情報550は、ドキュメント540に対して承認されたアクションのタイプを定義する場合、ACLであり得る。さらに、ドキュメント認証情報は、ドキュメント自身よりも小さい粒度レベルの認証を指定し得る(例えば、ドキュメント内の特定の(複数の)ページ、(複数の)段落、および/または、(複数の)へのアクセスをコントロールする)。
保護されたドキュメント545は、パーミション仲介サーバ520によって生成された暗号化キーを用いて暗号化され得、保護されたドキュメント545は、サーバ520とドキュメント545とを識別する情報(例えば、サーバ520へのリンク、および、サーバ520の文脈内で一意的なドキュメント識別子)を含み得る。保護されたドキュメント545は、任意の方法(例えば、e−メール、ドキュメントレポジトリからのダウンロード、コンパクトディスク上での受け取り、等)でクライアント510へ送達され得、保護されたドキュメント545は、別の保護されたドキュメントのコピー(例えば、別のソースから転送されたe−メールへの添付)であり得る。
クライアント510が保護されたドキュメント545に関するアクションを行なう必要がある場合、クライアント510は、ドキュメント545が保護されていることを決定し、サーバ520とドキュメント545とを識別する情報を抽出し、アクションに対応したドキュメント識別情報を含んでいるサーバ520へ、要求515を送信する。この要求に応答して、パーミション仲介サーバ520は、ドキュメント認証情報550を第2のドキュメント認証情報555に翻訳し得る。第2のドキュメント認証情報は、クライアント510へ送信され、クライアント510におけるドキュメント545に関連したアクションを支配し得る。クライアント510は、Califolnia,San JoseのAdobe Systems Incorporatedによって提供されるADOBE ACROBAT(登録商標)ソフトウェアのような、ドキュメントビューイングアプリケーションであり得、ドキュメント545は、PDFドキュメントであり得る。
図6は、パーミション仲介サーバに採用されるドキュメントコントロール技術を示すフローチャートである。600において、電子ドキュメントに関連したアクションを行なうというクライアントからの要求が受信される。610において、要求に応答して、電子ドキュメントに関連した第1のドキュメント認証情報が識別される。第1のドキュメント認証情報は、第1の認証定義フォーマットであり得る。620において、識別された第1のドキュメント認証情報は、第2の認証定義フォーマットの第2のドキュメント認証情報に翻訳され得る。630において、第2のドキュメント認証情報は、クライアントにおける電子ドキュメントに関連したアクションを支配するクライアントへ送信され得る。
図5を再び参照すると、第1のドキュメントパーミション情報550は、第2のドキュメントパーミションフォーマット555で用いられる第2のパーミション定義フォーマットでは完全には定義されないパーミション情報のタイプを少なくとも1つ含む第1のパーミション定義フォーマットであり得る。2つの情報のセット550と555との間で翻訳することは、要求515に関連した情報に基づいて翻訳を行なうことを含み得る。例えば、第1の情報550は、パーミション定義フォーマットが時間の概念を含まないため、第2の情報555において完全には定義され得ない時間に依存したパーミション情報を含み得る。しかしながら、この時間に依存したパーミション情報は、要求の時間を考慮に入れることにより現在の要求に関する限られた要求のために、第2のドキュメントパーミション情報555において定義され得る。要求515の時間と共に、第1のドキュメント情報550は、要求されたアクションが認証されたことを示し、このことは、第2のドキュメントパーミション情報555に表現され得る。同様に、要求515に関連して、第1のドキュメントパーミション情報550が要求されたアクションが認証されていないことを示すと、このことは、第2のドキュメントパーミション情報555に表示され得る。一連のアクションが要求される場合、一連の要求の時間に基づいて再び翻訳が行なわれ得る。
別の例として、第1の情報550は、パーミション定義フォーマットがユーザの概念を含まないため、第2のドキュメントパーミション情報555においては完全には定義され得ないユーザ依存のパーミション情報を含み得る。このユーザ依存のパーミション情報は、ユーザベースのドキュメントコントロール情報と、サーバベースのドキュメントコントロール情報との両方を含み得、クライアント510を介して入手されたユーザ識別情報を考慮に入れることにより、現在の要求の限られた目的に対しては、第2のパーミション情報555において定義され得る。このユーザ識別情報は、本明細書の他の場所に記述されている認証システムおよび認証技術を用いることにより、入手され得る。あとに続くアクションが要求されると、新たに入手されたユーザ識別情報をもとに、再び翻訳が行なわれ得る。さらに、パーミション仲介サーバ520によって受信され得る複数の要求は、サーバ520に対し、クライアント510においてドキュメント545に関連して行なわれるアクションに関連した情報525を格納させる。これらのアクションは、ユーザ名に関連し得、クライアントに関連したネットワークアドレス(例えば、インターネットプロトコル(IP)アドレス)にも関連し得る(両者は、クライアントによる報告であり、サーバによる報告である)。要求されたアクションはまた、行なわれるべきアクションであると考えられ得、格納された情報525は、サーバ520によって、以下で記述されるように、ドキュメント545に関連し、格納された、アクション実行情報の検査を生成するのに用いられ得る。格納された情報525はまた、サーバ520またはドキュメントソース530のいずれかにおいて実行された、および/または、要求されたアクション(例えば、ファイルシステム、ドキュメントマネジメントシステムにおいて実行されたアクション、等)をも含み得、生成された監査は、この情報を同様に含み得る。
図7は、ドキュメントレポジトリ700と統合されたドキュメントコントロールシステムにおけるワークフローを示すブロック図である。パーミション仲介サーバ730は、バッチ(batch)モード(例えば、サーバ730がまずインストールされとき)でレポジトリ700内のドキュメントを保護するために、および/または、コンテンツマネジメントシステム(CMS)ワークフローにおけるステップとして用いられ得る。セキュアクライアント720は、レポジトリ700からドキュメント710を検索することが出来る。ドキュメント識別子715もまた、検索され、サーバ730へパスされ得る。ドキュメント識別子715はまた、サーバ730によって、コンテンツに関連したアクションをコントロールするように内部で用いられ得る。レポジトリ700がCMSの場合、ドキュメント識別子715は、CMS700において用いられるドキュメント識別子であり得、レポジトリ700がファイルシステムの場合、ドキュメント識別子715は、ドキュメントのURL(Universal Resource Locator)であり得る。
サーバ730は、ドキュメント識別子715を用いてレポジトリ700と通信し、ドキュメントパーミション情報740(例えば、CMSからのACLまたはファイルシステムからのファイル・パーミション情報)を入手することが出来る。ドキュメントパーミション情報740は、ドキュメント710に特有のものであり得、または、複数のドキュメントに対するパーミション(例えば、ドキュメントマネジメントシステムによって維持されたポリシまたはファイルシステムによって維持されたファイルパーミションのセット)を定義し得る。入手されたドキュメントパーミション情報740は、サーバ730によって用いられ、ドキュメント710に対するイニシャルACLを生成する。データのセット750は、イニシャルACL、ドキュメント識別子715、および、サーバ730によって生成されたキーを含み、セキュアクライアント720へ返信され得る。クライアント720は、データのセット750を用い、ドキュメント710の暗号化されたバージョンである、保護されたドキュメント760を生成し得る。この保護されたドキュメント760は、イニシャルACL、ドキュメント識別子715、およびドキュメント760の一部としてパッケージされたキーを含み得る。
クライアントが保護されたドキュメント760に関連したアクションを行なうように試みる(例えば、ドキュメント760またはこのドキュメントの任意のコピーを開こうとする)とき、ドキュメント識別子715は、ドキュメントから読み出され得、サーバ730へ送信され、現在のACLであって、レポジトリ700におけるドキュメントの状態を反映させる、ドキュメント760に対する現在のACLを入手するのに用いられ得る。このため、保護されたドキュメントに関連して行なわれるアクションは、ドキュメントレポジトリ700におけるソースドキュメントに対して現在のパーミションを定義する、ドキュメントパーミション情報に基づいてコントロールされ得る。ソースドキュメントは、もともとは保護されたドキュメント760であり得、あるいは、保護されたドキュメントがレポジトリ700へ返信されない場合、ソースドキュメントは、オリジナルなドキュメント710であり得る。サーバ730は、他の目的のためにドキュメントパーミション情報を格納し得るが、この情報は、レポジトリ700から読み出され、ドキュメント760へのアクセスが要求されたときはいつも翻訳され得るため、サーバ730は、ドキュメントパーミション情報を必ずしも格納する必要はない。
図8は、e−メールクライアント800と統合されたドキュメントコントロールシステムにおけるワークフローを示すブロック図である。e−メールクライアント800は、e−メールシステムへのプラグインであり得、e−メールへの添付810を保護するために用いられ得る。ユーザがe−メールの添付810を保護することを選択するとき、e−メールクライアント800は、ユーザが添付に適用しようと所望しているルールに、および/または、e−メールに対する受取人リストに基づいて自動的に生成され得るルールにユーザを促し得る。上記ルールは、セキュアクライアント820においてACL830に変換され、パーミション仲介サーバ840へ送信され得る。サーバ840は、ACLを格納し、上述のようなデータのセット850を返し得る。このデータ850は、サーバ840によって生成され格納され得るドキュメント識別子、イニシャルACL、および暗号化キーを含むセキュアな添付860を生成するために用いられ得る。
クライアントが保護されたドキュメント860に関連したアクションを行なおうとする(例えば、ドキュメント860、または、このドキュメントの任意のコピーを開こうとする)とき、ドキュメントからドキュメント識別子が読み出され、サーバ840へ送信され、サーバ840に格納されたドキュメントACLの現在の状態を反映する、ドキュメント860に対する現在のACLを入手するのに用いられ得る。e−メールの送信者は、サーバ840とやり取りし、e−メールが既に送信された後でさえも、ドキュメント860に対する現在のACLを交換することが出来る。このため、保護されたドキュメントが配信された後でさえも、保護されたドキュメントに関連して行なわれるアクションはコントロールされ得、ドキュメントのセキュリティに関する性質はモディファイされ得る。
図5〜8は、ドキュメントコントロールシステムにおいて実施され得るアクセスコントロール基盤を示している。図2と関連して記述されたサーバに関する文脈では、アクセスコントロールサービスプロバイダが実施され得、アクセスコントロールリスト(ACL)の言葉でアクセスコントロールが定義され得る。ACLは、パーミション(例えば、プリント出来ること、ビュー出来ること)をプリンシパル(例えば、ユーザおよびグループ)にマッピングし得、逆もまた同様である。アクセスコントロールサービスプロバイダインターフェースは、サーバによって用いられ得るメソッドを定義し、上記プリンシパルを、複数のワークフローを横断して一貫して用いられ得る標準形にマッピングし得る。アクセスコントロールサービスプロバイダは、NIS(Network Information Service),LDAP,および、e−メールシステム(例えば、UNIX(登録商標)システムで主に実行される公的なソフトウェアプログラムでありインターネットメーリングリストを取り扱うMajordomo)のような様々なシステムに実施され得る。さらに、アクセスコントロール基盤は、複数の共有のACL(例えば、複数のドキュメントの間でシェアされるべきACLであって、そのような共有のACLは、ポリシーと呼称される)をサポートし得る。
図9は、図2の例に対応するドキュメントコントロールサーバを示すブロック図である。サーバ900は、以下を含む様々な基本的な特徴をサポートすることが出来る。(1)アクセスコントロール−誰がドキュメントにアクセスすることが出来るかと彼らがどのようなパーミションを有するかとをコントロールする能力、(2)取り消し−ドキュメントを取り消し、それ以降見られないようにする能力、(3)インターバルの期限切れ、および/または、インターバルの有効化−その時間の前および後にはドキュメントを見ることが出来ないような時間を指定する能力、(4)ドキュメントシュレッディング−ドキュメントの期限切れのもと、ドキュメント復号化キーを破壊することにより、ドキュメントコントロールサーバに関連してドキュメントを再現不可能にする能力、(5)監査−ドキュメント上で実行されるアクション(例えば、見ること、見ようとすること、等)を監査する能力、および、(6)オフラインアクセス−オフライン時にドキュメントにアクセスする能力。加えて、アーキテクチャを変更することなしに複数の特徴が容易に追加され得る。
認証サービスプロバイダ910は、本明細書の他の場所で記述されているように実行され、アクセスコントロールサービスプロバイダ930は、記述されているアクセスコントロールサービスを達成し得る。複数のACLは、複数のアクセスコントロールエントリ(ACE)からなるセットと、プロパティのセットとを含み得る。ACLプロパティは、全体としてACLに適用され得る(例えば、有効期限)。ACEは、プリンシパルをルールにマッピングし得、プリンシパル、ルール、および、ACEに対する有効期間からなるリストを含み得る。ACLの評価が行なわれるとき、有効期間内にあるACEのみが考慮される必要がある。有効期間は、異なるユーザおよびグループが、異なるときにドキュメントを見る許可を付与されるようにする。例えば、ACEは、「広報スタッフのメンバーのみがリリース日の前にドキュメントを見ることが出来、その後は誰でもドキュメントを見ることが出来ること」を指定し得る。
複数のルールは、プロパティと、付与されたパーミションと、否定されたパーミションとのセットを含み得る。これらのパーミションは、ビューイングクライアントアプリケーション(例えば、ADOBE ACROBAT(登録商標)ソフトウェア)、および/または、定義されたサーバのに特有のものであり得る。加えて、プロパティが拡張可能なように、パーミションは、ACLフォーマットを変更することなしに新しいものが追加され得る。
サーバ900は、ユーザが外部のいかなるACL機構をも用いることなしにセキュアクライアントインターフェースを用いてアクセスコントロールリストを指定することが出来るようにする、サーバ自身の単純な機構を有し得る。加えて、第三者ACL/権利(right)の仕様(specification)は、サーバ900によって用いられる内部のACLフォーマットに翻訳され得る。サーバ900は、その他のシステムのアクセスコントロールファシリティ(例えば、ドキュメントマネジメントシステム、データベースシステム、ファイルシステム、等)と統合され、これらシステムにおける機能を活用し得る。
サーバ900は、不完全な情報を含み得る多種多様なユーザおよびグループのレポジトリの統合をサポートし得、サーバ900は、標準的なユーザ中心(user−centric)の方法で、この情報への効果的なアクセスが出来るようにされ得る。サーバ900およびクライアント980の両方の上でACLを扱うためのファシリティが提供され得る。サーバ900は、ACLを照合し、サーバベースのドキュメントセキュアラ960またはクライアントベースのドキュメントセキュアラ990のいずれかを用いて、ドキュメントが保護される前にACLが有効なことを保証する。複数のACLは、拡張可能であり、オパークな第三者パーミションを可能にする。さらに、ドキュメントを保護することは、オンラインな方法で行なわれ、サーバがACLを照合することが出来るようにするため、サーバ900に接続され得る。
サーバ900は、どのプリンシパル(例えば、ユーザおよびグループ)がドキュメントに対するどのパーミションを有しているのかを指定するため、複数のACLをドキュメントに関連付けることが出来る。プリンシパルは、複数の名前を有し得る。しかしながら、プリンシパルはまた、区別のつけられた標準的な名前をも有し得る。サーバ900の複数のタスクの一つは、プリンシパルの様々な名前をその標準的な名前に翻訳し得る。パーミションとプロパティとは、認証されたオペレーションを記述するが、パーミションはブール値であり、プロパティは様々なタイプであり得る。パーミションは、明示的に付与され明示的に否定されない場合に付与され得、あいまいな(unclear)パーミションは、暗黙のうちに否定される。
各ドキュメントは、ACLに関係し得る。典型的には、この関係は1:1であり得るが、複数のドキュメントが同一のACLをシェアする場合のポリシーでは、この関係はN:1であり得る。電子ドキュメントファイルは、保護の時刻を記録する、ACLの不変の(immutable)スナップショットを含み得る。サーバ900はまた、権限が付与された個人によってモディファイされ得る最新のACLのコピーをも維持し得る。サーバ900は、複数のACLを、それらが用いられる前に標準化し得る(例えば、全プリンシパル名をそれらの標準形に翻訳する)。このことは、複数のACLが生成またはモディファイされるとき(例えば、保護するとき、または、ACL定義が変更されたとき)にはいつも行なわれ得る。一旦ACLが標準形になると、特定の認証されたユーザに対して関係のある権限を決定することと同様に、グループ内のメンバーを決定することは、文字列についての基本的なマッチングを通して行なわれ得るので、クライアント980とサーバ900の両方の上でACLの評価を行なうには、遥かに単純になり得る。
時間内の特定のポイント(例えば、オンラインビューイング、取り消し、ドキュメント監査検索(document audit retrieval)、等)における特定のユーザに対してのACLに関するサーバ側の評価は、サーバ900において直接的に実行され得る。サーバ900は、ACLを調べ、現在有効であって、認証されたユーザまたは彼女/彼がメンバーであるグループのいずれかを含むACEを探し得る。その後、パーミションとプロパティとを抽出し得る。サーバ900内の標準化を取り扱うサーバ基盤は、3つの階層を有し得る。第1の階層は、非標準的なプリンシパルをそれらの標準形にマッピングする、サーバ900におけるメモリ内キャッシュであり得る。第2の永続性のキャッシュは、標準的なマッピングと、グループ内ユーザ情報とを格納し得る。このキャッシュは、複数のサーバ900を横断して潜在的に用いられ得る。第3の階層は、アクセスコントロールサービスプロバイダ930であり得る。
アクセスコントロールサービスプロバイダ930は、非標準的な文字列のいくつかのセットに関する標準形を提供するプリンシパルモジュールのセットを含み得る。これらプリンシパルモジュールはまた、標準的なグループまたは標準的なユーザと標準形とが対応するか否かを特定し得る。しかしながら、アーキテクチャは、特定のプリンシパルモジュールが全てのユーザを一般的に知っていること、あるいは、特定の非標準的な文字列についての完全な答えを与えることが出来ることを、必ずしも仮定しなくてもよい。ユーザおよびグループのレポジトリの文脈における複数の専門のドメインをサポートするため、各プリンシパルモジュールが、その上では自らが権限(authority)になるような(複数の)ドメインを生成し得る。サーバ900において直接的に実行され得る標準化のプロセスは、非標準的形を取り得、そのうちの一つが返ってきた値が標準的であることを宣言するまで、権限内のモジュールをクエリすることによって、それを繰り返し精緻化し得る。
典型的なシナリオは、特定のユーザがオペレーションを実行するためのパーミションを有しているかどうかを、どのようなグループに彼女/彼が入っているかを考慮に入れて決定するサーバ900を含むため、サーバ900における複数のメソッド970は、認証されたユーザが中心のものであり得る。多くの第三者グループ機構は、「誰がグループのメンバーか?」によって、しかし「どのグループが特定のユーザを含んでいるか?」にはよらずに、グループメンバーをアクセス可能に組織する。さらに、多くのケースでは、グループはユーザについての非標準形を含み得る。このため、グループレポジトリの出力は、サーバ900によって直接的には利用可能ではなく、媒介的な翻訳が用いられ得る。
複数のグループプロバイダに対し、非常に小さな共通部分が仮定され得る。グループプロバイダは、既知の標準的なグループについてのリストを提供することが可能であることが所望され得る。このため、有効なグループは、グループモジュールによって指定された既知のグループの和集合であり得る。グループモジュールはまた、グループ中心の方法で組織されたメンバー情報を提供し得る。これは、多数の存在しているレポジトリの実行を与えるための、効果的なアプローチであり得る。
サーバ900は、システム内の一連のユーザに対するグループ情報をバッチ処理する能力を有し得る。例えば、複数のサーバからなるグループにおけるあるサーバは、日常的にそのようなバッチ処理を実行し得る。このことは、サーバコアにおいて実行され得、全てのグループを数え上げることと、メンバーを標準化することと、グループネスティング(group nesting)を調べ、推移閉包を計算することとを含み得る。推移閉包の計算のほとんどは、そのようなタイプのオペレーションはデータベースシステムを用いて実行することが自然であるため、格納サービスプロバイダ920内に存在し得る。
プリンシパルはユーザまたはグループのいずれかであり得る。プリンシパルは、文字列として表現され得る。グループはプリンシパルを含み得る。プリンシパルは、主な標準形を評価または退化(reduce)したものであり得る多くのエイリアス表現を有し得る。ユーザおよびグループは、複数のドメインであり得る。ドキュメントコントロールシステムの統合がe−メールベースでない場合でさえも、e−メールアドレスに用いられるname@sub.domain.comフォーマットを含むコンベンション(convention)が採択され得る。さらに、どの標準形が用いられるべきかについての仕様は、この仕様が統合に依存したもの(integration−dependent)であるため、一般システムにおいて未定義なままにされ得る。特定の統合に関する文脈での例は、以下の通りである。「herbach@company.com」は、「jonathan_herbach@corp.company.com」および「jherbach@company.com」を含む多くの文字列に対する標準形の例である。同様に、「atg@company.com」は、「atg@sea.company.com」に対する標準形である。
アクセスコントロールサービスプロバイダインターフェースは、ユーザモジュールおよびグループモジュールの2つのサブタイプに分割され得るプリンシパルプロバイダ(principal provider)を含み得る。これらモジュールの目的は、標準的な情報とグループメンバーに関する情報とを提供することであり得る。プリンシパルプロバイダは、その能力の限りにおいて、プリンシパルを標準形に翻訳し得る。プリンシパルプロバイダは、返された値が標準形であるか否か、それがグループまたはユーザに知られているか否か、および、キャッシュにおいて返された結果がどのくらい長く有効であると考えられ得るかを示し得る。プリンシパルプロバイダは、正規表現定義のセットとして指定された、権限のドメインを有し得る。グループプロバイダは、権限のドメインを知っている全グループを数え上げることが出来る。
様々なサーバのメソッド970をサポートするために、ユーザおよびグループの情報は、そのような情報のソースが複数あり得るため、理路整然と提供され得る。このため、いくつかのユーザモジュールといくつかのグループモジュールとがあり得る。ハイレベルから、各々は異なるように構成され得、異なるバックエンドシステムとインタフェースを取り得、おそらくは複数のドメインにわたる権限となり得る。さらに、異なるモジュールをドメイン権限として定義することは、エクストラネット(extranet)サポートを提供することの手助けとなり得る。
プリンシパルモジュールのコンフィギュレーションは、適切なクラスファイルを記述し得る。各モジュールはまた、権限がどのようなものであるかを構成する基盤と同様に、連結文字列やプリファレンス(preference)のような、いくつかのモジュール依存のコンフィギュレーション情報を有しえる。異なる実施はまた、システムの残りの部分との統合を容易にするため、前処理(pre−processing)と後処理(post−processing)とを統率するルールを有し得る。
ACLマネージャ940は、任意個のプリンシパルプロバイダのロードに関係のあるコードを含み得る。図10は、図9からのサーバの例示的な詳細を示すブロック図である。サーバは、主なメモリ内キャッシュを有し、グループメンバーまたは標準的なマッピングに対して、ACLマネージャ1010によって取り扱われ得る。ユーザは、メモリ内に、サービスプロバイダが共通の要求を求められないように、最近の標準的なマッピングを格納し得る。
ACLマネージャ1010はまた、複数のメソッドをまたがる(cross−method)コードを含み得、ACLサービスプロバイダマネージャ1020は、ストレージレベル(storage−level)の(例えば、複数のサーバをまたがる)キャッシュに対するトランスパレントなインターフェースであり得る。ACLサービスプロバイダマネージャ1020に対するクエリは、結果として、まず格納プロバイダ1030が必要な情報を有しているか否かをチェックし、それを返す。そうでない場合、ACLサービスプロバイダマネージャ1020は、ユーザおよびグループモジュール1040に対してクエリを発行し得、できるだけ多くの情報をストレージ層に持続するように試みる。キャッシュエントリは、標準的な結果が返されたことによる期限切れによって変更され得る(例えば、格納プロバイダまたはプリンシパルモジュールのいずれかによって指定されるとき)。
図9を再び参照する。格納サービスプロバイダ920は、永続性ストレージ(persistent storage)においてデータを生成および検索するために、サーバ900が用いるメソッドの集まり(collection)を記述する、インターフェースを提供し得る。このインターフェースは、システムにおける最大のサービスプロバイダインターフェースであり得、ドキュメントコントロールシステムに新たな統合や特徴が実施された際にさらに大きくなり得る。格納サービスプロバイダ920は、以下のエリアにおいて複数のメソッドを提供し得る。(1)ドキュメントチケットの割り当て−サーバ上で保護された各ドキュメントは、GUID(global unique identifier)を用いてチケットを付与され得る、(2)ドキュメントの取り消についての記録、(3)ユーザ、グループ、ドキュメントに対する暗号化キーとルートサーバのキーとのセーブ、(4)ユーザエイリアスとグループメンバーとのデータのキャッシュ、(5)ユーザアクセスの監査と保護、(6)名前の付けられたACLまたはポリシーの管理と格納、(7)ドキュメントに対する現在のACLの格納と検索、(8)ドキュメントに対するイニシャルACLの生成。
格納プロバイダインターフェースは、多種多様なバックエンドシステムを横断する複数の実施を可能にするようにデザインされ得る。このことは、ODBCとJDBCとの両方と協働し得る一般的なリレーショナルデータベース(relational database)の実施を用いて実現され得る。加えて、格納プロバイダインターフェースは、Documentum(登録商標)システムのようなコンテンツマネジメントシステムに対する実施をサポートするようにデザインされ得る。チケットの生成は、単刀直入に行なわれ得る。例えば、このことは、各予約において増加する整数をデータベース内に保持することによって実施され得る。ドキュメントの取り消しは、そのチケットに基づいてドキュメントを取り消す能力として定義され得、付与されたチケットに関連したドキュメントが取り消されたか否かを別々にクエリする。
格納プロバイダはまた、ユーザエイリアスとグループメンバーのデータとに対するストレージを提供し得る。エイリアスとメンバー情報は、アクセスコントロールリストを評価するのに用いられ得る。格納プロバイダ920は、アクセスコントロールサービスプロバイダ930がこの情報に効果的なアクセスを提供できない場合でさえも、適切なパフォーマンスを保証する手助けとなるキャッシュとして用いられ得る。例えば、限られたケースでは、アクセスコントロール情報は、所要のデータを提供するフラットファイル(flat file)から来てもよい。ユーザおよびグループのエイリアス情報をキャッシュするとき、格納プロバイダは、ユーザおよびグループプロバイダに酷似したプリンシパルに基づいてクエリの検索を実行し得る。返されたデータは、同一のフォーマットであり得、有効性に関する指標をも提供し得る。ゴールは、サーバがユーザエイリアスまたはグループメンバーに関するデータを用いた際に、提供されたデータがリアルタイムなバージョンまたはキャッシュされたバージョンであるか否かを、サーバが区別し得ないようなものであり得る。
所与のユーザまたはグループに対して、ユーザまたはグループの標準的な名前が入手され得る。ユーザに対し、このユーザが所属しているグループの全てが入手され得る。エイリアスデータの変更は、即座に視覚することが出来る。推移閉包の計算(グループを含むグループのグループメンバーシップ)のため、グループメンバーのキャッシュの変更は、より複雑であり得る。このことから、グループコンテンツの変更は、サーバがグループの推移閉包を目下計算していない場合は、即座に視覚することは出来ない。
ドキュメント保護のオペレーションとドキュメントアクセスの試み(うまくいくか否かに関わらず)は、格納プロバイダ920の監査メソッドを通して監査され得る。保護イベントとアクセスイベントとを記録するようにメソッドを定義することに加え、インターフェースは、ドキュメントチケットによっておよびユーザによるクエリするによって、監査ヒストリ上の1組のクエリメソッドをも定義し得る。格納プロバイダはまた、ACLの生成およびモディファイを可能にする複数のメソッドをも実施し得る。これらのメソッドは、監査ヒストリの情報を維持するために用いられ得る。格納サービスプロバイダ920の複数の実施は、関係のあるデータベースを用いること、および/または、監査されたログに関する現存のドキュメントマネジメントシステム(例えば、Documentum(登録商標)監査証跡物(audit trail object))の概念を用いることを含めて、必要に応じて実施され得る。
格納プロバイダ920は、名前によってACLを格納したり検索出来たりする。ACLは、私的なACL(例えば、特定のユーザ)であったり、公的なACLであったりし得る。公的なACLは、様々なユーザによって保護された複数のドキュメントに横断的にシェアされるべく意図されたポリシーを表現する。格納されたACLの表現は、格納プロバイダのみにとっての関心事であり、引数にしたがってACLを取得し、結果にしたがってACLを返すようにデザインされ得る。ACLは、アクセスコントロールリストインターフェースの言葉で記述され得る。
格納プロバイダは、ACLの生成、消去、および検索のためのメソッドのセットを有し得る。メソッドは、名前の付けられたACLまたはポリシー(例えば、公的なACL)のいずれかを記述している引数を取得し得る。これらはまた、所与のドキュメントに(チケットGUIDを介して)関連した、ACLに対するメソッドでもあり得る。所与のドキュメントをACLと関連付ける際、チケットデータもまた用いられ得る。このチケットデータは、特定のドキュメントに特有のものであり得、どのプリンシパルがドキュメントを保護したかと同様に、ドキュメントが保護されたときに、日付(date)のようなドキュメント特定情報を格納するのに用いられ得る。複数のドキュメントの間でシェアされるACLはまた、保護の時間に関連したコントロール、または、ドキュメントを保護した人物に関連したコントロールを指定し得る。チケットデータはまた、セキュアクライアントによって、サービスプロバイダに対応した情報を提供するように用いられ得る。例えば、Documentum(登録商標)システムの統合において、チケットデータは、ソースドキュメントに対してDocumentum(登録商標)GUIDを提供し得る。サービスプロバイダ情報はまた、サービスプロバイダから受信した、サービスプロバイダに対応するドキュメントの適切な情報的局面を把握するような名前/値の対からなるセットを含む、バイト列であり得る。
名前からACLを検索するのに加えて、サーバも特定のドキュメントに対するACLを検索することが出来る。使用するACLを検索する際、サーバは、パラメータとして、プリンシパルを随意に提供し得る。このことは、ヒントを提供し、最適化された格納プロバイダが、特定のプリンシパルに対して関係のあるACLの部分集合を返すことが出来るようにする。
ACLを生成および格納する際、提示されたサービスプロバイダの特定のデータをセキュアクライアントに通す(pass−through)機会もある。このことは、終端間の機構を提供し、サービスプロバイダに、このドキュメントが特定のACLのどれを参照するのかについてのヒントを付与し得る。このことは、チケットデータに関連して上記で記述された能力の類似であるが、ドキュメントとは対照的に、ACLに特有のものであり得る。
格納プロバイダは、必ずしもACLを解釈しなくてもよい。格納プロバイダは、ACLについてのいかなる解釈をも行なうことなしに、ACLを格納したり検索したりし得る。ドキュメントは、生成されたときにイニシャルACLを付与され得る。上記イニシャルACLは、ドキュメントに格納され、上記ドキュメントに対する他のACLがクライアントの近くに存在しない場合のオフラインアクセスコントロールに用いられ得る。格納インターフェースは、メソッドであって、これによって現在のACLとイニシャルACLとがサーバのセキュアコンポーネントまたはビューイングコンポーネントに戻される(passed back)ような、メソッドを提供し得る。一般に、主に2つのケースがあり得る。(1)保護されたコンテンツは、ドキュメントコントロールシステムの他に、いかなる別々のアイデンティティ(separate identity)をも有さない(例えば、コンテンツはe−メールの添付である)、(2)コンテンツは、ドキュメントコントロールシステムの他に、アイデンティティを有する(例えば、コンテンツは、Documentum(登録商標)レポジトリ内のPDFレンディション(rendition)である)。後者の場合、サービスプロバイダは、現在のルールの言葉で、コンテンツへのアクセスを動的にコントロールすることが可能である。コンテンツを送達するレポジトリは、上記のルールを、オブジェクトに適用する。さらに、一旦ACLがセーブされると、ポリシーに関しては、オーナーによって、または、システムアドミニストレータによってモディファイされ得る。
イニシャルACLと現在のACLとの両方は、格納サービスプロバイダによって生成され得、コンテンツへのアクセスコントロールは、下部オブジェクト(underlying object)上のアクセスコントロールの言葉で媒介され得る。そうでない場合、コンテンツのマネジメントは、オンラインとオフラインの両ケースにおいて、ちょうど一致し得る。加えて、クライアントがどのような(複数の)サービスがサービスプロバイダによってサポートされるのかを見るために用いることが出来るブーリアン・サポートプロバイダ・メソッド(Boolean supportsProvider method)が提供され得る。このようにして、クライアントは、どのサービスプロバイダが利用可能であるかについての予想を有することが出来、上記サービスが上記ドキュメントコントロールサーバのコンフィギュレーション(例えば、名前/値の対のどのセットがチケットデータ内のサービスプロバイダ情報に合法的に含まれ得るかを決定する)によって実際にサポートされているかどうかを、サポートプロバイダメソッドから決定することが出来る。サポートプロバイダ()がいくつかのサービスに対して可である場合、インターフェースの残部が実施され得る。このようにして、カスタマは、ドキュメントレポジトリにおけるドキュメントに対する保護とe−メールの添付に対する保護との両方のために、同一のサーバを用いることが出来る。
サーバ900はまた、暗号化コンポーネント950をも含み得る。上記暗号化コンポーネント950は、様々なネイティブの暗号化コンポーネント(例えば、Java Cryptography Extensionまたは .Net Crypto components)を活用する2重の実施を有し得る。一般に、ドキュメントコントロールサーバは、いくつかの暗号化プリミティブ(cryptographic primitive)を有し得る。これら暗号化プリミティブの実施は、一般のインターフェースの背後に配置され得、例えば、セキュリティ機能を追加すること、および/または、特定のエンタープライズの要求をアドレス(address)することことのように、必要に応じて実施を変更すること(例えば、キーのサイズの変更)が出来るようにする。加えて、これら暗号化プリミティブの実施は、カスタムなオペレーションと同様に標準的な暗号化オペレーションを用い得る。
暗号化コンポーネント950のインターフェースは、以下のプリミティブに対するサポートを提供し得る。(1)システム化された暗号化と復号化(例えば、128ビットAES(Advanced Encryption Standard)および/または128ビットRC4(Rivest Cipher4))、(2)公開キー暗号化および復号化ならびに署名および照合(例えば、1024ビットRSA)、(3)ドキュメントのインテグリティ(integrity)(例えば、128ビットキーを有した一方向HMACSHA1ハッシュ関数)を提供するのに用いられるメッセージ認証コード(MAC)、(4)セキュアなハッシュ関数であって、ハッシュが同じ値である2つのメッセージを探すことが計算上実行不可能である、ハッシュ関数(例えば、SHA1)。(5)暗号化キーを生成するため、および、メッセージにランダムさを導入するのに用いられ得る乱数生成器(例えば、 .Net実施に対する .Netフレームワークに提供されるSecure Random number generator、および、Java実施における乱数を生成するためのjava.SecureRandom class)。これら暗号化プリミティブは、Java Cryptography Extension(JCE)機構を用いてJavaに実施され得、また、 .Netサービスプロバイダ機構を用いて1つ以上の .Net言語に実施され得る。ドキュメントコントロールシステムにおけるクライアントとサーバとの両方が、暗号化技術を用いることにより、ドキュメントを保護およびアクセスすることが可能であるため、上記暗号化インターフェースと上記暗号化の実施とは、クライアント上でも用いられ得る。暗号化インターフェースはまた、クライアント上で用いられるC++で記述された任意の暗号化オペレーションに対しても、C++で実施され得る。
図11は、ドキュメントコントロールシステムにおいて用いられ得るオフラインドキュメントアクセスモデルを示すブロック図である。クライアント1110は、ネットワーク1100を介してドキュメントコントロールサーバ1120と通信接続され得る。ドキュメントコントロールサーバ1120は、伝統的なオフラインアクセスモデルに類似したリースモデル(lease model)を含む、複数のオフライン使用モデル(usage model)を提供し得る。上記リースモデルでは、ユーザは、ドキュメントに最初にアクセスするときにはオンラインでなければならず、オフラインであるドキュメントに特定の時間の間、すなわち、リース期間の間にアクセスすることが出来る。加えて、ドキュメントコントロールサーバ1120は、ドキュメントに最初にアクセスしたときにユーザがオフラインとなり得るイニシャルアクセスモデルを提供し得る。ここで用いられているように、「オンライン」という用語は、クライアント1110がサーバ1120と通信することが可能なことを意味する。このため、クライアント1110は、ネットワーク1100と接続され、サーバ1120は、クライアント1110がオンラインであるときに動作可能である。
一般に、クライアント1110とドキュメントコントロールサーバ1120とは、定期的に同期化し、クライアント1110に保持されたオフラインアクセス情報の任意の変更をアップデートする。このオフラインアクセス情報は、効果的な方法で、クライアントに対してあらかじめ権限を付与(pre−authorize)し、クライアント1110が、ネットワーク1100に接続されている間、まだアクセスされていない保護されたドキュメント(例えば、e−メールを介してクライアントにおいて受信した保護されたドキュメントであって、まだ開かれていないドキュメント)に関連したアクションを行なうことを許容する。クライアント1110は、ドキュメントコントロールサーバ1120へ要求1130を送信する。要求1130は、オフラインアクセス情報のアップデートのためのものであり得る。例えば、サーバ1120へ定期的に接続を行ない、オフラインアクセス情報のダウンロードを行なうエージェントが、クライアント1110と共に提供され得る。この同期化動作は、アップデートに気づいているクライアント1110のユーザなしに、バックグラウンドにおいて静的に起こり得る。ユーザが次回ドキュメントを開こうとするとき、ダウンロードされたオフラインアクセス情報は、オフラインの間、将来のアクセスのために、クライアントによって用いられ得る。
要求1130は、サーバ1120へ定期的に送信された要求であれば、任意のタイプであってよい。例えば、クライアント1110からの、ドキュメント1135に関連したアクションを行なうような要求であり得る。上記ドキュメント1135は、クライアント1110または他の場所に配置され、かつ、保護された、または、保護されていない、ドキュメントであり得る。サーバ1120は、要求1130に関連して、クライアント1110において認証された、ユーザを照合し得る。また、この認証されたユーザについての照合は、イニシエートのための同期化動作を引き起こし得る。例えば、サーバ1120は、上述の任意のサーバのようなものであり得、同期化動作は、(例えば、オンラインの間にユーザがドキュメントにアクセスまたは保護しようと試みるとき)認証を用いたその他の動作に便乗したもの(piggyback)であり得る。代替的に、同期化は、先の認証なしに起こり得る。サーバ1120は、ユーザの公開キーを用いてオフラインアクセス情報を暗号化し、上記ユーザしかそれらを復号化することが出来ないようにし得る。暗号化されたオフラインアクセス情報は、クライアント1110によって保持され得、上記保持された情報は、ユーザが次回ドキュメントを開こうとした際に、復号化され、クライアントの保護されたローカルデータベースをアップデートするために用いられ得る。このことは、以下で記述される。
クライアント1110がサーバ1120と同期化するとき、サーバ1120は、
現在のユーザが所属しているユーザのグループに関連したキー1145を含んだオフラインアクセス情報1140を送信し得る(キーの絵は、1つ以上の暗号化キーを象徴的に表現するために用いられている)。キー1145は、オフラインの間、電子ドキュメント1150における第2のキーを復号化することによって、保護された電子ドキュメント1150へアクセスするように用いられ得る。電子ドキュメント1150は、キー1155によって暗号化されたコンテンツを含み得、電子ドキュメント1150は、キー1145によって暗号化されたキー1155を含み得る。代替的に、上記のキー暗号化に関して、1レベル以上の間接的方法が存在し得る。例えば、キー1145は、キー1155を復号化するのに用いられ得る。キー1155は、ドキュメント1150のコンテンツを復号化するのに用いられ得る別のキーを復号化するために用いられ得る。間接的方法のレベル数と用いられるキーの個数とに関係なく、ユーザのグループに関連したキー1145は、オフラインの間、電子ドキュメント1150における第2のキー1155を復号化することによって、保護された電子ドキュメント1150へアクセスするために用いられ得る。加えて、オフラインアクセス情報1140は、グループ特有のその他のキーと、1つ以上のユーザ特有のキーと、複数のドキュメントに関連した少なくとも1セットのドキュメント・パーミション情報(例えば、上述されたようなポリシー)と、ドキュメント取り消しリストとを含み得る。
同期化動作はまた、オフラインの間にクライアントによって実行されたオペレーションのオフライン監査ログ(offline audit log)1160をサーバ1120へ返信するクライアント1110をも含み得る。これにより、クライアントは、サーバと定期的に同期化し、局所的に保持された監査ログメッセージをアップロードし、最新の取り消しリストと、ポリシーに対する任意のアップデートとを、ダウンロードすることが出来る。上述されたような複数のACLを用いたシステムにおいては、潜在的に多数のACLがシステムに存在するため、必ずしも、新しいACLの全てが、各同期化を用いてダウンロードされない。ドキュメントコントロールシステムは、データの新鮮さに関する保証についての、制約されたセットを提供し得る。用いられ得る保証は、以下の通りである。(1)ドキュメント特有のACLとポリシーとが、オフラインの有効期間を指定する(例えば、ドキュメント特有のACLが、サーバとの間の別の同期化を行なう以前に有効であるような、一定の時間または日数が必要とされ、その時間または日数の後、ドキュメントは、同期化することなしにはオフラインで視覚され得ない)。(2)各同期化において、取り消しおよびポリシーのアップデートの全てが、クライアントにおいて同期化される。これにより、ポリシーまたは取り消しのリストは、人気のあるドキュメントに対しては期限切れの、高々特定数のタイムユニットであり得る。さらに、上記同期化はまた、オンライン中にアクセスされた任意のドキュメントに対する現在のACLを送信し得る。
図12は、サーバによって実行される同期化動作を示すフローチャートである。1200において、要求が受信される。1210において、サーバは、上記要求に応答して、アップデートが必要であるか否かを決定する。例えば、サーバは、最後に記録されたクライント同期化の時間と、ユーザに対するユーザグループ情報における最後の変更の時間とを比較し得る。あるいは、サーバは、ユーザに対する現在のユーザグループ情報と、クライアントから受信した、ユーザに対するユーザグループ情報とを比較し得る(例えば、クライアントは、サーバを、現在サーバに保持されているユーザおよびグループのキーに基づいて識別し得る。また、サーバは、クライアントに保持されているキーについてのなんらかの変更が要求されているか否かに基づいて、応答し得る)。
1220において、アップデートが必要な場合、サーバは、オフラインアクセス情報を送信する。このことは、削除(remove)のためのキーと局所的な追加(add)のためのキーとに関するリストを、サーバがクライアントに送信することを含み得る。1230において、いかなるアップデートも必要とされていない場合、サーバは、現在のユーザグループ情報に関する妥当性検証(validation)を送信し得る。これにより、現在のオフラインアクセス情報が有効であることと、現時点でクライアントとサーバとが同期化していることとを、クライアントに示し得る。加えて、1220においてサーバがオフラインアクセス情報を送信した場合、または、1230においてクライアントのオフラインアクセス情報を再度妥当性検証した場合、上記サーバはまた、サーバ参照時間を送信し得る。上記サーバ参照時間は、クライアントにおいて記録され、将来クライアント−サーバ間の同期化が再度必要とされるのはいつであるかを決定するために用いられるべき時間である。最後に、1240において、サーバは、オフライン監査ログをクライアントから受信する。その結果、上述のように、サーバは、オフラインの間、ドキュメントに関連して行われるべきアクションに関連した情報を含んだ監査を生成し得る。
図13は、クライアントによって実行されるべき同期化動作を示すフローチャートである。1300において、第1のキーを含むオフラインアクセス情報が受信され、クライアントがネットワークに接続された際、オフライン監査ログがサーバにアップデートされる。1310において、クライアントは、オフラインアクセス情報を保持する。暗号化キーとその他の機密情報(sensitive information)は、例えば、攻撃者がそのような情報を容易に獲得することが出来ないように、安全な方法で、ユーザのマシンに局所的に保持され得る。
セキュリティは、例えば、New York,ArmonkのInternational Business Machines Corporationによって提供された、スマートカード、または、埋め込み型のセキュリティチップのような、改ざん防止ハードウェア(tamper−resistant hardware)に格納された暗号化キーを用い、ファイルを暗号化することによって提供され得る。ハードウェアの改ざん防止ストレージが利用可能でない場合、なんらかのセキュリティを提供するため、ソフトウェア難読化技術(software obfuscation technique)が用いられ得る。クライアントに保持されたデータは、ユーザおよびクグループのプライベートキーと、ドキュメント取り消しリストと、ポリシーに対してアップデートされた複数のACLと、ドキュメントに対してアップデートされた複数のACLとセキュリティデータとを含み得る。クライアントは、オンライン中にアクセスされ、オペレーションについてのオフライン監査ログは、オフライン中にクライアントによって実行される。
1330において、クライアントがネットワークに接続されていない際、ドキュメントにアクセスするような要求が受信される。決定1340において、最近にサーバ同期化が発生したか否かを決定するためのチェックが行なわれ得る。例えば、クライアントは、現在の時刻とオフラインアクセス情報の受信時刻(receipt time)との間の差が、サーバ同期化周期のパラメータを上回るかどうかをチェックし得る。サーバ同期化周期のパラメータは、アクセスされるべきドキュメントに特有のものであり得る。さらに、現在の時刻を決定することは、最新の既知の同期化時刻とローカルシステムクロックとの比較を行うことを含み得る。
1350において、サーバとの間の同期化が十分最近に発生しなかった場合、クライアントは、ドキュメントへのアクセスを防止し得る。1360において、十分最近に同期化が発生した場合、ドキュメント内の第2のキーを暗号化するために第1のキーが用いられる。1370において、電子ドキュメントに関連したアクションは、電子ドキュメントに関連したドキュメント・パーミション情報に基づいて統率され得る。電子ドキュメントに関連したアクションを統率することは、ドキュメントパーション情報を電子ドキュメント自身から入手することを含み得る。電子ドキュメントに関連したアクションを統率することは、電子ドキュメント内のドキュメントポリシー参照(document policy reference)を識別することと、ドキュメントポリシー参照に基づいて、局所的に保持されたドキュメント・パーミション情報を入手することとを含み得る。加えて、1380において、ドキュメントアクセスと、試みられたドキュメントアクセスとの両方を記録し得る、オフライン監査ログが維持され得る。
図14は、保護されたドキュメント1400のコンポーネントを示すブロック図である。保護されたドキュメント1400には、暗号辞書(encrypt dictionary)1405が含まれ得る。暗号辞書1405は、ドキュメント1400のコンテンツにアクセスするために用いられ得る暗号化キーと、オンラインの際に接続するための、サーバのアドレス(例えば、ホスト名、ポート番号、および、接続プロトコル)とを含み得る。暗号辞書1405は、暗号化ドキュメント1400の、ドキュメントを暗号化するのに用いられる(つまり、ドキュメントのコンテンツを暗号化するのに用いられる)ドキュメントキーによって暗号化されていない位置に埋め込まれ得る。
例示的な暗号辞書1410は、ドキュメントパーミション情報1420(例えば、上述のイニシャルACL)、および/または、1つ以上の暗号化されたドキュメントキー1430を含む。ドキュメント1400のコンテンツを暗号化するのに用いられるドキュメントキーは、グループキーとユーザキーとを用いて複数回暗号化され得、これら暗号化されたドキュメントキー1430は、保護されたドキュメント1400における暗号辞書1405に含まれ得る。ドキュメントコントロールサーバは、ドキュメントコントロールシステムにおけるユーザおよびグループに対する、ユーザおよびグループのキーを動的に生成し、維持することが出来る。暗号化されたドキュメントキー1430とドキュメントパーミション情報1420とをドキュメント1400に含めることにより、上述の同期化動作を用いてクライアントに適切なユーザおよびグループのキーを提供することによって、オフラインアクセスがサポートされ得る。
別の例示的な暗号辞書1440は、ドキュメントキー1450と、ACL1460と、ドキュメントチケット1470と、バージョン情報1480(例えば、フォーマットバージョン文字列)と、暗号化されたセッションキー1490とを含み得る。ドキュメントキー1450は、ドキュメントコントロールサーバによって生成され、(例えば、RC4またはAES暗号化を用いて)ドキュメントコンテンツを暗号化するのに用いられ得るランダムな128ビットキーであり得る。暗号辞書1440の一部は、生成されたセッションキーを用いて暗号化され得、MACは、暗号辞書についての任意の改変を検出するために用いられ得る。暗号化されたセッションキー1490は、グループキーとユーザキーとを用いて複数回暗号化されたセッションキーであり得る。加えて、セッションキーは、サーバの公開キーを用いて暗号化され得る。
ユーザがオフラインのドキュメントを開こうとする際、クライアントは、ユーザのキー、または、上記ユーザがメンバーである任意のグループのグループキーを用いて、ドキュメントに対するセッションキーが、暗号化されているか否かを確認し得る。クライアントは、サーバとの同期化の間に、ユーザのキーと、上記ユーザがメンバーである全てのグループのキーとを入手し得る。その後、ドキュメントの暗号辞書における情報を暗号化するために、適切なキーが用いられる。その後、クライアントは、ユーザがどのパーミションを有しているのかを決定するために、ACLがサーバ上で評価されたのと同様な方法で、ACLを評価し得る。クライアントの取り消しリストがチェックされ得る。ドキュメントが取り消しされず、有効期限が切れていない場合、ドキュメントが開かれ得、ドキュメントへのユーザのアクセスが局所的に監査され得る。
このイニシャルアクセスモデルは、ユーザがドキュメントに初めてアクセスする際に、彼らをオフラインにすることが出来る。ドキュメント1400が保護された際、ドキュメント内では、ドキュメントに対するイニシャルACLが埋め込まれ得、不変(immutable)になり得る。ユーザがドキュメントを開こうとする際、埋め込まれたACLが、アクセスを有しているか否かを決定するために用いられ得る。さらに、ドキュメント1400は、イニシャルACLがドキュメント内に保持されている場合でさえも、取り消し、または、有効期限が満了し得る。さらに、他の場所に維持されている、ドキュメント1400に対する現在のACLが、アップデートされ得、上述のように、クライアントがオンラインの際、このACLが用いられ得る。
ユーザがオンラインのドキュメントにアクセスする際、サーバ上に格納され得る現在のACLは、クライアント上に保持され、上記のアクセスのために用いられ得る。その後、保持されたACLは、ドキュメントへの将来のオフラインアクセスのために用いられ得る。クライアントがアップデートされたACLをサーバから入手する際、クライアントは、ドキュメントへアクセスすることが出来るユーザとグループとの各々に関するキーを用いて個別に暗号化されたセッションキーをも入手し得る。ACLと暗号化されたキーとの両方は、当所ドキュメントに埋め込まれたのと同様な方法で、保護され得る。
さらに、ドキュメントにおけるドキュメントパーミション情報1420,1460は、ポリシー、すなわち、ドキュメントポリシー参照(document policy reference)または識別子を含み得る。このため、クライアントは、オフライン中に、電子ドキュメント内のドキュメントポリシー参照を識別し得、ドキュメントポリシー参照に基づいて、局所的に保持された、ポリシーのドキュメントパーミション情報を入手し得る。ドキュメントコントロールシステムは、ポリシーのアップデートの全てが各クライアントサーバの同期化を用いてクライアントに反映されることを保証し得る。このため、アドミニストレータはポリシーを変更し得、いまだに任意のドキュメントにアクセスを提供している全クライアントに対して変更が反映され得ることを、有界な時間内で知ることが出来る。
上述のイニシャルオフラインアクセスモデルに加えて、伝統的なリースモデルもまた、ドキュメントコントロールシステムにおいて用いられ、追加的なフレキシビリティーを提供し得る。このモデルにおいて、ユーザが特定のマシンから最初にドキュメントにアクセスすると、彼らはオンラインになり得る。その際、ユーザは、オフラインリース(offline lease)を受信する。上記オフラインリースは、リースが更新される前、ユーザが、オフライン時間の間に、特定の期間にわたってドキュメントを視覚することを許容する。そのようなリースモデルは、イニシャルACLの埋め込みによって記述される、ドキュメントコントロールシステムに実施され得る。イニシャルACLは、どのプリンシパルへのアクセスも許容しない。新しいACLがサーバによってフェッチされる必要が生じる前に、どのくらいの長さにわたってACLがクライアントに保持され得るかを指定するvalidity_intervalを用いる。加えて、ドキュメントコントロールシステムは、ユーザが、ドキュメントにアクセスするためにオンラインとなるような非オフライン・アクセスモデルを実現するように構造化可能である。このケースでは、ドキュメントを開くために必要なキーは、クライアントに保持される必要はない。
ドキュメントコントロールシステムは、さらに以下の安全保障(security guarantee)を併せて用い得る。(1)ポリシーモディフィケーション−ポリシーの全てが全同期化動作において同期化されるため、ポリシーにおいて指定されるoffline_validity_intervalにおいて、各クライアント上に、ポリシーモディフィケーションが反映されることが保証される。(2)ACLモディフィケーション−モディファイされた(非ポリシー)ACLは、オンラインの間に視覚された場合に限り、クライアント上に反映され得る。保持された非ポリシーACLは、ACLにおいて指定される場合、validity_period内で、クライアントから除外されることが保証される。(3)取り消し−全ての同期化動作において取り消しがクライアントと同期化されるため、取り消されたドキュメントは、ドキュメントのACLにおいて指定されるoffline_validity_intervalにおいて、システム内の全クライアントから視覚不能になることが保証される。(4)期限切れ−ユーザがオンラインであるかオフラインであるかに関わらず、失効日において、期限切れになったドキュメントは視覚され得ない。(5)期限切れのモディフィケーション−ACLにおいて期限切れが指定される。このため、期限切れは、ポリシーまたはACLのモディフィケーションによって、反映され得る。(6)ユーザまたはグループのモディフィケーション−(例えば、ユーザが会社を退職するために)ユーザのキーが取り消された場合、または、ユーザがグループから抹消された場合、ユーザは、offline_validity_interval内にもはやアクセスをしないドキュメントを、視覚することが不可能になり得る。
図15は、サーバに採用されるドキュメント情報送達技術を示すフローチャートである。1500において、クライアントに対する第1の電子ドキュメントに関連したアクションを行うような要求は、サーバにおいて受信される。1510において、要求に応答して、第1の電子ドキュメントの関連情報が識別される。上記関連情報は、第1の電子ドキュメントとは異なり、かつ、関連した、第2の電子ドキュメントを識別し得る。この情報は、2つ以上のドキュメントを関連付けし得、それらの間の関係を記述し得る。この関連情報は、サーバにおいて、例えばテーブルまたはデータベースに格納され得る。1520において、第2の電子ドキュメントに関する情報がクライアントに関係付けられ、行われるべきアクションが容易に行われるように得る。
第2のドキュメント情報をクライアントに関係付けることは、第2のドキュメント情報をクライアントに送信し、アクションに関連して第1または第2のドキュメントのうちの1つを選択することを含み得る。第2のドキュメント情報をクライアントに関係付けることは、第2の電子ドキュメントを入手し、第2の電子ドキュメントをクライアントに送信し、第1の電子ドキュメントに代わって第2の電子ドキュメントに関連したアクションを行うことが出来るようにすることを含み得る。第2のドキュメントは、既に存在し得るか、全体、あるいは、一部が生成されることが所望され得る。このことは、第2のドキュメントを示す関連情報によって示され得る。
図16は、ドキュメントコントロールシステムにおけるワークフローを示すブロック図である。クライアント1610は、ネットワーク1600を介してドキュメントコントロールサーバ1620と通信接続され得る。クライアント1610は、要求1630をドキュメントコントロールサーバ1620に送信し得る。上記要求1630は、ドキュメント1640に関連して行われるべきアクションに関係している。サーバ1620は、局所的に、または、他の場所に格納され、ドキュメント1640に関連し、第2のドキュメントの1650を示している、情報1645をチェックし得る。その後、サーバ1620は、情報1655を送信し得る。上記情報1655は、第2のドキュメント1650についての情報、および/または、第2のドキュメント1650自身であり得る。
クライアント1610は、情報1655に基づいて、第2のドキュメント1650をユーザに視覚させ得る。例えば、第2のドキュメント1650は、第1のドキュメントの新しいバージョンであり得、情報1655は、ドキュメントパーミション情報を含み得る。上記ドキュメントパーミション情報は、第1のドキュメント1640に関連したアクションが許可されていないことを特定し得る。第1のドキュメント1640は、クライアント1610によって、場合によってはユーザの知識なしに、(例えば、第1のドキュメントに代わって開かれた、および/または、第1のドキュメント上のストレージに書かれた)第2のドキュメント1650に置き換えられ得る。第2のドキュメント1650はまた、第1のドキュメント1640とは異なる言語バージョン(例えば、英語のオリジナルに対するフランス語バージョン)、または、異なるフォーマットバージョン(例えば、異なるファイル圧縮スキーム、および/または、暗号化スキーム)であり得る。
サーバ1620において第2の電子ドキュメント1650を入手することは、第2の電子ドキュメント1650の少なくとも一部を生成することを含み得る(ドキュメント1650の全体を生成することも潜在的に含み得る)。あるいは、ドキュメント1650は、既存のドキュメントであり得る。関連情報1645は、ユーザベースの関連情報を含み得、ドキュメント1650を入手することは、ユーザベースの関連情報とクライアント1610において識別されたユーザとに基づいて、ドキュメント1650を入手することを含み得る。ドキュメント1650は、特定のユーザ、上記ユーザの位置、および/または、上記ユーザのアクセスの時間に対して、カスタマイズされ得る(例えば、ドキュメント1640は、送信された際に既に期限切れとして識別された、スタブドキュメント(stub document)であり得る。また、このドキュメントが開かれたとき、各ユーザは、アクセスが試みられた際に、ユーザ用に生成された新しいドキュメントを自動的に受信し得る。すなわち、スタブドキュメントは、オペレーティングシステムにおける正規のドキュメントに類似し、正規のドキュメントとして操作され得るが、オンラインの際には常に最新である)。ドキュメント1650のカスタマイズは、サーバ1620または他の場所において行われ得る。上述のように、ユーザが識別され得る。ドキュメントコントロールシステムはまた、本特許明細書を通して記述されているシステムおよび技術を採用し得る。ドキュメント1640,1650は、上述の保護されたドキュメントであり得る。
図17は、クライアントに採用されるドキュメント情報受信技術を示すフローチャートである。1700において、局所的に保持された分散ドキュメントが開かれる。上述のように、上記分散ドキュメントは、接続するドキュメントコントロールサーバを識別する、保護されたドキュメントであり得る。1710において、分散ドキュメントから識別されたドキュメントコントロールサーバが接続される。上記サーバは、分散ドキュメントが適切なドキュメントであるか否か、または、異なる関係したドキュメントが代わりに用いられるべきかを決定し得る。1720において、ドキュメントコントロールサーバから受信した情報に基づき、ドキュメントアクションに関連して、分散ドキュメントの代わりに、第2のドキュメントの使用が強いられる。
これにより、ドキュメントコントロールサーバシステムは、ドキュメントセキュリティのイシュー(issue)と、あるシステムにおけるバージョンマネジメントとの両方にアドレスし得る。分散バージョンの代わりに、異なるバージョンの分散ドキュメントが視覚される得る場合、このことは、分散ドキュメントに対するドキュメントセキュリティをも扱うドキュメントコントロールサーバにおいて定義され、コントロールされ得る。ドキュメントの著者は、ドキュメントの分散バージョンの期限切れを指定し得、新しいバージョンが代わりに視覚され得る。さらに、著者は、ドキュメントの複数のバージョンと、誰がそのバージョンを視覚しているかについてのユーザベースの定義とを容易にコントロールし得る。
著者またはアドミニストレータは、どの受取人に対してどのドキュメントが適切なバージョンであるかを指定し得る。上記の指定は、二人のユーザが異なるコンテンツを有した完全に異なるドキュメントを受信する可能性と、二人のユーザの両者がもともとの分散ドキュメントに関連しているという意味においてどのドキュメントが異なるバージョンであるかとを含む。ドキュメントとの間のバージョンの関係は、ドキュメントセキュリティの目的で生成されたドキュメント識別子を用いて指定され得る。バージョンの関係は、有向グラフを用いて定義され得る。上記有向グラフにおいては、各ノードがバージョンを表し、有向エッジ(directed edge)がどのバージョンが優先されるかを示す。各エッジはまた、どのユーザがそれを適用するかを示し得る。例えば、他のバージョンの支持を受けてどのバージョンが有効期限切れになるかを特定するため、ドラッグ・アンド・ドロップ動作によって、バージョンの関係を定義するための図式を表示するグラフィカルユーザインターフェースが用いられ得る。
ドキュメントの異なる一連のバージョンについての文脈で、ドキュメントが受信され、各ユーザが最新バージョンのドキュメントのみを視覚することが保証され、ドキュメントが別のものに置き換えられるか否かを含むように、ドキュメントコントロールシステムにおける取り消しの概念が拡張され得る。このため、ドキュメントを開いた際、ユーザがドキュメント上での伝統的なアクション(例えば、印刷等)を実行するようなアクセスを有しているか否かをチェックすることに加え、上記ユーザがドキュメントの特定のバージョンに対するアクセスを有し得るかについての決定が行なわれ得る。サーバ1620は、ドキュメントがどこで探されべきかについての情報を格納し得る。上記情報は、潜在的に、追加的なレポジトリのサービスの提供に関する情報を含む。上記情報は、永続的なバージョンのドキュメントが格納され得る、追加的なレポジトリに関するサービスを、潜在的に提供することを含み得る。
各ユーザが異なるバージョンを視覚し得る場合において、興味のあるユーザ/グループを特定する能力を追加することによって、同様なアプローチが用いられ得る(例えば、「バージョン・ゼロに代わり、全従業員はバージョンAを視覚し、全マネージャはバージョンBを視覚し、役員はバージョンCを視覚し得る」。ここに、追加的なバージョン関係性情報は、バージョンCに加え、バージョンAとBの付随的なバージョンを役員が開き得ることを明記する)。矛盾を解決するためのルールが提供され得る。
ここで述べられているシステムと技術は、複数のドキュメントコントロールサーバを用いた包括的なドキュメントコントロールシステムと組み合わされ得る。図9を再び参照する。ドキュメントコントロールサーバ900は、上述の様々な技術を、組み合わせることによって実施し得る。システムのセキュリティを向上させるため、クライアント−サーバ間通信の全ては、通信を暗号化し、サーバ認証、および/または、クライアント側の保護を用いて実行されるべきドキュメントの保護を提供するため、Secure Socket Layer(SSL)上で行なわれ得る。サーバ900は、攻撃者から実体的に保護され得、少なくとも1つのファイアウォール越しに存在し得る。安定なストレージに永在(persist)する前に、サーバ900における機密情報の全てが暗号化され得る。ここで用いられる暗号化キーは、無名の(obscure)システムリソースに隠れてサーバコードに埋め込まれ得、および/または、改ざん防止暗号化モジュールに格納され得る。さらに、クライアント側では、認証が必要な複数の一貫した動作に対して繰り返し認証が行なわれることを防ぐように、ユーザのログオン・クレデンシャルがキャッシュされ得る。キャッシュされたクレデンシャルは、この目的にのみ使用される、サーバのプライベートキーによって署名され、クライアント上に常駐し得る。署名されたクレデンシャルは、有効期間を制限する有効期限を含み得、クライアントがサーバ900に対して認証しようとする際に提示され得る。
上述のように、ドキュメントは、サーバまたはクライアントのいずれかの上で保護され得る。保護される前に、ドキュメントは、あるフォーマットから別のフォーマットへ(例えば、MicrosoftWord(登録商標)からPDFへ)変換され得る。このために、ドキュメントコントロールシステムがPDF生成サービスと統合され得る。セキュアラ・コンポーネント960と990とは、PDFドキュメントを、暗号化キーと、PDFドキュメントの暗号辞書内に埋め込まれた情報を表す名前/値の対のセットと同様に、入力として受け取る、PDFライブラリの周りのラッパー(wrapper)であり得る。セキュアラは、提供された暗号化キーを用いてドキュメントを暗号化し、特定の情報をドキュメントに埋め込み得る。サーバ900上で保護が実行された際、上記保護は、個別のプロセスで実行され得る。そのようなプロセスのプールは、複数の保護要求が同時に満足されるように、入手可能なままにされ得る。そのようなプロセスの最大数は、サーバ900に対するコンフィギュレーション・オプション(configuration option)であり得る。これら保護プロセスは、保護動作が数回成功した後に終了し得る。上記回数もまた、コンフィギュレーションオプション、または、任意の失敗した保護動作であり得る。
図18は、図9のドキュメントコントロールサーバにおけるドキュメント保護のワークフローを示すブロック図である。一般に、ドキュメントの保護は、2つのハイレベル動作を含み得る。ドキュメントの保護に関連したシステム状態を用意することと、関係のある情報をドキュメントに埋め込み、それを暗号化すること。状態を用意することは、どのようにしてドキュメントが保護され得るかと、保護されたドキュメントに対してシステムを用意し得るサーバとを指定し得る、セキュアクライアント間のジョイント動作であり得る。ドキュメントに情報を埋め込み、保護することは、サーバ上で実行される(例えば、暗号化されていないドキュメントが、保護される際にサーバへ向けて送信され、暗号化された形態がクライアントに戻される)、または、クライアント上で実行される(例えば、クライアントは、ドキュメントを暗号化するのに必要なコンポーネントを有する)のいずれかによる。
セキュアクライアントは、保護されるべきドキュメントに対する所望のセキュリティについての仕様を用意し得る。このことは、例えば、Washington,RedmontのMicrosoft Corporationによって提供されるOutlook(登録商標)ソフトウェアのようなクライアントにおける、エンドユーザのやり取りを含み得る。上記クライアントは、RPCを介してサーバと接続され、認証を行い、サーバへ向けて情報を送信し得る(1800)。システムがサーバ側の保護を用いている場合、クライアントは、暗号化されていないドキュメントと保護についての仕様とをサーバへ送信し得る。システムがクライアント側の保護を用いる場合、仕様のみが送信される必要がある。
サーバは、ユーザがドキュメントを保護するためのパーミションを有していることを保証することによって、上記ユーザを認証し得る(1805)。サービスプロバイダは、ドキュメントに対してチケット(GUID)を提供し得る(1810)。アクセスコントロールマネージャがプリンシパルを標準化し、ことによるとパーミションを有効化するように、アクセスコントロールリストの仕様が、アクセスコントロールマネージャに付与され得る(1815)。ACMは、最初、標準マッピングのメモリ内キャッシュを用いようとする。ストレージプロバイダは、他のキャッシュされた標準マッピングに対し、クエリされ得る(1820)。プリンシパルプロバイダは、キャッシュされていない非標準的なエントリの全てに対してクエリされ得る(1825)。標準化されたACLは、ストレージプロバイダに永在し、ACLに関する一連のモディフィケーションを許容する(1830)。
暗号化され、ドキュメントに格納されるべき情報(例えば、チケットおよびACL)が、ドキュメントを暗号化するのに用いられ得るドキュメントキーを生成する、Crypto Service Providerに提供され得る(1835)。ドキュメントシュレッディングが所望されない場合、ドキュメントキー、チケット、およびACLが、サーバの公開キーを用いて暗号化され得る。シュレッディングが所望される場合、上記キーがサーバに残され得ないため、ドキュメントキーは暗号化され得ない。システムがサーバ側のセキュリティを用いない場合、暗号化モジュールから暗号化されたチケットデータがドキュメントに埋め込まれ得、ドキュメントを暗号化するために、ドキュメントキーが用いら得る(1840)。上記システムがクライアント側の保護を用いる場合、このことは必要とはされない。
システムは、ドキュメントが保護されていることを監査し得る(1845)。上記システムがサーバ側の保護を用いる場合、暗号化されたファイルがクライアントへ戻され得る(1850)。そうでない場合、暗号化されたチケットデータとドキュメントキーとが、クライアントに戻され得る(1850)。システムがクライアント側の保護を用いる場合、クライアント上のドキュメントセキュアラは、暗号化されたチケットデータを埋め込み、クライアント上のドキュメントキーを用いてドキュメントを暗号化し得る(1855)。
図19は、図9のドキュメントコントロールサーバにおける、サーバ側のACL評価ワークフローを示すブロック図である。サーバは、パーミションを含んだオペレーションを実行する際、まず、認証されたユーザの身元を決定し得る(1900)。ドキュメントにおける、暗号化されたサーバコントロール情報が、復号化され得る(1910)。ストレージサービスプロバイダから最新のドキュメントACLを検索するため、暗号化されたコントロール情報におけるチケットが用いられ得る(1920)。アクセスコントロールマネージャは、どのパーミションが認証されたユーザに関係があるかを決定することにより、ACLを評価し得る(1930)。上記ACLは、グループを参照する。このため、ストレージプロバイダは、クエリされ、ユーザがどのグループに所属しているかを決定し得る(1940)。
図20は、図9のドキュメントコントロールサーバにおけるオンラインドキュメントビューイングのワークフローを示すブロック図である。オンラインの間にドキュメントを視覚することは、2つの主要な段階を含み得る。第1の段階は、認証されたユーザがどのパーミションを有しているかを決定することを含む。第2の段階は、クライアント上のドキュメントを復号化するドキュメントキーを戻すことを含む。ドキュメントがオンランで視覚されるべき場合、ビューイングアプリケーションは、保護されたドキュメントを開き、上記ドキュメントがコントロールサーバに関連していることを認識し得る(例えば、ドキュメントは、ビューイングクライアントにおけるセキュリティハンドラを含み得る)。ビューイングアプリケーションは、サーバRPCを用い、ドキュメントにおける暗号辞書内にある、暗号化されたコントロール情報を、サーバへ転送し得る(2000)。図19と関連して上述されたように、上記サーバは、上記ACLを、パーミションを含むオペレーションとして評価し得る(2010)。その後、このドキュメントが取り消されていないことを保証するため、ストレージプロバイダがクエリされ得る(2020)。コントロール情報から、ドキュメントキーが抽出され得る(2030)。サーバは、このドキュメントのオンラインビューイングを監査し得る(2040)。ドキュメントキーと同様に、上記ドキュメントを視覚するためのルールである最新のACLが、ビューイングクライアントに戻され得る(2050)。その後、ビューイングアプリケーションがパーミションを実施する(例えば、セキュリティハンドラは、どのパーミションを実施するかをビューイングアプリケーションに通知し、ドキュメントが視覚可能となるように、復号化キーを提供し得る)。
図21は、図9のドキュメントコントロールサーバにおける取り消しワークフローを示すブロック図である。クライアントは、暗号化されたコンとロール情報をサーバへ送信し得る(2100)。図19と関連して上述されたように、サーバは、認証されたユーザがドキュメントを取り消すためのパーミションを有しているか否かを決定し得る(2110)。その後、サーバは、ドキュメントの取り消しを実行し得る(2120)。クライアントは、確認応答(acknowledgement)を受信し得る(2130)。
図22は、図9のドキュメントコントロールサーバにおける、監査イベント検索ワークフローを示すブロック図である。クライアントは、暗号化されたコントロール情報をサーバへ送信し得る(2200)。図19に関連して上述されたように、サーバは、認証されたユーザが、このドキュメントに対する監査されたヒストリを取得するためのパーミションを有しているか否かを決定し得る(2210)。このドキュメントに対し、どのイベントが関係があるかを決定するため、ストレージプロバイダがクエリされ得る(2200)。その後、クライアントは、監査情報を受信し、ユーザに表示し得る(2230)。
図23は、複数のドキュメントコントロールサーバ2360を用いたドキュメントコントロールシステムを示すブロック図である。上記システムは、3階層のアーキテクチャを用い、信頼度と拡張性とを提供し得る。アプリケーション階層におけるクライアント2310,2320,2330は、ビジネスロジック階層2350における複数のドキュメントコントロールサーバ2360と通信を行する。上記ビジネスロジック階層2350における複数のドキュメントコントロールサーバ2360は、ストレージ階層2370におけるエンタープライズシステム(例えば、データベースマネジメントシステム(DBMS)2380)と通信を行なう。サーバの特定のインスタンスに特有ではないサーバ状態の全ては、複数のサーバインスタンスがそのような状態をシェアし得るように、第3の階層2370に格納され得る。
複数のドキュメントコントロールサーバのインスタンス2360が用いられる場合では、あるサーバが故障した際、他のサーバへ要求がルーティングされ得る。ロードバランサー2340は、上記要求の、サーバインスタンス2360へのルーティングを取り扱うことが出来る。サーバ自身において、例えば、Javaまたは .NET言語のような、組織化されたコードを用いた言語を用いてサーバを記述することにより、高い信頼性が達成され得る。多数の標準的または非標準的なプリンシパルを管理するため、プリンシパル情報に対し、2つのレベルのキャッシュが提供され得る。サーバ2360は、標準的なマッピングと、最近クエリされた、標準的なユーザに対するグループメンバーシップとに関する、メモリ内キャッシュを有し得る。多くのドキュメントコントロールサーバは、ストレージプロバイダ内の2次キャッシュをシェアし得る。
所望の情報は、これらキャッシュのいずれにも存在すべきではない。サーバは、アクセスコントロールサービスプロバイダ内のダイレクトなプリンシパルプロバイダに直接的に通信し、その後、ストレージプロバイダの近くの情報、または、ストレージプロバイダの内部の情報の両方を、キャッシュし得る。グループメンバー情報は、十分な長さの時間において、必要に応じて検索されるように、バッチ処理され得る。2次的なサービスとして、1つ以上のドキュメントコントロールサーバは、マスタを指定し、バッチ処理のタスクを実行する責任を有する。多くのケースにおいて、実際の保護はクライアント上で行なわれ、サーバへのドキュメントの転送とサーバからのドキュメントの転送とのオーバーヘッドを除去し、サーバ上のロードを減少させる。同様に、クライアント側の保護を用いて、クライアントは、ドキュメントの暗号化をも実行し、サーバのロードをさらに減少させる。
3階層のアーキテクチャは、大きなエンタープライズに対して、一定の比率に拡大したサーバのレプリカが追加されることを許容する。上述のように、ドキュメントは、特定のホスト名の代わりに、サーバのクラスタに束縛され得る。DNS(Domain Naming System)ラウンドロビンがシステムに追加され、追加的なハードウェアがドキュメントコントロールサーバとして作用することを許容する。上記サーバは、状態を含まず、このため、ハードウェアに関する拡張性は、標準的な「1データベース(one database)」問題に還元され得る。プリンシパルのマネジメントに関するアルゴリズムは、個々のオペレーションに対し、O(1)と記され、アグリゲートオペレーション(aggregate operation:例えば、バッチ処理等)に対しては、O(n)と記され得る。
本発明、および、本明細書に記述された機能上のオペレーションの全ては、デジタル電子回路において、または、コンピュータハードウェア、ファームウェア、ソフトウェア、または、それらの組み合わせにおいて、実施され得る。本発明の装置は、プログラム可能なプロセッサによる実行のため、機械可読の格納デバイスに具現化されたソフトウェアプロダクト(例えば、コンピュータプログラムプロダクト)に実施され得る。本発明の処理動作は、命令のプログラムを実行するプログラム可能なプロセッサによって実行され、入力データ上で動作し、出力を生成することによって、本発明の機能を実行し得る。本発明は、有利にも、1つ以上のソフトウェアプログラムの上で実施され得る。上記1つ以上のソフトウェアプログラムは、少なくとも1つのプログラム可能なプロセッサを含んだプログラム可能なシステムの上で実行可能である。上記少なくとも1つのプログラム可能なプロセッサは、データ格納システムと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとから、データと命令とを受信できるように接続され、これらへデータと命令とを転送できるように接続され得る。各ソフトウェアプログラムは、ハイレベルの手続きまたはオブジェクト指向のプログラミング言語によって、あるいは、必要に応じて、アセンブリまたは機械言語によって実施され得る。また、どの場合でも、言語はコンパイラ言語またはインタープリタ言語であり得る。適切なプロセッサは、例として、多目的のマイクロプロセッサと、特殊目的のマイクロプロセッサとを含む。一般に、プロセッサは、読み取り専用メモリ、ランダムアクセスメモリ、および/または、機械可読信号(例えば、ネットワーク接続を介して受信したデジタル信号)から、命令とデータとを受信し得る。一般に、コンピュータは、データファイルを格納するための、1つ以上の大容量記憶デバイスを含み得る。そのようなデバイスは、例えば、内蔵ハードディスク、取り外し可能ディスク、光磁気ディスクのような磁気ディスク、および、光ディスクを含み得る。ソフトウェアプログラム命令とデータとを実体的に具現化するのに適切な格納デバイスは、任意の形態の非揮発性メモリであり得る。上記非揮発性のメモリは、例えばEPROM(電気的にプログラム可能な読み取り専用メモリ)、EEPROM(電気的に消去可能であってプログラム可能な読み取り専用メモリ)を含む半導体メモリデバイスと、フラッシュメモリデバイスと、例えば内蔵ハードディスクまたは外付けハードディスクのような磁気ディスクと、光磁気ディスクと、CD−ROMディスクとを含み得る。上記のいずれもが、ASICs(特定用途向け回路)によって補助され得る、または、ASICsに組み込まれ得る。
本発明は、特定の実施形態の言葉で述べられてきた。その他の実施形態は、以下の請求項の範囲内にある。例えば、本発明のオペレーションは、異なる順序で実行され得るが、それでもなお、所望の結果を達成する。上記オペレーションは、予約ビジネスモデル(subscription business model)を用いて、ホストされたサービスとして提供され得る。また、インターネットを介して一般に入手可能なシステム基盤を用いて、統合が実行され得る。ピア・トゥ・ピア(peer−to−peer)なシステムおよび技術を用いることにより、ドキュメントバージョンコントロール技術が実施され得る。さらに、ドキュメントに対するパーミションのセットは、異なるフレームワークに対して与えられたドキュメントコンテンツに関連した様々なアクションをカバーするように拡張され得る(例えば、特定の人物のみがドキュメントまたはドキュメントの一部に署名することを許容するパーミション、および/または、誰が電子フォームの異なるセクションに記入し得るか、および/または、誰が視覚し得るかをコントロールするパーミションなど)。
加えて、ポリシーのアップデートを常に同期化し、他のACLについては必ずしもそうしないことの代わりとして、システム内のどのACLが変更したかに関する情報を提供することが含まれ得る。その後、同期化動作は、高優先度の動作と低優先度の動作とに分割され得る。高優先度の同期化は、バックグラウンドにおいてより頻繁に発生し得、いつ情報が変更されたかについての指示を提供し得る。例えば、クライアントの最後の同期化以来、どのアクセスコントロールリストとどのポリシーとが変更したかを指示し得る。低優先度の同期化動作は、どのようにして情報が変更されたかを伴い得る。例えばこれは、システム内の全ドキュメントに対するオフラインアクセス情報が変更されたことを含み得る。一般に、アクセスコントロール情報の変更のされ方についての同期化は、変更されたものが何かについての概略よりも、資源消費を要求し得る。ドキュメントに対するアクセスコントロールがモディファイされ、クライアントが、モディフィケーションに気付いているにもかかわらず、低優先度の同期化を実行しなかった場合、システムは保守的になり、実施は、低優先度の同期化に置き換わるまで、上記ドキュメントへのアクセスを妨害し得る。
46 様々な図面における同じ番号は、同じ要素を示している。
図1は、ドキュメントコントロールシステムに対する動作環境を示すブロック図である。 図2は、例示的なドキュメントコントロールサーバを示すブロック図である。 図3は、認証システムにおけるワークフローを示すブロック図である。 図4は、サーバによって採用される認証技術を示すフォローチャートである。 図5は、ドキュメントコントロールシステムにおけるワークフローを示すブロック図である。 図6は、パーミション仲介サーバによって採用されるドキュメントコントロール技術を示すフローチャートである。 図7は、ドキュメントレポジトリと統合されたドキュメントコントロールシステムにおけるワークフローを示すブロック図である。 図8は、e−メールクライアントと統合されたドキュメントコントロールシステムにおけるワークフローを示すブロック図である。 図9は、図2の例に対応するドキュメントコントロールサーバを示すブロック図である。 図10は、図9のサーバに関する例についての詳細を示すブロック図である。 図11は、ドキュメントコントロールシステムで用いられ得るようなオフラインドキュメント・アクセスモデルを示すブロック図である。 図12は、サーバによって実行されるような同期化動作を示すフローチャートである。 図13は、クライアントによって実行されるような同期化動作を示すフローチャートである。 図14は、保護されたドキュメントのコンポーネントを示すブロック図である。 図15は、サーバによって採用されるドキュメント情報送達技術を示すフローチャートである。 図16は、ドキュメントコントロールシステムにおけるワークフローを示すブロック図である。 図17は、クライアントによって採用されるドキュメント情報受信技術を示すフローチャートである。 図18は、図9のドキュメントコントロールサーバにおけるドキュメント保護ワークフローを示すブロック図である。 図19は、図9のドキュメントコントロールサーバにおけるサーバ側アクセスコントロールリスト評価ワークフローを示すブロック図である。 図20は、図9のドキュメントコントロールサーバにおけるオンラインドキュメントビューイング・ワークフローを示すブロック図である。 図21は、図9のドキュメントコントロールサーバにおける取り消しワークフローを示すブロック図である。 図22は、図9のドキュメントコントロールサーバにおける監査イベント検索ワークフローを示すブロック図である。 図23は、複数のドキュメントコントロールサーバを有したドキュメントコントロールシステムを示すブロック図である。

Claims (46)

  1. 分散電子ドキュメントに関連したアクションを行なうような要求を受信することと、
    該要求に応答して、該分散電子ドキュメントとは異なる第2の電子ドキュメントを示す、該分散電子ドキュメントに関連した情報を識別することと、
    該第2の電子ドキュメントに関連した情報を伝え、該第2の電子ドキュメントに関連して行なわれるべきアクションを行なわせること
    とを含む方法。
  2. 前記要求を受信することが、クライアントにおいて局所的に保持されている分散電子ドキュメントに関連したアクションを行なうようなクライアントからの要求を受信することを含み、
    前記関連した情報を識別することが、該クライアントにおいて保持された、関連した情報を識別することを含み、
    前記第2のドキュメントの情報を伝えることが、該サーバから該クライアントへの、該第2のドキュメントの情報を関係付けることを含む、
    請求項1に記載の方法。
  3. 前記第2のドキュメントの情報を関係付けることが、前記第2のドキュメントの情報を前記クライアントに送信し、該第2のドキュメントを該クライアントが入手出来るようにすることを含む、請求項2に記載の方法。
  4. 前記分散ドキュメントおよび第2のドキュメントが、異なる言語バージョンのドキュメントを含む、請求項2に記載の方法。
  5. 前記分散ドキュメントおよび第2のドキュメントが、一連の異なるバージョンのドキュメントを含む、請求項2に記載の方法。
  6. 前記第2のドキュメントの情報を関係付けることが、
    前記第2の電子ドキュメントを入手することと、
    該第2の電子ドキュメントを前記クライアントに送信すること
    とを含む、請求項2に記載の方法。
  7. 前記第2の電子ドキュメントが、前記分散電子ドキュメントの新しいバージョンを含み、
    前記関連した情報が、前記アクションが前記クライアントにおける分散電子ドキュメントに関連して許可されていないことを示すドキュメント許可情報を含む、
    請求項6に記載の方法。
  8. 前記ドキュメント許可情報が、前記分散電子ドキュメントよりも小さい粒度レベルにおけるアクセス許可を指定する、請求項7に記載の方法。
  9. 前記関連した情報が、前記第2の電子ドキュメントを示す、ユーザに依存した関連情報を含み、
    前記第2の電子ドキュメントを入手することが、該ユーザに依存した関連情報と該クライアントにおいて識別されたユーザとに基づいて、該第2の電子ドキュメントを識別することを含む、
    請求項6に記載の方法。
  10. 前記第2の電子ドキュメントを入手することが、前記識別されたユーザに基づいて、前記第2の電子ドキュメントのうち少なくとも一部分を生成することをさらに含む、請求項9に記載の方法。
  11. 前記分散ドキュメントおよび第2のドキュメントが、異なるフォーマットバージョンのドキュメントを含む、請求項6に記載の方法。
  12. 前記分散電子ドキュメントが、ソフトウェアプログラムを含み、
    前記第2の電子ドキュメントが、該ソフトウェアプログラムの新しいバージョンを含み、
    前記アクションが、該ソフトウェアプログラムを実行させることを含む、
    請求項6に記載の方法。
  13. 前記クライアントにおける前記分散電子ドキュメントへアクセスすることと、
    前記サーバのアドレス、および、該分散電子ドキュメントにおけるドキュメント識別子を識別することと、
    該アドレスを用いているサーバへ、該ドキュメント識別子、および、要求されたアクションを送信することと、
    該クライアントにおける該分散ドキュメントを、前記第2のドキュメントに置き換えること
    とをさらに含む、請求項2に記載の方法。
  14. 前記分散ドキュメントを置き換えることが、前記第2のドキュメントに関連したアクションを実行することを含む、請求項13に記載の方法。
  15. 前記第2のドキュメントが、前記サーバのアドレスと第2のドキュメント識別子とを含み、
    前記分散ドキュメントを置き換えることが、格納デバイスにある該第2のドキュメントを用いて、該分散ドキュメントを上書きすることをさらに含む、
    請求項14に記載の方法。
  16. 保持された分散ドキュメントを開くことと、
    該分散ドキュメントから識別されたドキュメントコントロールサーバに接続することと、
    該ドキュメントコントロールサーバから受信した情報に基づいて、該分散ドキュメントの代わりに、少なくとも1つのドキュメントアクションに関連した第2のドキュメントの使用を強いること
    とを含む、方法。
  17. 前記受信した情報に基づいて、前記第2のドキュメントを入手することをさらに含む、請求項16に記載の方法。
  18. 前記受信した情報が、第2のドキュメントを含む、請求項16に記載の方法。
  19. 前記第2のドキュメントが、前記分散ドキュメントの新しいバージョンを含み、
    前記使用を強いることが、トランスパレントに該分散ドキュメントを閉じ、該第2のドキュメントを開くことを含む、請求項16に記載の方法。
  20. 前記使用を強いることが、該分散ドキュメントを前記第2のドキュメントを用いてトランスパレントに上書きすることを含む、請求項19に記載の方法。
  21. 前記受信した情報が、前記第2のドキュメントに関連した認証を前記分散ドキュメントを用いて指定するドキュメント認証情報を含む、請求項16に記載の方法。
  22. 前記分散ドキュメントがソフトウェアプログラムを含み、前記第2のドキュメントが、該ソフトウェアプログラムの新しいバージョンを含み、前記少なくとも1つのドキュメントアクションが、該ソフトウェアプログラムを実行させることを含む、請求項16に記載の方法。
  23. 機械可読媒体に実体的に具現化されたソフトウェアプロダクトであって、該ソフトウェアプロダクトは、1つ以上のデータ処理装置に、
    分散電子ドキュメントに関するアクションを行なわせる要求を受信することと、
    該要求に応答し、該分散電子ドキュメントに関連した情報を識別することであって、該関連した情報は、該分散ドキュメントとは異なる第2の電子ドキュメント、および、関連した第2の電子ドキュメントを示している、ことと、
    該第2の電子ドキュメントに関する情報を知らせ、該第2のドキュメントに関連して行われるべきアクションを強いること
    とを含むオペレーションを実行させるように動作可能な命令を含む、ソフトウェアプロダクト。
  24. 前記要求を受信することが、サーバにおいて、クライアントからの、前記分散電子ドキュメントに関連したアクションを行なわせる命令を受信することを含み、該分散電子ドキュメントは、該クライアントにおいて局所的に保持され、
    前記関連した情報を識別することが、該サーバにおいて保持された関連した情報を識別することを含み、
    前記第2のドキュメント情報を知らせることが、該サーバからの、該第2のドキュメント情報を該クライアントに関係付けることを含む、
    請求項23に記載のソフトウェアプロダクト。
  25. 前記第2のドキュメント情報を関係付けることが、前記第2のドキュメント情報を前記クライアントに送信し、該クライアントが該第2のドキュメントを入手するようにすることを可能にすることを含む、請求項24に記載の方法。
  26. 前記第2のドキュメント情報を関係付けることが、
    該第2の電子ドキュメントを入手することと、
    該第2の電子ドキュメントを前記クライアントに送信すること
    とを含む、請求項24に記載のソフトウェアプロダクト。
  27. 前記第2の電子ドキュメントが前記分散電子ドキュメントの新しいバージョンを含み、前記関連した情報は、前記クライアントにおいて、該分散電子ドキュメントに関連して前記アクションが認証されていないことを示すドキュメント認証情報を含む、請求項26に記載のソフトウェアプロダクト。
  28. 前記関連した情報が、前記第2の電子ドキュメントを示すユーザ依存の関連情報を含み、
    該第2の電子ドキュメントを入手することが、該ユーザ依存の関連情報と前記クライアントにおいて識別されたユーザとに基づいて、該第2の電子ドキュメントを識別することを含む、請求項26に記載のソフトウェアプロダクト。
  29. 前記第2の電子ドキュメントを入手することが、前記識別されたユーザに基づいて、該第2の電子ドキュメントの少なくとも一部を生成することをさらに含む、請求項28に記載のソフトウェアプロダクト。
  30. 前記分散ドキュメントがソフトウェアプログラムを含み、前記第2の電子ドキュメントが該ソフトウェアプログラムの新しいバージョンを含み、前記アクションが該ソフトウェアプログラムを実行させることを含む、請求項26に記載のソフトウェアプロダクト。
  31. 機械可読媒体に実態的に具現化されたソフトウェアプロダクトであって、該ソフトウェアプロダクトは、1つ以上のデータ処理装置に、
    局所的に保持されている分散ドキュメントを開くことと、
    該分散ドキュメントから識別されたドキュメントコントロールサーバに接続することと、
    該ドキュメントコントロールサーバから受信した情報に基づいて、該分散ドキュメントの代わりに、少なくとも1つのドキュメントアクションに関連した第2のドキュメントの使用を強いること
    とを含むオペレーションを実行させるように動作可能な命令を含む、ソフトウェアプロダクト。
  32. 前記オペレーションが、前記受信した情報に基づいて、前記第2のドキュメントを入手することをさらに含む、請求項31に記載のソフトウェアプロダクト。
  33. 前記受信した情報が、前記第2のドキュメントを含んでいる、請求項31に記載のソフトウェアプロダクト。
  34. 前記第2のプロダクトが前記分散ドキュメントの新しいバージョンを含み、
    前記使用を強いることが、トランスパレントに該分散ドキュメントを閉じ、該第2のドキュメントを開くことを含む、請求項31に記載のソフトウェアプロダクト。
  35. 前記使用を強いることが、前記分散ドキュメントを該第2のドキュメントを用いてトランスパレントに上書きすることを含む、請求項34に記載のソフトウェアプロダクト。
  36. 前記受信した情報が、前記第2のドキュメントに関連した認証を前記分散ドキュメントを用いて指定するドキュメント認証情報を含む、請求項31に記載のソフトウェアプロダクト。
  37. 前記ドキュメント認証情報が、前記分散ドキュメントよりも小さい粒度におけるアクセス認証を指定する、請求項36に記載のソフトウェアプロダクト。
  38. 前記分散ドキュメントがソフトウェアプログラムを含み、
    前記第2のドキュメントが該ソフトウェアプログラムの新しいバージョンを含み、
    前記少なくとも1つのドキュメントアクションが、該ソフトウェアプログラムを実行させることを含む、
    請求項31に記載のソフトウェアプロダクト。
  39. クライアントに対して局所的な分散電子ドキュメントに関連してアクションが行なわれた際に、要求をサーバに送信するように動作することが出来るクライアントと、
    該要求を受信するように動作可能なサーバと
    を含み、
    該クライアントに応答して、該サーバは、該分散電子ドキュメントに関連した情報を識別するように動作可能であり、
    該関連した情報は、該サーバにおいて保持され、該分散ドキュメントとは異なる第2の電子ドキュメント、および、関連した第2の電子ドキュメントとを示し、
    該サーバは、該第2の電子ドキュメントに関する情報を該クライアントに関係付け、アクションが行なわれることを容易にする、
    システム。
  40. コンフィギュレーションとロギングコンポーネントとを伴うサーバコアと、
    動的にロードされた方法を横断した機能を提供する内部のサービスコンポーネントと、
    1つ以上のアクセスコントロールサービス・プロバイダを含む、動的にロードされた外部のサービスプロバイダと
    を含む、請求項39に記載のシステム。
  41. 前記サーバを含むドキュメントコントロールサーバのクラスタを含んだビジネスロジック階層と、
    ビューア・クライアントとアドミニストレーション・クライアントとを含むクライアントを含んだアプリケーション階層と、
    該クライアント要求の、該ドキュメントコントロールサーバへの経路を定める、ロードバランサーと
    を含む、請求項39に記載のシステム。
  42. 前記サーバが、翻訳コンポーネントを含むパーミション仲介サーバを含み、
    前記局所的な電子ドキュメントが、該パーミション仲介サーバによって既に保護されたドキュメントを含み、
    該翻訳コンポーネントは、該クライアントから受信された要求に応答して、第1の認証定義フォーマットの第1のドキュメント認証情報を、第2の認証定義フォーマットの第2のドキュメント認証情報に翻訳するように動作することが出来る、
    請求項39に記載のシステム。
  43. 前記サーバが、1つ以上のデータ処理装置に認証手続きを行なうのに効果的なオペレーションを実行するように動作することが出来るソフトウェアプログラム命令を前記要求に応答して入手し、送信するように動作することが出来る、パーミション仲介サーバを含み、
    前記クライアントは、前記認証プログラムを用い、実際のユーザを識別し、該実際のユーザと前記第2のドキュメントに関連したドキュメント関連情報とに基づいて、該第2のドキュメントに関連したアクションをコントロールする、
    請求項39に記載のシステム。
  44. 前記サーバは、前記クライアント要求に応答してオフラインアクセス情報を前記クライアントに同期化させるように動作することが出来るドキュメントコントロールサーバを含み、
    該オフラインアクセス情報は、グループに関連した第1のキーを含み、
    該第1のキーは、該クライアントにおいて、第3のドキュメントにおける第2のキーを復号化することによって該第3のドキュメントにアクセスすることに利用可能であり、
    該クライアントは、オフラインの際、該第1のキーを用いて該第3のドキュメントにおける該第2のキーを復号化し、該第3のドキュメントに関連したドキュメント認証情報に基づいて該第3のドキュメントに関連したアクションを統率し、該グループのメンバーであるユーザが該第3のドキュメントにアクセスすることを許可する、
    請求項39に記載のシステム。
  45. アクションが局所的に保持された分散電子ドキュメントに関連して行なわれた際に、サーバに接続する、クライアント手段と、
    該アクションに関連して、該分散電子ドキュメントの代わりに動作されるべき分散電子ドキュメントとは異なる第2の分散電子ドキュメント、および、関連した第2の分散電子ドキュメントに関する情報とを識別し、関係付ける、サーバ手段と
    を含む、システム。
  46. 第1の認証定義フォーマットにおける第1のドキュメント認証情報を、第2の認証定義フォーマットにおける第2のドキュメント認証情報にマッピングするサーバ手段であって、該第1のドキュメント認証情報は、電子ドキュメントに関連している、手段と、
    該第2のドキュメント認証情報に基づいて、該電子ドキュメントに関連したアクションをコントロールする、クライアント手段と
    をさらに含み、
    該第1の認証定義フォーマットは、該クライアント手段によって用いられた該第2の認証定義フォーマットにおいて完全には定義され得ない認証情報のタイプを少なくとも1つ含んでいる、
    請求項45に記載のシステム。
JP2006538261A 2003-10-31 2004-10-27 分散ドキュメントのバージョンコントロール Pending JP2007511821A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/699,520 US8627489B2 (en) 2003-10-31 2003-10-31 Distributed document version control
PCT/US2004/035857 WO2005045709A2 (en) 2003-10-31 2004-10-27 Distributed document version control

Publications (2)

Publication Number Publication Date
JP2007511821A true JP2007511821A (ja) 2007-05-10
JP2007511821A5 JP2007511821A5 (ja) 2007-12-06

Family

ID=34550987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006538261A Pending JP2007511821A (ja) 2003-10-31 2004-10-27 分散ドキュメントのバージョンコントロール

Country Status (6)

Country Link
US (1) US8627489B2 (ja)
EP (1) EP1680727B1 (ja)
JP (1) JP2007511821A (ja)
AT (1) ATE468565T1 (ja)
DE (1) DE602004027283D1 (ja)
WO (1) WO2005045709A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287350A (ja) * 2007-05-15 2008-11-27 Fuji Xerox Co Ltd 文書管理システム及び文書管理方法、並びにコンピュータ・プログラム
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
JP4777459B2 (ja) * 2006-05-26 2011-09-21 オートデスク,インコーポレイテッド コンテンツ管理システム用のセキュリティアーキテクチャ
WO2013088676A1 (ja) * 2011-12-15 2013-06-20 株式会社ソニー・コンピュータエンタテインメント 情報処理システムおよびコンテンツダウンロード方法
JP2017167614A (ja) * 2016-03-14 2017-09-21 富士通株式会社 復号プログラム、暗号化プログラム、復号装置、暗号化装置、復号方法、および暗号化方法

Families Citing this family (223)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3262325B2 (ja) * 2000-05-15 2002-03-04 有限会社アトリ 電子メール・サービス・システムの構築を支援するエージェント・システムおよびその方法
US7676788B1 (en) 2003-03-25 2010-03-09 Electric Cloud, Inc. Architecture and method for executing program builds
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US7814327B2 (en) * 2003-12-10 2010-10-12 Mcafee, Inc. Document registration
US8548170B2 (en) * 2003-12-10 2013-10-01 Mcafee, Inc. Document de-registration
US7774604B2 (en) 2003-12-10 2010-08-10 Mcafee, Inc. Verifying captured objects before presentation
US7984175B2 (en) * 2003-12-10 2011-07-19 Mcafee, Inc. Method and apparatus for data capture and analysis system
US8656039B2 (en) 2003-12-10 2014-02-18 Mcafee, Inc. Rule parser
US7899828B2 (en) * 2003-12-10 2011-03-01 Mcafee, Inc. Tag data structure for maintaining relational data over captured objects
US7930540B2 (en) * 2004-01-22 2011-04-19 Mcafee, Inc. Cryptographic policy enforcement
US20050162696A1 (en) * 2004-01-26 2005-07-28 Helms Janine L. Print auditing network
US20050182925A1 (en) * 2004-02-12 2005-08-18 Yoshihiro Tsukamura Multi-mode token
US8276096B2 (en) * 2004-04-02 2012-09-25 International Business Machines Corporation Multicast file viewing and editing
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US7359902B2 (en) * 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US20050246384A1 (en) * 2004-05-03 2005-11-03 Microsoft Corporation Systems and methods for passing data between filters
US7580948B2 (en) * 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
US7519899B2 (en) * 2004-05-03 2009-04-14 Microsoft Corporation Planar mapping of graphical elements
US7755786B2 (en) * 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
US8243317B2 (en) * 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US8363232B2 (en) * 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7886341B2 (en) * 2004-06-10 2011-02-08 Oracle International Corporation External authentication against a third-party directory
US7962591B2 (en) * 2004-06-23 2011-06-14 Mcafee, Inc. Object classification in a capture system
US7841009B1 (en) * 2004-07-09 2010-11-23 Angel Secure Networks System and method for defending against reverse engineering of software, firmware and hardware
CN1989498B (zh) * 2004-07-20 2012-10-17 富士通株式会社 电子文件管理系统及电子文件管理方法
US8560534B2 (en) 2004-08-23 2013-10-15 Mcafee, Inc. Database for a capture system
US7949849B2 (en) 2004-08-24 2011-05-24 Mcafee, Inc. File system for a capture system
US7707642B1 (en) 2004-08-31 2010-04-27 Adobe Systems Incorporated Document access auditing
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US8245280B2 (en) * 2005-02-11 2012-08-14 Samsung Electronics Co., Ltd. System and method for user access control to content in a network
US8442996B2 (en) * 2005-04-12 2013-05-14 Enrico Maim Methods for granting access to resources modifiable by users in a computer environment, and resources structured therefore
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US20080086640A1 (en) * 2005-07-28 2008-04-10 Jmj Software, Llc Systems, methods and apparatus of an email client
US7907608B2 (en) * 2005-08-12 2011-03-15 Mcafee, Inc. High speed packet capture
US7818326B2 (en) 2005-08-31 2010-10-19 Mcafee, Inc. System and method for word indexing in a capture system and querying thereof
US7711836B2 (en) * 2005-09-21 2010-05-04 Sap Ag Runtime execution of a reliable messaging protocol
US7788338B2 (en) 2005-09-21 2010-08-31 Sap Ag Web services message processing runtime framework
US7721293B2 (en) * 2005-09-21 2010-05-18 Sap Ag Web services hibernation
US8745252B2 (en) 2005-09-21 2014-06-03 Sap Ag Headers protocol for use within a web services message processing runtime framework
US7761533B2 (en) * 2005-09-21 2010-07-20 Sap Ag Standard implementation container interface for runtime processing of web services messages
US7730011B1 (en) 2005-10-19 2010-06-01 Mcafee, Inc. Attributes of captured objects in a capture system
EP1938520B1 (en) * 2005-10-21 2010-08-04 Research In Motion Limited Instant messaging device/server protocol
JP2007122236A (ja) * 2005-10-26 2007-05-17 Konica Minolta Business Technologies Inc 文書管理装置及び文書管理方法
US7657104B2 (en) * 2005-11-21 2010-02-02 Mcafee, Inc. Identifying image type in a capture system
US8190923B2 (en) * 2005-12-20 2012-05-29 Microsoft Corporation Method to securely initialize, protect and recover system date/time
US20070156785A1 (en) * 2006-01-03 2007-07-05 Hines Wallis G Iii Method and system for revising manuals
US20080294899A1 (en) * 2006-01-17 2008-11-27 Boardvantage, Inc. Secure management of document in a client-server environment
US20070192323A1 (en) * 2006-02-10 2007-08-16 Vertical Systems, Inc. System and method of access and control management between multiple databases
JP4693669B2 (ja) * 2006-03-23 2011-06-01 キヤノン株式会社 画像形成装置、画像処理装置、画像形成方法、画像処理方法、プログラム、記憶媒体
US8504537B2 (en) 2006-03-24 2013-08-06 Mcafee, Inc. Signature distribution in a document registration system
US9460026B1 (en) * 2006-03-30 2016-10-04 Emc Corporation Application-supervised access to managed content
US20070255761A1 (en) * 2006-04-27 2007-11-01 Xerox Corporation Tools to facilitate document information access
US7895639B2 (en) * 2006-05-04 2011-02-22 Citrix Online, Llc Methods and systems for specifying and enforcing access control in a distributed system
US8166003B2 (en) * 2006-05-05 2012-04-24 Microsoft Corporation Permission-based document server
US7689614B2 (en) * 2006-05-22 2010-03-30 Mcafee, Inc. Query generation for a capture system
US7958227B2 (en) 2006-05-22 2011-06-07 Mcafee, Inc. Attributes of captured objects in a capture system
US8010689B2 (en) * 2006-05-22 2011-08-30 Mcafee, Inc. Locational tagging in a capture system
JP2008059063A (ja) * 2006-08-29 2008-03-13 Fujitsu Ltd 情報管理プログラム
US8042089B2 (en) * 2006-10-03 2011-10-18 Electric Cloud, Inc. Process automation system and method employing multi-stage report generation
US7725524B2 (en) 2006-10-03 2010-05-25 Electric Cloud, Inc. Process automation system and method having a hierarchical architecture with multiple tiers
US7886265B2 (en) * 2006-10-03 2011-02-08 Electric Cloud, Inc. Process automation system and method employing property attachment techniques
US8533846B2 (en) * 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8688749B1 (en) 2011-03-31 2014-04-01 Palantir Technologies, Inc. Cross-ontology multi-master replication
US20080162603A1 (en) * 2006-12-28 2008-07-03 Google Inc. Document archiving system
US8949339B2 (en) * 2007-01-08 2015-02-03 Apple Inc. System and method for automatic opportunistic data and image sharing
US8930331B2 (en) * 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
KR101292600B1 (ko) * 2007-05-15 2013-08-05 아벤티스 애그리컬쳐 아릴로아졸-2-일 시아노에틸아미노 화합물, 이의 제조방법 및 이의 사용방법
US8887298B2 (en) * 2007-07-13 2014-11-11 Microsoft Corporation Updating and validating documents secured cryptographically
JP4946726B2 (ja) * 2007-08-22 2012-06-06 富士ゼロックス株式会社 文書操作システムおよび管理装置およびプログラム
US8656159B1 (en) * 2007-10-11 2014-02-18 Adobe Systems Incorporated Versioning of modifiable encrypted documents
US8554719B2 (en) 2007-10-18 2013-10-08 Palantir Technologies, Inc. Resolving database entity information
KR20100133953A (ko) * 2007-12-21 2010-12-22 코쿤 데이터 홀딩스 리미티드 데이터를 안전하게 하는 시스템 및 방법
US7480805B1 (en) * 2008-01-26 2009-01-20 International Business Machines Corporation Method and system for identifying and processing an unauthorized access request
JP5473230B2 (ja) * 2008-02-06 2014-04-16 キヤノン株式会社 文書管理方法、文書管理装置、文書管理システム、およびプログラム
US8996621B2 (en) 2008-05-12 2015-03-31 Adobe Systems Incorporated Asynchronous comment updates
US9176943B2 (en) 2008-05-12 2015-11-03 Adobe Systems Incorporated Comment presentation in electronic documents
US10055392B2 (en) * 2008-05-12 2018-08-21 Adobe Systems Incorporated History-based archive management
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US7945595B1 (en) 2008-05-12 2011-05-17 Adobe Systems Incorporated System and method for generating an item list in electronic content
US9418054B2 (en) 2008-05-12 2016-08-16 Adobe Systems Incorporated Document comment management
US20090300527A1 (en) * 2008-06-02 2009-12-03 Microsoft Corporation User interface for bulk operations on documents
US8205242B2 (en) 2008-07-10 2012-06-19 Mcafee, Inc. System and method for data mining and security policy management
JP2010033269A (ja) * 2008-07-28 2010-02-12 Canon Inc 文書管理システム、文書管理方法、及びコンピュータプログラム
US9253154B2 (en) 2008-08-12 2016-02-02 Mcafee, Inc. Configuration management for a capture/registration system
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8341132B2 (en) * 2008-10-01 2012-12-25 Ca, Inc. System and method for applying deltas in a version control system
US8850591B2 (en) 2009-01-13 2014-09-30 Mcafee, Inc. System and method for concept building
US8706709B2 (en) 2009-01-15 2014-04-22 Mcafee, Inc. System and method for intelligent term grouping
US8473442B1 (en) 2009-02-25 2013-06-25 Mcafee, Inc. System and method for intelligent state management
US8667121B2 (en) 2009-03-25 2014-03-04 Mcafee, Inc. System and method for managing data and policies
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US9069644B2 (en) 2009-04-10 2015-06-30 Electric Cloud, Inc. Architecture and method for versioning registry entries in a distributed program build
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
US8244872B2 (en) * 2009-06-11 2012-08-14 Microsoft Corp. Educational adaptive provider architecture
US8255984B1 (en) * 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US20130124546A1 (en) * 2010-02-26 2013-05-16 Adobe Systems, Inc. Group access control for a distributed system
US8364642B1 (en) 2010-07-07 2013-01-29 Palantir Technologies, Inc. Managing disconnected investigations
JP5656563B2 (ja) * 2010-11-02 2015-01-21 キヤノン株式会社 文書管理システム、文書管理システムの制御方法、プログラム
US8806615B2 (en) 2010-11-04 2014-08-12 Mcafee, Inc. System and method for protecting specified data combinations
US8782335B2 (en) * 2010-11-08 2014-07-15 Lsi Corporation Latency reduction associated with a response to a request in a storage system
US8918447B2 (en) * 2010-12-10 2014-12-23 Sap Se Methods, apparatus, systems and computer readable mediums for use in sharing information between entities
US9137014B2 (en) * 2011-01-25 2015-09-15 Adobe Systems Incorporated Systems and methods for controlling electronic document use
US8930717B2 (en) 2011-03-01 2015-01-06 Angel Secure Networks, Inc. Secure processing module and method for making the same
US9058482B2 (en) 2011-03-01 2015-06-16 Angel Secure Networks, Inc. Controlling user access to electronic resources without password
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
EP2724280B1 (en) 2011-06-27 2020-05-20 Google LLC Persistent key access to a resources in a collection
CN102281141B (zh) * 2011-07-26 2013-11-06 华为数字技术(成都)有限公司 一种文档权限管理方法、装置及系统
US9280532B2 (en) 2011-08-02 2016-03-08 Palantir Technologies, Inc. System and method for accessing rich objects via spreadsheets
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US10452620B2 (en) * 2011-09-30 2019-10-22 International Business Machines Corporation Automatic file version verification within electronic mail
US8898593B2 (en) * 2011-10-05 2014-11-25 Microsoft Corporation Identification of sharing level
US20130246336A1 (en) 2011-12-27 2013-09-19 Mcafee, Inc. System and method for providing data protection workflows in a network environment
US8918720B1 (en) * 2012-01-13 2014-12-23 Google Inc. List of most selected web based application documents
US8782004B2 (en) 2012-01-23 2014-07-15 Palantir Technologies, Inc. Cross-ACL multi-master replication
US20130226810A1 (en) * 2012-02-24 2013-08-29 Wayne Moffett System and method for certifying a will
US8688733B2 (en) * 2012-03-16 2014-04-01 International Business Machines Corporation Remote inventory manager
US9710502B2 (en) 2012-04-03 2017-07-18 Expedox Llc Document management
US20130290266A1 (en) * 2012-04-26 2013-10-31 Rahul Kapoor Document-type and capture method agnostic versioning of an archived document
US10210480B2 (en) * 2012-05-31 2019-02-19 Apple Inc. Avoiding a redundant display of a notification on multiple user devices
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9270660B2 (en) 2012-11-25 2016-02-23 Angel Secure Networks, Inc. System and method for using a separate device to facilitate authentication
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US8903717B2 (en) 2013-03-15 2014-12-02 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US9230280B1 (en) 2013-03-15 2016-01-05 Palantir Technologies Inc. Clustering data based on indications of financial malfeasance
US8930897B2 (en) 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8855999B1 (en) 2013-03-15 2014-10-07 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
US10061836B2 (en) * 2013-06-04 2018-08-28 Varonis Systems, Ltd. Delegating resembling data of an organization to a linked device
US8886601B1 (en) 2013-06-20 2014-11-11 Palantir Technologies, Inc. System and method for incrementally replicating investigative analysis data
US8601326B1 (en) 2013-07-05 2013-12-03 Palantir Technologies, Inc. Data quality monitors
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
US9747460B1 (en) * 2014-01-17 2017-08-29 Jpmorgan Chase Bank, N.A. Systems and methods for data sharing and transaction processing for high security documents
US20150215390A1 (en) * 2014-01-30 2015-07-30 Crytek Gmbh Apparatus and Method for Multi-User Editing of Computer-Generated Content
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
US9413707B2 (en) 2014-04-11 2016-08-09 ACR Development, Inc. Automated user task management
US8942727B1 (en) 2014-04-11 2015-01-27 ACR Development, Inc. User Location Tracking
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US11082302B2 (en) * 2014-09-19 2021-08-03 Impetus Technologies, Inc. System and method facilitating reusability of distributed computing pipelines
US10061577B2 (en) 2014-10-14 2018-08-28 Electric Cloud, Inc. System and method for optimizing job scheduling within program builds
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US9672257B2 (en) 2015-06-05 2017-06-06 Palantir Technologies Inc. Time-series data storage and processing database system
US9384203B1 (en) 2015-06-09 2016-07-05 Palantir Technologies Inc. Systems and methods for indexing and aggregating data records
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US10127289B2 (en) 2015-08-19 2018-11-13 Palantir Technologies Inc. Systems and methods for automatic clustering and canonical designation of related data in various data structures
US10402385B1 (en) 2015-08-27 2019-09-03 Palantir Technologies Inc. Database live reindex
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9454564B1 (en) 2015-09-09 2016-09-27 Palantir Technologies Inc. Data integrity checks
US9948465B2 (en) 2015-09-18 2018-04-17 Escher Group (Irl) Limited Digital data locker system providing enhanced security and protection for data storage and retrieval
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
CN105302606A (zh) * 2015-11-03 2016-02-03 用友网络科技股份有限公司 基于项目权限的补丁下载方法及系统
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
US20170255887A1 (en) * 2016-03-03 2017-09-07 Ricoh Company, Ltd. Workflow server with enhanced document release
US9753935B1 (en) 2016-08-02 2017-09-05 Palantir Technologies Inc. Time-series data storage and processing database system
US11106692B1 (en) 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
US10534856B2 (en) 2016-10-17 2020-01-14 International Business Machines Corporation Atom-based sensible synchronization for information indexing
US10133588B1 (en) 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10474554B2 (en) 2016-11-18 2019-11-12 Vmware, Inc. Immutable file storage
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10884875B2 (en) 2016-12-15 2021-01-05 Palantir Technologies Inc. Incremental backup of computer data files
US10223099B2 (en) 2016-12-21 2019-03-05 Palantir Technologies Inc. Systems and methods for peer-to-peer build sharing
US11074277B1 (en) 2017-05-01 2021-07-27 Palantir Technologies Inc. Secure resolution of canonical entities
CN108804468A (zh) * 2017-05-04 2018-11-13 孙易新 思维导图信息的分享系统
US10896097B1 (en) 2017-05-25 2021-01-19 Palantir Technologies Inc. Approaches for backup and restoration of integrated databases
GB201708818D0 (en) 2017-06-02 2017-07-19 Palantir Technologies Inc Systems and methods for retrieving and processing data
US11334552B2 (en) 2017-07-31 2022-05-17 Palantir Technologies Inc. Lightweight redundancy tool for performing transactions
US10417224B2 (en) 2017-08-14 2019-09-17 Palantir Technologies Inc. Time series database processing system
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3805958T (lt) 2017-08-28 2024-03-12 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, pasirenkant tunelinius įrenginius
US10216695B1 (en) 2017-09-21 2019-02-26 Palantir Technologies Inc. Database system for time series data storage, processing, and analysis
US10614069B2 (en) 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US10235533B1 (en) 2017-12-01 2019-03-19 Palantir Technologies Inc. Multi-user access controls in electronic simultaneously editable document editor
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11016986B2 (en) 2017-12-04 2021-05-25 Palantir Technologies Inc. Query-based time-series data display and processing system
US11061874B1 (en) 2017-12-14 2021-07-13 Palantir Technologies Inc. Systems and methods for resolving entity data across various data structures
US10838987B1 (en) 2017-12-20 2020-11-17 Palantir Technologies Inc. Adaptive and transparent entity screening
GB201807534D0 (en) 2018-05-09 2018-06-20 Palantir Technologies Inc Systems and methods for indexing and searching
US11061542B1 (en) 2018-06-01 2021-07-13 Palantir Technologies Inc. Systems and methods for determining and displaying optimal associations of data items
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US11140213B2 (en) * 2018-09-05 2021-10-05 Gary G. Stringham Systems and methods for distributing electronic documents
CN109492200A (zh) * 2018-10-26 2019-03-19 天津字节跳动科技有限公司 协同文档还原方法、装置、存储介质及电子设备
US10664319B1 (en) 2018-11-06 2020-05-26 Dropbox, Inc. Technologies for integrating cloud content items across platforms
LT3780557T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
US11170118B2 (en) * 2019-10-21 2021-11-09 Saudi Arabian Oil Company Network system and method for access management authentication and authorization
US11604928B2 (en) 2020-04-30 2023-03-14 International Business Machines Corporation Efficiently managing predictive changes for a conversational agent
US20230269239A1 (en) * 2022-02-23 2023-08-24 Microsoft Technology Licensing, Llc Secure collaboration with file encryption on download

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH022450A (ja) * 1987-12-02 1990-01-08 Xerox Corp 複数のワークステーションからなる共同システムの操作方法
JP2002032363A (ja) * 2000-07-18 2002-01-31 Hitachi Ltd 文書処理方法および装置並びにその処理プログラムを格納した記録媒体
JP2003224789A (ja) * 2002-01-29 2003-08-08 Ricoh Co Ltd 文書管理装置

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69028705T2 (de) 1989-04-28 1997-03-06 Softel Inc Verfahren und vorrichtung zur fernsteuerung und -überwachung der anwendung von rechnerprogrammen
US5586260A (en) 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
NL9301348A (nl) 1993-08-02 1995-03-01 Stefanus Alfonsus Brands Elektronisch betalingssysteem.
EP1265122A3 (en) * 1994-03-15 2006-01-18 Kabushiki Kaisha Toshiba Shared file editing system with file content secrecy, version management and asynchronous editing
US5757907A (en) 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
CA2212574C (en) 1995-02-13 2010-02-02 Electronic Publishing Resources, Inc. Systems and methods for secure transaction management and electronic rights protection
JPH08249317A (ja) * 1995-03-08 1996-09-27 Toshiba Corp 文書提供方法、文書提供装置、及び文書要求装置
US5951639A (en) 1996-02-14 1999-09-14 Powertv, Inc. Multicast downloading of software and data modules and their compatibility requirements
AU2230597A (en) 1996-02-28 1997-09-16 Aim Corporation Communication system for distributing such message as advertisement to user of terminal equipment
US6009543A (en) * 1996-03-01 1999-12-28 Massachusetts Institute Of Technology Secure software system and related techniques
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
CN1203425C (zh) * 1996-07-01 2005-05-25 富士通株式会社 资源利用和控制装置以及控制方法
US6006034A (en) * 1996-09-05 1999-12-21 Open Software Associates, Ltd. Systems and methods for automatic application version upgrading and maintenance
DE69736930T2 (de) 1996-09-25 2007-11-08 British Telecommunications P.L.C. Audiokonferenzsystem auf Netzwerkbasis
US6553490B1 (en) 1997-06-30 2003-04-22 Sun Microsystems, Inc. Computer system including local computer with capability to automatically update operating system or application program from network server
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6321242B1 (en) * 1998-02-06 2001-11-20 Sun Microsystems, Inc. Re-linking technology for a moving web site
EP0936805A1 (en) 1998-02-12 1999-08-18 Hewlett-Packard Company Document transfer systems
US6623529B1 (en) 1998-02-23 2003-09-23 David Lakritz Multilingual electronic document translation, management, and delivery system
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US20010044901A1 (en) * 1998-03-24 2001-11-22 Symantec Corporation Bubble-protected system for automatic decryption of file data on a per-use basis and automatic re-encryption
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6487301B1 (en) 1998-04-30 2002-11-26 Mediasec Technologies Llc Digital authentication with digital and analog documents
US20040117664A1 (en) 1998-06-04 2004-06-17 Z4 Technologies, Inc. Apparatus for establishing a connectivity platform for digital rights management
JP3836261B2 (ja) * 1998-08-10 2006-10-25 株式会社リコー ファイルシステム
US6038322A (en) 1998-10-20 2000-03-14 Cisco Technology, Inc. Group key distribution
CA2256936C (en) 1998-12-23 2002-04-02 Hamid Bacha System for electronic repository of data enforcing access control on data search and retrieval
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6795967B1 (en) * 1999-01-26 2004-09-21 Microsoft Corporation Changing user identities without closing applications
US6381602B1 (en) 1999-01-26 2002-04-30 Microsoft Corporation Enforcing access control on resources at a location other than the source location
US7062765B1 (en) 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US6289450B1 (en) 1999-05-28 2001-09-11 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
GB9913165D0 (en) 1999-06-08 1999-08-04 Secr Defence Access control in a web environment
US6988199B2 (en) 2000-07-07 2006-01-17 Message Secure Secure and reliable document delivery
TW431094B (en) 1999-07-16 2001-04-21 Via Tech Inc Memory access of Ethernet
US6327584B1 (en) * 1999-07-30 2001-12-04 Hewlett-Packard Company Apparatus and method for using version control to dynamically update files while the files are available for access
US6609198B1 (en) 1999-08-05 2003-08-19 Sun Microsystems, Inc. Log-on service providing credential level change without loss of session continuity
US6978367B1 (en) 1999-10-21 2005-12-20 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a client proxy
US6961849B1 (en) 1999-10-21 2005-11-01 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a group clerk
US6941459B1 (en) 1999-10-21 2005-09-06 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a key recovery agent
US6931532B1 (en) 1999-10-21 2005-08-16 International Business Machines Corporation Selective data encryption using style sheet processing
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
US7676674B2 (en) 1999-12-18 2010-03-09 George Bush Method for authenticating electronic documents
US6963971B1 (en) 1999-12-18 2005-11-08 George Bush Method for authenticating electronic documents
US6721747B2 (en) 2000-01-14 2004-04-13 Saba Software, Inc. Method and apparatus for an information server
US6907546B1 (en) 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
US6950935B1 (en) 2000-04-21 2005-09-27 Sun Microsystems, Inc. Pluggable authentication modules for telecommunications management network
US20010056541A1 (en) 2000-05-11 2001-12-27 Natsume Matsuzaki File management apparatus
AU2001266736A1 (en) 2000-06-06 2001-12-17 Ingeo Systems, Inc. Processing electronic documents with embedded digital signatures
KR100354488B1 (ko) 2000-06-16 2002-10-11 주식회사 이플래닛 물리적 상품을 이용하여 디지털 상품의 복제/배포를방지하는 장치 및 방법
KR20010113235A (ko) 2000-06-17 2001-12-28 윤종용 기록가능한 광디스크를 이용한 데이터 베이스 갱신 방법및 이에 적합한 장치들
US6986039B1 (en) 2000-07-11 2006-01-10 International Business Machines Corporation Technique for synchronizing security credentials using a trusted authenticating domain
AU7593601A (en) 2000-07-14 2002-01-30 Atabok Inc Controlling and managing digital assets
US7197638B1 (en) * 2000-08-21 2007-03-27 Symantec Corporation Unified permissions control for remotely and locally stored files whose informational content may be protected by smart-locking and/or bubble-protection
US7206941B2 (en) 2000-08-28 2007-04-17 Contentguard Holdings, Inc. Method and apparatus for validating security components through a request for content
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
JP2002080447A (ja) 2000-08-31 2002-03-19 Tokushima Prefecture Chiiki Sangyo Gijutsu Kaihatsu Kenkyu Kiko 第四級アンモニウム塩化合物、その製造法及び応用
US20020138617A1 (en) * 2000-09-06 2002-09-26 Jacob Christfort Providing content from multiple services
US20020083438A1 (en) 2000-10-26 2002-06-27 So Nicol Chung Pang System for securely delivering encrypted content on demand with access contrl
US20020083183A1 (en) 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US6873976B2 (en) 2000-12-01 2005-03-29 900Pennies Incorporated Secured purchasing system
US6856976B2 (en) 2000-12-01 2005-02-15 900Pennies Incorporated Secured commercial transaction
US6978376B2 (en) * 2000-12-15 2005-12-20 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
US6944815B2 (en) * 2000-12-15 2005-09-13 International Business Machines Corporation Technique for content off-loading in a document processing system using stub documents
US20020124109A1 (en) 2000-12-26 2002-09-05 Appareon System, method and article of manufacture for multilingual global editing in a supply chain system
US20020087876A1 (en) * 2000-12-28 2002-07-04 Larose Gordon Edward Adaptive software installation process supporting multiple layers of security-related attributes
US7076067B2 (en) * 2001-02-21 2006-07-11 Rpk New Zealand Limited Encrypted media key management
JP2002259606A (ja) 2001-02-28 2002-09-13 Internatl Business Mach Corp <Ibm> プログラム使用許諾期間の更新方法、プログラムの使用許諾方法、情報処理システムおよびプログラム
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US7140012B2 (en) 2001-03-09 2006-11-21 Bea Systems, Inc. Method and apparatus for multi-version updates of application services
US7058663B2 (en) 2001-03-13 2006-06-06 Koninklijke Philips Electronics, N.V. Automatic data update
US6981138B2 (en) 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US7117493B2 (en) 2001-03-28 2006-10-03 Ricoh Company, Ltd. Image formation system, software acquisition method, and computer product
US7426639B2 (en) 2001-03-29 2008-09-16 Sony Corporation Information processing apparatus and method for managing grouped devices in an encrypted environment
US20020178353A1 (en) 2001-04-11 2002-11-28 Graham Randall James Secure messaging using self-decrypting documents
US7461405B2 (en) * 2001-04-26 2008-12-02 Autodesk, Inc. Mixed-media data encoding
US6941456B2 (en) 2001-05-02 2005-09-06 Sun Microsystems, Inc. Method, system, and program for encrypting files in a computer system
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
US20030046017A1 (en) 2001-06-06 2003-03-06 Claudius Fischer Deployment console for use with a computer system deploying software to remotely located devices
US7395245B2 (en) * 2001-06-07 2008-07-01 Matsushita Electric Industrial Co., Ltd. Content usage management system and server used in the system
US6889233B2 (en) * 2001-06-18 2005-05-03 Microsoft Corporation Selective file purging for delete or rename
EP1271310B1 (de) 2001-06-26 2003-02-05 Aladdin Knowledge Systems GmbH&amp; Co. KG Verfahren zum Erweitern einer mittels eines Installationsprogramms zu installierenden Anwendung um eine Funktion und Computerprogrammprodukt
US6968396B1 (en) * 2001-07-26 2005-11-22 Openwave Systems Inc. Reloading of hypermedia pages by sending only changes
US7076736B2 (en) 2001-07-31 2006-07-11 Thebrain Technologies Corp. Method and apparatus for sharing many thought databases among many clients
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
GB2379041B (en) * 2001-08-22 2005-03-23 Hewlett Packard Co A method of performing a data processing operation
JP3970137B2 (ja) * 2001-09-14 2007-09-05 キヤノン株式会社 文書処理方法及びその装置
US20030065739A1 (en) * 2001-10-01 2003-04-03 J. Mitchell Shnier Methods for independently generating a reference to desired information available from a remote source
US7359517B1 (en) 2001-10-09 2008-04-15 Adobe Systems Incorporated Nestable skeleton decryption keys for digital rights management
US7200747B2 (en) 2001-10-31 2007-04-03 Hewlett-Packard Development Company, L.P. System for ensuring data privacy and user differentiation in a distributed file system
US7171557B2 (en) 2001-10-31 2007-01-30 Hewlett-Packard Development Company, L.P. System for optimized key management with file groups
US6895289B2 (en) 2001-11-16 2005-05-17 Hitachi, Ltd. Document management system and method
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7631184B2 (en) 2002-05-14 2009-12-08 Nicholas Ryan System and method for imposing security on copies of secured items
US6889210B1 (en) 2001-12-12 2005-05-03 Pss Systems, Inc. Method and system for managing security tiers
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US7380120B1 (en) 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7783765B2 (en) 2001-12-12 2010-08-24 Hildebrand Hal S System and method for providing distributed access control to secured documents
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US20030110169A1 (en) 2001-12-12 2003-06-12 Secretseal Inc. System and method for providing manageability to security information for secured items
US7478418B2 (en) 2001-12-12 2009-01-13 Guardian Data Storage, Llc Guaranteed delivery of changes to security policies in a distributed system
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
JP4108973B2 (ja) 2001-12-26 2008-06-25 株式会社日立製作所 バックアップシステム
US6592332B1 (en) 2002-01-14 2003-07-15 Joe Kent Stoker Pump-off control interrupter
US7237189B2 (en) 2002-02-11 2007-06-26 Sap Aktiengesellschaft Offline e-learning system
US20030154071A1 (en) 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
US20030191917A1 (en) 2002-04-04 2003-10-09 International Business Machines Corporation Apparatus and method of maintaining reliable offline mirror copies in virtual volume groups
US6931597B1 (en) 2002-04-17 2005-08-16 Pss Systems, Inc. Indications of secured digital assets
US7748045B2 (en) 2004-03-30 2010-06-29 Michael Frederick Kenrich Method and system for providing cryptographic document retention with off-line access
US20050071657A1 (en) 2003-09-30 2005-03-31 Pss Systems, Inc. Method and system for securing digital assets using time-based security criteria
US7209559B2 (en) 2002-04-29 2007-04-24 The Boeing Company Method and apparatus for securely distributing large digital video/data files with optimum security
US20030208686A1 (en) 2002-05-06 2003-11-06 Thummalapally Damodar R. Method of data protection
US7219230B2 (en) 2002-05-08 2007-05-15 Hewlett-Packard Development Company, L.P. Optimizing costs associated with managing encrypted data
US20030217264A1 (en) 2002-05-14 2003-11-20 Signitas Corporation System and method for providing a secure environment during the use of electronic documents and data
US7814025B2 (en) 2002-05-15 2010-10-12 Navio Systems, Inc. Methods and apparatus for title protocol, authentication, and sharing
US7058630B2 (en) 2002-08-12 2006-06-06 International Business Machines Corporation System and method for dynamically controlling access to a database
WO2004021114A2 (en) 2002-08-27 2004-03-11 Td Security, Inc., Dba Trust Digital, Llc Enterprise-wide security system for computer devices
US20040049571A1 (en) 2002-09-06 2004-03-11 Johnson Bruce L. Tracking document usage
US20040059590A1 (en) 2002-09-13 2004-03-25 Dwayne Mercredi Credential promotion
AU2003279950A1 (en) 2002-10-10 2004-05-04 Rocksteady Networks, Inc. System and method for providing access control
US7143288B2 (en) 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
US7085755B2 (en) 2002-11-07 2006-08-01 Thomson Global Resources Ag Electronic document repository management and access system
US7367060B2 (en) 2002-12-11 2008-04-29 Ravi Someshwar Methods and apparatus for secure document printing
US7181016B2 (en) 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
US7788177B2 (en) 2003-02-19 2010-08-31 Bible Jr Robert Encrypted e-commerce product
US7233981B2 (en) 2003-02-27 2007-06-19 Nortel Networks Limited System and method for multi-site load-balancing of encrypted traffic
US7320076B2 (en) 2003-03-05 2008-01-15 Sun Microsystems, Inc. Method and apparatus for a transaction-based secure storage file system
US7370344B2 (en) 2003-04-14 2008-05-06 Sas Institute Inc. Computer-implemented data access security system and method
US7353397B1 (en) 2003-04-30 2008-04-01 Adobe Systems Incorporated Repurposing digitally signed information
US20040249765A1 (en) 2003-06-06 2004-12-09 Neopost Inc. Use of a kiosk to provide verifiable identification using cryptographic identifiers
US8122100B2 (en) 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
US7515717B2 (en) 2003-07-31 2009-04-07 International Business Machines Corporation Security containers for document components
US7302570B2 (en) 2003-08-19 2007-11-27 International Business Machines Corporation Apparatus, system, and method for authorized remote access to a target system
US7434048B1 (en) 2003-09-09 2008-10-07 Adobe Systems Incorporated Controlling access to electronic documents
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US7441011B2 (en) 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US7280956B2 (en) * 2003-10-24 2007-10-09 Microsoft Corporation System, method, and computer program product for file encryption, decryption and transfer
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8627489B2 (en) * 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US7930757B2 (en) 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
JP2006020253A (ja) 2004-07-05 2006-01-19 Ricoh Co Ltd 情報管理システム、情報管理方法、記録媒体及びプログラム
JP4504794B2 (ja) 2004-12-03 2010-07-14 日本山村硝子株式会社 キャップ、内容物充填容器および内容物充填容器の洗浄方法
US7739746B2 (en) 2005-10-04 2010-06-15 Adobe Systems Incorporated Document control
US8554749B2 (en) 2006-10-23 2013-10-08 Adobe Systems Incorporated Data file access control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH022450A (ja) * 1987-12-02 1990-01-08 Xerox Corp 複数のワークステーションからなる共同システムの操作方法
JP2002032363A (ja) * 2000-07-18 2002-01-31 Hitachi Ltd 文書処理方法および装置並びにその処理プログラムを格納した記録媒体
JP2003224789A (ja) * 2002-01-29 2003-08-08 Ricoh Co Ltd 文書管理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
JP4777459B2 (ja) * 2006-05-26 2011-09-21 オートデスク,インコーポレイテッド コンテンツ管理システム用のセキュリティアーキテクチャ
JP2008287350A (ja) * 2007-05-15 2008-11-27 Fuji Xerox Co Ltd 文書管理システム及び文書管理方法、並びにコンピュータ・プログラム
WO2013088676A1 (ja) * 2011-12-15 2013-06-20 株式会社ソニー・コンピュータエンタテインメント 情報処理システムおよびコンテンツダウンロード方法
US9729670B2 (en) 2011-12-15 2017-08-08 Sony Corporation Information processing system and content download method
JP2017167614A (ja) * 2016-03-14 2017-09-21 富士通株式会社 復号プログラム、暗号化プログラム、復号装置、暗号化装置、復号方法、および暗号化方法

Also Published As

Publication number Publication date
US20050097441A1 (en) 2005-05-05
US8627489B2 (en) 2014-01-07
WO2005045709A2 (en) 2005-05-19
EP1680727B1 (en) 2010-05-19
DE602004027283D1 (de) 2010-07-01
EP1680727A2 (en) 2006-07-19
WO2005045709A8 (en) 2005-07-21
ATE468565T1 (de) 2010-06-15

Similar Documents

Publication Publication Date Title
JP4853939B2 (ja) 文書制御システムにおけるオフラインアクセス
US8925108B2 (en) Document access auditing
US8627489B2 (en) Distributed document version control
US8627077B2 (en) Transparent authentication process integration
US8832047B2 (en) Distributed document version control
US11475137B2 (en) Distributed data storage by means of authorisation token
US20130212707A1 (en) Document control system
US10911457B2 (en) Immediate policy effectiveness in eventually consistent systems
JP4489382B2 (ja) デジタル権利管理サービスを提供するシステムおよび方法
JP4750352B2 (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
US7904732B2 (en) Encrypting and decrypting database records
US7320076B2 (en) Method and apparatus for a transaction-based secure storage file system
CA2256934C (en) System for electronic repository of data enforcing access control on data retrieval
JP4627624B2 (ja) 組織などの限定された領域内におけるデジタル著作権管理(drm)システムによるデジタルコンテンツのパブリッシュ
JP4418648B2 (ja) デジタルコンテンツとサービスの使用ライセンスを発行するためのシステムおよびその方法
JPH1185622A (ja) コア・データ機密事項の保護記憶
JP2000227870A (ja) 電子デ―タ・ファイルを検索するシステムおよびその維持方法
JP2003228519A (ja) デジタル資産にパーベイシブ・セキュリティを提供する方法及びアーキテクチャ
JP2006523995A (ja) 認可証明書におけるユーザ・アイデンティティのプライバシ
WO2023069444A1 (en) Personal data protection
Piessens Developing Secure Software Applications DRAFT

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090317

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091007

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110208