JP5979223B2 - 分散処理におけるサービス検索方法、プログラム、およびサーバ装置 - Google Patents

分散処理におけるサービス検索方法、プログラム、およびサーバ装置 Download PDF

Info

Publication number
JP5979223B2
JP5979223B2 JP2014507163A JP2014507163A JP5979223B2 JP 5979223 B2 JP5979223 B2 JP 5979223B2 JP 2014507163 A JP2014507163 A JP 2014507163A JP 2014507163 A JP2014507163 A JP 2014507163A JP 5979223 B2 JP5979223 B2 JP 5979223B2
Authority
JP
Japan
Prior art keywords
information
server
service
search
service search
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
Application number
JP2014507163A
Other languages
English (en)
Other versions
JPWO2013145197A1 (ja
Inventor
山本 哲
哲 山本
和也 川島
和也 川島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014507163A priority Critical patent/JP5979223B2/ja
Publication of JPWO2013145197A1 publication Critical patent/JPWO2013145197A1/ja
Application granted granted Critical
Publication of JP5979223B2 publication Critical patent/JP5979223B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Description

分散処理システムにおけるサービス検索方法、プログラム、およびサーバ装置に関する。
複数のサーバがネットワークによって接続された分散処理システムにおいて、クライアントからあるサービスの検索依頼が発生した場合に、複数のサーバから一つ以上のサーバを選択して検索を実行する必要がある。
このような検索を実行するための従来技術として、次のようなものがある。クライアントは、特定のサーバに対して検索を要求し、その特定のサーバが他のサーバの状況を検索して要求に合うサーバを選択し、クライアントに回答する。このとき、特定のサーバは要求にあったサーバが受付けが可能か問合せを行い、受付け不可ならば他のサーバを選択し受付け可能となるまで問い合わせを続ける。
しかし、この従来技術では、ネットワーク上のクライアントからの検索要求の数が増加したときに、それらの検索要求を受け付ける特定のサーバの負荷が増大するという問題点を有していた。
また、他の従来技術として確実性高く連携情報を伝達し効率的に連携処理を行うことができるサービス処理装置及び連携処理システムを提供するために、各サービスを連携させるための指示書を各サービスを提供するサービス処理装置間で順次伝達していく。これにより、各サービス処理装置で指示書に基づいたサービスが順次実行されて一連のサービスの連携処理が行われるシステムが知られている(例えば特許文献1)。伝達される指示書には、各サービス毎に、各サービスを行うサービス処理装置を指定するための属性情報が記述される。サービス処理装置は、指示書を次のサービス処理装置に伝達するにあたり、受信した指示書内の次のサービスを行うサービス処理装置を指定するための属性情報に基づいてサービス処理装置を検索し、送信先を決定する。サービス処理装置は、該決定された送信先に指示書を送信する。
しかし、この従来技術は、指示書に基づいて複数のサービス処理装置が連携する技術を開示しているものであって、サービス処理装置はやはり検索サーバという特定のサーバに問合せをしながら連携しなければならない。このため、この従来技術でも、特定のサーバの負荷が増大するという問題点を有していた。
特開2005−228252号公報
そこで、本発明は、特定のサーバへの負荷の集中を回避することを目的とする。
態様の一例では、サーバの属性情報を他のサーバとの間で交換することにより経路情報を生成し、サービス検索依頼元からサービス検索依頼を受信したときに、前記サーバの属性情報を参照することにより、前記サーバが前記サービス検索依頼におけるサービス検索条件に適合するか否かを判定し、適合しないと判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サーバの情報を前記検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送し、適合すると判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サービス検索条件が指定するサーバの数を1減らすとともに前記サーバの情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送することを備える。
サービス検索について、特定ノードに集中して検索する必要がなく負荷分散が可能になる。検索時点で適切なサービス実施ノードを決定することが可能となる。
本発明の実施形態におけるサーバノードの構成図である。 従来技術の動作を説明する図である。 本実施形態における属性情報の交換動作を説明する図である。 Helloメッセージのデータ構成例を示す図である。 属性情報DBのデータ構成例を示す図である。 経路情報DBのデータ構成例を示す図である。 本実施形態におけるサービス検索依頼メッセージの転送動作を説明する図である。 サービス検索依頼メッセージのデータ構成例を示す図である。 検索判定処理の制御動作例を示すフローチャートである。 検索結果通知処理の制御動作例を示すフローチャートである。 検索結果転送処理の制御動作例を示すフローチャートである。 経路情報通知処理の制御動作例を示すフローチャートである。 経路情報生成処理の制御動作例を示すフローチャートである。 Helloメッセージのデータフォーマット例を示す図である。 サービス検索依頼メッセージのデータフォーマット例を示す図である。 検索結果メッセージのデータフォーマット例を示す図である。 本実施形態のシステムを実現可能なハードウェアシステムの構成図である。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、本発明の実施形態による互いに複数台がネットワークによって接続されるサービスを行なうサーバ装置であるサーバノード100の構成図である。
属性情報データベース(以下、「属性情報DB」と呼ぶ)101は、自サーバノード100に関するサービス情報とリソース情報を含む属性情報を蓄積する。
経路情報通知部102は、定期的に、属性情報DB101を参照することにより、自サーバノード100に関するサービス情報とリソース情報を含む例えばHelloメッセージ113を生成する。そして、経路情報通知部102は、このHelloメッセージ113を、メッセージ送信部103を介して、ネットワークに接続される他のサーバノード100に例えば定期的に通知する。
メッセージ受信部104は、他のサーバノード100からのメッセージを受信する。メッセージ振分け部105は、メッセージ受信部104が受信したメッセージのうち、Helloメッセージ113を経路情報生成部106に、検索依頼メッセージ114を検索判定部108にそれぞれ振り分ける。
経路情報生成部106は、メッセージ受信部104およびメッセージ振分け部105を介して受信された他サーバノード100からのHelloメッセージ113に含まれる属性情報に基づいて、経路情報を生成する。このとき例えば、経路情報生成部106は、属性情報に基づいて計算したサービス検索の優先度を経路情報に付加する。そして、経路情報生成部106は、生成した経路情報を含むように、経路情報データベース(以下、「経路情報DB」と呼ぶ)107を更新する。すなわち、経路情報DB107は、他サーバノード100との間で交換した属性情報に基づいて経路情報生成部106によって生成された経路情報を蓄積するデータベースである。
検索判定部108は、メッセージ受信部104およびメッセージ振分け部105を介してクライアントノードまたは他サーバノード100からサービス検索依頼メッセージ114を受信したときに、以下の動作を実行する。検索判定部108は、属性情報DB101に蓄積されている自身の属性情報を参照することにより、自身がサービス検索依頼メッセージ114に格納されているサービス検索条件にマッチするか否かを判定する。サービス検索条件としては例えば、
サービスID=“分散バッチサービス”
CPU使用率<=20%
必要数=5
のような指定がなされる。
検索転送部109は、検索判定部108でマッチが成立しないと判定した場合に、サービス検索依頼メッセージ114に付加されている検索履歴情報に検索実績がないサーバノード100を、経路情報DB107に蓄積されている経路情報に基づいて選択する。このとき例えば、検索転送部109は、経路情報に含まれる優先度が高いサーバノード100を選択する。そして、検索転送部109は、自身のサーバノード100の情報を検索履歴情報として付加したサービス検索依頼メッセージ114を、メッセージ送信部103を介して、選択したサーバノード100に転送する。
検索結果通知部110は、検索判定部108でマッチが成立すると判定した場合に、次の処理を実行する。検索結果通知部110は、自身のサーバノード100が生成した経路情報を基に、サービス検索依頼メッセージ114に対する応答である検索結果メッセージ115を、メッセージ送信部103を介して、サービス検索依頼メッセージ114の依頼元へ通知する。検索結果メッセージ115によって、検索結果、条件を満たすサーバのアドレス(URI等)が返却される。前述のサービス検索依頼メッセージ114中のサービス検索条件として、例えば必要数=5が設定されていれば、検索結果は5回受けとることになる。
サービス登録部111は、属性情報DB101が蓄積する自サーバノード100のサービス情報の登録または削除を行う。ヒューマンインタフェースによって人間が手動でサービス登録を行ったり、マシン起動時のバッチ処理(APIやコマンド)等で登録されてよい。
ノード情報監視部112は、自身のサーバのリソースを監視し、監視の結果に基づいて属性情報DB101が蓄積する自サーバノード100のサービス情報及びリソース情報を更新する。
以上の本実施形態の構成により、例えばクライアントノードからのサービス検索依頼メッセージ114は、ネットワークによって接続された複数のサーバノード100のうちの任意のサーバノード100にて受信される。そして、受信したサービス検索依頼メッセージ114が自ノードで処理できない場合には、サービス検索依頼メッセージ114を、経路情報DB107から決定される他のサーバノード100に転送する。いずれかのサーバノード100にて、サービス検索依頼メッセージ114を自ノードで処理できる場合は、検索処理を実行し、その検索結果を、検索結果メッセージ115に格納して、サービス検索依頼メッセージ114の依頼元の例えばクライアントノードに通知する。このような制御動作により、サービス検索について、特定ノードに集中して検索する必要がなく負荷分散が可能になる。あらかじめ相互に交換している経路情報に基づいて、検索時点で最適なサービス実施ノードを決定することが可能となる。
図1の構成を有する本発明の実施形態の動作について、以下に詳細に説明する。
まず、本実施形態との対比を明確にするために、従来のサービス検索方法の例について、図2を用いて説明する。図2において、C1はクライアントノード、Si(i=1〜4)はサーバノード、SXはサービス検索サーバノードを示す。図2の構成は、一つのサブネット201内で、これらの各ノードが相互に接続された構成を有する。以下の(1)〜(4)の処理は、それぞれ図2中の(1)〜(4)の処理の矢印と対応している。
クライアントノードC1から検索依頼を受信したサービス検索サーバノードSXが、検索を行い、クライアントノードC1に結果を返す仕組みになっている。
(1)サービス検索サーバノードSXに各サーバノードの情報(リソース情報、ハードスペック、サービス等)の情報を集め、データベースに登録する。
(2)クライアントノードC1からサービス検索依頼を、サービス検索サーバノードSXが受ける。
(3)サービス検索サーバノードSXは自ノードのデータベースを参照し、クライアントノードC1の要求にあったサーバノードSiを選び、受付が可能か問い合わせる。問合せで、受付不可なら再度データベースを参照して他のサーバノードSiを選び受付可能になるまで問合せを続ける。
(4)サービス検索サーバノードSXは、クライアントノードC1に検索結果を返信する。
以上の(1)〜(4)の制御処理を実行する従来技術の構成では、検索要求を行うクライアントノードの数がC1だけでなく他のにも増加したときに、それらの検索要求を受け付けるサービス検索サーバノードSXの負荷が増大してしまう。
そこで、本実施形態では、図1の構成を有するサーバノード100が以下に説明する分散処理を実行することにより、負荷分散を実現する。
図3は、図1に示される構成を有する本実施形態における属性情報の交換動作を説明する図である。図3において、Cj(j=1,2)はクライアントノード、Si(i=1〜5)は図1の構成を有するサーバノード100を示す。なお、サーバノードは、仮想マシンであってもよい。図3の構成では、Helloメッセージ113が到達可能なネットワークである一つのサブネット301内で、多数のサーバノードSiが相互に接続される。さらに、任意のサーバノードSiに、サブネット301の内外から、それらを利用するクライアントノードCjが接続される。本実施形態では、従来技術と異なり、図2にあったような、特定のサービス検索サーバノードSXは不要である。
図3の構成で、各サーバノードSi内の経路情報通知部102(図1)は、図3の両矢印付き実線群で示されるHelloメッセージ113を用い、自ノード内の属性情報DB101から読み出した属性情報を、他のサーバノードSiに定期的にブロードキャストする。あるいは、Helloメッセージ113のブロードキャストのタイミングは、自ノードの起動時、特定のイベントの発生時等であってもよい。
図4は、Helloメッセージ113のデータ構成例を示す図である。宛先アドレス401としては、サブネット301(図3)内のブロードキャストアドレスが格納される。送信元アドレス402としては、自ノードのアドレスが格納される。サービス情報403としては、検索サービスのサービスID(識別子)、サービス名、サービススペック等が格納される。リソース情報としての自ノード情報404としては、CPU(中央演算処理装置)種別、CPU使用率、メモリ使用率、ハードディスク使用率等の、サーバノード100(Si)のハードウェアのリソース情報が格納される。
これらのサービス情報およびリソース情報は、図1の属性情報DB101を参照して取得される。図5は、属性情報DB101のデータ構成例を示す図である。
属性情報DB101には、図1のサーバノード100に関して、サーバノードID(識別情報)(図中の記載例「サーバノード5」)に対応させて、リソース情報としてCPU使用率、メモリ使用率などの値が蓄積されている。これらのリソース情報は、図1のノード情報監視部112が、自ノードのハードウェアリソースを例えば定期的、起動時、またはイベント発生時に監視し、その監視結果に基づいて更新される。監視は、CPU使用率、メモリ使用率などを取得するコマンドを実行することで行われる。
また、属性情報DB101には、検索サービスのサービスID(図中の記載例「サービス1001」または「サービス1002」)に対応させて、次のサービス情報が蓄積される。サービス名、URI(Uniform Resource Identifier:統一資源識別子)、およびサービス固有情報(サービススペック)等である。サービス名は、文字列である。URIには、例えば分散ファイルシステムを示す表記、例えば「hdfs_system://・・・」が設定される。サービス固有情報は、例えばハードディスクの容量である。
図1の経路情報通知部102は、図5に例示されるような構成を有する属性情報DB101を参照することにより、図4に例示されるようなデータ構成を有するHelloメッセージ113を生成し、ブロードキャストする。
図3の説明に戻り、各サーバノードSi内の経路情報生成部106(図1)は、他のサーバノードSiからブロードキャストされるHelloメッセージ113を受信すると、優先順位付きの経路情報を生成し、経路情報DB107(図1)に対して登録または情報の更新を行う。
図6は、経路情報DB107のデータ構成例を示す図である。経路情報として、転送先サーバのサーバ識別情報(図中の記載例「サーバノード2」または「サーバノード4」)と、各サーバ識別情報に対応する優先度の情報(図中の記載例「80」または「60」)が登録される。サーバ識別情報は例えば、サーバノード100のホスト名または宛先アドレスであってよい。図1の経路情報生成部106は、例えば所定の評価関数によって、各サーバノードSi(図3)ごとの優先度を決定する。この評価関数は例えば、図4に例示される構成を有するHelloメッセージ113内のリソース情報として自ノード情報に含まれるCPU種別、CPU使用率、メモリ使用率、ハードディスク使用率や、サービス情報に含まれるサービスによる負荷率等をパラメータとして定義される。例えばCPU使用率の小さいほうが優先度が高い等である。ネットワーク内の各サーバノードSiをどう使いたいかによって、優先度の決定の仕方を決めることができる。
図7は、本実施形態における図1のサービス検索依頼メッセージ114の転送動作を説明する図である。図7において、サーバノードSi、クライアントノードCj、およびサブネット301は、図3に示されるものと同様である。以下の説明では、随時、図1の構成を参照する。また、以下のI、II、III (III ―1、III ―2)、およびIV(IV−1、IV−2)の各処理は、図7中の四角で囲まれた同じ番号の部分の処理を示す。また、図8は、サービス検索依頼メッセージのデータ構成例を示す図である。図8中のI、III (a)、およびIII (b)の各行が、以下のIおよびIII の各処理で扱われるサービス検索依頼メッセージ114のデータ構造を示している。
(I)クライアントノードC1は、任意に指定されるサーバノード例えばS5に、図8のIとして示されるデータ構造を有するサービス検索依頼メッセージ114を送信する。図7中のC1からS5へ向かう「I」の矢印が該当する。図8に示されるように、このサービス検索依頼メッセージ114には、依頼元として、クライアントノードC1のアドレス(図中Iの記載例「C1」)が格納される。依頼先として、サーバノードS5のアドレス(図中Iの記載例「S5」)が格納される。また、所定のサービス検索条件が格納される。
(II)サーバノードS5では、検索判定部108が、サービス検索依頼メッセージ114を受信すると、自ノードの属性情報DB101を参照することにより、自ノードが受信したサービス検索依頼メッセージ114中のサービス検索条件に該当するかを判定する。
(III −1)検索判定部108での判定結果がNGの(条件にあっていない)場合、サービス検索依頼メッセージ114を検索転送部109に渡す。
(III −2)検索転送部109は、経路情報DB107を参照して転送先のサーバノードを決定し、サービス検索依頼メッセージ114の依頼先にそのサーバノードのアドレス(図8中III (a)の記載例「S3」)を格納し、サービス検索依頼メッセージ114の検索履歴情報である検索済リストに自ノードID(図中III (a)の記載例「S5」)を追加して、サーバノード(S3)に転送する。図7中のS5からS3へ向かう「III ―2」の矢印が該当する。
以降、転送先でも同様な処理が行われる。
(II)すなわち、サーバノードS3では、検索判定部108が、サービス検索依頼メッセージ114を受信すると、自ノードの属性情報DB101を参照することにより、自ノードが受信したサービス検索依頼メッセージ114中のサービス検索条件に該当するかを判定する。
(III −1)検索判定部108での判定結果がNGの場合、サービス検索依頼メッセージ114を検索転送部109に渡す。
(III −2)検索転送部109は、経路情報DB107を参照して転送先のサーバノードを決定し、サービス検索依頼メッセージ114の依頼先にそのサーバノードのアドレス(図8中III (b)の記載例「S1」)を格納し、サービス検索依頼メッセージ114の検索済リスト(検索履歴情報)に自ノードID(図中III (b)の記載例「S3」)を追加して、サーバノード(S1)に転送する。図7中のS3からS1へ向かう「III ―2」の矢印が該当する。
(II)サーバノードS1でも、検索判定部108が、サービス検索依頼メッセージ114を受信すると、自ノードの属性情報DB101を参照することにより、自ノードが受信したサービス検索依頼メッセージ114中のサービス検索条件に該当するかを判定する。
(IV−1)検索判定部108での判定結果がOKの(条件に合った)場合、サービス検索依頼メッセージ114が検索結果通知部110に渡される。
(IV−2)検索結果通知部110は、サービスの検索結果が格納された検索結果メッセージ115を作成し、依頼元のクライアントノードC1に送信する。図7中のS1からS2を経由してC1へ向かう「IV―2」の矢印が該当する。
以上の図7に示される動作例により、例えばクライアントノードC1からのサービス検索依頼メッセージ114は、任意のサーバノードS5にて受信される。そして、受信したサービス検索依頼メッセージ114が自ノードで処理できない場合には、サーバノードS5→S3→S1と転送されて、サーバノードS1にて検索処理が実行される。その検索結果は、サーバノードS1にて検索結果メッセージ115に格納されて、サービス検索依頼メッセージ114の送信元の例えばクライアントノードC1に通知される。このような制御動作により、クライアントノードCjからのサービス検索依頼メッセージ114は、任意のサーバノードSiにて受信することができ、検索可能なサーバノードSiに転送することができる。これにより、特定ノードに集中しない負荷分散が可能になる。あらかじめ相互に交換し経路情報DB107に蓄積している経路情報に基づいて、検索時点で適切なサービス実施ノードを決定することが可能となる。
ここで、サービス検索依頼メッセージ114に格納されているサービス検索条件において複数のサーバノードSiに対する検索が指定されるように構成することができる。この場合、検索結果通知部110は、検索判定部108でマッチが成立すると判定した場合に、前述した検索結果メッセージ115をサービス検索依頼メッセージ114の送信元へ通知するとともに、次の処理を実行する。検索結果通知部110は、サービス検索条件が指定するサーバの数が1でなければ、サービス検索依頼メッセージ114中のサービス検索条件が指定するサーバノードSiの数を1減らした上で、検索転送部109に、そのサービス検索依頼メッセージ114の転送を指示する。このような構成により、複数のサーバノードSi間で負荷分散を図りながら、かつ複数のサーバノードSiを使ってサービス検索依頼メッセージ114に対するサービス検索処理を実行することが可能となる。
図9は、図1の検索判定部108を実現する検索判定処理を示すフローチャートである。このフローチャートは例えば、後述する図17に示されるCPU1701がメモリ1702に記憶された制御プログラムを実行する動作として実現される。
まず、サービス検索依頼メッセージ114からサービス検索条件が取り出される(ステップS901)。
次に、図1の属性情報DB101が参照され、ステップS901で取り出されたサービス検索条件を満たしているかが判定される(ステップS902)。
サービス検索条件を満たしているならば(ステップS903の判定がYes)、サービス検索依頼メッセージ114が検索結果通知部110に通知される(ステップS904)。その後、検索判定処理の制御処理を終了する。
サービス検索条件を満たしていないならば(ステップS903の判定がNo)、サービス検索依頼メッセージ114が検索転送部109に通知される(ステップS905)。その後、検索判定処理の制御処理を終了する。
図10は、図1の検索結果通知部110を実現する検索結果通知処理を示すフローチャートである。このフローチャートは例えば、後述する図17に示されるCPU1701がメモリ1702に記憶された制御プログラムを実行する動作として実現される。
まず、サービス検索依頼メッセージ114から依頼元が取り出される(図8参照)(ステップS1001)。
次に、検索結果が格納され、ステップS1001で取り出された依頼元が格納された検索結果メッセージ115が生成される(ステップS1002)。
次に、ステップS1002で生成された検索結果メッセージ115が、依頼元に送信される(ステップS1003)。
ここで、サービス検索依頼メッセージ114が複数のサーバノードSiに対する検索を指定していなければ、ステップS1003の処理の終了により、そのまま図10の検索結果通知処理を終了する。
一方、サービス検索依頼メッセージ114に格納されているサービス検索条件において複数のサーバノードSiに対する検索が指定されていれば、図10の破線で示されるステップS1004からS1008までの一連の処理が実行される。
まず、サービス検索依頼メッセージ114からサービス検索条件が取り出される(ステップS1004)。
次に、サービス検索条件のノード数が1か否かが判定される(ステップS1005)。
ノード数が1であれば(ステップS1006の判定がYes)、そのまま図10の検索結果通知処理を終了する。
ノード数が1でなければ(ステップS1006の判定がNo)、サービス検索依頼メッセージ114中のサービス検索条件が指定するサーバノードSiの数が1減らされる(ステップS1007)。
その上で、図11で後述する検索転送処理を起動して、そのサービス検索依頼メッセージ114の転送を行わせる(ステップS1008)。その後、検索通知処理の制御処理を終了する。
ステップS1004〜S1008の処理により、ステップS1003にて検索結果メッセージ115を返信した後、さらにそのサービス検索依頼メッセージ114を転送して、他のサーバノードSiに検索処理を行わせることが可能となる。
図11は、図1の検索転送部109を実現する検索転送処理を示すフローチャートである。このフローチャートは例えば、後述する図17に示されるCPU1701がメモリ1702に記憶された制御プログラムを実行する動作として実現される。
まず、サービス検索依頼メッセージ114の検索済リスト(検索履歴情報)(図8参照)が取り出される(ステップS1101)。
次に、経路情報DB107から、優先順位の高いサーバノードSiから順に、宛先候補が取り出される(ステップS1102)。
宛先候補があるか否かが判定される(ステップS1103)。
宛先候補があって、ステップS1103の判定がYesならば、宛先候補が、ステップS1101で取り出された検索済リスト(検索履歴情報)に含まれるか否かが判定される(ステップS1104)。
宛先候補が検索済リストに含まれてステップS1106の判定がYesならば、ステップS1102に戻って、経路情報DB107から次の宛先候補が取り出される。
ステップS1102〜S1106のループ処理により、宛先候補が検索済リストに含まれずにステップS1106の判定がNoになると、サービス検索依頼メッセージ114の依頼先(図8参照)に、宛先候補のサーバノードSiが設定される(ステップS1107)。
一方、ステップS1102〜S1106のループ処理により、宛先候補がなくなってステップS1103の判定がNoになると、そのサービス検索依頼メッセージ114を転送元のサーバノードに送り返す(バックトラックする)ために、次の処理が実行される。サービス検索依頼メッセージ114の依頼先に、転送元のサーバノード(検索済リストからわかる)が設定される(ステップS1105)。
ステップS1107またはS1105の処理の後、サービス検索依頼メッセージの検索済リストに自ノードが追加される(リスト数が+1される)(ステップS1108)。
最後に、サービス検索依頼メッセージ114が、メッセージ送信部103を介して転送される(ステップS1109)。その後、検索転送処理の制御処理を終了する。
図12は、図1の経路情報通知部102を実現する経路情報通知処理を示すフローチャートである。このフローチャートは例えば、後述する図17に示されるCPU1701がメモリ1702に記憶された制御プログラムを実行する動作として実現される。
まず、Helloメッセージ113のバッファが取得される。このとき、宛先アドレス(図4の401)にブロードキャストアドレスが設定される。また、送信元アドレス(図4の402)に自ノードのアドレスが設定され、メッセージ種別(後述する図14の「type」フィールド)に「Hello」が設定される(以上、ステップS1201)。
次に、自ノードの属性情報DB101に登録されているサービス情報が、Helloメッセージ113のサービス情報(図4の403)に設定される。また、自ノードの属性情報DB101に登録されているリソース情報がHelloメッセージ113の自ノード情報(図4の404)に設定される(以上、ステップS1202)。
そして、ステップS1201およびS1202により生成されたHelloメッセージ113が、メッセージ送信部103に通知されて送信される(ステップS1203)。その後、図12の経路情報通知処理を終了する。
図13は、図1の経路情報生成部106を実現する経路情報生成処理を示すフローチャートである。このフローチャートは例えば、後述する図17に示されるCPU1701がメモリ1702に記憶された制御プログラムを実行する動作として実現される。
受信されたHelloメッセージ113のサービス情報(図4の403)と自ノード情報(図4の404)が取得され、サービス情報とリソース情報としての自ノード情報とから優先度が決定される(ステップS1301)。
次に、受信されたHelloメッセージ113の送信元アドレス(図4の402)が取得される(ステップS1302)。これをLSとする。
次に、経路情報DB107が検索され、ステップS1302で取得されたLSに対応するレコードが存在するか否かが判定される(ステップS1303)。
ステップS1303の判定がYesならば、取得した経路情報DB107の優先度を、ステップS1301で決定された優先度によって更新される(ステップS1304)。その後、図13の経路情報生成処理を終了する。
ステップS1303の判定がNoならば、経路情報DB107にステップS1302で取得されたLSのエントリが作成され、作成されたエントリにステップS1301で決定された優先度が設定される(ステップS1305)。その後、図13の経路情報生成処理を終了する。
図14は、Helloメッセージ113のデータフォーマット例を示す図である。
「symbol」「length」「request number」「request time」「category」「type」「status」および「option」の各フィールドは、Helloメッセージ113のヘッダ部を構成する。この中で特に、「type」フィールドには、メッセージの種別として、Helloメッセージ113であることを示す値が格納される。
「address length」は、要求受付用のIP(インターネットプロトコル)アドレスの長さを示す。「request port」は、要求受付用のポート番号を示す。「address」は、要求受付用のIPアドレスを示す。「option」は、オプションフィールドであり、図4のサービス情報403、自ノード情報(リソース情報)404などが格納される。
図15は、サービス検索依頼メッセージ114のデータフォーマット例を示す図である。
サービス検索依頼メッセージ114のヘッダ部は、図14に示されるHelloメッセージ113のヘッダ部と同じである。その場合、「type」フィールドには、メッセージの種別として、サービス検索依頼メッセージ114であることを示す値が格納される。
「limit」は、検索件数の上限値が設定される。上限なしの場合は0が設定される。「reserve」は、予約フィールドである。「query length」は、サービス検索条件の条件式の長さが格納される。「query」は、4バイト境界でサービス検索条件の条件式が格納される。「keys」は、検索成功時に取得する属性キーのリストが格納される。「history」は、転送時の通過ノードの履歴情報すなわち検索済リスト(検索履歴情報)が格納される。
図16は、検索結果メッセージ115のデータフォーマット例を示す図である。
検索結果メッセージ115のヘッダ部は、図14に示されるHelloメッセージ113のヘッダ部と同じである。その場合、「type」フィールドには、メッセージの種別として、検索結果メッセージ115であることを示す値が格納される。
「result」には、検索結果(1:検出、2:検索終了、3:検索タイムアウト)が格納される。「hop count」にはホップ数が格納される。「uri length」には、URIの長さが格納される。「uri」には、4バイト境界で検索結果の場所を示すURIが格納される。「attr」には、要求された属性キーに対応する属性情報が格納される。
図17は、本実施形態のシステムを実現可能なハードウェアシステムの構成図である。
図17は、上記システムをソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
図17に示されるコンピュータは、CPU1701、メモリ1702、入力装置1703、出力装置1704、外部記憶装置1705、可搬記録媒体1709が挿入される可搬記録媒体駆動装置1706、及び通信インタフェース1707を有し、これらがバス1708によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
CPU1701は、当該コンピュータ全体の制御を行う。メモリ1702は、プログラムの実行、データ更新等の際に、外部記憶装置1705(或いは可搬記録媒体1709)に記憶されているプログラム又はデータを一時的に格納するRAM等のメモリである。CUP1701は、プログラムをメモリ1702に読み出して実行することにより、全体の制御を行う。
入出力装置1703、1704は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU1701に通知し、CPU1701の制御によって送られてくるデータを表示装置や印刷装置に出力する。
外部記憶装置1705は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置1706は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)等の可搬記録媒体1709を収容するもので、外部記憶装置1705の補助の役割を有する。
通信インタフェース1707は、例えばLAN(ローカルエリアネットワーク)又はWAN(ワイドエリアネットワーク)の通信回線を接続するための装置である。
本実施形態によるシステムは、図1に示される各機能または図9〜図13のフローチャート等で実現される機能を搭載したプログラムをCPU1701が実行することで実現される。そのプログラムは、例えば外部記憶装置1705や可搬記録媒体1709に記録して配布してもよく、或いはネットワーク接続装置1707によりネットワークから取得できるようにしてもよい。
100、Si サーバノード
101 属性情報DB(データベース)
102 経路情報通知部
103 メッセージ送信部
104 メッセージ受信部
105 メッセージ振分け部
106 経路情報生成部
107 経路情報DB(データベース)
108 検索判定部
109 検索転送部
110 検索結果通知部
111 サービス登録部
112 ノード情報監視部
113 Helloメッセージ
114 サービス検索依頼メッセージ
115 検索結果メッセージ
201、301 サブネット
401 宛先アドレス
402 送信元アドレス
403 サービス情報
404 自ノード情報
Cj クライアントノード
SX サービス検索サーバノード
1701 CPU
1702 メモリ
1703 入力装置
1704 出力装置
1705 外部記憶装置
1706 可搬記録媒体駆動装置
1707 通信インタフェース
1708 バス
1709 可搬記録媒体

Claims (5)

  1. サーバの属性情報を他のサーバとの間で交換することにより経路情報を生成し、サービス検索依頼元からサービス検索依頼を受信したときに、前記サーバの属性情報を参照することにより、前記サーバが前記サービス検索依頼におけるサービス検索条件に適合するか否かを判定し、適合しないと判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サーバの情報を前記検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送し、適合すると判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サービス検索条件が指定するサーバの数を1減らすとともに前記サーバの情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送する、
    ことを備えることを特徴とする分散処理におけるサービス検索方法。
  2. 前記経路情報を生成するときに、前記交換した属性情報に基づいて計算したサービス検索の優先度を前記経路情報に付加し、
    前記サービス検索依頼を転送するときに、前記経路情報に含まれる優先度が高いサーバを選択する、
    ことを備えることを特徴とする請求項1に記載の分散処理におけるサービス検索方法。
  3. 前記属性情報はサービス情報とリソース情報を含み、
    前記サービス情報の登録または削除を行い、
    前記サーバのリソースを監視し、前記監視の結果に基づいて前記リソース情報を更新する、
    ことをさらに備えることを特徴とする請求項1または2のいずれかに記載の分散処理におけるサービス検索方法。
  4. サーバに、
    サービス情報とリソース情報を含む前記サーバの属性情報を他のサーバとの間で交換することにより経路情報を生成する機能と、
    サービス検索依頼を受信したときに、前記サーバの前記属性情報を参照することにより、前記サーバが前記サービス検索依頼におけるサービス検索条件に適合するか否かを判定する機能と、
    適合しないと判定した場合に、前記サービス検索依頼に格納されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サーバの情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送する機能と、
    適合すると判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サービス検索条件が指定するサーバの数を1減らすとともに前記サーバの情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送する機能と、
    を実行させるためのプログラム。
  5. サーバ装置であって、
    サービス情報とリソース情報を含む前記サーバ装置の属性情報を他のサーバとの間で交換することにより経路情報を生成する経路情報生成部と、
    サービス検索依頼を受信したときに、前記サーバ装置の前記属性情報を参照することにより、前記サーバ装置が前記サービス検索依頼におけるサービス検索条件に適合するか否かを判定する検索判定部と、
    適合しないと前記検索判定部が判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サーバ装置の情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送
    適合すると前記検索判定部が判定した場合に、前記サービス検索依頼に付加されている検索履歴情報に検索実績がないサーバを前記経路情報に基づいて選択し、前記サービス検索条件が指定するサーバの数を1減らすとともに前記サーバ装置の情報を検索履歴情報として付加した前記サービス検索依頼を前記選択したサーバに転送する
    転送検索部と、
    を備えることを特徴とするサーバ装置。
JP2014507163A 2012-03-28 2012-03-28 分散処理におけるサービス検索方法、プログラム、およびサーバ装置 Expired - Fee Related JP5979223B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014507163A JP5979223B2 (ja) 2012-03-28 2012-03-28 分散処理におけるサービス検索方法、プログラム、およびサーバ装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014507163A JP5979223B2 (ja) 2012-03-28 2012-03-28 分散処理におけるサービス検索方法、プログラム、およびサーバ装置
PCT/JP2012/058268 WO2013145197A1 (ja) 2012-03-28 2012-03-28 分散処理におけるサービス検索方法、プログラム、およびサーバ装置

Publications (2)

Publication Number Publication Date
JPWO2013145197A1 JPWO2013145197A1 (ja) 2015-08-03
JP5979223B2 true JP5979223B2 (ja) 2016-08-24

Family

ID=49258561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507163A Expired - Fee Related JP5979223B2 (ja) 2012-03-28 2012-03-28 分散処理におけるサービス検索方法、プログラム、およびサーバ装置

Country Status (3)

Country Link
US (1) US20140358967A1 (ja)
JP (1) JP5979223B2 (ja)
WO (1) WO2013145197A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6470246B2 (ja) * 2016-11-15 2019-02-13 ソフトバンク株式会社 ユーザーサポートシステム、ユーザーサポートプログラム及びユーザーサポート方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3603613B2 (ja) * 1997-10-31 2004-12-22 富士通株式会社 分散検索システムおよび分散検索システムにおける検索装置
JP3710961B2 (ja) * 1999-06-22 2005-10-26 富士通株式会社 分散検索装置および分散検索プログラム記憶媒体
JP2002015215A (ja) * 2000-06-30 2002-01-18 Hitachi Ltd マルチメデア情報配信システムおよび携帯情報端末装置
JP2004227140A (ja) * 2003-01-21 2004-08-12 Toshiba Corp 検索連携プログラム及び検索システム並びに検索方法
JP2004240834A (ja) * 2003-02-07 2004-08-26 Nippon Telegr & Teleph Corp <Ntt> サービス生成方法およびプログラム
JP3946243B2 (ja) * 2005-03-23 2007-07-18 株式会社Ihc 認証システム
JP5007336B2 (ja) * 2007-05-30 2012-08-22 株式会社ナビタイムジャパン 地図表示システム、地図表示装置および地図表示方法
US20110238495A1 (en) * 2008-03-24 2011-09-29 Min Soo Kang Keyword-advertisement method using meta-information related to digital contents and system thereof
JP4548503B2 (ja) * 2008-04-01 2010-09-22 ソニー株式会社 サーバ装置、ネットワークシステム、データ転送方法およびプログラム
JP4739364B2 (ja) * 2008-04-08 2011-08-03 株式会社日立製作所 サービス使用経路出力システム、管理サーバ、サービス使用経路出力方法、およびサービス使用経路出力プログラム
CN102326051A (zh) * 2009-02-20 2012-01-18 株式会社纳维泰 路径向导系统、路径检索服务器及路径向导方法
CN102414538A (zh) * 2009-04-23 2012-04-11 株式会社纳维泰 路径向导系统、路径检索服务器、路径向导中介服务器及路径向导方法

