(57)【特許請求の範囲】
【請求項１】
サーバと端末装置とに接続された記録装置を用いた、リモートデスクトップクライアントアクティビティの記録方法であって、
前記記録装置が、前記端末装置上で実行されるリモートデスクトップクライアントセッションのアクティビティに関係したデータを受信するステップであって、該リモートデスクトップクライアントセッションに関連付けられた前記端末装置から前記データを受信し、前記リモートデスクトップクライアントセッションの前記サーバから前記データを受信することを含み、前記データは、前記リモートデスクトップクライアントセッションでの全てのキーストロークと、前記リモートデスクトップクライアントセッションにおいて保存された文書のコピーとを含む、データを受信するステップと、
前記記録装置が、前記サーバ又は前記端末装置におけるファイルの作成及び記憶を含むイベントに基づいて、前記データをインデックス付けするステップと、
前記記録装置が、トリガが前記端末装置において検出された後に、前記端末装置によって前記データの各項目に関連付けられた第１のタイムスタンプと前記サーバによって前記データの各項目に関連付けられた第２のタイムスタンプとを用いて、前記リモートデスクトップクライアントセッションの前記端末装置以外のロケーションにおいて前記データを記憶するステップと、
前記記録装置が、前記リモートデスクトップクライアントセッションの少なくとも一部を再現する要求を受信するステップと、
前記記録装置が、前記リモートデスクトップクライアントセッションに関する前記データの少なくとも一部を前記端末装置以外のロケーションから取り出すステップと、
前記端末装置及び前記サーバが、セキュアな送信に向けて前記データを暗号化するステップであって、前記端末装置から受信された前記データを解読する第１の鍵を前記記録装置が受信し、前記サーバから受信された前記データを解読する第２の鍵を前記記録装置が受信することを含む、前記データを暗号化するステップと、
前記記録装置が、前記取り出されたデータに少なくとも部分的に基づいて、前記要求されたリモートデスクトップクライアントセッションの再現に関して、前記インデックス付けしたイベントにおいて前記取り出されたデータを前記端末装置に提示するステップであって、前記第１のタイムスタンプは、前記端末装置において前記データが実行されたレートに比例したレートで前記取り出されたデータの再生のために使用され、前記第２のタイムスタンプは、前記サーバにおいて前記データが受信されたレートに比例したレートで前記取り出されたデータの再生のために使用される、提示するステップと
を含んでなる、リモートデスクトップクライアントアクティビティの記録方法。
【請求項２】
前記データを受信するステップは、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つを示すデータを受信するステップを含む、請求項１に記載のリモートデスクトップクライアントアクティビティの記録方法。
【請求項３】
前記データを記憶するステップは、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つによってトリガされる、請求項１に記載のリモートデスクトップクライアントアクティビティの記録方法。
【請求項４】
請求項１に記載のリモートデスクトップクライアントアクティビティの記録の方法であって、前記リモートデスクトップクライアントセッションの再現に関して前記取り出されたデータを提示するステップは、
別のリモートデスクトップクライアント用の端末装置への入力として前記取り出されたデータを提供するステップと、
再現中に前記別のリモートデスクトップクライアント用の前記端末装置へのユーザ入力を抑制するステップと
を更に含む、請求項１に記載のリモートデスクトップクライアントアクティビティの記録方法。
【請求項５】
サーバと端末装置とに接続された、リモートデスクトップクライアントアクティビティの記録装置であって、
少なくとも１つのプロセッサと、
コンピュータプログラムコードを記憶する少なくとも１つのメモリと
を備えてなり、
前記記憶されたコンピュータプログラムコードは、前記少なくとも１つのプロセッサによって実行されると、前記記録装置に対して、
前記端末装置上で実行されるリモートデスクトップクライアントセッションのアクティビティに関係したデータを受信させ、ここで、該リモートデスクトップクライアントセッションに関連付けられた前記端末装置から前記データを受信させ、前記リモートデスクトップクライアントセッションのサーバから前記データを受信させ、前記データは、前記リモートデスクトップクライアントセッションでの全てのキーストロークと、前記リモートデスクトップクライアントセッションにおいて保存された文書のコピーとを含むものであり、
前記サーバ又は前記端末装置におけるファイルの作成及び記憶を含むイベントに基づいて、前記データをインデックス付けさせ、
前記端末装置によって前記データの各項目に関連付けられた第１のタイムスタンプと前記サーバによって前記データの各項目に関連付けられた第２のタイムスタンプとを用いて、トリガが前記端末装置において検出された後に、前記リモートデスクトップクライアントセッションの前記端末装置以外のロケーションに前記データを記憶させ、
前記リモートデスクトップクライアントセッションの少なくとも一部を再現する要求を受信させ、
前記リモートデスクトップクライアントセッションに関する前記データの少なくとも一部を前記端末装置以外のロケーション装置から取り出させ、
セキュアな送信に向けて前記データを前記端末装置及び前記サーバに暗号化させ、ここで、前記端末装置から受信された前記データを解読する第１の鍵を前記記録装置に受信させ、前記サーバから受信された前記データを解読する第２の鍵を前記記録装置に受信させるものであり、
前記取り出されたデータに少なくとも部分的に基づいて、前記要求されたリモートデスクトップクライアントセッションの再現に関して、前記インデックス付けしたイベントにおいて前記取り出されたデータを前記端末装置に提示させ、ここで、前記第１のタイムスタンプは、前記端末装置において前記データが実行されたレートに比例したレートで前記取り出されたデータの再生のために使用され、前記第２のタイムスタンプは、前記サーバにおいて前記データが受信されたレートに比例したレートで前記取り出されたデータの再生のために使用されるものである、
リモートデスクトップクライアントアクティビティの記録装置。
【請求項６】
前記データは、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含む、請求項５に記載のリモートデスクトップクライアントアクティビティの記録装置。
【請求項７】
前記端末装置は、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つによって前記データを記憶するようにトリガされる、請求項５に記載のリモートデスクトップクライアントアクティビティの記録装置。
【請求項８】
リモートデスクトップクライアントアクティビティの記録用のコンピュータプログラムであって、コンピュータ可読プログラム命令を含んでおり、
前記プログラム命令は、実行されると、サーバと端末装置とに接続された記録装置に対して、
前記端末装置上で実行されるリモートデスクトップクライアントセッションのアクティビティに関係したデータを受信させ、ここで、該リモートデスクトップクライアントセッションに関連付けられた前記端末装置から前記データを受信させ、前記リモートデスクトップクライアントセッションの前記サーバから前記データを受信させ、前記データは、前記リモートデスクトップクライアントセッションでの全てのキーストロークと、前記リモートデスクトップクライアントセッションにおいて保存された文書のコピーとを含むものであり、
前記サーバ又は前記端末装置におけるファイルの作成及び記憶を含むイベントに基づいて、前記データをインデックス付けさせ、
前記端末装置によって前記データの各項目に関連付けられた第１のタイムスタンプと前記サーバによって前記データの各項目に関連付けられた第２のタイムスタンプとを用いて、トリガが前記端末装置において検出された後に、前記リモートデスクトップクライアントセッションの前記端末装置以外のロケーションに前記データを記憶させ、
前記リモートデスクトップクライアントセッションの少なくとも一部を再現する要求を受信させ、
前記リモートデスクトップクライアントセッションに関する前記データの少なくとも一部を前記端末装置以外のロケーションから取り出させ、
セキュアな送信に向けて前記データを前記端末装置及び前記サーバに暗号化させ、ここで、前記端末装置から受信された前記データを解読する第１の鍵を前記記録装置に受信させ、前記サーバから受信された前記データを解読する第２の鍵を前記記録装置に受信させるものであり、
前記取り出されたデータに少なくとも部分的に基づいて、前記要求されたリモートデスクトップクライアントセッションの再現に関して、前記インデックス付けしたイベントにおいて前記取り出されたデータを前記端末装置に提示させ、ここで、前記第１のタイムスタンプは、前記端末装置において前記データが実行されたレートに比例したレートで前記取り出されたデータの再生のために使用され、前記第２のタイムスタンプは、前記サーバにおいて前記データが受信されたレートに比例したレートで前記取り出されたデータの再生のために使用されるものである、
ように構成されている、リモートデスクトップクライアントアクティビティの記録のコンピュータプログラム。
【請求項９】
前記データは、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含む、請求項８に記載のリモートデスクトップクライアントアクティビティの記録のコンピュータプログラム。
【請求項１０】
前記コンピュータプログラムは、前記リモートデスクトップクライアントセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つによって前記データを記憶するようにトリガされる、請求項８に記載のリモートデスクトップクライアントアクティビティの記録のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、包括的には、リモートデスクトップ技術に関し、より詳細には、リモートデスクトップセッションのサーバサイドの記録及び再生の方法、装置、及びコンピュータプログラム製品に関する。
【背景技術】
【０００２】
コンピューティング産業は、時間とともに、急速な成長及び発展を経験してきた。技術的進歩は、コンピューティングデバイスの新たなモデルをもたらしただけでなく、コンピューティングデバイスが動作及び相互作用するシステム及びネットワークにおける発達ももたらしてきた。コンピューティングデバイスの新たな各モデルは、メインフレーム及びスーパコンピュータからパーソナルコンピュータ及び移動デバイスに至るまで、利点だけでなく課題も各モデル自体の分担分をもたらした。
【０００３】
過去数十年にわたって、コンピューティングは、集中型システム（例えば、メインフレーム）から非集中型システム（例えば、パーソナルコンピュータ）に移行してきた。これらの新たな非集中型クライアント指向パーソナルコンピュータモデルは、強化された柔軟性及び利便性をユーザに提供したが、その結果、リソースの使用が非効率的になるとともに、不要なコストが追加されることにもなった。例えば、各パーソナルコンピュータには、通常の負荷ではなく、最大負荷に必要な処理電力及び記憶容量が必要とされた。その結果、コンピューティングにおける最近の傾向は、コストの削減並びにセキュリティ及び効率性の改善を目的として、アプリケーション及びデータを中央で管理し、記憶し、プロビジョニングすることができる集中型モデルになってきている。
【０００４】
「クラウド」として知られている１つの新たに出現したモデルは、コンピュータネットワークを介したコンピューティングリソースの配信に依拠している。クラウドによって提供されるサービスは、個々のアプリケーションからオペレーティングシステムの全機能に及ぶことができる。これらのクラウドサービスの配信を容易にするために、幾つかのシステムは、リモートデスクトッププロトコル（ＲＤＰ：remote desktop protocol）等のリモートアクセス技術に少なくとも部分的に依拠する場合がある。ＲＤＰは、ユーザが、リモートで動作しているデスクトップ又はアプリケーションをネットワーク接続によって観察及び制御することを可能にする。しかしながら、リモートデスクトップ、リモートアプリケーション、更にはリモートファイルシステムのリモート制御を可能にすることによって、サーバは、更なるセキュリティリスク及び不正アクセスに晒されるおそれがある。加えて、エラー又は非効率性が、サーバからの解析を用いて訂正又は改善することができるＲＤＰサービスのユーザの動作から生じるおそれもある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当該技術分野には、ＲＤＰクライアントから生じるセキュリティの脅威、エラー、又は非効率性によって引き起こされる問題を防止又は緩和するのにサーバによってＲＤＰセッションを監視することを可能にするコンピューティングシステムが必要とされている。
【課題を解決するための手段】
【０００６】
これらの必要性及び他の必要性は、サーバによって監視、記録、及び／又は再生されるＲＤＰセッションを提供する本明細書における本発明の実施の形態によって満たされる。様々な実施の形態によるシステム、方法、装置、及びコンピュータプログラム製品が、コンピューティングデバイス、コンピューティングデバイスのユーザ、及びネットワークプロバイダに幾つかの利点を提供することができる。様々な実施の形態は、ＲＤＰセッションをサーバサイドにおいて自動的に記録及び監視することを可能にする。或る特定の実施の形態の更なる利点は、このセッションが記録又は監視されていることをＲＤＰクライアントのユーザが知ることなく、ＲＤＰクライアントマシンにおいて記憶容量もネットワーク容量も追加する必要なく、ＲＤＰクライアントマシンにおいて処理能力を更に必要とすることなく、及び／又はＲＤＰクライアントマシンにおいて特別なソフトウェアのインストールを必要とすることなく、ＲＤＰセッションの記録を行うことを可能にする。この点に関して、アドミニストレータが、１つ以上のＲＤＰセッションをライブで監視して、情報の誤用又は不正アクセスを検出することもできるし、その後にＲＤＰセッションの全て又は一部を再生して、エラー又はセキュリティ違反の原因を求めることもできる。
【０００７】
幾つかの例示の実施の形態によって、利点として、ＲＤＰサーバからＲＤＰクライアントへのパスに位置するネットワークエンティティがＲＤＰセッションを記録することが可能になる。このように、ポータル環境のアドミニストレータが、そのポータル環境がＲＤＰサーバを制御していないＲＤＰセッションを監視することができる。更に他の有利な実施の形態では、特定の許可レベルを必要とすることが知られている動作又はエラー若しくは他の問題をもたらす可能性がある動作等の、ＲＤＰセッションの或る特定の識別された部分のみを記録することができる。他の実施の形態では、記録されたセッションをインデックス付けして、アドミニストレータが、上述したような特に重要なイベントの記録を検索することを可能にすることができる。
【０００８】
一例示の実施形態では、リモートデスクトッププロトコルセッションに関係したデータを受信することを含みうる方法を提供する。この例示の実施の形態の方法は、リモートデスクトップクライアントセッションのリモートデスクトップクライアントに関連付けられたデバイス以外のロケーションにおいてデータの記憶を行うことを更に含みうる。この例示の実施形態の方法は、リモートデスクトッププロトコルセッションを再現する要求を受信することを更に含みうる。加えて、この例示の実施形態の方法は、データを記憶装置から取り出すことを含みうる。この例示の実施形態の方法は、取り出されたデータに少なくとも部分的に基づいて、リモートデスクトッププロトコルセッションの少なくとも一部の再現を容易にすることを更に含みうる。
【０００９】
別の例示の実施形態では、システムを提供する。この例示のシステムは、リモートデスクトッププロトコルクライアントを動作させるように構成された第１のデバイスを備えうる。さらに、この例示のシステムは、リモートデスクトッププロトコルサーバを動作させるように構成された第２のデバイスを備えうる。この例示の実施形態によるシステムは、第１のデバイスと第２のデバイスとの間のネットワークパスに位置する第３のデバイスを更に備えうる。この第３のデバイスは、リモートデスクトッププロトコルセッション中に第１のデバイス及び第２のデバイスによって送信されたデータを受信及び記憶するように構成することができる。
【００１０】
このように本発明の幾つかの例示の実施の形態を概括的に説明してきたが、ここで添付の図面を参照する。図面は縮尺通りに描かれているとは限らない。
【図面の簡単な説明】
【００１１】
【図１】本発明の様々な実施形態によるリモートデスクトップセッションのサーバサイドの記録及び再生から利益を得るポータルインタフェースを通じたデータセンタのウェブ対応配信を提供するシステムを示す図である。
【図２】本発明の幾つかの例示の実施形態による端末装置のブロック図である。
【図３】本発明の幾つかの例示の実施形態によるサービングネットワーク装置のブロック図である。
【図４】本発明の幾つかの例示の実施形態によるリモートデスクトップセッションのサーバサイドの記録及び再生を提供する一例示の方法によるフローチャートである。
【発明を実施するための形態】
【００１２】
次に、本発明の例示的な実施形態を、添付の図面を参照しながら以下に更に十分に説明する。図面は、本発明の全ての実施形態ではないが、その幾つかを示している。実際には、本発明は数多くの異なる形で実施することができ、本明細書において記載される実施形態に限定されると解釈されるべきではない。むしろ、本開示が適用可能な法的要件を満たすように、これらの実施形態が提供される。全体を通じて、同様の符号は、同様の要素を指す。「データ」、「コンテンツ」、「情報」という用語、及び類似の用語は、本発明の幾つかの例示の実施形態によれば、送信、受信、操作、及び／又は記憶することができるデータを指すのに区別なく用いることができる。
【００１３】
（定義）
「コンピュータ可読媒体」という用語は、本明細書において用いられるとき、実行用の命令を含めて、プロセッサに情報を提供することに関与するように構成された任意の媒体を指す。そのような媒体は、多くの形態を取ることができる。これらの形態には、非一時的なコンピュータ可読記憶媒体（例えば、不揮発性媒体、揮発性媒体）、及び伝送媒体が含まれるが、これらに限定されるものではない。伝送媒体は、例えば、同軸ケーブル、銅線、光ファイバケーブル、並びに、音波、並びに電波、光波、及び赤外波を含む電磁波等の、電線もケーブルもなく空間を進む搬送波を含む。信号は、伝送媒体を通じて送信される振幅、周波数、位相、偏波、又は他の物理的性質における人工の一時的な変動を含む。コンピュータ可読媒体の例には、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、再書き込み可能コンパクトディスク（ＣＤ−ＲＷ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ、他の任意の光媒体、パンチカード、紙テープ、光学マークシート、孔若しくは他の光認識可能表示のパターンを有する他の任意の物理媒体、ランダムアクセスメモリ（ＲＡＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、ＦＬＡＳＨ−ＥＰＲＯＭ、他の任意のメモリチップ若しくはカートリッジ、搬送波、又はコンピュータが読み出すことができる他の任意の媒体が含まれる。コンピュータ可読記憶媒体という用語は、本明細書では、伝送媒体を除く任意のコンピュータ可読媒体を指すのに用いられる。しかしながら、実施形態がコンピュータ可読記憶媒体を用いるのに説明される場合、代替の実施形態では、他のタイプのコンピュータ可読媒体を代わりに用いることもできるし、コンピュータ可読記憶媒体に加えて用いることもできることが認識されるであろう。
【００１４】
「回路部」という用語は、本明細書において用いられるとき、次のもの、すなわち、（ａ）ハードウェアのみの回路の実施態様（アナログ回路部及び／又はデジタル回路部のみの実施態様等）と、（ｂ）（適用可能なときは）（ｉ）プロセッサ（複数の場合もある）の組み合わせ、又は（ｉｉ）プロセッサ（複数の場合もある）／ソフトウェア（デジタル信号プロセッサ（複数の場合もある）を含む）、ソフトウェア、及びメモリ（複数の場合もある）の、ともに動作して端末装置、中継装置、又はサーバ等の装置に様々な機能を実行させる部分等の回路及びソフトウェア（及び／又はファームウェア）の組み合わせと、（ｃ）ソフトウェア又はファームウェアが物理的に存在しない場合であっても、動作に関するソフトウェア又はファームウェアを必要とするマイクロプロセッサ（複数の場合もある）又はマイクロプロセッサ（複数の場合もある）の一部等の回路との全てを指す。
【００１５】
「回路部」のこの定義は、あらゆる請求項を含む、本出願におけるこの用語の全ての使用に適用される。更なる例として、「回路部」という用語は、本出願において用いられるとき、単にプロセッサ（又は複数のプロセッサ）又はプロセッサの一部並びにその（又はそれらの）付随ソフトウェア及び／又はファームウェアだけの実施態様も包含する。「回路部」という用語は、例えば、特定の請求項の要素に適用可能である場合、端末装置、中継装置、サーバ、又は他のネットワークデバイス内の集積回路も包含する。
【００１６】
（システム）
次に図１を参照すると、図１は、本発明の様々な実施形態によるリモートデスクトップセッションのサーバサイドの記録及び再生から利益を得る、端末装置１０２上のブラウザに組み込まれたデスクトップ等のポータルインタフェースを通じてデータセンタのウェブ対応配信を提供する一例示のシステム１００のブロック図を示している。このシステム１００及び他の図における例示はそれぞれ、１つの実施形態の一例として提供されており、いかなる方法においても本開示内容の範囲も趣旨も狭めるように解釈されるべきでないことが認識されるであろう。この点に関して、本開示内容の範囲は、本明細書において例示及び説明される実施形態に加えて、多くの可能性のある実施形態を包含する。したがって、図１は、ポータルインタフェースを通じてデータセンタのウェブ対応配信を提供するシステムの構成の１つの例を示しているが、多数の他の構成も、本発明の様々な実施形態から利益を得ることができる。
【００１７】
例示の実施形態では、システム１００は、データセンタ１２０を備えることができる。データセンタ１２０は、プライベートクラウド、パブリッククラウド、又はプライベートパブリック結合クラウドとして動作するように構成することができる。例えば、パブリッククラウドは、任意のユーザにサービスを提供することができるのに対して、プライベートクラウドは、全てのユーザのサブセット（例えば、プライベートクラウドサービスを提供する特定の企業の従業員）にサービスを提供することができる。データセンタ１２０は、場合によっては、ファイアウォールによって保護される場合がある。幾つかの実施形態では、データセンタ１２０は、プライベートローカルエリアネットワーク（ＬＡＮ）等の内部ネットワーク上に位置することもできるし、データセンタ１２０は、リモートに位置し及び／又はサードパーティがホストすることもできる。場合によっては、データセンタ１２０は、ローカル及びリモートの双方に存在するエンティティ及びサービスの組み合わせを備えることができる。
【００１８】
幾つかの実施形態によれば、データセンタ１２０は、１つ以上のサーバ１２２を備えることができる。サーバ１２２は、任意のコンピューティングデバイスとして具現化することもできるし、場合によっては、仮想サーバとして具現化することもできる。サーバ１２２は、複数のコンピューティングデバイスの組み合わせとして具現化することもできる。この点に関して、サーバ１２２は、例えば、サーバクラスタとして具現化することができ、及び／又は複数のコンピューティングデバイスにわたって分散させることができる分散コンピューティングシステムとして具現化することができる。他の実施形態では、１つ以上のサーバ１２２は、同じコンピューティングデバイス上に具現化することができる。
【００１９】
様々な実施形態によれば、システム１００は、データセンタ１２０の外部に位置する非武装地帯（ＤＭＺ：demilitarized zone）１４０を備えることができる。この点に関して、ＤＭＺ１４０は、データセンタ１２０を保護するファイアウォールの外部に位置することができる。例示の実施形態では、ＤＭＺ１４０は、１つ以上の中継装置１５０を備えることができる。中継装置１５０は、例えば、サーバコンピュータ（例えば、ネットワークウェブサーバ）、デスクトップコンピュータ、ラップトップコンピュータ等の任意のコンピューティングデバイスとして具現化することができる。他の実施形態では、中継装置１５０は、仮想中継器として具現化することができる。幾つかの実施形態によれば、ＤＭＺ１４０内の中継装置１５０及びデータセンタ１２０は、同じコンピューティングデバイス上に具現化することができる。
【００２０】
システム１００は、例示の実施形態によれば、１つ以上の端末装置１０２を備えることができる。様々な実施形態では、１つ以上の端末装置１０２は、ＤＭＺ１４０及びデータセンタ１２０の外部に位置することができる。この点に関して、１つ以上の端末装置１０２は、データセンタ１２０を保護するファイアウォールの外部に位置することができる。端末装置１０２は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ネットブック、タブレット、携帯情報端末（ＰＤＡ）、移動端末、移動コンピュータ、移動電話、移動通信デバイス、スマートフォン、ゲームデバイス、テレビデバイス、デジタルビデオレコーダ、測位デバイス、それらの任意の組み合わせ等の任意のコンピューティングデバイスとして具現化することができる。
【００２１】
或る特定の実施形態では、端末装置１０２は、ＤＭＺ１４０内の１つ以上の中継装置１５０のうちの少なくとも１つとの接続を確立するように構成することができる。幾つかの実施形態では、第１の中継装置１５０に接続された端末装置１０２は、同じセッション中に第２の中継装置１５０に移すことができる。この接続は、例えば、伝送制御プロトコル（ＴＣＰ：Transmission Control Protocol）、ユーザデータグラムプロトコル（ＵＤＰ：User Datagram Protocol）等のトランスポートトプロトコルを介してインターネットによって確立することができる。これらの実施形態では、この接続は、ハイパーテキスト転送プロトコル（ＨＴＴＰ：Hypertext Transfer Protocol）、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ：Hypertext Transfer Protocol Secure）等のアプリケーション固有プロトコルを介して確立することができる。この接続は、或る特定の実施形態では、セキュアな接続とすることができる。例えば、端末装置１０２と中継装置１５０との間のこの接続による通信は、トランスポートレイヤセキュリティ（ＴＬＳ：Transport Layer Security）、セキュアソケットレイヤ（ＳＳＬ：Secure Socket Layer）等を用いてセキュアにすることができる。この接続によって送受信されるデータは、例えば、１２８ビットＳＳＬ暗号化を用いて暗号化することができる。
【００２２】
様々な実施形態によれば、ＤＭＺ１４０内の中継装置１５０は、データセンタ１２０内の１つ以上のサーバ１２２のうちの少なくとも１つとの接続を確立するように構成することができる。例えば、中継装置１５０は、サーバ１２２とのパイプライン接続を確立するように構成することができる。このパイプライン接続は、例示の実施形態では、中継装置１５０とサーバ１２２との間の双方向通信を提供するように構成することができる。例えば、このパイプライン接続は、シリアル接続、イーサネット接続、ソケット接続等とすることができる。このパイプライン接続は、幾つかの実施形態では、１つ以上のポートを通じて行うことができ、例えば、データセンタ１２０を保護するファイアウォール内の単一のポートを通じて行うことができる。
【００２３】
中継装置１５０は、例示の実施形態では、１つ以上の端末装置１０２と１つ以上のサーバ１２２との間の仲介器としての機能を果たすことができる。この点に関して、中継装置１５０は、端末装置１０２からデータセンタ１２０への全ての通信及び要求の端末終端点としての機能を果たすことができる。中継装置１５０は、端末装置１０２からサーバ１２２への通信及び要求を中継することができる。同様に、中継装置１５０は、データセンタ１２０から発信された端末装置１０２への全ての通信を、サーバ１２２とのパイプライン接続を介して受信することができるとともに、端末装置１０２へのこれらの通信をセキュアな接続を介して中継することができる。この点に関して、サーバ１２２は、データセンタ１２０の内部のアプリケーション、ファイルシステム、及びデータベースと通信するように構成することができる。
【００２４】
様々な実施形態によれば、中継装置１５０及びサーバ１２２の組み合わせは、外部ユーザ、例えば、端末装置１０２におけるユーザからデータセンタ１２０をセキュアにする２層アーキテクチャを提供することができる。この点に関して、中継装置１５０は、データセンタ１２０用の第１層のセキュリティを提供することができる一方、サーバ１２２は、データセンタ１２０用の第２層のセキュリティを提供することができる。他の実施形態では、端末装置は、サーバ１２２に直接接続するように構成することができ、それによって、単一層アーキテクチャが形成される。
【００２５】
様々な実施形態によれば、データセンタ１２０は、上記で説明したアーキテクチャを介して１つ以上の端末装置１０２に情報及びサービスを提供するように構成することができる。或る特定の実施形態による、データセンタ１２０が提供することができる情報及びサービスの例は、以下で更に詳細に説明される。
【００２６】
幾つかの実施形態では、データセンタ１２０は、オペレーティングシステム固有サービス１２４を提供するように構成することができる。例えば、データセンタ１２０は、Ｗｏｒｄ（商標）、Ｅｘｃｅｌ（商標）、ＰｏｗｅｒＰｏｉｎｔ（商標）等のＷｉｎｄｏｗｓ（商標）アプリケーションを提供することができる。オペレーティングシステム固有サービス１２４は、或る特定の実施形態では、公開方法によって配信することができる。この点に関して、オペレーティングシステム固有サービス１２４は、データセンタ１２０の内部で実行される端末サーバ（例えば、Ｍｉｃｒｏｓｏｆｔ（商標）端末サーバ）からリモートに配信することができる。他の実施形態では、オペレーティングシステム固有サービス１２４は、アプリケーション仮想化方法を介して配信することができる。この点に関して、オペレーティングシステム固有サービス１２４は、実行可能ファイル内にバンドルすることができるとともに、ローカル処理に対して端末装置１０２に動的に展開することができる。他の実施形態では、オペレーティングシステム固有サービス１２４は、端末装置にローカルにインストールされて、データセンタ１２０によって実行されるように指示されたサービス又はアプリケーションを指す場合がある。
【００２７】
例示の実施形態では、データセンタ１２０は、内部でホストされるウェブアプリケーション１２６を提供するように構成することができる。この点に関して、内部ウェブアプリケーション１２６は、データセンタ１２０内に当初から統合しておくことができる。例えば、内部ウェブアプリケーション１２６は、ＨＴＴＰ、ＨＴＴＰＳ、又は別の同様のプロトコル上で動作するように構成されたウェブアプリケーションを含むことがある。この別の同様のプロトコルは、ウェブサーバ（例えば、Ａｐａｃｈｅ、ＩＩＳ）、ウェブポータル（例えば、Ｍｉｃｒｏｓｏｆｔ  ＳｈａｒｅＰｏｉｎｔ（商標）、ＢＥＡ  Ｗｅｂｌｏｇｉｃ（商標）、ＩＢＭ  Ｗｅｂｓｐｈｅｒｅ（商標）、Ｏｒａｃｌｅ  ＰｅｏｐｌｅＳｏｆｔ（商標）、Ｏｒａｃｌｅ  Ｆｉｎａｎｃｉａｌｓ（商標））、コンテンツ管理システム、ウェブコンソール等である。幾つかの実施形態では、内部ウェブアプリケーション１２６は、社内で開発することもできるし、サードパーティベンダが開発することもできる。
【００２８】
様々な実施形態によれば、データセンタ１２０は、外部でホストされるウェブアプリケーション１２８を提供するように構成することができる。外部ウェブアプリケーション１２８は、例えば、サービスとしてのソフトウェア（ＳａａＳ：Software as a Service）アプリケーションを含むことがある。或る特定の実施形態では、外部ウェブアプリケーション１２８は、例えば、リモートデータセンタにおいてサードパーティがホストすることがある。例えば、外部ウェブアプリケーション１２８は、Ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ（商標）、Ｇｏｏｇｌｅ  Ａｐｐｓ（商標）、Ｍｉｃｒｏｓｏｆｔ  Ｌｉｖｅ（商標）、Ｚｏｈｏ（商標）、Ｍｏｏｄｌｅ（商標）等によって提供されるアプリケーションを含むことがある。外部ウェブアプリケーション１２８は、例えば、セキュリティアサーションマークアップ言語（ＳＡＭＬ：Security Assertion Markup Language）、委任認証等を用いて、トラステッド接続を介してデータセンタ１２０に配信することがある。この点に関して、外部ウェブアプリケーション１２８は、サーバ１２２と、或る特定の実施形態では中継装置１５０とを介した端末装置１０２への配信のためにデータセンタ１２０内に統合することができる。
【００２９】
幾つかの実施形態では、データセンタ１２０は、クラウドサービス等のプライベートサービス１３０を提供するように構成することができる。この点に関して、プライベートサービス１３０は、ファイルサービス、データサービス等を含むことがある。ファイルサービスは、或る特定の実施形態では、１つ以上のネットワークファイルシステム、例えば、共有ディレクトリ、ホームディレクトリ、パブリックディレクトリ等へのアクセスを提供することができる。データサービスは、例示の実施形態では、１つ以上のデータベースへのアクセスを提供することができる。これらのデータベースは、場合によっては、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ（構造化クエリ言語）Ｓｅｒｖｅｒ（商標）、ＭｙＳＱＬ（商標）、Ｏｒａｃｌｅ  Ｄａｔａｂａｓｅ（商標）、ＩＢＭ  ＤＢ２（商標）、Ｍｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓ（商標）等の任意のオープンデータベース接続性（ＯＤＢＣ：Open Database Connectivity）データベース又はＪａｖａデータベース接続性（ＪＤＢＣ：Java Database Connectivity）データベースとすることができる。データベースは、例えば、ウェブレポーティング、電子ウェブフォーム等によってアクセス可能な場合がある。
【００３０】
様々な実施形態によれば、データセンタ１２０の情報及びサービスは、ブラウザに組み込まれたデスクトップを介して端末装置１０２のユーザに提示することができる。この点に関して、端末装置１０２は、ウェブ対応ブラウザ、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（商標）、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ（商標）、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（商標）、Ｏｐｅｒａ（商標）、Ａｐｐｌｅ  Ｓａｆａｒｉ（商標）等へのアクセスをユーザに提供するように構成することができる。例示の実施形態では、ユーザは、端末装置１０２のブラウザを用いて、デスクトップにアクセス可能にすることができる。例示の実施形態では、デスクトップは、ウェブ技術（例えば、Ａｊａｘ、Ｃｏｍｅｔ等）上に構築し、端末装置１０２内のブラウザに当初から作成しておくことができる。この点に関して、ブラウザに組み込まれたデスクトップは、メニュー、タスクバー、デスクトップアイコン及び背景、カスタム設定、ショートカット、システムトレイ等の従来のデスクトップと同様の特徴を有することができる。ブラウザに設けられたデスクトップは、端末装置１０２上で実行されるオペレーティングシステムによって提供される従来のデスクトップとは異なるものとすることができる。加えて、ブラウザに組み込まれたデスクトップは、データセンタ１２０の内部等の外部ロケーションにおいて実行される従来のデスクトップの仮想提示とは異なるものとすることができる。幾つかの実施形態では、データセンタ１２０の情報及びサービスは、他のポータルインタフェース、例えば、１つ以上のデータセンタ１２０及び／又はクラウドサービスへのアクセスを提供するように設計されたダッシュボード、移動インタフェース、タブレットインタフェース、又は他の任意のポータルインタフェースを介して端末装置１０２のユーザに提示することができる。サービス及び情報は、或る特定の実施形態では、ポータルインタフェースを用いることなく、ユーザに直接配信することができる。
【００３１】
（端末装置）
次に図２を参照すると、図２は、一例示の実施形態による端末装置１０２のブロック図を示している。この例示の実施形態では、端末装置１０２は、リモートデスクトップクライアントセッションをホストすることを含めて、本明細書で説明する様々な機能を実行する様々な構成要素を備える。これらの構成要素は、プロセッサ２１０、メモリ２１２、通信インタフェース２１４、ユーザインタフェース２１６、又はＲＤＰクライアント回路部２１８のうちの１つ以上を含むことがある。本明細書で説明するような端末装置１０２の構成要素は、例えば、回路部、ハードウェア素子（例えば、適切にプログラムされたプロセッサ、組み合わせ論理回路等）、適切に構成された処理デバイス（例えば、プロセッサ２１０）によって実行可能なコンピュータ可読媒体（例えば、メモリ２１２）に記憶されたコンピュータ可読プログラム命令（例えば、ソフトウェア又はファームウェア）を含むコンピュータプログラム製品、又はそれらの或る組み合わせとして具現化することができる。
【００３２】
幾つかの例示の実施形態では、図２に示す構成要素のうちの１つ以上は、チップ又はチップセットとして具現化することができる。換言すれば、端末装置１０２は、構造アセンブリ（例えば、ベースボード）上に材料、構成要素、及び／又は配線を備える１つ以上の物理パッケージ（例えば、チップ）を備えることができる。この構造アセンブリは、物理強度、サイズの維持、及び／又はそこに含まれる構成要素回路部の電気的相互作用の制限を設けることができる。この点に関して、プロセッサ２１０、メモリ２１２、通信インタフェース２１４、ユーザインタフェース２１６、及び／又はＲＤＰクライアント回路部２１８は、チップ又はチップセットとして具現化することができる。したがって、端末装置１０２は、幾つかの例示の実施形態では、単一のチップ上に又は単一の「システムオンチップ」として本発明の実施形態を実施するように構成することができる。別の例として、幾つかの例示の実施形態では、端末装置１０２は、単一のチップ上に又は単一の「システムオンチップ」として本発明の実施形態を実施するように構成された構成要素（複数の場合もある）を備えることができる。したがって、場合によっては、チップ又はチップセットが、本明細書で説明する機能を提供する１つ以上の動作を実行する構成要素、及び／又は本明細書で説明する機能及び／又はサービスに関するユーザインタフェースナビゲーションを可能にする構成要素を構成することができる。
【００３３】
プロセッサ２１０は、例えば、１つ以上のマイクロプロセッサ、１つ以上のプロセッサ、１つ以上のコプロセッサ、１つ以上のマルチコアプロセッサ、１つ以上のコントローラ、処理回路部、１つ以上のコンピュータ若しくは集積回路を含む他の様々な処理素子、又はそれらの或る組み合わせを含む様々な構成要素として具現化することができる。したがって、プロセッサ２１０は、単一のプロセッサとして図２に示されているが、幾つかの実施形態では、複数のプロセッサを含む。これらの複数のプロセッサは、互いに有効に通信することができ、本明細書において説明するような端末装置１０２の１つ以上の機能を実行するように集合的に構成することができる。複数のプロセッサは、単一のコンピューティングデバイス上に具現化することもできるし、端末装置１０２として機能するように集合的に構成された複数のコンピューティングデバイスにわたって分散させることもできる。幾つかの例示の実施形態では、プロセッサ２１０は、メモリ２１２に記憶されているか又は別の方法でプロセッサ２１０にアクセス可能な命令を実行するように構成されている。これらの命令は、プロセッサ２１０によって実行されると、端末装置１０２に、本明細書において説明するような端末装置１０２の機能のうちの１つ以上を実行させることができる。したがって、ハードウェア方法によって構成されているのか、ソフトウェア方法によって構成されているのか、又はそれらの組み合わせによって構成されているのかを問わず、プロセッサ２１０は、本発明の実施形態による動作を実行することができるとともにそれに応じて構成されるエンティティを備えることができる。したがって、例えば、プロセッサ２１０が、メモリ２１２に記憶することができるような命令の実行器として具現化されるとき、これらの命令は、本明細書において説明する１つ以上のアルゴリズム及び動作を実行するようにプロセッサ２１０を具体的に構成することができる。
【００３４】
メモリ２１２は、例えば、揮発性メモリ、不揮発性メモリ、又はそれらの或る組み合わせを含みうる。この点に関して、メモリ２１２は、揮発性メモリ及び／又は不揮発性メモリを含みうる１つ以上の有形の及び／又は非一時的なコンピュータ可読記憶媒体を含みうる。メモリ２１２は、単一のメモリとして図２に示されているが、複数のメモリを含みうる。これらの複数のメモリは、単一のコンピューティングデバイス上に具現化することもできるし、端末装置１０２として機能するように集合的に構成された複数のコンピューティングデバイスにわたって分散させることもできる。様々な例示の実施形態では、メモリ２１２は、ハードディスク、ランダムアクセスメモリ、キャッシュメモリ、フラッシュメモリ、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク読み出し専用メモリ（ＤＶＤ−ＲＯＭ）、光ディスク、情報を記憶するように構成された回路部、又はそれらの或る組み合わせを含みうる。メモリ２１２は、端末装置１０２が様々な例示の実施形態による様々な機能を実行することを可能にする情報、データ、アプリケーション、命令等を記憶するように構成することができる。例えば、幾つかの例示の実施形態では、メモリ２１２は、プロセッサ２１０による処理用に入力データをバッファリングするように構成されている。加えて又は代替的に、メモリ２１２は、プロセッサ２１０による実行用にプログラム命令を記憶するように構成することができる。メモリ２１２は、静的及び／又は動的な情報の形態で情報を記憶することができる。この記憶される情報は、ＲＤＰクライアント回路部２１８がその機能を実行する過程で記憶し及び／又は用いることができる。
【００３５】
通信インタフェース２１４は、回路部、ハードウェア、コンピュータ可読媒体（例えば、メモリ２１２）に記憶されるとともに処理デバイス（例えば、プロセッサ２１０）によって実行されるコンピュータ可読プログラム命令を含むコンピュータプログラム製品、又は別のコンピューティングデバイスに対してデータを送受信するように構成されたそれらの組み合わせに具現化された任意のデバイス又は構成要素として具現化することができる。一例示の実施形態では、通信インタフェース２１４は、プロセッサ２１０として少なくとも部分的に具現化されるか、又はそうでない場合にはプロセッサ２１０によって制御される。この点に関して、通信インタフェース２１４は、バス等を介してプロセッサ２１０と通信することができる。通信インタフェース２１４は、例えば、ネットワークカード（例えば、有線又は無線）、アンテナ、送信機、受信機、及び／又は１つ以上のリモートコンピューティングデバイスとの通信を可能にするサポートハードウェア又はサポートソフトウェアを含みうる。通信インタフェース２１４は、コンピューティングデバイス間の通信に用いることができる任意のプロトコルを用いてデータ送受信するように構成することができる。この点に関して、通信インタフェース２１４は、端末装置１０２及び１つ以上のコンピューティングデバイス又はコンピューティングリソースが通信することができる無線ネットワーク、有線ネットワーク、それらの或る組み合わせ等によるデータの伝送に用いることができる任意のプロトコルを用いてデータを送受信するように構成することができる。一例として、通信インタフェース２１４は、端末装置１０２と、中継装置１５０又はサーバ１２２等の別のデバイスとの間の通信を可能にするように構成することができる。通信インタフェース２１４は、バス等を介して、メモリ２１２、ユーザインタフェース２１６、及び／又はＲＤＰクライアント回路部２１８と更に通信することができる。
【００３６】
ユーザインタフェース２１６は、プロセッサ２１０と通信して、ユーザ入力の表示を受信することができ、及び／又は可聴出力、視覚出力、機械的出力、又は他の出力をユーザに提供することができる。したがって、ユーザインタフェース２１６は、例えば、キーボード、マウス、ジョイスティック、ディスプレイ、タッチスクリーンディスプレイ、マイク、スピーカ、及び／又は他の入力／出力メカニズムを含みうる。ユーザインタフェース２１６がタッチスクリーンディスプレイを含む実施形態では、ユーザインタフェース２１６は、タッチスクリーンディスプレイへのタッチジェスチャ又は他の入力の表示を検出及び／又は受信するように更に構成することができる。ユーザインタフェース２１６は、バス等を介してメモリ２１２、通信インタフェース２１４、及び／又はＲＤＰクライアント回路部２１８と通信することができる。
【００３７】
ＲＤＰクライアント回路部２１８は、回路部、ハードウェア、コンピュータ可読媒体（例えば、メモリ２１２）に記憶されて処理デバイス（例えば、プロセッサ２１０）によって実行されるコンピュータ可読プログラム命令を含むコンピュータプログラム製品、又はそれらの或る組み合わせ等の様々な構成要素として具現化することができ、幾つかの実施形態では、プロセッサ２１０として具現化されるか、又はそうでない場合にはプロセッサ２１０によって制御される。ＲＤＰクライアント回路部２１８がプロセッサ２１０とは別個に具現化される実施形態では、ＲＤＰクライアント回路部２１８は、プロセッサ２１０と通信することができる。ＲＤＰクライアント回路部２１８は、バス等を介してメモリ２１２、通信インタフェース２１４、又はユーザインタフェース２１６のうちの１つ以上と更に通信することができる。
【００３８】
様々な実施形態によれば、ＲＤＰクライアント回路部２１８は、ウェブベースのポータル等のポータル環境システムにログオンする要求、例えばデータセンタにアクセスする要求、及びリモートデスクトップクライアントセッションを確立する要求をユーザから受信するように構成することができる。ポータルインタフェースは、例えば、ブラウザ内のデスクトップ（ウェブデスクトップ又はウェブトップとしても知られている）、ダッシュボード、移動インタフェース、タブレットインタフェース、又は１つ若しくは複数のデータセンタサービス及び／又はクラウドサービスへのアクセスを提供するように設計された他の任意のポータルインタフェースとすることができる。ポータルインタフェースは、例示の実施形態では、端末サーバ等のリモートデスクトッププロトコル（ＲＤＰ）サーバを介して１つ以上のデータセンタサービス及び／又はクラウドサービスを提供することができる。ＲＤＰセッションは、単一のサービス（例えば、アプリケーション）の配信を行うことができる場合もあれば、複数のサービス（例えば、リモートデスクトップアクセス）の配信を行うことができる場合もある。
【００３９】
他の実施形態では、ＲＤＰクライアント回路部２１８は、ＲＤＰサーバに直接接続する要求をユーザから受信することができる。この点に関して、ユーザは、特定のサービス又はアプリケーションが、ＲＤＰに従って動作するサーバ、例えば端末サーバを介してＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２に配信されることを要求することができる。様々な実施形態では、ユーザは、要求されたサービスが、ＲＤＰクライアント回路部２１８によってローカルではなくＲＤＰサーバを介して提供されることに気付かない場合がある。
【００４０】
ＲＤＰセッションは、或る特定の実施形態では、セキュアなセッションとすることができる。例えば、ＲＤＰセッションは、公開鍵暗号システムに従って動作することができる。この点に関して、ＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２へ及び／又は当該端末装置から送信されるデータは、セキュアに送信することができる。
【００４１】
例示の実施形態によれば、ＲＤＰクライアント回路部２１８は、ＲＤＰセッションの記録を容易にするように構成することができる。この点に関して、ＲＤＰクライアント回路部２１８は、単一のアプリケーションに関係したＲＤＰセッション又はリモートデスクトップセッションの記録を容易にすることができる。ＲＤＰセッションの記録は、例示の実施形態では、端末装置１０２上のＲＤＰクライアント回路部２１８によって実行されるＲＤＰクライアントと、サービングネットワーク装置１０４上のＲＤＰセッション記録回路部３１６によって実行されるＲＤＰサーバとの間の一方向又は双方向に送信されたデータの少なくとも一部の記録を含みうる。しかしながら、ＲＤＰセッションの記録は、端末装置１０２に関連付けられたビデオデバイス及びオーディオデバイスによって受信されたデータ等の、記録されないセッション中に通常はＲＤＰクライアントによって送信も受信もされないデータの記録も含みうる。ＲＤＰクライアント回路部２１８は、当該ＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２への追加の記録ソフトウェアのインストールを必要とすることなく記録を容易にするように構成することができる。
【００４２】
記録されるデータは、或る特定の実施形態では、セッションを再構成するのに十分な情報を含みうる。例えば、データは、ビデオフレーム、オーディオフレーム、ユーザ入力（例えば、キーストローク、マウス入力、及び音声コマンド）、イベント（例えば、ログイン、ログオフ、ファイルの作成及び記憶、印刷、並びに他のＲＤＰイベント）等を含みうる。幾つかの実施形態では、送信されたデータのサブセットのみを記録することができる。これらの実施形態の様々な例では、冗長な情報又は不要な情報をデータから除去することもできるし、データを圧縮することもできるし、記録を或る特定のタイプのデータに限定することもできる。データは、ＲＤＰイベント、ビデオ記録（例えば、ムービングピクチャエキスパートグループ（ＭＰＥＧ：Moving Picture Expert Group）フォーマット又は他の任意のビデオフォーマット）、及び／又はＲＤＰセッションを記録する当該技術分野において既知の他の任意の技法を用いて記録することができる。
【００４３】
例示の実施形態では、ＲＤＰクライアント回路部２１８は、別個のネットワークエンティティ、例えば、中継装置１５０又はサーバ１２２等のサービングネットワーク装置１０４への記録されるデータの送信を行うように構成することができる。他の実施形態では、ＲＤＰクライアント回路部２１８は、別個のネットワークエンティティへの送信用のデータを提供することなく、このデータをローカルに記録することができる。幾つかの実施形態によれば、ＲＤＰクライアント回路部２１８は、記録されるデータの送信前に、このデータの一時記憶を行うことができる。他の実施形態では、ＲＤＰクライアント回路部２１８は、利用可能になった直後又はその後間もなくデータの送信を行うことができる。例えば、ＲＤＰクライアント回路部２１８は、データをバッファリングすることができ、バッファがフルになったとき、データの送信を行うことができる。ＲＤＰクライアント回路部２１８は、別の実施形態では、サーバ１２２への第１の量のデータの送信を行い、（例えば、ＴＣＰ／ＩＰ応答を介して）サーバからのデータの受信の肯定応答を待機している間、第２の量のデータをバッファリングし、肯定応答が受信されると、バッファ内の第２の量のデータの送信を行うことができる。更に他の実施形態では、ＲＤＰクライアント回路部２１８は、記録されるデータの送信を所与の間隔で（例えば、５秒ごとに）行うように構成することができる。添付の特許請求の範囲の範囲から逸脱することなく、記録されるデータの送信を行う他の方法を用いることができることに留意すべきである。
【００４４】
様々な実施形態によれば、ＲＤＰクライアント回路部２１８は、第１のタイムスタンプをデータの各項目に関連付けるように構成することができる。場合によっては、ＲＤＰクライアント回路部２１８は、データによって表される動作が行われた時点に基づくタイムスタンプをデータに関連付けることができる。例えば、ＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２のユーザが、特定の時点に入力を提供した場合、ＲＤＰクライアント回路部２１８は、記録されるデータの送信を行う前に、その特定の時点を表すタイムスタンプをユーザ入力データに関連付けることができる。他の実施形態では、ＲＤＰクライアント回路部２１８は、記録されるデータが送信のために提供される時点に基づくタイムスタンプをデータに関連付けることができる。例えば、ＲＤＰクライアント回路部２１８が、所与の間隔で記録されるデータの送信を行うように構成されている一実施形態では、データは、当該データが送信のために提供された時点を示す上記間隔に基づくタイムスタンプに関連付けることができる。
【００４５】
幾つかの実施形態では、ＲＤＰクライアント回路部２１８は、記録されるデータとともに追加の情報の送信を行うように構成することができる。ＲＤＰクライアント回路部２１８は、例示の実施形態では、ＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２の表示を記録されるデータに関連付けることができる。或る特定の実施形態によれば、ＲＤＰクライアント回路部２１８は、当該ＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２の現在の動作環境に関係した情報の送信を行うことができる。例えば、この情報は、現在実行中のアプリケーション、ハードウェア構成、現在の性能情報（例えば、ネットワークスループット、ＣＰＵ利用率等）等の表示を提供することができる。
【００４６】
様々な実施形態によれば、ＲＤＰクライアント回路部２１８は、ＲＤＰセッションの記録を自動的に容易にすることができる。この点に関して、ＲＤＰクライアント回路部２１８は、データの記録又は記録されるデータの送信をＲＤＰセッションの開始時に自動的に開始することができる。他の実施形態では、ＲＤＰクライアント回路部２１８は、自動的な記録をトリガする或る特定の条件を検出するように構成することができる。例えば、ＲＤＰクライアント回路部２１８は、ＲＤＰサーバから又はＲＤＰクライアント回路部２１８に関連付けられた端末装置１０２のユーザから受信された特定のイベント、動作、又は入力を検出すると、記録をトリガすることができる。同様に、ＲＤＰクライアント回路部２１８は、ＲＤＰセッションの記録を自動的に終了することができる。例えば、ＲＤＰクライアント回路部２１８は、ＲＤＰセッションの終了時又は記録の自動的な終了をトリガするように構成されたイベント、動作、休止の期間、又は入力の検出時に記録を自動的に停止することができる。
【００４７】
例示の実施形態では、ＲＤＰクライアント回路部２１８は、ネットワークエンティティから受信されたコマンドに基づいて、ＲＤＰセッションの記録を起動又は終了するように構成することができる。例えば、ＲＤＰクライアント回路部２１８は、ＲＤＰサーバ、又は介在するネットワークデバイスから、ＲＤＰセッションの記録に関して特定の動作を取る命令を受信することができる。
【００４８】
（サービングネットワーク装置）
次に図３を参照すると、図３は、一例示の実施形態によるサービングネットワーク装置１０４のブロック図を示している。この例示の実施形態では、サービングネットワーク装置１０４は、本明細書において説明する様々な機能を実行する様々な構成要素を備える。これらの構成要素は、プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６のうちの１つ以上のものを含みうる。本明細書において説明するようなサービングネットワーク装置１０４の構成要素は、例えば、回路部、ハードウェア素子（例えば、適切にプログラムされたプロセッサ、組み合わせ論理回路等）、適切に構成された処理デバイス（例えば、プロセッサ３１０）によって実行可能なコンピュータ可読媒体（例えば、メモリ３１２）に記憶されたコンピュータ可読プログラム命令（例えば、ソフトウェア又はファームウェア）を含むコンピュータプログラム製品、又はそれらの或る組み合わせとして具現化することができる。
【００４９】
幾つかの例示の実施形態では、図３に示す構成要素のうちの１つ以上のものは、チップ又はチップセットとして具現化することができる。換言すれば、サービングネットワーク装置１０４は、構造アセンブリ（例えば、ベースボード）上に材料、構成要素、及び／又は配線を備える１つ以上の物理パッケージ（例えば、チップ）を備えることができる。この構造アセンブリは、物理強度、サイズの維持、及び／又はそこに含まれる構成要素回路部の電気的相互作用の制限を設けることができる。この点に関して、プロセッサ３１０、メモリ３１２、通信インタフェース３１４、及び／又はＲＤＰセッション記録回路部３１６は、チップ又はチップセットとして具現化することができる。したがって、サービングネットワーク装置１０４は、幾つかの例示の実施形態では、単一のチップ上に又は単一の「システムオンチップ」として本発明の実施形態を実施するように構成することができる。別の例として、幾つかの例示の実施形態では、サービングネットワーク装置１０４は、単一のチップ上に又は単一の「システムオンチップ」として本発明の実施形態を実施するように構成された構成要素（複数の場合もある）を備えることができる。したがって、場合によっては、チップ又はチップセットが、本明細書において説明する機能を提供する１つ以上の動作を実行する構成要素を構成することができる。
【００５０】
プロセッサ３１０は、例えば、１つ以上のマイクロプロセッサ、１つ以上のプロセッサ、１つ以上のコプロセッサ、１つ以上のマルチコアプロセッサ、１つ以上のコントローラ、処理回路部、１つ以上のコンピュータ若しくは集積回路を含む他の様々な処理素子、又はそれらの或る組み合わせを含む様々な構成要素として具現化することができる。したがって、プロセッサ３１０は、単一のプロセッサとして図３に示されているが、幾つかの実施形態では、複数のプロセッサを含む。これらの複数のプロセッサは、互いに有効に通信することができ、本明細書において説明するようなサービングネットワーク装置１０４の１つ以上の機能を実行するように集合的に構成することができる。複数のプロセッサは、単一のコンピューティングデバイス上に具現化することもできるし、サービングネットワーク装置１０４として機能するように集合的に構成された複数のコンピューティングデバイスにわたって分散させることもできる。幾つかの例示の実施形態では、プロセッサ３１０は、メモリ３１２に記憶されているか又は別の方法でプロセッサ３１０にアクセス可能な命令を実行するように構成されている。これらの命令は、プロセッサ３１０によって実行されると、サービングネットワーク装置１０４に、本明細書において説明するようなサービングネットワーク装置１０４の機能のうちの１つ以上のものを実行させることができる。したがって、ハードウェア方法によって構成されているのか、ソフトウェア方法によって構成されているのか、又はそれらの組み合わせによって構成されているのかを問わず、プロセッサ３１０は、本発明の実施形態による動作を実行することができるとともにそれに応じて構成されるエンティティを備えることができる。したがって、例えば、プロセッサ３１０が、メモリ３１２に記憶することができるような命令の実行器として具現化されるとき、これらの命令は、本明細書で説明する１つ以上のアルゴリズム及び動作を実行するようにプロセッサ３１０を具体的に構成することができる。
【００５１】
メモリ３１２は、例えば、揮発性メモリ、不揮発性メモリ、又はそれらの或る組み合わせを含みうる。この点に関して、メモリ３１２は、揮発性メモリ及び／又は不揮発性メモリを含みうる１つ以上の有形の及び／又は非一時的なコンピュータ可読記憶媒体を含みうる。メモリ３１２は、単一のメモリとして図３に示されているが、複数のメモリを含みうる。これらの複数のメモリは、単一のコンピューティングデバイス上に具現化することもできるし、サービングネットワーク装置１０４として機能するように集合的に構成された複数のコンピューティングデバイスにわたって分散させることもできる。様々な例示の実施形態では、メモリ３１２は、ハードディスク、ランダムアクセスメモリ、キャッシュメモリ、フラッシュメモリ、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク読み出し専用メモリ（ＤＶＤ−ＲＯＭ）、光ディスク、情報を記憶するように構成された回路部、又はそれらの或る組み合わせを含みうる。メモリ３１２は、サービングネットワーク装置１０４が様々な例示の実施形態による様々な機能を実行することを可能にする情報、データ、アプリケーション、命令等を記憶するように構成することができる。例えば、幾つかの例示の実施形態では、メモリ３１２は、プロセッサ３１０による処理用に入力データをバッファリングするように構成されている。加えて又は代替的に、メモリ３１２は、プロセッサ３１０による実行用にプログラム命令を記憶するように構成することができる。メモリ３１２は、静的及び／又は動的な情報の形態で情報を記憶することができる。この記憶される情報は、ＲＤＰセッション記録回路部３１６がその機能を実行する過程で記憶し及び／又は用いることができる。
【００５２】
通信インタフェース３１４は、回路部、ハードウェア、コンピュータ可読媒体（例えば、メモリ３１２）に記憶されるとともに処理デバイス（例えば、プロセッサ３１０）によって実行されるコンピュータ可読プログラム命令を含むコンピュータプログラム製品、又は別のコンピューティングデバイスに対してデータを送受信するように構成されたそれらの組み合わせに具現化された任意のデバイス又は構成要素として具現化することができる。一例示の実施形態では、通信インタフェース３１４は、プロセッサ３１０として少なくとも部分的に具現化されるか、又はそうでない場合にはプロセッサ３１０によって制御される。この点に関して、通信インタフェース３１４は、バス等を介してプロセッサ３１０と通信することができる。通信インタフェース３１４は、例えば、ネットワークカード（例えば、有線又は無線）、アンテナ、送信機、受信機、及び／又は、１つ以上のリモートコンピューティングデバイスとの通信を可能にするサポートハードウェア若しくはサポートソフトウェアを含みうる。通信インタフェース３１４は、コンピューティングデバイス間の通信に用いることができる任意のプロトコルを用いてデータ送受信するように構成することができる。この点に関して、通信インタフェース３１４は、サービングネットワーク装置１０４及び１つ以上のコンピューティングデバイス又はコンピューティングリソースが通信することができる無線ネットワーク、有線ネットワーク、それらの或る組み合わせ等によるデータの伝送に用いることができる任意のプロトコルを用いてデータを送受信するように構成することができる。一例として、通信インタフェース３１４は、サービングネットワーク装置１０４と、中継装置１５０又は端末装置１０２等の別のデバイスとの間の通信を可能にするように構成することができる。通信インタフェース３１４は、バス等を介して、メモリ３１２及び／又はＲＤＰセッション記録回路部３１６と更に通信することができる。
【００５３】
ＲＤＰセッション記録回路部３１６は、回路部、ハードウェア、コンピュータ可読媒体（例えば、メモリ３１２）に記憶されて処理デバイス（例えば、プロセッサ３１０）によって実行されるコンピュータ可読プログラム命令を含むコンピュータプログラム製品、又はそれらの或る組み合わせ等の様々な構成要素として具現化することができ、幾つかの実施形態では、プロセッサ３１０として具現化されるか、又はそうでない場合にはプロセッサ３１０によって制御される。ＲＤＰセッション記録回路部３１６がプロセッサ３１０とは別個に具現化される実施形態では、ＲＤＰセッション記録回路部３１６は、プロセッサ３１０と通信することができる。ＲＤＰセッション記録回路部３１６は、バス等を介してメモリ３１２及び／又は通信インタフェース３１４のうちの１つ以上のものと更に通信することができる。
【００５４】
様々な実施形態によれば、ＲＤＰセッション記録回路部３１６は、中継装置１５０、サーバ１２２、又は他のネットワークエンティティ（例えば、ルータ又はスイッチ）として具現化されるサービングネットワーク装置１０４に関連付けることができる。ＲＤＰセッション記録回路部３１６は、ＲＤＰセッションへのアクセスの要求を、例えば端末装置１０２から受信するように構成することができる。幾つかの実施形態では、ＲＤＰセッション記録回路部３１６は、ＲＤＰサーバの機能を提供するように構成することができる。この点に関して、ＲＤＰセッション記録回路部３１６は、要求に応じて、端末装置１０２とのＲＤＰセッションの確立を行うことができる。ＲＤＰセッションは、或る特定の実施形態では、セキュアなセッションとすることができる。例えば、ＲＤＰセッションは、公開鍵暗号システムに従って動作することができる。この点に関して、ＲＤＰセッション記録回路部３１６に関連付けられたサービングネットワーク装置１０４へ及び／又は当該サービングネットワーク装置から送信されるデータは、セキュアに送信することができる。
【００５５】
例示の実施形態では、ＲＤＰセッション記録回路部３１６は、記録されるＲＤＰセッション関連データを、例えば、ＲＤＰセッションが確立された端末装置１０２から受信するように構成することができる。ＲＤＰセッション記録回路部３１６によって受信されたデータ（その例は、端末装置１０２に関して上記で説明されている）は、例えば、端末装置１０２を発信元とするＲＤＰセッションに関係したイベント、動作、及び入力を含みうる。幾つかの実施形態によれば、受信されたデータは、ＲＤＰセッションの一部としてＲＤＰセッション記録回路部３１６によって端末装置１０２に前に送信されたデータを含みうる。他の実施形態では、ＲＤＰセッション記録回路部３１６は、端末装置１０２が記録プロセスの一部としてＲＤＰセッション記録回路部３１６にデータを返信することを必要とすることなく、ＲＤＰセッションの一部としてＲＤＰセッション記録回路部３１６から発信されるデータを記録するように構成することができる。
【００５６】
例示の実施形態によれば、ＲＤＰセッション記録回路部３１６は、ＲＤＰセッションに関係したデータを記録するように構成することができる。この点に関して、ＲＤＰセッション記録回路部３１６は、端末装置１０２から受信されたデータ及び／又はＲＤＰセッション記録回路部３１６によって記録されたデータのメモリ３１２等への記憶を行うことができる。ＲＤＰセッション記録回路部３１６は、或る特定の実施形態では、記憶の前に、データを圧縮することができ、及び／又は、冗長なデータ若しくは不要なデータを除去することができる。他の実施形態では、受信されたデータは、端末装置１０２が、送信前に圧縮又は調整しておくことができる。
【００５７】
メモリ３１２は、ＲＤＰセッションに関係した全てのデータを恒久的に記録するように構成することができる。追加の冗長な又は代替のメモリが必要とされる限りにおいて、ＲＤＰセッション記録回路部３１６は、サービングネットワーク装置１０４の外部のメモリへの記憶を行うことができる。ＲＤＰセッション記録回路部３１６は、メモリ３１２が或る特定の限界に達すると、ＲＤＰセッションに関係した最も新しいデータのみを、記録されている最も古いデータに上書きして記録するように構成ることもできる。
【００５８】
幾つかの実施形態によれば、ＲＤＰセッション記録回路部３１６によって受信されたデータは、当該データの発信元の端末装置１０２の表示を含みうる。他の実施形態では、このデータは、関係するＲＤＰセッションの表示を含みうる。
【００５９】
或る特定の実施形態では、ＲＤＰセッション記録回路部３１６は、ＲＤＰセッションに参加しているＲＤＰサーバとＲＤＰクライアントとの間に介在するネットワークエンティティ（例えば、ルータ又はスイッチ）として動作するように構成されたサービングネットワーク装置１０４に関連付けることができる。これらの実施形態では、ＲＤＰセッション記録回路部３１６は、ＲＤＰセッション中にＲＤＰサーバとＲＤＰクライアントとの間で送信された全てのデータを記録するように構成することができる。これらの例示の実施形態のうちの幾つかによれば、ＲＤＰセッション記録回路部３１６は、記録されるセッションの記憶を行うとともに、ＲＤＰセッションデータを記憶するように別のネットワークエンティティに提供するように構成することができる。幾つかの実施形態では、ＲＤＰサーバ及びＲＤＰクライアントのうちの１つ以上のものは、ＲＤＰセッション記録回路部３１６がＲＤＰセッションを記録していることに気付かない場合がある。ＲＤＰサーバとＲＤＰクライアントとの間の通信がセキュアである実施形態では、ＲＤＰセッション記録回路部３１６は、通信を解読及び記録するために、ＲＤＰサーバとして動作するサービングネットワーク装置１０４及びＲＤＰクライアントとして動作する端末装置１０２の一方又は双方から暗号化鍵を受信することができる。幾つかの実施形態では、ＲＤＰセッション記録回路部３１６は、暗号化鍵が提供されない限り、ＲＤＰクライアントがＲＤＰサーバとのＲＤＰセッションを確立することを防止することができる。この点に関して、ＲＤＰセッション記録回路部３１６は、ユーザが、記録することができるＲＤＰサーバとのＲＤＰセッションを確立することを保証することができる。
【００６０】
様々な実施形態では、ＲＤＰセッション記録回路部３１６は、記録されたデータにタイムスタンプを関連付けるように構成することができる。端末装置１０２が、データをＲＤＰセッション記録回路部３１６に送信する前に、タイムスタンプをこのデータに関連付ける実施形態では、ＲＤＰセッション記録回路部３１６によってデータに関連付けられたタイムスタンプは、第２のタイムスタンプとすることができる。この第２のタイムスタンプは、データがＲＤＰセッション記録回路部３１６によって記録される時点を示すことができる。幾つかの実施形態では、第１のタイムスタンプ及び第２のタイムスタンプの時間ソースは異なり、非同期とすることができる。例えば、一方の時間ソースは、絶対時間ソースに対して高速又は低速とすることもできるし、各時間ソースが、異なる時間帯において動作することもできる。
【００６１】
例示の実施形態によれば、ＲＤＰセッション記録回路部３１６は、記録されたデータをインデックス付けするように構成することができる。例えば、ＲＤＰセッション記録回路部３１６は、第１のタイムスタンプ及び／又は第２のタイムスタンプ、発信元の端末装置１０２、発信元の端末装置１０２に関係した他の情報（例えば、現在実行中のアプリケーション、ハードウェア構成、及び／又は現在の性能情報）、イベントのタイプ、データのコンテンツ（例えば、特定のＨＴＭＬタグ）、ＲＤＰセッション中に用いられるポート等に基づいて、記録されたデータをインデックス付けすることができる。ＲＤＰセッション記録回路部３１６によって実行されるインデックス付けは、記録されたデータの高度化された取り出し及び再生を行うことができる。
【００６２】
例示の実施形態では、ＲＤＰセッション記録回路部３１６は、記録されたＲＤＰセッションの再生を行うように構成することができる。この点に関して、ＲＤＰセッション記録回路部３１６は、記憶装置又はデータを記憶するように構成された別のネットワークエンティティから記録されたデータを取り出すように構成することができる。ＲＤＰセッション記録回路部３１６は、ユーザが、再生、一時停止、早送り、巻き戻し等を行うことを可能にする制御を提供することができる。ＲＤＰセッション記録回路部３１６は、或る特定の実施形態では、ＲＤＰセッションの特定の部分の再生を行うことができる。例えば、ＲＤＰセッション記録回路部３１６は、セッションの時間及び／又は上記で説明したような記録されたデータをインデックス付けするのに用いられる他の情報に少なくとも部分的に基づいて、再生用のＲＤＰセッションの関連部分の決定を行うことができる。
【００６３】
幾つかの実施形態によれば、ＲＤＰセッション記録回路部３１６は、ＲＤＰクライアントを介して、記録されたＲＤＰセッションの再生を行うように構成することができる。これらの実施形態では、ＲＤＰクライアントは、記録されたＲＤＰセッションデータからの入力を受信することができる。例えば、記録されたデータは、セッション中にＲＤＰサーバによってＲＤＰクライアントに提供されるイベント及び他のデータを含みうる。幾つかの実施形態では、記録されたオリジナルのＲＤＰセッションの変更を回避するために、ＲＤＰクライアントへの入力は、再生中は抑制することができる。ＲＤＰセッション記録回路部３１６は、例示の実施形態では、記録されたデータを再生しているとき、ＲＤＰセッション中にＲＤＰクライアントに提供されるオリジナルのユーザ入力を無視することができる。これらの実施形態では、オリジナルのユーザ入力に応答してＲＤＰサーバによってＲＤＰクライアントに提供される、結果として得られたイベント及び情報が、ＲＤＰセッションを再構成するのに十分な情報を提供するので、このオリジナルのユーザ入力は、再生に必要とされない場合がある。
【００６４】
様々な実施形態では、ＲＤＰセッション記録回路部３１６は、第１のタイムスタンプ及び／又は第２のタイムスタンプを用いて、再生を容易にすることができる。第１のタイムスタンプが用いられる実施形態では、再生は、イベント、動作、及び入力がＲＤＰクライアントにおいて行われたレートに比例したレートで行うことができる。第２のタイムスタンプが用いられる実施形態では、再生は、データが、ＲＤＰセッションを記録するサーバによって受信されたレートに比例したレートで行うことができる。これらの実施形態では、ＲＤＰセッションを記録するサーバへのデータの送信中に発生するネットワーク遅延及び輻輳に起因して、再生は、イベント、動作、及び入力がリアルタイムで行われたレートと同等でない場合がある。
【００６５】
（例）
以下の内容は、１つの実施形態の非限定的な例を提供し、いかなる方法であっても本開示内容の範囲も趣旨も狭めるものと解釈されるべきではない。この例では、ユーザは、ブラウザポータル環境システム内のデスクトップを介してユーザのラップトップ上でＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）文書を開こうと試みている。この例では、ポータル環境は、ＲＤＰに従って動作する端末サーバを介してＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）アプリケーションを提供することを決定することができる。ＲＤＰセッションが確立されると、ポータル環境システムのデータセンタ内で動作するＲＤＰサーバは、当該ＲＤＰサーバによって送信された全てのデータと、ユーザのラップトップ上で動作するＲＤＰクライアントから受信された全てのデータとの記録を開始する。例えば、ＲＤＰサーバは、当該ＲＤＰサーバによって送信された全てのイベントと、ＲＤＰクライアントにおいてユーザによって入力された全てのキーストロークと、ＲＤＰセッション中にユーザによって保存された文書のコピーとを保存する。また、ＲＤＰサーバは、データが記録される際にそのデータを圧縮及びインデックス付けする。この記録は、ユーザがＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）アプリケーションを閉じると、終了することができる。
【００６６】
この例によれば、アドミニストレータが、後になってＲＤＰセッションの記録を見直したい場合がある。アドミニストレータは、この記録デバイスにおいて又は別のデバイスからリモートで、記録されたセッションにアクセスすることができる。再生中に、アドミニストレータは、ＲＤＰクライアントから見るように、セッション全体を観察することもできるし、アドミニストレータは、タイムスタンプ又はインデックス付けされたイベントに基づいてセッションの特定の部分にスキップすることもできる。アドミニストレータは、所望に応じて、再生中にセッションの早送り、巻き戻し、又は一時停止も行うことができる。
【００６７】
この例では、元のユーザは、セッションが記録されたこと又はアドミニストレータによって観察されたことに気付かない場合がある。実際に、ユーザは、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）アプリケーションが、ローカルにではなく、ＲＤＰを介してサービングされていたことに気付かない場合がある。セッションをリモートで記録することによって、ユーザは、どの追加の記録ソフトウェアもラップトップ上にインストールする必要がなくなっている。さらに、ユーザは、自身のＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（商標）セッション又はラップトップの動作が遅くなっていることに必ずしも気付いていない。なぜならば、ＲＤＰセッションデータは、ラップトップにおいてローカルに記憶も処理もされておらず、また、必要とされる標準的な動作を越えてネットワークトラフィックが増加したわけでもないからである。
【００６８】
図４は、一例示の実施形態によるリモートデスクトップセッションのサーバサイドの記録及び再生を提供する一例示の方法によるフローチャートを示している。この点に関して、図４は、サービングネットワーク装置１０４において実行することができる動作を示している。図４に図示するとともに図４に関して説明する動作は、例えば、プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６のうちの１つ以上のものによって、それらの援助を受けて、及び／又はそれらの制御の下で実行することができる。動作４００は、リモートデスクトッププロトコルセッションに関係したデータを受信することを含みうる。プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６は、例えば、動作４００を実行する構造を提供することができる。動作４１０は、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられたデバイス以外のロケーションにおいてデータの記憶を行うことを含みうる。プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６は、例えば、動作４１０を実行する構造を提供することができる。動作４２０は、リモートデスクトッププロトコルセッションを再現する要求を受信することを含みうる。プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６は、例えば、動作４２０を実行する構造を提供することができる。動作４３０は、記憶装置からデータを取り出すことを含みうる。プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６は、例えば、動作４３０を実行する構造を提供することができる。動作４４０は、取り出されたデータに少なくとも部分的に基づいてリモートデスクトッププロトコルセッションの少なくとも一部の再現を容易にすることを含みうる。プロセッサ３１０、メモリ３１２、通信インタフェース３１４、又はＲＤＰセッション記録回路部３１６は、例えば、動作４４０を実行する構造を提供することができる。
【００６９】
図４は、本発明の例示の実施形態によるシステム、方法、及びコンピュータプログラム製品のフローチャートを示している。このフローチャートの各ブロック、及びこのフローチャート内のブロックの組み合わせは、ハードウェア、及び／又は、１つ以上のコンピュータプログラムコード命令、プログラム命令、又は実行可能コンピュータ可読プログラムコード命令が記憶された１つ以上のコンピュータ可読媒体（伝播信号を示すコンピュータ可読伝送媒体と対照をなす）を含むコンピュータプログラム製品等の様々な手段によって実施することができることが理解されるであろう。例えば、本明細書において説明する手順のうちの１つ以上のものは、コンピュータプログラム製品のコンピュータプログラム命令によって具現化することができる。この点に関して、本明細書において説明する手順を具現化するコンピュータプログラム製品（複数の場合もある）は、端末装置、サーバ、中継装置、又は他のコンピューティングデバイス（例えば、端末装置１０２）の１つ以上のメモリデバイス（例えば、メモリ２１２又はメモリ３１２）が記憶することができ、コンピューティングデバイス内のプロセッサ（例えば、プロセッサ２１０又はプロセッサ３１０）が実行することができる。幾つかの実施形態では、上記で説明した手順を具現化するコンピュータプログラム製品（複数の場合もある）を構成するコンピュータプログラム命令は、複数のコンピューティングデバイスのメモリデバイスが記憶することができる。認識されるように、任意のそのようなコンピュータプログラム製品をコンピュータ又は他のプログラマブル装置上にロードして、このコンピュータ又は他のプログラマブル装置上で実行される命令を含む当該コンピュータプログラム製品がフローチャートのブロック（複数の場合もある）において指定された機能を実施する手段を生み出すような機械を作り出すことができる。
【００７０】
さらに、コンピュータプログラム製品は、１つ以上のコンピュータ可読メモリがコンピュータ又は他のプログラマブル装置に特定の方法で機能するように指示することができるように、コンピュータプログラム命令を記憶することができる１つ以上のコンピュータ可読メモリを含むことがあり、そのため、コンピュータプログラム製品は、フローチャートのブロック（複数の場合もある）において指定された機能を実施する製造品を含む。また、１つ以上のコンピュータプログラム製品のコンピュータプログラム命令をコンピュータ又は他のプログラマブル装置上にロードして、一連の動作をコンピュータ又は他のプログラマブル装置上で実行させ、コンピュータ又は他のプログラマブル装置上で実行される命令がフローチャートのブロック（複数の場合もある）において指定された機能を実施する動作を提供するようなコンピュータ実施されるプロセスを作り出すことができる。プログラムコード命令の取り出し、ロード、及び実行は、一時に１つの命令が取り出され、ロードされ、実行されるように逐次実行することができる。幾つかの例示の実施形態では、取り出し、ロード、及び／又は実行は、複数の命令が合わせて取り出され、ロードされ、及び／又は実行されるように並列に実行することができる。
【００７１】
したがって、フローチャートの動作に関連付けられた命令のプロセッサによる実行、又はフローチャートのブロック若しくは動作に関連付けられた命令のコンピュータ可読記憶媒体への記憶は、指定された機能を実行する動作の組み合わせをサポートする。フローチャートの１つ以上の動作、及びフローチャート内のブロック又は動作の組み合わせは、指定された機能を実行する専用ハードウェアベースのコンピュータシステム及び／又はプロセッサ、又は専用ハードウェア及びプログラムコード命令の組み合わせによって実施することができることも理解されるであろう。
【００７２】
上記で説明した機能は、多くの方法により実行することができる。例えば、上記で説明した機能のそれぞれを実行する任意の適切な手段を用いて、本発明の実施形態を実行することができる。１つの実施形態では、適切に構成されたプロセッサ（例えば、プロセッサ２１０及び／又はプロセッサ３１０）が、本発明の要素の全て又は一部を提供することができる。別の実施形態では、本発明の要素の全て又は一部は、コンピュータプログラム製品によって構成することができるとともにその制御の下で動作することができる。本発明の実施形態の方法を実行するコンピュータプログラム製品は、不揮発性記憶媒体（例えば、メモリ２１２及び／又はメモリ３１２）等のコンピュータ可読記憶媒体、及びコンピュータ可読記憶媒体に具現化された一連のコンピュータ命令等のコンピュータ可読プログラムコード部分を含む。
【００７３】
一例示の実施形態では、リモートデスクトッププロトコルセッションに関係したデータを受信することを含みうる方法を提供する。この例示の実施形態の方法は、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられたデバイス以外のロケーションにデータの記憶を行うことを更に含みうる。この例示の実施形態の方法は、リモートデスクトッププロトコルセッションを再現する要求を受信することを更に含みうる。加えて、この例示の実施形態の方法は、記憶装置からデータを取り出すことを含みうる。この例示の実施形態の方法は、取り出されたデータに少なくとも部分的に基づいて、リモートデスクトッププロトコルセッションの再現を容易にすることを更に含みうる。
【００７４】
この例示の方法のデータは、リモートデスクトッププロトコルセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含みうる。この例示の実施形態の方法による、リモートデスクトッププロトコルセッションに関係したデータを受信することは、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられた第１のデバイスからデータを受信することと、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルサーバに関連付けられた第２のデバイスからデータを受信することとを更に含みうる。別の例として、この例示の方法のデータは、セキュアな送信に向けて暗号化することができる。この例示の実施形態では、この例示の実施形態の方法は、第１のデバイスから受信されたデータを解読する第１の鍵を受信することと、第２のデバイスから受信されたデータを解読する第２の鍵を受信することとを更に含みうる。この例示の実施形態の方法は、データの記憶を行う前に当該データを変更することを更に含むことがあり、このデータを変更することは、データの圧縮及びインデックス付けのうちの少なくとも一方を含む。この例示の実施形態の方法による、リモートデスクトッププロトコルセッションの再現を容易にすることは、取り出されたデータを入力としてリモートデスクトッププロトコルクライアントに提供することと、再現中にリモートデスクトッププロトコルクライアントへのユーザ入力を抑制することとを更に含みうる。
【００７５】
別の例示の実施形態では、少なくとも１つのプロセッサと、コンピュータプログラムコードを記憶する少なくとも１つのメモリとを備える装置が提供される。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、少なくとも、リモートデスクトッププロトコルセッションに関係したデータを受信させるように構成することができる。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられたデバイス以外のロケーションにデータの記憶を行わせるように更に構成することができる。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、リモートデスクトッププロトコルセッションを再現する要求を受信させるように更に構成することができる。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、記憶装置からデータを取り出させるように更に構成することができる。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、取り出されたデータに少なくとも部分的に基づいて、リモートデスクトッププロトコルセッションの少なくとも一部の再現を容易にさせるように更に構成することができる。
【００７６】
この例のデータは、リモートデスクトッププロトコルセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含むことがある。この例示の実施形態による、リモートデスクトッププロトコルセッションに関係したデータを受信することは、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられた第１のデバイスからデータを受信することと、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルサーバに関連付けられた第２のデバイスからデータを受信することとを更に含みうる。別の例として、この例のデータは、セキュアな送信に向けて暗号化することができる。この例示の実施形態では、少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、第１のデバイスから受信されたデータを解読する第１の鍵を受信させ、第２のデバイスから受信されたデータを解読する第２の鍵を受信させるように更に構成することができる。少なくとも１つのメモリ及び記憶されたコンピュータプログラムコードは、少なくとも１つのプロセッサを用いて、この例示の実施形態の装置に、データの記憶を行う前に当該データを変更させるように更に構成することができ、このデータを変更することは、データの圧縮及びインデックス付けのうちの少なくとも一方を含む。この例示の実施形態による、リモートデスクトッププロトコルセッションの再現を容易にすることは、取り出されたデータを入力としてリモートデスクトッププロトコルクライアントに提供することと、再現中にリモートデスクトッププロトコルクライアントへのユーザ入力を抑制することとを更に含みうる。
【００７７】
別の例示の実施形態では、コンピュータプログラム製品が提供される。この例示の実施形態のコンピュータプログラム製品は、コンピュータ可読プログラム命令が記憶された少なくとも１つのコンピュータ可読記憶媒体を含みうる。この例示の実施形態のプログラム命令は、リモートデスクトッププロトコルセッションに関係したデータを受信するように構成されたプログラム命令を含みうる。この例示の実施形態のプログラム命令は、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられたデバイス以外のロケーションにデータの記憶を行うように構成されたプログラム命令を更に含みうる。この例示の実施形態のプログラム命令は、リモートデスクトッププロトコルセッションを再現する要求を受信するように構成されたプログラム命令を更に含みうる。この例示の実施形態のプログラム命令は、記憶装置からデータを取り出すように構成されたプログラム命令を更に含みうる。この例示の実施形態のプログラム命令は、取り出されたデータに少なくとも部分的に基づいて、リモートデスクトッププロトコルセッションの少なくとも一部の再現を容易にするように構成されたプログラム命令を更に含みうる。
【００７８】
この例のデータは、リモートデスクトッププロトコルセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含みうる。この例示の実施形態による、リモートデスクトッププロトコルセッションに関係したデータを受信することは、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられた第１のデバイスからデータを受信することと、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルサーバに関連付けられた第２のデバイスからデータを受信することとを更に含みうる。別の例として、この例のデータは、セキュアな送信に向けて暗号化することができる。この例示の実施形態では、この例示の実施形態のプログラム命令は、第１のデバイスから受信されたデータを解読する第１の鍵を受信するとともに、第２のデバイスから受信されたデータを解読する第２の鍵を受信するように構成されたプログラム命令を更に含みうる。この例示の実施形態のプログラム命令は、データの記憶を行う前に当該データを変更するように構成されたプログラム命令を更に含むことがあり、このデータを変更することは、データの圧縮及びインデックス付けのうちの少なくとも一方を含む。この例示の実施形態による、リモートデスクトッププロトコルセッションの再現を容易にすることは、取り出されたデータを入力としてリモートデスクトッププロトコルクライアントに提供することと、再現中にリモートデスクトッププロトコルクライアントへのユーザ入力を抑制することとを更に含みうる。
【００７９】
別の例示の実施形態では、リモートデスクトッププロトコルセッションに関係したデータを受信する手段を備えることができる装置が提供される。この例示の実施形態の装置は、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられたデバイス以外のロケーションにデータの記憶を行う手段を更に備えることができる。この例示の実施形態の装置は、リモートデスクトッププロトコルセッションを再現する要求を受信する手段を更に備えることができる。この例示の実施形態の装置は、記憶装置からデータを取り出す手段を更に備えることができる。この例示の実施形態の装置は、取り出されたデータに少なくとも部分的に基づいて、リモートデスクトッププロトコルセッションの少なくとも一部の再現を容易にする手段を更に備えることができる。
【００８０】
この例のデータは、リモートデスクトッププロトコルセッションに関連付けられたイベント、動作、又は入力のうちの少なくとも１つの表示を含みうる。この例示の実施形態による、リモートデスクトッププロトコルセッションに関係したデータを受信する手段は、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルクライアントに関連付けられた第１のデバイスからデータを受信することと、リモートデスクトッププロトコルセッションのリモートデスクトッププロトコルサーバに関連付けられた第２のデバイスからデータを受信することとを更に含みうる。別の例として、この例のデータは、セキュアな送信に向けて暗号化することができる。この例示の実施形態では、この例示の実施形態の装置は、第１のデバイスから受信されたデータを解読する第１の鍵を受信する手段と、第２のデバイスから受信されたデータを解読する第２の鍵を受信する手段とを更に備えることができる。この例示の実施形態の装置は、データの記憶を行う前に当該データを変更する手段を更に備えることができ、このデータを変更することは、データの圧縮及びインデックス付けのうちの少なくとも一方を含む。この例示の実施形態による、リモートデスクトッププロトコルセッションの再現を容易にする手段は、取り出されたデータを入力としてリモートデスクトッププロトコルクライアントに提供する手段と、再現中にリモートデスクトッププロトコルクライアントへのユーザ入力を抑制する手段とを更に備えることができる。
【００８１】
別の例示の実施形態では、システムが提供される。この例示のシステムは、リモートデスクトッププロトコルクライアントを動作させるように構成された第１のデバイスを備えることができる。さらに、この例示のシステムは、リモートデスクトッププロトコルサーバを動作させるように構成された第２のデバイスを備えることができる。この例示の実施形態によるシステムは、第１のデバイスと第２のデバイスとの間のネットワークパスに位置する第３のデバイスを更に備えることができる。この第３のデバイスは、リモートデスクトッププロトコルセッション中に第１のデバイス及び第２のデバイスによって送信されたデータを受信及び記憶するように構成することができる。
【００８２】
本明細書に示した本発明の数多くの変形及び他の実施形態は、上述した説明及び関連する図面に提示した教示から利益を得る、これらの実施形態が関連する当業者には思いつくであろう。したがって、本発明は、開示する特定の実施形態に限定されないこと、並びに、変更形態及び他の実施形態が添付の特許請求の範囲内に含まれるように意図されていることが理解されるべきである。その上、上記説明及び関連付けられた図面は、要素及び／又は機能の或る特定の例示の組み合わせに関する例示の実施形態を説明しているが、添付の特許請求の範囲の範囲から逸脱することなく、要素及び／又は機能の異なる組み合わせを代替の実施形態によって提供することができることが認識されるべきである。この点に関して、例えば、上記で明示して説明したもの以外の要素及び／又は機能の異なる組み合わせも、添付の特許請求の範囲のうちの幾つかにおいて記載することができるように考慮されている。本明細書では特定の用語を採用しているが、それらは、一般的かつ説明的な意味でのみ用いられ、限定の目的では用いられていない。
【図１】
0005923171.tif 000002
【図２】
0005923171.tif 000003
【図３】
0005923171.tif 000004
【図４】
0005923171.tif 000005