JP2009230269A - 情報処理装置、情報処理方法、リモートサーバ、情報処理システム - Google Patents

情報処理装置、情報処理方法、リモートサーバ、情報処理システム Download PDF

Info

Publication number
JP2009230269A
JP2009230269A JP2008072372A JP2008072372A JP2009230269A JP 2009230269 A JP2009230269 A JP 2009230269A JP 2008072372 A JP2008072372 A JP 2008072372A JP 2008072372 A JP2008072372 A JP 2008072372A JP 2009230269 A JP2009230269 A JP 2009230269A
Authority
JP
Japan
Prior art keywords
connection
information processing
http tunneling
unit
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008072372A
Other languages
English (en)
Inventor
Norifumi Yoshikawa
典史 吉川
Kazuhiro Shitama
一宏 舌間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008072372A priority Critical patent/JP2009230269A/ja
Priority to EP20090250369 priority patent/EP2104316A1/en
Priority to CN200910119021A priority patent/CN101540770A/zh
Priority to US12/406,739 priority patent/US8838813B2/en
Publication of JP2009230269A publication Critical patent/JP2009230269A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1818Conference organisation arrangements, e.g. handling schedules, setting up parameters needed by nodes to attend a conference, booking network resources, notifying involved parties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】プロキシサーバを介したHTTPトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能な情報処理装置、情報処理方法、リモートサーバ、情報処理システムを提供する。
【解決手段】本発明に係る情報処理装置は、接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介してコンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された接続の解消に応じて接続を複数回更新する接続確立部と、複数のHTTPトンネリングによる接続それぞれの接続状況を管理し、複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続としてアプリケーション実行部に認識させる接続管理部と、を設けた。
【選択図】図1

Description

