(57)【要約】  サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成し、前記接続制御サーバ装置が、前記アプリケーションクライアント端末との間に第１のコネクションを確立し、前記第１のコネクションに対応するセッションＩＤを含むセッション開設要求を前記接続制御クライアント部に送信し、前記セッションＩＤと前記第１のコネクションの識別子とを対応付けて格納手段に格納し、前記接続制御クライアント部が、前記サーバアプリケーション部との間に第２のコネクションを確立し、前記セッション開設要求に含まれる前記セッションＩＤと、前記第２のコネクションの識別子とを対応付けて格納手段に格納する。
2009093308.tif 000002
【特許請求の範囲】
【請求項１】
サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける接続制御方法であって、
前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するステップと、
前記接続制御サーバ装置が、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間に第１のコネクションを確立し、当該第１のコネクションを識別する第１のコネクション識別子を取得するステップと、
前記接続制御サーバ装置が、前記第１のコネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記接続制御クライアント部に送信するステップと、
前記接続制御サーバ装置が、前記セッションＩＤと前記第１のコネクション識別子とを対応付けて第１のコネクションセッション対応格納手段に格納するステップと、
前記セッション開設要求を受信した前記接続制御クライアント部が、当該接続制御クライアント部と前記サーバアプリケーション部との間に第２のコネクションを確立し、当該第２のコネクションを識別する第２のコネクション識別子を取得するステップと、
前記接続制御クライアント部が、前記セッション開設要求に含まれる前記セッションＩＤと、前記第２のコネクション識別子とを対応付けて第２のコネクションセッション対応格納手段に格納するステップと
を有することを特徴とする接続制御方法。
【請求項２】
前記接続制御クライアント部が、前記サーバアプリケーション部から前記第２のコネクションを介してパケットを受信した場合に、当該第２のコネクションに対応する前記第２のコネクション識別子を取得するステップと、
前記接続制御クライアント部が、前記第２のコネクションセッション対応格納部から前記第２のコネクション識別子に対応する前記セッションＩＤを取得するステップと、
前記接続制御クライアント部が、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するステップと、
前記トンネルヘッダ付パケットを受信した前記接続制御サーバ装置が、当該トンネルヘッダに含まれる前記セッションＩＤを取得し、前記第１のコネクションセッション対応格納手段から、当該セッションＩＤに対応する前記第１のコネクション識別子を取得するステップと、
前記接続制御サーバ装置が、前記第１のコネクション識別子に対応する前記第１のコネクションを用いて前記アプリケーションクライアント端末に前記パケットを送信するステップと
を更に有する請求項１に記載の接続制御方法。
【請求項３】
前記接続制御サーバ装置が、前記アプリケーションクライアント端末から前記第１のコネクションを介してパケットを受信した場合に、当該第１のコネクションに対応する前記第１のコネクション識別子を取得するステップと、
前記接続制御サーバ装置が、前記第１のコネクションセッション対応格納部から前記第１のコネクション識別子に対応する前記セッションＩＤを取得するステップと、
前記接続制御サーバ装置が、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するステップと、
前記トンネルヘッダ付パケットを受信した前記接続制御クライアント部が、当該トンネルヘッダに含まれる前記セッションＩＤを取得し、前記第２のコネクションセッション対応格納手段から、当該セッションＩＤに対応する前記第２のコネクション識別子を取得するステップと、
前記接続制御クライアント部が、前記第２のコネクション識別子に対応する前記第２のコネクションを用いて前記サーバアプリケーション部に前記パケットを送信するステップと
を更に有する請求項１に記載の接続制御方法。
【請求項４】
サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、
前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、
前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
前記コネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、
前記セッションＩＤと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段と
を有することを特徴とする接続制御サーバ装置。
【請求項５】
前記セッションＩＤを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御クライアント部から受信するトンネルヘッダ付パケット受信手段と、
前記トンネルヘッダに含まれる前記セッションＩＤを取得し、前記コネクションセッション対応格納手段から、当該セッションＩＤに対応する前記コネクション識別子を取得するコネクション識別手段と、
前記コネクション識別子に対応する前記コネクションを用いて前記アプリケーションクライアント端末に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段と
を更に有する請求項４に記載の接続制御サーバ装置。
【請求項６】
前記アプリケーションクライアント端末から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、
前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションＩＤを取得するセッション識別手段と、
前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するトンネルヘッダ付パケット送信手段と
を更に有する請求項４に記載の接続制御サーバ装置。
【請求項７】
サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、
前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、
セッションＩＤを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、
前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
前記セッション開設要求に含まれる前記セッションＩＤと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段と
を有することを特徴とする接続制御クライアント装置。
【請求項８】
前記接続制御クライアント部は、
前記サーバアプリケーション部から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、
前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションＩＤを取得するセッション識別手段と、
前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するトンネルヘッダ付パケット送信手段と
を更に有する請求項７に記載の接続制御クライアント装置。
【請求項９】
前記接続制御クライアント部は、
前記セッションＩＤを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御サーバ装置から受信するトンネルヘッダ付パケット受信手段と、
前記トンネルヘッダに含まれる前記セッションＩＤを取得し、前記コネクションセッション対応格納手段から、当該セッションＩＤに対応する前記コネクション識別子を取得するコネクション識別手段と、
前記コネクション識別子に対応する前記コネクションを用いて前記サーバアプリケーション部に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段と
を更に有する請求項７に記載の接続制御クライアント装置。
【請求項１０】
コンピュータを、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置として機能させるプログラムであって、コンピュータを、
前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段、
前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段、
前記コネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段、
前記セッションＩＤと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段、
として機能させるプログラム。
【請求項１１】
コンピュータを、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置として機能させるプログラムであって、コンピュータを、
前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段、
セッションＩＤを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段、
前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段、
前記セッション開設要求に含まれる前記セッションＩＤと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ端末に搭載された特定のアプリケーションのみをインターネット上の不特定多数のクライアント端末に公開する技術に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ、携帯電話機、PDA等の装置は、コンテンツを受け取るためのパーソナル端末として用いられるのが一般的であるが、SNSやブログ等の普及を背景にして今後は個々人がコンテンツを外部に発信するためのサーバ端末として使用されることが多くなる。【０００３】
その場合、上記のサーバ端末にはWebサーバ等のサーバアプリケーションが搭載され、インターネットを介して不特定多数のクライアント端末からのアクセスを受けることになる。【０００４】
更に、パーソナルコンピュータ、携帯電話機、PDA等の装置ばかりでなく、デジタルカメラ、キャッシュレジスタ、情報家電といった装置にも外部からの要求に基づく情報発信のためのサーバアプリケーションが搭載される場合が多くなると考えられる。このように、今後は、ネットワーク上のいたるところにサーバとして機能する機器が存在するようになる。なお、本願に関連し得る先行技術文献として下記の文献１、２がある。
【特許文献１】特開２０００−２１６８２７号公報
【特許文献２】特開２００５−１９８１４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の各種装置がネットワーク機器として使用される場合、セキュリティーを確保する観点から、当該装置は、NAPT（Network Address Port Translation）等の配下にあるプライベートネットワーク内に配置されるのが一般的である。また、これらの装置にグローバルIPアドレスが割り当てられる場合でも、これらの装置は常時ネットワークに接続されるわけではないため、これらの装置にはDHCP（Dynamic Host Configuration Protocol）等の技術によりグローバルIPアドレスが割り当てられるのが一般的である。従って、これらの装置に割り当てられるIPアドレスは、装置がネットワークに切断／接続するたびに変化することになる。【０００６】
上述したようなプライベートネットワークに存在する上記各種装置をサーバ端末として使用する場合、インターネット上の不特定多数のクライアント端末は当該サーバ端末にアクセスすることはできない。また、DHCPによりグローバルIPアドレスが付与されるネットワークに存在するサーバ端末に関しては、動的に変化するグローバルIPアドレスに対応するためにダイナミックDNSを採用することも考えられるが、ダイナミックDNSは反応が遅く、動的に変化するグローバルIPアドレスにリアルタイムに追従することは困難である。【０００７】
上記のようなネットワーク環境はそもそもサーバを設置することに適していないネットワーク環境であり、このようなネットワーク環境に設置されたサーバ端末にインターネットに接続された不特定のクライアント端末からアクセスを行うことは困難である。【０００８】
更に、上述した各種装置は、もともとサーバ端末として使用することを想定していない装置であり、そのような装置をインターネット上の不特定多数のクライアントに公開してしまうことにより発生する危険性の問題もある。【０００９】
例えば、携帯電話機には一般的にデジタルカメラとマイクロホンが搭載されているため、これがネットワークに接続されることによりいわゆるWebカメラとして動作させることが可能である。そして、Webサーバとしての当該携帯電話機には不特定多数のクライアント端末から動画コンテンツが要求されることになる。しかし、携帯電話機にはICカードが搭載されており、財布や鍵の機能を果たしているものが多く、これらの機能がアクセスを受けることにより不正な操作をなされる恐れがある。【００１０】
従って、もともとサーバ端末として使用することを想定していない携帯電話機のような装置をインターネットの不特定多数のクライアントに公開する場合には、当該装置の特定のアプリケーションのみ（例えばWebカメラアプリケーションのみ）をインターネットに公開して、その他のアプリケーションについては公開しないことが必要になる。【００１１】
本発明は上記の点に鑑みてなされたものであり、サーバ端末における特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける接続制御方法であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するステップと、前記接続制御サーバ装置が、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間に第１のコネクションを確立し、当該第１のコネクションを識別する第１のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第１のコネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記接続制御クライアント部に送信するステップと、前記接続制御サーバ装置が、前記セッションＩＤと前記第１のコネクション識別子とを対応付けて第１のコネクションセッション対応格納手段に格納するステップと、前記セッション開設要求を受信した前記接続制御クライアント部が、当該接続制御クライアント部と前記サーバアプリケーション部との間に第２のコネクションを確立し、当該第２のコネクションを識別する第２のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記セッション開設要求に含まれる前記セッションＩＤと、前記第２のコネクション識別子とを対応付けて第２のコネクションセッション対応格納手段に格納するステップとを有することを特徴とする接続制御方法により解決される。【００１３】
上記接続制御方法において、前記接続制御クライアント部が、前記サーバアプリケーション部から前記第２のコネクションを介してパケットを受信した場合に、当該第２のコネクションに対応する前記第２のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記第２のコネクションセッション対応格納部から前記第２のコネクション識別子に対応する前記セッションＩＤを取得するステップと、前記接続制御クライアント部が、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するステップと、前記トンネルヘッダ付パケットを受信した前記接続制御サーバ装置が、当該トンネルヘッダに含まれる前記セッションＩＤを取得し、前記第１のコネクションセッション対応格納手段から、当該セッションＩＤに対応する前記第１のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第１のコネクション識別子に対応する前記第１のコネクションを用いて前記アプリケーションクライアント端末に前記パケットを送信するステップとを更に有することとしてもよい。【００１４】
また、上記接続制御方法において、前記接続制御サーバ装置が、前記アプリケーションクライアント端末から前記第１のコネクションを介してパケットを受信した場合に、当該第１のコネクションに対応する前記第１のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第１のコネクションセッション対応格納部から前記第１のコネクション識別子に対応する前記セッションＩＤを取得するステップと、前記接続制御サーバ装置が、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するステップと、前記トンネルヘッダ付パケットを受信した前記接続制御クライアント部が、当該トンネルヘッダに含まれる前記セッションＩＤを取得し、前記第２のコネクションセッション対応格納手段から、当該セッションＩＤに対応する前記第２のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記第２のコネクション識別子に対応する前記第２のコネクションを用いて前記サーバアプリケーション部に前記パケットを送信するステップとを更に有することとしてもよい。【００１５】
また、本発明は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記コネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、前記セッションＩＤと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段とを有することを特徴とする接続制御サーバ装置として構成することもできる。【００１６】
上記接続制御サーバ装置において、前記セッションＩＤを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御クライアント部から受信するトンネルヘッダ付パケット受信手段と、前記トンネルヘッダに含まれる前記セッションＩＤを取得し、前記コネクションセッション対応格納手段から、当該セッションＩＤに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクション識別子に対応する前記コネクションを用いて前記アプリケーションクライアント端末に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段とを更に有することとしてもよい。【００１７】
また、上記接続制御サーバ装置は、前記アプリケーションクライアント端末から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションＩＤを取得するセッション識別手段と、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するトンネルヘッダ付パケット送信手段とを更に有することとしてもよい。【００１８】
また、本発明は、コンピュータを上記接続制御サーバ装置の各手段として機能させるプログラムとして実現することもできる。【００１９】
また、本発明は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、セッションＩＤを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
前記セッション開設要求に含まれる前記セッションＩＤと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段とを有することを特徴とする接続制御クライアント装置として構成することもできる。【００２０】
上記接続制御クライアント装置において、前記接続制御クライアント部は、前記サーバアプリケーション部から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションＩＤを取得するセッション識別手段と、前記セッションＩＤを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するトンネルヘッダ付パケット送信手段とを更に有することとしてもよい。【００２１】
また、上記接続制御クライアント装置において、前記接続制御クライアント部は、前記セッションＩＤを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御サーバ装置から受信するトンネルヘッダ付パケット受信手段と、前記トンネルヘッダに含まれる前記セッションＩＤを取得し、前記コネクションセッション対応格納手段から、当該セッションＩＤに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクション識別子に対応する前記コネクションを用いて前記サーバアプリケーション部に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段とを更に有することとしてもよい。【００２２】
また、本発明は、コンピュータを上記接続制御クライアント装置の各手段として機能させるプログラムとして実現することもできる。
【発明の効果】
【００２３】
本発明によれば、プライベートネットワーク等に存在するサーバ端末における特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開する技術を提供できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態におけるシステムの全体構成を示す図である。
【図２】接続制御クライアント部とサーバアプリケーション部の組が複数存在する場合の例を示す図である。
【図３】本発明の実施の形態における動作を概要を説明するための図である。
【図４】複数のサーバアプリケーション部と、複数のアプリケーションクライアント端末間でコネクション、セッションを確立し通信を行う場合の例を示す図である。
【図５】トンネル開設動作を説明するための図である。
【図６】接続制御サーバ部２２が、複数の異なる接続制御クライアント部１２、１３からのトンネル開設要求を受け付ける場合の例を示す図である。
【図７】セッションの開設動作を説明するための図である。
【図８Ａ】接続制御サーバ部２２が保持するコネクションセッション対応表の一例を示す図である。
【図８Ｂ】接続制御クライアント部１２が保持するコネクションセッション対応表の一例を示す図である。
【図９】接続制御サーバ部２２及び接続制御クライアント部１２のそれぞれにおけるデータ転送動作を説明するためのフローチャートである。
【図１０】セッション終了動作について説明するための図である。
【図１１】トンネル終了動作について説明するための図である。
【図１２】接続制御サーバ部２２と接続制御クライアント部１２との間の通信に使用されるトンネルヘッダ付パケットのフォーマット例を示す図である。
【図１３】トンネルコントロールパケットのフォーマット例を示す図である。
【図１４】セッションコントロールパケットのフォーマットを示す図である。
【図１５】キープアライブパケットのフォーマット例を示す図である。
【図１６】通信用のトンネルヘッダ付パケットのフォーマット例を示す図である。
【図１７】管理用セッションの例を示す図である。
【図１８】接続制御サーバ部２２の機能構成例を示すブロック図である。
【図１９】接続制御クライアント部１２の機能構成例を示すブロック図である。
【符号の説明】
【００２５】
１  接続制御クライアント装置
１１  サーバアプリケーション部
１２  接続制御クライアント部
２  接続制御サーバ装置
２２  接続制御サーバ部
３  アプリケーションクライアント端末
４  ネットワーク
５  インターネット
６  トンネル
１０１  トンネル生成・通信部
１０２  コネクションセッション制御部
１０３  コネクション生成・通信部
１０４  データ格納部１０４
１１１  セッションＩＤ生成部
１１２  対応表記録部
１１３  セッション開設処理部
１１４  コネクション決定部
１１５  セッション決定部１１５
２０１  トンネル生成・通信部
２０２  コネクションセッション制御部
２０３  コネクション生成・通信部
２０４  データ格納部
１１１  対応表記録部
２１２  セッション開設処理部
２１３  コネクション決定部
２１４  セッション決定部
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して本発明の実施の形態について説明する。【００２７】
（システム構成）
まず、図１を参照して本発明の実施の形態におけるシステムの全体構成について説明する。図１に示すように、本実施の形態のシステムは、接続制御クライアント装置１、接続制御サーバ装置２、及びアプリケーションクライアント端末３を有する。【００２８】
接続制御クライアント装置１は、通常はインターネットに公開されるサーバ装置が設置されることのないネットワーク４に配置されているものとする。ネットワーク４は、例えば、プライベートアドレスが付与されたNAPTの内側のネットワークや、DHCPによりグローバルIPアドレスが配布されるネットワークである。【００２９】
また、接続制御サーバ装置２及びアプリケーションクライアント端末３は、インターネット５上に配置されているものとする。なお、インターネットとはグローバルIPアドレスを付与されているネットワークである。【００３０】
接続制御クライアント装置１は、サーバアプリケーション部１１と接続制御クライアント部１２とを有している。サーバアプリケーション部１１は、インターネット上の不特定多数のアプリケーションクライアント端末に公開しようとするサーバアプリケーションプログラムが接続制御クライアント装置１において実行されることにより実現される機能部である。本実施の形態におけるサーバアプリケーションプログラムは例えばｈｔｔｐサーバアプリケーションプログラムである。【００３１】
接続制御クライアント部１２は、接続制御サーバ装置２との間でトンネル６を形成するとともに、サーバアプリケーション部１１と通信を行う機能部である。接続制御クライアント部１２は、接続制御クライアントプログラムが接続制御クライアント装置１において実行されることにより実現される機能部である。【００３２】
接続制御クライアント装置１は、ＣＰＵ、メモリ、ハードディスク等の記憶装置を備えたコンピュータにプログラムをインストールすることにより実現することができる。また、当該コンピュータは、ソケット通信の機能を備えている。そのようなコンピュータとして、ＰＣ等のコンピュータの他、背景技術において説明した、携帯電話機、PDA、家電等の装置を用いることもできる。上記プログラムは、コンピュータ読み取り可能な記録媒体から上記コンピュータにインストールしてもよいし、ネットワークを介してダウンロードしてインストールすることとしてもよい。【００３３】
図１に示す例では、サーバアプリケーション部１１が接続制御サーバ装置２の内部に存在するが、サーバアプリケーション部１１を接続制御サーバ装置２の外部にサーバアプリケーション装置として備え、当該サーバアプリケーション装置と接続制御サーバ装置２とをネットワークを介して接続する構成としてもよい。この場合、サーバアプリケーション装置は接続制御サーバ装置２のみと通信を行うように設定する。【００３４】
また、図１に示す構成でも、サーバアプリケーション部１１は、接続制御クライアント部１２とのみ通信を行うように設定しておく。例えば、サーバアプリケーション部１１は、ローカルホストからの通信しか受け付けないように設定しておく。【００３５】
接続制御サーバ装置２は、接続制御サーバ部２２を有する。接続制御サーバ部２２は、接続制御クライアント部１２との間でトンネル６を形成するとともに、アプリケーションクライアント端末との間で通信を行う機能部である。具体的には、接続制御サーバ部２２と接続制御クライアント部１２との間のセッションが確立された後に、アプリケーションクライアント端末３から発生するサーバアプリケーション部１１に対する処理要求を受け付け、それをトンネル６を介して接続制御クライアント部１２に送信するとともに、接続制御クライアント部１２及びトンネル６を介してサーバアプリケーション部１１から処理要求に対するデータを受信し、アプリケーションクライアント端末３に送信する。接続制御サーバ装置２も、ＣＰＵ、メモリ、ハードディスク等の記憶装置を備えたコンピュータにプログラムをインストールすることにより実現することができる。また、当該コンピュータは、ソケット通信の機能を備えている。上記プログラムは、コンピュータ読み取り可能な記録媒体から上記コンピュータにインストールしてもよいし、ネットワークを介してダウンロードしてインストールすることとしてもよい。【００３６】
アプリケーションクライアント端末３は、例えばWebブラウザ等を備えた一般的なＰＣ等のコンピュータである。アプリケーションクライアント端末３は、接続制御サーバ装置２に接続することにより、ネットワーク４に存在するサーバアプリケーション部１１に対して処理要求を送信し、処理要求に対するデータを取得することができる。【００３７】
接続制御クライアント部１２は１つのサーバアプリケーション部１１に対して１つ備えられる。上記の例では、接続制御クライアント部１１とサーバアプリケーション部１２の組を１つだけ示しているが、接続制御クライアント部とサーバアプリケーション部の組は複数あってもよい。その場合、図２に示すように、それぞれの接続制御クライアント部１２、１３について、接続制御サーバ装置２との間のトンネル６、７が生成される。【００３８】
上記のシステム構成における動作の概要を図３のシーケンスチャートを参照して説明する。なお、以下の説明では、２つの装置間で形成されるコネクション（トランスポートレイヤのコネクション）はTCP（Transmission Control Protocol）コネクションであるものとする。なお、当該コネクションはTCPコネクションに限られるわけではない。【００３９】
まず、接続制御クライアント部１２が、トンネル開設要求を接続制御サーバ部２２に送信する（ステップ１）。なお、接続制御クライアント装置１が設置されるネットワーク４と、接続制御サーバ装置２が設置されるインターネット５の間にはNAPT等が設置される場合があるが、その場合でも、ネットワーク４からインターネット５に向けての要求の送信と、その要求に対する応答の受信は一般に問題なく行うことができる。【００４０】
接続制御サーバ部２２は、トンネル開設応答を接続制御クライアント部１２に返す（ステップ２）。これにより、接続制御クライアント部１２と接続制御サーバ部２２間でトンネル６が形成される。このトンネル６における通信には、TCP等のトランスポートレイヤプロトコルを使用する。【００４１】
続いて、アプリケーションクライアント端末３は、サーバアプリケーション部１１に処理を要求するために（例えばコンテンツを要求するために）、接続制御サーバ部２２に接続要求を送り（ステップ３）、接続制御サーバ部２２から応答が返されることにより（ステップ４）、接続制御サーバ部２２とアプリケーションクライアント端末３との間にコネクションが開設される。本実施の形態では、このコネクションはTCPコネクションである。なお、TCPでは３ウェイハンドシェークによりコネクションが確立されるが、図３は手順を簡略化して示している。【００４２】
そして、接続制御サーバ部２２は、接続制御クライアント部１２に対してセッション開設要求を送信する（ステップ５）。セッション開設要求を受信した接続制御クライアント部１２は、サーバアプリケーション部１１に対して接続要求を送信し（ステップ６）、サーバアプリケーション部１１が応答を返す（ステップ７）。更に、接続制御クライアント部１２は、セッション開設要求に対する応答を接続制御サーバ部２２に返す（ステップ８）。【００４３】
以上のステップにより、図１に示すように、アプリケーションクライアント端末３と接続制御サーバ部２２との間のコネクション、接続制御サーバ部２２と接続制御クライアント部１２との間のセッション、接続制御クライアント部１２とサーバアプリケーション部１１との間のコネクションが確立され、これらを用いてアプリケーションクライアント端末３がサーバアプリケーション部１１に対して処理要求を送信し、サーバアプリケーション部１１はそれに対応する応答データを返すことができる。つまり、アプリケーションクライアント端末３とサーバアプリケーション部１１との間のデータ通信が行われる（図３のステップ９）。その後、図３には示していないが、セッションの終了動作、及びトンネルの終了動作等が必要に応じて行われる。【００４４】
また、図４に示すように、複数のサーバアプリケーション部と、複数のアプリケーションクライアント端末間でコネクション、セッションを確立し通信を行うことも可能である。なお、図４に示すソケットや公開ポート等については下記の動作詳細説明において説明する。また、図４には、サーバアプリケーション部とアプリケーションクライアント端末間がアプリケーションレイヤ区間であり、接続制御クライアント部と接続制御サーバ部間がトンネル区間であり、サーバアプリケーション部と接続制御クライアント部間がTCP区間であり、アプリケーションクライアント端末と接続制御サーバ部間がTCP区間であることが示されている。【００４５】
なお、本明細書において、セッションとは、接続制御サーバ部２２と接続制御クライアント部１２との間のトンネル６内に張られる仮想通信路であり、１つのアプリケーションクライアント端末３と１つのサーバアプリケーション部１１との間のトランスポートレイヤの接続に対応して１つ生成される通信路である。また、コネクションとは、サーバアプリケーション部１１と接続制御クライアント部１２との間のトランスポートレイヤの仮想通信路である。また、アプリケーションクライアント端末３と接続制御サーバ部２２との間のトランスポートレイヤの仮想通信路もコネクションである。【００４６】
（システムの動作）
以下、図３に示したシーケンスチャートの手順に沿って、図５〜図１１を適宜参照して本実施の形態における接続制御クライアント部１２と接続制御サーバ部２２の動作を詳細に説明する。【００４７】
<初期設定>
図３に示したトンネル開設手順（ステップ１、２）の前提として、接続制御クライアント部１２に、トンネル６の対向となる接続制御サーバ部２２のＩＰアドレスとポート番号、及びサーバアプリケーション部１１のＩＰアドレスとポート番号とを設定しておく（つまり、これらを記憶装置に格納しておく）。また、接続制御サーバ部２２が接続制御クライアント部１２の認証を行うために、接続制御クライアント部１２に認証ＩＤとパスワードを割り当てるとともに、それらを接続制御サーバ部２２に登録しておく。更に、接続制御クライアント部１２には、接続制御サーバ部２２に対して公開することを要求するポート番号（公開ポート番号と呼ぶ）を設定しておく。【００４８】
<トンネル開設動作>
トンネル開設動作を図５を参照して説明する。接続制御クライアント部１２が接続制御クライアント装置１において起動されると、接続制御クライアント部１２は接続制御サーバ部２２に対してトンネル開設要求を送信する（図５のステップ１１）。図５に示すように、トンネル開設要求には付加情報として公開ポート番号が付加される。また、図示していないが、トンネル開設要求には認証ＩＤとパスワードが付加される。なお、認証を行わないこととしている場合には、認証ＩＤとパスワードを付加する必要はない。【００４９】
接続制御サーバ部２２は、必要に応じて接続制御クライアント部１２の認証を行った後、トンネル開設要求に付加された公開ポート番号でポートをパッシブオープン（要求受付モード）する（ステップ１２）。ポなお、ポートをパッシブオープンするとは、接続受付用のソケットを作成し、それに公開ポート番号を割り当てることである。【００５０】
ポートをパッシブオープンできた場合には、接続制御サーバ部２２は、トンネル開設応答を接続制御クライアント部１２に返す（ステップ１３）。これにより接続制御サーバ部２２と接続制御クライアント部１２との間にトンネルが生成される。なお、トンネルを生成するとは、接続制御サーバ部２２と接続制御クライアント部１２のそれぞれにおいて、トンネル通信のための設定が完了したことを意味する。つまり、データに対してカプセル化（トンネル用のヘッダを付加）を施したり、トンネルデータ（カプセル化データ）からトンネル用ヘッダを除去したりする処理を行う設定が完了したことを意味する。【００５１】
接続制御サーバ部２２が接続制御クライアント部１２からトンネル開設要求を受信した後、要求された公開ポート番号が既に使用されているために当該ポート番号でのポートをオープンすることができない場合には、接続制御サーバ部２２は、ポート番号を変えて代替の番号を用いてポートをオープンする。接続制御サーバ部２２は、トンネル開設応答に、オープンしたポート番号を入れて接続制御クライアント１２に返送する。【００５２】
トンネルが開設されると、接続制御クライアント部１２と接続制御サーバ部２２間ではトンネルキープアライブパケットがやり取りされる（ステップ１４）。トンネルキープアライブパケットをやり取りすることにより、お互いの通信の正常性を確認することに加え、後述する互いのコネクションセッション対応表を交換して不一致が発生していないことの確認を行う。【００５３】
さて、図６に示すように、接続制御サーバ部２２は、複数の異なる接続制御クライアント部１２、１３からのトンネル開設要求を受け付け、複数のトンネルを生成することが可能である。図６に示す例では、接続制御クライアント部１２に対してはポート番号：１でポートがパッシブオープンされ、接続制御クライアント部１３に対してはポート番号：２でポートがパッシブオープンされている。【００５４】
この場合、上記のように各接続制御クライアント部の希望通りの公開ポート番号でポートがオープンされる場合の他、複数の異なる接続制御クライアント部が同じポート番号の公開を要求することにより、各接続制御クライアント部の希望通りの公開ポート番号でポートをオープンできない場合があり得る。そのような場合、上述したとおり、接続制御サーバ部２２は、異なる複数の公開ポート番号のうち、１つの公開ポート番号のみを採用し、それ以外の公開ポート番号を採用せず、採用しなかった公開ポート番号に代えて代替のポート番号を割り当て、ポートをオープンする。なお、代替ポート番号が割り当てられた接続制御クライアント部が、トンネル開設応答に含まれる代替ポート番号を許容しない場合には、トンネルは形成されず、トンネル形成処理は終了する。【００５５】
<セッション開設動作>
次に、セッションの開設動作（図３のステップ３〜８）を図７を参照して説明する。接続制御サーバ部２２がポートをパッシブオープンした後、接続制御サーバ部２２はそのポート宛のコネクション開設要求（本実施形態ではTCPのコネクション開設要求）をアプリケーションクライアント端末３から受信する（ステップ２１）。なお、アプリケーションクライアント端末３は、例えばインターネット５上に設置されたディレクトリサーバにアクセスすることにより、所望のサーバアプリケーションのサービスを利用するために接続すべきIPアドレスとポート番号を取得することができる。この場合、接続制御サーバ部２２は、例えばポートをパッシブオープンした後に、自分のIPアドレスと公開ポート番号とを、公開ポート番号に対応するサーバアプリケーション名と対応付けてディレクトリサーバに登録する。【００５６】
コネクション開設要求を受信した接続制御サーバ部２２は、アプリケーションクライアント端末３との通信を行うための個別のソケットを生成する（ステップ２２）。なお、ソケットの生成は接続制御サーバ装置２におけるOS（オペレーティングシステム）の機能により行われるものであり、ソケットの生成に伴って当該ソケットを識別する識別番号が生成される。そして、接続制御サーバ部２２とアプリケーションクライアント端末間では、３ウェイハンドシェークによりTCPコネクションが確立される。【００５７】
また、接続制御サーバ部２２は、上記コネクションに対応する新たなセッションIDを生成し、接続制御サーバ部２２が保持するコネクションセッション対応表にセッションIDとコネクション識別子（ここではアプリケーションクライアント端末３との通信のためのソケットの識別番号）を記録する（ステップ２３）。更に、接続制御サーバ部２２は、接続制御クライアント部１２に対し、当該セッションIDを付加情報として持つセッション開設要求をトンネルを介して送信する（ステップ２４）。【００５８】
セッション開設要求を受信した接続制御クライアント部１２は、サーバアプリケーション部１１との通信のためのソケットを生成し（ステップ２５）、初期設定時に設定されたサーバアプリケーション部１１のIPアドレス／ポート番号に対してコネクション開設要求を送信する（ステップ２６）。これにより、サーバアプリケーション部１１と接続制御クライアント部１２との間で３ウェイハンドシェークを経てTCPコネクションが確立される。【００５９】
サーバアプリケーション部１１と接続制御クライアント部１２との間のコネクションが確立されると、接続制御クライアント部１２は、接続制御クライアント部１２が保持するコネクションセッション対応表にセッションIDとコネクション識別子（ここではサーバアプリケーション部１１との通信のためのソケットの識別番号）を記録する（ステップ２７）。更に、接続制御クライアント部１２は、セッション開設要求の応答として、セッション開設成功を通知するためのセッション開設応答をトンネルを介して接続制御サーバ部２２に返送する（ステップ２８）。【００６０】
接続制御クライアント部１２とサーバアプリケーション部１１との間のコネクション確立が失敗した場合は、接続制御クライアント部１２は、コネクションセッション対応表への情報記録を行うことなく、エラーを示すセッション開設応答を接続制御サーバ部２２に送信する。エラーを受信した接続制御サーバ部２２は、コネクションセッション対応表からステップ２３において記録した情報を削除する。【００６１】
なお、接続制御サーバ部２２は、コネクション開設成功であることを示すセッション開設応答を受信してからコネクションセッション対応表にコネクションIDとセッション識別子を記録することとしてもよい。【００６２】
図８Ａに、接続制御サーバ部２２が保持するコネクションセッション対応表の一例を示す。また、図８Ｂに、接続制御クライアント部１２が保持するコネクションセッション対応表の一例を示す。図８Ａ、８Ｂに示すように、両者ともにセッションＩＤとしては接続制御サーバ部２２がアプリケーションクライアント端末３からコネクション開設要求を受信した際に生成したセッションＩＤが記録される。【００６３】
また、接続制御サーバ部２２が保持するコネクションセッション対応表（図８Ａ）のコネクション識別子としては、接続制御サーバ部２２とアプリケーションクライアント端末３との間のコネクションを識別するための識別子が記録される。本実施形態では、当該コネクション識別子として接続制御サーバ部２２におけるアプリケーションクライアント端末３との間の通信のためのソケットの識別番号が記録される。【００６４】
また、接続制御クライアント部１２が保持するコネクションセッション対応表（図８Ｂ）におけるコネクションＩＤとしては、接続制御クライアント部１２とサーバアプリケーション部１１との間のコネクションを識別するための識別子が記録される。本実施の形態では、当該コネクション識別子として、接続制御クライアント部１２におけるサーバアプリケーション部１１との間の通信のためのソケットの識別番号が記録される。【００６５】
接続制御サーバ部２２と接続制御クライアント部１２がそれぞれ上記のようなコネクションセッション対応表を保持することにより、接続制御サーバ部２２とアプリケーションクライアント端末３間のコネクションと、接続制御クライアント部１２とサーバアプリケーション部１１間のコネクションとが、セッションＩＤを介して結び付けられることになる。【００６６】
<データ転送>
次に、接続制御サーバ部２２及び接続制御クライアント部１２のそれぞれにおけるデータ転送動作について図９に示すフローチャートを参照して説明する。このデータ転送動作は、アプリケーションクライアント端末３とサーバアプリケーション部１１との間でデータ送受信を行うために行われるものである。【００６７】
接続制御サーバ部２２がアプリケーションクライアント端末３からコネクションを介してデータ（パケット）を受信すると（ステップ３１）、接続制御サーバ部２２は自身のコネクションセッション対応表を参照し、当該コネクションに対応するセッションＩＤを取得する。つまり、接続制御サーバ部２２は、パケットの受信に用いられたソケットの識別番号を取得し、その識別番号に対応するセッションＩＤをコネクションセッション対応表から取得する（ステップ３２）。【００６８】
そして、そのパケットに当該セッションＩＤを含むトンネルヘッダを付加し、トンネルヘッダを付加したトンネルヘッダ付パケットを対向の接続制御クライアント部１２に送信する（ステップ３３）。ステップ３２において、コネクション（ソケットの識別番号）に対応するセッションＩＤがコネクションセッション対応表から取得できなかった場合には、接続制御サーバ部２２は、当該アプリケーションクライアント端末３とのコネクションを終了させる。【００６９】
接続制御クライアント部１２は、トンネルヘッダ付パケットを受信し、トンネルヘッダ付パケットからトンネルヘッダを抽出し、トンネルヘッダに含まれるセッションIDを取得する（ステップ３４）。そして、接続制御クライアント部１２は、接続制御クライアント部１２が保持するコネクションセッション対応表を参照し、セッションＩＤに対応するコネクション識別子を取得する（ステップ３５）。【００７０】
コネクション識別子を取得した接続制御クライアント部１２は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子に対応するコネクションに送出する（ステップ３６）。つまり、接続制御クライアント部１２は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子（ソケットの識別番号）に対応するソケットを用いてサーバアプリケーション部１２に送信する。【００７１】
ステップ３５において接続制御クライアント部１２が、セッションＩＤに対応するコネコネクション識別子をコネクションセッション対応表から取得できなかった場合、接続制御クライアント部１２は、接続制御サーバ部２２に対してセッションを終了する要求を送信する。【００７２】
接続制御クライアント部１２がサーバアプリケーション部からコネクションを介してデータ（パケット）を受信すると（ステップ３７）、接続制御クライアント部１２は、自身が保持するコネクションセッション対応表を参照し、当該コネクションに対応するセッションＩＤを取得する（ステップ３８）。つまり、接続制御クライアント部１２は、パケットの受信に用いられたソケットの識別番号に対応するセッションＩＤをコネクションセッション対応表から取得する。【００７３】
そして、接続制御クライアント部１２は、そのパケットに当該セッションＩＤを含むトンネルヘッダを付加し、トンネルヘッダ付パケットを対向の接続制御サーバ部２２に送信する（ステップ３９）。ステップ３８において、コネクション（ソケットの識別番号）に対応するセッションＩＤがコネクションセッション対応表から取得できなかった場合には、接続制御クライアント部１２は、サーバアプリケーション部１１との間のコネクションを終了させる。【００７４】
接続制御サーバ部２２はトンネルヘッダ付パケットを受信する。そして、接続制御サーバ部２２は、トンネルヘッダ付パケットからトンネルヘッダを抽出し、トンネルヘッダに含まれるセッションIDを取得する（ステップ４０）。そして、接続制御サーバ部２２は、接続制御サーバ部２２が保持するコネクションセッション対応表を参照し、セッションＩＤに対応するコネクション識別子を取得する（ステップ４１）。【００７５】
コネクション識別子を取得した接続制御サーバ部２２は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子に対応するコネクションに送出する（ステップ４２）。つまり、接続制御サーバ部２２は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子（ソケットの識別番号）に対応するソケットを用いてアプリケーションクライアント端末３に送信する。【００７６】
ステップ４１において、接続制御サーバ部２２が、セッションＩＤに対応するコネコネクション識別子をコネクションセッション対応表から取得できなかった場合、接続制御サーバ部２２は、接続制御クライアント部１２に対してセッションを終了する要求を送信する。【００７７】
上記のように、このデータ転送に関しては、接続制御サーバ部２２及び接続制御クライアント部２２は対等な関係で動作を行う。【００７８】
<セッション終了動作>
次に、図１０を参照してセッション終了動作について説明する。図１０に示すように、接続制御サーバ部２２がアプリケーションクライアント端末３からコネクションを介して当該コネクションの終了要求を受信した場合（ステップ５１）、接続制御サーバ部２２は、当該コネクションに対応するセッションＩＤをコネクションセッション対応表から取得する。そして、接続制御サーバ部２２は、当該セッションＩＤを含むトンネルヘッダを付加したセッション終了要求を接続制御クライアント部１２に送信する（ステップ５２）。当該セッションＩＤを含むセッション終了要求を受け取った接続制御クライアント部１２は、当該セッションＩＤに対応するコネクション識別子をコネクションセッション対応表から取得し、当該コネクション識別子に対応するサーバアプリケーション部１１とのコネクションを終了させる（ステップ５３）。そして、接続制御クライアント部１２は、セッション終了応答を対向の接続制御サーバ部２２に返送する（ステップ５４）。【００７９】
また、図示していないが、接続制御クライアント部１２がサーバアプリケーション部１１からコネクションを介して当該コネクションの終了要求を受信した場合には、接続制御クライアント部１２は、当該コネクションに対応するセッションＩＤをコネクションセッション対応表から取得する。そして、接続制御クライアント部１２は、当該セッションＩＤを含むトンネルヘッダを付加したセッション終了要求を接続制御サーバ部２２に送信する。当該セッションＩＤを含むセッション終了要求を受け取った接続制御サーバ部２２は、当該セッションＩＤに対応するコネクション識別子をコネクションセッション対応表から取得し、当該コネクション識別子に対応するコネクションを終了させる。そして、接続制御サーバ部２２は、セッション終了応答を対向の接続制御クライアント部１２に返送する。【００８０】
<トンネル終了動作>
次に、図１１を参照してトンネル終了動作について説明する。図１１には、接続制御サーバ部２２が動作を終了する場合におけるトンネル終了動作を示している。【００８１】
接続制御サーバ部２２が動作を終了する場合、動作を終了する前に、接続制御サーバ部２２は、セッションIDを含むトンネルヘッダを付加したトンネル終了要求を接続制御クライアント部１２に送信する（ステップ６１）。当該トンネル終了要求を受信した接続制御クライアント部１２は、開設中の全てのコネクションを終了させた後に（ステップ６２）、トンネル終了応答を対向の接続制御サーバ部２２に返送する（ステップ６３）。そして、接続制御サーバ部２２も全てのコネクションを終了させる（ステップ６４）。【００８２】
上記のように接続制御サーバ部２２から接続制御クライアント部１２にトンネル終了要求が送られた場合には、トンネルが削除された後、接続制御クライアント部１２は再びトンネル開設要求を接続制御サーバ部２２に対して送信する動作を行うようにしてもよい。【００８３】
図示していないが、接続制御クライアント部１２が動作を終了する場合、動作を終了する前に、接続制御クライアント部１２は、トンネルヘッダを付加したトンネル終了要求を接続制御サーバ部２２に送信する。当該トンネル終了要求を受信した接続制御サーバ部２２は、開設中の全てのコネクションを終了させた後に、トンネル終了応答を対向の接続制御クライアント部１２に返送する。そして、接続制御クライアント部１２も全てのコネクションを終了させる。【００８４】
上記のように、接続制御クライアント部１２からトンネル終了要求が接続制御サーバ部２２に対して送られた場合には、トンネルが削除された後に接続制御サーバ部２２は特に何もせず、再度接続制御クライアント部１２からトンネル開設要求を受信するのを待つこととしてよい。【００８５】
<パケットフォーマットについて>
図１２に、接続制御サーバ部２２と接続制御クライアント部１２との間の通信に使用されるトンネルヘッダ付パケットのフォーマット例を示す。【００８６】
図１２に示すように、トンネルヘッダ付パケットのトンネルヘッダはセッションＩＤ、コントロールＩＤ（Ｃｔｌ  ＩＤ）、及びシーケンス番号（ＳＱＣ）を含む。なお、トンネルヘッダは、トンネルを構成する対向装置のＩＰアドレス等も含むが、図１２にはそれらは示されていない。【００８７】
上述したようにセッションＩＤはセッションを識別する識別情報である。特にセッションＩＤが０であるトンネルヘッダ付パケットをコントロールパケットと呼び、コントロールパケットにおいてはコントロールＩＤによりコントロールの種別が決定される。シーケンス番号はトンネルヘッダ付パケットが再送に係るものか等を識別するための番号であり、同じトンネルヘッダ付パケットが送信された回数を示す。【００８８】
図１３に、コントロールパケットの一つであるトンネルコントロールパケットのフォーマット例を示す。このトンネルコントロールパケットは、コントロールＩＤの値に応じてトンネル開設又はトンネル終了の制御に対応し、"ＲＥＡＳＯＮ"により、要求か応答かが識別される。【００８９】
図１４に、コントロールパケットの一つであるセッションコントロールパケットのフォーマット例を示す。このセッションコントロールパケットはコントロールＩＤに応じてセッション開設又はセッション終了の制御に対応し、パケット内のセッションＩＤにより制御対象のセッションが識別され、"ＲＥＡＳＯＮ"により、要求か応答かが識別される。【００９０】
図１５に、キープアライブパケットのフォーマット例を示す。このキープアライブパケットにはコネクションセッション対応表が含まれる。図１６に、通信用のトンネルヘッダ付パケットのフォーマット例を示す。通信用のトンネルヘッダ付パケットでは、セッションＩＤが０ではなく、パケット本体にはアプリケーション用のデータが含まれる。前述したように、コネクションセッション対応表により、セッションＩＤからコネクションが識別され、パケット本体のデータが当該コネクションに送出される。【００９１】
なお、図１７に、コントロールパケットを用いた管理用セッションの例を示す。【００９２】
（装置構成例）
これまでに説明した動作を実現する接続制御サーバ部２２を備える接続制御サーバ装置２は、次のような手段を備えて構成することができる。つまり、当該接続制御サーバ装置は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記コネクションに対応するセッションＩＤを生成し、当該セッションＩＤを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、前記セッションＩＤと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段とを少なくとも備える。【００９３】
また、これまでに説明した動作を実現する接続制御クライアント部１２を備える接続制御クライアント装置１は、次のような手段を備えて構成することができる。つまり、当該接続制御クライアント装置１は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、セッションＩＤを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記セッション開設要求に含まれる前記セッションＩＤと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段とを少なくとも備える。【００９４】
次に、図１８及び図１９を参照して、これまでに説明した動作を行う接続制御サーバ部２２と接続制御クライアント部１２の機能構成例をより具体的に説明する。【００９５】
図１８は、接続制御サーバ部２２の機能構成例を示すブロック図である。図１８に示すように、接続制御サーバ部２２は、トンネル生成・通信部１０１、コネクションセッション制御部１０２、コネクション生成・通信部１０３、及びデータ格納部１０４を有する。また、コネクションセッション制御部１０２は、セッションＩＤ生成部１１１、対応表記録部１１２、セッション開設処理部１１３、コネクション決定部１１４、及びセッション決定部１１５を有する。以下、この構成を持つ接続制御サーバ部２２の動作を説明する。【００９６】
トンネル生成・通信部１０１は、接続制御クライアント部１２から受信するトンネル開設要求に基づき接続制御クライアント部１２との間のトンネルを生成する。更に、トンネル生成・通信部１０１は、接続制御クライアント部１２から受信するトンネル開設要求に付加された公開ポート番号をコネクション生成・通信部１０３に通知する。【００９７】
コネクション生成・通信部１０３は、トンネル生成・通信部１０１から通知された公開ポート番号を用いて接続受付用のポートを開くとともに、アプリケーションクライアント端末３からコネクション開設要求を受信した場合には通信用のソケットを生成し（コネクションを確立し）、そのソケットを用いて当該アプリケーションクライアント端末３との通信を行う。また、コネクション生成・通信部１０３は、生成したコネクションの識別子（本実施形態ではソケットの識別番号）をコネクションセッション制御部１０２に通知する。【００９８】
コネクション生成・通信部１０３が生成した接続受付用ポートがアプリケーションクライアント端末３からコネクション開設要求を受信した場合に、コネクションセッション制御部１０２のセッションＩＤ生成部１１１は、新たにセッションＩＤを生成し、それを対応表記録部１１２及びセッション開設処理部１１３に渡す。【００９９】
対応表記録部１１２は、上記セッションＩＤと、コネクション生成・通信部１０３から通知されるコネクション識別子（ソケットの識別番号）とを対応付けて、データ格納部１０４に格納されているコネクションセッション対応表に記録する。また、コネクション開設処理部１１３は、上記セッションＩＤが付加されたセッション開設要求を生成し、それをトンネル生成・通信部１０１に渡す。トンネル生成・通信部１０１は、当該セッションＩＤが付加されたセッション開設要求をトンネルを介して接続制御クライアント部１２に送出する。【０１００】
接続制御クライアント部１２と接続制御サーバ部２２との間のセッションが確立された後、コネクション生成・通信部１０３がアプリケーションクライアント端末３からパケットを受信すると、コネクション生成・通信部１０３は、受信したパケットとともにパケット受信に用いられたコネクションの識別子をセッション決定部１１５に通知する。セッション決定部１１５は、データ格納部１０４に格納されているコネクションセッション対応表を参照し、当該コネクション識別子に対応するセッションＩＤを取得し、セッションＩＤとパケットをトンネル生成・通信部１０１に渡す。トンネル生成・通信部１０１は、当該セッションＩＤを含むトンネルヘッダを付加したパケットを接続制御クライアント部１２に送信する。【０１０１】
また、トンネル生成・通信部１０１が、接続制御クライアント部１２からトンネルを介してトンネルヘッダ付パケットを受信した場合には、トンネル生成・通信部１０１は、トンネルヘッダに含まれるセッションＩＤとパケットをコネクションセッション制御部１０１のコネクション決定部１１４に渡す。コネクション決定部１１４は、コネクションセッション対応表を参照し、上記セッションＩＤに対応するコネクション識別子を取得し、パケットと当該コネクション識別子をコネクション生成・通信部１０３に渡す。コネクション生成・通信部１０３は、受け取ったコネクション識別子に対応するコネクションを用いてパケットをアプリケーションクライアント端末３に送信する。【０１０２】
次に、接続制御クライアント部１２の機能構成例について説明する。図１９は、接続制御クライアント部１２の機能構成例を示すブロック図である。【０１０３】
図１９に示すように、接続制御クライアント部１２は、トンネル生成・通信部２０１、コネクションセッション制御部２０２、コネクション生成・通信部２０３、及びデータ格納部２０４を有する。また、コネクションセッション制御部２０２は、対応表記録部２１１、セッション開設処理部２１２、コネクション決定部２１３、及びセッション決定部２１４を有する。以下、この構成を持つ接続制御クライアント部１２の動作を説明する。【０１０４】
トンネル生成・通信部２０１は、接続制御サーバ部２２に、公開ポート番号が付加されたトンネル開設要求を送信し、接続制御サーバ部２２との間のトンネルを生成する。【０１０５】
トンネル生成・通信部２０１が、セッションＩＤを含むトンネルヘッダを付加されたセッション開設要求を接続制御サーバ部２２から受信すると、セッションＩＤとセッション開設要求がセッション開設処理部２１２に渡される。セッション開設処理部２１２は、セッションＩＤを対応表記録部２１３に渡す。さらに、セッション開設処理部２１２は、コネクション生成・通信部２０３に対してサーバアプリケーション部１１との間のコネクション開設を要求する。【０１０６】
上記の要求を受けたコネクション生成・通信部２０３は、サーバアプリケーション部１１との間の通信用のソケットを生成し、そのソケットの識別番号をコネクション識別子として取得し、セッション開設処理部２１２に渡す。そして、セッション開設処理部２１２は、当該コネクション識別子を対応表記録部２１３に渡すとともに、セッション開設応答の送信をトンネル生成・通信部２０１に指示し、トンネル生成・通信部２０１はセッション開設応答を接続制御サーバ部２２に送信する。【０１０７】
上記のようにしてセッションＩＤとコネクション識別子を受け取った対応表記録部２１３は、セッションＩＤとコネクション識別子とを対応付けて、データ格納部２０４に格納されたコネクションセッション対応表に記録する。【０１０８】
接続制御クライアント部２１と接続制御サーバ部２２との間のセッションが確立された後、コネクション生成・通信部２０３がサーバアプリケーション部１１からパケットを受信すると、コネクション生成・通信部２０３は、受信したパケットとともにパケット受信に用いられたコネクションの識別子をセッション決定部２１４に通知する。セッション決定部２１４は、データ格納部２０４に格納されているコネクションセッション対応表を参照し、当該コネクション識別子に対応するセッションＩＤを取得し、セッションＩＤとパケットをトンネル生成・通信部２０１に渡す。トンネル生成・通信部２０１は、当該セッションＩＤを含むトンネルヘッダを付加したパケットを生成し、それを接続制御サーバ部２２に送信する。【０１０９】
また、トンネル生成・通信部２０１が、接続制御サーバ部２２からトンネルを介してトンネルヘッダ付パケットを受信した場合には、トンネル生成・通信部２０１は、トンネルヘッダに含まれるセッションＩＤとパケットをコネクションセッション制御部２０２のコネクション決定部２１３に渡す。コネクション決定部２１３は、コネクションセッション対応表を参照し、上記セッションＩＤに対応するコネクション識別子を取得し、パケットと当該コネクション識別子をコネクション生成・通信部２０３に渡す。コネクション生成・通信部２０３は、受け取ったコネクション識別子に対応するコネクションを用いてパケットをサーバアプリケーション部２０３に送信する。【０１１０】
なお、これまでに説明した例では、トランスポートレイヤのコネクションとしてTCPコネクションを例にとって説明したが、トランスポートレイヤのコネクションとしてはTCPコネクションに限られるものではなく、UDPを用いてもよい。UDPの場合、対向装置のＩＰアドレスとポート番号の組をコネクション識別子として用いることができる。例えば、アプリケーションクライアント端末３と接続制御サーバ部２２間のトランスポートレイヤの通信としてUDPを用いる場合、アプリケーションクライアント端末３と接続制御サーバ部２２間のコネクションはアプリケーションクライアント端末３のIPアドレスとポート番号で識別できるので、接続制御サーバ部２２におけるコネクションセッション対応表におけるコネクション識別子としてアプリケーションクライアント端末３のIPアドレスとポート番号の組を使用できる。【０１１１】
本発明の実施の形態によれば、アプリケーションクライアント端末３と接続制御サーバ部２２との間のコネクションと、接続制御サーバ部２２と接続制御クライアント部１２との間のトンネル内のセッションと、接続制御クライアント部１２とサーバアプリケーション部１１との間のコネクションとが互いに関連付けられて１つのリンクを形成し、アプリケーションクライアント端末３とサーバアプリケーション部１１との間でアプリケーションデータの送受信を行うことが可能となる。つまり、特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開することが可能になる。これにより、サーバアプリケーション部１１と接続制御クライアント部１２がプライベートネットワーク内にある場合であっても、インターネット上のアプリケーションクライアント端末３はサーバアプリケーション部１１のアプリケーションサービスを安全に利用できる。また、サーバアプリケーション部１１と接続制御クライアント部１２があるプライベートネットワークから別プライベートネットワークに移動したとしても、アプリケーションクライアント端末３はその移動を意識することなく、インターネットのグローバルIPアドレスを付与された接続制御サーバ装置２にアクセスすることにより、サーバアプリケーション部１１のアプリケーションサービスを利用できる。【０１１２】
本発明は、上記の実施形態に限定されることなく、特許請求の範囲内において種々の変更及び応用が可能である。
【図１】
2009093308.tif 000003
【図２】
2009093308.tif 000004
【図３】
2009093308.tif 000005
【図４】
2009093308.tif 000006
【図５】
2009093308.tif 000007
【図６】
2009093308.tif 000008
【図７】
2009093308.tif 000009
【図８Ａ】
2009093308.tif 000010
【図８Ｂ】
2009093308.tif 000011
【図９】
2009093308.tif 000012
【図１０】
2009093308.tif 000013
【図１１】
2009093308.tif 000014
【図１２】
2009093308.tif 000015
【図１３】
2009093308.tif 000016
【図１４】
2009093308.tif 000017
【図１５】
2009093308.tif 000018
【図１６】
2009093308.tif 000019
【図１７】
2009093308.tif 000020
【図１８】
2009093308.tif 000021
【図１９】
2009093308.tif 000022
【国際調査報告】
2009093308.tif 000023
2009093308.tif 000024
2009093308.tif 000025
2009093308.tif 000026