一般的に説明されるならば、本開示は、ネットワークコンピューティングおよびストレージプロバイダと連動して、クライアントコンピューティングデバイスとコンテンツプロバイダとの間での遠隔アプリケーションセッションの生成および管理を対象とする。具体的には、本開示の態様は、コンテンツプロバイダとのクライアントコンピューティングデバイスによるブラウズセッションのための要求、クライアントコンピューティングデバイスとネットワークコンピューティングおよびストレージプロバイダとの間の遠隔ブラウズセッションの確立、ならびにクライアントコンピューティングデバイスとネットワークコンピューティングおよびストレージプロバイダとの間のブラウズセッション状態データおよびクライアント対話データの伝送に関して説明される。本開示に記載される実施形態の態様は、例示のために、遠隔ブラウズセッションの管理に焦点を当てているが、当業者であれば、本明細書に開示される技術が任意の数のソフトウェア処理またはアプリケーションに適用されてもよいことを理解するであろう。更に、本開示の様々な態様は、例示的な実施例および実施形態に関して説明されているが、当業者であれば、開示される実施形態および実施例が限定するものとして解釈されるべきでないことを理解するであろう。
例示的な実施例を参照して、ユーザは、クライアントコンピューティングデバイスに、1つ以上のコンテンツプロバイダによって提供される、コンテンツにアクセスするためのソフトウェアブラウザアプリケーション(以下、「ブラウザ」と称される)を読み込ませてもよい。例示的には、アクセスされるコンテンツは、1つ以上のネットワークリソース(例えばウェブページ)、ならびに画像、ビデオ、オーディオ、テキスト、実行可能なコード、および他のリソース等の埋め込みリソースのコレクションを含んでもよい。一実施形態において、ブラウザは、ツールバー、メニュー、ボタン、または他のユーザインターフェース制御等、1つ以上のローカルインターフェースコンポーネントに加えて、コンテンツ表示区域またはアクセスされたネットワークコンテンツを表示するためのペインを有してもよい。ローカルインターフェースコンポーネントは、クライアントコンピューティングデバイスでローカルに実行するか、または実装されるソフトウェアブラウザアプリケーションもしくはその他の処理によって管理および制御されてもよい。例示的に、ユーザインターフェース制御をローカルに管理することは、ユーザによる対話がクライアントコンピューティングデバイス上でローカルに処理されるときに、応答性のユーザインターフェースを可能にし得る。
ブラウザが読み込まれた後、ユーザまたは自動化ブラウザ処理は、プライベートまたは公衆ネットワーク全域でネットワークコンピューティングおよびストレージプロバイダとのブラウズセッションを確立することによって、クライアントコンピューティングデバイスに、コンテンツプロバイダからのコンテンツにアクセスするための要求を伝送させてもよい。ブラウズセッション要求は、要求されたコンテンツのための1つ以上のソースを識別する情報を含んでもよい。識別子は、ウェブサイトまたは他のネットワークにアクセス可能なコンテンツ等、ネットワークリソースのネットワークアドレスの形態である可能性がある。例えば、ユーザは、URL(例えばhttp://www.xyzwebsite.com)を選択し、またはブラウザウィンドウに入力して、クライアントコンピューティングデバイスに、選択されたURLを含む新しいブラウズセッションのための要求をネットワークコンピューティングおよびストレージプロバイダに伝送させてもよい。ブラウズセッション要求にサービス提供する能力のあるネットワークコンピューティングおよびストレージプロバイダのアドレスまたは位置は、ブラウザにハードコードされてもよく、ユーザによって構成可能であってもよく、ネットワークアドレスサービスから得られてもよく、またはその他の様式で決定されてもよい。
例示的な実施形態において、クライアントコンピューティングデバイスから受信されたブラウズセッション要求に応答して、ネットワークコンピューティングおよびストレージプロバイダは、ブラウザソフトウェアアプリケーションをホストするネットワークコンピューティングおよびストレージプロバイダに関連付けられた1つ以上のコンピューティングコンポーネントをインスタンス化するか、またはインスタンス化された状態にさせてもよい。例えば、ネットワークコンピューティングおよびストレージプロバイダは、通信ネットワークからリソースを要求する能力のあるソフトウェアブラウザアプリケーションを含む仮想マシンのインスタンスをインスタンス化するか、またはインスタンス化された状態にさせてもよい。例示的に、いくつかの状態において、ネットワークコンピューティングおよびストレージプロバイダに関連付けられた1つ以上のデバイスは、データセンタまたは他のロバストにネットワーク化されたコンピューティング環境内に位置し得、クライアントコンピューティングデバイスと比較して、ネットワークリソースを得るとき、比較的短い待機時間または遅延を経験し得る。
インスタンス化されたネットワークコンピューティングコンポーネントを使用して、ネットワークコンピューティングおよびストレージプロバイダは、1つ以上のコンテンツプロバイダ、コンテンツ配信ネットワーク、またはローカルもしくは関連付けられたキャッシュコンポーネントからの識別されたネットワークリソース(複数可)を要求してもよい。例えば、インスタンス化されたネットワークコンピューティングコンポーネント上のブラウザソフトウェアアプリケーションは、一次ネットワークリソースを処理し、次いで、1つ以上の埋め込みリソース識別子(例えば写真、ビデオファイル等)で識別されたコンテンツのための追加のコンテンツ要求を生成し得る。例示的に、他の場合において、非ブラウザ、アプリケーション、ネットワークリソース、またはコンテンツは、当技術分野において既知であり、特定のソフトウェアアプリケーションによってサポートされる、いずれのファイルの種類または形式も含んでもよい。
要求されたコンテンツ(例えば、要求されたネットワークリソースおよび埋め込みリソース)を得た後に、ネットワークコンピューティングおよびストレージプロバイダは、クライアントコンピューティングデバイス上で実行されているブラウザとコンピューティングおよびストレージプロバイダ上のインスタンス化されたネットワークコンピューティングコンポーネントで実行されているブラウザとの間の要求されたコンテンツ、ユーザ対話データ、中間処理結果、および他の情報の伝送に用いる遠隔セッション通信プロトコルを指定する遠隔セッションブラウジング構成を識別し得る。インスタンス化されたネットワークコンピューティングコンポーネント上のブラウザとクライアントコンピューティングデバイス上のブラウザとの間で交換された情報は、「ブラウザセッション情報」と一般に称され得る。
クライアントコンピューティングデバイスとインスタンス化されたネットワークコンピューティングコンポーネントとの間で情報を伝送するために遠隔セッション通信プロトコルを指定することに加えて、一実施形態において、識別された遠隔セッションブラウジング構成は、要求されたコンテンツ上で実行される1つ以上の処理行為が、クライアントコンピューティングデバイスではなく、またはこれに加えて、ネットワークコンピューティングおよびストレージプロバイダで行われることを指定してもよい。例示の目的のために、ブラウザによるネットワークコンテンツの処理は、コンテンツがクライアントコンピューティングデバイス上で適切な形態でレンダリングされ得る前の様々な処理行為を伴ってもよい。例えば、ウェブページは、様々なHTMLレイアウト情報、ならびにCSSスタイルシートおよびJavascript(登録商標)等の関連付けられたリソースまたは埋め込みコンテンツへの参照、ならびに画像、ビデオ、オーディオ等の埋め込みコンテンツオブジェクトを処理するために、構文解析および処理されてもよい。それぞれのオブジェクトまたはコードは、ウェブページに対応する表現オブジェクトモデルが、レイアウトおよび表示のために更に構築および処理される得る前に、構文解析および処理されてもよい。選択された遠隔セッションブラウジング構成によれば、クライアントコンピューティングデバイスおよびインスタンス化されたネットワークコンピューティングコンポーネントは、ブラウザセッション情報(例えば、要求されたコンテンツを表現する状態データまたは表示データ)によって処理結果を交換してもよい。
図1は、コンテンツ要求の管理および処理のためのネットワーク化されたコンピューティング環境100を説明するブロック図である。図1で説明されるように、ネットワーク化されたコンピューティング環境100は、コンテンツプロバイダ104、CDNサービスプロバイダ106、またはネットワークコンピューティングおよびストレージプロバイダ107からのコンテンツおよびコンテンツ処理を要求するための、いくつかのクライアントコンピューティングデバイス102(クライアントと一般に称される)を含む。例示的な実施形態において、クライアントコンピューティングデバイス102は、パーソナルコンピューティングデバイス、ラップトップコンピューティングデバイス、携帯式コンピューティングデバイス、端末コンピューティングデバイス、携帯デバイス(例えば、携帯電話、タブレットコンピューティングデバイス等)無線デバイス、様々な電子デバイスおよび器具等を含む、広範なコンピューティングデバイスに対応することができる。例示的な実施形態において、クライアントコンピューティングデバイス102は、ワイドエリアネットワークまたはローカルエリアネットワーク等の通信ネットワーク108を介する通信を確立するために必要なハードウェアおよびソフトウェアコンポーネントを含む。例えば、クライアントコンピューティングデバイス102は、インターネットまたはイントラネットを介する通信を容易にする、ネットワーク化機器およびブラウザソフトウェアアプリケーションで装備されてもよい。クライアントコンピューティングデバイス102は、中央処理装置およびアーキテクチャ、メモリ、大容量ストレージ、グラフィック処理ユニット、通信ネットワークの利用可能性および帯域等、様々なローカルコンピューティングリソースを有してもよい。
ネットワーク化されたコンピューティング環境100は、通信ネットワーク108を介して1つ以上のクライアントコンピューティングデバイス102または他のサービスプロバイダ(例えば、CDNサービスプロバイダ106、ネットワークコンピューティングおよびストレージプロバイダ107等)と通信する、コンテンツプロバイダ104も含み得る。図1で説明されるコンテンツプロバイダ104は、コンテンツプロバイダに関連付けられた1つ以上のコンピューティングデバイスの論理的関連付けに対応する。具体的には、コンテンツプロバイダ104は、クライアントコンピューティングデバイス102または他のサービスプロバイダからのコンテンツ(ウェブページ等)のための要求を得て、処理するための1つ以上のサーバコンピューティングデバイスに対応する、ウェブサーバコンポーネント110を含み得る。コンテンツプロバイダ104は、CDNサービスプロバイダからのネットワークリソースのための要求を得て、処理するための1つ以上のコンピューティングデバイスに対応する、元のサーバコンポーネント112および関連付けられたストレージコンポーネント114を更に含み得る。コンテンツプロバイダ104は、ストリーミングコンテンツ要求を処理するためのデータストリーミングサーバ等、アプリケーションサーバコンピューティングデバイス111をなお更に含み得る。当業者は、コンテンツプロバイダ104がコンテンツおよびリソース、DNSネームサーバ等の管理のための追加のコンピューティングデバイス等、様々な追加のコンピューティングリソースに関連付けられ得ることを理解するであろう。例えば、図1で説明されないが、コンテンツプロバイダ104は、コンテンツプロバイダのドメインに対応するクライアントコンピューティングデバイスのDNSクエリを解決する権限がある、1つ以上のDNSネームサーバコンポーネントに関連付けられ得る。
続けて図1を参照して、ネットワーク化されたコンピューティング環境100は、通信ネットワーク108を介して1つ以上のクライアントコンピューティングデバイス102および他のサービスプロバイダと通信する、CDNサービスプロバイダ106を更に含み得る。図1で説明されるCDNサービスプロバイダ106は、CDNサービスプロバイダに関連付けられた1つ以上のコンピューティングデバイスの論理的関連付けに対応する。具体的には、CDNサービスプロバイダ106は、通信ネットワーク108上のノードに対応する、いくつかのポイントオブプレゼンス(Point of Presence(「POP」))位置116、122、128を含み得る。それぞれのCDN POP116、122、128は、クライアントコンピュータ102からのDNSクエリを解決するためのいくつかのDNSサーバコンピューティングデバイスからなる、DNSコンポーネント118、124、130を含む。それぞれのCDN POP116、122、128は、コンテンツプロバイダからのリソースを記憶し、様々な要求リソースを様々なクライアントコンピュータに伝送するためのいくつかのキャッシュサーバコンピューティングデバイスからなる、リソースキャッシュコンポーネント120、126、132も含む。DNSコンポーネント118、124、および130、ならびにリソースキャッシュコンポーネント120、126、132は、負荷分散または負荷分割ソフトウェア/ハードウェアのコンポーネントを含むが、これらに限定されない通信を容易にする、追加のソフトウェアおよび/またはハードウェアコンポーネントを更に含んでもよい。
例示的な実施形態において、DNSコンポーネント118、124、130およびリソースキャッシュコンポーネント120、126、132は、コンポーネントまたはコンポーネントの一部が物理的に別個であるかに関わらず、論理的にグループ化されていると見なされる。加えて、CDN POP116、122、128は、CDNサービスプロバイダ106と論理的に関連付けられたものとして図1で説明されるが、CDN POPは、クライアントコンピューティングデバイス102の様々な人口統計を最良に機能させる様式で、通信ネットワーク108全体に地理的に分散されるであろう。加えて、当業者は、CDNサービスプロバイダ106がコンテンツおよびリソースの管理のための追加のコンピューティングデバイス等、様々な追加のコンピューティングリソースに関連付けられ得ることを理解するであろう。
更に続けて図1を参照して、ネットワーク化されたコンピューティング環境100は、通信ネットワーク108を介して1つ以上のクライアントコンピューティングデバイス102、CDNサービスプロバイダ106、およびコンテンツプロバイダ104と通信する、ネットワークコンピューティングおよびストレージプロバイダ107も含み得る。図1で説明されるネットワークコンピューティングおよびストレージプロバイダ107は、ネットワークコンピューティングおよびストレージプロバイダに関連付けられた、1つ以上のコンピューティングデバイスの論理的関連付けにも対応する。具体的には、ネットワークコンピューティングおよびストレージプロバイダ107は、通信ネットワーク108上のノードに対応する、いくつかのポイントオブプレゼンス(「POP」)位置134、142、148を含み得る。それぞれのPOP134、142、148は、仮想マシンのいくつかのインスタンスを介する、データストリーミングアプリケーション等、アプリケーションをホストするためのネットワークコンピューティングコンポーネント(NCC)136、144、150を含み、一般的に、NCCのインスタンスと称される。当業者は、NCC136、144、150が、仮想マシンの複数のインスタンスを提供し、または仮想マシンのインスタンスの作成を動的に引き起こすための物理的コンピューティングデバイスリソースおよびソフトウェアを含むことを理解するであろう。そのような作成は、クライアントコンピューティングデバイスから等、特定の要求に基づくことができ、またはNCCは、独力で仮想マシンのインスタンスの動的作成を開始し得る。それぞれのNCC POP134、142、148は、NCC136、144、150のインスタンスによって処理され、様々なクライアントコンピュータ等に送信されるコンテンツプロバイダからのユーザデータ、状態情報、処理要件、履歴使用データ、およびリソースを備えるが、これらに限定されない、ネットワークまたはコンピューティングリソースの配信または処理において使用される任意の種類のデータを記憶するための、いくつかのストレージデバイスからなる、ストレージコンポーネント140、146、152も含む。NCC136、144、150およびストレージコンポーネント140、146、152は、要求されたアプリケーションをサポートし、および/または情報をDNSネームサーバに提供し、要求ルーティングを容易にする、仮想マシンのインスタンスを選択するための負荷分散または負荷分割のソフトウェア/ハードウェアコンポーネントを含むが、これらに限定されない、通信を容易にする追加のソフトウェアおよび/またはハードウェアコンポーネントを更に含んでもよい。
例示的な実施形態において、NCC136、144、150およびストレージコンポーネント140、146、152は、コンポーネントまたはコンポーネントの一部が物理的に別個であるかに関わらず、論理的にグループ化されていると見なされる。例えば、ネットワークコンピューティングおよびストレージプロバイダ107は、NCCおよびストレージコンポーネントを提供するための別個のPOPを維持してもよい。加えて、NCC POP134、142、148は、ネットワークコンピューティングおよびストレージプロバイダ107と論理的に関連付けられたものとして図1で説明されるが、NCC POPは、クライアントコンピューティングデバイス102の様々な人口統計を最良に機能させる様式で、通信ネットワーク108全体に地理的に分散されるであろう。加えて、当業者は、ネットワークコンピューティングおよびストレージプロバイダ107が、コンテンツおよびリソースの管理のための追加のコンピューティングデバイス等、様々な追加のコンピューティングリソースに関連付けられ得ることを理解するであろう。なお更に、当業者は、ネットワークコンピューティングおよびストレージプロバイダ107のコンポーネントおよびCDNサービスプロバイダ106のコンポーネントが同一または異なるエンティティによって管理され得ることを理解するであろう。
ここで図2〜6を参照して、図1のネットワーク化されたコンピューティング環境100の様々なコンポーネントの間の対話が説明される。具体的には、図2〜6は、ネットワークコンピューティングおよびストレージプロバイダ107を介する、クライアントコンピューティングデバイス102とコンテンツプロバイダ104との間のコンテンツの交換のためのネットワーク化されたコンピューティング環境100の様々なコンポーネントの間の対話を例示する。しかし、例示の目的のために、図示は、簡略化されており、したがって、通信を容易にするために使用されるコンポーネントの多くは示されない。当業者であれば、そのようなコンポーネントが利用されることができ、したがって、追加の対話が本開示の趣旨および範囲を逸脱することなく行われることを理解するであろう。
図2を参照して、クライアントコンピューティングデバイス102からネットワークコンピューティングおよびストレージプロバイダ107へのブラウズセッション要求を生成および処理することから開始し得る処理が記載される。例示的に、クライアントコンピューティングデバイス102は、イベントまたはユーザ要求に応答してネットワークコンテンツを表示するためのブラウザを読み込んでもよい。ブラウザが読み込まれた後、ブラウザは、新しいブラウズセッションを要求するために実装されてもよい。クライアントコンピューティングデバイスのユーザの観点から、新しいブラウズセッションの要求は、1つ以上の対応するコンテンツプロバイダ104に要求を伝送するための意図された要求に対応する。例示的に、この要求は、ブラウザ読み込み(例えば、既定または「ホーム」ページのための要求)の結果として自動的に生成されてもよく、またはユーザがリンクに従い、またはネットワークアドレスをアドレスバーに入力する結果として生成されてもよい。図2で説明されるように、ブラウズセッション要求は、まず、ネットワークコンピューティングおよびストレージプロバイダ107に伝送される。例示的な実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、登録のアプリケーションプログラムインターフェース(「API」)を利用し、クライアントコンピューティングデバイス102からのブラウズセッション要求を承諾する。ブラウズセッション要求は、要求されたネットワークリソースに対応するネットワークアドレス情報を含むことができ、これは、インターネットプロトコル(「IP」)アドレス、URL、メディアアクセス制御(Media Access 制御(「MAC」))アドレス等を含むが、これらに限定されない、いずれの形態であってもよい。
ブラウズセッション要求の受信後、ネットワークコンピューティングおよびストレージプロバイダ107は、ブラウズセッション要求にサービス提供するためのNCC POP142等、関連付けられたネットワークコンピューティングコンポーネント(以下、「NCC」)のポイントオブプレゼンス(以下、「POP」)を選択してもよい。NCC POPの選択は、インスタンス化された仮想マシンに利用可能な処理およびネットワークリソースを決定してもよい。NCC POPインスタンス時の処理およびネットワークリソースの選択およびソフトウェアの提供は、少なくともある程度、コンテンツプロバイダ104およびクライアントコンピューティングデバイス102との通信を最適化するために行われてもよい。
図3を参照して、ネットワークコンピューティングおよびストレージプロバイダ107からコンテンツプロバイダ104へのネットワークリソースのための要求の生成および処理のための例示的な対話が記載される。図3で説明されるように、選択されたNCC POP142は、上の図2に図示される例示的なブラウズセッション要求等、ブラウズセッション要求に基づいて、1つ以上のコンテンツプロバイダに対応するブラウズセッションを生成してもよい。例示的に、新しいブラウズセッションインスタンスをインスタンス化することは、NCC POP142での新しい仮想マシンインスタンスおよび/またはブラウザインスタンスを読み込むことと、デバイスメモリ、ストレージもしくはキャッシュスペース、プロセッサ時間、ネットワーク帯域、または新しいブラウズセッションのための他の演算もしくはネットワークのリソースを予約し、または割り当てることとを含んでもよい。
新しいブラウズセッションインスタンスを初期化した後、NCC POP142は、ブラウズセッション要求に含まれるネットワークアドレスに基づいて、ネットワークリソースのための要求をコンテンツプロバイダ104に提供してもよい。例えば、ブラウズセッション要求は、「http://www.xyzsite.com/default.htm」等、ウェブページのためのURLを含んでもよい。NCC POP142は、ネットワークコンピューティングおよびストレージプロバイダ(図示せず)に関連付けられたDNSリゾルバによって、URLをIPアドレスに解決してもよく、解決されたIPアドレスにおける、コンテンツプロバイダ104からのウェブページを要求してもよい。様々な実施形態において、ネットワークリソースは、コンテンツプロバイダ、コンテンツ配信ネットワーク(以下、「CDN」)サーバ、またはネットワークコンピューティングおよびストレージプロバイダ107に関連付けられたキャッシュのいずれかの組み合わせから読み出されてもよい。例えば、ネットワークコンピューティングおよびストレージプロバイダは、リソースが、ローカルキャッシュまたは別のサーバもしくはネットワークコンピューティングおよびストレージプロバイダ107に関連付けられたサービスプロバイダに記憶されているかを確認してもよい。ネットワークリソースがローカルまたは関連付けられた位置に記憶される場合、NCC POP142は、第三者のコンテンツプロバイダ104またはCDNサービスプロバイダ106からではなく、ローカルまたは関連付けられた位置からネットワークリソースを読み出してもよい。例示的に、NCC POP142は、ブラウズセッション要求に含まれる任意の数のネットワークリソースのための要求を提供してもよく、任意の数の異なるソースからこれらのネットワークリソースを順次、または平行して得てもよい。
図3で説明されるように、コンテンツプロバイダ104は、NCC POP142からのリソース要求を受信し、要求をそれに応じて処理する。一実施形態において、コンテンツプロバイダ104は、元々クライアントコンピューティングデバイス102によって提供される場合と同じく、リソース要求を処理する。例えば、コンテンツプロバイダ104は、要求するクライアントコンピューティングデバイス102の要件に応じて、コンテンツの種類、コンテンツの並び順、またはコンテンツのバージョンを選択してもよい。別の実施形態において、コンテンツプロバイダ104は、要求されたコンテンツ(例えば、処理リソースまたはネットワーク帯域の利用可能量)を提供する際に利用するためのNCC POP142に関連付けられた情報を提供する、情報を提供されてもよい。
コンテンツプロバイダ104からの要求されたネットワークリソース(またはコンテンツプロバイダによって明示された他のソース)を得た後、NCC POP142は、ネットワークリソースを処理し、埋め込みリソース識別子を抽出し、遠隔セッションブラウジング構成の決定のための情報を集めてもよい。例えば、ウェブページ等のネットワークリソースは、埋め込みCSSスタイル情報およびJavascript(登録商標)、ならびにテキスト、画像、ビデオ、オーディオ、アニメーション、実行可能なコード、および他のHTML、CSS、およびJavascript(登録商標)ファイル等の追加のリソースに対する埋め込みリソース識別子を含んでもよい。埋め込みリソース識別子を抽出する処理において、NCC POP142は、図4を参照して以下に論じられる、遠隔セッションブラウジング構成の決定の際に後で使用するための処理済みネットワークリソースについての情報を集めてもよい。
図4を参照して、ネットワークコンピューティングおよびストレージプロバイダからコンテンツプロバイダおよびコンテンツ配信ネットワークへの1つ以上の埋め込みリソースに対応する、1つ以上の要求の生成および処理のための例示的な対話が開示される。図4で説明されるように、選択されたNCC POP142は、コンテンツプロバイダ104およびCDN POP116等、コンテンツの1つ以上のソースにリソース要求を提供してもよい。リソース要求は、上の図3に記載される要求されたネットワークリソース(例えば、ウェブページ)から抽出された1つ以上の埋め込みリソース識別子に基づいて、埋め込みリソースに対応してもよい。様々な実施形態において、埋め込みリソースは、ネットワークコンピューティングおよびストレージプロバイダ107に関連付けられたコンテンツプロバイダ、CDNサーバ、またはキャッシュのいずれかの組み合わせから読み出されてもよい。例えば、ネットワークコンピューティングおよびストレージプロバイダは、埋め込みリソースが、ネットワークコンピューティングおよびストレージプロバイダ107に関連付けられた、ローカルキャッシュまたは別のサーバもしくはサービスプロバイダに記憶されているかを確認してもよい。埋め込みリソースがローカルまたは関連付けられた位置に記憶される場合、NCC POP142は、第三者のコンテンツプロバイダまたはCDNではなく、ローカルまたは関連付けられた位置から埋め込みリソースを読み出してもよい。例示的に、NCC POP142は、ネットワークリソースによって参照される、任意の数の埋め込みリソースのための要求を提供してもよく、任意の数の異なるソースからこれらの埋め込みリソースを順次、または平行して得てもよい。要求されたリソースを得た後、NCC POP142は、リソースおよび要求されたコンテンツを処理し、クライアントコンピューティングデバイス102へのコンテンツの処理および通信のための遠隔セッションブラウジング構成を決定してもよい。
図5を参照して、ネットワークコンピューティングおよびストレージプロバイダとクライアントコンピューティングデバイスとの間の、処理結果およびユーザ対話データの生成および処理のための例示的対話が開示される。前に記載されたように、一実施形態において、インスタンス化されたネットワークコンピューティングコンポーネントおよびクライアントコンピューティングデバイス102上のそれぞれのブラウザは、インスタンス化されたネットワークコンピューティングコンポーネントおよびクライアントコンピューティングデバイスでの要求されたリソースの割り当ておよび処理に関する、ブラウザのセッション情報を交換し得る。図5で説明されるように、選択されたNCC POP142は、ネットワーク108を介して、初期処理結果をクライアントコンピューティングデバイス102に提供してもよい。初期処理結果は、上の図4に記載される選択された遠隔セッションブラウジング構成に従って、NCC POP142によって処理された、関連付けられた埋め込みリソースと共に、ウェブページ等の要求されたネットワークコンテンツに対応してもよい。NCC POP142は、どの追加の処理がNCC POP142、クライアントコンピューティングデバイス102、または両方で実行されるかの決定も行う。初期処理結果および処理の割り当てを受信した後、クライアントコンピューティングデバイス102は、選択された遠隔セッションブラウジング構成によって必要とされる初期処理結果に、いずれの残存処理行為も行ってもよく、ブラウザのコンテンツ表示区域で完全に処理されたコンテンツを表示してもよい。クライアントコンピューティングデバイス102は、ローカルインターフェースコンポーネントまたはコンテンツ要素との任意のローカルユーザ対話をローカルに処理してもよく、遠隔処理を必要とするユーザ対話をネットワークコンピューティングおよびストレージプロバイダ107に提供してもよい。ネットワークコンピューティングおよびストレージプロバイダ107は、クライアントコンピューティングデバイスからのコンテンツまたは遠隔ユーザ対話データに対する変更に応答して、更新された処理結果をクライアントコンピューティングデバイスに提供してもよい。
図6を参照して、クライアントコンピューティングデバイスからネットワークコンピューティングおよびストレージプロバイダへの追加の新しいブラウズセッション要求の生成および処理を例示する、図1のコンテンツ配信環境のブロック図が開示される。図6で説明されるように、第2の新しいブラウズセッション要求は、ネットワーク108全域で、クライアントコンピューティングデバイス102からネットワークコンピューティングおよびストレージプロバイダ107に送信されてもよい。例示的な実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、クライアントコンピューティングデバイス102からのブラウズセッション要求を承諾するための登録APIを使用する。
追加のブラウズセッション要求は、ユーザが、新しいコンテンツ表示区域を有する新しいブラウザウィンドウを開き、既存のブラウザウィンドウで新しいコンテンツ表示区域を開き(例えば、ブラウザで新しいタブを開く)、既存のコンテンツ表示区域で新しいネットワークコンテンツを要求すること(例えば、新しいネットワークリソースへのリンクに従い、または新しいネットワークアドレスをブラウザに入力する)、またはその他のユーザ対話に応答して、クライアントコンピューティングデバイス102によって生成されてもよい。例えば、第1のブラウズセッションインスタンスに対応する第1のウェブページを閲覧するユーザは、第2のウェブページを表示するために新しいタブまたはブラウザウィンドウを開く、リンクに従ってもよい。一実施形態において、第2のウェブページに関連付けられたコンテンツを得て、処理する、いずれの要求されるステップも、ブラウザが両方のリソース要求の処理を扱い得る、現在、インスタンス化されているネットワークコンピューティングコンポーネントによって行われてもよい。別の実施形態において、クライアントコンピューティングデバイス102の要求は、第2のウェブページのネットワークアドレスを含む、ネットワークコンピューティングおよびストレージプロバイダ107への新しいブラウズセッション要求として、処理されてもよい。本実施形態において、クライアントコンピューティングデバイス上のブラウザは、別個のブラウズセッションを特に要求しなくてもよく、クライアントコンピューティングデバイス102上でのブラウザとのユーザの対話は、同一のブラウジングセッションの一部であるように見えてもよい。図2および3に関して上に記載されたように、ネットワークコンピューティングおよびストレージプロバイダ107は、第2のウェブページに関連付けられたコンテンツを得て、処理するためのネットワークコンピューティングコンポーネントのインスタンス化を引き起こしてもよい。別の実施形態において、新しいブラウズセッション要求は、ネットワークリソース(例えば、ウェブページのフレーム)のセクション、個々のネットワークリソース、または埋め込みリソース自体、コンテンツの組に含まれたデータオブジェクト、もしくは個々のネットワークリソースに対応する、クライアントコンピューティングデバイス102によって生成されてもよい。
例示的に、追加のブラウズセッション要求は、ユーザに関連付けられた情報、クライアントコンピューティングデバイス102(例えば、ハードウェアもしくはソフトウェア情報、デバイスの物理的もしくは論理的位置等)に関連付けられた情報、ネットワーク108に関連付けられた情報、ユーザまたはブラウザの選好(例えば、要求された遠隔セッションブラウズプロトコル、選好一覧、デシジョンツリー、または他の情報)、ネットワークコンピューティングおよびストレージプロバイダ107に関連付けられた情報、1つ以上の要求されたネットワークコンテンツ(例えば、ネットワークリソースのネットワークアドレス)に関連付けられた情報等を含むが、これらに限定されない、任意の数のデータまたは情報を含んでもよい。要求されたコンテンツは、ウェブページまたは他のドキュメント、テキスト、画像、ビデオ、オーディオ、実行可能なスクリプト、またはコード、またはいずれの種類のデジタルリソースも含む、いずれの様式のデジタルコンテンツも含んでもよい。
ブラウズセッション要求の受信後、ネットワークコンピューティングおよびストレージプロバイダ107は、NCC POP142等、関連付けられたネットワークコンピューティングコンポーネントを選択し、ブラウズセッション要求にサービス提供してもよい。図2を参照して上で論じられたように、ネットワークコンピューティングおよびストレージプロバイダ107は、NCC POPを選択し、利用可能なNCC POPリソース(例えば、利用可能なメモリ、プロセッサ負荷、ネットワーク負荷等)、NCC POPでブラウズセッション要求にサービス提供する財務コスト、クライアントコンピューティングデバイス102に対するNCC POP位置、コンテンツプロバイダ112、またはCDN POP116、NCC POPキャッシュ状態(例えば、要求されたリソースがNCC POPキャッシュにすでに記憶されているか否か)等を含むが、これらに限定されない、任意の数の要因に基づいて、ブラウズセッション要求にサービス提供してもよい。一実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、いくつかのNCC POPを選択し、ブラウズセッション要求にサービス提供してもよい。例示的に、ネットワークコンピューティングおよびストレージプロバイダ107は、例示の目的のために、ここではNCC POP142を選択しているものとして図示されるが、ネットワークコンピューティングおよびストレージプロバイダ107は、任意の現存するNCC POPを選択し、ブラウズセッション要求にサービス提供してもよい。例えば、単一のクライアントコンピューティングデバイス102は、異なるネットワークリソースに対応するネットワークコンピューティングおよびストレージプロバイダ107に、3つの異なるブラウズセッション要求を同時に、または順次に提供してもよい。ネットワークコンピューティングおよびストレージプロバイダ107は、それぞれのブラウズセッション要求のための異なるNCC POP、全ての3つのブラウズセッション要求のための同一のNCC POP、またはこれらのいずれかの組み合わせを選択してもよい。上述のように、以前のブラウズセッション要求または同時に起こるブラウズセッション要求のために利用されたものとは異なるNCC POPを選択するかの決定は、利用可能なシステムリソースに基づいて、無作為に、または上述および図2に関するその他の要因に従って行われてもよい。
図7は、例示的なブラウザインターフェースおよびブラウズセッションコンテンツの表示を図示する、ユーザインターフェース図である。図5を参照して上に記載されたように、ブラウザ700は、コンテンツ表示区域702、ならびに1つ以上のローカルインターフェースコンポーネントを有してもよい。これらのローカルインターフェースコンポーネントは、ツールバー、メニュー、ボタン、アドレスバー、スクロールバー、ウィンドウサイズ変更制御、またはその他のユーザインターフェース制御を含んでもよい。例示的に、ローカルインターフェースコンポーネントは、コンテンツ表示区域とは別個のものとして表示されてもよく、またはコンテンツ表示区域内にオーバーレイされ、または埋め込まれてもよい。
ローカルインターフェースコンポーネントとの対話は、対話および遠隔セッションブラウジング構成によって必要とされる処理に応じて、ローカルユーザ対話または遠隔ユーザ対話として扱われてもよい。例えば、ブラウザメニューでの選好オプションの選択は、完全にブラウザによるローカルユーザ対話として扱われてもよい。メニューを表示し、選択に関する視覚的フィードバックを提供し、選好ウィンドウを表示し、ブラウザ選好に対してなされた変更を処理するために必要とされる処理は、ローカルに行われてもよい。上述のように、ユーザ対話をローカルに処理することは、処理のためにユーザ対話データをNCC POP142に送信することとは異なり、ブラウザでのより大きな応答性を提供する場合がある。別の例としては、NCC POP142(例えば、RDP等の遠隔セッション通信プロトコルを使用する遠隔セッションブラウジング構成)上で広範な処理を指定する遠隔セッションブラウジング構成を使用するとき、ブラウザツールバーにおけるコンテンツリフレッシュボタンの選択は、ローカルユーザ対話および遠隔ユーザ対話の両方として扱われてもよい。ボタン選択に対応するインターフェースフィードバックを提供するために必要とされる限定された処理は、インターフェース応答性の外観を提供するためにクライアントコンピューティングデバイス102で扱われてもよいが、一方でリフレッシュコマンドは、ブラウザのコンテンツ表示区域で表示されるネットワークコンテンツの処理を必要とする場合があり、処理用NCC POP142にユーザ対話データとして送信されてもよい。次いで、NCC POP142は、リフレッシュされたネットワークコンテンツに対応する更新された処理結果を表示のためにクライアントコンピューティングデバイス102に戻して伝送してもよい。
図8は、一連の処理サブシステム800としての例示的なブラウザコンテンツ処理行為を図示する図である。多くの実施形態において、ブラウザは、一連の処理行為のコンテンツ(例えば、ウェブページおよび関連付けられた埋め込みリソース等のネットワークリソース)の組を処理してもよい。例示的に、かつ図3〜5を参照して記載されるように、遠隔セッションブラウジング構成は、ネットワークコンピューティングおよびストレージプロバイダ(例えば、NCC POP)で行われた処理行為とクライアントコンピューティングデバイス102で行われた処理行為との間の分割を指定してもよい。この分割は、NCC POPおよびクライアントコンピューティングデバイス102のそれぞれによって行われるいくつかの処理行為を明示してもよく、または全ての処理行為を単一のデバイスまたはコンポーネントに割り当ててもよい。例えば、NCC POPは、ブラウズセッションインスタンスでこれらの様々な処理行為の全てを行い、ビットマップアセンブリまたは表示のために、完全に処理されたRDP処理結果をクライアントコンピューティングデバイス102に送信してもよい。任意の数の異なる遠隔セッションブラウジング構成は、NCC POPで実行される1つ以上のブラウズセッションインスタンスによって使用されてもよい。
当業者は、ここに示されるサブシステムが例示の目的のために図示され、必要な順番またはブラウザサブシステムの最終的な列挙を記載することを意図されないことを理解するであろう。様々なブラウザソフトウェアコンポーネントは、追加の、またはここに示されるより少ないブラウザサブシステムを実装してもよく、サブシステムまたは対応する処理行為を任意の数の異なる様式で指示してもよい。例示目的のためにここに示される処理サブシステム800がウェブページまたは他のウェブコンテンツの処理を対象とするが、当業者であれば、他のファイルの種類またはネットワークリソースの処理が同様の様式で分割されてもよいことを理解するであろう。例えば、当業者であれば、同様のスキーマが、画像、ビデオ、オーディオ、データベース情報、3次元デザインデータ、または当技術分野で既知のその他のファイル形式または種類のデータの処理のために開発されてもよいことを理解するであろう。類似のスキーマは、スケジューリング、メモリまたはファイル管理、システムリソース管理、処理もしくはサービス実行または管理等の動作を処理する、任意の数のデバイス動作システムまたはソフトウェアフレームワークのためにも開発されてもよい。更に、HTMLプロトコルおよびRDP遠隔セッション通信プロトコルは、本明細書で例示の目的のために論じられるが、当業者は、遠隔セッションブラウジング構成が任意の数の指定された処理行為のために任意の数の遠隔通信プロトコルを実装してもよく、遠隔セッションブラウジング構成は、クライアントコンピューティングデバイス102とネットワークコンピューティングおよびストレージプロバイダ107とのいずれかの組み合わせで下記に識別される、任意の分数または行為の組み合わせを行うように公式化されてもよいことを理解するであろう。
例示的に、ネットワークコンテンツの処理および表示において伴われる第1の処理サブシステムは、ネットワーク化サブシステム802である。例示的に、ネットワーク化サブシステム802は、ウェブコンテンツのローカルキャッシングを含む、ブラウザとコンテンツプロバイダとの間の全ての通信を担当してもよい。ネットワーク化サブシステムは、一般的に、ユーザのネットワークの性能によって限定される。ネットワーク化サブシステム802での処理行為を分割する遠隔セッションブラウジング構成は、HTML遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成を含んでもよく、1つ以上のキャッシングまたはリソース読み出し行為は、NCC POPで行われたが、コンテンツの構文解析および処理は、クライアントコンピューティングデバイスで行われた。
HTMLドキュメント等のネットワークリソースがサーバからダウンロードされるとき、ドキュメントを構文解析し、ネットワーク化サブシステムにおいて追加のダウンロードを開始し、ドキュメントの構造表現を作成する、HTMLサブシステム804に渡されてもよい。モダンブラウザは、XHTML、XMLおよびSVGドキュメントのために使用される関係するサブシステムも含んでもよい。HTMLサブシステム804での処理行為を分割する遠隔セッションブラウジング構成は、HTML遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成を含んでもよく、初期のHTMLページは、埋め込みリソース識別子を抽出するためにNCC POPで処理されるが、コンテンツの追加の構文解析および処理は、クライアントコンピューティングデバイスで行われる。別の実施形態において、HTMLサブシステム804での処理行為を分割する遠隔セッションブラウジング構成は、HTMLドキュメントの構造表現を作成するために初期処理を行い、構造表現および関連付けられた埋め込みリソースを備える処理結果を、処理用クライアントコンピューティングデバイスに提供してもよいであろう。
HTMLドキュメント内であれ、埋め込みCSSドキュメント内であれ、CSSが遭遇されるとき、スタイル情報を構文解析し、後で参照され得る構造表現を作成するために、CSSサブシステム806に渡されてもよい。例示的に、CSSサブシステム806での処理行為を分割する遠隔セッションブラウジング構成は、CSS構造表現およびHTML構造表現を含む処理結果を構築し、処理結果および関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
HTMLドキュメントは、多くの場合、メタデータ、例えば、ドキュメントヘッダーに記載される情報または要素に適用される属性を含む。コレクションサブシステム808は、このメタデータを記憶し、アクセスすることを担当してもよい。コレクションサブシステム808での処理行為を分割する遠隔セッションブラウジング構成は、上述のその他の構造表現と共に処理済みメタデータを含む処理結果を構築し、処理結果および関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
Javascript(登録商標)が遭遇されるとき、スクリプトを実行することを担当するJavaScript(登録商標)サブシステム810に直接渡されてもよい。Javascript(登録商標)サブシステム810は、年来、完全に検証されており、当技術分野において最も周知のブラウザサブシステムのうちの1つであり得る。Javascript(登録商標)サブシステム810での処理行為を分割する遠隔セッションブラウジング構成は、ネイティブまたは中間形態のスクリプトの状態データまたは表現、ならびに上述のその他の処理済み構造またはデータを含むが、これらに限定されない、1つ以上のJavascript(登録商標)スクリプトの内部表現を含む処理結果を構築し、処理結果および関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
多くのJavaScript(登録商標)エンジンはブラウザに直接に統合されていないため、ブラウザとスクリプトエンジンとの間のマーシャリングサブシステム812を含む通信レイヤが存在する場合がある。この通信レイヤを通して情報を渡すことは、一般的に、マーシャリングと称される。マーシャリングサブシステム812での処理行為を分割する遠隔セッションブラウジング構成は、マーシャリングデータ、ならびに上述のその他の処理済み構造、スクリプト、またはデータを含む処理結果を構築し、処理結果および関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
いくつかの実施形態において、JavaScript(登録商標)は、ドキュメントオブジェクトモデルAPIを介してウェブドキュメント等の基礎的ネットワークリソースと対話する。これらのAPIは、どのようにドキュメントにアクセスして操作するかを知り、スクリプトエンジンとブラウザとの間の一次対話地点である、ネイティブなオブジェクトモデルサブシステム814を介して提供されてもよい。例示的に、ネイティブなオブジェクトモデルサブシステム814での処理行為を分割する遠隔セッションブラウジング構成は、ネイティブなオブジェクトモデル状態データまたはAPI呼び出し、ならびに上述のその他の処理済み構造、スクリプト、またはデータを含む処理結果を構築してもよく、処理結果およびその他の関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
一度ドキュメントが構築されると、ブラウザは、ユーザに対して表示され得る前にスタイル情報を適用する必要がある場合がる。書式設定サブシステム816は、HTMLドキュメントを取り出し、スタイルを適用する。例示的に、書式設定サブシステム816での処理行為を分割する遠隔セッションブラウジング構成は、適用されたスタイルを伴うHTML表現、ならびに上述のその他の処理済み状態データ、API呼び出し、構造、スクリプト、またはデータを含む処理結果を構築し、処理結果およびその他の関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
一実施形態において、CSSは、ブロックに基づくレイアウトシステムである。ドキュメントがスタイル設定された後、ブロックビルドサブシステム818での次のステップは、ユーザに対して表示される矩形のブロックを構築することであってもよい。この処理は、ブロックのサイズ等の事柄を決定してもよく、次の段階、レイアウトと密接に統合されてもよい。ブロックビルドサブシステム818での処理行為を分割する遠隔セッションブラウジング構成は、ブロック情報、ならびに上述のその他の処理済み状態データ、API呼び出し、構造、スクリプト、またはデータを含む処理結果を構築し、処理結果およびその他の関連付けられた埋め込みリソースを、処理用クライアントコンピューティングデバイスに提供してもよい。
ブラウザがコンテンツをスタイル設定し、ブロックを構築した後、コンテンツをレイアウトする処理を経てもよい。レイアウトサブシステム820は、このアルゴリズム的に複雑な処理を担当する。例示的に、レイアウトサブシステム820での処理行為を分割する遠隔セッションブラウジング構成は、上述の様々な状態データ、API呼び出し、構造、スクリプト、またはデータを処理し、クライアントコンピューティングデバイスのためのレイアウト情報を含む処理結果を構築してもよい。例示的に、NCC POPは、クライアントコンピューティングデバイスのために好適なレイアウトを生成するために、(例えば、初期ブラウズセッション要求において提供される)クライアントコンピューティングデバイスまたはブラウザに関連付けられた様々なデータまたは設定を使用してもよい。例えば、携帯デバイスは、スクリーン解像度および表示モードをNCC POPに提供してもよい。NCC POPは、携帯デバイス上で実行するブラウザのために好適なコンテンツ表現に対応する処理結果を生成するために、このスクリーン解像度および表示モードにレイアウト計算を基づかせてもよい。例示的に、様々な実施形態において、NCC POPによって実装されるその他のサブシステムは、クライアントのための処理結果を生成するときに、クライアントコンピューティングデバイスまたはブラウザに関連付けられたデータを使用してもよい。
本処理の最終段階は、最終コンテンツがユーザに対して表示される、表示サブシステム822内で行われてもよい。この処理は、多くの場合、描画と称される。ネットワーク化サブシステム802での処理行為を分割する遠隔セッションブラウジング構成は、RDP遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成を含んでもよく、ほぼ全ての処理はNCC POPで行われ、ビットマップデータおよび低レベルインターフェースデータを含む処理結果は、表示のためにクライアントコンピューティングデバイスに渡される。
図9は、図1のネットワークコンピューティングおよびストレージプロバイダ107によって実装される新しいブラウズセッションルーチン900を例示する、流れ図である。新しいブラウズセッションルーチン900は、ブロック902で開始する。ブロック904で、ネットワークコンピューティングおよびストレージプロバイダ107は、クライアントコンピューティングデバイス102からの新しいブラウズセッション要求を受信する。前に記載されたように、クライアントコンピューティングデバイス102は、イベントまたはユーザ要求に応答してネットワークコンテンツを表示するためのブラウザを読み込んでもよい。ブラウザが読み込まれた後、ブラウザは、新しいブラウズセッションを要求するために実装されてもよい。クライアントコンピューティングデバイスのユーザの観点から、新しいブラウズセッションのための要求は、1つ以上の対応するコンテンツプロバイダ104への要求を伝送するための意図された要求に対応する。例示的に、この要求は、ブラウザ読み込み(例えば、既定または「ホーム」ページのための要求)の結果として自動的に生成されてもよく、またはユーザがリンクに従い、またはネットワークアドレスをアドレスバーに入力することの結果として生成されてもよい。このブラウズセッション要求は、クライアントコンピューティングデバイス102によって要求された様々なネットワークリソースに対する1つ以上のアドレスもしくは参照または他のコンテンツを含んでもよい。例示的な実施形態において、ブラウズセッション要求は、APIに従って伝送される。
ブロック906で、ネットワークコンピューティングおよびストレージプロバイダ107は、関連付けられたNCC POPを選択し、ブラウズセッション要求に基づいて新しいブラウズセッションをインスタンス化してもよい。図1を参照して上で論じられたように、ネットワークコンピューティングおよびストレージプロバイダ107は、物理的または論理的位置全域に分散された任意の数のNCC POPを含んでもよい。ネットワークコンピューティングおよびストレージプロバイダ107は、NCC POPを選択し、利用可能なNCC POPリソース(例えば、利用可能なメモリ、プロセッサ負荷、ネットワーク負荷等)、NCC POPでブラウズセッション要求にサービス提供する財務コスト、クライアントコンピューティングデバイス102、コンテンツプロバイダ104、またはCDN POP116に対するNCC POP位置、NCC POPキャッシュ状態(例えば、要求されたリソースがNCC POPキャッシュに既に記憶されているか否か)等を含むが、これらに限定されない任意の数の要因に基づいてブラウズセッション要求にサービス提供してもよい。
一実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、ブラウズセッション要求にサービス提供するためにいくつかのNCC POPを選択してもよい。例えば、ネットワークコンピューティングおよびストレージプロバイダ107は、ネットワーク内の異なる論理的位置を有する2つのNCC POPを選択してもよい。それぞれのNCC POPは、独立して、クライアントコンピューティングデバイス102の代わりにネットワークコンテンツを要求および処理してもよく、クライアントコンピューティングデバイス102は、第1のNCC POPからのデータを承諾し、処理結果を戻してもよい。ネットワークコンピューティングおよびストレージプロバイダ107によって選択された後、NCC POP142は、ブラウズセッション要求を得てもよい。一実施形態において、NCC POP142は、ネットワークコンピューティングおよびストレージプロバイダ107のコンポーネントによってブラウズセッション要求をNCC POP142に転送させてもよい。別の実施形態において、NCC POP142またはクライアントコンピューティングデバイス102は、接続情報を受信し、NCC POP142とクライアントコンピューティングデバイス102との間の直接の通信の確立を可能にし得る。例示的に、NCC POP142は、元々ネットワークコンピューティングおよびストレージプロバイダ107に提供されたブラウズセッション要求が提供されてもよく、サブセットの情報(例えば、要求されたコンテンツのネットワークアドレスのみ)が提供されてもよく、または元々のブラウズセッション要求に含まれない追加の情報が提供されてもよい。
NCC POP142が選択された後、ネットワークコンピューティングおよびストレージプロバイダ107は、NCC POP142に新しいブラウズセッションをインスタンス化させてもよい。例示的に、新しいブラウズセッションインスタンスをインスタンス化することは、NCC POP142で新しい仮想マシンインスタンスおよび/またはブラウザインスタンスを読み込み、新しいブラウズセッションのためのデバイスメモリ、ストレージもしくはキャッシュ領域、プロセッサ時間、ネットワーク帯域、または他の計算的もしくはネットワークリソースを予約し、または割り当てることを含んでもよい。例示的に、新しいブラウズセッションインスタンスおよび/またはブラウザインスタンスの1つ以上の特性は、ブラウズセッション要求に含まれるクライアントコンピューティングデバイス102の情報に基づいてもよい。例えば、ブラウズセッション要求は、デバイスの種類もしくはブラウザの種類、デバイススクリーン解像度、ブラウザ表示区域、または表示選好またはクライアントコンピューティングデバイス102もしくはブラウザの能力を定義する他の情報を含んでもよい。NCC POP142は、それに応じて、仮想マシンインスタンスおよび/またはクライアントコンピューティングデバイス102と同一または類似の能力を有するブラウザインスタンスをインスタンス化してもよい。例示的に、クライアントコンピューティングデバイス102と同一または類似の能力を有する仮想マシンインスタンスおよび/またはブラウザを維持することは、NCC POP142が特定のクライアントコンピューティングデバイス102上で表示のための適切な寸法およびレイアウトに応じてネットワークコンテンツを処理することを可能にし得る。
いくつかの実施形態において、NCC POP142は、新しいブラウズセッションをインスタンス化することに加えて、またはこの代替として、既存の仮想マシンインスタンスおよび/またはブラウザインスタンスを利用してもよい。例えば、NCC POP142が選択された後、ネットワークコンピューティングおよびストレージプロバイダ107は、NCC POP142に、NCC POP142で先にインスタンス化された1つ以上のインスタンス等の既存のブラウザインスタンスおよび/または仮想マシンインスタンスを新しいブラウズセッション要求に関連付けさせてもよい。例示的に、既存のブラウザセッションおよび/または仮想マシンインスタンスは、ユーザまたはクライアントコンピューティングデバイス102に関連付けられた別のブラウズセッション、遠隔アプリケーションセッション、または他の遠隔処理に対応してもよく、または無関係のブラウズセッションまたは遠隔処理からの先にインスタンス化されたソフトウェアインスタンスであってもよい。他の実施形態において、NCC POP142は、既存の仮想マシンインスタンスにおける新しいブラウザまたは他のアプリケーション処理をインスタンス化してもよく、または任意の数の他の様式で先にインスタンス化され、および新たにインスタンス化されたソフトウェア処理の利用を組み合わせてもよい。なお更なる実施形態において、ネットワークコンピューティングおよびストレージプロバイダまたはNCC POP142は、単一のブラウズセッション要求に基づいて、任意の数の新しい仮想マシンインスタンスおよび/またはブラウザインスタンスをインスタンス化(または既存のインスタンス化されたインスタンスを使用)してもよい。
ブロック908で、ネットワークコンピューティングおよびストレージプロバイダ107は、ブラウズセッション要求に含まれるネットワークアドレスに基づいて、1つ以上のネットワークリソースのための要求をコンテンツプロバイダまたはCDNサービスプロバイダに提供してもよい。様々な実施形態において、1つ以上のネットワークリソースは、NCC POP142に対してローカルのキャッシュから追加的にまたは交互に読み出され得るか、またはさもなければ、ネットワークコンピューティングおよびストレージのプロバイダ107に関連付けられ得る。当業者は、他の実施形態の場合において、リンクまたはネットワークアドレスが、デジタルファイルロッカー内もしくは他のネットワークストレージ位置、またはネットワークコンピューティングおよびストレージプロバイダ107もしくはクライアントコンピューティングデバイス102に関連付けられたキャッシュコンポーネントに記憶される、ドキュメントまたはファイルに対応してもよいことを理解するであろう。いくつかの実施形態において、新しいセッション要求は、ネットワークアドレスに加えて、またはこれに対する代替えとしてドキュメントまたはファイルを含んでもよい。ブロック910で、ネットワークコンピューティングおよびストレージプロバイダ107は、1つ以上のネットワークリソースを得る。要求されたネットワークリソースを得た後、NCC POP142は、埋め込みリソース識別子を抽出するためのネットワークリソースを処理してもよい。
ブロック912で、ネットワークコンピューティングおよびストレージプロバイダ107は、コンテンツプロバイダ、CDNサービスプロバイダ、およびキャッシュ等、1つ以上のソースのコンテンツにリソース要求を提供してもよい。リソース要求は、上のブロック910に記載される1つ以上のネットワークリソースから抽出された1つ以上の埋め込みリソース識別子に基づく、埋め込みリソースに対応してもよい。ブロック914で、ネットワークコンピューティングおよびストレージプロバイダ107は、これらの埋め込みリソースを任意の数の異なるソースから順次、または平行して得てもよい。
ブロック916で、ネットワークコンピューティングおよびストレージプロバイダ107は、1つ以上のネットワークリソースおよび関連付けられた埋め込みリソースを処理し、クライアントコンピューティングデバイス102へのコンテンツの処理および通信のための遠隔セッションブラウジング構成を決定してもよい。遠隔セッションブラウジング構成は、クライアントと遠隔サーバとの間のデータおよびユーザ対話もしくは要求の交換を可能にする、いずれの独占的または公共の遠隔プロトコルを含んでもよい。遠隔セッションブラウジング構成は、例示的に、処理済み(または未処理)コンテンツをブラウザのコンテンツ表示区域での表示用クライアントコンピューティングデバイスに提供するための遠隔セッション通信プロトコルおよび処理スキーマの両方を含んでもよい。
例示的に、遠隔セッションブラウジング構成は、ネットワークコンピューティングおよびストレージプロバイダとクライアントコンピューティングデバイスとの間の状態データ、ユーザ対話、ならびに他のデータおよびコンテンツの交換のためのネットワークプロトコル、信号化モデル、配送機構、またはカプセル化フォーマットを含むが、これらに限定されない、遠隔セッション通信プロトコルを定義または指定してもよい。当技術分野において既知の遠隔セッション通信プロトコルの実施例としては、リモートデスクトッププロトコル(RDP)、X―ウィンドウズ(登録商標)(X−Windows(登録商標))プロトコル、バーチャルネットワークコンピューティング(VNC)プロトコル、遠隔フレームバッファー(遠隔Frame Buffer)プロトコル、HTML等が挙げられる。例えば、例示的に、RDPは、クライアント入力(例えば、マウス移動、キーボード入力等)を遠隔コンピューティングデバイスに提供するためのプロトコルデータユニットへ符号化するためのいくつかの処理機構と、ビットマップ更新および低レベルインターフェース情報をクライアントデバイスに送信し返すための対応する機構とを指定する。別の例として、例示的に、HTMLプロトコルは、インターフェース情報を定義し、サーバからクライアントへのリソース参照を含むファイルを提供するための機構と、クライアントコンピューティングデバイスがサーバへの追加のファイルおよびリソースのための要求を提供する、対応する機構とを提供する。一実施形態において、NCC POP142は、遠隔セッション通信プロトコルを決定した後、初期通信をクライアントコンピューティングデバイス102に提供してもよい。この初期通信は、クライアントコンピューティングデバイス102が選択された遠隔セッション通信プロトコルでの通信を受信するように準備することを可能にしてもよく、HTTPのようなプル型遠隔セッション通信プロトコルの場合、クライアントコンピューティングデバイスに、初期リソース要求をNCC POP142上で実行するブラウズセッションインスタンスに送信させてもよい。
それぞれの遠隔セッションブラウジング構成は、ネットワークコンピューティングおよびストレージのサービス(例えば、NCC POP142)とクライアントコンピューティングデバイス(例えば、クライアントコンピューティングデバイス102)との間の処理行為の分割を追加的に定義してもよい。一実施形態において、処理行為の特定の分割は、特定の遠隔セッション通信プロトコルに基づき、またはこれによって委託されてもよい。別の実施形態において、遠隔セッション通信プロトコルは、プロトコルの実装または構成に応じて処理行為のいくつかの異なる分割を可能にしてもよい。例示の目的のために、多くのネットワークコンテンツ(例えば、ウェブページ、ビデオ、フラッシュドキュメント)は、コンピューティングデバイス上に表示される前に、様々な処理行為を必要としてもよい。例えば、ウェブページは、CSSスタイルシートおよびJavascript(登録商標)等の様々なHTMLレイアウト情報および関連付けられたリソースまたは埋め込みコンテンツへの参照、ならびに画像、ビデオ、オーディオ等の埋め込みコンテンツオブジェクトを処理するために、構文解析されてもよい。HTML、ならびにそれぞれの参照オブジェクトまたはコードは、典型的に、ウェブページに対応する表現オブジェクトモデルが構築され得る前に、構文解析および処理されるであろう。次いで、このオブジェクトモデルは、クライアントコンピューティングデバイス102のブラウザのコンテンツ表示区域でのレイアウトおよび表示について更に処理されてもよい。例示的なブラウザ処理行為は、図8を参照して以下により詳細に記載される。当業者は、別の実施形態またはアプリケーションの場合、様々な他の処理行為が必要とされてもよいことを理解するであろう。
遠隔セッションブラウジング構成は、ネットワークコンテンツの表示のために必要とされる処理行為の様々なものが、クライアントコンピューティングデバイス102ではなく、NCC POP142等の遠隔のコンピューティングデバイスで行われることを指定してもよい。ネットワークコンピューティングおよびストレージプロバイダで部分的に(または全体的に)処理されたネットワークコンテンツは、処理結果と称されてもよい。下で論じられるように、処理行為の分割は、NCC POP142とクライアントコンピューティングデバイス102との間のデータおよびクライアント入力を交換するために使用される、遠隔セッション通信プロトコルに関連付けられ、またはこれに連係されてもよい。
例えば、表示用クライアントコンピューティングデバイス142への低レベルインターフェース情報およびビットマップを含む処理結果を伝送する、RDP等の遠隔セッション通信プロトコルは、NCC POP142で必要なコンテンツ処理行為の全て、またはほぼ全てを行うことを指定する、遠隔セッションブラウジング構成に関連付けられてもよい。RDPを使用する間に、NCC POP142は、例えば、NCC POP142へのブラウザの完全なインスタンスを実行し、クライアントコンピューティングデバイス102への表示されたコンテンツの表現に対応するビットマップ更新からなる、処理結果を伝送してもよい。クライアントコンピューティングデバイス102は、この例において、ブラウザのコンテンツ表示区域での表示のために伝送されるビットマップ更新をアセンブルするために必要とされるのみであってもよく、例示的なネットワークコンテンツの表示に伴われる実際のHTML、Javascript(登録商標)、またはデータオブジェクトの処理のいずれも行わなくともよい。別の例としては、HTML等の遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成は、ほぼ未処理の形態でネットワークコンテンツを伝送してもよい。したがって、クライアントコンピューティングデバイス102は、ネットワークコンテンツの表示のために必要とされる処理行為の全てを行ってもよいが、一方でNCC POP142は、処理をほとんどまたは全く行わない。
NCC POP142は、要求されたリソース、コンテンツプロバイダ104、またはCDNサービスプロバイダ106のうちの1つ以上の1つ以上の特性、コンテンツアドレスまたはドメインの1つ以上の特性、クライアントコンピューティングデバイス102、ブラウザ、もしくはアプリケーション、ユーザの1つ以上の特性、NCC POP142の1つ以上の特性、またはネットワークもしくはネットワーク接続等の1つ以上の特性を含むが、これらに限定されない任意の数の要因に、遠隔セッションブラウジング構成の決定を基づかせてもよい。要求されたリソースの特性としては、データ形式、コンテンツの種類、サイズ、処理要件、リソース待機時間要件、対話要素の数または種類、セキュリティリスク、関連付けられたユーザ選好、ネットワークアドレス、ネットワークドメイン、関連付けられたコンテンツプロバイダ等が挙げられるが、これらに限定されなくてもよい。コンテンツプロバイダ104、CDNサービスプロバイダ106、コンピューティングデバイス102、またはNCC POP142の特性としては、処理能力、メモリ、ストレージ、ネットワーク接続性(例えば、利用可能な帯域または待機時間)、物理的または論理的位置、予測される安定性または故障のリスク、ソフトウェアもしくはハードウェアのプロファイル、利用可能なリソース(例えば、利用可能なメモリもしくは処理、または同時に開いているソフトウェアアプリケーションの数)等を含むがこれらに限定されなくてもよい。NCC POP142は、コンテンツまたはドメインに関連付けられた認知されるセキュリティの脅威またはリスク、クライアントコンピューティングデバイスまたはコンテンツプロバイダの選好、コンピューティングまたはネットワークリソースコスト(例えば、処理もしくは帯域、リソース使用等の財務コスト)、所定の選好または選択情報、特定の遠隔セッションブラウジング構成によって必要とされる任意の追加的処理オーバーヘッド、キャッシュ状態(例えば、特定のリソースがNCC POP142で、クライアントコンピューティングデバイス102で、またはネットワークコンピューティングおよびストレージプロバイダに関連付けられた他のネットワークストレージでキャッシュされるか否か)、要求されたネットワークコンテンツを読み出すために必要とされる予測される遅延または時間、特定の遠隔セッションブラウジング構成またはサービスレベルのために好ましいコンテンツプロバイダまたはコンテンツプロバイダとの契約、同一のユーザによって別の(または現在の)ブラウズセッションのために使用されている遠隔セッションブラウジング構成、またはその他の要因を更に考慮してもよい。
いくつかの実施形態において、NCC POP142は、遠隔セッションブラウジング構成の決定を過去の動作または習慣に基づかせてもよく、例えば、過去に特定のリソースについて遠隔ブラウズセッション構成を決定したことがあるNCC POP142は、リソースが同一の(または潜在的に異なる)ユーザによって要求されるとき、同一の遠隔のブラウズセッション構成を自動的に選択してもよい。別の例として、広範な処理要件を伴うウェブサイトに頻繁にアクセスする履歴を有するユーザは、NCC POP142で処理の大部分を行う遠隔セッションブラウジング構成を自動的に割り当てられてもよい。他の実施形態において、NCC POP142は、遠隔ブラウズセッション構成の決定を将来の動作の予測に基づかせてもよい。例えば、NCC POP142は、特定のウェブサイト、ネットワークドメイン、または関連するリソースの組について行われた過去の決定の分析に、特定のリソースについての遠隔ブラウズセッション構成の決定を基づかせてもよい。履歴上、ビデオの重いウェブページを提供したことがあるコンテンツプロバイダは、クライアントコンピューティングデバイス102でのビデオ性能に重点を置く遠隔セッションブラウジング構成に関連付けられてもよい。例示的に、過去の履歴分析および未来予測は、遠隔セッションブラウジング構成決定処理を基づかせるいくつかの要因のうちの1つ以上として見なされてもよく、または意思決定処理において最終的であってもよく、例えば、一度NCC POP142は、特定のコンテンツプロバイダについて遠隔セッションブラウジング構成を決定すると、コンテンツプロバイダからサービス提供されるいずれの将来のリソースについても、遠隔セッションブラウジング構成決定処理をスキップしてもよい。例示的に、NCC POP142は、決められた期間後、またはNCC POP142がコンテンツプロバイダによって使用されているコンテンツにおける変化を識別または決定した後、コンテンツプロバイダに関連付けられる遠隔セッションブラウジング構成を再決定してもよい。
他の実施形態において、ネットワークリソース、ウェブサイト、ネットワークドメイン、コンテンツプロバイダ、または他のネットワークエンティティは、リソースタグ、メタデータ、またはNCC POP142との他の通信における、特定の遠隔ブラウズセッション構成の使用を指定し、または別途要求してもよい。NCC POP142は、要求を最終的なものとして扱ってもよく、または意思決定処理において考慮される複数の要因の1つとして要求を考慮してもよい。
例えば、RDP等の遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成は、クライアントコンピューティングデバイス102ではなく、ネットワークコンピューティングおよびストレージプロバイダ107(例えば、NCC POP142で)で行われるように、広範な処理を指定してもよい。したがって、遠隔セッションブラウジング構成は、多くの前処理(例えば、ページレイアウトを定義する多くのCSSまたはJavascript(登録商標)情報を有するコンテンツ)を必要とするネットワークコンテンツを扱うとき、短い待機時間および提示遅延を達成するためにNCC POP142の処理能力を活用してもよい。ゆえに、NCC POP142は、ネットワークコンピューティングおよびストレージプロバイダ107で実質的量の処理を行い、処理に集中するコンテンツの通信のためのRDPまたは類似の遠隔セッション通信プロトコルを利用する、遠隔セッションブラウジング構成を選択してもよい。反対に、HTML等の遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成は、ネットワークコンピューティングおよびストレージプロバイダ107ではなく、クライアントコンピューティングデバイス102での広範な処理を指定してもよい。したがって、遠隔セッション通信プロトコルは、処理をほとんど必要としない単純なネットワークコンテンツ、または初期的読み込み後、表示されるコンテンツにおける早急な変更を必要とするネットワークコンテンツを用いて提示されるとき、より小さい遅延およびより円滑な提示を達成する場合がある。例えば、埋め込みビデオを伴うウェブページは、遠隔セッション通信プロトコルとしてのRDPではなく、ローカルに大部分の処理を良好に行い、HTMLを使用することをなし得る。ネットワークコンピューティングおよびストレージプロバイダ107での広範な処理を指定する遠隔セッションブラウジング構成は、NCC POP142でビデオを処理し、スクリーン更新を(例えばRDPによって)クライアントコンピューティングデバイス102に早急に送信しなければならず、潜在的には多くの帯域を必要とし、ブラウザにおいてむらのある再生を引き起こすが、一方でローカル処理を特定する遠隔セッションブラウジング構成は、加工されていないビデオ情報を表示(例えば、HTMLによる)のためのクライアントコンピューティングデバイス102に直接提供することができ、コンテンツのクライアント側のキャッシングおよびより円滑な再生を可能にする。
更なる例として、極めて限定された処理能力を伴うクライアントコンピューティングデバイス102と通信するNCC POP142は、例えば、NCC POP142の処理済み結果を伝送するためにRDPを使用し、クライアントコンピューティングデバイスによる処理をほとんど必要としない遠隔セッションブラウジング構成を使用することを選択してもよい。逆に、極めて対話的なウェブページを提供するNCC POP142は、クライアントコンピューティングデバイス102が、例えば、実質的に未処理のデータを送信するためにHTMLを使用して、インターフェース応答性を保つために、ユーザ対話をローカルに扱うことを可能にする遠隔セッションブラウジング構成を使用することを選択してもよい。なお更なる例として、NCC POP142は、クライアントコンピューティングデバイス102によって提供される選好に、遠隔セッションブラウズ構成の決定を基づかせてもよい。例示的に、クライアントコンピューティングデバイス102は、初期ブラウズセッション要求における、またはいずれかの他の時の遠隔セッションブラウズ構成のための選好を含んでもよい。NCC POP142は、その他の要素または決定メトリック値に対する代替えとして、またはこれらに加えて、これらの選好を使用してもよい。例示的に、クライアントコンピューティングデバイス102が遠隔セッションブラウズ構成の選択を設定し、またはこれに影響を与えることを可能にすることは、遠隔セッションブラウズ構成を決定するとき、NCC POP142がユーザ選好を考慮することを可能にする。例えば、初期のページ読み込み時間を懸念するユーザは、遠隔処理には重く、RDP遠隔セッション通信プロトコルを利用する、遠隔セッションブラウジング構成を使用することを好む場合があるが、一方で極めて応答的なインターフェースを維持することを希望するユーザは、例えば、HTML、遠隔セッション通信プロトコルを使用して、クライアントコンピューティングデバイス102上で大部分の処理を行う、遠隔セッションブラウジング構成を使用することを好む場合もある。
例示的に、NCC POP142は、遠隔ブラウジング構成の決定を任意の要因または要因の組み合わせに基づかせてもよい。例えば、NCC POP142は、単一の要因に基づいて遠隔セッションブラウジング構成を選択してもよく、または決定を行う際に1つ以上の要因に重みを割り当ててもよい。いくつかの実施形態において、NCC POP142の決定処理は、上記の1つ以上の要因に基づいて変化する場合がある。例えば、余剰の未使用帯域でネットワークを介してクライアントコンピューティングデバイス102と通信するNCC POP142は、遠隔ブラウズセッションのネットワーク要件等の要因に低い重みを与えてもよく、ページ対話の待機時間等の要因に高い重みを与えてもよいが、一方で限定された帯域のネットワークを介してクライアントコンピューティングデバイス102と通信するNCC POP142は、ネットワークを介して遠隔セッションブラウズプロトコルの効率性を扱う要因に重みを与えてもよい。
一実施形態において、NCC POP142は、1組のネットワークコンテンツのために単一の遠隔セッションブラウジング構成を選択してもよい。例えば、NCC POP142は、ウェブページ等の要求されたネットワークリソースのために単一の遠隔セッションブラウジング構成を選択してもよい。したがって、NCC POP142は、選択された遠隔ブラウジングセッションプロトコルに基づいて、全ての埋め込みコンテンツと一緒にウェブページを処理し、遠隔ブラウジングセッションプロトコルを使用して、ウェブページに関連付けられた全ての埋め込みコンテンツについてのユーザ対話データおよび更新されたブラウズセッションデータを交換してもよい。別の実施形態において、NCC POP142は、1組のネットワークコンテンツにおける1つ以上のリソースのために、異なる遠隔セッションブラウジング構成を選択してもよい。例えば、ウェブページ等のネットワークリソースは、処理集中型埋め込みJavascript(登録商標)もしくはCSSリソース、ならびに埋め込みビデオリソースを参照してもよい。NCC POP142は、埋め込みビデオリソースを除く、ウェブページおよび全ての埋め込みリソースのための第1の遠隔セッションブラウジング構成と、埋め込みビデオリソースのための第2の遠隔セッションブラウジング構成とを選択してもよい。例示的に、これはNCC POP142がRDPを利用し、処理結果をウェブページおよび関連付けられた埋め込みリソースの表示用のクライアントコンピューティングデバイス102に送信することをもたらし得るが、一方で、一実施形態において、HTTPを利用し、埋め込みビデオを別個の未処理ファイルとして送信して、クライアントコンピューティングデバイス102は、ウェブページおよび埋め込みリソースに対応するRDP処理結果を表示するために必要とされる最小限の処理を行ってもよく、また、埋め込みビデオを表示するために必要な追加の処理を行い、例えば、ウェブページの表示されたRDP表現の上面でビデオをオーバーレイしてもよい。任意の数の遠隔セッションブラウジング構成は、リソースまたはオブジェクトが、1つ以上の論理ファイルまたはデータ構造におけるコンテンツプロバイダ104またはCDNサービスプロバイダ106から得られたかに関わらず、1組のネットワークコンテンツに含まれる任意の数のリソースまたはオブジェクトに対応するように選択されてもよい。
遠隔セッションブラウジング構成の選択は、全てのネットワークリソースおよび関連付けられた埋め込みコンテンツがNCC POP142によって得られた後に行われるものとして本明細書に例示的に図示されるが、当業者は、遠隔セッションブラウジング構成の選択がいつでも行われてもよいことを理解するであろう。例えば、NCC POP142は、新しいブラウズセッション要求または関連する情報をクライアントコンピューティングデバイスから受信した後、遠隔セッションブラウジング構成を選択してもよく、ネットワークリソースを得た後に遠隔セッションブラウジング構成を選択してもよいが、任意の関連付けられた埋め込みリソースを得る前に、またはその他の時点に、いくつかの実施形態において、NCC POP142は、クライアントコンピューティングデバイス102が初期処理結果を得た後のいつかの時点で、新しい遠隔セッションブラウジング構成に切り替えてもよい。例示的に、新しい遠隔セッションブラウジング構成を選択するNCC POP142は、特定の期間もしくはイベント後、またはネットワーク状態、NCC POP142またはクライアントコンピューティングデバイス102の負荷もしくはコンピューティングリソース、または遠隔セッションブラウジング構成の選択に潜在的に影響するものとして上記に記載されたその他の要因の変化に応答して自動的に行われてもよい。例示的に、他の種類または形式の情報を扱うNCC POP142は、任意の数の類似の要因に基づいて遠隔セッションプロトコルを選択してもよい。例えば、当業者は、類似のスキーマが画像、ビデオ、オーディオ、データベース情報、3次元デザインデータ、または当技術分野で既知のその他のファイル形式または種類のデータの処理のために開発されてもよいことを理解するであろう。
クライアントコンピューティングデバイス102は、様々な実施形態において、遠隔ブラウズセッションのための要求を用いて漸次、または同時に平行なブラウジング処理を更にインスタンス化してもよい。一実施形態において、クライアントコンピューティングデバイス102は、NCC POP142を実行する1つ以上の遠隔ブラウズインスタンスに加えて、当技術分野で既知の従来のローカルブラウズセッション(例えば、コンテンツ要求をブラウザから提供することおよび得られたリソースをローカルに処理すること)をインスタンス化してもよい。別の実施形態において、クライアントコンピューティングデバイス102は、NCC POP142によって未処理のネットワークリソースを提供されてもよい。例示的に、ネットワークリソースは、NCC POP142によって1つ以上のコンテンツプロバイダ、CDN、またはキャッシュコンポーネントから読み出されたかもしれない。リソースは、クライアントコンピューティングデバイス102に提供され、NCC POP142で実行している遠隔ブラウズインスタンスと平行にローカルに処理してもよい。なお更なる実施形態において、ネットワークコンピューティングおよびストレージプロバイダまたはNCC POP142は、任意の数の新しい仮想マシンインスタンスおよび/またはブラウザインスタンスインスタンス化し(または既存のインスタンス化されたインスタンスを使用する)、リソースを処理し、および/または処理結果をクライアントコンピューティングデバイス102に平行に送信してもよい。例示的に、クライアントコンピューティングデバイス102のローカルブラウズセッションおよびNCC POP142の遠隔ブラウズセッションインスタンスは、平行に実行してもよい。
一実施形態において、クライアントコンピューティングデバイス102で実行するローカルブラウズセッションは、ブラウズセッション要求に応答して、未処理のコンテンツ(例えば、htmlウェブページ、埋め込みコンテンツ、および他のネットワークリソース)をNCC POP142から得てもよい。例示的に、コンテンツは、ブラウズセッション要求に応答して、NCC POP142によって、コンテンツプロバイダ、CDN、またはキャッシュから読み出されたかもしれない。NCC POP142によって提供された未処理のコンテンツは、ブラウズセッション要求に関連付けられた全てのコンテンツを含み得るか、あるいはコンテンツプロバイダもしくはCDNから読み出されるか、またはいくつかの他のソースから得られるクライアントコンピューティングデバイスのキャッシュ内に存在するコンテンツを補足してもよい。一実施形態において、クライアントコンピューティングデバイス102は、全ての要求されたコンテンツをローカルキャッシュから得てもよく、いずれの未処理のリソースまたはコンテンツもNCC POP142から得なくともよい。未処理のコンテンツを得た後、クライアントコンピューティングデバイス102は、NCC POP142で実行する遠隔ブラウズセッションと平行に要求されたコンテンツを処理してもよい。例えば、クライアントコンピューティングデバイス102で実行するローカルブラウズセッションが要求されたコンテンツを処理しているとき、NCC POP142で実行する遠隔ブラウズセッションは、同一のコンテンツを実質的に同一の時点で処理している場合がある。一度NCC POP142は、コンテンツ上で1組の処理行為を行い、処理結果を生成すると(例えば、決定された遠隔セッションブラウジング構成によって指定されたものとして)、NCC POP142は、処理結果をクライアントコンピューティングデバイス102に提供してもよい。
例示の目的のために、クライアントコンピューティングデバイス102は、NCC POP142で実行するブラウズセッションインスタンスより、要求されたネットワークリソースを得て、処理するために長い読み込み時間を必要とする場合がある。例えば、NCC POP142は、ローカルクライアントコンピューティングデバイスのネットワーク上での位置および相対的処理能力のために、NCC POP142と比較して、コンテンツを迅速に得て、処理し得る。たとえNCC POP142がクライアントコンピューティングデバイス102に全ての要求されたネットワークコンテンツを提供しても、クライアントコンピューティングデバイス102は、ローカルブラウズセッションが要求されたリソースを処理することを完全に完了させる前に、処理結果をNCC POP142からなお得てもよい。クライアントコンピューティングデバイス102は、コンテンツのローカル処理および表示を完了させる前に、いずれの更なる処理ステップも完了させ、得られた処理結果を表示してもよい。例示的に、これは、クライアントコンピューティングデバイス102が従来のローカルブラウズセッションに対するNCC POP142の早急なコンテンツ読み込み時間を利用することを可能にする場合がある。全ての要求されたリソースを処理することを完了するローカルブラウズセッションに先立って、ブラウザは、以下で図5および11に記載されるように、いずれのユーザ対話もローカルおよび/または遠隔に処理してもよい。
一度ローカルブラウズセッションが要求されたコンテンツに対応するリソースを完全に得て、処理すると、コンピューティングデバイス102は、決定された遠隔セッションブラウジング構成を使用して、NCC POP142から得られた結果を継続して表示(かつNCC POP142でユーザ対話を処理する)するか、またはユーザ対話をローカルに処理することに切り替えるかを決定してもよい。ユーザ対話をローカルに処理することに切り替えることは、NCC POP142から得られた処理結果に基づく要求されたリソースの表示された表現を要求されたリソースのローカル表示と置き換えることを含んでもよい。例えば、ブラウザは、ブラウザがウェブページをローカルに処理およびレンダリングすることを終了するまで、NCC POP142からの処理結果(例えば、レンダリングされたページを表現するRDP表示情報)に対応するウェブページの表現を表示してもよい。次いで、ブラウザは、NCC POP142からの表現をローカルにレンダリングされたウェブページの表現と置き換えてもよい。例示的に、1つの表現を別の表現と置き換えることは、ユーザにとり透過であり得る。例えば、ウェブページのローカルおよびNCC POP142の表現は、同一または実質的に同一である場合がある。一実施形態において、ウェブページのNCC POP142表現が表示されるとき、ブラウザは、表示されたページを伴う様々なユーザ対話を処理用NCC POP142に送信してもよい。ローカルにレンダリングされたバージョンのウェブページが表示されるとき、ユーザ対話は、ブラウザでローカルに処理されてもよい。例示的に、要求されたリソースのどの表現を表示するかの決定(例えばローカルに、またはNCC POP142から)は、上記の遠隔セッションブラウズプロトコルを決定することを参照して記載された同一の要因のいずれかに基づき得る。
一実施形態において、クライアントコンピューティングデバイス102は、ローカルリソースが完全に読み込まれた後すぐに、ユーザ対話のローカル処理に切り替えてもよい。例示的に、NCC POP142で実行する遠隔ブラウズセッションインスタンスは、ローカル処理に切り替えた後に終了してもよく、または遠隔ブラウズセッションインスタンスは、ローカルブラウズセッションに関する無応答または故障の場合のバックアップとして維持されてもよい。例えば、クライアントコンピューティングデバイス102は、ユーザ対話をローカルに処理し、ならびに選択された遠隔セッションブラウジング構成に従って遠隔ユーザ対話データをNCC POP142に送信してもよい。遠隔ユーザ対話データは、NCC POP142によって使用され、遠隔ブラウズセッションインスタンスを、クライアントコンピューティングデバイス102でブラウザによって実行されているローカルブラウズ処理と完全に平行に保持してもよい。ローカルブラウズセッションが継続してユーザ対話を扱う限りにおいて、NCC POP142は、更新された処理結果を送信することを抑制してもよく、またはクライアントコンピューティングデバイス102によって無視された、更新された処理結果を送信してもよい。問題がクライアントコンピューティングデバイス102のローカルブラウズセッションについて進展するとき、更新された処理結果は、ローカルブラウズセッションの代わりの処理および表示のためにNCC POP142からクライアントコンピューティングデバイス102に提供されてもよい。例示的に、ローカルブラウズセッションから遠隔処理へのこの切り替えは、ユーザに透過であり得る。いくつかの実施形態において、クライアントコンピューティングデバイス102は、ローカルブラウザでの無応答または故障以外の要因に基づいて、ローカルブラウズセッションから遠隔ブラウズセッションインスタンスに切り替えてもよい。例えば、クライアントコンピューティングデバイス102またはネットワークコンピューティングおよびストレージのコンポーネント107は、上記の遠隔セッションブラウズプロトコルを決定することに関して列挙された要因のいずれかに基づいて、遠隔ブラウズセッションとローカルブラウズセッションとの間で選択されてもよい。
別の実施形態において、クライアントコンピューティングデバイス102は、たとえローカルブラウズセッションが要求されたコンテンツを完全に読み込んだ後でも、NCC POP142からの更新された処理結果を継続して処理し、表示してもよい。クライアントコンピューティングデバイス102は、ローカルブラウズセッションを終えてもよく、または上記で提供された例と逆に、バックアップ処理としてローカルブラウズセッションを平行に実行させてもよい。ローカルブラウズセッションは、例示の目的にために、遠隔ブラウズセッションインスタンスより遅く読み込むものとしてここでは記載されているが、いくつかの実施形態において、ローカルブラウズセッションは、遠隔ブラウジングセッションよりコンテンツを早く読み込むことができ、この場合において、ブラウザは、遠隔ブラウズ処理が要求されたコンテンツを完全に読み込むまで、ユーザ対話をローカルに処理してもよいことを理解されたい。いくつかの実施形態において、クライアントコンピューティングデバイス102は、ブラウズセッションが初めに、どのユーザ対話を介して要求されたコンテンツをローカルまたは遠隔に読み込もうとも、そのユーザ対話を表示および処理してもよい。
様々な他の実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、ローカルブラウズセッションをインスタンス化することに加えて、またはこの代替として、複数の遠隔ブラウズセッションインスタンスをインスタンス化し、平行に実行してもよい。例示的に、これらの平行なブラウズセッションインスタンスは、同一または異なる遠隔セッションブラウズプロトコルのいずれも利用してもよく、ローカルブラウズセッションに関して上記の様式でのバックアップとして機能してもよく、またはクライアントコンピューティングデバイス102でのブラウザ性能を最大化するために、代替として使用され、その間で切り替えられてもよい。例えば、1つ以上のブラウズセッション要求に応答して、ネットワークコンピューティングおよびストレージプロバイダ107は、第1のNCC POP上で実行し、RDPプロトコルを使用するブラウズセッションインスタンス、ならびに第2のNCC POP上で実行し、X−ウィンドウプロトコルを使用するブラウズセッションインスタンスをインスタンス化してもよい。クライアントコンピューティングデバイス102またはネットワークコンピューティングおよびストレージプロバイダ107は、どのブラウズセッションインスタンスおよびプロトコルが、上記の遠隔セッションブラウズプロトコルの決定に関して記載された性能またはリソース使用の考慮に基づいて、使用されるべきかを決定してもよい。
続けて図9を参照して、ブロック918で、ネットワークコンピューティングおよびストレージプロバイダ107は、初期処理結果を生成するための決定された遠隔セッションブラウジング構成に従って、1つ以上の要求されたネットワークリソースおよび埋め込みネットワークリソースを備える、得られたコンテンツを処理してもよい。ブロック920で、ネットワークコンピューティングおよびストレージプロバイダ107は、更に処理するために初期処理結果をクライアントに提供し、ブラウザのコンテンツ表示区域に表示してもよい。更なる例示の目的のために、クライアントコンピューティングデバイス102によって実装される例示的なクライアントの新しいブラウズセッション対話ルーチン1000が、図10を参照して下に記載される。ブロック922で、新しいブラウズセッション開始ルーチン900が終了する。
図10は、クライアントコンピューティングデバイス102によって実装されるクライアントの新しいブラウズセッション対話ルーチン1000を例示する、流れ図である。新しいブラウズセッション対話ルーチン1000は、クライアントコンピューティングデバイス102にネットワークコンテンツを表示するためのブラウザを読み込ませる、イベントまたはユーザ要求に応答して、ブロック1002で開始する。ブロック1004で、クライアントコンピューティングデバイスは、全てのローカルインターフェースコンポーネントを含む、ブラウザのローカルに管理されたコンポーネントを読み込む。図5および7を参照して上に記載されたように、ローカルインターフェースコンポーネントとしては、ツールバー、メニュー、ボタン、またはクライアントコンピューティングデバイスでローカルに実行し、または実装されるソフトウェアブラウザアプリケーションまたはその他の処理によって管理および制御される、他のユーザインターフェース制御が挙げられ得る。ブロック1006で、クライアントコンピューティングデバイス102は、少数のブラウズセッションインスタンスのための要求をネットワークコンピューティングおよびストレージプロバイダ107に提供する。クライアントコンピューティングデバイスのユーザの観点から、新しいブラウズセッションのための要求は、要求を1つ以上の対応するコンテンツプロバイダ104に伝送するための意図される要求に対応する。他の実施形態において、新しいセッション要求は、ファイルまたは他のドキュメントを読み込むための要求(例えば、写真編集アプリケーションで画像を読み込むための要求等)に対応してもよい。例示的に、要求は、ブラウザ読み込み(例えば、既定または「ホーム」ページのための要求)の結果として自動的に生成されてもよく、またはユーザがリンクに従い、またはネットワークアドレスをアドレスバーに入力したことの結果として生成されてもよい。図2に関して説明されるように、ブラウズセッション要求は、まず、ネットワークコンピューティングおよびストレージプロバイダ107に伝送される。例示的な実施形態において、ネットワークコンピューティングおよびストレージプロバイダ107は、登録APIを使用し、クライアントコンピューティングデバイス102からのブラウズセッション要求を承諾する。
ブラウズセッション要求は、ユーザに関連付けられた情報、クライアントコンピューティングデバイス102またはクライアントコンピューティングデバイス上のソフトウェアに関連付けられた情報(例えば、ハードウェアまたはソフトウェア情報、デバイスの物理的または論理的位置等)、ネットワーク108、ユーザ、またはブラウザ選好に関連付けられた情報(例えば、要求された遠隔セッションブラウズプロトコル、選好一覧、デシジョンツリー、または他の情報)、ネットワークコンピューティングおよびストレージプロバイダ107に関連付けられた情報、要求されたネットワークコンテンツの1つ以上に関連付けられた情報(例えば、ネットワークリソースのネットワークアドレス)等が挙げられるがこれらに限定されない、任意の数のデータまたは情報を含んでもよい。例えば、クライアントコンピューティングデバイス102からのブラウズセッション要求は、とりわけ、特定のクライアントコンピューティングデバイスハードウェアの仕様またはハードウェア性能レベル、最近のコンテンツ要求に関連付けられた待機時間および帯域データ、異なる種類のコンテンツを処理するための所望のセキュリティレベル、遠隔セッションブラウズプロトコルの所定の選好一覧、および要求されたネットワークリソースに対応する1つ以上のネットワークアドレスを識別する情報を含んでもよい。別の実施例において、ブラウズセッション要求は、クライアントコンピューティングデバイス102のスクリーン解像度、アスペクト比を識別する情報を含むことができ、またはブラウズセッション要求におけるブラウザ表示区域は、ネットワークコンピューティングおよびストレージプロバイダ107がクライアントコンピューティングデバイス上で表示するために、ネットワークコンテンツの処理をカスタマイズすることを可能にしてもよい。先に記載されたように、ブラウズセッション要求は、要求されたネットワークリソースに対応するネットワークアドレス情報を含むことができ、これは、インターネットプロトコル(「IP」)アドレス、URL、メディアアクセスコントロール(「MAC」)アドレス等を含むが、これらに限定されない、いずれの形態であってもよい。一実施形態において、新しいブラウズセッションインスタンスのための要求は、上の図9のブロック904で新しいブラウズセッションインスタンスのための要求を受信する、ネットワークコンピューティングおよびストレージプロバイダに対応してもよい。
ブロック1008で、クライアントコンピューティングデバイス102は、初期処理結果をネットワークコンピューティングおよびストレージプロバイダ107から得る。例示的に、初期処理結果に含まれる形式およびデータは、ネットワークコンピューティングおよびストレージプロバイダ107によって選択された遠隔セッションブラウジング構成に基づいて変化してもよい。一実施形態において、初期処理結果は、クライアントコンピューティングデバイス102に遠隔セッションブラウジング構成の選択を伝え、および/または選択された遠隔セッションブラウジング構成に対応する遠隔セッション通信プロトコルを介して接続を確立するデータを含み、またはこれによって先行されてもよい。図8および9を参照して上に論じられたように、得られた初期処理結果は、ネットワークコンピューティングおよびストレージプロバイダ107によって行われた1つ以上の処理行為を伴う要求されたコンテンツを含んでもよい。初期処理結果を得た後、クライアントコンピューティングデバイス102は、ブロック1010で、初期処理結果に任意の残存する処理行為を行ってもよい。
ブロック1012で、クライアントコンピューティングデバイス102は、処理済みの初期処理結果に対応するコンテンツを表示する。例えば、クライアントコンピューティングデバイス102は、上記の図7に記載されるブラウザ700のコンテンツ表示区域702に処理済みのクライアントを表示してもよい。一実施形態において、処理結果は、ブラウザによって表示された、コンテンツに対応する表示データを含むのみであってもよく、例えば、NCC POP142でのブラウザインスタンスのインターフェース制御、ブラウズセッションに対応する仮想マシンインスタンスのデスクトップ、またはNCC POP142のその他のユーザインターフェースに対応する表示データを含まなくともよい。例えば、NCC POP142は、NCC POP142で仮想マシンインスタンスにおいて実行するブラウザインスタンスのRDPを介して、表示のためのウェブページおよび関連付けられたコンテンツを処理してもよい。ブラウザインスタンスは、表示されたウェブページに加えて、ツールバー、メニュー、スクロールバー等の1つ以上のインターフェース要素を有してもよい。NCC POP142は、ブラウザに関連付けられたインターフェース要素のいずれも伴わずに、表示されたウェブページのみに対応するRDP処理結果を送信してもよい。例示的に、表示されたウェブページのみに対応するRDP処理結果を含むことは、クライアントコンピューティングインスタンス102でのブラウザが、任意の更なる処理をせずに、ブラウザのコンテンツ表示区域においてRDP処理結果をアセンブリすることによって、ウェブページを表示することを可能にし得る。別の実施形態において、RDP処理結果は、NCC POP142のブラウズセッションインスタンスで表示される完全なインターフェースに対応する、完全な仮想マシンデスクトップおよびブラウザウィンドウを含んでもよい。クライアントコンピューティングデバイスは、要求されたコンテンツに対応するRDP処理結果の区域を自動的に識別してもよく、ブラウザのコンテンツ表示区域でこの区域のみを表示してもよい。
ブロック1014で、クライアントコンピューティングデバイス102は、ローカルおよび遠隔ユーザ対話を処理する。図11を参照して、ユーザ対話を処理するための例示的なルーチンが以下に提供される。ブロック1016で、ルーチンは終わる。例示的に、ネットワークコンピューティングコンテンツプロバイダ107によってインスタンス化されたブラウズセッションインスタンスは、ブラウザウィンドウまたはコンテンツ表示区域が閉じられるときに、終わってもよく、遠隔セッションブラウズプロトコルがクライアントコンピューティングデバイス102での並行処理によって置き換えられるときに、終わってもよく、またはタイマーまたは他のイベントに従って終わってもよい。例示的に、ブラウズセッションがタイムアウトのために自動的に終了したが、関連付けられたコンテンツがクライアントコンピューティングデバイス102のブラウザにおいてまだ表示されているとき、コンテンツと対話するためのユーザによる後の試みは、ネットワークコンピューティングおよびストレージサービスのプロバイダ107に提供される新しいブラウズセッション要求をもたらし、終えられたセッションの最後の状態に従って新しいブラウズセッションを開始し得る。例示的に、タイムアウト後に遠隔ブラウズセッションを終えることは、ネットワークコンピューティングストレージプロバイダ107がNCC POPでコンピューティングリソースを保存することを可能にし得る。一実施形態において、この処理は、たとえ遠隔ブラウズセッションがその間の期間中に終えられたとしても、クライアントコンピューティングデバイス102でユーザに透過である場合がある。
図11は、クライアントコンピューティングデバイス102によって実装される処理ユーザ対話ルーチン1100を例示する、流れ図である。処理ユーザ対話ルーチン1100は、ユーザによる対話に応答して、ブロック1102で開始する。例示的に、処理ユーザ対話ルーチン1100は、ブラウザインターフェースのコンテンツ表示区域におけるコンテンツの表示後に開始してもよい。例えば、処理ユーザ対話ルーチン1100は、上の図10のブロック1014に対応してもよい。
例示的に、表示されたコンテンツは、フォーム、ボタン、アニメーション等の1つ以上の対話要素を有してもよい。これらの対話要素とのユーザ対話は、コンテンツ表示区域における更新されたコンテンツの処理および表示を必要とする場合がある。例えば、ウェブページ上のドロップダウンメニューにおける要素を選択することは、処理を必要とする場合があり、ウェブページまたは埋め込みリソースの構成または視覚的外観を変更する場合がある。例示的に、表示されたコンテンツについてユーザ対話によって必要とされる処理は、使用する遠隔セッションブラウジング構成に応じて、クライアントコンピューティングデバイス102でのローカルユーザ対話として、またはNCC POP142での遠隔ユーザ対話として、扱われてもよい。例えば、遠隔セッションブラウジング構成が実質的なローカル処理(例えば、HTMLを介して未処理ファイルを送信する)を使用するとき、表示されたコンテンツとのユーザ対話は、典型的に、クライアントコンピューティングデバイス102でのローカルユーザ対話として扱われてもよい。例示的に、表示されたコンテンツとのユーザ対話をクライアントコンピューティングデバイス102でのローカルユーザ対話として扱うことは、対話に対応する対話データが処理用NCC POP142に送信される必要がないため、単純なユーザ対話(例えば、ラジオボタンの選択、またはフィールドにテキストを打ち込むこと)についてより良好な応答性およびより少ない遅延を可能にする場合がある。
更なる例示として、コンテンツの重い遠隔処理(例えば、RDPを介して処理済みビットマップデータを送信すること)を利用する遠隔セッションブラウジング構成が、遠隔セッションブラウジング構成として使用されているとき、表示されたコンテンツとの全てのユーザ対話は、遠隔ユーザ対話として扱われてもよい。例えば、ユーザ入力(例えば、キーボード入力およびカーソル位置)は、RDPプロトコルデータ単位でカプセル化され、ネットワーク108全体で処理用NCC POP142に伝送されてもよい。例示的に、NCC POP142は、ユーザ対話をネットワークコンテンツに適用し、コンテンツの更新された表現に対応する更新されたビットマップおよびインターフェースデータからなる処理結果を、クライアントコンピューティングデバイス102に戻して伝送してもよい。例示的に、表示されたコンテンツとのユーザ対話をNCC POP142での遠隔ユーザ対話として扱うことは、データがネットワークを介して渡すように要求され、ネットワーク待機時間によって制限されるため、インターフェース応答性に否定的な影響を有する場合があるが、実質的な量の処理を必要とするユーザ対話は、NCC POP142の処理待機時間がクライアントコンピューティングデバイス102の処理待機時間より実質的に短くなり得るため、遠隔ユーザ対話として扱われるとき、より良好に働き得る。
ネットワークコンテンツを表示するためのコンテンツ表示区域に加えて、ブラウザは、ツールバー、メニュー、ボタン、または他のユーザインターフェース制御等、1つ以上のローカルインターフェースコンポーネントを有してもよい。ローカルインターフェースコンポーネントとの対話は、例示的な図7に更に図示される対話および遠隔セッションブラウジング構成によって必要とされる処理に応じて、ローカルユーザ対話または遠隔ユーザ対話として扱われてもよい。例えば、いくつかのローカルインターフェースコンポーネントは、クライアントコンピューティングデバイス上で実行するブラウザコードによってローカルに管理されてもよいが、一方で他のローカルインターフェースコンポーネントは、1つ以上のローカルも管理されたアスペクト(例えば、ボタンクリックフィードバック、スクロールバー再描画等)、および遠隔ユーザ対話(例えば、ページリフレッシュ、アドレスバーにおいてアドレスのページを要求すること等)として扱われる1つ以上の遠隔管理されたアスペクトを有してもよい。
ブロック1104で、クライアントコンピューティングデバイス102は、ユーザ対話をユーザから得る。このユーザ対話は、図7および上に記載されるローカルインターフェースコンポーネントとの対話であってもよく、またはフォームフィールド、ボタン、アニメーション等、ブラウザのコンテンツ表示区域において表示されるコンテンツの任意の対話要素との対話であってもよい。これらのローカルインターフェースコンポーネントまたは表示されたコンテンツの対話要素とのユーザ対話は、図7および上に記載されるコンポーネントもしくは要素の性質、ならびに遠隔セッションブラウジング構成によって指定された処理分割に応じて、ローカルおよび/または遠隔処理を必要とする場合がある。ブロック1106で、クライアントコンピューティングデバイス102は、得られたユーザ対話のための対話処理要件を決定する。決定ブロック1108で、ユーザ対話がローカルアスペクト(例えば、ボタンクリックフィードバック、ローカルブラウザ状態への変更、クライアントコンピューティングデバイスで処理されているコンテンツ要素等)を有するとき、ルーチン1102は、ブロック1110に移動し、クライアントコンピューティングデバイス102でローカルアスペクトまたはユーザ対話のアスペクトを処理し、次に、ブロック1112でローカルインターフェースコンポーネントを更新する。例示的に、そして上述のように、対話のアスペクトおよびインターフェースコンポーネントおよび要素を更新することは、ブラウザが応答性ユーザインターフェースおよびコンテンツを提供することをローカルに可能にする。ユーザ対話のローカルアスペクト(複数可)を処理した後、またはユーザ対話がローカル要素(例えば、専らサーバ側で処理し、RDP遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成を使用するとき、コンテンツ表示区域に表示されるコンテンツ要素とのユーザ対話)を有しないとき、ルーチン1102は、決定ブロック1114に移動する。ユーザ対話が処理を必要とする遠隔アスペクトを有するとき、ルーチン1102は、ブロック1116に移動し、遠隔ユーザ対話データをネットワークコンピューティングおよびストレージプロバイダ107に提供する。例示的に、RDP遠隔セッション通信プロトコルを利用する、重いサーバ側の遠隔セッションブラウジング構成の場合、遠隔ユーザ対話データは、1つ以上のRDPプロトコルデータ単位でカプセル化されたカーソル位置またはキーボード入力等の入力データを含んでもよい。RDPまたは他の遠隔セッション通信プロトコルを利用する遠隔セッションブラウジング構成のいくつかの実施形態において、カーソル位置等、遠隔ユーザ対話データの特定のアスペクトは、連続的ベースでネットワークコンピューティングおよびストレージプロバイダ107に提供されてもよいが、一方で遠隔セッションブラウズ構成の他の実施形態において、遠隔ユーザ対話データは、遠隔処理を必要とするユーザ対話に関連付けられるとき、ネットワークコンピューティングおよびストレージプロバイダ107に提供されるのみであってもよい。
ブロック1118で、クライアントコンピューティングデバイス102は、ネットワークコンピューティングおよびストレージプロバイダ107が遠隔ユーザ対話データを処理し、コンテンツの更新された表現を生成した後、更新された処理結果をネットワークコンピューティングおよびストレージプロバイダ107から得る。ブロック1120で、クライアントコンピューティングデバイス102は、更新された処理結果(遠隔セッションブラウジング構成に基づく)に必要とされる任意の追加処理を行い、ブロック1122で、ブラウザのコンテンツ表示区域において更新された処理結果を表示する。ブロック1124で、処理ユーザ対話ルーチン1102は終了する。例示的に、ルーチンは、ブラウザおよび表示されたコンテンツとの更なるユーザ対話に応答して、何回でも再実行されてもよい。
本開示の実施形態は、以下の非限定的な付記によって定義され得る。
付記1.コンテンツにアクセスするためのコンピュータ実装方法であって、
ネットワークコンピューティングおよびストレージプロバイダによって、コンテンツのための要求を、クライアントコンピューティングデバイス上のブラウザインスタンスから得ることであって、要求されたコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備え、クライアントコンピューティングデバイス上のブラウザインスタンスが、1つ以上のローカルインターフェースコンポーネント、ならびにネットワークコンピューティングおよびストレージプロバイダによって提供されるコンテンツを表示するためのコンテンツ表示区域を含み、1つ以上のローカルインターフェースコンポーネントが、クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、得ることと、
ネットワークコンピューティングおよびストレージプロバイダによって、ネットワークリソースおよび1つ以上の埋め込みリソースを、1つ以上のコンテンツプロバイダから得ることと、
ネットワークコンピューティングおよびストレージプロバイダによって、ネットワークリソースおよび1つ以上の埋め込みリソースを処理して、インスタンス化されたブラウザアプリケーション上での処理結果の表現を生成するのに使用するための要求されたコンテンツを生成することと、
ブラウザプロトコル構成に従って、ネットワークコンピューティングおよびストレージプロバイダによって、処理結果を、クライアントコンピューティングデバイス上のブラウザインスタンスに送信することであって、ブラウザプロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別し、クライアントコンピューティングデバイスが、要求されたコンテンツの表現を、クライアントコンピューティングデバイス上のブラウザインスタンスのコンテンツ表示区域内に表示させる、送信することと、
ブラウザプロトコル構成に従って、ネットワークコンピューティングおよびストレージプロバイダによって、対話データを、クライアントコンピューティングデバイス上のブラウザインスタンスから得ることであって、対話データが、コンテンツ表示区域内に表示される要求されたコンテンツの表現とのユーザ対話に基づき、対話データが、1つ以上のローカルインターフェースコンポーネントとのユーザ対話を含まない、得ることと、
ネットワークコンピューティングおよびストレージプロバイダによって、要求されたコンテンツの更新された表現を生成するのに使用するための更新された処理結果を生成することであって、更新された処理結果が、要求されたコンテンツおよび対話データに基づいてネットワークコンピューティングおよびストレージプロバイダによって生成される、生成することと、
ブラウザプロトコル構成に従って、ネットワークコンピューティングおよびストレージプロバイダによって、更新された処理結果を、クライアントコンピューティングデバイス上のブラウザインスタンスに送信することであって、クライアントコンピューティングデバイスが、要求されたコンテンツの更新された表現を、クライアントコンピューティングデバイス上のブラウザインスタンスのコンテンツ表示区域内に表示させる、送信することと、
を含む、コンピュータ実装方法。
付記2.要求されたコンテンツが、複数の処理行為で処理され得る、付記1に記載のコンピュータ実装方法。
付記3.複数の処理行為の全てが、ネットワークコンピューティングおよびストレージプロバイダで行われる、付記2に記載のコンピュータ実装方法。
付記4.処理結果が、クライアントコンピューティングデバイス上のブラウザインスタンスに関連付けられるローカルインターフェースコンポーネントの表現を含まない、付記1に記載のコンピュータ実装方法。
付記5.表示に基づく通信プロトコルが、遠隔デスクトップ表示プロトコルおよび仮想ネットワークコンピューティングデスクトッププロトコルのうちの少なくとも1つの選択として含む、付記1に記載のコンピュータ実装方法。
付記6.コンテンツにアクセスするためのシステムであって、
1つ以上のコンピュータプロセッサと、
1つ以上のコンピュータプロセッサのうちの少なくとも1つによってアクセス可能な少なくとも1つのコンピュータメモリと、
ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションと、を備え、ネットワークに基づくアプリケーションが、1つ以上のコンピュータプロセッサによって実行される実行可能なソフトウェアモジュールを含み、ネットワークに基づくアプリケーションが、
ネットワークコンテンツのための要求を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、クライアントコンピューティングデバイス上でインスタンス化されるそのアプリケーションが、ローカルユーザ対話を得るための1つ以上のローカルインターフェースコンポーネントおよびコンテンツを表示するためのコンテンツ表示区域を含む、得ることと、
表示プロトコル構成に従って、処理結果を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションに送信することであって、表示プロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別し、処理結果が、要求されたネットワークコンテンツの表現を生成するのに使用するための要求されたコンテンツの処理に対応し、クライアントコンピューティングデバイスが、要求されたネットワークコンテンツの表現を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションのコンテンツ表示区域内に表示させる、送信することと、
を行うように動作可能である、システム。
付記7.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、
対話データを、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、対話データが、コンテンツ表示区域内に表示される要求されたネットワークコンテンツの表現とのユーザ対話に基づき、対話データが、1つ以上のローカルインターフェースコンポーネントとのユーザ対話に基づくローカルユーザ対話を含まない、得ることと、
表示プロトコル構成に従って、要求されたネットワークコンテンツの更新された表現を生成するのに使用するための更新された処理結果を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションに送信することであって、クライアントコンピューティングデバイスが、要求されたネットワークコンテンツの更新された表現を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションのコンテンツ表示区域内に表示させる、送信することと、
を行うように更に動作可能である、付記6に記載のシステム。
付記8.そのネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、要求されたネットワークコンテンツの更新された表現を生成するのに使用するための更新された処理結果を生成するように更に動作可能であり、更新された処理結果が、要求されたネットワークコンテンツおよび対話データに基づいてネットワークコンピューティングコンポーネントによって生成される、付記7に記載のシステム。
付記9.1つ以上のローカルインターフェースコンポーネントが、クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、付記6に記載のシステム。
付記10.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、要求されたネットワークコンテンツの表現を生成するのに使用するための処理結果を生成するように更に動作可能である、付記6に記載のシステム。
付記11.要求されたネットワークコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備える、付記6に記載のシステム。
付記12.要求されたネットワークコンテンツが、複数の処理行為で処理され得る、付記6に記載のシステム。
付記13.複数の処理行為の全てが、ネットワークコンピューティングコンポーネントで行われる、付記12に記載のシステム。
付記14.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、仮想マシンインスタンス上で実行するアプリケーションに対応し、仮想マシンインスタンスが、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得られるネットワークコンテンツのための要求に応答して、インスタンス化される、付記6に記載のシステム。
付記15.コンテンツにアクセスするためのコンピュータ実装方法であって、
ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、ネットワークコンテンツのための要求を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、クライアントコンピューティングデバイス上でインスタンス化されるそのアプリケーションが、ローカルユーザ対話を得るための1つ以上のローカルインターフェースコンポーネントおよびコンテンツを表示するためのコンテンツ表示区域を含む、得ることと、
表示プロトコル構成に従って、ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、処理結果を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションに送信することであって、表示プロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別し、処理結果が、要求されたネットワークコンテンツの表現を生成するのに使用するための要求されたネットワークコンテンツの処理に対応し、クライアントコンピューティングデバイスが、要求されたネットワークコンテンツの表現を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションのコンテンツ表示区域内に表示させる、送信することと、
を含む、方法。
付記16.
ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、対話データを、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、対話データが、コンテンツ表示区域内に表示される要求されたネットワークコンテンツの表現とのユーザ対話に基づき、対話データが、1つ以上のローカルインターフェースコンポーネントとのユーザ対話に基づくローカルユーザ対話を含まない、得ることと、
表示プロトコル構成に従って、ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、要求されたネットワークコンテンツの更新された表現を生成するのに使用するための更新された処理結果を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションに送信することであって、クライアントコンピューティングデバイスが、要求されたネットワークコンテンツの更新された表現を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションのコンテンツ表示区域内に表示させる、送信することと、
を更に含む、付記15に記載の方法。
付記17.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、要求されたコンテンツの更新された表現を生成するのに使用するための更新された処理結果を生成することを更に含み、更新された処理結果が、要求されたコンテンツおよび対話データに基づいて、ネットワークコンピューティングコンポーネントによって生成される、付記16に記載の方法。
付記18.対話データが、要求されたネットワークコンテンツの表現とのユーザ対話に基づく、付記16に記載の方法。
付記19.1つ以上のローカルインターフェースコンポーネントが、クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、付記16に記載の方法。
付記20.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、要求されたネットワークコンテンツの表現を生成するのに使用するための処理結果を生成することを更に含む、付記15に記載の方法。
付記21.要求されたネットワークコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備える、付記15に記載の方法。
付記22.要求されたネットワークコンテンツが、複数の処理行為で処理され得る、付記15に記載の方法。
付記23.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、複数の処理行為を行うことを更に含む、付記22に記載の方法。
付記24.ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、仮想マシンインスタンス上で実行するアプリケーションに対応し、仮想マシンインスタンスが、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得られるネットワークコンテンツのための要求に応答して、インスタンス化される、付記15に記載の方法。
付記25. 遠隔セッションブラウジングのためのコンピュータ実装方法であって、
クライアントコンピューティングデバイスにおいて、ソフトウェアブラウザインスタンスをイニシャライズすることであって、ソフトウェアブラウザインスタンスが、1つ以上のローカルインターフェースコンポーネントおよびコンテンツ表示区域を含み、1つ以上のローカルインターフェースコンポーネントが、クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、イニシャライズすることと、
クライアントコンピューティングデバイスによって、コンテンツのための要求を、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、コンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを含み、ネットワークコンピューティングおよびストレージプロバイダが、1つ以上のコンテンツプロバイダから、ネットワークリソースおよび1つ以上の埋め込みリソースを得るように構成され、ネットワークコンピューティングおよびストレージプロバイダが、ネットワークリソースおよび1つ以上の埋め込みリソースを処理して、要求されたコンテンツの表現に対応する表示データを含む処理結果を生成するように更に構成される、提供することと、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、処理結果をネットワークコンピューティングおよびストレージプロバイダから得ることであって、ブラウザプロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別する、得ることと、
クライアントコンピューティングデバイスによって、要求されたコンテンツの表現を、ソフトウェアブラウザインスタンスのコンテンツ表示区域内に表示させることと、
クライアントコンピューティングデバイスによって、ローカルユーザ対話データを得ることであって、ローカルユーザ対話データが、ローカルインターフェースコンポーネントとのユーザ対話に基づく、得ることと、
クライアントコンピューティングデバイスによって、クライアントコンピューティングデバイスにおいてローカルユーザ対話データを処理することと、
クライアントコンピューティングデバイスによって、遠隔ユーザ対話データを得ることであって、遠隔ユーザ対話データが、コンテンツ表示区域内に表示される要求されたコンテンツの表現とのユーザ対話に基づく、得ることと、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、遠隔ユーザ対話データに対応する対話データをネットワークコンピューティングおよびストレージプロバイダに提供することと、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、更新された処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、更新された処理結果が、要求されたコンテンツの更新された表現に対応し、更新された処理結果が、要求されたコンテンツおよび対話データに基づいて、ネットワークコンピューティングおよびストレージプロバイダによって生成される、得ることと、
クライアントコンピューティングデバイスによって、要求されたコンテンツの更新された表現を、ソフトウェアブラウザインスタンスのコンテンツ表示区域内に表示させることと、を含む、コンピュータ実装方法。
付記26.要求されたコンテンツが、複数の処理行為で処理され得る、付記25に記載のコンピュータ実装方法。
付記27.複数の処理行為の全てが、ネットワークコンピューティングおよびストレージプロバイダで行われる、付記26に記載のコンピュータ実装方法。
付記28.ブラウザプロトコル構成が、遠隔デスクトッププロトコルおよび仮想ネットワークコンピューティングプロトコルのうちの少なくとも1つの選択を含む、付記25に記載のコンピュータ実装方法。
付記29.遠隔セッションブラウジング用のシステムであって、
1つ以上のコンピュータプロセッサと、
1つ以上のコンピュータプロセッサのうちの少なくとも1つによってアクセス可能な少なくとも1つのコンピュータメモリと、
1つ以上のコンピュータプロセッサによって実行される実行可能なソフトウェアモジュールを備えるブラウザコンポーネントと、を備え、ブラウザが、
ネットワークコンテンツのための要求を、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、ネットワークコンピューティングおよびストレージプロバイダが、ネットワークコンテンツを得るように構成され、ネットワークコンピューティングおよびストレージプロバイダが、ネットワークコンテンツを処理して、要求されたコンテンツの表現に対応する処理結果を生成するように更に構成される、提供することと、
ブラウザプロトコル構成に従って、処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、ブラウザプロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別する、得ることと、
処理結果に基づいて要求されたネットワークコンテンツの表現の表示を引き起こすことと、
ブラウザプロトコル構成に従って、要求されたネットワークコンテンツの更新された表現に対応する、更新された処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、更新された処理結果が、ブラウザコンポーネントから得られる要求されたネットワークコンテンツおよび対話データによって生成される、ネットワークコンピューティングおよびストレージプロバイダに基づく、得ることと、を行うように動作可能である、システム。
付記30.ブラウザコンポーネントが、更新された処理結果に基づいて要求されたネットワークコンテンツの更新された表現の表示を引き起こすように更に動作可能である、付記29に記載のシステム。
付記31.対話データが、要求されたネットワークコンテンツの表現とのユーザ対話に基づく、付記29に記載のシステム。
付記32.ブラウザコンポーネントが、1つ以上のローカルインターフェースコンポーネントを含む、付記29に記載のシステム。
付記33.ブラウザコンポーネントが、
ブラウザプロトコル構成に従って、対話データを、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、対話データが、ブラウザコンポーネントのローカルインターフェースコンポーネントとのユーザ対話に基づく、提供することと、
ユーザ対話に基づいてブラウザのローカルインターフェースコンポーネントを更新することと、を行うように更に動作可能であり、ローカルインターフェースコンポーネントに対する更新が、ブラウザコンポーネントによってローカルに処理される、付記29に記載のシステム。
付記34.要求されたネットワークコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備える、付記29に記載のシステム。
付記35.要求されたネットワークコンテンツが、複数の処理行為で処理され得る、付記29に記載のシステム。
付記36.複数の処理行為の全てが、ネットワークコンピューティングおよびストレージプロバイダで行われる、付記35に記載のシステム。
付記37.処理結果が、ネットワークコンピューティングおよびストレージプロバイダにおいて実行するネットワークに基づくブラウザインスタンスによって処理される、要求されたネットワークコンテンツに基づいて生成される、付記29に記載のシステム。
付記38.処理結果が、ネットワークに基づくブラウザインスタンスに関連付けられるローカルインターフェースコンポーネントの表現を含まない、付記37に記載のシステム。
付記39、遠隔セッションブラウジングのためのコンピュータ実装方法であって、
クライアントコンピューティングデバイスによって、ネットワークコンテンツのための要求を、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、ネットワークコンピューティングおよびストレージプロバイダが、ネットワークコンテンツを得、ネットワークコンテンツを処理して、ネットワークコンテンツの表現に対応する処理結果を生成するように構成され、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、ブラウザプロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別する、得ることと、
処理結果に基づいて、クライアントコンピューティングデバイスによって、ネットワークコンテンツの表現を、クライアントコンピューティングデバイスにおいて実行するブラウザ内に表示させることと、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、対話データを、ネットワークコンピューティングおよびストレージプロバイダに提供することと、
ブラウザプロトコル構成に従って、クライアントコンピューティングデバイスによって、更新された処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、更新された処理結果が、ネットワークコンテンツの更新された表現に対応する、得ることと、
更新された処理結果に基づいて、クライアントコンピューティングデバイスによって、ネットワークコンテンツの更新された表現を、ブラウザ内に表示させることと、を含む、コンピュータ実装方法。
付記40.対話データが、ネットワークコンテンツの表現とのユーザ対話に基づく、付記39に記載のコンピュータ実装方法。
付記41.ブラウザが、1つ以上のローカルインターフェースコンポーネントを含む、付記39に記載のコンピュータ実装方法。
付記42.
対話データをネットワークコンピューティングおよびストレージプロバイダに提供することであって、対話データが、ブラウザのローカルインターフェースコンポーネントとのユーザ対話に基づく、提供することと、
ユーザ対話に基づいてブラウザのローカルインターフェースコンポーネントを更新することであって、ローカルインターフェースコンポーネントに対する更新が、ブラウザによってローカルに処理される、更新することと、を更に含む、付記41に記載のコンピュータ実装方法。
付記43.ネットワークコンテンツが、複数の処理行為で処理され得る、付記39に記載のコンピュータ実装方法。
付記44.複数の処理行為の全てが、ネットワークコンピューティングおよびストレージプロバイダで行われる、付記43に記載のコンピュータ実装方法。
付記45.処理結果が、ネットワークコンピューティングおよびストレージプロバイダにおいて実行するネットワークに基づくブラウザインスタンスによって生成される、付記39に記載のコンピュータ実装方法。
付記46.遠隔セッションブラウジングを管理するために、符号化された命令を有する非一時的コンピュータ読み取り可能な媒体であって、命令が、コンピューティング装置によって実行されるとき、コンピューティング装置に、
ネットワークコンテンツのための要求を、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、ネットワークコンピューティングおよびストレージプロバイダが、ネットワークコンテンツを得、ネットワークコンテンツを処理して、ネットワークコンテンツの表現に対応する処理結果を生成するように構成される、提供することと、
少なくとも1つの表示に基づく通信プロトコルを識別するブラウザプロトコル構成に従って、処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることと、
ネットワークコンテンツの表現を、処理結果に基づいてコンピューティング装置において実行するブラウザ内に表示させることと、
ブラウザプロトコル構成に従って、対話データを、ネットワークコンピューティングおよびストレージプロバイダに提供することと、
ブラウザプロトコル構成に従って、更新された処理結果を、ネットワークコンピューティングおよびストレージプロバイダから得ることであって、更新された処理結果が、ネットワークコンテンツの更新された表現に対応する、得ることと、
更新された処理結果に基づいて、ネットワークコンテンツの更新された表現を、ブラウザ内に表示させることと、を行わせる、非一時的コンピュータ読み取り可能な媒体。
付記47.対話データが、要求されたネットワークコンテンツの表現とのユーザ対話に基づく、付記46に記載の非一時的コンピュータ読み取り可能な媒体。
付記48.ブラウザコンポーネントが、1つ以上のローカルインターフェースコンポーネントを含む、付記46に記載の非一時的コンピュータ読み取り可能な媒体。
付記49.命令が、コンピューティング装置に、
対話データを、ネットワークコンピューティングおよびストレージプロバイダに提供することであって、対話データが、ブラウザコンポーネントのローカルインターフェースコンポーネントとのユーザ対話に基づく、提供することと、
ユーザ対話に基づいてブラウザのローカルインターフェースコンポーネントを更新することであって、ローカルインターフェースコンポーネントに対する更新が、ブラウザコンポーネントによってローカルに処理される、更新することと、を行わせる、付記48に記載の非一時的コンピュータ読み取り可能な媒体。
付記50.要求されたネットワークコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備える、付記46に記載の非一時的コンピュータ読み取り可能な媒体。
付記51.要求されたネットワークコンテンツが、複数の処理行為で処理され得る、付記46に記載の非一時的コンピュータ読み取り可能な媒体。
付記52.複数の処理行為の全てが、ネットワークコンピューティングおよびストレージプロバイダで行われる、付記51に記載の非一時的コンピュータ読み取り可能な媒体。
付記53.処理結果が、ネットワークコンピューティングおよびストレージプロバイダにおいて実行するネットワークに基づくブラウザインスタンスによって処理される、要求されたネットワークコンテンツに基づいて生成される、付記46に記載の非一時的コンピュータ読み取り可能な媒体。
付記54.処理結果が、ネットワークに基づくブラウザインスタンスに関連付けられるローカルインターフェースコンポーネントの表現を含まない、付記53に記載の非一時的コンピュータ読み取り可能な媒体。
例示的な実施形態が開示され、論じられている一方、当業者は、追加または代替の実施形態が本発明の趣旨および範囲内で実装されてもよいことを理解するであろう。例えば、本明細書に記載される技術は、画像もしくはビデオ編集ソフトウェア、データベースソフトウェア、事務所生産性ソフトウェア、3次元デザインソフトウェア、オーディオおよびサウンド処理アプリケーション等を含むが、これらに限定されない、任意の数の他のソフトウェアアプリケーションおよび処理において遠隔処理管理を可能にするために、本発明の範囲を逸脱せずに使用され得る。加えて、多くの実施形態は、例示的なものとして示されているが、当業者は、例示的な実施形態が一緒に組み合わされ、または実装される必要がないことを理解するであろう。したがって、いくつかの例示的な実施形態は、本開示への変形形態の範囲に従って使用または実装される必要はない。
とりわけ、「できる」、「できるであろう」、「してもよいであろう」、または「してもよい」等の条件的語法は、具体的に別途記述され、または使用される文脈内で別途理解されない限り、特定の実施形態は、一般的に、他の実施形態が含まない一方で、特定の特徴、要素、および/またはステップを含むことを伝達するように意図される。したがって、そのような条件的語法は、一般的に、特徴、要素、および/またはステップが、ユーザ入力またはプロンプトを用いて、またはこれらを用いずに、これらの特徴、要素、および/またはステップが任意の特定の実施形態に含まれ、または行われるものであっても、1つ以上の実施形態のためにいずれの様式でも必要とされ、または1つ以上の実施形態が決定のための論理を必ず含むことを示唆するように意図されない。
本明細書に記載され、および/または添付された図に図示される流れ図の任意の処理の説明、要素、またはブロックは、処理における具体的な論理的機能またはステップを実装するための1つ以上の実行可能な命令を含む、モジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されるべきである。代替の実装形態が本明細書に記載される実施形態の範囲内に含まれ、当業者によって理解されるように、要素または機能は、伴われる機能性に応じて、削除され、実質的に同時に、または反対の順序を含む、示され、または論じられたものから外れた順序で実行されてもよい。上記のデータおよび/またはコンポーネントは、CD−ROM、DVD−ROM、または更にネットワークインターフェース等のコンピュータ実行可能なコンポーネントを格納する、コンピュータ読み取り可能な媒体に関連付けられたドライブ機構を使用して、コンピュータ読み取り可能な媒体上に記憶され、コンピューティングデバイスのメモリに読み込まれてもよく、コンポーネントおよび/またはデータは、単一のデバイス内に含まれて、またはいずれの様式でも分散され得ることが、更に理解されるであろう。したがって、汎用コンピューティングデバイスは、上記の様々なデータおよび/またはコンポーネントの処理および/または実行で本開示の処理、アルゴリズム、および方法論を実装するように構成されてもよい。
多くの変形形態および改変形態が上記の実施形態に対してなされることができ、その要素が他の受け入れ可能な実施例の下にあるものとして理解されるものであることが強調されるべきである。全てのそのような改変形態および変形形態は、本明細書において本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されることを意図される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] コンテンツにアクセスするためのシステムであって、
1つ以上のコンピュータプロセッサと、
前記1つ以上のコンピュータプロセッサのうちの少なくとも1つによってアクセス可能な少なくとも1つのコンピュータメモリと、
ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションと、を備え、前記ネットワークに基づくアプリケーションが、前記1つ以上のコンピュータプロセッサによって実行される実行可能なソフトウェアモジュールを備え、前記ネットワークに基づくアプリケーションが、
ネットワークコンテンツのための要求を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションが、ローカルユーザ対話を得るための1つ以上のローカルインターフェースコンポーネントおよびコンテンツを表示するためのコンテンツ表示区域を含む、得ることと、
表示プロトコル構成にしたがって、処理結果を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションに送信することであって、前記表示プロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別し、前記処理結果が、前記要求されたネットワークコンテンツの表現を生成するのに使用するための前記要求されたコンテンツの処理に対応し、前記クライアントコンピューティングデバイスが、前記要求されたネットワークコンテンツの前記表現を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションの前記コンテンツ表示区域内に表示させる、送信することと、
を行うように動作可能である、システム。
[2] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションが、
対話データを、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションから得ることであって、前記対話データが、前記コンテンツ表示区域内に表示される前記要求されたネットワークコンテンツの前記表現とのユーザ対話に基づき、前記対話データが、前記1つ以上のローカルインターフェースコンポーネントとのユーザ対話に基づくローカルユーザ対話を含まない、得ることと、
前記表示プロトコル構成にしたがって、前記要求されたネットワークコンテンツの更新された表現を生成するのに使用するための更新された処理結果を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションに送信することと、を行うように更に動作可能であり、
前記クライアントコンピューティングデバイスが、前記要求されたネットワークコンテンツの前記更新された表現を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションの前記コンテンツ表示区域内に表示させる、[1]に記載のシステム。
[3] 前記ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、前記要求されたネットワークコンテンツの更新された表現を生成するのに使用するための前記更新された処理結果を生成するように更に動作可能であり、前記更新された処理結果が、前記要求されたネットワークコンテンツおよび前記対話データに基づいて前記ネットワークコンピューティングコンポーネントによって生成される、[2]に記載のシステム。
[4] 前記1つ以上のローカルインターフェースコンポーネントが、前記クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、[1]に記載のシステム。
[5] 前記ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションが、前記要求されたネットワークコンテンツの表現を生成するのに使用するための前記処理結果を生成するように更に動作可能である、[1]に記載のシステム。
[6] 前記要求されたネットワークコンテンツが、複数の処理行為で処理され得る、[1]に記載のシステム。
[7] 前記複数の処理行為の全てが、前記ネットワークコンピューティングコンポーネントで行われる、[6]に記載のシステム。
[8] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションが、仮想マシンインスタンス上で実行するアプリケーションに対応し、前記仮想マシンインスタンスが、クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションから得られるネットワークコンテンツのための前記要求に応答して、インスタンス化される、[1]に記載のシステム。
[9] コンテンツにアクセスするためのコンピュータ実装方法であって、
ネットワークコンピューティングコンポーネント上でインスタンス化されるネットワークに基づくアプリケーションによって、ネットワークコンテンツのための要求を、クライアントコンピューティングデバイス上でインスタンス化されるアプリケーションから得ることであって、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションが、ローカルユーザ対話を得るための1つ以上のローカルインターフェースコンポーネントおよびコンテンツを表示するためのコンテンツ表示区域を含む、得ることと、
表示プロトコル構成にしたがって、前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、処理結果を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションに送信することであって、前記表示プロトコル構成が、少なくとも1つの表示に基づく通信プロトコルを識別し、前記処理結果が、前記要求されたネットワークコンテンツの表現を生成するのに使用するための前記要求されたネットワークコンテンツの処理に対応し、前記クライアントコンピューティングデバイスが、前記要求されたネットワークコンテンツの表現を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションの前記コンテンツ表示区域内に表示させる、送信することと、
を含む、方法。
[10] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、対話データを、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションから得ることであって、前記対話データが、前記コンテンツ表示区域内に表示される前記要求されたネットワークコンテンツの前記表現とのユーザ対話に基づき、前記対話データが、前記1つ以上のローカルインターフェースコンポーネントとのユーザ対話に基づくローカルユーザ対話を含まない、得ることと、
前記表示プロトコル構成にしたがって、前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、前記要求されたネットワークコンテンツの更新された表現を生成するのに使用するための更新された処理結果を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションに送信することであって、前記クライアントコンピューティングデバイスが、前記要求されたネットワークコンテンツの前記更新された表現を、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションの前記コンテンツ表示区域内に表示させる、送信することと、
を更に含む、[9]に記載の方法。
[11] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、前記要求されたコンテンツの更新された表現を生成するのに使用するための前記更新された処理結果を生成することを更に含み、前記更新された処理結果が、前記要求されたコンテンツおよび前記対話データに基づいて前記ネットワークコンピューティングコンポーネントによって生成される、[10]に記載の方法。
[12] 前記対話データが、前記要求されたネットワークコンテンツの前記表現とのユーザ対話に基づく、[10]に記載の方法。
[13] 前記1つ以上のローカルインターフェースコンポーネントが、前記クライアントコンピューティングデバイスでローカルに実行するソフトウェア処理によって制御される、ユーザインターフェース制御を含む、[10]に記載の方法。
[14] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、前記要求されたネットワークコンテンツの表現を生成するのに使用するための処理結果を生成することを更に含む、[9]に記載の方法。
[15] 前記要求されたネットワークコンテンツが、1つ以上の埋め込みリソースを参照するネットワークリソースを備える、[9]に記載の方法。
[16] 前記要求されたネットワークコンテンツが、複数の処理行為で処理され得る、[9]に記載の方法。
[17] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションによって、前記複数の処理行為を行うことを更に含む、[16]に記載の方法。
[18] 前記ネットワークコンピューティングコンポーネント上でインスタンス化される前記ネットワークに基づくアプリケーションが、仮想マシンインスタンス上で実行するアプリケーションに対応し、前記仮想マシンインスタンスが、前記クライアントコンピューティングデバイス上でインスタンス化される前記アプリケーションから得られるネットワークコンテンツのための前記要求に応答して、インスタンス化される、[9]に記載の方法。