本発明は、情報処理装置、情報処理方法、リモートサーバ、情報処理システムに関する。
サーバとクライアント機器とを、例えばインターネット越しにリモートアクセスによって接続させる方法として、例えば、HTTPトンネリングという方法を挙げることができる(例えば、特許文献1参照。)。
特開2001−86163号公報
しかしながら、HTTPトンネリングを用いてリモートアクセス越しに接続を確立させるためには、接続確立時に転送データ量を把握しておく必要がある。そのため、HTTPトンネリングを用いてリモートアクセスによる接続を確立させるためには、設定が煩雑になるという問題点があった。
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、リモートサーバ−情報処理装置間のプロキシサーバを介したHTTPトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能な、新規かつ改良された情報処理装置、情報処理方法、リモートサーバ、情報処理システムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、前記接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したHTTPトンネリングによる接続を前記接続対象装置との間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したHTTPトンネリングによる接続を複数回更新する接続確立部と、複数の前記HTTPトンネリングによる接続それぞれの接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、を備える情報処理装置が提供される。
かかる構成によれば、アプリケーション実行部は、接続対象装置との間にHTTPトンネリングによる接続の確立を要請するアプリケーションを実行する。また、接続確立部は、接続対象装置との間で設定可能な最大のコンテンツ長を設定して、接続されているプロキシサーバを介してコンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された接続の解消に応じてコンテンツ長を指定したHTTPトンネリングによる接続を複数回更新する。接続管理部は、複数のHTTPトンネリングによる接続それぞれの接続状況を管理し、複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続としてアプリケーション実行部に認識させる。
前記接続管理部は、前記仮想的なHTTPトンネリングによる接続に関連付けられる接続識別子を管理しており、前記接続確立部が前記コンテンツ長を指定したHTTPトンネリングを更新する際に、前記仮想的なHTTPトンネリングによる接続に関連付けられた前記接続識別子を前記接続確立部に指定し、前記接続確立部は、前記接続管理部から指定された前記接続識別子を用いて、前記HTTPトンネリングの更新を行うようにしてもよい。
前記接続確立部は、前記コンテンツ長を指定したHTTPトンネリングを更新する際に、更新前の前記HTTPトンネリングによる接続で設定された接続制御条件を再度利用して、前記接続の更新を行うようにしてもよい。
上記課題を解決するために、本発明の別の観点によれば、接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションの要請に基づいて、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したHTTPトンネリングによる接続を前記接続対象装置との間に確立するステップと、前記確立した前記HTTPトンネリングによる接続の解消に応じて、前記コンテンツ長を指定したHTTPトンネリングによる接続を更新するステップと、更新前後の前記HTTPトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーションに認識させるステップと、を含む情報処理方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、複数の前記HTTPトンネリングによる接続の接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーション実行部に認識させる接続管理部と、を備えるリモートサーバが提供される。
上記課題を解決するために、本発明の更に別の観点によれば、情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するステップと、設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したHTTPトンネリングによる接続を確立するステップと、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると、前記接続を再確立するステップと、更新前後の前記HTTPトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーションに認識させるステップと、を含む情報処理方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、上記情報処理装置と、上記リモートサーバと、を含む情報処理システムが提供される。
前記仮想的なHTTPトンネリングによる接続は、前記情報処理装置の側から前記リモートサーバの側に向かって接続が確立されたものであり、前記複数のHTTPトンネリングによる接続は、前記リモートサーバの側から前記情報装置の側に向かって接続が確立されたものであってもよい。
本発明によれば、リモートサーバ−情報処理装置間のプロキシサーバを介したHTTPトンネリングによる接続を、転送データ量を把握することなく確立して維持することが可能である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
<HTTPトンネリングによる接続について>
まず、本発明の第1の実施形態に係る情報処理システムについて説明するに先立ち、HTTPトンネリングによる接続について、詳細に説明する。本願発明者らは、上述の課題を解決するに当たって、まず、HTTPトンネリングによる接続について、詳細な検討を行った。以下に、図9A〜図9Dを参照しながら、その検討結果について説明する。図9A〜図9Dは、HTTPトンネリングによる接続を説明するための説明図である。
インターネット越しにサーバ−クライアント機器間でHTTPトンネリングによる接続を確立する方法について考える。この場合に、HTTPトンネリングのPOST側のトランザクションは、コンテンツレングスヘッダ(Content−Length Header)を指定する方法と、チャンクエンコーディング(chanked encoding)を使用する方法のどちらかを用いる必要がある。
この際に、例えば図9Aに示したように、クライアント機器903側の環境(すなわち、クライアント機器903が属しているLAN)にプロキシサーバ905が設置されている場合、HTTP POST側のトランザクションに関して、チャンクエンコーディングの方法はプロキシサーバ905にサポートされていないことが散見される。他方、コンテンツレングスヘッダを用いる方法は、接続(以下、コネクションとも称する。)確立時に予め転送データ量(以下、コンテンツ長とも称する。)を把握しておく必要がある。そのため、HTTPトンネリングのように通信路としてPOSTトランザクションを用いる場合には、コンテンツタイプヘッダを用いる方法は、困難を伴う。
一般にコネクションは、例えば図9Bに示したように、接続をイニシエートする側(例えば、図9Bにおいてはクライアント機器903側)よりも、接続を待ち受ける側(例えば、図9Bにおいてはサーバ901側)の装置の方が、実装条件や実装環境に対する要求が高い場合が多い。例えば、リモートアクセスの場合、サーバ901側にNAT(Network Address Translation)がある場合にはUPnP IGD等のNAT Transversal技術を適用する必要があるが、クライアント機器903側では、NATがあろうとも問題にならないことが多い。
また、クライアント機器903からサーバ901へコネクションを確立する場合を考えると、このような場合では、例えば図9Cに示したように、クライアント機器903のアプリケーションが、サーバ901のアプリケーションに対してコネクションの確立を要請することが多い。すなわち、クライアント機器903のアプリケーションイニシエータ921が、サーバ901のアプリケーションサーバ911に対してコネクションのイニシエートを行う。この場合に、アプリケーションイニシエータ921の動作に伴い、クライアント機器903のコネクションクライアント923が、サーバ901のコネクションサーバ913に対して、実際にコネクションの確立要請を行うこととなる。
このように、アプリケーション動作のイニシエータがコネクションのクライアントとなり、HTTPトランザクションの向きがアプリケーションにおけるコネクションをイニシエートする向きと一致している場合は非常に多い。このような例として、例えば、クライアント機器903がWebブラウザであり、サーバ901がWebサーバである場合や、クライアント機器903がDLNA(Digital Living Network Alliance)ガイドラインにおけるデジタルメディアプレーヤーであり、サーバ901がDLNAガイドラインにおけるデジタルメディアサーバである場合等を挙げることができる。
しかしながら、例えば図9Dに示したように、サーバ901側の設置環境に制約があり、コネクションサーバが設置できず、コネクションクライアント915しか設置できないような場合も存在しうる。このような場合に、クライアント機器903のアプリケーションイニシエータ921がサーバ901のアプリケーションサーバ911にコネクションのイニシエートを要請したとする。しかしながら、この場合には、HTTPトランザクションの向きと、アプリケーションにおいてコネクションをイニシエートする向きとが一致しなくなってしまい、クライアント機器903とサーバ901との間にコネクションは確立できないという問題がある。
かかる問題を解決するために、本願発明者らが鋭意研究を行った結果、以下で説明するような情報処理システムに想到した。
(第1の実施形態)
<情報処理システムについて>
次に、図1を参照しながら、本発明の第1の実施形態に係る情報処理システムについて、詳細に説明する。図1は、本実施形態に係る情報処理システムについて説明するための説明図である。
本実施形態に係る情報処理システム1は、例えば図1に示したように、本実施形態に係る情報処理装置10が属するネットワーク5と、本実施形態に係るリモートサーバ20が属するネットワーク7と、から構成されている。情報処理装置10が属するネットワーク5と、リモートサーバ20が属するネットワーク7とは、インターネット3を介して互いに接続可能である。また、情報処理装置10が属するネットワーク7には、プロキシサーバ(HTTPプロキシ)9が設置されている。
本実施形態に係る情報処理装置10およびリモートサーバ20は、それぞれリモートアクセス機能を有しており、HTTPトンネリング方法を用いて互いに通信することが可能である。
インターネット3は、情報処理装置10とリモートサーバ20とを双方向通信又は一方向通信可能に接続する通信回線網であり、有線/無線を問わない。また、プロキシサーバ9は、ファイアウォールとして機能するHTTPプロキシであって、インターネット3と情報処理装置10との間に設けられている。
情報処理装置10およびリモートサーバ20は、リモートアクセス機能を有する装置であって、これらの装置にインストールされている上位アプリケーションを実行することで、様々な機能を実現することができる。これらの情報処理装置10およびリモートサーバ20は、パーソナルコンピュータやサーバ等のコンピュータ装置であってもよく、テレビジョン受像器、DVD/HDDレコーダ、携帯電話、PDA(Personal Digital Assistant)、デジタルカメラ、家庭用ゲーム機、デジタルビデオカメラ等のネットワークを介した通信機能を有する情報家電であってもよい。また、情報処理装置10およびリモートサーバ20は、契約者が持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、PHS、携帯型映像/音声プレーヤなどであってもよい。また、情報処理装置10およびリモートサーバ20は、DLNAガイドラインに準拠するデジタルメディアサーバ(Digital Media Server:DMS)、デジタルメディアプレーヤー(Digital Media Player:DMP)、デジタルメディアレンダラー(Digital Media Renderer:DMR)、デジタルメディアコントローラ(Digital Media Controller)等であってもよい。
なお、上記情報処理装置10およびリモートサーバ20については、以下で改めて詳細に説明する。
<情報処理装置およびリモートサーバの構成について>
続いて、図2を参照しながら、本実施形態に係る情報処理装置10およびリモートサーバ20の構成について、詳細に説明する。図2は、本実施形態に係る情報処理装置10およびリモートサーバ20の構成を説明するためのブロック図である。
なお、図2に示した例は、情報処理装置10がクライアント機器としてリモートサーバ20に接続する場合を示している。
[情報処理装置10の構成について]
本実施形態に係る情報処理装置10は、例えば図2に示したように、通信部101と、アプリケーション実行部103と、仮想コネクションクライアント部105と、コネクションクライアント部107と、記憶部109と、を主に備える。
通信部101は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、通信装置等から構成されており、ネットワークインターフェースを含む処理部である。この通信部101は、例えば、TCP(Transmission Control Protocol)およびIP(Internet Protocol)の2種類のプロトコルに基づく通信制御を行うことが可能なスタック(stack)である。本実施形態に係る情報処理装置10は、この通信部101を介して、同一のネットワーク内に属する装置または異なるネットワークに属する装置と、通信を行う。
アプリケーション実行部103は、例えば、CPU、ROM、RAM等から構成され、後述する記憶部109に記録されたプログラム等をCPUで実行することにより、上位アプリケーションとして機能する様々な処理を実現する。これらの上位アプリケーションは、まず、本実施形態に係る情報処理装置10から後述するリモートサーバ20に対してコネクションをイニシエートし、確立されたコネクションを利用して様々な処理を実行するものである。
具体的には、アプリケーション実行部103がコネクションのイニシエートを決定すると、その旨が後述する仮想コネクションクライアント部105に通知され、実際のコネクションの確立処理が開始される。
このような上位アプリケーションの一例として、例えば、DLNAガイドラインに準拠した各種制御プログラムを挙げることができる。
接続管理部の一例である仮想コネクションクライアント部105は、例えば、CPU、ROM、RAM等から構成されており、アプリケーション実行部103から伝送されるコネクションのイニシエート要請に基づいて、後述するコネクションクライアント部107に実際のコネクションの確立要請を指示する。また、後述するコネクションクライアント部107によりリモートサーバ20との間にHTTPトンネリングによるコネクションが確立されると、確立されたコネクションの接続状況を管理する。
具体的には、仮想コネクションクライアント部105は、後述するコネクションクライアント部107により確立される、複数のHTTPトンネリングによる接続を、一つの仮想的なHTTPトンネリングによる接続として、アプリケーション実行部103に認識させる。これにより、アプリケーション実行部103は、実際のHTTPトンネリングによる接続がどのように実現されているかを意識することなく、仮想的なHTTPトンネリングに対して各種の指示を行うことが可能となる。
仮想的なHTTPトンネリングによる接続には、固有の接続識別子であるコネクションIDが関連づけられており、仮想コネクションクライアント部105は、このコネクションIDを後述する記憶部109等に記録する。仮想的なHTTPトンネリングによる接続を構成する複数の接続には、同一のコネクションIDが付与されている。
このコネクションIDは、最初にHTTPトンネリングによる接続が確立された際に、情報処理装置10の仮想コネクションクライアント部105が発行する。また、後述するコネクションクライアント部107が、HTTPトンネリングによる接続を更新する際には、仮想コネクションクライアント部105が管理しているコネクションIDをコネクションクライアント部107に通知する。
なお、このコネクションIDは、HTTP POSTのトランザクションだけでなく、HTTP GETのトランザクションに付与されていてもよい。
接続確立部の一例であるコネクションクライアント部107は、例えば、CPU、ROM、RAM等から構成されている。コネクションクライアント部107は、仮想コネクションクライアント部105から伝送されたコネクションの確立要請に基づき、リモートサーバ20に設けられている接続確立部に対して、HTTPトンネリングによるコネクションの確立を要請する。また、リモートサーバ20との間にコネクションが確立されると、確立されたコネクションの維持を行う。なお、これらのコネクションの確立および維持は、通信部101を介して行われる。
コネクションクライアント部107は、リモートサーバ20のコネクションサーバ部203との間でコンテンツ長(Content−Length)を協議して決定し、コンテンツレングスヘッダを指定する方法によってリモートサーバ20との間でHTTPトンネリングによるリモートアクセスを確立する。
また、予め指定したコンテンツ長を超えると、リモートサーバ20との間に確立されたHTTPトンネリングによる接続は解消されるが、コネクションクライアント部107は、リモートサーバ20との間で、コンテンツ長を指定したHTTPトンネリングによる接続を自動的に更新する。この更新の際には、仮想コネクションクライアント部105から通知されたコネクションIDを再度利用する。
リモートサーバ20のコネクションサーバ部203との間で実際のコネクションを確立する際には、双方向認証や通信に利用する暗号鍵等の接続制御条件が決定される。ここで、コネクションクライアント部107は、HTTPトンネリングによる接続を更新する際に、更新前のHTTPトンネリングによる接続の際に決定された接続制御条件を再利用して、接続の更新を行うことが可能である。例えば、接続の更新時には、リモートサーバ20との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用するようにすれば、最初の接続確立時に比べて高速に接続を更新することが可能となる。
記憶部109は、本実施形態に係る情報処理装置10が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。更に、記憶部109には、仮想コンテンツクライアント部105が管理しているコネクションIDが、例えばログ情報のような形式やデータベース等の形式で記録されている。この記憶部109は、通信部101、アプリケーション実行部103、仮想コネクションクライアント部105、コネクションクライアント部107等が、自由に読み書きを行うことが可能である。
なお、上述の説明では、情報処理装置10にコネクションクライアント部107のみが設けられる場合について説明したが、情報処理装置10には、後述するリモートサーバ20に設けられているようなコネクションサーバ部が設けられていても良い。
以上、本実施形態に係る情報処理装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
[リモートサーバ20の構成について]
本実施形態に係るリモートサーバ20は、例えば図2に示したように、通信部201と、コネクションサーバ203と、仮想コネクションクライアント部205と、アプリケーション実行部207と、記憶部209と、を主に備える。
通信部201は、例えば、CPU、ROM、RAM、通信装置等から構成されており、ネットワークインターフェースを含む処理部である。この通信部201は、例えば、TCPおよびIPの2種類のプロトコルに基づく通信制御を行うことが可能なスタックである。本実施形態に係るリモートサーバ20は、この通信部201を介して、同一のネットワーク内に属する装置または異なるネットワークに属する装置と、通信を行う。
接続確立部の一例であるコネクションサーバ部203は、例えば、CPU、ROM、RAM等から構成されている。コネクションクライアント部203は、情報処理装置10の接続確立部から通知されるHTTPトンネリングによるコネクションの確立要請に応じて、情報処理装置10との間に接続を確立する。また、情報処理装置10との間にコネクションが確立されると、確立されたコネクションの維持を行う。なお、これらのコネクションの確立および維持は、通信部201を介して行われる。
コネクションサーバ部203は、情報処理装置10の接続確立部(例えば、コネクションクライアント部107)との間でコンテンツ長(Content−Length)を協議して決定し、コンテンツレングスヘッダを指定する方法によって情報処理装置10との間でHTTPトンネリングによるリモートアクセスを確立する。
また、情報処理装置10のコネクションクライアント部107から伝送されたHTTP POSTのURLの中には、接続識別子の一例であるコネクションIDがクエリ文字列(query string)として記載されている。コネクションサーバ部203は、記載されているコネクションIDを後述する仮想コネクションサーバ部205に伝送する。
また、予め指定したコンテンツ長を超えると、コネクションサーバ部203は、情報処理装置10との間に確立されたHTTPトンネリングによる接続を解消する。情報処理装置10との間に確立されたHTTPトンネリングが解消されると、情報処理装置10は、再度HTTPトンネリングによる接続を要求してくる場合がある。この一旦解消された接続を再度確立する要請(接続更新の要請)がなされた場合、コネクションサーバ部203は、情報処理装置10から送信されたコネクションIDを後述する仮想コネクションサーバ部205に伝送して、仮想コネクションサーバ部205の判断に応じてコネクションの確立処理を行う。
情報処理装置10のコネクションクライアント部107との間で実際のコネクションを確立する際には、双方向認証や通信に利用する暗号鍵等の接続制御条件が決定される。また、HTTPトンネリングによる接続を更新する際に、更新前のHTTPトンネリングによる接続の際に決定された接続制御条件を再利用して、接続の更新を行うことが可能である。例えば、後述する仮想コネクションサーバ部205から、更新要請のあった接続と同一のコンテンツIDが存在した旨が通達された場合には、情報処理装置10との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用してもよい。
接続管理部の一例である仮想コネクションサーバ部205は、例えば、CPU、ROM、RAM等から構成されており、コネクションサーバ部203と情報処理装置10のコネクションクライアント部107との間に確立されたコネクションの接続状況を管理する。
具体的には、仮想コネクションサーバ部205は、コネクションサーバ部203により確立される、複数のHTTPトンネリングによる接続を、一つの仮想的なHTTPトンネリングによる接続として、アプリケーション実行部207に認識させる。これにより、アプリケーション実行部207は、実際のHTTPトンネリングによる接続がどのように実現されているかを意識することなく、仮想的なHTTPトンネリングに対して各種の指示を行うことが可能となる。
また、仮想コネクションサーバ部205は、コネクションサーバ部203から通知されたコネクションIDを、後述する記憶部209等に記録する。このコネクションIDは、コンテンツ長満了に伴うコネクションの終了時から所定時間は、消去されずに記憶部209等に記録されている。コネクションの終了時からの所定時間は、情報処理システム1の処理能力や規模等に応じて、任意の値を設定することが可能であり、例えば、1分間等の値を設定できる。
コネクションサーバ部203から、接続更新の要請があった旨が通達された場合には、仮想コネクションサーバ部205は、新たに通知されたコネクションIDが記憶部209等に記録されているコネクションIDと同一であるか否かを判定する。同一のコネクションIDであると判定された場合には、仮想コネクションサーバ部205は、更新要請のあったコネクションは、コンテンツ長満了に伴う接続解消があった接続が更新されたものであると判定し、同一の仮想的なHTTPトンネリングによる接続に属するものとして取り扱う。また、コンテンツIDが異なっていた場合には、仮想コネクションサーバ部205は、新たな仮想的なHTTPトンネリングによる接続が発生したと判断する。
同一のコンテンツIDが記憶部209に記録されていた場合には、仮想コネクションサーバ部205は、その旨をコネクションサーバ部203に通達する。その結果、上述のように、コネクションサーバ部203は、情報処理装置10との間で双方向認証のみを行うようにし、暗号鍵等は更新前の接続で利用されていたものを再利用してもよい。これにより、情報処理装置10との接続更新に要する時間を、短縮することが可能となる。
アプリケーション実行部207は、例えば、例えば、CPU、ROM、RAM等から構成され、後述する記憶部209に記録されたプログラム等をCPUで実行することにより、上位アプリケーションとして機能する様々な処理を実現する。これらの上位アプリケーションは、まず、本実施形態に係る情報処理装置10から送信されるコネクションのイニシエートを待ち受け、コネクションが確立されると、確立されたコネクションを利用して様々な処理を実行するものである。
このような上位アプリケーションの一例として、例えば、DLNAガイドラインに準拠した各種制御プログラムを挙げることができる。
記憶部209は、本実施形態に係るリモートサーバ20が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。更に、記憶部209には、仮想コンテンツサーバ部205が管理しているコネクションIDが、例えばログ情報のような形式やデータベース等の形式で記録されている。この記憶部209は、通信部201、コネクションサーバ部203、仮想コネクションサーバ部105、アプリケーション実行部207等が、自由に読み書きを行うことが可能である。
なお、上述の説明では、リモートサーバ20にコネクションサーバ部203のみが設けられる場合について説明したが、リモートサーバ20には、情報処理装置10に設けられているようなコネクションクライアント部が設けられていても良い。
以上、本実施形態に係るリモートサーバ20の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
[情報処理装置およびリモートサーバに設けられた各処理部について]
続いて、図3および図4を参照しながら、情報処理装置10およびリモートサーバ20に設けられた各処理部の関係を、レイヤの概念に基づいて説明する。図3および図4は、本実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。
例えば図3に示したように、情報処理装置10のコネクションクライアント部107と、リモートサーバ20のコネクションサーバ部203とは、コンテンツ長を指定したHTTPトンネリングによって接続されている。このコンテンツ長を指定した実際のHTTPトンネリングによる接続を、リアルコネクションと称することとする。図4に示した例では、コネクションクライアント部107−コネクションサーバ部203間で、コンテンツ長がNと決定されている。
コネクションクライアント部107は、コンテンツ長Nが満了してリアルコネクションが解消されると、再度コンテンツ長がNであるリアルコネクションの更新要請をコネクションサーバ部203に通知して、リアルコネクションの更新を行う。これによって、図4に示したように、コネクションクライアント部107−コネクションサーバ部203間には、コンテンツ長がNであるリアルコネクションが複数連続して確立されていることとなる。
コネクションクライアント部107の上位レイヤには、図3に示したように仮想コネクションクライアント部105が設けられており、コネクションクライアント部105の制御を行っている。具体的には、仮想コネクションクライアント部105は、図3および図4に示したような複数のリアルコネクションを束ねて、一つの仮想的なHTTPトンネリングによる接続として取り扱い、アプリケーション実行部103に対して、仮想コネクションが利用可能なコネクションであると認識させている。この仮想的なHTTPトンネリングを、仮想コネクション(ヴァーチャルコネクション)と称することとする。
また、コネクションサーバ部203の上位レイヤには、図3に示したように仮想コネクションサーバ部205が設けられており、コネクションサーバ部203の制御を行っている。具体的には、仮想コネクションサーバ部205は、図3および図4に示したような複数のリアルコネクションを、一つの仮想コネクションによる接続として取り扱い、アプリケーション実行部207に対して、仮想コネクションが利用可能なコネクションであると認識させている。
仮想コネクションクライアント部105の上位レイヤには、図3に示したようにアプリケーション実行部103が設けられており、仮想コネクションサーバ部205の上位レイアには、図3に示したようにアプリケーション実行部207が設けられている。これらのアプリケーション実行部103、207は、最上位のレイヤである。それぞれのアプリケーション実行部で実行されている上位アプリケーションは、下層レイヤである仮想コネクションクライアント部105や仮想コネクションサーバ部205から提供される一つの仮想コネクションが利用可能なコネクションであると認識させられている。従って、アプリケーション実行部は、リアルコネクションがどのように確立されているかを意識することなく、仮想コネクションクライアント部や仮想コネクションサーバ部をコネクションとして利用する。
例えば、最上位レイヤである情報処理装置10のアプリケーション実行部103により、コネクションAPI(Application Program Interface)の中から「Connect」関数が選択されると、アプリケーション実行部103は、下層レイヤである仮想コネクションクライアント部105にコネクションのイニシエートを要請する。仮想コネクションクライアント部105は、アプリケーション実行部103の要請に応じて、仮想コネクションを確立し、アプリケーション実行部103に通知する。
ここで、実際には、仮想コネクションクライアント部105は、更に下層のレイヤであるコネクションクライアント部107に対してリアルコネクションの確立要請を行い、コネクションクライアント部107が、リモートサーバ20の最下層レイヤであるコネクションサーバ部203との間で、リアルコネクションを確立している。
コンテンツ長Nが満了すると、最下層レイヤであるコネクションクライアント部107−コネクションサーバ部203間では、リアルコネクションの更新が行われて、図4に示したような複数のリアルコネクションが存在することとなる。しかしながら、アプリケーション実行部103と、コネクションクライアント部107との間のレイヤに存在しているため、アプリケーション実行部103は、リアルコネクションが更新されていることに気づくことなく、アプリケーションの実行を行うことができる。
このような階層処理は、リモートサーバ20においても同様である。
このように、本実施形態に係る情報処理システム1では、最上位レイヤであるアプリケーションの実行を司る処理部と、最下位レイヤである実際のHTTPトンネリングの確立・維持を司る処理部との間に、中間レイヤとして実際のHTTPトンネリングを管理する処理部を設けている。この中間レイヤが存在することで、最上位レイヤであるアプリケーション実行部は、転送データ量(すなわち、コンテンツ長)を把握することなくコネクションを利用することが可能となる。
なお、本実施形態に係る仮想コネクションクライアント部や仮想コネクションサーバ部といった接続管理部を設けることなくHTTPトンネリングによる接続を実現可能な環境下に、本実施形態に係る情報処理装置10またはリモートサーバ20を設置する場合も考えられる。このような場合には、接続管理部は上述のような処理は行わず、コネクションクライアント部およびコネクションサーバ部から提供されるサービスを、透過的に上位アプリケーションであるアプリケーション実行部に提供するようにすればよい。
<情報処理方法について>
続いて、図5A〜図5Bを参照しながら、本実施形態に係る情報処理方法について詳細に説明する。図5Aおよび図5Bは、本実施形態に係る情報処理方法を説明するための流れ図である。
まず、リモートサーバ20のアプリケーション実行部207は、コネクションAPIの中から「Open」を選択し、コネクションサービスの開始要求をする(ステップS101)。すると、HTTPサーバが起動し(ステップS103)、情報処理装置10から通知される接続確立要求を待ち受ける状態となる。
他方、情報処理装置10のアプリケーション実行部103は、コネクションAPIの中から「Connect」を選択し、コネクションサービスの開始要求をする(ステップS105)。すると、コネクションクライアント部107は、新たにコネクションIDを設定する(ステップS107)。このコネクションIDは、例えば、生成した日時等と関連づけられて、記憶部109に記録される。
次に、コネクションクライアント部107は、チャンクエンコーディングによる方法に対応していないプロキシサーバ9が存在する場合に、リモートサーバ20のコネクションサーバ部203との間で、コンテンツ長(Content−Length)を決定し(ステップS109)、Contet−Length Headerの中に記載する。このコンテンツ長は、情報処理装置10−リモートサーバ20間で設定可能な最大転送量Nに決定される。この最大転送量Nは、なるべく大きな値が望ましいが、大きすぎる値だと、プロキシサーバ9(HTTPプロキシ)に拒否される可能性がある。そのため、適切な値は、実際に試行してみることで決定することができる。
情報処理装置10のコネクションクライアント部107は、HTTP POST requestを、リモートサーバ20のコネクションサーバ部203に対して送信する(ステップS111)。HTTP POST requestのDestination URLには、クエリ文字列を用いて、情報処理装置10が発行したコネクションIDと、情報処理装置10自身を識別するGUID(Global Unique ID)が記載されている。なお、このHTTP POST requestのbodyは、終端させずに送信されている。すると、リモートサーバ20のコネクションサーバ部203は、送信されたHTTP POST requestを受信する(ステップS113)。
次に、情報処理装置10のコネクションクライアント部107は、HTTP GET requestを、リモートサーバ20のコネクションサーバ部203に対して送信する(ステップS115)。HTTP GET RequestのDestination URLにも、クエリ文字列を用いて、情報処理装置10が発行したコネクションIDと、情報処理装置10自身を識別するGUID(Global Unique ID)が記載されている。すると、リモートサーバ20のコネクションサーバ部203は、送信されたHTTP GET requestを受信する(ステップS117)。
リモートサーバ20のコネクションサーバ部203は、受信したURLに含まれるコネクションIDとGUIDの双方が一致しているPOST、GETの対を、一つのHTTPトンネリングを構成するHTTPトランザクションだとして扱う。リモートサーバ20のコネクションサーバ部203は、HTTP GET responceを情報処理装置10に送信するが(ステップS119)、そのbodyを終端させずに送信する。すると、情報処理装置10のコネクションクライアント部107は、送信されたHTTP GET responceを受信する(ステップS121)。
情報処理装置10およびリモートサーバ20は、POST requestのbodyと、GET responceのbodyとを、双方向の通信路として使用する。通信路が確立されると、情報処理装置10のコネクションクライアント部107と、リモートサーバ20のコネクションサーバ部203とは、それぞれ接続処理を行い、双方向認証と、これ以降の通信で使用する暗号鍵の決定とを行う(ステップS123)。このような処理によって、情報処理装置10−リモートサーバ20間に、リアルコネクションが確立される。
リアルコネクションが確立されると、上位レイヤである仮想コネクションクライアント部105および仮想コネクションサーバ部205とがコネクションの接続管理を開始し、アプリケーション実行部103,207に対して、コネクションサービスを提供する(ステップS125)。
確立されたHTTP POST requestを用いたHTTPトンネリングによる通信の結果、POST request bodyでの通信量がNに等しくなる場合が生じる(ステップS127)。このとき、情報処理装置10の仮想コネクションクライアント部105は、アプリケーション実行部103へのコネクションサービスの実行を一旦サスペンドする(ステップS131)。仮想コネクションクライアント部105は、サスペンド中は、アプリケーション実行部103からのコネクションサービス実行依頼は受け付けるものの、実行はレジュームするまで留保する。この動作の結果、アプリケーション実行部103は、サスペンドを意識しない。
仮想コネクションクライアント部105は、HTTPトンネリングを一旦終端する。POST側のHTTPトランザクションについては、特にネットワーク上の動作として何もしなくても、HTTPトランザクションは転送量がNに等しくなった時点で終了している。しかしながら、コネクションクライアント部105は、通信部101を介して、TCP接続を切断してもよい。また、情報処理装置10のコネクションクライアント部105は、POST側トランザクションの中断に伴い、GET側のトランザクションも終了する(ステップS133)。これは、コネクションクライアント部105が、通信部101を介して、TCP接続を切断することで可能である。
なお、チャンクエンコーディングによる方法を使用している場合には、リモートサーバ20が現在送信中のチャンク(chunk)をダミーデータ等で終了させた後、次のチャンクのサイズを0と指定することで終了することができる。チャンクエンコーディングによる方法を使用している場合には、0チャンクの後にTCP接続を切断する必要はないが、TCP接続を切断してもよい。
リモートサーバ20の仮想コネクションサーバ部205は、Content−Length値に達して接続が終端した場合、情報処理装置10と同様に、アプリケーション実行部207へのコネクションサービスをサスペンドする(ステップS131)。なお、仮想コネクションサーバ部205は、確立時に指定された情報処理装置10のGUIDとコネクションIDとを、一定時間記憶しておく。この一定時間値については、仮想コネクションクライアント部105−仮想コネクションサーバ部205間で、予め合意してあるものとする。一定時間レジューム処理(すなわち、接続の更新処理)が行われなかった場合、情報処理装置10の仮想コネクションクライアント部105と、リモートサーバ20の仮想コネクションサーバ部205とは、仮想コネクションは失われたものとして、それぞれのアプリケーション実行部103,207に報告する。
情報処理装置10の仮想コネクションクライアント部105は、上述の一定時間が経過する前に、HTTPトンネリングをレジュームする。すなわち、仮想コネクションクライアント部105は、最初のHTTPトンネリングで使用したコネクションIDを取得して、コネクションクライアント部107に通知する。コネクションクライアント部107は、通知されたコネクションIDと、クライアントのGUIDとを再び利用して、HTTP POST requestをリモートサーバ20に送信する(ステップS135)。このHTTP POST requestのbodyは、終端させずに送信されている。すると、リモートサーバ20のコネクションサーバ部203は、送信されたHTTP POST requestを受信する(ステップS137)。
同様にして、情報処理装置10のコネクションクライアント部107は、HTTP GET requestを、リモートサーバ20のコネクションサーバ部203に対して送信する(ステップS139)。HTTP GET RequestのDestination URLにも、クエリ文字列を用いて、仮想コネクションクライアント部107から通知されたコネクションIDと、情報処理装置10自身を識別するGUID(Global Unique ID)が記載されている。すると、リモートサーバ20のコネクションサーバ部203は、送信されたHTTP GET requestを受信する(ステップS141)。
リモートサーバ20のコネクションサーバ部203は、受信した情報処理装置10のGUIDとコネクションIDとを確認して、HTTP GETおよびPOSTが前回の続きであると認識する。リモートサーバ20のコネクションサーバ部203は、HTTP GET responceを情報処理装置10に送信するが(ステップS143)、そのbodyを終端させずに送信する。すると、情報処理装置10のコネクションクライアント部107は、送信されたHTTP GET responceを受信する(ステップS145)。
情報処理装置10およびリモートサーバ20は、POST requestのbodyと、GET responceのbodyとを、双方向の通信路として使用する。通信路が確立されると、情報処理装置10のコネクションクライアント部107と、リモートサーバ20のコネクションサーバ部203とは、それぞれ同様に接続処理を行い、双方向認証と、これ以降の通信で使用する暗号鍵の決定とを行う(ステップS147)。このような処理によって、情報処理装置10−リモートサーバ20間に、リアルコネクションが確立される。
その後、仮想コネクションクライアント部105および仮想コネクションサーバ部205は、アプリケーション実行部から依頼されていたコネクションサービスの実行を再開する(ステップS149)。
なお、レジューム時(接続の更新時)の接続処理に関しては、いくつかの処理を簡略化することができる。例えば、ステップS147において、双方向認証だけは実行するが、暗号鍵は前回のコネクションと同じものを用いるようにしてもよい。このような処理を行うことで、接続処理を高速に終了させることができる。
このように、本実施形態に係る情報処理方法では、転送データ量(すなわち、コンテンツ長)を把握することなくコネクションを維持して利用することが可能となる。
<リバースコネクションについて>
続いて、図6および図7を参照しながら、本実施形態に係る接続管理部を設けることにより実現可能なリバースコネクションについて、詳細に説明する。図6および図7は、本実施形態に係るリバースコネクションを説明するための説明図である。
本実施形態に係る接続管理部を設けることにより実現可能な機能として、例えば、以下で説明するようなリバースコネクション機能がある。ここで、リバースコネクションとは、アプリケーションが想定しているコネクションの向きと、実際に確立されているHTTPトンネリングによる接続の向きが、互いに逆向きとなっている接続を意味する。
アプリケーションの通信には、通信をイニシエートする側と待ち受ける側の役割が決まっているケースがある。しかしながら、実際のコネクションが確立可能かどうかは、通信に用いる装置の実装やネットワーク環境によってアプリケーションの想定している通りではないこともある。
このような場合で、特に、アプリケーションのイニシエータ側(すなわち、情報処理装置10側)ではリアルコネクションのサーバ側の要件は満たしているが、アプリケーションのサーバ側(すなわち、リモートサーバ20側)ではリアルコネクションのサーバ側要件を満たしていないケースを考える。また、一般に、サーバ側に要求される要件よりも、クライアント側(すなわち、情報処理装置10側)に要求される要件のほうが緩やかである場合が多いため、アプリケーションのサーバ側(すなわち、リモートサーバ20側)では、コネクションのクライアント側の要件は満たしていると仮定する。
上述のようなケースにおいて、例えば図6に示したように、クライアント側(すなわち、情報処理装置10側)に、本実施形態に係るリモートサーバ20が有していたようなコネクションサーバ部111を設け、リモートサーバ側に、本実施形態に係る情報処理装置10が有していたようなコネクションクライアント部211を設けるようにする。その結果、図6に示したように、コネクションクライアント部211からコネクションサーバ部111に向かってリアルコネクションを確立・維持することが可能となる。
また、例えば図7に示したように、アプリケーションのイニシエート側(すなわち、情報処理装置10側)に仮想コネクションクライアント部105を設け、アプリケーションのサーバ側(すなわち、リモートサーバ20側)に仮想コネクションサーバ部205を設ける。各装置におけるアプリケーション実行部103,207にとっては、仮想コネクションクライアント部105および仮想コネクションサーバ部205は、通常のコネクションクライアント部やコネクションサーバ部として認識されることとなる。ここで、仮想コネクションクライアント部105は、仮想コネクションサーバ部205に向かって仮想コネクションを確立したように設定し、アプリケーション実行部に、イニシエート側からサーバ側にコネクションが確立されたように認識させる。
他方、アプリケーション実行部から要請を受けた仮想コネクションクライアント部105および仮想コネクションサーバ部205は、それぞれの下層レイヤに、コネクションサーバ部111と、コネクションクライアント部211とを配置し、リモートサーバ20側から、イニシエータ側である情報処理装置10側に、リアルコネクションを確立させる。その上で、仮想コネクションクライアント部105および仮想コネクションサーバ部205は、この逆向きのリアルコネクションの接続状況を管理するようにする。
このように、本実施形態に係る接続管理部を設けることで、アプリケーション実行部が想定しているコネクションの向きと、実際に確立されているコネクションの向きが逆向きとなってしまう場合であっても、各装置のアプリケーション実行部は、コネクションの向きを意識することなく、通信を行うことが可能となる。
<ハードウェア構成について>
次に、図8を参照しながら、本発明の各実施形態に係る情報処理装置10のハードウェア構成について、詳細に説明する。図8は、本実施形態に係る情報処理装置10のハードウェア構成を説明するためのブロック図である。
情報処理装置10は、主に、CPU301と、ROM303と、RAM305と、ホストバス307と、ブリッジ309と、外部バス311と、インターフェース313と、入力装置315と、出力装置317と、ストレージ装置319と、ドライブ321と、接続ポート323と、通信装置325とを備える。
CPU301は、演算処理装置および制御装置として機能し、ROM303、RAM305、ストレージ装置319、またはリムーバブル記録媒体327に記録された各種プログラムに従って、情報処理装置10内の動作全般またはその一部を制御する。ROM303は、CPU301が使用するプログラムや演算パラメータ等を記憶する。RAM305は、CPU301の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス307により相互に接続されている。
ホストバス307は、ブリッジ309を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス311に接続されている。
入力装置315は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置315は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置10の操作に対応した携帯電話やPDA等の外部接続機器329であってもよい。さらに、入力装置315は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU301に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、この入力装置315を操作することにより、情報処理装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置317は、例えば、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置317は、例えば、情報処理装置10が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置10が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置319は、情報処理装置10の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置319は、CPU301が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
ドライブ321は、記録媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ321は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体327に記録されている情報を読み出して、RAM305に出力する。また、ドライブ321は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体327に記録を書き込むことも可能である。リムーバブル記録媒体327は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等である。また、リムーバブル記録媒体327は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート323は、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等の、機器を情報処理装置10に直接接続するためのポートである。この接続ポート323に外部接続機器329を接続することで、情報処理装置10は、外部接続機器329から直接音響信号データや画像信号データを取得したり、外部接続機器329に音響信号データや画像信号データを提供したりする。
通信装置325は、例えば、通信網331に接続するための通信デバイス等で構成された通信インターフェースである。通信装置325は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置325は、例えば、インターネットや他の通信機器との間で音響信号等を送受信することができる。また、通信装置325に接続される通信網331は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の各実施形態に係る情報処理装置10の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
なお、本発明の各実施形態に係るリモートサーバ20は、本発明の各実施形態に係る情報処理装置10と同様のハードウェア構成を有するため、詳細な説明は省略する。
なお、本発明の各実施形態に係る情報処理装置10は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータを、プロキシサーバを介して接続された接続対象装置と通信可能な情報処理装置として機能させるためのプログラムであって、接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行機能と、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介してコンテンツ長を指定したHTTPトンネリングによる接続を接続対象装置との間に確立するとともに、確立された接続の解消に応じてコンテンツ長を指定したHTTPトンネリングによる接続を複数回更新する接続確立機能と、複数のHTTPトンネリングによる接続それぞれの接続状況を管理し、複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続としてアプリケーションに認識させる接続管理機能と、をコンピュータに実現させるためのプログラムである。
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、コンピュータを上記の情報処理装置10として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
また、本発明の各実施形態に係るリモートサーバ20は、以下に示すような機能を有するプログラムとして提供されることも可能である。このプログラムは、コンピュータを、プロキシサーバに接続された情報処理装置と通信可能なリモートサーバとして機能させるためのプログラムであって、情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行機能と、設定可能な最大のコンテンツ長を情報処理装置に対して通知し、プロキシサーバを介して接続されている情報処理装置との間にコンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された接続の解消に応じて情報処理装置から接続の更新要請が通知されると接続を再確立する接続確立機能と、複数のHTTPトンネリングによる接続の接続状況を管理し、複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとしてアプリケーションに認識させる接続管理部と、をコンピュータに実現させるためのプログラムである。
このコンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるCPUに読み込まれて実行されることにより、コンピュータを上記のリモートサーバ20として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
本発明の第1の実施形態に係る情報処理システムを説明するための説明図である。 同実施形態に係る情報処理装置およびリモートサーバの構成を説明するためのブロック図である。 同実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。 同実施形態に係る情報処理装置およびリモートサーバの構成を説明するための説明図である。 同実施形態に係る情報処理方法を説明するための流れ図である。 同実施形態に係る情報処理方法を説明するための流れ図である。 同実施形態に係るリバースコネクションを説明するための説明図である。 同実施形態に係るリバースコネクションを説明するための説明図である。 同実施形態に係る情報処理装置のハードウェア構成を説明するためのブロック図である。 HTTPトンネリングについて説明するための説明図である。 HTTPトンネリングについて説明するための説明図である。 HTTPトンネリングについて説明するための説明図である。 HTTPトンネリングについて説明するための説明図である。
符号の説明
1 情報処理システム
9 プロキシサーバ
10 情報処理装置
20 リモートサーバ
101,201 通信部
103,207 アプリケーション実行部
105 仮想コネクションクライアント部
107,211 コネクションクライアント部
109,209 記憶部
111,203 コネクションサーバ部
205 仮想コネクションサーバ部

