(57)【要約】      （修正有）【課題】ドキュメント・コラボレーション及び管理のための方法及び装置を提供する。【解決手段】ドキュメント管理及びコラボレーション・システム、ドキュメント・コラボレーション及び管理サービスにより維持されたドキュメント・ディレクトリにドキュメントを組み込む。このドキュメントに基づきポータブル表記アンダーレイは、１つ以上の非同期ワークフローを使用して生成する。ポータブル表記アンダーレイは、ユーザ要求に応じて提供する。【選択図】図１
2019012529.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上のコンピューティング・デバイスを含むシステムであって、
ネットワーク経由で、ドキュメントを受信し、
前記ドキュメントの受信結果として、前記ドキュメント用に、前記ドキュメントの共通フォーマットであるアンダーレイ、異なる表示特性を備える前記コンピューティング・デバイスにおいて安定した表示を可能にする座標マップ及び前記ドキュメントへ１つ以上の注釈を格納するために使用を可能にするオーバーレイを生成させ、
前記ドキュメントへのアクセスの要求を受信し、前記要求がユーザにより開始され、
前記ドキュメントへのアクセスの前記要求に応じて、前記アンダーレイ、前記座標マップ及びオーバーレイをユーザのコンピューティング・デバイスへ提供させる、
ように設定された少なくとも１つのアプリケーション・サービスを実装するように集合的に構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、「ＤＯＣＵＭＥＮＴ  ＭＡＮＡＧＥＭＥＮＴ  ＡＮＤ  ＣＯＬＬＡＢＯＲＡＴＩＯＮ  ＳＹＳＴＥＭ」と題する、２０１３年１１月１１日に出願のＵ．Ｓ．Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ Ｎｏ．１４，０７７，２０４の全面公開をすべての目的のために参照文献として本願明細書に援用する。
【背景技術】
【０００２】
リモート・ドキュメント・ストレージのような、リモート・コンピューティング・サービスの使用は、近年著しく増加している。組織は、たとえば、コンピューティング・リソースの内部ネットワーク及び他で管理されたコンピューティング・リソースの両方を使用してその動作を支援することができる。組織のコンピュータは、たとえば、他の組織のコンピュータと通信することができ、別の組織のサービスを使用しながらドキュメントまたは他のデータにアクセスする、及び／またはこれを提供する。多くの場合、組織は他の組織により管理されたハードウェアを使用してリモート・ネットワークを構成し操作することで、設備コストを削減し他の利点を達成する。コンピューティング・リソースのこのような構成で、彼らが保持したリソース及びデータへのアクセスを確保することは、特に複数の異なるコンピューティング・システムに与えられた能力が試されることが可能である。たとえば、組織のコンピュータは、パーソナル・コンピュータ、タブレット、スマートフォン、ラップトップ及び他のデバイスを含むことができる。
【０００３】
ユーザがドキュメント上で共有し連携することが可能であることを確保することは、異なるデバイスのさまざまなハードウェア及びソフトウェア・コンポーネントに与えられた能力が試される。さらに、ユーザ要求が適時に処理され、バックエンド・システムがシステム全体の整合性を確保する方式で更新されることを確保することは能力が試される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第２００５／０４４４９４号
【発明の概要】
【課題を解決するための手段】
【０００５】
ドキュメント・コラボレーション及び管理のための方法及び装置を開示する。この方法及び装置において、ドキュメント・コラボレーション及び管理サービスにより維持されたドキュメント・ディレクトリにドキュメントを組み込むことができる。このドキュメントに基づきポータブル表記アンダーレイは、１つ以上の非同期ワークフローを使用して生成されることができ、ポータブル表記アンダーレイは、ユーザ要求に応じて提供されることができる。
【図面の簡単な説明】
【０００６】
本開示に従うさまざまな実施形態を、図面を参照して説明する。
【０００７】
【図１】図１は、少なくとも１つの実施形態に従うドキュメント共有及びコラボレーションの実施例を説明する。
【図２】図２は、少なくとも１つの実施形態に従うコンピューティング・リソース・サービス・プロバイダへ接続されたコンピューティング・デバイスの実施例を説明する。
【図３】図３は、少なくとも１つの実施形態に従うフロントエンド・システムならびにドキュメント管理及びコラボレーション・システムの機能エンティティを説明する。
【図４】図４は、少なくとも１つの実施形態に従うドキュメント管理及びコラボレーション・システムを含むコンピューティング・リソース・サービス・プロバイダと通信するユーザ・デバイスを説明する。
【図５】図５は、少なくとも１つの実施形態に従うディレクトリ構造の実施例を説明する。
【図６】図６は、少なくとも１つの実施形態に従うドキュメントをアップロードす方法の実施例を説明する。
【図７】図７は、少なくとも１つの実施形態に従うドキュメント・アップロード用の非同期ワークフローを実行する方法の実施例を説明する。
【図８】図８は、少なくとも１つの実施形態に従うドキュメント取得のための方法の実施例を説明する。
【図９】図９は、さまざまな実施形態を実装することが可能である環境を説明する。
【発明を実施するための形態】
【０００８】
以下の説明において、種々の実施形態を説明する。説明の目的ために、具体的な構成及び詳細は、実施形態の完全な理解を提供するために記載される。しかしながら、実施形態が具体的な詳細なしで実施されることができることは当業者に、また明らかであろう。さらに、周知の特徴は、記載されている実施形態を不明瞭にしないために省略される、または簡略化されることができる。
【０００９】
本明細書に記載され提案された技術は、ドキュメント管理及びコラボレーション・システムを利用してユーザがドキュメントを共有しドキュメントで連携することを可能にすることを有する。ユーザは、ドキュメント管理及びコラボレーション・システムにより管理されたドキュメント・ディレクトリを維持する、ユーザの一群の部分または組織の部分であってもよい。１人のユーザは、ディレクトリまたはディレクトリのいずれかに関連したフォルダまたはサブフォルダへ権限特権を有することができる。この権限特権は、ユーザがドキュメントを閲覧する、これを変更するか、またはこれに注釈を付けることを可能にすることができる。権限特権は、ユーザがドキュメントについてコメントするか、またはこれに関するフィードバックを与え、ドキュメントまたはフォルダを作成するか、またはこれらを削除することをさらに可能にすることができる。さまざまなレベルまたは権限または共有特権があることができ、ユーザの特権が変わる可能性がある。
【００１０】
ディレクトリまたはドキュメント上で１人のユーザにより実行されたアクションは、第二ユーザまたは共同研究者により把握され閲覧されることができる。本明細書に記載されるように、各ユーザ・デバイスは、ディレクトリまたはドキュメントへアクションを起こすか、または変更を加えるために、ドキュメント管理及びコラボレーション・システムと通信することが可能であることができる。ドキュメント管理及びコラボレーション・システムは、順に第一ユーザにより行われる変更を第二ユーザへ伝えさせ、第二ユーザが第一ユーザと一致しているビューを有することができる。ドキュメント管理及びコラボレーション・システムならびにユーザ間のやりとりがＡＰＩ構成呼び出しを使用して実行されることができることに留意すべきである。
【００１１】
ドキュメント管理及びコラボレーション・システムは、ドキュメント共有及びコラボレーションを有効にするさまざまなサービスを利用することができる。ドキュメント管理及びコラボレーション・システムは、ドキュメント・バージョン、ストレージ位置もしくはサイズ、または他の種類のメタデータの中のドキュメントもしくはフォルダにアクセスするためのグループ権限のユーザのような、ドキュメント・メタデータを格納するためにさまざまなデータベースを利用することができる。さらにまた、ドキュメント管理及びコラボレーション・システムは、そのネイティブ・ファイル・フォーマット中の最初にアップロードされたドキュメント、または他の使用の中で、ユーザ・デバイス上で閲覧するためにレンダリングされることができるポータブル表記フォーマットのアンダーレイのような、さまざまな形態にドキュメントを格納するためにストレージ・サービスを利用することができる。ポータブル表記フォーマットは、たとえば、高価なまたは計算集約型標準生産性スイートを必要とせずに、ユーザ・デバイスが処理しレンダリングすることを可能にする共通フォーマット（また本明細書でユニバーサル・フォーマットと言う）であってもよい。ドキュメント管理及びコラボレーション・システムと対話するユーザ・デバイスは、共通フォーマットを読み出すか、またはこれを処理し、フォーマットを有するアンダーレイをレンダリングさせることが可能であることができる。ドキュメント管理及びコラボレーション・システムは、ワークフローの実行を行うか、またはこれを引き起こすことが可能であるワークフロー・サービスをさらに利用することができる。本明細書に記載されるように、ワークフローは、１セットまたは１群の動作またはタスクであってもよく、これらの実行が統合されることができそれらの依存関係が管理されることができる。さらに、ワークフローは、耐障害性があり監査されることができる方式で処理ステップを実行し処理ステップを構成するために使用されることができる。
【００１２】
ユーザ・エクスペリエンスを向上させユーザ知覚遅延を最小限にするために、ドキュメント管理及びコラボレーション・システムは、処理要求に同期・非同期間ハンドオフを利用することができる。要求の受信時に、ドキュメント管理及びコラボレーション・システムは、同期的にいくつかの動作の実行を引き起こすことができ、非同期的に残りの動作の実行をスケジュールすることができる（たとえば、非同期ワークフローを使用する）。したがって、最小遅延量のみは、同期動作の実行が原因でユーザにより体験される可能性があるが、計算集約型動作は非同期ワークフローを使用してアンロードされ実行される可能性がある。
【００１３】
図１は、少なくとも１つの実施形態に従うドキュメント共有及びコラボレーションの実施例を説明する。第一ユーザ１０２及び第二ユーザ１０４は、ドキュメント管理及びコラボレーション・システム１０６へ接続される。ドキュメント管理及びコラボレーション・システム１０６は、ユーザがドキュメントを共有しドキュメント上で連携することを可能にする。さらに、ドキュメント管理及びコラボレーション・システム１０６は、２人のユーザが同期されることを可能にし、第一ユーザ１０２により提供されるテキスト、論評、注釈または強調表示を第二ユーザが閲覧することができる。ユーザ間の同期は、実時間もしくは半連続的、周期的に実行されることができ、またはイベント駆動型のもしくはイベント・トリガ型であることができるので、イベントは、コラボレーション下のドキュメントを格納するような、任意の種類のユーザ・コマンドであってもよい。本明細書に記載されるように、用語“ユーザ”は、通信機能及び計算能力を装備される人間が操作するコンピューティング・デバイスと言うことができる。
【００１４】
用語“ドキュメント”は、コンピューティング・デバイス上でレンダリングされることが可能である、オーディオ・ビジュアル・メディアのような、任意の種類の媒体であってもよい。ドキュメントは、生産性プログラムまたはスイートを使用して、生産されるか、または編集されるか、または閲覧されることが可能であるコンピュータ・ファイルであってもよい。したがって、ドキュメントは、特に、編集可能か、または非編集可能なテキスト、画像、図面及びウェブサイトであってもよい。ユーザが連携しドキュメントを共有することが可能であることに加えて、ドキュメント管理及びコラボレーション・システムは、ドキュメントを管理するファイル・システムまたは組織構造をユーザに提供することができる。組織構造は、ドキュメントのネストされたフォルダ及びサブフォルダを有するディレクトリを含むことができ、ユーザへアクセス可能であることができ、ドキュメントへアクセスする方法としてユーザに利用されることができる。
【００１５】
図２は、少なくとも１つの実施形態に従うコンピューティング・リソース・サービス・プロバイダへ接続されたコンピューティング・デバイスの実施例を説明する。コンピューティング・デバイス２０２は、コンピューティング・リソース・サービス・プロバイダ２１０またはそのエンティティと通信することが可能である任意のデバイスであることができる。またコンピューティング・デバイス２０２は、ローカルまたはリモート（たとえば、ネットワーク・ベースの）計算及びストレージ能力を装備することができる。計算能力は、中央処理装置（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号処理装置等のような、プロセッサにより提供されるか、またはこれにより有効にされることができる。ＣＰＵの実施例は、ｘ８６アーキテクチャ（たとえば、デスクトップ及びラップトップ・コンピューティング・デバイスで使用されるような）または縮小インストラクション・セット・コンピューティング（ＲＩＳＣ）・アーキテクチャ（たとえば、スマートフォン及びタブレット・コンピューティング・デバイスで使用されるような）を採用するＣＰＵを含む。コンピューティング・デバイス２０２は、通信及びネットワーク・ハードウェアを装備することができ、任意の通信プロトコルを使用して通信することが可能であることができる。さらに、コンピューティング・デバイス２０２は、ディスプレイ、タッチ・スクリーン・ベースまたはキーボード・ベースの入力デバイスまたはスピーカを含むことができる入力／出力デバイスを装備することができる。加えて、コンピューティング・デバイスは、スタティックまたはダイナミック・メモリのような、任意の種類のメモリ及び電源または電源アダプタを含むことができる。これらのハードウェア能力の他に、コンピューティング・デバイス２０２は、オペレーティング・システム及び／または他のプログラムを起動するか、またはこれを実行するように構成されることができ、コンピューティング・デバイス２０２の関連したメモリは、１つ以上のプロセッサで実行するときに、１つ以上の機能を実行させるか、またはオペレーティング・システム及び／または他のプログラムを起動させる、実行可能なインストラクションを格納することができる。２つのデバイスを図２で示すが、任意の数のデバイスをさまざまな実施形態において検討してもよい。さらに、コンピューティング・デバイス２０２は、コンピューティング・リソース・サービス・プロバイダ２１０またはネットワーク（図示せず）経由のコンピューティング・リソース・サービス・プロバイダ２１０の任意のエンティティと通信することができる。このネットワークは、パブリックまたはプライベートであってもよいので、ネットワークの実施例は、インターネット及びインターネット・サービス・プロバイダ（ＩＳＰ）・ネットワークを有する。
【００１６】
コンピューティング・デバイス２０２は、コンピューティング・リソース・サービス・プロバイダ２１０またはそのエンティティ及び機能のユーザまたは顧客と集合的にまたは個別に関連することができる。顧客は、種々の地理的位置に配置されることができる、その雇用者へ情報を維持し配信するためにコンピューティング・リソース・サービス・プロバイダ２１０により提供されたサービスのうちの１つ以上を利用することができる組織であってもよい。加えて、顧客は、遠隔に配置されたワーキング・グループへコンテンツを配信するためにコンピューティング・リソース・サービス・プロバイダ２１０のサービスを利用する個人であってもよい。
【００１７】
コンピューティング・リソース・サービス・プロバイダ２１０は、フロントエンド・システム２０４及びファイル管理及びコラボレーション・システム２０６と同様に図２で示されるような複数のサービス及びシステムを含む。これらは、コンテンツ配信エッジ・ネットワーク２１２、オブジェクト・レベル・データ・ストレージ・サービス２１４、仮想コンピューティング・サービス２１６、タスク管理及びワークフロー・サービス２１８、管理型ディレクトリ・サービス２２２、カスタム検索サービス２２４、スケーラブル・データべース・サービス２２６ならびに通知サービス２２８を含む。さまざまな実施形態において、コンピューティング・リソース・サービス・プロバイダ２１０が図２を参照して説明されたものより少ないサービス及びシステムを含むことができるか、または図２を参照して説明されたものへ追加のもしくは代替のサービスもしくはシステムを含むことができる。さらに、代替の実施形態において、システム及びサービスは、コンピューティング・リソース・サービス・プロバイダ２１０のコンテキスト外で利用されることができる。たとえば、サービス及びシステムは、図２を参照して説明されたもの以外のシステム及びサービスへスタンドアローンであるか、またはこれらと併せて使用されることができる。
【００１８】
フロントエンド・システム２０４は、ファイル管理及びコラボレーション・システム２０６へのゲートウェイであることができ、ユーザまたは顧客及び彼らのコンピューティング・デバイス２０２へのプライベート及びパブリック・サービスを提供することができる。フロントエンド・システム２０４へのアクセスは、認証またはユーザ認証を必要とする可能性がある。加えて、デバイスまたはユーザ特権レベルは、フロントエンド・システム２０４へのアクセス、ならびにフロントエンド・システム２０４及びコンピューティング・デバイス２０２間の任意のデータ交換を管理することができる。フロントエンド・システム２０４へのアクセスは、コンピューティング・デバイス２０２と関連した特権レベルまたはコンピューティング・デバイス２０２へ与えられた特権レベルもしくは信用情報またはコンピューティング・デバイス２０２のユーザにより、たとえば、グループもしくは組織管理者により管理されることができる。
【００１９】
フロントエンド・システム２０４は、ファイル管理及びコラボレーション・システム２０６のリソースへのアクセスを付与する前に、顧客、ユーザまたはデバイスの認証を実行することができる。この認証は、とりわけ、ユーザ名及びパスワード情報、またはアクセス・トークンのような、信用情報に基づくことができる。フロントエンド・システム２０４は、顧客アクセスを許可するか、またはこれを有効にするサービス及びインタフェースを提供することができる。たとえば、フロントエンド・システム２０４は、顧客へコンピューティング・リソース・サービス・プロバイダ２１０のサービスに関する情報を提供するウェブ・ベース・プラットフォームまたはコンソール・ベース・プラットフォームを有効にすることができる。さらに、フロントエンド・システム２０４は、顧客がコンピューティング・リソース・サービス・プロバイダ２１０でアプリケーションまたはタスクを実行することを可能にし、顧客がアプリケーションまたはタスクの実行を追跡・管理することを可能にし、顧客が実行の結果を受信し結果をユーザ・デバイスへ送信することが可能である。本明細書にさらに記載されるように、フロントエンド・システム２０４は、顧客またはその関連デバイス２０２がコンピューティング・リソース・サービス・プロバイダ２１０により提供された複数のサービスを利用することができる、ゲートウェイであってもよい。
【００２０】
ドキュメント管理及びコラボレーション・システム２０６は、分散システム中の１人以上のユーザ間のコラボレーション用のドキュメントの実行及び処理を可能にし管理する。ドキュメント管理及びコラボレーション・システム２０６は、たとえば、コンピューティング・リソース・サービス・プロバイダ２１０へドキュメントのアップロード、ならびにドキュメントと関連したメタデータの保持及び変更を可能にすることができる。ドキュメント管理及びコラボレーション・システム２０６は、ドキュメントまたはそれらのメタデータと関連した検索機能と同様にドキュメント上でユーザ間のコラボレーションをさらに可能にすることができる。
【００２１】
用語“ドキュメント”は、コンピューティング・リソース・サービス・プロバイダ２０６のユーザにより生成されたか、または連携されたオブジェクトを記載するために本明細書で使用されるが、用語“ドキュメント”は、オーディオ・ビジュアル・メディアのような、媒体に限定されない。ドキュメントは、生産性プログラムまたはスイートを使用して生成されるか、または編集されるか、または表示されることが可能であるコンピュータ・ファイルであってもよい。したがって、ドキュメントは、特に、編集可能なまたは非編集可能なテキスト、画像、図面及びウェブサイトであってもよい。
【００２２】
コンピューティング・リソース・サービス・プロバイダ２１０のコンテンツ配信エッジ・ネットワーク２１２は、複数のユーザへ、ウェブ・コンテンツのような、コンテンツを配信するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。コンテンツ配信エッジ・ネットワーク２１２は、たとえば、ユーザ・データ・スループットを最適化し遅延を最小化するように戦略的に配置される世界中の位置に分布する、複数のエッジ位置を有することができる。コンテンツ配信エッジ・ネットワーク２１２は、コンテンツへの要求を受信することができ、ユーザへ要求されたコンテンツを配信することができる。コンテンツ配信エッジ・ネットワーク２１２は、１部またはすべてのコンテンツを格納するストレージ・サービスにインタフェースで接続することができ、このコンテンツを取得させ要求する当事者に提供させることができる。コンテンツ配信エッジ・ネットワーク２１２は、フロントエンド・システム２０４のユーザがアクセス可能なウェブサイトまたはウェブ・アプリケーションを有効にするために利用されることができる。
【００２３】
オブジェクト・レベル・データ・ストレージ・サービス２１４は、データを格納する、及び／またはこれにアクセスする要求を同期して処理するように構成されたコンピューティング・リソースの集合物であってもよい。オブジェクト・レベル・データ・ストレージ・サービス２１４は、オブジェクト・レベル・データ・ストレージ・サービス２１４が迅速にデータを検索し取得することを可能にするコンピューティング・リソース（たとえば、データベース）を使用して動作することができ、データへの要求に応じてそのデータを提供することを可能にする。たとえば、オブジェクト・レベル・データ・ストレージ・サービス２１４は、データ・オブジェクトへの要求を取得するときに、データ・オブジェクトを要求に応じて提供することが可能である（またはデータ・オブジェクトのストリーミングを開始することが可能である）ような方式で格納されたデータを維持することができる。述べたように、オブジェクト・レベル・データ・ストレージ・サービス２１４中に格納されたデータをデータ・オブジェクトに編成することができる。データ・オブジェクトは、おそらくサイズ上の特定の制約を除き、任意のサイズを有することができる。このようにして、オブジェクト・レベル・データ・ストレージ・サービス２１４は、さまざまなサイズの複数のデータ・オブジェクトを格納することができる。本明細書に記載されるように、オブジェクト・レベル・データ・ストレージ・サービス２１４は、任意の種類のドキュメント（たとえば、ドキュメント・ソース・ファイル）、アンダーレイ、プレビュー、サムネイル、抽出されたドキュメント・テキスト、注釈インデックスまたは真理値表を格納することができる。
【００２４】
仮想コンピューティング・サービス２１６は、コンピューティング・リソース・サービス・プロバイダ２１０のエンティティ（ドキュメント管理及びコラボレーション・システム２０６のような）を代表して、または顧客を代表して仮想マシン・インスタンスをインスタンス化するように構成されたコンピューティング・リソースの集合物であってもよい。当事者は、仮想コンピューティング・サービス２１６と（適切に設定・認証されたＡＰＩ呼び出しを介して）対話することができ、仮想コンピューティング・サービス２１６により開設され動作した物理コンピューティング・デバイス上でインスタンス化される仮想コンピュータ・システムをプロビジョニングし動作させる。仮想コンピュータ・システムは、ウェブサイトを支援するサーバとして動作するか、ビジネス・アプリケーションを動作させるか、または一般に演算能力として機能するような、さまざまな目的のために使用されることができる。さらに、仮想コンピュータ・システムは、データベース・アプリケーション、電子商取引アプリケーション、ビジネス・アプリケーション及び／または他のアプリケーションを支援するために使用されることができる。仮想コンピューティング・サービス２１６を図２で示すが、仮想化またはインスタンス化を使用しない代わりに、専用または共有のコンピュータ／サーバ及び／または他の物理的なデバイス上のコンピューティング・リソースをセットアップする、コンピュータ・システムまたはコンピュータ・システム・サービスのような、任意の他のコンピュータ・システムまたはコンピュータ・システム・サービスを利用することができる。
【００２５】
タスク管理及びワークフロー・サービス２１８は、複数のコンピューティング環境及びプラットフォーム全体でコンピューティング・タスクを実行することを可能にする、タスク・コーディネート及び管理サービスを実行するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。タスク管理及びワークフロー・サービス２１８は、ワークフロー実行の進捗状況を追跡しタスクのディスパッチ及び保持を実行する。さらに、タスク管理及びワークフロー・サービス２１８は、タスクを実行するために使用されたホストまたは物理もしくは仮想コンピューティング・マシンの割り当てを制御することができる。ユーザは、実行用のワークフローを定義することができるので、ワークフローは１つ以上のタスクを含むことができる。ワークフローは、タスク管理及びワークフロー・サービス２１８へ機能呼び出しを設定されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）を使用して定義されることができる。さらに、ユーザは、ワークフローの実行を再起動または終了するために、ワークフロー、条件付きフロー及びタイムアウト期間のためのタスク順序を指定することができる。加えて、ワークフローの実行ループを定義することができる。本明細書に記載されるように、ワークフロー実行は、非同期によってもよく、データベース書き込みの同期実行により先行されることができる。
【００２６】
管理型ディレクトリ・サービス２２２は、１セットの信用情報を使用してコンピューティング・リソース・サービス・プロバイダ２１０のコンピューティング・リソースへユーザがログオンすることが可能であり、管理者がコンピューティング・リソース・サービス・プロバイダ２１０へ均一にセキュリティ・ポリシーを適用することを可能にするディレクトリとして機能するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。管理型ディレクトリ・サービス２２２は、ユーザ及びグループ管理のためのウェブ・ベースのコンソールを有効にすることができ、ユーザ信用情報用の認証システムとして使用されることができる。
【００２７】
カスタム検索サービス２２４は、データ・セットのカスタマイズされた検索を可能にし、検索を実行する当事者にセキュリティまたは認証要件を確立することを可能にするように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。さらに、カスタム検索サービス２２４は、停電した場合に安定したパフォーマンスを可能にするデータ・セット・レプリケーションを可能にする。本明細書に記載されるように、カスタム検索サービス２２４は、顧客ドキュメント及びそれらに関連したメタデータの検索インデックスを維持するために利用されることができる。さらに、安定したパフォーマンスを確実にするために、検索可能なメタデータまたは顧客ドキュメントにレプリケーションを行うことができ、停電に対し安定したパフォーマンス及び防御を確実にする。
【００２８】
スケーラブル・データベース・サービス２２６は、ドキュメントまたはデータのストレージ及び取得を容易にする構造化ストレージ・システムを提供するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。スケーラブル・データベース・サービス２２６は、ノンリレーショナルであってもよく、キー値モデルに基づくことができる。スケーラブル・データベース・サービス２２６の実施例は、ＮｏＳＱＬデータベース（たとえば、リレーショナル構造化照会言語（ＳＱＬ）データベースと区別される）を含む。スケーラブル・データベース・サービス２２６は、ドキュメントまたはユーザと関連したメタデータを格納するために使用されることができる。たとえば、スケーラブル・データベース・サービス２２６は、アンダーレイ、オーバーレイ、ドキュメント、フィードバックまたはコメント用のメタデータを格納することができる。加えて、スケーラブル・データベース・サービス２２６は、ユーザ、組織及び権限と関連したメタデータを格納することができる。ノンリレーショナル・データベースとして、スケーラブル・データベース・サービス２２６は、単一のテーブルの単一のアイテムへアトミックな書き込みを保証することができる。したがって、単一の書き込みは、真理値表へ同期的に実行されることができ、残りの書き込みは、ワークフローを使用して非同期的に実行されることができる。
【００２９】
図２で図示された環境に、通知サービス２２８が含まれる。通知サービス２２８は、ウェブ・サービスまたは他のインタフェース及びブラウザ・ベースの管理コンソールを提供するように集合的に構成されたコンピューティング・リソースの集合物を含むことができる。管理コンソールは、顧客がアプリケーション（または人）に通知しようとするためのトピックスを設定する、トピックスへクライアントを承認する、メッセージを公開するか、または選択したクライアントのプロトコル（すなわち、特に、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、電子メール及びショート・メッセージ・サービス（ＳＭＳ））を介するメッセージの配信を設定するために使用されることが可能である。通知サービス２２８は、定期的にチェックする必要のない“プッシュ”機構、または新規の情報及び更新のための“ポーリング”を使用してクライアントへ通知を提供することができる。通知サービス２２８は、仮想コンピュータ・システム・サービス２２８、ワークフロー・システム、期限付き情報更新、モバイル・アプリケーション、及びその他の多くのもので実行されているアプリケーションを監視するような、さまざまな目的のためにさらに使用されることができる。
【００３０】
図３は、少なくとも１つの実施形態に従うフロントエンド・システムならびにドキュメント管理及びコラボレーション・システムの機能エンティティを説明する。フロントエンド・システム３０４は、ウェブ・サーバ３３２、アプリケーション・サービス３３４、管理コンソール３３６及びコントロール・プレーン・サービス３３８を含む。ウェブ・サーバ３３２は、ユーザがドキュメント管理及びコラボレーション・システム３０６へドキュメントを送信するか、またはアップロードすることならびにドキュメントを管理することを可能にする、ウェブサイト、シングルページ・ウェブ・アプリケーションまたはシングルページ・インタフェースの実行を可能にすることができる。ウェブ・サーバは、ユーザがドキュメント、アンダーレイまたはオーバーレイを表示し編集すること、及びドキュメント、アンダーレイまたはオーバーレイ上に注釈またはフィードバックを提供することをさらに可能にすることができる。またウェブ・サーバ３３２は、管理者またはユーザがドキュメントにアクセスする際にユーザへ与えられた特権を指定する権限または共有モードを設定することを可能にすることができる。加えて、ウェブ・サーバは、ユーザまたはデバイスが認証または認証信用情報を提示することを可能にすることができる。図２で数字２１２を参照して記載された、コンテンツ配信エッジ・ネットワークは、ウェブ・サーバ３３２のコンテンツを配信するために使用されることができる。ユーザにより実行されたアクションは、ウェブサイト、アプリケーションまたは管理コンソールを介して行われることができ、ウェブ・サーバ３３２はウェブサイト、アプリケーションまたは管理コンソールを実行することを可能にすることができる。図３を参照して１つのウェブ・サーバ３３２を説明するが、任意の種類の複数のウェブ・サーバを使用できると企図することができるので、ウェブ・サーバの１部が冗長である可能性がある。
【００３１】
アプリケーション・サービス３３４は、ユーザからの要求を受信し、この要求にサービスを提供する、ユーザに公開されたサービスとして機能するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。ユーザ要求は、ユーザのデバイス上で実行されるユーザまたはクライアントへアクセス可能なウェブサイトまたは管理コンソールを使用して行われることができ、ユーザに代わりサービス要求を行うことができる。この要求は、ＡＰＩ機能呼び出しであってもよく、アプリケーション・サービス３３４は要求を処理すること及びその実行を管理することができる。アプリケーション・サービス３３４は、受信した要求と関連したアクションの同期実行を引き起こすことができるか、または代わりに非同期実行のためにキューイングされるより複雑な処理を必要とする１つ以上のアクションを引き起こすことができる。またアプリケーション・サービス３３４は、認証サービスからユーザ信用情報及びユーザの要求認証を受信することに関与することができる。ユーザにより要求された動作パフォーマンスを引き起こすために、アプリケーション・サービス３３４は、コンピューティング・リソース・サービス・プロバイダ２１０のサービスまたはエンティティへ１つ以上の機能呼び出しを行うことができる。たとえば、アプリケーション・サービス３３４は、管理型ディレクトリ・サービス２２２からユーザまたはアクセス・トークン検証を要求することができ、更新される顧客検索サービス２２４により維持された検索インデックスを引き起こすことができる。
【００３２】
管理コンソール３３６は、ドキュメント管理及びコラボレーション・サービスを利用するために組織、管理者及びユーザを登録することが可能であるように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。管理コンソール３３６は、ユーザ・デバイス上で動くウェブサイトまたはアプリケーションに加えてまたはこれの代替として使用されることができ、ユーザ及び管理者が適切に構成されたＡＰＩ機能呼び出しを使用してサービス要求を行うことを可能にすることができる。たとえば、管理コンソール３３６は、ドキュメント・コラボレーション・システムへの参加、ドキュメントの表示及びドキュメント上での連携をユーザに要請するために使用されることができる。さらに、管理コンソール３３６は、ダッシュボード・アクセス、監査ログ・アクセス、権限設定（たとえば、管理者及びユーザ用の）、ストレージ制限設定（たとえば、組織及びユーザ用の）及びセキュリティ設定（たとえば、パスワード及び暗号化用の）を可能にするために使用されることができる。
【００３３】
フロントエンド・システム３０４のコントロール・プレーン・サービス３３８は、ドキュメント・コラボレーション及び管理のための新規のコンピューティング・インスタンスを作成可能にするインタフェースとして機能するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。インスタンスは、管理型ディレクトリ・サービス２２２にディレクトリを透過的に作成すること、またはドキュメント管理及びコラボレーション用の既存のディレクトリ（たとえば、管理型ディレクトリ・サービス２２２により、またはユーザもしくは管理者により維持された）を関連付けることで作成されることができる。コントロール・プレーン・サービス３３８は、ドキュメント・ディレクトリを作成するために利用されることができ、このドキュメント・ディレクトリは、管理型ディレクトリ・サービス２２２により実行され配信されることができる。ドキュメント・ディレクトリは、ユーザへ権限及び特権を提供することが可能である管理者を含む組織と関連することができる。ディレクトリの作成に続いて、アプリケーション・サービス３３４は、ディレクトリのフォルダまたはドキュメントに作用する機能を有効にするために使用されることができる。
【００３４】
ドキュメント管理及びコラボレーション・システムは、非同期サービス３４２、検索サービス３４４、非同期検索サービス３４６、アンダーレイ非同期サービス３４８、マスタ非同期エンジン３５２及びディレクトリ・サービス認証インタフェース３５４を含む。非同期サービス３４２は、非同期ワークフローの実行を管理するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。非同期サービス３４２は、実行用の非同期イベントを格納するキューを含む、またはこれに接続されることができる。非同期サービス３４２は、ワークフローと関連したスケジューリング・アクティビティに関与し得る、マスタ非同期エンジン３５２と非同期ワークフローの実行を調整することができる。このアクティビティは、アンダーレイ生成及びテキスト抽出を有することができる。本明細書に記載されるように、ワークフロー・アクティビティまたはタスクの実行は、エンジンまたはワークフローにより実行されることができる。たとえば、非同期検索エンジン３４６は、テキスト抽出アクティビティを実行することを課せられることができ、アンダーレイ非同期エンジン３４８は、アンダーレイ作成と関連したアクティビティを実行することを課せられることができる。
【００３５】
非同期ワークフローを実行する過程で、非同期検索エンジン３４６及びアンダーレイ非同期エンジン３４８は、オブジェクト・レベル・データ・ストレージ・サービス２１４からドキュメントもしくはファイルを取得するか、またはこれをダウンロードすることができ、ドキュメントまたはファイルをオブジェクト・レベル・データ・ストレージ・サービス２１４に格納させることができる。さらに、エンジンは、受信したドキュメントに基づき任意のファイル・タイプのドキュメントを作成すること、テキスト抽出を実行すること及び注釈を格納することができる。加えて、非同期検索エンジン３４６は、検索サービス３４４により処理するためのキューにドキュメントと関連した検索インデックス更新を配置することができる。この更新は、本明細書の図２を参照して記載されたカスタム検索サービス２２４により維持された検索インデックスと関連することができる。
【００３６】
検索サービス３４４は、キュー内の検索インデックス更新でバッチ処理を実行し、検索インデックス更新アクティビティを実行するためのワークフローを起動するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物であってもよい。ワークフローを起動すると、非同期検索エンジン３４６は、カスタム検索サービス２２４中で検索インデックスを更新させる。ディレクトリ・サービス認証インタフェース３５４は、ドキュメント管理及びコラボレーション・システム３０６が図２で数字２２２を参照して記載された管理型ディレクトリ・サービスのような別のエンティティへユーザ認証を委任することを可能にする。ドキュメント管理及びコラボレーション・システム３０６は、ディレクトリ・サービス認証インタフェース３５４を介して認証する当事者へユーザ・アクセス・トークンを提示することができ、ユーザを認証してもよいかどうかを示す応答を受信することができる。
【００３７】
図４は、少なくとも１つの実施形態に従うドキュメント管理及びコラボレーション・システムを有するコンピューティング・リソース・サービス・プロバイダと通信するユーザ・デバイスを説明する。環境４００において、ユーザ・デバイス４０４は、ウェブ・アプリケーション４６２ならびに同期クライアント４６６を装備するドキュメント管理及びコラボレーション・アプリケーション４６４を含む。コンピューティング・リソース・サービス・プロバイダ４１０は、図３で数字３０６を参照して記載されたドキュメント管理及びコラボレーション・システムのような、ドキュメント管理及びコラボレーション・システム４０６を含む。コンピューティング・リソース・サービス・プロバイダ４１０が図２及び３を参照して記載されたエンティティのような、図４で示されたこれらに加えて、またはこれらの代わりにエンティティを含むことができることに留意すべきである。
【００３８】
本明細書に記載されたように、ユーザ・デバイス４０４は、コンピューティング・リソース・サービス・プロバイダ４１０またはそのエンティティの任意の１つと通信するように集合的に構成されたコンピューティング・デバイス及び他のリソースの集合物を備えることができる。ユーザ・デバイス４０４は、任意の種類の無線または有線接続を有効にするポートまたはモデムのような、任意の数または種類の通信デバイスを備えることができる。さらに、通信は、インターネット、イントラネットまたはインターネット・サービス・プロバイダ（ＩＳＰ）・ネットワークを含むインターネット・プロトコル（ＩＰ）・ネットワークのような任意の種類のネットワーク（図示せず）を介して実行されることができる。加えて、ユーザ・デバイス４０４は、電気電子技術者協会（ＩＥＥＥ）８０２プロトコル、Ｂｌｕｅｔｏｏｔｈ（登録商標）のような狭域通信プロトコル、または第３世代（３Ｇ）通信プロトコルもしくはロング・ターム・エボリューション（ＬＴＥ）のようなセルラ通信プロトコルのうちのいずれか１つを含む任意の種類の通信プロトコルに従いまたはこれに準拠して通信することができる。
【００３９】
ウェブ・アプリケーション４６２は、ユーザ・デバイス４０４がレンダリングしてウェブサイトの表示を引き起こしウェブサイトと対話することを可能にすることができる。ウェブ・アプリケーション４６２の実施例は、ウェブ・ブラウザを含みウェブ・アプリケーション４６２は、ユーザがドキュメント・コラボレーション及び管理ウェブサイトへログイン信用情報を提供すること、及びフォルダの１つ以上のドキュメント・ディレクトリにアクセスすることを可能にすることができる。さらに、ウェブ・アプリケーション４６２は、たとえばユーザの信用情報に少なくとも部分的に基づき、ユーザが少なくとも視聴特権を有するフォルダまたはディレクトリ間を、たとえばウェブサイトを介して、ユーザが移動することを可能にすることができる。加えて、ウェブサイトは、フォルダに含まれる、またはユーザもしくは１つ以上の他のコラボレーションを共有されるか、これについてコメントされるか、またはこれにより注釈を付けられるドキュメントをアップロードするか、もしくは送信するオプションをユーザに提供することができる。さらに、ウェブ・アプリケーション４６２は、ユーザがドキュメントの複数のバージョンのうちの任意の１つを選択することを可能にし、ドキュメント・バージョンと関連した生成されたアンダーレイ、ユーザ注釈を示すオーバーレイまたはネイティブ・ファイル・フォーマットに最初にアップロードされたドキュメントを閲覧することを可能にする。アンダーレイ及びオーバーレイが最初にアップロードされたドキュメントと異なるファイル・フォーマットであってもよいことに留意すべきである。
【００４０】
ウェブサイトと対話する際にユーザにより実行されたアクションは、ウェブ・アプリケーション４６２にコンピューティング・リソース・サービス・プロバイダ４１０またはそのエンティティへ要求を送信させることができる。この要求は、コンピューティング・リソース・サービス・プロバイダ４１０により実行されるアプリケーション・プログラミング・インタフェース（ＡＰＩ）機能呼び出しであってもよい。たとえば、ユーザがドキュメント・バージョンに注釈を付け、注釈を付けたバージョンを保存するときに、ウェブ・アプリケーション４６２は、ＡＰＩ機能呼び出しにコンピューティング・リソース・サービス・プロバイダ４１０またはそのエンティティへ注釈を示す、ＡＰＩ機能呼び出しを行わせることができる。いくつかの実施形態において、ウェブ・アプリケーション４６２は、完全に同期できない場合があり、ユーザが起こした任意のアクションに基づき要求を行わせることができない。たとえば、ユーザがドキュメントに注釈を付ける場合に、ウェブ・アプリケーション４６２は、ユーザがそれらを行うときに同期して注釈を中継することができなく、ユーザがドキュメントまたは注釈または代わりにすべての時間間隔を保存するときに注釈を中継のみ代わりにできる。
【００４１】
図４で示されるように、ユーザ・デバイス４０４は、ドキュメント管理及びコラボレーション・アプリケーション４６４をさらに備える。ドキュメント管理及びコラボレーション・アプリケーション４６４は、ユーザ・デバイス４０４のコンピュータ・システムにより実行されるときに、コンピューティング・リソース・サービス・プロバイダ４１０により提供されたドキュメント共有及びコラボレーション機能でユーザ・インタラクションを有効にする実行可能なインストラクション（たとえば、ユーザ・デバイス４０４上の非一時的なコンピュータ可読記憶媒体に格納される、またはユーザ・デバイス４０４へ接続される）であってもよい。ウェブ・アプリケーション・ベース、またはブラウザ・ベースのインタフェースのように、ドキュメント管理及びコラボレーション・アプリケーション４６４は、ユーザがログイン信用情報を提供することを可能にし、１つ以上のドキュメント・ディレクトリまたはフォルダにアクセスすることを可能にする。ユーザは、たとえば、特に、ドキュメントを１つ以上のフォルダへアップロードすること、１つ以上のフォルダからドキュメントを削除すること、ドキュメント用のアンダーレイに注釈を付けること、注釈を含むオーバーレイを表示すること、によりコンピューティング・リソース・サービス・プロバイダ４１０により提供されたそのドキュメント管理及びコラボレーション・システム４０６とまた対話することができる。ドキュメント管理及びコラボレーション・アプリケーション４６４は、ウェブ・アプリケーション４６２から独立している任意のドキュメント・コラボレーション及び管理リソース及び機能を利用するための機構を提供することができる。
【００４２】
ドキュメント管理及びコラボレーション・アプリケーション４６４は、フロントエンド・システム４１２ならびにドキュメント管理及びコラボレーション・システム４０６と通信する同期クライアント４６６を含む。同期クライアント４６６は、ユーザの代わりに、またはドキュメント管理及びコラボレーション・システム４０６とのユーザのアクションもしくは対話に少なくとも部分的に基づき要求を送信または伝送することができる。たとえば、ユーザが１つ以上のフォルダ内を移動する、オーバーレイに注釈を付ける、またはドキュメントをアップロードすることを指令する場合に、同期クライアント４６６は、フロントエンド・システム４１２またはドキュメント管理及びコラボレーション・システム４０６へその旨のメッセージまたは要求を送信する。フロントエンド・システム４１２またはドキュメント管理及びコラボレーション・システム４０６は、順に、要求を満たすように処理し試みることができる。同期クライアント４６６は、ユーザのアクションに関して同期または非同期のいずれかの要求を送信させることができる。たとえば、組織の管理者であるユーザがドキュメント管理及びコラボレーション・アプリケーション４６４により提供された機能を使用して第二ユーザの権限特権を変更する場合に、同期クライアント４６６は、管理者により行われた権限特権の変更に関して同期して要求（ＡＰＩ機能呼び出しのような）を行うことができる。
【００４３】
同期クライアント４６６は、ユーザ・エンド上で及びコンピューティング・リソース・サービス・プロバイダ４１０のエンド上で安定したビューを維持することを確実にするよう試みる。このようにして、同期クライアント４６６は、ユーザへアクセス可能なシステム・ビューに作用するコンピューティング・リソース・サービス・プロバイダ４１０から要求を受信することがまたできる。ＡＰＩ構成された機能呼び出しであってもよい、メッセージの交換は、システムのユーザ及びユーザ要求の達成により安定したビューをもたらす。たとえば、ユーザがドキュメントの閲覧特権を失った場合に、ユーザのデバイス４０４の同期クライアント４６６はその結果のメッセージを受信し、ドキュメント管理及びコラボレーション・アプリケーション４６４はドキュメントをユーザのビューから削除させることができる。
【００４４】
図５は、少なくとも１つの実施形態に従うディレクトリ構造の実施例を説明する。ディレクトリ５０２は、管理型ディレクトリ・サービスにより維持されることができ、順に１つ以上のディレクトリ５０２を有する組織と関連することができる。図５で示されるように、ディレクトリ５０２は、１つ以上のフォルダ５０４（単独でフォルダ５０４と本明細書で言われる）を含むように示される。さらに、フォルダ５０４は、フォルダ５０４内でネストされる１つ以上のサブフォルダ５０６を含むことができる。認識されるように、サブフォルダ５０６はさらに１つ以上のネストされたサブフォルダを含むことができる。フォルダ５０４は、ディレクトリ５０２内のファイル構造であってもよく、いくつかの実施形態において、フォルダ５０４と関連したセキュリティまたは権限特権は、フォルダ５０４内でネストされるフォルダ５０４またはサブフォルダ５０６内のドキュメント５０８へ適用することができる。
【００４５】
フォルダ５０４は、１つ以上のドキュメント５０８（単独でドキュメント５０８と本明細書で言われる）を保持することができる。図５を参照して記載されるように、ドキュメントは、複数のドキュメント・バージョン５１０を含むことができる。ドキュメント・バージョン５１０は、ドキュメント５０８もしくは後続バージョンの１つの改訂、またはたとえばユーザ修正及び変更を含む既存のドキュメントの改訂であってもよい。さらに、ドキュメントに関して提供された権限またはセキュリティ特権は、ドキュメント５０８と関連した複数のドキュメント・バージョン５１０へ適用することができる。各ドキュメント・バージョン５１０は、ネイティブ・ドキュメント５１２、アンダーレイ５１４及びオーバーレイ５１６を含む複数の表記を有することができる。ネイティブ・ドキュメント５１２は最初にアップロードされたドキュメント（たとえば、生産性スイートと互換性のあるファイル・フォーマット中の）であってもよい。アンダーレイ５１４は、ウェブ・アプリケーションまたはドキュメント管理及びコラボレーション・アプリケーションを利用するユーザ・デバイス上でレンダリングされることができるネイティブ・ドキュメント５１２のポータブル表記であってもよい。本明細書に記載された技術は、アプリケーション・ソフトウェア、ハードウェアまたはオペレーティング・システムから独立している共通フォーマットを利用することができ、ドキュメントの固定されたレイアウトの完全な記述をカプセル化することができる、任意のポータブル表記へ適用することができる。加えて、オーバーレイは、ユーザ及び共同研究者により行われた注釈表記であってもよい。たとえば、オーバーレイは、ハイライトまたはテキスト注釈の表記を含むことができる。
【００４６】
２つ以上のドキュメント・バージョン５１０がネイティブ・ドキュメント５１２として最初にアップロードされたドキュメントを含むことができることに留意すべきである。しかし図５を参照して記載されるように、ドキュメント５０８は複数のバージョン５１０を含むので、各バージョン５１０は複数の表記を含むことができ、本明細書のさまざまなコンテキストで使用される場合に、ドキュメントはバージョンの任意の１つまたは表記の任意の１つであってもよい。たとえば、本明細書で使用されるように、ユーザがアップロードしたドキュメントは、ネイティブ・ドキュメントであってもよく、注釈ドキュメントはオーバーレイであってもよい。図５で示された組織構造は、ウェブ・アプリケーションまたはドキュメント管理及びコラボレーション・アプリケーションを利用するユーザ・デバイス上でさまざまなスタイルまたはフォーマットにレンダリングされることができる。
【００４７】
図６は、本明細書に記載された少なくとも１つの実施形態に従うドキュメントをアップロードする方法の実施例を説明する。プロセス６００において、図３のアプリケーション・サービス３３４のような、アプリケーション・サービスは、ドキュメントをアップロードする要求を受信する６０２。このドキュメントは、新規のドキュメント、または既存のドキュメントの新規のバージョンであってもよい。さらに、ドキュメントは、ネイティブ・ドキュメントであってもよい。要求は、ユーザから受信されることができ、アクセスまたは認証トークンまたはログイン情報のような、ユーザと関連した認証情報を含むことができる。認証情報は、要求者と関連した識別情報を確認するように、または要求者が本物であるか、もしくは要求者により提示された識別情報が本物であることを確認するように検証されることが可能である。さらに、要求者がアップロードされるドキュメントを要求することを認証されるか、または許可されることを確認することができる。ユーザは、管理者によりドキュメントをアップロードするか、またはこれにアクセスすることを許可されることができる。さらに、ユーザは、管理者により、または別のユーザ、ドキュメント所有者もしくは他のドキュメント・プリンシパルによりドキュメントにアクセスすることを許可されることができる。たとえば、他のユーザ、ドキュメント所有者または他のドキュメント・プリンシパルは、ユーザとドキュメントを共有する特権を有することができ、それに応じて、ユーザがアップロードされたドキュメントにアクセスすることを可能にするためにその特権を利用することができる。
【００４８】
本明細書に記載されるように、要求はＡＰＩ構成された機能呼び出しであってもよい。そのときアプリケーション・サービスは、提供された認証情報に少なくとも部分的に基づき要求する当事者を認証する６０４。アプリケーション・サービスは、ユーザ認証用のディレクトリ・サービス認証インタフェース３５４を利用することができ、ディレクトリ・サービス認証インタフェース３５４へ認証情報を送信することができる。ドキュメント管理及びコラボレーション・システムは、認証用の管理型ディレクトリ・サービス２２２に依存することができるので、管理型ディレクトリ・サービス２２２を備えるユーザのまたは組織のアカウントは、ドキュメント管理及びコラボレーション・システムにより提供されたサービスへのアクセスのためにまた利用されることができる。
【００４９】
要求者を認証する表示を受信すると、アプリケーション・サービスは、受信した要求に従いデータベースを更新する６０６。データベースを更新することは、たとえば、ドキュメント用のデータベース内にエントリを作成すること、またはデータベース中のフォルダ、ユーザ、組織またはユーザ・グループとドキュメントを関連付けることにより、アップロードされることを求められるドキュメント用の名前空間を確保することを有することができる。さらに、データベースは当事者とドキュメント（たとえば、ドキュメント識別情報を使用して）を関連付けるために更新されることができる。アップロードされることを求められたドキュメントが新規のドキュメントまたは既存のドキュメントの新規のバージョンであるかどうか、アプリケーション・サービスはデータベースにドキュメントの種類を反映させることができる。データベースを更新することは、データベース中のドキュメントと関連したエントリを作成することを有する。本明細書に記載されるように、データベースは、スケーラブル・データベース・サービス２２６により実行されるか、または提供されることができる。
【００５０】
データベースは、組織、ユーザ、ディレクトリ、ドキュメント等と関連したメタデータを格納するために使用されることができるが、ドキュメントは、オブジェクト・レベル・データ・ストレージ・サービス２１４に格納されることができる。したがって、ドキュメントと関連したメタデータでデータベースを更新した後、アプリケーション・サービスはドキュメントがデータ・ストレージ・サービスに格納される位置またはアドレスを決定することができる。アドレスは、ドキュメント管理及びコラボレーション・システムへ関連することができる、またはこれに確保されることができ、ユニフォーム・リソース・ロケータ（ＵＲＬ）であってもよい。そのときアプリケーション・サービスは、要求者へのドキュメント・アップロード用のストレージ・アドレスを送信する６０８。アドレスは、任意の種類のハッシュ化または暗号技術を使用して署名されることができる。アドレスの受信に応じて、本明細書に記載されるように、要求者は、ストレージ・サービスへドキュメント（たとえば、ネイティブ・ドキュメント）をアップロードすることができ、ドキュメントをアプリケーション・サービスへアップロードすることを示し、認証情報を含むメッセージを送信することができる。
【００５１】
アプリケーション・サービス６１０は、ドキュメント・アップロードが完了する表示を受信する。さらに、アプリケーション・サービスは、要求を備える認証情報を受信することができ、要求者の識別情報を確認するために認証情報を検証させることができる。さらに、アプリケーション・サービスは、要求者がストレージ・サービスへドキュメントをアップロードすることを許可されることを確認することができる。認証または権限検証を完了すると、そのときアプリケーション・サービスは、データベース中でアクティブであるとしてドキュメントを表示する６１２。アクティブ・ドキュメントは、たとえば、ドキュメントのアップロードを開始する当事者がシステムにドキュメントを組み込ませる権限を有することを確認することで、システムへアップロードされるために検証されることであってもよい。さらに、アクティブ・ドキュメントは、ユーザまたはドキュメント・システムにより、処理を利用可能であるか、もしくは準備する、または検索用に利用可能であるユーザ・ドキュメントであってもよい。加えて、アクティブ・ドキュメントは、アンダーレイ生成またはテキスト抽出のようなバックエンド処理を実行することができるものであってもよい。さらに、アクティブ・ドキュメントは、ストレージ・サービス、またはストレージ・サービス中のストレージの確認を受信しているドキュメントに正常に格納されるドキュメントであってもよい。ドキュメントがアクティブになった後に、動作またはワークフローはドキュメントを利用することで実行されることができることに留意すべきである。さらに、ドキュメントを利用する要求は、サービスを提供され要求を満たされることができる。さらに、アプリケーション・サービスは、特に、アップロードされたドキュメント用のアンダーレイを生成するために、またはドキュメント・テキストを抽出し検索可能なテキストをレンダリングするために１つ以上の非同期ワークフローを起動する６１２。非同期ワークフローは、本明細書に記載されるような非同期サービスにより完了されることができる。ワークフローは非同期で完了されることができ、それに応じて、アプリケーションは、非同期ワークフローの完了前に実行されることができる、要求の達成を表示する要求者へメッセージを送信する６１６。抽出されたテキストは、ストレージ・サービスまたはデータベースに格納されることができ、ドキュメントを検索可能にさせるために使用されることができるので、ドキュメントは、ドキュメントにある１つ以上の特性に基づき識別されることができる。検索機能は、検索されたテキストに少なくとも部分的に基づき１つ以上のドキュメントまたはそのテキスト部分を識別するために、ディレクトリ中のドキュメントの１部またはすべてを検索することが可能であることができる顧客検索サービスにより実行されることができる。さらに、ユーザは、ドキュメントを検索するオプションを提供することができ、要求された検索クエリに一致するテキストを含む１つ以上のドキュメントを含む検索結果を受信することができる。
【００５２】
プロセス６００で記載されるように、アプリケーション・サービスがデータベース更新及び受信した要求に関して同期してストレージ位置を決定することのような、特定のアクションを実行することができることに留意すべきである。しかしながら、テキスト抽出及びアンダーレイ生成のような他の動作は、非同期で実行されることができる。いくつかの動作を非同期エンジンへ委譲する、同期・非同期間ハンドオフの種類は、より望ましいユーザ・エクスペリエンスをもたらすので、ユーザは、非同期で実行された計算集約型動作またはワークフローと関連した遅延を体験しない。その代わりに、ユーザは、ユーザ認証、名前空間確保、真理値表更新、ストレージ・アドレス識別及び伝送等のような、特定の動作と関連した遅延のみが発生する可能性がある。いくつかの実施形態において、同期して実行される動作は、非同期ワークフローまたは動作の実行のために必要とされ得る。
【００５３】
図７は、少なくとも１つの実施形態に従うドキュメント・アップロード用の非同期ワークフローを実行する方法の実施例を説明する。プロセス７００は、図６を参照して記載されるようにアプリケーション・サービスによる１つ以上のワークフローの起動により開始されることができる。さらに、プロセス７００は、ドキュメント管理及びコラボレーション・システムのエンティティにより実行されることができる。非同期サービスは、本明細書に記載されるようなさまざまな動作を含むドキュメント更新ワークフローを起動するためにアプリケーション・サービスからインストラクションを受信する７０２。その結果、マスタ非同期エンジンは、アンダーレイ生成を開始するようにタスク管理及びワークフロー・サービスに指令することを含むことができる、アンダーレイ生成を開始する７０４。
【００５４】
アンダーレイ生成ワークフローは、オブジェクト・レベル・データ・ストレージ・サービスからネイティブ・ドキュメントを取得すること、及びポータブル・フォーマット（また共通フォーマット及びユニバーサル・フォーマットと本明細書で言われる）にネイティブ・ドキュメントの表記を生成することを有することができる。この表記は、クライアント・デバイス上で１つ以上のアプリケーションを使用してレンダリングされることができる。表記の実施例は、ポータブル表記ファイル（ｐｄｆ）・フォーマットを含むドキュメントであってもよい。さらに、サムネイルは、アンダーレイのネイティブ・ドキュメントから生成されることができる。アンダーレイ及びサムネイルは、オブジェクト・レベル・データ・ストレージ・サービス中にストレージのためにアップロードされることができる。その上、アンダーレイ生成ワークフローは、サムネイル及びアンダーレイがネイティブ・ドキュメント用に生成されていることを特定するために、またはアンダーレイもしくはサムネイルのストレージ位置を特定するためにスケーラブル・データベース・サービスを更新することができる。仮想コンピューティング・サービスの仮想マシンまたは仮想コンピューティング・インスタンスは、アンダーレイ生成ワークフローの１部またはすべてを実行するために使用されることができるので、仮想マシンまたは仮想コンピューティング・インスタンスは、任意の種類のオペレーティング・システムで構成されることができ、アンダーレイまたはサムネイル生成を実行することを可能にする１つ以上のソフトウェア・パッケージを実行することができる。
【００５５】
マスタ非同期エンジンは、そのとき、テキスト抽出を実行するように非同期検索エンジンに指令することを有することができる、テキスト抽出ワークフローを開始する７０６。そのとき非同期検索エンジンは、オブジェクト・レベル・データ・ストレージ・サービスから更新されたか、または新規のネイティブ・ドキュメントを取得し、ネイティブ・ドキュメントのテキストを抽出することができる。そのとき非同期検索エンジンは、たとえば、ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ファイルとして、ドキュメント用の注釈インデックスを生成し、オブジェクト・レベル・データ・ストレージ・サービスへ抽出されたテキスト及び注釈インデックスをアップロードする。注釈インデックス（また座標マップと本明細書で言われる）は、共通フォーマット中のドキュメント及び共通フォーマット・ファイルのデカルト座標系に少なくとも部分的に基づき作成されることができる。注釈インデックスは、アップロードされたドキュメント内のユーザ選択及び注釈を表示するために使用されることができる。さまざまな実施形態において、座標マップは、ドキュメントまたはアンダーレイから別のファイルに維持される。さらに、座標マップは、ドキュメントまたはアンダーレイ内の情報として含まれてもよい。たとえば、座標マップは、共通フォーマットへ変換されたドキュメントに格納されることができる。座標マップは、異なる解像度、異なる表示サイズ、異なるアスペクト比及び複数のデバイスの任意の他の相違表示のような、異なる表示特性を備える複数のコンピューティング・デバイス間でオーバーレイに含まれた情報の安定した表示を可能にする。コンピューティング・デバイスによりドキュメントを表示するために使用されるときに、座標は、オーバーレイ及びドキュメントを表示する特定のディスプレイのディスプレイ特性にかかわらず同じ言語と関連して注釈を表示させる。
【００５６】
非同期検索エンジンは、たとえば、検索インデックス更新を開始することができ検索インデックス更新を処理用にキューイングすることができることを、図３で数字３４４を参照して記載された検索サービスのような、検索サービスへ示すことができる。そのとき検索サービスは、検索インデックス更新ワークフローを開始する７０８。このサービスは、バッチ処理を実行することを可能にすることができ、キューからインデックス更新のバッチを取得し、検索インデックス更新ワークフローを起動することができる。非同期検索エンジンは、ドキュメント・バッチを備える顧客検索サービス・インデックスを更新する。
【００５７】
ドキュメント管理及びコラボレーション・システムは、分散コンピューティング・リソースを使用して１つ以上の仮想デスクトップをユーザが実行することを可能にする仮想デスクトップ・サービスのような、他のサービスと統合される、またはこれと併せて利用されることができる。たとえば、仮想デスクトップのさまざまなファイルまたはドキュメント・ディレクトリは、ドキュメント管理及びコラボレーション・システムにより維持されることができる。ドキュメント管理及びコラボレーション・システムを使用して、ユーザは、それらの仮想デスクトップまたは仮想オペレーティング・システムのさまざまなドキュメント・ディレクトリにアクセスすることを可能にすることができる。アクセスは、仮想デスクトップもしくはオペレーティング・システムまたは仮想デスクトップ・サービスに独立してアクセスすることなく実行されることができる。その結果、ドキュメント管理及びコラボレーション・システムが仮想デスクトップ・サービスと統合されるときに、仮想デスクトップ・サービスにより維持されたディレクトリ、ドキュメントまたはフォルダはドキュメント管理及びコラボレーション・システムを介してアクセス可能であることができる。
【００５８】
また、ドキュメント管理及びコラボレーション・システムは、仮想デスクトップ・サービス用のドキュメント及びディレクトリを格納するために利用されることができる。さらに、いくつかの実施形態において、ドキュメント管理及びコラボレーション・システムは、デスクトップ・ドキュメントを格納することに関与することができるが、仮想デスクトップ・サービスは、ソフトウェア・アプリケーション、私的電子メール、ユーザ設定等のような、他のファイル・タイプを格納することに関与することができる。いくつかの実施形態において、セキュリティ特権は、ドキュメント管理及びコラボレーション・システムならびに仮想デスクトップ・サービス間で共有されることができるので、ユーザは、シングル・サインオンで両方のシステムへ、単一の認証プロセスを利用してサインオンすることができる。
【００５９】
図８は、少なくとも１つの実施形態に従うドキュメント取得のための方法の実施例を説明する。プロセス８００において、ウェブ・サーバ８３２は、アプリケーション・サービス８３４からドキュメント位置を要求する８０２。ウェブ・サーバ８３２は、ドキュメントを表示するためにクライアント・デバイスから第二要求の受信による要求を開始することができる。図８を参照して記載されるように、ドキュメントは、特に、元のドキュメント、アンダーレイまたは元のドキュメントのサムネイルであってもよい。本明細書に記載されるように、ドキュメントは、ストレージ・アドレス情報のような、ドキュメントと関連したストレージ・サービス及びメタデータに格納されることができるか、またはデータベースに格納されることができる。要求を受信すると、アプリケーション・サービス８３４は、順にスケーラブル・データベース・サービス８２６からドキュメント位置を要求する。スケーラブル・データベース・サービス８２６は、ドキュメント識別情報または別の識別子に少なくとも部分的に基づきドキュメントの位置を取得することができる。スケーラブル・データベース・サービス８２６は、順に、ウェブ・サーバ８３２へ位置を転送する８０４、アプリケーション・サービス８３４へドキュメントの位置を提供する８０４。
【００６０】
ウェブ・サーバ８３２は、ＵＲＬであってもよい、受信した位置に少なくとも部分的に基づきコンテンツ配信エッジ・ネットワーク８１２からドキュメントを要求する８０６。さらに、ドキュメントを要求するときに、ウェブ・サーバは、ユーザを認証するために使用される、またはユーザがドキュメントを受信することを許可されることを検証するために、アクセス・トークンのような、ユーザ認証情報を提供することができる。コンテンツ配信エッジ・ネットワーク８１２は、本明細書に記載されるようにユーザを認証させることができ、ドキュメントが容易に利用できない場合にストレージ・サービスからドキュメントを取得することができる８０８。そのときコンテンツ配信エッジ・ネットワーク８１２は、ウェブ・サーバ８３２へドキュメントを送信する８１０。ウェブ・サーバ８３２は、ドキュメントをユーザ・デバイスへ提供させることができ、ドキュメントは、ユーザが閲覧するか、または編集するためにレンダリングされることができる。
【００６１】
認証時に、ユーザ・デバイスまたはユーザ・デバイスの同期エンジンは、オーバーレイまたはアンダーレイのような、所望のドキュメントが、たとえば、適切に構成されたＡＰＩ機能呼び出しを介して、アプリケーション・サービスと通信することで、最新であるか、または最後のバージョンであるかどうかを判定することができる。ドキュメントのそれ以降のバージョンまたは改訂がユーザ・デバイスに利用可能であるか、または同期エンジンが相手のユーザ・デバイスからバージョンを取得しようと試みることができると判定する場合に、これにより、相手のユーザ・デバイスは、ユーザが、たとえばドキュメントに注釈を付け注釈を共有することにより、ドキュメント上で連携する、別のユーザのデバイスまたはピアであってもよい。さらに、ユーザ・デバイスは、たとえば、コンテンツ・エッジ配信ネットワーク経由で、ドキュメントを保持するストレージ・サービスからそれ以降のバージョンを取得しようと試みることができる。ユーザは、ユーザのアクセス権限を有するＵＲＬに署名することにより実行されることができる、ドキュメントを取得することが可能になる前に、認証信用情報を提供することを要求されることがある。
【００６２】
図９は、さまざまな実施形態に従う態様を実装する例示的な環境９００の態様を説明する。理解されるように、ウェブ・ベースの環境は説明目的で使用されるが、異なる環境は、さまざまな実施形態を実装するために、適宜、使用されることができる。この環境は、適切なネットワーク９０４を介して要求、メッセージまたは情報を送信するか、及び／または受信し、いくつかの実施形態において、デバイスのユーザへ情報を伝えるように動作可能な任意の適切なデバイスを含むことが可能である、電子クライアント・デバイス９０２を含む。このようなクライアント・デバイスの実施例は、パーソナル・コンピュータ、携帯電話、ハンドヘルド・メッセージング・デバイス、ラップトップ・コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、パーソナル・データ・アシスタント、組み込みコンピュータ・システム、電子ブック・リーダ等を含む。ネットワークは、イントラネット、インターネット、セルラ・ネットワーク、ローカル・エリア・ネットワーク、衛星ネットワークまたは任意の他のこのようなネットワーク及び／またはそれらの組合せを有する、任意の適切なネットワークを含むことが可能である。このようなシステムに使用されるコンポーネントは、選択されたネットワーク及び／または環境のタイプに少なくとも部分的に依存することが可能である。このようなネットワーク経由で通信するためのプロトコル及びコンポーネントは、周知であり、本明細書で詳細に説明しない。ネットワークを介した通信は、有線または無線通信及びそれらの組み合わせで有効にされることが可能である。この実施例において、ネットワークはインターネットを含むが、環境が要求を受信しそれに応答してコンテンツを提供するためにウェブ・サーバ９０６を含む場合に、他のネットワークのために、類似の目的を果たす代替のデバイスが当業者に明らかなように使用されることが可能である。
【００６３】
例示的な環境は、少なくとも１つのアプリケーション・サーバ９０８及び１つのデータ・ストア９１０を含む。適切なデータ・ストアからデータを取得するようなタスクを実行するために対話することが可能であるように連結されるか、またはその他の方法で構成されることができる、いくつかのアプリケーション・サーバ、レイヤもしくは他の要素、プロセスまたはコンポーネントがあることが可能であることを理解すべきである。本明細書で使用されるような、サーバは、ハードウェア・デバイスまたは仮想コンピュータ・システムのような、さまざまな方式で実装されることができる。いくつかのコンテキストにおいて、サーバはコンピュータ・システム上で実行されるプログラミング・モジュールを参照することができる。本明細書で使用されるように、特に明記しないか、または文脈で明らかでない限り、用語“データ・ストア”は、任意の標準、分散、仮想またはクラスタ環境で、データ・サーバ、データベース、データ・ストレージ・デバイス及びデータ・ストレージ・メディアの任意の組み合わせ及び数を含むことができる、データを格納し、これにアクセスし、これを取得することを可能にする任意のデバイスまたはデバイスの組み合わせを指す。アプリケーション・サーバは、アプリケーション用のデータ・アクセス及びビジネス・ロジックの１部またはすべてを取り扱う、クライアント・デバイス用の１つ以上のアプリケーションの態様を実行するために必要とされる場合にデータ・ストアと統合するための、任意の適切なハードウェア、ソフトウェア及びファームウェアを含むことが可能である。アプリケーション・サーバは、データ・ストアと協動するアクセス・コントロール・サービスを提供することができ、限定されないが、ハイパー・テキスト・マークアップ言語（“ＨＴＭＬ”）、拡張可能なマークアップ言語（“ＸＭＬ”）、ＪａｖａＳｃｒｉｐｔ（登録商標）、カスケーディング・スタイル・シート（“ＣＳＳ”）または別の適切なクライアント側の構造化言語の形式でウェブ・サーバによりユーザへ提供されることができる、テキスト、グラフィックス、オーディオ、ビデオ及び／またはユーザへ提供されるために使用可能な他のコンテンツを含む、コンテンツを生成することが可能である。クライアント・デバイスへ転送されたコンテンツは、限定されないが、聴覚、視覚及び／または触覚、味覚、及び／または嗅覚を有する他の感覚を通して、ユーザに知覚可能な形態を含む１つ以上の形態でコンテンツを提供するようにクライアント・デバイスにより処理されることができる。クライアント・デバイス９０２及びアプリケーション・サーバ９０８間でのコンテンツの配信と同様に、すべての要求及び応答の取り扱いは、ハイパーテキスト・プリプロセッサ（“ＰＨＰ”）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ（登録商標）、Ｐｅｒｌ（登録商標）、Ｊａｖａ（登録商標）、ＨＴＭＬ、ＸＭＬまたはこの実施例において別の適切なサーバ側構造化言語、ＰＨＰを使用してウェブ・サーバにより取り扱われることが可能である。本明細書で説明される構造化符号が本明細書の他の箇所で説明されるように任意の適切なデバイスまたはホスト・マシン上で実行されることが可能である場合に、ウェブ及びアプリケーション・サーバが必要とされなく、単に例示的なコンポーネントであることを理解すべきである。さらに、単一のデバイスで実行されるように本明細書に記載された動作は、文脈から明らかでない限り、分散型及び／または仮想システムを形成することができる、複数のデバイスにより一括して実行されることができる。
【００６４】
データ・ストア９１０は、本開示の特定の態様に関連するデータを格納するための、いくつかの別個のデータ・テーブル、データベース、データ・ドキュメント、動的データ・ストレージ・スキーム及び／または他のデータ・ストレージ機構及び媒体を含むことが可能である。たとえば、例示されたデータ・ストアは、生産側へコンテンツを提供するために使用されることが可能である、生産データ９１２及びユーザ情報９１６を格納するための機構を含むことができる。またデータ・ストアは、報告、解析または他のこのような目的のために使用されることが可能である、ログ・データ９１４を格納するための機構を含むように示される。データ・ストア９１０内に適切なまたは追加の機構として上記の機構のいずれかに格納されることが可能である、ページ画像情報及びアクセス権情報のような、データ・ストアに格納される必要があり得る多くの他の態様があることが可能であることを理解すべきである。データ・ストア９１０は、それと関連したロジックを介して、アプリケーション・サーバ９０８からインストラクションを受信し、それに応答してデータを取得する、更新する、またはその他の方法で処理するように動作可能である。アプリケーション・サーバ９０８は、受信したインストラクションに応答して静的、動的または静的及び動的データの組み合わせを提供することができる。ウェブ・ログ（ブログ）、ショッピング・アプリケーション、ニュース・サービス及び他のこのようなアプリケーションで使用されるデータのような、動的データは、本明細書に記載されるようなサーバ側の構造化言語により生成されることができる、またはアプリケーション・サーバ上で、もしくはアプリケーション・サーバの制御下で動作するコンテンツ管理システム（“ＣＭＳ”）により提供されることができる。１つの実施例において、ユーザは、ユーザにより操作されたデバイスを介して、特定の種類のアイテムへの検索要求を提出することができる。この場合に、データ・ストアはユーザの識別情報を検証するためにユーザ情報にアクセスすることができ、その種類のアイテムについての情報を取得するためにカタログ詳細情報にアクセスすることが可能である。そのとき情報は、ユーザがユーザ・デバイス９０２上でブラウザを介して閲覧することを可能にするウェブ・ページにリストされる結果でのように、ユーザへ戻されることが可能である。関心のある特定のアイテムの情報は、ブラウザの専用のページまたはウィンドウに表示されることが可能である。しかしながら、本開示の実施形態がウェブ・ページのコンテキストへ必ずしも限定されないが、一般に要求を処理するためにより一般的に適用可能であることができ、要求がコンテンツへの要求を必要としないことに留意すべきである。
【００６５】
各サーバは、そのサーバの一般的な管理及び運用のための実行可能なプログラム・インストラクションを提供するオペレーティング・システムを典型的に含むであろうし、サーバのプロセッサで実行されるときに、サーバがその意図された機能を実行することを可能にするインストラクションを格納するコンピュータ可読記憶媒体（たとえば、ハードディスク、ランダム・アクセス・メモリ、読み出し専用メモリ等）を典型的に含むであろう。サーバのオペレーティング・システム及び一般的な機能のための適切な実装は、周知であるか、または市販されていて、特に本明細書の開示を考慮すれば当業者により容易に成し得る。
【００６６】
環境は、１つの実施形態において、１つ以上のコンピュータ・ネットワークまたは直接接続を使用して、通信リンクを介して相互接続される複数のコンピュータ・システム及びコンポーネントを利用する、分散型及び／または仮想コンピューティング環境である。しかしながら、このようなシステムが図９に図示されるより少ないか、または多い数のコンポーネントを含むシステムで等しく良好に動作することが可能であることは、当業者により理解されるであろう。このようにして、図９のシステム９００の描写は、本質的に例示であり本開示の範囲を限定するものではないと解釈されるべきである。
【００６７】
さらにさまざまな実施形態は、いくつかの場合において、複数のアプリケーションのいずれかを動作させるために使用されることが可能である、１つ以上のユーザ・コンピュータ、コンピューティング・デバイスまたは処理デバイスを含むことが可能である、多種多様の動作環境に実装されることが可能である。ユーザまたはクライアント・デバイスは、モバイル・ソフトウェアを実行し複数のネットワーキング及びメッセージング・プロトコルを支援することが可能であるセルラ、無線及びハンドヘルド・デバイスと同様に、標準的なオペレーティング・システムを実行するデスクトップ、ラップトップまたはタブレット・コンピュータのような、複数の汎用パーソナル・コンピュータのいずれかを含むことが可能である。このようなシステムはまた、さまざまな市販のオペレーティング・システムならびに開発及びデータベース管理のような目的のための他の既知のアプリケーションのいずれかを実行する複数のワークステーションを含むことが可能である。これらのデバイスはまた、ダミー・ターミナル、シン・クライアント、ゲーミング・システム及びネットワークを介して通信することが可能な他のデバイスのような、他の電子デバイスを含むことが可能である。これらのデバイスはまた、仮想マシン、ハイパーバイザ及びネットワークを介して通信することが可能な他の仮想デバイスのような仮想デバイスを含むことが可能である。
【００６８】
本開示のさまざまな実施形態は、トランスミッション・コントロール・プロトコル／インターネット・プロトコル（“ＴＣＰ／ＩＰ”）、ユーザ・データグラム・プロトコル（“ＵＤＰ”）、開放型システム間相互接続（“ＯＳＩ”）モデルのさまざまなレイヤで動作するプロトコル、ファイル転送プロトコル（“ＦＴＰ”）、ユニバーサル・プラグ・アンド・プレイ（“ＵｐｎＰ”）、ネットワーク・ファイル・システム（“ＮＦＳ”）、コモン・インターネット・ファイル・システム（“ＣＩＦＳ”）及びＡｐｐｌｅＴａｌｋのような、さまざまな市販のプロトコルのいずれかを使用して通信を支援するために当業者によく知られている少なくとも１つのネットワークを利用する。ネットワークは、たとえば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、仮想プライベート・ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク及びこれらの任意の組合せであることが可能である。
【００６９】
ウェブ・サーバを利用する実施形態において、ウェブ・サーバは、ハイパーテキスト・トランスファー・プロトコル（“ＨＴＴＰ”）・サーバ、ＦＴＰサーバ、コモン・ゲートウェイ・インタフェース（“ＣＧＩ”）・サーバ、データ・サーバ、Ｊａｖａ（登録商標）サーバ、Ａｐａｃｈｅ（登録商標）サーバ及びビジネス・アプリケーション・サーバを含む、さまざまなサーバまたは中間層アプリケーションのいずれかを実行することが可能である。またサーバ（複数を含む）は、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃もしくはＣ＋＋、またはＲｕｂｙ（登録商標）、ＰＨＰ、Ｐｅｒｌ（登録商標）、Ｐｙｔｈｏｎ（登録商標）もしくはＴＣＬのような任意のスクリプト言語、同様にその組み合わせのような、任意のプログラミング言語で書かれた１つ以上のスクリプトもしくはプログラムとして実装されることができる１つ以上のウェブ・アプリケーションを実行することにより、ユーザ・デバイスからの要求へ応答してプログラムもしくはスクリプトを実行することが可能であることができる。サーバ（複数を含む）はまた、ＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢ、及び構造化または非構造化データを格納し、取得し、アクセスすることが可能な任意の他のサーバのようなオープン・ソース・サーバと同様に、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）及びＩＢＭ（登録商標）から市販されているものを含むがこれに限定されない、データベース・サーバを含むことができる。データベース・サーバは、テーブル・ベース・サーバ、ドキュメント・ベース・サーバ、非構造化サーバ、リレーショナル・サーバ、非リレーショナル・サーバまたはそれらの組合せ及び／または他のデータベース・サーバを含むことができる。
【００７０】
環境は、上述されるようなさまざまなデータ・ストア及び他のメモリ及び記憶媒体を含むことが可能である。これらは、１つ以上のコンピュータへ（及び／または、にある）ローカルに、またはネットワーク経由でコンピュータのいずれかまたはすべてからリモートに記憶媒体上でのような、さまざまな位置に存在することが可能である。特定のセットの実施形態において、情報は、当業者によく知られているストレージ・エリア・ネットワーク（“ＳＡＮ”）に存在することができる。同様に、コンピュータ、サーバまたは他のネットワーク・デバイスによる機能を実行するための任意に必要なファイルは、必要に応じて、ローカルに及び／またはリモートに格納されることができる。システムがコンピュータ化されたデバイスを含む場合に、各々のこのようなデバイスは、バスを介して電気的に結合されることができるハードウェア要素を含むことが可能であり、この要素は、たとえば、少なくとも１つの中央処理装置（“ＣＰＵ”または“プロセッサ”）、少なくとも１つの入力デバイス（たとえば、マウス、キーボード、制御装置、タッチ・スクリーンまたはキーパッド）及び少なくとも１つの出力デバイス（たとえば、表示装置、プリンタまたはスピーカ）を含む。このようなシステムは、リムーバブル・メディア・デバイス、メモリ・カード、フラッシュ・カード等と同様に、ディスク・ドライブ、光ストレージ・デバイス及びランダム・アクセス・メモリ（“ＲＡＭ”）または読み出し専用メモリ（“ＲＯＭ”）のようなソリッド・ステート・ストレージ・デバイスのような、１つ以上のストレージ・デバイスをまた含むことができる。
【００７１】
このようなデバイスはまた、上述のような、コンピュータ可読記憶媒体リーダ、通信デバイス（たとえば、モデム、ネットワーク・カード（無線または有線）、赤外線通信デバイス等）及びワーキング・メモリを含むことが可能である。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的に及び／またはより永続的に含み、格納し、伝送し、取得するための記憶媒体と同様に、リモート、ローカル、固定及び／または取り外し可能なストレージ・デバイスを表す、コンピュータ可読記憶媒体と接続されるか、またはこれを受信するように構成されることが可能である。システム及びさまざまなデバイスは、また典型的に、クライアント・アプリケーションまたはウェブ・ブラウザのような、オペレーティング・システム及びアプリケーション・プログラムを含む、複数のソフトウェア・アプリケーション、モジュール、サービスまたは少なくとも１つのワーキング・メモリ・デバイス内に設置された他の要素を含むであろう。代替の実施形態が上記のことから複数の変形を有し得ることを理解すべきである。たとえば、カスタマイズされたハードウェアは、また使用されてもよい、及び／または特定の要素は、ハードウェア、ソフトウェア（アプレットのようなポータブル・ソフトウェアを含む）または両方に実装されてもよい。さらに、ネットワーク入力／出力デバイスのような他のコンピューティング・デバイスへの接続を使用することができる。
【００７２】
コード、またはコードの１部を含むための記憶媒体及びコンピュータ可読媒体は、限定されないが、ＲＡＭ、ＲＯＭ、電気的に消去可能でプログラム可能な読み出し専用メモリ（“ＥＥＰＲＯＭ”）、フラッシュ・メモリもしくは他のメモリ技術、コンパクト・ディスク読み出し専用メモリ（“ＣＤ−ＲＯＭ”）、デジタル多用途ディスク（“ＤＶＤ”）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージもしくは他の磁気ストレージ・デバイスまたは所望の情報を格納するために使用されることが可能であり、システム・デバイスによりアクセスされることが可能である任意の他の媒体を含む、コンピュータ可読インストラクション、データ構造、プログラム・モジュールまたは他のデータのような、情報のストレージ及び／または伝送のための任意の方法または技術で実装された揮発性及び不揮発性、リムーバブル及び非リムーバブル・メディアのような、記憶媒体及び通信媒体を含む、当該技術において周知のまたは使用された任意の適切媒体を含むことが可能である。本明細書に記載された本開示及び教示に基づき、当業者はさまざまな実施形態を実装するための他の方式及び／または方法を理解するであろう。
【００７３】
本開示の実施形態は、以下のクローズを考慮して記載されることが可能である。
＜クローズ１＞
実行可能なインストラクションで設定された１つ以上のコンピュータ・システムの前記制御下で、
前記ドキュメント管理及びコラボレーション・システムへ前記ドキュメントをアップロードする要求を受信し、
ストレージ・サービスに前記ドキュメントの成功したストレージの表示を受信し、
データベースを更新し、前記ドキュメントが処理用に利用可能であることを表示し、
処理用に利用可能になる前記ドキュメントにおいて、ドキュメントと関連した、抽出されたテキストまたはアンダーレイの少なくとも１つを生成し、
前記ドキュメントを識別するために前記抽出されたテキストを使用可能にさせ、前記抽出されたテキストに少なくとも部分的に基づいた前記ドキュメントを検索する要求にサービスし、
前記アンダーレイにアクセスする要求にサービスする、
ことを備える、ドキュメント管理及びコラボレーション・システムへドキュメントをアップロードするコンピュータ実装方法。
＜クローズ２＞
前記ドキュメントをアップロードする前記要求は、ユーザ・デバイスから受信され、
成功したストレージの前記表示は、前記ストレージ・サービス中の前記ドキュメントのためのストレージ位置を識別するリソース・ロケータを前記ユーザ・デバイスへ送信することに応じて前記ユーザ・デバイスから受信される、
クローズ１の前記コンピュータ実装方法。
＜クローズ３＞
前記ドキュメントをアップロードする前記要求は、ユーザと関連した認証情報と関連し、
前記方法はさらに、前記ユーザが前記ドキュメントをアップロードする権限を付与されることを検証することを備える、
クローズ１〜２の前記コンピュータ実装方法。
＜クローズ４＞
前記データベース中に前記アンダーレイのストレージ位置の表示を格納し、
前記アンダーレイにアクセスするユーザ開始要求を受信する場合に、前記データベースから前記ストレージ位置を取得し、前記ストレージ位置を前記ユーザへ提供させる、
ことをさらに備える、クローズ１〜３の前記コンピュータ実装方法。
＜クローズ５＞
前記ドキュメントの後続バージョンをアップロードする要求を受信し、前記データベースが前記ドキュメントの前記後続バージョンと前期ドキュメントを関連させる、
ことをさらに備える、クローズ１〜４の前記コンピュータ実装方法。
＜クローズ６＞
受信する前記ドキュメントの前記後続バージョンに応じて、前記ドキュメントの前記後続バージョンと関連した後続アンダーレイを生成させる、
ことをさらに備える、クローズ５の前記コンピュータ実装方法。
＜クローズ７＞
ネットワーク経由で、ドキュメントを受信し、
前記ドキュメントの受信結果として、アンダーレイ及びオーバーレイを前記ドキュメント用に生成させ、前記アンダーレイが前記ドキュメントの共通フォーマットであり、前記オーバーレイが前記ドキュメントへ１つ以上の注釈を格納するために使用可能であり、
前記ドキュメントへのアクセスの要求を受信し、前記要求がユーザにより開始され、
前記ドキュメントへのアクセスの要求に応じて、前記アンダーレイ及びオーバーレイを前記ユーザへ提供させる、
ように設定された少なくとも１つのアプリケーション・サービスを実装するように集合的に設定された１つ以上のコンピューティング・デバイスを備える、システム。
＜クローズ８＞
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダに組み込むために受信され、
前記アプリケーション・サービスは、前記ドキュメントが少なくとも１つの前記フォルダと関連させるようにさらに設定され、前記ドキュメント・ディレクトリ及び１人以上のユーザが前記ドキュメントにアクセスする権限を有する、
クローズ７の前記システム。
＜クローズ９＞
前記アプリケーション・サービスは、
前記ドキュメントをアップロードする要求を受信し、
ドキュメント・ストレージの位置の同期クライアントへの表示を送信し、
前記位置で前記ドキュメントの成功したストレージを表示する前記同期クライアントからメッセージを受信する、
ようにさらに設定される、クローズ７〜８の前記システム。
＜クローズ１０＞
前記アプリケーション・サービスは、前記メッセージを受信する場合、データベースに前記ドキュメントがアクティブであることを表示させるようにさらに設定され、
前記ドキュメントは、アクティブになる場合に前記アンダーレイを生成するために利用されることが可能である、
クローズ９の前記システム。
＜クローズ１１＞
前記１つ以上のコンピューティング・デバイスは、
ストレージ・サービスから前記ドキュメントを取得し、
前記取得したドキュメントに少なくとも部分的に基づき前記アンダーレイを生成し、
前記アンダーレイを前記ストレージ・サービス中に格納させる、
ことにより前記アンダーレイを生成するように設定されたコンピューティング・サービスをさらに実装するように集合的に設定される、クローズ７〜１０の前記システム。
＜クローズ１２＞
前記アプリケーション・サービスは、
ドキュメント・ディレクトリの１つ以上のフォルダ中に前記ドキュメントの後続バージョンを組み込む要求を受信し、
前記共通フォーマット中の前記ドキュメントの前記後続バージョンをレンダリングする、
ようにさらに設定される、クローズ７〜１１の前記システム。
＜クローズ１３＞
前記ドキュメントへのアクセスの前記要求は、ユーザ認証情報と関連し、
前記アプリケーションは、前記ユーザが前記ドキュメントにアクセスする権限を付与されることを検証するようにさらに設定される、
クローズ７〜１２の前記システム。
＜クローズ１４＞
集合的にその上に格納された実行可能なインストラクションを有する非一時的なコンピュータ可読記憶媒体において、前記インストラクションがコンピュータ・システムの１つ以上のプロセッサにより実行されるときに、前記コンピュータ・システムは少なくとも、
ドキュメント・コラボレーション及び管理サービスによる組み込み用のドキュメントの受信時に、前記ドキュメント用の名前空間を確保し、前記確保が前記受信した要求に関して同期して実行され、
前記ドキュメントがストレージ・システム中に格納された後、１つ以上のワークフローを起動させ、前記１つ以上のワークフローが前記ドキュメントを利用して、ユニバーサル表記アンダーレイを生成し、前記１つ以上のワークフローが前記ユニバーサル表記アンダーレイを前記ストレージ・システム中に格納させ、
前記ドキュメント上で連携する要求を受信し、前記要求が前記ドキュメント上で連携する特権を有するユーザにより開始され、
前記要求に応じて、前記ストレージ・システム中の前記ユニバーサル表記アンダーレイのストレージ・アドレスの表示を送信する、
ことを引き起こす、前記非一時的なコンピュータ可読記憶媒体。
＜クローズ１５＞
前記コンピュータ・システムに前記ドキュメントを受信させる前記インストラクションは、前記コンピュータ・システムに、
前記ストレージ・システムへ前記ドキュメントをアップロードする要求を受信させ、
前記同期クライアントへ前記ストレージ・システム中の前記ドキュメントを格納する表示を送信させ、
前記同期クライアントから前記ストレージ・システム中に成功して格納される表示を受信させる、
インストラクションをさらに有する、クローズ１４の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ１６＞
前記ドキュメントをアップロードする前記要求は、前記ユーザと関連した認証情報と関連し、
前記インストラクションは、前記１つ以上のプロセッサにより実行されるときに、前記ユーザが前記ドキュメントをアップロードする権限を付与されることを検証することを引き起こすインストラクションをさらに有する、
クローズ１４〜１５の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ１７＞
前記インストラクションは、前記１つ以上のプロセッサで実行されるときに、前記コンピュータ・システムに、前記ドキュメントがアクティブである、または前記ユニバーサル表記アンダーレイを生成するために取得されることが可能である表示をデータベースへ書き込ませるインストラクションをさらに有する、クローズ１４〜１６の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ１８＞
前記インストラクションは、前記１つ以上のプロセッサで実行されるときに、
ドキュメント・ディレクトリ中の前記ドキュメントの後続バージョンを組み込む要求を受信し、
１つ以上の追加のワークフローを開始させ、前記１つ以上の追加のワークフローは、成功した実行において、前記ドキュメントの前記後続バージョンが第二ユニバーサル表記アンダーレイを使用してレンダリングされることを可能にする、
ことを前記コンピュータ・システムに引き起こすインストラクションをさらに有する、クローズ１４〜１７の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ１９＞
前記インストラクションは、前記１つ以上のプロセッサで実行されるときに、前記コンピュータ・システムに、
ユーザと関連した認証情報を受信し、
前記ユーザを前記認証情報に基づき認証させる、
ことを引き起こすインストラクションをさらに有する、クローズ１４〜１８の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ２０＞
前記コンピュータ・システムに前記ドキュメント用の名前空間を確保させる前記インストラクションは、前記１つ以上のプロセッサで実行されるときに、前記コンピュータ・システムがデータベースに指令させ、ディレクトリ、１つ以上のフォルダまたは１人以上のユーザと前期ドキュメントを関連させるインストラクションをさらに有する、クローズ１４〜１９の前記非一時的なコンピュータ可読記憶媒体。
＜クローズ２１＞
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダを介して前記ユーザから前記ドキュメント・コラボレーション及び管理サービスによる組み込みのために受信される、クローズ１４〜２０の前記非一時的なコンピュータ可読記憶媒体。
【００７４】
本明細書及び図面は、したがって、限定的な意味ではなく例示とみなされるべきである。しかしながら、さまざまな修正及び変更は、特許請求の範囲に記載された本発明のより広い趣旨及び範囲から逸脱することなくなされ得ることは明らかであろう。
【００７５】
他の変形は本開示の趣旨内にある。このようにして、本開示の技術は、さまざまな修正及び代替の構成が可能であるが、その特定の例示された実施形態は、図面に示され詳細に上述されている。しかしながら、開示された特定の１つの形態または複数の形態へ本発明を限定する意図がなく、逆に、意図が添付された特許請求の範囲に定義されるように、本発明の趣旨及び範囲内に入る、全ての修正、代替の構成及び均等物を包含するものであることを理解するべきである。
【００７６】
本開示の実施形態（特に以下の特許請求の範囲の文脈において）を記載する文脈中の用語“ａ”及び“ａｎ”及び“ｔｈｅ”及び同様の指示物の使用は、本明細書に示される、または文脈で明らかに矛盾しない限り、単数及び複数の両方に及ぶように解釈されるべきである。用語“ｃｏｍｐｒｉｓｉｎｇ”、“ｈａｖｉｎｇ”、“ｉｎｃｌｕｄｉｎｇ”及び“ｃｏｎｔａｉｎｉｎｇ”は、特に断りのない限り、オープンエンド用語（すなわち、“ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ”を意味する）として解釈されるべきである。用語“ｃｏｎｎｅｃｔｅｄ”は、非修飾で物理的接続を指すときに、何か介在物があっても、部分的にまたは完全に、内に含まれる、に取り付けられる、または互いに結合されるとして解釈されるべきである。本明細書において値の範囲の列挙は、本明細書に指示され各個別の値が個々に本明細書に列挙されているかのように本明細書に組み込まれない限り、範囲内に入る各個別の値へ個々に言及する省略表記方法として役立つように単に意図される。用語“ｓｅｔ”（たとえば、“ａ  ｓｅｔ  ｏｆ  ｉｔｅｍｓ”）または“ｓｕｂｓｅｔ”の使用は、特に明記しない、または文脈と矛盾しない限り、１つ以上の部材を含む空でない集合物として解釈されるべきである。さらにまた、特に明記しない、または文脈と矛盾しない限り、対応するセットの用語“ｓｕｂｓｅｔ”は、必ずしも対応するセットの適切なサブセットを表すものではないが、サブセット及び対応するセットは均等であることができる。
【００７７】
形態“ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，Ｂ，及びＣ”、または“ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，Ｂ及びＣ”の語句のような接続語は、特に記載のない、または文脈と明らかに矛盾しない限り、項目、用語等がＡもしくはＢもしくはＣのいずれか、またはＡ及びＢ及びＣのセットの任意の空でないサブセットである可能性があることを提示するために一般に使用されるような文脈で理解される。たとえば、３つの部材を含む１セットの例示的な実施例において、接続語句“ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，Ｂ，ａｎｄＣ”及び“ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ａ，Ｂ及びＣ”は、以下のセット、｛Ａ｝，｛Ｂ｝，｛Ｃ｝，｛Ａ，Ｂ｝，｛Ａ，Ｃ｝，｛Ｂ，Ｃ｝，｛Ａ，Ｂ，Ｃ｝のいずれかを指す。したがって、このような接続語は、特定の実施形態が各提示されるＡの少なくとも１つ、Ｂの少なくとも１つ及びＣの少なくとも１つを必要とすることを意味することを一般に意図されない。
【００７８】
本明細書に記載されたプロセスの動作は、本明細書で指示されない、または文脈と明らかに矛盾しない限り、任意の適切な順序で実行されることが可能である。本明細書に記載されたプロセス（またはその変形及び／または組合せ）は、実行可能なインストラクションで設定された１つ以上のコンピュータ・システムの制御下で実行されることができ、ハードウェアまたはその組合せにより、１つ以上のプロセッサ上で一括して実行するコード（たとえば、実行可能なインストラクション、１つ以上のコンピュータ・プログラムまたは１つ以上のアプリケーション）として実装されることができる。このコードは、たとえば、１つ以上のプロセッサにより実行可能な複数のインストラクションを有するコンピュータ・プログラムの形態で、コンピュータ可読記憶媒体上に格納されることができる。コンピュータ可読記憶媒体は、非一時的であることができる。
【００７９】
本明細書に提供された任意の及びすべての実施例、または例示的な言語（たとえば、“ｓｕｃｈ  ａｓ”）の使用は、本発明の実施形態のより良い理解を容易にすることを単に意図され、特に断らない限り本発明の範囲を限定するものではない。本明細書中の言語は、本発明の実施に不可欠な任意の非請求要素を示すと解釈されるべきではない。
【００８０】
本発明を実行するために発明者に公知の最良の形態を有する、本開示の好ましい実施形態は、本明細書に記載される。それらの好ましい実施形態の変形は、前述の説明を読めば、当業者に明らかとなるであろう。本発明者らは必要に応じてこのような変形を採用することを当業者に期待し、本発明者らは本明細書に具体的に記載された以外の方法で実施される本開示の実施形態を意図する。したがって、本開示の範囲は、適用法により許容されるように、本明細書に添付された特許請求の範囲に記載の主題のすべての修正及び均等物を含む。また、そのすべての可能な変形における上述の要素の任意の組合せは、本明細書に指示されない、または文脈と明らかに矛盾しない限り、本開示の範囲に包含される。
【図１】
2019012529.tif 000003
【図２】
2019012529.tif 000004
【図３】
2019012529.tif 000005
【図４】
2019012529.tif 000006
【図５】
2019012529.tif 000007
【図６】
2019012529.tif 000008
【図７】
2019012529.tif 000009
【図８】
2019012529.tif 000010
【図９】
2019012529.tif 000011
【手続補正書】
【提出日】平成30年9月20日(2018.9.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのアプリケーション・サービスを実装するように集合的に構成される、１つ以上のコンピューティング・デバイスを備えるシステムであって、前記アプリケーション・サービスは、
ネットワーク経由でドキュメントを受信し、
前記ドキュメントの受信結果として、前記ドキュメント用に、前記ドキュメントの共通フォーマットであるアンダーレイと、前記ドキュメントの１つ以上の注釈を格納するために使用可能であるオーバーレイと、前記アンダーレイとは区別され前記共通フォーマット中の前記アンダーレイ及び座標系によって生成される座標マップと、を生成させ、
ユーザにより開始される前記ドキュメントへのアクセスの要求を受信し、
前記ドキュメントへのアクセスの要求に応答し、前記アンダーレイ、前記オーバーレイ及び前記アンダーレイに関連する前記座標マップをユーザのユーザデバイスへ提供させ、
前記座標マップは、前記ユーザデバイスの表示特性にかかわらず、前記オーバーレイに格納された情報を前記ユーザデバイスに安定的に表示するように構成された、システム。
【請求項２】
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダへの組み込み用として受信され、
前記アプリケーション・サービスはさらに、前記ドキュメントが、少なくとも前記フォルダ、前記ドキュメント・ディレクトリ及び前記ドキュメントにアクセスする権限を有する１以上のユーザと関連するように構成される、
請求項１に記載のシステム。
【請求項３】
前記アプリケーション・サービスは、さらに、
前記ドキュメントをアップロードする要求を受信し、
同期クライアントにドキュメント・ストレージ用の位置の表示を送信し、
前記同期クライアントから、前記位置での前記ドキュメントのストレージの成功を表示するメッセージを受信する、
ように構成される、請求項１または２に記載のシステム。
【請求項４】
前記アプリケーション・サービスはさらに、前記メッセージを受信する際、前記ドキュメントがアクティブであることをデータベースに表示させ、
前記ドキュメントは、アクティブになる際に、前記アンダーレイを生成するために利用されることが可能である、請求項３に記載のシステム。
【請求項５】
前記１以上のコンピューティング・デバイスは、
ストレージ・サービスから前記ドキュメントを取得し、
前記取得したドキュメントに基づき前記アンダーレイを生成し、
前記アンダーレイを前記ストレージ・サービス中に格納させる、
ことにより、前記アンダーレイを生成するように構成されたコンピューティング・サービスをさらに実装するように集合的に構成される、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記アプリケーション・サービスは、さらに、
ドキュメント・ディレクトリの１つ以上のフォルダに、前記ドキュメントの後続バージョンを組み込む要求を受信し、
前記ドキュメントの前記後続バージョンを前記共通フォーマットでレンダリングする、
ように構成される、請求項１〜５のうちいずれか１項に記載のシステム。
【請求項７】
前記ドキュメントへのアクセスの要求は、ユーザ認証情報と関連し、
前記アプリケーション・サービスはさらに、前記ユーザが前記ドキュメントにアクセスする権限を付与されることを検証するように構成される、
請求項１〜６のうちいずれか１項に記載のシステム。
【請求項８】
１つ以上のコンピューティング・デバイスによって実行される、ドキュメントの管理のための方法であって、前記方法は、
ネットワーク経由でドキュメントを受信し、
前記ドキュメントの受信結果として、前記ドキュメント用に、前記ドキュメントの共通フォーマットであるアンダーレイと、前記ドキュメントの１つ以上の注釈を格納するために使用可能であるオーバーレイと、前記アンダーレイとは区別され、前記共通フォーマット中の前記アンダーレイ及び座標系によって生成される座標マップと、を生成させ、
ユーザにより開始される前記ドキュメントへのアクセスの要求を受信し、
前記ドキュメントへのアクセスの要求に応答し、前記アンダーレイ、前記オーバーレイ及び前記アンダーレイに関連する前記座標マップをユーザのユーザデバイスへ提供させ、
前記座標マップは、前記ユーザデバイスの表示特性にかかわらず、前記オーバーレイに格納された情報を前記ユーザデバイスに安定的に表示することを可能とする、方法。
【請求項９】
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダへの組み込み用として受信され、
前記方法はさらに、前記ドキュメントと、少なくとも前記フォルダ、前記ドキュメント・ディレクトリ及び前記ドキュメントにアクセスする権限を有する１以上のユーザとを関連させることを含む、
請求項８に記載の方法。
【請求項１０】
前記方法はさらに、
前記ドキュメントをアップロードする要求を受信し、
同期クライアントにドキュメント・ストレージ用の位置の表示を送信し、
前記同期クライアントから、前記位置での前記ドキュメントのストレージの成功を表示するメッセージを受信する、
ことを含む、請求項８または９に記載の方法。
【請求項１１】
前記方法はさらに、前記メッセージを受信する際、前記ドキュメントがアクティブであることをデータベースに表示させることを含み、
前記ドキュメントは、アクティブになる際に、前記アンダーレイを生成するために利用されることが可能である、請求項１０に記載の方法。
【請求項１２】
ストレージ・サービスから前記ドキュメントを取得し、
前記取得したドキュメントに基づき前記アンダーレイを生成し、
前記アンダーレイを前記ストレージ・サービス中に格納させることにより、前記アンダーレイが生成される、請求項８〜１１のいずれか１項に記載の方法。
【請求項１３】
ドキュメント・ディレクトリの１つ以上のフォルダに、前記ドキュメントの後続バージョンを組み込む要求を受信し、
前記ドキュメントの前記後続バージョンを前記共通フォーマットでレンダリングすることをさらに含む、請求項８〜１２のいずれか１項に記載の方法。
【請求項１４】
前記ドキュメントへのアクセスの要求は、ユーザ認証情報と関連し、
前記方法はさらに、前記ユーザが前記ドキュメントにアクセスする権限を付与されることを検証することを含む、
請求項８〜１３のうちいずれか１項に記載の方法。
【請求項１５】
実行可能なインストラクションが集合的に格納された少なくとも１つのコンピュータ可読記憶媒体において、前記インストラクションが１つ以上のコンピューティング・デバイスで実行されると、前記１つ以上のコンピューティング・デバイスに、請求項８〜１４のいずれか１項に記載の方法を実行させる、少なくとも１つのコンピュータ可読記憶媒体。
【手続補正書】
【提出日】平成30年12月7日(2018.12.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのアプリケーション・サービスを実装するように集合的に構成される、１つ以上のコンピューティング・デバイスを備えるシステムであって、前記アプリケーション・サービスは、
前記ドキュメントをアップロードする要求を受信し、
同期クライアントにドキュメント・ストレージ用の位置の表示を送信し、
前記同期クライアントから、前記位置での前記ドキュメントのストレージの成功を表示するメッセージを受信し、
前記ドキュメントの受信結果として、
前記ドキュメント用に、前記アンダーレイと、前記ドキュメントの１つ以上の注釈を格納するために使用可能であるオーバーレイと、前記アンダーレイとは区別され、前記共通フォーマットである前記アンダーレイ及び座標系に基づいて生成される座標マップと、を生成させ、
ユーザにより開始される前記ドキュメントへのアクセスの要求を受信し、
前記ドキュメントへのアクセスの要求に応答し、前記アンダーレイ、前記オーバーレイ及び前記アンダーレイに関連する前記座標マップをユーザのユーザデバイスへ提供させ、
前記座標マップは、前記ユーザデバイスの表示特性にかかわらず、前記オーバーレイに格納された情報を前記ユーザデバイスに安定的に表示するように構成された、システム。
【請求項２】
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダへの組み込み用として受信され、
前記アプリケーション・サービスはさらに、前記ドキュメントが、少なくとも前記フォルダ、前記ドキュメント・ディレクトリ及び前記ドキュメントにアクセスする権限を有する１以上のユーザと関連するように構成される、
請求項１に記載のシステム。
【請求項３】
前記アプリケーション・サービスはさらに、前記メッセージを受信する際、前記ドキュメントがアクティブであることをデータベースに表示させ、
前記ドキュメントは、アクティブになる際に、前記アンダーレイを生成するために利用されることが可能である、請求項１に記載のシステム。
【請求項４】
前記１以上のコンピューティング・デバイスは、
ストレージ・サービスから前記ドキュメントを取得し、
前記取得したドキュメントに基づき前記アンダーレイを生成し、
前記アンダーレイを前記ストレージ・サービス中に格納させる、
ことにより、前記アンダーレイを生成するように構成されたコンピューティング・サービスをさらに実装するように集合的に構成される、請求項１から３のうちいずれか一項に記載のシステム。
【請求項５】
前記アプリケーション・サービスは、さらに、
ドキュメント・ディレクトリの１つ以上のフォルダに、前記ドキュメントの後続バージョンを組み込む要求を受信し、
前記ドキュメントの前記後続バージョンを前記共通フォーマットでレンダリングする、
ように構成される、請求項１から請求項４のうちいずれか１項に記載のシステム。
【請求項６】
前記ドキュメントへのアクセスの要求は、ユーザ認証情報と関連し、
前記アプリケーション・サービスはさらに、前記ユーザが前記ドキュメントにアクセスする権限を付与されることを検証するように構成される、
請求項１から請求項５のうちいずれか１項に記載のシステム。
【請求項７】
１つ以上のコンピューティング・デバイスによって実行される、ドキュメントの管理のための方法であって、前記方法は、
前記ドキュメントをアップロードする要求を受信し、
同期クライアントにドキュメント・ストレージ用の位置の表示を送信し、
前記同期クライアントから、前記位置での前記ドキュメントのストレージの成功を表示するメッセージを受信し、
前記ドキュメントの受信結果として、
前記ドキュメント用に、前記アンダーレイと、前記ドキュメントの１つ以上の注釈を格納するために使用可能であるオーバーレイと、前記アンダーレイとは区別され、前記ドキュメントの前記共通フォーマットである前記アンダーレイ及び座標系に基づいて生成される座標マップと、を生成させ、
ユーザにより開始される前記ドキュメントへのアクセスの要求を受信し、
前記ドキュメントへのアクセスの要求に応答し、前記アンダーレイ、前記オーバーレイ及び前記アンダーレイに関連する前記座標マップをユーザのユーザデバイスへ提供させ、
前記座標マップは、前記ユーザデバイスの表示特性にかかわらず、前記オーバーレイに格納された情報を前記ユーザデバイスに安定的に表示することを可能とする、方法。
【請求項８】
前記ドキュメントは、ドキュメント・ディレクトリの１つ以上のフォルダのうちの１つのフォルダへの組み込み用として受信され、
前記方法はさらに、前記ドキュメントと、少なくとも前記フォルダ、前記ドキュメント・ディレクトリ及び前記ドキュメントにアクセスする権限を有する１以上のユーザとを関連させることを含む、
請求項７に記載の方法。
【請求項９】
前記方法はさらに、前記メッセージを受信する際、前記ドキュメントがアクティブであることをデータベースに表示させることを含み、
前記ドキュメントは、アクティブになる際に、前記アンダーレイを生成するために利用されることが可能である、請求項７に記載の方法。
【請求項１０】
ストレージ・サービスから前記ドキュメントを取得し、
前記取得したドキュメントに基づき前記アンダーレイを生成し、
前記アンダーレイを前記ストレージ・サービス中に格納させることにより、前記アンダーレイが生成される、請求項７又は請求項８に記載の方法。
【請求項１１】
ドキュメント・ディレクトリの１つ以上のフォルダに、前記ドキュメントの後続バージョンを組み込む要求を受信し、
前記ドキュメントの前記後続バージョンを前記共通フォーマットでレンダリングすることをさらに含む、請求項７から請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記ドキュメントへのアクセスの要求は、ユーザ認証情報と関連し、
前記方法はさらに、前記ユーザが前記ドキュメントにアクセスする権限を付与されることを検証することを含む、
請求項７から請求項１１のうちいずれか１項に記載の方法。
【請求項１３】
実行可能なインストラクションが集合的に格納された少なくとも１つのコンピュータ可読記憶媒体において、
前記インストラクションが１つ以上のコンピューティング・デバイスで実行されると、前記１つ以上のコンピューティング・デバイスに、請求項７から請求項１２のいずれか１項に記載の方法を実行させるコードを含む、少なくとも１つのコンピュータ可読記憶媒体。