IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特表2022-506846ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード
<>
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図1
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図2
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図3
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図4
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図5
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図6
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図7
  • 特表-ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-17
(54)【発明の名称】ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上へのアプリケーションのプリロード
(51)【国際特許分類】
   G06F 15/00 20060101AFI20220107BHJP
   G06F 13/00 20060101ALI20220107BHJP
【FI】
G06F15/00 470
G06F13/00 620
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021524458
(86)(22)【出願日】2019-10-23
(85)【翻訳文提出日】2021-06-29
(86)【国際出願番号】 US2019057633
(87)【国際公開番号】W WO2020096776
(87)【国際公開日】2020-05-14
(31)【優先権主張番号】16/182,734
(32)【優先日】2018-11-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
(71)【出願人】
【識別番号】397074301
【氏名又は名称】サイトリックス システムズ,インコーポレイテッド
(74)【代理人】
【識別番号】110002310
【氏名又は名称】特許業務法人あい特許事務所
(72)【発明者】
【氏名】ムーア,ティモシー
【テーマコード(参考)】
5B084
【Fターム(参考)】
5B084AA01
5B084AA02
5B084AA12
5B084AB02
5B084AB07
5B084AB11
5B084BB01
(57)【要約】
【課題】ユーザデバイスによるコンテンツの受信を検出し、このコンテンツを分析して、このコンテンツ内に、特定のアプリケーションに関連し、それをユーザデバイスにプリロードするために使用できる情報があるかどうかを決定する方法および装置を提供する。
【解決手段】電子メール、テキストメッセージ、ビデオ画像などのコンテンツを受信すると、このコンテンツが1つ以上の基準を満たすかどうかを決定し、コンテンツを開くという決定を行う。コンテンが開かれた場合、このコンテンツを分析して、データベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に前記コンテンツが一致するかどうかを決定する。ここで各データエントリはアプリケーションタイプおよびこのアプリケーションタイプに関連するデータを含む。コンテンツがアプリケーションタイプに関連する情報を含むならば、ユーザインタフェース要素をディスプレイ上に提供し、それにより、ユーザが、複数のデータエントリのうちの1つに関連するアプリケーションタイプを、ディスプレイ上のユーザ操作を介して開くことを可能にする。
【選択図】図8
【特許請求の範囲】
【請求項1】
方法であって、
コンテンツがユーザデバイスによって受信されたと決定すること、
前記コンテンツが1つ以上の基準を満たすかどうかを決定すること、
前記コンテンツが前記ユーザデバイス上で開かれたと決定すること、
前記コンテンが前記少なくとも1つ以上の基準を満たし、前記ユーザデバイス上で開かれたときに、前記コンテンツを分析し、前記コンテンツがデータベースに格納されている複数のデータエントリのうちの少なくとも1つに含まれる情報に一致するかどうかを決定することであって、各データエントリはアプリケーションタイプおよび前記アプリケーションタイプに関連するデータを含む、前記決定すること、ならびに、
前記コンテンツが前記データベースに格納されている前記複数のデータエントリのうちの少なくとも1つに含まれる前記情報に一致すると決定することに応答して、ユーザインタフェース要素を前記ユーザデバイスのディスプレイ上に提供することであって、前記ユーザインタフェース要素は、前記ユーザが、前記複数のデータエントリのうちの前記少なくとも1つに関連する前記アプリケーションタイプを、前記ユーザデバイスの前記ディスプレイ上にユーザによって行われる操作を介して開くことを可能にする、前記提供すること、
を含む、方法。
【請求項2】
前記データベースは、キーワードデータベースを含み、前記分析することは、前記コンテンツが、前記キーワードデータベースに格納される複数のキーワードのうちの1つに一致するキーワードを含むかどうかを決定することを含む、請求項1に記載の方法。
【請求項3】
前記ユーザデバイスは、別のデバイスに格納されている前記アプリケーションタイプに対応するアプリケーションに、前記ユーザデバイスと前記別のデバイスとの間のネットワーク接続を介してアクセスし、
前記アプリケーションは、前記アプリケーションが前記ユーザデバイスに格納されることなく、前記ユーザデバイスの前記ユーザによって実行されることができ、
前記ユーザデバイスは、仮想マシンとして動作する、請求項1に記載の方法。
【請求項4】
前記コンテンツは、電子メール、テキストメッセージ、およびビデオ画像のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項5】
前記ユーザインタフェース要素は、前記ディスプレイ上に表示されるアイコンか、前記ディスプレイ上に表示されるネットワークアドレスへのリンクかいずれかを含む、請求項1に記載の方法。
【請求項6】
前記ユーザデバイスの前記ディスプレイ上に提供される前記ユーザインタフェース要素を介して前記アプリケーションタイプの前記ユーザによる選択時に、前記仮想マシンに格納される前記アプリケーションタイプに対応する前記アプリケーションは、前記ユーザデバイスに提供される、請求項3に記載の方法。
【請求項7】
前記ユーザデバイスの前記ディスプレイ上で前記ユーザによって実行される前記操作は、前記アプリケーションタイプに対応する前記アプリケーションによるドキュメントの作成を引き起こし、前記ドキュメンは前記ユーザデバイスに格納することができ、
前記アプリケーションタイプに対応する前記アプリケーションは、前記ユーザデバイスに格納することができない、請求項1に記載の方法。
【請求項8】
前記リンクまたは前記アイコンは、前記ディスプレイの所定の領域のアプリケーションクイック起動領域に提供される、請求項5に記載の方法。
【請求項9】
前記コンテンツが前記少なくとも1つの基準を満たすかどうかを決定することは、
前記コンテンツが前記少なくとも1つ以上の基準を満たすと決定することに応答して、前記ユーザデバイスの前記ユーザによる前記コンテンツへのアクセスを可能にすること、および
前記コンテンツが前記少なくとも1つ以上の基準を満たしていないと決定することに応答して、前記ユーザデバイスの前記ユーザによる前記コンテンツへの前記アクセスを無効にすること、
を含む、請求項1に記載の方法。
【請求項10】
前記コンテンツは電子メールを含み、
前記少なくとも1つ以上の基準は、
前記電子メールの送信者が前記ユーザデバイスによってアクセス可能な送信者データベースに格納される複数の許容可能な送信者のうちの1人に対応すること、および
前記電子メールが複数の許容不可能なドキュメントタイプのうちの1つに対応するドキュメントタイプを有する添付ファイルを含むこと、
を含む、請求項1に記載の方法。
【請求項11】
第2のデバイスへのネットワーク接続を介して前記ユーザデバイスによってアクセス可能な複数のアプリケーションタイプを決定すること、
前記ユーザデバイスに提供されるユーザインタフェースを介して、前記ユーザデバイスによってアクセス可能な前記複数のアプリケーションタイプのそれぞれについて少なくとも1つのキーワードを受信すること、および
前記キーワードおよび前記複数のアプリケーションタイプを前記キーワードデータベース内の別個のデータエントリとして関連付けることにより、前記キーワードデータベースを作成すること、
をさらに含む、請求項2に記載の方法。
【請求項12】
1つ以上のプロセッサ、および命令を格納するメモリ、
を含む、装置であって、
前記命令は前記1つ以上のプロセッサによって実行されると、前記装置に、
コンテンツが前記装置によって受信されたと決定すること、
前記コンテンツが少なくとも1つ以上の基準を満たすかどうかを決定すること、
前記コンテンツが前記装置上で開かれたと決定すること、
前記コンテンが前記少なくとも1つ以上の基準を満たし、前記装置上で開かれたときに、前記コンテンツを分析して、前記コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に一致するかどうかを決定することであって、各データエントリはアプリケーションタイプおよび前記アプリケーションタイプに関連するデータを含む、前記決定すること、ならびに、
前記コンテンツが前記データベースに格納される前記複数のデータエントリのうちの前記少なくとも1つに一致すると決定することに応答して、ユーザインタフェース要素を前記装置のディスプレイ上に提供することであって、前記ユーザインタフェース要素は前記複数のデータエントリのうちの前記1つに関連する前記アプリケーションタイプを、前記装置の前記ディスプレイ上にユーザによって行われる操作を介して前記ユーザが開くことを可能にする、前記提供すること、
を行わせる、
前記装置。
【請求項13】
前記データベースは、キーワードデータベースを含み、前記コンテンツを分析することは、前記コンテンツが前記キーワードデータベースに格納される複数のキーワードのうちの1つに一致するキーワードを含むかどうかを決定する、請求項12に記載の装置。
【請求項14】
前記装置は、前記装置と別の装置との間のネットワーク接続を介して前記別の装置に格納される前記アプリケーションタイプに対応するアプリケーションにアクセスし、
前記アプリケーションが前記装置に格納されることなく、前記アプリケーションは、前記装置のユーザによって実行することができ、
前記装置は、仮想マシンとして動作する、請求項12に記載の装置。
【請求項15】
前記コンテンツは、電子メール、テキストメッセージ、およびビデオ画像のうちの少なくとも1つを含む、請求項12に記載の装置。
【請求項16】
前記装置の前記ディスプレイ上に提供される前記ユーザインタフェース要素を介した前記アプリケーションタイプの前記ユーザによる選択時に、前記別の装置に格納される前記アプリケーションタイプに対応する前記アプリケーションは、前記装置に提供される、請求項14に記載の装置。
【請求項17】
前記ユーザインタフェース要素は、前記ディスプレイの所定の位置のアプリケーションクイック起動領域上に提供されるリンクまたはアイコンのうちの1つを含む、請求項12に記載の装置。
【請求項18】
前記命令は、前記1つ以上のプロセッサによって実行されると、前記装置にさらに、
前記別の装置へのネットワーク接続を介して前記装置によってアクセス可能な複数のアプリケーションタイプを決定すること、
前記装置に提供されるユーザインタフェースを介して、前記装置によってアクセス可能な前記複数のアプリケーションタイプのそれぞれについて少なくとも1つのキーワードを受信すること、ならびに
前記キーワードおよび前記複数のアプリケーションタイプを前記データベース内の別個のエントリとして関連付けることにより、前記データベースを作成すること、
を行わせる、
請求項14に記載の装置。
【請求項19】
前記コンテンツは電子メールを含み、
前記少なくとも1つ以上の基準は、
前記電子メールの送信者が前記装置によってアクセス可能な送信者データベースに格納される複数の許容可能な送信者のうちの1人に対応すること、および
前記電子メールが複数の許容不可能なドキュメントタイプのうちの1つに対応するドキュメントタイプを有する添付ファイルを含まないこと、
を含む、請求項12に記載の装置。
【請求項20】
第1の装置、および第2の装置を含む、システムであって、
前記第1の装置は、
1つ以上のプロセッサ、および命令を格納するメモリ、を含み、
前記命令は、前記1つ以上のプロセッサによって実行されると、前記第1の装置に、
コンテンツが前記第1の装置によって受信されたと決定すること、
前記コンテンツが少なくとも1つ以上の基準を満たすかどうかを決定すること、
前記コンテンツが前記第1の装置上で開かれたと決定すること、
前記コンテンが前記少なくとも1つ以上の基準を満たし、前記第1の装置上で開かれたときに、前記コンテンツを分析して、前記コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に一致するかどうかを決定することであって、各データエントリはアプリケーションタイプおよび前記アプリケーションタイプに関連するデータを含む、前記決定すること、ならびに、
前記コンテンツが前記データベースに格納される前記複数のデータエントリのうちの少なくとも1つに一致すると決定することに応答して、ユーザインタフェース要素を前記第1の装置のディスプレイ上に提供することであって、前記ユーザインタフェース要素は前記複数のデータエントリのうちの前記少なくとも1つに関連する前記アプリケーションタイプを、前記第1の装置の前記ディスプレイ上でユーザによって行われる操作を介して、前記ユーザが開くことを可能にする、前記提供すること、
を行わせ、
前記複数のデータエントリのうちの前記少なくとも1つに関連する前記アプリケーションタイプに対応する前記アプリケーションは、前記第2の装置に格納される前記アプリケーションを実行する仮想マシンとして動作する前記第1の装置によってアクセス可能である、
前記システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載される発明の態様は、一般に、コンピュータのハードウェアおよびソフトウェアに関する。特に、本発明の1つ以上の態様は、一般に、ユーザデバイスが受信するコンテンツに基づいたユーザデバイス上のアプリケーションのプリロードに関する。
【背景技術】
【0002】
調査によると、働く人が、自分の会社の施設だけで働くのではなく、少なくとも1週間に1日は自宅で働く割合が高くなっていることが示されている。これは、より長い通勤時間、会社の施設での限られたオフィススペース、および向上したテクノロジー機能(例えば、向上した仮想化システム、高速なインターネット)などを含む、さまざまな理由による。
【0003】
自宅での仕事の経験を自分の会社の施設のワークスペースでの仕事の経験にできるだけ近づけさせる1つの方法は、「仮想化」の使用である。仮想化は、ユーザが通常仕事をしている会社の施設で自分の仕事用コンピュータを操作するときにユーザがアクセスできるのと同じファイルおよびアプリケーションに、ユーザの自宅のコンピュータがアクセスできる方法である。
【0004】
フロリダ州フォートローダーデールのCitrix Systems社(以降「Citrix」または「Citrix Systems社」と称される)は、自宅で、またはいつも働いている会社の施設のワークスペースから離れた場所で、働く人のために仮想コンピュータ環境を確立するいくつかの製品を提供する。ユーザが自宅から効率的に作業することを可能にするそのようなCitrix製品の1つは、XenDesktopであり、これは、ユーザが自宅のコンピュータ、デスクトップまたはスマートフォンにインストールすることができるアプリケーションであり、ユーザが自分の会社の施設のワークスペースのコンピュータにアクセスすることができるアプリケーションおよびファイルのすべてに、ユーザがアクセスすることを可能にする。
【0005】
ユーザがユーザの自宅デバイスでアクセスすることができるアプリケーションは、例えば、データセンターまたは他の安全なコンピュータの場所にあるコンピュータに格納され、それによりユーザは、これらのアプリケーションをユーザの自宅デバイスに物理的に格納しなくても、これらのアプリケーションにアクセスできる。そのため、ユーザの自宅デバイスは、仮想マシンとして動作し、ユーザの会社の施設のワークスペースにあるユーザのコンピュータのルックアンドフィールを模倣する。
【0006】
ユーザが自宅から効率的に作業することを可能にする、もう1つのそのようなCitrix製品は、XenMobileである。これは、ユーザが自分のスマートフォンまたはタブレットコンピュータにインストールすることができるアプリケーションであり、ユーザが働く会社の情報技術(IT)管理者によるユーザのスマートフォンまたはタブレットコンピュータのモバイルデバイス管理(MDM)およびモバイルアプリケーション管理(MDM)を提供する。
【0007】
例えば、ユーザが自分のスマートフォンを紛失したり盗まれたりした場合、XenMobileアプリケーションは、自分のスマートフォンが見当たらなくなったとユーザが通知すると、ユーザのスマートフォン上の会社関連の情報のすべてを消去することにより、紛失した、または盗難にあったスマートフォンに格納されている可能性のある、あらゆる会社の機密情報を保護することができる。
【0008】
ユーザが自宅から効率的に作業することを可能にするさらなるCitrix製品は、Citrix Cloudである。これは、ユーザが自宅のコンピュータメモリとは別に情報を格納することができる方法を提供する。その情報は「クラウド」に格納される。このクラウドは、インターネットを介して、ワイドエリアネットワーク(WAN)を介して、またはローカルエリアネットワーク(LAN)を介してアクセス可能な安全なデータセンターにあるメモリであることができる。
【0009】
クラウドへのアクセスとクラウドからのアクセスは、安全なネットワーク通信パスを介することができ、それにより、クラウドに安全に格納されているデータは、クラウドとユーザデバイスとの間で安全に転送される。換言すれば、Citrix Cloudを使用して、サービスとしての仮想化(VaaS)を有効にすることができる。
【0010】
ユーザが自宅の自分のデスクトップで作業しているとき、ユーザは、割り当てられたプロジェクトに関連する電子メールまたはテキストメッセージを受信することができる。
【0011】
ユーザが自宅から仕事をしているときに、ユーザが作業を実行するのを支援する方法を提供する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の態様は、ユーザデバイスによるコンテンツの受信を検出し、このコンテンツを分析して、このコンテンツ内に、アプリケーションに関連し、それをユーザデバイスにプリロードするために使用できる情報があるかどうかを決定する方法および装置を提供するさまざまなシステムおよび技法に関連する。
【課題を解決するための手段】
【0013】
本発明の少なくとも1つの態様は、コンテンツがユーザデバイスによって受信されたことを決定することを含む方法を対象とする。この方法は、コンテンツが1つ以上の基準を満たすかどうかを決定することも含む。この方法は、コンテンツがユーザデバイス上で開かれたことを決定することをさらに含む。さらに、方法は、コンテンツが少なくとも1つ以上の基準を満たし、ユーザデバイス上で開かれたときに、コンテンツを分析し、コンテンツがデータベースに格納されている複数のデータエントリのうちの少なくとも1つに含まれる情報と一致するかどうかを決定することを含む。そこでは、各データエントリは、アプリケーションタイプ、およびこのアプリケーションタイプに関連するデータを含む。また、方法は、コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に一致すると決定することに応答して、ユーザインタフェース要素をユーザデバイスのディスプレイ上に提供し、このユーザインタフェース要素は、複数のデータエントリのうちの1つに関連するアプリケーションタイプを、ユーザデバイスのディスプレイ上でユーザによって行われる操作を介してユーザが開くことを可能にする。
【0014】
本発明の少なくとも1つの態様は、1つ以上のプロセッサを含む装置を対象とする。また、装置は、命令を格納するメモリを含み、これらの命令は、1つ以上のプロセッサによって実行されると、装置に、コンテンツが装置によって受信されたことを決定することを行わせる。また、命令は、装置に、コンテンツが少なくとも1つ以上の基準を満たすかどうかを決定することを行わせる。さらに、命令は、装置に、コンテンツが装置上で開かれたことを決定することを行わせる。さらに、コンテンツは、装置に、コンテンツが少なくとも1つ以上の基準を満たし、装置上で開かれたときに、コンテンツを分析し、コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に一致するかどうかを決定することを行わせる。そこでは、各データエントリは、アプリケーションタイプ、およびこのアプリケーションタイプに関連するデータを含む。
【0015】
また、命令は、装置に、コンテンツがデータベースに格納されている複数のデータエントリのうちの少なくとも1つに含まれる情報に一致すると決定することに応答して、ユーザインタフェース要素を装置のディスプレイ上に提供することを行わせる。このユーザインタフェース要素は、複数のデータエントリのうちの1つに関連するアプリケーションタイプを、装置のディスプレイ上でユーザによって行われる操作を介してユーザが開くことを可能にする。
【0016】
他の少なくとも1つの態様は、第1の装置および第2の装置を含むシステムを対象とする。第1の装置は、1つ以上のプロセッサを含む。また、第1の装置は、命令を格納するメモリを含み、これらの命令は、1つ以上のプロセッサによって実行されると、第1の装置に、コンテンツが第1の装置によって受信されたことを決定することを行わせる。さらに、命令は、第1の装置に、コンテンツが少なくとも1つ以上の基準を満たすかどうかを決定することを行わせる。さらに、命令は、第1の装置に、コンテンツが第1の装置上で開かれたことを決定することを行わせる。また、装置は、第1の装置に、コンテンツが少なくとも1つ以上の基準を満たし、第1の装置上で開かれたときに、コンテンツを分析し、コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに含まれる情報に一致するかどうかを決定することを行わせる。そこでは、各データエントリは、アプリケーションタイプ、およびそのアプリケーションタイプに関連するデータを含む。
【0017】
また、命令は、第1の装置に、コンテンツがデータベースに格納される複数のデータエントリのうちの少なくとも1つに一致すると決定させることに応答して、ユーザインタフェース要素を第1の装置のディスプレイ上に提供することを行わせる。このユーザインタフェース要素は、複数のデータエントリのうちの1つに関連するアプリケーションタイプを、第1の装置のディスプレイ上でユーザによって行われる操作を介してユーザが開くことを可能にする。複数のデータエントリのうちの少なくとも1つに関連するアプリケーションタイプに対応するアプリケーションに、第2の装置に格納されているアプリケーションを実行する仮想マシンとして動作する第1の装置がアクセス可能である。
【0018】
これらの機能は、多くの他の機能とともに、以下でより詳細に説明される。
【0019】
本開示は、例として例示されており、添付の図面に限定されるものではない。添付の図面では、同様の参照番号は同様の要素を示す。
【図面の簡単な説明】
【0020】
図1】本明細書に説明される1つ以上の例示的な態様に従って使用されることができる例示的なコンピュータシステムアーキテクチャを示す。
図2】本明細書に説明される1つ以上の例示的な態様に従って使用されることができる例示的なリモートアクセスシステムアーキテクチャを示す。
図3】本明細書に説明される1つ以上の例示的な態様に従って使用されることができる例示的な仮想化(ハイパーバイザ)システムアーキテクチャを示す。
図4】本明細書に説明される1つ以上の例示的な態様に従って使用されることができる例示的なクラウドベースのシステムアーキテクチャを示す。
図5】本明細書に説明される1つ以上の例示的な態様による、仮想化環境で受信した電子メールに対応するコンテンツから分析される情報に基づいて、アプリケーションをユーザデバイスにプリロードする方法を示す流れ図を描く。
図6】本明細書に説明される1つ以上の例示的な態様による、アプリケーションフィールドおよびキーワードフィールドをそれぞれ有するエントリを含むユーザアプリケーションライブラリを示す。
図7】本明細書に説明される1つ以上の例示的な態様による、非仮想化環境で受信した電子メールに対応するコンテンツから分析される情報に基づいて、アプリケーションをユーザデバイスにプリロードするもう1つの方法を示す流れ図を描く。
図8】本明細書に説明される1つ以上の例示的な態様による、受信した電子メールに対応するコンテンツから分析される情報に基づいて、アプリケーションをユーザデバイスにプリロードするためのネットワーク要素を示す。
【発明を実施するための形態】
【0021】
さまざまな実施の形態での以下の説明では、上記で特定され、本明細書の一部を形成する添付図面が参照される。添付図面では、本明細書で説明される態様を実施することができるさまざまな実施の形態を例として示している。本明細書で説明される範囲を逸脱することなく、他の実施の形態が利用されてもよく、構造的および機能的な修正が行われてもよいことを理解されたい。さまざまな態様は、他の実施の形態を行うことができ、さまざまな異なる方法で実践または実行が可能である。
【0022】
以下でより詳細に説明される発明の主題の一般的な紹介として、本明細書で説明される態様は、ユーザデバイスによるコンテンツの受信を検出することを対象とし、コンテンツを分析して、このコンテンツ内に、アプリケーションに関連し、それをユーザデバイスにプリロードするために使用できる情報があるかどうかを決定するためのものである。
【0023】
本明細書で使用されている表現および用語は、説明を目的としており、限定的なものと見なすべきでないことも理解されたい。むしろ、本明細書で使用される語句および用語は、それらの最も広い解釈および意味を与えられるべきである。「including(含む)」、「comprising(含む)」、およびこれらの変形の使用は、その後に列挙される項目およびそれらの等価物、並びに、追加の項目およびそれらの等価物を包含することを意味する。「取り付けられた」、「接続された」、「結合された」、「配置された」、「係合された」という用語および同様の用語の使用は、直接的なおよび間接的な取り付け、接続、結合、配置、および係合の両方を含むことを意味する。
【0024】
コンピュータソフトウェア、ハードウェア、およびネットワークは、スタンドアロン、ネットワーク、リモートアクセス(リモートデスクトップの別名でも知られる)、仮想、および/または、クラウドベースの環境等を含む、さまざまな異なるシステム環境で利用されてよい。図1は、本明細書に記載する1つまたは複数の例示的な態様をスタンドアロンおよび/またはネットワーク環境で実施するために使用され得るシステムアーキテクチャおよびデータ処理デバイスの一例を示す。さまざまなネットワークノード103、105、107、および109は、インターネット等の広域ネットワーク(WAN)101を介して相互接続されてよい。プライベートイントラネット、企業ネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等、他のネットワークも追加または代替として使用されてよい。ネットワーク101は、例示を目的としたものであり、より少ないまたは追加のコンピュータネットワークで置き換えられてもよい。ローカルエリアネットワーク133は、任意の既知のLANトポロジの1つ以上を有してよく、イーサネット等のさまざまな異なるプロトコルの1つ以上を使用してよい。デバイス103、105、107、および109並びに他のデバイス(図示せず)は、ツイストペア線、同軸ケーブル、光ファイバ、電波、または他の通信媒体を介してネットワークの1つ以上に接続されてよい。
【0025】
本明細書で使用され、図面に示される「ネットワーク」という用語は、リモートストレージデバイスが1つ以上の通信パスを介して一緒に結合されるシステムだけでなく、ストレージ機能を持つそのようなシステムに時々結合され得るスタンドアロンデバイスも指す。したがって、「ネットワーク」という用語は、「物理ネットワーク」だけでなく、全ての物理ネットワークにわたって存在する(単一のエンティティに起因する)データから構成される「コンテンツネットワーク」も含む。
【0026】
コンポーネントは、データサーバ103、ウェブサーバ105、およびクライアントコンピュータ107、109を含むことができる。データサーバ103は、本明細書で説明される1つ以上の例示的な態様を実行するためのデータベースおよび制御ソフトウェアの全体的なアクセス、制御、および管理を提供する。
【0027】
データサーバ103は、ウェブサーバ105に接続されてよく、ウェブサーバ105を通じて、ユーザは要求に応じてデータと対話し、データを取得する。あるいは、データサーバ103は、それ自体がウェブサーバとして機能し、インターネットに直接接続されてもよい。データサーバ103は、ローカルエリアネットワーク133、広域ネットワーク101(例えば、インターネット)を介して、直接もしくは間接接続を介して、または他の何らかのネットワークを介して、ウェブサーバ105に接続されてよい。ユーザは、リモートコンピュータ107、109を使用して、例えば、ウェブブラウザを使用してウェブサーバ105によってホストされる1つ以上の外部に公開されたウェブサイトを介してデータサーバ103に接続して、データサーバ103と対話してよい。クライアントコンピュータ107、109は、データサーバ103に記憶されたデータにアクセスするためにデータサーバ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を含んでよい。
【0031】
入力/出力(I/O)119は、データまたはファイルの読み出し、書き込み、表示、および/または印刷のためのさまざまなインタフェースユニットおよびドライブを含んでよい。メモリ121は、データ処理デバイス103の動作全体を制御するためのオペレーティングシステムソフトウェア123と、本明細書に記載の態様を実施するようにデータサーバ103に指示するための制御ロジック125と、本明細書に記載の態様と共に使用してもよく、使用しない場合もある二次的な機能、サポート機能、および/または他の機能を提供する他のアプリケーションソフトウェア127と、をさらに記憶してもよい。
【0032】
制御ロジック125は、本明細書ではデータサーバソフトウェア125と呼ぶこともある。データサーバソフトウェア125の機能は、制御ロジック125内にコード化されたルールに基づいて自動的に行われる動作もしくは判定、ユーザがシステムに入力を提供することによって手動で行われる動作もしくは判定、および/またはユーザ入力に基づく自動処理(例えば、クエリ、データ更新等)の組み合わせを指す場合がある。
【0033】
メモリ121は、第1のデータベースDB1および第2のデータベースDB2を含む、本明細書で説明される1つ以上の態様の実行に使用されるデータを格納してよい。一部の実施の形態では、第1のデータベース129は、第2のデータベース131を(たとえば、別個のテーブル、レポートなどとして)含んでもよい。すなわち、情報は、システム設計に応じて、単一のデータベースに記憶するか、または異なる論理データベース、仮想データベース、もしくは物理データベースに分けることができる。デバイス105、107、および109は、デバイス103に関して記載したのと同様または異なるアーキテクチャを有してよい。
【0034】
当業者は、本明細書で説明されるデータ処理デバイス103(または、デバイス105、107、もしくは109)の機能性が、例えば、複数のコンピュータにわたって処理負荷を分散し、地理的位置、ユーザアクセスレベル、サービス品質(QoS)などに基づいてトランザクションを分けるよう、複数のデータ処理デバイスにわたって展開されてもよいことを理解されよう。
【0035】
1つ以上の本発明の態様は、本明細書に記載の1つ以上のコンピュータまたは他のデバイスによって実行される、1つ以上のプログラムモジュール等、コンピュータで使用可能もしくは読み取り可能なデータおよび/またはコンピュータ実行可能命令で具体化されてよい。
【0036】
一般に、プログラムモジュールは、コンピュータまたは他のデバイスのプロセッサで実行されると、特定のタスクを実行する、または、特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、実行のために後にコンパイルされるソースコードプログラミング言語で書かれてもよく、またはハイパーテキストマークアップ言語(HTML)もしくは拡張マークアップ言語(XML)など(それらに限定されない)のスクリプト言語で書かれてもよい。
【0037】
コンピュータ実行可能命令は、不揮発性記憶装置等のコンピュータ可読媒体に記憶されてよい。ハードディスク、CD-ROM、光学記憶装置、磁気記憶装置、および/またはそれらの任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体が利用されてよい。加えて、本明細書で説明されるデータまたはイベントを表すさまざまな伝送(非記憶)媒体が、金属線、光ファイバ、並びに/または無線伝送媒体(例えば、空気および/または空間)等、信号伝播媒体を通じて移動する電磁波の形式において、送信元と宛先の間で伝達されてよい。
【0038】
本明細書に記載するさまざまな態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化されてもよい。したがって、さまざまな機能が、ソフトウェア、ファームウェア、および/または、集積回路、フィールドプログラマブルゲートアレイ(FPGA)等のハードウェアもしくはハードウェア同等物の形で全体的または部分的に具体化されてもよい。特定のデータ構造を使用して、本明細書に記載する1つ以上の態様をより効果的に実施してもよく、そのようなデータ構造は、本明細書に記載するコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内で企図される。
【0039】
さらに図2を参照すると、本明細書に記載する1つ以上の発明の態様は、リモートアクセス環境で実施されてよい。図2に、本明細書に記載の1つ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境200におけるコンピューティングデバイス201を含む例示的なシステムアーキテクチャを示す。
【0040】
コンピューティングデバイス201は、単一サーバまたはマルチサーバのデスクトップ仮想化システム(たとえば、リモートアクセスまたはクラウドシステム)内のサーバ206aとして使用されてもよく、クライアントアクセスデバイスに仮想マシンを提供するように構成することができる。コンピューティングデバイス201は、デバイス201の動作全体を制御するプロセッサ203と、それに関連するコンポーネント、たとえば、RAM205、ROM207、入力/出力(I/O)モジュール209、およびメモリ215と、を有してもよい。
【0041】
I/Oモジュール209は、コンピューティングデバイス201のユーザが入力を提供し得るマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および/またはスタイラス(もしくは他の入力デバイス(複数可))を含んでもよく、また、音声出力を提供するためのスピーカーのうちの1つ以上と、テキスト、オーディオビジュアル、および/またはグラフィカル出力を提供するためのビデオディスプレイデバイスのうちの1つ以上と、を含んでもよい。本明細書に記載するさまざまな機能を実行するために、コンピューティングデバイス201を専用コンピューティングデバイスに構成する命令をプロセッサ203に提供するソフトウェアがメモリ215および/または他のストレージ内に記憶されてよい。例えば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219、および関連するデータベース221等、コンピューティングデバイス201によって使用されるソフトウェアを記憶してよい。
【0042】
コンピューティングデバイス201は、端末240(クライアントデバイスとも呼ばれる)等の1つ以上のリモートコンピュータへの接続をサポートするネットワーク環境で動作してよい。端末240は、コンピューティングデバイス103または201に関して前述した要素の多くまたは全てを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってよい。図2に示すネットワーク接続は、ローカルエリアネットワーク(LAN)225および広域ネットワーク(WAN)229を含むが、他のネットワークも含んでよい。LANネットワーキング環境で使用される場合、コンピューティングデバイス201は、ネットワークインタフェースまたはアダプタ223を介してLAN225に接続されてもよい。
【0043】
WANネットワーキング環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(たとえば、インターネット)などのWAN229を介して通信を確立するためのモデムまたは他のワイドエリアネットワークインタフェース227を含んでもよい。図示したネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段が使用されてもよいことは理解されよう。コンピューティングデバイス201および/または端末240は、バッテリ、スピーカー、およびアンテナ(図示せず)等の他のさまざまなコンポーネントを含むモバイル端末(例えば、携帯電話、スマートフォン、パーソナルデジタルアシスタント(PDA)、ノートブック等)であってもよい。
【0044】
本明細書で説明される態様は、他の多くの汎用または特殊目的コンピューティングシステム環境または構成により動作してもよい。本明細書で説明される態様による使用に適切であることができる他のコンピューティングシステム、環境、および/または構成の例には、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上記のシステムもしくはデバイスの任意のものを含む分散コンピューティング環境等が含まれるが、これらに限定されない。
【0045】
図2に示すように、1つ以上のクライアントデバイス240は、1つ以上のサーバ206a~206n(本明細書では一般に「サーバ(複数可)206」と呼ばれる)と通信してよい。一つの実施の形態では、コンピューティング環境200は、サーバ(複数可)206とクライアントマシン(複数可)240の間にインストールされたネットワークアプライアンスを含んでよい。ネットワークアプライアンスは、クライアント/サーバ接続を管理してよく、場合によっては、複数のバックエンドサーバ206間でクライアント接続の負荷を分散できる。
【0046】
クライアントマシン(複数可)240は、一部の実施の形態では、単一のクライアントマシン240またはクライアントマシン240の単一グループと呼ばれる場合があり、一方、サーバ(複数可)206は、単一のサーバ206またはサーバグループ206の単一のグループと呼ばれる場合がある。一つの実施の形態では、単一のクライアントマシン240は複数のサーバ206と通信し、別の実施の形態では、単一のサーバ206は複数のクライアントマシン240と通信する。更に別の実施の形態では、単一のクライアントマシン240は、単一のサーバ206と通信する。
【0047】
クライアントマシン240は、一部の実施の形態では、クライアントマシン(複数可)、クライアント(複数可)、クライアントコンピュータ(複数可)、クライアントデバイス(複数可)、クライアントコンピューティングデバイス(複数可)、ローカルマシン、リモートマシン、クライアントノード(複数可)、エンドポイント(複数可)、またはエンドポイントノード(複数可)のいずれかによって言及できるが、これらの用語が全てではない。サーバ206は、一部の実施の形態では、サーバ(複数可)、ローカルマシン、リモートマシン、サーバファーム(複数可)、またはホストコンピューティングデバイス(複数可)のいずれかによって言及されてよいが、これらの用語が全てではない。
【0048】
一つの実施の形態では、クライアントマシン240は、仮想マシンであってもよい。仮想マシンは、任意の仮想マシンであってよく、一部の実施の形態では、仮想マシンは、タイプ1またはタイプ2のハイパーバイザ、例えば、Citrix Systems、IBM、Vmwareによって開発されたハイパーバイザ、または任意の他のハイパーバイザによって管理される任意の仮想マシンであってよい。一部の態様では、仮想マシンはハイパーバイザによって管理されてよく、他の態様では、仮想マシンは、サーバ206上で実行されるハイパーバイザまたはクライアント240上で実行されるハイパーバイザによって管理されてよい。
【0049】
一部の実施の形態は、サーバ206または他のリモートに配置されたマシン上、リモートで実行されるアプリケーションによって生成されたアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施の形態では、クライアントデバイス240は、仮想マシン受け手プログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してよい。一例では、アプリケーションはデスクトップであるが、他の例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモートのアプリケーションを統合できるオペレーティングシステムのインスタンスにユーザインタフェースを提供するグラフィカルシェルを含んでもよい。アプリケーションは、本明細書では、オペレーティングシステムのインスタンス(およびオプションでデスクトップも)がロードされた後に実行されるプログラムである。
【0050】
サーバ206は、一部の実施の形態では、リモートプレゼンテーションプロトコルまたは他のプログラムを使用して、クライアント上で実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送信して、サーバ206上で実行されるアプリケーションによって生成される表示出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、以下のプロトコルのいずれかであってよいが、これらが全てではない。すなわち、フロリダ州フォートローダーデールのCitrix Systems社が開発した独立コンピューティングアーキテクチャ(ICA)プロトコル、または、ワシントン州レドモンドのMicrosoft Corporationによって製造されたリモートデスクトッププロトコル(RDP)である。
【0051】
リモートコンピューティング環境は、2つ以上のサーバ206a~206nを含むことによって、サーバ206a~206nが、たとえばクラウドコンピューティング環境におけるサーバファーム206に論理的にグループ化されるようにしてもよい。サーバファーム206は、論理的にグループ化されつつも地理的に分散しているサーバ206、または論理的にグループ化されつつ互いに近接して配置されたサーバ206を含んでもよい。サーバファーム206内の地理的に分散したサーバ206a~206nは、一部の実施の形態では、WAN(ワイド)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、異なる地理的地域は、異なる大陸、ある大陸の異なる地域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前述の地理的な場所の任意の組み合わせとして特徴づけることができる。一部の実施の形態では、サーバファーム206は単一のエンティティとして管理されてよいが、他の実施の形態では、サーバファーム206は複数のサーバファームを含むことができる。
【0052】
一部の実施の形態では、サーバファームは、実質的に類似のタイプのオペレーティングシステムプラットフォーム(例えば、WINDOWS(登録商標)、UNIX(登録商標)、LINUX、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでよい。他の実施の形態では、サーバファーム206は、第1のタイプのオペレーティングシステムプラットフォームを実行する1つ以上のサーバの第1のグループと、第2のタイプのオペレーティングシステムプラットフォームを実行する1つ以上のサーバの第2のグループとを含んでよい。
【0053】
サーバ206は、必要に応じて、任意のタイプのサーバとして構成されてよく、例えば、ファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、展開サーバ、セキュアソケット層(SSL)もしくはトランスポートレイヤセキュリティ(TLS)VPNサーバ、ファイアウォール、ウェブサーバ、アプリケーションサーバ、または、マスタアプリケーションサーバとしてのサーバ、アクティブディレクトリを実行するサーバ、または、ファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション加速プログラムを実行するサーバとして構成されてよい。他の種類のサーバも使用されてもよい。
【0054】
一部の実施の形態は、第1のサーバ206aを含み、第1のサーバ206aは、クライアントマシン240から要求を受け取り、要求を第2のサーバ206b(図示せず)に転送し、第2のサーバ206b(図示せず)からの応答を用いて、クライアントマシン240により生成された要求に応答する。第1のサーバ206aはクライアントマシン240が利用可能なアプリケーションの一覧表に加え、アプリケーションの一覧表内で識別されるアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報を取得してもよい。第1のサーバ206aは次いで、ウェブインタフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、識別されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240および/または1つ以上のサーバ206は、ネットワーク230、例えばネットワーク101を介してデータを送信してよい。
【0055】
図3は、例示的なデスクトップ仮想化システムの高レベルのアーキテクチャを示す。図に示すように、デスクトップ仮想化システムは、仮想デスクトップおよび/または仮想アプリケーションを1つ以上のクライアントアクセスデバイス240に提供するように構成された少なくとも1つの仮想化サーバ301を含む、単一サーバシステム、マルチサーバシステム、またはクラウドシステムであってよい。
【0056】
本明細書で使用するとき、デスクトップとは、1つ以上のアプリケーションをホストおよび/または実行し得るグラフィカルな環境または空間を指す。デスクトップは、ローカルおよび/またはリモートのアプリケーションを統合できるオペレーティングシステムのインスタンスにユーザインタフェースを提供するグラフィカルシェルを含んでもよい。アプリケーションは、オペレーティングシステム(およびオプションでデスクトップ)のインスタンスがロードされた後に実行されるプログラムを含んでもよい。オペレーティングシステムの各インスタンスは、物理的(例えば、デバイスごとに1つのオペレーティングシステム)または仮想的(例えば、単一のデバイスで実行されているOSの多くのインスタンス)であってよい。各アプリケーションは、ローカルデバイスで実行されてよい、または、リモートに配置されたデバイスで実行されて(リモートであって)よい。
【0057】
コンピュータデバイス301は、仮想化環境における仮想化サーバ、例えば、単一サーバ、マルチサーバ、またはクラウドコンピューティング環境として構成されてよい。図3に示す仮想化サーバ301は、図2に示されるサーバ206の1つ以上の実施の形態として、または、他の既知のコンピューティングデバイスとして展開、および/または、それらによって実装されてよい。仮想化サーバ301には、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308、および1つ以上の物理メモリ316を含むことができるハードウェア層が含まれる。一部の実施の形態では、ファームウェア312は、物理メモリ316のメモリ要素内に記憶することができ、物理プロセッサ308の1つ以上によって実行することができる。仮想化サーバ301は、オペレーティングシステム314を更に含んでよく、オペレーティングシステム314は、物理メモリ316内のメモリ要素に記憶されてよく、物理プロセッサ308の1つ以上によって実行されてよい。更に、ハイパーバイザ302は、物理メモリ316内のメモリ要素に記憶されてよく、物理プロセッサ308のうちの1つ以上によって実行されてもよい。
【0058】
物理プロセッサ308のうちの1つ以上の上で実行するのは、1つ以上の仮想マシン332A~C(全体的に332)であってもよい。各仮想マシン332は、仮想ディスク326A~326Cおよび仮想プロセッサ328A~328Cを有してよい。一部の実施の形態では、第1の仮想マシン332Aは、仮想プロセッサ328Aを使用して、ツールスタック324を含む制御プログラム320を実行してよい。制御プログラム320は、制御仮想マシン、Dom0、ドメイン0、またはシステム管理および/または制御に使用される他の仮想マシンと呼ばれ得る。一部の実施の形態では、1つ以上の仮想マシン332B~332Cは、仮想プロセッサ328B~328Cを使用して、ゲストオペレーティングシステム330A~330Bを実行することができる。
【0059】
仮想化サーバ301は、仮想化サーバ301と通信する1つ以上のハードウェアを備えたハードウェア層310を含んでよい。一部の実施の形態では、ハードウェア層310は、1つ以上の物理ディスク304、1つ以上の物理デバイス306、1つ以上の物理プロセッサ308、および1つ以上の物理メモリ316を含むことができる。物理コンポーネント304、306、308、および316は、例えば、上記のコンポーネントのいずれかを含んでよい。物理デバイス306は、例えば、ネットワークインタフェースカード、ビデオカード、キーボード、マウス、入力デバイス、モニタ、ディスプレイデバイス、スピーカー、光学ドライブ、ストレージデバイス、ユニバーサルシリアルバス接続、プリンタ、スキャナ、ネットワーク要素(例えば、ルータ、ファイアウォール、ネットワークアドレストランスレータ、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、動的ホスト構成プロトコル(DHCP)ルータ等)、または、仮想化サーバ301に接続または通信する任意のデバイスを含んでよい。ハードウェア層310内の物理メモリ316は、任意のタイプのメモリを含んでよい。物理メモリ316は、データを記憶してよく、一部の実施の形態では、1つ以上のプログラム、または実行可能命令のセットを記憶してよい。
【0060】
図3は、ファームウェア312が仮想化サーバ301の物理メモリ316内に記憶される実施の形態を示す。物理メモリ316に記憶されたプログラムまたは実行可能命令は、仮想化サーバ301の1つ以上のプロセッサ308によって実行することができる。
【0061】
仮想化サーバ301は、ハイパーバイザ302も含んでよい。一部の実施の形態では、ハイパーバイザ302は、任意の数の仮想マシン332を作成および管理するために仮想化サーバ301上のプロセッサ308によって実行されるプログラムであってよい。ハイパーバイザ302は、仮想マシンモニタまたはプラットフォーム仮想化ソフトウェアと呼ばれる場合がある。
【0062】
一部の実施の形態では、ハイパーバイザ302は、実行可能命令と、コンピューティングマシン上で実行されている仮想マシンを監視するハードウェアとの任意の組み合わせであってよい。ハイパーバイザ302はタイプ2ハイパーバイザであってもよく、そのハイパーバイザは、仮想化サーバ301上で実行されるオペレーティングシステム314内で実行される。仮想マシンは次いで、ハイパーバイザ302より上のレベルで実行されてもよい。一部の実施の形態では、タイプ2ハイパーバイザをユーザのオペレーティングシステムのコンテキスト内で実行させて、タイプ2ハイパーバイザがユーザのオペレーティングシステムとやり取りするようにしてもよい。他の実施の形態では、仮想化環境内の1つ以上の仮想化サーバ301は、代わりにタイプ1ハイパーバイザ(図示せず)を含んでよい。タイプ1ハイパーバイザは、ハードウェア層310内のハードウェアおよびリソースに直接アクセスすることにより、仮想化サーバ301上で実行されてよい。すなわち、図に示すように、タイプ2ハイパーバイザ302は、ホストオペレーティングシステム314を介してシステムリソースにアクセスするが、タイプ1ハイパーバイザは、ホストオペレーティングシステム314無しで全てのシステムリソースに直接アクセスしてよい。タイプ1ハイパーバイザは、仮想化サーバ301の1つ以上の物理プロセッサ308で直接実行されてよく、物理メモリ316に記憶されたプログラムデータを含んでよい。
【0063】
ハイパーバイザ302は、一部の実施の形態では、システムリソースに直接アクセスできるオペレーティングシステム330または制御プログラム320をシミュレートする任意の方法で、仮想マシン332上で実行されるオペレーティングシステム330または制御プログラム320に仮想リソースを提供することができる。システムリソースは、物理デバイス306、物理ディスク304、物理プロセッサ308、物理メモリ316、および仮想化サーバ301のハードウェアレイヤ310に含まれる他の任意のコンポーネントを含むことができるが、これらに限定されない。ハイパーバイザ302は、仮想ハードウェアのエミュレート、物理ハードウェアの分割、物理ハードウェアの仮想化、および/またはコンピューティング環境へのアクセスを提供する仮想マシンの実行を行うために使用されてもよい。
【0064】
さらに他の実施の形態では、ハイパーバイザ302は、仮想化サーバ301上で実行される仮想マシン332のプロセッサスケジューリングおよびメモリ分割を制御してよい。ハイパーバイザ302は、カリフォルニア州パロアルトのVMWare社によって製造されるハイパーバイザ、オープンソースのXenProject.orgコミュニティによって開発が監督されているオープンソース製品であるXENPROJECTハイパーバイザ、Microsoft社によって提供されるHyperV、VirtualServer、または仮想PCハイパーバイザ等を含んでよい。一部の実施の形態では、仮想化サーバ301は、ゲストオペレーティングシステムが実行し得る仮想マシンプラットフォームを作成するハイパーバイザ302を実行してよい。これらの実施の形態では、仮想化サーバ301は、ホストサーバと呼ばれてよい。そのような仮想化サーバの一例は、Citrix Systems,Inc.が提供するXENSERVERである。
【0065】
ハイパーバイザ302は、ゲストオペレーティングシステム330が実行される1つ以上の仮想マシン332B~332C(一般的に332)を作成してよい。一部の実施の形態では、ハイパーバイザ302は、仮想マシンイメージをロードして、仮想マシン332を作成してよい。他の実施の形態では、ハイパーバイザ302は、仮想マシン332内でゲストオペレーティングシステム330を実行してもよい。さらに他の実施の形態では、仮想マシン332は、ゲストオペレーティングシステム330を実行してよい。
【0066】
仮想マシン332を作成することに加えて、ハイパーバイザ302は、少なくとも1つの仮想マシン332の実行を制御してよい。他の実施の形態では、ハイパーバイザ302は、仮想化サーバ301によって提供される少なくとも1つのハードウェアリソース(例えば、ハードウェア層310内で利用可能な任意のハードウェアリソース)の抽象化を少なくとも1つの仮想マシン332に提示してよい。他の実施の形態では、ハイパーバイザ302は、仮想マシン332が仮想化サーバ301で利用可能な物理プロセッサ308にアクセスする方法を制御してよい。物理プロセッサ308へのアクセスの制御は、仮想マシン332がプロセッサ308にアクセスを有すべきか否か、および物理プロセッサ機能が仮想マシン332にどのように提示されるかを決定することを含んでよい。
【0067】
図3に示すように、仮想化サーバ301は、1つ以上の仮想マシン332をホストまたは実行してよい。仮想マシン332は、実行可能命令のセットであり、実行可能命令のセットは、プロセッサ308によって実行されると、物理コンピュータの動作を模倣して、仮想マシン332が物理コンピューティングデバイスのようにプログラムおよびプロセスを実行できるようにする。図3は、仮想化サーバ301が3つの仮想マシン332をホストする実施の形態を示すが、他の実施の形態では、仮想化サーバ301は、任意の数の仮想マシン332をホストすることができる。ハイパーバイザ302は、一部の実施の形態では、各仮想マシン332に、その仮想マシン332が利用可能な物理ハードウェア、メモリ、プロセッサ、および他のシステムリソースの一意の仮想ビューを提供してよい。一部の実施の形態では、一意の仮想ビューは、仮想マシンが有する許可、1つ以上の仮想マシン識別子へのポリシーエンジンの適用、仮想マシンにアクセスするユーザ、仮想マシンで実行されるアプリケーション、仮想マシンによってアクセスされるネットワーク、または任意の他の所望の基準のうちの1つ以上に基づくことができる。例えば、ハイパーバイザ302は、1つ以上の安全でない仮想マシン332および1つ以上の安全な仮想マシン332を作成してよい。安全な仮想マシン332がアクセスすることを許可され得るリソース、ハードウェア、メモリ位置、およびプログラムにセキュリティ保護されていない仮想マシン332がアクセスすることを防止してよい。他の実施の形態では、ハイパーバイザ302は、仮想マシン332に利用可能な物理ハードウェア、メモリ、プロセッサ、および他のシステムリソースの実質的に同様の仮想ビューを各仮想マシン332に提供してよい。
【0068】
各仮想マシン332は、仮想ディスク326A~326C(総称で326)および仮想プロセッサ328A~328C(総称で328)を含んでよい。一部の実施の形態では、仮想ディスク326は、仮想化サーバ301の1つ以上の物理ディスク304の仮想化ビュー、または、仮想化サーバ301の1つ以上の物理ディスク304の一部の仮想化ビューである。物理ディスク304の仮想化ビューは、ハイパーバイザ302によって生成、提供、および管理することができる。一部の実施の形態では、ハイパーバイザ302は、各仮想マシン332に物理ディスク304の一意のビューを提供する。したがって、これらの実施の形態では、各仮想マシン332に含まれる特定の仮想ディスク326は、他の仮想ディスク326と比較されるときに一意であってよい。
【0069】
仮想プロセッサ328は、仮想化サーバ301の1つ以上の物理プロセッサ308の仮想化ビューであってよい。一部の実施の形態では、物理プロセッサ308の仮想化ビューは、ハイパーバイザ302によって生成、提供、および管理することができる。一部の実施の形態では、仮想プロセッサ328は、少なくとも1つの物理プロセッサ308の同じ特性を実質的に全て有する。他の実施の形態では、仮想プロセッサ308は、仮想プロセッサ328の特性の少なくとも一部が対応する物理プロセッサ308の特性とは異なるように、物理プロセッサ308の修正されたビューを提供する。
【0070】
図4をさらに参照すると、本明細書に記載する一部の態様は、クラウドベース環境で実施されてよい。図4に、クラウドコンピューティング環境(またはクラウドシステム)400の一例を示す。図4に見られるように、クライアントコンピュータ411~414はクラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(たとえば、ホストサーバ403a~403b(本明細書では総称して「ホストサーバ403」と呼ぶ)、ストレージリソース404a~404b(本明細書では総称して「ストレージリソース404」と呼ぶ)、およびネットワークリソース405a~405b(本明細書では総称して「ネットワークリソース405」と呼ぶ))にアクセスしてもよい。
【0071】
管理サーバ410が1つ以上の物理サーバ上に実装されてよい。管理サーバ410は、例えば、フロリダ州フォートローダーデールのCitrix Systems社によるCLOUDPLATFORM、または、OPENSTACK等を実行してよい。管理サーバ410は、クラウドのハードウェアおよびソフトウェアリソース、例えば、ホストコンピュータ403、データストレージデバイス404、およびネットワーキングデバイス405を含む、さまざまなコンピューティングリソースを管理してよい。クラウドのハードウェアおよびソフトウェアリソースはプライベートおよび/またはパブリックコンポーネントを含んでよい。例えば、クラウドは、1つ以上の特定の顧客もしくはクライアントコンピュータ411~414によって、および/またはプライベートネットワークを介して使用されることになるプライベートクラウドとして構成されてよい。他の実施の形態では、パブリッククラウドまたはハイブリッドパブリックプライベートクラウドが、オープンまたはハイブリッドネットワークを介して他の顧客によって使用されてよい。
【0072】
管理サーバ410は、クラウドオペレータおよびクラウド顧客がクラウドシステム400と対話し得るユーザインタフェースを提供するように構成されてよい。例えば、管理サーバ410は、アプリケーションプログラミングインタフェース(API)のセットおよび/またはユーザインタフェースを備えた1つ以上のクラウドオペレータコンソールアプリケーション(例えば、ウェブベースまたはスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化層を構成し、顧客アカウントを管理し、他のクラウド管理タスクを実行できるようにしてよい。管理サーバ410はまた、クライアントコンピュータ411~414を介してエンドユーザからクラウドコンピューティング要求、例えば、クラウド内で仮想マシンを作成、修正、または破壊する要求を受け取るように構成されたユーザインタフェースを有するAPIのセットおよび/または1つ以上の顧客コンソールアプリケーションを含んでもよい。クライアントコンピュータ411~414は、インターネットまたは他の何らかの通信ネットワークを介して管理サーバ410に接続してよく、管理サーバ410によって管理される1つ以上のコンピューティングリソースへのアクセスを要求してよい。クライアント要求に応答して、管理サーバ410は、クライアント要求に基づいてクラウドシステムのハードウェア層の物理リソースを選択およびプロビジョニングするように構成されたリソースマネージャを含んでよい。例えば、管理サーバ410およびクラウドシステムの追加のコンポーネントは、ネットワーク(例えば、インターネット)を通じてクライアントコンピュータ411~414における顧客に対して、仮想マシンおよびそれらの動作環境(例えば、ハイパーバイザ、ストレージリソース、ネットワーク要素によって供給されるサービス等)をプロビジョニング、作成、および管理するように構成されてもよく、計算リソース、データストレージサービス、ネットワーク機能、並びにコンピュータプラットフォームおよびアプリケーションサポートを顧客に提供する。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインタフェースなどを含むさまざまな特定のサービスを提供するように構成されてもよい。
【0073】
ある特定のクライアント411~414は、同じエンドユーザ、または同じ会社もしくは組織に属する異なるユーザのために、仮想マシンを作成する異なるクライアントコンピュータなどに関連付けられてもよい。他の例では、ある特定のクライアント411~414は、異なる会社または組織に属するユーザなど、無関係であってもよい。関連のないクライアントの場合、ある任意のユーザの仮想マシンまたはストレージに関する情報は、他のユーザから隠される場合がある。
【0074】
ここで、クラウドコンピューティング環境の物理ハードウェア層を参照すると、アベイラビリティゾーン401~402(またはゾーン)は、配列された物理コンピューティングリソースのセットを指す場合がある。ゾーンは、コンピューティングリソースのクラウド全体で他のゾーンから地理的に離れている場合がある。例えば、ゾーン401は、カリフォルニアに位置する第1のクラウドデータセンタであってよく、ゾーン402は、フロリダに位置する第2のクラウドデータセンタであってよい。管理サーバ410は、アベイラビリティゾーンの1つに、または別の場所に配置されてよい。各ゾーンは、ゲートウェイを介して、管理サーバ410等のゾーン外にあるデバイスとインタフェースする内部ネットワークを含むことができる。クラウドのエンドユーザ(例えば、クライアント411~414)は、ゾーン間の違いを認識している場合もあれば認識していない場合もある。例えば、エンドユーザは、指定された量のメモリ、処理能力、およびネットワーク機能を備えた仮想マシンの作成を要求してよい。管理サーバ410は、ユーザの要求に応答してよく、仮想マシンがゾーン401またはゾーン402からのリソースを使用して作成されたか否かをユーザが知ることなく、仮想マシンを作成するためのリソースを割り当ててよい。他の例では、クラウドシステムは、仮想マシン(または他のクラウドリソース)が特定のゾーンまたはゾーン内の特定のリソース403~405に割り当てられることをエンドユーザが要求するのを可能にしてよい。
【0075】
この例では、各ゾーン401~402は、さまざまな物理ハードウェアコンポーネント(またはコンピューティングリソース)403~405の配置、例えば、物理ホスティングリソース(または処理リソース)、物理ネットワークリソース、物理ストレージリソース、スイッチ、およびクラウドコンピューティングサービスを顧客に提供するために使用し得る追加のハードウェアリソースの配置を含んでよい。クラウドゾーン401~402内の物理ホスティングリソースは、仮想マシンインスタンスを作成およびホストするように構成され得る上記仮想化サーバ301等の1つ以上のコンピュータサーバ403を含んでよい。クラウドゾーン401または402内の物理ネットワークリソースは、ファイアウォール、ネットワークアドレストランスレータ、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、動的ホスト構成プロトコル(DHCP)ルータ等、クラウドの顧客にネットワークサービスを提供するように構成されたハードウェアおよび/またはソフトウェアを含む1つ以上のネットワーク要素405(例えば、ネットワークサービスプロバイダ)を含んでよい。クラウドゾーン401~402内のストレージリソースは、ストレージディスク(例えば、ソリッドステートドライブ(SSD)、磁気ハードディスク等)および他のストレージデバイスを含んでよい。
【0076】
図4に示すクラウドコンピューティング環境の例はまた、仮想マシンを作成および管理し、クラウドの物理リソースを使用して顧客に他のサービスを提供するように構成された追加のハードウェアおよび/またはソフトウェアリソースを備えた(例えば、図1~3に示すような)仮想化層を含んでよい。仮想化層は、図3で前述したように、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともにハイパーバイザを含んでよい。仮想化層は、物理リソース層とは別の層として存在してよい、または同じハードウェアおよび/またはソフトウェアリソースの一部または全てを物理リソース層と共有してよい。例えば、仮想化層は、物理コンピューティングリソースを備えた仮想化サーバ403のそれぞれにインストールされたハイパーバイザを含んでよい。例えば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドMicrosoft Corporation)、AMAZON EC2(ワシントン州シアトルAmazon.com Inc.)、IBM BLUE CLOUD(ニューヨーク州アーモンクIBM Corporation)等、既知のクラウドシステムを代わりに使用してよい。
【0077】
ここで、いくつかの実施の形態をより詳細に説明する。特に、上記で導入されたように、本開示のいくつかの態様は、一般に、ユーザデバイスによるコンテンツの受信を検出することと、コンテンツを分析して、このコンテンツ内に、アプリケーションに関連し、それをユーザデバイスにプリロードするために使用できる情報があるかどうかを決定することとに関する。
【0078】
前に説明されたように、自宅から作業しているユーザが自分のオフィスのワークスペースで作業している場合と同じくらい効率的に作業を行うことができるように支援するためのソフトウェア製品がいくつかある。これらのソフトウェア製品は、Citrix Cloud、XenMobile、およびXenDesktopを含み、すべてCitrixが提供している。1つ以上の態様によれば、Citrix Cloudを、XenMobileアプリケーションおよびXenDesktopアプリケーションをリンクするメカニズムとして使用して、ユーザがユーザの自宅デバイス(例えば、ユーザの自宅のPC、ユーザの自宅のデスクトップコンピュータ、またはユーザのスマートフォン)によって受信するコンテンツ内の情報に関連するタスクを効率的に実行することを可能にすることができる。より詳細には、ユーザの自宅デバイスが受信した情報、例えば、電子メール、またはテキストメッセージ、ビデオ画像、もしくは任意の他の受信したコンテンツ内の情報を、コンテンツのデータベースに格納されている情報(例えば、キーワード、画像、データファイルフィンガープリントなど)、およびそれぞれと関連するアプリケーションと比較し、一致があるかどうかを決定し、一致がある場合、ユーザの自宅デバイスのディスプレイ上に提供されるリンクまたはアイコンなどのユーザインタフェース要素を提供する。ユーザインタフェース要素は、ユーザがプリロードされたアプリケーションを迅速に起動し、受信したコンテンツに記述されている、または関連する作業の実行を開始するためのメカニズムを提供する。
【0079】
図5は、電子メールであるコンテンツに関して以下に説明されるが、代替の実施態様では、コンテンツは、本明細書に記載される本開示の範囲内にとどまりながら、テキストメッセージもしくはビデオ画像、または任意の他の受信したコンテンツであることができる。
【0080】
図5に示される流れ図500、および図6に示されるユーザアプリケーションライブラリ600を参照して、ステップ510において、ユーザの自宅デバイス上のアプリケーションは、電子メールの受信を検出する。電子メール検出アプリケーションは、XenMobileであることができ、電子メールの受信を検出して、受信した電子メールのいずれかがユーザの自宅デバイスに有害である可能性があるかどうかを決定する機能を有する。例えば、XenMobileアプリケーションは、電子メールセキュリティ機能を有し、この電子メールセキュリティ機能は、受信した電子メールが開かれるとウイルスを含む可能性のある添付ファイルを含むと決定することができる、または受信した電子メールがスパムもしくは他の有害なコンテンツに関連する送信者アドレスからのものであると決定することができる。さらに、XenMobileアプリケーションは、電子メール同期機能を有し、この電子メール同期機能は、電子メールサーバに定期的にアクセスして、電子メールサーバによって受信された電子メールのどれをユーザの自宅デバイスに送信するかを決定する。電子メール同期機能は、ユーザの自宅デバイスの受信アドレスに一致する受信アドレスを含む電子メールについて、Citrix Cloudを介して電子メールサーバを定期的に(例えば、60秒ごとに)チェックすることによって、この機能を実行することができる。電子メールサーバは、例えば、安全なデータセンターまたは他の安全な場所(例えば、会社の施設内)に提供されることができる。
【0081】
XenMobileアプリケーションによって電子メールが「安全」であると決定される場合、ユーザは電子メールを開くことができる。例えば、電子メールに対するあらゆる疑わしい添付ファイル(例えば、「.exe」指定を含む添付ファイル)を除去することにより、電子メールを「安全」にすることができる。ステップ520において、ユーザは電子メールを開く。
【0082】
ステップ530において、電子メールアプリケーション(例えば、XenMobile)は、電子メールの開封を検出し、仮想化アプリケーション(例えば、XenDesktop)に、ユーザアプリケーションライブラリを取得するように通知する。前に説明したように、XenDesktopアプリケーションによって、ユーザが自分の職場の自分の仕事用コンピュータからアクセスすることができるアプリケーションをユーザが開くことを可能とし、それにより、XenDesktopアプリケーションによって、ユーザが仮想化システムを使用して自宅のPC、自宅のデスクトップ、またはスマートフォンから同じアプリケーションにアクセスすることができる。一部の態様では、特定の基準に適合する受信した電子メールのみが、仮想化アプリケーションに、ユーザアプリケーションライブラリを取得することを行わせる。例えば、特定の基準は、ユーザと同じ会社で働いている人から送信された電子メールであることができる(例えば、ユーザの電子メールアドレスがtsmith@citrix.comである場合、基準は*@citrix.comから送信されたいずれかの受信した電子メールであることができ、「*」は任意の接頭部を表す)、または送信者のホワイトリストに載っている人から送信された電子メールであることができる。ユーザと同じ会社から送信されていない、またはホワイトリストに載っている人から送信されていない他の電子メールでは、ユーザアプリケーションライブラリを取得することができなくなり得る。したがって、これらの電子メールは、さらに分析して、これらの電子メール内のコンテンツがユーザアプリケーションライブラリに格納されている情報に一致するかどうかを決定することを行わない場合がある。
【0083】
ステップ540において、ユーザの自宅デバイスによって受信された電子メールを開いたというXenDesktopアプリケーションへのXenMobileアプリケーションによる通知に応じて、XenDesktopアプリケーションは、ユーザが自宅のデバイスからアクセスすることができる仮想化システムのコンピュータ(すなわち、安全なデータセンターにあるサーバ)に格納されるアプリケーションごとにエントリを有する、ユーザアプリケーションライブラリに対する要求を送信する。この要求は、Citrix Cloudを介して、またはユーザの自宅デバイスをユーザアプリケーションライブラリが格納されている別のデバイスに接続する別のタイプの通信ネットワークによって、送信することができる。いくつかの実施の形態では、XenDesktopアプリケーションとXenMobileアプリケーションとの間の通信は、クラウドを介して、例えばCitrix Cloud、Microsoft Azure、またはAmazon Web Services(AWS)などを介して達成することができる。他の実施の形態では、XenMobileアプリケーションおよびXenDesktopアプリケーションは、それらのアプリケーションがユーザの自宅デバイス上で互いの存在を認識し、ユーザの自宅デバイスのリソースを使用して互いに直接通信することができる場合、ユーザの自宅デバイス上の内部バスを介して互いに通信することができる。
【0084】
ステップ550において、XenDesktopアプリケーションは、クラウドを介してユーザアプリケーションライブラリを取得する。ユーザアプリケーションライブラリは、ユーザの自宅デバイスとは別の、また仮想化システムのコンピュータとは別のデータセンター内にあるコンピュータに格納することができる。この仮想化システムによって、ユーザの自宅デバイスは1つ以上のアプリケーションにアクセスすることができ、ユーザはユーザの仕事用コンピュータにアクセスすることができる。
【0085】
ステップ560において、ユーザアプリケーションライブラリに少なくとも1つのエントリを投入する。各エントリは、ユーザがXenDesktopアプリケーションを使用して取得することができるアプリケーション名を含む第1のフィールドと、第1のフィールド内のアプリケーションに関連する1つ以上のキーワードを含む第2のフィールドとを含む。
【0086】
ここで図6を参照して、3つのエントリ610、620、630を含む、代表的なユーザアプリケーションライブラリ600が示されている。第1のエントリ610は、第1のフィールドに「EXCEL」を含み、第2のフィールドに「EXCEL」アプリケーションに関連するキーワードとして「財務」または「財務の」を含む。第2のエントリ620は、第1のフィールドに「PYTHON」を含み、第2のフィールドに「データ」または「データベース」を含む。第三エントリ630は、第1のフィールドに「VISIO」を含み、第2のフィールドに「プロット」または「グラフ」を含む。
【0087】
図6の3つのエントリ610、620、630の第1のフィールドにリストされているアプリケーションは、ユーザの自宅デバイス上のXenDesktopアプリケーションを介してアクセスする権限がユーザに事前に与えられた3つのアプリケーションに対応する。そして、図6の3つのエントリ610、620、630の第2のフィールドにリストされているキーワードは、ユーザがそれらのそれぞれのアプリケーションを使用して過去に行った作業に関連する語に対応する。例えば、ユーザが最近EXCELを使用してプロジェクトの財務の分析を行った場合、キーワード「財務の」または「財務」が、ユーザアプリケーションライブラリ600の第1のエントリ610の第2のフィールドでのエントリとして提供され得る。キーワードは、ユーザアプリケーションライブラリ入力ユーザインタフェース(図示せず)を介してユーザ自身によって、またはユーザが過去に割り当てられたプロジェクト、および今後割り当てられるプロジェクトに精通しているユーザの上司または同僚(複数可)によって提供することができる。代替に、またはそれとともに、キーワードは、ユーザと同じ会社で働く各従業員から得られた履歴データに基づいて提供することができる。例えば、他のユーザが昨年「EXCEL」を使用して財務プロジェクトを行ったことがある場合があり、そのために、前記ユーザについてもEXCELエントリ610の第2のフィールドに「財務」キーワードを提供することができる。他の実施態様では、キーワード以外の情報を、ユーザアプリケーションライブラリの各エントリの第2のフィールドに提供することができ、これにより、他の情報は、ビデオ画像を含むことができる。
【0088】
ユーザが最近PYTHONアプリケーションを使用してデータベース作成プロジェクトを行った場合、キーワード「データベース」または「データ」を、ユーザアプリケーションライブラリ600の第2のエントリ620の第2のフィールドでのエントリとして提供することができる。
【0089】
図5に戻り、ステップ570において、受信した電子メールを、受信した電子メールに含まれるコンテンツについて分析し(すなわち、スキャンし、または解析し)、ユーザアプリケーションライブラリ600(図6を参照)のエントリのいずれかに格納されるキーワードのいずれかとの一致があるかどうかを決定する。ステップ580において、キーワードマッチがあるかどうかに関して決定がなされる。スキャンは、XenMobileアプリケーションによって、またはXenMobileアプリケーションの制御下にある文字認識アプリケーションによって実行することができる。
【0090】
例として、ユーザのコンピュータが受信した次の電子メールについて考察する。
送信元:トニーの上司
送信先:トニー
内容:こんにちは、トニー。今週の終わりまでに、この四半期のAZURE支出項目についての財務の予測を記入してください。
【0091】
ステップ570で受信した電子メールのスキャン、およびステップ580で実行されたキーマッチングに基づいて、図6に示されるようなユーザアプリケーションライブラリ600の第1のエントリ610の第1のフィールド内の「財務の」に一致する、「財務の」という単語が見いだされる。したがって、ステップ580でのキーワードマッチング決定の結果はYESであり、ユーザアプリケーションライブラリ600の第1のエントリ610の第1のフィールド内のアプリケーション「EXCEL」は、受信した電子メールに基づいてトニーが行う作業に関連することが決定される。
【0092】
いくつかの実施の形態では、プロセスを高速化し、コンピュータ処理リソースでの負荷を軽減するために、ステップ570で実行される電子メールコンテンツのスキャンでは、受信した電子メール内の、ある特定の「フィラー」語(例えば、3文字以下の単語)、例えば「and」、「or」、「to」などをスキップすることができる。より詳細には、言語ベースのアプリケーションを使用して、受信した電子メール内の名詞および動詞を決定し、受信した電子メールから重要な単語のみを取得し、ユーザアプリケーションライブラリ600に格納されるキーワードのいずれかに一致があるかどうかを決定することができる。
【0093】
受信した電子メール内のコンテンツとユーザアプリケーションライブラリ600内のキーワードとのキーワードの一致がなかった場合、ステップ580でのキーワードの一致決定の結果はNOとなり、プロセスはステップ586に進み、このステップ586において、アプリケーションのプリロードをユーザの自宅デバイス上で実行しない。
【0094】
キーワードの一致が見つかった場合(ステップ580でYES)、プロセスはステップ588に進み、それにより、キーワードの一致に関連するアプリケーションに関連するリンクまたはアイコンを、ユーザの自宅のPC、自宅のデスクトップ、またはスマートフォンのディスプレイ上に提供する。リンクまたはアイコンは、受信した電子メールに関連する作業を実行するために必要なアプリケーションをユーザが取得するための、迅速で簡単な選択方法を提供する。例として、リンクは、アプリケーションが現在格納されているネットワークアドレス(すなわち、インターネットプロトコルアドレス、例えばwww.get_application_here.com)へのハイパーリンクであることができる。いくつかの態様では、キーワードの一致時に、XenDesktopアプリケーションを介してユーザの自宅のPC、自宅のデスクトップ、またはスマートフォンにアプリケーションをプリロードすることができる、それにより、ステップ589において、ユーザは、ディスプレイのクイック起動領域に表示されるリンクまたはアイコン(すなわち、ディスプレイの最下部の行)をクリックするだけでよい。いくつかの実施の形態では、キーワード一致時に、一致したキーワードに関連するアプリケーションを、ハードドライブから仮想化ネットワークコンピュータのキャッシュまたは他の迅速にアクセス可能なメモリ(例えば、仮想化システムのデータセンターでのサーバ)上にコピーすることにより、ユーザがそのアプリケーションを要求するときに、ユーザへのアプリケーションの可能な限り迅速な転送を提供する。
【0095】
ステップ590において、クイック起動領域上のリンクまたはアイコンのユーザ選択の検出時に、リンクまたはアイコンに関連するアプリケーションを、ユーザデバイス上のネットワーク受信機能を介して、ユーザの自宅のPC、自宅のデスクトップ、またはスマートフォンに提供する。そのようにして、ユーザは受信した電子メール内のコンテンツに関連するプロジェクトですぐに作業を開始することができ、受信した電子メールに記載されているプロジェクトまたは作業を実行するために適切なアプリケーションを(XenDesktopアプリケーションを介して、またはユーザの自宅デバイス上で)見つけることを気にする必要はない。
【0096】
ユーザの自宅デバイスによって受信したコンテンツがテキストメッセージまたはビデオ画像である代替の実施態様では、例えば、図6に示されるユーザのアプリケーションライブラリ600内のエントリについての第2のフィールド内の情報は、ユーザのアプリケーションライブラリ600内のエントリについてのそれぞれの第1のフィールド内の特定のアプリケーションに関連付けられる1つ以上のビデオ画像を含むことができる。例えば、第1のエントリ610は、ユーザが実行する作業に関連する、ユーザの上司からの、ユーザの自宅デバイスによって受信するコンテンツ内のテキストメッセージおよび/またはビデオ画像との比較のために、財務のスプレッドシートに関連するビデオ画像を含むことができる。これらの実施態様では、キーワード以外の情報を、ユーザのアプリケーションライブラリ600の1つ以上のエントリの第2のフィールドに格納されることができる。
【0097】
上記の実施の形態は仮想化環境に関して説明されたが、他の実施の形態では、ユーザの自宅のPC、自宅のデスクトップ、またはスマートフォンに格納されるアプリケーションを起動するためのクイックリンクまたはアイコンをユーザに提供することができ、それにより、そのアプリケーションは、クラウド環境を使用する仮想化システムを介して別の場所から取得されない。そのような方法は、図7に示される流れ図700を参照して、以下に説明される。この場合も、上記の図5の方法と同様に、図7の方法は、受信した電子メールであるコンテンツに関して説明される。しかしながら、コンテンツは、本開示の範囲内にとどまりながら、代替の実施態様では、テキストメッセージもしくはビデオ画像、またはいずれかの他の受信したコンテンツであることができる。
【0098】
ステップ710において、ユーザの自宅デバイスは電子メールアプリケーション(例えば、XenMobileまたはOUTLOOK)によって検出される電子メールを受信し、ステップ720において、ユーザの自宅デバイスは電子メールの開封を検出する。ステップ730において、電子メールの開封の検出の結果として、ユーザアプリケーションライブラリを取得し、それにより、クラウドを介してアクセスされる別のコンピュータから、ユーザアプリケーションライブラリを取得することができる。ステップ740において、ユーザアプリケーションライブラリに、ユーザに関連する情報を投入する。例えば、ユーザアプリケーションライブラリは、ユーザに割り当てられた各アプリケーションに関連するキーワードを有する複数のエントリを含むことができ、それにより、ユーザと同じ会社で働く複数のユーザの履歴情報に基づいて、キーワードを提供することができる。
【0099】
ステップ750において、ステップ740で得られたユーザアプリケーションライブラリに、ユーザ自身によって提供されるキーワードに基づいてユーザ指定情報をさらに投入し、これにより、ユーザアプリケーションライブラリを作成するために使用された履歴データをユーザ指定情報で補う。
【0100】
ステップ760において、受信した電子メールをコンテンツについて分析し(すなわち、スキャンし、または解析し)、キーワードの一致があるかどうかを決定し、ステップ770において、キーワードの一致があるかどうかに関して決定が行われる。
【0101】
キーワードの一致が見つかった場合(ステップ770でYES)、ステップ780において、キーワードの一致に関連するアプリケーションに関連するリンクまたはアイコンを、ディスプレイのクイック起動領域などのユーザデバイスのディスプレイ上に提供し、ユーザがアプリケーションを迅速かつ効率的に取得するためのメカニズムを提供する。いくつかの実施の形態では、ユーザがリンクまたはアイコンを操作することを必要とせずに、キーワードの一致に関連するアプリケーションを、ユーザの自宅デバイス上の自分のワークスペースにプリロードする。
【0102】
キーワードの一致がない場合(ステップ770でNO)、ステップ772において、ユーザの自宅デバイス上でのアプリケーションのプリロードに関してそれ以上の動作を行わない。
【0103】
クイック起動領域上のリンクまたはアイコンのユーザ選択の検出時に、ステップ790において、関連するアプリケーションをユーザの自宅のPC、自宅のデスクトップ、またはスマートフォン上で開き、それによってユーザは、受信した電子メール内のコンテンツに関連するプロジェクトの作業を開始することができる。これにより、XenDesktopアプリケーションを呼び出して作業に必要なアプリケーションを探し出し、受信した電子メールで特定されるタスクを行うのに必要なアプリケーションが、仮想化システムからアップロードされて、ユーザの自宅デバイス上でユーザにアクセス可能にするのを待機することを必要とせずに、ユーザは、作業を行うために必要なアプリケーションを開くことによってプロジェクトの作業をすぐに開始することができる。
【0104】
いくつかの実施の形態では、ユーザアプリケーションライブラリ内のエントリの一致があるが、アプリケーションが現在ユーザの自宅デバイスに格納されておらず、XenDesktopアプリケーションを介して取得できない(すなわち、仮想化システムを介して利用できない)場合、図5のステップ589、および図7のステップ780において、ウェブページにリンクを提供することができ、このリンクによって、ユーザが受信した電子メールに関連する作業を行うために必要なアプリケーションをダウンロードすることができる。例えば、ユーザがVISIOにアクセスできない場合、MICROSOFTウェブページへのリンクを提供することができ、ユーザは、必要なVISIOアプリケーションを自宅のデバイスにダウンロードすることができる。仮想化環境では、受信した電子メール内のコンテンツに一致するキーワードに関連する特定のアプリケーションに対する権限がユーザにない場合、いくつかの実施の形態では、電子メールメッセージをIT管理者に自動的に送信して、XenDesktopアプリケーションを介するユーザの必要なアプリケーションへのアクセス権を要求することができる。
【0105】
図8は、1つ以上の実施の形態による、ユーザデバイスのディスプレイ上でユーザにアプリケーションを提供するために使用することができる要素を示す。PC、デスクトップコンピュータ、またはスマートフォンであり得るユーザデバイス810は、例えば、電子メールアプリケーション820(例えば、XenMobileアプリケーション)および仮想化ネットワークアプリケーション830(例えば、XenDesktopアプリケーション)を含む。電子メールアプリケーション820は、インターネット825へのネットワーク接続などのネットワーク接続を介した電子メールの受信を検出し、仮想化ネットワークアプリケーション830にユーザアプリケーションライブラリを取得するように通知する。ユーザアプリケーションライブラリ840は、クラウド850に格納され、仮想化ネットワークアプリケーション830によって取得され、追加のユーザ固有情報が投入される(そのような情報をユーザデバイス810から取得可能である場合)。
【0106】
仮想化ネットワークアプリケーション830は、ユーザアプリケーションライブラリ840を電子メールアプリケーション820に提供し、この電子メールアプリケーション820は、受信した電子メールをスキャンして、ユーザアプリケーションライブラリ840に格納されるキーワードに一致するものがあるかどうかを決定する。一致がある場合、ユーザデバイス810の表示領域860は、表示領域860のクイック起動領域870にリンクまたはアイコン865を提供し、それにより、リンクまたはアイコン865のユーザによる選択時に、一致したキーワードに関連するアプリケーションへのインスタンスをユーザデバイス810に提供する。インスタンスは、所望のアプリケーションが格納されている仮想化ネットワーク880の仮想マシンへのリンクであることができる。
【0107】
上記に示したように、本開示のさまざまな態様は、ユーザデバイスによって受信されたコンテンツ内のコンテンツに基づいて、ユーザにアプリケーションへのアクセスを提供することに関する。主題は構造的特徴および/または方法論的動作に固有の言語で説明されてきたが、添付の特許請求の範囲において定義される主題が、上述の特定の特徴または動作に必ずしも限定されないことが理解されよう。例えば、仮想化の実施の形態では、ユーザアプリケーションライブラリ内のキーワードと、受信した電子メールまたは受信したテキストメッセージ内の1つ以上の語との一致がある場合、プロセスは、最初に、一致したキーワードに関連するアプリケーションが、ユーザの自宅デバイスに現在ロードされているかどうかを決定することができる。受信した電子メールまたは受信したテキストメッセージに記載されている作業を行うために必要な関連する(またはユーザの自宅デバイスが受信するビデオ画像に関連する)アプリケーションがユーザの自宅デバイスに現在ロードされている場合、関連するアプリケーションを取得するためにXenDesktopアプリケーションは必要とされず、ユーザの自宅デバイスのディスプレイ上に提供されるユーザインタフェース要素は、ユーザが仮想化システムを介してではなく、ローカルメモリ(例えば、ユーザの自宅デバイスのハードドライブ)から関連するアプリケーションを容易に開くメカニズムを提供する。受信した電子メールまたは受信したテキストメッセージに記載されている作業を行うために必要な関連する(またはユーザの自宅デバイスが受信するビデオ画像に関連する)アプリケーションがユーザの自宅デバイスに現在ロードされていない場合、ユーザインタフェース要素は、別のコンピュータへのリンクを提供し、このリンクによって、ユーザの自宅デバイスは、仮想化システムを介して(例えば、XenDesktopアプリケーションを使用して)そのアプリケーションを取得することができる。
【0108】
上記説明された特定の特徴および動作は、以下の特許請求の範囲のいくつかの例示的な実施態様として説明される。
【0109】
関連出願の相互参照
本出願は、2018年11月7日に出願された米国非仮特許出願第16/182,734号の優先権を主張し、その内容は、参照によりその全体が本明細書に明示的に援用される。
図1
図2
図3
図4
図5
図6
図7
図8
【国際調査報告】