Claims (8)

  1. 接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、
    前記接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したHTTPトンネリングによる接続を前記接続対象装置との間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したHTTPトンネリングによる接続を複数回更新する接続確立部と、
    複数の前記HTTPトンネリングによる接続それぞれの接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
    を備える、情報処理装置。
  2. 前記接続管理部は、前記仮想的なHTTPトンネリングによる接続に関連付けられる接続識別子を管理しており、前記接続確立部が前記コンテンツ長を指定したHTTPトンネリングを更新する際に、前記仮想的なHTTPトンネリングによる接続に関連付けられた前記接続識別子を前記接続確立部に指定し、
    前記接続確立部は、前記接続管理部から指定された前記接続識別子を用いて、前記HTTPトンネリングの更新を行う、請求項1に記載の情報処理装置。
  3. 前記接続確立部は、前記コンテンツ長を指定したHTTPトンネリングを更新する際に、更新前の前記HTTPトンネリングによる接続で設定された接続制御条件を再度利用して、前記接続の更新を行う、請求項2に記載の情報処理装置。
  4. 接続対象装置との間のHTTPトンネリングによる接続の確立を要請するアプリケーションの要請に基づいて、接続対象装置との間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したHTTPトンネリングによる接続を前記接続対象装置との間に確立するステップと、
    前記確立した前記HTTPトンネリングによる接続の解消に応じて、前記コンテンツ長を指定したHTTPトンネリングによる接続を更新するステップと、
    更新前後の前記HTTPトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーションに認識させるステップと、
    を含む、情報処理方法。
  5. 情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、
    設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、
    複数の前記HTTPトンネリングによる接続の接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーション実行部に認識させる接続管理部と、
    を備える、リモートサーバ。
  6. 情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するステップと、
    設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、プロキシサーバを介して接続されている前記情報処理装置との間に前記コンテンツ長を指定したHTTPトンネリングによる接続を確立するステップと、
    確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると、前記接続を再確立するステップと、
    更新前後の前記HTTPトンネリングによる接続の接続状況をそれぞれ管理し、前記更新前後のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングとして前記アプリケーションに認識させるステップと、
    を含む、情報処理方法
  7. リモートサーバとの間のHTTPトンネリングによる接続の確立を要請するアプリケーションを実行するアプリケーション実行部と、
    前記リモートサーバとの間で設定可能な最大のコンテンツ長を設定し、接続されているプロキシサーバを介して前記コンテンツ長を指定したHTTPトンネリングによる接続を前記リモートサーバとの間に確立するとともに、確立された前記接続の解消に応じて前記コンテンツ長を指定したHTTPトンネリングによる接続を複数回更新する接続確立部と、
    複数の前記HTTPトンネリングによる接続それぞれの接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
    を備える情報処理装置と、
    情報処理装置から通知されるHTTPトンネリングによる接続確立要請を待ち受けるアプリケーションを実行するアプリケーション実行部と、
    設定可能な最大のコンテンツ長を前記情報処理装置に対して通知し、前記プロキシサーバを介して接続されている情報処理装置との間に前記コンテンツ長を指定したHTTPトンネリングによる接続を確立するとともに、確立された前記接続の解消に応じて前記情報処理装置から前記接続の更新要請が通知されると前記接続を再確立する接続確立部と、
    複数の前記HTTPトンネリングによる接続の接続状況を管理し、前記複数のHTTPトンネリングによる接続を一つの仮想的なHTTPトンネリングによる接続として前記アプリケーション実行部に認識させる接続管理部と、
    を備えるリモートサーバと、
    を含む、情報処理システム。
  8. 前記仮想的なHTTPトンネリングによる接続は、前記情報処理装置の側から前記リモートサーバの側に向かって接続が確立されたものであり、
    前記複数のHTTPトンネリングによる接続は、前記リモートサーバの側から前記情報装置の側に向かって接続が確立されたものである、請求項7に記載の情報処理システム。
