(57)【要約】【課題】ＩＰに従って通信するためのシステム及び方法、特に終端ネットワークノードとのＩＰ接続を確立するためのシステム及び方法を提供する。【解決手段】システム、終端ノード、方法、及びコンピュータプログラム製品は、送信元ノードから終端ノードに非ＩＰベースのメッセージを送信し、それによって終端ノードに送信元ノードとのＩＰベースの通信を開始させることにより、公衆ネットワーク内の送信元ノードがプライベートネットワーク内の終端ノードと通信することを可能にする。プライベートネットワーク内のＮＡＴ及び／又はファイアウォールの背後のクライアントは、一般的に、公衆ネットワーク内のサーバに接続してそれに対してＴＣＰ／ＩＰセッションを確立することができることになるので、これは、終端ノードと必要に応じていつでも通信するための送信元ノードの機能を改善する。【選択図】図１
2008547299.tif 000002
【特許請求の範囲】
【請求項１】
終端ノードとの「インターネットプロトコル（ＩＰ）」接続を確立するためのシステムであって、
送信元ノードと、
非ＩＰベース通信技術を通じて前記送信元ノードから通信要求を受信することができ、更に、該通信要求に応答して該送信元ノードとのＩＰベース通信を開始することができる終端ノードと、
を含むことを特徴とするシステム。
【請求項２】
前記送信元ノードは、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージングを含む群から前記非ＩＰベース通信技術を選択することを特徴とする請求項１に記載のシステム。
【請求項３】
前記通信要求は、前記送信元ノードでのソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることを特徴とする請求項１に記載のシステム。
【請求項４】
前記終端ノードは、更に、前記通信要求の妥当性を該通信要求によって定められたセキュリティ情報を用いて検証することができることを特徴とする請求項１に記載のシステム。
【請求項５】
前記終端ノードは、更に、アプリケーション層、ミドルウェア層、及びシステム層を含み、前記送信元ノードは、アプリケーション層、ミドルウェア層、及びシステム層を含み、該終端ノードは、更に、該終端ノードでの該アプリケーション層と該終端ノードでの該ミドルウェア層との間に仮想サーバソケットを作成することができ、
前記送信元ノードは、更に、該送信元ノードでの前記アプリケーション層と該送信元ノードでの前記ミドルウェア層との間に仮想クライアントソケットを作成することができ、
前記送信元ノードは、更に、該送信元ノードでの前記ミドルウェア層から前記終端ノードでの前記ミドルウェア層に前記非ＩＰベース通信技術を通じて前記通信要求を送信することができ、
前記終端ノードは、更に、該終端ノードでの前記ミドルウェア層と該終端ノードでの前記システム層との間にクライアントソケットを作成することができ、
前記送信元ノードは、更に、該送信元ノードでの前記ミドルウェア層と該送信元ノードでの前記システム層との間にサーバソケットを作成することができ、
前記終端ノードは、更に、前記送信元ノードでの前記サーバソケットのインターネットプロトコル（ＩＰ）アドレスとポート番号とを定める前記通信要求を該終端ノードの前記ミドルウェア層で受信することができる、
ことを特徴とする請求項１に記載のシステム。
【請求項６】
前記終端ノードは、更に、該終端ノードでの前記クライアントソケットによって接続成功メッセージを受信し、該終端ノードでの前記ミドルウェア層によって該接続成功メッセージを受入成功メッセージに変換し、該終端ノードでの前記仮想ソケットで該受入成功メッセージを受信することができ、
前記送信元ノードは、更に、該送信元ノードでの前記サーバソケットによって受入成功メッセージを受信し、該送信元ノードでの前記ミドルウェア層によって該受入成功メッセージを接続成功メッセージに変換し、該送信元ノードでの前記仮想ソケットで該接続成功メッセージを受信することができる、
ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記送信元ノードは、公衆ネットワークに位置し、前記終端ノードは、プライベートネットワークに位置することを特徴とする請求項１に記載のシステム。
【請求項８】
前記プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有することを特徴とする請求項７に記載のシステム。
【請求項９】
前記送信元ノードは、更に、前記終端ノードのＩＰベース識別子を該終端ノードの非ＩＰベース識別子に変換することができ、
前記送信元ノードは、更に、前記非ＩＰベース識別子を使用して前記通信要求を前記非ＩＰベース通信技術を通じて前記終端ノードに送信することができる、
ことを特徴とする請求項１に記載のシステム。
【請求項１０】
「インターネットプロトコル（ＩＰ）」接続を通じて送信元ノードと通信するための終端ノードであって、
非ＩＰベース通信技術を通じて前記送信元ノードから通信要求を受信することができ、更に、該通信要求に応答して該送信元ノードとのＩＰベース通信を開始することができるプロセッサ、
を含むことを特徴とするノード。
【請求項１１】
前記非ＩＰベース通信技術は、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージングを含む群から選択されることを特徴とする請求項１０に記載の終端ノード。
【請求項１２】
前記通信要求は、前記送信元ノードでのソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることを特徴とする請求項１０に記載の終端ノード。
【請求項１３】
前記プロセッサは、更に、前記通信要求の妥当性を該通信要求によって定められたセキュリティ情報を用いて検証することができることを特徴とする請求項１０に記載の終端ノード。
【請求項１４】
アプリケーション層、ミドルウェア層、及びシステム層を更に含み、
前記プロセッサは、更に、前記アプリケーション層と前記ミドルウェア層の間に仮想サーバソケットを作成することができ、該プロセッサは、更に、前記送信元ノードでのサーバソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定める前記通信要求を該ミドルウェア層で受信することができ、該プロセッサは、更に、該ミドルウェア層と該システム層の間にクライアントソケットを作成することができる、
ことを特徴とする請求項１０に記載の終端ノード。
【請求項１５】
前記プロセッサは、更に、前記クライアントソケットで接続成功メッセージを受信し、前記ミドルウェア層によって該接続成功メッセージを受入成功メッセージに変換し、前記仮想ソケットで該受入成功メッセージを受信することができることを特徴とする請求項１４に記載の終端ノード。
【請求項１６】
プライベートネットワークに位置することを特徴とする請求項１０に記載の終端ノード。
【請求項１７】
前記プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有することを特徴とする請求項１６に記載の終端ノード。
【請求項１８】
終端ノードとの「インターネットプロトコル（ＩＰ）」接続を確立するための送信元ノードであって、
終端ノードが、通信要求に応答して送信元ノードとのＩＰベース通信を開始することができるように、非ＩＰベース通信技術を通じて該終端ノードに該通信要求を送信することができるプロセッサ、
を含むことを特徴とするノード。
【請求項１９】
前記プロセッサは、前記非ＩＰベース通信技術を口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージングを含む群から選択することができることを特徴とする請求項１８に記載の送信元ノード。
【請求項２０】
前記通信要求は、送信元ノードでのソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることを特徴とする請求項１８に記載の送信元ノード。
【請求項２１】
前記通信要求は、セキュリティ情報を定め、それによって前記終端ノードは、該セキュリティ情報を用いて該通信要求の妥当性を検証することができることを特徴とする請求項１８に記載の送信元ノード。
【請求項２２】
アプリケーション層、ミドルウェア層、及びシステム層を更に含み、
前記プロセッサは、更に、前記アプリケーション層と前記ミドルウェア層の間に仮想クライアントソケットを作成することができ、該プロセッサは、更に、前記非ＩＰベース通信技術を通じて該ミドルウェア層から前記通信要求を送信することができ、該プロセッサは、更に、該ミドルウェア層と前記システム層の間にサーバソケットを作成することができ、該通信要求は、該サーバソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定める、
ことを特徴とする請求項１８に記載の送信元ノード。
【請求項２３】
前記プロセッサは、更に、前記サーバソケットによって受入成功メッセージを受信し、前記ミドルウェア層によって該受入成功メッセージを接続成功メッセージに変換し、前記仮想ソケットで該接続成功メッセージを受信することができることを特徴とする請求項２２に記載の送信元ノード。
【請求項２４】
公衆ネットワークに位置し、
前記終端ノードは、プライベートネットワークに位置する、
ことを特徴とする請求項１８に記載の送信元ノード。
【請求項２５】
前記プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有することを特徴とする請求項２４に記載の送信元ノード。
【請求項２６】
前記プロセッサは、更に、前記終端ノードのＩＰベース識別子を該終端ノードの非ＩＰベース識別子に変換することができ、該プロセッサは、更に、該非ＩＰベース識別子を使用して前記通信要求を該終端ノードに前記非ＩＰベース通信技術を通じて送信することができることを特徴とする請求項１８に記載の送信元ノード。
【請求項２７】
終端ノードとの「インターネットプロトコル（ＩＰ）」接続を確立する方法であって、
非ＩＰベース通信技術を通じて送信元ノードから通信要求を終端ノードで受信する段階と、
前記通信要求に応答して前記送信元ノードとのＩＰベース通信を前記終端ノードによって開始する段階と、
を含むことを特徴とする方法。
【請求項２８】
前記非ＩＰベース通信技術は、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージングを含む群から選択されることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記通信要求は、前記送信元ノードでのソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることを特徴とする請求項２７に記載の方法。
【請求項３０】
前記通信要求の妥当性を該通信要求によって定められたセキュリティ情報を用いて前記終端ノードで検証する段階、
を更に含むことを特徴とする請求項２７に記載の方法。
【請求項３１】
前記終端ノードでのアプリケーション層と該終端ノードでのミドルウェア層との間に仮想サーバソケットを作成する段階と、
前記送信元ノードでのアプリケーション層と該送信元ノードでのミドルウェア層との間に仮想クライアントソケットを作成する段階と、
前記非ＩＰベース通信技術を通じて前記送信元ノードでの前記ミドルウェア層から前記終端ノードでの前記ミドルウェア層に前記通信要求を送信する段階と、
前記終端ノードでの前記ミドルウェア層と該終端ノードでのシステム層との間にクライアントソケットを作成する段階と、
前記送信元ノードでの前記ミドルウェア層と該送信元ノードでのシステム層との間にサーバソケットを作成する段階と、
を更に含み、
前記通信要求は、前記ミドルウェア層によって前記終端ノードで受信され、該通信要求は、前記送信元ノードでの前記サーバソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定め、前記ＩＰベース通信は、該終端ノードでの前記ミドルウェア層によって開始される、
ことを特徴とする請求項２７に記載の方法。
【請求項３２】
前記終端ノードでの前記クライアントソケットによって接続成功メッセージを受信する段階と、
前記終端ノードでの前記ミドルウェア層によって前記接続成功メッセージを受入成功メッセージに変換する段階と、
前記終端ノードでの前記仮想ソケットで前記受入成功メッセージを受信する段階と、
前記送信元ノードでの前記サーバソケットによって受入成功メッセージを受信する段階と、
前記送信元ノードでの前記ミドルウェア層によって前記受入成功メッセージを接続成功メッセージに変換する段階と、
前記送信元ノードでの前記仮想ソケットで前記接続成功メッセージを受信する段階と、
を更に含むことを特徴とする請求項３１に記載の方法。
【請求項３３】
前記送信元ノードは、公衆ネットワークに位置し、前記終端ノードは、プライベートネットワークに位置することを特徴とする請求項２７に記載の方法。
【請求項３４】
前記プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有することを特徴とする請求項３３に記載の方法。
【請求項３５】
前記終端ノードのＩＰベース識別子を、前記非ＩＰベース通信技術を通じて前記通信要求を該終端ノードに送信するのに使用される該終端ノードの非ＩＰベース識別子に前記送信元ノードによって変換する段階、
を更に含むことを特徴とする請求項２７に記載の方法。
【請求項３６】
終端ノードとの「インターネットプロトコル（ＩＰ）」接続を確立するためのコンピュータプログラム製品であって、
コンピュータ読取可能プログラムコード部分を格納した少なくとも１つのコンピュータ読取可能記憶媒体、
を含み、
前記コンピュータ読取可能プログラムコード部分は、
非ＩＰベース通信技術を通じて送信元ノードから通信要求を終端ノードで受信することができる第１の実行可能部分と、
前記通信要求に応答して前記終端ノードによって前記送信元ノードとのＩＰベース通信を開始することができる第２の実行可能部分と、
を含む、
ことを特徴とする製品。
【請求項３７】
前記非ＩＰベース通信技術は、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージングを含む群から選択されることを特徴とする請求項３６に記載のコンピュータプログラム製品。
【請求項３８】
前記通信要求は、前記送信元ノードでのソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることを特徴とする請求項３６に記載のコンピュータプログラム製品。
【請求項３９】
前記通信要求の妥当性を該通信要求によって定められたセキュリティ情報を用いて前記終端ノードで検証することができる第３の実行可能部分、
を更に含むことを特徴とする請求項３６に記載のコンピュータプログラム製品。
【請求項４０】
前記終端ノードでのアプリケーション層と該終端ノードでのミドルウェア層との間に仮想サーバソケットを作成することができる第３の実行可能部分と、
前記送信元ノードでのアプリケーション層と該送信元ノードでのミドルウェア層との間に仮想クライアントソケットを作成することができる第４の実行可能部分と、
前記送信元ノードでの前記ミドルウェア層から前記終端ノードでの前記ミドルウェア層に前記非ＩＰベース通信技術を通じて前記通信要求を送信することができる第５の実行可能部分と、
前記終端ノードでの前記ミドルウェア層と該終端ノードでのシステム層との間にクライアントソケットを作成することができる第６の実行可能部分と、
前記送信元ノードでの前記ミドルウェア層と該送信元ノードでのシステム層との間にサーバソケットを作成することができる第７の実行可能部分と、
を更に含み、
前記通信要求は、前記ミドルウェア層によって前記終端ノードで受信され、該通信要求は、前記送信元ノードでの前記サーバソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定め、前記ＩＰベース通信は、該終端ノードでの該ミドルウェア層によって開始される、
ことを特徴とする請求項３６に記載のコンピュータプログラム製品。
【請求項４１】
前記終端ノードでの前記クライアントソケットによって接続成功メッセージを受信することができる第３の実行可能部分と、
前記終端ノードでの前記ミドルウェア層によって前記接続成功メッセージを受入成功メッセージに変換することができる第４の実行可能部分と、
前記終端ノードでの前記仮想ソケットで前記受入成功メッセージを受信することができる第５の実行可能部分と、
前記送信元ノードでの前記サーバソケットによって受入成功メッセージを受信することができる第６の実行可能部分と、
前記送信元ノードでの前記ミドルウェア層によって前記受入成功メッセージを接続成功メッセージに変換することができる第７の実行可能部分と、
前記送信元ノードでの前記仮想ソケットで前記接続成功メッセージを受信することができる第８の実行可能部分と、
を更に含むことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
前記送信元ノードは、公衆ネットワークに位置し、前記終端ノードは、プライベートネットワークに位置することを特徴とする請求項３６に記載のコンピュータプログラム製品。
【請求項４３】
前記プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有することを特徴とする請求項４２に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、全体的に、「インターネットプロトコル（ＩＰ）」に従って通信するためのシステム及び方法に関し、より詳細には、終端ネットワークノードとのＩＰ接続を確立するためのシステム及び方法に関する。
【背景技術】
【０００２】
ＩＰｖ４のような「インターネットプロトコル（ＩＰ）」の様々なバージョンの制約の１つは、それが限られたアドレス空間を有する点である。従って、アドレスを節約するために、企業及び他の管理ドメインは、プライベートアドレスの使用という策をとっている。プライベートアドレスとは、ＩＰアドレスが、１０．０．０．０−１０．２５５．２５５．２５５、１７２．１６．０．０−１７２．３１．２５５．２５５、又は１９２．１６８．０．０−１９２．１６８．２５５．２５５の範囲に含まれるネットワークアドレスである。
【０００３】
プライベートネットワーク内部の管理エンティティにより割り当てられるプライベートアドレスは、各々のプライベートネットワーク内部で関連性を有するに過ぎない。従って、このようなプライベートアドレスは、典型的には、プライベートネットワークの外部では見えない。しかし、プライベートアドレスを使用する利点は、異なるプライベートネットワークが、衝突を全く懸念することなく各々のプライベートネットワーク内で同じプライベートＩＰアドレスをホストに割り当てることができる点である。一方、プライベートネットワーク内部でプライベートアドレスを割り当てられたホストが、送信ホストのプライベートネットワークの外部にいるホストにＩＰデータグラムを送信したい時には、「ネットワークアドレスポート変換器（ＮＡＰＴ）」としても機能することができる「ネットワークアドレス変換器（ＮＡＴ）」を使用することができる。ＮＡＴは、このＮＡＴに関連付けられたプライベートネットワークの外部にＩＰデータグラムが送信される前に、プライベートＩＰアドレス（及び、場合によってはデータグラム内部で選択された他のフィールド）をパブリックＩＰアドレスに変換する。ＮＡＰＴの付加機能により、ＮＡＴは、更に、「伝送制御プロトコル（ＴＣＰ）」又は「ユーザデータグラムプロトコル（ＵＤＰ）」ポートのようなポートをプライベートネットワークから公衆ネットワークに変換することができる。同様に、ＮＡＴに関連付けられた管理ドメインの外部にいるホストからプライベートアドレスを有するホストにＩＰデータグラムが送信される際には、ＮＡＴがパブリックＩＰアドレスをプライベートＩＰアドレスに変換し、ＮＡＴの付加機能により、公衆ネットワーク内のポートをプライベートネットワーク内のポートに変換する。
【０００４】
アドレス及びポート変換を提供することに加え、ＮＡＴは、関連付けられたプライベートネットワークに対してセキュリティ機構として作動するファイアウォール及び／又はゲートウェイと通信することができる。この点において、ファイアウォール／ゲートウェイは、受信データグラムがＮＡＴの変換処理を通過する前及び／又は送信データグラムがＮＡＴの変換処理を通過した後でファイアウォール／ゲートウェイがこのようなデータグラムを保証することができるという点で、セキュリティを提供するように作動することができる。更に、プライベートＩＰアドレスをパブリックＩＰアドレスに変換することにより、ＮＡＴは、プライベートＩＰアドレスに関連付けられたものに対してプライバシーの手段を提供することができる。
【０００５】
プライベートネットワーク内部でのプライベートアドレスの使用及びプライベートネットワークの端でのＮＡＴの使用は、企業内で幅広く採用されて展開されている。しかし、ＮＡＴの使用に付随する欠点がある。この点において、汎用パケット無線サービス（ＧＰＲＳ）ネットワークのような移動ネットワークを含み、そのネットワークに接続した又はそれ以外の方法で関連付けられたプライベートネットワークを考える。このような場合に、移動ネットワークを超えて通信を行う移動端末のような終端ノードは、一般的に、ＮＡＴを超えてＩＰ装置とのパケット交換（例えば、ＩＰ）接続を開始することができる。しかし、通常、ＮＡＴを超えて終端ノードとの同様のパケット交換接続をＩＰ装置が開始することはできない。更に、終端ノードは、典型的には固定ＩＰアドレスのような静的で公共の識別子を欠いているので、ＩＰ装置は、ＮＡＴに対して望ましい終端ノードを識別することができないことが多い。
【０００６】
いくつかの理由から、移動ネットワークは、典型的にはＩＰ装置が各終端ノードとパケット交換接続を開始しないような方法で設定されている。第１に、移動ネットワークのトポロジーによっては、移動ネットワーク内部の終端ノードへのＩＰ接続を有効にすることは、移動ネットワークを超えるＩＰトラフィックがない時にでも、望ましくない量のリソースを消費するか又は移動ネットワークの性能を低下させる可能性がある。第２に、移動ネットワークには、多くのプライベートネットワークのように、利用可能なＩＰアドレスよりも多くの終端ノードが存在する場合がある。従って、移動ネットワークは、ＮＡＴ、動的に割り当てられたＩＰアドレス、及び／又はプライベートＩＰアドレスを含むことができる。第３に、多くの移動ネットワークのセキュリティ必要性及びポリシーにより、様々なＩＰトラフィックが移動ネットワークに入らないようにする必要がある。そのような事例ではまた、移動ネットワークが関連付けられたファイアウォール／ゲートウェイを含む時には特に、頻繁にＮＡＴを使用する結果になる。
【０００７】
ＴＣＰ／ＩＰプロトコル群を使用しており、かつプライベートネットワーク内に位置するクライアントは、典型的には、ＴＣＰ／ＩＰプロトコル群を使用しており、かつ公衆ネットワーク内に位置するサーバにコンタクトして接続することができる。反対方向における、すなわち、公衆ネットワーク内のクライアントがプライベートネットワーク内のサーバに接続する場合の接続は、通常、より非常に複雑であり、以下の２つの理由から可能でないことが多い。（１）プライベートネットワーク内のノードは、プライベートネットワーク外部のクライアントには無意味で、このクライアントによって使用することのできないプライベートな経路指定不能ＩＰアドレスを有し、（２）ファイアウォールは、セキュリティ上の理由からそのような接続を全てブロックするように設定されていることが多いからである。
【０００８】
このＮＡＴ／ファイアウォール全探索問題に対処するために、いくつかの解決法が提案されている。１つの解決法では、ＮＡＴ／ファイアウォールとして作用するノードがノード自身のパブリックＩＰアドレスに関連付けられたポートを公開し、このポートに対する入力接続が、望ましいサーバに対する入力接続として変換されて中継される。更に、多くのシステムがエージェント、プロキシ、アプリケーションゲートウェイ、及び仮想プライベートネットワーク（ＶＰＮ）ゲートウェイなどのような仲介ノードを用いて解決法を提供する。これらの解決法は、クライアントとサーバの間に配置された１つ又はそれよりも多くの仲介ノード（例えば、ＮＡＴ、ファイアウォール、ＶＰＮゲートウェイ、アプリケーションゲートウェイなど）がこれら２つのノード間の接続が成功するために介在するように設定することに依存する。これらの解決法がＮＡＴ／ファイアウォール全探索を可能にするとしても、クライアントとサーバの間の接続を仲介ノードが助ける必要がある点で欠点がある。例えば、一般的に、ユーザではなくオペレータ及び／又は管理者がこれらの仲介ノードを制御し、その結果、ユーザによる制御は、僅かであるか又はないことになる。また、新しいサーバがプライベートネットワークに追加されると、ネットワーク管理者又はユーザは、通信を可能にするために、ＮＡＴ／ファイアウォールを頻繁に再設定する必要が生じる。従って、中間ネットワークノードの特殊設定を必要とすることなく、及び、エンドノード内の既存のクライアント及びサーバのＴＣＰ／ＩＰアプリケーションへの変更を必要とすることなく、ＮＡＴ／ファイアウォール全探索を可能にするシステム及び方法を有することが望ましい。
【０００９】
【非特許文献１】Ｔ．Ｏｋｏｓｈｉ、Ｍ．Ｍｏｃｈｉｚｕｋｉ、Ｙ．Ｔｏｂｅ、及びＨ．Ｔｏｋｕｄａ著「Ｊａｖａアプリケーションのための継続作動に向けて」、ＩＥＥＥコンピュータ通信及びネットワークに関する国際会議（ＩＣＣＣＮ）、１９９９年
【非特許文献２】Ｖ．Ｚａｎｄｙ及びＢ．Ｍｉｌｌｅｒ著「信頼性の高いネットワーク接続」、「ＡＣＭ  ＭＯＢＩＣＯＭ」、２００２年９月
【非特許文献３】Ｘ．Ｑｕ、Ｊ．Ｘｕ  Ｙｕ、及びＲ．Ｂｒｅｎｔ著「移動ＴＣＰソケット」、ソフトウエアエンジニアリング（ＳＥ）に関する国際会議、１９９７年１１月
【非特許文献４】Ａ．Ｓｎｏｅｒｅｎ著「インターネットの移動性のためのセッションベースのアーキテクチャ」、博士論文、ＭＩＴ、２００３年２月
【発明の開示】
【００１０】
従って、公衆ネットワーク内の送信元ノードからプライベートネットワーク内の終端ノードに非ＩＰベースのメッセージを送信し、それによって終端ノードに送信元ノードとのＩＰベースの通信を開始させることにより、公衆ネットワーク内の送信元ノードがプライベートネットワーク内の終端ノードと通信することを可能にするシステム、終端ノード、方法、及びコンピュータプログラム製品が提供される。プライベートネットワーク内のＮＡＴ及び／又はファイアウォールの背後のクライアントは、一般的に、公衆ネットワーク内のサーバに対して接続してＴＣＰ／ＩＰセッションを確立することができるので、これは、終端ノードと必要に応じていつでも通信するための送信元ノードの機能を改善することができる。ＩＰベースの通信セッションが確立された状態で、２つのノードは、これらのノード間の接続がいずれかのノードによって終了されるまで双方向でデータを交換することができる。
【００１１】
この点において、終端ノードとの「インターネットプロトコル（ＩＰ）」接続を確立するためのシステムは、送信元ノード及び終端ノードを含む。終端ノードは、非ＩＰベースの通信技術を通じて送信元ノードから通信要求を受信し、この通信要求に応答して送信元ノードとのＩＰベースの通信を開始することができる。送信元ノードは、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、及びインスタントメッセージを含む群から非ＩＰベースの通信技術を選択することができる。通信要求は、送信元ノードにおけるソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定めることができる。更に、終端ノードは、通信要求によって定められるセキュリティ情報を用いて、この通信要求の妥当性を検証することができる。
【００１２】
一実施形態では、終端ノードは、更に、アプリケーション層、ミドルウェア層、及びシステム層を含み、送信元ノードは、アプリケーション層、ミドルウェア層、及びシステム層を含む。終端ノードは、更に、終端ノードのアプリケーション層と終端ノードのミドルウェア層との間に仮想サーバソケットを作成することができる。送信元ノードは、更に、送信元ノードのアプリケーション層と送信元ノードのミドルウェア層との間に仮想クライアントソケットを作成することができる。送信元ノードは、更に、送信元ノードのミドルウェア層から終端ノードのミドルウェア層に非ＩＰベースの通信技術を通じて通信要求を送信することができる。終端ノードは、更に、終端ノードのミドルウェア層と終端ノードのシステム層との間にクライアントソケットを作成することができる。送信元ノードは、更に、送信元ノードのミドルウェア層と送信元ノードのシステム層との間にサーバソケットを作成することができる。終端ノードは、更に、終端ノードのミドルウェア層で通信要求を受信することができ、この通信要求は、送信元ノードにおけるサーバソケットのインターネットプロトコル（ＩＰ）アドレス及びポート番号を定める。
【００１３】
一実施形態では、終端ノードは、更に、終端ノードのクライアントソケットにより接続成功メッセージを受信し、終端ノードのミドルウェアによりこの接続成功メッセージを受入成功メッセージに変換し、終端ノードの仮想ソケットでこの受入成功メッセージを受信することができる。送信元ノードは、更に、送信元ノードのサーバソケットにより受入成功メッセージを受信し、送信元ノードのミドルウェアによりこの受入成功メッセージを接続成功メッセージに変換し、送信元ノードの仮想ソケットでこの接続成功メッセージを受信することができる。
【００１４】
送信元ノードは、公衆ネットワーク内に位置することができ、終端ノードは、プライベートネットワーク内に位置することができる。一実施形態では、プライベートネットワークは、ファイアウォール及びネットワークアドレス変換器のうちの少なくとも一方を有する。
上述のようにＩＰ接続を確立するためのシステムに加え、本発明の他の態様は、ＩＰ接続を確立するためのシステムの対応する終端ノード、送信元ノード、方法、及びコンピュータプログラム製品に関する。
本発明をこのように一般的に説明したが、ここで、必ずしも正確な縮尺で描かれているわけではない添付図面を参照する。
【発明を実施するための最良の形態】
【００１５】
本発明の例示的な実施形態は、本発明の好ましい実施形態が示されている添付図面を参照して以下により詳細に説明する。しかし、本発明は、多くの異なる形式で実施することができ、本明細書で説明する実施形態に限定されるものとして解釈されるべきではなく、むしろ、これらの実施形態は、本発明の開示が十分かつ完全であるように、及び当業者に対して本発明の範囲を十分に伝えるために提供するものである。本明細書全体にわたり、同じ数字は、同じ要素を示している。本発明の例示的な実施形態は、主にＴＣＰを用いた通信を円滑にすることに関して説明されるが、本発明の実施形態は、ＵＤＰのような他のトランスポートプロトコルを用いた通信を円滑にするためにも使用することができる。
【００１６】
図１によれば、本発明の実施形態から恩典を受けると考えられる１つのタイプのシステムの図が示されている。本発明の実施形態のシステム及び方法は、主に移動通信用途に関して説明される。しかし、本発明の実施形態のシステム及び方法は、移動通信業界内及び移動通信業界外部の両方で、他の様々な用途と共に利用することができる点を理解すべきである。
図示のように、システム１０は、「インターネット」のような公衆「インターネットプロトコル（ＩＰ）」ネットワークのような公衆ネットワーク１２を含む。公衆ネットワークは、いくつかのネットワークノードを含み、この各々が通常、サーバコンピュータ、パーソナルコンピュータ、又はラップトップコンピュータなどのような処理要素を含む。より詳細には、公衆ネットワークは、固定端末１４を含む１つ又はそれよりも多くのネットワークノードを含むことができ、この各々が、公衆ネットワーク内部で又はこれを超えて通信することができる。公衆ネットワーク１２のネットワークノードはまた、「セッション開始プロトコル（ＳＩＰ）」プロキシのようなプロキシ１６を含むことができる。認められるように、ＳＩＰプロキシは、ＳＩＰクライアントとして作動する固定端末を含むネットワーク間のＳＩＰ信号伝達メッセージのようなＳＩＰ信号伝達メッセージを受信及び転送することができる。
【００１７】
更に、公衆ネットワーク１２は、１つ又はそれよりも多くのドメイン名システム（ＤＳＮ）サーバ１８を含むことができる。この点において、各ネットワークノードは、一般的に、典型的には思い出しやすい関連付けられたホストＤＳＮ名を有する独特なＩＰアドレスを有する。次に、ＤＮＳサーバは、このネットワークトラフィックを適切なネットワークノードに経路指定することができるように、ホストのＤＳＮ名を関連付けられたＩＰアドレスに変換することができる。以下でより詳細に説明するように、いずれか１つ又はそれよりも多くの固定端末を含むネットワークノードのいずれか１つ又はそれよりも多くが送信元ノード２０として作動し、公衆ネットワークを超えて終端ノードと通信を行うことができる。更に、送信元ノードの終端ノードとの通信を円滑にするために、公衆ネットワークは、更に、中間ノード２２を含む１つ又はそれよりも多くのネットワークノードを含むことができ、これについても以下でより詳細に説明する。
【００１８】
公衆ネットワーク１２に加え、システム１０は、ローカルエリアネットワーク（ＬＡＮ）のような１つ又はそれよりも多くのプライベートネットワーク２４を含む。各プライベートネットワークは、公衆ネットワークのように、いくつかのネットワークノードを含むことができる。また、公衆ネットワーク１２のように、各プライベートネットワークのネットワークノードは、１つ又はそれよりも多くのＤＳＮサーバ２６を含むことができる。上記と同様に、プライベートネットワークのＤＮＳサーバは、このネットワークトラフィックを適切な公衆又はネットワークノードに経路指定することができるように、ホストのＤＳＮ名を関連付けられたＩＰアドレスに変換することができる。プライベートネットワークはまた、移動端末３２を含む１つ又はそれよりも多くのネットワークノードを含むことができ、この各々がプライベートネットワーク内部で又はこれを超えて通信することができる。端末３２は、例えば、携帯電話、携帯情報端末（ＰＤＡ）、ポケットベル、ラップトップコンピュータ、スマートカード、及び他のタイプの電子システムを含むことができる。移動端末に加えて、プライベートネットワークは、パーソナルコンピュータのような固定端末を含むことができる。
【００１９】
端末３２のプライベートネットワークへのアクセスを円滑にするために、プライベートネットワーク２４は、１つ又はそれよりも多くの無線アクセスポイント（ＡＰ）（図示しない）を含むことができ、この各々は、１つ又はそれよりも多くの端末に結合することができる。この点において、ＡＰは、例えば、無線周波数（ＲＦ）、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）、赤外線（ＩｒＤＡ）、又は無線ローカルエリアネットワーク（ＷＬＡＮ）を含むいくつかの異なる無線ネットワーキング技術のいずれか、又は有線技術を含む他の技術のような技術に従って端末と通信するように設定されたアクセスポイントを含むことができる。また、プライベートネットワークは、公衆ネットワークのように、送信元ノード２０及び／又は中間ノード２２を含むことができ、この両方については以下でより詳細に説明する。これも以下で説明するように、プライベートネットワークは、中間ノードを通じて送信元ノードと通信することができる終端ノード３６を含むことができる。これも以下で説明するように、プライベートネットワークの端末の１つ又はそれよりも多くは、送信元ノード又は中間ノードとして作動することができる。
【００２０】
公衆ネットワーク１２のネットワークノードとプライベートネットワーク２４のネットワークノードとの間の通信を円滑にするために、各プライベートネットワークは、更に、公衆ネットワーク及びプライベートネットワークを相互接続する「ネットワークアドレス［背景技術］の節で上述のように、各ＮＡＴは、公衆ネットワークと各プライベートネットワークとの間の通信のために、公衆ネットワークからのパブリックＩＰアドレスを各プライベートネットワークのネットワークノードのプライベートＩＰアドレスに変換すること、及びその逆を行うことができる。認められるように、ＮＡＴはまた、例えば、アプリケーションプロトコルデータユニット（ＰＤＵ）に組み込まれたＩＰアドレスを変換することができるアプリケーションレベルゲートウェイ（ＡＬＧ）（図示しない）を含むことができる。更に、ＮＡＴは、各プライベートネットワークのファイアウォール及び／又はゲートウェイを含むことができ、又はこれらに関連付けることができる。図示のように、ファイアウォール／ゲートウェイを含むか又はこれらに関連付けられたＮＡＴは、これ以降、ＮＡＴ／ＦＷ２８として示される。
【００２１】
システム１０はまた、１つ又はそれよりも多くの移動又はセルラーネットワーク３０を含むことができる。セルラーネットワークは、いくつかの異なる移動ネットワークの１つ又はそれよりも多くを含むことができる。この点において、セルラーネットワークは、いくつかの第１世代（１Ｇ）、第２世代（２Ｇ）、２．５Ｇ、及び／又は第３世代（３Ｇ）セルラーネットワークのいずれか、及び／又は本発明の実施形態に従って作動することができる他のいくつかのセルラーネットワークのいずれかを含むことができる。例えば、各セルラーネットワークは、ＧＳＭ（移動通信用グローバルシステム）、ＩＳ−１３６（時間領域多重アクセス−ＴＤＭＡ）、ＩＳ−９５（符号分割多重アクセス−ＣＤＭＡ）、ＣＤＭＡ２００、又はＥＤＧＥ（強化データＧＳＭ環境）ネットワークを含むことができる。代替的に、セルラーネットワークの１つ又はそれよりも多くは、ＧＰＲＳ（汎用パケット無線システム）又はＧＰＲＳベース（例えば、ユニバーサルモバイルテレコミュニケーションシステム−ＵＭＴＳ）ネットワークを含むことができる。
【００２２】
公衆ネットワーク１２及びプライベートネットワーク２４のように、セルラーネットワーク３０も、１つ又はそれよりも多くのネットワークノードを含む。この点において、各セルラーネットワークのネットワークノードは、各セルラーネットワーク内部で及び／又はこれを超えて通信することができる１つ又はそれよりも多くの移動端末３２を含むことができる。更に以下で説明するように、移動端末の１つ又はそれよりも多くは、公衆及びプライベートネットワークの送信元ノードと同じ方法におけるように送信元ノード２０として作動することができる。更に、これも以下で説明するように、移動端末の１つ又はそれよりも多くは、上述して以下でも説明するように、中間ノード２２を通じて送信元ノードと通信することができる終端ノード３６として作動することができる。本明細書では、送信元及び終端ノードを一般的に移動端末として説明しているが、別の実施形態では、送信元及び終端ノードは、固定端末とすることができる。
【００２３】
セルラーネットワーク３０内において、ネットワークノードはまた、１つ又はそれよりも多くのＳＧＳＮ（信号伝達ＧＰＲＳサポートノード）３８のような１つ又はそれよりも多くのネットワーク信号伝達サポートノード、及び１つ又はそれよりも多くのＧＧＳＮ（ゲートウェイＧＰＲＳサポートノード）４０のような１つ又はそれよりも多くのゲートウェイサポートノードを含むことができる。例えば、ネットワークノードは、「３Ｇパートナーシッププロジェクト（３ＧＰＰ）」のいくつかの仕様書に説明されているように、１つ又はそれよりも多くのＳＧＳＮ及び１つ又はそれよりも多くのＧＧＳＮを含むことができる。当業者によって認められるように、ＳＧＳＮは、移動端末３２との通信を経路指定することができ、端末が他のネットワークノードとの通信セッションに関わる場合は、そのようなネットワークノードに接続を提供することができる。一方、ＧＧＳＮは、セルラーネットワーク及びプライベートネットワーク２４を相互接続することができる。この点において、ＧＧＳＮは、公知のように、従来のゲートウェイアクションを実行することができる。セルラーネットワークは、ＳＧＳＮ及びＧＧＳＮを含むことができるが、セルラーネットワークは、他のタイプのセルラーネットワークに関して同様に作動する他のネットワークノードを含むことができる点に注意すべきである。
【００２４】
ここで、本発明の一実施形態に従って公衆ネットワーク１２、プライベートネットワーク２４、又はセルラーネットワーク３０の内部でネットワークノード（例えば、送信元ノード２０、中間ノード２２、ＮＡＴ／ＦＷ２８、終端ノード３６、ＳＧＳＮ３８、ＧＧＳＮ４０など）として作動することができるエンティティのブロック図を示している図２を参照する。別々のエンティティとして示されているが、一部の実施形態では、１つ又はそれよりも多くのエンティティは、論理的には別々であるがエンティティ内部の同一場所に配置されたネットワークノードの１つ又はそれよりも多くをサポートすることができる。例えば、単一のエンティティは、論理的には別々であるが同一場所に配置された送信元ノード（例えば、固定端末１４、プロキシ１６、ＤＮＳ１８、移動端末３２など）及び中間ノードをサポートすることができる。また、例えば、上述のように、単一のエンティティは、論理的には別々であるが同一場所に配置されたＮＡＴ及びファイアウォール／ゲートウェイをサポートすることができる。
【００２５】
ネットワークノードとして作動することができるエンティティは、本明細書でより詳細に示して説明する機能を含む本発明の例示的な実施形態による１つ又はそれよりも多くの機能を実行するための様々な手段を含む。しかし、エンティティの１つ又はそれよりも多くは、本発明の精神及び範囲から逸脱することなく、１つ又はそれよりも多くの同様の機能を実行するための代替手段を含むことができる点を理解すべきである。より詳細には、例えば、図２に示すように、エンティティは、一般的に、メモリ４４に接続したコントローラ４２又はプロセッサなどのようなエンティティの様々な機能を制御するための手段を含むことができる。コントローラはまた、少なくとも１つのインタフェース４６、又はデータ又はコンテンツなどを送受信するための他の手段に接続することができる。メモリは、揮発性及び／又は不揮発性メモリを含むことができ、典型的にはコンテンツ又はデータなどを格納する。例えば、メモリは、典型的にはコントローラがエンティティの作動に関連付けられた段階を本発明の実施形態に従って実行するためのソフトウエアアプリケーション又は命令などを格納する。また、例えば、メモリは、典型的にはネットワークノードとの間で送受信されるコンテンツを格納する。
【００２６】
図３は、本発明の実施形態に従って移動端末３２として、及び従って送信元ノード２０又は終端ノード３６として作動することができる移動局の機能図を示している。ここに示されて以下に説明される移動局は、単に本発明の恩典を受ける１つのタイプの移動端末の一例にすぎず、従って、本発明の範囲を限定するものととらえるべきではない。例示の目的のために移動局のいくつかの実施形態が示されて以下に説明されるが、携帯情報端末（ＰＤＡ）、ポケットベル、ラップトップコンピュータ、及び他のタイプの音声及びテキスト通信システムのような他のタイプの移動端末は、容易に本発明の実施形態を採用することができる。更に別の実施形態では、パーソナルコンピュータのような固定端末が、代わりに送信元ノード及び／又は終端ノードとしての役目を果たすことができる。
【００２７】
移動局は、本明細書でより詳細に示して説明する機能を含む本発明の例示的な実施形態による１つ又はそれよりも多くの機能を実行するための様々な手段を含む。しかし、移動局は、本発明の精神及び範囲から逸脱することなく、１つ又はそれよりも多くの同様の機能を実行するための代替手段を含むことができる点を理解すべきである。より詳細には、例えば、図３に示すように、移動局は、送信機４８、受信機５０、並びに送信機及び受信機からそれぞれ信号を送受信するコントローラ５２のような手段を含む。これらの信号は、適用可能なセルラーシステムの無線インタフェース規格に従う信号伝達情報、及びユーザ音声及び／又はユーザ作成データを含む。この点において、移動局は、１つ又はそれよりも多くの無線インタフェース規格、通信プロトコル、変調タイプ、及びアクセスタイプで作動することができる。より詳細には、移動局は、いくつかの１Ｇ、２Ｇ、２．５Ｇ、及び／又は３Ｇ通信プロトコルなどのいずれかに従って作動することができる。例えば、移動局は、２Ｇ無線通信プロトコルＩＳ−１３６（ＴＤＭＡ）、ＧＳＭ、及びＩＳ−９５（ＣＤＭＡ）に従って作動することができる。また、例えば、移動局は、２．５Ｇ無線通信プロトコルＧＰＲＳ又は「強化データＧＳＭ環境（ＥＤＧＥ）」などに従って作動することができる。デュアルモード又はそれよりも高いモードの移動局（例えば、デジタル／アナログ又はＴＤＭＡ／ＣＤＭＡ／アナログ電話）であれば、ＴＡＣＳと同様に一部の狭帯域ＡＭＰＳ（ＮＡＭＰＳ）の移動局もまた、本発明の実施形態から恩典を受けることができる。
【００２８】
コントローラ５２は、移動局のオーディオ及び論理機能を実施するために必要な回路を含む。例えば、コントローラは、デジタルシグナルプロセッサ装置、マイクロプロセッサ装置、及び様々なアナログデジタル変換器、デジタルアナログ変換器、及び／又は他のサポート回路から構成することができる。移動局の制御及び信号処理機能は、これらの装置の各機能に従って装置間に配置される。従って、コントローラはまた、変調及び送信前にメッセージ及びデータを畳み込み符号化及びインタリーブするための機能性も含む。コントローラは、更に、内部音声符号器（ＶＣ）５２Ａを含むことができ、内部データモデム（ＤＭ）５２Ｂを含むこともできる。更に、コントローラは、メモリに格納することができる１つ又はそれよりも多くのソフトウエアアプリケーションを作動させるための機能性を含むことができる。
【００２９】
移動局はまた、従来型イヤホン又はスピーカ５４、ベル５６、マイクロフォン６０、ディスプレイ６２、及びユーザ入力インタフェースを含むユーザインタフェースを含み、これらの全てがコントローラ５２に結合されている。移動局がデータを受信することを可能にするユーザ入力インタフェースは、キーパッド６４、タッチディスプレイ（図示しない）、又は他の入力装置のような移動局がデータを受信することを可能にするいくつかの装置のいずれかを含むことができる。キーパッドを含む実施形態では、キーパッドは、従来型の数字（０−９）及び関連キー（＃、*）、並びに移動局を作動させるために用いられる他のキーを含む。
【００３０】
移動局はまた、加入者識別モジュール（ＳＩＭ）６６又は取外し可能ユーザ識別モジュール（Ｒ−ＵＩＭ）などのようなメモリを含むことができ、これらは、典型的には移動加入者に関連する情報要素を格納する。ＳＩＭに加え、移動局は、他のメモリを含むことができる。この点において、移動局は、揮発性メモリ６８並びに他の不揮発性メモリ７０を含むことができ、これらは、埋め込み及び／又は取外し可能にすることができる。例えば、他の不揮発性メモリは、埋め込み又は取外し可能なマルチメディアメモリカード（ＭＭＣ）、ソニー・コーポレーション製造の「メモリスティック」、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどを含むことができる。メモリは、移動局の機能を実施するために移動局によって用いられるいくつかの情報断片及びデータのあらゆるものを格納することができる。例えば、メモリは、移動局を一意的に識別することができる国際携帯電話機体識別番号（ＩＭＥＩ）コード、国際携帯電話加入者識別番号（ＩＭＳＩ）コード、又は移動局総合サービスデジタル通信網（ＭＳＩＳＤＮ）コードなどのような識別子を格納することができる。メモリはまた、送信元ノード２０との間で送受信するコンテンツのようなコンテンツも格納することができる。
【００３１】
移動局はまた、いくつかの異なる有線及び／無線技術のいずれかに従って他のネットワークノードのような電子装置からデータを共有及び／又は取得するための１つ又はそれよりも多くの手段を含むことができる。例えば、移動局は、無線周波数及び／又は赤外線技術に従ってデータを共有及び／又は取得することができるように、無線周波数（ＲＦ）送受信機７２及び／又は赤外線（ＩＲ）送受信機７４を含むことができる。また、例えば、移動局は、Ｂｌｕｅｔｏｏｔｈ転送技術に従ってデータを共有及び／又は取得することができるように、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）送受信機７６を含むことができる。図示していないが、移動局は、追加で又は代替的に、ローカルエリアネットワーク（ＬＡＮ）及び／又は無線ＬＡＮ（ＷＬＡＮ）及び／又は他の無線技術を含むいくつかの異なる有線及び／又は無線ネットワーキング技術に従って、電子装置との間でデータを送受信することができる。
【００３２】
［背景技術］の節で上述のように、送信元ノード２０のようなＩＰ装置が移動端末のような終端ノード３６とのＩＰ接続を開始することを可能にするための従来技術は、公衆ネットワーク１２（例えば、「インターネット」）のような公衆ドメインの制約を無視し、これは、公衆ネットワークを各々のプライベートネットワーク２４に相互接続するのにＮＡＴ／ＦＷ２８の使用をもたらす。すなわち、そのような技術は、利用可能なパブリックＩＰアドレスの制約を無視する。従って、本発明の実施形態は、終端ノードが、セルラー又はそうでなければ移動ネットワークのようなプライベートネットワーク内に常駐する場合に、終端ノードと通信するための改善されたシステム及び方法を提供する。より詳細には、本発明の実施形態は、公衆ネットワーク内の送信元ノードからプライベートネットワーク内の終端ノードに非ＩＰベースのメッセージを送信し、それによって終端ノードに送信元ノードとのＩＰベースの通信を開始させることにより、公衆ネットワーク内の送信元ノードがプライベートネットワーク内の終端ノードと通信することを可能にするシステム、終端ノード、方法、及びコンピュータプログラム製品を提供する。この点において、送信元ノード（すなわち、クライアント）は、終端ノードがトランスポートレベル接続を開始するのを待つ点でサーバのように機能する。同様に、終端ノード（すなわち、サーバ）は、非ＩＰベースのメッセージに応答して送信元ノードとのトランスポートレベル接続を開始する点でクライアントのように機能する。
【００３３】
標準（例えば、バークレー）ソケットのアプリケーションプログラムインタフェース（ＡＰＩ）の使用を通じて透過的に、又は仮想ソケットＡＰＩの使用を通じて、ＴＣＰ／ＩＰクライアント及びサーバアプリケーションに「仮想ソケット」インタフェースを提供するいくつかのフレームワークが提案されている。ＴＣＰ／ＩＰアプリケーションによるこれらの仮想ソケットの使用は、標準ソケットＡＰＩに類似するか又は同一な場合さえある（すなわち、仮想ソケットは、ＴＣＰ／ＩＰアプリケーションに対して透過とすることができる）。しかし、これらの仮想ソケットは、ＴＣＰ／ＩＰプロトコルスタックを用いてエンドツーエンド接続を作成するためのＡＰＩを提供する以外に、エンドツーエンドのＴＣＰ／ＩＰセッションをサポートするいくつかの拡張サービスも提供する。例えば、「エンドツーエンドセッションサポート（ｅ２ｅ−ＳＳ）」サービスは、エンドツーエンドの移動性のサポート、及びＴＣＰソケットレベルでの接続断に備えるサポートを提供する。このようなｅ２ｅ−ＳＳサービスの例は、ＭｏｂｉｌｅＳｏｃｋｅｔ（例えば、Ｔ．Ｏｋｏｓｈｉ、Ｍ．Ｍｏｃｈｉｚｕｋｉ、Ｙ．Ｔｏｂｅ、及びＨ．Ｔｏｋｕｄａ著「Ｊａｖａアプリケーションのための継続作動に向けて」、ＩＥＥＥコンピュータ通信及びネットワークに関する国際会議（ＩＣＣＣＮ）、１９９９年を参照）、ＲＯＣＫＳ／ＲＡＣＫＳ（例えば、Ｖ．Ｚａｎｄｙ及びＢ．Ｍｉｌｌｅｒ著「信頼性の高いネットワーク接続」、「ＡＣＭ  ＭＯＢＩＣＯＭ」、２００２年９月を参照）、移動ＴＣＰソケット（例えば、Ｘ．Ｑｕ、Ｊ．Ｘｕ  Ｙｕ、及びＲ．Ｂｒｅｎｔ著「移動ＴＣＰソケット」、ソフトウエアエンジニアリング（ＳＥ）に関する国際会議、１９９７年１１月を参照）、及びＭｉｇｒａｔｅ（例えば、Ａ．Ｓｎｏｅｒｅｎ著「インターネットの移動性のためのセッションベースのアーキテクチャ」、博士論文、ＭＩＴ、２００３年２月を参照）を含む。
【００３４】
これらのフレームワークは、エンドノードにより又はエンドノードにおいて全体的に実行されるか又は場合によってはエンドノードと共に作用するプロキシにより実行されるかに関わらず、それらがアプリケーションとエンド（すなわち、送信元及び終端）ノードのネイティブシステムネットワーキングサポートとの間にそれ自体を介入させることでサポートを提供し、異なるエンドノードのアプリケーション層間の通信を助けるので、通信ミドルウェアとして特徴付けることができる。このようなミドルウェアは、典型的には標準ソケットＡＰＩを用いて必要に応じて実際のネットワークソケットを作成、変更、及び破棄することができる。この作成、変更、及び破棄は、ＴＣＰ／ＩＰアプリケーションに対して透過であり、ＴＣＰ／ＩＰアプリケーションは、アプリケーションとミドルウェアとの間に作成された仮想ソケットしか認識しない。これらのフレームワークの１つの特性は、このようなフレームワークがインフラストラクチャー又はいずれの中間ノードに対してもサポートを要求することなく、２つのエンドノードの協働を要求するにすぎない点である。本発明の例示的な実施形態は、このようなフレームワークを利用して、典型的にはアプリケーションに対する変更又はいずれの中間ノードに対する特殊設定も行うことなく、クライアント及びサーバが協働してＮＡＴ／ファイアウォール全探索問題に対処することを可能にする。
【００３５】
ミドルウェアは、それを通じてアプリケーションが通信することができる仮想ソケットインタフェースをＴＣＰ／ＩＰアプリケーションに設けることができる。仮想ソケットを使用すると、ＩＰアドレスの変更、接続断、及びＴＣＰの満了を処理するために発生及び必要に応じて実際のネットワークソケットを破棄及び置換することができる。仮想ソケットは、ネットワーク（すなわち、システム）層で発生している事柄からＴＣＰ／ＩＰアプリケーションを分離させる。従って、アプリケーションは、実際の（本物の）ネットワーキングソケットを開く代わりに、アプリケーション層とミドルウェア層の間の仮想ネットワーキングソケットであるミドルウェアに対するソケットを開き、ミドルウェアが、ネットワーク（システム）層との実際のネットワーキングソケットを開く。それによってミドルウェアは、アプリケーションに影響を与えることなく実際のネットワーク接続を作成及び破棄することができ、従って、アプリケーション層をネットワーク層から分離する。上述のように、仮想ソケットは、アプリケーションに対して透過であるので、ＴＣＰ／ＩＰアプリケーションには、アプリケーションが仮想ソケットではなく実ソケットと通信しているように見える。一部の手法では、アプリケーションが仮想ソケットを認識して、ミドルウェアがアプリケーションの通信を制御していることを認識することができる場合がある。ミドルウェアにより、エンドノードは、接続断及び他の不具合に関して実際の通信接続をモニタ及びサポートすることができ、かつ移動環境におけるＴＣＰ接続に関連する問題のような通信接続関連の問題からアプリケーション層のアプリケーションを保護することができる。ミドルウェアは、典型的にはインフラストラクチャー又は中間ノードに対してサポートを全く要求しない。むしろミドルウェアは、エンドノードの各々に常駐して、ミドルウェアがアプリケーションのネットワーク接続をサポートするために機能する方法に関してエンドノードの協働を可能にする。基本的に、通信をサポートするための情報はインフラストラクチャーからエンドノードに移されている。従って、ミドルウェアは、アドホックシナリオ及びインフラストラクチャーのサポートのないシナリオを含むトランスポートレベル接続のための適切な解決法である。
【００３６】
図４を参照すると、本発明の例示的な一実施形態によりＮＡＴ及び／又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立する方法の流れ図が示されている。本発明の実施形態は、ミドルウェアを使用して送信元ノードから終端ノードに非ＩＰベースのメッセージを送信し、それによって終端ノードに送信元ノードとのＩＰベースの通信を開始させる。プライベートネットワーク内に位置するサーバ（すなわち、終端ノード）は、サーバが通信要求を受信することができるようにサーバソケット（リスニングソケットとも呼ばれる）を作成することができ、それに応答してミドルウェアが、通常はサーバに仮想サーバソケットを戻すことになる。図４のブロック１５０を参照されたい。公衆ネットワーク内に位置するホストのクライアントアプリケーション（すなわち、「クライアントエンド」又は送信元ノード）が終端ノードのサーバアプリケーションに接続するためにソケット（クライアントソケット又は接続ソケットと呼ばれる）を作成すると、ミドルウェアは、クライアントアプリケーションに仮想クライアントソケットを戻すことになる。ブロック１５２を参照されたい。ミドルウェアはまた、標準ソケットＡＰＩを使用して送信元ノードにおいて実サーバソケット（又はリスニングソケット）も作成する。ブロック１５４を参照されたい。ミドルウェアは、次に、非ＩＰベース（帯域外とも呼ばれる）の通信機構（例えば、口頭伝達、電話技術、テキストメッセージング、無線周波数（ＲＦ）通信、ショートメッセージングサービス（ＳＭＳ）通信、マルチメディアメッセージングサービス（ＭＭＳ）通信、インスタントメッセージ、アドホックネットワークリンク、近視野通信（例えば、無線周波数識別）、又は赤外線リンク）を用いて、送信元ノードが通信を望んでいるノード（すなわち、プライベートネットワーク内に位置する終端ノード）に対してメッセージを送信する。ブロック１５６を参照されたい。この非ＩＰベースのメッセージは、送信元ノードがＴＣＰ／ＩＰ接続を確立したいことを終端ノードに通知する。このメッセージは、典型的には送信元ノードのサーバソケット（すなわち、リスニングソケット）を識別する情報、例えば、リスニングソケットのＩＰアドレス及びポート番号のような情報、及びセキュリティ情報（例えば、パスワード又は公開暗号化鍵）のようなＴＣＰ／ＩＰ接続の確立に必要な可能な他のあらゆるパラメータを含む。更に、このメッセージは、セキュリティを更に高めるために暗号化することができる。メッセージが暗号化される場合、送信元ノード及び終端ノードは、典型的にはメッセージの暗号化／復号化を可能にするための暗号化鍵を共有するように事前設定されるであろう。送信元ノードがこの非ＩＰベースのメッセージを終端ノードに送信することができるように、送信元ノードのミドルウェアは、典型的には、クライアントアプリケーションにより使用されるＩＰベースの識別子（例えば、ＩＰアドレス又はＤＳＮ名）を、対応する非ＩＰベースの通信方法を通じて終端ノードに通信メッセージを送信するために使用することができる非ＩＰベースの識別子（例えば、電話番号、電子メールアドレス、ＩＭスクリーン名）に変換するための相互参照表のような情報を含む。相互参照表は、例えば、（クライアントアプリケーションが特定のサーバとのＴＣＰ／ＩＰ接続を要求するために使用することができる）ＤＮＳ名と（クライアントのミドルウェアが特定のサーバのミドルウェアにＳＭＳメッセージを送信するために使用することができる）対応する携帯電話番号との間の相互参照を含むことができる。このメッセージは、終端ノード内に位置するミドルウェアによって受信することができる。ブロック１５８を参照されたい。このメッセージを受信すると、終端ノード内に位置するミドルウェアは、次に、典型的には、ネイティブソケットＡＰＩを用いてクライアントソケットを作成し、送信元ノードでリスン中のサーバソケットに接続する。ブロック１６０を参照されたい。このＴＣＰ／ＩＰ接続は、プライベートネットワーク内部のノード（すなわち、終端ノード）によって開始されるので、ＴＣＰ／ＩＰ接続が公衆ネットワーク内部のノード（すなわち、送信元ノード）によって開始された場合よりも成功する確率が高い。送信元ノードのミドルウェアは、次に、サーバソケットに対する接続を受け入れる（典型的には何らかのセキュリティハンドシェイクの後に）。ブロック１６２を参照されたい。送信元ノードのサーバソケットは、典型的には、クライアントソケットからの接続要求のサーバソケットの受入が成功したことを示す「受入成功」メッセージを受信する。ブロック１６４を参照されたい。クライアントアプリケーションは、アプリケーション層とミドルウェア層との間に（仮想）クライアントソケットを開いているので、クライアントソケットは、「接続成功」メッセージの受信を予期している。従って、ミドルウェアは、サーバソケットで受信した受入成功メッセージを接続成功メッセージに変換し、次に、このメッセージを仮想クライアントソケットで受信することができる。ブロック１６６を参照されたい。同時に又は殆ど同時に、終端ノードのクライアントソケットは、典型的には、サーバソケットへのクライアントソケットの接続要求が成功したことを示す「接続成功」メッセージを受信する。ブロック１６８を参照されたい。サーバアプリケーションは、アプリケーション層とミドルウェア層との間に（仮想）サーバソケットを開いているので、サーバソケットは、「受入成功」メッセージの受信を予期している。従って、ミドルウェアは、典型的にはクライアントソケットで受信した接続成功メッセージを受入成功メッセージに変換し、次に、このメッセージを仮想サーバソケットで受信することができる。ブロック１７０を参照されたい。これが行われた状態で、ＩＰベースの接続リンクが確立され、ＴＣＰ／ＩＰデータは、クライアントとサーバアプリケーションとの間を流れることができる。ブロック１７２を参照されたい。接続は、典型的にはノードの一方によって終了されるまで開いたままになる。
【００３７】
図５を参照すると、本発明の例示的な一実施形態による図４及び上記で詳細を示す方法によりＮＡＴ及び／又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立することができるシステムの機能ブロック図が示されている。図５のシステム８０は、公衆ネットワーク８６内に送信元ノード８２及びプライベートネットワーク内部に終端ノード８４を含む。終端ノード８４は、ＮＡＴ／ファイアウォール９０の背後に位置する。ＮＡＴ／ファイアウォール９０は、ＮＡＴ、ファイアウォール、又はその両方のいずれかとすることができることを認めるべきである。送信元ノード８２及び終端ノード８４の両方は、３つの層、すなわち、アプリケーション層９２、ミドルウェア層９４、及びシステム層９６を含む。アプリケーション層９２の内部に、送信元ノードは、クライアントアプリケーション９８及びミドルウェアＡＰＩ１００を含む。ミドルウェアＡＰＩは、クライアントアプリケーションの作動を送信元ノードのミドルウェア１０２と協働させるように制御信号８６に指令する。同様に、アプリケーション層９２の内部に、終端ノードは、サーバアプリケーション１１４及びミドルウェアＡＰＩ１１６を含む。ミドルウェアＡＰＩは、サーバアプリケーションの作動を終端ノードのミドルウェア１１８と協働させるように制御信号８６に指令する。
【００３８】
送信元ノード及び終端ノードの両方において、ミドルウェア１０２、１１８は、アプリケーション層との仮想ソケット通信を制御するためのトップハンドラ１０４、１２０、及びネットワーク層との実際のネットワークソケット通信との通信を制御するためのデフォルトハンドラ１０８、１２４を含むことができる。上述のように、仮想クライアントソケット１１２は、クライアントアプリケーション９８とミドルウェア１０２との間に確立することができ、実サーバソケット１３２は、送信元ノードにおいてミドルウェア１０２により確立することができる。更に、仮想サーバソケット１２６は、終端ノードにおいてサーバアプリケーション１１４とミドルウェア１１８との間に確立することができる。ミドルウェア１０２は、典型的にはＮＡＴ及び／又はファイアウォール全探索サービス１０６を含む。仮想クライアントソケット１１２を作成すると、ＮＡＴ及び／又はファイアウォール全探索サービスは、非ＩＰベースの通信要求メッセージ１３０を送信するように非ＩＰ通信装置１１０に指令することができる。上述のように、非ＩＰベースの通信要求メッセージ及び非ＩＰ通信装置１１０は、あらゆる数の異なる通信方法を利用することができる。非ＩＰベースの通信メッセージ１３０は、典型的には、終端ノードにおいて対応する非ＩＰ通信装置１２８により受信されるであろう。非ＩＰベースの通信要求メッセージ１３０を受信すると、ＮＡＴ及び／又はファイアウォール全探索サービス１２２は、典型的には実クライアントソケット１３４を作成する。典型的には、何らかのハンドシェイクの後、トランスポートレベル通信接続１３６が、クライアントソケット１３４とサーバソケット１３２との間に確立されると考えられる。
【００３９】
本発明の例示的な一態様によれば、ネットワークノードのようなシステムのエンティティの１つ又はそれよりも多くによって実行される機能は、上述を含むハードウエア及び／又はファームウエアのような様々な手段により、単独で及び／又はコンピュータプログラム製品の制御下で実行することができる。本発明の実施形態の方法を実行するためのコンピュータプログラム製品は、不揮発性記憶媒体のようなコンピュータ読取可能記憶媒体、及びコンピュータ読取可能記憶媒体に具体化された一連のコンピュータ命令のようなコンピュータ読取可能プログラムコード部分を含む。
【００４０】
この点において、図４は、本発明による方法及びプログラム製品の流れ図である。流れ図の各段階及び流れ図における段階の組合せは、コンピュータプログラム命令により実施することができることが理解されるであろう。これらのコンピュータプログラム命令は、コンピュータ又は他のプログラマブル装置上で実行される命令が流れ図の段階に指定された機能を実施するための手段を発生させるように、コンピュータ、又は機械を生成するための他のプログラマブル装置上にロードすることができる。これらのコンピュータプログラム命令はまた、コンピュータ読取可能メモリに格納された命令が流れ図の段階に指定された機能を実施する命令手段を含む製品を発生させるように、コンピュータ又は他のプログラマブル装置に特定の方法で機能するように指令することができるコンピュータ読取可能メモリに格納することができる。コンピュータプログラム命令はまた、コンピュータ又は他のプログラマブル装置上にロードされて、コンピュータ又は他のプログラマブル装置上で実行される命令が流れ図の段階に指定された機能を実施するための段階を発生させるように、コンピュータ又は他のプログラマブル装置上で一連の作動段階を実行させてコンピュータ実装処理を発生させることができる。
【００４１】
更に、流れ図の段階は、指定された機能を実行するための手段の組合せ、指定された機能を実行するための段階の組合せ、及び指定された機能を実行するためのプログラム命令手段をサポートする。流れ図の各段階及び流れ図における段階の組合せは、指定された機能又は段階を実行する特殊用途のハードウエアベースのコンピュータシステム、又は特殊用途のハードウエア及びコンピュータ命令の組合せにより実施することができることも理解されるであろう。
【００４２】
以上の説明及び関連図面で示された教示から恩典を受ける本発明に関連する当業者は、本発明の多くの修正及び他の実施形態を想起するであろう。従って、本発明は、開示された特定的な実施形態に限定されるのではなく、修正及び他の実施形態が特許請求の範囲に含まれるように想定されていることは理解されるものとする。本明細書では特定の用語を用いているが、それらは、一般的及び説明的な意味でのみ用いられており、限定する目的ではない。
【図面の簡単な説明】
【００４３】
【図１】送信元ノード、中間ノード、及び終端ノードが直接的又は間接的に双方向で結合された少なくとも１つの移動ネットワーク及び少なくとも１つの公衆及び／又はプライベートネットワークを含む本発明の実施形態から恩典を受ける通信システムの略ブロック図である。
【図２】本発明の実施形態に従ってネットワークノードとして作動することができるエンティティの略ブロック図である。
【図３】本発明の実施形態に従って移動端末として作動することができる移動局の略ブロック図である。
【図４】本発明の例示的な一実施形態によりＮＡＴ及び／又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立する方法の流れ図である。
【図５】本発明の例示的な一実施形態によりＮＡＴ及び／又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立することができるシステムの機能ブロック図である。
【符号の説明】
【００４４】
１０  システム
１２  公衆ネットワーク
１４  固定端末
１６  プロキシ
【図１】
2008547299.tif 000003
【図２】
2008547299.tif 000004
【図３】
2008547299.tif 000005
【図４】
2008547299.tif 000006
【図５】
2008547299.tif 000007
【国際調査報告】
2008547299.tif 000008
2008547299.tif 000009
2008547299.tif 000010
2008547299.tif 000011