(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-28
(54)【発明の名称】デジタルコンテンツのリアルタイムな隠蔽
(51)【国際特許分類】
G06F 21/62 20130101AFI20220121BHJP
G06F 21/32 20130101ALI20220121BHJP
G06F 3/0481 20220101ALI20220121BHJP
G06T 7/00 20170101ALI20220121BHJP
【FI】
G06F21/62
G06F21/32
G06F3/0481
G06T7/00 510F
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021531689
(86)(22)【出願日】2018-12-04
(85)【翻訳文提出日】2021-07-12
(86)【国際出願番号】 CN2018119205
(87)【国際公開番号】W WO2020113427
(87)【国際公開日】2020-06-11
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】397074301
【氏名又は名称】サイトリックス システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】110002310
【氏名又は名称】特許業務法人あい特許事務所
(72)【発明者】
【氏名】ウェイ,ダオウェン
(72)【発明者】
【氏名】ディン,ジアン
(72)【発明者】
【氏名】ワン,ヘンボ
【テーマコード(参考)】
5B043
5E555
【Fターム(参考)】
5B043AA09
5B043BA04
5B043HA20
5E555AA71
5E555BA02
5E555BA18
5E555BB02
5E555BB18
5E555BC08
5E555BD01
5E555CA42
5E555CB69
5E555DC11
5E555EA05
5E555FA00
(57)【要約】
【課題】個人的なまたは特定の視聴者にとって不適切であるかもしれない情報の表示を制限する。
【解決手段】コンピューティングデバイスは、クライアントデバイスの画像キャプチャデバイスの視野内にいるユーザを検出することに応答して、デジタルコンテンツの第1領域で第1タイプのテキスト認識を行い、デジタルコンテンツの第2領域で第2タイプのテキスト認識を行う。第1タイプのテキスト認識は、第1領域に包含される第1タイプのコンテンツアイテムに基づいて判定され、第2タイプのテキスト認識は、第2領域に包含される第2タイプのコンテンツアイテムに基づいて判定される。ユーザに対応するルールに少なくとも部分的に基づいて、コンピューティングデバイスは、デジタルコンテンツ内で隠すべきコンテンツアイテムを判定し、またはコンテンツアイテムを隠すためにデジタルコンテンツを修正する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、
コンピュータ読取可能な命令を格納するメモリと、を備えるシステムであって、前記コンピュータ読取可能な命令は、前記少なくとも1つのプロセッサによって実行されたときに、
クライアントデバイスの画像キャプチャデバイスの視野内にいるユーザを検出することに応答して、前記クライアントデバイスによって表示されるデジタルコンテンツの第1領域で第1タイプのテキスト認識を行い、前記クライアントデバイスによって表示される前記デジタルコンテンツの第2領域で第2タイプのテキスト認識を行うことであって、前記第1タイプのテキスト認識は、前記第1領域に包含される第1タイプのコンテンツアイテムに基づいて判定され、前記第2タイプのテキスト認識は、前記第2領域に包含される第2タイプのコンテンツアイテムに基づいて判定される、テキスト認識を行うことと、
前記ユーザに対応するルールに少なくとも部分的に基づいて、前記デジタルコンテンツの中で隠すべきコンテンツアイテムを判定することと、
前記クライアントデバイスが前記デジタルコンテンツを表示している間、前記ユーザの視界から前記コンテンツアイテムを隠すように前記デジタルコンテンツを修正することと、
前記クライアントデバイスを介して、前記判定されたコンテンツアイテムを包含しない修正済みデジタルコンテンツを前記ユーザに表示することと、
を前記システムに行わせる、システム。
【請求項2】
前記命令は、前記少なくとも1つのプロセッサによって実行されたときに、
前記クライアントデバイスとのワイヤレスデータ接続を確立することと、
前記ワイヤレスデータ接続が確立されている間、現ユーザが属しているグループの第1変化の指標を受信することであって、前記現ユーザが属しているグループの第1変化の指標の受信に応答して、前記第1タイプのテキスト認識および前記第2タイプのテキスト認識が行われる、前記受信することと、
を前記システムにさらに行わせる、請求項1に記載のシステム。
【請求項3】
前記命令は、前記少なくとも1つのプロセッサによって実行されたときに、前記現ユーザが属しているグループに基づいて、前記デジタルコンテンツの中で隠すべき1つまたはそれ以上のコンテンツアイテムを特定することを、前記システムにさらに行わせる、請求項2に記載のシステム。
【請求項4】
前記現ユーザが属しているグループに基づいて、前記隠すべき1つまたはそれ以上のコンテンツアイテムを特定することは、前記デジタルコンテンツで認識されるテキストが現ユーザが属している各グループに対応するポリシーによって特定されている言葉に対応すると判定することを含む、請求項3に記載のシステム。
【請求項5】
前記現ユーザが属しているグループは、前記現ユーザのユーザ年齢または雇用形態に基づいて定義される、請求項2に記載のシステム。
【請求項6】
前記第1領域はプレーンテキストを包含し、前記第2領域は画像内のテキストを包含し、第3領域は映像内のテキストを包含する、請求項1に記載のシステム。
【請求項7】
前記命令は、前記少なくとも1つのプロセッサによって実行されたときに、所定の間隔で、前記現ユーザが属しているグループおよび前記デジタルコンテンツを監視して変化を判定することを、前記システムにさらに行わせる、請求項2に記載のシステム。
【請求項8】
前記命令は、前記少なくとも1つのプロセッサによって実行されたときに、
現ユーザが属しているグループの第2変化に応答して、前記判定されたコンテンツアイテムの表示ができるように前記修正済みデジタルコンテンツを修正するべきであると判定することと、
前記判定されたコンテンツアイテムの表示ができるようにするための前記修正済みデジタルコンテンツの修正を、前記修正済みデジタルコンテンツを修正前の状態に戻すことによって行うことと、
を前記システムにさらに行わせる、請求項2に記載のシステム。
【請求項9】
前記命令は、前記少なくとも1つのプロセッサによって実行されたときに、
前記コンテンツの第2変化に応答して、隠すべき1つまたはそれ以上の追加コンテンツアイテムを前記修正済みデジタルコンテンツが包含していると判定することと、
前記隠すべき1つまたはそれ以上の追加コンテンツアイテムの位置を均一色に対応させるように、前記修正済みデジタルコンテンツを修正することと、
を前記システムにさらに行わせる、請求項2に記載のシステム。
【請求項10】
現ユーザが属しているグループの前記変化の検出を、
顔認識を行って前記クライアントデバイスの前記画像キャプチャデバイスの視野内にいる各ユーザに対応する識別子を判定すること、および
識別子のリストと現ユーザが属しているグループのリストとの相関関係の格納データベースと、前記判定された識別子とを比較して、現ユーザが属している新たなグループに対応する少なくとも1つの識別子を判定すること、
によって行う、請求項1に記載のシステム。
【請求項11】
方法であって、
クライアントデバイスの画像キャプチャデバイスの視野内にいるユーザを検出することに応答して、前記クライアントデバイスによって表示されるデジタルコンテンツの第1領域で第1タイプのテキスト認識を行い、前記クライアントデバイスによって表示される前記デジタルコンテンツの第2領域で第2タイプのテキスト認識を行うことであって、前記第1タイプのテキスト認識は、前記第1領域に包含される第1タイプのコンテンツアイテムに基づいて判定され、前記第2タイプのテキスト認識は、前記第2領域に包含される第2タイプのコンテンツアイテムに基づいて判定される、前記テキスト認識を行うことと、
前記ユーザに対応するルールに少なくとも部分的に基づいて、前記デジタルコンテンツの中で隠すべきコンテンツアイテムを判定することと、
前記クライアントデバイスが前記デジタルコンテンツを表示している間、前記ユーザの視界から前記コンテンツアイテムを隠すように前記デジタルコンテンツを修正することと、
前記クライアントデバイスを介して、前記判定されたコンテンツアイテムを包含しない修正済みデジタルコンテンツを前記ユーザに表示することと、を含む、方法。
【請求項12】
前記クライアントデバイスとのワイヤレスデータ接続を確立することと、
前記ワイヤレスデータ接続が確立されている間、現ユーザが属しているグループの第1変化の指標を受信することであって、前記現ユーザが属しているグループの第1変化の指標の受信に応答して、前記第1タイプのテキスト認識および前記第2タイプのテキスト認識が行われる、受信することと、
をさらに含む、請求項11に記載の方法。
【請求項13】
前記現ユーザが属しているグループに基づいて、前記隠すべき1つまたはそれ以上のコンテンツアイテムを特定することをさらに含み、前記現ユーザが属しているグループに基づいて、前記隠すべき1つまたはそれ以上のコンテンツアイテムを特定することは、前記デジタルコンテンツで認識されるテキストが、
現ユーザが属している各グループに対応するポリシーによって特定されている言葉に対応すると判定することを含む、請求項12に記載の方法。
【請求項14】
前記現ユーザが属しているグループは、現ユーザのユーザ年齢または雇用形態に基づいて定義される、請求項12に記載の方法。
【請求項15】
前記第1領域はプレーンテキストを包含し、前記第2領域は画像内のテキストを包含し、第3領域は映像内のテキストを包含する、請求項11に記載の方法。
【請求項16】
所定の間隔で、前記現ユーザが属しているグループおよび前記デジタルコンテンツを監視して変化を判定することをさらに含む、請求項12に記載の方法。
【請求項17】
現ユーザが属しているグループの第2変化に応答して、前記コンテンツアイテムの表示ができるように、前記修正済みデジタルコンテンツを修正するべきであると判定することと、
前記判定されたコンテンツアイテムの表示ができるようにするための前記修正済みデジタルコンテンツの修正を、前記修正済みデジタルコンテンツを修正前の状態に戻すことによって行うことと、
をさらに含む、請求項12に記載の方法。
【請求項18】
前記修正済みデジタルコンテンツの第2変化に応答して、隠すべき1つまたはそれ以上の追加コンテンツアイテムを前記修正済みデジタルコンテンツが包含していると判定することと、
前記隠すべき1つまたはそれ以上の追加コンテンツアイテムの位置を均一色に対応させるように、前記修正済みデジタルコンテンツを修正することと、
をさらに含む、請求項12に記載の方法。
【請求項19】
現ユーザが属しているグループの前記変化の検出を、
顔認識を行って前記クライアントデバイスの前記画像キャプチャデバイスの視野内にいる各ユーザに対応する識別子を判定すること、および
識別子のリストと現ユーザが属しているグループのリストとの相関関係の格納データベースと、前記判定された識別子とを比較して、現ユーザが属している新たなグループに対応する少なくとも1つの識別子を判定すること、
によって行う、請求項11に記載の方法。
【請求項20】
1つまたは複数の非一時的コンピュータ可読媒体であって、
少なくとも1つのプロセッサと、通信インターフェースと、メモリとを備えるシステムによって実行されたときに、
クライアントデバイスの画像キャプチャデバイスの視野内にいるユーザを検出することに応答して、前記クライアントデバイスによって表示されるデジタルコンテンツの第1領域で第1タイプのテキスト認識を行い、前記クライアントデバイスによって表示される前記デジタルコンテンツの第2領域で第2タイプのテキスト認識を行うことであって、前記第1タイプのテキスト認識は、前記第1領域に包含される第1タイプのコンテンツアイテムに基づいて判定され、前記第2タイプのテキスト認識は、前記第2領域に包含される第2タイプのコンテンツアイテムに基づいて判定される、前記テキスト認識を行うことと、
前記ユーザに対応するルールに少なくとも部分的に基づいて、前記デジタルコンテンツの中で隠すべきコンテンツアイテムを判定することと、
前記クライアントデバイスが前記デジタルコンテンツを表示している間、前記ユーザの視界から前記コンテンツアイテムを隠すように前記デジタルコンテンツを修正することと、
前記クライアントデバイスを介して、前記判定されたコンテンツアイテムを包含しない修正済みデジタルコンテンツを前記ユーザに表示することと、
を前記システムに行わせる命令を格納している、1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明する発明の側面は、デジタルコンテンツを表示するためのコンピュータおよびその処理システムに関する。具体的には、本発明の1つまたはそれ以上の側面は、表示されるコンテンツを見ている個人を特定し、コンテンツの視聴者層に基づいたルール、ポリシー、およびデータベースに従って、ディスプレイからデジタルコンテンツを隠すことに関係する。
【背景技術】
【0002】
多くの組織および個人は、ある状況では、個人的な、または特定の視聴者にとって不適切であるかもしれない情報を伝達するためにコンテンツディスプレイに頼る。したがって個人は、当該情報の表示を制限するように、一般的なプライバシースクリーンを使用したり、またはディスプレイを手で遮ろうとさえしたりすることもある。多くの場合、ディスプレイを含むエリアに人が入退出すると視聴者が変わることがあるので、表示される情報の過剰露出および/または過剰な隠蔽の問題が生じる。
【発明の概要】
【0003】
以下に、本明細書に説明するさまざまな側面の簡単な概要を提示する。本概要は広範な全体像ではなく、要求されるもしくは欠かせない要素を特定すること、または請求の範囲を正確に説明することを意図していない。以下の概要は、以下に記載する、より詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するにすぎない。
【0004】
上述した先行技術の制限(例、一般的なプライバシースクリーンの使用での情報の過剰露出および/または過剰な隠蔽)を克服するために、また、本明細書を読んで理解すると明らかになるような他の制限を克服するために、本明細書で説明される側面は、個人に基づいたデジタルコンテンツの隠蔽をリアルタイムに行うためのシステムおよび方法に向けられる。
【0005】
本発明の1つまたはそれ以上の実施の形態によれば、少なくとも1つのプロセッサとメモリとを備えるシステムは、クライアントデバイスのカメラまたはその他の画像キャプチャデバイスの視野内にいるユーザを検出することに応答して、クライアントデバイスによって表示されるデジタルコンテンツの第1領域で第1タイプのテキスト認識を行い、クライアントデバイスによって表示されるデジタルコンテンツの第2領域で第2タイプのテキスト認識を行い、第1タイプのテキスト認識は、第1領域に包含される第1タイプのコンテンツアイテム(content items)に基づいて判定され、第2タイプのテキスト認識は、第2領域に包含される第2タイプのコンテンツアイテムに基づいて判定される。
【0006】
ユーザに対するグループに対応するルールに少なくとも部分的に基づいて、システムは、デジタルコンテンツの中で隠すべきコンテンツアイテムを判定してもよい。システムは、クライアントデバイスがデジタルコンテンツを表示している間、ユーザの視界からコンテンツアイテムを隠すようにデジタルコンテンツを修正してもよい。システムは、クライアントデバイスを介して、判定されたコンテンツアイテムを包含しない修正済みデジタルコンテンツをユーザに表示してもよい。
【0007】
1つまたはそれ以上の実施の形態において、システムは、クライアントデバイスとのワイヤレスデータ接続を確立してもよい。ワイヤレスデータ接続が確立されている間、システムは、現ユーザが属しているグループの第1変化の指標を受信してもよく、現ユーザが属しているグループの第1変化の指標の受信に応答して、第1タイプのテキスト認識および第2タイプのテキスト認識が行われる。
【0008】
1つまたはそれ以上の実施の形態において、システムは、現ユーザが属しているグループに基づいて、隠すべき1つまたはそれ以上のコンテンツアイテムを特定してもよい。1つまたはそれ以上の実施の形態において、システムは、デジタルコンテンツで認識されるテキストが現ユーザが属している各グループに対応するポリシーによって特定されている言葉に対応すると判定することによって、隠すべき1つまたはそれ以上のコンテンツアイテムを特定してもよい。
【0009】
1つまたはそれ以上の実施の形態において、現ユーザが属しているグループは、現ユーザのユーザ年齢または雇用形態に基づいて定義されてもよい。1つまたはそれ以上の実施の形態において、第1領域はプレーンテキストを包含してもよく、第2領域は画像内のテキストを包含してもよく、第3領域は映像内のテキストを包含してもよい。
【0010】
1つまたはそれ以上の実施の形態において、システムは、所定の間隔で、現ユーザが属しているグループおよびデジタルコンテンツを監視して変化を判定してもよい。いくつかの実施の形態において、システムは、現ユーザが属しているグループの第2変化に応答して、コンテンツアイテムの表示ができるように修正済みデジタルコンテンツを修正するべきであると判定してもよい。システムは、判定されたコンテンツアイテムの表示ができるようにするための修正済みデジタルコンテンツの修正を、修正済みデジタルコンテンツを修正前の状態に戻すことによって行ってもよい。
【0011】
1つまたはそれ以上の実施の形態において、システムは、コンテンツの第2変化に応答して、隠すべき1つまたはそれ以上の追加の言葉を更新済みコンテンツが包含すると判定してもよい。システムは、隠すべき1つまたはそれ以上の追加の言葉の位置を均一色に対応させるように、更新済みコンテンツを修正してもよい。
【0012】
1つまたはそれ以上の実施の形態において、システムは、現ユーザが属しているグループの変化の判定を、顔認識を行ってクライアントデバイスの画像キャプチャデバイスの視野内にいる各ユーザに対応する識別子を判定し、さらに識別子のリストと現ユーザが属しているグループのリストとの相関関係の格納データベースと、判定された識別子とを比較して、現ユーザが属している新たなグループに対応する少なくとも1つの識別子を判定することによって行ってもよい。
【0013】
以上および追加の側面は、以下のさらに詳細に述べる開示により認識されるであろう。
【0014】
本明細書で説明する発明の側面およびその利点は、添付の図面を考慮して以下の説明を参照すると、より完全な理解が得られる。図面において、同じ参照番号は同じ特徴を示す。
【図面の簡単な説明】
【0015】
【
図1】本明細書で説明される1つまたはそれ以上の側面に従って使用されるコンピュータシステムのアーキテクチャの例を示す。
【
図2】本明細書で説明される1つまたはそれ以上の側面に従って使用されるリモートアクセスシステムのアーキテクチャの例を示す。
【
図3】本明細書で説明される1つまたはそれ以上の側面に従って使用される仮想化(ハイパーバイザ)システムのアーキテクチャの例を示す。
【
図4】本明細書で説明される1つまたはそれ以上の側面に従って使用されるクラウドベースのシステムのアーキテクチャの例を示す。
【
図6】別の企業モビリティ管理システムの例を示す。
【
図7】1つまたはそれ以上の実施の形態に従ってリアルタイムのデジタルコンテンツの隠蔽を行うためのコンピューティング環境の例を示す。
【
図8A】1つまたはそれ以上の実施の形態に従ってリアルタイムのデジタルコンテンツの隠蔽を行うためのイベントシーケンスの例を示す。
【
図8B】1つまたはそれ以上の実施の形態に従ってリアルタイムのデジタルコンテンツの隠蔽を行うためのイベントシーケンスの例を示す。
【
図9】1つまたはそれ以上の実施の形態に従って、ユーザグループの変化に応答してリアルタイムのデジタルコンテンツの隠蔽を行うための方法の例を示す。
【
図10】1つまたはそれ以上の実施の形態に従って、表面コンテンツの変化に応答してリアルタイムのデジタルコンテンツの隠蔽を行うための方法の例を示す。
【
図11A】1つまたはそれ以上の実施の形態に従うリアルタイムのテキスト/デジタルコンテンツの隠蔽の実施に関連付けられているグラフィカル・ユーザ・インターフェースの例を示す。
【
図11B】1つまたはそれ以上の実施の形態に従うリアルタイムのテキスト/デジタルコンテンツの隠蔽の実施に関連付けられているグラフィカル・ユーザ・インターフェースの例を示す。
【
図12A】リアルタイムのデジタルコンテンツの隠蔽の実施に関連付けられている画像レイアウトを示す。
【
図12B】リアルタイムのデジタルコンテンツの隠蔽の実施に関連付けられている画像レイアウトを示す。
【
図12C】リアルタイムのデジタルコンテンツの隠蔽の実施に関連付けられている画像レイアウトを示す。
【
図13A】リアルタイムのデジタルコンテンツの隠蔽の実施に関連付けられている追加の画像レイアウトを示す。
【
図13B】リアルタイムのデジタルコンテンツの隠蔽の実施に関連付けられている追加の画像レイアウトを示す。
【発明を実施するための形態】
【0016】
さまざまな実施の形態の以下の説明において、上述のとおり特定し、本明細書の一部をなし、例示により本明細書で説明する発明の側面を実施する様々な実施の形態を添付の図面を参照して示す。本明細書で説明する範囲を逸脱することなく、他の実施の形態を利用し、構造および機能の変型を行えることは理解されるべきである。さまざまな側面は、他の実施の形態が可能であり、さまざまな異なる方法で実施または実行することが可能である。
【0017】
より詳細に以下で説明する主題の概略紹介として、本明細書で説明される側面は、ユーザグループに基づいてリアルタイムのデジタルコンテンツの隠蔽を行うための方法に向けられる。この方法は、いくつかの応用例において、プレーンテキスト、自然画像内のシーンテキスト、および映像テキストを検出して認識する深層学習技術によって可能になる、エンドツーエンドのフレームワークを記述する。
【0018】
1つまたはそれ以上の例では、本方法は、ストリーミングコンテンツ、ドキュメント(例、ワードプロセッシングファイル、ポータブルドキュメントフォーマット(PDF)ファイル等)、アプリケーション(例、グラフィカル・ユーザ・インターフェース等)等の中のデジタルコンテンツを隠すために使用してもよい。本方法は、テキスト/画像を含むコンテンツを表示している画面の前にそのときにいると判定されるユーザに基づいて、リアルタイムでテキスト/画像を隠す。
【0019】
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接および間接的な両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
【0020】
コンピューティングアーキテクチャ
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化および/またはクラウドベースの環境を含め、多様な異なるシステム環境で利用できる。
【0021】
図1は、本明細書で説明する1つまたはそれ以上の側面を、スタンドアロンおよび/またはネットワーク化環境で実装するために使用されるシステムアーキテクチャならびにデータ処理装置の一実施例を示す。
【0022】
さまざまなネットワークノード103,105,107および109は、インターネットなどの広域ネットワーク(WAN)101を介して相互接続されていてもよい。プライベートイントラネット、企業ネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等を含む、他のネットワークもまた、または代わりに使用してもよい。ネットワーク101は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。
【0023】
ローカルエリアネットワーク133は、あらゆる周知のLANトポロジーのうちの1つまたはそれ以上を有してもよく、イーサーネットなどの多様な異なるプロトコルのうちの1つまたはそれ以上を使用してもよい。デバイス103,105,107,および109および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの1つまたはそれ以上に接続され得る。
【0024】
本明細書で使用し、図面に図示する「ネットワーク」とは、遠隔記憶装置が1つまたはそれ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのこともいう。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する(単一のエンティティに帰属する)データから構成される「コンテンツネットワーク」も含む。
【0025】
コンポーネントは、データサーバ103、ウェブサーバ105およびクライアントコンピュータ107,109を含んでもよい。データサーバ103は、本明細書で説明する1つまたはそれ以上の側面を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御およびアドミニストレーションを提供する。
【0026】
データサーバ103は、ウェブサーバ105に接続されていてもよく、それによりユーザは、必要なデータとインタラクトし、必要なデータを取得する。あるいは、データサーバ103は、ウェブサーバ自体として実施されてもよく、インターネットに直接接続してもよい。データサーバ103は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ローカルエリアネットワーク133、広域ネットワーク101(例、インターネット)経由でウェブサーバ105に接続されていてもよい。
【0027】
ユーザは、リモートコンピュータ107,109を使用して、たとえばウェブサーバ105がホストする1つまたはそれ以上の外部に露出するウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用して、データサーバ103とインタラクトしてもよい。クライアントコンピュータ107,109は、データサーバ103とともに使用して、そこに格納されているデータにアクセスしてもよく、または他の目的で使用してもよい。たとえば、クライアントデバイス107から、ユーザは、当業界で周知のインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ105にアクセスしてもよい。
【0028】
サーバおよびアプリケーションは、同じ物理的マシン上に組み合わせて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理的マシンに常駐していてもよい。
【0029】
図1は、使用してもよいネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変えてもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に二次的なものであることを認識するであろう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは、単一のサーバに組み合わせてもよい。
【0030】
各コンポーネント103,105,107,109は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ103は、データサーバ103の動作全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、ランダムアクセスメモリ(RAM)113、読取専用メモリ(ROM)115、ネットワークインターフェース117、入出力インターフェース119(例、キーボード、マウス、ディスプレイ、プリンタ等)およびメモリ121をさらに含んでいてもよい。入出力(I/O)119は、データまたはファイルを読み込み、書き込み、表示し、および/または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ121は、データ処理装置103、本明細書で説明する側面を行うようデータサーバ103に指示する制御ロジック125、ならびに本明細書で説明する側面と合わせて使用してもしなくてもよい二次的、サポートおよび/または他の機能を提供する他のアプリケーションソフトウェア127の動作全体を制御するオペレーティングシステム・ソフトウェア123をさらに格納していてもよい。制御ロジック125は、本明細書ではデータサーバソフトウェア125ともいう。データサーバソフトウェア125の機能は、制御ロジック125に符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われる動作もしくは決定、および/またはユーザ入力(例、問合わせ、データのアップデート等)に基づく自動処理の組合せをいう。
【0031】
メモリ121は、第1データベース129および第2データベース131を含め、本明細書で説明する1つまたはそれ以上の側面の実施で使用されるデータも格納していてもよい。いくつかの実施の形態では、第1データベース129は、第2データベース131を含んでもよい(例、個別のテーブル、レポート等として)。すなわち、情報は、システムの設計により、単一のデータベースに格納することができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けることができる。デバイス105,107および109は、デバイス103に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有してもよい。当業者には、本明細書で説明するデータ処理装置103(またはデバイス105,107,109)の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質(QoS)等に基づいてトランザクションを分けてもよい。
【0032】
1つまたはそれ以上の側面は、1つまたはそれ以上のプログラムモジュールなど、1つまたはそれ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータ使用可能もしくは読取可能データおよび/またはコンピュータ実行可能命令に具現してもよい。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されたときに、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはハイパーテキスト・マークアップ・ランゲージ(HTML)もしくはエクステンシブル・マークアップ・ランゲージ(XML)などの(ただし、これだけに限定されない)スクリプト言語で書き込んでもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納してもよい。ハードディスク、CD-ROM、光学記憶装置、磁気記憶装置、および/またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。
【0033】
さらに、本明細書で説明するデータまたはイベントを表すさまざまな伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、ならびに/またはワイヤレス伝送媒体(例、空気および/もしくは空間)など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。本明細書で説明するさまざまな側面は、方法、データ処理システム、またはコンピュータプログラム製品として具現してもよい。そのため、さまざまな機能は、集積回路、フィールドプログラマブル・ゲートアレイ(FPGA)等といった、ソフトウェア、ファームウェアおよび/またはハードウェアもしくはハードウェア等価物に全部または一部を具現してもよい。本明細書で説明する1つまたはそれ以上の側面をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は、本明細書で説明するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に企図される。
【0034】
図2をさらに参照して、本明細書で説明する1つまたはそれ以上の側面は、リモートアクセス環境に実装してもよい。
図2は、本明細書で説明する1つまたはそれ以上の側面に従って使用してもよいコンピューティング環境200のコンピューティングデバイス201を含むシステムアーキテクチャを例示する。コンピューティングデバイス201は、単一サーバまたはマルチサーバのデスクトップ仮想化システム(例、リモートアクセスもしくはクラウドシステム)内のサーバ206aとして使用してもよく、クライアントアクセスデバイスに仮想マシンを提供するように構成できる。コンピューティングデバイス201は、RAM205、ROM207、入出力(I/O)モジュール209およびメモリ215を含め、デバイス201およびそれに関連付けられているコンポーネントの動作全体を制御するプロセッサ203を有してもよい。
【0035】
I/Oモジュール209は、コンピューティングデバイス201のユーザが入力を提供するマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および/またはスタイラス(もしくは他の入力デバイス)を含んでもよく、また音声出力を提供する1つまたはそれ以上のスピーカと、テキスト、オーディオビジュアルおよび/またはグラフィカル出力を提供する1つまたはそれ以上のビデオディスプレイデバイスとを含んでもよい。ソフトウェアは、メモリ215および/または他のストレージ内に格納して、本明細書で説明するさまざまな機能を実施するためにコンピューティングデバイス201を専用コンピューティングデバイスに構成するプロセッサ203に命令を与えてもよい。たとえば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219および関連付けられているデータベース221など、コンピューティングデバイス201が使用するソフトウェアを格納していてもよい。
【0036】
コンピューティングデバイス201は、端末240(クライアントデバイスともいう)などの1つまたはそれ以上のリモートコンピュータへの接続をサポートするネットワーク化環境で動作してもよい。端末240は、コンピューティングデバイス103もしくは201に関して上述した要素の多くもしくはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【0037】
図2に図示するネットワーク接続は、ローカルエリアネットワーク(LAN)225および広域ネットワーク(WAN)229を含むが、他のネットワークを含んでもよい。LANネットワーク化環境で使用される場合、コンピューティングデバイス201は、ネットワークインターフェースまたはアダプタ223経由でLAN225に接続してもよい。WANネットワーク化環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例、インターネット)など、WAN229上で通信を確立するモデムまたは他の広域ネットワークインターフェース227を含んでもよい。図示するネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用してもよいことは認識されるであろう。コンピューティングデバイス201および/または端末240は、バッテリ、スピーカおよびアンテナ(図示せず)などのさまざまな他のコンポーネントを含めて、モバイル端末(例、携帯電話、スマートフォン、携帯情報端末(PDA)、ノートブック等)であってもよい。
【0038】
本明細書で説明する側面は、多数の他の汎用もしくは専用コンピューティングシステムの環境または構成と併用して動作可能であってもよい。本明細書で説明する側面と併用するのに適する他のコンピューティングシステム、環境および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境を含むが、これだけに限定されない。
【0039】
図2に図示するように、1つまたはそれ以上のクライアントデバイス240は、1つまたはそれ以上のサーバ206a~206n(総称的に、本明細書では「サーバ206」という)と通信状態であってもよい。
【0040】
一つの実施の形態では、コンピューティング環境200は、サーバ206とクライアントマシン240との間にインストールされているネットワーク・アプライアンスを含んでもよい。ネットワーク・アプライアンスは、クライアント/サーバ接続を管理してもよく、ある場合には、複数のバックエンドサーバ206間のクライアント接続の負荷分散をすることができる。
【0041】
クライアントマシン240は、いくつかの実施の形態では、単一クライアントマシン240またはクライアントマシンの単一グループ240と称されることがあり、サーバ206は、単一サーバ206またはサーバの単一グループ206と称されることがある。
【0042】
一つの実施の形態では、単一クライアントマシン240は、2つ以上のサーバ206と通信し、別の実施の形態では、単一サーバ206は2つ以上のクライアントマシン240と通信する。さらに別の実施の形態では、単一クライアントマシン240は単一サーバ206と通信する。
【0043】
クライアントマシン240は、いくつかの実施の形態では、次の非網羅的な用語のうちのいずれか1つによって言及することができる。すなわち、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードがある。
【0044】
サーバ206は、いくつかの実施の形態では、次の非網羅的な用語のうちのいずれか1つによって言及してもよい。すなわち、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイスがある。
【0045】
一つの実施の形態では、クライアントマシン240は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施の形態では、仮想マシンは、タイプ1またはタイプ2のハイパーバイザ、たとえば、シトリックス・システムズ、IBM、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの側面において、仮想マシンは、ハイパーバイザによって管理してもよいが、他の側面では、仮想マシンは、サーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理してもよい。
【0046】
いくつかの実施の形態は、サーバ206または遠隔設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施の形態では、クライアントデバイス240は、仮想マシンの受信機プログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。ある例では、アプリケーションはデスクトップであるが、他の例では、アプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモートアプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、任意で、デスクトップも)のインスタンスがロードされた後に実行するプログラムである。
【0047】
サーバ206は、いくつかの実施の形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーションプロトコルまたは他のプロトコルを使用して、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか1つとすることができる。すなわち、フロリダ州フォート・ローダーデールのシトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル(RDP)がある。
【0048】
リモートコンピューティング環境は、サーバ206a~206nが、たとえばクラウドコンピューティング環境のサーバファーム206に論理的にまとめられるように、2つ以上のサーバ206a~206nを含んでもよい。サーバファーム206は、論理的にまとめられながらも地理的に分散しているサーバ206、または論理的にまとめられながらも互いに近接して配置されているサーバ206を含んでもよい。サーバファーム206内の地理的に分散したサーバ206a~206nは、いくつかの実施の形態では、WAN(広域)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的地域は、異なる大陸、大陸の中の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、または前述の地理的な場所のあらゆる組合せとして特徴付けることができる。いくつかの実施の形態では、サーバファーム206は単一エンティティとして管理されてもよいが、他の実施の形態では、サーバファーム206は複数のサーバファームを含むことができる。
【0049】
いくつかの実施の形態では、サーバファームは、実質的に同じようなタイプのオペレーティングシステムのプラットフォーム(例、WINDOWS(登録商標)、UNIX(登録商標)、LINUX、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでもよい。他の実施の形態では、サーバファーム206は、第1タイプのオペレーティングシステムのプラットフォームを実行する1つまたはそれ以上のサーバからなる第1グループと、第2タイプのオペレーティングシステムのプラットフォームを実行する1つまたはそれ以上のサーバからなる第2グループとを含んでもよい。
【0050】
サーバ206は、必要なあらゆるタイプのサーバとして、たとえば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワーク・アプライアンス、ゲートウェイ、アプリケーション・ゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、セキュア・ソケット・レイヤー(SSL)VPNサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバ、またはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバとして構成されていてもよい。他のサーバのタイプも使用してもよい。
【0051】
いくつかの実施の形態は、クライアントマシン240からの要求を受信し、要求を第2サーバ206b(図示せず)に転送し、第2サーバ206b(図示せず)からの応答により、クライアントマシン240により生成される要求に応答する第1サーバ206aを含む。第1サーバ206aは、クライアントマシン240に利用できるアプリケーションの一覧表、およびアプリケーションの一覧表内で特定されるアプリケーションをホストするアプリケーションサーバ206に関連付けられているアドレス情報を取得してもよい。それから、第1サーバ206aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、特定されたアプリケーションへのアクセスをクライアント240に提供することができる。1つまたはそれ以上のクライアント240および/または1つまたはそれ以上のサーバ206は、ネットワーク230、たとえばネットワーク101上でデータを伝送してもよい。
【0052】
図3は、デスクトップ仮想化システムの高レベルアーキテクチャを例示する。図示するように、デスクトップ仮想化システムは、1つまたはそれ以上のクライアントアクセスデバイス240に仮想デスクトップおよび/または仮想アプリケーションを提供するように構成されている少なくとも1つの仮想化サーバ301を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。
【0053】
本明細書で使用されるデスクトップとは、1つまたはそれ以上のアプリケーションをホストおよび/または実行してもよいグラフィカル環境またはスペースをいう。デスクトップは、ローカルおよび/またはリモートアプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでもよい。アプリケーションは、オペレーティングシステムのインスタンス(および、任意でデスクトップも)をロードした後に実行するプログラムを含んでもよい。オペレーティングシステムのインスタンスは、物理的(例、1デバイスにつき1つのオペレーティングシステム)または仮想的(例、単一デバイス上で稼動するOSの多くのインスタンス)であってもよい。各アプリケーションは、ローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行(例、遠隔操作)してもよい。
【0054】
コンピュータデバイス301は、仮想化環境の仮想サーバとして、たとえば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されていてもよい。
【0055】
図3に図示する仮想化サーバ301は、
図2に図示するサーバ206の1つまたはそれ以上の実施の形態もしくは他の周知のコンピューティングデバイスとしてデプロイすることができ、および/またはそれにより実装することができる。仮想化サーバ301に含まれるのが、1つまたはそれ以上の物理的ディスク304、1つまたはそれ以上の物理的デバイス306、1つまたはそれ以上の物理的プロセッサ308および1つまたはそれ以上の物理的メモリ316を含むことができるハードウェアレイヤである。いくつかの実施の形態では、ファームウェア312を物理的メモリ316のメモリ素子内に格納することができ、物理的プロセッサ308のうちの1つまたはそれ以上によって実行することができる。仮想化サーバ301は、さらに物理的メモリ316のメモリ素子内に格納されて、物理的プロセッサ308のうちの1つまたはそれ以上によって実行されてもよいオペレーティングシステム314をさらに含んでもよい。さらに、ハイパーバイザ302を物理的メモリ316のメモリ素子内に格納してもよく、物理的プロセッサ308のうちの1つまたはそれ以上によって実行することができる。
【0056】
物理的プロセッサ308のうちの1つまたはそれ以上で実行することは、1つまたはそれ以上の仮想マシン332A~332C(総称的に332)であってもよい。各仮想マシン332は、仮想ディスク326A~326Cおよび仮想プロセッサ328A~328Cを有していてもよい。いくつかの実施の形態では、第1仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行してもよい。制御プログラム320は、制御仮想マシン、Dom0、ドメイン0、またはシステムのアドミニストレーションおよび/もしくは制御に使用される他の仮想マシンと称されることがある。いくつかの実施の形態では、1つまたはそれ以上の仮想マシン332B~332Cは、仮想プロセッサ328B~328Cを使用して、ゲストオペレーティングシステム330A~330Bを実行することができる。
【0057】
仮想化サーバ301は、仮想化サーバ301と通信する1つまたはそれ以上のハードウェアを備えるハードウェアレイヤ310を含んでもよい。いくつかの実施の形態では、ハードウェアレイヤ310は、1つまたはそれ以上の物理的ディスク304、1つまたはそれ以上の物理的デバイス306、1つまたはそれ以上の物理的プロセッサ308、および1つまたはそれ以上の物理的メモリ316を含むことができる。物理的コンポーネント304,306,308および316は、たとえば、上述したコンポーネントのいずれを含んでもよい。物理的デバイス306は、たとえば、ネットワーク・インターフェース・カード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカ、光学ドライブ、記憶装置、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク素子(例、ルータ、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等)、または仮想化サーバ301に接続されているかもしくは仮想化サーバ301と通信するあらゆるデバイスを含んでもよい。ハードウェアレイヤ310の物理的メモリ316は、あらゆるタイプのメモリを含んでもよい。物理的メモリ316は、データを格納してもよく、いくつかの実施の形態では、1つまたはそれ以上のプログラム、または実行可能命令のセットを格納してもよい。
図3は、仮想化サーバ301の物理的メモリ316内にファームウェア312が格納されている実施の形態を示す。物理的メモリ316に格納されているプログラムまたは実行可能命令は、仮想化サーバ301の1つまたはそれ以上のプロセッサ308によって実行することができる。
【0058】
仮想化サーバ301は、ハイパーバイザ302も含んでもよい。いくつかの実施の形態では、ハイパーバイザ302は、仮想化サーバ301のプロセッサ308によって実行されて、あらゆる数の仮想マシン332を作成して管理するプログラムであってもよい。ハイパーバイザ302は、仮想マシンモニタ、またはプラットフォーム仮想化ソフトウェアと称されることもある。いくつかの実施の形態では、ハイパーバイザ302は、実行可能命令と、コンピューティングマシン上で実行する仮想マシンを監視するハードウェアとのあらゆる組合せとすることができる。ハイパーバイザ302は、タイプ2ハイパーバイザであってもよく、当該ハイパーバイザは、仮想化サーバ301上で実行しているオペレーティングシステム314内で実行する。それから、仮想マシンは、ハイパーバイザ302より上のレベルで実行してもよい。いくつかの実施の形態では、タイプ2ハイパーバイザは、タイプ2ハイパーバイザがユーザのオペレーティングシステムとインタラクトするように、ユーザのオペレーティングシステムのコンテキスト内で実行してもよい。他の実施の形態では、仮想環境内の1つまたはそれ以上の仮想化サーバ301は、代わりにタイプ1ハイパーバイザ(図示せず)を含んでもよい。タイプ1ハイパーバイザは、ハードウェアレイヤ310内のハードウェアおよびリソースに直接アクセスすることによって、仮想化サーバ301上で実行してもよい。すなわち、タイプ2ハイパーバイザ302は、図示するようにホストオペレーティングシステム314経由でシステムのリソースにアクセスするのに対し、タイプ1ハイパーバイザは、ホストオペレーティングシステム314がなくてもすべてのシステムのリソースに直接アクセスしてもよい。タイプ1ハイパーバイザは、仮想化サーバ301の1つまたはそれ以上の物理的プロセッサ308上で直接実行してもよく、物理的メモリ316に格納されているプログラムデータを含んでもよい。
【0059】
いくつかの実施の形態では、ハイパーバイザ302は、オペレーティングシステム330または仮想マシン332上で実行する制御プログラム320に、システムのリソースに直接アクセスできるオペレーティングシステム330または制御プログラム320をシミュレートするいずれの方法でも仮想リソースを提供することができる。システムのリソースは、物理的デバイス306、物理的ディスク304、物理的プロセッサ308、物理的メモリ316、および仮想化サーバ301のハードウェアレイヤ310に含まれているあらゆる他のコンポーネントを含むことができるが、これだけに限定されない。ハイパーバイザ302を使用して、仮想ハードウェアをエミュレートし、物理的ハードウェアを分割し、物理的ハードウェアを仮想化し、および/またはコンピューティング環境へのアクセスを提供する仮想マシンを実行してもよい。さらに他の実施の形態では、ハイパーバイザ302は、仮想化サーバ301上で実行する仮想マシン332のプロセッサのスケジューリングおよびメモリの分割を制御してもよい。
【0060】
ハイパーバイザ302は、カリフォルニア州パロアルトのヴイエムウェア・インクが製造するもの、オープンソースのXenProject.orgコミュニティが開発を監督するオープンソース製品のXENPROJECTハイパーバイザ、マイクロソフトが提供するHyperV、VirtualServerまたは仮想PCハイパーバイザ、または他のものを含んでもよい。いくつかの実施の形態では、仮想化サーバ301は、その上でゲストオペレーティングシステムが実行してもよい仮想マシンプラットフォームを作成するハイパーバイザ302を実行してもよい。これらの実施の形態では、仮想化サーバ301は、ホストサーバと称されることがある。このような仮想化サーバの一例が、フロリダ州フォート・ローダーデールのシトリックス・システムズ・インクが提供するXENSERVERである。
【0061】
ハイパーバイザ302は、その中でゲストオペレーティングシステム330が実行する1つまたはそれ以上の仮想マシン332B~332C(総称的に332)を作成してもよい。いくつかの実施の形態では、ハイパーバイザ302は、仮想マシンイメージをロードして、仮想マシン332を作成してもよい。他の実施の形態では、ハイパーバイザ302は、仮想マシン332内のゲストオペレーティングシステム330を実行してもよい。さらに他の実施の形態では、仮想マシン332は、ゲストオペレーティングシステム330を実行してもよい。
【0062】
仮想マシン332を作成することに加えて、ハイパーバイザ302は、少なくとも1つの仮想マシン332の実行を制御してもよい。他の実施の形態では、ハイパーバイザ302は、少なくとも1つの仮想マシン332に、仮想化サーバ301が提供する少なくとも1つのハードウェアリソース(例、ハードウェアレイヤ310内で利用できるあらゆるハードウェアリソース)の抽象化を提示してもよい。他の実施の形態では、ハイパーバイザ302は、仮想マシン332が仮想化サーバ301で利用できる物理的プロセッサ308にアクセスする態様を制御してもよい。物理的プロセッサ308へのアクセスを制御することは、仮想マシン332がプロセッサ308にアクセスできるべきかどうかと、物理的プロセッサの能力をどのように仮想マシン332に提示するかと、を判定することを含んでもよい。
【0063】
図3に図示するように、仮想化サーバ301は、1つまたはそれ以上の仮想マシン332をホストまたは実行してもよい。仮想マシン332は、プロセッサ308によって実行されるとき、仮想マシン332が物理的コンピューティングデバイスと同様にプログラムおよびプロセスを実行することができるように、物理的コンピュータの動作を模倣してもよい実行可能命令のセットである。
【0064】
図3は、仮想化サーバ301が3つの仮想マシン332をホストする実施の形態を示しているが、他の実施の形態では、仮想化サーバ301は、あらゆる数の仮想マシン332をホストすることができる。いくつかの実施の形態では、ハイパーバイザ302は、各仮想マシン332に、その仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースに固有の(ユニークな)仮想ビューを提供してもよい。いくつかの実施の形態では、固有の仮想ビューは、仮想マシンの許可、1つまたはそれ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシン上で実行するアプリケーション、仮想マシンによってアクセスされるネットワーク、または他の所望の基準に基づくことができる。たとえば、ハイパーバイザ302は、1つまたはそれ以上のアンセキュアな、すなわちセキュリティ保護されていない仮想マシン332と、1つまたはそれ以上のセキュアな、すなわちセキュリティ保護された仮想マシン332とを作成してもよい。アンセキュアな仮想マシン332には、セキュアな仮想マシン332がアクセスを許可されるリソース、ハードウェア、メモリ場所およびプログラムを禁止してもよい。他の実施の形態では、ハイパーバイザ302は、各仮想マシン332に、仮想マシン332に利用できる物理的ハードウェア、メモリ、プロセッサおよび他のシステム・リソースの実質的に同様な仮想ビューを提供してもよい。
【0065】
各仮想マシン332は、仮想ディスク326A~326C(総称的に326)と、仮想プロセッサ328A~328C(総称的に328)とを含んでもよい。いくつかの実施の形態では、仮想ディスク326は、仮想化サーバ301の1つまたはそれ以上の物理的ディスク304の仮想化ビュー、または仮想化サーバ301の1つまたはそれ以上の物理的ディスク304の一部である。物理的ディスク304の仮想化ビューは、ハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施の形態では、ハイパーバイザ302は、各仮想マシン332に物理的ディスク304の固有の(ユニークな)ビューを提供する。したがって、これらの実施の形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比べたときにユニークであることができる。
【0066】
仮想プロセッサ328は、仮想化サーバ301の1つまたはそれ以上の物理的プロセッサ308の仮想化ビューとすることができる。いくつかの実施の形態では、物理的プロセッサ308の仮想化ビューは、ハイパーバイザ302によって生成、提供および管理することができる。いくつかの実施の形態では、仮想プロセッサ328は、少なくとも1つの物理的プロセッサ308の同じ特徴(characteristics)の実質的にすべてを有する。他の実施の形態では、仮想プロセッサ308は、仮想プロセッサ328の特徴の少なくともいくつかが対応する物理的プロセッサ308の特徴とは異なるように、物理的プロセッサ308の修正ビューを提供する。
【0067】
図4をさらに参照すると、本明細書で説明するいくつかの側面は、クラウドベースの環境に実装される。
図4は、クラウドコンピューティング環境(またはクラウドシステム)400の実施例を示す。
図4で分かるように、クライアントコンピュータ411~414は、クラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(例、ホストサーバ403a~403b(本明細書では一般に「ホストサーバ403」という)、ストレージリソース404a~404b(本明細書では一般に「ストレージリソース404」という)、およびネットワーク素子405a~405b(本明細書では一般に「ネットワークリソース405」という))にアクセスしてもよい。
【0068】
管理サーバ410は、1つまたはそれ以上の物理的なサーバ上に実装してもよい。管理サーバ410は、たとえば、特にフロリダ州フォート・ローダーデールのシトリックス・システムズ・インクのCLOUDPLATFORM、またはOPENSTACKを稼動してもよい。管理サーバ410は、たとえば、ホストコンピュータ403、データ記憶装置404およびネットワーキングデバイス405など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは、非公開および/または公開コンポーネントを含んでもよい。たとえば、クラウドは、1つまたはそれ以上の特定のカスタマもしくはクライアントコンピュータ411~414によって、および/またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施の形態では、パブリッククラウドまたはハイブリッドパブリック-プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
【0069】
管理サーバ410は、クラウドオペレータおよびクラウドカスタマがクラウドシステム400とインタラストしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ410は、ユーザインターフェースにアプリケーション・プログラミング・インターフェース(API)のセットおよび/または1つまたはそれ以上のクラウドオペレータコンソール・アプリケーション(例、ウェブベースまたはスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウドアドミニストレーションタスクを行うことができるようにしてもよい。
【0070】
管理サーバ410は、クライアントコンピュータ411~414を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるAPIのセットおよび/または1つまたはそれ以上のカスタマコンソール・アプリケーションを含んでもよい。クライアントコンピュータ411~414は、インターネットまたは何らかの他の通信ネットワークを介して管理サーバ410に接続してもよく、管理サーバ410が管理するコンピューティングリソースのうちの1つまたはそれ以上へのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ410は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでもよい。たとえば、管理サーバ410およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク(例、インターネット)上で、クライアントコンピュータ411~414のカスタマのために、仮想マシンおよびその動作環境(例、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等)をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、さまざまな特定のサービスを提供するように構成されていてもよい。
【0071】
一定のクライアント411~414は、たとえば、同じエンドユーザのために仮想マシンを作成する異なるクライアントコンピュータ、または同じ会社もしくは組織に関連する異なるユーザと、関係があってもよい。他の実施例では、異なる会社または組織に関連するユーザなど、一定のクライアント411~414は関係がなくてもよい。関係のないクライアントの場合、いずれかのユーザの仮想マシンまたはストレージ上の情報は、他のユーザから隠してもよい。
【0072】
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、可用性ゾーン401~402(またはゾーン)は、物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンは、コンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン401は、カリフォルニア州に配置されている第1クラウド・データセンターであってもよく、ゾーン402は、フロリダ州に配置されている第2クラウド・データセンターであってもよい。管理サーバ410は、可用性ゾーンのうちの1つ、または別の場所に配置されていてもよい。各ゾーンは、ゲートウェイ経由で、管理サーバ410などのゾーン外にあるデバイスとインターフェースする内部ネットワークを含んでもよい。クラウドのエンドユーザ(例、クライアント411~414)は、ゾーン間の区別に気付く可能性もあれば、気付かない可能性もある。たとえば、エンドユーザは、指定される量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの作成を要求してもよい。管理サーバ410は、ユーザの要求に応答してもよく、ゾーン401またはゾーン402のリソースを使用して仮想マシンが作成されたかどうかをユーザが知ることなく、仮想マシンを作成するためにリソースを割り当ててもよい。他の実施例では、クラウドシステムは、エンドユーザが特定のゾーンまたはゾーン内の特定のリソース403~405に仮想マシン(または他のクラウドリソース)を割り当てるよう要求できるようにしてもよい。
【0073】
この実施例では、各ゾーン401~402は、さまざまな物理的ハードウェアコンポーネント(またはコンピューティングリソース)403~405の配列、たとえば、物理的ホスティングリソース(またはプロセッシングリソース)、物理的ネットワークリソース、物理的ストレージリソース、スイッチ、および、カスタマにクラウドコンピューティングサービスを提供するために使用してもよい追加のハードウェアリソースを含んでいる。クラウドゾーン401~402の物理的ホスティングリソースは、上述した仮想化サーバ301など、仮想マシンのインスタンスを作成しホストするように構成されていてもよい1つまたはそれ以上のコンピュータサーバ403を含んでいる。クラウドゾーン401または402の物理的ネットワークリソースは、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等といった、クラウドカスタマにネットワークサービスを提供するように構成されているハードウェアおよび/またはソフトウェアを備える1つまたは複数のネットワーク素子405(例、ネットワークサービスプロバイダ)を含んでもよい。クラウドゾーン401~402のストレージリソースは、ストレージディスク(例、ソリッドステートドライブ(SSD)、磁気ハードディスク等)および他の記憶装置を含んでもよい。
【0074】
図4に例示するクラウドコンピューティング環境は、クラウドの物理的リソースを使用して仮想マシンを作成して管理し、カスタマに他のサービスを提供するように構成されている追加のハードウェアおよび/またはソフトウェア・リソースを備える仮想化レイヤ(例、
図1~
図3に図示するもの)も含んでもよい。
【0075】
仮想化レイヤは、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともに、上述の
図3で説明したハイパーバイザを含んでもよい。仮想化レイヤは、物理的リソースレイヤとは別のレイヤとしてもよく、または物理的リソースレイヤと同じハードウェアおよび/もしくはソフトウェア・リソースのいくつかもしくはすべてを共有してもよい。たとえば、仮想化レイヤは、物理的コンピューティングリソースを有する仮想化サーバ403のそれぞれにインストールされているハイパーバイザを含んでもよい。あるいは、たとえば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドのマイクロソフト・コーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン・ドット・コム・インク)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBMコーポレーション)、または他のものなど、周知のクラウドシステムを使用してもよい。
【0076】
企業モビリティ管理アーキテクチャ
図5は、「私物デバイスの業務利用」(BYOD)環境で使用するための企業モビリティ技術アーキテクチャ500を示す。このアーキテクチャは、モバイルデバイス502のユーザがモバイルデバイス502から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス502を個人利用に使用することと、の両方を可能にする。ユーザは、当該企業リソース504または企業サービス508へのアクセスを、ユーザが購入したモバイルデバイス502を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス502を使用して行ってもよい。ユーザは、モバイルデバイス502をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。
【0077】
モバイルデバイス502は、iOSオペレーティングシステム、およびアンドロイド(登録商標)・オペレーティングシステム等を稼動してもよい。企業は、モバイルデバイス502を管理するポリシーを実装することを選んでもよい。ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイス502を特定し、セキュアまたはセキュリティ検証し、企業リソース(例、504および508)への選択的アクセスまたは完全なアクセスをモバイルデバイス502に提供できるように実装してもよい。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス502は、登録済みデバイスと呼ばれることがある。
【0078】
いくつかの実施の形態では、モバイルデバイス502のオペレーティングシステムは、管理対象パーティション510と非管理対象パーティション512とに分離されていてもよい。管理対象パーティション510は、管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティション510に格納されているデータをセキュアにするために、ポリシーをそれに適用させてもよい。管理対象パーティション510上で稼動しているアプリケーションは、セキュアなアプリケーションであってもよい。他の実施の形態では、すべてのアプリケーションは、アプリケーションとは別に受信される1つまたはそれ以上のポリシーファイルのセットに従って実行してもよく、このポリシーファイルのセットは、モバイルデバイス502上でアプリケーションが実行しているときに、モバイルデバイス管理システムによって強制される1つまたはそれ以上のセキュリティパラメータ、特徴、リソース制限および/または他のアクセス制御を定義する。それぞれのポリシーファイルに従って操作することにより、各アプリケーションは、1つまたはそれ以上の他のアプリケーションおよび/もしくはリソースとの通信を許可または制限されてもよく、それによって仮想パーティションを作成する。
【0079】
このように、本明細書で使用するパーティションとは、物理的に分割されたメモリの部分(物理的パーティション)、論理的に分割されたメモリの部分(論理的パーティション)ならびに/または本明細書で説明する複数のアプリケーションにわたり1つまたはそれ以上のポリシーおよび/もしくはポリシーファイルの強制の結果として作成される仮想パーティション(仮想パーティション)といえる。言い換えると、管理対象アプリケーションにポリシーを強制することにより、そのアプリケーションは、他の管理対象アプリケーションおよび信頼される企業リソースとのみ通信できるように制限してもよく、それによって非管理対象アプリケーションおよびデバイスがアクセスできない仮想パーティションを作成する。
【0080】
セキュアなアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション、Windows(登録商標) Applicationアクセス・アプリケーション等であってもよい。セキュアなアプリケーションは、セキュアなネイティブアプリケーション514、セキュアなアプリケーション・ランチャ518が実行するセキュアなリモートアプリケーション522、セキュアなアプリケーション・ランチャ518が実行する仮想化アプリケーション526等であってもよい。セキュアなネイティブアプリケーション514は、セキュアなアプリケーション・ラッパー520によってラッピングしてもよい。セキュアなアプリケーション・ラッパー520は、セキュアなネイティブアプリケーション514がモバイルデバイス502上で実行されるときに、モバイルデバイス502上で実行される統合ポリシーを含んでもよい。セキュアなアプリケーション・ラッパー520は、モバイルデバイス502上で稼動するセキュアなネイティブアプリケーション514を、セキュアなネイティブアプリケーション514の実行時に要求されるタスクを完了するようにセキュアなネイティブアプリケーション514が要求してもよい企業(例、504および508)でホストされるリソースに差し向けるメタデータを含んでもよい。セキュアなアプリケーション・ランチャ518が実行するセキュアなリモートアプリケーション522は、セキュアなアプリケーション・ランチャ518内で実行してもよい。セキュアなアプリケーション・ランチャ518が実行する仮想化アプリケーション526は、企業リソース504等で、モバイルデバイス502のリソースを利用してもよい。セキュアなアプリケーション・ランチャ518が実行する仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザインタラクションリソース、プロセッシングリソース等を含んでもよい。ユーザインタラクションリソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースは、ユーザインターフェースを提示し、企業リソース504等から受信されるデータを処理するために使用してもよい。セキュアなアプリケーション・ランチャ518が実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
【0081】
プロセッシングリソースは、情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーション526は、グラフィカル・ユーザ・インターフェース(GUI)に関連付けられているユーザインタラクションを記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションは、ユーザインタラクションデータをサーバで動作するアプリケーションへの入力として使用する。このような構成では、企業は、アプリケーションに関連付けられているデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業は、モバイルデバイス502へのデプロイメントのためにそれをセキュアにすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は、一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションは、モバイルデバイス502で使用するためにセキュアにしてもよいが、他のものは、モバイルデバイス502へのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は、仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
【0082】
別の実施例として、企業は、大量の複雑なデータセットを有する大きく複雑なアプリケーション(例、資材所要量計画アプリケーション)を有することがあり、当該モバイルデバイス502のアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は、仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュア化したモバイル環境であっても非常にセンシティブであると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュア化データ(例、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有してもよい。企業は、サーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーション526とともに、モバイルデバイス502上の完全にセキュア化しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施の形態では、仮想化アプリケーション526は、モバイルデバイス502のセキュアな記憶場所のうちの1つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は、一定の情報をモバイルデバイス502に格納させるが、他の情報を許可しない選択をしてもよい。
【0083】
本明細書で説明するように、仮想化アプリケーション526に関連して、モバイルデバイス502は、GUIを提示し、さらにGUIとのユーザインタラクションを記録するように設計されている仮想化アプリケーション526を有してもよい。仮想化アプリケーション526は、アプリケーションとのユーザインタラクションとして、サーバ側アプリケーションが使用するサーバ側とのユーザインタラクションを伝えてもよい。応答して、サーバ側のアプリケーションは、モバイルデバイス502に新たなGUIを送り戻してもよい。たとえば、新たなGUIは、静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよく、それによって遠隔設置されたリソースへのアクセスを提供する。
【0084】
セキュアなアプリケーション514は、モバイルデバイス502の管理対象パーティション510のセキュアなデータコンテナ528に格納されているデータにアクセスしてもよい。セキュアなデータコンテナにセキュア化されているデータは、セキュアなネイティブアプリケーション514、セキュアなアプリケーション・ランチャ518が実行するセキュアなリモートアプリケーション522、セキュアなアプリケーション・ランチャ518が実行する仮想化アプリケーション526等によってアクセスしてもよい。セキュアなデータコンテナ528に格納されているデータは、ファイル、データベース等を含んでもよい。セキュアなデータコンテナ528に格納されているデータは、セキュアなアプリケーション532の中で共有される特定のセキュアなアプリケーション530等に制限されるデータを含んでもよい。
【0085】
セキュアなアプリケーションに制限されるデータは、セキュアな一般データ534および高セキュアなデータ538を含んでもよい。セキュアな一般データは、高度暗号化標準(AES)128ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュアなデータ538は、AES 256ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュアなデータコンテナ528に格納されているデータは、デバイスマネージャ524からのコマンドを受信すると、モバイルデバイス502から削除してもよい。セキュアなアプリケーション(例、514,522,および526)は、デュアルモードオプション540を有してもよい。
【0086】
デュアルモードオプション540は、非セキュア化または非管理モードで、セキュアなアプリケーションを動作させるオプションをユーザに提示してもよい。非セキュア化または非管理モードでは、セキュアなアプリケーションは、モバイルデバイス502の非管理対象パーティション512の非セキュア化データコンテナ542に格納されているデータにアクセスしてもよい。非セキュア化データコンテナに格納されているデータは、個人データ544であってもよい。非セキュア化データコンテナ542に格納されているデータは、モバイルデバイス502の非管理対象パーティション512上で稼動している非セキュア化アプリケーション546によってアクセスしてもよい。非セキュア化データコンテナ542に格納されているデータは、セキュアなデータコンテナ528に格納されているデータがモバイルデバイス502から削除されるとき、モバイルデバイス502上に残してもよい。
【0087】
企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび/もしくはアプリケーション(個人データ)を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイス502から削除したい場合がある。この動作を選択的消去ということがある。本明細書で説明する側面に従って分類される企業データおよび個人データを用いて、企業は選択的ワイプを行ってもよい。
【0088】
モバイルデバイス502は、企業の企業リソース504および企業サービス508と、公衆インターネット548等とに接続してもよい。モバイルデバイス502は、仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続してもよい。
【0089】
仮想プライベートネットワーク接続は、マイクロVPNまたは特定アプリケーション専用VPNとも言われ、モバイルデバイス特定のアプリケーション(マイクロVPN550によって例示されるように、特定のデバイス、特定のセキュア化エリア(O/S VPN552によって例示されるように)等に特定的なものにしてもよい。たとえば、モバイルデバイス502のセキュア化エリア内にラッピングされたアプリケーションのそれぞれは、VPNへのアクセスが、おそらくユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連付けられている属性に基づいて付与されるように、アプリケーション特定VPN経由で企業リソースにアクセスしてもよい。
【0090】
仮想プライベートネットワーク接続は、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、ハイパーテキスト・マークアップ・ランゲージ(HTML)トラフィック、ハイパーテキスト・プロトコル・セキュア(HTTPS)トラフィック、アプリケーション管理トラフィック等を伝送してもよい。仮想プライベートネットワーク接続は、シングルサインオン認証プロセス554をサポートし、これを有効にしてもよい。シングルサインオンプロセスは、ユーザが、後で認証サービス558によって検証される単一セットの認証資格情報を提供できるようにしてもよい。それから、認証サービス558は、各個々の企業リソース504に認証資格情報を提供するようユーザに要求しなくても、ユーザに複数の企業リソース504へのアクセス権を付与してもよい。
【0091】
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ560によって確立されて、管理してもよい。アクセス・ゲートウェイ560は、企業リソース504のモバイルデバイス502への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴(features)を含んでもよい。アクセス・ゲートウェイ560は、モバイルデバイス502から公衆インターネット548にトラフィックを経路切替えしてもよく、モバイルデバイス502が公衆インターネット548で稼動している公開利用できる非セキュア化アプリケーションにアクセスすることを可能にする。モバイルデバイス502は、転送プロトコルまたはネットワーク562を介してアクセス・ゲートウェイ560に接続してもよい。転送ネットワーク562は、1つまたはそれ以上の転送プロトコルを使用してもよく、また、ワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【0092】
企業リソース504は、電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでもよい。電子メールサーバは、Exchangeサーバ、Lotus Notesサーバ等を含んでもよい。ファイル共有サーバは、ShareFileサーバ等を含んでもよい。SaaSアプリケーションは、Salesforce等を含んでもよい。Windows(登録商標)アプリケーションサーバは、ローカルなWindows(登録商標)オペレーティングシステム上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバ等を含んでもよい。企業リソース504は、プレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース504は、転送ネットワーク562を介してアクセスしてもよい。
【0093】
企業サービス508は、認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574等を含んでもよい。認証サービス558は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでもよい。
【0094】
認証サービス558は、証明書を使用してもよい。証明書は、企業リソース504等によりモバイルデバイス502に格納してもよい。モバイルデバイス502に格納されている証明書は、モバイルデバイス502の暗号化された場所に格納してもよく、証明書は、認証時点で使用する等のためにモバイルデバイス502に一時的に格納してもよい。脅威検出サービス564は、侵入検出サービス、不正アクセス試行検出サービス等を含んでもよい。不正アクセス試行検出サービスは、デバイス、アプリケーション、データ等への不正アクセスの試行を含んでもよい。デバイス管理サービス524は、構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでもよい。ファイル共有サービス568は、ファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでもよい。ポリシーマネージャサービス570は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでもよい。ソーシャル統合サービス572は、連絡先統合サービス、コラボレーションサービス、Facebook、TwitterおよびLinkedInなどのソーシャル・ネットワークとの統合等を含んでもよい。アプリケーションコントローラサービス574は、管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでもよい。
【0095】
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含んでもよい。アプリケーションストア578は、ラッピングされていないアプリケーション580、予めラッピングされたアプリケーション582等を含んでもよい。アプリケーションは、アプリケーションコントローラ574からアプリケーションストア578に移植してもよい。アプリケーションストア578は、モバイルデバイス502からアクセス・ゲートウェイ560、公衆インターネット548等経由でアクセスしてもよい。アプリケーションストア578には、直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。
【0096】
ソフトウェア開発キット584は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュア化する機能をユーザに提供してもよい。ソフトウェア開発キット584を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ574を用いてアプリケーションストア578にそれを移植することにより、モバイルデバイス502に利用できるようにしてもよい。
【0097】
企業モビリティ技術アーキテクチャ500は、管理解析機能588を含んでもよい。管理解析機能588は、リソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースは、デバイス、アプリケーション、データ等を含んでもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでもよい。
【0098】
図6は、別の企業モビリティ管理システム600を示す。
図5を参照して上述したモビリティ管理システム500の構成要素のうちのいくつかは、簡略化するために省略している。
図6に図示するシステム600のアーキテクチャは、
図5を参照して上述したシステム500のアーキテクチャと多くの点で類似しており、上述していない追加の特徴(features)を含んでもよい。
【0099】
この場合、左側はクライアントエージェント604とともに登録済みモバイルデバイス602を表しており、これがゲートウェイサーバ606(アクセス・ゲートウェイおよびアプリケーションコントローラ機能を含む)とインタラクトして、右側に示すExchange、Sharepoint、公開鍵基盤(PKI)リソース、Kerberosリソース、証明書発行サービスなどの様々な企業リソース608およびサービス609にアクセスする。具体的には図示していないが、モバイルデバイス602は、アプリケーションの選択とダウンロードのために、企業アプリケーションストア(StoreFront)とインタラクトしてもよい。
【0100】
クライアントエージェント604は、EnterpriseデータセンターでホストされるWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として機能し、Enterpriseデータセンターは、高品位ユーザエクスペリエンス(HDX)/ICA表示リモーティングプロトコルを使用してアクセスされる。クライアントエージェント604は、ネイティブiOSまたはAndroid(登録商標)アプリケーションなどのモバイルデバイス602のネイティブアプリケーションのインストールおよび管理もサポートする。たとえば、上述の図面に図示する管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)は、すべてモバイルデバイス602上でローカルに実行するネイティブアプリケーションである。
【0101】
このアーキテクチャのクライアントエージェント604およびアプリケーション管理フレームワークは、企業リソース/サービス608との接続性およびSSO(シングルサインオン)などのポリシーによる管理の機能および特徴を提供するように機能する。クライアントエージェント604は、企業への、通常は他のゲートウェイサーバコンポーネントに対するSSOによるアクセス・ゲートウェイ(AG)606への、一次ユーザ認証を扱う。クライアントエージェント604は、ゲートウェイサーバ606からポリシーを取得して、モバイルデバイス602上の管理対象アプリケーション610の挙動を制御する。
【0102】
ネイティブアプリケーション610とクライアントエージェント604とのセキュアなプロセス間通信(IPC)リンク612は管理チャネルを表し、これによりクライアントエージェントは、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク614によって強制されるポリシーを供給することができるようにしてもよい。
【0103】
IPCチャネル612により、クライアントエージェント604はまた、企業リソース608との接続性およびSSOを有効にする資格情報および認証情報を供給することができるようにしてもよい。最後に、IPCチャネル612により、アプリケーション管理フレームワーク614は、オンラインおよびオフラインによる認証など、クライアントエージェント604が実装するユーザインターフェース機能を呼び出すことができるようにしてもよい。
【0104】
クライアントエージェント604とゲートウェイサーバ606との通信は、本質的に、各ネイティブ管理対象アプリケーション610をラッピングするアプリケーション管理フレームワーク614からの管理チャネルの拡張である。アプリケーション管理フレームワーク614はクライアントエージェント604からポリシー情報を要求してもよく、これがさらにゲートウェイサーバ606からそれを要求してもよい。アプリケーション管理フレームワーク614は認証を要求してもよく、クライアントエージェント604はゲートウェイサーバ606のゲートウェイサービス部(NETSCALER ACCESS GATEWAYとしても知られる)にログインしてもよい。クライアントエージェント604は、ゲートウェイサーバ606上のサポートサービスも呼び出してもよく、それが、以下詳細に説明するように、ローカルデータボルト616の暗号化鍵を導出するための入力成分を生成するか、または直接認証を可能にするクライアント証明書をPKI保護リソースに提供してもよい。
【0105】
さらに詳しく、アプリケーション管理フレームワーク614は、各管理対象アプリケーション610を「ラッピング」する。これは、明確なビルドステップ、またはビルド後処理ステップを介して組み込んでもよい。アプリケーション管理フレームワーク614は、セキュアIPCチャンネル612を初期化し、そのアプリケーションのポリシーを取得するために、アプリケーション610の最初の起動時にクライアントエージェント604と「ペア」にしてもよい。アプリケーション管理フレームワーク614は、クライアントエージェントのログイン・ディペンデンシーおよび、ローカルOSサービスをどのように使用してよいか、またはローカルOSサービスが管理対象アプリケーション610とどのようにインタラクトしてよいかを制限する閉じ込めポリシーのうちのいくつかなど、ローカルに適用するポリシーの関連部分を強制してもよい。
【0106】
アプリケーション管理フレームワーク614は、セキュアIPCチャネル612上でクライアントエージェント604が提供するサービスを使用して、認証および内部ネットワークアクセスを促進してもよい。プライベート・共有データボルト616(コンテナ)の鍵管理も、管理対象アプリケーション610とクライアントエージェント604との適切なインタラクションにより管理してもよい。ボルト616は、オンライン認証後にのみ利用できてもよく、またはポリシーが許可する場合にはオフライン認証後に利用できるようにしてもよい。ボルト616の初めての使用にはオンライン認証を要求してもよく、オフラインアクセスは、最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限してもよい。
【0107】
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション610からアクセス・ゲートウェイ606に直接行ってもよい。アプリケーション管理フレームワーク614は、各管理対象アプリケーション610のためにネットワークアクセスのオーケストレーションを担ってもよい。クライアントエージェント604は、オンライン認証後に取得される適切な時間制限付きの二次資格情報を提供することにより、これらのネットワーク接続を促進してもよい。リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル618など、ネットワーク接続の複数のモードを使用してもよい。
【0108】
メール・ブラウザ管理対象アプリケーション610は、特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーション610は、フルAGログオンを要求せずに、長時間Exchangeサーバ608へのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用してもよい。ブラウザ・アプリケーション610は、異なる種類のデータを分ける複数のプライベートデータボルト616を使用してもよい。
【0109】
このアーキテクチャは、さまざまな他のセキュリティ特徴(features)の組み込みをサポートしてもよい。たとえば、ある場合にはゲートウェイサーバ606(そのゲートウェイサービスを含む)は、アクティブディレクトリ(AD)パスワードの妥当性確認をする必要がなくてもよい。ある状況においてADパスワードをあるユーザの認証因子として使用してもよいかどうかは、企業の裁量に任すことができる。ユーザがオンラインまたはオフラインである(つまり、ネットワークに接続されている場合または接続されていない場合)、異なる認証方法を使用してもよい。
【0110】
ステップアップ認証は、ゲートウェイサーバ606が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよい。
【0111】
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(ゲートウェイサーバ606)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードまたは生体認証によって保護してもよい。セキュアなコンテナ616でデータがモバイルデバイス602にローカルにもしも格納された場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい場合がある。
【0112】
他のセキュアなコンテナの特徴も実装してもよい。たとえば、ロギング特徴(logging feature)を含めてもよく、管理対象アプリケーション610内で起こるセキュリティイベントを記録して、バックエンドに報告してもよい。管理対象アプリケーション610が改ざんをもしも検出した場合などにはデータ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連付けられている暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であってもよく、アプリケーションは、データをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
【0113】
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は、センシティブなテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションは、サーバSSL証明書を特別に妥当性検証する。モバイルデバイス602のデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズまたは生体識別データを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にパスワードベース鍵導出関数2(PBKDF2))を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
【0114】
さらに、暗号化方法に1つまたはそれ以上の初期化ベクトルを使用してもよい。初期化ベクトルは、同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生およびと暗号解読攻撃の両方を防止する。これは、盗んだ暗号鍵を攻撃者が用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内のセンシティブなデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報は、ログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
【0115】
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
【0116】
アプリケーション管理フレームワーク614からのデータ漏えいは、他の方法で防止してもよい。たとえば、管理対象アプリケーション610がバックグラウンドにもしも入った場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスクリーンショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
【0117】
別のセキュリティ特徴(feature)は、1つまたはそれ以上のアプリケーションにアクセスするためにAD(アクティブディレクトリ)622のパスワードを使用せずに、OTP(ワンタイムパスワード)620の使用に関係していてもよい。ある場合には、あるユーザは、自身のADパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザは、SecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダも提供する)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信されてもよい。ある場合には、これは、オンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
【0118】
企業ポリシーによるオフライン使用が許可される管理対象アプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業はStoreFrontにこの方法でアクセスしてもらいたい可能性がある。この場合、クライアントエージェント604は、ユーザにカスタムオフラインパスワードの設定を要求してもよく、ADパスワードは使用されない。ゲートウェイサーバ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、強制するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
【0119】
別の特徴は、二次資格情報として一定のアプリケーション610のクライアント側証明の有効化に関係していてもよい(アプリケーション管理フレームワークのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、管理対象アプリケーション610は、このような証明書を利用することがある。この場合、ActiveSyncプロトコルを使用した証明書による認証をサポートしてもよく、クライアントエージェント604からの証明書は、ゲートウェイサーバ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーション610は、ゲートウェイサーバ606で定義されるラベルによって識別される、関連付けられている1つのクライアント証明書を有してもよい。
【0120】
ゲートウェイサーバ606は、企業専用ウェブサービスとインタラクトして、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
【0121】
クライアントエージェント604およびアプリケーション管理フレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。さまざまなレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書は、メール・ブラウザ管理対象アプリケーション610、および最終的には任意にラッピングされたアプリケーション610が使用してもよい(ただし、アプリケーション管理フレームワークがHTTPS要求を仲介するのが合理的な場合、これらのアプリケーションは、ウェブサービス型の通信パターンを使用する)。
【0122】
iOSのアプリケーション管理クライアント証明書サポートは、各使用期間中、各管理対象アプリケーション610のiOSキーチェーンへの公開鍵暗号標準(PKCS)12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。アプリケーション管理フレームワークのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンに存在しない可能性があり、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続しない可能性がある。
【0123】
相互SSLまたはTLSも実装して、企業に対してモバイルデバイス602が認証され、かつその逆を要求することにより、追加のセキュリティを提供してもよい。ゲートウェイサーバ606に対する認証用の仮想スマートカードも実装してもよい。
【0124】
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ADパスワードまたは信頼できるクライアント証明書を使用したアクティブディレクトリ(AD)622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴は、シトリックスのアクセス・ゲートウェイ・エンタープライズ・エディション(AGEE)での制約付き委任に関係し、AGEEはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。このメカニズムは、リバースウェブプロキシ(別称、クライアント仮想プライベートネットワーク(CVPN))モードで機能し、HTTP(ただし、HTTPSではない)接続は、VPNおよびマイクロVPNモードでプロキシされる。
【0125】
別の特徴はアプリケーション・コンテナのロックおよび消去に関係していてもよく、これは、ジェイルブレイクまたはルート化検出時には自動的に行われ、アドミニストレーションコンソールからプッシュされるコマンドとして発生し、たとえ管理対象アプリケーション610が稼動していないときでも、遠隔消去機能を含んでもよい。
【0126】
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられる企業アプリケーションストアおよびアプリケーションコントローラのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
【0127】
ある場合には、管理対象アプリケーション610には、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵動作を行うことが認められてもよい。アプリケーションがブラウザのように挙動して証明書アクセスが要求されないとき、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュアなセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(例、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、さまざまな使用のケースが識別され、それに応じて扱われてもよい。
【0128】
リアルタイムのデジタルコンテンツの隠蔽
図7は、1つまたはそれ以上の実施の形態に従い、コンテンツの視聴者(例、ユーザグループ)に基づいて、リアルタイムのデジタルコンテンツの隠蔽を行うように構成されている例示的なコンピューティング環境を示す。
図7を参照すると、コンピューティング環境700は、1つまたはそれ以上のコンピュータシステムを含んでもよい。たとえば、コンピューティング環境700は、クライアントデバイス702とコンテンツ隠蔽プラットフォーム703とを含んでもよい。
【0129】
クライアントデバイス702は、コンテンツを表示するために使用してもよいコンピューティングデバイス(例、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、テレビ、デスクトップコンピュータ等)としてもよい。たとえば、クライアントデバイス702は、ある機関の従業員が、その機関の他の従業員または特定のグループの従業員のみがアクセスできるようにするべき秘密情報を提示するまたはその他表示するために使用してもよい。加えて、または代わりに、クライアントデバイス702は、他の特徴(例、年齢等)のために特定のグループの個人に適していないかもしれないテキストを包含する可能性のあるコンテンツを、個人が表示するために使用してもよい。1つまたはそれ以上の例において、クライアントデバイス702は、顔の検出および認識を行い、ユーザをグループごとに集計し、現グループの変化を検出するように構成されていてもよいユーザ発見モジュール702aを含んでもよい。
【0130】
1つまたはそれ以上の例では、ユーザ発見モジュール702aは、クライアントデバイス702にインストールされているソフトウェアの一部(例、リモートデスクトップアプリケーション等)であってもよい。1つまたはそれ以上の例では、クライアントデバイス702は、コンテンツ隠蔽プラットフォーム703などの1つまたはそれ以上の他のコンピューティングデバイスと通信するようにクライアントデバイス702を構成してもよい通信インターフェースを含んでもよい。1つまたはそれ以上の例では、通信インターフェースは、クライアントデバイス102と1つまたはそれ以上のネットワーク(例、ネットワーク701等)との間の通信をサポートするように構成されているネットワークインターフェースなどのハードウェアコンポーネントであってもよい。
【0131】
より詳細に以下で説明するように、コンテンツ隠蔽プラットフォーム703は、1つまたはそれ以上のコンピューティングデバイスおよび/または他のコンピュータコンポーネント(例、プロセッサ、メモリ、通信インターフェース)を含むコンピュータシステムであってもよい。1つまたはそれ以上の例では、コンテンツ隠蔽プラットフォーム703は、現ユーザグループおよび/またはコンテンツの変化の判定に応答して、画像の解析および保護、テキストまたは画像の検出および認識、ならびにセンシティブな言葉/画像の点検を行うように構成されている1つまたはそれ以上のサーバに対応してもよい。
【0132】
コンテンツ隠蔽プラットフォーム703は、1つまたはそれ以上のプロセッサ711と、メモリ712と、通信インターフェース713とを含んでいてもよい。データバスは、プロセッサ711、メモリ712および通信インターフェース713を相互接続してもよい。通信インターフェース713は、コンテンツ隠蔽プラットフォーム703と1つまたはそれ以上のネットワーク(例、ネットワーク701等)との間の通信をサポートするように構成されているネットワークインターフェースとしてもよい。メモリ712は、プロセッサ711によって実行されたときに、本明細書で説明する1つまたはそれ以上の機能をコンテンツ隠蔽プラットフォーム703に行わせる命令を有する1つまたはそれ以上のプログラムモジュールを含んでもよく、ならびに/または当該プログラムモジュールおよび/もしくはプロセッサ711によって使用されてもよい情報を格納および/もしくはその他維持してもよい1つまたはそれ以上のデータベースにアクセスしてもよい。
【0133】
いくつかの例において、1つまたはそれ以上のプログラムモジュールおよび/またはデータベースの格納および/または維持は、コンテンツ隠蔽プラットフォーム703のさまざまなメモリユニットで、ならびに/またはコンテンツ隠蔽プラットフォーム703を形成および/もしくはその他構成してもよいさまざまなコンピューティングデバイスで行ってもよい。たとえば、メモリ712は、画像解析保護モジュール712aと、検出認識モジュール712bと、センシティブコンテンツ点検モジュール712cとを有し、ホストし、格納し、および/または含んでもよい。画像解析保護モジュール712aは、より詳細に以下で述べるように、画像の解析および保護のための先進的な技術(例、テキストタイプ別に画像レイアウトを構築し、画像レイアウトの位置/コンテンツの変化を検出し、それに応じてテキストを隠すことによって)を、コンテンツ隠蔽プラットフォーム703に、実行するよう指示する命令および/または実行させる命令を有してもよい。
【0134】
1つまたはそれ以上の例では、画像解析保護モジュール712aは、ユーザのイベント到着/退出状況および/または表面コンテンツ更新イベントが発生する状況において、検出認識モジュール712bの出力に基づいて画面上の領域の隠蔽を担ってもよい。1つまたはそれ以上の例において、表面コンテンツ更新イベントは、表示のために出力される可視コンテンツの変化に対応してもよい。検出認識モジュール712bは、テキスト/画像の検出および認識のための先進的な技術(例、テキストのタイプに基づいてテキストの検出および認識の特定の方法を行い、画像レイアウトに提案テキストエリアを生成する)を、コンテンツ隠蔽プラットフォーム703に、実行するよう指示する命令および/または実行させる命令を有してもよい。要注意コンテンツ点検モジュール712cは、隠すべき言葉または画像をコンテンツが包含しているかどうかを判定するための先進的な技術(例、グループルールに基づいて隠す言葉または画像を特定する、隠す言葉または画像用の位置を計算する、言葉または画像を隠すべきであると画像解析保護モジュール712aに通知する)を、コンテンツ隠蔽プラットフォーム703に、実行するよう指示する命令および/または実行させる命令を有してもよい。
【0135】
コンピューティング環境700は、1つまたはそれ以上のネットワークも含んでもよく、当該ネットワークがクライアント702とコンテンツ隠蔽プラットフォーム703とを相互接続してもよい。たとえば、コンピューティング環境700は、ネットワーク701(これは、たとえば、クライアントデバイス702とコンテンツ隠蔽プラットフォーム703とを相互接続してもよい)を含んでもよい。1つまたはそれ以上の例では、ネットワーク701は、内部ネットワーク、外部ネットワーク、セキュアネットワーク、パブリックネットワーク、ハードワイヤードネットワーク、ワイヤレスネットワーク等であってもよい。
【0136】
1つまたはそれ以上の構成において、クライアントデバイス702、コンテンツ隠蔽プラットフォーム703、および/またはコンピューティング環境700に含まれる他のシステムは、ユーザインターフェース(例、ブラウザインターフェース、仮想デスクトップインターフェース、ストリーミングコンテンツ等)を受け入れ、ユーザインターフェースを介して入力を受信し、受信した入力を1つまたはそれ以上の他のコンピューティングデバイスに伝えることが可能なコンピューティングデバイスであればどのタイプでもよい。たとえば、クライアントデバイス702、コンテンツ隠蔽プラットフォーム703、および/またはコンピューティング環境700に含まれる他のシステムは、いくつかの例において、1つまたはそれ以上のプロセッサ、メモリ、通信インターフェース、記憶装置、および/または他のコンポーネントを含んでもよいサーバコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン等であってもよく、および/またはこれらを含んでもよい。上述したように、また、より詳細に以下で説明するように、クライアントデバイス702およびコンテンツ隠蔽プラットフォーム703のいずれかおよび/または全部は、いくつかの例において、特定の機能を実施するように構成されている専用コンピューティングデバイスであってもよい。
【0137】
上述したコンポーネントの実施例として、コンピューティング環境700をさらに例示するために、ある機関の従業員(例、一定のセキュリティ特権をもつマネージャー)が秘密情報を使用してデスクトップコンピュータ(例、クライアントデバイス702)で仕事をしている場合がある。別の従業員(例、セキュリティ特権のないインターン)が、マネージャーに質問をするためにオフィスに入室する可能性がある。この場合、クライアントデバイス702に表示されるデジタルコンテンツ(例、これは、秘密情報に関係している場合がある)は、インターンから隠すべきである。したがって、コンテンツ隠蔽プラットフォーム703を使用して、秘密情報/画像を、インターンに見えないようにクライアントデバイス702から隠してもよい。
【0138】
図8A~
図8Bは、1つまたはそれ以上の実施の形態に従い、リアルタイムのデジタルコンテンツの隠蔽を行う拡張処理システムをデプロイするための例示的なイベントシーケンスを示す。便宜上、ステップ801~815は、
図8A~
図8Bにまたがって示す。しかし、ステップ801~815は、1つのイベントシーケンスを表すことは理解されるべきである(例、
図8Bのステップ813は、
図8Aのステップ812の後に起こってもよい)。
【0139】
図8Aを参照すると、ステップ801で、クライアントデバイス702は、コンテンツを表示してもよい。1つまたはそれ以上の例において、コンテンツを表示するとき、クライアントデバイス702は、特定の機関および/または機関内の特定のグループの従業員に特有のコンテンツを表示する可能性がある。したがって、コンテンツは、一定の個人には表示すべきだが他の人には隠しておくべきテキストまたは他の情報を包含する可能性がある。加えて、または代わりに、コンテンツを表示するとき、クライアントデバイス702は、所定の年齢閾値より上の個人にとっては適切で、所定の年齢閾値未満の個人には不適切であるかもしれないテキスト、画像、または他の情報を包含するコンテンツを表示する可能性がある。したがって、コンテンツは、同様に、一定の個人には表示すべきだが他の人には隠しておくべき情報を包含する可能性がある。たとえば、コンテンツを表示するとき、クライアントデバイス702は、
図11Aに図示されるグラフィカル・ユーザ・インターフェース1105と同様なグラフィカル・ユーザ・インターフェースを表示してもよい。この実施例では、グラフィカル・ユーザ・インターフェース1105を表示するとき、クライアントデバイス702は、秘密情報、センシティブな言葉(例、露骨な表現等)、またはある個人らには表示すべきだが他の人には隠しておくべき他のテキスト、画像(例、口座情報が記載される小切手、露骨なコンテンツ等)、もしくはコンテンツを表示する可能性がある。
【0140】
1つまたはそれ以上の例において、コンテンツ(例、ドキュメント、マルチメディアコンテンツ、グラフィカル・ユーザ・インターフェース、アプリケーション等)を表示するとき、クライアントデバイス702は、プレーンテキスト、シーンテキスト(例、画像に埋め込まれているテキスト)、映像テキスト等を表示してもよい。プレーンテキストまたはシーンテキストが表示される1つまたはそれ以上の例において、コンテンツは静的コンテンツであってもよい。映像テキストが表示される1つまたはそれ以上の例において、コンテンツは動的コンテンツであってもよい。いくつかの例において、コンテンツは、これらのさまざまなテキストタイプの組合せを包含してもよい。
【0141】
ステップ802で、コンテンツの一部を隠すべきかどうかを判定するために、クライアントデバイス702は、顔の検出および認識を行ってもよい。1つまたはそれ以上の例において、クライアントデバイス702は、クライアントデバイス702に埋め込まれているユーザ発見モジュール702a(上述したとおり)を使用して顔の検出および認識を行ってもよい。いくつかの例において、ユーザ発見モジュール702aは、クライアントデバイス702にインストールされているリモートデスクトップアプリケーションに統合されていてもよい。
【0142】
いくつかの例では、クライアントデバイス702は、クライアントデバイス702から所定の近さにいる個人に対応する画像コンテンツまたは映像コンテンツをキャプチャしてもよい。1つまたはそれ以上の例では、クライアントデバイス702によって受信される情報(例、部屋の寸法、部屋のレイアウト等)に基づいて調整される動的な近さを使用してもよい。これらの例では、クライアントデバイス702は、クライアントデバイス702によって表示されているコンテンツの視聴が可能な個人に対応する画像コンテンツまたは映像コンテンツをキャプチャしてもよい。
【0143】
1つまたはそれ以上の例では、クライアントデバイス702は、現個人に対応する顔の位置およびサイズを判定するために、画像上で顔検出を行ってもよい。さらに、クライアントデバイス702は、顔に関連付けられている個人を判定するために、顔認識アルゴリズムを実装してもよい。顔認識を行うとき、クライアントデバイス702は、キャプチャされた画像をユーザの画像と比較してユーザ認証を行ってもよい(例、認証のために1対1の比較を行う)。加えて、または代わりに、クライアントデバイス702は、画像を、格納されている顔認識データベース内の複数の顔画像と比較してもよい。1つまたはそれ以上の例では、格納されている顔認識データベースは、顔認識データ(例、画像、顔認識スコア、信頼度尺度等)を格納および維持するための手段であってもよい。1つまたはそれ以上の例では、顔認識データベースは、コンテンツ隠蔽プラットフォーム703または別のコンピューティングプラットフォーム(例、1つまたはそれ以上の外部サーバ)に遠隔で維持されてもよい。加えて、または代わりに、顔認識データベースは、クライアントデバイス702にローカルに維持してもよい。
【0144】
1つまたはそれ以上の例では、クライアントデバイス702は、格納されている複数の顔画像のうち所定の相関閾値を超えるものとのマッチング相関を画像が有するとの判定に基づいて、個人を特定してもよい(例、格納されている顔画像の数がNである場合、認証のために1対Nの比較を行う)。したがって、クライアントデバイス702は、個人の識別/顔認識を行ってもよい。いくつかの例では、クライアントデバイス702の所定の近くにいることになりそうな(コンテンツの視聴が可能な)個人は、最初に識別画像をクライアントデバイス702に提供してもよく、これを格納して、後で識別/顔認識比較のために使用してもよい。たとえば、ある機関の全従業員、家族のメンバー、または他のグループは、最初にクライアントデバイス702を使用して自身の写真を撮っておいてもよい。
【0145】
1つまたはそれ以上の例では、クライアントデバイス702は、クライアントデバイス702のカメラ(例、モニタに搭載されているウェブカメラ)の視野内の顔の動きを追跡するために、ローカルバイナリパターン(LBP)を使用する軽量顔認識技術を実装してもよい。これらの例において、既存の個人(例、以前に認識された個人)がカメラの視野から退出しない場合、その個人が動いただけでは、完全なユーザ識別を再要求する必要はなくてもよい。したがって、動きを追跡することによって、そしてクライアントデバイス702の前にある顔が少数であることから、リアルタイムの顔認識が実現されてもよい。これにより、時間と計算リソースの両面で顔認識プロセスがより効率的になるであろう。
【0146】
しかし、クライアントデバイス702の前に新たな個人が来た場合には、クライアントデバイス702は、主成分分析(PCA)アルゴリズムを実施してもよい。PCAアルゴリズムを実施するとき、クライアントデバイス702に、ある期間中(例、直近の24時間)に一時保存されている顔を格納しているローカルキャッシュにアクセスさせてもよい。クライアントデバイス702が新たな個人とローカルキャッシュからの顔の1つとの間の一致を判定できない場合、上述した完全な顔認識アルゴリズムを実行して、新たな個人の顔を顔認識データベース内の完全な画像セットに対して比較してもよい。そうすれば、クライアントデバイス702は、最近特定された個人をより効率的に特定するであろう。
【0147】
ステップ803で、顔の検出および認識を行った後、クライアントデバイス702は、格納されているアクセス役割グループデータベースで定義されるグループごとに個人を集計して、アクティブグループリストを構築してもよい。1つまたはそれ以上の例では、アクセス役割グループデータベースは、クライアントデバイス702とは別のコンピューティングデバイスによって維持されてもよく、クライアントデバイス702は、アクセス役割グループデータベースへの接続と、それに応じた通信への接続とを確立してもよい。
【0148】
いくつかの例では、アクセス役割グループデータベースは、個人とグループとの相関関係を含んでもよい。たとえば、各個人は、ユーザ識別子(例、1名のユーザを特定してもよいユーザ名、従業員番号等)を有してもよく、各グループは、グループ識別子(例、特定の特徴を共有する1人以上のユーザを特定してもよい従業員の役職、セキュリティレベル、年齢グループ等)に対応してもよい。これらの例では、特定のグループのグループ識別子を個人に割り当ててもよい。いくつかの例では、個人を複数のグループに割り当ててもよい。各グループは、テキストまたは他のコンテンツを隠すためのさまざまなルールを有してもよい。例として、「グループA」の個人に対しては携帯電話番号を隠してもよいのに対して、「グループB」の個人に対しては携帯電話番号を見えるようにしてもよいが携帯電話番号に対応する自宅住所は隠してもよい。いくつかの例では、グループは、雇用形態、役職、会社内のサブグループ、年齢等に基づいて定義してもよい。
【0149】
ステップ804で、クライアントデバイス702は、グループの変化が起こったかどうかを判定してもよい。いくつかの例では、ユーザをグループごとに集計した後、クライアントデバイス702は、ある個人が、クライアントデバイスのカメラその他の画像キャプチャデバイスの視野内に以前は存在していなかったグループに対応すると判定してもよい。加えて、または代わりに、ユーザをグループごとに集計した後、クライアントデバイス702は、以前は表されていたグループが今は表されないと判定してもよい(例、そのグループの個人でクライアントデバイス702に居続けている人がいない)。1つまたはそれ以上の例では、クライアントデバイス702は、所定の間隔でグループの変化を監視してもよい。
【0150】
1つまたはそれ以上の例において、クライアントデバイス702は、各グループに対応するグループノードと各グループ内の現個人の指標とを含むアクティブグループリストを維持してもよい。たとえば、アクティブグループリストを維持するとき、クライアントデバイス702は、クライアントデバイス702のカメラの前にいる個人のリストを維持してもよい。加えて、または代わりに、アクティブグループリストを維持するとき、クライアントデバイス702は、オンライン会議に参加していて、ウェブカムで画像/映像を共有している個人のリストを維持してもよい。アクティブグループリストの概念をオンライン会議ソフトウェアに適用することにより、クライアントデバイス702は、仮想会議の画面共有中に、セキュリティを高め、秘密情報の紛失を防止してもよい。1つまたはそれ以上の例において、クライアントデバイス702は、任意の個人の到着または離脱に応答して、アクティブグループリストを更新してもよい。さらに例示するために、いくつかの実施例を以下に説明する。
【0151】
第1の実施例において、クライアントデバイス702のカメラ視野内に個人が4人存在し、クライアントデバイス702は、次のアクティブグループリスト:グループA‐ユーザ1、ユーザ13、グループB‐ユーザ2、グループD‐ユーザ7、を構築してもよい。1つまたはそれ以上の例において、クライアントデバイス702は、ステップ802でユーザ1,13,2および7についてPCAアルゴリズムで構築された顔ベクトルをキャッシュしてもよい。加えて、クライアントデバイス702は、LBPアルゴリズムで構築された同様な顔特徴ベクトルをメモリに維持して、カメラ視野内の動きを高速追跡分析できるようにしてもよい。この実施例では、現個人のうちの何人かがカメラ視野に入ってくることはあっても、誰も退出または到着しない。したがって、この実施例では、クライアントデバイス702は、アクティブグループリスト、PCAキャッシュ、またはLBPメモリを修正しないかもしれない。
【0152】
第2の実施例において、上記の実施例と同じ事実を適用するが、グループAの新たなユーザ5がカメラ視野に到着してもよい。応答して、クライアントデバイス702は、アクティブグループリストを次のように更新してもよい。グループA‐ユーザ1、ユーザ13、ユーザ5、グループB‐ユーザ2、グループD‐ユーザ7。同様に、クライアントデバイス702は、後のモーション追跡のために、ユーザ5を含めるようにLBPメモリを更新してもよい。加えて、クライアントデバイス702は、可能であれば、PCAキャッシュからユーザ5のグループ情報を検索してもよい。そうでなければ、クライアントデバイス702は、完全な顔認識データベースからグループ情報を検索してもよい。
【0153】
さらに第3の実施例において、上記実施例2の事実を基に、ユーザ7およびユーザ13がカメラ視野から退出してもよい。この実施例では、クライアントデバイス702は、アクティブグループリスト、LBPメモリ、およびPCAキャッシュに次の変更を加えてもよい。まず、ユーザ7がそのグループ内の唯一の現個人であったため、クライアントデバイス702は、アクティブグループリストからグループDを除いてもよい。さらに、クライアントデバイス702は、グループAノードからユーザ13を外してもよい(例、カメラ視野内でグループAに関連付けられているユーザのリストからユーザ13を除く)。したがって、この第3の実施例のアクティブグループリストは、次のようにしてもよい。グループA‐ユーザ1、ユーザ5、グループB‐ユーザ2。1つまたはそれ以上の例では、クライアントデバイス702は、グループDをインアクティブグループリストに移動してもよく、当該リストは次のようにしてもよい。グループD‐ユーザ7。さらに、クライアントデバイス702は、LBPメモリからユーザ7およびユーザ13を削除してもよいが、彼らが所定の期間(例、24時間)以内にカメラ視野に戻った場合に後で迅速にアクセスできるように、PCAキャッシュにユーザ7およびユーザ13を維持する。
【0154】
さらに第4の実施例において、ここでは実施例3の事実を基に、ユーザ3およびユーザ6がカメラ視野内に到着してもよく、グループCに属してもよい。この実施例では、クライアントデバイス702は、ユーザ3およびユーザ6をアクティブグループリストに追加してもよく、その結果、次のようなアクティブリストにしてもよい。グループA‐ユーザ1、ユーザ5、グループB‐ユーザ2、グループC‐ユーザ3、ユーザ6。ユーザ3およびユーザ6をアクティブグループリストに加えることに加えて、クライアントデバイス702は、彼らの情報をLBPメモリおよびPCAキャッシュに追加してもよい。
【0155】
したがって、これらの実施例は、いくつかの例において、アクティブグループリストに維持されているグループに変化があることがある。こうした場合、クライアントデバイス702は、ステップ805に進んで、コンテンツ隠蔽プラットフォーム703との接続を確立してもよい。他の例では、アクティブグループリストに維持されているグループに変化がないかもしれない。こうした場合、クライアントデバイス702は、変化が判定されるまでグループの変化の監視を続けてもよい。
【0156】
ステップ805で、クライアントデバイス702は、コンテンツ隠蔽プラットフォーム703との接続を確立してもよい。1つまたはそれ以上の例では、クライアントデバイス702は、コンテンツ隠蔽プラットフォーム703とのワイヤレスデータ接続を確立して、クライアントデバイス702をコンテンツ隠蔽プラットフォーム703にリンクさせてもよい。あるいは、クライアントデバイス702は、コンテンツ隠蔽プラットフォーム703とのワイヤードデータ接続を確立して、クライアントデバイス702をクライアント隠蔽プラットフォーム703にリンクさせてもよい。1つまたはそれ以上の例では、クライアントデバイス702が最初にコンテンツ隠蔽プラットフォーム703との接続を確立したら、このステップを繰り返さなくてもよいかもしれない。
【0157】
ステップ806で、クライアントデバイス702が、ステップ804で、アクティブグループリストに変化があったと判定した場合、クライアントデバイス702は、グループの変化の指標を生成してもよく、グループの変化の指標をコンテンツ隠蔽プラットフォーム703に送信してもよい。たとえば、上述した実施例1および2のステップ804では、アクティブグループリストにグループレベルの変化がないため、クライアントデバイス702は、追加の意味解析が必要なくてもよいかもしれないため、通知を生成しないかもしれない、または通知をコンテンツ隠蔽プラットフォーム703に送信しないかもしれない。
【0158】
対して、上述した実施例3および4のステップ804では、それぞれユーザグループの減少およびユーザグループの追加があるため、これらの実施例では、クライアントデバイス702は、グループの変化の指標を生成して、更新済みグループリストに追加の意味解析を行わせるためにそれをコンテンツ隠蔽プラットフォーム703に送信してもよい。1つまたはそれ以上の例では、追加の意味解析を行うとき、クライアントデバイス702は、グループの変化に基づいて、表示されるコンテンツに追加の隠蔽を適用するべきか、または隠蔽を減らして適用するべきかどうかを判定してもよい。この追加の意味解析をステップ808~814に関して以下説明する。1つまたはそれ以上の例では、クライアントデバイス702は、ワイヤレスデータ接続が確立されている間、コンテンツ隠蔽プラットフォーム703にグループの変化の指標を送信してもよい。
【0159】
ステップ807で、コンテンツ隠蔽プラットフォーム703は、クライアントデバイス702からグループの変化の指標を受信してもよい。指標を受信するとき、コンテンツ隠蔽プラットフォーム703は、テキストメッセージ、マルチメディアメッセージ、警告/通知メッセージ等を受信してもよい。
【0160】
1つまたはそれ以上の例において、コンテンツ隠蔽プラットフォーム703は、通信インターフェース713を介して、かつワイヤレスデータ接続が確立されている間に、グループの変化の指標を受信してもよい。1つまたはそれ以上の例において、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aでグループの変化の指標を受信してもよい。加えて、または代わりに、コンテンツ隠蔽プラットフォーム703は、表面コンテンツの更新を判定してもよい。表面コンテンツの更新を判定するとき、コンテンツ隠蔽プラットフォーム703は、クライアントデバイス702によって表示されるコンテンツに視覚的な変化が起こったと判定してもよい。たとえば、コンテンツ隠蔽プラットフォーム703は、ステップ801で当初表示されていたコンテンツから、表示されているコンテンツが変化していると判定してもよい。グループの変化の指標の受信、表面コンテンツの更新の判定、またはその両方の組合せに応答して、コンテンツ隠蔽プラットフォーム703は、アクティブユーザグループリストに基づいて、クライアントデバイス702のディスプレイに表示されるデジタルコンテンツの一部または全部を隠してもよい。
【0161】
コンテンツ隠蔽プロセス(これは、以下さらに説明する)の導入として、プロセスは、イベント駆動方式で画像解析保護モジュール712aによって行われる画像解析操作から開始してもよい。コンテンツ隠蔽プラットフォーム703は、いくつかの例では、コンテンツタグ付けプロセスを使用して、表示されるコンテンツに対応する、ビットマップ内のプレーンテキスト領域、シーンテキスト領域、および映像テキスト領域を強調表示することにより、画像解析操作を行ってもよい。
【0162】
コンテンツ隠蔽プラットフォーム703は、次いで、検出認識モジュール712bを使用して、プレーンテキストに従来の光学式文字認識(OCR)を適用し、シーンテキスト(例、静的なグラフィックまたは画像に埋め込まれているテキスト)および映像テキストに深層学習畳み込みニューラルネットワーク(CNN)を適用してもよい。解析操作後、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、テキストまたは画像の検出/認識および意味解析を利用して、センシティブコンテンツ点検モジュール712cの結果に基づいて、表示されるコンテンツの(コンテンツビットマップの観点からの)不適合領域を隠してもよく、または表示されるコンテンツの新たな適合領域を露出させてもよい。
【0163】
テキストまたは画像の検出/認識および意味解析のオーバーヘッド(例、時間、処理リソース等)を節約するために、コンテンツ隠蔽プラットフォーム703の画像解析保護モジュール712aは、イベント駆動方式を使用して解析操作を行ってもよく、保護操作のためにテキストの検出/認識および意味解析を利用してもよい。上で示したように、これらのトリガイベント(例、解析操作をトリガするイベント)は、グループレベルの変化イベント(例、カメラ視野内の個人に関連付けられているグループの変化を生じる、カメラ視野内の個人の変化)、表面コンテンツ更新イベント、またはこれら2つの組合せを含んでもよい。
【0164】
グループレベルの変化に関し、コンテンツ隠蔽プラットフォーム703は、クライアントデバイス702のユーザ発見モジュール702aから、カメラ視野へのユーザの到着またはカメラ視野からのユーザの退出によってアクティブグループリストの変化が生じたという指標を受信してもよい。上述したように、ユーザ到着イベントに関し、いくつかの例では、アクティブグループリストに対応するグループ識別子に一致しないかもしれないグループ識別子に関連付けられている新たなユーザがカメラ視野に到着してもよい。
【0165】
これらの例のいくつかでは、表示されるコンテンツは、到着するユーザにとって不適切なものである可能性がある。したがって、コンテンツの領域をそのテキストまたは画像のタイプに基づいて解析して、特定のコンテンツ(例、テキスト、画像等)を新たに到着するユーザに隠すべきかどうかを判定してもよい。これは、ステップ804に関して上述した実施例4のユーザ3およびユーザ6と同様である。いくつかの例では、新たに到着したユーザは、アクティブグループリストの既存グループに割り当ててもよい。こうした場合、追加の隠蔽は行わなくてもよいかもしれない。これは、ステップ804に関して上述した実施例2の類似のユーザ5である。
【0166】
ユーザ退出イベントに関して(例、ユーザがカメラ視野から退出する)、いくつかの例では、アクティブグループリストのグループ内の最後のユーザがカメラ視野から退出することがある。こうした場合、カメラ視野に残っているユーザに基づいてテキスト/画像意味解析を行うべきだと示すグループ変化指標(例、カメラ視野内のユーザに関連付けられているグループの変化の指標)を受信してもよい。言い換えると、退出するユーザに起因して以前は隠されていた一定のコンテンツ(例、テキスト、画像等)を、今はクライアントデバイス702を介して露出またはその他表示してもよい。これは、ステップ804に関して上述した実施例3のユーザ7と同様である。
【0167】
他の例では、ステップ804に関して上述した実施例2のユーザ13と同様に、ユーザは退出するかもしれないが、グループは、アクティブグループリストに残ることがある。こうした場合には、新しいコンテンツを露出させなくてもよい。そのため、コンテンツ隠蔽プラットフォーム703は、カメラ視野に残っているユーザに関連付けられているグループに変化がない場合、ユーザが退出することに応答して、コンテンツを再処理することを避けてもよい(例、同じ視聴ポリシーをもつユーザがまだ存在する場合、隠されるコンテンツは変わらないであろう)。このことは、一定の状況で行われる処理の削減により、コンテンツの効率的な隠蔽をもたらす。
【0168】
表面コンテンツの更新に関し、独立コンピューティングアーキテクチャ(ICA)グラフィックプロバイダに基づいて、コンテンツ隠蔽プラットフォームの画像解析保護モジュール712aにより映像バッファにビットマップが生成される。単純な例として、クライアントデバイス702のディスプレイに表示されるコンテンツに変化があってもよい。したがって、コンテンツは、隠すべきコンテンツを含むように更新されていてもよい。他の例では、表面コンテンツは、隠す必要がないかもしれないコンテンツを含むように更新されていてもよい。1つまたはそれ以上の例では、コンテンツ隠蔽プラットフォーム703は、表面コンテンツの更新を継続的にまたは所定の間隔で(例、5秒ごと等)監視してもよい。1つまたはそれ以上の例では、コンテンツ隠蔽プラットフォームは、ICAグラフィックプロバイダによって提供されるデータの変化を判定する(例、クライアントデバイス702に表示されるコンテンツが変化したことを判定する)ことにより、表面コンテンツの更新を監視してもよい。これらのプロセスをより詳細にさらに以下説明する。
【0169】
ステップ808で、グループ変化指標の受信および/または表面コンテンツの更新の判定後、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、表示されるコンテンツの画像レイアウトを構築してもよい。画像レイアウトを構築するとき、コンテンツ隠蔽プラットフォーム703は、表示されるコンテンツに対応するビットマップをセルのバッチ、たとえば16×16セルのグリッドに分割してもよい。表示されるコンテンツが静的か動的かに基づいて、個々のセルを隣接するセルと結合させて、より大きな領域を形成することができる。
【0170】
画像レイアウトを生成するとき、コンテンツ隠蔽プラットフォーム703は、
図12Aに表示されるビットマップ類似のビットマップ1205を生成してもよい。領域が動的かどうかを判定するとき、コンテンツ隠蔽プラットフォーム703は、その領域がグリッド(例、上述した16×16)内のセルの所定のパーセンテージ(例、30%)未満を包含し、閾値周波数(例、10毎秒フレーム(FPS))を超えて更新され、一時的な最小面積(例、10,000画素)より大きいと判定し、さらにその領域の相対的な位置が以前に表示されたフレームと比較して変化していないと判定してもよい。ビットマップの一時的領域を判定するとき、コンテンツ隠蔽プラットフォーム703は、上述した特徴に対応するセルをマークしてもよい。
【0171】
たとえば、
図12Bに図示されるビットマップ1210の黒色のセルは、ビットマップ1210の一時的領域としてマークされてもよいのに対し、残りの領域は、静的領域としてマークされてもよい。1つまたはそれ以上の例において、領域は、領域タイプを示すフラグにそれを関連付けることによってマークしてもよい。加えて、または代わりに、領域がその領域タイプとともに特定されるデータベースを維持してもよい。
【0172】
ビットマップの一時的領域と静的領域とを区別した後、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、セルがロスレステキスト(これは以下に定義する)を包含するかどうかに基づいて、静的領域がシーンテキスト(例、映像、フラッシュ、グラフィックス・インターチェンジ・フォーマット(GIF)画像などのリッチな背景に埋め込まれているテキスト)またはプレーンテキスト(例、単純な背景に表示されるテキスト)を包含するかどうかを判定する。セルがロスレスかどうかを判定するために、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、セルごとの画素値の差を判定してもよい。
【0173】
1つまたはそれ以上の例では、画素値を判定するとき、コンテンツ隠蔽プラットフォーム703は、各画素について、画素の明るさを表す数値(例、0、150、250等)を判定してもよい。セルが画素値で閾値を超える主な(例、50%超)差を包含するとコンテンツ隠蔽プラットフォーム703が判定する場合、コンテンツ隠蔽プラットフォーム703は、そのセルがロスレステキストを含むと判定してもよい。セルがロスレステキストを含むとコンテンツ隠蔽プラットフォーム703が判定する場合、コンテンツ隠蔽プラットフォーム703は、そのセルがシーンテキストを包含すると判定してもよい(例、そのセルがロスレステキストを包含する場合、そのセルはシーンテキストを包含する)。セルがロスレステキストを包含しないとコンテンツ隠蔽プラットフォーム703が判定する場合、コンテンツ隠蔽プラットフォーム703は、そのセルがプレーンテキストを包含すると判定してもよい(例、そのセルがロスレステキストを包含しない場合、そのセルはプレーンテキストを包含する)。
【0174】
ビットマップの各セルが映像テキスト、プレーンテキスト、および/またはシーンテキストを包含するかどうかを判定した後、コンテンツ隠蔽プラットフォーム703は、それに応じてセルをタグ付けして、
図12Cに図示するビットマップ1215などのビットマップを生成する。たとえば、ビットマップ1215の黒色のセルは、映像テキストを包含してもよく、ビットマップ1215の影付きのセルは、プレーンテキストを包含してもよく、ビットマップ1215の影なしのセルは、シーンテキストを包含してもよい。
【0175】
画像レイアウトを構築する最後のステップで、コンテンツ隠蔽プラットフォーム703は、同様にタグ付けされたセルに対応する形(例、方形)を生成してもよい。たとえば、すべてがプレーンテキストを包含する方形のセルをタグ付けしてもよい。
【0176】
1つまたはそれ以上の例において、コンテンツ隠蔽プラットフォーム703は、次のフォーマットを使用してセルをタグ付けしてもよい。方形ID:位置パラメータ{x,y}、幅、高さおよび候補タグ。セルをタグ付けすることにより、コンテンツ隠蔽プラットフォーム103は、セルが包含するテキストのタイプに基づいて全体として解析されてもよいより大きな形にセルをグループ分けすることができてもよく、コンテンツ隠蔽プラットフォーム103は、識別子の座標を使用して方形の位置を決めることができてもよい。こうした場合、{x,y}は、ディスプレイ画面に対して、方形の左上頂点の座標を表してもよい。たとえば、方形1:{(0,0),32,32,“プレーンテキスト”}、方形2:{(32,0),64,16,“シーンテキスト”}、方形5:{(32,16),64,48,“映像テキスト”}等。各方形は、コンテンツのテキスト意味解析および隠蔽の候補ビットマップとしてもよい。
【0177】
これらの方形を生成するとき、コンテンツ隠蔽プラットフォーム703は、
図13Aに図示される画像レイアウト1305と同様な画像レイアウトを生成してもよい。たとえば、方形1305Aおよび1305Eは、プレーンテキストに対応してもよく、方形1305B,1305Cおよび1305Fは、シーンテキストに対応してもよく、方形1305Dは、映像テキストに対応してもよい。画像レイアウトを方形で述べているが、画像レイアウトを生成するために任意の形(例、四角形、円形等)を使用できることは理解されるべきである。これらの方形が判定されたら、コンテンツ隠蔽プラットフォーム703は、画像レイアウトの構成を完了してもよく、画像レイアウトをテキストまたは画像意味解析のためにテキストまたは画像検出認識モジュール712bに送信してもよい。表面コンテンツの更新が判定されるたびに画像レイアウトを行うのではなく、最初に表示されるコンテンツの画像レイアウトを構成してしまえば、コンテンツ隠蔽プラットフォーム703は、ステップ808を飛ばして、ステップ807から直接ステップ809に進んでもよい。
【0178】
ステップ809で、表面コンテンツの更新の判定に応答して、最初に画像レイアウトを構築してしまえば、コンテンツ隠蔽プラットフォーム703は、表面コンテンツの更新に起因して画像レイアウトを調整するべきかどうかを判定してもよい。いくつかの例では、コンテンツ隠蔽プラットフォーム703は、表面コンテンツの更新が起こったと判定するかもしれないが、画像レイアウトを修正しなくてもよいかもしれない。しかし、いくつかの例では、コンテンツ隠蔽プラットフォーム703は、表面コンテンツの更新に応答して画像レイアウトを調整するべきであると判定してもよい。たとえば、表面コンテンツの更新後、方形1305Aの最初の2つのセルは、まだプレーンテキストに対応しているかもしれないが、方形1305Bに隣接する他の2つのセルは、シーンテキストに対応するかもしれない。
【0179】
したがって、コンテンツ隠蔽プラットフォーム703は、
図13Bに図示するように、画像レイアウト1310のようになるように画像レイアウトを修正してもよい。たとえば、方形1310Aおよび1310Eは、プレーンテキストを包含してもよく、方形1310B,1310Cおよび1310Fは、シーンテキストに対応してもよく、方形1310Dは映像テキストに対応してもよい。
【0180】
いくつかの例において、コンテンツ隠蔽プラットフォーム703は、新たなユーザグループに応答して、画像レイアウトを調整するべきであると判定してもよい。たとえば、新たなユーザグループの指標を受信するたびに、コンテンツ隠蔽プラットフォーム703は、画像レイアウトを再計算してもよい。再計算された画像レイアウトと以前に判定された画像レイアウトとの間に差があるとコンテンツ隠蔽プラットフォーム703が判定する場合、コンテンツ隠蔽プラットフォーム703は、テキスト意味解析を使用して処理するために、ビットマップ内のすべての方形を送信してもよい。再計算した画像レイアウトと以前に判定された画像レイアウトとの間に差がないとコンテンツ隠蔽プラットフォーム703が判定する場合、コンテンツ隠蔽プラットフォーム703は、テキスト意味解析のために、コンテンツ表面の更新からの変化に対応する方形のみを送信してもよい(たとえば、表面コンテンツの更新からの新たなコンテンツ、レイアウトの変化等)。たとえば、画像レイアウト1305が画像レイアウト1310のようになるように修正された場合、コンテンツ隠蔽プラットフォーム703は、テキスト意味解析のために方形1310Aおよび1310Bのみを再送信するべきであると判定してもよい。
【0181】
ステップ810で、ステップ808/809で画像レイアウトを構築および/または更新した後、コンテンツ隠蔽プラットフォーム703は、検出認識モジュール712bを使用してテキストの検出および認識を行ってもよい。テキストの検出および認識を行うとき、コンテンツ隠蔽プラットフォーム703は、各方形に包含されているテキストタイプに基づいて、画像レイアウトのさまざまな方形に対し、さまざまなテキストの検出および認識方法を使用してもよい。たとえば、画像レイアウトの方形がプレーンテキストを包含する例では、コンテンツ隠蔽プラットフォーム703は、従来のOCR技術を行って、その特定の方形内のテキストを判定してもよい。画像レイアウトの方形がシーンテキストおよび/または映像テキストを包含する例では、コンテンツ隠蔽プラットフォーム703は、テキストシーケンスの検出にR-CNNオブジェクト検出および双方向長短期記憶(BLSTM)を使用してもよい。これらの技術は、検出認識モジュール712bによって構成されるシーンおよび映像テキスト用深層学習ネットワークの一部であってもよい。画像レイアウトにこれらのさまざまな技術を行うとき、コンテンツ隠蔽プラットフォーム703は、表示されるコンテンツに包含される、検出されたテキストをすべて返してもよい。
【0182】
ステップ811で、コンテンツ隠蔽プラットフォーム703は、検出認識モジュール712bを使用して、ステップ810で判定されたテキストの位置パラメータに対応する提案テキストエリアを生成する。たとえば、提案テキストエリアを生成するとき、コンテンツ隠蔽プラットフォーム703は、たとえば、画素に関してテキストの左上座標、幅および高さをマークしてもよい。これら提案テキストエリアは、ステップ810で判定されたテキストと関連付けてもよく、さらに処理するためにセンシティブコンテンツ点検モジュール712cに送信してもよい。
【0183】
ステップ812で、コンテンツ隠蔽プラットフォーム703は、センシティブコンテンツ点検モジュール712cを使用して、ステップ810で判定されたテキストのいずれかを隠すべきかどうかを判定してもよい。いくつかの例では、コンテンツ隠蔽プラットフォーム703は、アクティブグループリストに基づいてテキストを隠すべきかどうかを判定してもよい。たとえば、各グループは、隠すべき言葉の辞書、隠すべき言葉のパターン、固有の隠蔽ポリシー等を有してもよい。コンテンツ隠蔽プラットフォーム703は、アクティブグループリストに含まれる各グループについて、これらのグループ固有ルールを、判定されたテキストに適用してもよい。1つまたはそれ以上の例では、テキストは、隠すべき言葉の辞書の中の言葉との完全一致であってもよい。加えて、または代わりに、テキストは、隠すべき言葉のパターン(例、正規の表現(検索パターンを構成する一連の文字))とのあいまい一致または柔軟な一致であってもよい。加えて、または代わりに、テキストは、深層学習アルゴリズムの適用に基づいて、隠すべき言葉との意味的一致であってもよい。
【0184】
これらの例のそれぞれにおいて、コンテンツ隠蔽プラットフォーム703は、テキストをディスプレイから隠すべきであると判定してもよい。テキストのいずれかを隠すべきかどうかを判定するとき、コンテンツ隠蔽プラットフォーム703は、個々の言葉に加えてテキストの行を判定してもよいことは理解されるべきである。1つまたはそれ以上の例では、ステップ810で判定されたテキストのいずれかを隠すべきかどうかの判定に加えて、または、その代わりとして、コンテンツ隠蔽プラットフォーム703は、以前に隠されたテキストを露出させるべきかどうかを判定してもよい(例、特定のグループ内の最後のユーザがカメラ視野から退出したため)。
【0185】
図8Bを参照すると、ステップ813で、コンテンツ隠蔽プラットフォーム703は、隠すべき言葉用の位置を計算してもよい。1つまたはそれ以上の例では、コンテンツ隠蔽プラットフォーム703は、ステップ812の隠蔽のために特定された言葉について、(ステップ811で判定された)提案テキストエリアを判定することにより、隠すべき言葉用の位置を計算してもよい。
【0186】
ステップ814で、隠すべき言葉の位置をステップ813で判定した後、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、それに応じて表示するためにテキストまたは他のコンテンツを隠すか、または露出させてもよい。
【0187】
テキストを隠すとき、コンテンツ隠蔽プラットフォーム703は、画像解析保護モジュール712aを使用して、映像バッファから全画面ビットマップをキャプチャしてもよく、ベースフレームとしてそのビットマップをキャッシュしてもよい。ベースフレームとしてビットマップをキャッシュするとき、コンテンツ隠蔽プラットフォーム703は、隠されたコンテンツをその初期状態に戻すために使用してもよい基準点として、ビットマップを格納してもよい。1つまたはそれ以上の例では、ベースフレームは、ICAグラフィックス表面更新とともに更新してもよい。
【0188】
画像解析保護モジュール712aは、センシティブコンテンツ点検モジュール712cから、コンテンツのどの位置を隠すべきかを示す指標を受信してもよく、コンテンツの隠すべき部分に対応するターゲット方形と等しいサイズのソリッドカラーのビットマップをアセンブルしてもよい(例、黒色等)。画像解析保護モジュール712aは、次いで、ICAスタックを介してクライアントデバイス702の画面の対応する位置に黒色のビットマップを更新してもよい。
【0189】
ある特定の個人の退出に応じてテキストまたは他のコンテンツを見えるようにするために黒色のビットマップを除くべき例では、画像解析保護操作は、ベースフレームから初期のビットマップを取得してもよく、ICAスタックを介してクライアントデバイス702の画面の対応する位置に初期のビットマップを更新してもよい。
【0190】
1つまたはそれ以上の例では、コンテンツ隠蔽プラットフォーム703は、コンテンツの一部が隠された状態でコンテンツを表示するようクライアントデバイス702に指示する1つまたはそれ以上のコマンドを生成して、クライアントデバイス702に送信してもよい。こうした場合、コンテンツ隠蔽プラットフォーム703は、通信インターフェース713を介して、かつワイヤレスデータ接続が確立されている間に1つまたはそれ以上のコマンドを送信してもよい。
【0191】
ステップ815で、クライアントデバイス702は、特定の部分が隠された状態でコンテンツを表示してもよい。1つまたはそれ以上の例では、ステップ815でコンテンツを表示するとき、クライアントデバイス702は、
図11Bに図示されるグラフィカル・ユーザ・インターフェース1110と同様なグラフィカル・ユーザ・インターフェースを表示してもよい。たとえば、以前は表示されていた秘密情報、センシティブな言葉、および/またはデジタルコンテンツを、今度は隠してもよい。1つまたはそれ以上の例では、クライアントデバイス702は、一部が隠された状態でコンテンツを表示するようクライアントデバイス702に指示する1つまたはそれ以上のコマンドを受信してもよく、クライアントデバイス702は、1つまたはそれ以上のコマンドに応答してコンテンツを表示してもよい。
【0192】
ステップ801~815は、主にテキストを隠すことに関して説明しているが、これらのステップは、表示されるコンテンツの他の非テキスト部分(例、画像、映像等)を隠すためにも使用してもよいことは理解されるべきである。同様に、これらのステップは、単一の言葉を隠すことに制限されるのではなく、テキストの行を隠すべきだと示す深層学習テキスト意味解析に基づいて隠されてもよいテキストの行にも適用される
その後、イベントシーケンスは終了してもよく、コンテンツ隠蔽プラットフォーム703は、上述したユーザグループに基づいてテキストを隠し続けてもよい。したがって、リアルタイムのテキスト隠蔽のための方法が提示される。加えて、特定のテキストを一定の個人から隠すべきだと単に判定し、それに合わせて全員に対してテキストを隠すのではなく、コンテンツ隠蔽プラットフォーム703は、さまざまなユーザグループに対応するポリシーに基づいてテキストを隠すための方法を提供してもよい。したがって、コンテンツ隠蔽の質(ならびに隠蔽されるコンテンツのセキュリティおよび秘密性も同様に)が改善される。
【0193】
図9は、1つまたはそれ以上の実施の形態に従い、ユーザグループの変化に基づいてリアルタイムのテキストの隠蔽を行うための例示的な方法を示す。
図9を参照すると、ステップ905で、少なくとも1つのプロセッサと、通信インターフェースと、メモリとを有する第1コンピューティングデバイスが顔の検出および認識を行ってもよい。ステップ905で行われるアクションは、ステップ802に関して上述したものと同様であってもよい。ステップ910で、第1コンピューティングデバイスは、認識されたユーザをグループごとに集計してもよい。ステップ910で行われるアクションは、ステップ803に関して上述したものと同様であってもよい。
【0194】
ステップ915で、第1コンピューティングデバイスは、新たなグループのユーザが到着したかどうかを判定してもよい。新たなユーザが到着した場合、第1コンピューティングデバイスは、グループの変化の指標を第2コンピューティングデバイスに送信してもよく、ステップ930に進んでもよい。新たなユーザが到着しなかった場合、第1コンピューティングデバイスは、ステップ920に進んでもよい。ステップ915で行われるアクションは、ステップ804~806に関して上述したものと同様であってもよい。
【0195】
ステップ920で、第1コンピューティングデバイスは、以前に表されたグループのユーザ全員がクライアントデバイスのカメラの視野から退出したかどうかを判定してもよい。以前に表されたグループのユーザ全員が退出していなかった場合、方法は終了してもよい。以前に表されたグループのユーザ全員が退出した場合、第1コンピューティングデバイスは、グループの変化の指標を第2コンピューティングデバイスに送信してもよく、ステップ925に進んでもよい。ステップ920で行われるアクションは、ステップ804~806に関して上述したものと同様であってもよい。
【0196】
ステップ925で、第2コンピューティングデバイスは、以前に表されたグループに関連付けて以前は隠されていたテキストを、露出させてもよい。ステップ925で行われるアクションは、ステップ807~814に関して上で詳しく説明されている。ステップ930で、第2コンピューティングデバイスは、アクティブ画像レイアウトを計算してもよい。ステップ930で行われるアクションは、ステップ808および809に関して上述したものと同様であってもよい。
【0197】
ステップ935で、第2コンピューティングデバイスは、アクティブ画像レイアウトに含まれるすべての方形についてテキストの検出および認識が行われたかどうかを判定してもよい。アクティブ画像レイアウトのすべての方形についてテキストの検出および認識が行われていた場合、第2コンピューティングデバイスは、ステップ955に進んでもよい。アクティブ画像レイアウトのすべての方形についてテキストの検出および認識が行われていない場合、第2コンピューティングデバイスは、ステップ940に進んでもよい。
【0198】
ステップ940で、第2コンピューティングデバイスは、アクティブ画像レイアウトの方形についてテキストの検出および認識を行ってもよい。ステップ940で行われるアクションは、ステップ810に関して上述したものと同様であってもよい。ステップ945で、第2コンピューティングデバイスは、テキストの検出および認識に基づいて、方形がテキストを包含しているかどうかを判定してもよい。方形がテキストを包含していない場合、第2コンピューティングデバイスは、ステップ935に戻ってもよい。方形がテキストを包含している場合、第2コンピューティングデバイスは、ステップ950に進んでもよい。
【0199】
ステップ950で、第2コンピューティングデバイスは、テキストとテキストに対応する提案テキストエリアの位置とを保存してもよい。ステップ950で行われるアクションは、ステップ811に関して上述したものと同様であってもよい。ステップ955で、アクティブ画像レイアウトのすべての方形が解析されたら、第2コンピューティングデバイスは、隠すべき言葉を特定してもよく、それに応じてそれを隠してもよい。ステップ955で行われるアクションは、ステップ812~814に関して上述したものと同様であってもよい。その後、方法は終了してもよい。
【0200】
図10は、1つまたはそれ以上の実施の形態に従い、表面コンテンツの更新に基づいてリアルタイムのテキストの隠蔽を行うための例示的な方法を示す。
図10を参照すると、ステップ1005で、少なくとも1つのプロセッサと、通信インターフェースと、メモリとを有するコンピューティングデバイスは、現在表示されているコンテンツ(表面コンテンツという)の更新に応答して、アクティブ画像レイアウトを計算する。ステップ1005で行われるアクションは、ステップ808に関して上述したものと同様であってもよい。
【0201】
ステップ1010で、コンピューティングデバイスは、アクティブ画像レイアウトに含まれているすべての方形が解析されているかどうかを判定してもよい。すべての方形が解析されていた場合、コンピューティングデバイスは、ステップ1045に進んでもよい。すべての方形が解析されていない場合、コンピューティングデバイスは、ステップ1015に進んでもよい。
【0202】
ステップ1015で、コンピューティングデバイスは、表面コンテンツの更新に基づいていずれかの方形が形を変えるかどうかを判定してもよい。方形が形を変えていた場合、コンピューティングデバイスは、ステップ1025に進んでもよい。方形が形を変えていなかった場合、コンピューティングデバイスは、ステップ1020に進んでもよい。ステップ1015で行われるアクションは、ステップ809に関して上述したものと同様であってもよい。
【0203】
ステップ1020で、コンピューティングデバイスは、表面コンテンツの更新がディスプレイ上のコンテンツの変化を引き起こしたかどうかを判定してもよい。コンテンツの変化がなかった場合、コンピューティングデバイスは、ステップ1030に進んでもよい。コンテンツの変化があった場合、コンピューティングデバイスは、ステップ1025に進んでもよい。ステップ1020で行われるアクションは、ステップ810に関して上述したものと同様であってもよい。
【0204】
ステップ1025で、コンピューティングデバイスは、テキストの検出および認識を行ってもよい。ステップ1025で説明されるアクションは、ステップ810に関して上述したものと同様であってもよい。ステップ1030で、コンピューティングデバイスは、方形がテキストを有するかどうかを判定してもよい。方形がテキストを有さない場合、コンピューティングデバイスは、ステップ1040に進んでもよい。方形がテキストを有する場合、コンピューティングデバイスは、ステップ1035に進んでもよい。ステップ1025で行われるアクションは、ステップ810に関して上述したものと同様であってもよい。
【0205】
ステップ1035で、コンピューティングデバイスは、テキストと提案テキストエリアとしてのテキストの位置とを保存してもよい。ステップ1035で行われるアクションは、ステップ811に関して上述したものと同様であってもよい。ステップ1040で、コンピューティングデバイスは、アクティブ画像レイアウトの別の方形に進んでもよい。
【0206】
ステップ1045で、コンピューティングデバイスは、保存されたテキストの中から隠すべき言葉を特定してもよく、それに応じてその言葉を隠してもよい。ステップ1045で行われるアクションは、ステップ812~814に関して上述したものと同様であってもよい。その後、方法は終了してもよい。
【0207】
構造的な特徴および/または方法論的な行為に特有の用語で本開示の主題を説明してきたが、添付の請求項で定義される主題は、必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は、以下の請求項に規定される例示的な実施の態様として説明される。
【国際調査報告】