JP2008072372A 2008-03-19 2008-03-19 情報処理装置、情報処理方法、リモートサーバ、情報処理システム Pending JP2009230269A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008072372A JP2009230269A (ja) 2008-03-19 2008-03-19 情報処理装置、情報処理方法、リモートサーバ、情報処理システム
EP20090250369 EP2104316A1 (en) 2008-03-19 2009-02-13 Information processing unit, information processing method, remote server, and information processing system for HTTP Tunneling
CN200910119021A CN101540770A (zh) 2008-03-19 2009-03-18 信息处理单元及其方法、远程服务器和信息处理系统
US12/406,739 US8838813B2 (en) 2008-03-19 2009-03-18 Information processing unit, information processing method, remote server, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008072372A JP2009230269A (ja) 2008-03-19 2008-03-19 情報処理装置、情報処理方法、リモートサーバ、情報処理システム

Publications (1)

Publication Number Publication Date
JP2009230269A true JP2009230269A (ja) 2009-10-08

Family

ID=40790438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008072372A Pending JP2009230269A (ja) 2008-03-19 2008-03-19 情報処理装置、情報処理方法、リモートサーバ、情報処理システム

Country Status (4)

Country Link
US (1) US8838813B2 (ja)
EP (1) EP2104316A1 (ja)
JP (1) JP2009230269A (ja)
CN (1) CN101540770A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504818B2 (en) * 2010-04-15 2013-08-06 Microsoft Corporation Method and system for reliable protocol tunneling over HTTP
JP5845742B2 (ja) * 2011-09-07 2016-01-20 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
CN103166824B (zh) * 2011-12-13 2016-09-28 华为技术有限公司 一种互联方法、装置和系统
US20130212227A1 (en) * 2012-02-09 2013-08-15 Cogent Real-Time Systems Inc. System and method for streaming data via http
CN112468212B (zh) * 2020-11-04 2022-10-04 北京遥测技术研究所 一种全天候无人值守测控站的高可用伺服系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114259A (ja) * 1997-06-13 1999-01-06 Nec Software Ltd 仮想コネクション通信装置及び通信方法
JP2001086163A (ja) * 1999-09-17 2001-03-30 Nec Corp サーバ・クライアント間双方向通信システム
JP2001273211A (ja) * 2000-02-15 2001-10-05 Hewlett Packard Co <Hp> ファイヤウォール内部の装置を外部から制御する方法及び装置
JP2005039820A (ja) * 2003-07-14 2005-02-10 Microsoft Corp ローカル接続変換との仮想接続
JP2006101431A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 通信方法および通信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958251B2 (en) * 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
SG114481A1 (en) * 2000-12-06 2005-09-28 Netrobust Pte Ltd Real-time financial charting system
US7685287B2 (en) * 2002-05-30 2010-03-23 Microsoft Corporation Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US7392316B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Client to server streaming of multimedia content using HTTP

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114259A (ja) * 1997-06-13 1999-01-06 Nec Software Ltd 仮想コネクション通信装置及び通信方法
JP2001086163A (ja) * 1999-09-17 2001-03-30 Nec Corp サーバ・クライアント間双方向通信システム
JP2001273211A (ja) * 2000-02-15 2001-10-05 Hewlett Packard Co <Hp> ファイヤウォール内部の装置を外部から制御する方法及び装置
JP2005039820A (ja) * 2003-07-14 2005-02-10 Microsoft Corp ローカル接続変換との仮想接続
JP2006101431A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 通信方法および通信システム

