JP2009020574A - Webサービスシステム - Google Patents

Webサービスシステム Download PDF

Info

Publication number
JP2009020574A
JP2009020574A JP2007180874A JP2007180874A JP2009020574A JP 2009020574 A JP2009020574 A JP 2009020574A JP 2007180874 A JP2007180874 A JP 2007180874A JP 2007180874 A JP2007180874 A JP 2007180874A JP 2009020574 A JP2009020574 A JP 2009020574A
Authority
JP
Japan
Prior art keywords
link
component
information
node
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007180874A
Other languages
English (en)
Other versions
JP5008075B2 (ja
Inventor
Kazuhiko Kinoshita
和彦 木下
Kozo Murakami
孝三 村上
Hideki Tode
英樹 戸出
Wataru Miyazaki
渉 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Osaka University NUC
Original Assignee
Osaka University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Osaka University NUC filed Critical Osaka University NUC
Priority to JP2007180874A priority Critical patent/JP5008075B2/ja
Publication of JP2009020574A publication Critical patent/JP2009020574A/ja
Application granted granted Critical
Publication of JP5008075B2 publication Critical patent/JP5008075B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】コンポーネントに障害が発生したときに、ネットワーク上に分散されて配置されている複数のコンポーネントの中から、最適な代替コンポーネントを短時間で探索する探索手法を利用したWebサービスシステムを提供する。
【解決手段】Webサービスシステムにおけるノード101は、自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベース114と、Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索についてアプリケーションサーバから要求されると、リンクデータベース114に登録されているリンク情報に基づいて、論理ネットワークを形成する1以上のコンポーネントを探索し、最適なコンポーネントを選出する代替コンポーネント探索処理部140とを備える。
【選択図】図13

Description

本発明は、複数のコンポーネントを利用したWebサービスを提供するWebサービスシステムに関し、特に、Webサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するWebサービスシステムに関する。
近年、インターネットの利用者が爆発的に増加している。この背景として、インターネットを利用する環境が整ってきていることが挙げられる。例えば、WWW(World Wide Web)や電子メールなどのような通信サービスが一般的に利用されている。また、ADSL(Asymmetric Digital Subscriber Line)、CATVインターネット、FTTH(Fiber To The Home)などのような高速アクセス回線が一般的に利用されている。
そして、インターネットの利用者が増加するに伴い、インターネットを利用して享受することができるサービスの充実に対する期待が高まってきている。これに対して、インターネットを利用したサービスを提供することができる技術として、分散オブジェクト技術が提案されている。例えば、CORBA(Common Object Request Broker Architecture)やDCOM(Distributed Component Object Model)などが挙げられる。これらの分散オブジェクト技術では、分散オブジェクト技術のアーキテクチャが異なれば、アーキテクチャが異なるシステム間での相互接続が容易ではない。例えば、CORBAとDCOMとの間で通信を行うためには、両者のプロトコルを変換して両者を橋渡しするための仕組みが必要となる。
また、同じ分散オブジェクト技術で構築されたシステム間であっても、インターネットを経由してメッセージ交換を行うので、ファイアウォールの設定を変更しなければならない。例えば、CORBAでは、IIOP(Internet Inter-ORB Protocol)というプロトコルが使用されている。IIOPが使用できるように、ファイアウォールの設定を変更しなければならない。このため、これらの分散オブジェクト技術では、イントラネットやLAN(Local Area Network)などの閉じたネットワークで使用することは容易である。ただし、インターネット上のさまざまな通信プロトコルやプログラムに対応することは困難である。それにも係わらず、分散オブジェクト技術が普及するに伴い、特定の技術にしばられることなく、さまざまなプラットフォーム上で稼動するオブジェクトを利用できる技術に対する期待が高まってきている。このような状況の中で、プラットフォームが異なるシステム間でも利用できる技術として、汎用性のある通信手段を利用したWebサービスが提案されている(例えば、非特許文献1参照。)。
Webサービスでは、インターネットの標準技術であるXML(eXtensible Markup Language)を基盤としたSOAP(Simple Object Access Protocol)やWSDL(Web Services Description Language)といった技術が標準仕様として利用されている。このため、プラットフォームの壁を越えて分散オブジェクトを利用することができる。また、既存のWebサービスをコンポーネントとして利用することで、新規のWebサービスを構築することもできる。さらに、既存のコンポーネントを組み合わせてWebサービスを構築するので、Webサービスの構築が容易になり、また、サービスの構築にかかる時間やコストなどを削減することもできる。
ただし、Webサービスでは、Webサービスの利用者が増加するに伴い、Webサービスに利用されているコンポーネントが配置されているノードの負荷が増大し、コンポーネントの処理能力が低下する。また、コンポーネントに障害が発生すると、障害が発生したコンポーネントを利用したサービスを提供することができない。これに対して、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用することで、1つのコンポーネントにかかる負荷を軽減し、Webサービスのスケーラビリティを向上させることができる。また、コンポーネントに障害が発生すると、複数のノードに分散されて配置されている複数のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索して利用することで、サービスを再開することができる。ここでは、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用するWebサービスを、特に、分散Webサービスと呼ぶこととする。
ただし、分散Webサービスにおいて、代替コンポーネントの探索手法については、現状では明確な手法が確立されている訳ではない。一般的に、代替コンポーネントの探索手法として、リアクティブな探索手法やプロアクティブな探索手法などが挙げられる。ここで、リアクティブな探索手法としてフラッディングによる探索手法などがある。プロアクティブな探索手法としてデータベース管理による探索手法などがある。
ここで、フラッディングによる探索手法とは、代替コンポーネントを探索するときに、探索メッセージをブロードキャストし、応答メッセージに含まれた情報から代替コンポーネントを選択する手法である(例えば、非特許文献2参照。)。
一方、データベース管理による探索手法とは、データベースを備えるノードが定期的に制御メッセージを送ることで代替コンポーネントに関する情報を維持し、データベースに登録されている情報から代替コンポーネントを選択する手法である。
島本正、柿本彰、西本進ほか、"Webサービス完全構築ガイド"、日経BP社、2001 岡崎高久、鎌田英朗、木下和彦、戸出英樹、村上孝三、"複数要求を考慮に入れた高効率フラッディング制御"、電子情報通信学会技術研究報告、IN2005−59、July 2005
しかしながら、フラッディングによる探索手法については、この探索手法を利用して得られる情報の信頼性が高く、動的に変化する情報を得るには適しているが、障害発生後にはじめて探索を開始するため、代替コンポーネントの発見が遅くなるという問題がある。
一方、データベース管理による探索手法については、多くの候補の中から最適な代替コンポーネントを即座に発見することができるが、代替コンポーネントの情報を保持しているデータベースに障害が発生すると代替コンポーネントの探索が不可能になるという問題がある。
そこで、本発明は、上記問題に鑑みてなされたものであり、コンポーネントに障害が発生したときに、ネットワーク上に分散されて配置されている複数のコンポーネントの中から、最適な代替コンポーネントを短時間で探索する探索手法を利用したWebサービスシステムを提供することを目的とする。
上記の目的を達成するために、本発明に係わるWebサービスシステムは、下記に示す特徴を備える。
(a)複数のコンポーネントを利用してWebサービスを提供するアプリケーションサーバと、物理ネットワークを介して前記アプリケーションサーバと接続されており前記複数のコンポーネントが分散されて配置されている複数のノードとを備えるWebサービスシステムであって、前記複数のノードの各々は、(a1)自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、(a2)前記Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する1以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える。
これによって、各ノードが備えるリンクデータベースで、自ノードに配置されている1以上のコンポーネントと論理ネットワークを形成する1以上のコンポーネントが管理される。探索時には、リンクデータベースに基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
さらに、(b)前記複数のノードの各々は、(b1)自ノードに配置されている1以上のコンポーネントの中で、前記Webサービスで利用されているコンポーネントを実行する実行処理手段と、(b2)前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、(b3)前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出するとしてもよい。
これによって、論理ネットワークを形成するコンポーネントの処理能力などに関する効用情報が生成される。探索時には、効用情報に基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
または、(c)前記複数のノードの各々は、自ノードに配置されている第1のコンポーネントと、他ノードに配置されている1以上のコンポーネントの中で前記第1のコンポーネントと同一の機能を有する第2のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報を前記リンクデータベースに登録するオーバレイネットワーク構築処理手段を備えるとしてもよい。
これによって、同一機能を有する1以上のコンポーネントの間で論理ネットワークが形成される。探索時には、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。
なお、本発明は、Webサービスシステムとして実現されるだけではなく、Webサービスシステムを制御するWebサービス制御方法、Webサービス制御方法を1以上のコンピュータシステムなどに実行させるWebサービス制御プログラム、Webサービス制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
また、Webサービスシステムを構成するアプリケーションサーバ、アプリケーションサーバを制御するアプリケーションサーバ制御方法、アプリケーションサーバ制御方法をコンピュータシステムなどに実行させるアプリケーションサーバ制御プログラム、アプリケーションサーバ制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
また、Webサービスシステムを構成するノード、ノードを制御するノード制御方法、ノード制御方法をコンピュータシステムなどに実行させるノード制御プログラム、ノード制御プログラムを記録した記録媒体などとして実現されるとしてもよい。
本発明では、オーバレイネットワークを利用することで、代替コンポーネントの探索範囲を限定する。さらに、効用情報を利用することで、限定した探索範囲内で、性能の高いコンポーネントを選出する。これによって、高性能な代替コンポーネントを高速に探索することができる。また、ノード間での負荷分散が図られ、スケーラブルなシステムを構成することができる。
さらに、障害復旧にあたって、特定のコンポーネント、または特定のノードに配置されているコンポーネントが代替コンポーネントとして偏って選出されることを回避することができ、コンポーネント間、またはノード間での公平性を高めることができる。
また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。
(実施の形態1)
以下、本発明に係わる実施の形態1について図面を参照しながら説明する。
本実施の形態におけるWebサービスシステムは、下記(a),(b)に示される特徴を備える。
(a)複数のコンポーネントを利用してWebサービスを提供するアプリケーションサーバと、物理ネットワークを介してアプリケーションサーバと接続されており複数のコンポーネントが分散されて配置されている複数のノードとを備えるWebサービスシステムであって、複数のノードの各々は、(a1)自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、(a2)Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索についてアプリケーションサーバから要求されると、リンクデータベースに登録されているリンク情報に基づいて、論理ネットワークを形成する1以上のコンポーネントを探索し、所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理部とを備える。
(b)複数のノードの各々は、(b1)自ノードに配置されている1以上のコンポーネントの中で、Webサービスで利用されているコンポーネントを実行する実行処理部と、(b2)実行処理部で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理部とを備え、(b3)複数のノードの中で、最適なコンポーネントを探索するノードを探索代理ノードとし、所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、探索代理ノードにおける代替コンポーネント探索処理部は、探索対象ノードにおける効用情報生成処理部で生成された効用情報に基づいて、効用が最も高いコンポーネントを最適なコンポーネントとして選出する。
以上の点を踏まえて本実施の形態におけるWebサービスシステムについて説明する。
<概要>
まず、本実施の形態におけるWebサービスシステムの概要について説明する。
図1は、本実施の形態におけるWebサービスシステムの概要を示す図である。図1に示されるように、Webサービスシステム100は、下記の条件(1),(2)の下で分散されて管理されている効用情報を利用して代替コンポーネントを探索する。
(1)同一の機能を有する複数のコンポーネントの間でオーバレイネットワークが構築される。
ここで、コンポーネントとは、インターフェースを有するソフトウェア部品である。オーバレイネットワークとは、物理ネットワークにおけるリンクを利用して仮想的なリンクを形成した論理ネットワークである。
(2)オーバレイネットワークにおいて隣接するコンポーネント同士でコンポーネントに関する効用情報が交換される。ただし、オーバレイネットワーク上でリンクが形成されているコンポーネント間でのみ効用情報が交換される。
ここで、効用情報とは、代替コンポーネントが配置されているノードの処理能力、そのノードに対するネットワーク上における遅延、そのコンポーネントを使用しているアプリケーションサーバの数などによって、0から1の間で変動する値(以下、「効用値」と呼称する。)を含む情報である。ノードとは、ハードウェアなどのように、コンピュータシステムの物理的なリソースである。
また、以下、Webサービスとは、XML(eXtensible Markup Language)やHTTP(Hyper Text Transfer Protocol)などを使用して、URI(Uniform Resource Identifier)によって特定されるコンポーネントを組み合わせて構成されるアプリケーションサービスとする。
なお、ノード101〜105、アプリケーションサーバ106、ユーザ端末107などは、物理ネットワークを介して相互に接続され、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP/IP(User Datagram Protocol/Internet Protocol)などの通信プロトコルに基づいて、パケット単位でデータが送受信される。
なお、代替コンポーネントの探索において、サービスの再開までの時間と、再開後のサービスの質とを考慮することが重要である。ここでは、後者の指標となる値として効用値を使用する。
また、サービス再開までの時間は、代替コンポーネントを発見するまでの時間と、発見した代替コンポーネントに利用することを通知するメッセージのRTT(Round Trip Time)とを加算した値とする。
さらに、効用値と、サービス再開までの時間とは、トレードオフの関係にある。これは、次の点からも窺える。例えば、高い効用のコンポーネント、すなわち、効用値が1に近いコンポーネントを代替コンポーネントとして利用するには、複数のコンポーネントの効用値を取得して比較する必要がある。しかし、複数のコンポーネントの効用値を取得して比較するためには、探索に時間がかかり、サービスの再開までの時間が増大する。
<代替コンポーネント探索手法>
次に、本実施の形態におけるWebサービスシステムにおいて利用される代替コンポーネントの探索手法について説明する。
なお、アプリケーションサーバは、1以上のコンポーネントを利用してWebサービスを提供しているとする。また、あらかじめ、Webサービスに利用されているコンポーネントからは、コンポーネントに対する探索代理ノードのアドレスが伝達されている。アプリケーションサーバに備わるデータベースには、コンポーネントから伝達された探索代理ノードのアドレスが登録されている。
ここで、探索代理ノードとは、Webサービスで利用されているコンポーネントに対してオーバレイネットワークにおいて隣接する1以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードである。
アプリケーションサーバは、サービスを提供するにあたって利用しているコンポーネントのいずれかにおいて障害が発生した場合は、サービスの提供を停止する。データベースに登録されている複数のアドレスに基づいて、障害が発生したコンポーネントに対する探索代理ノードを特定する。特定した探索代理ノードに、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索させる探索要求を送信する。
探索代理ノードは、アプリケーションサーバから送信された探索要求に基づいて、探索代理ノードに配置されている1以上のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを特定する。特定したコンポーネントに隣接するコンポーネントを、オーバレイネットワークを形成する複数のコンポーネントの中から選出する。選出したコンポーネント(以下、「探索対象コンポーネント」と呼称する。)が配置されているノード(以下、「探索対象ノード」と呼称する。)に、探索対象コンポーネントの効用値やアドレスなどに関する情報を照会する効用情報照会要求を送信する。このとき、複数のコンポーネントが選出された場合は、複数の探索対象ノードに対して効用情報照会要求が個別に送信される。
探索対象ノードは、探索代理ノードから送信された効用情報照会要求に基づいて、探索対象ノードで管理されている情報の中から、探索対象コンポーネントの効用値やアドレスなどに関する情報を特定する。特定した情報を、効用情報照会要求に対する応答として探索代理ノードに送信する。
探索代理ノードは、探索対象ノードから送信された情報に基づいて、1以上の探索対象コンポーネントの中から、障害が発生したコンポーネントの代替として最適なコンポーネントとして効用値が1に近いコンポーネントを選択する。選択したコンポーネントが特定されるコンポーネント情報を、探索要求に対する応答としてアプリケーションサーバに送信する。
アプリケーションサーバは、探索代理ノードから送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントから、コンポーネント情報によって特定されるコンポーネントに切り替えてWebサービスの提供を再開する。
<利用時>
例えば、図2に示されるように、アプリケーションサーバ106は、コンポーネントb1,c4,e3を利用するWebサービスを提供している。なお、各コンポーネントからは、オーバレイネットワークにおいて各コンポーネントに隣接する1以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードのアドレスが探索代理ノードのアドレスとして伝達されている。アプリケーションサーバ106に備わるデータベースには、各コンポーネントから伝達された探索代理ノードのアドレスが登録されている。
ここでは、一例として、コンポーネントb1からは、コンポーネントb3が配置されているノード103のアドレスが伝達されている。データベースには、コンポーネントb1に対する探索代理ノードのアドレスとしてノード103のアドレスが登録されている。コンポーネントc4からは、コンポーネントc5が配置されているノード105のアドレスが伝達されている。データベースには、コンポーネントc4に対する探索代理ノードのアドレスとしてノード105のアドレスが登録されている。コンポーネントe3からは、コンポーネントe5が配置されているノード105のアドレスが伝達されている。データベースには、コンポーネントe3に対する探索代理ノードのアドレスとしてノード105のアドレスが登録されている。
<障害時>
次に、図3に示されるように、アプリケーションサーバ106は、コンポーネントc4に障害が発生した場合は、コンポーネントc4を利用するWebサービスの提供を停止する。
<探索時>
このとき、図4に示されるように、アプリケーションサーバ106は、データベースに登録されているアドレスに基づいて、コンポーネントc4に対する探索代理ノードとしてノード105を特定する。特定したノード105に、コンポーネントc4の代替コンポーネントとして最適なコンポーネントを探索させる要求を送信する。
これに伴い、ノード105は、オーバレイネットワークを形成する複数のコンポーネントの中で、コンポーネントc4と同一の機能を有するコンポーネントc5に隣接するコンポーネントc2,c3を選出する。選出したコンポーネントc2,c3の効用情報を、選出したコンポーネントc2,c3が配置されているノード102,103から個別に取得する。個別に取得した2つの効用情報に基づいて、最も効用の高いコンポーネント、すなわち、効用値が1に近いコンポーネントとしてコンポーネントc2を選択する。
<再開時>
そして、図5に示されるように、ノード105は、要求に対する応答として、選択したコンポーネントc2が特定されるコンポーネント情報をアプリケーションサーバ106に送信する。
アプリケーションサーバ106は、ノード105から送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントc4の代替としてコンポーネントc2を利用してWebサービスの提供を再開する。
<オーバレイネットワーク構築手法>
次に、本実施の形態におけるWebサービスシステムにおいて利用されるオーバレイネットワークの構築手法について説明する。
上記で説明した代替コンポーネントの探索手法は、オーバレイネットワークのトポロジによって、性能が大きく左右される。
例えば、探索代理ノードが効用の高いコンポーネントを探索するためには、より多くのコンポーネントとリンクを形成することが望ましい。しかし、リンク数の増加にともない管理しなければならない効用情報も増加する。このため、大規模ネットワークにおいて、管理負荷の観点から、各ノードに配置されている1以上のコンポーネントのリンク数の総和に上限を設けることが望ましい。また、一般的に、1つのノードには、1以上のコンポーネントが配置されている。
そこで、各コンポーネント間の負荷分散を図りながら、効率的に探索することが実現できるトポロジの作成が望まれる。このため、ここでは、下記の仕様が満たされるように、オーバレイネットワークが構築される。
具体的には、オーバレイネットワークにおいて、ノードiに配置されているコンポーネントaiのリンク数をdiaとしたとき、ノードiの総リンク数diに対して、下記の式(1)で示される制限を設ける。ここで、constはノードの処理能力などで決定される定数である。しかし、ここでは、話を簡潔にするために、全ノードで一定の値とする。
(1)di=dia+dib+dic+・・・≦const
また、各コンポーネントについては、オーバレイネットワークにおいて、少なくとも2本のリンクが形成されているとする。これは、1本のリンクしか形成されていない場合において、リンク先のコンポーネントに障害が発生すると、リンク元のコンポーネントがオーバレイネットワークにおいて孤立する。探索時に、探索対象コンポーネントでありながら、探索対象コンポーネントの効用値やアドレスなどに関する情報が照会されなくなるためである。
また、探索に要する時間や物理ネットワーク上に流れるトラヒック量は、物理ネットワークのノード間のホップ数と関連があると考えられる。従って、オーバレイネットワークを構築するにあたって、物理ネットワークにおいてホップ数が小さいノードに配置された1以上のコンポーネントとの間で順次リンクを形成することを試みる。
そして、リンク形成時に、ノードの総リンク数の上限に達した場合は、ノードに配置されているコンポーネントのいずれかのリンクを削除する。これにより、ノードに配置されている1以上のコンポーネントの間で、公平性が維持される。ここで、公平性とは、代替コンポーネントの探索時に、いずれのコンポーネントにおいても、同程度に、代替コンポーネントを発見することができることとする。
<構築手法の手順>
次に、上記の仕様が満たすオーバレイネットワークの構築手法の手順について説明する。
図6、図7は、本実施の形態におけるオーバレイネットワークの構築手法の手順を示す図である。図6に示されるように、ここでは、一例として、新たにコンポーネントaiがノードiに配置されたとする。この場合において、まず、コンポーネントのリンク数の下限としてLLN(Least Link Number)を設定する。ノードiの総リンク数diの上限としてMLN(Max Link Number)を設定する。ノードiにコンポーネントaが配置されることで、ノードiに配置されているコンポーネントの平均リンク数の期待値E(dia)を下記の式(2)に基づいて算出する。
(2)E(dia)=di/(ノードiに配置されているコンポーネント数)
次に、ノードiの総リンク数diがMLN以上でない限り(S101:No)、オーバレイネットワークを構成する複数のコンポーネントのいずれかと新たなリンクを形成することが試みられる。このとき、下記の手順(1)〜(3)でリンク先のコンポーネントが選出される(S102)。
(1)オーバレイネットワークを構成する複数のコンポーネントの中で、コンポーネントaiと同一の機能を有するコンポーネントを選出する。
(2)手順1で選出したコンポーネントの中で、コンポーネントaiとリンクが形成されていないコンポーネントを選出する。
(3)手順2で選出したコンポーネントの中で、オーバレイネットワークを形成する物理ネットワークにおいてノードiに最隣接するノードに配置されているコンポーネントを選出する。
ここでは、一例として、ノードiに隣接するノードjに配置されているコンポーネントajがリンク先のコンポーネントとして選出されたとする。
次に、ノードjの総リンク数djがノードjに設定されたMLN以上である場合は(S103:Yes)、ノードjに配置されている1以上のコンポーネントのいずれかのリンクを1本削除する(S104)。このとき、図7に示されるように、下記の手順(1)〜(3)で削除対象となるリンクを選出し(S111,S112)、選出したリンクを削除する(S113)。
(1)ノードjに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S111)。
(2)選出したリンク元のコンポーネントとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S112)。
(3)ノードjに配置されている1以上のコンポーネントによって形成されている1以上のリンクの中で、手順1で選出したコンポーネントと、手順2で選出したコンポーネントとによって形成されているリンクを削除する(S113)。
例えば、手順1において、ノードjに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントbjが選出されたとする。手順2において、コンポーネントbjとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントbkが選出されたとする。この場合において、コンポーネントbjとコンポーネントbkとによって形成されているリンクolb(j,k)が手順3において選出される。
そして、コンポーネントaiとコンポーネントajとの間でリンクを形成する(S105)。
ただし、リンクolb(j,k)を削除することによって、コンポーネントbkのリンク数dkbがLNNより小さくなる場合は、削除対象となるリンクは、リンクolb(j,k)を除いて再選出される。
なお、削除対象となるリンクが存在しない場合は、コンポーネントaiは、コンポーネントajとリンクを形成することを断念する。コンポーネントaiとリンクが形成されていないコンポーネントの中から、コンポーネントajを除く。
また、ノードiの総リンク数diがMLN以上になり(S101:Yes)、コンポーネントaiのリンク数diaが期待値E(dia)より小さい場合は(S106:No)、上記(1)〜(3)の手順と同様に、下記の手順(1)〜(3)で削除対象となるリンクを選出し、選出したリンクを削除する(S107)。これによって、コンポーネントaiは、新たなリンクを形成することができる。
(1)ノードiに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S111)。
(2)選出したリンク元のコンポーネントとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S112)。
(3)ノードiに配置されている1以上のコンポーネントによって形成されている1以上のリンクの中で、手順1で選出したコンポーネントと、手順2で選出したコンポーネントとによって形成されているリンクを削除する(S113)。
具体的には、図8に示されるように、新たにコンポーネントb4がノード104に配置されたとする。この場合において、図9に示されるように、コンポーネントb4は、オーバレイネットワークを形成する物理ネットワークにおいて隣接するノードnに配置された1以上のコンポーネントから、リンクolb(4,n)を形成することを試みる。このとき、コンポーネントb5とリンクを形成するにあたり、ノード105の総リンク数d5がノード105に設定されたMLN以上になる。そこで、図10に示されるように、ノード105に配置されているコンポーネントの中でリンク数が1番多いコンポーネントb5を選択する。さらに、コンポーネントb5とリンクを形成しているコンポーネントの中で、リンク数が1番多いコンポーネントb1を選択する。コンポーネントb5とコンポーネントb1とのリンクolb(1,5)を削除してから、コンポーネントb4とコンポーネントb5とのリンクolb(4,5)を追加する。
なお、ノード104の総リンク数d4がノード104に設定されたMLN以上でないので、他のコンポーネントとリンクを形成することを続ける。このようにして、図11に示されるように、新たなオーバレイネットワークのトポロジが形成される。
<構成>
次に、本実施の形態におけるWebサービスシステムの構成について説明する。
図12は、本実施の形態におけるWebサービスシステムの構成を示す図である。図12に示されるように、ここでは、一例として、Webサービスシステム100は、ノード101〜105、アプリケーションサーバ106などを備える。
ノード101〜105の各ノードは、各ノードに配置されている複数のコンポーネントの各機能を、物理ネットワークを介して、例えば、アプリケーションサーバ106などのような他のノードに提供するコンピュータシステムである。ここでは、一例として、ノード101には、コンポーネントa1,b1,c1が配置されている。ノード102には、コンポーネントa2,c2,d2が配置されている。ノード103には、b3,c3,e3が配置されている。ノード104には、コンポーネントa4,c4,d4が配置されている。ノード105には、コンポーネントc5,d5,e5が配置されている。
なお、コンポーネントa1,a2,a4の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントb1,b3の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントc1,c2,c3,c4の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントd2,d4,d5の各コンポーネントは、同一の機能を有するコンポーネントである。
アプリケーションサーバ106は、コンポーネントb1,c4,e3の各機能を組み合わせたWebサービスを、物理ネットワークを介して、例えば、ユーザ端末107などのような他のノードに提供するコンピュータシステムである。
また、アプリケーションサーバ106は、Webサービスで利用されているコンポーネント(以下、「使用コンポーネント」と呼称する。)が利用できなくなったときは、使用コンポーネントの代わりとなるコンポーネント(以下、「代替コンポーネント」と呼称する。)を、オーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索する。
<ノード>
次に、本実施の形態におけるノード101〜105の構成について説明する。なお、ノード101〜105については、構成が同一であり、ここでは、ノード101についてのみ説明し、ノード102〜105については、説明を省略する。
図13は、本実施の形態におけるノード101の構成を示す図である。図13に示されるように、ノード101は、コンポーネント保持部111、コンポーネントデータベース112、ノードデータベース113、リンクデータベース114、自ノード効用情報記憶部115、他ノード効用情報記憶部116、コンポーネント実行処理部120、効用情報生成処理部130、代替コンポーネント探索処理部140、効用情報伝達処理部150などを備える。
なお、コンポーネント実行処理部120、代替コンポーネント探索処理部140、効用情報伝達処理部150などは、CORBA、DCOM、SOAPなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、SOAPを利用してコンピュータシステム上に実現されているとする。
<コンポーネント保持部111>
コンポーネント保持部111は、自ノードに配置されている1以上のコンポーネントを保持している。
<コンポーネントデータベース112>
コンポーネントデータベース112には、自ノードに配置されているコンポーネントに関するコンポーネント情報が登録されている。
図14は、コンポーネントデータベース112で管理されているコンポーネント情報のデータ構造を示す図である。図14に示されるように、ここでは、一例として、コンポーネントデータベース112には、コンポーネント識別情報(フィールドF111)、ノード識別情報(実行ノード)(フィールドF112)、ノード識別情報(探索代理ノード)(フィールドF113)などが含まれるコンポーネント情報(レコードR111)が登録されている(テーブルT111)。
コンポーネント識別情報(フィールドF111)は、例えば、コンポーネント名のように、オーバレイネットワークを構成する1以上のコンポーネントの中でコンポーネントが識別される情報である。
ノード識別情報(実行ノード)(フィールドF112)は、コンポーネント識別情報によって特定されるコンポーネントが実行されたノードが識別される情報である。
ノード識別情報(探索代理ノード)(フィールドF113)は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別される情報である。
<ノードデータベース113>
ノードデータベース113には、自ノードに隣接する他ノードに関するノード情報が登録されている。
図15は、ノードデータベース113で管理されているノード情報のデータ構造を示す図である。図15に示されるように、ここでは、一例として、ノードデータベース113には、ノード識別情報(フィールドF121)、ホップ数(フィールドF122)、RTT(フィールドF123)などが含まれるノード情報(レコードR121)が登録されている(テーブルT121)。
ノード識別情報(フィールドF121)は、例えば、ホスト名、IPアドレスのように、物理ネットワークを構成する1以上のノード中で各ノードが識別される情報である。
ホップ数(フィールドF122)は、自ノードから、ノード識別情報によって特定されるノードまでの間に経由するルータなどの数である。
RTT(フィールドF123)は、自ノードと、ノード識別情報によって特定されるノードとの間における往復伝送時間である。
<リンクデータベース114>
リンクデータベース114には、自ノードに配置されているコンポーネント(以下、「リンク元コンポーネント」と呼称する。)と、他ノードに配置されているコンポーネント(以下、「リンク先コンポーネント」と呼称する。)との間で形成されているリンクに関するリンク情報が登録されている。
図16は、リンクデータベース114で管理されているリンク情報のデータ構造を示す図である。図16に示されるように、ここでは、一例として、リンクデータベース114には、リンク元情報(フィールドF131)、リンク先情報(フィールドF132)などが含まれるリンク情報(レコードR131)が登録されている(テーブルT131)。
リンク元情報(フィールドF131)には、リンク元のコンポーネント識別情報、リンク元のノード識別情報などが含まれる。リンク先情報(フィールドF132)には、リンク先のコンポーネント識別情報、リンク先のノード識別情報などが含まれる。
なお、本実施の形態では、あらかじめ、コンピュータシステムを使用して、上記のオーバレイネットワークの構築手法に基づいたシミュレーションを実行する。実行して得られた結果に基づいて生成されたリンク情報が、リンクデータベース114に登録されているとする。
<自ノード効用情報記憶部115>
自ノード効用情報記憶部115は、自ノードで実行されたコンポーネントごとに効用情報を記憶する。
図17は、本実施の形態における自ノード効用情報記憶部115に記憶されている効用情報のデータ構造を示す図である。図17に示されるように、自ノード効用情報記憶部115は、自ノードで実行されたコンポーネントごとに効用情報(レコードR141)を記憶する(テーブルT141)。効用情報(レコードR141)には、自ノードで実行されたコンポーネントのコンポーネント識別情報(フィールドF141)、そのコンポーネントの効用値(フィールドF142)などが含まれる。
<他ノード効用情報記憶部116>
他ノード効用情報記憶部116は、他ノードで実行されたコンポーネントごとに効用情報を記憶する。
図18は、本実施の形態における他ノード効用情報記憶部116に記憶されている効用情報のデータ構造を示す図である。図18に示されるように、他ノード効用情報記憶部116は、他ノードで実行されたコンポーネントごとに効用情報(レコードR151)を記憶する(テーブルT151)。効用情報(レコードR151)には、他ノードで実行されたコンポーネントのコンポーネント識別情報(フィールドF151)、そのコンポーネントの効用値(フィールドF152)などが含まれる。
<詳細構成>
図19は、本実施の形態におけるノード101の詳細な構成を示す図である。図19に示されるように、ノード101は、下記の構成要素などを備える。
<コンポーネント実行処理部120>
コンポーネント実行処理部120は、コンポーネント実行部121、実行要求受信部122、実行応答送信部123などを備える。
<コンポーネント実行部121>
コンポーネント実行部121は、実行要求受信部122からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントをコンポーネント保持部111から読み出す。読み出したコンポーネントを実行する。実行して得られた実行結果を実行応答送信部123に渡す。
<実行要求受信部122>
実行要求受信部122は、アプリケーションサーバ106などの送信元から送信された実行要求メッセージを受信する。受信した実行要求メッセージの送信元が特定されるノード識別情報を実行応答送信部123に渡す。受信した実行要求メッセージを解析する。解析した実行要求メッセージから、実行対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をコンポーネント実行部121に渡す。
<実行応答送信部123>
実行応答送信部123は、実行要求受信部122からノード識別情報を受け取る。コンポーネント実行部121から実行結果を受け取る。受け取った実行結果を含む応答メッセージ(以下、「実行応答メッセージ」と呼称する。)を生成する。生成した実行応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<効用情報生成処理部130>
効用情報生成処理部130は、計測部131、効用情報生成部132などを備える。
<計測部131>
計測部131は、コンポーネント実行部121でコンポーネントが実行されると、そのコンポーネントの実行に伴うパフォーマンスを計測する。そのコンポーネントが識別されるコンポーネント識別情報と、計測して得られた計測結果とを効用情報生成部132に渡す。
<効用情報生成部132>
効用情報生成部132は、計測部131からコンポーネント識別情報と計測結果とを受け取る。受け取った計測結果を使用して効用値を算出する。算出して得られた効用値を、受け取ったコンポーネント識別情報と対応付けて、受け取ったコンポーネント識別情報と、算出して得られた効用値とを含む効用情報を生成する。生成した効用情報を自ノード効用情報記憶部115に書き込む。
<代替コンポーネント探索処理部140>
代替コンポーネント探索処理部140は、代替コンポーネント探索部141、探索対象選出部142、効用情報書込部143、探索要求受信部144、探索応答送信部145、効用情報照会要求送信部146、効用情報照会応答受信部147などを備える。
<代替コンポーネント探索部141>
代替コンポーネント探索部141は、探索要求受信部144からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報を探索対象選出部142に渡す。探索対象選出部142から選出終了通知を受け取る。1以上のコンポーネントにおいて効用値の高いコンポーネントが識別されるコンポーネント識別情報を、他ノード効用情報記憶部116に記憶されている複数の効用情報の中から選出する。選出したコンポーネント識別情報によって特定されるコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選択する。選択したコンポーネント情報を探索応答送信部145に渡す。
<探索対象選出部142>
探索対象選出部142は、代替コンポーネント探索部141からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報をリンク元情報に含むリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報の各々に対して、下記の処理(1)を実行する。
(1)探索対象選出部142は、リンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とを効用情報照会要求送信部146に渡す。
探索対象選出部142は、選出した1以上のリンク情報の全てに対して、上記の処理(1)を実行すると、選出終了通知を代替コンポーネント探索部141に渡す。
なお、探索対象選出部142は、所定の時間間隔で、リンクデータベース114に登録されている1以上のリンク情報の各々に対して、上記の処理(1)を実行し、他ノードと効用情報を定期的に遣り取りするとしてもよい。また、この場合において、代替コンポーネント探索部141からコンポーネント識別情報を受け取ると、上記(1)までの処理を省略して、即時に、選出終了通知を代替コンポーネント探索部141に渡すとしてもよい。
<効用情報書込部143>
効用情報書込部143は、効用情報照会応答受信部147から効用情報を受け取る。受け取った効用情報を他ノード効用情報記憶部116に書き込む。
<探索要求受信部144>
探索要求受信部144は、アプリケーションサーバ106などの送信元から送信された探索要求メッセージを受信する。受信した探索要求メッセージの送信元が特定されるノード識別情報を探索応答送信部145に渡す。受信した探索要求メッセージを解析する。解析した探索要求メッセージから、探索対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を代替コンポーネント探索部141に渡す。
<探索応答送信部145>
探索応答送信部145は、探索要求受信部144からノード識別情報を受け取る。代替コンポーネント探索部141からコンポーネント情報を受け取る。受け取ったコンポーネント情報を含む応答メッセージ(以下、「探索応答メッセージ」と呼称する。)を生成する。生成した探索応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<効用情報照会要求送信部146>
効用情報照会要求送信部146は、探索対象選出部142からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「効用情報照会要求メッセージ」と呼称する。)を生成する。生成した効用情報照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<効用情報照会応答受信部147>
効用情報照会応答受信部147は、効用情報照会要求送信部146から送信された効用情報照会要求メッセージに対する応答メッセージ(以下、「効用情報照会応答メッセージ」と呼称する。)を受信する。受信した効用情報照会応答メッセージを解析する。解析した効用情報照会応答メッセージから、取得された効用情報を抽出する。抽出した効用情報を効用情報書込部143に渡す。
<効用情報伝達処理部150>
効用情報伝達処理部150は、効用情報読出部151、効用情報照会要求受信部152、効用情報照会応答送信部153などを備える。
<効用情報読出部151>
効用情報読出部151は、効用情報照会要求受信部152からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定される効用情報を、自ノード効用情報記憶部115から読み出す。読み出した効用情報を効用情報照会応答送信部153に渡す。
<効用情報照会要求受信部152>
効用情報照会要求受信部152は、他ノードなどの送信元から送信された効用情報照会要求メッセージを受信する。受信した効用情報照会要求メッセージの送信元が特定されるノード識別情報を効用情報照会応答送信部153に渡す。受信した効用情報照会要求メッセージを解析する。解析した効用情報照会要求メッセージから、取得対象となる効用情報が特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を効用情報読出部151に渡す。
<効用情報照会応答送信部153>
効用情報照会応答送信部153は、効用情報照会要求受信部152からノード識別情報を受け取る。効用情報取得部から効用情報を受け取る。受け取った効用情報を含む効用情報照会応答メッセージを生成する。生成した効用情報照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<アプリケーションサーバ>
次に、本実施の形態におけるアプリケーションサーバ106の構成について説明する。
図20は、本実施の形態におけるアプリケーションサーバ106の構成を示す図である。図20に示されるように、アプリケーションサーバ106は、実行対象コンポーネントデータベース161、実行結果記憶部162、サービス処理部170、探索処理部180などを備える。
<実行対象コンポーネントデータベース161>
実行対象コンポーネントデータベース161は、実行対象となるコンポーネントのコンポーネント情報が登録されている。
図21は、実行対象コンポーネントデータベース161で管理されているコンポーネント情報のデータ構造を示す図である。図21に示されるように、コンポーネントデータベース112で登録されているコンポーネント情報と同様のデータ構造である。
コンポーネント識別情報(フィールドF161)は、実行対象となるコンポーネントが識別されるコンポーネント識別情報である。
ノード識別情報(実行ノード)(フィールドF162)は、コンポーネント識別情報によって特定されるコンポーネントを実行するノードが識別されるノード識別情報である。
ノード識別情報(探索代理ノード)(フィールドF163)は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別されるノード識別情報である。
<実行結果記憶部162>
実行結果記憶部162は、実行されたコンポーネントごとに実行結果情報を記憶する。
<サービス処理部170>
図20に戻り、サービス処理部170は、実行対象選出部171、実行結果書込部172、サービス要求受信部173、サービス応答送信部174、実行要求送信部175、実行応答受信部176などを備える。
<実行対象選出部171>
実行対象選出部171は、サービス要求受信部173から1以上のコンポーネント識別情報を受け取る。受け取った1以上のコンポーネント識別情報の各々に対して、下記の処理(1)を実行する。
(1)実行対象選出部171は、受け取ったコンポーネント識別情報によって特定されるノード識別情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。受け取ったコンポーネント識別情報と、選出したノード識別情報とを実行要求送信部175に渡す。
実行対象選出部171は、受け取った1以上のコンポーネント識別情報の全てに対して、上記(1)の処理を実行すると、応答通知と、受け取った1以上のコンポーネント識別情報とをサービス応答送信部174に渡す。
なお、実行対象選出部171は、実行応答受信部176から、エラー通知とコンポーネント識別情報とを受け取ると、上記の処理を停止し、停止通知をサービス応答送信部174に渡す。さらに、探索通知と、エラー通知と一緒に受け取ったコンポーネント識別情報とを探索要求送信部182に渡す。そして、コンポーネント情報登録部181から探索完了通知を受け取ると、再開通知をサービス応答送信部174に渡し、上記の処理を再開する。
<実行結果書込部172>
実行結果書込部172は、実行応答受信部176から実行結果情報を受け取る。受け取った実行結果情報を実行結果記憶部162に書き込む。
<サービス要求受信部173>
サービス要求受信部173は、ユーザ端末107などの送信元から送信されたサービス要求メッセージを受信する。受信したサービス要求メッセージの送信元が特定されるノード識別情報をサービス応答送信部174に渡す。受信したサービス要求メッセージを解析する。解析したサービス要求メッセージから、実行対象となる1以上のコンポーネントを特定する。特定した1以上のコンポーネントが個別に識別される1以上のコンポーネント識別情報を実行対象選出部171に渡す。
<サービス応答送信部174>
サービス応答送信部174は、サービス要求受信部173からノード識別情報を受け取る。実行対象選出部171から、応答通知と、1以上のコンポーネント識別情報とを受け取る。受け取った1以上のコンポーネント識別情報によって特定される1以上の実行結果を実行結果記憶部162から読み出す。読み出した1以上の実行結果を含む応答メッセージ(以下、「サービス応答メッセージ」と呼称する。)を生成する。生成したサービス応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
なお、サービス応答送信部174は、実行対象選出部171から停止通知を受け取ると、実行対象選出部171から再開通知を受け取るまで、サービスが停止していることを通知するメッセージをサービス応答メッセージとして生成する。生成したサービス応答メッセージを送信する。
<実行要求送信部175>
実行要求送信部175は、実行対象選出部171からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「実行要求メッセージ」と呼称する。)を生成する。生成した実行要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<実行応答受信部176>
実行応答受信部176は、実行要求送信部175から送信された実行要求メッセージに対する応答メッセージ(以下、「実行応答メッセージ」と呼称する。)を受信する。受信した実行応答メッセージを解析する。解析した実行応答メッセージから、実行されたコンポーネントに対する実行結果情報を抽出する。抽出した実行結果情報を実行結果書込部172に渡す。
なお、実行応答受信部176は、実行応答メッセージがエラーメッセージである場合は、エラー通知と、特定したコンポーネントが識別されるコンポーネント識別情報とを実行対象選出部171に渡す。
<探索処理部180>
探索処理部180は、コンポーネント情報登録部181、探索要求送信部182、探索応答受信部183などを備える。
<コンポーネント情報登録部181>
コンポーネント情報登録部181は、探索応答受信部183からコンポーネント情報を受け取る。受け取ったコンポーネント情報を実行対象コンポーネントデータベース161に登録する。探索完了通知を実行対象選出部171に渡す。
なお、図21に示されるように、ここでは、一例として、実行対象コンポーネントデータベース161には、コンポーネントc4の代替コンポーネントを探索する前は、コンポーネントc4のコンポーネント情報が登録されているとする(T161)。この場合において、コンポーネントc4の代替コンポーネントとしてコンポーネントc2が選出されると、コンポーネント情報登録部181は、コンポーネントc2のコンポーネント情報を受け取る。コンポーネントc4のコンポーネント情報の代わりに、受け取ったコンポーネントc2のコンポーネント情報を、実行対象コンポーネントデータベース161に登録する(T162)。
<探索要求送信部182>
探索要求送信部182は、実行対象選出部171からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「探索要求メッセージ」と呼称する。)を生成する。生成した探索要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<探索応答受信部183>
探索応答受信部183は、探索要求送信部182から送信された探索要求メッセージに対する応答メッセージ(以下、「探索応答メッセージ」と呼称する。)を受信する。受信した探索応答メッセージを解析する。解析した探索応答メッセージから、代替コンポーネントに関するコンポーネント情報を抽出する。抽出したコンポーネント情報をコンポーネント情報登録部181に渡す。
<動作>
次に、本実施の形態におけるWebサービスシステムにおいて代替コンポーネント探索時における処理について説明する。
<利用時>
図22は、本実施の形態におけるWebサービスシステムにおいてWebサービスの利用時におけるシーケンスを示す図である。図22に示されるように、ユーザ端末107は、アプリケーションサーバ106で提供されているWebサービスの利用に関するサービス要求をアプリケーションサーバ106に送信する(S121)。
ここでは、アプリケーションサーバ106で提供されているWebサービスに、コンポーネントb1、コンポーネントc4、コンポーネントe4が利用されているとする。この場合において、アプリケーションサーバ106は、ユーザ端末107からサービス要求を受信すると、下記の処理(1)〜(3)を個別に実行する。
(1)アプリケーションサーバ106は、コンポーネントb1が配置されているノード101に、コンポーネントb1の実行を要求する実行要求メッセージを送信する(S122)。これに対して、ノード101は、コンポーネントb1の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントb1を実行し、コンポーネントb1の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S125)。アプリケーションサーバ106は、コンポーネントb1の実行結果を含む実行応答メッセージをノード101から受信する。
(2)アプリケーションサーバ106は、コンポーネントc4が配置されているノード104に、コンポーネントc4の実行を要求する実行要求メッセージを送信する(S123)。これに対して、ノード104は、コンポーネントc4の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントc4を実行し、コンポーネントc4の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S126)。アプリケーションサーバ106は、コンポーネントc4の実行結果を含む実行応答メッセージをノード104から受信する。
(3)アプリケーションサーバ106は、コンポーネントe3が配置されているノード103に、コンポーネントe3の実行を要求する実行要求メッセージを送信する(S124)。これに対して、ノード103は、コンポーネントe3の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントe3を実行し、コンポーネントe3の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S127)。アプリケーションサーバ106は、コンポーネントe3の実行結果を含む実行応答メッセージをノード103から受信する。
そして、アプリケーションサーバ106は、コンポーネントb1の実行結果、コンポーネントc4の実行結果、コンポーネントe3の実行結果を利用して生成したサービス応答メッセージをユーザ端末107に送信する(S128)。
ユーザ端末107は、アプリケーションサーバ106から送信されたサービス応答メッセージを受信する。
<探索時>
図23は、本実施の形態におけるWebサービスシステムにおいて代替コンポーネントの探索時におけるシーケンスを示す図である。図23に示されるように、アプリケーションサーバ106は、Webサービスで利用されている1以上のコンポーネントのいずれかが利用できなくなった場合は、サービスを停止する。
ここでは、コンポーネントc4が利用できなくなったとする。この場合において、アプリケーションサーバ106は、コンポーネントc4と対応付けられているノード105に、コンポーネントc4の代替コンポーネントの探索を要求する探索要求メッセージを送信する(S131)。これに対して、ノード105は、アプリケーションサーバ106から探索要求メッセージを受信すると、コンポーネントc4と同一の機能を有するコンポーネントc5とオーバレイネットワークにおいてリンクされているコンポーネントc2とコンポーネントc3との中から、コンポーネントc4の代替コンポーネントとして最適なコンポーネントを選択する。このとき、下記の処理(1),(2)を個別に実行する。
(1)ノード105は、コンポーネントc4と同一の機能を有するコンポーネントc2が配置されているノード102に、コンポーネントc2の効用情報を照会する照会要求メッセージを送信する(S132)。これに対して、ノード102は、コンポーネントc2の効用情報を照会する照会要求メッセージを受信すると、コンポーネントc2の効用情報を含む取得応答メッセージをノード105に送信する(S134)。ノード105は、コンポーネントc2の効用情報を含む取得応答メッセージを受信する。
(2)ノード105は、コンポーネントc4と同一の機能を有するコンポーネントc3が配置されているノード103に、コンポーネントc3の効用情報を照会する照会要求メッセージを送信する(S133)。これに対して、ノード103は、コンポーネントc3の効用情報を照会する照会要求メッセージを受信すると、コンポーネントc3の効用情報を含む取得応答メッセージをノード105に送信する(S135)。ノード105は、コンポーネントc3の効用情報を含む取得応答メッセージを受信する。
そして、ノード105は、コンポーネントc2の効用情報と、コンポーネントc3の効用情報とに基づいて、コンポーネントc2とコンポーネントc3との中から、効用値の高いコンポーネントc2を、コンポーネントc4の代替コンポーネントとして選択する。コンポーネントc2の識別情報を含む探索応答メッセージを送信する(S136)。
アプリケーションサーバ106は、ノード105からコンポーネントc2の識別情報を含む探索応答メッセージを受信すると、コンポーネントc4の代わりに、コンポーネントc2を利用して、サービスを再開する。
<再開時>
図24は、本実施の形態におけるWebサービスシステムにおいてWebサービスの再開時におけるシーケンスを示す図である。図24に示されるように、ユーザ端末107は、アプリケーションサーバ106で提供されているWebサービスの利用に関するサービス要求をアプリケーションサーバ106に送信する(S141)。
ここでは、アプリケーションサーバ106で提供されているWebサービスに、コンポーネントb1、コンポーネントe4が利用されているとする。また、コンポーネントc4の代わりに、コンポーネントc2が利用されているとする。この場合において、アプリケーションサーバ106は、ユーザ端末107からサービス要求を受信すると、下記の処理(1)〜(3)を個別に実行する。
(1)アプリケーションサーバ106は、コンポーネントb1が配置されているノード101に、コンポーネントb1の実行を要求する実行要求メッセージを送信する(S142)。これに対して、ノード101は、コンポーネントb1の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントb1を実行し、コンポーネントb1の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S145)。アプリケーションサーバ106は、コンポーネントb1の実行結果を含む実行応答メッセージをノード101から受信する。
(2)アプリケーションサーバ106は、コンポーネントc2が配置されているノード102に、コンポーネントc2の実行を要求する実行要求メッセージを送信する(S143)。これに対して、ノード102は、コンポーネントc2の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントc2を実行し、コンポーネントc2の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S146)。アプリケーションサーバ106は、コンポーネントc2の実行結果を含む実行応答メッセージをノード102から受信する。
(3)アプリケーションサーバ106は、コンポーネントe3が配置されているノード103に、コンポーネントe3の実行を要求する実行要求メッセージを送信する(S144)。これに対して、ノード103は、コンポーネントe3の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントe3を実行し、コンポーネントe3の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S147)。アプリケーションサーバ106は、コンポーネントe3の実行結果を含む実行応答メッセージをノード103から受信する。
そして、アプリケーションサーバ106は、コンポーネントb1の実行結果、コンポーネントc2の実行結果、コンポーネントe3の実行結果を利用して生成したサービス応答メッセージをユーザ端末107に送信する(S148)。
ユーザ端末107は、アプリケーションサーバ106から送信されたサービス応答メッセージを受信する。
<まとめ>
以上、本実施の形態におけるWebサービスシステム100によれば、Webサービスで使用している1以上のコンポーネントのいずれかが使用できなくなっても、代わりのコンポーネントを即時に発見することができ、早期にWebサービスを再開することができる。このとき、探索代理ノードは、オーバレイネットワークを構成するコンポーネントを探索し、使用できなくなったコンポーネントと同一の機能を有するコンポーネントの効用情報に基づいて、効用の高いコンポーネントを選出する。これによって、即時に、使用できなくなったコンポーネントの代わりとなるコンポーネントを効率的に選出することができる。また、選出したコンポーネントのコンポーネント情報をアプリケーションサーバ106に通知することによって、アプリケーションサーバ106は、使用できなくなったコンポーネントの代わりとして最適なコンポーネントを特定することができ、早期にWebサービスを再開することができる。
(実施の形態2)
以下、本発明に係わる実施の形態2について図面を参照しながら説明する。
<概要>
本実施の形態におけるWebサービスシステムは、下記(c)に示される特徴を備える。
(c)複数のノードの各々は、自ノードに配置されている第1のコンポーネントと、他ノードに配置されている1以上のコンポーネントの中で第1のコンポーネントと同一の機能を有する第2のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報をリンクデータベースに登録するオーバレイネットワーク構築処理部を備える。
以上の点を踏まえて本実施の形態におけるWebサービスシステムについて説明する。なお、実施の形態1におけるWebサービスシステムと同一の構成要素については、同一の参照符号を付して説明を省略する。
<構成>
まず、本実施の形態におけるWebサービスシステムの構成について説明する。
本実施の形態におけるWebサービスシステムは、実施の形態1におけるWebサービスシステム100と比べて、新たにオーバレイネットワークを構築する機能がノード101〜105に備わる点が異なる。ここでは、新たにオーバレイネットワークを構築する機能がノード101に備わった場合を例にして、本実施の形態におけるノードについてのみ説明する。
次に、本実施の形態におけるノードの構成について説明する。
図25は、本実施の形態におけるノードの構成を示す図である。図25に示されるように、ノード201は、実施の形態1におけるノード101と比べて、オーバレイネットワーク構築処理部210を新たに備える点が異なる。
なお、オーバレイネットワーク構築処理部210は、CORBA、DCOM、SOAPなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、SOAPを利用してコンピュータシステム上に実現されているとする。
<オーバレイネットワーク構築処理部>
図26は、本実施の形態におけるノードの詳細な構成を示す図である。図26に示されるように、オーバレイネットワーク構築処理部210は、MLN保持部211、LLN保持部212、リンク数情報記憶部213、リンク数順位記憶部214、ネットワーク距離順位記憶部215、期待値算出部216、オーバレイネットワーク構築部217などを備える。
さらに、オーバレイネットワーク構築処理部210は、削除対象選出部231、削除対象リンク元選出部232、リンク元コンポーネント選出部233、削除対象リンク先選出部234などを備える。
さらに、オーバレイネットワーク構築処理部210は、リンク元削除部241、リンク先削除部242、リンク削除確定部243、リンク削除要求送信部244、リンク削除応答受信部245、リンク削除要求受信部246、リンク削除応答送信部247などを備える。
さらに、オーバレイネットワーク構築処理部210は、追加対象選出部251、追加対象リンク先選出部252、リンク先ノード選出部253などを備える。
さらに、オーバレイネットワーク構築処理部210は、リンク元追加部261、リンク先追加部262、リンク追加確定部263、リンク追加要求送信部264、リンク追加応答受信部265、リンク追加要求受信部266、リンク追加応答送信部267などを備える。
さらに、オーバレイネットワーク構築処理部210は、リンク数情報読出部271、リンク数情報書込部272、リンク数情報照会要求送信部273、リンク数情報照会応答受信部274、リンク数情報照会要求受信部275、リンク数情報照会応答送信部276などを備える。
<MLN保持部211>
MLN保持部211は、自ノードに配置されている1以上のコンポーネントの総リンク数の最大値となるMLNを保持する。
<LLN保持部212>
LLN保持部212は、自ノードに配置されている1以上のコンポーネントの各リンク数の最小値となるLLNを保持する。
<リンク数情報記憶部213>
リンク数情報記憶部213は、リンク先ごとにリンク数情報を個別に記憶する。
<リンク数順位記憶部214>
リンク数順位記憶部214は、自ノードに配置されている1以上のコンポーネントをリンク数が多い順に並べたときの順位が特定されるリンク数順位情報を記憶する。
<ネットワーク距離順位記憶部215>
ネットワーク距離順位記憶部215は、ネットワークを構成する1以上の他ノードを自ノードから近い順に並べたときの順位が特定されるネットワーク距離順位情報を記憶する。
<期待値算出部216>
期待値算出部216は、自ノードに配置されているコンポーネントの平均リンク数の期待値を算出する。
<オーバレイネットワーク構築部217>
オーバレイネットワーク構築部217は、ノードに新たにコンポーネントが配置されると、ネットワーク距離順位情報を「1番近い」が示される値に設定する。リンク数順位情報を「1番多い」が示される値に設定する。下記のリンク形成処理を実行する。
オーバレイネットワーク構築部217は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)ノードの総リンク数がMLN以上である場合は、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部231に渡す。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する。
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク形成処理を終了する。
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、オーバレイネットワーク構築部217は、受け取った削除対象リンク情報をリンク元削除部241に渡す。リンク元削除部241から削除失敗通知を受け取ると、リンク形成処理を終了する。リンク元削除部241から削除成功通知を受け取ると、リンク形成処理を再度実行する。
(2)ノードの総リンク数がMLN以上でない場合は、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部251に渡す。追加対象選出部251から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理(2a),(2b)のいずれかを実行する。
(2a)受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク形成処理を終了する。
(2b)受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、オーバレイネットワーク構築部217は、受け取った追加対象リンク情報をリンク元追加部261に渡す。リンク元追加部261から追加失敗通知を受け取ると、リンク形成処理を終了する。リンク元追加部261から追加成功通知を受け取ると、リンク形成処理を再度実行する。
<削除対象選出部231>
削除対象選出部231は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報と、期待値算出部216で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する。判定した結果、リンク数が期待値以上である場合は、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。一方、期待値以上でない場合は、下記の削除対象リンク選出処理を実行する。
削除対象選出部231は、自ノードが特定されるノード識別情報を削除対象リンク元選出部232に渡す。削除対象リンク元選出部232からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部234に渡す。削除対象リンク先選出部234からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク元情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は、削除対象選出部231は、リンク数順位情報を「1番多い」が示される値に設定する。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(2)受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は、削除対象選出部231は、リンク数順位情報を「次に多い」が示される値に設定する。受け取ったリンク先情報に応じて、下記の処理(2a),(2b)のいずれかを実行する。
(2a)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、削除対象選出部231は、上記の削除対象リンク選出処理から再度実行する。
(2b)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、削除対象選出部231は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。
なお、削除対象選出部231は、リンク先追加部262からコンポーネント識別情報を受け取ると、上記の処理と同様の処理を実行して、削除対象リンク情報をリンク先追加部262に渡す。
<削除対象リンク元選出部232>
削除対象リンク元選出部232は、削除対象選出部231からノード識別情報を受け取る。選出通知をリンク元コンポーネント選出部233に渡す。リンク元コンポーネント選出部233からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がヌル情報である場合は、ヌル情報をリンク元情報として削除対象選出部231に渡す。一方、受け取ったコンポーネント識別情報がヌル情報でない場合は、受け取ったコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク元情報を生成する。生成したリンク元情報を削除対象選出部231に渡す。
<リンク元コンポーネント選出部233>
リンク元コンポーネント選出部233は、削除対象リンク元選出部232から選出通知を受け取る。リンクデータベース114に登録されている1以上のリンク情報に基づいて、リンク元における各コンポーネントのリンク数を算出する。算出して得られた結果に基づいて、リンク数順位記憶部214に記憶されているリンク数順位情報によって特定される順位のコンポーネントを特定する。特定したコンポーネントが識別されるコンポーネント識別情報を削除対象リンク元選出部232に渡す。
<削除対象リンク先選出部234>
削除対象リンク先選出部234は、削除対象選出部231からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報の各々に対して、下記の処理(1)を実行する。
(1)削除対象リンク先選出部234は、選出したリンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とをリンク数情報照会要求送信部273に渡す。
削除対象リンク先選出部234は、選出した1以上のリンク情報の全てに対して、上記(1)の処理を実行し、リンク数情報記憶部213にリンク数情報が存在する場合は、リンク数情報記憶部213に記憶されている1以上のリンク数情報に基づいて、選出した1以上のリンク情報によって特定される1以上のリンク先の中から、リンク数が最多のリンク先を選出する。選出したリンク先が特定されるリンク先情報を削除対象選出部231に渡す。
一方、削除対象リンク先選出部234は、リンク数情報記憶部213にリンク数情報が存在しない場合は、ヌル情報をリンク先情報として削除対象選出部231に渡す。
<リンク元削除部241>
リンク元削除部241は、オーバレイネットワーク構築部217から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った削除対象リンク情報とをリンク削除要求送信部244に渡す。リンク削除応答受信部245から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク元削除部241は、削除失敗通知をオーバレイネットワーク構築部217に渡す。
(2)受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、リンク元削除部241は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する。削除成功通知をオーバレイネットワーク構築部217に渡す。
なお、リンク元削除部241は、リンク先追加部262かた削除対象リンク情報を受け取ると、上記の処理と同様の処理を実行して、削除失敗通知および削除成功通知のいずれかをリンク先追加部262に渡す。
<リンク先削除部242>
リンク先削除部242は、リンク削除要求受信部246から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部243に渡す。リンク削除確定部243から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は、受け取った削除確定リンク情報をリンク削除応答送信部247に渡す。一方、受け取った削除確定リンク情報がヌル情報でない場合は、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている1以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する。LLN保持部212で保持されているLLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がLLN以下であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)特定したリンク先のコンポーネントのリンク数がLLN以下である場合は、リンク先削除部242は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部247に渡す。
(2)特定したリンク先のコンポーネントのリンク数がLLN以下でない場合は、リンク先削除部242は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する。受け取った削除確定リンク情報をリンク削除応答送信部247に渡す。
<リンク削除確定部243>
リンク削除確定部243は、リンク先削除部242から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)選出したコンポーネント情報がヌル情報である場合は、リンク削除確定部243は、ヌル情報を削除確定リンク情報としてリンク先削除部242に渡す。
(2)選出したコンポーネント情報がヌル情報でない場合は、リンク削除確定部243は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報(実行ノード)とを含むリンク先情報を生成する。受け取った削除対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を削除確定リンク情報としてリンク先削除部242に渡す。
<リンク削除要求送信部244>
リンク削除要求送信部244は、リンク元削除部241からノード識別情報と削除対象リンク情報とを受け取る。受け取った削除対象リンク情報を含む要求メッセージ(以下、「リンク削除要求メッセージ」と呼称する。)を生成する。生成したリンク削除要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<リンク削除応答受信部245>
リンク削除応答受信部245は、リンク削除要求送信部244から送信されたリンク削除要求メッセージに対する応答メッセージ(以下、「リンク削除応答メッセージ」と呼称する。)を受信する。受信したリンク削除応答メッセージを解析する。解析したリンク削除応答メッセージから削除確定リンク情報を抽出する。抽出した削除確定リンク情報をリンク元削除部241に渡す。
<リンク削除要求受信部246>
リンク削除要求受信部246は、他ノードのような送信元からリンク削除要求メッセージを受信する。受信したリンク削除要求メッセージの送信元が特定されるノード識別情報をリンク削除応答送信部247に渡す。受信したリンク削除要求メッセージを解析する。解析したリンク削除要求メッセージから削除対象リンク情報を抽出する。抽出した削除対象リンク情報をリンク先削除部242に渡す。
<リンク削除応答送信部247>
リンク削除応答送信部247は、リンク削除要求受信部246からノード識別情報を受け取る。リンク先削除部242から削除確定リンク情報を受け取る。受け取った削除確定リンク情報を含むリンク削除応答メッセージを生成する。生成したリンク削除応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<追加対象選出部251>
追加対象選出部251は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成する。受け取ったコンポーネント識別情報を追加対象リンク先選出部252に渡す。追加対象リンク先選出部252からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク先情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、追加対象選出部251は、ネットワーク距離順位情報を「1番近い」が示される値に設定する。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(2)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、追加対象選出部251は、ネットワーク距離順位情報を「次に近い」が示される値に設定する。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す。
<追加対象リンク先選出部252>
追加対象リンク先選出部252は、追加対象選出部251からコンポーネント識別情報を受け取る。選出通知をリンク先ノード選出部253に渡す。リンク先ノード選出部253からノード識別情報を受け取る。受け取ったノード識別情報がヌル情報である場合は、ヌル情報をリンク先情報として追加対象選出部251に渡す。
一方、受け取ったノード識別情報がヌル情報でない場合は、追加対象リンク先選出部252は、受け取ったコンポーネント識別情報をリンク先のコンポーネント識別情報として設定する。設定したリンク先のコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク先情報を生成する。生成したリンク先情報を追加対象選出部251に渡す。
<リンク先ノード選出部253>
リンク先ノード選出部253は、追加対象リンク先選出部252から選出通知を受け取る。ノードデータベース113に登録されている1以上のノード情報に基づいて、リンク先における各ノードのネットワーク距離を算出する。算出して得られた結果に基づいて、ネットワーク距離順位記憶部215に記憶されているネットワーク距離順位情報によって特定される順位のノードを特定する。特定したノードが識別されるノード識別情報を追加対象リンク先選出部252に渡す。
なお、ここでは、話を簡潔にするために、ノード情報のRTTをネットワーク距離とする。RTTの値が大きければ、ネットワーク距離も長いとし、RTTの値が小さければ、ネットワーク距離も短いとする。
<リンク元追加部261>
リンク元追加部261は、オーバレイネットワーク構築部217から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った追加対象リンク情報とをリンク追加要求送信部264に渡す。リンク追加応答受信部265から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク元追加部261は、追加失敗通知をオーバレイネットワーク構築部217に渡す。
(2)受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、リンク元追加部261は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。追加成功通知をオーバレイネットワーク構築部217に渡す。
<リンク先追加部262>
リンク先追加部262は、リンク追加要求受信部266から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部263に渡す。リンク追加確定部263から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合は、受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。一方、受け取った追加確定リンク情報がヌル情報でない場合は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)ノードの総リンク数がMLN以上である場合は、リンク先追加部262は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部231に渡す。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する。
(1a)受け取った削除対象リンク情報がヌル情報である場合は、リンク先追加部262は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す。
(1b)受け取った削除対象リンク情報がヌル情報でない場合は、リンク先追加部262は、受け取った削除対象リンク情報をリンク元削除部241に渡す。リンク元削除部241から削除失敗通知を受け取ると、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す。リンク元削除部241から削除成功通知を受け取ると、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。
(2)ノードの総リンク数がMLN以上でない場合は、リンク先追加部262は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。
<リンク追加確定部263>
リンク追加確定部263は、リンク先追加部262から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理(1),(2)のいずれかを実行する。
(1)選出したコンポーネント情報がヌル情報である場合は、リンク追加確定部263は、ヌル情報を追加確定リンク情報としてリンク先追加部262に渡す。
(2)選出したコンポーネント情報がヌル情報でない場合は、リンク追加確定部263は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報(実行ノード)とを含むリンク先情報を生成する。受け取った追加対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を追加確定リンク情報としてリンク先追加部262に渡す。
<リンク追加要求送信部264>
リンク追加要求送信部264は、リンク元追加部261からノード識別情報と追加対象リンク情報とを受け取る。受け取った追加対象リンク情報を含む要求メッセージ(以下、「リンク追加要求メッセージ」と呼称する。)を生成する。生成したリンク追加要求メッセージを、受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報によって特定される送信先に送信する。
<リンク追加応答受信部265>
リンク追加応答受信部265は、リンク追加要求送信部264から送信されたリンク追加要求メッセージに対する応答メッセージ(以下、「リンク追加応答メッセージ」と呼称する。)を受信する。受信したリンク追加応答メッセージを解析する。解析したリンク追加応答メッセージから追加確定リンク情報を抽出する。抽出した追加確定リンク情報をリンク元追加部261に渡す。
<リンク追加要求受信部266>
リンク追加要求受信部266は、他ノードのような送信元からリンク追加要求メッセージを受信する。受信したリンク追加要求メッセージの送信元が特定されるノード識別情報をリンク追加応答送信部267に渡す。受信したリンク追加要求メッセージを解析する。解析したリンク追加要求メッセージから追加対象リンク情報を抽出する。抽出した追加対象リンク情報をリンク先追加部262に渡す。
<リンク追加応答送信部267>
リンク追加応答送信部267は、リンク追加要求受信部266からノード識別情報を受け取る。リンク先追加部262から追加確定リンク情報を受け取る。受け取った追加確定リンク情報を含むリンク追加応答メッセージを生成する。生成したリンク追加応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<リンク数情報読出部271>
リンク数情報読出部271は、リンク数情報照会要求受信部275からコンポーネント識別情報を受け取る。コンポーネントデータベース112に登録されている1以上のコンポーネント情報に基づいて、自ノードに配置されている1以上のコンポーネントの中から、受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを特定する。リンクデータベース114に登録されている1以上のリンク情報に基づいて、特定したコンポーネントのリンク数を算出する。算出したコンポーネントが識別されるコンポーネント識別情報と、自ノードが特定されるノード識別情報と、特定したリンク数とを含むリンク数情報を生成する。生成したリンク数情報をリンク数情報照会応答送信部276に渡す。
<リンク数情報書込部272>
リンク数情報書込部272は、リンク数情報照会応答受信部274からリンク数情報を受け取る。受け取ったリンク数情報をリンク数情報記憶部213に書き込む。
<リンク数情報照会要求送信部273>
リンク数情報照会要求送信部273は、削除対象リンク先選出部234からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「リンク数照会要求メッセージ」と呼称する。)を生成する。生成したリンク数照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<リンク数情報照会応答受信部274>
リンク数情報照会応答受信部274は、リンク数情報照会要求送信部273から送信されたリンク数照会要求メッセージに対する応答メッセージ(以下、「リンク数照会応答メッセージ」と呼称する。)を受信する。受信したリンク数照会応答メッセージを解析する。解析したリンク数照会応答メッセージからリンク数情報を抽出する。抽出したリンク数情報をリンク数情報書込部272に渡す。
<リンク数情報照会要求受信部275>
リンク数情報照会要求受信部275は、他ノードのような送信元からリンク数照会要求メッセージを受信する。受信したリンク数照会要求メッセージの送信元が特定されるノード識別情報をリンク数情報照会応答送信部276に渡す。受信したリンク数照会要求メッセージを解析する。解析したリンク数照会要求メッセージからコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をリンク数情報読出部271に渡す。
<リンク数情報照会応答送信部276>
リンク数情報照会応答送信部276は、リンク数情報照会要求受信部275からノード識別情報を受け取る。リンク数情報読出部271からリンク数情報を受け取る。受け取ったリンク数情報を含むリンク数照会応答メッセージを生成する。生成したリンク数照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<動作>
次に、本実施の形態におけるWebサービスシステムの動作について説明する。
<オーバレイネットワーク構築処理>
図27は、本実施の形態におけるオーバレイネットワーク構築処理を示す図である。図27に示されるように、オーバレイネットワーク構築部217は、ノードに新たにコンポーネントが配置されると(S201:Yes)、ネットワーク距離順位情報を「1番近い」が示される値に設定する(S202)。リンク数順位情報を「1番多い」が示される値に設定する(S203)。下記のリンク形成処理(S204)〜(S212)を実行する。
オーバレイネットワーク構築部217は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S204)。
(1)ノードの総リンク数がMLN以上である場合は(S204:Yes)、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部231に渡し、削除対象選出処理を実行する(S205)。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する(S206)。
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S206:Yes)、リンク形成処理を終了する。
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S206:No)、オーバレイネットワーク構築部217は、受け取った削除対象リンク情報をリンク元削除部241に渡し、リンク元削除処理を実行する(S207)。リンク元削除部241から削除失敗通知を受け取ると(S208:Yes)、リンク形成処理を終了する。リンク元削除部241から削除成功通知を受け取ると(S208:No)、リンク形成処理を再度実行する(S204)。
(2)ノードの総リンク数がMLN以上でない場合は(S204:No)、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部251に渡し、追加対象選出処理を実行する(S209)。追加対象選出部251から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理(2a),(2b)のいずれかを実行する(S210)。
(2a)受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S210:Yes)、リンク形成処理を終了する。
(2b)受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S210:No)、オーバレイネットワーク構築部217は、受け取った追加対象リンク情報をリンク元追加部261に渡し、リンク元追加処理を実行する(S211)。リンク元追加部261から追加失敗通知を受け取ると(S212:Yes)、リンク形成処理を終了する。リンク元追加部261から追加成功通知を受け取ると(S212:No)、リンク形成処理を再度実行する(S204)。
<削除対象選出処理>
次に、本実施の形態におけるリンク元のノードで実行される削除対象選出処理について説明する。
図28は、本実施の形態におけるリンク元のノードで実行される削除対象選出処理を示す図である。図28に示されるように、削除対象選出部231は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する(S221)。選出した1以上のリンク情報と、期待値算出部216で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する(S222)。判定した結果、リンク数が期待値以上である場合は(S222:Yes)、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S223)。一方、期待値以上でない場合は(S222:No)、下記の削除対象リンク選出処理(S224)〜(S231)を実行する。
削除対象選出部231は、自ノードが特定されるノード識別情報を削除対象リンク元選出部232に渡し、削除対象となるリンク元を選出する(S224)。削除対象リンク元選出部232からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部234に渡し、削除対象となるリンク先を選出する(S225)。削除対象リンク先選出部234からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する(S226)。受け取ったリンク元情報に応じて、下記の処理(1),(2)のいずれかを実行する(S227)。
(1)受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は(S227:Yes)、削除対象選出部231は、リンク数順位情報を「1番多い」が示される値に設定する(S228)。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S223)。
(2)受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は(S227:No)、削除対象選出部231は、リンク数順位情報を「次に多い」が示される値に設定する(S229)。受け取ったリンク先情報に応じて、下記の処理(2a),(2b)のいずれかを実行する(S230)。
(2a)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は(S230:Yes)、削除対象選出部231は、上記の削除対象リンク選出処理から再度実行する(S224)。
(2b)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は(S230:No)、削除対象選出部231は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S231)。
<リンク元削除処理>
次に、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理について説明する。
図29は、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理を示す図である。図29に示されるように、リンク元削除部241は、オーバレイネットワーク構築部217から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除要求送信部244に渡し、削除対象となるリンク先のノードにリンク先削除処理を実行させる(S241)。リンク削除応答受信部245から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する(S242)。
(1)受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S242:Yes)、リンク元削除部241は、削除失敗通知をオーバレイネットワーク構築部217に渡す(S243)。
(2)受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S242:No)、リンク元削除部241は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する(S244)。削除成功通知をオーバレイネットワーク構築部217に渡す(S245)。
<リンク先削除処理>
次に、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理について説明する。
図30は、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理を示す図である。図30に示されるように、リンク先削除部242は、リンク削除要求受信部246から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部243に渡し、削除対象となるリンクを確定する(S251)。リンク削除確定部243から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は(S252:Yes)、受け取った削除確定リンク情報をリンク削除応答送信部247に渡す(S253)。一方、受け取った削除確定リンク情報がヌル情報でない場合は(S252:No)、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている1以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する(S254)。LLN保持部212で保持されているLLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がLLN以下であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S255)。
(1)特定したリンク先のコンポーネントのリンク数がLLN以下である場合は(S255:Yes)、リンク先削除部242は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部247に渡す(S253)。
(2)特定したリンク先のコンポーネントのリンク数がLLN以下でない場合は(S255:No)、リンク先削除部242は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する(S256)。受け取った削除確定リンク情報をリンク削除応答送信部247に渡す(S257)。
<追加対象選出処理>
次に、本実施の形態におけるリンク元のノードで実行される追加対象選出処理について説明する。
図31は、本実施の形態におけるリンク元のノードで実行される追加対象選出処理を示す図である。図31に示されるように、追加対象選出部251は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成し、追加対象となるリンク元を設定する(S261)。受け取ったコンポーネント識別情報を追加対象リンク先選出部252に渡し、追加対象となるリンク先を選出する(S262)。追加対象リンク先選出部252からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する(S263)。受け取ったリンク先情報に応じて、下記の処理(1),(2)のいずれかを実行する(S264)。
(1)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は(S264:Yes)、追加対象選出部251は、ネットワーク距離順位情報を「1番近い」が示される値に設定する(S265)。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す(S266)。
(2)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は(S264:No)、追加対象選出部251は、ネットワーク距離順位情報を「次に近い」が示される値に設定する(S267)。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す(S268)。
<リンク元追加処理>
次に、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理について説明する。
図32は、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理を示す図である。図32に示されるように、リンク元追加部261は、オーバレイネットワーク構築部217から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加要求送信部264に渡し、追加対象となるリンク先のノードにリンク先追加処理を実行させる(S281)。リンク追加応答受信部265から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する(S282)。
(1)受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S282:Yes)、追加失敗通知をオーバレイネットワーク構築部217に渡す(S283)。
(2)受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S282:No)、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S284)。追加成功通知をオーバレイネットワーク構築部217に渡す(S285)。
<リンク先追加処理>
次に、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理について説明する。
図33は、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理を示す図である。図33に示されるように、リンク先追加部262は、リンク追加要求受信部266から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部263に渡し、追加対象となるリンクを確定する(S291)。リンク追加確定部263から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S292:Yes)、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。一方、受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S292:No)、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S294)。
(1)ノードの総リンク数がMLN以上である場合は(S294:Yes)、リンク先追加部262は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部231に渡し、削除対象選出処理を実行する(S295)。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する(S296)。
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S296:Yes)、リンク先追加部262は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S296:No)、リンク先追加部262は、受け取った削除対象リンク情報をリンク元削除部241に渡し、リンク元削除処理を実行する(S297)。リンク元削除部241から削除失敗通知を受け取ると(S298:Yes)、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。リンク元削除部241から削除成功通知を受け取ると(S298:No)、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S299)。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す(S300)。
(2)ノードの総リンク数がMLN以上でない場合は(S294:No)、リンク先追加部262は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S299)。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す(S300)。
<シーケンス>
次に、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスについて説明する。ここでは、一例として、図8〜図11に示されるように、新たにコンポーネントb4がノード4に配置された場合について、ノード間の相互作用について説明する。
なお、物理ネットワークにおいて、ノード4から近い順で、ノード1、ノード2、ノード5、ノード3が配置されているものとする。
図34〜図36は、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す図である。図34に示されるように、この場合において、ノード104は、リンク追加処理時に、下記の処理(1)〜(4)を実行する。
(1)ノード104は、コンポーネントb1が配置されているノード101に、コンポーネントb4とコンポーネントb1との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S311)。これに対して、ノード101は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード101に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb1との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S312)。ノード104は、リンク追加応答メッセージをノード101から受信する。
(2)ノード104は、コンポーネントb2が配置されているノード102に、コンポーネントb4とコンポーネントb2との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S313)。これに対して、ノード102は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード102に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb2との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S314)。ノード104は、リンク追加応答メッセージをノード102から受信する。
(3)ノード104は、コンポーネントb5が配置されているノード105に、コンポーネントb4とコンポーネントb5との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S315)。これに対して、ノード105は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード105に設定された総リンク数の上限値を上回ることから、他のリンクを削除することを試みる。
このとき、図35に示されるように、ノード105は、削除対象選出処理時に、下記の処理(3a)〜(3c)を個別に実行する。
(3a)ノード105は、コンポーネントb1が配置されているノード101に、コンポーネントb1のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S321)。これに対して、ノード101は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb1のリンク数を算出し、算出したリンク数(4本)を含むリンク数情報照会応答メッセージをノード105に送信する(S324)。ノード105は、リンク数情報照会応答メッセージをノード101から受信する。
(3b)ノード105は、コンポーネントb2が配置されているノード102に、コンポーネントb2のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S322)。これに対して、ノード102は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb2のリンク数を算出し、算出したリンク数(3本)を含むリンク数情報照会応答メッセージをノード105に送信する(S325)。ノード105は、リンク数情報照会応答メッセージをノード102から受信する。
(3c)ノード105は、コンポーネントb3が配置されているノード103に、コンポーネントb3のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S323)。これに対して、ノード103は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb3のリンク数を算出し、算出したリンク数(2本)を含むリンク数情報照会応答メッセージをノード105に送信する(S326)。ノード105は、リンク数情報照会応答メッセージをノード103から受信する。
そして、ノード105は、コンポーネントb1のリンク数(4本)、コンポーネントb2のリンク数(3本)、コンポーネントb3のリンク数(2本)をリンク数情報記憶部213にリンク先ごとに記憶する。削除対象としてリンク数が1番多いコンポーネントb1を選出する。
さらに、図36に示されるように、ノード105は、コンポーネントb1が配置されているノード101に、コンポーネントb5とコンポーネントb1との間で形成されたリンクを削除することを要求するリンク削除要求メッセージを送信する(S331)。これに対して、ノード101は、リンク削除要求メッセージをノード105から受信すると、リンク先削除処理を実行する。実行した結果、ノード101に設定されたリンク数の下限値を下回らないことから、コンポーネントb5とコンポーネントb1との間で形成されたリンクを削除したことを示すリンク削除応答メッセージをノード105に送信する(S332)。ノード105は、リンク削除応答メッセージを101から受信する。
これに伴い、ノード105は、ノード105に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb5との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S316)。ノード104は、リンク追加応答メッセージをノード105から受信する。
(4)ノード104は、コンポーネントb3が配置されているノード103に、コンポーネントb1とコンポーネントb3との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S317)。これに対して、ノード103は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード103に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb3との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S318)。ノード104は、リンク追加応答メッセージをノード103から受信する。
<まとめ>
以上、本実施の形態におけるWebサービスシステムによれば、コンポーネントが追加されたり、削除されたりしても、各ノードが連携して動的にオーバレイネットワークを構築することができる。また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。
(その他)
なお、ノード101、またはノード201などは、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、ネットワークアダプタなどを備えるとしてもよい。さらに、HDDなどに、ノード101、またはノード201などを制御するプログラム(以下、「ノード制御プログラム」と呼称する。)がインストールされており、ノード制御プログラムが実行されることによって、ノード101、またはノード201などの各機能が実現されるとしてもよい。
なお、ノード101、またはノード201などは、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、IP電話機、携帯電話機などのような組み込みシステムとしてもよい。
また、ノード101、またはノード201などは、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、CORBA、DCOM、SOAPなどに基づいて、複数のコンピュータシステムに分散されたノード101、またはノード201などの各機能間でメッセージ通信が行われるとしてもよい。
また、ノード101、またはノード201などは、Webサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともコンポーネント実行処理部120、効用情報生成処理部130、代替コンポーネント探索処理部140、効用情報伝達処理部150、オーバレイネットワーク構築処理部210などがWebサーバにおいて実現されるとしてもよい。また、コンポーネントデータベース112、ノードデータベース113、リンクデータベース114などがデータベースサーバにおいて実現されるとしてもよい。さらに、WebサーバからデータベースサーバへのアクセスにODBC(Open DataBase Connectivity)やJDBC(Java(登録商標) DataBase Connectivity)などを用いるとしてもよい。
また、RFC(Request for Comments)2246において規定されているTLS(Transport Layer Security)に基づいて、ノード101、またはノード201などと各アプリケーションサーバ間とでセキュリティ通信が行われるとしてもよい。また、XML暗号化(http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
なお、アプリケーションサーバ106は、CPU、RAM、ROM、HDD、ネットワークアダプタなどを備えるとしてもよい。さらに、HDDなどに、アプリケーションサーバ106を制御するプログラム(以下、「アプリケーションサーバ制御プログラム」と呼称する。)がインストールされており、アプリケーションサーバ制御プログラムが実行されることによって、アプリケーションサーバ106の各機能が実現されるとしてもよい。
なお、アプリケーションサーバ106は、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、IP電話機、携帯電話機などのような組み込みシステムとしてもよい。
また、アプリケーションサーバ106は、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、CORBA、DCOM、SOAPなどに基づいて、複数のコンピュータシステムに分散されたアプリケーションサーバ106の各機能間でメッセージ通信が行われるとしてもよい。
また、アプリケーションサーバ106は、Webサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともサービス処理部170、探索処理部180などがWebサーバにおいて実現されるとしてもよい。また、実行対象コンポーネントデータベース161がデータベースサーバにおいて実現されるとしてもよい。さらに、WEbサーバからデータベースサーバへのアクセスにODBCやJDBCなどを用いるとしてもよい。
また、RFC2246において規定されているTLS(Transport Layer Security)に基づいて、アプリケーションサーバ106と各ユーザ端末間とでセキュリティ通信が行われるとしてもよい。また、XML暗号化(http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
なお、ノード制御プログラムやアプリケーションサーバ制御プログラムは、コンピュータシステム、組み込みシステムなどのようなハードウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。これによって、ノード101、またはノード201などの各機能やアプリケーションサーバ106の各機能を他のハードウェアシステムに実現することができる。ここで、コンピュータシステム読み取り可能な記録媒体として、光学記録媒体(例えば、CD−ROMなど。)、磁気記録媒体(例えば、ハードディスクなど。)、光磁気記録媒体(例えば、MOなど。)、半導体メモリ(例えば、メモリカードなど。)などがある。
また、ノード制御プログラムやアプリケーションサーバ制御プログラムは、インターネット、ローカルエリアネットワークなどのようなネットワークに接続されているハードウェアシステムに保持されているとしてもよい。さらに、ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとしてもよい。これによって、ノード101、またはノード201の各機能やアプリケーションサーバ106の各機能を他のハードウェアシステムに実現することができる。ここで、ネットワークとして、地上放送網、衛星放送網、PLC(Power Line Communication)、移動電話網、有線通信網(例えば、IEEE802.3など。)、無線通信網(例えば、IEEE802.11など。)がある。
(付録1)
以下、Webサービスと分散Webサービスとについての説明を補足する。なお、Webサービスには、主に、XML、SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)、UDDI(Universal Description,Discovery,and Integration)のような要素技術が存在する。しかし、これらの要素技術については、広く知れ渡っていることから、ここでは、説明を省略する。
<Webサービス>
Webサービスとは、URI(Uniform Resource Identifier)で識別でき、インターフェースとバインディングとがXML(eXtensible Markup Language)で定義されて記述されているソフトウェアシステムである。インターネットプロトコルによって伝送されるXMLベースのメッセージを利用することによって、他のソフトウェアシステムとの間で相互通信することができるソフトウェアシステムである。また、SOA(Service Oriented Architecture)を実現する重要な技術の1つでもある。
Webサービスでは、サービスの提供者がサービスディレクトリにサービスを登録して公開する。そして、サービスの利用者がサービスを受けるときに、アプリケーションサーバがサービスディレクトリを検索し、サービスの場所を取得し、サービスを提供しているサーバに接続する。これに対して、従来のInternetを利用したサービスでは、サービスの利用者がWebブラウザなどを使用してサービスを探索し、探索したサービスを利用する。
SOAとは、ハードウェアやOS、言語に依存せず、共通のインターフェースを介して、自由に、連携したり利用したりすることができるシステムの構造を既定するソフトウェアアーキテクチャのことである。
SOAでは、情報システム全体をサービスの集まりとしてとらえる。
SOAを実現する従来の方法として、OMG(Object Management Group)のCORBA(Common Object Request Broker Architecture)やMicrosoftのDCOM(Distributed Component Object Model)が挙げられる。これらの方法では、コンポーネントが密結合しているので、交換や改良が困難である。
これに対して、Webサービスでは、アーキテクチャが疎結合であるので、コンポーネント同士が、互いに連携しても、互いに依存することが少なく、それぞれのコンポーネントの交換や改良が容易であり、変化に対して順応性が高い。さらに、既存のサービスをコンポーネントとして利用することができ、コンポーネントを組み合わせてサービスを構築することも可能である。このため、従来のように自身でサービスを一から構築する必要がなく、サービスを構築するために掛かる費用を削減することができる。また、既存のWebサービスよりも、さらに、高度なサービスを構築することも容易である。
<分散Webサービス>
一方、分散Webサービスとは、正式に定義されているものではない。そこで、ここでは、特に、コンポーネントが1種につき1つであるものをWebサービスとし、コンポーネント1種につき複数の複製コンポーネントが存在するものを分散Webサービスとする。
Webサービスでは、同一機能を有するコンポーネントが存在しない。このため、同一のコンポーネントを利用するサービスの提供者が増加することで、コンポーネントにかかる負荷が増大する。コンポーネントを利用したサービスの処理速度の低下などにより、サービスの利用者の満足度が低下する。
これに対して、分散Webサービスでは、コンポーネントを複製して分散配置しているので、同一の機能を有するコンポーネントが複数存在する。それらのコンポーネントを利用してサービスを提供することで、1つのコンポーネントにかかる負荷を分散することができる。そのため、特定機能のコンポーネントを利用したサービスを提供する時でも、サービスの処理速度の低下を抑えることができ、サービスの利用者に対して満足のいくサービスを提供することができる。
Webサービスでは、あるコンポーネントに障害が発生すると、複数のアプリケーションサーバが当該コンポーネントを利用したサービスの提供を停止してしまう。
これに対して、分散Webサービスでは、障害が発生したコンポーネントと同一の機能を有するコンポーネントが存在する。このため、分散されて配置されている複数のコンポーネントの中で同一の機能を有するコンポーネントを代替コンポーネントとして探し出し、その代替コンポーネントにコンポーネントを瞬時に切り替えることでサービスを再開することが望まれる。
(付録2)
以下、背景技術で説明した代替コンポーネント探索についての説明を補足する。
<代替コンポーネント探索>
分散Webサービスでは、Webサービスで使用されているコンポーネントが使用できなくなったときに、代替となるコンポーネントを発見し、その代替コンポーネントを使用してサービスの提供を続けることが可能である。しかし、その探索手法については、規定されていない。そこで、ここでは、探索手法に関してリアクティブな探索手法とプロアクティブな探索手法について説明する。
<リアクティブな探索手法>
リアクティブな探索手法とは、コンポーネントに障害が発生してから代替となるコンポーネントを探索する手法である。
リアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報を保持していない。このため、障害発生時における代替コンポーネントの探索には、フラッディングを使用する。フラッディングは、同一メッセージを順次複製してネットワーク全体に伝達する手法である。このため、効用の高い代替コンポーネントを確実に発見することが可能である。しかし、メッセージ数が増加するため、ネットワークへの負荷が大きくなる。従って、リアクティブな探索手法では、障害が発生するまでは、メッセージのやり取りを行わないので、ネットワークに負荷をかけない。しかし、障害が発生すると、フラッディングによる多数の探索メッセージの交換を行うことで、ネットワークへの負荷が短期間で増大する。また、障害が発生してから探索を開始するため、代替コンポーネントを発見するまでに時間がかかる。
フラッディングによる代替コンポーネントの探索手法には、大きく分けて2つの手法が考えられる。1つ目は、First−Replyであり、2つ目は、Best−Replyである。
<First−Reply>
First−Replyとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、最初に発見したコンポーネントを代替コンポーネントとする手法である。
First−Replyでは、最初に発見した代替候補であるコンポーネントを利用するため、探索自体はすぐに終了し、探索時間を短縮することができる。サービス再開までの遅延は短くて済む。しかし、最初に発見された代替コンポーネントよりも効用の高いコンポーネントがネットワーク上に存在する場合でも、それを選択することができない。また、効用の低いコンポーネントは、他のアプリケーションサーバに使用されている可能性があり、最悪の場合は、新たに当該コンポーネントを利用するアプリケーションサーバがそのコンポーネントを使用することで過負荷によりサービスを受けられなくなる可能性がある。
<Best Reply>
Best−Replyとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、一定時間内に返答があって効用の高いコンポーネントを代替コンポーネントとする手法である。
Best−Replyでは、フラッディングにより代替コンポーネントの候補を探索していき、アプリケーションサーバに一定時間内に返答のあった代替候補コンポーネントの中から効用が高いコンポーネントを選択することで効用の高いコンポーネントを利用できる手法である。ここでは、全てのノードに代替コンポーネント候補があるかどうか調べられるように十分な時間代替候補コンポーネントからの返答を待つものとする。また、返答を待つ時間(返答待機時間)が長すぎると最初に得た代替候補コンポーネントの効用の情報が返答してから返答待機時間の間に別のアプリケーションサーバが、そのコンポーネントを利用することで変化する可能性があり、情報の信頼性が低下するという短所も持っている。このため、大規模なネットワークにおいて全ての代替候補コンポーネントからの返答を待つというのは適しておらず、どこに代替候補コンポーネントがあるか解らないときに返答待機時間の設定することも困難である。しかし、返答待機時間をメッセージの生存時間とすることで探索終了時にネットワーク上に探索メッセージが残ることはない。
<プロアクティブな代替コンポーネント探索手法>
プロアクティブな探索手法とは、障害が発生する前にどのコンポーネントを使用するか決定しておく手法である。プロアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報や効用情報をデータベース上に保持する。また、常にメッセージの交換を行うことにより情報を更新し、情報の信頼性の低下を抑えている。
プロアクティブな探索手法では、障害発生時に即座に最適な代替となるコンポーネントの探索が可能である。しかし、常にメッセージの交換を行っているので、ネットワークに定常的な負荷を与えることになる。
なお、データベース管理の手法としては、全てのデータを1箇所のデータベースで一括管理する統合データベース管理と、全てのデータを分散配置された複数のデータベースで分割して管理する分散データベース管理とが考えられる。
<統合データベース管理>
統合データベース管理とは、全てのコンポーネントの位置や効用等の情報を1箇所のデータベースにおいて一括管理する手法である。この手法を用いることでデータベースにアクセスすれば即座に最適なデータベースの位置情報を取得することができる。
しかし、統合データベースでは、大規模なネットワークにおいては、管理する情報の量が膨大になる。また、動的に変化する情報をリアルタイムに把握するには多数の制御メッセージを頻繁に交換する必要があり、ネットワーク上のトラヒックが増大する。このため、大規模なネットワークにおいて、動的な情報を常に把握しておくことは困難である。また、全ての情報をデータベースで一括管理しているため、データベースへの問い合わせが集中することで、データベースが過負荷になり、情報の提供が不可能になる可能性がある。このような場合において、統合データベース管理では、代替コンポーネントの探索が不可能になる。さらに、障害が発生したコンポーネントを利用していたアプリケーションサーバは、サービスを停止しなければならなくなる。
<分散データベース管理>
分散データベース管理とは、統合データベースで管理されていた情報を複数の場所に分散配置された複数のデータベースに分割して管理する手法である。
分散データベース管理では、全てのデータを管理しているわけではない。このため、統合データベースと比較して必ずしも最適な代替コンポーネントの情報が得られるとは限らない。しかし、統合データベースにおいて存在したデータベースの障害に対する脆弱性を緩和することができ、周辺のネットワークのトラヒックの増加を抑えることができる。また、分散データベース管理では、各ノードが全ての代替コンポーネントの情報を保持する必要がないため、統合データベース管理に比べて、制御メッセージの削減が可能となる。ただし、分散データベース管理ではデータベースの場所とそのデータベースに管理させる情報の種類や数が重要な要素になる。このため、それらの要素を適切に決定することで、探索に要する時間を短縮し、代替コンポーネントを効率よく探索することが可能となると考えられる。
本発明は、複数のコンポーネントを利用したWebサービスを提供するWebサービスシステムなどとして、特に、Webサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するWebサービスシステムなどとして、利用することができる。
本発明に係わる実施の形態1におけるWebサービスシステムの概要を示す図 本発明に係わる実施の形態1における代替コンポーネント探索手法において利用時の概要を示す図 本発明に係わる実施の形態1における代替コンポーネント探索手法において障害時の概要を示す図 本発明に係わる実施の形態1における代替コンポーネント探索手法において探索時の概要を示す図 本発明に係わる実施の形態1における代替コンポーネント探索手法において再開時の概要を示す図 本発明に係わる実施の形態1におけるオーバレイネットワークの構築手法の手順を示す第1の図 本発明に係わる実施の形態1におけるオーバレイネットワークの構築手法の手順を示す第2の図 本発明に係わる実施の形態1におけるオーバレイネットワーク構築手法において構築前の概要を示す図 本発明に係わる実施の形態1におけるオーバレイネットワーク構築手法において追加時の概要を示す図 本発明に係わる実施の形態1におけるオーバレイネットワーク構築手法において削除時の概要を示す図 本発明に係わる実施の形態1におけるオーバレイネットワーク構築手法において構築後の概要を示す図 本発明に係わる実施の形態1におけるWebサービスシステムの構成を示す図 本発明に係わる実施の形態1におけるノードの構成を示す図 本発明に係わる実施の形態1におけるコンポーネントデータベースで管理されているコンポーネント情報のデータ構造を示す図 本発明に係わる実施の形態1におけるノードデータベースで管理されているノード情報のデータ構造を示す図 本発明に係わる実施の形態1におけるリンクデータベースで管理されているリンク情報のデータ構造を示す図 本発明に係わる実施の形態1における自ノード効用情報記憶部に記憶されている効用情報のデータ構造を示す図 本発明に係わる実施の形態1における他ノード効用情報記憶部に記憶されている効用情報のデータ構造を示す図 本発明に係わる実施の形態1におけるノードの詳細な構成を示す図 本発明に係わる実施の形態1におけるアプリケーションサーバの構成を示す図 本発明に係わる実施の形態1における実行対象コンポーネントデータベースで管理されているコンポーネント情報のデータ構造を示す図 本発明に係わる実施の形態1におけるWebサービスシステムにおいてWebサービスの利用時におけるシーケンスを示す図 本発明に係わる実施の形態1におけるWebサービスシステムにおいて代替コンポーネントの探索時におけるシーケンスを示す図 本発明に係わる実施の形態1におけるWebサービスシステムにおいてWebサービスの再開時におけるシーケンスを示す図 本発明に係わる実施の形態2におけるノードの構成を示す図 本発明に係わる実施の形態2におけるノードの詳細な構成を示す図 本発明に係わる実施の形態2におけるオーバレイネットワーク構築処理を示す図 本発明に係わる実施の形態2におけるリンク元のノードで実行される削除対象選出処理を示す図 本発明に係わる実施の形態2におけるリンク元のノードで実行されるリンク元削除処理を示す図 本発明に係わる実施の形態2におけるリンク先のノードで実行されるリンク先削除処理を示す図 本発明に係わる実施の形態2におけるリンク元のノードで実行される追加対象選出処理を示す図 本発明に係わる実施の形態2におけるリンク元のノードで実行されるリンク元追加処理を示す図 本発明に係わる実施の形態2におけるリンク先のノードで実行されるリンク先追加処理を示す図 本発明に係わる実施の形態2におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第1の図 本発明に係わる実施の形態2におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第2の図 本発明に係わる実施の形態2におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す第3の図
符号の説明
100 Webサービスシステム
101〜105,201 ノード
106 アプリケーションサーバ
111 コンポーネント保持部
112 コンポーネントデータベース
113 ノードデータベース
114 リンクデータベース
115 自ノード効用情報記憶部
116 他ノード効用情報記憶部
120 コンポーネント実行処理部
121 コンポーネント実行部
122 実行要求受信部
123 実行応答送信部
130 効用情報生成処理部
131 計測部
132 効用情報生成部
140 代替コンポーネント探索処理部
141 代替コンポーネント探索部
142 探索対象選出部
143 効用情報書込部
144 探索要求受信部
145 探索応答送信部
146 効用情報照会要求送信部
147 効用情報照会応答受信部
150 効用情報伝達処理部
151 効用情報読出部
152 効用情報照会要求受信部
153 効用情報照会応答送信部
161 実行対象コンポーネントデータベース
162 実行結果記憶部
170 サービス処理部
171 実行対象選出部
172 実行結果書込部
173 サービス要求受信部
174 サービス応答送信部
175 実行要求送信部
176 実行応答受信部
180 探索処理部
181 コンポーネント情報登録部
182 探索要求送信部
183 探索応答受信部
210 オーバレイネットワーク構築処理部
211 MLN保持部
212 LLN保持部
213 リンク数情報記憶部
214 リンク数順位記憶部
215 ネットワーク距離順位記憶部
216 期待値算出部
217 オーバレイネットワーク構築部
231 削除対象選出部
232 削除対象リンク元選出部
233 リンク元コンポーネント選出部
234 削除対象リンク先選出部
241 リンク元削除部
242 リンク先削除部
243 リンク削除確定部
244 リンク削除要求送信部
245 リンク削除応答受信部
246 リンク削除要求受信部
247 リンク削除応答送信部
251 追加対象選出部
252 追加対象リンク先選出部
253 リンク先ノード選出部
261 リンク元追加部
262 リンク先追加部
263 リンク追加確定部
264 リンク追加要求送信部
265 リンク追加応答受信部
266 リンク追加要求受信部
267 リンク追加応答送信部
271 リンク数情報読出部
272 リンク数情報書込部
273 リンク数情報照会要求送信部
274 リンク数情報照会応答受信部
275 リンク数情報照会要求受信部
276 リンク数情報照会応答送信部

Claims (3)

  1. 複数のコンポーネントを利用してWebサービスを提供するアプリケーションサーバと、物理ネットワークを介して前記アプリケーションサーバと接続されており前記複数のコンポーネントが分散されて配置されている複数のノードとを備えるWebサービスシステムであって、
    前記複数のノードの各々は、
    自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、
    前記Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する1以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える
    ことを特徴とするWebサービスシステム。
  2. 前記複数のノードの各々は、
    自ノードに配置されている1以上のコンポーネントの中で、前記Webサービスで利用されているコンポーネントを実行する実行処理手段と、
    前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、
    前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出する
    ことを特徴とする請求項1に記載のWebサービスシステム。
  3. 前記複数のノードの各々は、自ノードに配置されている第1のコンポーネントと、他ノードに配置されている1以上のコンポーネントの中で前記第1のコンポーネントと同一の機能を有する第2のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報を前記リンクデータベースに登録するオーバレイネットワーク構築処理手段を備える
    ことを特徴とする請求項1に記載のWebサービスシステム。
JP2007180874A 2007-07-10 2007-07-10 Webサービスシステム Expired - Fee Related JP5008075B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007180874A JP5008075B2 (ja) 2007-07-10 2007-07-10 Webサービスシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007180874A JP5008075B2 (ja) 2007-07-10 2007-07-10 Webサービスシステム

Publications (2)

Publication Number Publication Date
JP2009020574A true JP2009020574A (ja) 2009-01-29
JP5008075B2 JP5008075B2 (ja) 2012-08-22

Family

ID=40360187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007180874A Expired - Fee Related JP5008075B2 (ja) 2007-07-10 2007-07-10 Webサービスシステム

Country Status (1)

Country Link
JP (1) JP5008075B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250021A (ja) * 1998-03-05 1999-09-17 Nippon Telegr & Teleph Corp <Ntt> ネットワーク上での分散処理方法及びそのシステム並びに分散処理プログラムを記録した媒体
JP2002007368A (ja) * 2000-06-23 2002-01-11 Mitsubishi Electric Corp 分散処理システムの業務割当管理サーバ、業務割当管理方式及び業務割当管理方法
WO2005107218A1 (en) * 2004-04-30 2005-11-10 Ntt Docomo, Inc. Zone-based peer-to-peer
JP2006114040A (ja) * 2004-10-08 2006-04-27 Microsoft Corp コンピュータクラスタのノードのフェールオーバー範囲
JP2007164264A (ja) * 2005-12-09 2007-06-28 Fuji Xerox Co Ltd 負荷分散プログラム、負荷分散装置、サービスシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250021A (ja) * 1998-03-05 1999-09-17 Nippon Telegr & Teleph Corp <Ntt> ネットワーク上での分散処理方法及びそのシステム並びに分散処理プログラムを記録した媒体
JP2002007368A (ja) * 2000-06-23 2002-01-11 Mitsubishi Electric Corp 分散処理システムの業務割当管理サーバ、業務割当管理方式及び業務割当管理方法
WO2005107218A1 (en) * 2004-04-30 2005-11-10 Ntt Docomo, Inc. Zone-based peer-to-peer
JP2006114040A (ja) * 2004-10-08 2006-04-27 Microsoft Corp コンピュータクラスタのノードのフェールオーバー範囲
JP2007164264A (ja) * 2005-12-09 2007-06-28 Fuji Xerox Co Ltd 負荷分散プログラム、負荷分散装置、サービスシステム

Also Published As

Publication number Publication date
JP5008075B2 (ja) 2012-08-22

Similar Documents

Publication Publication Date Title
US7174382B2 (en) Interest-based connections in peer-to-peer networks
US7644182B2 (en) Reconfiguring a multicast tree
KR101438982B1 (ko) 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법
RU2408064C2 (ru) Маршрутизация в одноранговых сетях
US6748416B2 (en) Client-side method and apparatus for improving the availability and performance of network mediated services
EP1825654B1 (en) Routing a service query in an overlay network
US20040236869A1 (en) Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof
CN111464611A (zh) 动态复杂场景下固定云和边缘节点之间高效服务访问的方法
Huang et al. Network-aware P2P file sharing over the wireless mobile networks
WO2010077379A1 (en) Systems and methods for peer-to-peer bandwidth allocation
JP2009193250A (ja) 分散ディレクトリサーバ、分散ディレクトリシステム、分散ディレクトリ方法、およびプログラム
Tigelaar et al. Peer-to-peer information retrieval: An overview
Sacha et al. Decentralising a service-oriented architecture
Papadopouli et al. Design and implementation of a peer-to-peer data dissemination and prefetching tool for mobile users
Talia et al. Peer-to-peer protocols and grid services for resource discovery on grids
Yang et al. A reinforcement learning based data storage and traffic management in information-centric data center networks
US9544371B1 (en) Method to discover multiple paths to disk devices cluster wide
CN109644160B (zh) 通过分类在icn中进行名称解析和制作者选择的混合方法
JP5008075B2 (ja) Webサービスシステム
JP4146373B2 (ja) 動的なネットワークにおけるサービス選択方法およびサービス選択システム
CN115883657A (zh) 一种云盘服务加速调度的方法及系统
Shukla et al. Towards software defined low maintenance structured peer-to-peer overlays
CN102986196B (zh) 分布于通信结构上的节点利用具有多准则选择的拓扑服务器访问网络
CN102017568A (zh) 用于递送自主播放的内容的系统
JP2008521083A (ja) コンフィギュレーションを提供する方法、サーバ、ソフトウェア、装置及び信号

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120501

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120524

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees