(57)【特許請求の範囲】
【請求項１】
複数のコンポーネントを利用してＷｅｂサービスを提供するアプリケーションサーバと、物理ネットワークを介して前記アプリケーションサーバと接続されており前記複数のコンポーネントが分散されて配置されている複数のノードとを備えるＷｅｂサービスシステムであって、
前記複数のノードの各々は、
自ノードに配置されている１以上のコンポーネントと、他ノードに配置されている１以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、
前記Ｗｅｂサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する１以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える
ことを特徴とするＷｅｂサービスシステム。
【請求項２】
前記複数のノードの各々は、
自ノードに配置されている１以上のコンポーネントの中で、前記Ｗｅｂサービスで利用されているコンポーネントを実行する実行処理手段と、
前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、
前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出する
ことを特徴とする請求項１に記載のＷｅｂサービスシステム。
【請求項３】
前記複数のノードの各々は、自ノードに配置されている第１のコンポーネントと、他ノードに配置されている１以上のコンポーネントの中で前記第１のコンポーネントと同一の機能を有する第２のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報を前記リンクデータベースに登録するオーバレイネットワーク構築処理手段を備える
ことを特徴とする請求項１に記載のＷｅｂサービスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンポーネントを利用したＷｅｂサービスを提供するＷｅｂサービスシステムに関し、特に、Ｗｅｂサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するＷｅｂサービスシステムに関する。
【背景技術】
【０００２】
近年、インターネットの利用者が爆発的に増加している。この背景として、インターネットを利用する環境が整ってきていることが挙げられる。例えば、ＷＷＷ（World Wide Web）や電子メールなどのような通信サービスが一般的に利用されている。また、ＡＤＳＬ（Asymmetric Digital Subscriber Line）、ＣＡＴＶインターネット、ＦＴＴＨ（Fiber To The Home）などのような高速アクセス回線が一般的に利用されている。
【０００３】
そして、インターネットの利用者が増加するに伴い、インターネットを利用して享受することができるサービスの充実に対する期待が高まってきている。これに対して、インターネットを利用したサービスを提供することができる技術として、分散オブジェクト技術が提案されている。例えば、ＣＯＲＢＡ（Common Object Request Broker Architecture）やＤＣＯＭ（Distributed Component Object Model）などが挙げられる。これらの分散オブジェクト技術では、分散オブジェクト技術のアーキテクチャが異なれば、アーキテクチャが異なるシステム間での相互接続が容易ではない。例えば、ＣＯＲＢＡとＤＣＯＭとの間で通信を行うためには、両者のプロトコルを変換して両者を橋渡しするための仕組みが必要となる。
【０００４】
また、同じ分散オブジェクト技術で構築されたシステム間であっても、インターネットを経由してメッセージ交換を行うので、ファイアウォールの設定を変更しなければならない。例えば、ＣＯＲＢＡでは、ＩＩＯＰ（Internet Inter-ORB Protocol）というプロトコルが使用されている。ＩＩＯＰが使用できるように、ファイアウォールの設定を変更しなければならない。このため、これらの分散オブジェクト技術では、イントラネットやＬＡＮ（Local Area Network）などの閉じたネットワークで使用することは容易である。ただし、インターネット上のさまざまな通信プロトコルやプログラムに対応することは困難である。それにも係わらず、分散オブジェクト技術が普及するに伴い、特定の技術にしばられることなく、さまざまなプラットフォーム上で稼動するオブジェクトを利用できる技術に対する期待が高まってきている。このような状況の中で、プラットフォームが異なるシステム間でも利用できる技術として、汎用性のある通信手段を利用したＷｅｂサービスが提案されている（例えば、非特許文献１参照。）。
【０００５】
Ｗｅｂサービスでは、インターネットの標準技術であるＸＭＬ（eXtensible Markup Language）を基盤としたＳＯＡＰ（Simple Object Access Protocol）やＷＳＤＬ（Web Services Description Language）といった技術が標準仕様として利用されている。このため、プラットフォームの壁を越えて分散オブジェクトを利用することができる。また、既存のＷｅｂサービスをコンポーネントとして利用することで、新規のＷｅｂサービスを構築することもできる。さらに、既存のコンポーネントを組み合わせてＷｅｂサービスを構築するので、Ｗｅｂサービスの構築が容易になり、また、サービスの構築にかかる時間やコストなどを削減することもできる。
【０００６】
ただし、Ｗｅｂサービスでは、Ｗｅｂサービスの利用者が増加するに伴い、Ｗｅｂサービスに利用されているコンポーネントが配置されているノードの負荷が増大し、コンポーネントの処理能力が低下する。また、コンポーネントに障害が発生すると、障害が発生したコンポーネントを利用したサービスを提供することができない。これに対して、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用することで、１つのコンポーネントにかかる負荷を軽減し、Ｗｅｂサービスのスケーラビリティを向上させることができる。また、コンポーネントに障害が発生すると、複数のノードに分散されて配置されている複数のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索して利用することで、サービスを再開することができる。ここでは、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用するＷｅｂサービスを、特に、分散Ｗｅｂサービスと呼ぶこととする。
【０００７】
ただし、分散Ｗｅｂサービスにおいて、代替コンポーネントの探索手法については、現状では明確な手法が確立されている訳ではない。一般的に、代替コンポーネントの探索手法として、リアクティブな探索手法やプロアクティブな探索手法などが挙げられる。ここで、リアクティブな探索手法としてフラッディングによる探索手法などがある。プロアクティブな探索手法としてデータベース管理による探索手法などがある。
【０００８】
ここで、フラッディングによる探索手法とは、代替コンポーネントを探索するときに、探索メッセージをブロードキャストし、応答メッセージに含まれた情報から代替コンポーネントを選択する手法である（例えば、非特許文献２参照。）。
【０００９】
一方、データベース管理による探索手法とは、データベースを備えるノードが定期的に制御メッセージを送ることで代替コンポーネントに関する情報を維持し、データベースに登録されている情報から代替コンポーネントを選択する手法である。
【非特許文献１】島本正、柿本彰、西本進ほか、“Ｗｅｂサービス完全構築ガイド”、日経ＢＰ社、２００１
【非特許文献２】岡崎高久、鎌田英朗、木下和彦、戸出英樹、村上孝三、“複数要求を考慮に入れた高効率フラッディング制御”、電子情報通信学会技術研究報告、ＩＮ２００５−５９、Ｊｕｌｙ  ２００５
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、フラッディングによる探索手法については、この探索手法を利用して得られる情報の信頼性が高く、動的に変化する情報を得るには適しているが、障害発生後にはじめて探索を開始するため、代替コンポーネントの発見が遅くなるという問題がある。
【００１１】
一方、データベース管理による探索手法については、多くの候補の中から最適な代替コンポーネントを即座に発見することができるが、代替コンポーネントの情報を保持しているデータベースに障害が発生すると代替コンポーネントの探索が不可能になるという問題がある。
【００１２】
そこで、本発明は、上記問題に鑑みてなされたものであり、コンポーネントに障害が発生したときに、ネットワーク上に分散されて配置されている複数のコンポーネントの中から、最適な代替コンポーネントを短時間で探索する探索手法を利用したＷｅｂサービスシステムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するために、本発明に係わるＷｅｂサービスシステムは、下記に示す特徴を備える。
【００１４】
（ａ）複数のコンポーネントを利用してＷｅｂサービスを提供するアプリケーションサーバと、物理ネットワークを介して前記アプリケーションサーバと接続されており前記複数のコンポーネントが分散されて配置されている複数のノードとを備えるＷｅｂサービスシステムであって、前記複数のノードの各々は、（ａ１）自ノードに配置されている１以上のコンポーネントと、他ノードに配置されている１以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、（ａ２）前記Ｗｅｂサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する１以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える。
【００１５】
これによって、各ノードが備えるリンクデータベースで、自ノードに配置されている１以上のコンポーネントと論理ネットワークを形成する１以上のコンポーネントが管理される。探索時には、リンクデータベースに基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
【００１６】
さらに、（ｂ）前記複数のノードの各々は、（ｂ１）自ノードに配置されている１以上のコンポーネントの中で、前記Ｗｅｂサービスで利用されているコンポーネントを実行する実行処理手段と、（ｂ２）前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、（ｂ３）前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出するとしてもよい。
【００１７】
これによって、論理ネットワークを形成するコンポーネントの処理能力などに関する効用情報が生成される。探索時には、効用情報に基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
【００１８】
または、（ｃ）前記複数のノードの各々は、自ノードに配置されている第１のコンポーネントと、他ノードに配置されている１以上のコンポーネントの中で前記第１のコンポーネントと同一の機能を有する第２のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報を前記リンクデータベースに登録するオーバレイネットワーク構築処理手段を備えるとしてもよい。
【００１９】
これによって、同一機能を有する１以上のコンポーネントの間で論理ネットワークが形成される。探索時には、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
【００２０】
なお、本発明は、Ｗｅｂサービスシステムとして実現されるだけではなく、Ｗｅｂサービスシステムを制御するＷｅｂサービス制御方法、Ｗｅｂサービス制御方法を１以上のコンピュータシステムなどに実行させるＷｅｂサービス制御プログラム、Ｗｅｂサービス制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
【００２１】
また、Ｗｅｂサービスシステムを構成するアプリケーションサーバ、アプリケーションサーバを制御するアプリケーションサーバ制御方法、アプリケーションサーバ制御方法をコンピュータシステムなどに実行させるアプリケーションサーバ制御プログラム、アプリケーションサーバ制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
【００２２】
また、Ｗｅｂサービスシステムを構成するノード、ノードを制御するノード制御方法、ノード制御方法をコンピュータシステムなどに実行させるノード制御プログラム、ノード制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
【発明の効果】
【００２３】
本発明では、オーバレイネットワークを利用することで、代替コンポーネントの探索範囲を限定する。さらに、効用情報を利用することで、限定した探索範囲内で、性能の高いコンポーネントを選出する。これによって、高性能な代替コンポーネントを高速に探索することができる。また、ノード間での負荷分散が図られ、スケーラブルなシステムを構成することができる。
【００２４】
さらに、障害復旧にあたって、特定のコンポーネント、または特定のノードに配置されているコンポーネントが代替コンポーネントとして偏って選出されることを回避することができ、コンポーネント間、またはノード間での公平性を高めることができる。
【００２５】
また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。
【発明を実施するための最良の形態】
【００２６】
（実施の形態１）
以下、本発明に係わる実施の形態１について図面を参照しながら説明する。
【００２７】
本実施の形態におけるＷｅｂサービスシステムは、下記（ａ），（ｂ）に示される特徴を備える。
【００２８】
（ａ）複数のコンポーネントを利用してＷｅｂサービスを提供するアプリケーションサーバと、物理ネットワークを介してアプリケーションサーバと接続されており複数のコンポーネントが分散されて配置されている複数のノードとを備えるＷｅｂサービスシステムであって、複数のノードの各々は、（ａ１）自ノードに配置されている１以上のコンポーネントと、他ノードに配置されている１以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、（ａ２）Ｗｅｂサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索についてアプリケーションサーバから要求されると、リンクデータベースに登録されているリンク情報に基づいて、論理ネットワークを形成する１以上のコンポーネントを探索し、所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理部とを備える。
【００２９】
（ｂ）複数のノードの各々は、（ｂ１）自ノードに配置されている１以上のコンポーネントの中で、Ｗｅｂサービスで利用されているコンポーネントを実行する実行処理部と、（ｂ２）実行処理部で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理部とを備え、（ｂ３）複数のノードの中で、最適なコンポーネントを探索するノードを探索代理ノードとし、所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、探索代理ノードにおける代替コンポーネント探索処理部は、探索対象ノードにおける効用情報生成処理部で生成された効用情報に基づいて、効用が最も高いコンポーネントを最適なコンポーネントとして選出する。
【００３０】
以上の点を踏まえて本実施の形態におけるＷｅｂサービスシステムについて説明する。
【００３１】
＜概要＞
まず、本実施の形態におけるＷｅｂサービスシステムの概要について説明する。
【００３２】
図１は、本実施の形態におけるＷｅｂサービスシステムの概要を示す図である。図１に示されるように、Ｗｅｂサービスシステム１００は、下記の条件（１），（２）の下で分散されて管理されている効用情報を利用して代替コンポーネントを探索する。
【００３３】
（１）同一の機能を有する複数のコンポーネントの間でオーバレイネットワークが構築される。
【００３４】
ここで、コンポーネントとは、インターフェースを有するソフトウェア部品である。オーバレイネットワークとは、物理ネットワークにおけるリンクを利用して仮想的なリンクを形成した論理ネットワークである。
【００３５】
（２）オーバレイネットワークにおいて隣接するコンポーネント同士でコンポーネントに関する効用情報が交換される。ただし、オーバレイネットワーク上でリンクが形成されているコンポーネント間でのみ効用情報が交換される。
【００３６】
ここで、効用情報とは、代替コンポーネントが配置されているノードの処理能力、そのノードに対するネットワーク上における遅延、そのコンポーネントを使用しているアプリケーションサーバの数などによって、０から１の間で変動する値（以下、「効用値」と呼称する。）を含む情報である。ノードとは、ハードウェアなどのように、コンピュータシステムの物理的なリソースである。
【００３７】
また、以下、Ｗｅｂサービスとは、ＸＭＬ（eXtensible Markup Language）やＨＴＴＰ（Hyper Text Transfer Protocol）などを使用して、ＵＲＩ（Uniform Resource Identifier）によって特定されるコンポーネントを組み合わせて構成されるアプリケーションサービスとする。
【００３８】
なお、ノード１０１〜１０５、アプリケーションサーバ１０６、ユーザ端末１０７などは、物理ネットワークを介して相互に接続され、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、ＵＤＰ／ＩＰ（User Datagram Protocol/Internet Protocol）などの通信プロトコルに基づいて、パケット単位でデータが送受信される。
【００３９】
なお、代替コンポーネントの探索において、サービスの再開までの時間と、再開後のサービスの質とを考慮することが重要である。ここでは、後者の指標となる値として効用値を使用する。
【００４０】
また、サービス再開までの時間は、代替コンポーネントを発見するまでの時間と、発見した代替コンポーネントに利用することを通知するメッセージのＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）とを加算した値とする。
【００４１】
さらに、効用値と、サービス再開までの時間とは、トレードオフの関係にある。これは、次の点からも窺える。例えば、高い効用のコンポーネント、すなわち、効用値が１に近いコンポーネントを代替コンポーネントとして利用するには、複数のコンポーネントの効用値を取得して比較する必要がある。しかし、複数のコンポーネントの効用値を取得して比較するためには、探索に時間がかかり、サービスの再開までの時間が増大する。
【００４２】
＜代替コンポーネント探索手法＞
次に、本実施の形態におけるＷｅｂサービスシステムにおいて利用される代替コンポーネントの探索手法について説明する。
【００４３】
なお、アプリケーションサーバは、１以上のコンポーネントを利用してＷｅｂサービスを提供しているとする。また、あらかじめ、Ｗｅｂサービスに利用されているコンポーネントからは、コンポーネントに対する探索代理ノードのアドレスが伝達されている。アプリケーションサーバに備わるデータベースには、コンポーネントから伝達された探索代理ノードのアドレスが登録されている。
【００４４】
ここで、探索代理ノードとは、Ｗｅｂサービスで利用されているコンポーネントに対してオーバレイネットワークにおいて隣接する１以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードである。
【００４５】
アプリケーションサーバは、サービスを提供するにあたって利用しているコンポーネントのいずれかにおいて障害が発生した場合は、サービスの提供を停止する。データベースに登録されている複数のアドレスに基づいて、障害が発生したコンポーネントに対する探索代理ノードを特定する。特定した探索代理ノードに、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索させる探索要求を送信する。
【００４６】
探索代理ノードは、アプリケーションサーバから送信された探索要求に基づいて、探索代理ノードに配置されている１以上のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを特定する。特定したコンポーネントに隣接するコンポーネントを、オーバレイネットワークを形成する複数のコンポーネントの中から選出する。選出したコンポーネント（以下、「探索対象コンポーネント」と呼称する。）が配置されているノード（以下、「探索対象ノード」と呼称する。）に、探索対象コンポーネントの効用値やアドレスなどに関する情報を照会する効用情報照会要求を送信する。このとき、複数のコンポーネントが選出された場合は、複数の探索対象ノードに対して効用情報照会要求が個別に送信される。
【００４７】
探索対象ノードは、探索代理ノードから送信された効用情報照会要求に基づいて、探索対象ノードで管理されている情報の中から、探索対象コンポーネントの効用値やアドレスなどに関する情報を特定する。特定した情報を、効用情報照会要求に対する応答として探索代理ノードに送信する。
【００４８】
探索代理ノードは、探索対象ノードから送信された情報に基づいて、１以上の探索対象コンポーネントの中から、障害が発生したコンポーネントの代替として最適なコンポーネントとして効用値が１に近いコンポーネントを選択する。選択したコンポーネントが特定されるコンポーネント情報を、探索要求に対する応答としてアプリケーションサーバに送信する。
【００４９】
アプリケーションサーバは、探索代理ノードから送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントから、コンポーネント情報によって特定されるコンポーネントに切り替えてＷｅｂサービスの提供を再開する。
【００５０】
＜利用時＞
例えば、図２に示されるように、アプリケーションサーバ１０６は、コンポーネントｂ１，ｃ４，ｅ３を利用するＷｅｂサービスを提供している。なお、各コンポーネントからは、オーバレイネットワークにおいて各コンポーネントに隣接する１以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードのアドレスが探索代理ノードのアドレスとして伝達されている。アプリケーションサーバ１０６に備わるデータベースには、各コンポーネントから伝達された探索代理ノードのアドレスが登録されている。
【００５１】
ここでは、一例として、コンポーネントｂ１からは、コンポーネントｂ３が配置されているノード１０３のアドレスが伝達されている。データベースには、コンポーネントｂ１に対する探索代理ノードのアドレスとしてノード１０３のアドレスが登録されている。コンポーネントｃ４からは、コンポーネントｃ５が配置されているノード１０５のアドレスが伝達されている。データベースには、コンポーネントｃ４に対する探索代理ノードのアドレスとしてノード１０５のアドレスが登録されている。コンポーネントｅ３からは、コンポーネントｅ５が配置されているノード１０５のアドレスが伝達されている。データベースには、コンポーネントｅ３に対する探索代理ノードのアドレスとしてノード１０５のアドレスが登録されている。
【００５２】
＜障害時＞
次に、図３に示されるように、アプリケーションサーバ１０６は、コンポーネントｃ４に障害が発生した場合は、コンポーネントｃ４を利用するＷｅｂサービスの提供を停止する。
【００５３】
＜探索時＞
このとき、図４に示されるように、アプリケーションサーバ１０６は、データベースに登録されているアドレスに基づいて、コンポーネントｃ４に対する探索代理ノードとしてノード１０５を特定する。特定したノード１０５に、コンポーネントｃ４の代替コンポーネントとして最適なコンポーネントを探索させる要求を送信する。
【００５４】
これに伴い、ノード１０５は、オーバレイネットワークを形成する複数のコンポーネントの中で、コンポーネントｃ４と同一の機能を有するコンポーネントｃ５に隣接するコンポーネントｃ２，ｃ３を選出する。選出したコンポーネントｃ２，ｃ３の効用情報を、選出したコンポーネントｃ２，ｃ３が配置されているノード１０２，１０３から個別に取得する。個別に取得した２つの効用情報に基づいて、最も効用の高いコンポーネント、すなわち、効用値が１に近いコンポーネントとしてコンポーネントｃ２を選択する。
【００５５】
＜再開時＞
そして、図５に示されるように、ノード１０５は、要求に対する応答として、選択したコンポーネントｃ２が特定されるコンポーネント情報をアプリケーションサーバ１０６に送信する。
【００５６】
アプリケーションサーバ１０６は、ノード１０５から送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントｃ４の代替としてコンポーネントｃ２を利用してＷｅｂサービスの提供を再開する。
【００５７】
＜オーバレイネットワーク構築手法＞
次に、本実施の形態におけるＷｅｂサービスシステムにおいて利用されるオーバレイネットワークの構築手法について説明する。
【００５８】
上記で説明した代替コンポーネントの探索手法は、オーバレイネットワークのトポロジによって、性能が大きく左右される。
【００５９】
例えば、探索代理ノードが効用の高いコンポーネントを探索するためには、より多くのコンポーネントとリンクを形成することが望ましい。しかし、リンク数の増加にともない管理しなければならない効用情報も増加する。このため、大規模ネットワークにおいて、管理負荷の観点から、各ノードに配置されている１以上のコンポーネントのリンク数の総和に上限を設けることが望ましい。また、一般的に、１つのノードには、１以上のコンポーネントが配置されている。
【００６０】
そこで、各コンポーネント間の負荷分散を図りながら、効率的に探索することが実現できるトポロジの作成が望まれる。このため、ここでは、下記の仕様が満たされるように、オーバレイネットワークが構築される。
【００６１】
具体的には、オーバレイネットワークにおいて、ノードｉに配置されているコンポーネントａｉのリンク数をｄｉａとしたとき、ノードｉの総リンク数ｄｉに対して、下記の式（１）で示される制限を設ける。ここで、ｃｏｎｓｔはノードの処理能力などで決定される定数である。しかし、ここでは、話を簡潔にするために、全ノードで一定の値とする。
【００６２】
（１）ｄｉ＝ｄｉａ＋ｄｉｂ＋ｄｉｃ＋・・・≦ｃｏｎｓｔ
【００６３】
また、各コンポーネントについては、オーバレイネットワークにおいて、少なくとも２本のリンクが形成されているとする。これは、１本のリンクしか形成されていない場合において、リンク先のコンポーネントに障害が発生すると、リンク元のコンポーネントがオーバレイネットワークにおいて孤立する。探索時に、探索対象コンポーネントでありながら、探索対象コンポーネントの効用値やアドレスなどに関する情報が照会されなくなるためである。
【００６４】
また、探索に要する時間や物理ネットワーク上に流れるトラヒック量は、物理ネットワークのノード間のホップ数と関連があると考えられる。従って、オーバレイネットワークを構築するにあたって、物理ネットワークにおいてホップ数が小さいノードに配置された１以上のコンポーネントとの間で順次リンクを形成することを試みる。
【００６５】
そして、リンク形成時に、ノードの総リンク数の上限に達した場合は、ノードに配置されているコンポーネントのいずれかのリンクを削除する。これにより、ノードに配置されている１以上のコンポーネントの間で、公平性が維持される。ここで、公平性とは、代替コンポーネントの探索時に、いずれのコンポーネントにおいても、同程度に、代替コンポーネントを発見することができることとする。
【００６６】
＜構築手法の手順＞
次に、上記の仕様が満たすオーバレイネットワークの構築手法の手順について説明する。
【００６７】
図６、図７は、本実施の形態におけるオーバレイネットワークの構築手法の手順を示す図である。図６に示されるように、ここでは、一例として、新たにコンポーネントａｉがノードｉに配置されたとする。この場合において、まず、コンポーネントのリンク数の下限としてＬＬＮ（Least Link Number）を設定する。ノードｉの総リンク数ｄｉの上限としてＭＬＮ（Max Link Number）を設定する。ノードｉにコンポーネントａが配置されることで、ノードｉに配置されているコンポーネントの平均リンク数の期待値Ｅ（ｄｉａ）を下記の式（２）に基づいて算出する。
【００６８】
（２）Ｅ（ｄｉａ）＝ｄｉ／（ノードｉに配置されているコンポーネント数）
【００６９】
次に、ノードｉの総リンク数ｄｉがＭＬＮ以上でない限り（Ｓ１０１：Ｎｏ）、オーバレイネットワークを構成する複数のコンポーネントのいずれかと新たなリンクを形成することが試みられる。このとき、下記の手順（１）〜（３）でリンク先のコンポーネントが選出される（Ｓ１０２）。
【００７０】
（１）オーバレイネットワークを構成する複数のコンポーネントの中で、コンポーネントａｉと同一の機能を有するコンポーネントを選出する。
【００７１】
（２）手順１で選出したコンポーネントの中で、コンポーネントａｉとリンクが形成されていないコンポーネントを選出する。
【００７２】
（３）手順２で選出したコンポーネントの中で、オーバレイネットワークを形成する物理ネットワークにおいてノードｉに最隣接するノードに配置されているコンポーネントを選出する。
【００７３】
ここでは、一例として、ノードｉに隣接するノードｊに配置されているコンポーネントａｊがリンク先のコンポーネントとして選出されたとする。
【００７４】
次に、ノードｊの総リンク数ｄｊがノードｊに設定されたＭＬＮ以上である場合は（Ｓ１０３：Ｙｅｓ）、ノードｊに配置されている１以上のコンポーネントのいずれかのリンクを１本削除する（Ｓ１０４）。このとき、図７に示されるように、下記の手順（１）〜（３）で削除対象となるリンクを選出し（Ｓ１１１，Ｓ１１２）、選出したリンクを削除する（Ｓ１１３）。
【００７５】
（１）ノードｊに配置されている１以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する（Ｓ１１１）。
【００７６】
（２）選出したリンク元のコンポーネントとリンクを形成する１以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する（Ｓ１１２）。
【００７７】
（３）ノードｊに配置されている１以上のコンポーネントによって形成されている１以上のリンクの中で、手順１で選出したコンポーネントと、手順２で選出したコンポーネントとによって形成されているリンクを削除する（Ｓ１１３）。
【００７８】
例えば、手順１において、ノードｊに配置されている１以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントｂｊが選出されたとする。手順２において、コンポーネントｂｊとリンクを形成する１以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントｂｋが選出されたとする。この場合において、コンポーネントｂｊとコンポーネントｂｋとによって形成されているリンクｏｌｂ（ｊ，ｋ）が手順３において選出される。
【００７９】
そして、コンポーネントａｉとコンポーネントａｊとの間でリンクを形成する（Ｓ１０５）。
【００８０】
ただし、リンクｏｌｂ（ｊ，ｋ）を削除することによって、コンポーネントｂｋのリンク数ｄｋｂがＬＮＮより小さくなる場合は、削除対象となるリンクは、リンクｏｌｂ（ｊ，ｋ）を除いて再選出される。
【００８１】
なお、削除対象となるリンクが存在しない場合は、コンポーネントａｉは、コンポーネントａｊとリンクを形成することを断念する。コンポーネントａｉとリンクが形成されていないコンポーネントの中から、コンポーネントａｊを除く。
【００８２】
また、ノードｉの総リンク数ｄｉがＭＬＮ以上になり（Ｓ１０１：Ｙｅｓ）、コンポーネントａｉのリンク数ｄｉａが期待値Ｅ（ｄｉａ）より小さい場合は（Ｓ１０６：Ｎｏ）、上記（１）〜（３）の手順と同様に、下記の手順（１）〜（３）で削除対象となるリンクを選出し、選出したリンクを削除する（Ｓ１０７）。これによって、コンポーネントａｉは、新たなリンクを形成することができる。
【００８３】
（１）ノードｉに配置されている１以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する（Ｓ１１１）。
【００８４】
（２）選出したリンク元のコンポーネントとリンクを形成する１以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する（Ｓ１１２）。
【００８５】
（３）ノードｉに配置されている１以上のコンポーネントによって形成されている１以上のリンクの中で、手順１で選出したコンポーネントと、手順２で選出したコンポーネントとによって形成されているリンクを削除する（Ｓ１１３）。
【００８６】
具体的には、図８に示されるように、新たにコンポーネントｂ４がノード１０４に配置されたとする。この場合において、図９に示されるように、コンポーネントｂ４は、オーバレイネットワークを形成する物理ネットワークにおいて隣接するノードｎに配置された１以上のコンポーネントから、リンクｏｌｂ（４，ｎ）を形成することを試みる。このとき、コンポーネントｂ５とリンクを形成するにあたり、ノード１０５の総リンク数ｄ５がノード１０５に設定されたＭＬＮ以上になる。そこで、図１０に示されるように、ノード１０５に配置されているコンポーネントの中でリンク数が１番多いコンポーネントｂ５を選択する。さらに、コンポーネントｂ５とリンクを形成しているコンポーネントの中で、リンク数が１番多いコンポーネントｂ１を選択する。コンポーネントｂ５とコンポーネントｂ１とのリンクｏｌｂ（１，５）を削除してから、コンポーネントｂ４とコンポーネントｂ５とのリンクｏｌｂ（４，５）を追加する。
【００８７】
なお、ノード１０４の総リンク数ｄ４がノード１０４に設定されたＭＬＮ以上でないので、他のコンポーネントとリンクを形成することを続ける。このようにして、図１１に示されるように、新たなオーバレイネットワークのトポロジが形成される。
【００８８】
＜構成＞
次に、本実施の形態におけるＷｅｂサービスシステムの構成について説明する。
【００８９】
図１２は、本実施の形態におけるＷｅｂサービスシステムの構成を示す図である。図１２に示されるように、ここでは、一例として、Ｗｅｂサービスシステム１００は、ノード１０１〜１０５、アプリケーションサーバ１０６などを備える。
【００９０】
ノード１０１〜１０５の各ノードは、各ノードに配置されている複数のコンポーネントの各機能を、物理ネットワークを介して、例えば、アプリケーションサーバ１０６などのような他のノードに提供するコンピュータシステムである。ここでは、一例として、ノード１０１には、コンポーネントａ１，ｂ１，ｃ１が配置されている。ノード１０２には、コンポーネントａ２，ｃ２，ｄ２が配置されている。ノード１０３には、ｂ３，ｃ３，ｅ３が配置されている。ノード１０４には、コンポーネントａ４，ｃ４，ｄ４が配置されている。ノード１０５には、コンポーネントｃ５，ｄ５，ｅ５が配置されている。
【００９１】
なお、コンポーネントａ１，ａ２，ａ４の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントｂ１，ｂ３の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントｃ１，ｃ２，ｃ３，ｃ４の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントｄ２，ｄ４，ｄ５の各コンポーネントは、同一の機能を有するコンポーネントである。
【００９２】
アプリケーションサーバ１０６は、コンポーネントｂ１，ｃ４，ｅ３の各機能を組み合わせたＷｅｂサービスを、物理ネットワークを介して、例えば、ユーザ端末１０７などのような他のノードに提供するコンピュータシステムである。
【００９３】
また、アプリケーションサーバ１０６は、Ｗｅｂサービスで利用されているコンポーネント（以下、「使用コンポーネント」と呼称する。）が利用できなくなったときは、使用コンポーネントの代わりとなるコンポーネント（以下、「代替コンポーネント」と呼称する。）を、オーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索する。
【００９４】
＜ノード＞
次に、本実施の形態におけるノード１０１〜１０５の構成について説明する。なお、ノード１０１〜１０５については、構成が同一であり、ここでは、ノード１０１についてのみ説明し、ノード１０２〜１０５については、説明を省略する。
【００９５】
図１３は、本実施の形態におけるノード１０１の構成を示す図である。図１３に示されるように、ノード１０１は、コンポーネント保持部１１１、コンポーネントデータベース１１２、ノードデータベース１１３、リンクデータベース１１４、自ノード効用情報記憶部１１５、他ノード効用情報記憶部１１６、コンポーネント実行処理部１２０、効用情報生成処理部１３０、代替コンポーネント探索処理部１４０、効用情報伝達処理部１５０などを備える。
【００９６】
なお、コンポーネント実行処理部１２０、代替コンポーネント探索処理部１４０、効用情報伝達処理部１５０などは、ＣＯＲＢＡ、ＤＣＯＭ、ＳＯＡＰなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、ＳＯＡＰを利用してコンピュータシステム上に実現されているとする。
【００９７】
＜コンポーネント保持部１１１＞
コンポーネント保持部１１１は、自ノードに配置されている１以上のコンポーネントを保持している。
【００９８】
＜コンポーネントデータベース１１２＞
コンポーネントデータベース１１２には、自ノードに配置されているコンポーネントに関するコンポーネント情報が登録されている。
【００９９】
図１４は、コンポーネントデータベース１１２で管理されているコンポーネント情報のデータ構造を示す図である。図１４に示されるように、ここでは、一例として、コンポーネントデータベース１１２には、コンポーネント識別情報（フィールドＦ１１１）、ノード識別情報（実行ノード）（フィールドＦ１１２）、ノード識別情報（探索代理ノード）（フィールドＦ１１３）などが含まれるコンポーネント情報（レコードＲ１１１）が登録されている（テーブルＴ１１１）。
【０１００】
コンポーネント識別情報（フィールドＦ１１１）は、例えば、コンポーネント名のように、オーバレイネットワークを構成する１以上のコンポーネントの中でコンポーネントが識別される情報である。
【０１０１】
ノード識別情報（実行ノード）（フィールドＦ１１２）は、コンポーネント識別情報によって特定されるコンポーネントが実行されたノードが識別される情報である。
【０１０２】
ノード識別情報（探索代理ノード）（フィールドＦ１１３）は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別される情報である。
【０１０３】
＜ノードデータベース１１３＞
ノードデータベース１１３には、自ノードに隣接する他ノードに関するノード情報が登録されている。
【０１０４】
図１５は、ノードデータベース１１３で管理されているノード情報のデータ構造を示す図である。図１５に示されるように、ここでは、一例として、ノードデータベース１１３には、ノード識別情報（フィールドＦ１２１）、ホップ数（フィールドＦ１２２）、ＲＴＴ（フィールドＦ１２３）などが含まれるノード情報（レコードＲ１２１）が登録されている（テーブルＴ１２１）。
【０１０５】
ノード識別情報（フィールドＦ１２１）は、例えば、ホスト名、ＩＰアドレスのように、物理ネットワークを構成する１以上のノード中で各ノードが識別される情報である。
【０１０６】
ホップ数（フィールドＦ１２２）は、自ノードから、ノード識別情報によって特定されるノードまでの間に経由するルータなどの数である。
【０１０７】
ＲＴＴ（フィールドＦ１２３）は、自ノードと、ノード識別情報によって特定されるノードとの間における往復伝送時間である。
【０１０８】
＜リンクデータベース１１４＞
リンクデータベース１１４には、自ノードに配置されているコンポーネント（以下、「リンク元コンポーネント」と呼称する。）と、他ノードに配置されているコンポーネント（以下、「リンク先コンポーネント」と呼称する。）との間で形成されているリンクに関するリンク情報が登録されている。
【０１０９】
図１６は、リンクデータベース１１４で管理されているリンク情報のデータ構造を示す図である。図１６に示されるように、ここでは、一例として、リンクデータベース１１４には、リンク元情報（フィールドＦ１３１）、リンク先情報（フィールドＦ１３２）などが含まれるリンク情報（レコードＲ１３１）が登録されている（テーブルＴ１３１）。
【０１１０】
リンク元情報（フィールドＦ１３１）には、リンク元のコンポーネント識別情報、リンク元のノード識別情報などが含まれる。リンク先情報（フィールドＦ１３２）には、リンク先のコンポーネント識別情報、リンク先のノード識別情報などが含まれる。
【０１１１】
なお、本実施の形態では、あらかじめ、コンピュータシステムを使用して、上記のオーバレイネットワークの構築手法に基づいたシミュレーションを実行する。実行して得られた結果に基づいて生成されたリンク情報が、リンクデータベース１１４に登録されているとする。
【０１１２】
＜自ノード効用情報記憶部１１５＞
自ノード効用情報記憶部１１５は、自ノードで実行されたコンポーネントごとに効用情報を記憶する。
【０１１３】
図１７は、本実施の形態における自ノード効用情報記憶部１１５に記憶されている効用情報のデータ構造を示す図である。図１７に示されるように、自ノード効用情報記憶部１１５は、自ノードで実行されたコンポーネントごとに効用情報（レコードＲ１４１）を記憶する（テーブルＴ１４１）。効用情報（レコードＲ１４１）には、自ノードで実行されたコンポーネントのコンポーネント識別情報（フィールドＦ１４１）、そのコンポーネントの効用値（フィールドＦ１４２）などが含まれる。
【０１１４】
＜他ノード効用情報記憶部１１６＞
他ノード効用情報記憶部１１６は、他ノードで実行されたコンポーネントごとに効用情報を記憶する。
【０１１５】
図１８は、本実施の形態における他ノード効用情報記憶部１１６に記憶されている効用情報のデータ構造を示す図である。図１８に示されるように、他ノード効用情報記憶部１１６は、他ノードで実行されたコンポーネントごとに効用情報（レコードＲ１５１）を記憶する（テーブルＴ１５１）。効用情報（レコードＲ１５１）には、他ノードで実行されたコンポーネントのコンポーネント識別情報（フィールドＦ１５１）、そのコンポーネントの効用値（フィールドＦ１５２）などが含まれる。
【０１１６】
＜詳細構成＞
図１９は、本実施の形態におけるノード１０１の詳細な構成を示す図である。図１９に示されるように、ノード１０１は、下記の構成要素などを備える。
【０１１７】
＜コンポーネント実行処理部１２０＞
コンポーネント実行処理部１２０は、コンポーネント実行部１２１、実行要求受信部１２２、実行応答送信部１２３などを備える。
【０１１８】
＜コンポーネント実行部１２１＞
コンポーネント実行部１２１は、実行要求受信部１２２からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントをコンポーネント保持部１１１から読み出す。読み出したコンポーネントを実行する。実行して得られた実行結果を実行応答送信部１２３に渡す。
【０１１９】
＜実行要求受信部１２２＞
実行要求受信部１２２は、アプリケーションサーバ１０６などの送信元から送信された実行要求メッセージを受信する。受信した実行要求メッセージの送信元が特定されるノード識別情報を実行応答送信部１２３に渡す。受信した実行要求メッセージを解析する。解析した実行要求メッセージから、実行対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をコンポーネント実行部１２１に渡す。
【０１２０】
＜実行応答送信部１２３＞
実行応答送信部１２３は、実行要求受信部１２２からノード識別情報を受け取る。コンポーネント実行部１２１から実行結果を受け取る。受け取った実行結果を含む応答メッセージ（以下、「実行応答メッセージ」と呼称する。）を生成する。生成した実行応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１２１】
＜効用情報生成処理部１３０＞
効用情報生成処理部１３０は、計測部１３１、効用情報生成部１３２などを備える。
【０１２２】
＜計測部１３１＞
計測部１３１は、コンポーネント実行部１２１でコンポーネントが実行されると、そのコンポーネントの実行に伴うパフォーマンスを計測する。そのコンポーネントが識別されるコンポーネント識別情報と、計測して得られた計測結果とを効用情報生成部１３２に渡す。
【０１２３】
＜効用情報生成部１３２＞
効用情報生成部１３２は、計測部１３１からコンポーネント識別情報と計測結果とを受け取る。受け取った計測結果を使用して効用値を算出する。算出して得られた効用値を、受け取ったコンポーネント識別情報と対応付けて、受け取ったコンポーネント識別情報と、算出して得られた効用値とを含む効用情報を生成する。生成した効用情報を自ノード効用情報記憶部１１５に書き込む。
【０１２４】
＜代替コンポーネント探索処理部１４０＞
代替コンポーネント探索処理部１４０は、代替コンポーネント探索部１４１、探索対象選出部１４２、効用情報書込部１４３、探索要求受信部１４４、探索応答送信部１４５、効用情報照会要求送信部１４６、効用情報照会応答受信部１４７などを備える。
【０１２５】
＜代替コンポーネント探索部１４１＞
代替コンポーネント探索部１４１は、探索要求受信部１４４からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報を探索対象選出部１４２に渡す。探索対象選出部１４２から選出終了通知を受け取る。１以上のコンポーネントにおいて効用値の高いコンポーネントが識別されるコンポーネント識別情報を、他ノード効用情報記憶部１１６に記憶されている複数の効用情報の中から選出する。選出したコンポーネント識別情報によって特定されるコンポーネント情報を、コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報の中から選択する。選択したコンポーネント情報を探索応答送信部１４５に渡す。
【０１２６】
＜探索対象選出部１４２＞
探索対象選出部１４２は、代替コンポーネント探索部１４１からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報の中から選出する。選出したコンポーネント情報をリンク元情報に含むリンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報の中から全て選出する。選出した１以上のリンク情報の各々に対して、下記の処理（１）を実行する。
【０１２７】
（１）探索対象選出部１４２は、リンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とを効用情報照会要求送信部１４６に渡す。
【０１２８】
探索対象選出部１４２は、選出した１以上のリンク情報の全てに対して、上記の処理（１）を実行すると、選出終了通知を代替コンポーネント探索部１４１に渡す。
【０１２９】
なお、探索対象選出部１４２は、所定の時間間隔で、リンクデータベース１１４に登録されている１以上のリンク情報の各々に対して、上記の処理（１）を実行し、他ノードと効用情報を定期的に遣り取りするとしてもよい。また、この場合において、代替コンポーネント探索部１４１からコンポーネント識別情報を受け取ると、上記（１）までの処理を省略して、即時に、選出終了通知を代替コンポーネント探索部１４１に渡すとしてもよい。
【０１３０】
＜効用情報書込部１４３＞
効用情報書込部１４３は、効用情報照会応答受信部１４７から効用情報を受け取る。受け取った効用情報を他ノード効用情報記憶部１１６に書き込む。
【０１３１】
＜探索要求受信部１４４＞
探索要求受信部１４４は、アプリケーションサーバ１０６などの送信元から送信された探索要求メッセージを受信する。受信した探索要求メッセージの送信元が特定されるノード識別情報を探索応答送信部１４５に渡す。受信した探索要求メッセージを解析する。解析した探索要求メッセージから、探索対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を代替コンポーネント探索部１４１に渡す。
【０１３２】
＜探索応答送信部１４５＞
探索応答送信部１４５は、探索要求受信部１４４からノード識別情報を受け取る。代替コンポーネント探索部１４１からコンポーネント情報を受け取る。受け取ったコンポーネント情報を含む応答メッセージ（以下、「探索応答メッセージ」と呼称する。）を生成する。生成した探索応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１３３】
＜効用情報照会要求送信部１４６＞
効用情報照会要求送信部１４６は、探索対象選出部１４２からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ（以下、「効用情報照会要求メッセージ」と呼称する。）を生成する。生成した効用情報照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１３４】
＜効用情報照会応答受信部１４７＞
効用情報照会応答受信部１４７は、効用情報照会要求送信部１４６から送信された効用情報照会要求メッセージに対する応答メッセージ（以下、「効用情報照会応答メッセージ」と呼称する。）を受信する。受信した効用情報照会応答メッセージを解析する。解析した効用情報照会応答メッセージから、取得された効用情報を抽出する。抽出した効用情報を効用情報書込部１４３に渡す。
【０１３５】
＜効用情報伝達処理部１５０＞
効用情報伝達処理部１５０は、効用情報読出部１５１、効用情報照会要求受信部１５２、効用情報照会応答送信部１５３などを備える。
【０１３６】
＜効用情報読出部１５１＞
効用情報読出部１５１は、効用情報照会要求受信部１５２からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定される効用情報を、自ノード効用情報記憶部１１５から読み出す。読み出した効用情報を効用情報照会応答送信部１５３に渡す。
【０１３７】
＜効用情報照会要求受信部１５２＞
効用情報照会要求受信部１５２は、他ノードなどの送信元から送信された効用情報照会要求メッセージを受信する。受信した効用情報照会要求メッセージの送信元が特定されるノード識別情報を効用情報照会応答送信部１５３に渡す。受信した効用情報照会要求メッセージを解析する。解析した効用情報照会要求メッセージから、取得対象となる効用情報が特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を効用情報読出部１５１に渡す。
【０１３８】
＜効用情報照会応答送信部１５３＞
効用情報照会応答送信部１５３は、効用情報照会要求受信部１５２からノード識別情報を受け取る。効用情報取得部から効用情報を受け取る。受け取った効用情報を含む効用情報照会応答メッセージを生成する。生成した効用情報照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１３９】
＜アプリケーションサーバ＞
次に、本実施の形態におけるアプリケーションサーバ１０６の構成について説明する。
【０１４０】
図２０は、本実施の形態におけるアプリケーションサーバ１０６の構成を示す図である。図２０に示されるように、アプリケーションサーバ１０６は、実行対象コンポーネントデータベース１６１、実行結果記憶部１６２、サービス処理部１７０、探索処理部１８０などを備える。
【０１４１】
＜実行対象コンポーネントデータベース１６１＞
実行対象コンポーネントデータベース１６１は、実行対象となるコンポーネントのコンポーネント情報が登録されている。
【０１４２】
図２１は、実行対象コンポーネントデータベース１６１で管理されているコンポーネント情報のデータ構造を示す図である。図２１に示されるように、コンポーネントデータベース１１２で登録されているコンポーネント情報と同様のデータ構造である。
【０１４３】
コンポーネント識別情報（フィールドＦ１６１）は、実行対象となるコンポーネントが識別されるコンポーネント識別情報である。
【０１４４】
ノード識別情報（実行ノード）（フィールドＦ１６２）は、コンポーネント識別情報によって特定されるコンポーネントを実行するノードが識別されるノード識別情報である。
【０１４５】
ノード識別情報（探索代理ノード）（フィールドＦ１６３）は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別されるノード識別情報である。
【０１４６】
＜実行結果記憶部１６２＞
実行結果記憶部１６２は、実行されたコンポーネントごとに実行結果情報を記憶する。
【０１４７】
＜サービス処理部１７０＞
図２０に戻り、サービス処理部１７０は、実行対象選出部１７１、実行結果書込部１７２、サービス要求受信部１７３、サービス応答送信部１７４、実行要求送信部１７５、実行応答受信部１７６などを備える。
【０１４８】
＜実行対象選出部１７１＞
実行対象選出部１７１は、サービス要求受信部１７３から１以上のコンポーネント識別情報を受け取る。受け取った１以上のコンポーネント識別情報の各々に対して、下記の処理（１）を実行する。
【０１４９】
（１）実行対象選出部１７１は、受け取ったコンポーネント識別情報によって特定されるノード識別情報を、コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報の中から選出する。受け取ったコンポーネント識別情報と、選出したノード識別情報とを実行要求送信部１７５に渡す。
【０１５０】
実行対象選出部１７１は、受け取った１以上のコンポーネント識別情報の全てに対して、上記（１）の処理を実行すると、応答通知と、受け取った１以上のコンポーネント識別情報とをサービス応答送信部１７４に渡す。
【０１５１】
なお、実行対象選出部１７１は、実行応答受信部１７６から、エラー通知とコンポーネント識別情報とを受け取ると、上記の処理を停止し、停止通知をサービス応答送信部１７４に渡す。さらに、探索通知と、エラー通知と一緒に受け取ったコンポーネント識別情報とを探索要求送信部１８２に渡す。そして、コンポーネント情報登録部１８１から探索完了通知を受け取ると、再開通知をサービス応答送信部１７４に渡し、上記の処理を再開する。
【０１５２】
＜実行結果書込部１７２＞
実行結果書込部１７２は、実行応答受信部１７６から実行結果情報を受け取る。受け取った実行結果情報を実行結果記憶部１６２に書き込む。
【０１５３】
＜サービス要求受信部１７３＞
サービス要求受信部１７３は、ユーザ端末１０７などの送信元から送信されたサービス要求メッセージを受信する。受信したサービス要求メッセージの送信元が特定されるノード識別情報をサービス応答送信部１７４に渡す。受信したサービス要求メッセージを解析する。解析したサービス要求メッセージから、実行対象となる１以上のコンポーネントを特定する。特定した１以上のコンポーネントが個別に識別される１以上のコンポーネント識別情報を実行対象選出部１７１に渡す。
【０１５４】
＜サービス応答送信部１７４＞
サービス応答送信部１７４は、サービス要求受信部１７３からノード識別情報を受け取る。実行対象選出部１７１から、応答通知と、１以上のコンポーネント識別情報とを受け取る。受け取った１以上のコンポーネント識別情報によって特定される１以上の実行結果を実行結果記憶部１６２から読み出す。読み出した１以上の実行結果を含む応答メッセージ（以下、「サービス応答メッセージ」と呼称する。）を生成する。生成したサービス応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１５５】
なお、サービス応答送信部１７４は、実行対象選出部１７１から停止通知を受け取ると、実行対象選出部１７１から再開通知を受け取るまで、サービスが停止していることを通知するメッセージをサービス応答メッセージとして生成する。生成したサービス応答メッセージを送信する。
【０１５６】
＜実行要求送信部１７５＞
実行要求送信部１７５は、実行対象選出部１７１からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ（以下、「実行要求メッセージ」と呼称する。）を生成する。生成した実行要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１５７】
＜実行応答受信部１７６＞
実行応答受信部１７６は、実行要求送信部１７５から送信された実行要求メッセージに対する応答メッセージ（以下、「実行応答メッセージ」と呼称する。）を受信する。受信した実行応答メッセージを解析する。解析した実行応答メッセージから、実行されたコンポーネントに対する実行結果情報を抽出する。抽出した実行結果情報を実行結果書込部１７２に渡す。
【０１５８】
なお、実行応答受信部１７６は、実行応答メッセージがエラーメッセージである場合は、エラー通知と、特定したコンポーネントが識別されるコンポーネント識別情報とを実行対象選出部１７１に渡す。
【０１５９】
＜探索処理部１８０＞
探索処理部１８０は、コンポーネント情報登録部１８１、探索要求送信部１８２、探索応答受信部１８３などを備える。
【０１６０】
＜コンポーネント情報登録部１８１＞
コンポーネント情報登録部１８１は、探索応答受信部１８３からコンポーネント情報を受け取る。受け取ったコンポーネント情報を実行対象コンポーネントデータベース１６１に登録する。探索完了通知を実行対象選出部１７１に渡す。
【０１６１】
なお、図２１に示されるように、ここでは、一例として、実行対象コンポーネントデータベース１６１には、コンポーネントｃ４の代替コンポーネントを探索する前は、コンポーネントｃ４のコンポーネント情報が登録されているとする（Ｔ１６１）。この場合において、コンポーネントｃ４の代替コンポーネントとしてコンポーネントｃ２が選出されると、コンポーネント情報登録部１８１は、コンポーネントｃ２のコンポーネント情報を受け取る。コンポーネントｃ４のコンポーネント情報の代わりに、受け取ったコンポーネントｃ２のコンポーネント情報を、実行対象コンポーネントデータベース１６１に登録する（Ｔ１６２）。
【０１６２】
＜探索要求送信部１８２＞
探索要求送信部１８２は、実行対象選出部１７１からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ（以下、「探索要求メッセージ」と呼称する。）を生成する。生成した探索要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０１６３】
＜探索応答受信部１８３＞
探索応答受信部１８３は、探索要求送信部１８２から送信された探索要求メッセージに対する応答メッセージ（以下、「探索応答メッセージ」と呼称する。）を受信する。受信した探索応答メッセージを解析する。解析した探索応答メッセージから、代替コンポーネントに関するコンポーネント情報を抽出する。抽出したコンポーネント情報をコンポーネント情報登録部１８１に渡す。
【０１６４】
＜動作＞
次に、本実施の形態におけるＷｅｂサービスシステムにおいて代替コンポーネント探索時における処理について説明する。
【０１６５】
＜利用時＞
図２２は、本実施の形態におけるＷｅｂサービスシステムにおいてＷｅｂサービスの利用時におけるシーケンスを示す図である。図２２に示されるように、ユーザ端末１０７は、アプリケーションサーバ１０６で提供されているＷｅｂサービスの利用に関するサービス要求をアプリケーションサーバ１０６に送信する（Ｓ１２１）。
【０１６６】
ここでは、アプリケーションサーバ１０６で提供されているＷｅｂサービスに、コンポーネントｂ１、コンポーネントｃ４、コンポーネントｅ４が利用されているとする。この場合において、アプリケーションサーバ１０６は、ユーザ端末１０７からサービス要求を受信すると、下記の処理（１）〜（３）を個別に実行する。
【０１６７】
（１）アプリケーションサーバ１０６は、コンポーネントｂ１が配置されているノード１０１に、コンポーネントｂ１の実行を要求する実行要求メッセージを送信する（Ｓ１２２）。これに対して、ノード１０１は、コンポーネントｂ１の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｂ１を実行し、コンポーネントｂ１の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１２５）。アプリケーションサーバ１０６は、コンポーネントｂ１の実行結果を含む実行応答メッセージをノード１０１から受信する。
【０１６８】
（２）アプリケーションサーバ１０６は、コンポーネントｃ４が配置されているノード１０４に、コンポーネントｃ４の実行を要求する実行要求メッセージを送信する（Ｓ１２３）。これに対して、ノード１０４は、コンポーネントｃ４の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｃ４を実行し、コンポーネントｃ４の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１２６）。アプリケーションサーバ１０６は、コンポーネントｃ４の実行結果を含む実行応答メッセージをノード１０４から受信する。
【０１６９】
（３）アプリケーションサーバ１０６は、コンポーネントｅ３が配置されているノード１０３に、コンポーネントｅ３の実行を要求する実行要求メッセージを送信する（Ｓ１２４）。これに対して、ノード１０３は、コンポーネントｅ３の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｅ３を実行し、コンポーネントｅ３の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１２７）。アプリケーションサーバ１０６は、コンポーネントｅ３の実行結果を含む実行応答メッセージをノード１０３から受信する。
【０１７０】
そして、アプリケーションサーバ１０６は、コンポーネントｂ１の実行結果、コンポーネントｃ４の実行結果、コンポーネントｅ３の実行結果を利用して生成したサービス応答メッセージをユーザ端末１０７に送信する（Ｓ１２８）。
【０１７１】
ユーザ端末１０７は、アプリケーションサーバ１０６から送信されたサービス応答メッセージを受信する。
【０１７２】
＜探索時＞
図２３は、本実施の形態におけるＷｅｂサービスシステムにおいて代替コンポーネントの探索時におけるシーケンスを示す図である。図２３に示されるように、アプリケーションサーバ１０６は、Ｗｅｂサービスで利用されている１以上のコンポーネントのいずれかが利用できなくなった場合は、サービスを停止する。
【０１７３】
ここでは、コンポーネントｃ４が利用できなくなったとする。この場合において、アプリケーションサーバ１０６は、コンポーネントｃ４と対応付けられているノード１０５に、コンポーネントｃ４の代替コンポーネントの探索を要求する探索要求メッセージを送信する（Ｓ１３１）。これに対して、ノード１０５は、アプリケーションサーバ１０６から探索要求メッセージを受信すると、コンポーネントｃ４と同一の機能を有するコンポーネントｃ５とオーバレイネットワークにおいてリンクされているコンポーネントｃ２とコンポーネントｃ３との中から、コンポーネントｃ４の代替コンポーネントとして最適なコンポーネントを選択する。このとき、下記の処理（１），（２）を個別に実行する。
【０１７４】
（１）ノード１０５は、コンポーネントｃ４と同一の機能を有するコンポーネントｃ２が配置されているノード１０２に、コンポーネントｃ２の効用情報を照会する照会要求メッセージを送信する（Ｓ１３２）。これに対して、ノード１０２は、コンポーネントｃ２の効用情報を照会する照会要求メッセージを受信すると、コンポーネントｃ２の効用情報を含む取得応答メッセージをノード１０５に送信する（Ｓ１３４）。ノード１０５は、コンポーネントｃ２の効用情報を含む取得応答メッセージを受信する。
【０１７５】
（２）ノード１０５は、コンポーネントｃ４と同一の機能を有するコンポーネントｃ３が配置されているノード１０３に、コンポーネントｃ３の効用情報を照会する照会要求メッセージを送信する（Ｓ１３３）。これに対して、ノード１０３は、コンポーネントｃ３の効用情報を照会する照会要求メッセージを受信すると、コンポーネントｃ３の効用情報を含む取得応答メッセージをノード１０５に送信する（Ｓ１３５）。ノード１０５は、コンポーネントｃ３の効用情報を含む取得応答メッセージを受信する。
【０１７６】
そして、ノード１０５は、コンポーネントｃ２の効用情報と、コンポーネントｃ３の効用情報とに基づいて、コンポーネントｃ２とコンポーネントｃ３との中から、効用値の高いコンポーネントｃ２を、コンポーネントｃ４の代替コンポーネントとして選択する。コンポーネントｃ２の識別情報を含む探索応答メッセージを送信する（Ｓ１３６）。
【０１７７】
アプリケーションサーバ１０６は、ノード１０５からコンポーネントｃ２の識別情報を含む探索応答メッセージを受信すると、コンポーネントｃ４の代わりに、コンポーネントｃ２を利用して、サービスを再開する。
【０１７８】
＜再開時＞
図２４は、本実施の形態におけるＷｅｂサービスシステムにおいてＷｅｂサービスの再開時におけるシーケンスを示す図である。図２４に示されるように、ユーザ端末１０７は、アプリケーションサーバ１０６で提供されているＷｅｂサービスの利用に関するサービス要求をアプリケーションサーバ１０６に送信する（Ｓ１４１）。
【０１７９】
ここでは、アプリケーションサーバ１０６で提供されているＷｅｂサービスに、コンポーネントｂ１、コンポーネントｅ４が利用されているとする。また、コンポーネントｃ４の代わりに、コンポーネントｃ２が利用されているとする。この場合において、アプリケーションサーバ１０６は、ユーザ端末１０７からサービス要求を受信すると、下記の処理（１）〜（３）を個別に実行する。
【０１８０】
（１）アプリケーションサーバ１０６は、コンポーネントｂ１が配置されているノード１０１に、コンポーネントｂ１の実行を要求する実行要求メッセージを送信する（Ｓ１４２）。これに対して、ノード１０１は、コンポーネントｂ１の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｂ１を実行し、コンポーネントｂ１の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１４５）。アプリケーションサーバ１０６は、コンポーネントｂ１の実行結果を含む実行応答メッセージをノード１０１から受信する。
【０１８１】
（２）アプリケーションサーバ１０６は、コンポーネントｃ２が配置されているノード１０２に、コンポーネントｃ２の実行を要求する実行要求メッセージを送信する（Ｓ１４３）。これに対して、ノード１０２は、コンポーネントｃ２の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｃ２を実行し、コンポーネントｃ２の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１４６）。アプリケーションサーバ１０６は、コンポーネントｃ２の実行結果を含む実行応答メッセージをノード１０２から受信する。
【０１８２】
（３）アプリケーションサーバ１０６は、コンポーネントｅ３が配置されているノード１０３に、コンポーネントｅ３の実行を要求する実行要求メッセージを送信する（Ｓ１４４）。これに対して、ノード１０３は、コンポーネントｅ３の実行を要求する実行要求メッセージをアプリケーションサーバ１０６から受信すると、コンポーネントｅ３を実行し、コンポーネントｅ３の実行結果を含む実行応答メッセージをアプリケーションサーバ１０６に送信する（Ｓ１４７）。アプリケーションサーバ１０６は、コンポーネントｅ３の実行結果を含む実行応答メッセージをノード１０３から受信する。
【０１８３】
そして、アプリケーションサーバ１０６は、コンポーネントｂ１の実行結果、コンポーネントｃ２の実行結果、コンポーネントｅ３の実行結果を利用して生成したサービス応答メッセージをユーザ端末１０７に送信する（Ｓ１４８）。
【０１８４】
ユーザ端末１０７は、アプリケーションサーバ１０６から送信されたサービス応答メッセージを受信する。
【０１８５】
＜まとめ＞
以上、本実施の形態におけるＷｅｂサービスシステム１００によれば、Ｗｅｂサービスで使用している１以上のコンポーネントのいずれかが使用できなくなっても、代わりのコンポーネントを即時に発見することができ、早期にＷｅｂサービスを再開することができる。このとき、探索代理ノードは、オーバレイネットワークを構成するコンポーネントを探索し、使用できなくなったコンポーネントと同一の機能を有するコンポーネントの効用情報に基づいて、効用の高いコンポーネントを選出する。これによって、即時に、使用できなくなったコンポーネントの代わりとなるコンポーネントを効率的に選出することができる。また、選出したコンポーネントのコンポーネント情報をアプリケーションサーバ１０６に通知することによって、アプリケーションサーバ１０６は、使用できなくなったコンポーネントの代わりとして最適なコンポーネントを特定することができ、早期にＷｅｂサービスを再開することができる。
【０１８６】
（実施の形態２）
以下、本発明に係わる実施の形態２について図面を参照しながら説明する。
【０１８７】
＜概要＞
本実施の形態におけるＷｅｂサービスシステムは、下記（ｃ）に示される特徴を備える。
【０１８８】
（ｃ）複数のノードの各々は、自ノードに配置されている第１のコンポーネントと、他ノードに配置されている１以上のコンポーネントの中で第１のコンポーネントと同一の機能を有する第２のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報をリンクデータベースに登録するオーバレイネットワーク構築処理部を備える。
【０１８９】
以上の点を踏まえて本実施の形態におけるＷｅｂサービスシステムについて説明する。なお、実施の形態１におけるＷｅｂサービスシステムと同一の構成要素については、同一の参照符号を付して説明を省略する。
【０１９０】
＜構成＞
まず、本実施の形態におけるＷｅｂサービスシステムの構成について説明する。
【０１９１】
本実施の形態におけるＷｅｂサービスシステムは、実施の形態１におけるＷｅｂサービスシステム１００と比べて、新たにオーバレイネットワークを構築する機能がノード１０１〜１０５に備わる点が異なる。ここでは、新たにオーバレイネットワークを構築する機能がノード１０１に備わった場合を例にして、本実施の形態におけるノードについてのみ説明する。
【０１９２】
次に、本実施の形態におけるノードの構成について説明する。
【０１９３】
図２５は、本実施の形態におけるノードの構成を示す図である。図２５に示されるように、ノード２０１は、実施の形態１におけるノード１０１と比べて、オーバレイネットワーク構築処理部２１０を新たに備える点が異なる。
【０１９４】
なお、オーバレイネットワーク構築処理部２１０は、ＣＯＲＢＡ、ＤＣＯＭ、ＳＯＡＰなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、ＳＯＡＰを利用してコンピュータシステム上に実現されているとする。
【０１９５】
＜オーバレイネットワーク構築処理部＞
図２６は、本実施の形態におけるノードの詳細な構成を示す図である。図２６に示されるように、オーバレイネットワーク構築処理部２１０は、ＭＬＮ保持部２１１、ＬＬＮ保持部２１２、リンク数情報記憶部２１３、リンク数順位記憶部２１４、ネットワーク距離順位記憶部２１５、期待値算出部２１６、オーバレイネットワーク構築部２１７などを備える。
【０１９６】
さらに、オーバレイネットワーク構築処理部２１０は、削除対象選出部２３１、削除対象リンク元選出部２３２、リンク元コンポーネント選出部２３３、削除対象リンク先選出部２３４などを備える。
【０１９７】
さらに、オーバレイネットワーク構築処理部２１０は、リンク元削除部２４１、リンク先削除部２４２、リンク削除確定部２４３、リンク削除要求送信部２４４、リンク削除応答受信部２４５、リンク削除要求受信部２４６、リンク削除応答送信部２４７などを備える。
【０１９８】
さらに、オーバレイネットワーク構築処理部２１０は、追加対象選出部２５１、追加対象リンク先選出部２５２、リンク先ノード選出部２５３などを備える。
【０１９９】
さらに、オーバレイネットワーク構築処理部２１０は、リンク元追加部２６１、リンク先追加部２６２、リンク追加確定部２６３、リンク追加要求送信部２６４、リンク追加応答受信部２６５、リンク追加要求受信部２６６、リンク追加応答送信部２６７などを備える。
【０２００】
さらに、オーバレイネットワーク構築処理部２１０は、リンク数情報読出部２７１、リンク数情報書込部２７２、リンク数情報照会要求送信部２７３、リンク数情報照会応答受信部２７４、リンク数情報照会要求受信部２７５、リンク数情報照会応答送信部２７６などを備える。
【０２０１】
＜ＭＬＮ保持部２１１＞
ＭＬＮ保持部２１１は、自ノードに配置されている１以上のコンポーネントの総リンク数の最大値となるＭＬＮを保持する。
【０２０２】
＜ＬＬＮ保持部２１２＞
ＬＬＮ保持部２１２は、自ノードに配置されている１以上のコンポーネントの各リンク数の最小値となるＬＬＮを保持する。
【０２０３】
＜リンク数情報記憶部２１３＞
リンク数情報記憶部２１３は、リンク先ごとにリンク数情報を個別に記憶する。
【０２０４】
＜リンク数順位記憶部２１４＞
リンク数順位記憶部２１４は、自ノードに配置されている１以上のコンポーネントをリンク数が多い順に並べたときの順位が特定されるリンク数順位情報を記憶する。
【０２０５】
＜ネットワーク距離順位記憶部２１５＞
ネットワーク距離順位記憶部２１５は、ネットワークを構成する１以上の他ノードを自ノードから近い順に並べたときの順位が特定されるネットワーク距離順位情報を記憶する。
【０２０６】
＜期待値算出部２１６＞
期待値算出部２１６は、自ノードに配置されているコンポーネントの平均リンク数の期待値を算出する。
【０２０７】
＜オーバレイネットワーク構築部２１７＞
オーバレイネットワーク構築部２１７は、ノードに新たにコンポーネントが配置されると、ネットワーク距離順位情報を「１番近い」が示される値に設定する。リンク数順位情報を「１番多い」が示される値に設定する。下記のリンク形成処理を実行する。
【０２０８】
オーバレイネットワーク構築部２１７は、ＭＬＮ保持部２１１で保持されているＭＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、ノードの総リンク数がＭＬＮ以上であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２０９】
（１）ノードの総リンク数がＭＬＮ以上である場合は、オーバレイネットワーク構築部２１７は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部２３１に渡す。削除対象選出部２３１から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理（１ａ），（１ｂ）のいずれかを実行する。
【０２１０】
（１ａ）受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク形成処理を終了する。
【０２１１】
（１ｂ）受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、オーバレイネットワーク構築部２１７は、受け取った削除対象リンク情報をリンク元削除部２４１に渡す。リンク元削除部２４１から削除失敗通知を受け取ると、リンク形成処理を終了する。リンク元削除部２４１から削除成功通知を受け取ると、リンク形成処理を再度実行する。
【０２１２】
（２）ノードの総リンク数がＭＬＮ以上でない場合は、オーバレイネットワーク構築部２１７は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部２５１に渡す。追加対象選出部２５１から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理（２ａ），（２ｂ）のいずれかを実行する。
【０２１３】
（２ａ）受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク形成処理を終了する。
【０２１４】
（２ｂ）受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、オーバレイネットワーク構築部２１７は、受け取った追加対象リンク情報をリンク元追加部２６１に渡す。リンク元追加部２６１から追加失敗通知を受け取ると、リンク形成処理を終了する。リンク元追加部２６１から追加成功通知を受け取ると、リンク形成処理を再度実行する。
【０２１５】
＜削除対象選出部２３１＞
削除対象選出部２３１は、オーバレイネットワーク構築部２１７からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報の中から全て選出する。選出した１以上のリンク情報と、期待値算出部２１６で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する。判定した結果、リンク数が期待値以上である場合は、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す。一方、期待値以上でない場合は、下記の削除対象リンク選出処理を実行する。
【０２１６】
削除対象選出部２３１は、自ノードが特定されるノード識別情報を削除対象リンク元選出部２３２に渡す。削除対象リンク元選出部２３２からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部２３４に渡す。削除対象リンク先選出部２３４からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク元情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２１７】
（１）受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は、削除対象選出部２３１は、リンク数順位情報を「１番多い」が示される値に設定する。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す。
【０２１８】
（２）受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は、削除対象選出部２３１は、リンク数順位情報を「次に多い」が示される値に設定する。受け取ったリンク先情報に応じて、下記の処理（２ａ），（２ｂ）のいずれかを実行する。
【０２１９】
（２ａ）受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、削除対象選出部２３１は、上記の削除対象リンク選出処理から再度実行する。
【０２２０】
（２ｂ）受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、削除対象選出部２３１は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す。
【０２２１】
なお、削除対象選出部２３１は、リンク先追加部２６２からコンポーネント識別情報を受け取ると、上記の処理と同様の処理を実行して、削除対象リンク情報をリンク先追加部２６２に渡す。
【０２２２】
＜削除対象リンク元選出部２３２＞
削除対象リンク元選出部２３２は、削除対象選出部２３１からノード識別情報を受け取る。選出通知をリンク元コンポーネント選出部２３３に渡す。リンク元コンポーネント選出部２３３からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がヌル情報である場合は、ヌル情報をリンク元情報として削除対象選出部２３１に渡す。一方、受け取ったコンポーネント識別情報がヌル情報でない場合は、受け取ったコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク元情報を生成する。生成したリンク元情報を削除対象選出部２３１に渡す。
【０２２３】
＜リンク元コンポーネント選出部２３３＞
リンク元コンポーネント選出部２３３は、削除対象リンク元選出部２３２から選出通知を受け取る。リンクデータベース１１４に登録されている１以上のリンク情報に基づいて、リンク元における各コンポーネントのリンク数を算出する。算出して得られた結果に基づいて、リンク数順位記憶部２１４に記憶されているリンク数順位情報によって特定される順位のコンポーネントを特定する。特定したコンポーネントが識別されるコンポーネント識別情報を削除対象リンク元選出部２３２に渡す。
【０２２４】
＜削除対象リンク先選出部２３４＞
削除対象リンク先選出部２３４は、削除対象選出部２３１からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報の中から全て選出する。選出した１以上のリンク情報の各々に対して、下記の処理（１）を実行する。
【０２２５】
（１）削除対象リンク先選出部２３４は、選出したリンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とをリンク数情報照会要求送信部２７３に渡す。
【０２２６】
削除対象リンク先選出部２３４は、選出した１以上のリンク情報の全てに対して、上記（１）の処理を実行し、リンク数情報記憶部２１３にリンク数情報が存在する場合は、リンク数情報記憶部２１３に記憶されている１以上のリンク数情報に基づいて、選出した１以上のリンク情報によって特定される１以上のリンク先の中から、リンク数が最多のリンク先を選出する。選出したリンク先が特定されるリンク先情報を削除対象選出部２３１に渡す。
【０２２７】
一方、削除対象リンク先選出部２３４は、リンク数情報記憶部２１３にリンク数情報が存在しない場合は、ヌル情報をリンク先情報として削除対象選出部２３１に渡す。
【０２２８】
＜リンク元削除部２４１＞
リンク元削除部２４１は、オーバレイネットワーク構築部２１７から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った削除対象リンク情報とをリンク削除要求送信部２４４に渡す。リンク削除応答受信部２４５から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２２９】
（１）受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク元削除部２４１は、削除失敗通知をオーバレイネットワーク構築部２１７に渡す。
【０２３０】
（２）受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、リンク元削除部２４１は、受け取った削除確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報から削除する。削除成功通知をオーバレイネットワーク構築部２１７に渡す。
【０２３１】
なお、リンク元削除部２４１は、リンク先追加部２６２かた削除対象リンク情報を受け取ると、上記の処理と同様の処理を実行して、削除失敗通知および削除成功通知のいずれかをリンク先追加部２６２に渡す。
【０２３２】
＜リンク先削除部２４２＞
リンク先削除部２４２は、リンク削除要求受信部２４６から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部２４３に渡す。リンク削除確定部２４３から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は、受け取った削除確定リンク情報をリンク削除応答送信部２４７に渡す。一方、受け取った削除確定リンク情報がヌル情報でない場合は、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている１以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する。ＬＬＮ保持部２１２で保持されているＬＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がＬＬＮ以下であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２３３】
（１）特定したリンク先のコンポーネントのリンク数がＬＬＮ以下である場合は、リンク先削除部２４２は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部２４７に渡す。
【０２３４】
（２）特定したリンク先のコンポーネントのリンク数がＬＬＮ以下でない場合は、リンク先削除部２４２は、受け取った削除確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報から削除する。受け取った削除確定リンク情報をリンク削除応答送信部２４７に渡す。
【０２３５】
＜リンク削除確定部２４３＞
リンク削除確定部２４３は、リンク先削除部２４２から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２３６】
（１）選出したコンポーネント情報がヌル情報である場合は、リンク削除確定部２４３は、ヌル情報を削除確定リンク情報としてリンク先削除部２４２に渡す。
【０２３７】
（２）選出したコンポーネント情報がヌル情報でない場合は、リンク削除確定部２４３は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報（実行ノード）とを含むリンク先情報を生成する。受け取った削除対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を削除確定リンク情報としてリンク先削除部２４２に渡す。
【０２３８】
＜リンク削除要求送信部２４４＞
リンク削除要求送信部２４４は、リンク元削除部２４１からノード識別情報と削除対象リンク情報とを受け取る。受け取った削除対象リンク情報を含む要求メッセージ（以下、「リンク削除要求メッセージ」と呼称する。）を生成する。生成したリンク削除要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０２３９】
＜リンク削除応答受信部２４５＞
リンク削除応答受信部２４５は、リンク削除要求送信部２４４から送信されたリンク削除要求メッセージに対する応答メッセージ（以下、「リンク削除応答メッセージ」と呼称する。）を受信する。受信したリンク削除応答メッセージを解析する。解析したリンク削除応答メッセージから削除確定リンク情報を抽出する。抽出した削除確定リンク情報をリンク元削除部２４１に渡す。
【０２４０】
＜リンク削除要求受信部２４６＞
リンク削除要求受信部２４６は、他ノードのような送信元からリンク削除要求メッセージを受信する。受信したリンク削除要求メッセージの送信元が特定されるノード識別情報をリンク削除応答送信部２４７に渡す。受信したリンク削除要求メッセージを解析する。解析したリンク削除要求メッセージから削除対象リンク情報を抽出する。抽出した削除対象リンク情報をリンク先削除部２４２に渡す。
【０２４１】
＜リンク削除応答送信部２４７＞
リンク削除応答送信部２４７は、リンク削除要求受信部２４６からノード識別情報を受け取る。リンク先削除部２４２から削除確定リンク情報を受け取る。受け取った削除確定リンク情報を含むリンク削除応答メッセージを生成する。生成したリンク削除応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０２４２】
＜追加対象選出部２５１＞
追加対象選出部２５１は、オーバレイネットワーク構築部２１７からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成する。受け取ったコンポーネント識別情報を追加対象リンク先選出部２５２に渡す。追加対象リンク先選出部２５２からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク先情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２４３】
（１）受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、追加対象選出部２５１は、ネットワーク距離順位情報を「１番近い」が示される値に設定する。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部２１７に渡す。
【０２４４】
（２）受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、追加対象選出部２５１は、ネットワーク距離順位情報を「次に近い」が示される値に設定する。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部２１７に渡す。
【０２４５】
＜追加対象リンク先選出部２５２＞
追加対象リンク先選出部２５２は、追加対象選出部２５１からコンポーネント識別情報を受け取る。選出通知をリンク先ノード選出部２５３に渡す。リンク先ノード選出部２５３からノード識別情報を受け取る。受け取ったノード識別情報がヌル情報である場合は、ヌル情報をリンク先情報として追加対象選出部２５１に渡す。
【０２４６】
一方、受け取ったノード識別情報がヌル情報でない場合は、追加対象リンク先選出部２５２は、受け取ったコンポーネント識別情報をリンク先のコンポーネント識別情報として設定する。設定したリンク先のコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク先情報を生成する。生成したリンク先情報を追加対象選出部２５１に渡す。
【０２４７】
＜リンク先ノード選出部２５３＞
リンク先ノード選出部２５３は、追加対象リンク先選出部２５２から選出通知を受け取る。ノードデータベース１１３に登録されている１以上のノード情報に基づいて、リンク先における各ノードのネットワーク距離を算出する。算出して得られた結果に基づいて、ネットワーク距離順位記憶部２１５に記憶されているネットワーク距離順位情報によって特定される順位のノードを特定する。特定したノードが識別されるノード識別情報を追加対象リンク先選出部２５２に渡す。
【０２４８】
なお、ここでは、話を簡潔にするために、ノード情報のＲＴＴをネットワーク距離とする。ＲＴＴの値が大きければ、ネットワーク距離も長いとし、ＲＴＴの値が小さければ、ネットワーク距離も短いとする。
【０２４９】
＜リンク元追加部２６１＞
リンク元追加部２６１は、オーバレイネットワーク構築部２１７から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った追加対象リンク情報とをリンク追加要求送信部２６４に渡す。リンク追加応答受信部２６５から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２５０】
（１）受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク元追加部２６１は、追加失敗通知をオーバレイネットワーク構築部２１７に渡す。
【０２５１】
（２）受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、リンク元追加部２６１は、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する。追加成功通知をオーバレイネットワーク構築部２１７に渡す。
【０２５２】
＜リンク先追加部２６２＞
リンク先追加部２６２は、リンク追加要求受信部２６６から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部２６３に渡す。リンク追加確定部２６３から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合は、受け取った追加確定リンク情報をリンク追加応答送信部２６７に渡す。一方、受け取った追加確定リンク情報がヌル情報でない場合は、ＭＬＮ保持部２１１で保持されているＭＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、ノードの総リンク数がＭＬＮ以上であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２５３】
（１）ノードの総リンク数がＭＬＮ以上である場合は、リンク先追加部２６２は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部２３１に渡す。削除対象選出部２３１から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理（１ａ），（１ｂ）のいずれかを実行する。
【０２５４】
（１ａ）受け取った削除対象リンク情報がヌル情報である場合は、リンク先追加部２６２は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部２６７に渡す。
【０２５５】
（１ｂ）受け取った削除対象リンク情報がヌル情報でない場合は、リンク先追加部２６２は、受け取った削除対象リンク情報をリンク元削除部２４１に渡す。リンク元削除部２４１から削除失敗通知を受け取ると、ヌル情報を追加確定リンク情報としてリンク追加応答送信部２６７に渡す。リンク元削除部２４１から削除成功通知を受け取ると、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部２６７に渡す。
【０２５６】
（２）ノードの総リンク数がＭＬＮ以上でない場合は、リンク先追加部２６２は、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部２６７に渡す。
【０２５７】
＜リンク追加確定部２６３＞
リンク追加確定部２６３は、リンク先追加部２６２から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理（１），（２）のいずれかを実行する。
【０２５８】
（１）選出したコンポーネント情報がヌル情報である場合は、リンク追加確定部２６３は、ヌル情報を追加確定リンク情報としてリンク先追加部２６２に渡す。
【０２５９】
（２）選出したコンポーネント情報がヌル情報でない場合は、リンク追加確定部２６３は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報（実行ノード）とを含むリンク先情報を生成する。受け取った追加対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を追加確定リンク情報としてリンク先追加部２６２に渡す。
【０２６０】
＜リンク追加要求送信部２６４＞
リンク追加要求送信部２６４は、リンク元追加部２６１からノード識別情報と追加対象リンク情報とを受け取る。受け取った追加対象リンク情報を含む要求メッセージ（以下、「リンク追加要求メッセージ」と呼称する。）を生成する。生成したリンク追加要求メッセージを、受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報によって特定される送信先に送信する。
【０２６１】
＜リンク追加応答受信部２６５＞
リンク追加応答受信部２６５は、リンク追加要求送信部２６４から送信されたリンク追加要求メッセージに対する応答メッセージ（以下、「リンク追加応答メッセージ」と呼称する。）を受信する。受信したリンク追加応答メッセージを解析する。解析したリンク追加応答メッセージから追加確定リンク情報を抽出する。抽出した追加確定リンク情報をリンク元追加部２６１に渡す。
【０２６２】
＜リンク追加要求受信部２６６＞
リンク追加要求受信部２６６は、他ノードのような送信元からリンク追加要求メッセージを受信する。受信したリンク追加要求メッセージの送信元が特定されるノード識別情報をリンク追加応答送信部２６７に渡す。受信したリンク追加要求メッセージを解析する。解析したリンク追加要求メッセージから追加対象リンク情報を抽出する。抽出した追加対象リンク情報をリンク先追加部２６２に渡す。
【０２６３】
＜リンク追加応答送信部２６７＞
リンク追加応答送信部２６７は、リンク追加要求受信部２６６からノード識別情報を受け取る。リンク先追加部２６２から追加確定リンク情報を受け取る。受け取った追加確定リンク情報を含むリンク追加応答メッセージを生成する。生成したリンク追加応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０２６４】
＜リンク数情報読出部２７１＞
リンク数情報読出部２７１は、リンク数情報照会要求受信部２７５からコンポーネント識別情報を受け取る。コンポーネントデータベース１１２に登録されている１以上のコンポーネント情報に基づいて、自ノードに配置されている１以上のコンポーネントの中から、受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを特定する。リンクデータベース１１４に登録されている１以上のリンク情報に基づいて、特定したコンポーネントのリンク数を算出する。算出したコンポーネントが識別されるコンポーネント識別情報と、自ノードが特定されるノード識別情報と、特定したリンク数とを含むリンク数情報を生成する。生成したリンク数情報をリンク数情報照会応答送信部２７６に渡す。
【０２６５】
＜リンク数情報書込部２７２＞
リンク数情報書込部２７２は、リンク数情報照会応答受信部２７４からリンク数情報を受け取る。受け取ったリンク数情報をリンク数情報記憶部２１３に書き込む。
【０２６６】
＜リンク数情報照会要求送信部２７３＞
リンク数情報照会要求送信部２７３は、削除対象リンク先選出部２３４からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ（以下、「リンク数照会要求メッセージ」と呼称する。）を生成する。生成したリンク数照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０２６７】
＜リンク数情報照会応答受信部２７４＞
リンク数情報照会応答受信部２７４は、リンク数情報照会要求送信部２７３から送信されたリンク数照会要求メッセージに対する応答メッセージ（以下、「リンク数照会応答メッセージ」と呼称する。）を受信する。受信したリンク数照会応答メッセージを解析する。解析したリンク数照会応答メッセージからリンク数情報を抽出する。抽出したリンク数情報をリンク数情報書込部２７２に渡す。
【０２６８】
＜リンク数情報照会要求受信部２７５＞
リンク数情報照会要求受信部２７５は、他ノードのような送信元からリンク数照会要求メッセージを受信する。受信したリンク数照会要求メッセージの送信元が特定されるノード識別情報をリンク数情報照会応答送信部２７６に渡す。受信したリンク数照会要求メッセージを解析する。解析したリンク数照会要求メッセージからコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をリンク数情報読出部２７１に渡す。
【０２６９】
＜リンク数情報照会応答送信部２７６＞
リンク数情報照会応答送信部２７６は、リンク数情報照会要求受信部２７５からノード識別情報を受け取る。リンク数情報読出部２７１からリンク数情報を受け取る。受け取ったリンク数情報を含むリンク数照会応答メッセージを生成する。生成したリンク数照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
【０２７０】
＜動作＞
次に、本実施の形態におけるＷｅｂサービスシステムの動作について説明する。
【０２７１】
＜オーバレイネットワーク構築処理＞
図２７は、本実施の形態におけるオーバレイネットワーク構築処理を示す図である。図２７に示されるように、オーバレイネットワーク構築部２１７は、ノードに新たにコンポーネントが配置されると（Ｓ２０１：Ｙｅｓ）、ネットワーク距離順位情報を「１番近い」が示される値に設定する（Ｓ２０２）。リンク数順位情報を「１番多い」が示される値に設定する（Ｓ２０３）。下記のリンク形成処理（Ｓ２０４）〜（Ｓ２１２）を実行する。
【０２７２】
オーバレイネットワーク構築部２１７は、ＭＬＮ保持部２１１で保持されているＭＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、ノードの総リンク数がＭＬＮ以上であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２０４）。
【０２７３】
（１）ノードの総リンク数がＭＬＮ以上である場合は（Ｓ２０４：Ｙｅｓ）、オーバレイネットワーク構築部２１７は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部２３１に渡し、削除対象選出処理を実行する（Ｓ２０５）。削除対象選出部２３１から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理（１ａ），（１ｂ）のいずれかを実行する（Ｓ２０６）。
【０２７４】
（１ａ）受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は（Ｓ２０６：Ｙｅｓ）、リンク形成処理を終了する。
【０２７５】
（１ｂ）受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は（Ｓ２０６：Ｎｏ）、オーバレイネットワーク構築部２１７は、受け取った削除対象リンク情報をリンク元削除部２４１に渡し、リンク元削除処理を実行する（Ｓ２０７）。リンク元削除部２４１から削除失敗通知を受け取ると（Ｓ２０８：Ｙｅｓ）、リンク形成処理を終了する。リンク元削除部２４１から削除成功通知を受け取ると（Ｓ２０８：Ｎｏ）、リンク形成処理を再度実行する（Ｓ２０４）。
【０２７６】
（２）ノードの総リンク数がＭＬＮ以上でない場合は（Ｓ２０４：Ｎｏ）、オーバレイネットワーク構築部２１７は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部２５１に渡し、追加対象選出処理を実行する（Ｓ２０９）。追加対象選出部２５１から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理（２ａ），（２ｂ）のいずれかを実行する（Ｓ２１０）。
【０２７７】
（２ａ）受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は（Ｓ２１０：Ｙｅｓ）、リンク形成処理を終了する。
【０２７８】
（２ｂ）受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は（Ｓ２１０：Ｎｏ）、オーバレイネットワーク構築部２１７は、受け取った追加対象リンク情報をリンク元追加部２６１に渡し、リンク元追加処理を実行する（Ｓ２１１）。リンク元追加部２６１から追加失敗通知を受け取ると（Ｓ２１２：Ｙｅｓ）、リンク形成処理を終了する。リンク元追加部２６１から追加成功通知を受け取ると（Ｓ２１２：Ｎｏ）、リンク形成処理を再度実行する（Ｓ２０４）。
【０２７９】
＜削除対象選出処理＞
次に、本実施の形態におけるリンク元のノードで実行される削除対象選出処理について説明する。
【０２８０】
図２８は、本実施の形態におけるリンク元のノードで実行される削除対象選出処理を示す図である。図２８に示されるように、削除対象選出部２３１は、オーバレイネットワーク構築部２１７からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報の中から全て選出する（Ｓ２２１）。選出した１以上のリンク情報と、期待値算出部２１６で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する（Ｓ２２２）。判定した結果、リンク数が期待値以上である場合は（Ｓ２２２：Ｙｅｓ）、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す（Ｓ２２３）。一方、期待値以上でない場合は（Ｓ２２２：Ｎｏ）、下記の削除対象リンク選出処理（Ｓ２２４）〜（Ｓ２３１）を実行する。
【０２８１】
削除対象選出部２３１は、自ノードが特定されるノード識別情報を削除対象リンク元選出部２３２に渡し、削除対象となるリンク元を選出する（Ｓ２２４）。削除対象リンク元選出部２３２からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部２３４に渡し、削除対象となるリンク先を選出する（Ｓ２２５）。削除対象リンク先選出部２３４からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する（Ｓ２２６）。受け取ったリンク元情報に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２２７）。
【０２８２】
（１）受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は（Ｓ２２７：Ｙｅｓ）、削除対象選出部２３１は、リンク数順位情報を「１番多い」が示される値に設定する（Ｓ２２８）。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す（Ｓ２２３）。
【０２８３】
（２）受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は（Ｓ２２７：Ｎｏ）、削除対象選出部２３１は、リンク数順位情報を「次に多い」が示される値に設定する（Ｓ２２９）。受け取ったリンク先情報に応じて、下記の処理（２ａ），（２ｂ）のいずれかを実行する（Ｓ２３０）。
【０２８４】
（２ａ）受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は（Ｓ２３０：Ｙｅｓ）、削除対象選出部２３１は、上記の削除対象リンク選出処理から再度実行する（Ｓ２２４）。
【０２８５】
（２ｂ）受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は（Ｓ２３０：Ｎｏ）、削除対象選出部２３１は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部２１７に渡す（Ｓ２３１）。
【０２８６】
＜リンク元削除処理＞
次に、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理について説明する。
【０２８７】
図２９は、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理を示す図である。図２９に示されるように、リンク元削除部２４１は、オーバレイネットワーク構築部２１７から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除要求送信部２４４に渡し、削除対象となるリンク先のノードにリンク先削除処理を実行させる（Ｓ２４１）。リンク削除応答受信部２４５から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２４２）。
【０２８８】
（１）受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は（Ｓ２４２：Ｙｅｓ）、リンク元削除部２４１は、削除失敗通知をオーバレイネットワーク構築部２１７に渡す（Ｓ２４３）。
【０２８９】
（２）受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は（Ｓ２４２：Ｎｏ）、リンク元削除部２４１は、受け取った削除確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報から削除する（Ｓ２４４）。削除成功通知をオーバレイネットワーク構築部２１７に渡す（Ｓ２４５）。
【０２９０】
＜リンク先削除処理＞
次に、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理について説明する。
【０２９１】
図３０は、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理を示す図である。図３０に示されるように、リンク先削除部２４２は、リンク削除要求受信部２４６から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部２４３に渡し、削除対象となるリンクを確定する（Ｓ２５１）。リンク削除確定部２４３から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は（Ｓ２５２：Ｙｅｓ）、受け取った削除確定リンク情報をリンク削除応答送信部２４７に渡す（Ｓ２５３）。一方、受け取った削除確定リンク情報がヌル情報でない場合は（Ｓ２５２：Ｎｏ）、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている１以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する（Ｓ２５４）。ＬＬＮ保持部２１２で保持されているＬＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がＬＬＮ以下であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２５５）。
【０２９２】
（１）特定したリンク先のコンポーネントのリンク数がＬＬＮ以下である場合は（Ｓ２５５：Ｙｅｓ）、リンク先削除部２４２は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部２４７に渡す（Ｓ２５３）。
【０２９３】
（２）特定したリンク先のコンポーネントのリンク数がＬＬＮ以下でない場合は（Ｓ２５５：Ｎｏ）、リンク先削除部２４２は、受け取った削除確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報から削除する（Ｓ２５６）。受け取った削除確定リンク情報をリンク削除応答送信部２４７に渡す（Ｓ２５７）。
【０２９４】
＜追加対象選出処理＞
次に、本実施の形態におけるリンク元のノードで実行される追加対象選出処理について説明する。
【０２９５】
図３１は、本実施の形態におけるリンク元のノードで実行される追加対象選出処理を示す図である。図３１に示されるように、追加対象選出部２５１は、オーバレイネットワーク構築部２１７からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成し、追加対象となるリンク元を設定する（Ｓ２６１）。受け取ったコンポーネント識別情報を追加対象リンク先選出部２５２に渡し、追加対象となるリンク先を選出する（Ｓ２６２）。追加対象リンク先選出部２５２からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する（Ｓ２６３）。受け取ったリンク先情報に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２６４）。
【０２９６】
（１）受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は（Ｓ２６４：Ｙｅｓ）、追加対象選出部２５１は、ネットワーク距離順位情報を「１番近い」が示される値に設定する（Ｓ２６５）。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部２１７に渡す（Ｓ２６６）。
【０２９７】
（２）受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は（Ｓ２６４：Ｎｏ）、追加対象選出部２５１は、ネットワーク距離順位情報を「次に近い」が示される値に設定する（Ｓ２６７）。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部２１７に渡す（Ｓ２６８）。
【０２９８】
＜リンク元追加処理＞
次に、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理について説明する。
【０２９９】
図３２は、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理を示す図である。図３２に示されるように、リンク元追加部２６１は、オーバレイネットワーク構築部２１７から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加要求送信部２６４に渡し、追加対象となるリンク先のノードにリンク先追加処理を実行させる（Ｓ２８１）。リンク追加応答受信部２６５から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２８２）。
【０３００】
（１）受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は（Ｓ２８２：Ｙｅｓ）、追加失敗通知をオーバレイネットワーク構築部２１７に渡す（Ｓ２８３）。
【０３０１】
（２）受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は（Ｓ２８２：Ｎｏ）、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する（Ｓ２８４）。追加成功通知をオーバレイネットワーク構築部２１７に渡す（Ｓ２８５）。
【０３０２】
＜リンク先追加処理＞
次に、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理について説明する。
【０３０３】
図３３は、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理を示す図である。図３３に示されるように、リンク先追加部２６２は、リンク追加要求受信部２６６から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部２６３に渡し、追加対象となるリンクを確定する（Ｓ２９１）。リンク追加確定部２６３から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は（Ｓ２９２：Ｙｅｓ）、ヌル情報を追加確定リンク情報としてリンク追加応答送信部２６７に渡す（Ｓ２９３）。一方、受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は（Ｓ２９２：Ｎｏ）、ＭＬＮ保持部２１１で保持されているＭＬＮと、リンクデータベース１１４に登録されている１以上のリンク情報とに基づいて、ノードの総リンク数がＭＬＮ以上であるか否かを判定する。判定した結果に応じて、下記の処理（１），（２）のいずれかを実行する（Ｓ２９４）。
【０３０４】
（１）ノードの総リンク数がＭＬＮ以上である場合は（Ｓ２９４：Ｙｅｓ）、リンク先追加部２６２は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部２３１に渡し、削除対象選出処理を実行する（Ｓ２９５）。削除対象選出部２３１から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理（１ａ），（１ｂ）のいずれかを実行する（Ｓ２９６）。
【０３０５】
（１ａ）受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は（Ｓ２９６：Ｙｅｓ）、リンク先追加部２６２は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部２６７に渡す（Ｓ２９３）。
【０３０６】
（１ｂ）受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は（Ｓ２９６：Ｎｏ）、リンク先追加部２６２は、受け取った削除対象リンク情報をリンク元削除部２４１に渡し、リンク元削除処理を実行する（Ｓ２９７）。リンク元削除部２４１から削除失敗通知を受け取ると（Ｓ２９８：Ｙｅｓ）、ヌル情報を追加確定リンク情報としてリンク追加応答送信部２６７に渡す（Ｓ２９３）。リンク元削除部２４１から削除成功通知を受け取ると（Ｓ２９８：Ｎｏ）、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する（Ｓ２９９）。受け取った追加確定リンク情報をリンク追加応答送信部２６７に渡す（Ｓ３００）。
【０３０７】
（２）ノードの総リンク数がＭＬＮ以上でない場合は（Ｓ２９４：Ｎｏ）、リンク先追加部２６２は、受け取った追加確定リンク情報を、リンクデータベース１１４に登録されている１以上のリンク情報に追加する（Ｓ２９９）。受け取った追加確定リンク情報をリンク追加応答送信部２６７に渡す（Ｓ３００）。
【０３０８】
＜シーケンス＞
次に、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスについて説明する。ここでは、一例として、図８〜図１１に示されるように、新たにコンポーネントｂ４がノード４に配置された場合について、ノード間の相互作用について説明する。
【０３０９】
なお、物理ネットワークにおいて、ノード４から近い順で、ノード１、ノード２、ノード５、ノード３が配置されているものとする。
【０３１０】
図３４〜図３６は、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す図である。図３４に示されるように、この場合において、ノード１０４は、リンク追加処理時に、下記の処理（１）〜（４）を実行する。
【０３１１】
（１）ノード１０４は、コンポーネントｂ１が配置されているノード１０１に、コンポーネントｂ４とコンポーネントｂ１との間でリンクを形成することを要求するリンク追加要求メッセージを送信する（Ｓ３１１）。これに対して、ノード１０１は、リンク追加要求メッセージをノード１０４から受信すると、リンク先追加処理を実行する。実行した結果、ノード１０１に設定された総リンク数の上限値を上回らないことから、コンポーネントｂ４とコンポーネントｂ１との間でリンクを形成したことが示されるリンク追加応答メッセージをノード１０４に送信する（Ｓ３１２）。ノード１０４は、リンク追加応答メッセージをノード１０１から受信する。
【０３１２】
（２）ノード１０４は、コンポーネントｂ２が配置されているノード１０２に、コンポーネントｂ４とコンポーネントｂ２との間でリンクを形成することを要求するリンク追加要求メッセージを送信する（Ｓ３１３）。これに対して、ノード１０２は、リンク追加要求メッセージをノード１０４から受信すると、リンク先追加処理を実行する。実行した結果、ノード１０２に設定された総リンク数の上限値を上回らないことから、コンポーネントｂ４とコンポーネントｂ２との間でリンクを形成したことが示されるリンク追加応答メッセージをノード１０４に送信する（Ｓ３１４）。ノード１０４は、リンク追加応答メッセージをノード１０２から受信する。
【０３１３】
（３）ノード１０４は、コンポーネントｂ５が配置されているノード１０５に、コンポーネントｂ４とコンポーネントｂ５との間でリンクを形成することを要求するリンク追加要求メッセージを送信する（Ｓ３１５）。これに対して、ノード１０５は、リンク追加要求メッセージをノード１０４から受信すると、リンク先追加処理を実行する。実行した結果、ノード１０５に設定された総リンク数の上限値を上回ることから、他のリンクを削除することを試みる。
【０３１４】
このとき、図３５に示されるように、ノード１０５は、削除対象選出処理時に、下記の処理（３ａ）〜（３ｃ）を個別に実行する。
【０３１５】
（３ａ）ノード１０５は、コンポーネントｂ１が配置されているノード１０１に、コンポーネントｂ１のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する（Ｓ３２１）。これに対して、ノード１０１は、リンク数情報照会要求メッセージをノード１０５から受信すると、コンポーネントｂ１のリンク数を算出し、算出したリンク数（４本）を含むリンク数情報照会応答メッセージをノード１０５に送信する（Ｓ３２４）。ノード１０５は、リンク数情報照会応答メッセージをノード１０１から受信する。
【０３１６】
（３ｂ）ノード１０５は、コンポーネントｂ２が配置されているノード１０２に、コンポーネントｂ２のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する（Ｓ３２２）。これに対して、ノード１０２は、リンク数情報照会要求メッセージをノード１０５から受信すると、コンポーネントｂ２のリンク数を算出し、算出したリンク数（３本）を含むリンク数情報照会応答メッセージをノード１０５に送信する（Ｓ３２５）。ノード１０５は、リンク数情報照会応答メッセージをノード１０２から受信する。
【０３１７】
（３ｃ）ノード１０５は、コンポーネントｂ３が配置されているノード１０３に、コンポーネントｂ３のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する（Ｓ３２３）。これに対して、ノード１０３は、リンク数情報照会要求メッセージをノード１０５から受信すると、コンポーネントｂ３のリンク数を算出し、算出したリンク数（２本）を含むリンク数情報照会応答メッセージをノード１０５に送信する（Ｓ３２６）。ノード１０５は、リンク数情報照会応答メッセージをノード１０３から受信する。
【０３１８】
そして、ノード１０５は、コンポーネントｂ１のリンク数（４本）、コンポーネントｂ２のリンク数（３本）、コンポーネントｂ３のリンク数（２本）をリンク数情報記憶部２１３にリンク先ごとに記憶する。削除対象としてリンク数が１番多いコンポーネントｂ１を選出する。
【０３１９】
さらに、図３６に示されるように、ノード１０５は、コンポーネントｂ１が配置されているノード１０１に、コンポーネントｂ５とコンポーネントｂ１との間で形成されたリンクを削除することを要求するリンク削除要求メッセージを送信する（Ｓ３３１）。これに対して、ノード１０１は、リンク削除要求メッセージをノード１０５から受信すると、リンク先削除処理を実行する。実行した結果、ノード１０１に設定されたリンク数の下限値を下回らないことから、コンポーネントｂ５とコンポーネントｂ１との間で形成されたリンクを削除したことを示すリンク削除応答メッセージをノード１０５に送信する（Ｓ３３２）。ノード１０５は、リンク削除応答メッセージを１０１から受信する。
【０３２０】
これに伴い、ノード１０５は、ノード１０５に設定された総リンク数の上限値を上回らないことから、コンポーネントｂ４とコンポーネントｂ５との間でリンクを形成したことが示されるリンク追加応答メッセージをノード１０４に送信する（Ｓ３１６）。ノード１０４は、リンク追加応答メッセージをノード１０５から受信する。
【０３２１】
（４）ノード１０４は、コンポーネントｂ３が配置されているノード１０３に、コンポーネントｂ１とコンポーネントｂ３との間でリンクを形成することを要求するリンク追加要求メッセージを送信する（Ｓ３１７）。これに対して、ノード１０３は、リンク追加要求メッセージをノード１０４から受信すると、リンク先追加処理を実行する。実行した結果、ノード１０３に設定された総リンク数の上限値を上回らないことから、コンポーネントｂ４とコンポーネントｂ３との間でリンクを形成したことが示されるリンク追加応答メッセージをノード１０４に送信する（Ｓ３１８）。ノード１０４は、リンク追加応答メッセージをノード１０３から受信する。
【０３２２】
＜まとめ＞
以上、本実施の形態におけるＷｅｂサービスシステムによれば、コンポーネントが追加されたり、削除されたりしても、各ノードが連携して動的にオーバレイネットワークを構築することができる。また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。
【０３２３】
（その他）
なお、ノード１０１、またはノード２０１などは、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、ネットワークアダプタなどを備えるとしてもよい。さらに、ＨＤＤなどに、ノード１０１、またはノード２０１などを制御するプログラム（以下、「ノード制御プログラム」と呼称する。）がインストールされており、ノード制御プログラムが実行されることによって、ノード１０１、またはノード２０１などの各機能が実現されるとしてもよい。
【０３２４】
なお、ノード１０１、またはノード２０１などは、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、ＩＰ電話機、携帯電話機などのような組み込みシステムとしてもよい。
【０３２５】
また、ノード１０１、またはノード２０１などは、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、ＣＯＲＢＡ、ＤＣＯＭ、ＳＯＡＰなどに基づいて、複数のコンピュータシステムに分散されたノード１０１、またはノード２０１などの各機能間でメッセージ通信が行われるとしてもよい。
【０３２６】
また、ノード１０１、またはノード２０１などは、Ｗｅｂサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともコンポーネント実行処理部１２０、効用情報生成処理部１３０、代替コンポーネント探索処理部１４０、効用情報伝達処理部１５０、オーバレイネットワーク構築処理部２１０などがＷｅｂサーバにおいて実現されるとしてもよい。また、コンポーネントデータベース１１２、ノードデータベース１１３、リンクデータベース１１４などがデータベースサーバにおいて実現されるとしてもよい。さらに、ＷｅｂサーバからデータベースサーバへのアクセスにＯＤＢＣ（Open DataBase Connectivity）やＪＤＢＣ（Java（登録商標） DataBase Connectivity）などを用いるとしてもよい。
【０３２７】
また、ＲＦＣ（Request for Comments）２２４６において規定されているＴＬＳ（Transport Layer Security）に基づいて、ノード１０１、またはノード２０１などと各アプリケーションサーバ間とでセキュリティ通信が行われるとしてもよい。また、ＸＭＬ暗号化（http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/）に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
【０３２８】
なお、アプリケーションサーバ１０６は、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＨＤＤ、ネットワークアダプタなどを備えるとしてもよい。さらに、ＨＤＤなどに、アプリケーションサーバ１０６を制御するプログラム（以下、「アプリケーションサーバ制御プログラム」と呼称する。）がインストールされており、アプリケーションサーバ制御プログラムが実行されることによって、アプリケーションサーバ１０６の各機能が実現されるとしてもよい。
【０３２９】
なお、アプリケーションサーバ１０６は、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、ＩＰ電話機、携帯電話機などのような組み込みシステムとしてもよい。
【０３３０】
また、アプリケーションサーバ１０６は、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、ＣＯＲＢＡ、ＤＣＯＭ、ＳＯＡＰなどに基づいて、複数のコンピュータシステムに分散されたアプリケーションサーバ１０６の各機能間でメッセージ通信が行われるとしてもよい。
【０３３１】
また、アプリケーションサーバ１０６は、Ｗｅｂサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともサービス処理部１７０、探索処理部１８０などがＷｅｂサーバにおいて実現されるとしてもよい。また、実行対象コンポーネントデータベース１６１がデータベースサーバにおいて実現されるとしてもよい。さらに、ＷＥｂサーバからデータベースサーバへのアクセスにＯＤＢＣやＪＤＢＣなどを用いるとしてもよい。
【０３３２】
また、ＲＦＣ２２４６において規定されているＴＬＳ（Transport Layer Security）に基づいて、アプリケーションサーバ１０６と各ユーザ端末間とでセキュリティ通信が行われるとしてもよい。また、ＸＭＬ暗号化（http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/）に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
【０３３３】
なお、ノード制御プログラムやアプリケーションサーバ制御プログラムは、コンピュータシステム、組み込みシステムなどのようなハードウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。これによって、ノード１０１、またはノード２０１などの各機能やアプリケーションサーバ１０６の各機能を他のハードウェアシステムに実現することができる。ここで、コンピュータシステム読み取り可能な記録媒体として、光学記録媒体（例えば、ＣＤ−ＲＯＭなど。）、磁気記録媒体（例えば、ハードディスクなど。）、光磁気記録媒体（例えば、ＭＯなど。）、半導体メモリ（例えば、メモリカードなど。）などがある。
【０３３４】
また、ノード制御プログラムやアプリケーションサーバ制御プログラムは、インターネット、ローカルエリアネットワークなどのようなネットワークに接続されているハードウェアシステムに保持されているとしてもよい。さらに、ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとしてもよい。これによって、ノード１０１、またはノード２０１の各機能やアプリケーションサーバ１０６の各機能を他のハードウェアシステムに実現することができる。ここで、ネットワークとして、地上放送網、衛星放送網、ＰＬＣ（Power Line Communication）、移動電話網、有線通信網（例えば、ＩＥＥＥ８０２．３など。）、無線通信網（例えば、ＩＥＥＥ８０２．１１など。）がある。
【０３３５】
（付録１）
以下、Ｗｅｂサービスと分散Ｗｅｂサービスとについての説明を補足する。なお、Ｗｅｂサービスには、主に、ＸＭＬ、ＳＯＡＰ（Simple Object Access Protocol）、ＷＳＤＬ（Web Services Description Language）、ＵＤＤＩ（Universal Description，Discovery，and Integration）のような要素技術が存在する。しかし、これらの要素技術については、広く知れ渡っていることから、ここでは、説明を省略する。
【０３３６】
＜Ｗｅｂサービス＞
Ｗｅｂサービスとは、ＵＲＩ（Uniform Resource Identifier）で識別でき、インターフェースとバインディングとがＸＭＬ（eXtensible Markup Language）で定義されて記述されているソフトウェアシステムである。インターネットプロトコルによって伝送されるＸＭＬベースのメッセージを利用することによって、他のソフトウェアシステムとの間で相互通信することができるソフトウェアシステムである。また、ＳＯＡ（Service Oriented Architecture）を実現する重要な技術の１つでもある。
【０３３７】
Ｗｅｂサービスでは、サービスの提供者がサービスディレクトリにサービスを登録して公開する。そして、サービスの利用者がサービスを受けるときに、アプリケーションサーバがサービスディレクトリを検索し、サービスの場所を取得し、サービスを提供しているサーバに接続する。これに対して、従来のＩｎｔｅｒｎｅｔを利用したサービスでは、サービスの利用者がＷｅｂブラウザなどを使用してサービスを探索し、探索したサービスを利用する。
【０３３８】
ＳＯＡとは、ハードウェアやＯＳ、言語に依存せず、共通のインターフェースを介して、自由に、連携したり利用したりすることができるシステムの構造を既定するソフトウェアアーキテクチャのことである。
【０３３９】
ＳＯＡでは、情報システム全体をサービスの集まりとしてとらえる。
【０３４０】
ＳＯＡを実現する従来の方法として、ＯＭＧ（Object Management Group）のＣＯＲＢＡ（Common Object Request Broker Architecture）やＭｉｃｒｏｓｏｆｔのＤＣＯＭ（Distributed Component Object Model）が挙げられる。これらの方法では、コンポーネントが密結合しているので、交換や改良が困難である。
【０３４１】
これに対して、Ｗｅｂサービスでは、アーキテクチャが疎結合であるので、コンポーネント同士が、互いに連携しても、互いに依存することが少なく、それぞれのコンポーネントの交換や改良が容易であり、変化に対して順応性が高い。さらに、既存のサービスをコンポーネントとして利用することができ、コンポーネントを組み合わせてサービスを構築することも可能である。このため、従来のように自身でサービスを一から構築する必要がなく、サービスを構築するために掛かる費用を削減することができる。また、既存のＷｅｂサービスよりも、さらに、高度なサービスを構築することも容易である。
【０３４２】
＜分散Ｗｅｂサービス＞
一方、分散Ｗｅｂサービスとは、正式に定義されているものではない。そこで、ここでは、特に、コンポーネントが１種につき１つであるものをＷｅｂサービスとし、コンポーネント１種につき複数の複製コンポーネントが存在するものを分散Ｗｅｂサービスとする。
【０３４３】
Ｗｅｂサービスでは、同一機能を有するコンポーネントが存在しない。このため、同一のコンポーネントを利用するサービスの提供者が増加することで、コンポーネントにかかる負荷が増大する。コンポーネントを利用したサービスの処理速度の低下などにより、サービスの利用者の満足度が低下する。
【０３４４】
これに対して、分散Ｗｅｂサービスでは、コンポーネントを複製して分散配置しているので、同一の機能を有するコンポーネントが複数存在する。それらのコンポーネントを利用してサービスを提供することで、１つのコンポーネントにかかる負荷を分散することができる。そのため、特定機能のコンポーネントを利用したサービスを提供する時でも、サービスの処理速度の低下を抑えることができ、サービスの利用者に対して満足のいくサービスを提供することができる。
【０３４５】
Ｗｅｂサービスでは、あるコンポーネントに障害が発生すると、複数のアプリケーションサーバが当該コンポーネントを利用したサービスの提供を停止してしまう。
【０３４６】
これに対して、分散Ｗｅｂサービスでは、障害が発生したコンポーネントと同一の機能を有するコンポーネントが存在する。このため、分散されて配置されている複数のコンポーネントの中で同一の機能を有するコンポーネントを代替コンポーネントとして探し出し、その代替コンポーネントにコンポーネントを瞬時に切り替えることでサービスを再開することが望まれる。
【０３４７】
（付録２）
以下、背景技術で説明した代替コンポーネント探索についての説明を補足する。
【０３４８】
＜代替コンポーネント探索＞
分散Ｗｅｂサービスでは、Ｗｅｂサービスで使用されているコンポーネントが使用できなくなったときに、代替となるコンポーネントを発見し、その代替コンポーネントを使用してサービスの提供を続けることが可能である。しかし、その探索手法については、規定されていない。そこで、ここでは、探索手法に関してリアクティブな探索手法とプロアクティブな探索手法について説明する。
【０３４９】
＜リアクティブな探索手法＞
リアクティブな探索手法とは、コンポーネントに障害が発生してから代替となるコンポーネントを探索する手法である。
【０３５０】
リアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報を保持していない。このため、障害発生時における代替コンポーネントの探索には、フラッディングを使用する。フラッディングは、同一メッセージを順次複製してネットワーク全体に伝達する手法である。このため、効用の高い代替コンポーネントを確実に発見することが可能である。しかし、メッセージ数が増加するため、ネットワークへの負荷が大きくなる。従って、リアクティブな探索手法では、障害が発生するまでは、メッセージのやり取りを行わないので、ネットワークに負荷をかけない。しかし、障害が発生すると、フラッディングによる多数の探索メッセージの交換を行うことで、ネットワークへの負荷が短期間で増大する。また、障害が発生してから探索を開始するため、代替コンポーネントを発見するまでに時間がかかる。
【０３５１】
フラッディングによる代替コンポーネントの探索手法には、大きく分けて２つの手法が考えられる。１つ目は、Ｆｉｒｓｔ−Ｒｅｐｌｙであり、２つ目は、Ｂｅｓｔ−Ｒｅｐｌｙである。
【０３５２】
＜Ｆｉｒｓｔ−Ｒｅｐｌｙ＞
Ｆｉｒｓｔ−Ｒｅｐｌｙとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、最初に発見したコンポーネントを代替コンポーネントとする手法である。
【０３５３】
Ｆｉｒｓｔ−Ｒｅｐｌｙでは、最初に発見した代替候補であるコンポーネントを利用するため、探索自体はすぐに終了し、探索時間を短縮することができる。サービス再開までの遅延は短くて済む。しかし、最初に発見された代替コンポーネントよりも効用の高いコンポーネントがネットワーク上に存在する場合でも、それを選択することができない。また、効用の低いコンポーネントは、他のアプリケーションサーバに使用されている可能性があり、最悪の場合は、新たに当該コンポーネントを利用するアプリケーションサーバがそのコンポーネントを使用することで過負荷によりサービスを受けられなくなる可能性がある。
【０３５４】
＜Ｂｅｓｔ  Ｒｅｐｌｙ＞
Ｂｅｓｔ−Ｒｅｐｌｙとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、一定時間内に返答があって効用の高いコンポーネントを代替コンポーネントとする手法である。
【０３５５】
Ｂｅｓｔ−Ｒｅｐｌｙでは、フラッディングにより代替コンポーネントの候補を探索していき、アプリケーションサーバに一定時間内に返答のあった代替候補コンポーネントの中から効用が高いコンポーネントを選択することで効用の高いコンポーネントを利用できる手法である。ここでは、全てのノードに代替コンポーネント候補があるかどうか調べられるように十分な時間代替候補コンポーネントからの返答を待つものとする。また、返答を待つ時間（返答待機時間）が長すぎると最初に得た代替候補コンポーネントの効用の情報が返答してから返答待機時間の間に別のアプリケーションサーバが、そのコンポーネントを利用することで変化する可能性があり、情報の信頼性が低下するという短所も持っている。このため、大規模なネットワークにおいて全ての代替候補コンポーネントからの返答を待つというのは適しておらず、どこに代替候補コンポーネントがあるか解らないときに返答待機時間の設定することも困難である。しかし、返答待機時間をメッセージの生存時間とすることで探索終了時にネットワーク上に探索メッセージが残ることはない。
【０３５６】
＜プロアクティブな代替コンポーネント探索手法＞
プロアクティブな探索手法とは、障害が発生する前にどのコンポーネントを使用するか決定しておく手法である。プロアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報や効用情報をデータベース上に保持する。また、常にメッセージの交換を行うことにより情報を更新し、情報の信頼性の低下を抑えている。
【０３５７】
プロアクティブな探索手法では、障害発生時に即座に最適な代替となるコンポーネントの探索が可能である。しかし、常にメッセージの交換を行っているので、ネットワークに定常的な負荷を与えることになる。
【０３５８】
なお、データベース管理の手法としては、全てのデータを１箇所のデータベースで一括管理する統合データベース管理と、全てのデータを分散配置された複数のデータベースで分割して管理する分散データベース管理とが考えられる。
【０３５９】
＜統合データベース管理＞
統合データベース管理とは、全てのコンポーネントの位置や効用等の情報を１箇所のデータベースにおいて一括管理する手法である。この手法を用いることでデータベースにアクセスすれば即座に最適なデータベースの位置情報を取得することができる。
【０３６０】
しかし、統合データベースでは、大規模なネットワークにおいては、管理する情報の量が膨大になる。また、動的に変化する情報をリアルタイムに把握するには多数の制御メッセージを頻繁に交換する必要があり、ネットワーク上のトラヒックが増大する。このため、大規模なネットワークにおいて、動的な情報を常に把握しておくことは困難である。また、全ての情報をデータベースで一括管理しているため、データベースへの問い合わせが集中することで、データベースが過負荷になり、情報の提供が不可能になる可能性がある。このような場合において、統合データベース管理では、代替コンポーネントの探索が不可能になる。さらに、障害が発生したコンポーネントを利用していたアプリケーションサーバは、サービスを停止しなければならなくなる。
【０３６１】
＜分散データベース管理＞
分散データベース管理とは、統合データベースで管理されていた情報を複数の場所に分散配置された複数のデータベースに分割して管理する手法である。
【０３６２】
分散データベース管理では、全てのデータを管理しているわけではない。このため、統合データベースと比較して必ずしも最適な代替コンポーネントの情報が得られるとは限らない。しかし、統合データベースにおいて存在したデータベースの障害に対する脆弱性を緩和することができ、周辺のネットワークのトラヒックの増加を抑えることができる。また、分散データベース管理では、各ノードが全ての代替コンポーネントの情報を保持する必要がないため、統合データベース管理に比べて、制御メッセージの削減が可能となる。ただし、分散データベース管理ではデータベースの場所とそのデータベースに管理させる情報の種類や数が重要な要素になる。このため、それらの要素を適切に決定することで、探索に要する時間を短縮し、代替コンポーネントを効率よく探索することが可能となると考えられる。
【産業上の利用可能性】
【０３６３】
本発明は、複数のコンポーネントを利用したＷｅｂサービスを提供するＷｅｂサービスシステムなどとして、特に、Ｗｅｂサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するＷｅｂサービスシステムなどとして、利用することができる。
【図面の簡単な説明】
【０３６４】
【図１】本発明に係わる実施の形態１におけるＷｅｂサービスシステムの概要を示す図
【図２】本発明に係わる実施の形態１における代替コンポーネント探索手法において利用時の概要を示す図
【図３】本発明に係わる実施の形態１における代替コンポーネント探索手法において障害時の概要を示す図
【図４】本発明に係わる実施の形態１における代替コンポーネント探索手法において探索時の概要を示す図
【図５】本発明に係わる実施の形態１における代替コンポーネント探索手法において再開時の概要を示す図
【図６】本発明に係わる実施の形態１におけるオーバレイネットワークの構築手法の手順を示す第１の図
【図７】本発明に係わる実施の形態１におけるオーバレイネットワークの構築手法の手順を示す第２の図
【図８】本発明に係わる実施の形態１におけるオーバレイネットワーク構築手法において構築前の概要を示す図
【図９】本発明に係わる実施の形態１におけるオーバレイネットワーク構築手法において追加時の概要を示す図
【図１０】本発明に係わる実施の形態１におけるオーバレイネットワーク構築手法において削除時の概要を示す図
【図１１】本発明に係わる実施の形態１におけるオーバレイネットワーク構築手法において構築後の概要を示す図
【図１２】本発明に係わる実施の形態１におけるＷｅｂサービスシステムの構成を示す図
【図１３】本発明に係わる実施の形態１におけるノードの構成を示す図
【図１４】本発明に係わる実施の形態１におけるコンポーネントデータベースで管理されているコンポーネント情報のデータ構造を示す図
【図１５】本発明に係わる実施の形態１におけるノードデータベースで管理されているノード情報のデータ構造を示す図
【図１６】本発明に係わる実施の形態１におけるリンクデータベースで管理されているリンク情報のデータ構造を示す図
【図１７】本発明に係わる実施の形態１における自ノード効用情報記憶部に記憶されている効用情報のデータ構造を示す図
【図１８】本発明に係わる実施の形態１における他ノード効用情報記憶部に記憶されている効用情報のデータ構造を示す図
【図１９】本発明に係わる実施の形態１におけるノードの詳細な構成を示す図
【図２０】本発明に係わる実施の形態１におけるアプリケーションサーバの構成を示す図
【図２１】本発明に係わる実施の形態１における実行対象コンポーネントデータベースで管理されているコンポーネント情報のデータ構造を示す図
【図２２】本発明に係わる実施の形態１におけるＷｅｂサービスシステムにおいてＷｅｂサービスの利用時におけるシーケンスを示す図
【図２３】本発明に係わる実施の形態１におけるＷｅｂサービスシステムにおいて代替コンポーネントの探索時におけるシーケンスを示す図
【図２４】本発明に係わる実施の形態１におけるＷｅｂサービスシステムにおいてＷｅｂサービスの再開時におけるシーケンスを示す図
【図２５】本発明に係わる実施の形態２におけるノードの構成を示す図
【図２６】本発明に係わる実施の形態２におけるノードの詳細な構成を示す図
【図２７】本発明に係わる実施の形態２におけるオーバレイネットワーク構築処理を示す図
【図２８】本発明に係わる実施の形態２におけるリンク元のノードで実行される削除対象選出処理を示す図
【図２９】本発明に係わる実施の形態２におけるリンク元のノードで実行されるリンク元削除処理を示す図
【図３０】本発明に係わる実施の形態２におけるリンク先のノードで実行されるリンク先削除処理を示す図
【図３１】本発明に係わる実施の形態２におけるリンク元のノードで実行される追加対象選出処理を示す図
【図３２】本発明に係わる実施の形態２におけるリンク元のノードで実行されるリンク元追加処理を示す図
【図３３】本発明に係わる実施の形態２におけるリンク先のノードで実行されるリンク先追加処理を示す図
【図３４】本発明に係わる実施の形態２におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第１の図
【図３５】本発明に係わる実施の形態２におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第２の図
【図３６】本発明に係わる実施の形態２におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第３の図
【符号の説明】
【０３６５】
１００  Ｗｅｂサービスシステム
１０１〜１０５，２０１  ノード
１０６  アプリケーションサーバ
１１１  コンポーネント保持部
１１２  コンポーネントデータベース
１１３  ノードデータベース
１１４  リンクデータベース
１１５  自ノード効用情報記憶部
１１６  他ノード効用情報記憶部
１２０  コンポーネント実行処理部
１２１  コンポーネント実行部
１２２  実行要求受信部
１２３  実行応答送信部
１３０  効用情報生成処理部
１３１  計測部
１３２  効用情報生成部
１４０  代替コンポーネント探索処理部
１４１  代替コンポーネント探索部
１４２  探索対象選出部
１４３  効用情報書込部
１４４  探索要求受信部
１４５  探索応答送信部
１４６  効用情報照会要求送信部
１４７  効用情報照会応答受信部
１５０  効用情報伝達処理部
１５１  効用情報読出部
１５２  効用情報照会要求受信部
１５３  効用情報照会応答送信部
１６１  実行対象コンポーネントデータベース
１６２  実行結果記憶部
１７０  サービス処理部
１７１  実行対象選出部
１７２  実行結果書込部
１７３  サービス要求受信部
１７４  サービス応答送信部
１７５  実行要求送信部
１７６  実行応答受信部
１８０  探索処理部
１８１  コンポーネント情報登録部
１８２  探索要求送信部
１８３  探索応答受信部
２１０  オーバレイネットワーク構築処理部
２１１  ＭＬＮ保持部
２１２  ＬＬＮ保持部
２１３  リンク数情報記憶部
２１４  リンク数順位記憶部
２１５  ネットワーク距離順位記憶部
２１６  期待値算出部
２１７  オーバレイネットワーク構築部
２３１  削除対象選出部
２３２  削除対象リンク元選出部
２３３  リンク元コンポーネント選出部
２３４  削除対象リンク先選出部
２４１  リンク元削除部
２４２  リンク先削除部
２４３  リンク削除確定部
２４４  リンク削除要求送信部
２４５  リンク削除応答受信部
２４６  リンク削除要求受信部
２４７  リンク削除応答送信部
２５１  追加対象選出部
２５２  追加対象リンク先選出部
２５３  リンク先ノード選出部
２６１  リンク元追加部
２６２  リンク先追加部
２６３  リンク追加確定部
２６４  リンク追加要求送信部
２６５  リンク追加応答受信部
２６６  リンク追加要求受信部
２６７  リンク追加応答送信部
２７１  リンク数情報読出部
２７２  リンク数情報書込部
２７３  リンク数情報照会要求送信部
２７４  リンク数情報照会応答受信部
２７５  リンク数情報照会要求受信部
２７６  リンク数情報照会応答送信部
【図１】
0005008075.tif 000002
【図２】
0005008075.tif 000003
【図３】
0005008075.tif 000004
【図４】
0005008075.tif 000005
【図５】
0005008075.tif 000006
【図６】
0005008075.tif 000007
【図７】
0005008075.tif 000008
【図８】
0005008075.tif 000009
【図９】
0005008075.tif 000010
【図１０】
0005008075.tif 000011
【図１１】
0005008075.tif 000012
【図１２】
0005008075.tif 000013
【図１３】
0005008075.tif 000014
【図１４】
0005008075.tif 000015
【図１５】
0005008075.tif 000016
【図１６】
0005008075.tif 000017
【図１７】
0005008075.tif 000018
【図１８】
0005008075.tif 000019
【図１９】
0005008075.tif 000020
【図２０】
0005008075.tif 000021
【図２１】
0005008075.tif 000022
【図２２】
0005008075.tif 000023
【図２３】
0005008075.tif 000024
【図２４】
0005008075.tif 000025
【図２５】
0005008075.tif 000026
【図２６】
0005008075.tif 000027
【図２７】
0005008075.tif 000028
【図２８】
0005008075.tif 000029
【図２９】
0005008075.tif 000030
【図３０】
0005008075.tif 000031
【図３１】
0005008075.tif 000032
【図３２】
0005008075.tif 000033
【図３３】
0005008075.tif 000034
【図３４】
0005008075.tif 000035
【図３５】
0005008075.tif 000036
【図３６】
0005008075.tif 000037