【誤訳訂正書】
【提出日】平成24年1月26日(2012.1.26)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】デバイスのためのＷｅｂサービスによるネットワーク間移動
【技術分野】
【０００１】
自動化ネットワークアドレス決定と移動ピア間の通信を容易化するシステムおよび方法に関する。
【背景技術】
【０００２】
ネットワークアドレストランスレータ(network address translator NAT)は、データパケットのインターネットプロトコル(Internet Protocol IP)アドレスとＴＣＰ／ＵＤＰポート番号を、パケットが転送されるとき変換できるデバイスである。例えば、複数のコンピュータがインターネットに接続されているスモールビジネスネットワークは、かかる接続のためにＮＡＴを採用することが可能になっている。このタイプのビジネスは、ネットワーク上の各コンピュータのパブリックＩＰアドレスを、インターネットサービスプロバイダ(Internet service provider ISP)から取得する必要があるのが通常である。しかし、ＮＡＴがあると、スモールビジネスはプライベートアドレッシングを使用し、ＮＡＴに自社のプライベートアドレスを単一または複数のパブリックＩＰアドレスにマッピング（対応付け）させることができる。ＮＡＴは、複数のコンピュータをインターネットに接続するのではなく、インターネットへの単一接続の使用をてこにし、プライベートアドレッシングを使用し、およびプロキシサーバを配置しなくてもインターネットリソースへのアクセスを可能にする、といった要求条件を組み合わせたときの共通ソリューションになっている。また、これらのトランスレータは、内部ＩＰアドレスを隠すことによって一種のファイアウォールによる保護の働きをし、企業のプライベートドメインの外のアドレスとの衝突の可能性がないことから、企業はより多くの内部ＩＰアドレスを採用することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＮＡＴテクノロジの大きな障害の１つは、ネットワークトラフィックを変換するために採用できる異種プロトコルが複数存在することである。例えば、多くのコンシューマまたはホームコンピュータは、Cone、Full Cone、またはRestricted Cone ＮＡＴテクノロジを利用しており、これによると、一部のルータはＵＤＰトラフィックではCone ＮＡＴとして挙動し、ＴＣＰトラフィックでは対称ＮＡＴとして挙動することができる。企業の状況では、対称ＮＡＴがハードウェアまたはソフトウェアのファイアウォールと併用して採用される傾向がある。現在では、異種タイプのプロトコルを利用して通信するためには、これらのプロトコルの１つを利用して通信するようにＮＡＴを正しく構成するために集中的手作業による構成が要求されている。しかし、多くのネットワーク状況では、リモートアプリケーション間で通信を行なうためには２以上のプロトコルを採用することが要求されている。
【０００４】
ホストがあるネットワークから別のネットワークに移動するとき別の問題が起こっており、そこでは、ホストは自身のネットワークアドレスを割り当てるためにローカルネットワークに頼っていることがある。このアドレスは、インターネット上の完全なルート可能(routable)アドレスである場合もあれば、ネットワークアドレストランスレーション(Network Address Translation NAT)システムの背後に隠れたルート不能(un-routable)アドレスである場合もある。これらのホストは、ダイナミックＩＰアドレスまたはＮＡＴ（変換）されたＩＰアドレスとして一般に知られているものを持っている。ＮＡＴ（変換）されたＩＰアドレスを持つデバイスは、その特定ホストサービスのためにＮＡＴシステムによって再マッピングされるポートを、なんらかの方法で登録するのでなければ、サービスのための着信ＴＣＰ接続を受け入れる能力を備えていないのが一般である。インターネット上のホストが、そのサービスのためのこの割り当てられたアドレスまたはマッピングされたポートを、ドメインネームシステム(Domain Name System DNS)またはサービスなどの、通常のアドレスディスカバリ手段(address discovery means)を使用して見つけることは、一般的に不可能である。ダイナミックＩＰ問題（ダイナミックＤＮＳ）を解決するためのサービスはいくつかが存在するが、これらのサービスはキャッシング(caching)ＤＮＳサーバと共に機能しないのが一般であり、またダイナミックポート番号を解決できないのも一般である。
【課題を解決するための手段】
【０００５】
以下では、ここに説明されているいくつかの態様を基本的に理解できるように概要を要約して説明している。この概要は広範囲にわたって概説したものでも、主要／重要なエレメントを特定したり、ここに説明されている種々の態様の範囲を限定したりするものでもない。ここでの唯一の目的は、後述するより詳細な説明の前置きとしていくつかの概念を簡単に説明することである。
【０００６】
移動またはモバイルネットワークデバイス間の通信機能を自動的に決定し、構成するためのシステムおよび方法が提供される。手作業で構成し、大きなサーバシステムに事前登録しておく必要があった従来システムに起こっていた問題は、ホストが関連移動サービスのインターネットプロトコル(Internet Protocol IP)アドレスとポート番号を、追加のサービス情報と一緒に見つけるために採用できる決定サービスを作成することによって軽減されている。例えば、あるデバイスまたはコンポーネントがネットワークアドレストランスレータ(Network Address Translator NAT)システムを通してＩＰアドレスを取得し、ポートをマッピングしたあと、そのデバイスはそれぞれの決定サービスにコンタクトして、その対応するＩＰ／ポートのペアを自動的に登録することができる。その決定サービスまたは別の決定サービスは、関心のある他のネットワークコンポーネントを自動的に／ダイナミックに見つけるためにも採用することができる。決定サービスは、スタティックＩＰアドレスに置いておくことも、必要ならば周知ポート番号に置いておくこともできるが、そこには、例えば、周知または事前決定ポートＩＤを通して、ＤＹＮ−ＤＮＳ（Dynamic Domain Name Service：ダイナミックドメインネームサービス）を使用してダイナミックコンポーネントを含めておくこともできる。決定サービス自体を決定するために他の決定方法を採用することができる（例えば、ＰＮＲＰは決定サービスを見つけるために使用することができる）。
【０００７】
決定サービスは標準のＤＮＳまたはダイナミックＤＮＳを使用して決定することができるが、オプションとしてピアネットワーク決定プロトコル(Peer Network Resolution Protocol)を使用して決定することもできる。移動ホスト上のサービスにコンタクトすることに関心のあるホストは、決定プロバイダまたはサービスにコンタクトして、移動デバイスの最後に分かっているＩＰアドレスとポートを決定するのが一般的である。そのあと、これらのモバイルホストは、そのＩＰ／ポートのペアに置かれたサービスに直接にコンタクトすることができる。このソリューションがその他の可能とされるソリューションよりも有利であることの１つは、一般的にセントラルサーバまたはインターネットのインフラストラクチャの変更を必要としないことである。決定される問題の具体例として、２またはそれ以上のラップトップが、一方のラップトップではＷｅｂサービスホスト(Web Service Host)を使用して、他方のラップトップではＷｅｂサービス(Web Service)を使用して世界中を移動するときがある。これらのラップトップは、１つの具体例におけるホテルとホストポート(hostport)のように、「公衆」ネットワーク上の移動ゲストである。従って、一方のラップトップは原料価格設定情報を持ち、他方のラップトップは、販売員のために販売価格ガイダンスをダイナミックに生成するために原料を採用している。以上から理解されるように、例えば、骨董品やワインの先物(wine futures)といったように、種々のアプリケーションをサポートすることができる。システムの他の態様としては、１つの例において種々の自動化アドレス決定と構成をサポートするためにカスケード接続ＮＡＴコンポーネントを走査できるようにするＮＡＴ走査システムおよび方法がある。
【０００８】
上述した目的および関連目的を達成するために、以下では、下述する説明および添付図面と関連づけながら、いくつかの態様を例示して説明する。これらの態様は、実施できる種々の方法を示しており、これらの方法のすべては本発明の範囲に含まれるものである。その他の利点と新規特徴は、添付図面と関連付けて考慮するときに以下の詳細説明の中で明らかにする。
【発明を実施するための最良の形態】
【０００９】
自動化ネットワークアドレス決定と移動ピア間の通信を容易化するシステムおび方法が提供される。一態様では、ネットワーク通信システムが提供されている。システムは、決定プロバイダを現在のホストアドレス(current host address)で更新する方法および移動ホストサービスアドレスとポート情報を決定する方法を備えている。その他のプロセスとしては、ネットワークアドレストランスレータを通してポートをオープンするプロセスおよびネットワークアドレストランスレータに関連してポートをオープンするプロセスがある。
【００１０】
本明細書の中で用いられている「コンポーネント(component)」、「トランスレータ(translator)」、「システム(system)」、「オブジェクト(object)」などの用語は、コンピュータ関連のエンティティ、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのことを指している。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル(executable)、実行スレッド(thread of execution)、プログラム、および／またはコンピュータにすることができるが、これらに限定されない。例を挙げると、あるサーバ上で実行されるアプリケーションとそのサーバは共にコンポーネントになることができる。１または２以上のコンポーネントはプロセスおよび／または実行スレッド内に置いておくことができ、コンポーネントは１つのコンピュータ上に置いておくことおよび／または２またはそれ以上のコンピュータ間に分散させることができる。また、これらのコンポーネントは、種々のデータ構造がそこにストアされている種々のコンピュータ可読媒体から実行させることができる。コンポーネントは、例えば、１または２以上のデータパケット（例えば、ローカルシステム、分散システムに置かれた別のコンポーネントとやりとりする、および／またはインターネットなどのネットワーク上で信号を通して他のシステムとやりとりする、あるコンポーネントからのデータ）からなる信号に従ってローカルおよび／またはリモートプロセスを通して通信することができる。
【００１１】
最初に図１を参照して説明すると、図１は自動化移動および決定システム１００を示している。システム１００は、１または２以上の移動デバイス１２０がネットワーク上の通信を確立することができるネットワーク（例えば、インターネット）を備えている。システム１００は、デバイス１２０のためのネットワークアドレスを決定する決定プロバイダ(resolution provider)１３０と自動化アドレス決定を容易化するディスカバリコンポーネント(discovery component)１４０を備えている。イベントコンポーネント(event component)１５０は、デバイス１２０があるロケーションから別のロケーションに移動するときのデバイスのルーチング変更で決定プロバイダ１３０またはディスカバリコンポーネント１４０を更新するために用意することができる。走査コンポーネント(traversal component)１６０は、デバイス１２０またはネットワークからデバイスへのルートアドレスを隔離するために、言い換えれば、ファイアウォールサポートを得るために用意することができる。走査コンポーネント１６０は、複数のＮＡＴプロトコルに従って動作する１または２以上のネットワークアドレストランスレータ（ＮＡＴ）を備えることができる。この種のプロトコルを使用すると、１または２以上のエンドユーザアプリケーション間の通信が可能になる。
【００１２】
一態様では、システム１００は、一般的にセントラルサーバまたはインターネットインフラストラクチャの変更を不要にして、関連デバイスのロケーションを決定できるようにするシステムを提供している。決定プロバイダ１３０は、例えば、フレンドリなデバイスネーム、ＧＵＩＤ、パブリックＩＰ／ポートのペア、プライベートＩＰ／ポートのペア、ＮＡＴトンネル満了時間、およびデバイスへルーチングするポートをストアしておくことができる。デバイス決定プロバイダは、例えば、ＤＮＳルックアップを通して到達できるスタティックまたはダイナミックＩＰアドレスに置かれた周知ポート上で稼動することができる。デバイス１２０は、必要ならば、１または２以上のデバイス決定プロバイダに現在のロケーションを登録することができる。決定プロバイダ１３０は、フレンドリネームを使用してドメインネームサービス（Domain Name Service DNS）からアクセス可能であるのが一般である。決定プロバイダ１３０は、フレンドリなデバイスネームまたはＧＵＩＤのトランスポートアドレスの要求に応答する。また、決定プロバイダ１３０はクエリ(query)のためのアクセスコントロールリスト(access control list ACL)を有している場合があるので、セキュアソケット(secure socket)、例えば、クライアントおよびサーバ証明(certificate)を使用したＳＳＬ／ＴＬＳ、共有機密(shared secret)または他のタイプのセキュリティメカニズムを通して、ロケーション更新を認証することができる。
【００１３】
システム１００によると、移動またはモバイルネットワークデバイス１２０間の通信機能を自動的に決定し、構成することができる。手作業で構成し、大きなサーバシステムに事前登録する必要のあった従来システムに起こっていた問題は、ホストが関連移動サービスのインターネットプロトコル（ＩＰ）アドレスとポート番号を、追加のサービス情報と一緒に見つけるために採用できる決定サービスを作成することによって軽減されている。例えば、あるデバイス１２０またはコンポーネントがネットワークアドレストランスレータ（ＮＡＴ）コンポーネント１６０を通してＩＰアドレスを取得し、ポートをマッピングしたあと、そのデバイスはそれぞれの決定サービスにコンタクトして、その対応するＩＰ／ポートのペアを自動的に登録することができる。同様に、そのデバイスは同じまたは別の決定サービス１３０にコンタクトして、関心のある他のネットワークコンポーネントを自動的に／ダイナミックに見つけることができる。決定サービスはスタティックＩＰアドレスに、および必要ならば周知ポート番号に置いておくことができるが、そこには、例えば、周知または事前決定ポートＩＤを通してＤＹＮ−ＤＮＳ（ダイナミックドメインネームサービス）を使用するダイナミックコンポーネントを含めておくこともできる。また、決定サービスは、ＰＮＲＰ（Peer Name Resolution Protocol:ピアネーム決定プロトコル）対ＤＮＳゲートウェイＰＮＲＰを直接に使用して見つけることも、別のネーム対アドレス決定サービスを使用して見つけることもできる。
【００１４】
決定サービスまたはプロバイダ１３０は、そのトランスポートアドレスの内部データベースを使用してアドレスを決定することができる。移動ホスト上のサービスにコンタクトすることに関心のあるホストは、決定プロバイダ１３０またはサービスにコンタクトして、移動デバイス１２０の最後の分かっているＩＰアドレスとポートを決定するのが一般である。そのあと、これらのモバイルホストは、そのＩＰ／ポートのペアに置かれたサービスに直接にコンタクトすることができる。このソリューションがその他の可能とされるソリューションよりも有利であることの１つは、一般的にセントラルサーバまたはインターネットインフラストラクチャの変更を必要としないことである。システム１００によって解決される問題の具体例として、２またはそれ以上のラップトップが、一方のラップトップではＷｅｂサービスを使用して、別のラップトップではＷｅｂサービスクライアントを使用して異なるロケーション上で動作する場合がある。以上から理解されるように、種々の通信アプリケーションをサポートすることができる。その他の態様としては、一例においてカスケード接続ＮＡＴコンポーネント１６０が走査(traverse)されてデバイス１２０のために自動化アドレス決定とポートマッピングをサポートするようにしたＮＡＴ走査(traversal)システムと方法がある。
【００１５】
図２および図３は、移動デバイスのための自動化アドレス決定プロセスを示す図である。説明を簡略化するために、方法は一連の動作(act)または複数の動作として示され、説明されているが、当然に理解されるように、ある動作は、ここで図示され、説明されている順序とは異なる順序でおよび／または他の動作と同時並行に行なわれることがあるので、本方法は動作の順序に限定されない。例えば、この分野の精通者ならば理解されるように、本方法は、ステート図におけるように、相互に関連のある一連のステートまたはイベントとして表わすことも可能である。さらに、方法をここで説明しているように実現するために図示の動作すべてが必要になるとは限らない。
【００１６】
次に図２を参照して説明すると、図２には例示の決定プロバイダプロセス２００が示されている。この態様では、決定プロバイダを現在のホストトランスポートアドレスで更新するための方法が２１０において示されている。この方法は、２２０で決定プロバイダを更新するためのメッセージを送信し、２３０でパラメータを決定プロバイダに送信することを含んでいる。例えば、移動ホストサービスは、例えば、WS-Eventingメッセージを使用して、ロケーション変更イベントと共に決定プロバイダにＳＯＡＰメッセージを送信する。２３０では、このイベントとしては、例えば、サービスのフレンドリネーム、ＧＵＩＤ、ルート可能パブリックＩＰ／ポートのペア、プライベートＩＰ／ポートのペア、ＩＰアドレスリースタイム(lease time)およびＮＡＴトンネルリースタイム(tunnel lease time)がある。
【００１７】
２４０には、移動ホストのサービスアドレスとＩＰポートを決定するための方法が示されている。この方法は、２５０で有向(directed)ＷＳディスカバリを通してホストのアドレスを決定し、２６０でディスカバリ要求に対する応答としてトランスポートアドレスに一致したもの(transport address match)を返送する。この例では、ホストのサービスアドレスとポートを決定するために、クライアントホストはグローバルにユニークなＩＤ(globally unique identifier GUID)を使用し、決定プロバイダに対して有向ディスカバリを使用して決定を行なう。２６０で、決定プロバイダは応答として、ホストのサービスアドレスに関するアドレスとポート情報を収めている、決定で一致したもの(resolve-match)を返送する。
【００１８】
図３は、ネットワークアドレストランスレータを走査(traverse)するための例示プロセス３００を示す図である。決定プロバイダを現在のホストアドレスで更新し、カスケード接続ネットワークアドレストランスレータ（ＮＡＴ）をオープンするための方法３００が示されている。このプロセス３００は、３１０でＮＡＴまたはファイアウォールパラメータを自動的に見つけ(discover)、３２０でネットワークアドレスを要求することを含んでいる。これに基づいて、３３０で移動デバイスのためのアドレスがデバイスプールから選択される。３４０で、決定プロバイダはデバイスに対する応答として、通信のための外部アドレスを返送し、３５０では、複数のカスケード接続ＮＡＴが自動的にオープンされる。以下では、具体例を示してプロセス３００を説明する。
【００１９】
ＮＡＴまたはファイアウォールの背後に隠れているホストは、これらがインターネットからシールドされているため、外部で開始された接続(external initiated connections)を受け入れることができないことを、最初に知る必要がある。外部アクセスを取得することを望んでいるホストは、例えば、ＷＳディスカバリ（ＷＳＤ）を使用してＷＳＤ対応(WSD enabled)ＮＡＴ／ファイアウォールを探すためにサーチする必要がある。そのあと、ホストは外部ＩＰアドレスとポートのペアをＷＳＤ対応ＮＡＴ／ファイアウォールに要求する。ホストは、外部開始接続を受け入れることを許可されていることを証明するためにセキュリティクリデンシャルをＮＡＴ／ファイアウォールに提示することができる。ＮＡＴ／ファイアウォール（ＮＡＴ／ＦＷ）は、そのデバイスＩＰプールからインターネットプロトコル（ＩＰ）アドレスを、そのＩＰアドレスのプールからポートを選択したあと、そのポートとＩＰをホストの内部ＩＰ／ポートのペアにマッピング（対応付け）することができる。そのあと、ＮＡＴ／ファイアウォールは、ホストに対する応答として、外部でマッピングされたＩＰアドレスとポート番号を、例えば、リースタイム(lease time)と一緒に返送する。３５０には、カスケード接続ＮＡＴをオープンするためのプロセスが提供されている。例えば、ホストがカスケード接続された２または３以上のＮＡＴの背後に置かれているとき、上位ＮＡＴ／ＦＷのために、例えば、ＷＳディスカバリを実行して、ホストのポートとＩＰアドレスをその外部ポートの１つにマッピングすることを要求するのは下位ＮＡＴの責任である。他方、上位ＮＡＴ／ＦＷはルート可能ＩＰ／ポートのペアをマッピングし、その値を下位ＮＡＴに返すことができる。ホストデバイスまたは下位ＮＡＴのクリデンシャルは、各ＮＡＴがポートをオープンするのを許可するために採用することができる。
【００２０】
図４は、アドレス決定のためのシステム４００の例を示す図である。この例では、内部ネットワーク内のＷＳストレージサービスのためのデジタルカメラクライアント４１０が提供されている。カメラ４１０は、次のようなシーケンスでイメージを直接にパーソナルコンピュータ４２０上にストアする。ストレージサービス（ＷＳＳＳ）は、例えば、Ｗｅｂサービスベースのインターネットゲートウェイデバイス(Internet Gateway Device IGD) wsdlを使用して外部ＩＰ／ポートのペアを要求する。次に、ＷＳＳＳは、ＩＧＤに置くことができるその決定サービスに登録更新を送信する。ＩＧＤはＷＳＳＳのために外部ＩＰ／ポートのペアと内部ＩＰ／ポートのペアをストアし、ＩＧＤディスカバリサービスは、ＷＳＳＳの決定要求を探すためにリッスン(listen for)する。カメラ４１０がＩＧＤの外部アドレス上のディスカバリサービスに接続すると、ＩＧＤは、ローカルにマッピングされたデバイスから発信された決定メッセージを検出する。ＩＧＤは、ストレージサービスの内部ＩＰとポートのペアを決定し、カメラ４１０はラップトップ４２０のストレージサービスに直接に接続される。カメラ４１０（または任意のネットワークデバイス）は、プリンタサービス４３０またはほぼどのような他のサービスのためにも、これを繰り返すことができる。
【００２１】
次に図５を参照して説明すると、図には、外部ネットワークロケーション決定システム（(external network location resolution system)５００の例が示されている。この例では、例示システム５００は次のように動作することができる。すなわち、カメラ５１０（または他の移動デバイス）は、ＩＧＤの外部アドレス上のディスカバリサービスに接続され、そのトランスポートアドレス情報を更新する。ストレージサービス５２０は新しいネットワークに移動し、ＩＧＤ上のトランスポートアドレス情報を更新する。カメラ５１０はストレージサービス５２０と通信して、決定要求をＩＧＤに送信する。ＩＧＤは、例えば、インターネットにまたがるストレージサービスのＩＰとポートのペアを決定する。そのあと、カメラ５１０は、そのパブリックアドレスとリバース(reverse)ＮＡＴを介してラップトップのストレージサービスに直接に接続される。ストレージサービスは、カメラを決定する必要が起こることがあるが、これは決定メッセージをＩＧＤに送信することで行なうことができる。
【００２２】
次に図６を参照して説明すると、図には、代替外部ネットワークロケーション決定システム６００の例が示されている。この例では、例示システム６００は次のように動作する。すなわち、カメラ６１０（または他のデバイス）はＩＧＤの外部アドレス上のディスカバリサービスに接続される。ＩＧＤはストレージサービスのパブリックＩＰとポートのペアを決定する。カメラ６１０はパブリックアドレスとリバースＮＡＴを介してラップトップ６２０のストレージサービスに直接に接続される。カメラ６２０はプリンタ６３０（または他のデバイス）のＷｅｂサービスに対してクエリを繰り返し、ＩＧＤのパブリックアドレスとリバースＮＡＴを介してプリンタまたは他のデバイスに接続される。
【００２３】
次に図７を参照して説明すると、図には、ネットワークアドレストランスレータ走査システム(network address translator traversal system)７００が例示されている。この例では、システムはインターネットルート可能ＩＰアドレスとポートをＷＳＤデバイスに提供し、１つまたは多数のＮＡＴの背後に置かれている可能性のあるＷＳＤデバイスにそのルート可能ＩＰ／ポートのペア上のＴＣＰトンネルを提供している。これの例として、ＷＳＤクライアントおよびサーバとしてのＩＧＤ２（７１０）とＩＧＤ１（７２０）があり、そこではＩＧＤ０（７３０）はＷＳＤサーバとディスカバリプロキシになっている。ラップトップ７４０は外部ＩＰとポートのペアをローカルＩＧＤ（ＩＧＤ２）７１０に要求する。ＩＧＤ２はポートをマッピングし、外部ポートペアマッピングを上位ＩＧＤ１（７２０）に要求する。ＩＧＤ１はポートをマッピングし、外部ポートペアマッピングを上位ＩＧＤ０（７３０）に要求する。ＩＧＤ０はポートをマッピングし、ＩＧＤ１（７２０）に対する応答として外部ＩＰアドレスとポートのペアとリースタイムを返送する。ＩＧＤ１は外部ＩＰ／ポートをＩＧＤ２（７１０）に渡し、ＩＧＤ２からこのＩＰ／ポートのペアはラップトップ７４０（または他のコンピューティングデバイス）に渡される。これを受けて、ラップトップ７４０は外部ＩＰ／ポートのペアを使用してそのロケーションを決定プロバイダに登録することができる。
【００２４】
図８は、クライアントシステムとサービスのためのディスカバリシステム８００の例を示す図である。システム８００は、ディスカバリプロトコル８３０を通して１または２以上の目標サービス８２０に通信することを求める１または２以上のクライアント８１０を含んでいる。図示のように、接続を確立するために、１または２以上のプローブ８４０がクライアント８１０とサービス８２０の間に送られ、そこでは、これらのプローブに応答してそれぞれのメッセージがサービス８２０から送られるようになっている。
【００２５】
一般的に、マルチキャストディスカバリプロトコル(multicast discovery protocol)が用意され、サービス８２０を見つけることを可能にしている。ディスカバリの主要モードでは、クライアント８１０は１または２以上の目標サービス８２０を探すためにサーチする。目標サービスのタイプ、目標サービスが置かれている範囲またはその両方によって目標サービス８２０を見つけるために、クライアントはプローブメッセージ８４０をマルチキャストグループに送信し、そのプローブに一致した目標サービスはそのクライアント８１０に直接に応答を送信する。ターゲットサービスのトランスポートアドレスを名前によって見つけるために、クライアント８１０は決定要求メッセージを同じマルチキャストグループに送信し、この場合も、一致した目標サービス８２０はそのクライアントに直接に応答を送信する。ポーリングの必要性を最小限にするために、目標サービスはネットワークに加わるとき、アナウンスメントメッセージを同じマルチキャストグループに送信する。このマルチキャストグループを探すためにリッスンすることにより、クライアント８１０は、プローブを繰り返さなくても、新たに利用可能になったターゲットサービスを検出することができる。
【００２６】
大多数のエンドポイントに合わせてスケーラブルにするには、ディスカバリプロキシがネットワーク上で利用可能であれば、マルチキャスト抑止挙動 (multicast suppression behavior)を得ることができる。具体的に説明すると、ディスカバリプロキシがマルチキャストによって送信されたプローブまたは決定要求を検出すると、ディスカバリプロキシは自身でアナウンスメントを送信する。これらのアナウンスメントを探すためにリッスンすることにより、クライアントはディスカバリプロキシを検出し、ディスカバリプロキシ固有プロトコル(discovery proxy-specific protocol)を使用するように切り換える。しかし、ディスカバリプロキシが無応答である場合は、クライアントは元に戻って、ここで説明しているプロトコルを使用する。
【００２７】
ＤＨＣＰ、ＤＮＳ、ドメインコントローラ、ディレクトリなどのような、明示的ネットワーク管理サービスでネットワークをサポートするために、クライアントおよび／または目標サービスは、ここで定義されているのと異なった挙動をするように構成することができる。例えば、別の規格は、ディスカバリプロキシのアドレスを収めている周知ＤＨＣＰレコードを定義している場合があるが、その規格に準拠するためには、エンドポイントはマルチキャストグループにではなく、このディスカバリプロキシにメッセージを送信する必要がある。このような構成の具体的手段は種々の異なるプロセスの中で提供できるが、このような構成のいずれかを使用すると、クライアントおよび／または目標サービスは慎重に管理され、アドホック(ad hoc)なネットワーク間でスムーズに移行できることが期待される。複数のディスカバリプロキシを使用することもできる。例えば、セル電話はワークディスカバリプロキシとホームディスカバリプロキシでそのトランスポートアドレスを更新することができる。そのセル電話上のロケーションを決定するクライアントは、どちらのプロキシを使用しても、それを決定することができる。
【００２８】
以下は例示プローブメッセージのＸＭＬ例を示している。
【００２９】
【表１】
2008539672.tif 000001
【００３０】
上記の例の行(07-09)はメッセージがプローブ(Probe)であることを示し、行(13)はそのメッセージが周知アドレスに送信されることを示している［RFC 2141］。明示のReplyTo SOAPヘッダブロック［WS-Adressing］がないので、このプローブに対するどの応答も、プローブトランスポートヘッダのソースＩＰアドレスとポートにＵＤＰパケットとして送信されることになる。行(17-21)はプローブに２つの制約を指定している。行(17)は、基本的プリントタイプ(Type)を実現する目標サービス(Target Services)に対する応答を制約している。行(18-21)は、例えば、エンジニアリング部門に対するスコープ(Scope)内のターゲットサービスに対する応答を制約している。一般的に、これらの制約の両方を満足する目標サービスだけが応答する。両方の制約が例に含まれているが、どちらか一方を含めるにはプローブは必要ない。
【００３１】
以下のＸＭＬ例は、上記例に記述されているプローブメッセージに応答する、プローブに一致したもの(probe match)の例を示している。
【００３２】
【表２】
2008539672.tif 000002
【００３３】
上記プローブ応答メッセージにおける行(07-09)はこのメッセージがプローブに一致したもの(Probe Match)であることを示し、行(13-15)は、プローブに一致したものがこの例示応答に先行するプローブメッセージに対する応答であることを示している。このプローブには、明示のReplyTo SOAPヘッダブロックがないので、行(16-18)は、応答がプローブのトランスポートヘッダのソースＩＰアドレスとポートに送信されたことを示している。行(22-35)は単一の目標サービスを記述している。行(23-27)は、ネットワークインタフェースを通して一定である、目標サービスのための安定したユニークＩＤ、トランスポートアドレス、およびIPv4/v6を記述している。このケースでは、値はＵＵＩＤ方式のＵＲＩであるが、安定性とユニーク性の要件を満たしていればトランスポートＵＲＩ（行(33)のそれと同じ）にすることもできる。行(28)は目標サービスによって実現されているタイプ（例えば、［WSDL 1.1］参照）、この例では、プローブに一致した基本プリントタイプとアドバンスドプリントタイプ(advanced print type)とをリストしている。
【００３４】
行(29-32)は、２つの管理スコープをリストしており、１つはプローブに一致したもの、もう１つは特定の物理ロケーションに固有のものである。行(33)は目標サービスに到達できる場所のトランスポートアドレス、このケースでは、シングルＨＴＴＰトランスポートアドレスを示している。行(34)は目標サービスのメタデータのバージョンを記述している。このバージョンは、目標サービスのメタデータに変更があるとインクリメントされる（行28-33を含む）。
【００３５】
ここに開示した主題の種々の態様のコンテキストを示すために、図９と図１０は以下の説明と共に、開示した主題の種々の態様を実現できる適切な環境を要約して、概説することを目的としている。この主題は、コンピュータおよび／または複数のコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令という一般的なコンテキストの中で上述されているが、この分野の精通者ならば理解されるように、本発明は他のプログラムモジュールと組み合わせて実現することも可能である。一般的に、プログラムモジュールの中には、特定のタスクを実行するおよび／または特定の抽象データタイプを実現するルーチン、プログラム、コンポーネント、データ構造などが含まれている。さらに、この分野の精通者ならば理解されるように、方法は他のコンピュータシステム構成で実施することが可能であり、その構成の中には、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータのほかに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス（例えば、パーソナルデジタルアシスタント(personal digital assistant PDA)、電話、時計など）、マイクロプロセッサベースまたはプログラマブルな家庭用または産業用エレクトロニクスなどが含まれている。図示の態様は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施することも可能である。しかし、すべてではないとしても、一部の態様はスタンドアロンコンピュータで実施することもできる。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のメモリストレージデバイスに置いておくことができる。
【００３６】
図９を参照して説明すると、種々の態様を実現する例示環境９１０はコンピュータ９１２を含んでいる。コンピュータ９１２は処理ユニット９１４、システムメモリ９１６およびシステムバス９１８を装備している。システムバス９１８は、システムメモリ９１６を含むシステムコンポーネントを処理ユニット９１４に結合しているが、システムメモリに限定されない。処理ユニット９１４は、種々の利用可能プロセッサのいずれにすることもできる。処理ユニット９１４には、デュアルマイクロプロセッサおよびその他のマルチプロセッサアーキテクチャを採用することも可能である。
【００３７】
システムバス９１８は複数のタイプのバス構造のいずれにすることも可能であり、その中には、種々の利用可能バスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスが含まれており、またバスアーキテクチャの中には、１１ビットバス、ＩＳＡ(Industrial Standard Architecture)、ＭＳＡ(Micro-Channel Architecture)、ＥＩＳＡ(Extended ISA)、ＩＤＥ(Intelligent Drive Electronics)、ＶＥＳＡローカルバス（ＶＬＢ）、ＰＣＩ(Peripheral Interconnect)、ＵＳＢ(Universal Serial Bus)、ＡＧＰ(Advanced Graphics Port)、ＰＣＭＣＩＡ(Personal Computer Memory Card International Association)バス、CardBUS、Bluetooth、Firewire 1394、およびＳＣＳＩ(Small Computer Systems Interface)が含まれているが、これらに限定されない。
【００３８】
システムメモリ９１６には、揮発性メモリ９２０と不揮発性メモリ９２２が含まれている。スタートアップ時のときのように、コンピュータ９１２内のエレメント間で情報を転送するのを支援する基本ルーチンを含む基本入出力システム(basic input/output system BIOS)は、不揮発性メモリ９２２にストアされている。例示すると、不揮発性メモリ９２２には、リードオンリメモリ(read only memory ROM)、プログラマブルＲＯＭ(ＰＲＯＭ)、電気的プログラマブルＲＯＭ(ＥＰＲＯＭ)、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、またはフラッシュメモリがあるが、これらに限定されない。揮発性メモリ９２０には、外部キャッシュメモリの働きをするランダムアクセスメモリ(random access memory RAM)がある。例示すると、ＲＡＭは、同期ＲＡＭ（ＳＲＡＭ)、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）ダブルデータレートＳＤＲＡＭ（ＤＤＲ ＳＤＲＡＭ）、エンハスドＳＤＲＡＭ（ＥＳＤＲＡＭ）、SynchlinkＤＲＡＭ（ＳＬＤＲＡＭ）およびダイレクトRambusＲＡＭ（ＲＤＲＡＭ）のように多数の形体のものがあるが、これらに限定されない。
【００３９】
コンピュータ９１２は、取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も装備している。図９には、ディスクストレージ９２４が例示されている。ディスクストレージ９２４には、磁気ディスクドライブ、フロッピディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブなどのドライブ、フラッシュメモリカード、またはメモリスティックがあるが、これらに限定されない。さらに、ディスクドライブ９２４としては、単独で使用または他の記憶媒体と組み合わせて使用される記憶媒体があるが、その中には、コンパクトディスクＲＯＭ(CD‐ROM)デバイス、ＣＤ書き込み可能ドライブ(CD-R drive)、ＣＤ書き換え可能ドライブ(CD-RW drive)またはデジタルバーサタイルディスクＲＯＭ(DVD-ROM)ドライブなどの光ディスクドライブが含まれるが、これらに限定されない。ディスクストレージデバイス９２４をシステムバス９１８に接続するのを容易にするために、インタフェース９２６のような、取り外し可能または取り外し不能インタフェースが使用されているのが代表的である。
【００４０】
図９から理解されるように、図９は、ユーザと適当な動作環境９１０の中で説明されている基本的コンピュータリソースとの間の仲介の働きをするソフトウェアを記述している。このソフトウェアはオペレーティングシステム９２８を含んでいる。オペレーティングシステム９２８はディスクストレージ９２４にストアしておくことができ、コンピュータシステム９１２のリソースを制御し、割り振る働きをする。システムアプリケーション９３０はオペレーティングシステム９２８によるリソース管理を、システムメモリ９１６またはディスクストレージ９２４のどちらかにストアされたプログラムモジュール９３２とプログラムデータ９３４を通して利用する。当然に理解されるように、ここに開示されている主題は、種々のオペレーティングシステムまたはオペレーティングシステムの組み合わせで実現することができる。
【００４１】
ユーザは、１または２以上のインプットデバイス９３６を通してコマンドまたは情報を入力する。インプットデバイス９３６としては、マウスなどのポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、ＴＶチューナ、デジタルカメラ、デジタルビデオカメラ、Ｗｅｂカメラ、などがあるが、これらに限定されない。これらのインプットデバイスおよびその他のインプットデバイスは、１または２以上のインタフェースポート９３８を経由するシステムバス９１８を通して処理ユニット９１４に接続されている。インタフェースポート９３８としては、例えば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス(universal serial bus USB)がある。アウトプットデバイス９４０は同一タイプのポートの一部を１または２以上のインプットデバイス９３６として使用している。従って、例えば、ＵＳＢポートはコンピュータ９１２にインプットを与え、コンピュータ９１２からの情報をアウトプットデバイス９４０に出力するために使用することができる。アウトプットアダプタ９４２が設けられているのは、他のアウトプットデバイス９４０の中で特にモニタ、スピーカ、プリンタのように特別なアダプタを必要とするアウトプットデバイス９４０が存在するからである。アウトプットデバイス９４２としては、例を挙げると、アウトプットデバイス９４０とシステムバス９１８との間を接続する手段となるビデオカードおよびサウンドカードがあるが、これらに限定されない。当然に理解されるように、他のデバイスおよび／またはデバイスのシステムは、リモートコンピュータ９４４のようにインプットとアウトプットの両方の機能を備えている。
【００４２】
コンピュータ９１２は、リモートコンピュータ９４４のような、１または２以上のリモートコンピュータとの論理的接続を使用したネットワーキング環境で動作することができる。リモートコンピュータ９４４としては、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの機器、ピアデバイスまたは他の共通ネットワークノードなどが可能であり、コンピュータ９１２に関連して上述したエレメントの多くまたはすべてを備えているのが代表的である。説明を簡単にするために、メモリストレージデバイス９４６だけがリモートコンピュータ９４４と共に示されている。１または２以上のリモートコンピュータ９４４はネットワークインタフェース９４８を通して論理的にコンピュータ９１２に接続され、そのあと通信接続９５０を介して物理的に接続されている。ネットワークインタフェース９４８はローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）などの通信ネットワークを包含している。ＬＡＮテクノロジとしては、ＦＤＤＩ(Fiber Distributed Data Interface)、ＣＤＤＩ（Copper Distributed Data Interface）、Ethernet（登録商標）/IEEE 802.3、トークンリング/IEEE 802.5などがある。ＷＡＮテクノロジとしては、ポイントツーポイントリンク、ＩＳＤＮ(Integrated Services Digital Networks)とその変種などの回線交換ネットワーク(circuit switching network)、パケット交換ネットワーク、ＤＳＬ(Digital Subscriber Lines)、802.11G、802.11A/B、802.11N、Zigbee、Ultra Wideband、Bluetooth、ＩＲＤＡ、およびＩＰ／ＵＳＢがある。
【００４３】
通信接続９５０とは、ネットワークインタフェース９４８をバス９１８に接続するために採用されたハードウェア／ソフトウェアのことである。通信接続９５０は説明を明確化するためにコンピュータ９１２の内部に示されているが、コンピュータ９１３の外部に置くことも可能である。ネットワークインタフェース９４８に接続するために必要なハードウェア／ソフトウェアとしては、正規電話グレードモデム(regular telephone grade modem)、ケーブルモデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、およびEthernet（登録商標）カードなどの、内部テクノロジと外部テクノロジがあるが、これらは単なる例示である。
【００４４】
図１０は、サンプルのコンピューティング環境１０００を示す概略ブロック図である。システム１０００は１または２以上のクライアント１０１０を含んでいる。クライアント１０１０はハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）にすることができる。システム１０００は１または２以上のサーバ１０３０も含んでいる。サーバもハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）にすることができる。サーバ１０３０は、例えば、変換を実行するスレッドを収容することができる。クライアント１０１０とサーバ１０３０の間の１つの可能な通信形体として、２またはそれ以上のコンピュータプロセス間で送信されるのに適したデータパケットがある。システム１０００はクライアント１０１０とサーバ１０３０の間の通信を容易にするために採用できる通信フレームワーク１０５０を備えている。１または２以上のクライアント１０１０は、クライアント１０１０側に置かれた情報をストアするために採用できる１または２以上のクライアントデータストア１０６０に操作可能に接続されている。同様に、１または２以上のサーバ１０３０は、サーバ１０３０側に置かれた情報をストアするために採用できる１または２以上のサーバデータストア１０４０に操作可能に接続されている。
【００４５】
以上、種々の態様を例示して説明してきた。当然のことであるが、これらの態様を説明するためにコンポーネントまたは方法の想到し得る組み合わせのすべてを説明することは不可能であるが、この分野の通常の知識を有するものならば理解されるように、さらに多くの組み合わせおよび置換が可能である。従って、ここに説明されている態様は、請求項に記載されている本発明の精神と範囲に属する、かかる変更、改良および変形のすべてを包含するものである。さらに、本明細書の詳細な説明または請求項のどちらにおいても、その中で「を含む、を備えた(include)」という用語が用いられている範囲において、かかる用語は、「を含む、を備えた(comprising)」が請求項の中で移行用語として採用されるときに解釈されるように、「を含む、を備えた(comprising)」の用語と同じように包含的なものである。
【図面の簡単な説明】
【００４６】
【図１】ネットワーク移動および決定システムを示す概略ブロック図である。
【図２】決定プロバイダプロセスを示すフロー図である。
【図３】ＮＡＴ解決プロセスを示すフロー図である。
【図４】自動化アドレス解決と判断のためのシステム例を示す図である。
【図５】自動化アドレス解決と判断のためのシステム例を示す図である。
【図６】自動化アドレス解決と判断のためのシステム例を示す図である。
【図７】自動化アドレス解決と判断のためのシステム例を示す図である。
【図８】クライアントシステムとサービスのためのディスカバリシステム例を示す図である。
【図９】適当な動作環境を示す概略ブロック図である。
【図１０】サンプルのコンピューティング環境を示す概略ブロック図である。
【誤訳訂正２】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを備えるネットワーク通信システムであって、
前記少なくとも１つのプロセッサがコンピュータ実行可能な命令を実行して、
（１）決定プロバイダであって、
（１−１）ＳＯＡＰメッセージを受け取って、該ＳＯＡＰメッセージによって与えられるフレンドリネームとルート可能パブリックアドレス／ポートのペアとアドレス満了時間とトンネル満了時間とのうちの少なくとも１つを含む、少なくとも１つのネットワークデバイスのためのアドレス情報をストアし、
（１−２）クライアントデバイスからの決定要求の受信に応答して、目標サービスを提供する少なくとも１つのネットワークデバイスのためのネットワークアドレス／ポート情報を自動的に決定し、
（１−３）少なくとも１つのネットワークアドレストランスレータにアクセスするよう前記クライアントデバイスのセキュリティクリデンシャルを処理し、該クライアントデバイスが許可されているならば前記ＮＡＴとの通信のために外部アドレス／ポート情報を返すことによって、カスケード接続のネットワークアドレストランスレータに配置された前記少なくとも１つのネットワークアドレストランスレータの背後にあるポートをオープンするのを容易にする
よう構成された決定プロバイダと、
（２）ディスカバリコンポーネントであって、
（２−１）前記クライアントデバイスの前記外部アドレス／ポート情報を前記少なくとも１つのネットワークアドレストランスレータの外部ポートにマッピングし、
（２―２）前記少なくとも１つのネットワークデバイスのためのネットワークアドレスの決定を容易にするために、
前記クライアントデバイスから、前記目標サービスに関係する少なくとも１つの所望の特徴を含む第１のプローブメッセージを受信し、
前記少なくとも１つの所望の特徴を有する前記目標サービスを提供する前記少なくとも１つのネットワークデバイスへ第２のプローブメッセージを送る
よう構成され、
（２−３）前記第２のプローブメッセージが、前記クライアントデバイスに直接に応答メッセージを送ることによって前記少なくとも１つのネットワークデバイスが前記第１のプローブメッセージに応答できるようにするための、前記少なくとも１つの所望の特徴と前記クライアントデバイスのアドレスとを含む
ディスカバリコンポーネントと、
を提供することを特徴とするネットワーク通信システム。
【請求項２】
請求項１に記載のネットワーク通信システムにおいて、クライアントと関連付けられていて、１または２以上のＮＡＴタイプを決定して選択するために採用されたクエリコンポーネントをさらに含むことを特徴とするネットワーク通信システム。
【請求項３】
請求項１に記載のネットワーク通信システムにおいて、前記決定プロバイダを移動アドレス情報で更新するイベントコンポーネントをさらに含むことを特徴とするネットワーク通信システム。
【請求項４】
請求項１に記載のネットワーク通信システムにおいて、前記クライアントデバイスと前記目標サービスを提供する前記少なくとも１つのネットワークデバイスとの間の接続を決定する少なくとも１つのプロトコルディスカバリコンポーネントをさらに含むことを特徴とするネットワーク通信システム。
【請求項５】
請求項１に記載のネットワーク通信システムにおいて、前記決定プロバイダを現在のホストアドレスで更新するコンポーネントをさらに含むことを特徴とするネットワーク通信システム。
【請求項６】
請求項１に記載のネットワーク通信システムにおいて、移動ホストサービスアドレスとポートを決定するコンポーネントをさらに含むことを特徴とするネットワーク通信システム。
【請求項７】
請求項１に記載のネットワーク通信システムにおいて、前記決定プロバイダまたは前記ディスカバリコンポーネントが、そこにストアされているコンピュータ可読命令を有するコンピュータ可読媒体によって実行されることを特徴とするネットワーク通信システム。
【請求項８】
請求項１に記載のネットワーク通信システムにおいて、前記クライアントデバイスがカメラであり、前記少なくとも１つのネットワークデバイスがストレージデバイス又はプリンタであることを特徴とするネットワーク通信システム。
【請求項９】
少なくとも１つのプロセッサが実行するネットワークディスカバリ方法であって、
少なくとも１つのプロセッサが、
ＳＯＡＰメッセージを処理して、該ＳＯＡＰメッセージによって与えられるフレンドリネームとルート可能パブリックアドレス／ポートのペアとアドレス満了時間とトンネル満了時間とのうちの少なくとも１つを含む、少なくとも１つのネットワークデバイスのためのアドレス情報をストアし、
プローブメッセージを、少なくとも１つの移動クライアントコンポーネントからディスカバリサービスを介して少なくとも１つの目標サービスへ送り、前記プローブメッセージに、前記少なくとも１つの目標サービスに関係する少なくとも１つの応答制約を含め、
前記少なくとも１つの目標サービスから、前記少なくとも１つの移動クライアントコンポーネントに関連するソースＩＰアドレスへ直接に送られるプローブメッセージであって、前記少なくとも１つの目標サービスが前記少なくとも１つの応答制約を満たすことを示す情報を含むプローブメッセージを受け取り、
前記プローブメッセージに基づいて、前記少なくとも１つの目標サービスのためのネットワークアドレス／ポート情報を自動的に決定し、
２つ以上のネットワークアドレストランスレータ（ＮＡＴｓ）にアクセスするよう前記少なくとも１つの移動クライアントのセキュリティクリデンシャルを処理することによって、前記ネットワークアドレストランスレータ（ＮＡＴｓ）のポートをオープンするのを容易にし、
前記少なくとも１つの移動クライアントコンポーネントが許可されるならば、前記ネットワークアドレストランスレータとの通信のための外部アドレス／ポート情報を返し、
前記少なくとも１つの移動クライアントコンポーネントの前記外部アドレス／ポート情報を前記ネットワークアドレストランスレータの外部ポートにマッピングする
ことを特徴とするネットワークディスカバリ方法。
【請求項１０】
請求項９に記載のネットワークディスカバリ方法であって、前記少なくとも１つの移動クライアントコンポーネントから前記少なくとも１つの目標サービスと直接に通信することを更に含むことを特徴とする方法。
【請求項１１】
ネットワークディスカバリシステムであって、
ＳＯＡＰメッセージを処理して、該ＳＯＡＰメッセージによって与えられるフレンドリネームとルート可能パブリックアドレス／ポートのペアとアドレス満了時間とトンネル満了時間とのうちの少なくとも１つを含む、少なくとも１つのネットワークデバイスのためのアドレス情報をストアするための手段と、
クライアントと少なくとも１つの目標ネットワークコンポーネントとの間で通信するための手段と、
プローブメッセージを、ディスカバリサービスを介して前記少なくとも１つの目標ネットワークコンポーネントへ送り、前記プローブメッセージに、前記少なくとも１つの目標サービスに関係する少なくとも１つの応答制約を含めるための手段と、
前記少なくとも１つの目標ネットワークコンポーネントから、前記少なくとも１つの目標ネットワークコンポーネントが前記少なくとも１つの応答制約を満たすことを示す情報を含むプローブメッセージを受け取るための手段と、
前記クライアントと前記少なくとも１つの目標ネットワークコンポーネントとの間の通信に基づいて、前記少なくとも１つの目標ネットワークコンポーネントのためのネットワークアドレス／ポート情報を決定するための手段と、
２つ以上のカスケード接続ネットワークアドレストランスレータにアクセスするよう前記クライアントのセキュリティクリデンシャルを処理し、前記クライアントが許可されるならば、前記ネットワークアドレストランスレータとの通信のための外部アドレス／ポート情報を返し、前記クライアントの前記外部アドレス／ポート情報を前記ネットワークアドレストランスレータの外部ポートにマッピングすることにより、前記ネットワークアドレストランスレータのポートをオープンするための手段と
を少なくとも１つのプロセッサによって実行することを特徴とするネットワークディスカバリシステム。
【請求項１２】
少なくとも１つのプロセッサを備えるネットワーク通信システムであって、
前記少なくとも１つのプロセッサがコンピュータ実行可能な命令を実行して、
（１）インターネットゲートウェイ上で実現される決定プロバイダであって、
（１−１）ＳＯＡＰメッセージを受け取って、フレンドリネームとＧＵＩＤとルート可能パブリックアドレス／ポートペアとアドレス満了時間とトンネル満了時間とのうちの少なくとも１つを含む、少なくとも１つのネットワークデバイスのためのアドレス情報をストアし、
（１−２）クライアントデバイスからの決定要求の受信に応答して、目標サービスを提供する少なくとも１つのネットワークデバイスのためのネットワークアドレス／ポート情報を自動的に決定し、
（１−３）２つ以上のカスケード接続されたネットワークアドレストランスレータにアクセスするよう前記クライアントデバイスのセキュリティクリデンシャルを処理し、該クライアントデバイスが許可されるならば前記ネットワークアドレストランスレータとの通信のために外部アドレス／ポート情報を返すことによって、前記ネットワークアドレストランスレータのポートをオープンするのを容易にする
よう構成された決定プロバイダと、
（２）前記インターネットゲートウェイ上で実現されるディスカバリコンポーネントであって、
（２−１）前記クライアントデバイスの前記外部アドレス／ポート情報を前記ネットワークアドレストランスレータの外部ポートにマッピングし、
（２―２）前記少なくとも１つのネットワークデバイスのためのネットワークアドレスの決定を容易にするために、
前記クライアントデバイスから、前記目標サービスに関係する少なくとも１つの所望の特徴を含む第１のプローブメッセージを受信し、
前記少なくとも１つの所望の特徴を有する前記目標サービスを提供する前記少なくとも１つのネットワークデバイスへ第２のプローブメッセージを送る
よう構成され、
（２−３）前記第２のプローブメッセージが、前記クライアントデバイスに直接に応答メッセージを送ることによって前記少なくとも１つのネットワークデバイスが前記第１のプローブメッセージに応答できるようにするための、前記クライアントデバイスのソースＩＰアドレス及びポートを含むトランスポートヘッダと前記少なくとも１つの所望の特徴とを含む
ディスカバリコンポーネントと、
（３）前記クライアントデバイスと前記少なくとも１つのネットワークデバイスとのうちの少なくとも一方のルート変更により、前記解決プロバイダ又は前記ディスカバリコンポーネントを更新するイベントコンポーネントと、
（４）前記クライアントデバイスと公衆ネットワークとの間の通信手段として構成された走査コンポーネントと
を提供することを特徴とするネットワーク通信システム。
【誤訳訂正３】
【訂正対象書類名】図面
【訂正対象項目名】図１
【訂正方法】変更
【訂正の内容】
【図１】
2008539672.tif 000003
【誤訳訂正４】
【訂正対象書類名】図面
【訂正対象項目名】図２
【訂正方法】変更
【訂正の内容】
【図２】
2008539672.tif 000004