(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムがインストールされたローカルネットワーク上のクライアント機器と、前記クライアント機器がインターネットを介して接続されるサーバと、を有するインターネット接続サービスに使用されるシステムであって、
前記サーバは、
前記クライアント機器とは独立して前記アプリケーションプログラムに割当てられた仮想ネットワーク上のＩＰアドレスを使用して、このアプリケーションプログラムとの間でトンネリング接続によるＴＣＰ／ＩＰセッションを確立するトンネリング確立部と、
前記アプリケーションプログラムとの間のＴＣＰ/ＩＰセッションを、前記アプリケーションプログラム名及びその仮想ネットワーク上のＩＰアドレスで管理するアプリケーションプログラム管理装置と、
接続要求者から前記インターネット介して、クライアント機器のリソース及び該リソースに対する実行命令を一意に表現するＵＲＬ要求を受け取った場合、このＵＲＬ要求に含まれる前記アプリケーションプログラム名に基づいて、このアプリケーションプログラムに前記ＵＲＬ要求を送り、所定の処理を行わせるとともに、前記実行命令に応じた処理の結果を前記クライアント機器から受信した場合、その処理の結果を前記接続要求者のインターネット接続端末の種類に応じて変換若しくは整形して前記接続要求者に返す接続プロキシ装置と
を有し、
前記クライアント機器には、
このクライアント機器上で所定の処理を行うアプリケーションプログラムと、
このアプリケーションプログラムをインターネット上のサーバを通した仮想ネットワークに接続するための通信モジュールとがインストールされ、
前記通信モジュールは、前記アプリケーションプログラムとこのコンピュータにインストールされたオペレーションシステムのローカル通信プロトコルスタック群との間に介在し、前記アプリケーションプログラム用の仮想ネットワーク上のアドレスであって前記クライアント機器とは独立しているアドレスを保持し、かつ前記アプリケーションプログラムからの仮想ネットワーク宛のパケットをトンネリング処理して前記ローカル通信プロトコルスタックを通じて前記サーバに渡すものであり、前記ローカル通信プロトコルスタック群とは独立した、前記アプリケーションプログラムが仮想ネットワーク通じた通信をするのに必要なプロトコルスタックを備えており、
前記アプリケーションプログラムは、前記通信モジュールから、前記仮想ネットワークを通してこのアプリケーションプログラム宛に送信された前記実行命令を受け取るように構成されており、その実行命令に応じて所定の処理を行い、その処理の結果を前記通信モジュールを介して前記サーバに返すものであり、
アプリケーションプログラム用の仮想ネットワーク上のアドレスは、このアプリケーションがインストールされた前記クライアント機器とは独立しているものである、
ことを特徴とするシステム。
【請求項２】
請求項１記載のシステムにおいて、
前記通信モジュールは、
インターネット上のサーバのグローバルアドレスを記憶しており、
このサーバのグローバルアドレスに基づき、この通信モジュールとサーバとの間にトンネリング接続を確立し、
前記アプリケーションプログラムからの要求パケットを捕捉し、発信元アドレスとして前記アプリケーションプログラム用の仮想ネットワークアドレスを付したものをカプセリングし、前記トンネリング接続を介して前記サーバへ送出すると共に、
前記ローカル通信プロトコルスタックを通して当該通信モジュール宛パケットをディカプセリングすると共に、このディカプセリングしたパケットを前記アプリケーションプログラムに渡す
ものであることを特徴とするシステム。
【請求項３】
請求項１記載のシステムにおいて、
前記通信モジュールは、インターネット上に設けられたトンネル仲介サーバに接続してこの仲介サーバから前記サーバのグローバルアドレスを受け取るものである
ことを特徴とするシステム。
【請求項４】
請求項１記載のシステムにおいて、
前記通信モジュールは、前記インターネット上のサーバから前記アプリケーションプログラム用の仮想ネットワーク上のＩＰアドレスを受け取り保持するものである
ことを特徴とするシステム。
【請求項５】
請求項１記載のシステムにおいて、
前記通信モジュールは、前記インターネット上のサーバから前記アプリケーションプログラム用の仮想ネットワーク接続用のＭＡＣアドレスとＩＰアドレスを受け取り保持するものである
ことを特徴とするシステム。
【請求項６】
請求項１記載のシステムにおいて、
前記通信モジュールは、前記アプリケーションプログラムによって呼び出し可能なライブラリプログラムとして提供されている
ことを特徴とするシステム。
【請求項７】
請求項１記載のシステムにおいて、
前記通信モジュールは、
初期化部を有し、この初期化部は、
サーバとレイヤ２接続する場合には、前記レイヤ２、３、４プロトコルスタックのすべてを生成し、
前記サーバとレイヤ３接続する場合には、レイヤ３および４プロトコルスタックを生成し、レイヤ２プロコルスタックは生成しない
ように構成されていることを特徴とするシステム。
【請求項８】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、
前記通信モジュールから、前記クライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスしてこのファイルを取得する命令を受け取り、それに基づいて前記ファイルを取得し前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項９】
請求項８記載のシステムにおいて、
前記アプリケーションプログラムは、前記取得したファイルを前記通信モジュールに渡す前に所定のサイズに変換するものである
ことを特徴とするシステム。
【請求項１０】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、
前記通信モジュールから、仮想ネットワークを通した前記ファイルの検索命令を受け取り、それに基づいて検索を行い、その検索結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項１１】
請求項１０記載のシステムにおいて、
前記ファイル検索命令には、ファイルに含まれるべき文字列と、検索結果をどのようなフォーマットで出力するかが指定されており、その検索結果を上記所定の形式で送信するものである
ことを特徴とするシステム。
【請求項１２】
請求項１０記載のシステムにおいて、
前記アプリケーションプログラムは、クライアント機器上のあらかじめインデックス化された情報から、検索文字列がマッチするかどうか検索エンジンを使い検索するものである
ことを特徴とするシステム。
【請求項１３】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、
前記通信モジュールから、仮想ネットワークを通した前記ファイルのアップロード命令を受け取り、クライアント機器上のあらかじめ設定されたディレクトリにファイルを出力し、その処理結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項１４】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、仮想ネットワークを通してＶｏＩＰパケットにてＤＴＭＦトーン信号／音声データを受け取り、当該ＤＴＭＦトーン／音声データを解析し、あらかじめ設定されている処理若しくはプログラムを実行し、その実効結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項１５】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、前記通信モジュールから、仮想ネットワーク通したメール検索、メール一覧取得、メール内容取得のいずれかの要求を受け取り、クライアント機器に対して当該命令を実行させ、その結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項１６】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、前記通信モジュールから、前記仮想ネットワークを通したローカルネットワーク上の他の機器に対するアクセス命令を受け取り、当該他の機器にアクセス命令を送信し、その処理の結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
ことを特徴とするシステム。
【請求項１７】
請求項１記載のシステムにおいて、
前記アプリケーションプログラムは、インターネット上のサーバを通した仮想ネットワークに接続するＶｏＩＰプログラムである
ことを特徴とするシステム。
【請求項１８】
請求項８記載のシステムにおいて、
前記アプリケーションプログラムは、クライアント機器をインターネット上のサーバを通した仮想ネットワークに接続させるプロキシである
ことを特徴とするシステム。
【請求項１９】
請求項８記載のシステムにおいて、
前記アプリケーションプログラムは、ＶｏＩＰアプリケーションプログラムであり、ＳＩＰのアドレス管理を必要とするプロトコルを利用し、その際のアドレス管理をトンネリングプロトコルでのＩＰアドレス管理と共用する
ことを特徴とするシステム。
【請求項２０】
請求項１記載のシステムにおいて、
前記サーバは、接続要求者から前記インターネットを介してＵＲＬ要求を受け取り、このＵＲＬ要求に含まれるアプリケーションプログラム名に基づいて、このアプリケーションプログラムに前記ＵＲＬ要求を送り、前記クライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスして所定の処理を行わせ、その処理の結果を前記インターネット側に返す接続プロキシ装置を有するものである
ことを特徴とするシステム。
【請求項２１】
請求項１記載のシステムにおいて、
前記トンネリング確立部は、前記ＴＣＰ／ＩＰによるトンネリング接続を確立する際に、前記アプリケーションプログラム用の仮想ネットワーク上のＩＰアドレスを前記クライアント機器に送信するものである
ことを特徴とするシステム。
【請求項２２】
請求項１記載のシステムにおいて、
前記トンネリング確立部は、前記ＴＣＰ／ＩＰによるトンネリング接続を確立する際に、前記アプリケーションプログラム用の仮想ネットワーク上のＭＡＣアドレスを前記クライアント機器に送信するものである
ことを特徴とするシステム。
【請求項２３】
請求項１記載のシステムにおいて、
前記接続プロキシ装置は、前記接続要求者の接続認証を行う接続認証部を有するものである
ことを特徴とするものであるシステム。
【請求項２４】
請求項１記載のシステムにおいて、
前記接続プロキシ装置は、接続要求者からＵＲＬ要求を、前記アプリケーションプログラムに対する複数の異なる命令のうちの１つに変換する命令変換手段を有する
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４）が普及した現状のインフラ環境の下で、比較的簡易な手段により異なるＬＡＮに属する端末同士を、インターネットを通してかつセキュリティの高い方法で双方向の通信を可能とするための、前記端末にインストールされるコンピュータソフトウエアアプリケーションプログラムに関するものである。
【背景技術】
【０００２】
一般に、インターネットを中心とした公衆ネットワークを通したサービス提供環境においては、全ての情報の価値は、クライアント側ではなく、サーバ側に集まるようになっている。
【０００３】
すなわち、各クライアントである端末機器は、基本的にインターネット上の情報を閲覧するための単なるビューワーにしか過ぎない。また、各クライアントはインターネット側に様々な情報の要求を発しており、インターネット側ではそのような各クライアントの情報を得ることができる。すなわち、全ての情報は、インターネット側に集められ、インターネット側からは定型的な情報が一方的に与えられるに過ぎない。このため、クライアント端末機を製造しているメーカーは付加価値が生み出しづらい状況となっている。
【０００４】
このような状況を変えるためには、アクセス方向を逆行させ、サーバとクライアントの立場を逆転させることが必要である。すなわち、インターネットに接続される家庭内ネットワークがある場合、インターネット側から家庭内ネットワークへのアクセスが開始され、家庭内ネットワーク側からインターネット側へサービスが提供されるような状態を作り出す必要がある。
【０００５】
このためには、ローカルネットワークに接続された機器のそれぞれが、インターネット側からユニークに特定できること、家庭内のルーティングの問題、セキュリティの問題を解決する必要がある。このような課題に対応し、ひとつの解決を見出せる技術として、ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６：第６世代インターネットプロトコル）がある。
【０００６】
しかしながら、現在の日本のキャリアやインターネットサービスプロバイダを取り巻く環境を鑑みると、ＩＰｖ６の普及にはかなりの時間がかかるものと考えられる。例えば、現在使用しているＩＰｖ４の機材償却に最低２年〜３年は必要であり、テスト的なサービスが行われているのみである。
【０００７】
今すぐにメーカーがＩＰｖ６対応ネットワークを実現するには、ＩＳＰレベルのサービスにまで手を出すしかないが、非常にコストがかかることであり、多くのメーカーにとって現実的ではない。家庭内ネットワークの事情が様々で非常に大きく異なることや、キャリアやＩＳＰによって接続の仕組みが大きく異なることもあり、これらの差を吸収して画一的なアプローチでＩＰｖ６環境を実現するための仕組みが必要である。
【０００８】
従来のＩＰｖ４環境下で、ＩＰｖ６ネットワークで実現されるような家庭内ネットワークとインターネットとの間の双方向のアクセスを実現しようとする場合、以下のような問題がある。
【０００９】
例えば、現在のＩＰｖ４環境下においては、自宅にネットワーク家電を設置する場合、自宅ネットワークを通して、インターネットに接続されたルータに繋げて使用する。このため、ネットワーク家電のＩＰアドレスは、プライベートアドレスになってしまい、自宅ネットワーク以外からはアクセスすることはできない。
【００１０】
そこで、従来は、自宅のネットワーク家電にアクセスするために、ネットワーク家電をコントロールする機能を有する専用のルータを使用したり、ネットワーク家電をコントロールするための情報を一度インターネット上に設置されたデータセンターに蓄積し、ネットワーク家電からポーリングを行って取りに行く必要があった。
【００１１】
しかし、専用のルータを使用した場合、汎用性が低くなりコストも嵩む。ポーリングを行ってコントロール情報を取りに行く場合、リアルタイムでのアクセスは行えず、ネットワークやサーバへの負荷も高くなる。
【００１２】
このような課題を解決するため、本出願人が２００５年５月２０日に提出した国際出願ＰＣＴ／ＪＰ２００５／９２８０号（ＷＯ２００５／１１４９２６号公報）に開示されたネットワーク接続方法及び中継装置がある（ＷＯ２００５／１１４９２６号公報は、この言及によりこの明細書に組み込まれる）。この発明によれば、プライベートネットワーク内のコンピュータシステムとインターネット上のＩｎｔｅｒＳｅｒｖｅｒとの間にトンネリング接続のセッションを確立することにより比較的簡易な手段により家庭内ネットワークとインターネット間の双方向の通信が可能になる。
【００１３】
特に、ＷＯ２００５／１１４９２６号公報に開示された中継装置のうち、クライアント機器にプログラムとしてインストールされるものとして、仮想デバイスドライバとして見えるインタフェースを有するものがあり、このような構成によれば、比較的簡易な構成によって上記通信が可能になる。しかしながら、この公報に開示された技術では、クライアント機器にインストールされたＯＳ（オペレーションシステム）を介して通信を行うため、特定のプロトコルスタックが存在しないＯＳの場合、そのプロトコルを使用した通信を行うアプリケーションを用いた通信が行えないということがある。
【００１４】
例えば、ＩＰｖ６プロトコルが存在しないＯＳ環境下においては、ＩＰｖ６を使用して通信を行うアプリケーションは使用できないということが考えられる。
【００１５】
この発明はこのような事情に鑑みてなされたもので、ＯＳ等による特定ネットワーク環境に依存せずに、アプリケーションで特定の通信プロトコルを使用して仮想ネットワークを利用した双方向通信が行え、かつ、そのアプリケーションを外部から直接操作してそのコンピュータ上で所定の処理を行わせるコンピュータソフトウエアを提供することを目的とするものである。
【発明の概要】
【課題を解決するための手段】
【００１６】
上記目的を達成するため、この発明の主要な観点によれば、ローカルネットワーク上のクライアント機器にインストールされたコンピュータソフトウエアプログラムであって、このクライアント機器上で所定の処理を行うアプリケーションプログラムと、このアプリケーションをインターネット上のサーバを通した仮想ネットワークに接続するための通信モジュールとを有し、前記通信モジュールは、前記アプリケーションプログラムとこのコンピュータにインストールされたオペレーションシステムのローカル通信プロトコルスタック群との間に介在し、前記アプリケーションプログラム用の仮想ネットワーク上のアドレスを保持し、かつ前記アプリケーションからの仮想ネットワーク宛のパケットをトンネリング処理して前記ローカル通信プロトコルスタックを通じて前記サーバに渡すものであり、前記ローカル通信プロトコルスタック群とは独立した、前記アプリケーションプログラムが仮想ネットワーク通じた通信をするのに必要なプロトコルスタックを備えており、前記アプリケーションプログラムは、前記通信モジュールから、前記仮想ネットワークを通してこのアプリケーションプログラム宛に送信された命令を受け取るように構成されており、その命令に応じて前記クライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスして所定の処理を行い、その処理の結果を前記通信モジュールを介して上記仮想ネットワーク側に返すものであり、アプリケーションプログラム用の仮想ネットワーク上のアドレスは、このアプリケーションがインストールされた前記クライアント機器とは独立していることを特徴とするコンピュータソフトウエアプログラムが提供される。
【００１７】
ここで、このプログラムは、インターネット上のサーバのグローバルアドレスを記憶しており、このサーバのグローバルアドレスに基づき、この通信モジュールとサーバとの間にトンネリング接続を確立し、前記アプリケーションプログラムからの要求パケットを捕捉し、発信元アドレスとして前記アプリケーションプログラム用の仮想ネットワークアドレスを付したものをカプセリングし、前記トンネリング接続を介して前記サーバへ送出すると共に、前記ローカル通信プロトコルスタックを通して当該通信モジュール宛パケットをディカプセリングすると共に、このディカプセリングしたパケットを前記アプリケーションプログラムに渡すものであることが好ましい。
【００１８】
また、別の１の実施形態においては、この通信モジュールは、インターネット上に設けられたトンネル仲介サーバに接続してこの仲介サーバから前記サーバのグローバルアドレスを受け取るものであるである。
【００１９】
さらなる別の１の実施形態によれば、この通信モジュールは、前記インターネット上のサーバから前記アプリケーションプログラム用の仮想ネットワーク上のＩＰアドレスを受け取り保持するものである。
【００２０】
さらなる別の１の実施形態によれば、前記インターネット上のサーバから前記アプリケーションプログラム用の仮想ネットワーク接続用のＭＡＣアドレスとＩＰアドレスを受け取り保持するものである。
【００２１】
さらなる別の１の実施形態によれば、この通信モジュールは、前記アプリケーションプログラムによって呼び出し可能なライブラリプログラムとして提供されている。
【００２２】
さらなる別の１の実施形態によれば、このプログラムは、初期化部を有し、この初期化部は、サーバとレイヤ２接続する場合には、前記レイヤ２、３、４プロトコルスタックのすべてを生成し、前記サーバとレイヤ３接続する場合には、レイヤ３および４プロトコルスタックを生成し、レイヤ２プロコルスタックは生成しない
ように構成されている。
【００２３】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムは、前記通信モジュールから、仮想ネットワークを通した前記ファイルの取得命令を受け取り、それに基づいて前記ファイルを取得し前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。この場合、前記アプリケーションプログラムは、前記取得したファイルを前記通信モジュールに渡す前に所定のサイズに変換するものであることが好ましい。
【００２４】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムは、前記通信モジュールから、仮想ネットワークを通した前記ファイルの検索命令を受け取り、それに基づいて検索を行い、その検索結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。この場合、前記ファイル検索命令には、ファイルに含まれるべき文字列と、検索結果をどのようなフォーマットで出力するかが指定されており、その検索結果を上記所定の形式で送信するものである。また、前記アプリケーションプログラムは、クライアント機器上のあらかじめインデックス化された情報から、検索文字列がマッチするかどうか検索エンジンを使い検索するものであることがさらに好ましい。
【００２５】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムは、
前記通信モジュールから、仮想ネットワークを通した前記ファイルのアップロード命令を受け取り、クライアント機器上のあらかじめ設定されたディレクトリにファイルを出力し、その処理結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。
【００２６】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムは、仮想ネットワークを通してＶｏＩＰパケットにてＤＴＭＦトーン信号／音声データを受け取り、当該ＤＴＭＦトーン／音声データを解析し、あらかじめ設定されている処理若しくはプログラムを実行し、その実効結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。
【００２７】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムは、前記通信モジュールから、仮想ネットワーク通したメール検索、メール一覧取得、メール内容取得のいずれかの要求を受け取り、クライアント機器に対して当該命令を実行させ、その結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。
【００２８】
さらなる別の１の実施形態によれば、前記コンピュータソフトウエアプログラムにおいて、前記アプリケーションプログラムは、前記通信モジュールから、前記仮想ネットワークを通したローカルネットワーク上の他の機器に対するアクセス命令を受け取り、当該他の機器にアクセス命令を送信し、その処理の結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。
【００２９】
さらなる別の１の実施形態によれば、前記コンピュータソフトウエアプログラムにおいて、前記アプリケーションプログラムは、インターネット上のサーバを通した仮想ネットワークに接続するＶｏＩＰプログラムである。この場合、このアプリケーションプログラムは、クライアント機器をインターネット上のサーバを通した仮想ネットワークに接続させるプロキシであることがこのましい。また、この場合、ＶｏＩＰアプリケーションプログラムであり、ＳＩＰ等のアドレス管理を必要とするプロトコルを利用し、その際のアドレス管理をトンネリングプロトコルでのＩＰアドレス管理と共用するものであることが好ましい。
【００３０】
さらなる別の１の実施形態によれば、前記アプリケーションプログラムにおいて、前記サーバは、接続要求者から前記インターネットを介してＵＲＬ要求を受け取り、このＵＲＬ要求に含まれるアプリケーションプログラム名に基づいて、このアプリケーションプログラムに前記ＵＲＬ要求を送り、前記クライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスして所定の処理を行わせ、その処理の結果を前記インターネット側に返す接続プロキシ装置を有するものである。
【００３１】
この発明の第二の主要な側面によれば、アプリケーションプログラムがインストールされたローカルネットワーク上のクライアント機器と、前記クライアント機器がインターネットを介して接続されるサーバと、を有するインターネット接続サービスに使用される前記サーバであって、前記クライアント機器とは独立して前記アプリケーションプログラムに割当てられた仮想ネットワーク上のＩＰアドレスを使用して、このアプリケーションプログラムとの間でトンネリング接続によるＴＣＰ／ＩＰセッションを確立するトンネリング確立部と、前記アプリケーションプログラムとの間のＴＣＰ/ＩＰセッションを、前記アプリケーションプログラム名及びその仮想ネットワーク上のＩＰアドレスで管理するアプリケーションプログラム管理装置と、接続要求者から前記インターネットを介してＵＲＬ要求を受け取り、このＵＲＬ要求に含まれる前記アプリケーションプログラム名に基づいて、このアプリケーションプログラムに前記ＵＲＬ要求を送り、前記クライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスして所定の処理を行わせ、その処理の結果を前記インターネット側に返す接続プロキシ装置と、を有することを特徴とするサーバが提供される。
【００３２】
この発明の１の実施形態によれば、前記サーバにおいて、前記トンネリング確立部は、前記ＴＣＰ／ＩＰによるトンネリング接続を確立する際に、前記アプリケーションプログラム用の仮想ネットワーク上のＩＰアドレスを前記クライアント機器に送信するものである。
【００３３】
別の１の実施形態によれば、前記サーバにおいて、前記トンネリング確立部は、前記ＴＣＰ／ＩＰによるトンネリング接続を確立する際に、前記アプリケーションプログラム用の仮想ネットワーク上のＭＡＣアドレスを前記クライアント機器に送信するものである。
【００３４】
さらなる別の１の実施形態によれば、前記サーバにおいて、前記接続プロキシ装置は、前記接続要求者の接続認証を行う接続認証部を有するものであることを特徴とするものである。
【００３５】
さらなる別の１の実施形態によれば、前記サーバにおいて、前記接続プロキシ装置は、前記アプリケーションプログラムから受け取った処理の結果を前記接続要求者のインターネット接続端末の種類に応じて変換若しくは整形する出力適正化部を有することを特徴とするものである。
【００３６】
さらなる別の１の実施形態によれば、前記サーバにおいて、前記接続プロキシ装置は、接続要求者からＵＲＬ要求を、前記アプリケーションプログラムに対する複数の異なる命令のうちの１つに変換する命令変換手段を有するものである。
【００３７】
なお、この発明の更なる他の特徴と顕著な効果は次の発明を実施するための最良の形態の項に記載された実施形態及び図面を参照することによって当業者にとって理解される。
【図面の簡単な説明】
【００３８】
【図１】この発明の一実施形態に係るネットワーク構成の例を示す図。
【図２】同じく通信中継モジュールを示す概略構成図。
【図３】同じく通信シーケンスを示すブロック図。
【図４】実施例の概略構成を示す図
【図５】実施例の動作状態を示すための画面図。
【図６】実施例のＶｏＩＰアプリケーション間の通信確立工程を示した工程図。
【図７】実施例の通信経路を示した概念図。
【図８】実施例のＳ−ｎｏｄｅプロキシサーバの概略構成図。
【図９】実施例のＳ−ｎｏｄｅプロキシサーバの動作工程を示す工程図。
【発明を実施するための形態】
【００３９】
以下、この発明の一実施形態を図面を参照して説明する。
【００４０】
図１は、この実施形態に係るネットワーク構成の例を示したものである。
【００４１】
図中１は、ＩＰｖ４（第１の通信プロトコル）で通信を行う各種クライアント機器２が接続されてなるローカルネットワークである。このローカルネットワーク１は例えば各家庭に導入されたＬＡＮによって構成される。また、各クライアント機器２には、ＯＳ（オペレーションシステム）７と、この発明の通信モジュールとしての中継通信モジュール８と、通信を行うアプリケーションプログラム９（例えばインターネットブラウザ）とがインストールされている。
【００４２】
そして、このローカルネットワーク１は、図示しない通信キャリア／ＩＳＰを介してインターネット網４に接続されている。このインターネット網４では、ＩＰｖ４を用いて通信が行なわれるようになっている。
【００４３】
そして、このインターネット網４には、前記ローカルネットワーク１上のネットワーク家電２の通信を制御するＩｎｔｅｒＳｅｒｖｅｒ６（この発明の「サーバ」）が接続されている。このＩｎｔｅｒＳｅｒｖｅｒ６は、後で詳しく説明するように、前記ネットワーク家電２にインストールされたアプリケーションプログラム９と、インターネット網４上若しくは他のホーム／グローバルネットワーク１ａ上の全てのネットワーク家電２ａ、パーソナルコンピュータ２ｂ、サーバ２ｃとの間の接続を仲介する機能を有するものである。
【００４４】
ここで、少なくとも中継通信モジュール８とＩｎｔｅｒＳｅｒｖｅｒ６は、同じメーカー若しくは統一された規格の下に提供若しくは製造されることが意図されており、予め連動するように設計されたものである。そして、中継通信モジュール８には、後で説明するように、ＩｎｔｅｒＳｅｒｖｅｒ６から前記アプリケーションプログラム９用のＩＰｖ４での仮想プライベートアドレス／グローバルアドレスが付与され、ＩＳＰやキャリアを問わず前記ＩｎｔｅｒＳｅｒｖｅｒ６にトンネリング接続によるＴＣＰ／ＩＰセッションが確立されて通信ができるようになっている。
【００４５】
この発明の１つの特徴は、仮想ネットワーク（または実ネットワーク）を、クライアント機器のＯＳを介することなく、前記アプリケーションプログラム９と結びつけ、このアプリケーションプログラム９に、上記ネットワーク家電２に格納されたファイルやこのネットワーク家電が接続されたローカルネットワーク上の他のネットワーク家電に格納されたファイルにアクセスさせることである。このために、具体的には、前記アプリケーションプログラム９自体が仮想ネットワーク（または実ネットワーク）上のＩＰｖ４若しくはＩＰｖ６アドレス、ＭＡＣアドレスを保持することができるようになっている。以下、これを可能にする構成及び動作の一実施例について説明する。
【００４６】
図２は、前記クライアント機器２にインストールされたＯＳ７、中継通信モジュール８及びアプリケーション９を示す機能ブロック図である。なお、この説明においては、本発明の特徴に関する構成のみ図示し説明することとし、その他、当然備えられているべき他の構成については、その図示及び説明を省略する。
【００４７】
図２中、ＯＳ７の部分は、カーネルに含まれるローカル通信プロトコルスタック群を示したもので、ネットワークカードを制御する物理的ネットワークアダプタ（レイヤ１、２）１１と、ルートテーブル１２と、ＩＰレイヤ（レイヤ３）１３と、ＴＣＰレイヤ（レイヤ４）１４とが階層的に構成されている状態を示されている。
【００４８】
一方、前記中継通信モジュール８は、レイヤ２（Ｅｔｈｅｒｎｅｔ（登録商標）  Ｌｉｎｋ）１５、ルートテーブル１６、レイヤ３（ＩＰレイヤ（ＩＰｖ４／ｖ６））１７、レイヤ４（ＴＣＰ／ＵＤＰレイヤ）１８の各プロトコルスタックを、ＲＦＣに準拠する形で前記ＯＳ７とは独立して備えることで、特定ネットワーク環境に依存しないアプリケーションプログラム９の作成を可能にするものである。そして、この中継通信モジュール８は、さらに、トンネリング・アプリケーション１９を有する。このトンネリング・アプリケーション１９の機能は、後で詳しく説明するが、イーサネット（登録商標）リンク層１５から受け取ったパケットをＴＣＰ−Ｏｖｅｒ−ＴＣＰ問題による輻輳、通信帯域低下を防止する処理を行って、トンネリング接続により前記ＩｎｔｅｒＳｅｒｖｅｒ６に送信するものである。なお、図中にはＳＳＬが示されているが、このＳＳＬを備えない構成であってもかまわない。
【００４９】
これら中継通信モジュール８を構成するソフトウエア群はライブラリとして提供され、前記アプリケーションプログラム９により適宜読み出されて、このアプリケーションプログラム９の通信インタフェースとして利用されるようになっている。このようにライブラリ化することで、各アプリケーションプログラム９の改変を最小限にすることが可能になる。
【００５０】
次に図２及び図３を参照してこの通信モジュール８の動作について説明する。
【００５１】
前記アプリケーションプログラム９が立ち上がると、このアプリケーションプログラム９の命令により、前記中継通信モジュール８がメモリに読み込まれる。すると、この中継通信モジュール８は、図３のステップＳ１に示すように、まず、前記トンネリング・アプリケーション１９が、トンネルブローカ２０に接続する。このトンネルブローカ２０は、図示しないアドレスデータベースからトンネル接続を確立する先のＩｎｔｅｒＳｅｒｖｅｒ６を選択し、前記中継通信モジュール８にこのＩｎｔｅｒＳｅｒｖｅｒ６のＩＰｖ４アドレスを通知する。このことで、この中継通信モジュール８はＩｎｔｅｒＳｅｒｖｅｒ６を識別可能になり、ユーザ認証を行った後（ステップＳ２）、ＩｎｔｅｒＳｅｒｖｅｒ６から受け取った前記アプリケーション用ＭＡＣアドレスやＩＰアドレスを用いてトンネリングセッションを確立し通信を行うことができる（ステップＳ３）。
【００５２】
すなわち、前記アプリケーション９が立ち上げられ、前記中継通信モジュール８がＩｎｔｅｒＳｅｒｖｅｒ６に接続すると、接続確立のための認証が行われ、これに基づいてＩｎｔｅｒＳｅｒｖｅｒ６からこの通信モジュール８に対して、前記アプリケーションプログラム９用の仮想プライベートネットワーク用のＭＡＣアドレスおよびＩＰアドレスの割り当てが行われる（このＭＡＣアドレス及びＩＰ アドレスは前記トンネルブローカ２０から割り当てられても良い）。このＭＡＣアドレス及びＩＰアドレスは、前記中継通信モジュール８によってメモリにデータとして保持される。
【００５３】
なお、一の実施形態によれば、ＩｎｔｅｒＳｅｒｖｅｒ６側のプログラムは、前記アプリケーションプログラム９から見た場合、仮想ネットワーク上の１つのハブ（ＨＵＢ）のように見える。すなわち、ＩｎｔｅｒＳｅｒｖｅｒ６は、グループ毎にハブを割り当てるように構成されており、本発明では、この割り当てをグループ化と呼んでいる。なお、ＩｎｔｅｒＳｅｒｖｅｒ６が複数ある場合において、同じ仮想プライベートネットワークに属するべきアプリケーションプログラム９若しくはネットワーク端末２が別々のＩｎｔｅｒＳｅｒｖｅｒ６に接続されることも考えられるが、この場合には、複数のＩｎｔｅｒＳｅｒｖｅｒ６若しくは複数のサーバプログラム（ハブサーバ）をまとめて管理するハブ・ボーンサーバ２１により、接続がルーティングされるようになっていることが好ましい。以下、このような接続をＨＵＢ接続（若しくは「レイヤ２接続」）と称する。
【００５４】
上記のレイヤ２接続に対して、この中継通信モジュール８は、前記ＩｎｔｅｒＳｅｒｖｅｒ６とＰＰＰ接続（若しくは「レイヤ３接続」）することもきるように構成されている。上記レイヤ２接続とレイヤ３接続の切り替えは、図２に２３で示す初期化部によって実行される。この初期化部２３は、前記アプリケーションプログラム９から渡されたレイヤ２接続かレイヤ３接続かを示す引数に基づき、初期化プロセスを実行する。この初期化プロセスでは、たとえば、この引数に応じて所定のトンネルブローカ２０およびＩｎｔｅｒＳｅｒｖｅｒ６が選択され、接続確立が行われる。また、上記初期化部２３は、上記引数に応じて、レイヤ２接続の場合には、前記レイヤ２、３、４プロトコルスタックのすべてを生成し、レイヤ３接続の場合には、レイヤ３および４プロトコルスタックを生成してレイヤ２プロコルスタックは生成しないように動作する。
【００５５】
また、レイヤ２接続において、ＭＡＣアドレスに関しては、本出願人が前に出願した国際出願ＰＣＴ／ＪＰ２００５／９２８０号（ＷＯ２００５／１１４９２６号公報）に開示されたネットワーク接続方法及び中継装置では、擬似的に２つのＭＡＣアドレスを用い、ＭＡＣアドレスの操作を行っていたが、本実施形態では、このような処理は不要である。
【００５６】
すなわち、国際出願ＰＣＴ／ＪＰ２００５／９２８０号では、仮想デバイスドライバとして見えるインタフェースを有するものであり、この仮想デバイスにはすべて同一のＭＡＣアドレスが割り当てられていたため、必要に応じてパケット上のＭＡＣアドレスの書き換えを行うことにより、ＭＡＣアドレスのユニーク性を確保するようにしていた。これに対して、本実施形態の中継通信モジュール８は実インタフェースと同様の動作をするので、前記仮想イーサデバイスのようなＭＡＣアドレス書換えは不要である。つまり、中継通信モジュール８はＩｎｔｅｒＳｅｒｖｅｒ６から取得したＭＡＣアドレスを自身にそのまま割当て、ＡＲＰ要求・応答処理を実インタフェースと同じく行うものである。
【００５７】
すなわち、この発明によれば、前記ローカルネットワーク上のクライアント機器（ネットワーク家電２等）にインストールされたアプリケーションプログラム９を、インターネット上のサーバ（ＩｎｔｅｒＳｅｒｖｅｒ６）を通した仮想ネットワークに接続するために、前記クライアント機器にインストールされる中継通信モジュール８がまず提供される。この中継通信モジュール８は、前記アプリケーションプログラム９とこのコンピュータにインストールされたＯＳ７のローカル通信プロトコルスタック群（１１〜１４）との間に介在し、前記アプリケーションプログラム９用の仮想ネットワーク上のアドレスを保持し、かつ前記アプリケーションプログラム９からの仮想ネットワーク宛のパケットをトンネリング処理して前記ローカル通信プロトコルスタック（１１〜１４）を通じて前記ＩｎｔｅｒＳｅｒｖｅｒ６に渡すものである。そして、この中継通信モジュール８は、前記ローカル通信プロトコルスタック群（１１〜１４）とは独立した、前記アプリケーションプログラム９が仮想ネットワーク通じた通信をするのに必要なレイヤ２、３、４プロトコルスタック（１５〜１８）を備えている。
【００５８】
このような構成によれば、ＯＳ７のローカル通信プロトコルスタック（１１〜１４）とは独立したレイヤ２、３、４のプロトコルスタックを保持しているから、ＯＳ等による特定ネットワーク環境に依存せずに通信できるネットワークアプリケーション（アプリケーションプログラム９）を作成できる。すなわち、特定のプロトコルスタックが存在しないＯＳ上であっても、そのプロトコルを使用したアプリケーションソフトを実現することができる。例えば、ＩＰｖ６プロトコルが存在しないＯＳ環境下であっても、アプリケーションソフト単位でＩＰｖ６を使ったアプリケーションを作成することができるものである。
【００５９】
さらに言い換えると、前記アプリケーション９自体が本実施形態の中継通信モジュール８と一体となって、このクライアント機器（のインタフェース）とは独立した独自のＩＰアドレスを持つあたかも１つのデバイスとして実現できることになる。
【００６０】
次に、図４以下を参照して、この実施形態に示された通信モジュール８およびアプリケーションプログラム９の実施例を説明する。
【００６１】
この実施形態では、アプリケーションプログラムとして、「Ｓ−ｎｏｄｅサーバメインモジュール４１」がインストールされている。このＳ−ｎｏｄｅサーバメインモジュール４１は独自にＶＰＮトンネリング接続を終端し、クライアント機器とは独立したＩＰアドレスを保持するようになっている。この能力は、上述したように、前記通信モジュール８によって実現される。そして、このＳ−Ｎｏｄｅサーバモジュール４１は、このプログラムがインストールされているＰＣの内部のリソースや、ＰＣの所属している家庭内ＬＡＮに存在している様々なネットワークデバイスに、さまざまな形でアクセス可能になっている。
【００６２】
上記アクセス能力は図に４２で示すＡＰＩという形でＨＴＴＰプロトコルを仲介して達成される。すなわち、この実施形態ではクライアント機器上に存在しているファイル検索のためのＡＰＩ（ファイル検索モジュール）、ＰＣ上のファイルをアクセスしまた取得するためのＡＰＩ（ファイルアップロードモジュール）、ＰＣ上に存在する画像ファイルに対して、拡大縮小を行うＡＰＩ（画像拡大縮小モジュール）、ＶｏＩＰソフトフォンを実現するＡＰＩ（ＶｏＩＰモジュール）、ＶｏＩＰモジュールと連携して音声信号等を認識するＤＴＭＦ音声認識モジュールがインストールされている。また、家庭ＬＡＮ上に存在するＮＡＳサーバへのアクセスをするためのＡＰＩ（家庭内のＬＡＮに所属しているネットワークデバイスに対するアクセスはＳ−Ｎｏｄｅサーバ自体がプロトコル変換などを行うＰＲＯＸＹのように動作することでこれを実現する。）、家庭ＬＡＮ上に存在するＤＬＮＡ対応などのマルチメディアデバイスにアクセスするためのＡＰＩ（マルチメディアデバイスアクセスモジュール）がインストールされていても良い。また、これらの機能は「プラグイン」として実装可能なため、新たな機能を随時追加することが可能となっている。そして、Ｓ−ｎｏｄｅサーバメインモジュールは、受け取った命令に応じてそれぞれのＡＰＩを使用して命令に基づく処理を実行するようになっている。
【００６３】
例えば、前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール８から、仮想ネットワークを通した前記ファイルの取得命令を受け取った場合、前記ファイル取得モジュールにより当該クライアント機器に格納された目的のファイルを取得し、前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。なお、ここで前記命令に、前記取得したファイルを前記通信モジュールに渡す前に所定のサイズに変換する命令が含まれている場合には、前期ファイル変換モジュールがこれを実行する。
【００６４】
前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール８から仮想ネットワークを通した前記ファイルの検索命令を受け取った場合、前記ファイル検索モジュール９によりと検索が実行され、その検索結果を前記通信モジュールを介して前記仮想ネットワーク側に送信する。この場合、前記ファイル検索命令には、ファイルに含まれるべき文字列と、検索結果をどのようなフォーマットで出力するかが指定されており、その検索結果を上記所定の形式で送信するようになっている。また、検索は、クライアント機器上のあらかじめインデックス化された情報から、検索文字列がマッチするかどうか検索エンジンを使い検索するものである。
前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール８から仮想ネットワークを通した前記ファイルのアップロード命令を受け取った場合、前記ファイルアップロードモジュールによりクライアント機器上のあらかじめ設定されたディレクトリにファイルを出力し、その処理結果を前記通信モジュール８を介して前記仮想ネットワーク側に送信する。
【００６５】
前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール９から仮想ネットワークを通したＶｏＩＰパケットにてＤＴＭＦトーン信号／音声データを受け取った場合、前記ＶｏＩＰモジュールは、当該ＤＴＭＦトーン／音声データを解析し、あらかじめ設定されている処理若しくはプログラムを実行し、その実効結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである
前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール９から仮想ネットワークを通したメール検索、メール一覧取得、メール内容取得のいずれかの要求を受け取った場合、前記メールモジュールがクライアント機器に対して当該命令を実行させ、その結果を前記通信モジュール９を介して前記仮想ネットワーク側に送信するようになっている。
【００６６】
前記Ｓ−ｎｏｄｅサーバメインモジュール４１が前記通信モジュール９から仮想ネットワークを通したローカルネットワーク上の他の機器に対するアクセス命令を受け取った場合、他機器アクセスモジュールが、当該他の機器にアクセス命令を送信し、その処理の結果を前記通信モジュールを介して前記仮想ネットワーク側に送信するものである。
【００６７】
なお、前記ＶｏＩＰモジュール及びＤＴＭＦ音声認識モジュールによれば、通話だけでなく、外出先から家庭のクライアント機器に対して電話をかけ、音声またはＤＴＭＦトーン等を用いて、これら家庭のクライアント機器が制御可能になる。すなわち、この機能により、家庭のクライアント機器に対して電話を使っての制御が可能になる。つまり、インターネットが使えない状況でもクライアント機器の制御が可能になる。
【００６８】
また、図５に示すのは、この実施形態を利用したＩＰｖ４／ＩＰｖ６アプリケーションの通信の形態である。すなわち、前述したように、中継通信モジュール８はクライアントコンピュータ２上にあり、ＴＣＰ／ＩＰ（ＯＳ）を使用して、インターネット（ＩＰｖ４）を通じてＩｎｔｅｒＳｅｒｖｅｒ６に接続し、このＩｎｔｅｒＳｅｒｖｅｒ６からＩＰｖ６アドレスを取得する。ＩｎｔｅｒＳｅｒｖｅｒ６は、インターネット（ＩＰｖ４）ともう一方のインターネット（ＩＰｖ６）の中継装置として動作し、中継通信モジュール８はＩｎｔｅｒＳｅｒｖｅｒ６とトンネリングにより直接通信することでＩＰｖ６を使用することができるようになっている。したがって、クライアントコンピュータ２上にＩＰｖ６プロトコルが無い場合でも、アプリケーションプログラム９が中継通信モジュール８を使用することで、インターネット（ＩＰｖ６）による通信が行える。
【００６９】
この図５は、アップリケ―ション９が、前記ファイルアクセスモジュール４２を利用してＮＡＳストレージデバイスおよびＤＬＮＡ対応ハードディスクレコーダ等のマルチメディアデバイスへアクセスしてファイルを取得する場合の例である。
【００７０】
すなわち、この例では、クライアント機器は、ＬＡＮ等のローカルネットワーク（ＩＰｖ４）に接続されたパーソナルコンピュータ２である。このパーソナルコンピュータ２には、上記中継通信モジュール８とファイルアクセスモジュール４２を備えたアプリケーションプログラム９がインストールされている。
【００７１】
また、この実施形態では、ＩｎｔｅｒＳｅｒｖｅｒ６に、Ｓ−Ｎｏｄｅプロキシ５１が接続されている。このＳ−Ｎｏｄｅプロキシ５１は、前記クライアント機器２にインストールされたアプリケーション９をセキュアかつ適切に制御するためにインターネット側に設置されるサーバである。このＳ−Ｎｏｄｅプロキシ５１は名前の通り、インターネット側からクライアント機器２のアプリケーション９へのアクセスをプロキシする役目を有する。
【００７２】
このＳ−Ｎｏｄｅプロキシ５１は、図８に示すように構成されている。
【００７３】
先に説明したように、ＩｎｔｅｒＳｅｒｖｅｒ６は、トンネリング接続を終端しかつ仮想ネットワークのハブとして機能するように構成されている。このＩｎｔｅｒＳｅｒｖｅｒ６には、このようなハブとしての機能を提供するサーバ側プログラム８１がインストールされている。
【００７４】
このサーバー側プログラムは、前記クライアント機器とは独立して前記アプリケーションプログラム９に割当てられた仮想ネットワーク上のＩＰアドレスを使用して、このアプリケーションプログラム９との間でトンネリング接続によるＴＣＰ／ＩＰセッションを確立するトンネリング確立部８２と、前記アプリケーションプログラム９との間のＴＣＰ/ＩＰセッションを、前記アプリケーションプログラム名及びその仮想ネットワーク上のＩＰアドレスで管理するアプリケーションプログラム管理装置８３と、を有する。前述したように、このアプリケーションプログラム８１は、各アプリケーション９に割り当てるべきＩＰアドレス若しくはＭＡＣアドレス、若しくはその両方を管理しており、前記トンネリング確立部８２は、前記ＴＣＰ／ＩＰによるトンネリング接続を確立する際に、前記アプリケーションプログラム用の仮想ネットワーク上のＩＰアドレス若しくはＭＡＣアドレス、若しくはその両方を前記クライアント機器に送信するものである。
【００７５】
一方、携帯電話や出先のＰＣ等から通常のＩＰｖ４プロトコルによりインターネットを介して前記Ｓ−Ｎｏｄｅサーバアプリケーション９にアクセスしようとする場合には、前記Ｓ−Ｎｏｄｅプロキシ５１が必要となる。この実施形態では、このＳ−Ｎｏｄｅプロキシ５１は、後で詳しく説明するように、上記アクセスがユーザ認証を要するものであるかを判断し、認証を要するものである場合には、独自のアカウントデータベース５２によりユーザ認証を行い、クライアント機器２のアプリケーション９へのアクセスを制御するようになっている。
【００７６】
また、このプロキシ５１は、接続要求者から前記インターネットを介してＵＲＬ（Uniform Resource Locator）要求を受け取り、このＵＲＬ要求に含まれる前記アプリケーションプログラム名に基づいて、この前記クライアント機器（２）上のアプリケーションプログラム９に前記ＵＲＬ要求（ファイルへのパス）を送り、前記プログラム９にクライアント機器若しくはこのクライアント機器が接続されたローカルネットワーク上の他の機器に格納されたファイルにアクセスさせるようになっている。
【００７７】
すなわち、この実施形態では、クライアント機器２のすべてのリソースを一意なＵＲＬで表現でき、このＵＲＬを用いて接続要求者の端末から前記クライアント機器２に対してｈｔｔｐにてアクセスすることができる環境を提供するものである。
【００７８】
この実施形態で特定のリソースを表わすＵＲＬは、好ましくは、以下の要素で構成されている。
【００７９】
ｈｔｔｐ／／：（プロキシサーバ・ホスト名）／ｓｎ／（クライアント機器上のＳ−Ｎｏｄｅサーバアプリケーションプログラム／ホスト名）／（このプロキシから前記アプリケーションプログラムを介した所定のファイルへの接続を公開するかの識別子）／（クライアント機器上、若しくはこのクライアント機器が接続されたネットワーク上の目的ファイルへのパス）
これによれば、例えば、プロキシ名が、ｓｎｐｒｏｘｙ．ｄｒｅａｍ．ｊｐ、Ｓ−Ｎｏｄｅアプリケーションプログラム・ホスト名がｔａｒｏ＿ｎｏｄｅ、クライアント機器におけるリソースへのパスが、／ｐｈｏｔｏ／ｃａｔ．ｊｐｇとすると、「ｈｔｔｐ：／／ｓｎｐｒｏｘｙ．ｄｒｅａｍ．ｊｐ／ｓｎ／ｔａｒｏ＿ｎｏｄｅ／＿ｐｕｂ／ｐｈｏｔｏ／ｃａｔ．ｊｐｇ」のように表現される。
【００８０】
ここで、「このプロキシから前記アプリケーションプログラムを介した所定のファイルへの接続を公開するための識別子」は、「＿ｐｕｂ」であり、この識別子がある場合、前記ユーザ認証を経ることなく、この要求を、インターネット側から仮想ネットワーク側に通すように構成されている。
【００８１】
そして、前記プロキシ５１は、前記アカウントＤＢ５２で、前記（クライアント機器上のＳ−Ｎｏｄｅサーバアプリケーションプログラム・ホスト名）と、このＳ−Ｎｏｄｅアプリケーションプログラムの仮想ネットワーク上の仮想アドレスとを管理しており、前記ＵＲＬは、例えば、サーバのエイリアス定義により次の呼び出しに変換するようになっている。
【００８２】
ｈｔｔｐ：／／（ＳＮｏｄｅサーバアプリケーション名・ホスト名）/(クライアント機器上、若しくはこのクライアント機器が接続されたネットワーク上の目的ファイルへのパス）；（セッションＩＤ）
この実施形態では、アカウントＤＢ５２から取得され、Ｓ−Ｎｏｄｅサーバアプリケーションプログラム９の仮想ネットワーク上の仮想ＩＰアドレスに対するＨＴＴＰアクセスに変換される。
【００８３】
したがって、前記仮想ネットワーク上のＩＰアドレスを「２００１：３ｅ０:０：１０：：１」とした場合には、ｈｔｔｐ：//２００１：３ｅ０：０：１０：：１/＿ｐｕｂ/ｐｈｏｔｏ/ｃａｔ.ｊｐｇ；ＳＥＳＳＩＤ＝ａｂｃ１２３４に変換される。
【００８４】
この実施形態では、これらの解析を高速化を実現するため、専用のＵＲＬ解析部８４を備えている。
【００８５】
また、この実施形態では、ＵＲＬの表現方法として、命令を含めた形（ＡＰＩとしての表現）でも可能となっている。
【００８６】
この場合の書式は、例えば、  ｈｔｔｐ／／：（プロキシサーバ・ホスト名）／ｓｎ／（クライアント機器上のＳ−Ｎｏｄｅサーバアプリケーションプログラム／ホスト名）／（このプロキシから前記アプリケーションプログラムを介した所定のファイルへの接続を公開するかの識別子）／（クライアント機器上、若しくはこのクライアント機器が接続されたネットワーク上の目的ファイルへのパス）（命令（ＡＰＩ））
命令には、例えば、ファイルの取得、映像の閲覧、装置の起動、保存、再生、コピー、その他の具体的動作が、クライアント機器のＳ−Ｎｏｄｅアプリケーションプログラムに設けられた各種ＡＰＩモジュールに応じて指定可能である。
【００８７】
図９は、このプロキシ５１の動作を示したフローチャートである。
【００８８】
まず、接続要求者からのＵＲＬ要求（エイリアス定義により変換済のもの）を受け取ると、まず、ステップ９１でＰｕｂ接続（認証不要の接続）かを、受け取ったＵＲＬに「Ｐｕｂ」の文字がふくまれているかで判断し、Ｐｕｂ接続の場合には、すでにセッションがあるかを判断し（ステップＳ９２）、セッションが確立されていない場合にはセッションＩＤを付与してセッションを確立する（ステップＳ９３）。
【００８９】
Ｐｕｂ接続でない場合で、セッションが確立されていない場合（ステップＳ９４）には、前記認証ＩＤを利用したユーザ認証を行わせ（ステップＳ９５）、これによりセッションＩＤを与える。
【００９０】
以上により、セッションＩＤが確認されたならば、前記インターネットからの接続を仮想ネットワークに接続された前記Ｓ−ｎｏｄｅアプリケーションプログラム９にルーティングし、Ｓ−ＮｏｄｅアプリケーションへＵＲＬに含まれる命令を転送し、その応答を受け取る（ステップＳ９６,Ｓ９７）。
【００９１】
また、この実施形態では、Ｓ−Ｎｏｄｅプロキシ５１は、携帯電話・ＭＰ３プレーヤ、モバイル端末（ＰＤＡやゲーム端末）等に内蔵されているインターネットブラウザへの表示画面の最適化などを行う表示最適化制御部（図８に８５で示す）も搭載する。この場合、図９のステップＳ９８に示すように、上記接続要求者の端末のための表示最適化の処理が実行されるようになっている（ステップＳ９８）。
【００９２】
以上説明したようなＳ−Ｎｏｄｅプロキシサーバ５１を経由することで、自宅外のインターネットに接続された端末Ａ（ＩＰｖ４端末）から、ユーザは自宅のクライアント機器２のリソースに対して、アクセスする元の端末が何であるかを意識することなく、アクセス可能になる。
【００９３】
なお、ＩｎｔｅｒＳｅｒｖｅｒ６の能力的には、外部末端はクライアント機器のアプリケーションへの直接のアクセスも可能である。すなわち、ＩｎｔｅｒＳｅｒｖｅｒ６が接続されたＩＰｖ６ネットワーク上の端末Ｂからは、ＩＰｖ６アドレスを利用して直接前記アプリケーションを介してクライアント機器のリソースを直接利用することが可能になる。この場合、通常であれば、セキュリティの問題なども新たに考える必要が出てくるが、この発明では、前記クライアント機器のアプリケーションが各種リソースへのアクセスを一元的に制御するようになっているため、不用意なアクセスへの対処も比較的容易にできる。
【００９４】
なお、このＩｎｔｅｒＳｅｒｖｅｒ６が、ＩＰｖ６ネットワークに接続されている場合、前記クライアント機器Ｂは、このＩｎｔｅｒＳｅｒｖｅｒ６を介してＩｐｖ６ネットワークに接続できるから、ＩＰｖ６プロトコルが存在しないＯＳ環境下であっても、アプリケーションソフト（この場合はプロキシ３１）単位でＩＰｖ６アドレスを保持し、仮想ネットワークを通した通信を行うことができる。これにより、たとえばＩＰｖ６で動く外部機器からＩＰｖ６下でしか通信できない方法でクライアント機器に外部からアクセスすることができる。
【００９５】
一方、図６は、ＶｏＩＰを経由してコンピュータ上のファイルにアクセスする例である。
【００９６】
図６中、ＩｎｔｅｒｅＳｅｒｖｅｒ６は、レイヤ３接続をサポートし、センター側システムとの間にあって、ＳＩＰを利用したインターネット電話間、インスタントメッセンジャーシステム間の通信を制御するものである。すなわち、クライアント側のＶｏＩＰプログラム（アプリケーション９）は、ＳＩＰ等のシグナリングプロトコルと、音声等を処理するＲＴＰモジュールを持ち、前記センター側システムは、そのＳＩＰ等のシグナリングプロトコルを処理することが出来るようになっている。
【００９７】
２つのクライアントにそれぞれ設けられたＶｏＩＰプログラム間で音声通信を行う場合、ＲＴＰ等の音声通信は、クライアントアプリケーションのＲＴＰモジュール→クライアントの中継通信モジュール→クライアントのＯＳのＴＣＰＩＰ→ＩｎｔｅｒＳｅｒｖｅｒ→クライアントのＯＳのＴＣＰＩＰ→クライアントの中継通信モジュール→クライアントアプリケーションのＲＴＰモジュール、のような経路で処理される。
【００９８】
また、ＩｎｔｅｒＳｅｒｖｅｒに音声中継処理サーバを置き、音声中継処理サーバを経由する処理であっても良い。この場合の通信処理は、クライアントアプリケーションのＲＴＰモジュール→クライアントの中継通信モジュール→クライアントのＯＳのＴＣＰＩＰ→ＩｎｔｅｒＳｅｒｖｅｒ→音声中継処理サーバ→ＩｎｔｅｒＳｅｒｖｅｒ→クライアントの中継通信モジュール→クライアントアプリケーションのＲＴＰモジュールとなる。
【００９９】
ＳＩＰ等のプロトコルでは、クライアント側アプリケーションが、電話番号等の識別番号とＩＰアドレスの登録により、ロケーション管理（ＩＰアドレス）を行い、シグナリング時にアドレス解決をし、音声画像等のメディア通信する。よってＳＩＰ等のプロトコルでは、アドレス登録を含めたメソッドが用意される。
【０１００】
本発明では、この特徴を利用し、ＶｏＩＰアプリケーション９が中継通信モジュール８を包含し、電話番号等の識別番号とＩＰアドレスの管理をＩｎｔｅｒＳｅｒｖｅｒ６との間のトンネリングセッションの確立を利用して行う。
【０１０１】
以下、この処理を、図６を参照して詳しく説明する。
【０１０２】
まず、この例では、前記ＩｎｔｅｒＳｅｒｖｅｒ６は、トンネル終端としての接続サーバを備え、またセンター側システムとして、ＳＩＰプロキシサーバ、ユーザ情報管理サーバ、認証サーバ、プレゼンスサーバを備えている。また、このセンター側システムは、プライベートネットワークを介してＩＰアドレス管理ＤＢ及び外線発着信ゲートウェイ（及びこれを介して公衆回線網）に接続可能になっている。
【０１０３】
すでに述べたように、クライアントコンピュータ２に設けられたＶｏＩＰアプリケーション９は、前記中継通信モジュール８により、ＯＳを介さずに、直接ＩｎｔｅｒＳｅｒｖｅｒ６の接続サーバとトンネリング接続を実現する。このことで、このＶｏＩＰプログラム９に、仮想ネットワーク上のＩＰアドレスが割り当てられ、このＶｏＩＰプログラム９はこのＩＰアドレスを用い、前記トンネリングセッションを通して前記ＩｎｔｅｒＳｅｒｖｅｒ６のセンター側システムを介した音声通信が行える。
【０１０４】
すなわち、ＶｏＩＰアプリケーションが前記中継通信モジュールにトンネリング初期化依頼を発すると（ステップＳ１）、前記中継通信モジュールは所定のブローカーサーバに接続して(ステップＳ２)、ＶｏＩＰ通信に利用するＩｎｔｅｒＳｅｒｖｅｒのＩＰアドレス（若しくはドメイン名）を受け取る(ステップＳ３)。このことで、中継通信モジュールはＩｎｔｅｒＳｅｒｖｅｒのアドレスを知ることができるから、識別番号とパスワードなどのログイン情報をもって前記ＩｎｔｅｒＳｅｒｖｅｒの接続サーバに接続し、認証サーバによる認証を受ける（ステップＳ５、Ｓ６）。認証が行われると、前記ＶｏＩＰアプリケーション（クライアント）用のＩＰアドレスの選定が行われ、これが、前記クライアントの中継通信モジュールに返される（ステップＳ７）。
【０１０５】
このことで、中継通信モジュールは、受け取ったＩＰアドレスとＩｎｔｅｒＳｅｒｖｅｒ６のＩＰアドレスを用いて、このＩｎｔｅｒＳｅｒｖｅｒの接続サーバとの間に直接トンネリングセッションを確立する（ステップＳ８）。このトンネリングセッションが確立されると、前記ＩｎｔｅｒＳｅｒｖｅｒ６は、このクライアントのＩＰアドレスをクライアントの識別番号と関連付けて前記ＩＰアドレス管理サーバに登録する（ステップＳ９）。
【０１０６】
このことで、トンネリング接続が確立されると共に、前記ＶｏＩｐアプリケーション９のＩＰアドレス及び識別番号が登録されて音声通信が可能になる。
【０１０７】
すなわち、ＳＩＰプロキシサーバ等は、音声通信のＩＮＶＩＴＥを受けると（ステップＳ９）、ＩｎｔｅｒＳｅｒｖｅｒが登録したＩＰアドレス管理ＤＢを参照してシグナリング（ロケーション解決）を行うことが出来（ステップＳ１０）、ＳＩＰによる音声通信を中継することができる（ステップＳ１１）。
【０１０８】
このような構成によれば、まず、前記ＶｏＩＰアプリケーション自体が中継通信モジュールと一体となって、このクライアント機器のインタフェースとは独立した独自のＩＰアドレスを持つあたかも１つのデバイスとして実現できることになる。さらに、ＳＩＰプロトコルで行うロケーション管理を中継通信モジュールとサーバ間で利用する上述のＩＰアドレスを利用して行うことで、通信及び管理の効率化を行える。
【０１０９】
そして、この例では、さらに、ユーザがクライアント機器上で実行されているアプリケーションプログラムを介して、既存の電話やＩＰ電話を用いて特定の命令を与え、その命令をクライアント機器上で実行させることができる。
【０１１０】
すなわち、仮想ネットワーク用のIPアドレスが付与されと、ＶｏＩＰモジュールと音声・ＤＴＭＦ解析モジュールが起動され、前記通信モジュールを介した形で音声やＤＴＭＦ信号による通信が可能な状態になる。
【０１１１】
前記ＶｏＩＰモジュール及び音声・ＤＴＭＦ解析モジュールはアプリケーションプログラム９の一部として実行され、ＶｏＩＰモジュールを経由して得た音声、またはＤＴＭＦ信号を解析し、アプリケーションプログラムにあらかじめ関連付けられている外部プログラムを起動するものである。ここでいう外部プログラムとは、コンピュータ上で実行可能なすべてのプログラム（ブラウザ、メーラー、文書作成プログラム等あらゆるプログラム）であり、この外部プログラムを実行した結果は一定ではない。
【０１１２】
以上説明したが、図７は、この発明の実施形態によって実現される外部端末からの家庭内クライアント機器上のアプリケーションプログラムへの直接アクセスの概念を示したものである。これにより、このプログラムに対して、クライアント機器のＯＳにかかわらず直接命令を与えてあらゆる動作を実行させることができる。
【０１１３】
なお、この発明は上記一実施形態に限定されるものではなく、発明の要旨を変更しない範囲で種々変形可能である。
【０１１４】
例えば、上記一実施形態では、前記アプリケーションプログラムは、ブラウザ、インターネット電話プログラムおよびプロキシプログラムであったが、これに限定されるものではなく、双方向通信を必要とするあらゆるアプリケーションプログラムに適用可能である。
【０１１５】
また、上記一実施形態では、前記トンネルブローカがＩｎｔｅｒＳｅｒｖｅｒを選択するようになっていたが、各通信中継モジュールにあらかじめセットされていても良い。
【０１１６】
また、この実施形態の通信モジュールは、１００％ユーザモードで動作する（普通ドライバのようなプログラムはカーネルモードで動く）ため、ＴＣＰ／ＩＰアプリケーションを作成することのできるＯＳなら非常に移植が簡単であり、上記一実施形態で挙げたＯＳ以外であっても、例えば、家電メーカが自社で採用している独自のＯＳや、レジスター等の業務機器に採用されているＯＳ等にも適用可能である。
【０１１７】
さらに、上記一実施形態で、前記Ｓ−Ｎｏｄｅプロキシ５１が扱うＵＲＬの例を述べたが、ＵＲＬの書式は上記の物に限定されるものではなく、他の書式であっても良い。重要なことは、前記Ｓ−Ｎｏｄｅプロキシ５１と、Ｓ−Ｎｏｄｅアプリケーション９とが互いに解釈できる書式のＵＲＬで通信することである。
【符号の説明】
【０１１８】
１…ローカルネットワーク
２…クライアント機器
４…インターネット網
６…ＩｎｔｅｒＳｅｒｖｅｒ
７…ＯＳ
８…通信中継モジュール
９…アプリケーションプログラム
１５…イーサネット（登録商標）リンク
１７…ＩＰレイヤ（ＩＰｖ４／ＩＰｖ６）
１８…ＴＣＰ／ＵＤＰレイヤ
１９…トンネリング・アプリケーション
２０…トンネルブローカ
３１…プロキシアプリケーション
４１…各種ＡＰＩ
５１…Ｓ−Ｎｏｄｅプロキシサーバ
【図１】
0005438230.tif 000002
【図２】
0005438230.tif 000003
【図３】
0005438230.tif 000004
【図４】
0005438230.tif 000005
【図５】
0005438230.tif 000006
【図６】
0005438230.tif 000007
【図７】
0005438230.tif 000008
【図８】
0005438230.tif 000009
【図９】
0005438230.tif 000010