(57)【要約】【課題】プロキシサーバを介したＨＴＴＰトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能な情報処理装置、情報処理方法、リモートサーバ、情報処理システムを提供する。【解決手段】本発明に係る情報処理装置は、接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介してコンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された接続の解消に応じて接続を複数回更新する接続確立部と、複数のＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続としてアプリケーション実行部に認識させる接続管理部と、を設けた。【選択図】図１
2009230269.tif 000002
【特許請求の範囲】
【請求項１】
接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、
前記接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を前記接続対象装置との間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を複数回更新する接続確立部と、
複数の前記ＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
を備える、情報処理装置。
【請求項２】
前記接続管理部は、前記仮想的なＨＴＴＰトンネリングによる接続に関連付けられる接続識別子を管理しており、前記接続確立部が前記コンテンツ長を指定したＨＴＴＰトンネリングを更新する際に、前記仮想的なＨＴＴＰトンネリングによる接続に関連付けられた前記接続識別子を前記接続確立部に指定し、
前記接続確立部は、前記接続管理部から指定された前記接続識別子を用いて、前記ＨＴＴＰトンネリングの更新を行う、請求項１に記載の情報処理装置。
【請求項３】
前記接続確立部は、前記コンテンツ長を指定したＨＴＴＰトンネリングを更新する際に、更新前の前記ＨＴＴＰトンネリングによる接続で設定された接続制御条件を再度利用して、前記接続の更新を行う、請求項２に記載の情報処理装置。
【請求項４】
接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションの要請に基づいて、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を前記接続対象装置との間に確立するステップと、
前記確立した前記ＨＴＴＰトンネリングによる接続の解消に応じて、前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を更新するステップと、
更新前後の前記ＨＴＴＰトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーションに認識させるステップと、
を含む、情報処理方法。
【請求項５】
情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、
設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、
複数の前記ＨＴＴＰトンネリングによる接続の接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーション実行部に認識させる接続管理部と、
を備える、リモートサーバ。
【請求項６】
情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するステップと、
設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するステップと、
確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると、前記接続を再確立するステップと、
更新前後の前記ＨＴＴＰトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーションに認識させるステップと、
を含む、情報処理方法
【請求項７】
リモートサーバとの間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、
前記リモートサーバとの間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を前記リモートサーバとの間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を複数回更新する接続確立部と、
複数の前記ＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
を備える情報処理装置と、
情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、
設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、前記プロキシサーバを介して接続されている情報処理装置との間に前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、
複数の前記ＨＴＴＰトンネリングによる接続の接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
を備えるリモートサーバと、
を含む、情報処理システム。
【請求項８】
前記仮想的なＨＴＴＰトンネリングによる接続は、前記情報処理装置の側から前記リモートサーバの側に向かって接続が確立されたものであり、
前記複数のＨＴＴＰトンネリングによる接続は、前記リモートサーバの側から前記情報装置の側に向かって接続が確立されたものである、請求項７に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、リモートサーバ、情報処理システムに関する。
【背景技術】
【０００２】
サーバとクライアント機器とを、例えばインターネット越しにリモートアクセスによって接続させる方法として、例えば、ＨＴＴＰトンネリングという方法を挙げることができる（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００１−８６１６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＨＴＴＰトンネリングを用いてリモートアクセス越しに接続を確立させるためには、接続確立時に転送データ量を把握しておく必要がある。そのため、ＨＴＴＰトンネリングを用いてリモートアクセスによる接続を確立させるためには、設定が煩雑になるという問題点があった。
【０００５】
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、リモートサーバ−情報処理装置間のプロキシサーバを介したＨＴＴＰトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能な、新規かつ改良された情報処理装置、情報処理方法、リモートサーバ、情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある観点によれば、接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、前記接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を前記接続対象装置との間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を複数回更新する接続確立部と、複数の前記ＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、を備える情報処理装置が提供される。
【０００７】
かかる構成によれば、アプリケーション実行部は、接続対象装置との間にＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行する。また、接続確立部は、接続対象装置との間で設定可能な最大のコンテンツ長を設定して、接続されているプロキシサーバを介してコンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された接続の解消に応じてコンテンツ長を指定したＨＴＴＰトンネリングによる接続を複数回更新する。接続管理部は、複数のＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続としてアプリケーション実行部に認識させる。
【０００８】
前記接続管理部は、前記仮想的なＨＴＴＰトンネリングによる接続に関連付けられる接続識別子を管理しており、前記接続確立部が前記コンテンツ長を指定したＨＴＴＰトンネリングを更新する際に、前記仮想的なＨＴＴＰトンネリングによる接続に関連付けられた前記接続識別子を前記接続確立部に指定し、前記接続確立部は、前記接続管理部から指定された前記接続識別子を用いて、前記ＨＴＴＰトンネリングの更新を行うようにしてもよい。
【０００９】
前記接続確立部は、前記コンテンツ長を指定したＨＴＴＰトンネリングを更新する際に、更新前の前記ＨＴＴＰトンネリングによる接続で設定された接続制御条件を再度利用して、前記接続の更新を行うようにしてもよい。
【００１０】
上記課題を解決するために、本発明の別の観点によれば、接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションの要請に基づいて、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を前記接続対象装置との間に確立するステップと、前記確立した前記ＨＴＴＰトンネリングによる接続の解消に応じて、前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を更新するステップと、更新前後の前記ＨＴＴＰトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーションに認識させるステップと、を含む情報処理方法が提供される。
【００１１】
上記課題を解決するために、本発明の更に別の観点によれば、情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、複数の前記ＨＴＴＰトンネリングによる接続の接続状況を管理し、前記複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーション実行部に認識させる接続管理部と、を備えるリモートサーバが提供される。
【００１２】
上記課題を解決するために、本発明の更に別の観点によれば、情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するステップと、設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するステップと、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると、前記接続を再確立するステップと、更新前後の前記ＨＴＴＰトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとして前記アプリケーションに認識させるステップと、を含む情報処理方法が提供される。
【００１３】
上記課題を解決するために、本発明の更に別の観点によれば、上記情報処理装置と、上記リモートサーバと、を含む情報処理システムが提供される。
【００１４】
前記仮想的なＨＴＴＰトンネリングによる接続は、前記情報処理装置の側から前記リモートサーバの側に向かって接続が確立されたものであり、前記複数のＨＴＴＰトンネリングによる接続は、前記リモートサーバの側から前記情報装置の側に向かって接続が確立されたものであってもよい。
【発明の効果】
【００１５】
本発明によれば、リモートサーバ−情報処理装置間のプロキシサーバを介したＨＴＴＰトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能である。
【発明を実施するための最良の形態】
【００１６】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１７】
＜ＨＴＴＰトンネリングによる接続について＞
まず、本発明の第１の実施形態に係る情報処理システムについて説明するに先立ち、ＨＴＴＰトンネリングによる接続について、詳細に説明する。本願発明者らは、上述の課題を解決するに当たって、まず、ＨＴＴＰトンネリングによる接続について、詳細な検討を行った。以下に、図９Ａ〜図９Ｄを参照しながら、その検討結果について説明する。図９Ａ〜図９Ｄは、ＨＴＴＰトンネリングによる接続を説明するための説明図である。
【００１８】
インターネット越しにサーバ−クライアント機器間でＨＴＴＰトンネリングによる接続を確立する方法について考える。この場合に、ＨＴＴＰトンネリングのＰＯＳＴ側のトランザクションは、コンテンツレングスヘッダ（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ  Ｈｅａｄｅｒ）を指定する方法と、チャンクエンコーディング（ｃｈａｎｋｅｄ  ｅｎｃｏｄｉｎｇ）を使用する方法のどちらかを用いる必要がある。
【００１９】
この際に、例えば図９Ａに示したように、クライアント機器９０３側の環境（すなわち、クライアント機器９０３が属しているＬＡＮ）にプロキシサーバ９０５が設置されている場合、ＨＴＴＰ  ＰＯＳＴ側のトランザクションに関して、チャンクエンコーディングの方法はプロキシサーバ９０５にサポートされていないことが散見される。他方、コンテンツレングスヘッダを用いる方法は、接続（以下、コネクションとも称する。）確立時に予め転送データ量（以下、コンテンツ長とも称する。）を把握しておく必要がある。そのため、ＨＴＴＰトンネリングのように通信路としてＰＯＳＴトランザクションを用いる場合には、コンテンツタイプヘッダを用いる方法は、困難を伴う。
【００２０】
一般にコネクションは、例えば図９Ｂに示したように、接続をイニシエートする側（例えば、図９Ｂにおいてはクライアント機器９０３側）よりも、接続を待ち受ける側（例えば、図９Ｂにおいてはサーバ９０１側）の装置の方が、実装条件や実装環境に対する要求が高い場合が多い。例えば、リモートアクセスの場合、サーバ９０１側にＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）がある場合にはＵＰｎＰ  ＩＧＤ等のＮＡＴ  Ｔｒａｎｓｖｅｒｓａｌ技術を適用する必要があるが、クライアント機器９０３側では、ＮＡＴがあろうとも問題にならないことが多い。
【００２１】
また、クライアント機器９０３からサーバ９０１へコネクションを確立する場合を考えると、このような場合では、例えば図９Ｃに示したように、クライアント機器９０３のアプリケーションが、サーバ９０１のアプリケーションに対してコネクションの確立を要請することが多い。すなわち、クライアント機器９０３のアプリケーションイニシエータ９２１が、サーバ９０１のアプリケーションサーバ９１１に対してコネクションのイニシエートを行う。この場合に、アプリケーションイニシエータ９２１の動作に伴い、クライアント機器９０３のコネクションクライアント９２３が、サーバ９０１のコネクションサーバ９１３に対して、実際にコネクションの確立要請を行うこととなる。
【００２２】
このように、アプリケーション動作のイニシエータがコネクションのクライアントとなり、ＨＴＴＰトランザクションの向きがアプリケーションにおけるコネクションをイニシエートする向きと一致している場合は非常に多い。このような例として、例えば、クライアント機器９０３がＷｅｂブラウザであり、サーバ９０１がＷｅｂサーバである場合や、クライアント機器９０３がＤＬＮＡ（Ｄｉｇｉｔａｌ  Ｌｉｖｉｎｇ  Ｎｅｔｗｏｒｋ  Ａｌｌｉａｎｃｅ）ガイドラインにおけるデジタルメディアプレーヤーであり、サーバ９０１がＤＬＮＡガイドラインにおけるデジタルメディアサーバである場合等を挙げることができる。
【００２３】
しかしながら、例えば図９Ｄに示したように、サーバ９０１側の設置環境に制約があり、コネクションサーバが設置できず、コネクションクライアント９１５しか設置できないような場合も存在しうる。このような場合に、クライアント機器９０３のアプリケーションイニシエータ９２１がサーバ９０１のアプリケーションサーバ９１１にコネクションのイニシエートを要請したとする。しかしながら、この場合には、ＨＴＴＰトランザクションの向きと、アプリケーションにおいてコネクションをイニシエートする向きとが一致しなくなってしまい、クライアント機器９０３とサーバ９０１との間にコネクションは確立できないという問題がある。
【００２４】
かかる問題を解決するために、本願発明者らが鋭意研究を行った結果、以下で説明するような情報処理システムに想到した。
【００２５】
（第１の実施形態）
＜情報処理システムについて＞
次に、図１を参照しながら、本発明の第１の実施形態に係る情報処理システムについて、詳細に説明する。図１は、本実施形態に係る情報処理システムについて説明するための説明図である。
【００２６】
本実施形態に係る情報処理システム１は、例えば図１に示したように、本実施形態に係る情報処理装置１０が属するネットワーク５と、本実施形態に係るリモートサーバ２０が属するネットワーク７と、から構成されている。情報処理装置１０が属するネットワーク５と、リモートサーバ２０が属するネットワーク７とは、インターネット３を介して互いに接続可能である。また、情報処理装置１０が属するネットワーク７には、プロキシサーバ（ＨＴＴＰプロキシ）９が設置されている。
【００２７】
本実施形態に係る情報処理装置１０およびリモートサーバ２０は、それぞれリモートアクセス機能を有しており、ＨＴＴＰトンネリング方法を用いて互いに通信することが可能である。
【００２８】
インターネット３は、情報処理装置１０とリモートサーバ２０とを双方向通信又は一方向通信可能に接続する通信回線網であり、有線／無線を問わない。また、プロキシサーバ９は、ファイアウォールとして機能するＨＴＴＰプロキシであって、インターネット３と情報処理装置１０との間に設けられている。
【００２９】
情報処理装置１０およびリモートサーバ２０は、リモートアクセス機能を有する装置であって、これらの装置にインストールされている上位アプリケーションを実行することで、様々な機能を実現することができる。これらの情報処理装置１０およびリモートサーバ２０は、パーソナルコンピュータやサーバ等のコンピュータ装置であってもよく、テレビジョン受像器、ＤＶＤ／ＨＤＤレコーダ、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルカメラ、家庭用ゲーム機、デジタルビデオカメラ等のネットワークを介した通信機能を有する情報家電であってもよい。また、情報処理装置１０およびリモートサーバ２０は、契約者が持ち運びできるポータブルデバイス（Ｐｏｒｔａｂａｌｅ  Ｄｅｖｉｃｅ）、例えば、携帯型ゲーム機、ＰＨＳ、携帯型映像／音声プレーヤなどであってもよい。また、情報処理装置１０およびリモートサーバ２０は、ＤＬＮＡガイドラインに準拠するデジタルメディアサーバ（Ｄｉｇｉｔａｌ  Ｍｅｄｉａ  Ｓｅｒｖｅｒ：ＤＭＳ）、デジタルメディアプレーヤー（Ｄｉｇｉｔａｌ  Ｍｅｄｉａ  Ｐｌａｙｅｒ：ＤＭＰ）、デジタルメディアレンダラー（Ｄｉｇｉｔａｌ  Ｍｅｄｉａ  Ｒｅｎｄｅｒｅｒ：ＤＭＲ）、デジタルメディアコントローラ（Ｄｉｇｉｔａｌ  Ｍｅｄｉａ  Ｃｏｎｔｒｏｌｌｅｒ）等であってもよい。
【００３０】
なお、上記情報処理装置１０およびリモートサーバ２０については、以下で改めて詳細に説明する。
【００３１】
＜情報処理装置およびリモートサーバの構成について＞
続いて、図２を参照しながら、本実施形態に係る情報処理装置１０およびリモートサーバ２０の構成について、詳細に説明する。図２は、本実施形態に係る情報処理装置１０およびリモートサーバ２０の構成を説明するためのブロック図である。
【００３２】
なお、図２に示した例は、情報処理装置１０がクライアント機器としてリモートサーバ２０に接続する場合を示している。
【００３３】
［情報処理装置１０の構成について］
本実施形態に係る情報処理装置１０は、例えば図２に示したように、通信部１０１と、アプリケーション実行部１０３と、仮想コネクションクライアント部１０５と、コネクションクライアント部１０７と、記憶部１０９と、を主に備える。
【００３４】
通信部１０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、通信装置等から構成されており、ネットワークインターフェースを含む処理部である。この通信部１０１は、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）およびＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の２種類のプロトコルに基づく通信制御を行うことが可能なスタック（ｓｔａｃｋ）である。本実施形態に係る情報処理装置１０は、この通信部１０１を介して、同一のネットワーク内に属する装置または異なるネットワークに属する装置と、通信を行う。
【００３５】
アプリケーション実行部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成され、後述する記憶部１０９に記録されたプログラム等をＣＰＵで実行することにより、上位アプリケーションとして機能する様々な処理を実現する。これらの上位アプリケーションは、まず、本実施形態に係る情報処理装置１０から後述するリモートサーバ２０に対してコネクションをイニシエートし、確立されたコネクションを利用して様々な処理を実行するものである。
【００３６】
具体的には、アプリケーション実行部１０３がコネクションのイニシエートを決定すると、その旨が後述する仮想コネクションクライアント部１０５に通知され、実際のコネクションの確立処理が開始される。
【００３７】
このような上位アプリケーションの一例として、例えば、ＤＬＮＡガイドラインに準拠した各種制御プログラムを挙げることができる。
【００３８】
接続管理部の一例である仮想コネクションクライアント部１０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されており、アプリケーション実行部１０３から伝送されるコネクションのイニシエート要請に基づいて、後述するコネクションクライアント部１０７に実際のコネクションの確立要請を指示する。また、後述するコネクションクライアント部１０７によりリモートサーバ２０との間にＨＴＴＰトンネリングによるコネクションが確立されると、確立されたコネクションの接続状況を管理する。
【００３９】
具体的には、仮想コネクションクライアント部１０５は、後述するコネクションクライアント部１０７により確立される、複数のＨＴＴＰトンネリングによる接続を、一つの仮想的なＨＴＴＰトンネリングによる接続として、アプリケーション実行部１０３に認識させる。これにより、アプリケーション実行部１０３は、実際のＨＴＴＰトンネリングによる接続がどのように実現されているかを意識することなく、仮想的なＨＴＴＰトンネリングに対して各種の指示を行うことが可能となる。
【００４０】
仮想的なＨＴＴＰトンネリングによる接続には、固有の接続識別子であるコネクションＩＤが関連づけられており、仮想コネクションクライアント部１０５は、このコネクションＩＤを後述する記憶部１０９等に記録する。仮想的なＨＴＴＰトンネリングによる接続を構成する複数の接続には、同一のコネクションＩＤが付与されている。
【００４１】
このコネクションＩＤは、最初にＨＴＴＰトンネリングによる接続が確立された際に、情報処理装置１０の仮想コネクションクライアント部１０５が発行する。また、後述するコネクションクライアント部１０７が、ＨＴＴＰトンネリングによる接続を更新する際には、仮想コネクションクライアント部１０５が管理しているコネクションＩＤをコネクションクライアント部１０７に通知する。
【００４２】
なお、このコネクションＩＤは、ＨＴＴＰ  ＰＯＳＴのトランザクションだけでなく、ＨＴＴＰ  ＧＥＴのトランザクションに付与されていてもよい。
【００４３】
接続確立部の一例であるコネクションクライアント部１０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。コネクションクライアント部１０７は、仮想コネクションクライアント部１０５から伝送されたコネクションの確立要請に基づき、リモートサーバ２０に設けられている接続確立部に対して、ＨＴＴＰトンネリングによるコネクションの確立を要請する。また、リモートサーバ２０との間にコネクションが確立されると、確立されたコネクションの維持を行う。なお、これらのコネクションの確立および維持は、通信部１０１を介して行われる。
【００４４】
コネクションクライアント部１０７は、リモートサーバ２０のコネクションサーバ部２０３との間でコンテンツ長（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ）を協議して決定し、コンテンツレングスヘッダを指定する方法によってリモートサーバ２０との間でＨＴＴＰトンネリングによるリモートアクセスを確立する。
【００４５】
また、予め指定したコンテンツ長を超えると、リモートサーバ２０との間に確立されたＨＴＴＰトンネリングによる接続は解消されるが、コネクションクライアント部１０７は、リモートサーバ２０との間で、コンテンツ長を指定したＨＴＴＰトンネリングによる接続を自動的に更新する。この更新の際には、仮想コネクションクライアント部１０５から通知されたコネクションＩＤを再度利用する。
【００４６】
リモートサーバ２０のコネクションサーバ部２０３との間で実際のコネクションを確立する際には、双方向認証や通信に利用する暗号鍵等の接続制御条件が決定される。ここで、コネクションクライアント部１０７は、ＨＴＴＰトンネリングによる接続を更新する際に、更新前のＨＴＴＰトンネリングによる接続の際に決定された接続制御条件を再利用して、接続の更新を行うことが可能である。例えば、接続の更新時には、リモートサーバ２０との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用するようにすれば、最初の接続確立時に比べて高速に接続を更新することが可能となる。
【００４７】
記憶部１０９は、本実施形態に係る情報処理装置１０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。更に、記憶部１０９には、仮想コンテンツクライアント部１０５が管理しているコネクションＩＤが、例えばログ情報のような形式やデータベース等の形式で記録されている。この記憶部１０９は、通信部１０１、アプリケーション実行部１０３、仮想コネクションクライアント部１０５、コネクションクライアント部１０７等が、自由に読み書きを行うことが可能である。
【００４８】
なお、上述の説明では、情報処理装置１０にコネクションクライアント部１０７のみが設けられる場合について説明したが、情報処理装置１０には、後述するリモートサーバ２０に設けられているようなコネクションサーバ部が設けられていても良い。
【００４９】
以上、本実施形態に係る情報処理装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００５０】
［リモートサーバ２０の構成について］
本実施形態に係るリモートサーバ２０は、例えば図２に示したように、通信部２０１と、コネクションサーバ２０３と、仮想コネクションクライアント部２０５と、アプリケーション実行部２０７と、記憶部２０９と、を主に備える。
【００５１】
通信部２０１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信装置等から構成されており、ネットワークインターフェースを含む処理部である。この通信部２０１は、例えば、ＴＣＰおよびＩＰの２種類のプロトコルに基づく通信制御を行うことが可能なスタックである。本実施形態に係るリモートサーバ２０は、この通信部２０１を介して、同一のネットワーク内に属する装置または異なるネットワークに属する装置と、通信を行う。
【００５２】
接続確立部の一例であるコネクションサーバ部２０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。コネクションクライアント部２０３は、情報処理装置１０の接続確立部から通知されるＨＴＴＰトンネリングによるコネクションの確立要請に応じて、情報処理装置１０との間に接続を確立する。また、情報処理装置１０との間にコネクションが確立されると、確立されたコネクションの維持を行う。なお、これらのコネクションの確立および維持は、通信部２０１を介して行われる。
【００５３】
コネクションサーバ部２０３は、情報処理装置１０の接続確立部（例えば、コネクションクライアント部１０７）との間でコンテンツ長（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ）を協議して決定し、コンテンツレングスヘッダを指定する方法によって情報処理装置１０との間でＨＴＴＰトンネリングによるリモートアクセスを確立する。
【００５４】
また、情報処理装置１０のコネクションクライアント部１０７から伝送されたＨＴＴＰ  ＰＯＳＴのＵＲＬの中には、接続識別子の一例であるコネクションＩＤがクエリ文字列（ｑｕｅｒｙ  ｓｔｒｉｎｇ）として記載されている。コネクションサーバ部２０３は、記載されているコネクションＩＤを後述する仮想コネクションサーバ部２０５に伝送する。
【００５５】
また、予め指定したコンテンツ長を超えると、コネクションサーバ部２０３は、情報処理装置１０との間に確立されたＨＴＴＰトンネリングによる接続を解消する。情報処理装置１０との間に確立されたＨＴＴＰトンネリングが解消されると、情報処理装置１０は、再度ＨＴＴＰトンネリングによる接続を要求してくる場合がある。この一旦解消された接続を再度確立する要請（接続更新の要請）がなされた場合、コネクションサーバ部２０３は、情報処理装置１０から送信されたコネクションＩＤを後述する仮想コネクションサーバ部２０５に伝送して、仮想コネクションサーバ部２０５の判断に応じてコネクションの確立処理を行う。
【００５６】
情報処理装置１０のコネクションクライアント部１０７との間で実際のコネクションを確立する際には、双方向認証や通信に利用する暗号鍵等の接続制御条件が決定される。また、ＨＴＴＰトンネリングによる接続を更新する際に、更新前のＨＴＴＰトンネリングによる接続の際に決定された接続制御条件を再利用して、接続の更新を行うことが可能である。例えば、後述する仮想コネクションサーバ部２０５から、更新要請のあった接続と同一のコンテンツＩＤが存在した旨が通達された場合には、情報処理装置１０との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用してもよい。
【００５７】
接続管理部の一例である仮想コネクションサーバ部２０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されており、コネクションサーバ部２０３と情報処理装置１０のコネクションクライアント部１０７との間に確立されたコネクションの接続状況を管理する。
【００５８】
具体的には、仮想コネクションサーバ部２０５は、コネクションサーバ部２０３により確立される、複数のＨＴＴＰトンネリングによる接続を、一つの仮想的なＨＴＴＰトンネリングによる接続として、アプリケーション実行部２０７に認識させる。これにより、アプリケーション実行部２０７は、実際のＨＴＴＰトンネリングによる接続がどのように実現されているかを意識することなく、仮想的なＨＴＴＰトンネリングに対して各種の指示を行うことが可能となる。
【００５９】
また、仮想コネクションサーバ部２０５は、コネクションサーバ部２０３から通知されたコネクションＩＤを、後述する記憶部２０９等に記録する。このコネクションＩＤは、コンテンツ長満了に伴うコネクションの終了時から所定時間は、消去されずに記憶部２０９等に記録されている。コネクションの終了時からの所定時間は、情報処理システム１の処理能力や規模等に応じて、任意の値を設定することが可能であり、例えば、１分間等の値を設定できる。
【００６０】
コネクションサーバ部２０３から、接続更新の要請があった旨が通達された場合には、仮想コネクションサーバ部２０５は、新たに通知されたコネクションＩＤが記憶部２０９等に記録されているコネクションＩＤと同一であるか否かを判定する。同一のコネクションＩＤであると判定された場合には、仮想コネクションサーバ部２０５は、更新要請のあったコネクションは、コンテンツ長満了に伴う接続解消があった接続が更新されたものであると判定し、同一の仮想的なＨＴＴＰトンネリングによる接続に属するものとして取り扱う。また、コンテンツＩＤが異なっていた場合には、仮想コネクションサーバ部２０５は、新たな仮想的なＨＴＴＰトンネリングによる接続が発生したと判断する。
【００６１】
同一のコンテンツＩＤが記憶部２０９に記録されていた場合には、仮想コネクションサーバ部２０５は、その旨をコネクションサーバ部２０３に通達する。その結果、上述のように、コネクションサーバ部２０３は、情報処理装置１０との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用してもよい。これにより、情報処理装置１０との接続更新に要する時間を、短縮することが可能となる。
【００６２】
アプリケーション実行部２０７は、例えば、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成され、後述する記憶部２０９に記録されたプログラム等をＣＰＵで実行することにより、上位アプリケーションとして機能する様々な処理を実現する。これらの上位アプリケーションは、まず、本実施形態に係る情報処理装置１０から送信されるコネクションのイニシエートを待ち受け、コネクションが確立されると、確立されたコネクションを利用して様々な処理を実行するものである。
【００６３】
このような上位アプリケーションの一例として、例えば、ＤＬＮＡガイドラインに準拠した各種制御プログラムを挙げることができる。
【００６４】
記憶部２０９は、本実施形態に係るリモートサーバ２０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。更に、記憶部２０９には、仮想コンテンツサーバ部２０５が管理しているコネクションＩＤが、例えばログ情報のような形式やデータベース等の形式で記録されている。この記憶部２０９は、通信部２０１、コネクションサーバ部２０３、仮想コネクションサーバ部１０５、アプリケーション実行部２０７等が、自由に読み書きを行うことが可能である。
【００６５】
なお、上述の説明では、リモートサーバ２０にコネクションサーバ部２０３のみが設けられる場合について説明したが、リモートサーバ２０には、情報処理装置１０に設けられているようなコネクションクライアント部が設けられていても良い。
【００６６】
以上、本実施形態に係るリモートサーバ２０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００６７】
［情報処理装置およびリモートサーバに設けられた各処理部について］
続いて、図３および図４を参照しながら、情報処理装置１０およびリモートサーバ２０に設けられた各処理部の関係を、レイヤの概念に基づいて説明する。図３および図４は、本実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。
【００６８】
例えば図３に示したように、情報処理装置１０のコネクションクライアント部１０７と、リモートサーバ２０のコネクションサーバ部２０３とは、コンテンツ長を指定したＨＴＴＰトンネリングによって接続されている。このコンテンツ長を指定した実際のＨＴＴＰトンネリングによる接続を、リアルコネクションと称することとする。図４に示した例では、コネクションクライアント部１０７−コネクションサーバ部２０３間で、コンテンツ長がＮと決定されている。
【００６９】
コネクションクライアント部１０７は、コンテンツ長Ｎが満了してリアルコネクションが解消されると、再度コンテンツ長がＮであるリアルコネクションの更新要請をコネクションサーバ部２０３に通知して、リアルコネクションの更新を行う。これによって、図４に示したように、コネクションクライアント部１０７−コネクションサーバ部２０３間には、コンテンツ長がＮであるリアルコネクションが複数連続して確立されていることとなる。
【００７０】
コネクションクライアント部１０７の上位レイヤには、図３に示したように仮想コネクションクライアント部１０５が設けられており、コネクションクライアント部１０５の制御を行っている。具体的には、仮想コネクションクライアント部１０５は、図３および図４に示したような複数のリアルコネクションを束ねて、一つの仮想的なＨＴＴＰトンネリングによる接続として取り扱い、アプリケーション実行部１０３に対して、仮想コネクションが利用可能なコネクションであると認識させている。この仮想的なＨＴＴＰトンネリングを、仮想コネクション（ヴァーチャルコネクション）と称することとする。
【００７１】
また、コネクションサーバ部２０３の上位レイヤには、図３に示したように仮想コネクションサーバ部２０５が設けられており、コネクションサーバ部２０３の制御を行っている。具体的には、仮想コネクションサーバ部２０５は、図３および図４に示したような複数のリアルコネクションを、一つの仮想コネクションによる接続として取り扱い、アプリケーション実行部２０７に対して、仮想コネクションが利用可能なコネクションであると認識させている。
【００７２】
仮想コネクションクライアント部１０５の上位レイヤには、図３に示したようにアプリケーション実行部１０３が設けられており、仮想コネクションサーバ部２０５の上位レイアには、図３に示したようにアプリケーション実行部２０７が設けられている。これらのアプリケーション実行部１０３、２０７は、最上位のレイヤである。それぞれのアプリケーション実行部で実行されている上位アプリケーションは、下層レイヤである仮想コネクションクライアント部１０５や仮想コネクションサーバ部２０５から提供される一つの仮想コネクションが利用可能なコネクションであると認識させられている。従って、アプリケーション実行部は、リアルコネクションがどのように確立されているかを意識することなく、仮想コネクションクライアント部や仮想コネクションサーバ部をコネクションとして利用する。
【００７３】
例えば、最上位レイヤである情報処理装置１０のアプリケーション実行部１０３により、コネクションＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）の中から「Ｃｏｎｎｅｃｔ」関数が選択されると、アプリケーション実行部１０３は、下層レイヤである仮想コネクションクライアント部１０５にコネクションのイニシエートを要請する。仮想コネクションクライアント部１０５は、アプリケーション実行部１０３の要請に応じて、仮想コネクションを確立し、アプリケーション実行部１０３に通知する。
【００７４】
ここで、実際には、仮想コネクションクライアント部１０５は、更に下層のレイヤであるコネクションクライアント部１０７に対してリアルコネクションの確立要請を行い、コネクションクライアント部１０７が、リモートサーバ２０の最下層レイヤであるコネクションサーバ部２０３との間で、リアルコネクションを確立している。
【００７５】
コンテンツ長Ｎが満了すると、最下層レイヤであるコネクションクライアント部１０７−コネクションサーバ部２０３間では、リアルコネクションの更新が行われて、図４に示したような複数のリアルコネクションが存在することとなる。しかしながら、アプリケーション実行部１０３と、コネクションクライアント部１０７との間のレイヤに存在しているため、アプリケーション実行部１０３は、リアルコネクションが更新されていることに気づくことなく、アプリケーションの実行を行うことができる。
【００７６】
このような階層処理は、リモートサーバ２０においても同様である。
【００７７】
このように、本実施形態に係る情報処理システム１では、最上位レイヤであるアプリケーションの実行を司る処理部と、最下位レイヤである実際のＨＴＴＰトンネリングの確立・維持を司る処理部との間に、中間レイヤとして実際のＨＴＴＰトンネリングを管理する処理部を設けている。この中間レイヤが存在することで、最上位レイヤであるアプリケーション実行部は、転送データ量（すなわち、コンテンツ長）を把握することなくコネクションを利用することが可能となる。
【００７８】
なお、本実施形態に係る仮想コネクションクライアント部や仮想コネクションサーバ部といった接続管理部を設けることなくＨＴＴＰトンネリングによる接続を実現可能な環境下に、本実施形態に係る情報処理装置１０またはリモートサーバ２０を設置する場合も考えられる。このような場合には、接続管理部は上述のような処理は行わず、コネクションクライアント部およびコネクションサーバ部から提供されるサービスを、透過的に上位アプリケーションであるアプリケーション実行部に提供するようにすればよい。
【００７９】
＜情報処理方法について＞
続いて、図５Ａ〜図５Ｂを参照しながら、本実施形態に係る情報処理方法について詳細に説明する。図５Ａおよび図５Ｂは、本実施形態に係る情報処理方法を説明するための流れ図である。
【００８０】
まず、リモートサーバ２０のアプリケーション実行部２０７は、コネクションＡＰＩの中から「Ｏｐｅｎ」を選択し、コネクションサービスの開始要求をする（ステップＳ１０１）。すると、ＨＴＴＰサーバが起動し（ステップＳ１０３）、情報処理装置１０から通知される接続確立要求を待ち受ける状態となる。
【００８１】
他方、情報処理装置１０のアプリケーション実行部１０３は、コネクションＡＰＩの中から「Ｃｏｎｎｅｃｔ」を選択し、コネクションサービスの開始要求をする（ステップＳ１０５）。すると、コネクションクライアント部１０７は、新たにコネクションＩＤを設定する（ステップＳ１０７）。このコネクションＩＤは、例えば、生成した日時等と関連づけられて、記憶部１０９に記録される。
【００８２】
次に、コネクションクライアント部１０７は、チャンクエンコーディングによる方法に対応していないプロキシサーバ９が存在する場合に、リモートサーバ２０のコネクションサーバ部２０３との間で、コンテンツ長（Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ）を決定し（ステップＳ１０９）、Ｃｏｎｔｅｔ−Ｌｅｎｇｔｈ  Ｈｅａｄｅｒの中に記載する。このコンテンツ長は、情報処理装置１０−リモートサーバ２０間で設定可能な最大転送量Ｎに決定される。この最大転送量Ｎは、なるべく大きな値が望ましいが、大きすぎる値だと、プロキシサーバ９（ＨＴＴＰプロキシ）に拒否される可能性がある。そのため、適切な値は、実際に試行してみることで決定することができる。
【００８３】
情報処理装置１０のコネクションクライアント部１０７は、ＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔを、リモートサーバ２０のコネクションサーバ部２０３に対して送信する（ステップＳ１１１）。ＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔのＤｅｓｔｉｎａｔｉｏｎ  ＵＲＬには、クエリ文字列を用いて、情報処理装置１０が発行したコネクションＩＤと、情報処理装置１０自身を識別するＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  ＩＤ）が記載されている。なお、このＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔのｂｏｄｙは、終端させずに送信されている。すると、リモートサーバ２０のコネクションサーバ部２０３は、送信されたＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔを受信する（ステップＳ１１３）。
【００８４】
次に、情報処理装置１０のコネクションクライアント部１０７は、ＨＴＴＰ  ＧＥＴ  ｒｅｑｕｅｓｔを、リモートサーバ２０のコネクションサーバ部２０３に対して送信する（ステップＳ１１５）。ＨＴＴＰ  ＧＥＴ  ＲｅｑｕｅｓｔのＤｅｓｔｉｎａｔｉｏｎ  ＵＲＬにも、クエリ文字列を用いて、情報処理装置１０が発行したコネクションＩＤと、情報処理装置１０自身を識別するＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  ＩＤ）が記載されている。すると、リモートサーバ２０のコネクションサーバ部２０３は、送信されたＨＴＴＰ  ＧＥＴ  ｒｅｑｕｅｓｔを受信する（ステップＳ１１７）。
【００８５】
リモートサーバ２０のコネクションサーバ部２０３は、受信したＵＲＬに含まれるコネクションＩＤとＧＵＩＤの双方が一致しているＰＯＳＴ、ＧＥＴの対を、一つのＨＴＴＰトンネリングを構成するＨＴＴＰトランザクションだとして扱う。リモートサーバ２０のコネクションサーバ部２０３は、ＨＴＴＰ  ＧＥＴ  ｒｅｓｐｏｎｃｅを情報処理装置１０に送信するが（ステップＳ１１９）、そのｂｏｄｙを終端させずに送信する。すると、情報処理装置１０のコネクションクライアント部１０７は、送信されたＨＴＴＰ  ＧＥＴ  ｒｅｓｐｏｎｃｅを受信する（ステップＳ１２１）。
【００８６】
情報処理装置１０およびリモートサーバ２０は、ＰＯＳＴ  ｒｅｑｕｅｓｔのｂｏｄｙと、ＧＥＴ  ｒｅｓｐｏｎｃｅのｂｏｄｙとを、双方向の通信路として使用する。通信路が確立されると、情報処理装置１０のコネクションクライアント部１０７と、リモートサーバ２０のコネクションサーバ部２０３とは、それぞれ接続処理を行い、双方向認証と、これ以降の通信で使用する暗号鍵の決定とを行う（ステップＳ１２３）。このような処理によって、情報処理装置１０−リモートサーバ２０間に、リアルコネクションが確立される。
【００８７】
リアルコネクションが確立されると、上位レイヤである仮想コネクションクライアント部１０５および仮想コネクションサーバ部２０５とがコネクションの接続管理を開始し、アプリケーション実行部１０３，２０７に対して、コネクションサービスを提供する（ステップＳ１２５）。
【００８８】
確立されたＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔを用いたＨＴＴＰトンネリングによる通信の結果、ＰＯＳＴ  ｒｅｑｕｅｓｔ  ｂｏｄｙでの通信量がＮに等しくなる場合が生じる（ステップＳ１２７）。このとき、情報処理装置１０の仮想コネクションクライアント部１０５は、アプリケーション実行部１０３へのコネクションサービスの実行を一旦サスペンドする（ステップＳ１３１）。仮想コネクションクライアント部１０５は、サスペンド中は、アプリケーション実行部１０３からのコネクションサービス実行依頼は受け付けるものの、実行はレジュームするまで留保する。この動作の結果、アプリケーション実行部１０３は、サスペンドを意識しない。
【００８９】
仮想コネクションクライアント部１０５は、ＨＴＴＰトンネリングを一旦終端する。ＰＯＳＴ側のＨＴＴＰトランザクションについては、特にネットワーク上の動作として何もしなくても、ＨＴＴＰトランザクションは転送量がＮに等しくなった時点で終了している。しかしながら、コネクションクライアント部１０５は、通信部１０１を介して、ＴＣＰ接続を切断してもよい。また、情報処理装置１０のコネクションクライアント部１０５は、ＰＯＳＴ側トランザクションの中断に伴い、ＧＥＴ側のトランザクションも終了する（ステップＳ１３３）。これは、コネクションクライアント部１０５が、通信部１０１を介して、ＴＣＰ接続を切断することで可能である。
【００９０】
なお、チャンクエンコーディングによる方法を使用している場合には、リモートサーバ２０が現在送信中のチャンク（ｃｈｕｎｋ）をダミーデータ等で終了させた後、次のチャンクのサイズを０と指定することで終了することができる。チャンクエンコーディングによる方法を使用している場合には、０チャンクの後にＴＣＰ接続を切断する必要はないが、ＴＣＰ接続を切断してもよい。
【００９１】
リモートサーバ２０の仮想コネクションサーバ部２０５は、Ｃｏｎｔｅｎｔ−Ｌｅｎｇｔｈ値に達して接続が終端した場合、情報処理装置１０と同様に、アプリケーション実行部２０７へのコネクションサービスをサスペンドする（ステップＳ１３１）。なお、仮想コネクションサーバ部２０５は、確立時に指定された情報処理装置１０のＧＵＩＤとコネクションＩＤとを、一定時間記憶しておく。この一定時間値については、仮想コネクションクライアント部１０５−仮想コネクションサーバ部２０５間で、予め合意してあるものとする。一定時間レジューム処理（すなわち、接続の更新処理）が行われなかった場合、情報処理装置１０の仮想コネクションクライアント部１０５と、リモートサーバ２０の仮想コネクションサーバ部２０５とは、仮想コネクションは失われたものとして、それぞれのアプリケーション実行部１０３，２０７に報告する。
【００９２】
情報処理装置１０の仮想コネクションクライアント部１０５は、上述の一定時間が経過する前に、ＨＴＴＰトンネリングをレジュームする。すなわち、仮想コネクションクライアント部１０５は、最初のＨＴＴＰトンネリングで使用したコネクションＩＤを取得して、コネクションクライアント部１０７に通知する。コネクションクライアント部１０７は、通知されたコネクションＩＤと、クライアントのＧＵＩＤとを再び利用して、ＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔをリモートサーバ２０に送信する（ステップＳ１３５）。このＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔのｂｏｄｙは、終端させずに送信されている。すると、リモートサーバ２０のコネクションサーバ部２０３は、送信されたＨＴＴＰ  ＰＯＳＴ  ｒｅｑｕｅｓｔを受信する（ステップＳ１３７）。
【００９３】
同様にして、情報処理装置１０のコネクションクライアント部１０７は、ＨＴＴＰ  ＧＥＴ  ｒｅｑｕｅｓｔを、リモートサーバ２０のコネクションサーバ部２０３に対して送信する（ステップＳ１３９）。ＨＴＴＰ  ＧＥＴ  ＲｅｑｕｅｓｔのＤｅｓｔｉｎａｔｉｏｎ  ＵＲＬにも、クエリ文字列を用いて、仮想コネクションクライアント部１０７から通知されたコネクションＩＤと、情報処理装置１０自身を識別するＧＵＩＤ（Ｇｌｏｂａｌ  Ｕｎｉｑｕｅ  ＩＤ）が記載されている。すると、リモートサーバ２０のコネクションサーバ部２０３は、送信されたＨＴＴＰ  ＧＥＴ  ｒｅｑｕｅｓｔを受信する（ステップＳ１４１）。
【００９４】
リモートサーバ２０のコネクションサーバ部２０３は、受信した情報処理装置１０のＧＵＩＤとコネクションＩＤとを確認して、ＨＴＴＰ  ＧＥＴおよびＰＯＳＴが前回の続きであると認識する。リモートサーバ２０のコネクションサーバ部２０３は、ＨＴＴＰ  ＧＥＴ  ｒｅｓｐｏｎｃｅを情報処理装置１０に送信するが（ステップＳ１４３）、そのｂｏｄｙを終端させずに送信する。すると、情報処理装置１０のコネクションクライアント部１０７は、送信されたＨＴＴＰ  ＧＥＴ  ｒｅｓｐｏｎｃｅを受信する（ステップＳ１４５）。
【００９５】
情報処理装置１０およびリモートサーバ２０は、ＰＯＳＴ  ｒｅｑｕｅｓｔのｂｏｄｙと、ＧＥＴ  ｒｅｓｐｏｎｃｅのｂｏｄｙとを、双方向の通信路として使用する。通信路が確立されると、情報処理装置１０のコネクションクライアント部１０７と、リモートサーバ２０のコネクションサーバ部２０３とは、それぞれ同様に接続処理を行い、双方向認証と、これ以降の通信で使用する暗号鍵の決定とを行う（ステップＳ１４７）。このような処理によって、情報処理装置１０−リモートサーバ２０間に、リアルコネクションが確立される。
【００９６】
その後、仮想コネクションクライアント部１０５および仮想コネクションサーバ部２０５は、アプリケーション実行部から依頼されていたコネクションサービスの実行を再開する（ステップＳ１４９）。
【００９７】
なお、レジューム時（接続の更新時）の接続処理に関しては、いくつかの処理を簡略化することができる。例えば、ステップＳ１４７において、双方向認証だけは実行するが、暗号鍵は前回のコネクションと同じものを用いるようにしてもよい。このような処理を行うことで、接続処理を高速に終了させることができる。
【００９８】
このように、本実施形態に係る情報処理方法では、転送データ量（すなわち、コンテンツ長）を把握することなくコネクションを維持して利用することが可能となる。
【００９９】
＜リバースコネクションについて＞
続いて、図６および図７を参照しながら、本実施形態に係る接続管理部を設けることにより実現可能なリバースコネクションについて、詳細に説明する。図６および図７は、本実施形態に係るリバースコネクションを説明するための説明図である。
【０１００】
本実施形態に係る接続管理部を設けることにより実現可能な機能として、例えば、以下で説明するようなリバースコネクション機能がある。ここで、リバースコネクションとは、アプリケーションが想定しているコネクションの向きと、実際に確立されているＨＴＴＰトンネリングによる接続の向きが、互いに逆向きとなっている接続を意味する。
【０１０１】
アプリケーションの通信には、通信をイニシエートする側と待ち受ける側の役割が決まっているケースがある。しかしながら、実際のコネクションが確立可能かどうかは、通信に用いる装置の実装やネットワーク環境によってアプリケーションの想定している通りではないこともある。
【０１０２】
このような場合で、特に、アプリケーションのイニシエータ側（すなわち、情報処理装置１０側）ではリアルコネクションのサーバ側の要件は満たしているが、アプリケーションのサーバ側（すなわち、リモートサーバ２０側）ではリアルコネクションのサーバ側要件を満たしていないケースを考える。また、一般に、サーバ側に要求される要件よりも、クライアント側（すなわち、情報処理装置１０側）に要求される要件のほうが緩やかである場合が多いため、アプリケーションのサーバ側（すなわち、リモートサーバ２０側）では、コネクションのクライアント側の要件は満たしていると仮定する。
【０１０３】
上述のようなケースにおいて、例えば図６に示したように、クライアント側（すなわち、情報処理装置１０側）に、本実施形態に係るリモートサーバ２０が有していたようなコネクションサーバ部１１１を設け、リモートサーバ側に、本実施形態に係る情報処理装置１０が有していたようなコネクションクライアント部２１１を設けるようにする。その結果、図６に示したように、コネクションクライアント部２１１からコネクションサーバ部１１１に向かってリアルコネクションを確立・維持することが可能となる。
【０１０４】
また、例えば図７に示したように、アプリケーションのイニシエート側（すなわち、情報処理装置１０側）に仮想コネクションクライアント部１０５を設け、アプリケーションのサーバ側（すなわち、リモートサーバ２０側）に仮想コネクションサーバ部２０５を設ける。各装置におけるアプリケーション実行部１０３，２０７にとっては、仮想コネクションクライアント部１０５および仮想コネクションサーバ部２０５は、通常のコネクションクライアント部やコネクションサーバ部として認識されることとなる。ここで、仮想コネクションクライアント部１０５は、仮想コネクションサーバ部２０５に向かって仮想コネクションを確立したように設定し、アプリケーション実行部に、イニシエート側からサーバ側にコネクションが確立されたように認識させる。
【０１０５】
他方、アプリケーション実行部から要請を受けた仮想コネクションクライアント部１０５および仮想コネクションサーバ部２０５は、それぞれの下層レイヤに、コネクションサーバ部１１１と、コネクションクライアント部２１１とを配置し、リモートサーバ２０側から、イニシエータ側である情報処理装置１０側に、リアルコネクションを確立させる。その上で、仮想コネクションクライアント部１０５および仮想コネクションサーバ部２０５は、この逆向きのリアルコネクションの接続状況を管理するようにする。
【０１０６】
このように、本実施形態に係る接続管理部を設けることで、アプリケーション実行部が想定しているコネクションの向きと、実際に確立されているコネクションの向きが逆向きとなってしまう場合であっても、各装置のアプリケーション実行部は、コネクションの向きを意識することなく、通信を行うことが可能となる。
【０１０７】
＜ハードウェア構成について＞
次に、図８を参照しながら、本発明の各実施形態に係る情報処理装置１０のハードウェア構成について、詳細に説明する。図８は、本実施形態に係る情報処理装置１０のハードウェア構成を説明するためのブロック図である。
【０１０８】
情報処理装置１０は、主に、ＣＰＵ３０１と、ＲＯＭ３０３と、ＲＡＭ３０５と、ホストバス３０７と、ブリッジ３０９と、外部バス３１１と、インターフェース３１３と、入力装置３１５と、出力装置３１７と、ストレージ装置３１９と、ドライブ３２１と、接続ポート３２３と、通信装置３２５とを備える。
【０１０９】
ＣＰＵ３０１は、演算処理装置および制御装置として機能し、ＲＯＭ３０３、ＲＡＭ３０５、ストレージ装置３１９、またはリムーバブル記録媒体３２７に記録された各種プログラムに従って、情報処理装置１０内の動作全般またはその一部を制御する。ＲＯＭ３０３は、ＣＰＵ３０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ３０５は、ＣＰＵ３０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス３０７により相互に接続されている。
【０１１０】
ホストバス３０７は、ブリッジ３０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス３１１に接続されている。
【０１１１】
入力装置３１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置３１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、情報処理装置１０の操作に対応した携帯電話やＰＤＡ等の外部接続機器３２９であってもよい。さらに、入力装置３１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ３０１に出力する入力制御回路などから構成されている。情報処理装置１０のユーザは、この入力装置３１５を操作することにより、情報処理装置１０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０１１２】
出力装置３１７は、例えば、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置３１７は、例えば、情報処理装置１０が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置１０が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【０１１３】
ストレージ装置３１９は、情報処理装置１０の記憶部の一例として構成されたデータ格納用の装置であり、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置３１９は、ＣＰＵ３０１が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
【０１１４】
ドライブ３２１は、記録媒体用リーダライタであり、情報処理装置１０に内蔵、あるいは外付けされる。ドライブ３２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体３２７に記録されている情報を読み出して、ＲＡＭ３０５に出力する。また、ドライブ３２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体３２７に記録を書き込むことも可能である。リムーバブル記録媒体３２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、メモリースティック、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。また、リムーバブル記録媒体３２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【０１１５】
接続ポート３２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ｉ．Ｌｉｎｋ等のＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等の、機器を情報処理装置１０に直接接続するためのポートである。この接続ポート３２３に外部接続機器３２９を接続することで、情報処理装置１０は、外部接続機器３２９から直接音響信号データや画像信号データを取得したり、外部接続機器３２９に音響信号データや画像信号データを提供したりする。
【０１１６】
通信装置３２５は、例えば、通信網３３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置３２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデム等である。この通信装置３２５は、例えば、インターネットや他の通信機器との間で音響信号等を送受信することができる。また、通信装置３２５に接続される通信網３３１は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【０１１７】
以上、本発明の各実施形態に係る情報処理装置１０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０１１８】
なお、本発明の各実施形態に係るリモートサーバ２０は、本発明の各実施形態に係る情報処理装置１０と同様のハードウェア構成を有するため、詳細な説明は省略する。
【０１１９】
なお、本発明の各実施形態に係る情報処理装置１０は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータを、プロキシサーバを介して接続された接続対象装置と通信可能な情報処理装置として機能させるためのプログラムであって、接続対象装置との間のＨＴＴＰトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行機能と、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介してコンテンツ長を指定したＨＴＴＰトンネリングによる接続を接続対象装置との間に確立するとともに、確立された接続の解消に応じてコンテンツ長を指定したＨＴＴＰトンネリングによる接続を複数回更新する接続確立機能と、複数のＨＴＴＰトンネリングによる接続それぞれの接続状況を管理し、複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングによる接続としてアプリケーションに認識させる接続管理機能と、をコンピュータに実現させるためのプログラムである。
【０１２０】
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるＣＰＵに読み込まれて実行されることにより、コンピュータを上記の情報処理装置１０として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１２１】
また、本発明の各実施形態に係るリモートサーバ２０は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータを、プロキシサーバに接続された情報処理装置と通信可能なリモートサーバとして機能させるためのプログラムであって、情報処理装置から通知されるＨＴＴＰトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行機能と、設定可能な最大のコンテンツ長を情報処理装置に対して通知し、プロキシサーバを介して接続されている情報処理装置との間にコンテンツ長を指定したＨＴＴＰトンネリングによる接続を確立するとともに、確立された接続の解消に応じて情報処理装置から接続の更新要請が通知されると接続を再確立する接続確立機能と、複数のＨＴＴＰトンネリングによる接続の接続状況を管理し、複数のＨＴＴＰトンネリングによる接続を一つの仮想的なＨＴＴＰトンネリングとしてアプリケーションに認識させる接続管理部と、をコンピュータに実現させるためのプログラムである。
【０１２２】
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるＣＰＵに読み込まれて実行されることにより、コンピュータを上記のリモートサーバ２０として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【０１２３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１２４】
【図１】本発明の第１の実施形態に係る情報処理システムを説明するための説明図である。
【図２】同実施形態に係る情報処理装置およびリモートサーバの構成を説明するためのブロック図である。
【図３】同実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。
【図４】同実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。
【図５Ａ】同実施形態に係る情報処理方法を説明するための流れ図である。
【図５Ｂ】同実施形態に係る情報処理方法を説明するための流れ図である。
【図６】同実施形態に係るリバースコネクションを説明するための説明図である。
【図７】同実施形態に係るリバースコネクションを説明するための説明図である。
【図８】同実施形態に係る情報処理装置のハードウェア構成を説明するためのブロック図である。
【図９Ａ】ＨＴＴＰトンネリングについて説明するための説明図である。
【図９Ｂ】ＨＴＴＰトンネリングについて説明するための説明図である。
【図９Ｃ】ＨＴＴＰトンネリングについて説明するための説明図である。
【図９Ｄ】ＨＴＴＰトンネリングについて説明するための説明図である。
【符号の説明】
【０１２５】
１    情報処理システム
９    プロキシサーバ
１０    情報処理装置
２０    リモートサーバ
１０１，２０１    通信部
１０３，２０７    アプリケーション実行部
１０５    仮想コネクションクライアント部
１０７，２１１    コネクションクライアント部
１０９，２０９    記憶部
１１１，２０３    コネクションサーバ部
２０５    仮想コネクションサーバ部
【図１】
2009230269.tif 000003
【図２】
2009230269.tif 000004
【図３】
2009230269.tif 000005
【図４】
2009230269.tif 000006
【図５Ａ】
2009230269.tif 000007
【図５Ｂ】
2009230269.tif 000008
【図６】
2009230269.tif 000009
【図７】
2009230269.tif 000010
【図８】
2009230269.tif 000011
【図９Ａ】
2009230269.tif 000012
【図９Ｂ】
2009230269.tif 000013
【図９Ｃ】
2009230269.tif 000014
【図９Ｄ】
2009230269.tif 000015