(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-16
(45)【発行日】2024-04-24
(54)【発明の名称】ドキュメント処理のためのクライアントコンピュータの使用
(51)【国際特許分類】
G06F 21/62 20130101AFI20240417BHJP
G06F 21/60 20130101ALI20240417BHJP
G06F 16/907 20190101ALI20240417BHJP
【FI】
G06F21/62 309
G06F21/60 320
G06F16/907
(21)【出願番号】P 2021568753
(86)(22)【出願日】2020-04-03
(86)【国際出願番号】 US2020026583
(87)【国際公開番号】W WO2020242599
(87)【国際公開日】2020-12-03
【審査請求日】2023-03-20
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100119781
【氏名又は名称】中村 彰吾
(72)【発明者】
【氏名】チェン,ジンホワ
(72)【発明者】
【氏名】スリバスタバ,デベシュ
(72)【発明者】
【氏名】リブマン,マシュリ・アール
(72)【発明者】
【氏名】コレツキー,アナトリー
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2012-068833(JP,A)
【文献】米国特許出願公開第2012/0072969(US,A1)
【文献】特開2016-181242(JP,A)
【文献】特開2016-091132(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/60
G06F 16/907
(57)【特許請求の範囲】
【請求項1】
ハードウェア処理回路と、
実行されると、
第1の電子ドキュメントに第1のラベルを割り当てることと、
前記第1のラベルによって規定されたドキュメント要件を特定することと、
前記ドキュメント要件に基づいて前記第1の電子ドキュメントの修正のセットを決定することと、
前記ハードウェア処理回路が実行するように構成された修正の前記セットのサブセットを決定することと、
前記サブセットに基づいて前記第1の電子ドキュメントを修正することと、
前記ラベル、前記第1の電子ドキュメントを示し、前記ハードウェア処理回路によって行われた前記修正を個別に示すようにメッセージを生成することと、
クラウドベースのネットワークサービスに前記メッセージを送信することであって、前記メッセージが前記第1の電子ドキュメントの修正の前記セットの残りの部分を完了するように前記クラウドベースのネットワークサービスに指示する、送信することと
を含む動作を実行するように前記ハードウェア処理回路を構成する命令を記憶する1つまたは複数の電子メモリと
を備える、システム。
【請求項2】
前記ドキュメント要件を特定することが、
前記第1のラベルに基づいてデータストアを探索することと、
前記探索に基づいて前記ドキュメント要件を特定することと
を含む、請求項1に記載のシステム。
【請求項3】
前記ハードウェア処理回路がクライアントデバイスに含まれ、前記メッセージが前記クラウドベースのネットワークサービスを提供する電子メールアプリケーションに送信される、請求項1に記載のシステム。
【請求項4】
前記クラウドベースのネットワークサービスが、前記メッセージに基づいて、前記サブセットに含まれない修正の前記セットからの修正を実行するように構成される、請求項1に記載のシステム。
【請求項5】
前記メッセージが、前記第1の電子ドキュメントのコンテンツとは別個の前記メッセージのフィールド内で行われた前記修正の各々を識別することにより、前記修正を個別に示すようにさらに生成される、請求項1に記載のシステム。
【請求項6】
ハードウェア処理回路と、
実行されると、
ネットワークサービスによって第1のデバイスから、第1のドキュメント、前記第1のドキュメントに適用するラベルの指示、および前記ラベルの要件と前記第1のドキュメントの第1の状態との間の第1のギャップの指示を受信することと、
前記示された第1のギャップに基づいて、前記第1のドキュメントに対する修正の第1のセットを決定することと、
前記第1のドキュメントに対する修正の前記第1のセットを実行することと、
前記ネットワークサービスによって第3のデバイスから、第2のドキュメント、前記ラベルが前記第2のドキュメントに適用されることの指示、および前記ラベルの前記要件と前記第2のドキュメントの第2の状態との間の第2のギャップの指示を受信することであって、前記第2のギャップが前記第1のギャップとは異なる、受信することと、
前記示された第2のギャップに基づいて、前記第2のドキュメントに対する修正の第2のセットを決定することと、
前記第2のドキュメントに対する修正の前記第2のセットを実行することと
を含む動作を実行するように前記ハードウェア処理回路を構成する命令を記憶する1つまたは複数のハードウェアメモリと
を備える、システム。
【請求項7】
前記第1のドキュメントおよび前記第1のギャップの前記指示がネットワークメッセージ内で前記ネットワークサービスによって受信され、前記第1のギャップが、前記ラベルの前記要件を満たさない前記第1のドキュメントのドキュメントプロパティのリストによって示される、請求項6に記載のシステム。
【請求項8】
前記第1のドキュメントおよび前記第1のギャップの前記指示がネットワークメッセージ内で前記ネットワークサービスによって受信され、前記第1のギャップが、前記ラベルの前記要件を満たす前記第1のドキュメントのドキュメントプロパティのリストによって示される、請求項6に記載のシステム。
【請求項9】
前記ドキュメントプロパティが、前記第1のドキュメントのフッタ、前記第1のドキュメントのヘッダ、前記第1のドキュメントの暗号化レベル、前記第1のドキュメントのパスワード複雑性、または前記第1のドキュメントの透かしのうちの1つまたは複数を含む、請求項8に記載のシステム。
【請求項10】
前記第1のドキュメントが前記ラベルの前記要件を満たすときに満たされる複数の基準を前記ラベルが規定する、請求項6に記載のシステム。
【請求項11】
前記第1のギャップが、前記ラベルによって規定されたそれらそれぞれの基準を満たさない前記第1のドキュメントのドキュメントプロパティを識別する、請求項6に記載のシステム。
【請求項12】
修正の前記第2のセットの前記実行が、出力デバイスに前記第2のドキュメントの修正バージョンを書き込むことを含む、請求項6に記載のシステム。
【請求項13】
前記第1のデバイスが、前記ラベルに準拠するために前記第1のドキュメントに対する修正の第1のグループを実行するように構成され、前記第3のデバイスの構成が、修正の前記第1のグループ内の少なくとも1つの修正を実行しないように前記第3のデバイスを防止する、請求項6に記載のシステム。
【請求項14】
前記第1のデバイスにインストールされた第1のソフトウェアアプリケーションが前記第1のドキュメントの第1のプロパティを修正するように構成され、前記第1のソフトウェアアプリケーションが前記第3のデバイスにインストールされていない、請求項13に記載のシステム。
【請求項15】
第1のデバイスのハードウェア処理回路によって実行される方法であって、
第1の電子ドキュメントに第1のラベルを割り当てるステップと、
前記第1のラベルによって規定されたドキュメント要件を特定するステップと、
前記ドキュメント要件に基づいて前記第1の電子ドキュメントの修正のセットを決定するステップと、
前記第1のデバイスが実行するように構成された修正の前記セットの第1の部分を決定するステップと、
前記第1の部分に従って前記第1の電子ドキュメントを修正するステップと、
前記ラベル、前記電子ドキュメントを示し、前記第1のデバイスによって行われた修正の前記セットの前記第1の部分を個別に示すようにメッセージを生成するステップと、
ネットワークサービスに前記メッセージを送信するステップであって、前記メッセージが前記第1の電子ドキュメントに対する修正の前記セットの残りの部分を実行するように前記ネットワークサービスに指示する、ステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明の一実施例は、例えば、ドキュメント処理のためのクライアントコンピュータの使用に関する。
【背景技術】
【0002】
[0001]現代の企業は毎週数千ものドキュメントを作成する場合がある。これらのドキュメントの多くは、ある特定の承認された団体を除いて開示されるべきでない機密情報を含む場合がある。この機密情報の管理を容易にするために、ドキュメントはそのドキュメントがどのように管理されるかを規定するラベルを割り当てられる場合がある。たとえば、いくつかのラベルは、ドキュメントが公共ネットワークを介して送信されるときに特定のタイプの暗号化を使用して暗号化されなければならないと規定する場合がある。いくつかのラベルは、ドキュメント自体の内容がある特定の要件を満たさなければならないと指示する場合がある。たとえば、いくつかのラベルは、ドキュメントのための特定の透かし、ヘッダ、またはフッタを要求する場合がある。ドキュメントがそれらのラベリング要件に準拠することが保証されると、重要な組織情報が不適切に開示される危険が低減される。したがって、ドキュメントのラベリング要件を管理する改善された方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本願発明の一実施例は、例えば、ドキュメント処理のためのクライアントコンピュータの使用に関する。
【課題を解決するための手段】
【0004】
[0002]必ずしも縮尺通りに描かれるとは限らない図面において、同様の番号は異なる図の中の同様の構成要素を記載することができる。異なる文字サフィックスを有する同様の番号は、同様の構成要素の異なるインスタンスを表すことができる。図面は、一般に、限定ではなく例として、本明細書で説明される様々な実施形態を示す。
【図面の簡単な説明】
【0005】
【
図1】[0003]開示された実施形態のうちの1つまたは複数において実装される場合があるドキュメントラベリングシステムの概略図である。
【
図2】[0004]開示された実施形態のうちの1つまたは複数において実装される場合がある構成要素のブロック図である。
【
図3】[0005]ドキュメントプロパティ、プロパティ状態、およびドキュメントプロパティを1つの状態から異なる状態に変更する修正を示す図である。
【
図4】[0006]開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なデータ構造を示す図である。
【
図5A】[0007]開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なメッセージ部分の図である。
【
図5B】[0008]開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なメッセージ部分の図である。
【
図6】[0009]電子ドキュメントにラベルを付ける方法のフローチャートである。
【
図7】[0010]電子ドキュメントにラベルを付ける方法のフローチャートである。
【
図8】[0011]電子ドキュメントにラベルを付ける方法のフローチャートである。
【
図9】[0012]本明細書で説明された技法(たとえば、方法)のうちのいずれか1つまたは複数がその上で実行することができる例示的な機械のブロック図である。
【
図10】[0013]開示された実施形態のうちの1つまたは複数によってその少なくとも一部分が実装される場合があるネットワーク化システムの概略図である。
【発明を実施するための形態】
【0006】
[0014]以下の説明および図面は、具体的な実施形態を、当業者がそれらを実践することを可能にするほど十分に示す。他の実施形態は、構造的変更、論理的変更、電気的変更、プロセス変更、および他の変更を組み込むことができる。いくつかの実施形態の部分および特徴は、他の実施形態のそれらに含まれてもよく、それらと交換されてもよい。特許請求の範囲に記載される実施形態は、それらの特許請求の範囲のすべての利用可能な均等物を包含する。
【0007】
[0015]ドキュメントが上述されたそれらのラベリング要件に準拠することを保証することは重要であるが、これは、この準拠を保証することで変更されたシステムにある特定の負担をかける。たとえば、要件はいくつかのドキュメントの暗号化を要求する場合があり、それは、それを実行するように要求されたシステム上の比較的高い計算負荷を改善することができる。必要なコンピュータ能力がそのような計算負荷を処理することに利用可能であることを保証することは、そのようなシステムのプロバイダに追加のコストを負わせる可能性がある。これらの追加のコストは、集中型システムが多数の多様なデバイスからの大量のドキュメントを処理することに関与する場合、特に深刻であり得る。
【0008】
[0016]ドキュメントの準拠を保証するために必要な任意の修正を行うことはまた、ドキュメント処理に待ち時間をもたらす可能性がある。したがって、たとえば、特定のコンピューティングシステムがドキュメントを受信し、そのドキュメントをネットワークに転送する任務を負う場合、最初にそのドキュメントをそのラベルに準拠させるために必要な任意のタスクは、ドキュメントが受信されたときとその転送との間の待ち時間を増大させる。
【0009】
[0017]開示された実施形態は、電子ドキュメントにラベルを割り当てることを実現する。割り当てられたラベルは、ドキュメントに対する1つまたは複数の要件を示す場合がある。たとえば、「極秘」というラベルを付けられたドキュメントは、ドキュメントが極秘であることを示す透かし、ヘッダ、またはフッタを含むようにそのドキュメントに要求することができる。「最高機密」というラベルを付けられたドキュメントは、電子媒体を介して転送されるときに暗号化されるようにドキュメントに要求することができる。要件の各々は、ドキュメントプロパティに関する値または基準を規定する。ラベルは、1つまたは複数のドキュメントプロパティに対して要求された値または基準を規定することができる。ドキュメントが最初にラベルを割り当てられるとき、いくつかの実施形態では、ドキュメントはラベルの要件に準拠していない。
【0010】
[0018]開示された実施形態は、ドキュメントがそれらそれぞれの割り当てられたラベルによって課された要件に準拠するように、電子ドキュメントを修正することをさらに実現する。その上、開示された実施形態は、開示された実施形態に参加するデバイスのうちのいくつかの能力におけるばらつきにもかかわらず、処理負荷の分散を実現する。
【0011】
[0019]以下により詳細に記載されるように、デバイスはドキュメントを修正するそれらの能力において異なる場合がある。いくつかのデバイスは、様々なドキュメントタイプに対して操作または動作することができる特定のアプリケーションを含むように構成される場合がある。たとえば、第1のドキュメントタイプは専用であり得、コンピュータが第1のドキュメントタイプのドキュメントを編集またはさもなければ修正することができる前に、特定のベンダによって発行されたアプリケーションがコンピュータにインストールされることを要求することができる。いくつかのコンピュータは、この専用アプリケーションをインストールさせることができ、他のコンピュータはできない。同様に、いくつかの暗号化アルゴリズムは、いくつかのデバイスの能力を超える処理要件および/またはメモリ要件を有する場合があり、他のデバイスは暗号化を実行するのに十分なコンピューティングリソースを有する場合がある。
【0012】
[0020]デバイスの能力におけるばらつきにもかかわらず、これらのデバイスにコンピューティングタスクを分散することは、単一のユーザによる使用のために設計されたデバイスと、複数の、時々多数のユーザに関連付けられた処理を行う任務を負う場合がある他のデバイスの両方を含む、分散システムに対する有益な効果を有する。たとえば、電子メールサーバなどの中央サーバは、電子メッセージに添付されたドキュメントをそれらのドキュメントに割り当てられたそれぞれのラベルに準拠させる任務を負う場合、大きい処理オーバーヘッドを招く可能性がある。電子メールを起動するクライアントデバイスにこのドキュメント準拠の責務の一部を委譲することは、中央サーバにとって、その処理要件が低減されるという点で有益である。これは、中央サーバの異なるクライアントデバイスが遂行できることにわたって何らかのばらつきが存在する場合でも同じである。
【0013】
[0021]このように、開示された実施形態は、ドキュメントをそれらそれぞれのラベルに準拠させることに関連付けられた可変量の処理オーバーヘッドの分散を実現する。開示された実施形態は、ドキュメントをそのドキュメントに割り当てられたラベルに準拠させるために必要な、ドキュメントに対するゼロ以上の修正をネットワークサービスに通信するために、第1のデバイスによる通信を容易にする例示的なメッセージフォーマットを記載する。ドキュメントはまた、メッセージ自体によって識別されるか、または時々それに含まれる。メッセージはさらに、ドキュメントに対してすでに行われた、ラベルと一致する修正を識別することができる。メッセージを受信すると、ネットワークサービスは、ドキュメントをその割り当てられたラベルに準拠させるために実行される必要がある、識別されたドキュメントに固有の修正を特定することができる。(たとえば、バックエンドまたはサーバデバイス上で動作する)いくつかのネットワークサービスは、第1のデバイス(たとえば、クライアントデバイス、モバイルデバイス、または個別のユーザ向けに設計されたデバイス)よりも多くの計算リソースおよび/またはソフトウェア能力にアクセスできるので、ネットワークサービスは、一般に、第1のデバイスよりも多くの能力を有することができる。
【0014】
[0022]開示された例示的なメッセージフォーマットは、ネットワークサービスが第1のデバイスによってすでに実行されたドキュメント処理を補足するようにそのドキュメント処理を動的に適合させることを可能にする。第1のデバイスがより有能であるとき、ドキュメントをその関連するラベルに準拠させるネットワークサービスの負担は、比較的小さい場合がある。第3のデバイスが第1のデバイスよりも比較的有能でないとき、ネットワークサービスは、ドキュメントをその関連するラベルに準拠させるために必要な処理オーバーヘッドの相対的に大きい共有を実行することができる。言い換えれば、記載されたメッセージフォーマットは、必要に応じて、ネットワークサービスが第1のデバイスおよび第3のデバイスの処理能力において、かつ異なる能力を有する複数のクライアントデバイスにわたって「ギャップを埋める」ことを可能にする。結果として得られる解決策は、ネットワークサービスの実装に成功するために必要な、計算リソースの全体的な減少を実現する。これは、ネットワークサービスを提供するコストを削減し、パフォーマンス、および顧客体験も改善することができる。
【0015】
[0023]
図1は、開示された実施形態のうちの1つまたは複数において実装される場合があるドキュメントラベリングシステムの概略図である。ドキュメントラベリングシステム100は、2つのデバイス102aおよび102bを含む。2つのデバイス102a~bの各々は、ラベル構成データストア104からラベル構成情報を読み取る。ラベル構成データストアは、ドキュメントラベルをドキュメントに対する1つまたは複数の要件にマッピングする。クライアントデバイス102aおよび102bの各々は、ドキュメントデータストア116からドキュメントを取得する。いくつかの態様では、2つのクライアントデバイス102aおよび102bは、別々のデータストアからドキュメントを取得することができる。いくつかの態様では、ドキュメントデータストア116は、それぞれのデバイス102aおよび102bの各々のためのローカルファイルシステムによって表される。ドキュメントデータストア116からのドキュメントは、ラベルを割り当てられる場合がある。たとえば、デバイス102aおよび/またはデバイス102bに表示されるユーザインターフェースは、特定のドキュメントのためのラベルの選択を実現することができる。ドキュメントにラベルを割り当てることは、ドキュメントがラベルに関連付けられた要件に準拠しなければならないことを示す。これらの要件はまた、ラベル構成データストア104によって示される。ラベルの要件は、特に、ドキュメントが安全な環境106などの安全な環境を離れるときに強化される。安全な環境106は、ネットワークアクセス境界などのアクセス境界を表すことができる。一例として、安全な環境106内のネットワーク、またはネットワーク上を流れるデータに対するアクセスは、会社または他の組織などの特定の企業によって管理されるアクセス認証情報を必要とする場合がある。そのような認証情報がない場合、ネットワークまたはネットワークデータに対するアクセスは、安全な環境106内で可能でない。安全な環境106の外部では、ネットワーク上のデータにアクセスするために、アクセス認証情報の異なるセットが必要であるか、または潜在的にアクセス認証情報が必要でない。
【0016】
[0024]
図1はまた、ドキュメントラベリングシステム108を示す。ドキュメントラベリングシステム108は、いくつかの実施形態では、電子メールサーバであってもよい。デバイス102aおよび102bは、ドキュメントラベリングシステム108にドキュメントを送信する。たとえば、ドキュメントラベリングシステム108が電子メールサーバである場合、デバイス102aおよび102bは、処理し、それぞれ宛先デバイス110aおよび110bに転送するために、システム108に電子メールメッセージを送信する。
【0017】
[0025]上述されたように、安全な環境106の外部に送信されるドキュメントがそれらそれぞれのラベルの要件に準拠することを保証することは、ドキュメントラベリングシステム108に対してある特定の処理要件を課す。たとえば、いくつかのラベルは、特定のタイプの暗号化がドキュメントに適用されることを要求する場合がある。ドキュメント内容を暗号化することは、処理リソース、メモリリソース、および他の計算リソースを消費する。システム100が、割り当てられたラベルとのドキュメントの準拠を保証するために必要なタスクの大部分またはすべてをドキュメントラベリングシステム108に依存している場合、実質的なリソース消費はドキュメントラベリングシステム108上で発生する可能性がある。この負荷を管理するために、ドキュメントラベリングシステム108のプロバイダは、課された負荷を十分に処理するためにより高速の、より強力な、または追加のサーバハードウェアを提供することにより、さらなる出費を被る可能性がある。ドキュメントラベリングシステム108のプロバイダが被るコストを最小化するために、ドキュメントをそれらのラベルに準拠させることに関連付けられたタスクをデバイス102aおよび/または102bに分散することが望ましい。
【0018】
[0026]しかしながら、デバイス102aおよび/または102bの能力は異なる場合がある。たとえば、デバイス102aおよび102bは、それぞれのデバイスに異なる特徴を含める異なる組織によって製造される場合がある。さらに、デバイスは、取り付けられたメモリの量、利用可能なハードディスク空間、プロセッサの速度もしくは能力、または他のタイプのばらつきにおいて異なる場合がある。このように、デバイス102aおよび102bは、適用されたラベルと一致する方式でドキュメントを処理するそれらの能力において異なる場合がある。一例として、特定のタイプのドキュメントが特定のドキュメントフッタを含めるように特定のラベルが要求する場合があるが、デバイス102a上で動作しているオペレーティングシステム上で、特定のドキュメントタイプ向けのエディタが利用可能でないか、またはインストールされていない可能性がある。エディタは、デバイス102b上で利用可能な場合がある。同様に、デバイス102bは特定のドキュメントラベルのために指定された暗号化アルゴリズムを実行するために十分なメモリまたはディスク空間を装備していない場合があるが、デバイス102aは十分なメモリを有する場合がある。
【0019】
[0027]このように、ラベル構成データストア104内で指定されたラベル要件は、1つまたは複数の点でデバイス102aおよび102bの能力を超える場合があり、それらはデバイス102aと102bとの間で異なる場合がある。ドキュメントラベリングシステム108はラベル要件を満たすのに十分なリソースを有するが、ドキュメントラベルに準拠するために必要なドキュメント処理のすべてをドキュメントラベリングシステム108に実行させることは、上述されたように、ドキュメントラベリングシステム108の望ましくない量の計算リソースを消費する。
【0020】
[0028]したがって、開示された実施形態は、デバイス102a~bがドキュメントをそのラベルに準拠させるために必要なドキュメント処理の一部分を実行することを実現し、次いで、ドキュメントラベリングシステム108がデバイス102aまたは102bからドキュメントを受信したときに必要な任意の残りの処理を完了することを実現する。
【0021】
[0029]この機能を容易にするために、開示された実施形態は、デバイス102aまたは102bとドキュメントラベリングシステム108との間の通信用のメッセージ定義を提供する。
図1に示されたように、デバイス102aはドキュメントラベリングシステム108にメッセージ122aを送信する。メッセージは、ドキュメントラベリングシステム108が処理するためのドキュメントを示す。メッセージ122aは、ドキュメントをそのラベルに準拠させるためにどの処理がデバイス102aによって実行されたか、および/または、たとえば、メッセージ124aを介して外部システム110aにドキュメントをさらに送信する前に、ドキュメントラベリングシステム108が完了するために必要な任意の残りの処理をさらに示す。
【0022】
[0030]デバイス102bはドキュメントラベリングシステム108に第2のメッセージ122bを送信する。第2のメッセージ122bは、ドキュメントラベリングシステム108が処理するための第2のドキュメントを示す。第2のメッセージ122bは、メッセージ102a内で示された処理以外のデバイス102bによって実行された異なる処理をさらに示す場合がある。第2のメッセージは、代替または追加として、第2の電子ドキュメントをそのラベルに準拠させるためにドキュメントラベリングシステム108による必要な処理を示す。
【0023】
[0031]したがって、ドキュメントラベリングシステム108は、デバイス102aおよび102bの各々によって提供された可変量の処理を有するドキュメントを受信する。ドキュメントラベリングシステム108は、次いで、デバイス102bおよび102aから受信されたドキュメントに対して異なる処理を実行する。このように、ドキュメントラベリングシステム108は、適応型ドキュメント処理を実現する。ドキュメントラベリングシステム108によるドキュメントの処理を動的に適合することにより、開示された実施形態は、各デバイス102aおよび102bの能力におけるばらつきも動的に適合しながら、ドキュメントをそれらそれぞれのラベルに準拠させるために、デバイス102aおよび102b上のいくつかのコンピューティングリソースを使用することができる。
【0024】
[0032]ドキュメントラベリングシステム108は、実施形態に応じて様々な構成を使用して実装されてもよい。いくつかの実施形態では、ドキュメントラベリングシステム108は、ネットワークを介してアクセス可能な単一のデバイスである。いくつかの他の実施形態では、ドキュメントラベリングシステム108は、単一のホスト名またはネットワークアドレスを介して、たとえばロードバランサを介してアクセス可能であり得る、複数の物理デバイスから構成される。いくつかの実施形態では、ドキュメントラベリングシステム108は、クラウドベースのサービスとして実装される。このように、これらの実施形態におけるドキュメントラベリングシステム108は、ネットワークアドレスまたはホスト名を介してアクセス可能であるが、クラウドベースのデバイスの動的プールによって実装され、動的プールは、様々な理由でサービスを実装するために、プールに動的に割り振られるか、または割振り解除される場合がある。たとえば、いくつかの実施形態では、第1の物理デバイスはサービスを実装するデバイスのプールに割り振られ、次いで、クラウド管理システムは、第1の物理デバイスに合わせてサービスを実装するために1つまたは複数のさらなる物理デバイスを追加する。他のデバイスは、サービスを実装するデバイスのプールから削除される場合がある。
【0025】
[0033]
図1はまた、管理コンソール112を示す。管理コンソールは、ドキュメントラベルと前記ラベルを有するドキュメントの要件との間のマッピングの構成を実現する。ラベル構成112は、デバイス102a、102b、およびドキュメントラベリングシステム108の各々によって読み取られる。
【0026】
[0034]
図2は、開示された実施形態のうちの1つまたは複数において実装される場合がある構成要素のブロック図である。
図2は、クライアント1モジュール202、クライアント2モジュール204、適応型ドキュメント処理モジュール206、および管理ユーザインターフェースモジュール208を示す。モジュール202、204、206、および208の各々は、それぞれのモジュールの各々に起因する機能のうちの1つまたは複数を実行するようにハードウェア処理回路を構成するソフトウェア命令を含む場合がある。
図2に示されたデータフローは、
図1に示されたデータフローに類似する。クライアント1モジュール202は、デバイス102a上で実行されてもよい。クライアント2モジュール204は、デバイス102b上で実行することができる。適応型ドキュメント処理モジュールは、ドキュメントラベリングシステム108上で実行することができる。管理ユーザインターフェースモジュール208は、管理コンソール112で実行することができる。
【0027】
[0035]図示されたように、クライアント1モジュール202およびクライアント2モジュール204の各々は、それぞれメッセージ122aおよび122bを適応型ドキュメント処理モジュール206に送信する。管理ユーザインターフェースモジュール208は、データフロー215を介してドキュメントラベルのための要件を規定するマッピングを書き込む。クライアント1モジュール202、クライアント2モジュール204、および適応型ドキュメント処理モジュール206の各々は、それぞれデータフロー218a~cを介してラベル構成データベース104からマッピングを読み取る。
【0028】
[0036]
図1に関して上述されたように、クライアントデバイス102aおよび102bは、ドキュメントを特定のラベルに準拠させるそれらの能力において異なる場合がある。同様に、クライアント1モジュール202およびクライアント2モジュール204は、この点に関してさらに異なる場合がある。たとえば、クライアント1モジュール202は、特定のタイプの暗号化を実行する命令を含む場合があり、クライアント2モジュール204は同様の命令を含まない。適応型ドキュメント処理モジュール206は、クライアント1モジュール202がこの機能を実行することから適応型ドキュメント処理モジュール206をオフロードする前記暗号化を実行することを可能にする、これらの差異に適合するように構成される。適応型ドキュメント処理モジュール206は、クライアント2モジュール204からドキュメントを受信したときに、必要に応じて暗号化をさらに実行することができる。
【0029】
[0037]
図3は、ドキュメントプロパティ、プロパティ状態、およびドキュメントプロパティを1つの状態から異なる状態に変更する修正を示す図である。
[0038]
図3は、3つのドキュメントプロパティ301a~cを示す。各ドキュメントプロパティは、ドキュメントの特性または特徴を表す。たとえば、ドキュメントプロパティは、ドキュメントのヘッダ、ドキュメントのフッタ、ドキュメントの背景、ドキュメントの暗号化レベル、ドキュメントのパスワード保護状態(たとえば、ドキュメントがパスワード保護されているかどうか、および/またはドキュメントを保護しているパスワード)を含むことができる。上述されたように、本開示の実施形態は、ドキュメントに割り当てられたラベルによって規定された要件にドキュメントを準拠させようと努める。要件は、本明細書で説明されたように、特定のドキュメントプロパティおよび要件が満たされるために必要なそのプロパティの状態を規定する。たとえば、要件がドキュメントフッタに関連する場合、要件は、いくつかの実施形態では、フッタが「極秘」という単語を含まなければならないことを示す。「極秘」という単語を含むフッタは、フッタの状態である。
【0030】
[0039]
図3は、3つの例示的なドキュメントプロパティ301a~cを示す。プロパティの各々は少なくとも2つの状態を含む。図示されたように、ドキュメントプロパティ301aは、302aおよび302bと示された少なくとも2つの状態のうちの1つにあり得る。修正303は、ドキュメントプロパティ301aを第1の状態302aから第2の状態302bに移動させるように機能する。
【0031】
[0040]同様に、ドキュメントプロパティ301bは、少なくとも2つの状態304a~bのうちの1つにある。修正305は、ドキュメントプロパティ301bを第3の状態304aから第4の状態304bに移動させるように機能する。ドキュメントプロパティ301cは、少なくとも2つの状態306a~bのうちの1つにある。修正307は、ドキュメントプロパティ301cを第5の状態306aから第6の状態306bに移動させるように機能する。
【0032】
[0041]ドキュメントプロパティの例には、ドキュメントのフッタ、ドキュメントのヘッダ、ドキュメントの透かし、ドキュメントの暗号化レベル、ドキュメントの暗号化アルゴリズム、ドキュメントがパスワード保護されているかどうか、ドキュメントのパスワードのパスワード複雑性、ドキュメントのメタデータ要件(たとえば、1つもしくは複数のメタデータフィールドが消されたかもしくは消されていない)、ドキュメントの改訂履歴冗長性、ドキュメントのカバーページ、ドキュメントに含まれるマクロに関する情報、または他のドキュメントプロパティのうちの1つまたは複数が含まれる。
【0033】
[0042]状態302a~b、302c~d、および302e~fの各々はまた、特定の状態にあるときに対応するドキュメントプロパティによって満たされる個別の基準を表すように見なすことができる。たとえば、「フッタ」ドキュメントプロパティは、「極秘」という単語を含むように特定のラベルによって要求される場合があるが、ラベルはフッタがさらなるテキストも含むことを可能にすることができる。したがって、特定の状態を維持するようにドキュメントプロパティを強制することは、必ずしもただ1つのアクセス可能な値を有するようにドキュメントプロパティに要求するとは限らないが、代わりに基準を満たすようにそのドキュメントプロパティに要求することができ、基準はドキュメントプロパティが複数の異なる値のうちのいずれか1つを有するときに満たされる。
【0034】
[0043]
図4は、開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なデータ構造を示す。
図4は、
図1および
図2に関して上述されたラベル構成データストア104を示す。ラベル構成データストア104は、ラベルテーブル400、ラベル要件テーブル410、および要件テーブル420を含む。
【0035】
[0044]ラベルテーブル400は、ラベル識別子フィールド402およびラベルフレンドリ名フィールド404を含む。ラベル識別子フィールド402は、特定のラベルを一意に識別する。ラベル識別子フィールド402は、ラベル構成データストア104内の他のラベル識別子と相互参照される場合がある。ラベルフレンドリ名フィールド404は、ラベル用のユーザインターフェース内で提示され得る名前を提供する。ユーザインターフェースは、
図2に関して上述された管理ユーザインターフェースモジュール208によって表示される場合がある。ラベル要件テーブル410は、特定のラベルを特定の要件にマッピングする。
【0036】
[0045]ラベル要件テーブル410は、ラベル識別子フィールド412および要件識別子フィールド414を含む。ラベル識別子フィールド412は、ラベル構成データストア104内の他のラベル識別子と相互参照される場合がある。要件識別子フィールド414は、ラベル識別子フィールド410によって識別されたラベルでラベル付けされたときに、ドキュメントに対する特定の要件を一意に識別する。上述されたように、要件は特定のドキュメントプロパティの特定の状態を指定する。識別された要件は、コンテンツ要件および/またはセキュリティ要件および/またはメッセージ要件を含む場合がある。コンテンツ要件の例には、ドキュメントが特定の透かし(たとえば、ドキュメントプロパティ=背景、状態=特定の透かし)、特定のヘッダ、または特定のフッタを有するための要件が含まれる。暗号化要件の一例は、ドキュメントが特定の暗号化アルゴリズム、またはある特定の最小要件を満たす暗号化アルゴリズムを使用して暗号化されることである。メッセージ要件の一例は、電子メールメッセージに関係する。
【0037】
[0046]いくつかの態様では、デバイス102aまたは102bのうちの1つは、要件フォーマットで電子メールメッセージの本文をレンダリングすることができない場合がある。たとえば、ラベルは、電子メール本文がリッチテキストフォーマット(rtf)で符号化されるように要求する場合があるが、デバイス102aはこのフォーマットをレンダリングすることができない場合がある。したがって、電子メールの本文は、デバイス102aからドキュメントラベリングシステム108に送信されるときに、テキストとして符号化される場合がある。ドキュメントラベリングシステム108は、次いで、電子メール本文を規定するドキュメントに割り当てられたラベルに基づいて、本文をテキストからrtfに変換することができる。
【0038】
[0047]ラベル構成データストア104はまた、要件テーブル420を含む。要件テーブル420は、要件識別子フィールド422、要件フレンドリ名フィールド424、プログラム/ハンドラフィールド426、コマンドフィールド427、および要求された値または基準フィールド428を含む。要件識別子フィールド423は、要件を一意に識別し、データストア104の他の要件識別子と相互参照される場合がある。要件フレンドリ名フィールド424は、要件識別子フィールド422によって識別された要件のための人間語可読名を定義する。プログラム/ハンドラフィールド426は、要件に準拠するようにドキュメントを修正することが可能なソフトウェアプログラムまたはスクリプトを定義する。いくつかの態様では、プログラムフィールド426は、ソフトウェアプログラムまたはスクリプトのファイル名を定義する。いくつかの態様では、プログラム/ハンドラフィールド426は、プログラム自体(たとえば、アルゴリズムを実施して要件に準拠するために必要な修正を実行する命令)を含む。いくつかの実施形態では、プログラム/ハンドラフィールド426は、ドキュメントタイプ固有のプログラム/ハンドラを定義する。たとえば、いくつかの実施形態では、プログラムフィールド426は、
図4に示されたテーブル429によって示されたように、異なるタイプのドキュメント用の異なるソフトウェアプログラムまたは「ハンドラ」を指定する。テーブル429は、タイプフィールド442およびプログラム/ハンドラフィールド444を含む1つまたは複数の行を含む。タイプフィールド442は、フィールド444によって指定されたプログラム/ハンドラが適用するドキュメントのタイプを識別する。いくつかの実施形態では、プログラムハンドラフィールド444によって指定されたプログラム/ハンドラは、ドキュメントのタイプに対してオペレーティングシステムによって指定されたデフォルトのハンドラプログラムと均等である。たとえば、ワードプロセッシングプログラム(たとえば、winword.exe)は、ワードプロセッシングタイプのドキュメント(たとえば、docx)用に指定され、スプレッドシート処理プログラム(たとえば、excel)は、スプレッドシートタイプのドキュメント(たとえば、xls)用に指定される。コマンドフィールド427は、ドキュメントが要件を満たすようにドキュメントに変更をもたらすために、フィールド426内に指定されたプログラム/ハンドラに提供するコマンドを指定する。いくつかの実施形態では、コマンドフィールド427は、指定されたプログラム/ハンドラに渡すためにコマンドラインパラメータを指定する。いくつかの実施形態では、コマンドフィールド427は、テーブル429と同様であるが、1つまたは複数のドキュメントタイプの各々に特定のコマンドを指定するテーブルを含む。
【0039】
[0048]要件値/基準フィールド428は、要件に対応する特定のドキュメントプロパティの値を指定するデータを格納する。たとえば、要件は、いくつかの実施形態では、特定のドキュメントプロパティが特定の値と一致しなければならないことを規定し、特定の値は、これらの態様では、要求された値/基準フィールド428に格納される。いくつかの他の実施形態では、要件は、いくつかの実施形態では、特定のドキュメントプロパティが1つまたは複数の基準を満たすことを規定する。これらの実施形態では、要求された値/基準フィールドは、1つまたは複数の基準を規定する。
【0040】
[0049]ドキュメントデータストア116は、ドキュメントテーブル430を含む。ドキュメントテーブル430は、ドキュメント識別子フィールド432、ドキュメントラベル識別子フィールド434、およびドキュメントコンテンツフィールド436を含む。ドキュメント識別子フィールド432は、ドキュメントを一意に識別する。ラベル識別子フィールド434は、ドキュメントに割り当てられたラベルを識別する。ラベル識別子フィールド434は、ラベル構成データストア104に関して上述されたラベル識別子のいずれかと相互参照される場合がある。ドキュメントテーブルフィールド430はまた、コンテンツフィールド436を含む。コンテンツフィールド436は、ドキュメント識別子432によって識別されたドキュメントのコンテンツを定義する。割り当てられたラベル(たとえば、434)に準拠するようにドキュメントに対して行われた修正は、コンテンツフィールド436によって格納されたデータを修正することができる。
【0041】
[0050]
図5Aは、開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なメッセージ部分である。
図5Aは、
図1~
図2に関して上述されたメッセージ122aおよび/または122bのうちの1つまたは複数に含まれる場合があるメッセージ部分500を示す。いくつかの実施形態では、メッセージ部分500は、ドキュメントに割り当てられたラベルの要件にドキュメントを準拠させるために必要なドキュメントに対する修正の残りの部分を完了するように、ドキュメントラベリングシステム108に指示するように構成される。
【0042】
[0051]メッセージ部分500は、ドキュメントの数フィールド502を含む。ドキュメントの数フィールド502は、メッセージ部分500に含まれるドキュメントセクション503の数を示す。各ドキュメントセクション503は、メッセージ部分500内で参照されるドキュメントを定義する。各ドキュメントテーブル503は、ドキュメントタイプフィールド504、ドキュメントラベルフィールド506、保留中修正フィールド508、およびドキュメントコンテンツまたはドキュメント識別子フィールド510を含む。ドキュメントタイプフィールド504は、特定のドキュメントセクション503内で参照されるドキュメントのタイプを示す。ドキュメントタイプフィールド504は、たとえば、ドキュメントが電子メールの本文を定義するか、または電子メールの添付を定義するかを示す場合がある。
【0043】
[0052]ドキュメントラベルフィールド506は、ドキュメントに割り当てられたラベルを示す。ドキュメントラベルフィールド506は、ラベル構成データベース104のためのラベル識別子(たとえば、402、412)を識別することができる。いくつかの実施形態は、ドキュメントラベルフィールド506を含まない場合がある。これらの実施形態では、ドキュメントラベルは、
図4に関して上述されたドキュメントテーブル430から取得される場合がある。たとえば、以下でさらに説明されるように、ドキュメントテーブル430内のドキュメントを識別することを実現するドキュメントidは、ドキュメントセクション503に含まれる場合がある。
【0044】
[0053]ドキュメントセクション503はまた、保留中修正フィールド508を含む。保留中修正フィールド508は、割り当てられたラベル(たとえば、412または434)の要件にドキュメントを準拠させるためにドキュメントに対して行われる必要がある、ドキュメントセクション503によって識別されたドキュメントに対する修正を示す。言い換えれば、保留中修正フィールド508は、以下でさらに説明されるように、フィールド506のラベルによって課されたドキュメントに対する要件と、ドキュメントがフィールド510によって表されたときのドキュメントの現在の状態との間のギャップを記載する。
【0045】
[0054]保留中修正フィールド508は、いくつかの態様では、
図4に関して上述された要件識別子を列挙することができる。保留中修正フィールド508内に列挙された要件識別子は、ドキュメントに割り当てられたラベルの要件のサブセットであってもよい。たとえば、特定のドキュメントに割り当てられた特定のラベルが要件A、B、およびCに準拠するようにドキュメントに要求する場合、恐らく、要件Aは、(デバイス102aまたはデバイス102などの)メッセージ500を送信するデバイスによってドキュメントに対して行われた修正によって満たされる。しかしながら、この例では、送信デバイスは、要件BおよびCにドキュメントを準拠させるためにドキュメントに対して修正を実行することができない場合がある。この例では、保留中修正フィールド508は要件BおよびCを示す。
【0046】
[0055]また、520a、520b、520c、および520dというラベルを付けられた、保留中修正フィールド508の例示的なフォーマットが
図5Aに示されている。例示的なフォーマット520aは、バイナリインジケータのシリーズとして保留中修正フィールド508を示す。シリーズ内の各バイナリインジケータは、特定の修正に割り当てられるか、またはマッピングされる場合がある。シリーズ内のインジケータと修正との間のマッピングは、開示された実施形態内で動作するデバイスによって事前に決定され、知られるはずである。たとえば、デバイス102a~bおよびドキュメントラベリングシステム108は、マッピングを認識しているはずである。したがって、たとえば、第1のインジケータは、特定のタイプの透かしがドキュメントに追加される必要があるかどうかを示す場合がある。いくつかの実施形態では、インジケータがセットされた場合、透かしはまだ追加される必要があるが、インジケータがゼロである場合、透かしは追加される必要がない。この例示的な実施形態では、ドキュメントのラベルが透かしを必要としないか、またはドキュメント内に透かしがすでに追加されている(もしくはすでに存在した)場合、インジケータはゼロであってもよい。
【0047】
[0056]520bというラベルを付けられた第2の例示的な実施形態では、修正マッピング内の各位置は3つの値のうちの1つを含む場合がある。第2の実施形態では、これら3つの値は0、1、または2と示されているが、様々な実施形態は任意の3つの値を利用することができる。3つの値のうちの1つは、その位置にマッピングされた修正がドキュメントの割り当てられたラベルに必要でないことを示す。3つの値のうちの第2の値は、修正が必要であるが、ドキュメントに対してすでに実行されていることを示す。3つの値のうちの第3の値は、修正が必要であり、まだ実行される必要があることを示す。したがって、この第3の値は、ドキュメントの現在の状態と、ドキュメントの割り当てられたラベルに準拠するために必要な状態との間の差異を示す。実施形態520bで示された少なくとも3つの異なる値を有する修正インジケータを実装する実施形態では、インジケータ当たり少なくとも2ビットが必要とされることに留意されたい。
【0048】
[0057]第3の例示的な実施形態は520cというラベルを付けられ、ドキュメントをその割り当てられたラベルの要件に準拠させることが保留中の修正のカンマ区切りリストを含む。第3の実施形態は、保留中修正フィールド508に含まれたデータが修正自体の何らかの指定を含むという点で、上述された520aおよび520bというラベルを付けられた実施形態とは異なり、第1および第2の例示的な実施形態に関して上述されたデバイスによって知られた事前定義されたマッピングに100%依存しない。
【0049】
[0058]たとえば、図示されたように、実施形態520cは、特定の修正のための指定を示す。図示されたように、522aというラベルを付けられた修正のカンマ区切りリストの第1の修正は、ドキュメント用の透かしとして使用するために特定のファイル名を指定する。指定された特定のファイル名は、いくつかの態様では、メッセージ500に含まれる場合がある。他の態様では、指定された特定のファイル名は、開示された実施形態内で動作するデバイスにわたって共有される共通ファイル名であってもよい。たとえば、共通ファイル名は、ドキュメントラベリングシステム108によってアクセス可能なディレクトリ内でアクセス可能であり得る。あるいは、ファイル名によって識別されたファイルは、ラベル構成データストア104内で利用可能であり得る。
【0050】
[0059]第3の実施形態520cはまた、カンマ(「,」)によって第1の修正から分離された第2の修正を示す。第2の修正522bは、ドキュメントに追加される必要があるフッタ(修正)を示す。修正522bはまた、フッタ用のファイル名を指定する。上記のように、フッタ用のファイル名は、開示された実施形態内で動作するデバイスに共通の位置において利用可能であり得る。いくつかの態様では、フッタファイル「footl.docx」は、ラベル構成データストア104内で利用可能であり得る。いくつかの他の態様では、示された修正用のコンテンツは、ここに提供されたファイル名の例以外の他の方式で指定される場合がある。たとえば、いくつかの態様では、コンテンツはメッセージ500自体に含まれる場合がある。たとえば、上述されたように「footer=footl.docx」(ファイル名)を指定する代わりに、フィールド508はフッタ「footer.text」を指定し、ドキュメントのフッタに追加されるべき実際のテキスト自体がフィールド508内で指定される。いくつかの他の実施形態では、コンテンツはデータベーステーブルの識別子またはデータベーステーブルの項目を介して指定される場合がある。
【0051】
[0060]520dと識別された第4の実施形態は、保留中の修正ごとのオブジェクトを指定する。第4の実施形態は、オブジェクトモビリティ技術を使用して、動作すると、ドキュメントに対する保留中の修正を実行するオブジェクトを示す。あるいは、第4の実施形態は、保留中の修正ごとにリモートオブジェクト参照を指定することができる。リモートオブジェクトを起動すると、ドキュメントのラベルの要件に準拠するようにドキュメントが修正される。
【0052】
[0061]
図5Bは、開示された実施形態のうちの1つまたは複数において実装される場合がある例示的なメッセージ部分を示す。
図5Bは、
図1~
図2に関して上述されたメッセージ122aおよび/または122bのうちの1つまたは複数に含まれる場合があるメッセージ部分550を示す。いくつかの実施形態では、メッセージ部分550は、ドキュメントに割り当てられたラベルにドキュメントを準拠させるために必要なドキュメントに対する修正の残りの部分を完了するように、ドキュメントラベリングシステム108に指示するように構成される。
【0053】
[0062]例示的なメッセージ部分550は、ドキュメントの数フィールド552を含む。ドキュメントの数フィールド552は、メッセージ部分550に含まれるドキュメントセクション503の数を示す。各ドキュメントセクション553は、メッセージ部分550内で参照されるドキュメントを定義する。各ドキュメントテーブル553は、ドキュメントタイプフィールド554、ドキュメントラベルフィールド556、準拠するプロパティフィールド558、およびドキュメントコンテンツまたはドキュメント識別子フィールド560を含む。ドキュメントタイプフィールド554は、特定のドキュメントセクション553内で参照されるドキュメントのタイプを示す。ドキュメントタイプフィールド554は、たとえば、ドキュメントが電子メールの本文を定義するか、または電子メールの添付を定義するかを示す場合がある。
【0054】
[0063]ドキュメントラベルフィールド556は、ドキュメントに割り当てられたラベルを示す。ドキュメントラベルフィールド556は、ラベル構成データベース104のためのラベル識別子(たとえば、402、412)を識別することができる。いくつかの実施形態は、ドキュメントラベルフィールド556を含まない場合がある。これらの実施形態では、ドキュメントラベルは、
図4に関して上述されたドキュメントテーブル430から取得される場合がある。たとえば、以下でさらに説明されるように、ドキュメントテーブル430内のドキュメントを識別することを実現するドキュメントidは、ドキュメントセクション553に含まれる場合がある。
【0055】
[0064]ドキュメントセクション553はまた、準拠するプロパティフィールド508を含む。準拠するプロパティフィールド558は、ラベルフィールド556によって識別されたラベルの要件に準拠するドキュメントのプロパティを示す。いくつかの他の実施形態では、準拠するプロパティフィールド558は、代わりに、ラベルの要件に準拠しないドキュメントのプロパティを識別する、準拠しないプロパティフィールであり得る。いくつかの他の実施形態では、準拠するプロパティフィールド558は、代わりに、ラベルの要件にそれらのプロパティを準拠させる(たとえば、ラベルによって規定された1つまたは複数の基準を満たす)ように、メッセージ部分500を送信するデバイスによって修正されたドキュメントのプロパティを示す、修正されたプロパティフィールドである。このように、フィールド558は、ラベルに準拠する(たとえば、ラベルのための要件の基準を満たす)いくつかのプロパティを識別することができるが、すでにラベルに準拠したドキュメントのすべてのプロパティを識別することはできない。いくつかの実施形態では、準拠するプロパティフィールド558(または上述されたその変形形態)は、プロパティの数フィールド461、および1つまたは複数のプロパティ識別子フィールド5621・・・nを含む。プロパティの数フィールド461は、フィールド5621・・・n内で識別されたプロパティの数をカウントする(たとえば、nを定義する)。プロパティ識別子フィールド5621・・・nの各々は、ラベルの要件に準拠する特定のドキュメントプロパティを識別する。たとえば、いくつかの実施形態は、複数のドキュメントプロパティと識別子との間のマッピングを規定することができる。たとえば、フッタプロパティは第1の識別子を割り当てられ、ドキュメントの暗号化レベルプロパティは第2の識別子を割り当てられる。これらの識別子は、クライアントデバイス(たとえば、102aまたは102b)とドキュメントラベリングシステム(たとえば、108)との間を通信するメッセージに含まれ、通信されたドキュメントのそれらのプロパティは、フィールド556内に定義されたラベルに準拠する。これにより、以下でさらに説明されるように、ラベルの要件にドキュメントを準拠させるために必要な修正を完了するために、必要に応じてクライアントデバイスによって実行されるドキュメントの任意の処理を受信デバイスがさらに増やすことが可能になる。このように、準拠するプロパティフィールド558は、以下で説明されるフィールド560に含まれるドキュメントコンテンツの状態などの現在のドキュメント状態と、ラベル556によって要求される状態との間のギャップを通信する。状態は、複数のドキュメントプロパティが複数の基準を満たし、かつ/または複数の特定の値を有するための要件を含む場合があることに留意されたい。
【0056】
[0065]メッセージ550はまた、ドキュメントコンテンツフィールド560を含み、ドキュメントコンテンツフィールド560は、ドキュメント自体を定義するか、または代替として、ドキュメントコンテンツを格納するデータストアに対する参照を定義するデータを含む。
【0057】
[0066]
図6は、電子ドキュメントにラベルを付ける方法のフローチャートである。いくつかの態様では、
図6およびプロセス600に関して以下で説明される機能のうちの1つまたは複数は、ハードウェア処理回路によって実行される場合がある。たとえば、メモリ904および/または906内の以下で説明される命令924は、以下で説明される機能のうちの1つまたは複数を実行するようにプロセッサ902を構成することができる。いくつかの態様では、以下で説明されるプロセス600は、
図2に関して上述された適応型ドキュメント処理モジュール206によって実行される場合がある。いくつかの態様では、プロセス600は、
図1に関して上述されたドキュメントラベリングシステム108によって実行される場合がある。
【0058】
[0067]開始ブロック605の後、プロセス600は動作610に移動する。動作610において、安全な環境内でメッセージが受信される。メッセージはドキュメントおよびドキュメントに対する修正を示す。ドキュメントは割り当てられたラベルを有する。割り当てられたラベルはメッセージ内で示される場合もある。
【0059】
[0068]安全な環境(たとえば、106)は、企業内で提供される場合がある。たとえば、
図1に関して上述されたように、安全な環境106は、デバイス102aなどの電子メールクライアントデバイスを含む場合があり、ドキュメントラベリングシステム108などのサーバベースのデバイスを含む場合もある。サーバベースのシステムは、いくつかの態様では、電子メールサーバであり得るが、代替として、いくつかの他の態様では、ウェブサーバ、または他のサーバベースのシステムであり得る。
【0060】
[0069]いくつかの実施形態では、動作610において受信されたメッセージは、
図4のメッセージ部分400に関して上述されたフィールドのうちの1つまたは複数を含む場合がある。
図6に関して上述されたように、いくつかの態様では、受信されたメッセージは、ドキュメントに割り当てられたラベルにドキュメントを準拠させるために実行されるべき、ドキュメントに対する修正を示す場合がある。いくつかの他の実施形態では、メッセージはすでに実行されたドキュメントに対する修正を示す場合がある。たとえば、いくつかの態様では、動作610のメッセージを送信するデバイスは、メッセージを送信する前にドキュメントに対するいくつかの動作をすでに実行している場合がある。いずれの実施形態でも、メッセージは、ドキュメントに対する保留中の修正を示す。
【0061】
[0070]動作620において、ドキュメントに対する保留中の修正が実行される。動作620において受信されたメッセージは、どの要件がドキュメントによってすでに満たされたかを示す場合があるか、またはどの要件がドキュメントによって満たされていない(保留中の修正)かを示す場合がある。あるいは、メッセージ620は、両方のセットの(満たされたおよび満たされていない)要件を示すことができる。
【0062】
[0071]たとえば、ドキュメントは、3つの要件を規定するラベルを割り当てられる場合がある。動作610においてドキュメントが受信されたとき、ドキュメントは要件のうちの少なくとも1つにすでに準拠している場合がある。この特定の例では、次いで、動作620において2つの要件が実行される場合がある。保留中の修正は、ドキュメントに対するコンテンツ修正を含む場合がある。たとえば、コンテンツ修正には、ドキュメントにコンテンツを追加すること(たとえば、ドキュメントにヘッダおよび/もしくはフッタを追加すること、ドキュメントに透かしを追加すること)、(たとえば、.docxフォーマットから.rtfフォーマットに)ドキュメントのドキュメントフォーマットを変更すること、ならびに/またはドキュメントにパスワード保護を追加することが含まれる場合がある。
【0063】
[0072]一例として、人気があるワードプロセッシングプログラムは、ドキュメントのパスワード保護を実現することができる。ドキュメントに割り当てられたパスワードは、ドキュメントの暗号化をさらに制御することができる。暗号化は、暗号化/解読鍵としてパスワードを使用することができる。いくつかのラベルは、ドキュメントのパスワード保護を要求する場合がある。このパスワードは、動作610においてドキュメントが受信される前に、ドキュメントにすでに追加されている場合がある。他のケースでは、ドキュメントのラベルがパスワード保護を要求する場合があるが、ドキュメントは、動作610において受信されたときにまだパスワード保護されていない場合がある。これらのケースでは、動作620はドキュメントにパスワード保護を追加することができる。
【0064】
[0073]動作630において、修正されたドキュメントが安全な環境の外部に送信される。たとえば、
図1に関して上述されたように、ドキュメントラベリングシステム108は、デバイス110aまたは110bのいずれかなどの、安全な環境106の外部のデバイスにドキュメントを送信する。動作610において受信されたドキュメントは、その割り当てられたラベルに準拠していないが、動作630において送信された修正ドキュメントは、少なくとも動作620においてドキュメントに対して行われた修正に基づいて、その割り当てられたラベルに準拠することに留意されたい。プロセス600のいくつかの他の態様では、動作610において受信されたドキュメントは、その割り当てられたラベルにすでに準拠している場合がある。たとえば、動作610のメッセージを送信するデバイスが、ドキュメントをそのラベルに準拠させるために必要なドキュメントに対するすべての修正が可能である場合、ドキュメントは、割り当てられたラベルにすでに準拠して動作610において受信される場合がある。これらの実施形態では、メッセージは、ドキュメントに対するさらなる修正が必要でないことを示し、したがって、動作620はさらなる動作を実行しない場合がある。動作630の後、プロセス600は終了動作675に移動する。
【0065】
[0074]
図7は、電子ドキュメントにラベルを付ける方法のフローチャートである。いくつかの態様では、
図7およびプロセス700に関して以下で説明される機能のうちの1つまたは複数は、ハードウェア処理回路によって実行される場合がある。たとえば、メモリ904および/または906内の以下で説明される命令924は、以下で説明される機能のうちの1つまたは複数を実行するようにプロセッサ902を構成することができる。いくつかの実施形態では、
図7に関して以下で説明される機能のうちの1つまたは複数は、デバイス102aおよび/またはデバイス102bによって実行される。以下の
図7の説明では、
図7に関して以下で説明される機能のうちの1つまたは複数を実行するデバイスは、実行デバイスと呼ばれる。
【0066】
[0075]開始動作705の後、プロセス700は動作710に移動する。動作710において、入力が受け取られる。入力は、第1の電子ドキュメントの第1のラベルを示す。入力は、いくつかの実施形態では、第1のラベルが第1の電子ドキュメントに割り当てられていることを示す。いくつかの実施形態では、入力はユーザインターフェースから受け取られる。たとえば、ユーザインターフェースは、
図1に関して上述されたクライアントデバイス102a~bのいずれかなどのクライアントデバイスによって表示される場合がある。動作710のいくつかの実施形態は、第1の電子ドキュメントに第1のラベルを割り当てる。
【0067】
[0076]たとえば、様々な実施形態では、ドキュメントに「公開」、「機密」、「最高機密」、または「特権」のラベルが割り当てられる場合がある。ドキュメントへのラベルの割当ては、ドキュメントにある特定の要件を課す。上述されたように、いくつかのラベルは、ある特定のヘッダ、フッタ、透かし、または他のコンテンツを含むようにドキュメントに要求する場合がある。いくつかのラベルは、特定の暗号化アルゴリズムを使用して暗号化されること、または少なくともある特定の最小要件を満たす暗号化アルゴリズムを使用して暗号化されることをドキュメントに要求する場合がある。いくつかのドキュメントラベルは、特定のドキュメントフォーマットで格納されるようにドキュメントに要求する場合がある。
【0068】
[0077]動作720において、第1のラベルによって規定されたドキュメントの要件が特定される。たとえば、上述されたように、特定のラベルのための要件は、ラベル構成データストア内で規定される場合がある。
図4に関して上述された一例として、ラベル構成データストア104は、1つまたは複数の要件(たとえば、414)にラベル(たとえば、412)をマッピングするラベル要件テーブル(たとえば、410)を含む場合がある。
図4の例では、複数の要件にラベルがマッピングされると、単一のラベルid412に対してラベル要件テーブル410内に複数の行が存在する場合がある。
【0069】
[0078]動作730において、第1の電子ドキュメントの修正の第1のセットが要件に基づいて決定される。したがって、たとえば、ラベルが特定のフッタを含むようにドキュメントに要求し、現在特定のフッタを含まない場合、ドキュメントをラベルの要件に準拠させるために修正が必要とされる。同様に、ラベルがある特定の透かしを要求し、ドキュメントがすでに透かしを含む場合、少なくともラベルのこの要件に関してさらなる修正は必要でない。このように、動作730は、ドキュメントの現在の状態を分析して、要件のうちのどれがすでに満たされているか、およびラベルのどの要件がその現在の状態のドキュメントによって満たされていないかを判定することができる。いくつかの他の実施形態では、要件と必要な修正との間に1対1のマッピングが存在する場合がある。
【0070】
[0079]動作740において、実行デバイスが実行することが可能な、または実行するように構成された修正の第2のセットが決定される。修正の第2のセットは第1のセットに基づいている。いくつかの態様では、第2のセットは第1のセットのサブセットであり得る。いくつかの態様では、第2のセットはゼロ個の修正を含む。いくつかの実施形態では、第2のセットは第1のセットに含まれるすべての修正を含む。たとえば、修正の第1のセットは少なくともN個の修正を含む場合があるが、修正の第2のセットはN-K個の修正(たとえば、修正の第1のセットよりも少ない修正)から構成される。
【0071】
[0080]言い換えれば、プロセス700を実行するデバイスは、動作730において識別された修正の各々を行うかもしくは実行することができるかどうか、または修正のどの部分をデバイスが実行することができるかを判定する。上述されたように、いくつかの修正は、特定のプログラムが実行デバイス上に存在するように要求する場合がある。動作可能な一例として、ドキュメントが特定のタイプである場合、ドキュメントに透かしを追加することは、特定のタイプ用のドキュメントフォーマットを構文解析し、ドキュメントフォーマットの構文解析に基づいて透かしを定義するデータを挿入することが可能なプログラムを必要とする場合がある。いくつかの実行デバイスは、この能力をもたない場合がある。たとえば、それらは、ドキュメントフォーマットを構文解析することを理解し、そうするように構成されたソフトウェアプログラムをインストールしておらず、したがって修正を実行することができない場合がある。実行デバイスがどの修正を実行することができるかを判定するために、実行デバイスは、いくつかの実施形態では、
図4に関して上述された要件テーブル420などの要件テーブルを調べる。いくつかの実施形態では、要件テーブルは、修正および/または要件の各々に影響を及ぼすために必要なプログアムを規定する。たとえば、要件が、ドキュメントフッタ(たとえば、ドキュメントのプロパティ)が特定のテキスト(たとえば、
図3に関して上述された特定のプロパティ値または状態)を有することである場合、対応する修正は、特定のテキストを有するようにドキュメントフッタを修正することである。要件テーブルは、いくつかの実施形態では、ドキュメントが要件を満たすように、修正に影響を及ぼすために必要な1つまたは複数のプログラム/ハンドラを規定する。実行デバイスは、次いで、実行デバイスが修正を行うことができるように、任意の指定されたハンドラ/プログラムが実行デバイス上に存在するか、またはさもなければ実行デバイスから評価可能であるかどうかを判定することができる。
【0072】
[0081]あるいは、いくつかの実施形態では、実行デバイスは、修正を行うために必要なデータに対する物理的なアクセスをもたない。上記の例を続けるために、実行デバイスは透かしを追加することが可能であり得る。しかしながら、透かしを定義するデータは、実行デバイスにおいて利用できない場合がある。したがって、この例では、動作730において決定されたこの修正は、プロセス700によって実行されない。
【0073】
[0082]いくつかの実施形態では、動作740は、実行デバイスが動作730において決定された第2の修正が実行することが可能か、または実行するように構成されると判断することができる。
【0074】
[0083]いくつかの態様では、実行デバイスは、ラベルの要件のすべてを実行することが可能か、または実行するように構成される場合がある。このように、740に関して記載されたサブセットは、動作730において決定された修正のセットと均等であり得る。
【0075】
[0084]動作750において、動作740において決定された修正の第2のセットに基づいて、第1の電子ドキュメントが修正される。したがって、実行デバイスが実行することが可能か、または実行するように構成されたそれらの修正の場合、実行デバイスはそれらの修正を実行する。
【0076】
[0085]動作760において、メッセージが生成される。メッセージは、ドキュメントに対して実行デバイスによって行われた修正を示すように生成される。メッセージは、代替または追加として、ドキュメントがその割り当てられたラベルに準拠するために、ドキュメントに対して行われる必要がまだある修正を示す場合がある。いくつかの態様では、動作760において生成されたメッセージは、メッセージ500に関して上述されたフィールドのうちの1つまたは複数を含む場合がある。メッセージは、ドキュメント自体が修正を示すために使用されないという点で修正を個別に示すが、代わりにメッセージは、ドキュメントをその割り当てられたラベルに準拠させるために、すでに行われた修正および/またはまだ行われる必要がある修正を明示的に規定する。言い換えれば、メッセージは、その現在の状態にあるドキュメントとその割り当てられたラベルのための要件との間のギャップを識別する。上述されたように、割り当てられたラベルのための要件は、ラベル構成データストア104によって規定される場合がある。
【0077】
[0086]動作770において、メッセージが送信される。メッセージは、いくつかの態様では、ドキュメントラベリングシステム108に送信される場合がある。たとえば、メッセージは、様々な実施形態では、ドキュメントラベリングシステム108を実装する単一のデバイス、または同じく実装するクラウドベースのネットワークサービスに送信することができる。メッセージの宛先デバイスは、実行デバイスが実行することができなかった任意の修正でドキュメントを増強するように構成される場合がある。言い換えれば、動作770のメッセージ用の宛先デバイスは、メッセージによって示されたドキュメントとその割り当てられたラベルの要件との間の任意のギャップを埋める。動作770において送信されたメッセージは、ドキュメントをそのそれぞれのラベルによって暗示された要件に準拠させるために必要な修正の残りの部分を完了するように、受信するデバイスまたはサービスに指示するように構成される。
【0078】
[0087]プロセス700および
図7に関して、いくつかの実施形態では、電子ドキュメントをそのラベルに準拠させるために単一の修正が必要とされる。これらの実施形態では、恐らく、実行デバイスがこの修正を実行する。この場合、動作770において送信されたメッセージは、実行デバイスが必要なすべての修正を実行するので、ドキュメントをそのラベルに準拠させるためにさらなる修正が必要ではないことを示す。しかしながら、メッセージは、実施形態に応じて、(たとえば、それらのうちの1つが修正を示すはずがない
図5Aまたは
図5Bのいずれかの趣旨と一致する)行われた修正または行われる必要がある修正をさらに示すはずである。いくつかの他の実施形態では、単一の修正が必要とされるが、実行デバイスは修正を実行するように構成されない。この場合、実行デバイスは修正を実行しないが、動作770のメッセージを介して、メッセージを受信するエンティティ(サービス/デバイス)によって単一の修正が実行される必要があることを示す。これらの例示的な実施形態または状況は、どの必要な修正が実行デバイス(たとえば、クライアントデバイス)によって実行されるか、およびバックエンド処理エンティティ(たとえば、ネットワークサービス、クラウドベースのサービス、バックエンドサーバなど)によってどの修正が実行されるかを動的に判定する方式でシステムがまだ動作しているという点で、主題をさらに表す。
【0079】
[0088]同様に、場合によっては、ドキュメントをラベルに準拠させるために、ドキュメントに対する修正は必要でない。この場合、実行デバイスは、修正が必要でないと判断し、いくつかの実施形態では、
図5Aまたは
図5Bのいずれかの趣旨と一致するメッセージにおいて、修正が行われなかったこと、または修正が必要でないことのいずれかを示す。受信デバイス/サービスは、次いで、メッセージと一致する動作を実行する。これはまた、例示的な実施形態が必要な修正のセットをさらに動的に決定し、上述されたように処理負荷を分散させるために、少なくとも実行デバイスとリモートサービス/デバイスとの間でそれらの修正を分散させるので、本発明の趣旨を示す。
【0080】
[0089]いくつかの実施形態では、ドキュメントをその要件に準拠させるために2つ以上の修正が必要とされ、少なくとも1つの修正は実行デバイスによって行われ、少なくとも1つの修正は、上述された、リモートネットワークデバイスまたはネットワークサービスなどの、ドキュメントラベリングシステム108の一実施形態によって行われる。
【0081】
[0090]
図8は、電子ドキュメントにラベルを付ける方法のフローチャートである。いくつかの態様では、
図8およびプロセス800に関して以下で説明される機能のうちの1つまたは複数は、ハードウェア処理回路によって実行される場合がある。たとえば、メモリ904および/または906内の以下で説明される命令924は、以下で説明される機能のうちの1つまたは複数を実行するようにプロセッサ902を構成することができる。いくつかの態様では、以下で説明されるプロセス800は、
図2に関して上述された適応型ドキュメント処理モジュール206によって実行される場合がある。いくつかの態様では、プロセス800は、
図1に関して上述されたドキュメントラベリングシステム108によって実行される。いくつかの実施形態では、プロセス700を実行するデバイスおよびプロセス800を実行する別個のデバイスまたはサービスは、協働してドキュメントラベリング解決策を実施し、プロセス700はドキュメントに対して少なくとも1つの修正を実行し、プロセス800はドキュメントに対して少なくとも1つの修正を実行する。
【0082】
[0091]開始ブロック805の後、プロセス800は動作810に移動する。動作810において、第1のデバイスからドキュメントが受信される。いくつかの実施形態では、第1のデバイスはクライアントデバイス102aまたは102bと均等である。いくつかの実施形態では、ドキュメントは、
図5A~
図5Bに関して上述された例示的なメッセージ500および/または550に関して上述されたフィールドのうちの1つまたは複数を含むメッセージなどの、ネットワークメッセージ内でネットワークを介して受信される。これらの実施形態のうちのいくつかでは、ドキュメントはIdフィールド510または560を介して受信される。動作810はまた、ドキュメント用のラベルの指示を受信する(たとえば、506または556)。たとえば、ラベルは、様々な実施形態では、ドキュメントが公表、内密、機密、秘密、極秘、限定、または他のラベルとしてラベル付けされているかを示すことができる。たとえば、上述されたように、ラベルはドキュメントに対する1つまたは複数の要件を示す。各要件は、少なくともいくつかの実施形態では、ドキュメントの特定のプロパティの特定の状態を示す。動作810において、ラベルの要件とドキュメントの状態との間のギャップの指示も受信される(たとえば、508または558)。ギャップの指示は、いくつかの実施形態では、ドキュメントをラベルに準拠させるために必要なドキュメントに対する修正のセットを示す。たとえば、ギャップは、いくつかの実施形態では、ドキュメントをラベルに準拠させるために必要なドキュメントプロパティの対応するセットのための状態遷移のセットを示す。
【0083】
[0092]動作820において、ドキュメントに対する修正の第1のセットがギャップに基づいて決定される。いくつかの実施形態では、修正は、
図5A~
図5Bに関して上述されたメッセージ500および/またはメッセージ550などのネットワークメッセージによって示される。いくつかの他の実施形態では、修正のセットは、ラベルと一致する(複数のドキュメントプロパティ状態から構成される)ドキュメント状態にドキュメントを移すために必要な1つまたは複数のドキュメントプロパティに対する変更を識別することによって決定される。たとえば、
図4に関して上述されたように、ラベルは1つまたは複数のドキュメントプロパティに対する要件のセットを表す。要件は、1つまたは複数のドキュメントプロパティの特定の状態を指定する。修正の第1のセットは、少なくとも1、2、3、4、5、6、7、8、9、10、または任意の数の修正を含む場合があることに留意されたい。修正の各々は、異なるドキュメントプロパティに対応する。
【0084】
[0093]動作830において、ドキュメントに対して修正の第1のセットが実行される。たとえば、修正は、1つまたは複数のヘッダ(たとえば、第1のプロパティ)、フッタ(たとえば、第2のプロパティ)、または透かし(たとえば、第3のプロパティ)などのドキュメントのコンテンツを修正することを含む場合がある。いくつかの実施形態では、修正はまた、ドキュメントの暗号化レベル、パスワード、または他のプロパティなどのドキュメントのプロパティを修正することを含む。動作830のいくつかの実施形態は、修正されたドキュメントをデータストアに格納すること、および/または、ハードディスク、ネットワークインターフェース、ディスプレイスクリーン、もしくは他の出力デバイスなどの出力デバイスに修正されたドキュメントを書き込むことを含む。
【0085】
[0094]動作840において、第3のデバイスから第2のドキュメントが受信される。第3のデバイスは、いくつかの実施形態では、クライアントデバイス(たとえば、102aまたは102b)である。第2のドキュメントは、いくつかの実施形態では、メッセージ部分500および/または550に関して上述されたフィールドのうちの1つまたは複数を含むメッセージなどのメッセージ内で受信される。第2のドキュメントはまた、ラベル(すなわち、第1のドキュメントが関連付けられた同じラベル)と関連付けられるように示される。動作840はまた、第2のドキュメントの第2の状態とラベルの要件との間の第2のギャップの指示を受信することを含む。第2のギャップは第1のギャップとは異なる。言い換えれば、第1と第2の両方のドキュメントは、同じラベルと関連付けられるか、または同じラベルを割り当てられる。たとえば、第1と第2の両方のドキュメントは、いくつかの実施形態では、極秘というラベルを付けられる。しかしながら、第1および第2のドキュメントは異なる状態で受信される。たとえば、第1のドキュメントの第1の複数のドキュメントプロパティは、対応する複数の値を有する。受信されたとき、第2のドキュメントは、第1の複数のドキュメントプロパティに関する値の異なる第2のセットを有する。プロセス800を実行するデバイスは、第1および第2のドキュメントの各々に関する第1の複数のドキュメントプロパティを、実行デバイスによって受信されたときのそれぞれのドキュメントの状態にかかわらず、ラベルによって規定されたそれらのプロパティ値に準拠させる。
【0086】
[0095]動作850において、第2のドキュメントに対する修正の第2のセットが、示された第2のギャップに基づいて決定される。修正の第2のセットは、修正の第1のセットとは異なる。たとえば、第1のドキュメントおよび第2のドキュメントの状態は、それらがプロセス800を実行するデバイスによって受信されたときに異なるので、ドキュメントの各々をラベルの要件に準拠させるために、それぞれのドキュメントに対する異なる修正が必要とされる。ラベルは、第1と第2の両方のドキュメントに共通である。修正のセットは、少なくとも1、2、3、4、5、6、7、8、9、10、または任意の数の修正を含む場合があることに留意されたい。修正の各々は、異なるドキュメントプロパティに対応する。
【0087】
[0096]動作860において、第2のドキュメントに対して決定された修正の第2のセットが実行される。動作860のいくつかの実施形態は、修正された第2のドキュメントをデータストアに格納すること、および/または、ハードディスク、ネットワークインターフェース、ディスプレイスクリーン、もしくは他の出力デバイスなどの出力デバイスに修正された第2のドキュメントを書き込むことを含む。
【0088】
[0097]
図9は、本明細書で説明された技法(たとえば、方法)のうちのいずれか1つまたは複数がその上で実行することができる例示的な機械900のブロック図を示す。代替の実施形態では、機械900は、スタンドアロンデバイスとして動作してもよく、他の機械に接続(たとえば、ネットワーク化)されてもよい。ネットワーク化された配置では、機械900は、サーバ-クライアントネットワーク環境内でサーバマシン、クライアントマシン、または両方として動作することができる。一例では、機械900は、ピアツーピア(P2P)(または他の分散)ネットワーク環境内でピアマシンとして活動することができる。機械900は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、スマートフォン、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、サーバコンピュータ、データベース、会議室機器、またはその機械によって取られるべき動作を指定する命令(シーケンシャルもしくはその他)を実行することが可能な任意の機械であってもよい。様々な実施形態では、機械900は、上記の
図1~
図8および/または下記の
図10に関して上述されたプロセスのうちの1つまたは複数を実行することができる。さらに、単一の機械が図示されているが、「機械」という用語はまた、クラウドコンピューティング、サービス型ソフトウェア(SaaS)、他のコンピュータクラスタ構成などの、本明細書で説明された方法のうちのいずれか1つまたは複数を実行するために、命令のセット(または複数のセット)を単独または一緒に実行する機械の任意の集合を含むように受け取られるべきである。
【0089】
[0098]本明細書に記載された例は、ロジック、またはいくつかの構成要素、モジュール、もしくはメカニズム(すべて、以下「モジュール」と呼ばれる)を含む場合があるか、またはそれらの上で動作することができる。モジュールは、指定された動作を実行することが可能な有形のエンティティ(たとえば、ハードウェア)であるか、またはある特定の方式で構成または配置される場合がある。一例では、回路は、モジュールとして指定された方式で(他の回路などの外部エンティティの内部に、またはそれらに対して)配置される場合がある。一例では、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロンのクライアントもしくはサーバのコンピュータシステム)または1つもしくは複数のハードウェアプロセッサの全部または一部は、指定された動作を実行するように動作するモジュールとしてファームウェアまたはソフトウェア(たとえば、命令、アプリケーション部分、もしくはアプリケーション)によって構成される場合がある。一例では、ソフトウェアは機械可読媒体上に存在する場合がある。一例では、ソフトウェアは、モジュールの下層のハードウェアによって実行されると、指定された動作をハードウェアに実行させる。
【0090】
[0099]したがって、「モジュール」という用語は、有形のエンティティを包含し、指定された方式で動作するか、または本明細書に記載された任意の動作の一部もしくはすべてを実行するように、物理的に構築されるか、具体的に構成される(たとえば、ハードワイヤリングされる)か、または一時的に(たとえば、一過性で)構成される(たとえば、プログラムされる)エンティティであると理解される。モジュールが一時的に構成される例を考えると、モジュールの各々はいかなる時点でもインスタンス化される必要がない。たとえば、モジュールがソフトウェアを使用して構成された汎用ハードウェアプロセッサを備える場合、汎用ハードウェアプロセッサは、異なる時間にそれぞれの異なるモジュールとして構成される場合がある。ソフトウェアは、それに応じて、たとえば、ある時間インスタンスに特定のモジュールを構成し、異なる時間インスタンスに異なるモジュールを構成するように、ハードウェアプロセッサを構成することができる。
【0091】
[00100]機械(たとえば、コンピュータシステム)900は、ハードウェアプロセッサ902(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、ハードウェアプロセッサコア、またはそれらの任意の組合せ)、主メモリ904、およびスタティックメモリ906を含む場合があり、それらの一部またはすべては、インターリンク(たとえば、バス)908を介して互いに通信することができる。機械900は、ディスプレイユニット910、英数字入力デバイス912(たとえば、キーボード)、およびユーザインターフェース(UI)ナビゲーションデバイス914(たとえば、マウス)をさらに含む場合がある。一例では、ディスプレイユニット910、入力デバイス912、およびUIナビゲーションデバイス914は、タッチスクリーンディスプレイであってもよい。機械900は、ストレージデバイス(たとえば、ドライブユニット)916、信号発生デバイス918(たとえば、スピーカ)、ネットワークインターフェースデバイス920、および全地球測位システム(GPS)センサ、コンパス、加速度計、または他のセンサなどの1つまたは複数のセンサ921をさらに含む場合がある。機械900は、1つまたは複数の周辺デバイス(たとえば、プリンタ、カードリーダなど)と通信するか、またはそれらを制御するために、シリアル(たとえば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線もしくはワイヤレス(たとえば、赤外線(IR)、近距離無線通信(NFC)など)の接続などの、出力コントローラ928を含む場合がある。
【0092】
[00101]ストレージデバイス916は、本明細書に記載された技法または機能のうちのいずれか1つまたは複数によって使用または利用されるデータ構造または命令924(たとえば、ソフトウェア)の1つまたは複数のセットが記憶される、機械可読媒体922を含む場合がある。命令924はまた、機械900によるその実行中に、主メモリ904内、スタティックメモリ906内、またはハードウェアプロセッサ902内に完全にまたは少なくとも部分的に存在する場合がある。一例では、ハードウェアプロセッサ902、主メモリ904、スタティックメモリ906、またはストレージデバイス916の1つまたは任意の組合せは、機械可読媒体を構成することができる。
【0093】
[00102]機械可読媒体922は単一の媒体として図示されているが、「機械可読媒体」という用語は、1つまたは複数の命令924を記憶するように構成された単一の媒体または複数の媒体(たとえば、集中型もしくは分散型のデータベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含んでもよい。
【0094】
[00103]「機械可読媒体」という用語は、機械900が実行するための命令を記憶、符号化、もしくは搬送することが可能であり、本開示の技法のうちのいずれか1つもしくは複数を機械900に実行させるか、またはそのような命令によって使用されるかもしくはそれらに関連付けられたデータ構造を記憶、符号化、もしくは搬送することが可能である、任意の媒体を含んでもよい。非限定的な機械可読媒体の例には、ソリッドステートメモリ、ならびに光学媒体および磁気媒体が含まれる場合がある。機械可読媒体の具体例には、半導体メモリデバイス(たとえば、電気的プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM))、およびフラッシュメモリデバイスなどの不揮発性メモリ、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ランダムアクセスメモリ(RAM)、ソリッドステートドライブ(SSD)、ならびにCD-ROMディスクおよびDVD-ROMディスクが含まれる場合がある。いくつかの例では、機械可読媒体は、非一時的機械可読媒体を含む場合がある。いくつかの例では、機械可読媒体は、一時的伝搬信号ではない機械可読媒体を含む場合がある。
【0095】
[00104]命令924は、さらにネットワークインターフェースデバイス920を介して送信媒体を使用する通信ネットワーク926上で送信または受信される場合がある。機械900は、いくつかの転送プロトコル(たとえば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザダイアグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちのいずれか1つを利用して、1つまたは複数の他の機械と通信することができる。例示的な通信ネットワークには、とりわけ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(たとえば、インターネット)、携帯電話ネットワーク(たとえば、セルラーネットワーク)、簡素な旧来の電話(POTS)ネットワーク、およびワイヤレスデータネットワーク(たとえば、Wi-Fi(登録商標)として知られている電気電子技術者協会(IEEE)802.11規格ファミリ、WiMax(登録商標)として知られているIEEE802.16規格ファミリ)、IEEE802.15.4規格ファミリ、ロングタームエボリューション(LTE)規格ファミリ、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)規格ファミリ、ピアツーピア(P2P)ネットワークが含まれてもよい。一例では、ネットワークインターフェースデバイス920は、通信ネットワーク926に接続するために、1つもしくは複数の物理ジャック(たとえば、イーサネットジャック、同軸ジャック、もしくは電話ジャック)または1つもしくは複数のアンテナを含む場合がある。一例では、ネットワークインターフェースデバイス920は、単入力多出力(SIMO)技法、多入力多出力(MIMO)技法、または多入力単出力(MISO)技法のうちの少なくとも1つを使用してワイヤレス通信するために、複数のアンテナを含む場合がある。いくつかの例では、ネットワークインターフェースデバイス920は、マルチユーザMIMO技法を使用してワイヤレス通信することができる。
【0096】
[00105]
図10は、開示された実施形態のうちの1つまたは複数によってその少なくとも一部分が実装される場合があるネットワーク化システムの概略図である。ネットワーク化システム1100aは、アプリケーションサーバ1116aなどのリモートクラウドベースのITリソースとともに、業務用企業環境1103aを含む。業務用企業環境1103aはユーザ端末1102aを含む。ユーザ端末1102aは、企業データストア1104aに格納された機密データを含む企業データにアクセスする。上述されたように、開示された実施形態は、企業1103aを離れたデータの監視および制御を実現する。
【0097】
[00106]ユーザ端末1102aは、リモートアプリケーションサーバ1116aにネットワークデータ1105aを送信する。リモートアプリケーションサーバ1116aは、リモートアプリケーションサーバ1116aに送信されたネットワークデータ105aを途中で捕まえるフィルタ1107aを含む。ユーザ端末1102aは、様々な理由でリモートアプリケーションサーバ1116aにデータを送信することができる。たとえば、ネットワークデータ1105aは、電子メールメッセージの少なくとも一部分であり得、リモートアプリケーションサーバ1116aは、電子メールアプリケーションサービスを実装することができる。ネットワークデータ1105aは、代替として、複数のユーザ間のデータの共有を容易にするウェブサイトまたはリモートストレージ(たとえば、Sharepoint(登録商標)、Box(登録商標)など)にアップロードされているドキュメントを表す場合がある。これらの実施形態では、データ1105aは、HTTPポストタイプメッセージに含まれる場合がある。
【0098】
[00107]ネットワークデータ1105aがアプリケーションサーバ116aに送信されると、それは安全な環境1140aの外部に曝される危険があり得る。たとえば、電子メールアプリケーションを実装するアプリケーションサーバ1116aの場合、クライアントデバイス1102aは、外部デバイス1117aに電子メースメッセージの一部としてネットワークデータ1105aを送信するように試みる場合がある。共有機能を有するウェブサイトを実装するアプリケーションサーバ1116aの場合、ネットワークデータ1105aがウェブサイトを介して公開されると、それは外部デバイス1117aによって見られる危険がある。
【0099】
[00108]ネットワークデータ1105aが企業103aによって機密と見なされるデータを含むかどうかを判定するために、データ保護フィルタ1107aは、データ照合分類器(DMC)1108aにネットワークデータ1105aを送信する。DMC1108aは、ネットワークデータ1105aに対して1つまたは複数のスクリーニング方法を実行するために、ポリシーデータストア1110aと相談する。
【0100】
[00109]1つまたは複数のスクリーニング方法の各々は、ネットワークデータ1105aが機密情報の1つまたは複数の指示を有するかどうかを識別する。スクリーニング方法は、ネットワークデータに対して様々な分析を実行して、ネットワークデータが機密情報の指示を含むかどうかを判定することができる。いくつかの実施形態では、DMC1108aによって実行されるスクリーニング方法は、ネットワークデータに対する正規表現評価および/またはキーワード照合のうちの1つまたは複数を使用することができる。ネットワークデータ内で識別されるべき正規表現および/またはキーワードを定義する情報は、構成情報からDMC1108aによって取得される場合がある。いくつかの態様では、正規表現および/またはキーワードは、ポリシー固有であってもよい。ポリシーは、時刻、ユーザ識別子、グループ識別子、または他のパラメータのうちの1つまたは複数に基づく場合がある。ネットワークデータ1105aに適用するポリシーは、ポリシーデータストア1110aから取得される場合がある。ポリシーデータストア1110aに含まれるポリシー情報は、管理コンソール1113aを介して構成される場合がある。
【0101】
[00110]開示された実施形態は、ネットワークデータを部分にセグメント化し、各個別部分が機密データの指示を含むかどうかを判定することができる。したがって、たとえば、ネットワークデータ1105aが単一の電子ドキュメントを表す場合、そのドキュメントは複数の部分にセグメント化される場合があり、DMC108aは、複数の部分の各々が機密情報の指示を含むかどうかを判定することができる。スクリーニング方法は、ネットワークデータが機密情報を含むかどうかを確実には判定しないが、それらは、機密情報がネットワークデータ1105aに含まれる危険の指示を提供する。
【0102】
[00111]ネットワークデータ1105aのセグメント化は、実施形態によって異なる場合がある様々な技法を使用して実行される場合がある。いくつかの実施形態では、セグメント化は、特定のセグメントのサイズに従って実行される場合がある。たとえば、これらの実施形態では、恐らくネットワークデータの最終セグメント以外の各セグメントは、均等なサイズのセグメントであり得る。他の実施形態は、ネットワークデータ自体のコンテキスト知識に基づいてデータをセグメント化することができる。たとえば、ネットワークデータが電子ドキュメントを表す場合、いくつかの実施形態は、ページ境界、パラグラフ境界、スプレッドシートのセル、行、もしくは列の境界、またはネットワークデータによって符号化された特定の電子ドキュメントによって異なる他のコンテキスト境界などに沿って、電子ドキュメントを有する境界と一致するネットワークデータをセグメント化することができる。
【0103】
[00112]ネットワークデータ1105aの一部分が機密情報を曝す危険を提示すると判定された場合、DMC1108aは、インターネットなどのネットワークを介してデータ照合サービス(DMS)1114aにその部分を送信する。DMS1114aは、受信された部分をEDM探索データストア1125a内のデータと比較する。
【0104】
[00113]EDM探索データストア1125aは、企業1103a内に配置された企業データストア1104aからデータフロー1126aを介して集められる。いくつかの実施形態では、企業データストア1104aからEDM探索データストア125aへのデータは、データアップロードシステム1130aによって提供される場合がある。たとえば、データアップロードシステム1130aは、企業データストア1140aにデータをアップロードする前に、企業データストア1104a内のデータをハッシュまたは暗号化することができる。インポートプロセス1145aは、EDM探索データストア1125aに集める前にデータをさらに処理することができる。企業データ1140aからEDM探索データストア1125aにデータをインポートするインポートプロセス1145aは、完全データ一致構成データストア1142aに含まれる構成情報によって制御される場合があり、完全データ一致構成データストア1142aは、管理コンソール1113aに表示されるユーザインターフェースを介して構成される場合がある。
【0105】
[00114]上述された1つまたは複数のスクリーニング方法によるネットワークデータ1105aの分析に加えて、DMC1108aは、ネットワークデータ105aがEDM探索データストア1125aにアップロードされることを待っているかどうかを判定するようにさらに構成される場合がある。たとえば、DMC1108aは、ネットワークデータ1105aのアップロードが保留中かどうかを判定するために、新データキュー1132aをチェックすることができる。これらの実施形態では、企業1103a内で作成された新データは、企業データストア1104aに追加され、新データキュー1132a内でも示される。企業データストア1104aからEDM探索データストア1125aへのアップロードは、アップローダ1130aにより、新データキュー1132a内のデータによって駆動される場合がある。いくつかの実施形態では、アップローダ1130aは、周期的に、または少なくとも、新データが最初に作成された時間とデータがEDM探索データストア1125aへの転送に成功した時間との間に何らかの遅延をもたらす離散間隔で動作する。この遅延の間、この新データは、本明細書に記載されたように改善策が取られない限り、クライアントデバイス1105aによる暴露に脆弱であり得る。
【0106】
[00115]したがって、DMC1108aは、ネットワークデータ1105aがすでにアップロードされており、したがって、DMS1114aによる検出に成功することができるかどうか、または新データがユーザ端末1102aによって曝されないことをDMC1108aが保証するべきかどうかを判定するために、新データキュー1132aをチェックすることができる。新データがユーザ端末1102aによる暴露を制限されているかどうかを判定するために、DMC1108aは、企業データストア1104aに含まれるデータ用のインジケータをチェックすることができる。たとえば、企業データストア1104aは、ネットワークデータ1104aの特定の部分がユーザ端末1102aによる暴露を制限されているかどうかを示す場合がある。ネットワークデータ1105aが制限されている場合、DMC1108aは、DMS1114aと相談することなく、安全な環境の外部でのネットワークデータ1105aの送信をブロックすることができる。
【0107】
[00116]本明細書に記載された例は、ロジック、またはいくつかの構成要素、モジュール、もしくはメカニズムを含む場合があるか、またはそれらで動作することができる。モジュールは、指定された動作を実行することが可能な有形のエンティティ(たとえば、ハードウェア)であるか、またはある特定の方式で構成または配置される場合がある。一例では、回路は、モジュールとして指定された方式で(他の回路などの外部エンティティの内部に、またはそれらに対して)配置される場合がある。一例では、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロンのクライアントもしくはサーバのコンピュータシステム)または1つもしくは複数のハードウェアプロセッサの全部または一部は、指定された動作を実行するように動作するモジュールとしてファームウェアまたはソフトウェア(たとえば、命令、アプリケーション部分、もしくはアプリケーション)によって構成される場合がある。一例では、ソフトウェアは機械可読媒体上に存在する場合がある。一例では、ソフトウェアは、モジュールの下層のハードウェアによって実行されると、指定された動作をハードウェアに実行させる。
【0108】
[00117]開示された実施形態のうちのいくつかは、上述されたように、ラベルに準拠するためのドキュメントの修正の、
図10に関して上述されたクラウドベースのドキュメント管理システムとの統合を実現することができる。たとえば、いくつかの実施形態では、クライアントデバイス1102aは、
図7に関して上述された機能のうちの1つまたは複数を実行する。
図10のクライアントデバイス1102aは、
図1に関して上述されたクライアントデバイス102aと均等である。
図1に関して上述されたドキュメントラベリングシステム108は、アプリケーションサーバ1116aまたはアップローダ1130aのうちの1つまたは複数と統合される。
【0109】
[00118]例1は、実行されると、第1の電子ドキュメントの第1のラベルを示す入力を受け取ることと、第1のラベルによって規定されたドキュメント要件を特定することと、ドキュメント要件に基づいて第1の電子ドキュメントの修正を決定することと、第1のデバイスが実行するように構成された修正の部分を決定することと、部分に基づいて第1の電子ドキュメントを修正することと、ラベル、電子ドキュメントを示し、第1のデバイスによって行われた修正を個別に示すようにメッセージを生成することと、ネットワークサービスまたはいくつかの実施形態においてネットワークサービスを実行している場合がある第2のデバイスにメッセージを送信することとを含む動作を実行するように第1のデバイスのハードウェア処理回路を構成する命令を記憶する、非一時的コンピュータ可読記憶媒体である。
【0110】
[00119]例2では、例1の主題は、場合によっては、入力がユーザインターフェースから受け取られることを含む。
[00120]例3では、例1~2のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメント要件を特定することが、第1のラベルに基づいてデータストアを探索することと、探索に基づいてドキュメント要件を特定することとを含むことを含む。
【0111】
[00121]例4では、例1~3のうちのいずれか1つまたは複数の主題は、場合によっては、第1のデバイスがクライアントデバイスであり、メッセージが第2のデバイス上で動作する電子メールサーバアプリケーションに送信されることを含む。
【0112】
[00122]例5では、例1~4のうちのいずれか1つまたは複数の主題は、場合によっては、修正が電子ドキュメントのコンテンツ修正または電子ドキュメントの暗号化のうちの1つまたは複数を含むことを含む。
【0113】
[00123]例6では、例1~5のうちのいずれか1つまたは複数の主題は、場合によっては、第2のデバイスがメッセージに基づいて部分に含まれない修正を実行するように構成されることを含む。
【0114】
[00124]例7では、例1~6のうちのいずれか1つまたは複数の主題は、場合によっては、メッセージが、電子ドキュメントのコンテンツとは別個のメッセージのフィールド内の部分に含まれる修正を識別することにより、修正を個別に示すようにさらに生成されることを含む。
【0115】
[00125]例8は、第1の電子ドキュメントの第1のラベルを示す入力を受け取ることと、第1のラベルによって規定されたドキュメント要件を特定することと、ドキュメント要件に基づいて第1の電子ドキュメントの修正を決定することと、第1のデバイスが実行するように構成された修正の第1の部分を決定することと、第1の部分に従って第1の電子ドキュメントを修正することと、ラベル、電子ドキュメントを示し、第1のデバイスによって行われた修正を個別に示すようにメッセージを生成することと、第2のデバイスにメッセージを送信することとを含む、第1のデバイスのハードウェア処理回路によって実行される方法である。
【0116】
[00126]例9では、例8の主題は、場合によっては、入力がユーザインターフェースから受け取られることを含む。
[00127]例10では、例8~9のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメント要件を特定することが、第1のラベルに基づいてデータストアを探索することと、探索に基づいてドキュメント要件を特定することとを含むことを含む。
【0117】
[00128]例11では、例8~10のうちのいずれか1つまたは複数の主題は、場合によっては、第1のデバイスがクライアントデバイスであり、メッセージが第2のデバイス上で動作する電子メールサーバアプリケーションに送信されることを含む。
【0118】
[00129]例12では、例8~11のうちのいずれか1つまたは複数の主題は、場合によっては、修正が電子ドキュメントのコンテンツ修正または電子ドキュメントの暗号化のうちの1つまたは複数を含むことを含む。
【0119】
[00130]例13では、例8~12のうちのいずれか1つまたは複数の主題は、場合によっては、第2のデバイスがメッセージに基づいて第1の部分に含まれない修正の第2の部分を実行するように構成されることを含む。
【0120】
[00131]例14では、例8~13のうちのいずれか1つまたは複数の主題は、場合によっては、メッセージが、電子ドキュメントのコンテンツとは別個のメッセージのフィールド内で行われた修正の各々を識別することにより、修正を個別に示すようにさらに生成されることを含む。
【0121】
[00132]例15は、ハードウェア処理回路と、実行されると、第1の電子ドキュメントの第1のラベルを示す入力を受け取ることと、第1のラベルによって規定されたドキュメント要件を特定することと、ドキュメント要件に基づいて第1の電子ドキュメントの修正のセットを決定することと、修正のセットのサブセットを決定することとを含む動作を実行するようにハードウェア処理回路を構成する命令を記憶する1つまたは複数の電子メモリとを備える、システムであり、ハードウェア処理回路は、サブセットに基づいて第1の電子ドキュメントを修正することと、ラベル、電子ドキュメントを示し、ハードウェア処理回路によって行われた修正を個別に示すようにメッセージを生成することと、リモートデバイスにメッセージを送信することとを実行するように構成される。
【0122】
[00133]例16では、例15の主題は、場合によっては、入力がユーザインターフェースから受け取られることを含む。
[00134]例17では、例15~16のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメント要件を特定することが、第1のラベルに基づいてデータストアを探索することと、探索に基づいてドキュメント要件を特定することとを含むことを含む。
【0123】
[00135]例18では、例15~17のうちのいずれか1つまたは複数の主題は、場合によっては、ハードウェア処理回路がクライアントデバイスに含まれ、メッセージがリモートデバイス上で動作する電子メールサーバアプリケーションに送信されることを含む。
【0124】
[00136]例19では、例15~18のうちのいずれか1つまたは複数の主題は、場合によっては、修正のセットが電子ドキュメントのコンテンツ修正または電子ドキュメントの暗号化のうちの1つまたは複数を含むことを含む。
【0125】
[00137]例20では、例15~19のうちのいずれか1つまたは複数の主題は、場合によっては、リモートデバイスが、メッセージに基づいて、親21を失ったサブセット20に含まれない修正のセットからの修正を実行するように構成されることを含む。メッセージが、電子ドキュメントのコンテンツとは別個のメッセージのフィールド内で行われた修正の各々を識別することにより、修正を個別に示すようにさらに生成される、例15のシステム。
【0126】
[00138]例21は、第1の電子ドキュメントに第1のラベルを割り当てる入力を受け取るための手段と、第1のラベルによって規定されたドキュメント要件を特定するための手段と、ドキュメント要件に基づいて第1の電子ドキュメントの修正を決定するための手段と、デバイスが実行するように構成された修正の部分を決定するための手段と、部分に従って第1の電子ドキュメントを修正するための手段と、ラベル、電子ドキュメントを示し、装置によって行われた修正を個別に示すようにメッセージを生成するための手段と、第2の装置にメッセージを送信するための手段とを備える、装置である。
【0127】
[00139]例22では、例21の主題は、場合によっては、入力を受け取るための手段がユーザインターフェースから入力を受け取るように構成されることを含む。
[00140]例23では、例21~22のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメント要件を特定するための手段が、第1のラベルに基づいてデータストアを探索し、探索に基づいてドキュメント要件を特定するように構成されることを含む。
【0128】
[00141]例24では、例21~23のうちのいずれか1つまたは複数の主題は、場合によっては、装置がクライアントデバイスであり、メッセージが第2の装置上で動作する電子メールサーバアプリケーションに送信されることを含む。
【0129】
[00142]例25では、例21~24のうちのいずれか1つまたは複数の主題は、場合によっては、修正が電子ドキュメントのコンテンツ修正または電子ドキュメントの暗号化のうちの1つまたは複数を含むことを含む。
【0130】
[00143]例26では、例21~25のうちのいずれか1つまたは複数の主題は、場合によっては、第2の装置がメッセージに基づいて部分に含まれない修正を実行するように構成されることを含む。
【0131】
[00144]例27では、例21~26のうちのいずれか1つまたは複数の主題は、場合によっては、メッセージを生成するための手段が、電子ドキュメントのコンテンツとは別個のメッセージのフィールド内の修正の各々を識別することにより、行われた修正を個別に示すようにメッセージさらに生成するように構成されることを含む。
【0132】
[00145]例29は、第2のデバイスによって第1のデバイスから、第1のドキュメント、第1のドキュメントに適用するラベルの指示、およびラベルの要件と第1のドキュメントの第1の状態との間の第1のギャップの指示を受信することと、示された第1のギャップに基づいて、第1のドキュメントに対する修正の第1のセットを決定することと、第1のドキュメントに対する修正の第1のセットを実行することと、第2のデバイスによって第3のデバイスから、第2のドキュメント、第2のドキュメントに適用するラベルの指示、およびラベルの要件と第2のドキュメントの第2の状態との間の第2のギャップの指示を受信することであって、第2のギャップが第1のギャップとは異なる、受信することと、示された第2のギャップに基づいて、第2のドキュメントに対する修正の第2のセットを決定することと、第2のドキュメントに対する修正の第2のセットを実行することとを含む方法である。
【0133】
[00146]例30では、例29の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たさない第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0134】
[00147]例31では、例29~30のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たす第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0135】
[00148]例32では、例30~31のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメントプロパティが、第1のドキュメントのフッタ、第1のドキュメントのヘッダ、第1のドキュメントの暗号化レベル、第1のドキュメントのパスワード複雑性、または第1のドキュメントの透かしのうちの1つまたは複数を含むことを含む。
【0136】
[00149]例33では、例30~32のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントがラベルの要件を満たすときに満たされる複数の基準をラベルが規定することを含む。
【0137】
[00150]例34では、例33の主題は、場合によっては、第1のギャップが、ラベルによって規定されたそれらそれぞれの基準を満たさない第1のドキュメントのドキュメントプロパティを識別することを含む。
【0138】
[00151]例35では、例29~34のうちのいずれか1つまたは複数の主題は、場合によっては、修正の第2のセットの実行が、出力デバイスに第2のドキュメントの修正バージョンを書き込むことを含むことを含む。
【0139】
[00152]例36では、例29~35のうちのいずれか1つまたは複数の主題は、場合によっては、第1のデバイスが、ラベルに準拠するために第1のドキュメントに対する修正の第1のグループを実行するように構成され、第3のデバイスの構成が、修正の第1のグループ内の少なくとも1つの修正を実行しないように第3のデバイスを防止することを含む。
【0140】
[00153]例37では、例36の主題は、場合によっては、第1のデバイスにインストールされた第1のソフトウェアアプリケーションが第1のドキュメントの第1のプロパティを修正するように構成され、第1のソフトウェアアプリケーションが第3のデバイスにインストールされていないことを含む。
【0141】
[00154]例38は、実行されると、第2のデバイスによって第1のデバイスから、第1のドキュメント、第1のドキュメントに適用するラベルの指示、およびラベルの要件と第1のドキュメントの第1の状態との間の第1のギャップの指示を受信することと、示された第1のギャップに基づいて、第1のドキュメントに対する修正の第1のセットを決定することと、第1のドキュメントに対する修正の第1のセットを実行することと、第2のデバイスによって第3のデバイスから、第2のドキュメント、第2のドキュメントに適用するラベルの指示、およびラベルの要件と第2のドキュメントの第2の状態との間の第2のギャップの指示を受信することであって、第2のギャップが第1のギャップとは異なる、受信することと、示された第2のギャップに基づいて、第2のドキュメントに対する修正の第2のセットを決定することと、第2のドキュメントに対する修正の第2のセットを実行することとを含む動作を実行するようにハードウェア処理回路を構成する命令を含む、非一時的コンピュータ可読記憶媒体である。
【0142】
[00155]例39では、例38の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たさない第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0143】
[00156]例40では、例38~39のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たす第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0144】
[00157]例41では、例39~40のうちのいずれか1つまたは複数の主題は、場合によっては、ドキュメントプロパティが、第1のドキュメントのフッタ、第1のドキュメントのヘッダ、第1のドキュメントの暗号化レベル、第1のドキュメントのパスワード複雑性、または第1のドキュメントの透かしのうちの1つまたは複数を含むことを含む。
【0145】
[00158]例42では、例30~41のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントがラベルの要件を満たすときに満たされる複数の基準をラベルが規定することを含む。
【0146】
[00159]例43では、例42の主題は、場合によっては、第1のギャップが、ラベルによって規定されたそれらそれぞれの基準を満たさない第1のドキュメントのドキュメントプロパティを識別することを含む。
【0147】
[00160]例44では、例38~43のうちのいずれか1つまたは複数の主題は、場合によっては、修正の第2のセットの実行が、出力デバイスに第2のドキュメントの修正バージョンを書き込むことを含むことを含む。
【0148】
[00161]例45では、例38~44のうちのいずれか1つまたは複数の主題は、場合によっては、第1のデバイスが、ラベルに準拠するために第1のドキュメントに対する修正の第1のグループを実行するように構成され、第3のデバイスの構成が、修正の第1のグループ内の少なくとも1つの修正を実行しないように第3のデバイスを防止することを含む。
【0149】
[00162]例46では、例45の主題は、場合によっては、第1のデバイスにインストールされた第1のソフトウェアアプリケーションが第1のドキュメントの第1のプロパティを修正するように構成され、第1のソフトウェアアプリケーションが第3のデバイスにインストールされていないことを含む。
【0150】
[00163]例47は、ハードウェア処理回路と、実行されると、第2のデバイスによって第1のデバイスから、第1のドキュメント、第1のドキュメントに適用するラベルの指示、およびラベルの要件と第1のドキュメントの第1の状態との間の第1のギャップの指示を受信することと、示された第1のギャップに基づいて、第1のドキュメントに対する修正の第1のセットを決定することと、第1のドキュメントに対する修正の第1のセットを実行することと、第2のデバイスによって第3のデバイスから、第2のドキュメント、第2のドキュメントに適用するラベルの指示、およびラベルの要件と第2のドキュメントの第2の状態との間の第2のギャップの指示を受信することであって、第2のギャップが第1のギャップとは異なる、受信することと、示された第2のギャップに基づいて、第2のドキュメントに対する修正の第2のセットを決定することと、第2のドキュメントに対する修正の第2のセットを実行することとを含む動作を実行するようにハードウェア処理回路を構成する命令を記憶する1つまたは複数のハードウェアメモリとを備える、システムである。
【0151】
[00164]例48では、例47の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たさない第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0152】
[00165]例49では、例47~48のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントおよび第1のギャップの指示がネットワークメッセージ内で第2のデバイスによって受信され、第1のギャップが、ラベルの要件を満たす第1のドキュメントのドキュメントプロパティのリストによって示されることを含む。
【0153】
[00166]例50では、例49の主題は、場合によっては、ドキュメントプロパティが、第1のドキュメントのフッタ、第1のドキュメントのヘッダ、第1のドキュメントの暗号化レベル、第1のドキュメントのパスワード複雑性、または第1のドキュメントの透かしのうちの1つまたは複数を含むことを含む。
【0154】
[00167]例51では、例47~50のうちのいずれか1つまたは複数の主題は、場合によっては、第1のドキュメントがラベルの要件を満たすときに満たされる複数の基準をラベルが規定することを含む。
【0155】
[00168]例52では、例47~51のうちのいずれか1つまたは複数の主題は、場合によっては、第1のギャップが、ラベルによって規定されたそれらそれぞれの基準を満たさない第1のドキュメントのドキュメントプロパティを識別することを含む。
【0156】
[00169]例53では、例47~52のうちのいずれか1つまたは複数の主題は、場合によっては、修正の第2のセットの実行が、出力デバイスに第2のドキュメントの修正バージョンを書き込むことを含むことを含む。
【0157】
[00170]例54では、例47~53のうちのいずれか1つまたは複数の主題は、場合によっては、第1のデバイスが、ラベルに準拠するように第1のドキュメントに対する修正の第1のグループを実行するように構成され、第3のデバイスの構成が、修正の第1のグループ内の少なくとも1つの修正を実行しないように第3のデバイスを防止することを含む。
【0158】
[00171]例55では、例54の主題は、場合によっては、第1のデバイスにインストールされた第1のソフトウェアアプリケーションが第1のドキュメントの第1のプロパティを修正するように構成され、第1のソフトウェアアプリケーションが第3のデバイスにインストールされていないことを含む。
【0159】
[00172]したがって、「モジュール」という用語は、有形のエンティティを包含し、指定された方式で動作するか、または本明細書に記載された任意の動作の一部もしくはすべてを実行するように、物理的に構築されるか、具体的に構成される(たとえば、ハードワイヤリングされる)か、または一時的に(たとえば、一過性で)構成される(たとえば、プログラムされる)エンティティであると理解される。モジュールが一時的に構成される例を考えると、モジュールの各々はいかなる時点でもインスタンス化される必要がない。たとえば、モジュールがソフトウェアを使用して構成された汎用ハードウェアプロセッサを備える場合、汎用ハードウェアプロセッサは、異なる時間にそれぞれの異なるモジュールとして構成される場合がある。ソフトウェアは、それに応じて、たとえば、ある時間インスタンスに特定のモジュールを構成し、異なる時間インスタンスに異なるモジュールを構成するように、ハードウェアプロセッサを構成することができる。
【0160】
[00173]様々な実施形態は、ソフトウェアおよび/またはファームウェアに完全にまたは部分的に実装される場合がある。このソフトウェアおよび/またはファームウェアは、非一時的コンピュータ可読記憶媒体の中または上に含まれる命令の形態を取ることができる。それらの命令は、次いで、本明細書に記載された動作の実行を可能にするために、1つまたは複数のプロセッサによって読み取られ、実行される場合がある。命令は、限定はしないが、ソースコード、コンパイルされたコード、解釈されたコード、実行可能コード、静的なコード、動的なコードなどの任意の適切な形態であってもよい。そのようなコンピュータ可読媒体は、限定はしないが、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリなどの、1つまたは複数のコンピュータによって読取り可能な形態の情報を記憶するための任意の有形の非一時的な媒体を含んでもよい。