特許第6867553号(P6867553)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シトリックス・システムズ・インコーポレイテッドの特許一覧

特許6867553リモートセッションにおける可視透かしを提供するシステム及び方法
<>
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000002
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000003
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000004
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000005
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000006
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000007
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000008
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000009
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000010
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000011
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000012
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000013
  • 特許6867553-リモートセッションにおける可視透かしを提供するシステム及び方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6867553
(24)【登録日】2021年4月12日
(45)【発行日】2021年4月28日
(54)【発明の名称】リモートセッションにおける可視透かしを提供するシステム及び方法
(51)【国際特許分類】
   G06T 1/00 20060101AFI20210419BHJP
【FI】
   G06T1/00 A
【請求項の数】18
【全頁数】18
(21)【出願番号】特願2020-527886(P2020-527886)
(86)(22)【出願日】2018年11月15日
(65)【公表番号】特表2021-503670(P2021-503670A)
(43)【公表日】2021年2月12日
(86)【国際出願番号】US2018061344
(87)【国際公開番号】WO2019099714
(87)【国際公開日】20190523
【審査請求日】2020年7月21日
(31)【優先権主張番号】15/817,832
(32)【優先日】2017年11月20日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508045099
【氏名又は名称】シトリックス・システムズ・インコーポレイテッド
【氏名又は名称原語表記】Citrix Systems,Inc.
(74)【代理人】
【識別番号】110002675
【氏名又は名称】特許業務法人ドライト国際特許事務所
(72)【発明者】
【氏名】ムハンマド アフザル ダーウッド
【審査官】 橘 高志
(56)【参考文献】
【文献】 米国特許出願公開第2003/0165253(US,A1)
【文献】 米国特許出願公開第2017/0243318(US,A1)
【文献】 米国特許出願公開第2010/0194753(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/32
G06F 13/00
G06F 15/00
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
リモートセッションにおける可視透かしを提供する方法であって、
サーバのグラフィックスエンコーダを初期化するたびに、前記リモートセッションの確立に先立って、(a)クライアントコンピューティングデバイスの画面サイズに従って無地の背景に前記可視透かしの1つ以上のインスタンスを有する少なくとも1つの画像と、(b)前記少なくとも1つの画像のどこに前記可視透かしの各インスタンスが存在するかを示す透かしビットマップと、を生成し、
前記サーバにより、前記リモートセッションの期間に、ディスプレイ又はウィンドウの視覚的特徴からなるグラフィックに対してなされる、前記視覚的特徴の少なくとも一部の修正又は置換を含む更新を、前記クライアントコンピューティングデバイスに報告する必要があるか否かを判断する動作を実行し、
前記クライアントコンピューティングデバイスに前記グラフィックの更新を報告する必要があるという判断に応答して、前記グラフィックを更新するための第1コマンド列とエンドオブフレーム(EOF)コマンドとを有する第1グラフィック更新メッセージを作成し、
前記グラフィックと前記可視透かしの前記1つ以上のインスタンスとの双方が前記クライアントコンピューティングデバイスの画面に表示された場合、前記透かしビットマップを用いて、前記可視透かしの前記1つ以上のインスタンスの影響を受ける前記グラフィックの画素を特定し、
以前に特定された前記画素の各々の新たなカラー値を指定する第2コマンド列を構成し、
前記第1コマンド列と前記EOFコマンドとの間に前記第2コマンド列を挿入することによって、前記第1グラフィック更新メッセージを第2グラフィック更新メッセージに変換し、
前記第2グラフィック更新メッセージを前記サーバから前記クライアントコンピューティングデバイスへ送信する、方法。
【請求項2】
前記方法は、少なくとも部分的に前記サーバの前記グラフィックスエンコーダによって実行される、請求項1に記載の方法。
【請求項3】
前記クライアントコンピューティングデバイスのデバイス識別子を用いて、データストアからそれぞれの予め定義された透かしパラメータ情報を取得することをさらに含む、請求項1に記載の方法。
【請求項4】
前記少なくとも1つの画像は、前記取得されたそれぞれの予め定義された透かしパラメータ情報と前記クライアントコンピューティングデバイスの前記画面サイズとに基づいて生成された少なくとも1つの全画面サイズ画像を含む、請求項3に記載の方法。
【請求項5】
前記少なくとも1つの全画面サイズ画像は、白色背景又は黒色背景に前記可視透かしの少なくとも1つのインスタンスを有する、請求項4に記載の方法。
【請求項6】
前記可視透かしの1つのインスタンスが存在する前記少なくとも1つの全画面サイズ画像の領域を特定することによって前記透かしビットマップが生成される、請求項4に記載の方法。
【請求項7】
前記領域の特定は、
前記少なくとも1つの全画面サイズ画像を複数の同一サイズのブロックに分割し、
前記複数の同一サイズのブロックのうちどのブロックが前記可視透かしの一部を含んでいるのかを特定すること
によってなされる、請求項6に記載の方法。
【請求項8】
前記領域の特定は、さらに、前記特定されたブロックの隣接するブロックを統合して、より大きなブロックを生成することによってなされる、請求項7に記載の方法。
【請求項9】
前記透かしビットマップは、(a)前記可視透かしの各インスタンスが存在する前記少なくとも1つの全画面サイズ画像の前記特定された領域を示し、且つ(b)前記特定された領域のどの画素が前記可視透かしを有するのかを示す、請求項6に記載の方法。
【請求項10】
前記サーバが前記クライアントコンピューティングデバイスから少なくともデバイス識別子を受信したことに応答して、前記サーバの前記グラフィックスエンコーダを初期化することをさらに含む、請求項1に記載の方法。
【請求項11】
少なくとも1つの処理構成要素と、
リモートセッションにおける可視透かしを提供する方法を前記少なくとも1つの処理構成要素に実施させるためのプログラミング命令を有する非一時的なコンピュータ読み取り可能な記憶媒体と、
を備えるシステムであって、
前記プログラミング命令は、
前記処理構成要素のグラフィックスエンコーダを初期化するたびに、前記リモートセッションの確立に先立って、(a)クライアントコンピューティングデバイスの画面サイズに従って無地の背景に前記可視透かしの1つ以上のインスタンスを有する少なくとも1つの画像と、(b)前記少なくとも1つの画像のどこに前記可視透かしの各インスタンスが存在するかを示す透かしビットマップと、を生成し、
前記リモートセッションの期間に、ディスプレイ又はウィンドウの視覚的特徴からなるグラフィックに対してなされる、前記視覚的特徴の少なくとも一部の修正又は置換を含む更新を、前記クライアントコンピューティングデバイスに報告する必要があるか否かを判断し、
前記クライアントコンピューティングデバイスに前記グラフィックの更新を報告する必要があるという判断に応答して、前記グラフィックを更新するための第1コマンド列とエンドオブフレーム(EOF)コマンドとを有する第1グラフィック更新メッセージを作成し、
前記グラフィックと前記可視透かしの前記1つ以上のインスタンスとの双方が前記クライアントコンピューティングデバイスの画面に表示された場合、前記透かしビットマップを用いて、前記可視透かしの前記1つ以上のインスタンスの影響を受ける前記グラフィックの画素を特定し、
以前に特定された前記画素の各々の新たなカラー値を指定する第2コマンド列を構成し、
前記第1コマンド列と前記EOFコマンドとの間に前記第2コマンド列を挿入することによって、前記第1グラフィック更新メッセージを第2グラフィック更新メッセージに変換し、
前記第2グラフィック更新メッセージを前記クライアントコンピューティングデバイスへ送信させるための命令を有する、システム。
【請求項12】
前記プログラミング命令は、前記クライアントコンピューティングデバイスのデバイス識別子を用いて、データストアからそれぞれの予め定義された透かしパラメータ情報を取得するための命令をさらに有する、請求項11に記載のシステム。
【請求項13】
前記少なくとも1つの画像は、前記取得されたそれぞれの予め定義された透かしパラメータ情報と前記クライアントコンピューティングデバイスの前記画面サイズとに基づいて生成された少なくとも1つの全画面サイズ画像を含む、請求項12に記載のシステム。
【請求項14】
前記少なくとも1つの全画面サイズ画像は、白色背景又は黒色背景に前記可視透かしの少なくとも1つのインスタンスを有する、請求項13に記載のシステム。
【請求項15】
前記可視透かしの1つのインスタンスが存在する前記少なくとも1つの全画面サイズ画像の領域を特定することによって前記透かしビットマップが生成される、請求項13に記載のシステム。
【請求項16】
前記領域の特定は、
前記少なくとも1つの全画面サイズ画像を複数の同一サイズのブロックに分割し、
前記複数の同一サイズのブロックのうちどのブロックが前記可視透かしの一部を含んでいるのかを特定すること
によってなされる、請求項15に記載のシステム。
【請求項17】
前記領域の特定は、さらに、前記特定されたブロックの隣接するブロックを統合して、より大きなブロックを生成することによってなされる、請求項16に記載のシステム。
【請求項18】
前記透かしビットマップは、(a)前記可視透かしの各インスタンスが存在する前記少なくとも1つの全画面サイズ画像の前記特定された領域を示し、且つ(b)前記特定された領域のどの画素が前記可視透かしを有するのかを示す、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2017年11月20日に出願された米国特許出願第15/817,832号の優先権を主張し、その開示内容は参照により本明細書に組み込まれる。
【0002】
本開示は、概してコンピューティングシステムに関する。より詳細には、本開示は、リモートセッションにおける可視透かし(visible watermark)を提供するシステム及び方法の実施に関する。
【背景技術】
【0003】
透かしは、コンピュータの画面から外部へ機密情報又は極秘情報が漏洩するおそれに対し、可視的な抑止手段としての機能を果たしている。リモートセッションに透かしを付加する方法は2つある:(1)サーバのフレームバッファの一部として透かしを提供する(サーバオンリー);又は(2)エンドポイントのクライアントソフトウェアに、画面を更新するたびに透かしを表示するよう指示する。
【0004】
手法(1)は、純粋にサーバオンリーの解決手段である(すなわち、エンドポイントの更新を要しない。)。透かしは、サーバのフレームバッファ上で合成されるので、エンドポイントに送信された任意のグラフィック画面の更新の一部として提供される。この手法の主なデメリットは、透かしを作製するために余分な中央処理装置(CPU)リソースを必要とするということである。
【0005】
手法(2)は、画面を更新するたびに部分的に透明なオーバーレイを表示する機能がサポートされていない場合に、エンドポイントソフトウェアを更新しなければならないというデメリットがある。このことは、エンドポイントが更新するのに困難を伴うか不可能である場合(例えば、旧シンクライアントなど)、又はエンドポイントの数が多すぎる場合に、いささか厄介である。
【発明の概要】
【0006】
本開示は、リモートセッションにおける可視透かしを提供するシステム及び方法の実施に関する。当該方法は、サーバにより、リモートセッションの期間に、クライアントコンピューティングデバイスでグラフィック更新をする必要があるか否かを判断する動作を実行し、グラフィック更新をする必要があるという判断に応答して、第1グラフィック更新メッセージ(例えば、コマンド列)を作成し、グラフィック及び少なくとも1つの透かしの双方がクライアントコンピューティングデバイスの画面に表示された場合、少なくとも1つの透かしの影響を受けるグラフィックの画素を特定し、以前に特定された画素の各々の新たなカラー値を有する新たなグラフィック更新(例えば、ビットマップ)を指定する第2コマンド列を構成し、第1コマンド列とEOFコマンドとの間に第2コマンド列を挿入することによって、第1グラフィック更新メッセージを第2グラフィック更新メッセージに変換し、第2グラフィック更新メッセージをサーバからクライアントコンピューティングデバイスへ送信することを含む。これらの動作は、サーバのグラフィックスエンコーダ(GE)によって実行することができる。
【0007】
いくつかのシナリオにおいて、当該方法は、クライアントコンピューティングデバイスのデバイス識別子を用いて、データストアからそれぞれの予め定義された透かしパラメータ情報を取得し、取得されたそれぞれの予め定義された透かしパラメータ情報とクライアントコンピューティングデバイスの既知の画面サイズとに基づいて、少なくとも1つの全画面サイズ透かし画像を生成し、透かしが存在する少なくとも1つの全画面サイズ透かし画像の領域を特定することをさらに含む。全画面サイズ透かし画像は、白色背景又は黒色背景に透かしの少なくとも1つのインスタンスを有するが、これに限定されない。領域の特定は、少なくとも1つの全画面サイズ透かし画像を複数の同一サイズのブロックに分割し、複数の同一サイズのブロックのうちどのブロックが透かしの一部を含んでいるのかを特定し、及び/又は、特定されたブロックの隣接するブロックを統合して、より大きなブロックを生成することによってなされる。
【0008】
そして、(a)透かしが存在する少なくとも1つの全画面サイズ透かし画像の特定された領域と、(b)特定された領域のどの画素が透かしを有するのかを示す透かしビットマップが生成される。グラフィック及び透かしの双方がクライアントコンピューティングデバイスの画面に表示されたとき、透かしビットマップを用いて、透かしの影響を受けるグラフィックの画素を特定する。
【図面の簡単な説明】
【0009】
以下の図面を参照して本解決手段を説明するが、図面全体を通して、同様の参照符号は同様の特徴を表す。
【0010】
図1図1は、例示的なシステムの図である。
【0011】
図2図2は、例示的なコンピューティングデバイスの図である。
【0012】
図3図3は、従来の例示的なグラフィックス更新メッセージの図である。
【0013】
図4図4は、例示的なグラフィックス更新メッセージの図である。
【0014】
図5図5は、透かしの5つの可視インスタンスを有するデスクトップ画面の表示例の図である。
【0015】
図6A-6C】図6A図6C(まとめて「図6」と称す。)は、リモートセッションにおける可視透かしを提供する例示的な方法のフロー図を示す。
【0016】
図7図7は、例示的な全画面サイズ透かし画像の図である。
【0017】
図8図8は、例示的な分割透かし画像の図である。
【0018】
図9図9は、例示的なマーク付き分割透かし画像の図である。
【0019】
図10図10は、統合ブロックを有する例示的なマーク付き分割透かし画像の図である。
【0020】
図11図11は、例示的な透かしビットマップの図である。
【発明を実施するための形態】
【0021】
本明細書で一般的に説明され、添付図面に示された実施形態の構成要素は、多種多様な異なる構成で配置及び設計され得ることが容易に理解されよう。したがって、図示されている様々な実施形態の以下のより詳細な説明は、本開示の範囲を限定するものではなく、様々な実施形態の単なる代表例である。実施形態の様々な態様が図示されているが、特に明示しない限り、図面は必ずしも縮尺通りに描かれていない。
【0022】
本解決手段は、その精神又は本質的な特徴から逸脱することなく、他の特定の形態で具現化することができる。説明された実施形態は、あらゆる点で単なる例示にすぎず、限定的に解釈してはならない。したがって、本解決手段の範囲は、添付の特許請求の範囲によって示されるのであって、この詳細な説明には、なんら拘束されない。特許請求の範囲の均等物の意味及び範囲内における変更はすべて本解決手段の範囲内に包含されるべきである。
【0023】
本明細書全体を通して、特徴、利点、又は類似の用語への言及は、本解決手段で実現され得る特徴及び利点のすべてが本解決手段の任意の単一の実施形態であるべきであることを意味しない。むしろ、特徴及び利点に言及する用語は、実施形態に関連して説明される特定の特徴、利点、又は特性が本解決手段の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書全体にわたる特徴及び利点、並びに類似の言語の議論は、必ずしもそうではないが、同じ実施形態を指す場合がある。
【0024】
さらに、本解決手段に記載された特徴、利点、及び特性は、1つ以上の実施形態において任意の適切な方法で組み合わせることができる。当業者は、本明細書の説明に照らして、特定の実施形態の1つ以上の特定の特徴又は利点なしで本解決手段が実施可能であることを認識するであろう。他の例では、本解決手段のすべての実施形態で示されていない特定の実施形態において、追加の特徴及び利点が認識される場合がある。
【0025】
本明細書全体を通して、「一実施形態」(one embodiment)、「実施形態」(an embodiment)、又は同様の文言への言及は、示された実施形態に関連して説明された特定の特徴、構造、又は特性が本解決手段の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「一実施形態では」(in one embodiment)、「実施形態では」(in an embodiment)という文言、及び同様の文言は、必ずしもそうではないが、すべて同じ実施形態を指す場合がある。
【0026】
本文書で用いられている単数形「a」、「an」、及び「the」は、文脈上特に明記されていない限り、複数形の言及を含む。別段に定義されていない限り、本明細書で用いられているすべての技術用語及び科学用語は、当業者によって一般に理解されるのと同じ意味を有する。本文書で用いられている「備える/有する」(comprising)という用語は「含むが、それに限定されない」(including, but not limited to)ことを意味する。
【0027】
本解決手段は、リモートセッションにおける可視透かしを提供するシステム及び方法に関する。設置のし易さと、あらゆるエンドポイントソフトウェアと互換性があることと、サーバオンリーの解決手段はより安全であるという一般的な定説とにより、本解決手段は、サーバオンリーの解決手段として実施される(すなわち、エンドポイントの更新を要しない。)。
【0028】
初期のサーバオンリーのプロトタイプは、ユーザのセッションにおける他のアプリケーションと並行して動作するユーザモードアプリケーションを含んでいた。ユーザモードアプリケーションは、所望の透かしテキストを含む全画面表示の部分的な透明ウィンドウを生成することによって、サーバのフレームバッファに透かしを適用していた。Desktop Window Manager(DWM)は、全画面表示の部分的な透明ウィンドウ及び他のデスクトップウィンドウでアルファベースの合成を行い、所望の効果を生んでいた。そして、結果として得られたグラフィックスは、グラフィックスエンコーダ(GE)によって符号化され、エンドポイントに送信され、表示されていた。
【0029】
初期のサーバオンリーのプロトタイプは以下の難点を有している:(1)ユーザモードの透かし処理を終えることができると、結果として、当該透かしが除去される;(2)結果として得られる、GEにかけられたグラフィックス更新(入力画像)は、キャッシング又は圧縮に役立ついかなる性質をも示す可能性が極めて低く、これにより、必要とする全体のネットワーク回線容量が増加してしまう。難点(1)は、透かし処理に特別な許可を適用することで解決され得る。実験データは、Office生産性アプリケーションからなる50分の自動作業負荷に対し、同一の作業負荷で透かしが存在しない場合に比べて、15倍多い回線容量が使用されたことを示している。さらに、透かしが存在する符号化されたグラフィックスのあらゆるキャッシュ可能特性の欠如と複雑性により、7倍多いサーバCPUも必要とされていた。
【0030】
本解決手段は、初期のサーバオンリーのプロトタイプのサーバCPUコスト及び上述のネットワーク回線容量に比べてわずかなコスト及び回線容量で、サーバオンリーの透かしを提供する手法を提示する。本解決手段は、以下の新しい特徴を有する:(1)設置のし易さ(純粋なサーバオンリーの解決手段);(2)新たなプロトコルコマンドの導入が不要(あらゆる既存の受信機で動作する。);(3)初期のサーバオンリーのプロトタイプ(15倍増加)及び従来の他のサーバオンリーの解決手段に比べて低い回線容量の効果(2〜3倍増加);(4)初期のサーバオンリーのプロトタイプ(7倍)及び従来の他のサーバオンリーの解決手段に比べて低いCPUの効果(1.5〜2倍)。
【0031】
専用の透かし処理によって透かしを提供し、Composition Manager(CM)に依拠して結果としての画像を与えるよりも、GEを修正して、グラフィックス更新の通常の処理後に透かしの合成をする。当該処理は概して次の動作を含む。GE初期化時に、(管理者によって構成された所望の透かしテキスト及び/又は画像を有し部分的に透明な)全画面表示の透かしフレームバッファが計算される。次に、フレームバッファのどの部分に透かし情報が存在するのかを記述するビットマップが構築される。この計算とマップ構築動作は、GEを初期化するたびに(例えば、モニタレイアウトを変更するときに)一度にまとめて動作すべきものである。そして、入力されたグラフィック更新に対し、通常のGE動作が行われる。これらのGE動作は、ネットワーク回線容量の使用を削減するために主にキャッシングと圧縮の最適化を伴う。エンドポイントに最新の画面更新(エンドオブフレーム(EOF)コマンド)の表示を指示する前に、初期化時に構築されたビットマップを用いて、計算前の透かしフレームバッファでの任意の透かし情報とグラフィックス更新との共通部分が算出される。ビットマップは、透かしフレームバッファを複数のブロック(例えば、各々が16×16画素)として記述するので、影響を受ける領域は、以前に構築されたマップを用いて、X画素(例えば、16画素)の高さの長方形のストリップとして計算される。グラフィックス更新がごく一部である場合、透かし全体を合成する必要はないため、現在の演算動作は、送信が必要な透かしの部分に効果的に絞られる。その後、これらのストリップに対してアルファブレンドの合成動作を行う。これは、“over”operationとしても知られており、入力画像と透かしの画素を結合することで、両画素を表す結合色が生成される。合成されたストリップは、無損失ランレングス符号化(RLE)オーバーレイビットマップとして、エンドポイントに送信される。これらのビットマップは、他の無損失ビットマップ(キャッシュした)と同様に送信されるので、後で同一のビットマップが生成された場合に再利用され得る。そして、EOFコマンドが発行され、エンドポイントに全ての更新の表示を指示する。
【0032】
本解決手段は、以下の利点を有する。あらゆるエンコーダ最適化は、依然として、何も損なわれていない入力グラフィックス更新に対して行われる。これにより、回線容量の使用が大幅に減少するだけでなく、最良のキャッシュの再利用及び圧縮の利益につなげることができる。サーバオンリーであるため、新たな機能を有効にするために、クライアントソフトウェア更新をする必要がない。余分なCPUコストはオーバーオペレーション(over operation)の結果として生じるが、比較的安価な動作である。アルファブレンド動作によって形成された合成ビットマップはサーバ側で生成され、新たなプロトコルを必要としない。プロトコルについて言えば、これは、無損失のコーデック(例えば、Citrix lossless codes)を用いて圧縮される単なる通常のビットマップである。このアプローチは、新たなコマンドを導入しないので、デフォルトであらゆる既存のエンドポイントと互換性がある。透かしアプリケーションは、GE処理の一部として実施されるので、改ざんされることはない。GE処理が終了すると、エンドポイントに送信されるグラフィックス更新は一切なくなるので、自動的に安全である。
【0033】
実験により、上述の同一の自動作業負荷に対して、回線容量の使用は、透かしが存在しない場合よりも約2〜3倍多く、CPUの使用は、約1.5〜2倍多いことが示されている。このことは、初期のプロトタイプ(15倍多い回線容量)に対する大幅な減少を表している。クライアントソリューションに対して減少した安全性リスクと設置のし易さにより、2〜3倍の増加は顧客にとって許容可能であることが早期に示されている。
【0034】
図1を参照すると、例示的なシステム100の図が示されている。システム100は、リモートセッションにおける可視透かしを提供する方法を実施する。これに関し、システム100は、顧客設備140とクラウドサービスプロバイダ設備142とを備える。顧客設備140は、企業組織などの顧客の1つ以上の建物を備えている。顧客は、複数のエンドユーザ102〜102を有する。エンドユーザとしては、従業員が挙げられるが、これに限定されない。エンドユーザ102〜102は、それぞれ、クラウドサービスプロバイダによって提供されたクラウドサービスにアクセスして使用するなど、種々の目的のためにクライアントコンピューティングデバイス104〜104を使用する。これに関し、クライアントコンピューティングデバイス104〜104は、接続損失によって中断されることなく、アプリケーション及び仮想デスクトップへのアクセスを促進するように構成される。よって、クライアントコンピューティングデバイス104〜104は、様々なソフトウェアアプリケーションをインストールしており、これらを実行する。これらのソフトウェアアプリケーションとして、ウェブブラウザ116〜116及び/又はウェブレシーバ118〜118が挙げられるが、これに限定されない。
【0035】
いくつかのシナリオでは、ウェブレシーバ118〜118として、それぞれ、フロリダ州のシトリックス・システムズ社から入手可能なCitrix Receiversと、フロリダ州のシトリックス・システムズ社から入手可能なウェブサイト用のCitrix Receiversとを挙げることができるが、これに限定されない。Citrix Receiversは、クライアントデバイスから離れたところにあるサーバによってホストされたアプリケーション及びフルデスクトップへのアクセスを要するクライアントソフトウェアを有する。この点に関して本解決手段は限定されない。
【0036】
クライアントコンピューティングデバイス104〜104はまた、内部に様々な情報を格納している。この情報として、アカウントレコード120〜120が挙げられるが、これに限定されない。クライアントコンピューティングデバイス104〜104は、イントラネットを介して互いに接続可能であり、インターネットを介して外部デバイスに接続可能である。イントラネット及びインターネットは、ネットワーク106として図1に示されている。
【0037】
外部デバイスは、クラウドサービスプロバイダ設備142に設置された1つ以上のクラウドサービスサーバ108を有する。クラウドサービスプロバイダ設備142は、クラウドサービスプロバイダの1つ以上の建物を備えている。サーバ108は、接続損失によって中断されることなく、アプリケーション及び仮想デスクトップへのアクセスを促進するように構成される。よって、サーバ108は、様々なソフトウェアアプリケーションをインストールしており、これらを実行する。ソフトウェアアプリケーションとして、ストアフロント122及びデスクトップデリバリコントローラ(DDC)124が挙げられるが、これに限定されない。ストアフロント及びDDCは周知技術であるため、ここでの説明は省略する。ここでは、任意の知られた又は知られ得るストアフロント及び/又はDDCを採用することができる。サーバ108は、さらに、発行情報160が格納されたデータストア110にアクセスするように構成され、データストア110から/への読み書きも可能である。発行情報160として、ソフトウェアアプリケーション、コード、メディアコンテンツ(例えば、テキスト、画像、映像など)、及び/又は透かし関連情報が挙げられるが、これに限定されない。
【0038】
クラウドサービスサーバ108はまた、GE126を備える。GEは周知技術であるため、ここでの詳細な説明は省略する。ここでは、任意の知られた又は知られ得るGEを、限定することなく用いることができる。例えば、GE126は、米国特許第9,754,385号(385特許)に記載されたGEを備える。385特許の開示内容は参照により本明細書に組み込まれる。この場合、385特許のGEは、本解決手段を実施するために本明細書で記載された1つ以上の動作を実行するように修正される(例えば、クライアントコンピューティングデバイスに対し、少なくとも1つの透かしを画面に表示させるようにする。)。
【0039】
GE126は、概して、クライアントコンピューティングデバイス104〜104とクラウドサービスサーバ108との間に確立されたセッションの期間に、クライアントコンピューティングデバイス104〜104の表示画面にレンダリングされるクラウドサービスサーバ108の他の構成要素122及び124からのグラフィックス(例えば、アプリケーションウィンドウ、画像、アイコン、及び/又はその他のデスクトップ若しくはウィンドウの視覚的特徴)を受信するよう機能する。GE126は、受信したグラフィックスを解析し、クライアントコンピューティングデバイス104〜104にグラフィックス更新を報告する必要があるか否かを判断する。報告する必要がある場合、GE126は、透かし情報付きのグラフィックス更新メッセージを作成し、ネットワーク106を介してウェブレシーバ118〜118へ送信する。グラフィックス更新メッセージに応答して、ウェブレシーバ118〜118は、グラフィックス更新メッセージに含まれるコマンドに従って、更新されたグラフィックスを構築し、画面に表示する。
【0040】
従来のグラフィックス更新メッセージ300の図を図3に示す。図3に示すように、従来のグラフィックス更新メッセージ300は、複数のグラフィック更新コマンド302〜306とエンドオブフレーム(EOF)コマンド308とを有する。グラフィック更新コマンド302〜306として、画面上の第1位置に新たな画像を描画するためのコマンド、画面上の第2位置に新たなテキストを描画するためのコマンド、画面上の第3位置にローカルキャッシュからの画像を描画するためのコマンド、及び/又は、画面のある部分を画面の別の部分へコピーするためのコマンドを挙げることができるが、これらに限定されない。いったん、画面更新のためにコマンド列が作成されると、EOFコマンド308がコマンド列の末尾に挿入される。EOFコマンド308は、ウェブレシーバに対し、グラフィック更新コマンド302〜306に従って所定のフレームのメモリに構成された更新されたグラフィックスを画面表示するよう指示するために設けられている。
【0041】
図4を参照すると、GE126によって作成されたグラフィックス更新メッセージ400が示されている。グラフィックス更新メッセージ400は、従来のグラフィックス更新メッセージ300に含まれている情報に対して追加された情報を有している。この点に関し、グラフィックス更新メッセージ400は、複数のグラフィック更新コマンド402〜406とEOFコマンド414とを有することを理解されたい。これらのコマンド402〜406、414は、従来のグラフィックス更新メッセージ300のコマンド302〜306、308と同一又は類似である。グラフィックス更新メッセージ400は、これらのコマンド402〜406、414に加えて、少なくとも1つの透かしベースのグラフィック更新コマンド408〜412を有している。透かしベースのグラフィック更新コマンド408〜412は、グラフィックのどの画素が透かしを有するべきなのか、及びこれらの画素に対する再計算されたカラー値を示す情報を含むが、これに限定されない。本解決手段は、この情報を画素の2次元配列(ビットマップ)としてコンパイルする。これらの画素は、透かしが現れない元の入力画像のカラー値、及び透かしが現れる再計算されたカラー値のものである。これらの追加の透かしベースのグラフィックス更新(オーバーレイ)を、従来のグラフィックス更新コマンドとして、フレームのグラフィックス更新メッセージに挿入することができ、これにより、エンドポイントが認識しない新たなコマンドは導入されない。
【0042】
図5を参照すると、透かし500の5つの可視インスタンスを有するデスクトップ画面の表示例の図が示されている。本解決手段は、図5の具体例に限定されない。例えば、任意の数の可視透かしインスタンスを、画面に表示された1つ以上のグラフィックスに設けることができる。また、透かしは、所定のアプリケーションに従って選択された任意の情報を含めることができる。例えば、各顧客(又は会社)は、種々のコンテンツ、テキスト又はその他のものを指定し、それぞれの透かしに含めるようにしてもよい。
【0043】
図2を参照すると、コンピューティングデバイス200の例示的なアーキテクチャの図が示されている。図1のコンピューティングデバイス104〜104及びサーバ108は、コンピューティングデバイス200と同一又は類似である。したがって、コンピューティングデバイス200の説明は、システム100のこれらの構成要素を理解するのに十分である。
【0044】
いくつかのシナリオにおいて、本解決手段は、クライアント−サーバアーキテクチャで用いられる。その結果、図2に示されたコンピューティングデバイスアーキテクチャは、クライアントコンピューティングデバイス及びサーバの詳細を理解するのに十分である。
【0045】
コンピューティングデバイス200の構成要素は、図2に示された構成要素よりも多くても少なくてもよい。しかしながら、図示されている構成要素は、本解決手段を実施する例示的な解決手段を開示するのに十分である。図2のハードウェアアーキテクチャは、本明細書に記載されているように、グラフィックスの透かしを可能とするように構成された代表的なコンピューティングデバイスの一実装例を表す。したがって、図2のコンピューティングデバイス200は、本明細書に記載された方法の少なくとも一部を実施する。
【0046】
コンピューティングデバイス200の一部又は全ての構成要素は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアとの組み合わせとして実現することができる。ハードウェアは1つ以上の電子回路を含むが、これに限定されない。電子回路として、受動素子(例えば、抵抗器及びコンデンサ)及び/又は能動素子(例えば、増幅器及び/又はマイクロプロセッサ)を挙げることができるが、これらに限定されない。受動素子及び/又は能動素子は、本明細書に記載された方法、手順、又は機能のうちの1つ以上を実行するように構成され、配置され、及び/又はプログラムされ得る。
【0047】
図2に示すように、コンピューティングデバイス200は、ユーザインターフェイス202と、中央処理装置(CPU)206と、システムバス210と、システムバス210を介してコンピューティングデバイス200の他の部分に接続されてアクセス可能なメモリ212と、システムバス210に接続されたハードウェアエンティティ214とを備える。ユーザインターフェイスには、入力デバイス及び出力デバイスを設けることができ、コンピューティングデバイス200の動作を制御するためのユーザ−ソフトウェア相互作用を促す。入力デバイスとして、物理及び/又はタッチキーボード250が挙げられるが、これらに限定されない。入力デバイスは、有線接続又は無線接続(例えば、Bluetooth(登録商標)接続)を介してコンピューティングデバイス200に接続され得る。出力デバイスとして、スピーカー252、ディスプレイ254、及び/又は発光ダイオード256が挙げられるが、これらに限定されない。
【0048】
ハードウェアエンティティ214の少なくとも一部は、メモリ212へのアクセス及び使用を伴うアクションを実行する。メモリ212として、Random Access Memory(RAM)、ディスクドライバ及び/又はCompact Disc Read Only Memory(CD-ROM)が採用され得る。ハードウェアエンティティ214は、コンピュータ読み取り可能な記憶媒体218を有するディスクドライブユニット216を備えることができる。コンピュータ読み取り可能な記憶媒体218には、本明細書に記載された方法、手順、又は機能のうちの1つ以上を実行する1組以上の命令220(例えば、ソフトウェアコード)が格納されている。命令220は、コンピューティングデバイス200によるCPU206の実行中にCPU206内に及び/又はメモリ212内に、完全に又は少なくとも部分的に常駐することもできる。メモリ212及びCPU206は、機械読み取り可能な媒体を構成することもできる。ここで「機械読み取り可能な媒体」とは、1組以上の命令220を格納する単一の媒体又は複数の媒体(例えば、集中型若しくは分散型データベース、及び/又は関連するキャッシュ及びサーバ)を指す。また、「機械読み取り可能な媒体」は、コンピューティングデバイス200による実行のための命令220の組を格納、符号化、又は搬送することができ、且つ、コンピューティングデバイス200に本開示の方法のいずれか1つ以上を実行させる任意の媒体も指している。
【0049】
図6を参照すると、リモートセッションにおける可視透かしを提供する例示的な方法00のフロー図が示されている。方法00は、02で始まり、続いて04において、ウェブブラウザ(例えば、図1のウェブブラウザ116、…、又は116)が立ち上がる。ウェブブラウザは、クライアントコンピューティングデバイス(例えば、図1のクライアントコンピューティングデバイス104、…、又は104)にインストールされている。そして、606で、リモートサーバ(例えば、図1のクラウドサービスサーバ108)によって提供されたウェブサービスにアクセスするためにブラウザタブを開く。次に、608で、デバイス識別子及び少なくとも1つの画面サイズを、クライアントコンピューティングデバイスからリモートサーバへ送信する。リモートサーバがこの情報を受信したことに応答して、610に示すように、リモートサーバのGE(例えば、図1のGE126)を初期化する。
【0050】
このとき、リモートサーバは、動作612〜622を実行して、少なくとも1つの透かしビットマップを生成する。612では、GEによって、デバイス識別子を用いてデータストア(例えば、図1のデータストア110)から予め定義された透かしパラメータ情報を読み出す。透かしパラメータ情報として、透かしのコンテンツ(例えば、アイコン、テキスト又はその他の記号)を指定する情報、全画面サイズ透かし画像に含まれる透かしインスタンスの数を指定する情報、及び/又は、全画面サイズ透かし画像内の透かしインスタンスの相対的位置を指定する情報を挙げることができるが、これらに限定されない。614において、画面サイズ及び読み出された予め定義された透かしパラメータ情報は、GEからリモートサーバの透かしジェネレータ(例えば、図1の透かしジェネレータ128)へ送信される。そして、透かしジェネレータは、616において、画面サイズ及び予め定義された透かしパラメータ情報に従って、少なくとも1つの全画面サイズ透かし画像(例えば、白色背景又は黒色背景に少なくとも1つの透かしインスタンス)を生成する動作を実行する。
【0051】
図7に、例示的な全画面サイズ透かし画像700の図を示す。全画面サイズ透かし画像700は、以下の透かしの4つのインスタンスを有する。
mdadmin@BMWIN7X64
21:43:41 30/08/2017
透かしインスタンスは、画像700内の異なる箇所に位置している。画像700はまた、白色背景を有する。本解決手段は、当該図の具体例に限定されない。例えば、全画面サイズ透かし画像には、任意の数の透かしインスタンスを含めることができる。また、透かしは、特定のアプリケーションに従って選択された任意のコンテンツを含めることができる。
【0052】
次の618において、全画面サイズ透かし画像は、透かしジェネレータからGEへ送信される。そして、GEは、620において、全画面サイズ透かし画像のどこに透かしインスタンスが存在するかを判断する動作を実行する。いくつかのシナリオにおいて、この判断は、各全画面サイズ透かし画像を複数の同一サイズのブロックに分割することによってなされる。図8に、例示的な分割透かし画像800の図を示す。分割透かし画像800は複数のブロック802からなる。各ブロック802のサイズはX画素×X画素である。ここで、Xは整数(例えば、16)である。次いで、分割透かし画像800を解析して、どのブロック802が透かしインスタンスの一部を含んでいるのかを特定する。そして、特定されたブロックにマークを付ける。ここでは、マーク付きブロックを参照符号804で表し、マークなしブロックを参照符号806で表す。次に、GEは、統合ブロック1002を有するマーク付き分割透かし画像1000を生成する動作を実行する。各統合ブロック1002は、通常、複数の隣接するマーク付きブロック804によって定義された長方形であるため、正方形のブロック804よりも大きいブロックを構成する。この点に関して本解決手段は限定されない。統合ブロック1002は長方形以外の形をとってもよい。
【0053】
そして、622において透かしビットマップを生成する。透かしビットマップは、統合ブロック1002の特色を用いて生成することができる。図11に、例示的な透かしビットマップ1100の図を示す。透かしビットマップ1100は、各統合ブロック1002に含まれる各画素のビット値を指定する情報を含むテーブルを含めることができるが、これに限定されない。画素値0は、オーバーレイされた透かしの結果として画素のカラー値が変化しなかったことを意味する。画素値1は、オーバーレイされた透かしの結果として画素のカラー値が変化したことを意味する。本解決手段は、このシナリオの具体例に限定されない。
【0054】
再度図6Aを参照すると、624において、クライアントコンピューティングデバイスとリモートサーバとの間のセッションを確立する。セッションを確立する手法は周知技術であるため、ここでの説明は省略する。ここでは、任意の知られた又は知られ得るセッション確立手法を、限定することなく用いることができる。
【0055】
セッションの期間中、GEはリモートサーバの他の構成要素(例えば、グラフィックスカードドライバ)からグラフィックスを受け取る。628において、GEは、グラフィックスを解析して、少なくとも1つのグラフィックの更新をクライアントコンピューティングデバイスに伝達する必要があるか否かを判断する動作を実行する。伝達する必要があれば、方法600は図6Bの630に移行する。
【0056】
図6Bに示すように、630では、GEによって、第1グラフィックス更新メッセージ(例えば、図3のグラフィックス更新メッセージ300)を作成する。第1グラフィックス更新メッセージは、グラフィックを更新するための第1コマンド列(例えば、図3のコマンド302〜306)とEOFコマンド(例えば、図3のEOFコマンド308)とを有する。第1コマンド列として、画面上の第1位置に新たな画像を描画するためのコマンド、画面上の第2位置に新たなテキストを描画するためのコマンド、画面上の第3位置にローカルキャッシュからの画像を描画するためのコマンド、及び/又は、画面のある部分を画面の別の部分へコピーするためのコマンドを挙げることができるが、これらに限定されない。
【0057】
次に、632において、GEは、透かしビットマップを用いて、オーバーレイされた場合に透かしの影響を受けるグラフィックの画素があるか否かを判断する。この判断は、画面上の統合ブロック1002の位置に表示されるグラフィックの部分を特定することによって行うことができる。実際に部分が特定された場合、オーバーレイされた透かしの影響を受けるグラフィックの画素があると判断する。部分が特定されなかった場合、オーバーレイされた透かしの影響を受けるグラフィックの画素がないと判断する。
【0058】
グラフィックの1つ以上の画素がオーバーレイされた透かしの影響を受けない場合[634:NO]、方法600は636に移行し、第1グラフィックス更新メッセージをリモートサーバのGEからクライアントコンピューティングデバイスのウェブレシーバ(例えば、図1のウェブレシーバ118、…、118)へ送信する。そして、ウェブレシーバは、638において、第1グラフィックス更新メッセージに含まれる第1コマンド列に従って、所定のフレームのメモリ(例えば、図2のメモリ212)に更新されたグラフィックを構成する動作を実行する。更新されたグラフィックをメモリに構成する手法は周知技術であるため、ここでの説明は省略する。ここでは、更新されたグラフィックをメモリに構成するための任意の知られた又は知られ得る手法を、限定することなく用いることができる。そして、640に示すように、第1グラフィックス更新メッセージに含まれるEOFコマンドに応答して、ウェブレシーバによって、更新されたグラフィックを画面に表示する。次いで、方法600を終了するか又は他の処理を実行する642を行う。
【0059】
グラフィックの1つ以上の画素がオーバーレイされた透かしの影響を受ける場合[634:YES]、方法600は図6の644に移行し、GEによって、透かしビットマップを用いて、オーバーレイされた場合に透かしの影響を受けるグラフィックの画素を特定する。GEは、(a)マーク付き分割全画面透かし画像の統合ブロックの位置と、(b)グラフィックが表示されるフルサイズ画面上の位置とを認識しているので、1つ以上の統合ブロックの画素と同じ位置にあるグラフィックの画素を特定することができる。646に示すように、644で特定された画素について新たなカラー値を計算する。各カラー値は、Red、Green及びBlue(RGB)値によって定義される。この計算において、グラフィック画素のRGBカラー値とそれぞれの透かし画素のRGBカラー値とを組み合わせてもよい。
【0060】
次の648において、GEは、646で計算された新たなカラー値に従って、特定された画素を修正するための第2コマンド列(例えば、図4のコマンド408、…、412)を作成する動作を実行する。第2コマンド列は、グラフィックのどの画素が透かしを有するべきなのか、及びこれらの画素に対する再計算されたカラー値を示す情報を含むが、これに限定されない。
【0061】
そして、650では、第2コマンド列を用いて第2グラフィックス更新メッセージ(例えば、図4のグラフィックス更新メッセージ400)を作成する。第2グラフィックス更新メッセージは、第1グラフィックス更新メッセージの第1コマンド列とEOFコマンドとの間に第2コマンド列を挿入することによって作成される。652において、第2グラフィックス更新メッセージをGEからウェブレシーバへ送信する。
【0062】
ウェブレシーバでは、654に示すように、第2グラフィックス更新メッセージに含まれる第1コマンド列に従って、所定のフレームのメモリに更新されたグラフィックを構成する。そして、656に示すように、ウェブレシーバは、第2グラフィックス更新メッセージに含まれる第2コマンド列に従って、構成された更新されたグラフィックを修正することで透かしを含めるようにする。658では、第2グラフィックス更新メッセージに含まれるEOFコマンドに応答して、透かし付の構成された更新されたグラフィックを画面に表示する。次いで、方法600を終了するか又は他の処理を実行する660を行う。
【0063】
本解決手段を1つ以上の実施に関して図示及び説明したが、本明細書及び添付図面を読んで理解すると、同等の変更及び変形例が当業者に想到されるであろう。さらに、本解決手段の特定の特徴は、いくつかの実施のうちの1つのみに関して開示されている可能性があるが、そのような特徴は、任意の又は特定の用途にとって望ましく有利であるように他の実施の1つ以上の他の特徴と組み合わせることができる。したがって、本解決手段の広さ及び範囲は、上述の実施形態のいずれによっても限定されるべきではない。むしろ、本解決手段の範囲は、添付の特許請求の範囲及びそれらの均等物に従って定義されるべきである。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図7
図8
図9
図10
図11