Also Published As

Publication number Publication date
EP2104316A1 (en) 2009-09-23
US8838813B2 (en) 2014-09-16
CN101540770A (zh) 2009-09-23
US20090240819A1 (en) 2009-09-24

Similar Documents

Publication Publication Date Title
JP4557028B2 (ja) 情報処理装置、情報処理方法、クライアント機器、情報処理システム
JP4569649B2 (ja) 情報処理装置、情報再生装置、情報処理方法、情報再生方法、情報処理システムおよびプログラム
JP5640649B2 (ja) データ通信方法及び情報処理装置
JP5962676B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2007115253A (ja) ホームネットワークでデバイスを独占的に制御するための方法及び装置
WO2006132024A1 (en) Information processing server, remote control system, and remote control method
JP2009230269A (ja) 情報処理装置、情報処理方法、リモートサーバ、情報処理システム
JP4215010B2 (ja) 可変ipアドレス環境下におけるセキュリティアソシエーション継続方法および端末装置
US20050135269A1 (en) Automatic configuration of a virtual private network
JP2003203023A (ja) 情報処理システム、情報処理装置、情報処理方法、及び情報処理ネットワークプログラム
JP2022184168A (ja) 端末装置、サーバ装置、通信方法及びプログラム
JP2005286802A (ja) 通信制御方法及びプログラム、並びに通信制御システム及び通信制御関連装置
JP2011010206A (ja) 通信装置及びその制御方法、並びにプログラム
JP2008099210A (ja) セキュリティプロトコル制御装置及びセキュリティプロトコル制御方法
US20160014242A1 (en) Communication apparatus, communication method, and non-transitory computer-readable medium
JP3840215B2 (ja) 通信装置、方法、機器制御装置、方法、及び、プログラム
JP2009278178A (ja) セキュリティパラメータ配布装置及びセキュリティパラメータ配布方法
JP5718454B2 (ja) ホームネットワークに含まれる機器の機能を制御する方法
JP2010061306A (ja) 情報処理装置、コンテンツ管理サーバ、情報処理方法、接続管理方法および情報処理システム
JP2010081109A (ja) 通信システム、管理装置、中継装置、及びプログラム
WO2018225158A1 (ja) 通信装置、中継装置、情報処理システムおよび通信システム
WO2016205998A1 (zh) 一种数据传输方法、设备及系统
WO2016185616A1 (ja) データ転送処理プログラム、データ転送処理方法及びデータ転送処理装置
JP5415388B2 (ja) 仮想通信路接続システム、制御方法、制御プログラム、第1の端末及び第2の端末
JP3766055B2 (ja) 無線中継装置、無線通信システム及び通信制御プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100824