Also Published As

Publication number Publication date
WO2013145197A1 (ja) 2013-10-03
JPWO2013145197A1 (ja) 2015-08-03
US20140358967A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
JP5522080B2 (ja) プリントシステムおよび画像形成装置
JP5595032B2 (ja) 情報処理システム、その制御方法、情報処理装置、情報提供装置、画像処理装置およびプログラム
JP2007066161A (ja) キャッシュシステム
JP6438719B2 (ja) 通信システム、および、通信プログラム
US8359330B2 (en) Contents deletion/update apparatus, contents deletion/update method and recording medium
JP2009296128A (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2008234206A (ja) 情報送信システム、情報処理装置、情報管理装置及び情報送信方法
KR101337151B1 (ko) 송신원을 식별하는 정보 처리 장치 및 그 제어 방법
JP2007293603A (ja) 情報処理装置及び情報処理方法及びプログラム
JP2005346573A (ja) Webサービス提供方法、Webサービスシステムにおけるサーバ装置およびクライアント端末、Webサービスシステム、ならびに、Webサービスプログラムおよび記録媒体
JP2009151560A (ja) リソースの管理方法、情報処理システム、情報処理装置、及びプログラム
EP2802108B1 (en) Data-centric communications system and data forwarding method
JP5979223B2 (ja) 分散処理におけるサービス検索方法、プログラム、およびサーバ装置
JP2005322222A (ja) 通信機能付加方法、プログラム、記録媒体及び通信装置
KR102394773B1 (ko) 네임 기반 인-네트워크 프로세싱 방법 및 시스템
CN109039687A (zh) 请求的负载均衡方法、装置、系统、设备以及存储介质
US9509657B2 (en) Information processing apparatus, relay method, and computer-readable storage medium
JP2008310472A (ja) サーバ装置、情報取得方法、情報取得プログラム、記録媒体、クライアント装置、および通信システム
JP2002354019A (ja) 通信装置、宛先変更装置、通信方法及び通信制御プログラム
JP2005259106A (ja) 仲介装置、分散処理システム、データ転送方法、プログラム及び記録媒体
JP6292892B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4107252B2 (ja) 通信中継装置、通信中継方法、および通信中継プログラム
JP2011114805A (ja) 通信装置及び方法、並びにプログラム
JP2006020157A (ja) ノード情報収集装置
JP4291174B2 (ja) Webサービス委譲処理方法及び実施装置並びに処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151214

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: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160711

R150 Certificate of patent or registration of utility model

Ref document number: 5979223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees