JP5008075B2 - Web service system - Google Patents
Web service system Download PDFInfo
- Publication number
- JP5008075B2 JP5008075B2 JP2007180874A JP2007180874A JP5008075B2 JP 5008075 B2 JP5008075 B2 JP 5008075B2 JP 2007180874 A JP2007180874 A JP 2007180874A JP 2007180874 A JP2007180874 A JP 2007180874A JP 5008075 B2 JP5008075 B2 JP 5008075B2
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Description
本発明は、複数のコンポーネントを利用したWebサービスを提供するWebサービスシステムに関し、特に、Webサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するWebサービスシステムに関する。 The present invention relates to a web service system that provides a web service using a plurality of components, and in particular, from among a plurality of components that are distributed and arranged in an overlay network as alternative components for components used in the web service. The present invention relates to a Web service system to be searched.
近年、インターネットの利用者が爆発的に増加している。この背景として、インターネットを利用する環境が整ってきていることが挙げられる。例えば、WWW(World Wide Web)や電子メールなどのような通信サービスが一般的に利用されている。また、ADSL(Asymmetric Digital Subscriber Line)、CATVインターネット、FTTH(Fiber To The Home)などのような高速アクセス回線が一般的に利用されている。 In recent years, the number of Internet users has increased explosively. This is because the environment for using the Internet has been established. For example, communication services such as WWW (World Wide Web) and electronic mail are generally used. High-speed access lines such as ADSL (Asymmetric Digital Subscriber Line), CATV Internet, FTTH (Fiber To The Home), etc. are generally used.
そして、インターネットの利用者が増加するに伴い、インターネットを利用して享受することができるサービスの充実に対する期待が高まってきている。これに対して、インターネットを利用したサービスを提供することができる技術として、分散オブジェクト技術が提案されている。例えば、CORBA(Common Object Request Broker Architecture)やDCOM(Distributed Component Object Model)などが挙げられる。これらの分散オブジェクト技術では、分散オブジェクト技術のアーキテクチャが異なれば、アーキテクチャが異なるシステム間での相互接続が容易ではない。例えば、CORBAとDCOMとの間で通信を行うためには、両者のプロトコルを変換して両者を橋渡しするための仕組みが必要となる。 As the number of Internet users increases, there is an increasing expectation for enhancement of services that can be enjoyed using the Internet. On the other hand, a distributed object technique has been proposed as a technique capable of providing a service using the Internet. Examples include CORBA (Common Object Request Broker Architecture) and DCOM (Distributed Component Object Model). In these distributed object technologies, if the architecture of the distributed object technology is different, interconnection between systems having different architectures is not easy. For example, in order to perform communication between CORBA and DCOM, a mechanism for converting both protocols and bridging them is required.
また、同じ分散オブジェクト技術で構築されたシステム間であっても、インターネットを経由してメッセージ交換を行うので、ファイアウォールの設定を変更しなければならない。例えば、CORBAでは、IIOP(Internet Inter-ORB Protocol)というプロトコルが使用されている。IIOPが使用できるように、ファイアウォールの設定を変更しなければならない。このため、これらの分散オブジェクト技術では、イントラネットやLAN(Local Area Network)などの閉じたネットワークで使用することは容易である。ただし、インターネット上のさまざまな通信プロトコルやプログラムに対応することは困難である。それにも係わらず、分散オブジェクト技術が普及するに伴い、特定の技術にしばられることなく、さまざまなプラットフォーム上で稼動するオブジェクトを利用できる技術に対する期待が高まってきている。このような状況の中で、プラットフォームが異なるシステム間でも利用できる技術として、汎用性のある通信手段を利用したWebサービスが提案されている(例えば、非特許文献1参照。)。 Also, even between systems built with the same distributed object technology, messages are exchanged via the Internet, so the firewall settings must be changed. For example, CORBA uses a protocol called IIOP (Internet Inter-ORB Protocol). The firewall settings must be changed so that IIOP can be used. Therefore, these distributed object technologies are easy to use in a closed network such as an intranet or a LAN (Local Area Network). However, it is difficult to support various communication protocols and programs on the Internet. Nevertheless, with the spread of distributed object technology, there is an increasing expectation for a technology that can use objects operating on various platforms without being bound by a specific technology. In such a situation, as a technology that can be used between systems with different platforms, a web service using a versatile communication means has been proposed (for example, see Non-Patent Document 1).
Webサービスでは、インターネットの標準技術であるXML(eXtensible Markup Language)を基盤としたSOAP(Simple Object Access Protocol)やWSDL(Web Services Description Language)といった技術が標準仕様として利用されている。このため、プラットフォームの壁を越えて分散オブジェクトを利用することができる。また、既存のWebサービスをコンポーネントとして利用することで、新規のWebサービスを構築することもできる。さらに、既存のコンポーネントを組み合わせてWebサービスを構築するので、Webサービスの構築が容易になり、また、サービスの構築にかかる時間やコストなどを削減することもできる。 In Web services, technologies such as SOAP (Simple Object Access Protocol) and WSDL (Web Services Description Language) based on XML (eXtensible Markup Language), which are Internet standard technologies, are used as standard specifications. For this reason, distributed objects can be used across platform walls. A new Web service can also be constructed by using an existing Web service as a component. Furthermore, since the web service is constructed by combining existing components, it is easy to construct the web service, and it is possible to reduce the time and cost required for constructing the service.
ただし、Webサービスでは、Webサービスの利用者が増加するに伴い、Webサービスに利用されているコンポーネントが配置されているノードの負荷が増大し、コンポーネントの処理能力が低下する。また、コンポーネントに障害が発生すると、障害が発生したコンポーネントを利用したサービスを提供することができない。これに対して、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用することで、1つのコンポーネントにかかる負荷を軽減し、Webサービスのスケーラビリティを向上させることができる。また、コンポーネントに障害が発生すると、複数のノードに分散されて配置されている複数のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索して利用することで、サービスを再開することができる。ここでは、ネットワーク上に分散されて配置された同一の機能を有する複数のコンポーネントを利用するWebサービスを、特に、分散Webサービスと呼ぶこととする。 However, in the Web service, as the number of users of the Web service increases, the load on the node where the component used for the Web service is increased, and the processing capacity of the component decreases. Further, when a failure occurs in a component, a service using the component in which the failure has occurred cannot be provided. On the other hand, by using a plurality of components having the same function distributed and arranged on the network, the load on one component can be reduced and the scalability of the Web service can be improved. In addition, when a failure occurs in a component, the service is searched by searching for and using a component having the same function as that of the component in which the failure has occurred among a plurality of components distributed and arranged in a plurality of nodes. You can resume. Here, a Web service that uses a plurality of components having the same function distributed and arranged on a network is particularly referred to as a distributed Web service.
ただし、分散Webサービスにおいて、代替コンポーネントの探索手法については、現状では明確な手法が確立されている訳ではない。一般的に、代替コンポーネントの探索手法として、リアクティブな探索手法やプロアクティブな探索手法などが挙げられる。ここで、リアクティブな探索手法としてフラッディングによる探索手法などがある。プロアクティブな探索手法としてデータベース管理による探索手法などがある。 However, in the distributed Web service, no clear method has been established for the alternative component search method at present. Generally, as a search method for alternative components, a reactive search method, a proactive search method, and the like can be given. Here, as a reactive search method, there is a search method based on flooding. Proactive search techniques include database management search techniques.
ここで、フラッディングによる探索手法とは、代替コンポーネントを探索するときに、探索メッセージをブロードキャストし、応答メッセージに含まれた情報から代替コンポーネントを選択する手法である(例えば、非特許文献2参照。)。 Here, the search method based on flooding is a method of broadcasting a search message and selecting an alternative component from information included in a response message when searching for an alternative component (see, for example, Non-Patent Document 2). .
一方、データベース管理による探索手法とは、データベースを備えるノードが定期的に制御メッセージを送ることで代替コンポーネントに関する情報を維持し、データベースに登録されている情報から代替コンポーネントを選択する手法である。
しかしながら、フラッディングによる探索手法については、この探索手法を利用して得られる情報の信頼性が高く、動的に変化する情報を得るには適しているが、障害発生後にはじめて探索を開始するため、代替コンポーネントの発見が遅くなるという問題がある。 However, for the search method by flooding, the reliability of the information obtained by using this search method is high and suitable for obtaining dynamically changing information. There is a problem that the discovery of alternative components is slow.
一方、データベース管理による探索手法については、多くの候補の中から最適な代替コンポーネントを即座に発見することができるが、代替コンポーネントの情報を保持しているデータベースに障害が発生すると代替コンポーネントの探索が不可能になるという問題がある。 On the other hand, for the search method based on database management, the optimal alternative component can be found immediately from many candidates. However, if a failure occurs in the database holding the alternative component information, the alternative component search is performed. There is a problem of becoming impossible.
そこで、本発明は、上記問題に鑑みてなされたものであり、コンポーネントに障害が発生したときに、ネットワーク上に分散されて配置されている複数のコンポーネントの中から、最適な代替コンポーネントを短時間で探索する探索手法を利用したWebサービスシステムを提供することを目的とする。 Therefore, the present invention has been made in view of the above problems, and when a failure occurs in a component, an optimal substitute component is quickly selected from a plurality of components distributed and arranged on the network. An object of the present invention is to provide a Web service system that uses a search method for searching with the Internet.
上記の目的を達成するために、本発明に係わるWebサービスシステムは、下記に示す特徴を備える。 In order to achieve the above object, a Web service system according to the present invention has the following features.
(a)複数のコンポーネントを利用してWebサービスを提供するアプリケーションサーバと、物理ネットワークを介して前記アプリケーションサーバと接続されており前記複数のコンポーネントが分散されて配置されている複数のノードとを備えるWebサービスシステムであって、前記複数のノードの各々は、(a1)自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、(a2)前記Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する1以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える。 (A) An application server that provides a Web service using a plurality of components, and a plurality of nodes that are connected to the application server via a physical network and in which the plurality of components are distributed. In the Web service system, each of the plurality of nodes includes: (a1) logic formed between one or more components arranged in the own node and one or more components arranged in another node A link database in which link information indicating a link of a network is registered; and (a2) when requested by the application server to search for a component having the same function as a predetermined component used in the Web service, Registered in the link database And based on the link information and the searching one or more components which form a logical network, and a substitute component search processing unit selects the optimum components as a replacement for the given component.
これによって、各ノードが備えるリンクデータベースで、自ノードに配置されている1以上のコンポーネントと論理ネットワークを形成する1以上のコンポーネントが管理される。探索時には、リンクデータベースに基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。 As a result, one or more components forming a logical network are managed with one or more components arranged in the own node in the link database provided in each node. At the time of search, an optimal alternative component can be found early among the components forming the logical network based on the link database.
さらに、(b)前記複数のノードの各々は、(b1)自ノードに配置されている1以上のコンポーネントの中で、前記Webサービスで利用されているコンポーネントを実行する実行処理手段と、(b2)前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、(b3)前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出するとしてもよい。 Further, (b) each of the plurality of nodes includes (b1) execution processing means for executing a component used in the Web service among one or more components arranged in the own node; ) Utility information generation processing for measuring the processing capability of the component being executed by the execution processing means, and using the result obtained by the measurement to generate utility information that is an index of utility obtained by executing the component (B3) Among the plurality of nodes, a node that searches for the optimum component is set as a search proxy node, and a node in which a component having the same function as the predetermined component is arranged is searched In the case of a node, the alternative component search processing means in the search proxy node is the search pair. On the basis of the utility information utility information generated by the generating means in the node, the highest component the utility may be elect as the best components.
これによって、論理ネットワークを形成するコンポーネントの処理能力などに関する効用情報が生成される。探索時には、効用情報に基づいて、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。 As a result, utility information relating to the processing capability of the components forming the logical network is generated. At the time of searching, an optimal substitute component can be found at an early stage from the components forming the logical network based on the utility information.
または、(c)前記複数のノードの各々は、自ノードに配置されている第1のコンポーネントと、他ノードに配置されている1以上のコンポーネントの中で前記第1のコンポーネントと同一の機能を有する第2のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報を前記リンクデータベースに登録するオーバレイネットワーク構築処理手段を備えるとしてもよい。 Or (c) each of the plurality of nodes has the same function as the first component among the first component arranged in its own node and one or more components arranged in other nodes. An overlay network construction processing unit that forms a logical network with the second component and registers link information indicating the link of the formed logical network in the link database may be provided.
これによって、同一機能を有する1以上のコンポーネントの間で論理ネットワークが形成される。探索時には、論理ネットワークを形成するコンポーネントの中から、最適な代替コンポーネントを早期に発見することができる。 As a result, a logical network is formed between one or more components having the same function. At the time of search, an optimal alternative component can be found at an early stage from among the components forming the logical network.
なお、本発明は、Webサービスシステムとして実現されるだけではなく、Webサービスシステムを制御するWebサービス制御方法、Webサービス制御方法を1以上のコンピュータシステムなどに実行させるWebサービス制御プログラム、Webサービス制御プログラムを記録した記録媒体などとして実現されるとしてもよい。 The present invention is not only realized as a web service system, but also a web service control method for controlling the web service system, a web service control program for causing one or more computer systems to execute the web service control method, and web service control It may be realized as a recording medium on which a program is recorded.
また、Webサービスシステムを構成するアプリケーションサーバ、アプリケーションサーバを制御するアプリケーションサーバ制御方法、アプリケーションサーバ制御方法をコンピュータシステムなどに実行させるアプリケーションサーバ制御プログラム、アプリケーションサーバ制御プログラムを記録した記録媒体などとして実現されるとしてもよい。 Further, the present invention is realized as an application server constituting a Web service system, an application server control method for controlling the application server, an application server control program for causing a computer system to execute the application server control method, a recording medium on which the application server control program is recorded, and the like. It may be.
また、Webサービスシステムを構成するノード、ノードを制御するノード制御方法、ノード制御方法をコンピュータシステムなどに実行させるノード制御プログラム、ノード制御プログラムを記録した記録媒体などとして実現されるとしてもよい。 Further, it may be realized as a node constituting the Web service system, a node control method for controlling the node, a node control program for causing the computer system to execute the node control method, a recording medium on which the node control program is recorded, and the like.
本発明では、オーバレイネットワークを利用することで、代替コンポーネントの探索範囲を限定する。さらに、効用情報を利用することで、限定した探索範囲内で、性能の高いコンポーネントを選出する。これによって、高性能な代替コンポーネントを高速に探索することができる。また、ノード間での負荷分散が図られ、スケーラブルなシステムを構成することができる。 In the present invention, the search range of alternative components is limited by using an overlay network. Furthermore, by using the utility information, a high-performance component is selected within a limited search range. As a result, a high-performance alternative component can be searched at high speed. In addition, the load can be distributed among the nodes, and a scalable system can be configured.
さらに、障害復旧にあたって、特定のコンポーネント、または特定のノードに配置されているコンポーネントが代替コンポーネントとして偏って選出されることを回避することができ、コンポーネント間、またはノード間での公平性を高めることができる。 Furthermore, it is possible to avoid the biased election of a specific component or a component placed on a specific node as an alternative component during disaster recovery, and improve fairness between components or between nodes. Can do.
また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。 Moreover, since it is based on autonomous distributed processing, there is no single point of failure and it has resistance against a plurality of failures.
(実施の形態1)
以下、本発明に係わる実施の形態1について図面を参照しながら説明する。
(Embodiment 1)
本実施の形態におけるWebサービスシステムは、下記(a),(b)に示される特徴を備える。 The Web service system in the present embodiment has the features shown in the following (a) and (b).
(a)複数のコンポーネントを利用してWebサービスを提供するアプリケーションサーバと、物理ネットワークを介してアプリケーションサーバと接続されており複数のコンポーネントが分散されて配置されている複数のノードとを備えるWebサービスシステムであって、複数のノードの各々は、(a1)自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、(a2)Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索についてアプリケーションサーバから要求されると、リンクデータベースに登録されているリンク情報に基づいて、論理ネットワークを形成する1以上のコンポーネントを探索し、所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理部とを備える。 (A) A web service comprising an application server that provides a web service using a plurality of components, and a plurality of nodes that are connected to the application server via a physical network and in which a plurality of components are distributed. Each of the plurality of nodes is a link of a logical network formed between (a1) one or more components arranged in its own node and one or more components arranged in another node When the application server requests for a link database in which link information indicating the link information is registered and (a2) search for a component having the same function as a predetermined component used in the Web service, the link database is registered in the link database. Based on link information Te searches one or more components which form a logical network, and a alternate component search processing unit for selecting the optimum components as an alternative to the given component.
(b)複数のノードの各々は、(b1)自ノードに配置されている1以上のコンポーネントの中で、Webサービスで利用されているコンポーネントを実行する実行処理部と、(b2)実行処理部で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理部とを備え、(b3)複数のノードの中で、最適なコンポーネントを探索するノードを探索代理ノードとし、所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、探索代理ノードにおける代替コンポーネント探索処理部は、探索対象ノードにおける効用情報生成処理部で生成された効用情報に基づいて、効用が最も高いコンポーネントを最適なコンポーネントとして選出する。 (B) Each of the plurality of nodes includes: (b1) an execution processing unit that executes a component used in the Web service among one or more components arranged in the own node; and (b2) an execution processing unit. A utility information generation processing unit that measures the processing capacity of the component being executed in step (b), generates utility information that is an index of utility obtained by executing the component, using a result obtained by the measurement, (B3) In the case where a node that searches for an optimum component among a plurality of nodes is set as a search proxy node, and a node in which a component having the same function as a predetermined component is arranged as a search target node, the search proxy The alternative component search processing unit in the node uses the utility information generated by the utility information generation processing unit in the search target node. Based on, selects utility the highest component as the best components.
以上の点を踏まえて本実施の形態におけるWebサービスシステムについて説明する。 Based on the above points, the Web service system in the present embodiment will be described.
<概要>
まず、本実施の形態におけるWebサービスシステムの概要について説明する。
<Overview>
First, an outline of the Web service system in the present embodiment will be described.
図1は、本実施の形態におけるWebサービスシステムの概要を示す図である。図1に示されるように、Webサービスシステム100は、下記の条件(1),(2)の下で分散されて管理されている効用情報を利用して代替コンポーネントを探索する。
FIG. 1 is a diagram showing an outline of a Web service system according to the present embodiment. As shown in FIG. 1, the
(1)同一の機能を有する複数のコンポーネントの間でオーバレイネットワークが構築される。 (1) An overlay network is constructed among a plurality of components having the same function.
ここで、コンポーネントとは、インターフェースを有するソフトウェア部品である。オーバレイネットワークとは、物理ネットワークにおけるリンクを利用して仮想的なリンクを形成した論理ネットワークである。 Here, the component is a software part having an interface. An overlay network is a logical network in which virtual links are formed using links in a physical network.
(2)オーバレイネットワークにおいて隣接するコンポーネント同士でコンポーネントに関する効用情報が交換される。ただし、オーバレイネットワーク上でリンクが形成されているコンポーネント間でのみ効用情報が交換される。 (2) Utility information regarding components is exchanged between adjacent components in the overlay network. However, utility information is exchanged only between components having links formed on the overlay network.
ここで、効用情報とは、代替コンポーネントが配置されているノードの処理能力、そのノードに対するネットワーク上における遅延、そのコンポーネントを使用しているアプリケーションサーバの数などによって、0から1の間で変動する値(以下、「効用値」と呼称する。)を含む情報である。ノードとは、ハードウェアなどのように、コンピュータシステムの物理的なリソースである。 Here, the utility information varies between 0 and 1 depending on the processing capability of the node in which the alternative component is arranged, the delay on the network with respect to the node, the number of application servers using the component, and the like. Information including a value (hereinafter referred to as “utility value”). A node is a physical resource of a computer system, such as hardware.
また、以下、Webサービスとは、XML(eXtensible Markup Language)やHTTP(Hyper Text Transfer Protocol)などを使用して、URI(Uniform Resource Identifier)によって特定されるコンポーネントを組み合わせて構成されるアプリケーションサービスとする。 Hereinafter, the Web service is an application service configured by combining components specified by a URI (Uniform Resource Identifier) using XML (eXtensible Markup Language), HTTP (Hyper Text Transfer Protocol), or the like. .
なお、ノード101〜105、アプリケーションサーバ106、ユーザ端末107などは、物理ネットワークを介して相互に接続され、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP/IP(User Datagram Protocol/Internet Protocol)などの通信プロトコルに基づいて、パケット単位でデータが送受信される。
The
なお、代替コンポーネントの探索において、サービスの再開までの時間と、再開後のサービスの質とを考慮することが重要である。ここでは、後者の指標となる値として効用値を使用する。 In searching for an alternative component, it is important to consider the time until service restart and the quality of service after restart. Here, the utility value is used as the latter index value.
また、サービス再開までの時間は、代替コンポーネントを発見するまでの時間と、発見した代替コンポーネントに利用することを通知するメッセージのRTT(Round Trip Time)とを加算した値とする。 The time until the service is restarted is a value obtained by adding the time until the replacement component is discovered and the RTT (Round Trip Time) of the message notifying that the replacement component is used.
さらに、効用値と、サービス再開までの時間とは、トレードオフの関係にある。これは、次の点からも窺える。例えば、高い効用のコンポーネント、すなわち、効用値が1に近いコンポーネントを代替コンポーネントとして利用するには、複数のコンポーネントの効用値を取得して比較する必要がある。しかし、複数のコンポーネントの効用値を取得して比較するためには、探索に時間がかかり、サービスの再開までの時間が増大する。 Further, the utility value and the time until service restart are in a trade-off relationship. This can be seen from the following points. For example, in order to use a high utility component, that is, a component having a utility value close to 1, as a substitute component, it is necessary to obtain and compare utility values of a plurality of components. However, in order to obtain and compare the utility values of a plurality of components, it takes time to search, and the time until service restarts increases.
<代替コンポーネント探索手法>
次に、本実施の形態におけるWebサービスシステムにおいて利用される代替コンポーネントの探索手法について説明する。
<Alternative component search method>
Next, an alternative component search method used in the Web service system according to this embodiment will be described.
なお、アプリケーションサーバは、1以上のコンポーネントを利用してWebサービスを提供しているとする。また、あらかじめ、Webサービスに利用されているコンポーネントからは、コンポーネントに対する探索代理ノードのアドレスが伝達されている。アプリケーションサーバに備わるデータベースには、コンポーネントから伝達された探索代理ノードのアドレスが登録されている。 It is assumed that the application server provides a web service using one or more components. In addition, the address of the search proxy node for the component is transmitted in advance from the component used for the Web service. In the database provided in the application server, the address of the search proxy node transmitted from the component is registered.
ここで、探索代理ノードとは、Webサービスで利用されているコンポーネントに対してオーバレイネットワークにおいて隣接する1以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードである。 Here, the search proxy node is a node in which a component having the largest number of links among one or more components adjacent to the component used in the Web service in the overlay network is arranged.
アプリケーションサーバは、サービスを提供するにあたって利用しているコンポーネントのいずれかにおいて障害が発生した場合は、サービスの提供を停止する。データベースに登録されている複数のアドレスに基づいて、障害が発生したコンポーネントに対する探索代理ノードを特定する。特定した探索代理ノードに、障害が発生したコンポーネントと同一の機能を有するコンポーネントを探索させる探索要求を送信する。 The application server stops providing the service if a failure occurs in any of the components used to provide the service. Based on a plurality of addresses registered in the database, a search proxy node for a component in which a failure has occurred is specified. A search request for causing the identified search proxy node to search for a component having the same function as the component in which the failure has occurred is transmitted.
探索代理ノードは、アプリケーションサーバから送信された探索要求に基づいて、探索代理ノードに配置されている1以上のコンポーネントの中から、障害が発生したコンポーネントと同一の機能を有するコンポーネントを特定する。特定したコンポーネントに隣接するコンポーネントを、オーバレイネットワークを形成する複数のコンポーネントの中から選出する。選出したコンポーネント(以下、「探索対象コンポーネント」と呼称する。)が配置されているノード(以下、「探索対象ノード」と呼称する。)に、探索対象コンポーネントの効用値やアドレスなどに関する情報を照会する効用情報照会要求を送信する。このとき、複数のコンポーネントが選出された場合は、複数の探索対象ノードに対して効用情報照会要求が個別に送信される。 Based on the search request transmitted from the application server, the search proxy node specifies a component having the same function as the component in which the failure has occurred from one or more components arranged in the search proxy node. A component adjacent to the identified component is selected from a plurality of components forming the overlay network. Queries the node (hereinafter referred to as “search target node”) where the selected component (hereinafter referred to as “search target component”) is arranged for information on the utility value and address of the search target component. A utility information inquiry request is sent. At this time, when a plurality of components are selected, utility information inquiry requests are individually transmitted to the plurality of search target nodes.
探索対象ノードは、探索代理ノードから送信された効用情報照会要求に基づいて、探索対象ノードで管理されている情報の中から、探索対象コンポーネントの効用値やアドレスなどに関する情報を特定する。特定した情報を、効用情報照会要求に対する応答として探索代理ノードに送信する。 The search target node specifies information related to the utility value and address of the search target component from the information managed by the search target node based on the utility information inquiry request transmitted from the search proxy node. The identified information is transmitted to the search proxy node as a response to the utility information inquiry request.
探索代理ノードは、探索対象ノードから送信された情報に基づいて、1以上の探索対象コンポーネントの中から、障害が発生したコンポーネントの代替として最適なコンポーネントとして効用値が1に近いコンポーネントを選択する。選択したコンポーネントが特定されるコンポーネント情報を、探索要求に対する応答としてアプリケーションサーバに送信する。 Based on the information transmitted from the search target node, the search proxy node selects a component having a utility value close to 1 as an optimum component as a substitute for the component in which the failure has occurred from one or more search target components. Component information for identifying the selected component is transmitted to the application server as a response to the search request.
アプリケーションサーバは、探索代理ノードから送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントから、コンポーネント情報によって特定されるコンポーネントに切り替えてWebサービスの提供を再開する。 Based on the component information transmitted from the search proxy node, the application server switches from the component in which the failure has occurred to the component specified by the component information and resumes providing the web service.
<利用時>
例えば、図2に示されるように、アプリケーションサーバ106は、コンポーネントb1,c4,e3を利用するWebサービスを提供している。なお、各コンポーネントからは、オーバレイネットワークにおいて各コンポーネントに隣接する1以上のコンポーネントの中でリンク数が最多のコンポーネントが配置されているノードのアドレスが探索代理ノードのアドレスとして伝達されている。アプリケーションサーバ106に備わるデータベースには、各コンポーネントから伝達された探索代理ノードのアドレスが登録されている。
<When using>
For example, as shown in FIG. 2, the
ここでは、一例として、コンポーネントb1からは、コンポーネントb3が配置されているノード103のアドレスが伝達されている。データベースには、コンポーネントb1に対する探索代理ノードのアドレスとしてノード103のアドレスが登録されている。コンポーネントc4からは、コンポーネントc5が配置されているノード105のアドレスが伝達されている。データベースには、コンポーネントc4に対する探索代理ノードのアドレスとしてノード105のアドレスが登録されている。コンポーネントe3からは、コンポーネントe5が配置されているノード105のアドレスが伝達されている。データベースには、コンポーネントe3に対する探索代理ノードのアドレスとしてノード105のアドレスが登録されている。
Here, as an example, the address of the
<障害時>
次に、図3に示されるように、アプリケーションサーバ106は、コンポーネントc4に障害が発生した場合は、コンポーネントc4を利用するWebサービスの提供を停止する。
<In case of failure>
Next, as illustrated in FIG. 3, when a failure occurs in the component c4, the
<探索時>
このとき、図4に示されるように、アプリケーションサーバ106は、データベースに登録されているアドレスに基づいて、コンポーネントc4に対する探索代理ノードとしてノード105を特定する。特定したノード105に、コンポーネントc4の代替コンポーネントとして最適なコンポーネントを探索させる要求を送信する。
<When searching>
At this time, as shown in FIG. 4, the
これに伴い、ノード105は、オーバレイネットワークを形成する複数のコンポーネントの中で、コンポーネントc4と同一の機能を有するコンポーネントc5に隣接するコンポーネントc2,c3を選出する。選出したコンポーネントc2,c3の効用情報を、選出したコンポーネントc2,c3が配置されているノード102,103から個別に取得する。個別に取得した2つの効用情報に基づいて、最も効用の高いコンポーネント、すなわち、効用値が1に近いコンポーネントとしてコンポーネントc2を選択する。
Accordingly, the
<再開時>
そして、図5に示されるように、ノード105は、要求に対する応答として、選択したコンポーネントc2が特定されるコンポーネント情報をアプリケーションサーバ106に送信する。
<When resuming>
Then, as illustrated in FIG. 5, the
アプリケーションサーバ106は、ノード105から送信されたコンポーネント情報に基づいて、障害が発生したコンポーネントc4の代替としてコンポーネントc2を利用してWebサービスの提供を再開する。
Based on the component information transmitted from the
<オーバレイネットワーク構築手法>
次に、本実施の形態におけるWebサービスシステムにおいて利用されるオーバレイネットワークの構築手法について説明する。
<Overlay network construction method>
Next, an overlay network construction method used in the Web service system according to this embodiment will be described.
上記で説明した代替コンポーネントの探索手法は、オーバレイネットワークのトポロジによって、性能が大きく左右される。 The performance of the alternative component search method described above depends greatly on the topology of the overlay network.
例えば、探索代理ノードが効用の高いコンポーネントを探索するためには、より多くのコンポーネントとリンクを形成することが望ましい。しかし、リンク数の増加にともない管理しなければならない効用情報も増加する。このため、大規模ネットワークにおいて、管理負荷の観点から、各ノードに配置されている1以上のコンポーネントのリンク数の総和に上限を設けることが望ましい。また、一般的に、1つのノードには、1以上のコンポーネントが配置されている。 For example, in order for a search proxy node to search for a component with high utility, it is desirable to form links with more components. However, utility information that must be managed increases as the number of links increases. For this reason, in a large-scale network, it is desirable to set an upper limit on the total number of links of one or more components arranged in each node from the viewpoint of management load. In general, one or more components are arranged in one node.
そこで、各コンポーネント間の負荷分散を図りながら、効率的に探索することが実現できるトポロジの作成が望まれる。このため、ここでは、下記の仕様が満たされるように、オーバレイネットワークが構築される。 Therefore, it is desired to create a topology that can be efficiently searched while achieving load distribution among the components. For this reason, an overlay network is constructed here so that the following specifications are satisfied.
具体的には、オーバレイネットワークにおいて、ノードiに配置されているコンポーネントaiのリンク数をdiaとしたとき、ノードiの総リンク数diに対して、下記の式(1)で示される制限を設ける。ここで、constはノードの処理能力などで決定される定数である。しかし、ここでは、話を簡潔にするために、全ノードで一定の値とする。 Specifically, in the overlay network, when the number of links of the component ai arranged in the node i is dia, the restriction expressed by the following formula (1) is provided for the total number of links di of the node i. . Here, const is a constant determined by the processing capability of the node. However, here, in order to simplify the story, a constant value is assumed for all nodes.
(1)di=dia+dib+dic+・・・≦const (1) di = dia + dib + dic +... ≦ const
また、各コンポーネントについては、オーバレイネットワークにおいて、少なくとも2本のリンクが形成されているとする。これは、1本のリンクしか形成されていない場合において、リンク先のコンポーネントに障害が発生すると、リンク元のコンポーネントがオーバレイネットワークにおいて孤立する。探索時に、探索対象コンポーネントでありながら、探索対象コンポーネントの効用値やアドレスなどに関する情報が照会されなくなるためである。 For each component, it is assumed that at least two links are formed in the overlay network. This is because, when only one link is formed, if a failure occurs in a link destination component, the link source component is isolated in the overlay network. This is because information regarding the utility value, address, etc. of the search target component is not queried at the time of search although it is the search target component.
また、探索に要する時間や物理ネットワーク上に流れるトラヒック量は、物理ネットワークのノード間のホップ数と関連があると考えられる。従って、オーバレイネットワークを構築するにあたって、物理ネットワークにおいてホップ数が小さいノードに配置された1以上のコンポーネントとの間で順次リンクを形成することを試みる。 Further, it is considered that the time required for the search and the traffic amount flowing on the physical network are related to the number of hops between the nodes of the physical network. Therefore, when constructing an overlay network, an attempt is made to sequentially form a link with one or more components arranged in a node having a small number of hops in the physical network.
そして、リンク形成時に、ノードの総リンク数の上限に達した場合は、ノードに配置されているコンポーネントのいずれかのリンクを削除する。これにより、ノードに配置されている1以上のコンポーネントの間で、公平性が維持される。ここで、公平性とは、代替コンポーネントの探索時に、いずれのコンポーネントにおいても、同程度に、代替コンポーネントを発見することができることとする。 When the upper limit of the total number of links of the node is reached at the time of link formation, any link of the components arranged in the node is deleted. Thereby, fairness is maintained between one or more components arranged in the node. Here, the fairness means that, when searching for an alternative component, the alternative component can be found to the same extent in any component.
<構築手法の手順>
次に、上記の仕様が満たすオーバレイネットワークの構築手法の手順について説明する。
<Construction procedure>
Next, the procedure of an overlay network construction method that satisfies the above specifications will be described.
図6、図7は、本実施の形態におけるオーバレイネットワークの構築手法の手順を示す図である。図6に示されるように、ここでは、一例として、新たにコンポーネントaiがノードiに配置されたとする。この場合において、まず、コンポーネントのリンク数の下限としてLLN(Least Link Number)を設定する。ノードiの総リンク数diの上限としてMLN(Max Link Number)を設定する。ノードiにコンポーネントaが配置されることで、ノードiに配置されているコンポーネントの平均リンク数の期待値E(dia)を下記の式(2)に基づいて算出する。 6 and 7 are diagrams showing the procedure of the overlay network construction method in the present embodiment. As illustrated in FIG. 6, here, as an example, it is assumed that a component ai is newly arranged in the node i. In this case, first, LLN (Least Link Number) is set as the lower limit of the number of links of the component. MLN (Max Link Number) is set as the upper limit of the total link number di of the node i. By arranging the component a at the node i, the expected value E (dia) of the average number of links of the components arranged at the node i is calculated based on the following equation (2).
(2)E(dia)=di/(ノードiに配置されているコンポーネント数) (2) E (dia) = di / (number of components arranged in node i)
次に、ノードiの総リンク数diがMLN以上でない限り(S101:No)、オーバレイネットワークを構成する複数のコンポーネントのいずれかと新たなリンクを形成することが試みられる。このとき、下記の手順(1)〜(3)でリンク先のコンポーネントが選出される(S102)。 Next, as long as the total number of links di of the node i is not greater than or equal to the MLN (S101: No), an attempt is made to form a new link with any one of a plurality of components constituting the overlay network. At this time, the link destination component is selected by the following procedures (1) to (3) (S102).
(1)オーバレイネットワークを構成する複数のコンポーネントの中で、コンポーネントaiと同一の機能を有するコンポーネントを選出する。 (1) A component having the same function as that of the component ai is selected from among a plurality of components constituting the overlay network.
(2)手順1で選出したコンポーネントの中で、コンポーネントaiとリンクが形成されていないコンポーネントを選出する。
(2) Among the components selected in
(3)手順2で選出したコンポーネントの中で、オーバレイネットワークを形成する物理ネットワークにおいてノードiに最隣接するノードに配置されているコンポーネントを選出する。
(3) Among the components selected in the
ここでは、一例として、ノードiに隣接するノードjに配置されているコンポーネントajがリンク先のコンポーネントとして選出されたとする。 Here, as an example, it is assumed that the component aj arranged in the node j adjacent to the node i is selected as the link destination component.
次に、ノードjの総リンク数djがノードjに設定されたMLN以上である場合は(S103:Yes)、ノードjに配置されている1以上のコンポーネントのいずれかのリンクを1本削除する(S104)。このとき、図7に示されるように、下記の手順(1)〜(3)で削除対象となるリンクを選出し(S111,S112)、選出したリンクを削除する(S113)。 Next, when the total link number dj of the node j is greater than or equal to the MLN set in the node j (S103: Yes), one of the links of one or more components arranged in the node j is deleted. (S104). At this time, as shown in FIG. 7, a link to be deleted is selected in the following procedures (1) to (3) (S111, S112), and the selected link is deleted (S113).
(1)ノードjに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S111)。 (1) Among the one or more components arranged at the node j, the component having the largest number of links is selected (S111).
(2)選出したリンク元のコンポーネントとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S112)。 (2) Among the one or more components that form a link with the selected link source component, the component with the largest number of links is selected (S112).
(3)ノードjに配置されている1以上のコンポーネントによって形成されている1以上のリンクの中で、手順1で選出したコンポーネントと、手順2で選出したコンポーネントとによって形成されているリンクを削除する(S113)。
(3) Deletes the link formed by the component selected in
例えば、手順1において、ノードjに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントbjが選出されたとする。手順2において、コンポーネントbjとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントとしてコンポーネントbkが選出されたとする。この場合において、コンポーネントbjとコンポーネントbkとによって形成されているリンクolb(j,k)が手順3において選出される。
For example, it is assumed that in the
そして、コンポーネントaiとコンポーネントajとの間でリンクを形成する(S105)。 Then, a link is formed between the component ai and the component aj (S105).
ただし、リンクolb(j,k)を削除することによって、コンポーネントbkのリンク数dkbがLNNより小さくなる場合は、削除対象となるリンクは、リンクolb(j,k)を除いて再選出される。 However, if the link number dkb of the component bk is smaller than the LNN by deleting the link olb (j, k), the link to be deleted is re-selected except for the link olb (j, k). .
なお、削除対象となるリンクが存在しない場合は、コンポーネントaiは、コンポーネントajとリンクを形成することを断念する。コンポーネントaiとリンクが形成されていないコンポーネントの中から、コンポーネントajを除く。 If there is no link to be deleted, the component ai gives up forming a link with the component aj. The component aj is excluded from the components that are not linked to the component ai.
また、ノードiの総リンク数diがMLN以上になり(S101:Yes)、コンポーネントaiのリンク数diaが期待値E(dia)より小さい場合は(S106:No)、上記(1)〜(3)の手順と同様に、下記の手順(1)〜(3)で削除対象となるリンクを選出し、選出したリンクを削除する(S107)。これによって、コンポーネントaiは、新たなリンクを形成することができる。 Further, when the total link number di of the node i becomes greater than or equal to MLN (S101: Yes) and the link number dia of the component ai is smaller than the expected value E (dia) (S106: No), the above (1) to (3 In the same manner as in the procedure), the links to be deleted are selected in the following procedures (1) to (3), and the selected links are deleted (S107). As a result, the component ai can form a new link.
(1)ノードiに配置されている1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S111)。 (1) A component having the largest number of links is selected from one or more components arranged in the node i (S111).
(2)選出したリンク元のコンポーネントとリンクを形成する1以上のコンポーネントの中で、リンク数が最多のコンポーネントを選出する(S112)。 (2) Among the one or more components that form a link with the selected link source component, the component with the largest number of links is selected (S112).
(3)ノードiに配置されている1以上のコンポーネントによって形成されている1以上のリンクの中で、手順1で選出したコンポーネントと、手順2で選出したコンポーネントとによって形成されているリンクを削除する(S113)。
(3) Delete the link formed by the component selected in
具体的には、図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)を追加する。
Specifically, it is assumed that a component b4 is newly arranged in the
なお、ノード104の総リンク数d4がノード104に設定されたMLN以上でないので、他のコンポーネントとリンクを形成することを続ける。このようにして、図11に示されるように、新たなオーバレイネットワークのトポロジが形成される。
Since the total link number d4 of the
<構成>
次に、本実施の形態におけるWebサービスシステムの構成について説明する。
<Configuration>
Next, the configuration of the Web service system in the present embodiment will be described.
図12は、本実施の形態におけるWebサービスシステムの構成を示す図である。図12に示されるように、ここでは、一例として、Webサービスシステム100は、ノード101〜105、アプリケーションサーバ106などを備える。
FIG. 12 is a diagram showing a configuration of the Web service system in the present embodiment. As shown in FIG. 12, here, as an example, the
ノード101〜105の各ノードは、各ノードに配置されている複数のコンポーネントの各機能を、物理ネットワークを介して、例えば、アプリケーションサーバ106などのような他のノードに提供するコンピュータシステムである。ここでは、一例として、ノード101には、コンポーネントa1,b1,c1が配置されている。ノード102には、コンポーネントa2,c2,d2が配置されている。ノード103には、b3,c3,e3が配置されている。ノード104には、コンポーネントa4,c4,d4が配置されている。ノード105には、コンポーネントc5,d5,e5が配置されている。
Each of the
なお、コンポーネントa1,a2,a4の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントb1,b3の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントc1,c2,c3,c4の各コンポーネントは、同一の機能を有するコンポーネントである。コンポーネントd2,d4,d5の各コンポーネントは、同一の機能を有するコンポーネントである。 The components a1, a2, and a4 are components having the same function. The components b1 and b3 are components having the same function. The components c1, c2, c3, and c4 are components having the same function. The components d2, d4, and d5 are components having the same function.
アプリケーションサーバ106は、コンポーネントb1,c4,e3の各機能を組み合わせたWebサービスを、物理ネットワークを介して、例えば、ユーザ端末107などのような他のノードに提供するコンピュータシステムである。
The
また、アプリケーションサーバ106は、Webサービスで利用されているコンポーネント(以下、「使用コンポーネント」と呼称する。)が利用できなくなったときは、使用コンポーネントの代わりとなるコンポーネント(以下、「代替コンポーネント」と呼称する。)を、オーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索する。
When the component used in the Web service (hereinafter referred to as “used component”) becomes unavailable, the
<ノード>
次に、本実施の形態におけるノード101〜105の構成について説明する。なお、ノード101〜105については、構成が同一であり、ここでは、ノード101についてのみ説明し、ノード102〜105については、説明を省略する。
<Node>
Next, the configuration of the
図13は、本実施の形態におけるノード101の構成を示す図である。図13に示されるように、ノード101は、コンポーネント保持部111、コンポーネントデータベース112、ノードデータベース113、リンクデータベース114、自ノード効用情報記憶部115、他ノード効用情報記憶部116、コンポーネント実行処理部120、効用情報生成処理部130、代替コンポーネント探索処理部140、効用情報伝達処理部150などを備える。
FIG. 13 is a diagram illustrating a configuration of the
なお、コンポーネント実行処理部120、代替コンポーネント探索処理部140、効用情報伝達処理部150などは、CORBA、DCOM、SOAPなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、SOAPを利用してコンピュータシステム上に実現されているとする。
The component
<コンポーネント保持部111>
コンポーネント保持部111は、自ノードに配置されている1以上のコンポーネントを保持している。
<
The
<コンポーネントデータベース112>
コンポーネントデータベース112には、自ノードに配置されているコンポーネントに関するコンポーネント情報が登録されている。
<
In the
図14は、コンポーネントデータベース112で管理されているコンポーネント情報のデータ構造を示す図である。図14に示されるように、ここでは、一例として、コンポーネントデータベース112には、コンポーネント識別情報(フィールドF111)、ノード識別情報(実行ノード)(フィールドF112)、ノード識別情報(探索代理ノード)(フィールドF113)などが含まれるコンポーネント情報(レコードR111)が登録されている(テーブルT111)。
FIG. 14 is a diagram showing a data structure of component information managed in the
コンポーネント識別情報(フィールドF111)は、例えば、コンポーネント名のように、オーバレイネットワークを構成する1以上のコンポーネントの中でコンポーネントが識別される情報である。 The component identification information (field F111) is information for identifying a component among one or more components constituting the overlay network, such as a component name.
ノード識別情報(実行ノード)(フィールドF112)は、コンポーネント識別情報によって特定されるコンポーネントが実行されたノードが識別される情報である。 The node identification information (execution node) (field F112) is information for identifying the node on which the component specified by the component identification information is executed.
ノード識別情報(探索代理ノード)(フィールドF113)は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別される情報である。 The node identification information (search proxy node) (field F113) is information for identifying a node that searches for a component having the same function as the component specified by the component identification information.
<ノードデータベース113>
ノードデータベース113には、自ノードに隣接する他ノードに関するノード情報が登録されている。
<
In the
図15は、ノードデータベース113で管理されているノード情報のデータ構造を示す図である。図15に示されるように、ここでは、一例として、ノードデータベース113には、ノード識別情報(フィールドF121)、ホップ数(フィールドF122)、RTT(フィールドF123)などが含まれるノード情報(レコードR121)が登録されている(テーブルT121)。
FIG. 15 is a diagram showing a data structure of node information managed in the
ノード識別情報(フィールドF121)は、例えば、ホスト名、IPアドレスのように、物理ネットワークを構成する1以上のノード中で各ノードが識別される情報である。 The node identification information (field F121) is information for identifying each node among one or more nodes constituting the physical network, such as a host name and an IP address.
ホップ数(フィールドF122)は、自ノードから、ノード識別情報によって特定されるノードまでの間に経由するルータなどの数である。 The number of hops (field F122) is the number of routers or the like that pass between the own node and the node specified by the node identification information.
RTT(フィールドF123)は、自ノードと、ノード識別情報によって特定されるノードとの間における往復伝送時間である。 RTT (field F123) is a round trip transmission time between the own node and the node specified by the node identification information.
<リンクデータベース114>
リンクデータベース114には、自ノードに配置されているコンポーネント(以下、「リンク元コンポーネント」と呼称する。)と、他ノードに配置されているコンポーネント(以下、「リンク先コンポーネント」と呼称する。)との間で形成されているリンクに関するリンク情報が登録されている。
<
In the
図16は、リンクデータベース114で管理されているリンク情報のデータ構造を示す図である。図16に示されるように、ここでは、一例として、リンクデータベース114には、リンク元情報(フィールドF131)、リンク先情報(フィールドF132)などが含まれるリンク情報(レコードR131)が登録されている(テーブルT131)。
FIG. 16 is a diagram showing a data structure of link information managed by the
リンク元情報(フィールドF131)には、リンク元のコンポーネント識別情報、リンク元のノード識別情報などが含まれる。リンク先情報(フィールドF132)には、リンク先のコンポーネント識別情報、リンク先のノード識別情報などが含まれる。 The link source information (field F131) includes link source component identification information, link source node identification information, and the like. The link destination information (field F132) includes link destination component identification information, link destination node identification information, and the like.
なお、本実施の形態では、あらかじめ、コンピュータシステムを使用して、上記のオーバレイネットワークの構築手法に基づいたシミュレーションを実行する。実行して得られた結果に基づいて生成されたリンク情報が、リンクデータベース114に登録されているとする。
In this embodiment, a computer system is used in advance to execute a simulation based on the above overlay network construction technique. Assume that link information generated based on a result obtained by execution is registered in the
<自ノード効用情報記憶部115>
自ノード効用情報記憶部115は、自ノードで実行されたコンポーネントごとに効用情報を記憶する。
<Own node utility
The own node utility
図17は、本実施の形態における自ノード効用情報記憶部115に記憶されている効用情報のデータ構造を示す図である。図17に示されるように、自ノード効用情報記憶部115は、自ノードで実行されたコンポーネントごとに効用情報(レコードR141)を記憶する(テーブルT141)。効用情報(レコードR141)には、自ノードで実行されたコンポーネントのコンポーネント識別情報(フィールドF141)、そのコンポーネントの効用値(フィールドF142)などが含まれる。
FIG. 17 is a diagram showing a data structure of utility information stored in the own node utility
<他ノード効用情報記憶部116>
他ノード効用情報記憶部116は、他ノードで実行されたコンポーネントごとに効用情報を記憶する。
<Other node utility
The other node utility
図18は、本実施の形態における他ノード効用情報記憶部116に記憶されている効用情報のデータ構造を示す図である。図18に示されるように、他ノード効用情報記憶部116は、他ノードで実行されたコンポーネントごとに効用情報(レコードR151)を記憶する(テーブルT151)。効用情報(レコードR151)には、他ノードで実行されたコンポーネントのコンポーネント識別情報(フィールドF151)、そのコンポーネントの効用値(フィールドF152)などが含まれる。
FIG. 18 is a diagram showing a data structure of utility information stored in the other node utility
<詳細構成>
図19は、本実施の形態におけるノード101の詳細な構成を示す図である。図19に示されるように、ノード101は、下記の構成要素などを備える。
<Detailed configuration>
FIG. 19 is a diagram showing a detailed configuration of the
<コンポーネント実行処理部120>
コンポーネント実行処理部120は、コンポーネント実行部121、実行要求受信部122、実行応答送信部123などを備える。
<Component
The component
<コンポーネント実行部121>
コンポーネント実行部121は、実行要求受信部122からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントをコンポーネント保持部111から読み出す。読み出したコンポーネントを実行する。実行して得られた実行結果を実行応答送信部123に渡す。
<
The
<実行要求受信部122>
実行要求受信部122は、アプリケーションサーバ106などの送信元から送信された実行要求メッセージを受信する。受信した実行要求メッセージの送信元が特定されるノード識別情報を実行応答送信部123に渡す。受信した実行要求メッセージを解析する。解析した実行要求メッセージから、実行対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をコンポーネント実行部121に渡す。
<Execution
The execution
<実行応答送信部123>
実行応答送信部123は、実行要求受信部122からノード識別情報を受け取る。コンポーネント実行部121から実行結果を受け取る。受け取った実行結果を含む応答メッセージ(以下、「実行応答メッセージ」と呼称する。)を生成する。生成した実行応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<
The execution
<効用情報生成処理部130>
効用情報生成処理部130は、計測部131、効用情報生成部132などを備える。
<Utility information
The utility information
<計測部131>
計測部131は、コンポーネント実行部121でコンポーネントが実行されると、そのコンポーネントの実行に伴うパフォーマンスを計測する。そのコンポーネントが識別されるコンポーネント識別情報と、計測して得られた計測結果とを効用情報生成部132に渡す。
<Measurement unit 131>
When the component is executed by the
<効用情報生成部132>
効用情報生成部132は、計測部131からコンポーネント識別情報と計測結果とを受け取る。受け取った計測結果を使用して効用値を算出する。算出して得られた効用値を、受け取ったコンポーネント識別情報と対応付けて、受け取ったコンポーネント識別情報と、算出して得られた効用値とを含む効用情報を生成する。生成した効用情報を自ノード効用情報記憶部115に書き込む。
<Utility information generation unit 132>
The utility information generation unit 132 receives component identification information and measurement results from the measurement unit 131. The utility value is calculated using the received measurement result. The utility value obtained by calculation is associated with the received component identification information, and utility information including the received component identification information and the utility value obtained by calculation is generated. The generated utility information is written in the own node utility
<代替コンポーネント探索処理部140>
代替コンポーネント探索処理部140は、代替コンポーネント探索部141、探索対象選出部142、効用情報書込部143、探索要求受信部144、探索応答送信部145、効用情報照会要求送信部146、効用情報照会応答受信部147などを備える。
<Alternative component
The alternative component
<代替コンポーネント探索部141>
代替コンポーネント探索部141は、探索要求受信部144からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報を探索対象選出部142に渡す。探索対象選出部142から選出終了通知を受け取る。1以上のコンポーネントにおいて効用値の高いコンポーネントが識別されるコンポーネント識別情報を、他ノード効用情報記憶部116に記憶されている複数の効用情報の中から選出する。選出したコンポーネント識別情報によって特定されるコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選択する。選択したコンポーネント情報を探索応答送信部145に渡す。
<Alternative
The alternative
<探索対象選出部142>
探索対象選出部142は、代替コンポーネント探索部141からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報をリンク元情報に含むリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報の各々に対して、下記の処理(1)を実行する。
<Search
The search
(1)探索対象選出部142は、リンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とを効用情報照会要求送信部146に渡す。
(1) The search
探索対象選出部142は、選出した1以上のリンク情報の全てに対して、上記の処理(1)を実行すると、選出終了通知を代替コンポーネント探索部141に渡す。
When the search
なお、探索対象選出部142は、所定の時間間隔で、リンクデータベース114に登録されている1以上のリンク情報の各々に対して、上記の処理(1)を実行し、他ノードと効用情報を定期的に遣り取りするとしてもよい。また、この場合において、代替コンポーネント探索部141からコンポーネント識別情報を受け取ると、上記(1)までの処理を省略して、即時に、選出終了通知を代替コンポーネント探索部141に渡すとしてもよい。
Note that the search
<効用情報書込部143>
効用情報書込部143は、効用情報照会応答受信部147から効用情報を受け取る。受け取った効用情報を他ノード効用情報記憶部116に書き込む。
<Utility
The utility
<探索要求受信部144>
探索要求受信部144は、アプリケーションサーバ106などの送信元から送信された探索要求メッセージを受信する。受信した探索要求メッセージの送信元が特定されるノード識別情報を探索応答送信部145に渡す。受信した探索要求メッセージを解析する。解析した探索要求メッセージから、探索対象となるコンポーネントが特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を代替コンポーネント探索部141に渡す。
<Search
The search
<探索応答送信部145>
探索応答送信部145は、探索要求受信部144からノード識別情報を受け取る。代替コンポーネント探索部141からコンポーネント情報を受け取る。受け取ったコンポーネント情報を含む応答メッセージ(以下、「探索応答メッセージ」と呼称する。)を生成する。生成した探索応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Search
The search
<効用情報照会要求送信部146>
効用情報照会要求送信部146は、探索対象選出部142からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「効用情報照会要求メッセージ」と呼称する。)を生成する。生成した効用情報照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Utility information inquiry
The utility information inquiry
<効用情報照会応答受信部147>
効用情報照会応答受信部147は、効用情報照会要求送信部146から送信された効用情報照会要求メッセージに対する応答メッセージ(以下、「効用情報照会応答メッセージ」と呼称する。)を受信する。受信した効用情報照会応答メッセージを解析する。解析した効用情報照会応答メッセージから、取得された効用情報を抽出する。抽出した効用情報を効用情報書込部143に渡す。
<Utility information inquiry
The utility information inquiry
<効用情報伝達処理部150>
効用情報伝達処理部150は、効用情報読出部151、効用情報照会要求受信部152、効用情報照会応答送信部153などを備える。
<Utility information
The utility information
<効用情報読出部151>
効用情報読出部151は、効用情報照会要求受信部152からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報によって特定される効用情報を、自ノード効用情報記憶部115から読み出す。読み出した効用情報を効用情報照会応答送信部153に渡す。
<Utility
The utility
<効用情報照会要求受信部152>
効用情報照会要求受信部152は、他ノードなどの送信元から送信された効用情報照会要求メッセージを受信する。受信した効用情報照会要求メッセージの送信元が特定されるノード識別情報を効用情報照会応答送信部153に渡す。受信した効用情報照会要求メッセージを解析する。解析した効用情報照会要求メッセージから、取得対象となる効用情報が特定されるコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報を効用情報読出部151に渡す。
<Utility information inquiry
The utility information query
<効用情報照会応答送信部153>
効用情報照会応答送信部153は、効用情報照会要求受信部152からノード識別情報を受け取る。効用情報取得部から効用情報を受け取る。受け取った効用情報を含む効用情報照会応答メッセージを生成する。生成した効用情報照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Utility information inquiry
The utility information inquiry
<アプリケーションサーバ>
次に、本実施の形態におけるアプリケーションサーバ106の構成について説明する。
<Application server>
Next, the configuration of the
図20は、本実施の形態におけるアプリケーションサーバ106の構成を示す図である。図20に示されるように、アプリケーションサーバ106は、実行対象コンポーネントデータベース161、実行結果記憶部162、サービス処理部170、探索処理部180などを備える。
FIG. 20 is a diagram showing a configuration of the
<実行対象コンポーネントデータベース161>
実行対象コンポーネントデータベース161は、実行対象となるコンポーネントのコンポーネント情報が登録されている。
<Execution
In the execution
図21は、実行対象コンポーネントデータベース161で管理されているコンポーネント情報のデータ構造を示す図である。図21に示されるように、コンポーネントデータベース112で登録されているコンポーネント情報と同様のデータ構造である。
FIG. 21 is a diagram illustrating a data structure of component information managed in the execution
コンポーネント識別情報(フィールドF161)は、実行対象となるコンポーネントが識別されるコンポーネント識別情報である。 The component identification information (field F161) is component identification information for identifying a component to be executed.
ノード識別情報(実行ノード)(フィールドF162)は、コンポーネント識別情報によって特定されるコンポーネントを実行するノードが識別されるノード識別情報である。 The node identification information (execution node) (field F162) is node identification information for identifying a node that executes the component specified by the component identification information.
ノード識別情報(探索代理ノード)(フィールドF163)は、コンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを探索するノードが識別されるノード識別情報である。 The node identification information (search proxy node) (field F163) is node identification information for identifying a node that searches for a component having the same function as the component specified by the component identification information.
<実行結果記憶部162>
実行結果記憶部162は、実行されたコンポーネントごとに実行結果情報を記憶する。
<Execution result storage unit 162>
The execution result storage unit 162 stores execution result information for each executed component.
<サービス処理部170>
図20に戻り、サービス処理部170は、実行対象選出部171、実行結果書込部172、サービス要求受信部173、サービス応答送信部174、実行要求送信部175、実行応答受信部176などを備える。
<
20, the
<実行対象選出部171>
実行対象選出部171は、サービス要求受信部173から1以上のコンポーネント識別情報を受け取る。受け取った1以上のコンポーネント識別情報の各々に対して、下記の処理(1)を実行する。
<Execution
The execution
(1)実行対象選出部171は、受け取ったコンポーネント識別情報によって特定されるノード識別情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。受け取ったコンポーネント識別情報と、選出したノード識別情報とを実行要求送信部175に渡す。
(1) The execution
実行対象選出部171は、受け取った1以上のコンポーネント識別情報の全てに対して、上記(1)の処理を実行すると、応答通知と、受け取った1以上のコンポーネント識別情報とをサービス応答送信部174に渡す。
When the execution
なお、実行対象選出部171は、実行応答受信部176から、エラー通知とコンポーネント識別情報とを受け取ると、上記の処理を停止し、停止通知をサービス応答送信部174に渡す。さらに、探索通知と、エラー通知と一緒に受け取ったコンポーネント識別情報とを探索要求送信部182に渡す。そして、コンポーネント情報登録部181から探索完了通知を受け取ると、再開通知をサービス応答送信部174に渡し、上記の処理を再開する。
When the execution
<実行結果書込部172>
実行結果書込部172は、実行応答受信部176から実行結果情報を受け取る。受け取った実行結果情報を実行結果記憶部162に書き込む。
<Execution
The execution
<サービス要求受信部173>
サービス要求受信部173は、ユーザ端末107などの送信元から送信されたサービス要求メッセージを受信する。受信したサービス要求メッセージの送信元が特定されるノード識別情報をサービス応答送信部174に渡す。受信したサービス要求メッセージを解析する。解析したサービス要求メッセージから、実行対象となる1以上のコンポーネントを特定する。特定した1以上のコンポーネントが個別に識別される1以上のコンポーネント識別情報を実行対象選出部171に渡す。
<Service
The service
<サービス応答送信部174>
サービス応答送信部174は、サービス要求受信部173からノード識別情報を受け取る。実行対象選出部171から、応答通知と、1以上のコンポーネント識別情報とを受け取る。受け取った1以上のコンポーネント識別情報によって特定される1以上の実行結果を実行結果記憶部162から読み出す。読み出した1以上の実行結果を含む応答メッセージ(以下、「サービス応答メッセージ」と呼称する。)を生成する。生成したサービス応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Service
The service
なお、サービス応答送信部174は、実行対象選出部171から停止通知を受け取ると、実行対象選出部171から再開通知を受け取るまで、サービスが停止していることを通知するメッセージをサービス応答メッセージとして生成する。生成したサービス応答メッセージを送信する。
When receiving a stop notification from the execution
<実行要求送信部175>
実行要求送信部175は、実行対象選出部171からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「実行要求メッセージ」と呼称する。)を生成する。生成した実行要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<
The execution
<実行応答受信部176>
実行応答受信部176は、実行要求送信部175から送信された実行要求メッセージに対する応答メッセージ(以下、「実行応答メッセージ」と呼称する。)を受信する。受信した実行応答メッセージを解析する。解析した実行応答メッセージから、実行されたコンポーネントに対する実行結果情報を抽出する。抽出した実行結果情報を実行結果書込部172に渡す。
<
The execution
なお、実行応答受信部176は、実行応答メッセージがエラーメッセージである場合は、エラー通知と、特定したコンポーネントが識別されるコンポーネント識別情報とを実行対象選出部171に渡す。
When the execution response message is an error message, the execution
<探索処理部180>
探索処理部180は、コンポーネント情報登録部181、探索要求送信部182、探索応答受信部183などを備える。
<
The
<コンポーネント情報登録部181>
コンポーネント情報登録部181は、探索応答受信部183からコンポーネント情報を受け取る。受け取ったコンポーネント情報を実行対象コンポーネントデータベース161に登録する。探索完了通知を実行対象選出部171に渡す。
<Component
The component
なお、図21に示されるように、ここでは、一例として、実行対象コンポーネントデータベース161には、コンポーネントc4の代替コンポーネントを探索する前は、コンポーネントc4のコンポーネント情報が登録されているとする(T161)。この場合において、コンポーネントc4の代替コンポーネントとしてコンポーネントc2が選出されると、コンポーネント情報登録部181は、コンポーネントc2のコンポーネント情報を受け取る。コンポーネントc4のコンポーネント情報の代わりに、受け取ったコンポーネントc2のコンポーネント情報を、実行対象コンポーネントデータベース161に登録する(T162)。
As shown in FIG. 21, here, as an example, it is assumed that component information of the component c4 is registered in the execution
<探索要求送信部182>
探索要求送信部182は、実行対象選出部171からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「探索要求メッセージ」と呼称する。)を生成する。生成した探索要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Search
The search
<探索応答受信部183>
探索応答受信部183は、探索要求送信部182から送信された探索要求メッセージに対する応答メッセージ(以下、「探索応答メッセージ」と呼称する。)を受信する。受信した探索応答メッセージを解析する。解析した探索応答メッセージから、代替コンポーネントに関するコンポーネント情報を抽出する。抽出したコンポーネント情報をコンポーネント情報登録部181に渡す。
<Search
The search
<動作>
次に、本実施の形態におけるWebサービスシステムにおいて代替コンポーネント探索時における処理について説明する。
<Operation>
Next, processing when searching for an alternative component in the Web service system according to the present embodiment will be described.
<利用時>
図22は、本実施の形態におけるWebサービスシステムにおいてWebサービスの利用時におけるシーケンスを示す図である。図22に示されるように、ユーザ端末107は、アプリケーションサーバ106で提供されているWebサービスの利用に関するサービス要求をアプリケーションサーバ106に送信する(S121)。
<When using>
FIG. 22 is a diagram showing a sequence when the Web service is used in the Web service system according to the present embodiment. As shown in FIG. 22, the
ここでは、アプリケーションサーバ106で提供されているWebサービスに、コンポーネントb1、コンポーネントc4、コンポーネントe4が利用されているとする。この場合において、アプリケーションサーバ106は、ユーザ端末107からサービス要求を受信すると、下記の処理(1)〜(3)を個別に実行する。
Here, it is assumed that the component b1, the component c4, and the component e4 are used for the Web service provided by the
(1)アプリケーションサーバ106は、コンポーネントb1が配置されているノード101に、コンポーネントb1の実行を要求する実行要求メッセージを送信する(S122)。これに対して、ノード101は、コンポーネントb1の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントb1を実行し、コンポーネントb1の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S125)。アプリケーションサーバ106は、コンポーネントb1の実行結果を含む実行応答メッセージをノード101から受信する。
(1) The
(2)アプリケーションサーバ106は、コンポーネントc4が配置されているノード104に、コンポーネントc4の実行を要求する実行要求メッセージを送信する(S123)。これに対して、ノード104は、コンポーネントc4の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントc4を実行し、コンポーネントc4の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S126)。アプリケーションサーバ106は、コンポーネントc4の実行結果を含む実行応答メッセージをノード104から受信する。
(2) The
(3)アプリケーションサーバ106は、コンポーネントe3が配置されているノード103に、コンポーネントe3の実行を要求する実行要求メッセージを送信する(S124)。これに対して、ノード103は、コンポーネントe3の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントe3を実行し、コンポーネントe3の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S127)。アプリケーションサーバ106は、コンポーネントe3の実行結果を含む実行応答メッセージをノード103から受信する。
(3) The
そして、アプリケーションサーバ106は、コンポーネントb1の実行結果、コンポーネントc4の実行結果、コンポーネントe3の実行結果を利用して生成したサービス応答メッセージをユーザ端末107に送信する(S128)。
Then, the
ユーザ端末107は、アプリケーションサーバ106から送信されたサービス応答メッセージを受信する。
The
<探索時>
図23は、本実施の形態におけるWebサービスシステムにおいて代替コンポーネントの探索時におけるシーケンスを示す図である。図23に示されるように、アプリケーションサーバ106は、Webサービスで利用されている1以上のコンポーネントのいずれかが利用できなくなった場合は、サービスを停止する。
<When searching>
FIG. 23 is a diagram showing a sequence when searching for an alternative component in the Web service system according to the present embodiment. As shown in FIG. 23, the
ここでは、コンポーネントc4が利用できなくなったとする。この場合において、アプリケーションサーバ106は、コンポーネントc4と対応付けられているノード105に、コンポーネントc4の代替コンポーネントの探索を要求する探索要求メッセージを送信する(S131)。これに対して、ノード105は、アプリケーションサーバ106から探索要求メッセージを受信すると、コンポーネントc4と同一の機能を有するコンポーネントc5とオーバレイネットワークにおいてリンクされているコンポーネントc2とコンポーネントc3との中から、コンポーネントc4の代替コンポーネントとして最適なコンポーネントを選択する。このとき、下記の処理(1),(2)を個別に実行する。
Here, it is assumed that the component c4 cannot be used. In this case, the
(1)ノード105は、コンポーネントc4と同一の機能を有するコンポーネントc2が配置されているノード102に、コンポーネントc2の効用情報を照会する照会要求メッセージを送信する(S132)。これに対して、ノード102は、コンポーネントc2の効用情報を照会する照会要求メッセージを受信すると、コンポーネントc2の効用情報を含む取得応答メッセージをノード105に送信する(S134)。ノード105は、コンポーネントc2の効用情報を含む取得応答メッセージを受信する。
(1) The
(2)ノード105は、コンポーネントc4と同一の機能を有するコンポーネントc3が配置されているノード103に、コンポーネントc3の効用情報を照会する照会要求メッセージを送信する(S133)。これに対して、ノード103は、コンポーネントc3の効用情報を照会する照会要求メッセージを受信すると、コンポーネントc3の効用情報を含む取得応答メッセージをノード105に送信する(S135)。ノード105は、コンポーネントc3の効用情報を含む取得応答メッセージを受信する。
(2) The
そして、ノード105は、コンポーネントc2の効用情報と、コンポーネントc3の効用情報とに基づいて、コンポーネントc2とコンポーネントc3との中から、効用値の高いコンポーネントc2を、コンポーネントc4の代替コンポーネントとして選択する。コンポーネントc2の識別情報を含む探索応答メッセージを送信する(S136)。
Then, the
アプリケーションサーバ106は、ノード105からコンポーネントc2の識別情報を含む探索応答メッセージを受信すると、コンポーネントc4の代わりに、コンポーネントc2を利用して、サービスを再開する。
When the
<再開時>
図24は、本実施の形態におけるWebサービスシステムにおいてWebサービスの再開時におけるシーケンスを示す図である。図24に示されるように、ユーザ端末107は、アプリケーションサーバ106で提供されているWebサービスの利用に関するサービス要求をアプリケーションサーバ106に送信する(S141)。
<When resuming>
FIG. 24 is a diagram showing a sequence when the Web service is restarted in the Web service system according to the present embodiment. As shown in FIG. 24, the
ここでは、アプリケーションサーバ106で提供されているWebサービスに、コンポーネントb1、コンポーネントe4が利用されているとする。また、コンポーネントc4の代わりに、コンポーネントc2が利用されているとする。この場合において、アプリケーションサーバ106は、ユーザ端末107からサービス要求を受信すると、下記の処理(1)〜(3)を個別に実行する。
Here, it is assumed that the component b1 and the component e4 are used in the Web service provided by the
(1)アプリケーションサーバ106は、コンポーネントb1が配置されているノード101に、コンポーネントb1の実行を要求する実行要求メッセージを送信する(S142)。これに対して、ノード101は、コンポーネントb1の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントb1を実行し、コンポーネントb1の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S145)。アプリケーションサーバ106は、コンポーネントb1の実行結果を含む実行応答メッセージをノード101から受信する。
(1) The
(2)アプリケーションサーバ106は、コンポーネントc2が配置されているノード102に、コンポーネントc2の実行を要求する実行要求メッセージを送信する(S143)。これに対して、ノード102は、コンポーネントc2の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントc2を実行し、コンポーネントc2の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S146)。アプリケーションサーバ106は、コンポーネントc2の実行結果を含む実行応答メッセージをノード102から受信する。
(2) The
(3)アプリケーションサーバ106は、コンポーネントe3が配置されているノード103に、コンポーネントe3の実行を要求する実行要求メッセージを送信する(S144)。これに対して、ノード103は、コンポーネントe3の実行を要求する実行要求メッセージをアプリケーションサーバ106から受信すると、コンポーネントe3を実行し、コンポーネントe3の実行結果を含む実行応答メッセージをアプリケーションサーバ106に送信する(S147)。アプリケーションサーバ106は、コンポーネントe3の実行結果を含む実行応答メッセージをノード103から受信する。
(3) The
そして、アプリケーションサーバ106は、コンポーネントb1の実行結果、コンポーネントc2の実行結果、コンポーネントe3の実行結果を利用して生成したサービス応答メッセージをユーザ端末107に送信する(S148)。
Then, the
ユーザ端末107は、アプリケーションサーバ106から送信されたサービス応答メッセージを受信する。
The
<まとめ>
以上、本実施の形態におけるWebサービスシステム100によれば、Webサービスで使用している1以上のコンポーネントのいずれかが使用できなくなっても、代わりのコンポーネントを即時に発見することができ、早期にWebサービスを再開することができる。このとき、探索代理ノードは、オーバレイネットワークを構成するコンポーネントを探索し、使用できなくなったコンポーネントと同一の機能を有するコンポーネントの効用情報に基づいて、効用の高いコンポーネントを選出する。これによって、即時に、使用できなくなったコンポーネントの代わりとなるコンポーネントを効率的に選出することができる。また、選出したコンポーネントのコンポーネント情報をアプリケーションサーバ106に通知することによって、アプリケーションサーバ106は、使用できなくなったコンポーネントの代わりとして最適なコンポーネントを特定することができ、早期にWebサービスを再開することができる。
<Summary>
As described above, according to the
(実施の形態2)
以下、本発明に係わる実施の形態2について図面を参照しながら説明する。
(Embodiment 2)
<概要>
本実施の形態におけるWebサービスシステムは、下記(c)に示される特徴を備える。
<Overview>
The Web service system in the present embodiment has the characteristics shown in (c) below.
(c)複数のノードの各々は、自ノードに配置されている第1のコンポーネントと、他ノードに配置されている1以上のコンポーネントの中で第1のコンポーネントと同一の機能を有する第2のコンポーネントとの間で論理ネットワークを形成し、形成した論理ネットワークのリンクを示すリンク情報をリンクデータベースに登録するオーバレイネットワーク構築処理部を備える。 (C) Each of the plurality of nodes is a second component having the same function as the first component among the first component arranged in the own node and one or more components arranged in the other nodes. An overlay network construction processing unit is provided that forms a logical network with a component and registers link information indicating a link of the formed logical network in a link database.
以上の点を踏まえて本実施の形態におけるWebサービスシステムについて説明する。なお、実施の形態1におけるWebサービスシステムと同一の構成要素については、同一の参照符号を付して説明を省略する。 Based on the above points, the Web service system in the present embodiment will be described. Note that the same components as those of the Web service system according to the first embodiment are denoted by the same reference numerals and description thereof is omitted.
<構成>
まず、本実施の形態におけるWebサービスシステムの構成について説明する。
<Configuration>
First, the configuration of the Web service system in the present embodiment will be described.
本実施の形態におけるWebサービスシステムは、実施の形態1におけるWebサービスシステム100と比べて、新たにオーバレイネットワークを構築する機能がノード101〜105に備わる点が異なる。ここでは、新たにオーバレイネットワークを構築する機能がノード101に備わった場合を例にして、本実施の形態におけるノードについてのみ説明する。
The Web service system according to the present embodiment is different from the
次に、本実施の形態におけるノードの構成について説明する。 Next, the configuration of the node in the present embodiment will be described.
図25は、本実施の形態におけるノードの構成を示す図である。図25に示されるように、ノード201は、実施の形態1におけるノード101と比べて、オーバレイネットワーク構築処理部210を新たに備える点が異なる。
FIG. 25 is a diagram illustrating a configuration of a node in the present embodiment. As shown in FIG. 25, the
なお、オーバレイネットワーク構築処理部210は、CORBA、DCOM、SOAPなどの分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよいし、これら以外の分散オブジェクト技術を利用してコンピュータシステム上に実現されているとしてもよい。ここでは、一例として、SOAPを利用してコンピュータシステム上に実現されているとする。
The overlay network
<オーバレイネットワーク構築処理部>
図26は、本実施の形態におけるノードの詳細な構成を示す図である。図26に示されるように、オーバレイネットワーク構築処理部210は、MLN保持部211、LLN保持部212、リンク数情報記憶部213、リンク数順位記憶部214、ネットワーク距離順位記憶部215、期待値算出部216、オーバレイネットワーク構築部217などを備える。
<Overlay network construction processor>
FIG. 26 is a diagram showing a detailed configuration of a node in the present embodiment. As shown in FIG. 26, the overlay network
さらに、オーバレイネットワーク構築処理部210は、削除対象選出部231、削除対象リンク元選出部232、リンク元コンポーネント選出部233、削除対象リンク先選出部234などを備える。
Furthermore, the overlay network
さらに、オーバレイネットワーク構築処理部210は、リンク元削除部241、リンク先削除部242、リンク削除確定部243、リンク削除要求送信部244、リンク削除応答受信部245、リンク削除要求受信部246、リンク削除応答送信部247などを備える。
Furthermore, the overlay network
さらに、オーバレイネットワーク構築処理部210は、追加対象選出部251、追加対象リンク先選出部252、リンク先ノード選出部253などを備える。
Furthermore, the overlay network
さらに、オーバレイネットワーク構築処理部210は、リンク元追加部261、リンク先追加部262、リンク追加確定部263、リンク追加要求送信部264、リンク追加応答受信部265、リンク追加要求受信部266、リンク追加応答送信部267などを備える。
Furthermore, the overlay network
さらに、オーバレイネットワーク構築処理部210は、リンク数情報読出部271、リンク数情報書込部272、リンク数情報照会要求送信部273、リンク数情報照会応答受信部274、リンク数情報照会要求受信部275、リンク数情報照会応答送信部276などを備える。
Furthermore, the overlay network
<MLN保持部211>
MLN保持部211は、自ノードに配置されている1以上のコンポーネントの総リンク数の最大値となるMLNを保持する。
<
The
<LLN保持部212>
LLN保持部212は、自ノードに配置されている1以上のコンポーネントの各リンク数の最小値となるLLNを保持する。
<
The
<リンク数情報記憶部213>
リンク数情報記憶部213は、リンク先ごとにリンク数情報を個別に記憶する。
<Link Number
The link number
<リンク数順位記憶部214>
リンク数順位記憶部214は、自ノードに配置されている1以上のコンポーネントをリンク数が多い順に並べたときの順位が特定されるリンク数順位情報を記憶する。
<Link number
The link number
<ネットワーク距離順位記憶部215>
ネットワーク距離順位記憶部215は、ネットワークを構成する1以上の他ノードを自ノードから近い順に並べたときの順位が特定されるネットワーク距離順位情報を記憶する。
<Network Distance
The network distance
<期待値算出部216>
期待値算出部216は、自ノードに配置されているコンポーネントの平均リンク数の期待値を算出する。
<Expected
The expected
<オーバレイネットワーク構築部217>
オーバレイネットワーク構築部217は、ノードに新たにコンポーネントが配置されると、ネットワーク距離順位情報を「1番近い」が示される値に設定する。リンク数順位情報を「1番多い」が示される値に設定する。下記のリンク形成処理を実行する。
<Overlay
When a new component is placed at a node, the overlay
オーバレイネットワーク構築部217は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
Based on the MLN held by the
(1)ノードの総リンク数がMLN以上である場合は、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部231に渡す。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する。
(1) When the total number of links of the node is greater than or equal to MLN, the overlay
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク形成処理を終了する。 (1a) When the received deletion target link information is null information, that is, when there is no link to be deleted, the link formation process is terminated.
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、オーバレイネットワーク構築部217は、受け取った削除対象リンク情報をリンク元削除部241に渡す。リンク元削除部241から削除失敗通知を受け取ると、リンク形成処理を終了する。リンク元削除部241から削除成功通知を受け取ると、リンク形成処理を再度実行する。
(1b) When the received deletion target link information is not null information, that is, when there is a link to be deleted, the overlay
(2)ノードの総リンク数がMLN以上でない場合は、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部251に渡す。追加対象選出部251から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理(2a),(2b)のいずれかを実行する。
(2) When the total number of links of the node is not equal to or greater than MLN, the overlay
(2a)受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク形成処理を終了する。 (2a) When the received addition target link information is null information, that is, when there is no link to be added, the link formation process is terminated.
(2b)受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、オーバレイネットワーク構築部217は、受け取った追加対象リンク情報をリンク元追加部261に渡す。リンク元追加部261から追加失敗通知を受け取ると、リンク形成処理を終了する。リンク元追加部261から追加成功通知を受け取ると、リンク形成処理を再度実行する。
(2b) When the received addition target link information is not null information, that is, when there is a link to be added, the overlay
<削除対象選出部231>
削除対象選出部231は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報と、期待値算出部216で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する。判定した結果、リンク数が期待値以上である場合は、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。一方、期待値以上でない場合は、下記の削除対象リンク選出処理を実行する。
<Delete
The deletion
削除対象選出部231は、自ノードが特定されるノード識別情報を削除対象リンク元選出部232に渡す。削除対象リンク元選出部232からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部234に渡す。削除対象リンク先選出部234からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク元情報に応じて、下記の処理(1),(2)のいずれかを実行する。
The deletion
(1)受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は、削除対象選出部231は、リンク数順位情報を「1番多い」が示される値に設定する。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(1) When the received link source information is null information, that is, when there is no link source, the deletion
(2)受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は、削除対象選出部231は、リンク数順位情報を「次に多い」が示される値に設定する。受け取ったリンク先情報に応じて、下記の処理(2a),(2b)のいずれかを実行する。
(2) If the received link source information is not null information, that is, if there is a link source, the deletion
(2a)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、削除対象選出部231は、上記の削除対象リンク選出処理から再度実行する。
(2a) When the received link destination information is null information, that is, when there is no link destination, the deletion
(2b)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、削除対象選出部231は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(2b) If the received link destination information is not null information, that is, if there is a link destination, the deletion
なお、削除対象選出部231は、リンク先追加部262からコンポーネント識別情報を受け取ると、上記の処理と同様の処理を実行して、削除対象リンク情報をリンク先追加部262に渡す。
When receiving the component identification information from the link
<削除対象リンク元選出部232>
削除対象リンク元選出部232は、削除対象選出部231からノード識別情報を受け取る。選出通知をリンク元コンポーネント選出部233に渡す。リンク元コンポーネント選出部233からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がヌル情報である場合は、ヌル情報をリンク元情報として削除対象選出部231に渡す。一方、受け取ったコンポーネント識別情報がヌル情報でない場合は、受け取ったコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク元情報を生成する。生成したリンク元情報を削除対象選出部231に渡す。
<Deleted Link
The deletion target link
<リンク元コンポーネント選出部233>
リンク元コンポーネント選出部233は、削除対象リンク元選出部232から選出通知を受け取る。リンクデータベース114に登録されている1以上のリンク情報に基づいて、リンク元における各コンポーネントのリンク数を算出する。算出して得られた結果に基づいて、リンク数順位記憶部214に記憶されているリンク数順位情報によって特定される順位のコンポーネントを特定する。特定したコンポーネントが識別されるコンポーネント識別情報を削除対象リンク元選出部232に渡す。
<Link source
The link source
<削除対象リンク先選出部234>
削除対象リンク先選出部234は、削除対象選出部231からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する。選出した1以上のリンク情報の各々に対して、下記の処理(1)を実行する。
<Deleted Link
The deletion target link
(1)削除対象リンク先選出部234は、選出したリンク情報のリンク先情報に含まれるノード識別情報とコンポーネント識別情報とをリンク数情報照会要求送信部273に渡す。
(1) The deletion target link
削除対象リンク先選出部234は、選出した1以上のリンク情報の全てに対して、上記(1)の処理を実行し、リンク数情報記憶部213にリンク数情報が存在する場合は、リンク数情報記憶部213に記憶されている1以上のリンク数情報に基づいて、選出した1以上のリンク情報によって特定される1以上のリンク先の中から、リンク数が最多のリンク先を選出する。選出したリンク先が特定されるリンク先情報を削除対象選出部231に渡す。
The deletion target link
一方、削除対象リンク先選出部234は、リンク数情報記憶部213にリンク数情報が存在しない場合は、ヌル情報をリンク先情報として削除対象選出部231に渡す。
On the other hand, when the link number information does not exist in the link number
<リンク元削除部241>
リンク元削除部241は、オーバレイネットワーク構築部217から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った削除対象リンク情報とをリンク削除要求送信部244に渡す。リンク削除応答受信部245から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は、リンク元削除部241は、削除失敗通知をオーバレイネットワーク構築部217に渡す。
(1) When the received deletion confirmation link information is null information, that is, when there is no link to be deleted, the link
(2)受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は、リンク元削除部241は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する。削除成功通知をオーバレイネットワーク構築部217に渡す。
(2) If the received deletion confirmation link information is not null information, that is, if there is a link to be deleted, the link
なお、リンク元削除部241は、リンク先追加部262かた削除対象リンク情報を受け取ると、上記の処理と同様の処理を実行して、削除失敗通知および削除成功通知のいずれかをリンク先追加部262に渡す。
When the link
<リンク先削除部242>
リンク先削除部242は、リンク削除要求受信部246から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部243に渡す。リンク削除確定部243から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は、受け取った削除確定リンク情報をリンク削除応答送信部247に渡す。一方、受け取った削除確定リンク情報がヌル情報でない場合は、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている1以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する。LLN保持部212で保持されているLLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がLLN以下であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)特定したリンク先のコンポーネントのリンク数がLLN以下である場合は、リンク先削除部242は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部247に渡す。
(1) When the number of links of the identified link destination component is LLN or less, the link
(2)特定したリンク先のコンポーネントのリンク数がLLN以下でない場合は、リンク先削除部242は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する。受け取った削除確定リンク情報をリンク削除応答送信部247に渡す。
(2) If the number of links of the identified link destination component is not less than or equal to LLN, the link
<リンク削除確定部243>
リンク削除確定部243は、リンク先削除部242から削除対象リンク情報を受け取る。受け取った削除対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)選出したコンポーネント情報がヌル情報である場合は、リンク削除確定部243は、ヌル情報を削除確定リンク情報としてリンク先削除部242に渡す。
(1) If the selected component information is null information, the link
(2)選出したコンポーネント情報がヌル情報でない場合は、リンク削除確定部243は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報(実行ノード)とを含むリンク先情報を生成する。受け取った削除対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を削除確定リンク情報としてリンク先削除部242に渡す。
(2) If the selected component information is not null information, the link
<リンク削除要求送信部244>
リンク削除要求送信部244は、リンク元削除部241からノード識別情報と削除対象リンク情報とを受け取る。受け取った削除対象リンク情報を含む要求メッセージ(以下、「リンク削除要求メッセージ」と呼称する。)を生成する。生成したリンク削除要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Link deletion
The link deletion
<リンク削除応答受信部245>
リンク削除応答受信部245は、リンク削除要求送信部244から送信されたリンク削除要求メッセージに対する応答メッセージ(以下、「リンク削除応答メッセージ」と呼称する。)を受信する。受信したリンク削除応答メッセージを解析する。解析したリンク削除応答メッセージから削除確定リンク情報を抽出する。抽出した削除確定リンク情報をリンク元削除部241に渡す。
<Link
The link deletion
<リンク削除要求受信部246>
リンク削除要求受信部246は、他ノードのような送信元からリンク削除要求メッセージを受信する。受信したリンク削除要求メッセージの送信元が特定されるノード識別情報をリンク削除応答送信部247に渡す。受信したリンク削除要求メッセージを解析する。解析したリンク削除要求メッセージから削除対象リンク情報を抽出する。抽出した削除対象リンク情報をリンク先削除部242に渡す。
<Link deletion
The link deletion
<リンク削除応答送信部247>
リンク削除応答送信部247は、リンク削除要求受信部246からノード識別情報を受け取る。リンク先削除部242から削除確定リンク情報を受け取る。受け取った削除確定リンク情報を含むリンク削除応答メッセージを生成する。生成したリンク削除応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Link deletion
The link deletion
<追加対象選出部251>
追加対象選出部251は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成する。受け取ったコンポーネント識別情報を追加対象リンク先選出部252に渡す。追加対象リンク先選出部252からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する。受け取ったリンク先情報に応じて、下記の処理(1),(2)のいずれかを実行する。
<
The addition
(1)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は、追加対象選出部251は、ネットワーク距離順位情報を「1番近い」が示される値に設定する。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(1) When the received link destination information is null information, that is, when there is no link destination, the addition
(2)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は、追加対象選出部251は、ネットワーク距離順位情報を「次に近い」が示される値に設定する。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す。
(2) When the received link destination information is not null information, that is, when a link destination exists, the addition
<追加対象リンク先選出部252>
追加対象リンク先選出部252は、追加対象選出部251からコンポーネント識別情報を受け取る。選出通知をリンク先ノード選出部253に渡す。リンク先ノード選出部253からノード識別情報を受け取る。受け取ったノード識別情報がヌル情報である場合は、ヌル情報をリンク先情報として追加対象選出部251に渡す。
<Additional link
The addition target link
一方、受け取ったノード識別情報がヌル情報でない場合は、追加対象リンク先選出部252は、受け取ったコンポーネント識別情報をリンク先のコンポーネント識別情報として設定する。設定したリンク先のコンポーネント識別情報と、受け取ったノード識別情報とを含むリンク先情報を生成する。生成したリンク先情報を追加対象選出部251に渡す。
On the other hand, if the received node identification information is not null information, the addition target link
<リンク先ノード選出部253>
リンク先ノード選出部253は、追加対象リンク先選出部252から選出通知を受け取る。ノードデータベース113に登録されている1以上のノード情報に基づいて、リンク先における各ノードのネットワーク距離を算出する。算出して得られた結果に基づいて、ネットワーク距離順位記憶部215に記憶されているネットワーク距離順位情報によって特定される順位のノードを特定する。特定したノードが識別されるノード識別情報を追加対象リンク先選出部252に渡す。
<Link destination
The link destination
なお、ここでは、話を簡潔にするために、ノード情報のRTTをネットワーク距離とする。RTTの値が大きければ、ネットワーク距離も長いとし、RTTの値が小さければ、ネットワーク距離も短いとする。 Here, in order to simplify the story, RTT of the node information is a network distance. If the RTT value is large, the network distance is long. If the RTT value is small, the network distance is short.
<リンク元追加部261>
リンク元追加部261は、オーバレイネットワーク構築部217から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報と、受け取った追加対象リンク情報とをリンク追加要求送信部264に渡す。リンク追加応答受信部265から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は、リンク元追加部261は、追加失敗通知をオーバレイネットワーク構築部217に渡す。
(1) When the received addition confirmed link information is null information, that is, when there is no link to be added, the link
(2)受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は、リンク元追加部261は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。追加成功通知をオーバレイネットワーク構築部217に渡す。
(2) When the received additional confirmed link information is not null information, that is, when there is a link to be added, the link
<リンク先追加部262>
リンク先追加部262は、リンク追加要求受信部266から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部263に渡す。リンク追加確定部263から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合は、受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。一方、受け取った追加確定リンク情報がヌル情報でない場合は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)ノードの総リンク数がMLN以上である場合は、リンク先追加部262は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部231に渡す。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する。
(1) When the total number of links of the node is greater than or equal to MLN, the link
(1a)受け取った削除対象リンク情報がヌル情報である場合は、リンク先追加部262は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す。
(1a) When the received deletion target link information is null information, the link
(1b)受け取った削除対象リンク情報がヌル情報でない場合は、リンク先追加部262は、受け取った削除対象リンク情報をリンク元削除部241に渡す。リンク元削除部241から削除失敗通知を受け取ると、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す。リンク元削除部241から削除成功通知を受け取ると、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。
(1b) If the received deletion target link information is not null information, the link
(2)ノードの総リンク数がMLN以上でない場合は、リンク先追加部262は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す。
(2) When the total number of links of the node is not equal to or greater than MLN, the link
<リンク追加確定部263>
リンク追加確定部263は、リンク先追加部262から追加対象リンク情報を受け取る。受け取った追加対象リンク情報のリンク元情報に含まれるコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントのコンポーネント情報を、コンポーネントデータベース112に登録されている1以上のコンポーネント情報の中から選出する。選出したコンポーネント情報に応じて、下記の処理(1),(2)のいずれかを実行する。
<Link
The link
(1)選出したコンポーネント情報がヌル情報である場合は、リンク追加確定部263は、ヌル情報を追加確定リンク情報としてリンク先追加部262に渡す。
(1) When the selected component information is null information, the link
(2)選出したコンポーネント情報がヌル情報でない場合は、リンク追加確定部263は、選出したコンポーネント情報におけるコンポーネント識別情報とノード識別情報(実行ノード)とを含むリンク先情報を生成する。受け取った追加対象リンク情報に含まれるリンク元情報と、生成したリンク先情報とを含むリンク情報を生成する。生成したリンク情報を追加確定リンク情報としてリンク先追加部262に渡す。
(2) When the selected component information is not null information, the link
<リンク追加要求送信部264>
リンク追加要求送信部264は、リンク元追加部261からノード識別情報と追加対象リンク情報とを受け取る。受け取った追加対象リンク情報を含む要求メッセージ(以下、「リンク追加要求メッセージ」と呼称する。)を生成する。生成したリンク追加要求メッセージを、受け取った追加対象リンク情報のリンク先情報に含まれるノード識別情報によって特定される送信先に送信する。
<Link addition
The link addition
<リンク追加応答受信部265>
リンク追加応答受信部265は、リンク追加要求送信部264から送信されたリンク追加要求メッセージに対する応答メッセージ(以下、「リンク追加応答メッセージ」と呼称する。)を受信する。受信したリンク追加応答メッセージを解析する。解析したリンク追加応答メッセージから追加確定リンク情報を抽出する。抽出した追加確定リンク情報をリンク元追加部261に渡す。
<Link addition
The link addition
<リンク追加要求受信部266>
リンク追加要求受信部266は、他ノードのような送信元からリンク追加要求メッセージを受信する。受信したリンク追加要求メッセージの送信元が特定されるノード識別情報をリンク追加応答送信部267に渡す。受信したリンク追加要求メッセージを解析する。解析したリンク追加要求メッセージから追加対象リンク情報を抽出する。抽出した追加対象リンク情報をリンク先追加部262に渡す。
<Link addition
The link addition
<リンク追加応答送信部267>
リンク追加応答送信部267は、リンク追加要求受信部266からノード識別情報を受け取る。リンク先追加部262から追加確定リンク情報を受け取る。受け取った追加確定リンク情報を含むリンク追加応答メッセージを生成する。生成したリンク追加応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Link addition
The link addition
<リンク数情報読出部271>
リンク数情報読出部271は、リンク数情報照会要求受信部275からコンポーネント識別情報を受け取る。コンポーネントデータベース112に登録されている1以上のコンポーネント情報に基づいて、自ノードに配置されている1以上のコンポーネントの中から、受け取ったコンポーネント識別情報によって特定されるコンポーネントと同一の機能を有するコンポーネントを特定する。リンクデータベース114に登録されている1以上のリンク情報に基づいて、特定したコンポーネントのリンク数を算出する。算出したコンポーネントが識別されるコンポーネント識別情報と、自ノードが特定されるノード識別情報と、特定したリンク数とを含むリンク数情報を生成する。生成したリンク数情報をリンク数情報照会応答送信部276に渡す。
<Link Number
The link number
<リンク数情報書込部272>
リンク数情報書込部272は、リンク数情報照会応答受信部274からリンク数情報を受け取る。受け取ったリンク数情報をリンク数情報記憶部213に書き込む。
<Link number
The link number
<リンク数情報照会要求送信部273>
リンク数情報照会要求送信部273は、削除対象リンク先選出部234からノード識別情報とコンポーネント識別情報とを受け取る。受け取ったコンポーネント識別情報を含む要求メッセージ(以下、「リンク数照会要求メッセージ」と呼称する。)を生成する。生成したリンク数照会要求メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Link Number Information
The link number information inquiry
<リンク数情報照会応答受信部274>
リンク数情報照会応答受信部274は、リンク数情報照会要求送信部273から送信されたリンク数照会要求メッセージに対する応答メッセージ(以下、「リンク数照会応答メッセージ」と呼称する。)を受信する。受信したリンク数照会応答メッセージを解析する。解析したリンク数照会応答メッセージからリンク数情報を抽出する。抽出したリンク数情報をリンク数情報書込部272に渡す。
<Link Number Information Query
The link number information inquiry
<リンク数情報照会要求受信部275>
リンク数情報照会要求受信部275は、他ノードのような送信元からリンク数照会要求メッセージを受信する。受信したリンク数照会要求メッセージの送信元が特定されるノード識別情報をリンク数情報照会応答送信部276に渡す。受信したリンク数照会要求メッセージを解析する。解析したリンク数照会要求メッセージからコンポーネント識別情報を抽出する。抽出したコンポーネント識別情報をリンク数情報読出部271に渡す。
<Link Number Information Inquiry
The link number information inquiry
<リンク数情報照会応答送信部276>
リンク数情報照会応答送信部276は、リンク数情報照会要求受信部275からノード識別情報を受け取る。リンク数情報読出部271からリンク数情報を受け取る。受け取ったリンク数情報を含むリンク数照会応答メッセージを生成する。生成したリンク数照会応答メッセージを、受け取ったノード識別情報によって特定される送信先に送信する。
<Link Number Information
The link number information inquiry
<動作>
次に、本実施の形態におけるWebサービスシステムの動作について説明する。
<Operation>
Next, the operation of the Web service system in this embodiment will be described.
<オーバレイネットワーク構築処理>
図27は、本実施の形態におけるオーバレイネットワーク構築処理を示す図である。図27に示されるように、オーバレイネットワーク構築部217は、ノードに新たにコンポーネントが配置されると(S201:Yes)、ネットワーク距離順位情報を「1番近い」が示される値に設定する(S202)。リンク数順位情報を「1番多い」が示される値に設定する(S203)。下記のリンク形成処理(S204)〜(S212)を実行する。
<Overlay network construction processing>
FIG. 27 is a diagram showing overlay network construction processing in the present embodiment. As shown in FIG. 27, when a new component is placed at a node (S201: Yes), the overlay
オーバレイネットワーク構築部217は、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S204)。
Based on the MLN held by the
(1)ノードの総リンク数がMLN以上である場合は(S204:Yes)、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を削除対象選出部231に渡し、削除対象選出処理を実行する(S205)。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する(S206)。
(1) When the total number of links of the node is greater than or equal to MLN (S204: Yes), the overlay
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S206:Yes)、リンク形成処理を終了する。 (1a) When the received deletion target link information is null information, that is, when there is no deletion target link (S206: Yes), the link formation process is terminated.
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S206:No)、オーバレイネットワーク構築部217は、受け取った削除対象リンク情報をリンク元削除部241に渡し、リンク元削除処理を実行する(S207)。リンク元削除部241から削除失敗通知を受け取ると(S208:Yes)、リンク形成処理を終了する。リンク元削除部241から削除成功通知を受け取ると(S208:No)、リンク形成処理を再度実行する(S204)。
(1b) If the received deletion target link information is not null information, that is, if there is a link to be deleted (S206: No), the overlay
(2)ノードの総リンク数がMLN以上でない場合は(S204:No)、オーバレイネットワーク構築部217は、ノードに新たに配置されたコンポーネントが特定されるコンポーネント識別情報を追加対象選出部251に渡し、追加対象選出処理を実行する(S209)。追加対象選出部251から追加対象リンク情報を受け取る。受け取った追加対象リンク情報に応じて、下記の処理(2a),(2b)のいずれかを実行する(S210)。
(2) When the total link number of the node is not equal to or greater than MLN (S204: No), the overlay
(2a)受け取った追加対象リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S210:Yes)、リンク形成処理を終了する。 (2a) When the received addition target link information is null information, that is, when there is no link to be added (S210: Yes), the link formation process is terminated.
(2b)受け取った追加対象リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S210:No)、オーバレイネットワーク構築部217は、受け取った追加対象リンク情報をリンク元追加部261に渡し、リンク元追加処理を実行する(S211)。リンク元追加部261から追加失敗通知を受け取ると(S212:Yes)、リンク形成処理を終了する。リンク元追加部261から追加成功通知を受け取ると(S212:No)、リンク形成処理を再度実行する(S204)。
(2b) When the received addition target link information is not null information, that is, when there is a link to be added (S210: No), the overlay
<削除対象選出処理>
次に、本実施の形態におけるリンク元のノードで実行される削除対象選出処理について説明する。
<Selection process for deletion>
Next, the deletion target selection process executed in the link source node in the present embodiment will be described.
図28は、本実施の形態におけるリンク元のノードで実行される削除対象選出処理を示す図である。図28に示されるように、削除対象選出部231は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報がリンク元情報に含まれるリンク情報を、リンクデータベース114に登録されている1以上のリンク情報の中から全て選出する(S221)。選出した1以上のリンク情報と、期待値算出部216で算出された期待値とに基づいて、受け取ったコンポーネント識別情報によって特定されるコンポーネントのリンク数が期待値以上であるか否かを判定する(S222)。判定した結果、リンク数が期待値以上である場合は(S222:Yes)、ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S223)。一方、期待値以上でない場合は(S222:No)、下記の削除対象リンク選出処理(S224)〜(S231)を実行する。
FIG. 28 is a diagram showing a deletion target selection process executed at the link source node in the present embodiment. As illustrated in FIG. 28, the deletion
削除対象選出部231は、自ノードが特定されるノード識別情報を削除対象リンク元選出部232に渡し、削除対象となるリンク元を選出する(S224)。削除対象リンク元選出部232からリンク元情報を受け取る。受け取ったコンポーネント識別情報を削除対象リンク先選出部234に渡し、削除対象となるリンク先を選出する(S225)。削除対象リンク先選出部234からリンク先情報を受け取る。受け取ったリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する(S226)。受け取ったリンク元情報に応じて、下記の処理(1),(2)のいずれかを実行する(S227)。
The deletion
(1)受け取ったリンク元情報がヌル情報である場合、すなわち、リンク元が存在しない場合は(S227:Yes)、削除対象選出部231は、リンク数順位情報を「1番多い」が示される値に設定する(S228)。ヌル情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S223)。
(1) When the received link source information is null information, that is, when the link source does not exist (S227: Yes), the deletion
(2)受け取ったリンク元情報がヌル情報でない場合、すなわち、リンク元が存在する場合は(S227:No)、削除対象選出部231は、リンク数順位情報を「次に多い」が示される値に設定する(S229)。受け取ったリンク先情報に応じて、下記の処理(2a),(2b)のいずれかを実行する(S230)。
(2) When the received link source information is not null information, that is, when there is a link source (S227: No), the deletion
(2a)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は(S230:Yes)、削除対象選出部231は、上記の削除対象リンク選出処理から再度実行する(S224)。
(2a) When the received link destination information is null information, that is, when there is no link destination (S230: Yes), the deletion
(2b)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は(S230:No)、削除対象選出部231は、生成したリンク情報を削除対象リンク情報としてオーバレイネットワーク構築部217に渡す(S231)。
(2b) When the received link destination information is not null information, that is, when there is a link destination (S230: No), the deletion
<リンク元削除処理>
次に、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理について説明する。
<Link source deletion processing>
Next, the link source deletion process executed in the link source node in the present embodiment will be described.
図29は、本実施の形態におけるリンク元のノードで実行されるリンク元削除処理を示す図である。図29に示されるように、リンク元削除部241は、オーバレイネットワーク構築部217から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除要求送信部244に渡し、削除対象となるリンク先のノードにリンク先削除処理を実行させる(S241)。リンク削除応答受信部245から削除確定リンク情報を受け取る。受け取った削除確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する(S242)。
FIG. 29 is a diagram showing link source deletion processing executed at the link source node in the present embodiment. As illustrated in FIG. 29, the link
(1)受け取った削除確定リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S242:Yes)、リンク元削除部241は、削除失敗通知をオーバレイネットワーク構築部217に渡す(S243)。
(1) When the received deletion confirmation link information is null information, that is, when there is no link to be deleted (S242: Yes), the link
(2)受け取った削除確定リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S242:No)、リンク元削除部241は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する(S244)。削除成功通知をオーバレイネットワーク構築部217に渡す(S245)。
(2) When the received deletion confirmation link information is not null information, that is, when there is a link to be deleted (S242: No), the link
<リンク先削除処理>
次に、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理について説明する。
<Link destination deletion processing>
Next, the link destination deletion process executed at the link destination node in the present embodiment will be described.
図30は、本実施の形態におけるリンク先のノードで実行されるリンク先削除処理を示す図である。図30に示されるように、リンク先削除部242は、リンク削除要求受信部246から削除対象リンク情報を受け取る。受け取った削除対象リンク情報をリンク削除確定部243に渡し、削除対象となるリンクを確定する(S251)。リンク削除確定部243から削除確定リンク情報を受け取る。受け取った削除確定リンク情報がヌル情報である場合は(S252:Yes)、受け取った削除確定リンク情報をリンク削除応答送信部247に渡す(S253)。一方、受け取った削除確定リンク情報がヌル情報でない場合は(S252:No)、受け取った削除確定リンク情報のリンク先情報に含まれるコンポーネント識別情報に基づいて、リンク先のノードに配置されている1以上のコンポーネントの中から、リンク元のコンポーネントと同一の機能を有するリンク先のコンポーネントを特定する(S254)。LLN保持部212で保持されているLLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、特定したリンク先のコンポーネントのリンク数がLLN以下であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S255)。
FIG. 30 is a diagram showing link destination deletion processing executed at the link destination node in the present embodiment. As illustrated in FIG. 30, the link
(1)特定したリンク先のコンポーネントのリンク数がLLN以下である場合は(S255:Yes)、リンク先削除部242は、ヌル情報を削除確定リンク情報としてリンク削除応答送信部247に渡す(S253)。
(1) When the number of links of the identified link destination component is LLN or less (S255: Yes), the link
(2)特定したリンク先のコンポーネントのリンク数がLLN以下でない場合は(S255:No)、リンク先削除部242は、受け取った削除確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報から削除する(S256)。受け取った削除確定リンク情報をリンク削除応答送信部247に渡す(S257)。
(2) When the number of links of the identified link destination component is not less than or equal to LLN (S255: No), the link
<追加対象選出処理>
次に、本実施の形態におけるリンク元のノードで実行される追加対象選出処理について説明する。
<Additional selection process>
Next, an addition target selection process executed at the link source node in the present embodiment will be described.
図31は、本実施の形態におけるリンク元のノードで実行される追加対象選出処理を示す図である。図31に示されるように、追加対象選出部251は、オーバレイネットワーク構築部217からコンポーネント識別情報を受け取る。受け取ったコンポーネント識別情報と、自ノードが特定されるノード識別情報とを含むリンク元情報を生成し、追加対象となるリンク元を設定する(S261)。受け取ったコンポーネント識別情報を追加対象リンク先選出部252に渡し、追加対象となるリンク先を選出する(S262)。追加対象リンク先選出部252からリンク先情報を受け取る。生成したリンク元情報と、受け取ったリンク先情報とを含むリンク情報を生成する(S263)。受け取ったリンク先情報に応じて、下記の処理(1),(2)のいずれかを実行する(S264)。
FIG. 31 is a diagram showing an addition target selection process executed by the link source node in the present embodiment. As illustrated in FIG. 31, the addition
(1)受け取ったリンク先情報がヌル情報である場合、すなわち、リンク先が存在しない場合は(S264:Yes)、追加対象選出部251は、ネットワーク距離順位情報を「1番近い」が示される値に設定する(S265)。ヌル情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す(S266)。
(1) When the received link destination information is null information, that is, when there is no link destination (S264: Yes), the addition
(2)受け取ったリンク先情報がヌル情報でない場合、すなわち、リンク先が存在する場合は(S264:No)、追加対象選出部251は、ネットワーク距離順位情報を「次に近い」が示される値に設定する(S267)。生成したリンク情報を追加対象リンク情報としてオーバレイネットワーク構築部217に渡す(S268)。
(2) When the received link destination information is not null information, that is, when a link destination exists (S264: No), the addition
<リンク元追加処理>
次に、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理について説明する。
<Link source addition processing>
Next, the link source addition process executed at the link source node in the present embodiment will be described.
図32は、本実施の形態におけるリンク元のノードで実行されるリンク元追加処理を示す図である。図32に示されるように、リンク元追加部261は、オーバレイネットワーク構築部217から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加要求送信部264に渡し、追加対象となるリンク先のノードにリンク先追加処理を実行させる(S281)。リンク追加応答受信部265から追加確定リンク情報を受け取る。受け取った追加確定リンク情報に応じて、下記の処理(1),(2)のいずれかを実行する(S282)。
FIG. 32 is a diagram showing link source addition processing executed at the link source node in the present embodiment. As illustrated in FIG. 32, the link
(1)受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S282:Yes)、追加失敗通知をオーバレイネットワーク構築部217に渡す(S283)。 (1) When the received addition confirmation link information is null information, that is, when there is no link to be added (S282: Yes), an addition failure notification is passed to the overlay network construction unit 217 (S283).
(2)受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S282:No)、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S284)。追加成功通知をオーバレイネットワーク構築部217に渡す(S285)。
(2) When the received additional confirmed link information is not null information, that is, when there is a link to be added (S282: No), the received additional confirmed link information is registered in the
<リンク先追加処理>
次に、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理について説明する。
<Link destination addition processing>
Next, link destination addition processing executed at the link destination node in the present embodiment will be described.
図33は、本実施の形態におけるリンク先のノードで実行されるリンク先追加処理を示す図である。図33に示されるように、リンク先追加部262は、リンク追加要求受信部266から追加対象リンク情報を受け取る。受け取った追加対象リンク情報をリンク追加確定部263に渡し、追加対象となるリンクを確定する(S291)。リンク追加確定部263から追加確定リンク情報を受け取る。受け取った追加確定リンク情報がヌル情報である場合、すなわち、追加対象となるリンクが存在しない場合は(S292:Yes)、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。一方、受け取った追加確定リンク情報がヌル情報でない場合、すなわち、追加対象となるリンクが存在する場合は(S292:No)、MLN保持部211で保持されているMLNと、リンクデータベース114に登録されている1以上のリンク情報とに基づいて、ノードの総リンク数がMLN以上であるか否かを判定する。判定した結果に応じて、下記の処理(1),(2)のいずれかを実行する(S294)。
FIG. 33 is a diagram showing link destination addition processing executed at the link destination node in the present embodiment. As illustrated in FIG. 33, the link
(1)ノードの総リンク数がMLN以上である場合は(S294:Yes)、リンク先追加部262は、受け取った追加確定リンク情報のリンク先情報に含まれるコンポーネント識別情報を削除対象選出部231に渡し、削除対象選出処理を実行する(S295)。削除対象選出部231から削除対象リンク情報を受け取る。受け取った削除対象リンク情報に応じて、下記の処理(1a),(1b)のいずれかを実行する(S296)。
(1) When the total number of links of the node is greater than or equal to MLN (S294: Yes), the link
(1a)受け取った削除対象リンク情報がヌル情報である場合、すなわち、削除対象となるリンクが存在しない場合は(S296:Yes)、リンク先追加部262は、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。
(1a) When the received deletion target link information is null information, that is, when there is no link to be deleted (S296: Yes), the link
(1b)受け取った削除対象リンク情報がヌル情報でない場合、すなわち、削除対象となるリンクが存在する場合は(S296:No)、リンク先追加部262は、受け取った削除対象リンク情報をリンク元削除部241に渡し、リンク元削除処理を実行する(S297)。リンク元削除部241から削除失敗通知を受け取ると(S298:Yes)、ヌル情報を追加確定リンク情報としてリンク追加応答送信部267に渡す(S293)。リンク元削除部241から削除成功通知を受け取ると(S298:No)、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S299)。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す(S300)。
(1b) When the received deletion target link information is not null information, that is, when there is a link to be deleted (S296: No), the link
(2)ノードの総リンク数がMLN以上でない場合は(S294:No)、リンク先追加部262は、受け取った追加確定リンク情報を、リンクデータベース114に登録されている1以上のリンク情報に追加する(S299)。受け取った追加確定リンク情報をリンク追加応答送信部267に渡す(S300)。
(2) When the total number of links of the node is not greater than or equal to MLN (S294: No), the link
<シーケンス>
次に、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスについて説明する。ここでは、一例として、図8〜図11に示されるように、新たにコンポーネントb4がノード4に配置された場合について、ノード間の相互作用について説明する。
<Sequence>
Next, the sequence between nodes at the time of construction of the overlay network in the present embodiment will be described. Here, as an example, the interaction between nodes will be described in the case where a component b4 is newly arranged in the
なお、物理ネットワークにおいて、ノード4から近い順で、ノード1、ノード2、ノード5、ノード3が配置されているものとする。
In the physical network, it is assumed that
図34〜図36は、本実施の形態におけるオーバレイネットワークの構築時におけるノード間のシーケンスを示す図である。図34に示されるように、この場合において、ノード104は、リンク追加処理時に、下記の処理(1)〜(4)を実行する。
34 to 36 are diagrams showing a sequence between nodes at the time of constructing the overlay network in the present embodiment. As shown in FIG. 34, in this case, the
(1)ノード104は、コンポーネントb1が配置されているノード101に、コンポーネントb4とコンポーネントb1との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S311)。これに対して、ノード101は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード101に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb1との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S312)。ノード104は、リンク追加応答メッセージをノード101から受信する。
(1) The
(2)ノード104は、コンポーネントb2が配置されているノード102に、コンポーネントb4とコンポーネントb2との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S313)。これに対して、ノード102は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード102に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb2との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S314)。ノード104は、リンク追加応答メッセージをノード102から受信する。
(2) The
(3)ノード104は、コンポーネントb5が配置されているノード105に、コンポーネントb4とコンポーネントb5との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S315)。これに対して、ノード105は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード105に設定された総リンク数の上限値を上回ることから、他のリンクを削除することを試みる。
(3) The
このとき、図35に示されるように、ノード105は、削除対象選出処理時に、下記の処理(3a)〜(3c)を個別に実行する。
At this time, as shown in FIG. 35, the
(3a)ノード105は、コンポーネントb1が配置されているノード101に、コンポーネントb1のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S321)。これに対して、ノード101は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb1のリンク数を算出し、算出したリンク数(4本)を含むリンク数情報照会応答メッセージをノード105に送信する(S324)。ノード105は、リンク数情報照会応答メッセージをノード101から受信する。
(3a) The
(3b)ノード105は、コンポーネントb2が配置されているノード102に、コンポーネントb2のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S322)。これに対して、ノード102は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb2のリンク数を算出し、算出したリンク数(3本)を含むリンク数情報照会応答メッセージをノード105に送信する(S325)。ノード105は、リンク数情報照会応答メッセージをノード102から受信する。
(3b) The
(3c)ノード105は、コンポーネントb3が配置されているノード103に、コンポーネントb3のリンク数の照会を要求するリンク数情報照会要求メッセージを送信する(S323)。これに対して、ノード103は、リンク数情報照会要求メッセージをノード105から受信すると、コンポーネントb3のリンク数を算出し、算出したリンク数(2本)を含むリンク数情報照会応答メッセージをノード105に送信する(S326)。ノード105は、リンク数情報照会応答メッセージをノード103から受信する。
(3c) The
そして、ノード105は、コンポーネントb1のリンク数(4本)、コンポーネントb2のリンク数(3本)、コンポーネントb3のリンク数(2本)をリンク数情報記憶部213にリンク先ごとに記憶する。削除対象としてリンク数が1番多いコンポーネントb1を選出する。
The
さらに、図36に示されるように、ノード105は、コンポーネントb1が配置されているノード101に、コンポーネントb5とコンポーネントb1との間で形成されたリンクを削除することを要求するリンク削除要求メッセージを送信する(S331)。これに対して、ノード101は、リンク削除要求メッセージをノード105から受信すると、リンク先削除処理を実行する。実行した結果、ノード101に設定されたリンク数の下限値を下回らないことから、コンポーネントb5とコンポーネントb1との間で形成されたリンクを削除したことを示すリンク削除応答メッセージをノード105に送信する(S332)。ノード105は、リンク削除応答メッセージを101から受信する。
Further, as shown in FIG. 36, the
これに伴い、ノード105は、ノード105に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb5との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S316)。ノード104は、リンク追加応答メッセージをノード105から受信する。
Accordingly, since the
(4)ノード104は、コンポーネントb3が配置されているノード103に、コンポーネントb1とコンポーネントb3との間でリンクを形成することを要求するリンク追加要求メッセージを送信する(S317)。これに対して、ノード103は、リンク追加要求メッセージをノード104から受信すると、リンク先追加処理を実行する。実行した結果、ノード103に設定された総リンク数の上限値を上回らないことから、コンポーネントb4とコンポーネントb3との間でリンクを形成したことが示されるリンク追加応答メッセージをノード104に送信する(S318)。ノード104は、リンク追加応答メッセージをノード103から受信する。
(4) The
<まとめ>
以上、本実施の形態におけるWebサービスシステムによれば、コンポーネントが追加されたり、削除されたりしても、各ノードが連携して動的にオーバレイネットワークを構築することができる。また、自律分散処理を基本とするため、単一故障点が存在せず、複数の障害に対する耐性を有している。
<Summary>
As described above, according to the Web service system in the present embodiment, even if components are added or deleted, an overlay network can be dynamically constructed in cooperation with each node. Moreover, since it is based on autonomous distributed processing, there is no single point of failure and it has resistance against a plurality of failures.
(その他)
なお、ノード101、またはノード201などは、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、ネットワークアダプタなどを備えるとしてもよい。さらに、HDDなどに、ノード101、またはノード201などを制御するプログラム(以下、「ノード制御プログラム」と呼称する。)がインストールされており、ノード制御プログラムが実行されることによって、ノード101、またはノード201などの各機能が実現されるとしてもよい。
(Other)
The
なお、ノード101、またはノード201などは、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、IP電話機、携帯電話機などのような組み込みシステムとしてもよい。
Note that the
また、ノード101、またはノード201などは、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、CORBA、DCOM、SOAPなどに基づいて、複数のコンピュータシステムに分散されたノード101、またはノード201などの各機能間でメッセージ通信が行われるとしてもよい。
In addition, the
また、ノード101、またはノード201などは、Webサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともコンポーネント実行処理部120、効用情報生成処理部130、代替コンポーネント探索処理部140、効用情報伝達処理部150、オーバレイネットワーク構築処理部210などがWebサーバにおいて実現されるとしてもよい。また、コンポーネントデータベース112、ノードデータベース113、リンクデータベース114などがデータベースサーバにおいて実現されるとしてもよい。さらに、WebサーバからデータベースサーバへのアクセスにODBC(Open DataBase Connectivity)やJDBC(Java(登録商標) DataBase Connectivity)などを用いるとしてもよい。
Further, the
また、RFC(Request for Comments)2246において規定されているTLS(Transport Layer Security)に基づいて、ノード101、またはノード201などと各アプリケーションサーバ間とでセキュリティ通信が行われるとしてもよい。また、XML暗号化(http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
Further, based on TLS (Transport Layer Security) defined in RFC (Request for Comments) 2246, security communication may be performed between the
なお、アプリケーションサーバ106は、CPU、RAM、ROM、HDD、ネットワークアダプタなどを備えるとしてもよい。さらに、HDDなどに、アプリケーションサーバ106を制御するプログラム(以下、「アプリケーションサーバ制御プログラム」と呼称する。)がインストールされており、アプリケーションサーバ制御プログラムが実行されることによって、アプリケーションサーバ106の各機能が実現されるとしてもよい。
The
なお、アプリケーションサーバ106は、デジタルビデオカメラ、デジタルレコーダ、デジタルテレビ、ゲーム機、ホームサーバ、IP電話機、携帯電話機などのような組み込みシステムとしてもよい。
Note that the
また、アプリケーションサーバ106は、複数のコンピュータシステムによって構成されているとしてもよい。この場合において、CORBA、DCOM、SOAPなどに基づいて、複数のコンピュータシステムに分散されたアプリケーションサーバ106の各機能間でメッセージ通信が行われるとしてもよい。
The
また、アプリケーションサーバ106は、Webサーバとデータベースサーバとから構成されているとしてもよい。この場合において、少なくともサービス処理部170、探索処理部180などがWebサーバにおいて実現されるとしてもよい。また、実行対象コンポーネントデータベース161がデータベースサーバにおいて実現されるとしてもよい。さらに、WEbサーバからデータベースサーバへのアクセスにODBCやJDBCなどを用いるとしてもよい。
Further, the
また、RFC2246において規定されているTLS(Transport Layer Security)に基づいて、アプリケーションサーバ106と各ユーザ端末間とでセキュリティ通信が行われるとしてもよい。また、XML暗号化(http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)に基づいて、データを暗号化し、暗号化したデータを送受信することで、セキュリティ通信が行われるとしてもよい。
Further, security communication may be performed between the
なお、ノード制御プログラムやアプリケーションサーバ制御プログラムは、コンピュータシステム、組み込みシステムなどのようなハードウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。これによって、ノード101、またはノード201などの各機能やアプリケーションサーバ106の各機能を他のハードウェアシステムに実現することができる。ここで、コンピュータシステム読み取り可能な記録媒体として、光学記録媒体(例えば、CD−ROMなど。)、磁気記録媒体(例えば、ハードディスクなど。)、光磁気記録媒体(例えば、MOなど。)、半導体メモリ(例えば、メモリカードなど。)などがある。
Note that the node control program and the application server control program may be recorded on a recording medium readable by a hardware system such as a computer system or an embedded system. Furthermore, the program may be read and executed by another hardware system via the recording medium. Thereby, each function of the
また、ノード制御プログラムやアプリケーションサーバ制御プログラムは、インターネット、ローカルエリアネットワークなどのようなネットワークに接続されているハードウェアシステムに保持されているとしてもよい。さらに、ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとしてもよい。これによって、ノード101、またはノード201の各機能やアプリケーションサーバ106の各機能を他のハードウェアシステムに実現することができる。ここで、ネットワークとして、地上放送網、衛星放送網、PLC(Power Line Communication)、移動電話網、有線通信網(例えば、IEEE802.3など。)、無線通信網(例えば、IEEE802.11など。)がある。
Further, the node control program and the application server control program may be held in a hardware system connected to a network such as the Internet or a local area network. Furthermore, it may be downloaded to another hardware system via a network and executed. Thereby, each function of the
(付録1)
以下、Webサービスと分散Webサービスとについての説明を補足する。なお、Webサービスには、主に、XML、SOAP(Simple Object Access Protocol)、WSDL(Web Services Description Language)、UDDI(Universal Description,Discovery,and Integration)のような要素技術が存在する。しかし、これらの要素技術については、広く知れ渡っていることから、ここでは、説明を省略する。
(Appendix 1)
In the following, supplementary explanations of Web services and distributed Web services will be provided. Web services mainly include elemental technologies such as XML, SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language), and UDDI (Universal Description, Discovery, and Integration). However, since these elemental technologies are widely known, description thereof is omitted here.
<Webサービス>
Webサービスとは、URI(Uniform Resource Identifier)で識別でき、インターフェースとバインディングとがXML(eXtensible Markup Language)で定義されて記述されているソフトウェアシステムである。インターネットプロトコルによって伝送されるXMLベースのメッセージを利用することによって、他のソフトウェアシステムとの間で相互通信することができるソフトウェアシステムである。また、SOA(Service Oriented Architecture)を実現する重要な技術の1つでもある。
<Web service>
A web service is a software system that can be identified by a URI (Uniform Resource Identifier), and whose interface and binding are defined and described in XML (eXtensible Markup Language). It is a software system that can communicate with other software systems by using XML-based messages transmitted by the Internet protocol. It is also one of the important technologies for realizing SOA (Service Oriented Architecture).
Webサービスでは、サービスの提供者がサービスディレクトリにサービスを登録して公開する。そして、サービスの利用者がサービスを受けるときに、アプリケーションサーバがサービスディレクトリを検索し、サービスの場所を取得し、サービスを提供しているサーバに接続する。これに対して、従来のInternetを利用したサービスでは、サービスの利用者がWebブラウザなどを使用してサービスを探索し、探索したサービスを利用する。 In the Web service, a service provider registers and publishes a service in a service directory. When the service user receives the service, the application server searches the service directory, obtains the location of the service, and connects to the server providing the service. On the other hand, in a service using the conventional Internet, a service user searches for a service using a Web browser or the like, and uses the searched service.
SOAとは、ハードウェアやOS、言語に依存せず、共通のインターフェースを介して、自由に、連携したり利用したりすることができるシステムの構造を既定するソフトウェアアーキテクチャのことである。 The SOA is a software architecture that defines a system structure that can be freely linked and used through a common interface without depending on hardware, OS, or language.
SOAでは、情報システム全体をサービスの集まりとしてとらえる。 In the SOA, the entire information system is regarded as a collection of services.
SOAを実現する従来の方法として、OMG(Object Management Group)のCORBA(Common Object Request Broker Architecture)やMicrosoftのDCOM(Distributed Component Object Model)が挙げられる。これらの方法では、コンポーネントが密結合しているので、交換や改良が困難である。 Conventional methods for realizing the SOA include CORBA (Common Object Request Broker Architecture) of OMG (Object Management Group) and DCOM (Distributed Component Object Model) of Microsoft. These methods are difficult to replace and improve because the components are tightly coupled.
これに対して、Webサービスでは、アーキテクチャが疎結合であるので、コンポーネント同士が、互いに連携しても、互いに依存することが少なく、それぞれのコンポーネントの交換や改良が容易であり、変化に対して順応性が高い。さらに、既存のサービスをコンポーネントとして利用することができ、コンポーネントを組み合わせてサービスを構築することも可能である。このため、従来のように自身でサービスを一から構築する必要がなく、サービスを構築するために掛かる費用を削減することができる。また、既存のWebサービスよりも、さらに、高度なサービスを構築することも容易である。 On the other hand, since the architecture of Web services is loosely coupled, even if components cooperate with each other, they are less dependent on each other, and each component can be easily exchanged and improved. High adaptability. Furthermore, an existing service can be used as a component, and a service can be constructed by combining components. For this reason, it is not necessary to construct a service from scratch as in the prior art, and the cost required for constructing the service can be reduced. It is also easier to build a more advanced service than existing Web services.
<分散Webサービス>
一方、分散Webサービスとは、正式に定義されているものではない。そこで、ここでは、特に、コンポーネントが1種につき1つであるものをWebサービスとし、コンポーネント1種につき複数の複製コンポーネントが存在するものを分散Webサービスとする。
<Distributed Web Service>
On the other hand, a distributed Web service is not officially defined. Therefore, in this case, in particular, a component having one component per type is a Web service, and a component having a plurality of duplicate components per component is a distributed Web service.
Webサービスでは、同一機能を有するコンポーネントが存在しない。このため、同一のコンポーネントを利用するサービスの提供者が増加することで、コンポーネントにかかる負荷が増大する。コンポーネントを利用したサービスの処理速度の低下などにより、サービスの利用者の満足度が低下する。 In the Web service, there are no components having the same function. For this reason, the load concerning a component increases because the provider of the service using the same component increases. The user satisfaction of the service decreases due to a decrease in the processing speed of the service using the component.
これに対して、分散Webサービスでは、コンポーネントを複製して分散配置しているので、同一の機能を有するコンポーネントが複数存在する。それらのコンポーネントを利用してサービスを提供することで、1つのコンポーネントにかかる負荷を分散することができる。そのため、特定機能のコンポーネントを利用したサービスを提供する時でも、サービスの処理速度の低下を抑えることができ、サービスの利用者に対して満足のいくサービスを提供することができる。 On the other hand, in the distributed Web service, since components are duplicated and distributed, there are a plurality of components having the same function. By providing services using these components, the load on one component can be distributed. Therefore, even when a service using a component having a specific function is provided, a decrease in service processing speed can be suppressed, and a satisfactory service can be provided to service users.
Webサービスでは、あるコンポーネントに障害が発生すると、複数のアプリケーションサーバが当該コンポーネントを利用したサービスの提供を停止してしまう。 In the Web service, when a failure occurs in a certain component, a plurality of application servers stop providing services using the component.
これに対して、分散Webサービスでは、障害が発生したコンポーネントと同一の機能を有するコンポーネントが存在する。このため、分散されて配置されている複数のコンポーネントの中で同一の機能を有するコンポーネントを代替コンポーネントとして探し出し、その代替コンポーネントにコンポーネントを瞬時に切り替えることでサービスを再開することが望まれる。 On the other hand, in the distributed Web service, there is a component having the same function as the component in which the failure has occurred. Therefore, it is desirable to restart a service by searching for a component having the same function among a plurality of components arranged in a distributed manner as an alternative component and instantaneously switching the component to the alternative component.
(付録2)
以下、背景技術で説明した代替コンポーネント探索についての説明を補足する。
(Appendix 2)
In the following, the explanation of the alternative component search described in the background art will be supplemented.
<代替コンポーネント探索>
分散Webサービスでは、Webサービスで使用されているコンポーネントが使用できなくなったときに、代替となるコンポーネントを発見し、その代替コンポーネントを使用してサービスの提供を続けることが可能である。しかし、その探索手法については、規定されていない。そこで、ここでは、探索手法に関してリアクティブな探索手法とプロアクティブな探索手法について説明する。
<Search alternative components>
In the distributed Web service, when a component used in the Web service becomes unusable, it is possible to find an alternative component and continue providing the service using the alternative component. However, the search method is not defined. Therefore, here, a reactive search method and a proactive search method will be described.
<リアクティブな探索手法>
リアクティブな探索手法とは、コンポーネントに障害が発生してから代替となるコンポーネントを探索する手法である。
<Reactive search method>
The reactive search method is a method of searching for an alternative component after a failure occurs in the component.
リアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報を保持していない。このため、障害発生時における代替コンポーネントの探索には、フラッディングを使用する。フラッディングは、同一メッセージを順次複製してネットワーク全体に伝達する手法である。このため、効用の高い代替コンポーネントを確実に発見することが可能である。しかし、メッセージ数が増加するため、ネットワークへの負荷が大きくなる。従って、リアクティブな探索手法では、障害が発生するまでは、メッセージのやり取りを行わないので、ネットワークに負荷をかけない。しかし、障害が発生すると、フラッディングによる多数の探索メッセージの交換を行うことで、ネットワークへの負荷が短期間で増大する。また、障害が発生してから探索を開始するため、代替コンポーネントを発見するまでに時間がかかる。 The reactive search method does not hold the position information of the alternative component in advance. For this reason, flooding is used to search for an alternative component when a failure occurs. Flooding is a technique for sequentially copying the same message and transmitting it to the entire network. For this reason, it is possible to surely find a substitute component with high utility. However, since the number of messages increases, the load on the network increases. Therefore, in the reactive search method, messages are not exchanged until a failure occurs, so that no load is applied to the network. However, when a failure occurs, the load on the network increases in a short period of time by exchanging a large number of search messages by flooding. In addition, since the search is started after a failure occurs, it takes time to find an alternative component.
フラッディングによる代替コンポーネントの探索手法には、大きく分けて2つの手法が考えられる。1つ目は、First−Replyであり、2つ目は、Best−Replyである。 There are roughly two methods for searching for alternative components by flooding. The first is First-Reply, and the second is Best-Reply.
<First−Reply>
First−Replyとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、最初に発見したコンポーネントを代替コンポーネントとする手法である。
<First-Reply>
First-Reply is a method in which a component first found among a plurality of components having the same function as a component in which a failure has occurred is used as an alternative component.
First−Replyでは、最初に発見した代替候補であるコンポーネントを利用するため、探索自体はすぐに終了し、探索時間を短縮することができる。サービス再開までの遅延は短くて済む。しかし、最初に発見された代替コンポーネントよりも効用の高いコンポーネントがネットワーク上に存在する場合でも、それを選択することができない。また、効用の低いコンポーネントは、他のアプリケーションサーバに使用されている可能性があり、最悪の場合は、新たに当該コンポーネントを利用するアプリケーションサーバがそのコンポーネントを使用することで過負荷によりサービスを受けられなくなる可能性がある。 In First-Reply, since the component that is the first alternative candidate discovered is used, the search itself is completed immediately, and the search time can be shortened. The delay before service restart is short. However, even if there is a component on the network that is more effective than the first discovered alternative component, it cannot be selected. In addition, a component with low utility may be used by another application server. In the worst case, an application server that newly uses the component receives the service due to overload by using the component. It may not be possible.
<Best Reply>
Best−Replyとは、障害が発生したコンポーネントと同一機能を有する複数のコンポーネントの中で、一定時間内に返答があって効用の高いコンポーネントを代替コンポーネントとする手法である。
<Best Reply>
Best-Reply is a technique in which a component that has a response within a predetermined time and has high utility among a plurality of components having the same function as the component in which a failure has occurred is used as a substitute component.
Best−Replyでは、フラッディングにより代替コンポーネントの候補を探索していき、アプリケーションサーバに一定時間内に返答のあった代替候補コンポーネントの中から効用が高いコンポーネントを選択することで効用の高いコンポーネントを利用できる手法である。ここでは、全てのノードに代替コンポーネント候補があるかどうか調べられるように十分な時間代替候補コンポーネントからの返答を待つものとする。また、返答を待つ時間(返答待機時間)が長すぎると最初に得た代替候補コンポーネントの効用の情報が返答してから返答待機時間の間に別のアプリケーションサーバが、そのコンポーネントを利用することで変化する可能性があり、情報の信頼性が低下するという短所も持っている。このため、大規模なネットワークにおいて全ての代替候補コンポーネントからの返答を待つというのは適しておらず、どこに代替候補コンポーネントがあるか解らないときに返答待機時間の設定することも困難である。しかし、返答待機時間をメッセージの生存時間とすることで探索終了時にネットワーク上に探索メッセージが残ることはない。 Best-Reply searches for alternative component candidates by flooding, and can select high-utility components from the alternative candidate components that have responded to the application server within a certain period of time. It is a technique. Here, it is assumed that a response from the alternative candidate component is waited for a sufficient period of time so that it can be checked whether there are alternative component candidates in all nodes. Also, if the time for waiting for a response (response waiting time) is too long, another application server uses the component during the response waiting time after the utility information of the alternative candidate component obtained first is returned. It has the disadvantages that it may change and the reliability of information will be reduced. For this reason, it is not suitable to wait for responses from all the alternative candidate components in a large-scale network, and it is difficult to set a response waiting time when it is not known where the alternative candidate components are. However, the search message does not remain on the network at the end of the search by setting the message waiting time as the response waiting time.
<プロアクティブな代替コンポーネント探索手法>
プロアクティブな探索手法とは、障害が発生する前にどのコンポーネントを使用するか決定しておく手法である。プロアクティブな探索手法では、あらかじめ代替コンポーネントの位置情報や効用情報をデータベース上に保持する。また、常にメッセージの交換を行うことにより情報を更新し、情報の信頼性の低下を抑えている。
<Proactive alternative component search method>
The proactive search method is a method for determining which component to use before a failure occurs. In the proactive search method, the position information and utility information of alternative components are stored in the database in advance. In addition, information is updated by constantly exchanging messages, and a decrease in reliability of information is suppressed.
プロアクティブな探索手法では、障害発生時に即座に最適な代替となるコンポーネントの探索が可能である。しかし、常にメッセージの交換を行っているので、ネットワークに定常的な負荷を与えることになる。 In the proactive search method, it is possible to search for an optimal substitute component immediately when a failure occurs. However, since messages are always exchanged, a constant load is applied to the network.
なお、データベース管理の手法としては、全てのデータを1箇所のデータベースで一括管理する統合データベース管理と、全てのデータを分散配置された複数のデータベースで分割して管理する分散データベース管理とが考えられる。 Note that database management methods include integrated database management in which all data is collectively managed in one database, and distributed database management in which all data is divided and managed in a plurality of distributed databases. .
<統合データベース管理>
統合データベース管理とは、全てのコンポーネントの位置や効用等の情報を1箇所のデータベースにおいて一括管理する手法である。この手法を用いることでデータベースにアクセスすれば即座に最適なデータベースの位置情報を取得することができる。
<Integrated database management>
Integrated database management is a technique for collectively managing information such as the positions and utilities of all components in one database. By using this method, if the database is accessed, the optimum location information of the database can be obtained immediately.
しかし、統合データベースでは、大規模なネットワークにおいては、管理する情報の量が膨大になる。また、動的に変化する情報をリアルタイムに把握するには多数の制御メッセージを頻繁に交換する必要があり、ネットワーク上のトラヒックが増大する。このため、大規模なネットワークにおいて、動的な情報を常に把握しておくことは困難である。また、全ての情報をデータベースで一括管理しているため、データベースへの問い合わせが集中することで、データベースが過負荷になり、情報の提供が不可能になる可能性がある。このような場合において、統合データベース管理では、代替コンポーネントの探索が不可能になる。さらに、障害が発生したコンポーネントを利用していたアプリケーションサーバは、サービスを停止しなければならなくなる。 However, in the integrated database, the amount of information to be managed becomes enormous in a large-scale network. In addition, in order to grasp dynamically changing information in real time, it is necessary to frequently exchange a large number of control messages, and traffic on the network increases. For this reason, it is difficult to always grasp dynamic information in a large-scale network. In addition, since all information is collectively managed in the database, the inquiries to the database are concentrated, which may overload the database and make it impossible to provide information. In such a case, integrated database management makes it impossible to search for alternative components. Furthermore, the application server that has used the component in which the failure has occurred must stop the service.
<分散データベース管理>
分散データベース管理とは、統合データベースで管理されていた情報を複数の場所に分散配置された複数のデータベースに分割して管理する手法である。
<Distributed database management>
Distributed database management is a technique for managing information that has been managed in an integrated database by dividing it into a plurality of databases that are distributed in a plurality of locations.
分散データベース管理では、全てのデータを管理しているわけではない。このため、統合データベースと比較して必ずしも最適な代替コンポーネントの情報が得られるとは限らない。しかし、統合データベースにおいて存在したデータベースの障害に対する脆弱性を緩和することができ、周辺のネットワークのトラヒックの増加を抑えることができる。また、分散データベース管理では、各ノードが全ての代替コンポーネントの情報を保持する必要がないため、統合データベース管理に比べて、制御メッセージの削減が可能となる。ただし、分散データベース管理ではデータベースの場所とそのデータベースに管理させる情報の種類や数が重要な要素になる。このため、それらの要素を適切に決定することで、探索に要する時間を短縮し、代替コンポーネントを効率よく探索することが可能となると考えられる。 In distributed database management, not all data is managed. For this reason, the information of the optimal alternative component is not necessarily obtained as compared with the integrated database. However, the vulnerability to the failure of the database existing in the integrated database can be alleviated, and an increase in traffic in the surrounding network can be suppressed. In distributed database management, since each node does not need to hold information on all alternative components, control messages can be reduced compared to integrated database management. However, in distributed database management, the location of the database and the type and number of information managed by the database are important factors. For this reason, it is considered that by appropriately determining these elements, it is possible to reduce the time required for searching and to efficiently search for alternative components.
本発明は、複数のコンポーネントを利用したWebサービスを提供するWebサービスシステムなどとして、特に、Webサービスで利用しているコンポーネントの代替コンポーネントをオーバレイネットワークに分散されて配置されている複数のコンポーネントの中から探索するWebサービスシステムなどとして、利用することができる。 The present invention is a Web service system that provides a Web service that uses a plurality of components, and in particular, among the plurality of components that are distributed and arranged in an overlay network as alternative components for the components that are used in the Web service. It can be used as a Web service system that searches from the Internet.
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 リンク数情報照会応答送信部
100 Web service systems 101 to 105, 201 Node 106 Application server 111 Component holding unit 112 Component database 113 Node database 114 Link database 115 Local node utility information storage unit 116 Other node utility information storage unit 120 Component execution processing unit 121 Component execution unit 122 Execution request reception unit 123 Execution response transmission unit 130 Utility information generation processing unit 131 Measurement unit 132 Utility information generation unit 140 Alternative component search processing unit 141 Alternative component search unit 142 Search target selection unit 143 Utility information writing unit 144 Search request reception unit 145 Search response transmission unit 146 Utility information inquiry request transmission unit 147 Utility information inquiry response reception unit 150 Utility information transmission processing unit 151 Utility information reading unit 152 Information query request receiving unit 153 Utility information query response sending unit 161 Execution target component database 162 Execution result storage unit 170 Service processing unit 171 Execution target selection unit 172 Execution result writing unit 173 Service request receiving unit 174 Service response sending unit 175 Execution Request transmission unit 176 Execution response reception unit 180 Search processing unit 181 Component information registration unit 182 Search request transmission unit 183 Search response reception unit 210 Overlay network construction processing unit 211 MLN storage unit 212 LLN storage unit 213 Link number information storage unit 214 Number of links Rank storage unit 215 Network distance rank storage unit 216 Expected value calculation unit 217 Overlay network construction unit 231 Deletion target selection unit 232 Deletion target link source selection unit 233 Link source component selection unit 234 Deletion target phosphorus Destination selection unit 241 link source deletion unit 242 link destination deletion unit 243 link deletion confirmation unit 244 link deletion request transmission unit 245 link deletion response reception unit 246 link deletion request reception unit 247 link deletion response transmission unit 251 addition target selection unit 252 addition Target link destination selection unit 253 Link destination node selection unit 261 Link source addition unit 262 Link destination addition unit 263 Link addition confirmation unit 264 Link addition request transmission unit 265 Link addition response reception unit 266 Link addition request reception unit 267 Link addition response transmission unit 271 Link number information reading unit 272 Link number information writing unit 273 Link number information inquiry request transmission unit 274 Link number information inquiry response reception unit 275 Link number information inquiry request reception unit 276 Link number information inquiry response transmission unit
Claims (3)
前記複数のノードの各々は、
自ノードに配置されている1以上のコンポーネントと、他ノードに配置されている1以上のコンポーネントとの間で形成された論理ネットワークのリンクを示すリンク情報が登録されているリンクデータベースと、
前記Webサービスで利用されている所定のコンポーネントと同一の機能を有するコンポーネントの探索について前記アプリケーションサーバから要求されると、前記リンクデータベースに登録されているリンク情報に基づいて、前記論理ネットワークを形成する1以上のコンポーネントを探索し、前記所定のコンポーネントの代わりとして最適なコンポーネントを選出する代替コンポーネント探索処理手段とを備える
ことを特徴とするWebサービスシステム。 A web service system comprising: an application server that provides a web service using a plurality of components; and a plurality of nodes that are connected to the application server via a physical network and in which the plurality of components are distributed. Because
Each of the plurality of nodes is
A link database in which link information indicating a link of a logical network formed between one or more components arranged in the own node and one or more components arranged in another node is registered;
When requested by the application server to search for a component having the same function as a predetermined component used in the Web service, the logical network is formed based on link information registered in the link database. An alternative component search processing unit that searches for one or more components and selects an optimum component instead of the predetermined component. A Web service system, comprising:
自ノードに配置されている1以上のコンポーネントの中で、前記Webサービスで利用されているコンポーネントを実行する実行処理手段と、
前記実行処理手段で実行されているコンポーネントの処理能力を計測し、計測して得られた結果を使用して、コンポーネントの実行によって得られる効用の指標となる効用情報を生成する効用情報生成処理手段とを備え、
前記複数のノードの中で、前記最適なコンポーネントを探索するノードを探索代理ノードとし、前記所定のコンポーネントと同一の機能を有するコンポーネントが配置されているノードを探索対象ノードとした場合において、前記探索代理ノードにおける前記代替コンポーネント探索処理手段は、前記探索対象ノードにおける前記効用情報生成処理手段で生成された効用情報に基づいて、前記効用が最も高いコンポーネントを前記最適なコンポーネントとして選出する
ことを特徴とする請求項1に記載のWebサービスシステム。 Each of the plurality of nodes is
Execution processing means for executing a component used in the Web service among one or more components arranged in the own node;
Utility information generation processing means for measuring the processing capability of a component being executed by the execution processing means and generating utility information that is an index of utility obtained by executing the component using a result obtained by measurement. And
In the case where a node that searches for the optimum component among the plurality of nodes is a search proxy node, and a node in which a component having the same function as the predetermined component is arranged is a search target node, the search The substitute component search processing means in the proxy node selects the component having the highest utility as the optimum component based on the utility information generated by the utility information generation processing means in the search target node. The web service system according to claim 1.
ことを特徴とする請求項1に記載のWebサービスシステム。 Each of the plurality of nodes includes a first component arranged in its own node and a second component having the same function as the first component among one or more components arranged in other nodes. The web service system according to claim 1, further comprising: an overlay network construction processing unit that forms a logical network with the link database and registers link information indicating a link of the formed logical network in the link database.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007180874A JP5008075B2 (en) | 2007-07-10 | 2007-07-10 | Web service system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007180874A JP5008075B2 (en) | 2007-07-10 | 2007-07-10 | Web service system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009020574A JP2009020574A (en) | 2009-01-29 |
JP5008075B2 true JP5008075B2 (en) | 2012-08-22 |
Family
ID=40360187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007180874A Expired - Fee Related JP5008075B2 (en) | 2007-07-10 | 2007-07-10 | Web service system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5008075B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11250021A (en) * | 1998-03-05 | 1999-09-17 | Nippon Telegr & Teleph Corp <Ntt> | Distribution processing method and its system on network, and medium recorded with distribution processing program |
JP2002007368A (en) * | 2000-06-23 | 2002-01-11 | Mitsubishi Electric Corp | Server, system and method for managing job assignment for distributed processing system |
WO2005107218A1 (en) * | 2004-04-30 | 2005-11-10 | Ntt Docomo, Inc. | Zone-based peer-to-peer |
US7451347B2 (en) * | 2004-10-08 | 2008-11-11 | Microsoft Corporation | Failover scopes for nodes of a computer cluster |
JP2007164264A (en) * | 2005-12-09 | 2007-06-28 | Fuji Xerox Co Ltd | Load distribution program, load distribution device and service system |
-
2007
- 2007-07-10 JP JP2007180874A patent/JP5008075B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009020574A (en) | 2009-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7174382B2 (en) | Interest-based connections in peer-to-peer networks | |
JP4806203B2 (en) | Routing in peer-to-peer networks | |
US7644182B2 (en) | Reconfiguring a multicast tree | |
KR101438982B1 (en) | System and method of utilizing a framework for information routing in large-scale distributed systems using swarm intelligence | |
US6748416B2 (en) | Client-side method and apparatus for improving the availability and performance of network mediated services | |
JP4679584B2 (en) | Routing service queries in overlay networks | |
Friedman et al. | Gossiping on MANETs: the Beauty and the Beast | |
CN111464611A (en) | Method for efficiently accessing service between fixed cloud and edge node in dynamic complex scene | |
WO2003026220A1 (en) | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof | |
WO2010077379A1 (en) | Systems and methods for peer-to-peer bandwidth allocation | |
Huang et al. | Network-aware P2P file sharing over the wireless mobile networks | |
JP2004509381A (en) | Self-published network directory | |
JP2009193250A (en) | Distributed directory server, distributed directory system, distributed directory method, and program | |
Tigelaar et al. | Peer-to-peer information retrieval: An overview | |
Sacha et al. | Decentralising a service-oriented architecture | |
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 | |
JP5008075B2 (en) | Web service system | |
CN102017568B (en) | For sending the system of the autonomous content play | |
JP4146373B2 (en) | Service selection method and service selection system in dynamic network | |
JP2004511835A (en) | Active Directory for content objects | |
CN115883657A (en) | Cloud disk service accelerated scheduling method and system | |
Shukla et al. | Towards software defined low maintenance structured peer-to-peer overlays | |
JP2008521083A (en) | Configuration providing method, server, software, apparatus and signal |
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 |