(57)【要約】  自動化ネットワークアドレス判断およびローミングピア間の通信を容易化するシステムと方法が提供されている。一態様では、ネットワーク通信システムが提供されている。このシステムは、解決プロバイダをカレントホストトランスポートアドレスで更新するための方法およびローミングホストサービスアドレスとポート情報を判断するための方法を含んでいる。その他のプロセスとしては、ネットワークアドレストランスレータとファイアウォールを通してポートをオープンし、マッピングするプロセスおよびカスケード接続ネットワークアドレストランスレータに関連してポートをオープン／マッピングするプロセスがある。
2008539672.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上のローミングネットワークデバイスのためのネットワークアドレスを自動的に判断する解決プロバイダと、
１または２以上のローミングネットワークデバイスのためのネットワークアドレスの判断を容易化するディスカバリコンポーネントと
を含むことを特徴とするネットワーク通信システム。
【請求項２】
請求項１に記載のネットワーク通信システムにおいて、少なくとも１つのネットワークアドレストランスレータコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項３】
請求項２に記載のネットワーク通信システムにおいて、クライアントと関連付けられていて、１または２以上のＮＡＴタイプを判断し、選択するために採用されたクエリコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項４】
請求項１に記載のネットワーク通信システムにおいて、解決プロバイダをローミングアドレス情報で更新するイベントコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項５】
請求項１に記載のネットワーク通信システムにおいて、ローミングネットワークデバイス間のコネクションを判断する少なくとも１つのプロトコルディスカバリコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項６】
請求項１に記載のネットワーク通信システムにおいて、解決プロバイダをカレントホストアドレスで更新するコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項７】
請求項１に記載のネットワーク通信システムにおいて、第１クライアントコンポーネントから第２クライアントコンポーネントに初期化パケットを送信する関数を、さらに含むことを特徴とするネットワーク通信システム。
【請求項８】
請求項１に記載のネットワーク通信システムにおいて、シンプルオブジェクトアクセスプロトコルメッセージを送信するコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項９】
請求項１に記載のネットワーク通信システムにおいて、サービスフレンドリネーム、ＧＵＩＤ、ルート可能パブリックアドレスとポートのペア、アドレスリースタイム、およびトンネルリースタイムをストアするコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１０】
請求項１に記載のネットワーク通信システムにおいて、ローミングホストサービスアドレスとポートを判断するコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１１】
請求項１０に記載のネットワーク通信システムにおいて、ディスカバリコンポーネントからのサービスアドレスとポートをプローブするクライアントコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１２】
請求項１１に記載のネットワーク通信システムにおいて、クライアントコンポーネントに対する応答として、アドレスとポート情報がプローブに一致するものを返送する解決プロバイダを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１３】
請求項１に記載のネットワーク通信システムにおいて、ネットワークアドレストランスレータ（ＮＡＴ）の背後でポートをオープンするコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１４】
請求項１３に記載のネットワーク通信システムにおいて、ＮＡＴからの外部アドレスとポート情報を判断するディスカバリコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１５】
請求項１４に記載のネットワーク通信システムにおいて、ディスカバリコンポーネントに従ってセキュリティクリデンシャルを処理するコンポーネントを、さらに含むことを特徴とするネットワーク通信システム。
【請求項１６】
請求項１に記載のネットワーク通信システムにおいて、解決プロバイダまたはディスカバリコンポーネントを実行するためのコンピュータ可読命令がそこにストアされているコンピュータ可読媒体を、さらに含むことを特徴とするネットワーク通信システム。
【請求項１７】
プローブメッセージを少なくとも１つのローミングクライアントコンポーネントから少なくとも１つのターゲットサービスに送信し、
プローブ応答メッセージをターゲットサービスから受信し、
ローミングクライアントコンポーネントのためのネットワークアドレスを、部分的にプローブ応答メッセージに基づいて自動的に判断する
ことを含むことを特徴とするネットワークディスカバリ方法。
【請求項１８】
請求項１７に記載の方法において、外部インターネットプロトコル（ＩＰ）アドレスとポートを生成するコンポーネントを、さらに含むことを特徴とする方法。
【請求項１９】
請求項１８に記載の方法において、さらに、
ＩＰアドレスとポートをマッピングし、
２またはそれ以上のカスケード接続ネットワークトランスレータ（ＮＡＴ）をオープンし、
アドレスとポート情報をＮＡＴ間でルーチングする
ことを含むことを特徴とする方法。
【請求項２０】
少なくとも２つのネットワークコンポーネント間で通信する手段と、
ネットワークコンポーネント間でプローブメッセージを送信する手段と、
ネットワークコンポーネントの少なくとも１つからのプローブ応答メッセージを生成する手段と、
ネットワークコンポーネントのためのネットワークアドレスをネットワークコンポーネント間の通信に基づいて判断する手段と
を備えたことを特徴とするネットワークディスカバリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
自動化ネットワークアドレス判断とローミングピア間の通信を容易化するシステムおよび方法に関する。
【背景技術】
【０００２】
ネットワークアドレストランスレータ(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 000003
【００３０】
上記例の行(07-09)はメッセージがプローブ(Probe)であることを示し、行(13)はそのメッセージが周知アドレスに送信されることを示している［RFC 2141］。明示のReplyTo SOAPヘッダブロックがないので［ＷＳアドレシング］、このプローブに対するどの応答も、プローブトランスポートヘッダのソースＩＰアドレスとポートにＵＤＰパケットとして送信されることになる。行(17-21)はプローブに２つの制約を指定している。行(17)は、基本的プリントタイプ(Type)を実現するターゲットサービス(Target Services)に対する応答を制約している。行(18-21)は、例えば、エンジニアリング部門に対するスコープ(Scope)内のターゲットサービスに対する応答を制約している。一般的に、これらの制約の両方を満足するターゲットサービスだけが応答する。両方の制約が例に含まれているが、どちらか一方を含めるにはプローブは必要ない。
【００３１】
以下のＸＭＬ例は、上記例に記述されているプローブメッセージに応答するプローブに一致したもの(probe match)の例を示している。
【００３２】
【表２】
2008539672.tif 000004
【００３３】
上記プローブ応答メッセージにおける行(07-09)はこのメッセージがプローブに一致したもの(Probe Match)であることを示し、行(13-15)はこれがこの例示応答に先行するプローブメッセージに対する応答であることを示している。このプローブには、明示のReplyTo SOAPヘッダブロックがないので、行(16-18)は、応答がProbeのトランスポートヘッダのソースＩＰアドレスとポートに送信されたことを示している。行(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、Token Ring/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 000005
【図２】
2008539672.tif 000006
【図３】
2008539672.tif 000007
【図４】
2008539672.tif 000008
【図５】
2008539672.tif 000009
【図６】
2008539672.tif 000010
【図７】
2008539672.tif 000011
【図８】
2008539672.tif 000012
【図９】
2008539672.tif 000013
【図１０】
2008539672.tif 000014