JP2019160232A - 情報処理装置及びプログラム - Google Patents
情報処理装置及びプログラム Download PDFInfo
- Publication number
- JP2019160232A JP2019160232A JP2018050068A JP2018050068A JP2019160232A JP 2019160232 A JP2019160232 A JP 2019160232A JP 2018050068 A JP2018050068 A JP 2018050068A JP 2018050068 A JP2018050068 A JP 2018050068A JP 2019160232 A JP2019160232 A JP 2019160232A
- Authority
- JP
- Japan
- Prior art keywords
- service
- server
- response
- request
- service request
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散を実現する情報処理装置などを提供する。【解決手段】情報処理装置は、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、依頼に対する応答を受信する受信手段と、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段と、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段とを備える。【選択図】図4
Description
本発明は、情報処理装置及びプログラムに関する。
特許文献1には、異なる処理を行うプログラムや実行装置を含む複数の分散配置されたコンピュータ或いは計算機が接続されているネットワーク上での分散処理方法であって、サブプログラム実行サーバリストを有するメインプログラム実行サーバと、1つ以上のサブプログラム実行サ−バとを所定のコンピュータ或いは計算機に設けると共に、前記メインプログラム実行サーバは、メインプログラムを実行する過程においてサブプログラムによる処理が必要なときには、前記サブプログラム実行サーバリストから前記処理を実行可能なサブプログラム実行サーバを抽出して、該抽出したサブプログラム実行サーバに対して処理を依頼し、該処理依頼を受けたサブプログラム実行サーバは、該処理依頼に基づいてサブプログラム処理を実行すると共に処理結果を前記メインプログラム実行サーバに転送し、該処理結果を用いて前記メインプログラム実行サーバはメインプログラムを実行するネットワーク上での分散処理方法が記載されている。
特許文献2には、クライアント端末と複数のサーバ装置とから構成されるシステムに適用され、前記複数のサーバ装置の各々のサーバ装置が、前記クライアント端末からの接続依頼を受信する受信部と、自己の負荷に関する情報および前記クライアント端末に関する情報を含む転送情報を前記システムを構成する他のサーバ装置へ転送する転送部と、前記転送部による転送から所定時間経過後に、前記クライアント端末へ前記接続依頼に対する接続許可応答を返信する応答部と、前記受信部を通じて前記システムを構成する前記他のサーバ装置から転送された他のサーバ装置の負荷に関する情報および前記接続依頼を発信したクライアント端末に関する情報を含む転送情報を受信し、当該受信した転送情報に含まれる前記他のサーバ装置の負荷に関する情報と自己の負荷に関する情報とを比較し、どちらの負荷情報が低いかを判定する判定部とを備え、前記判定部が、前記他のサーバ装置の負荷に関する情報より、前記自己の負荷に関する報が低いと判定した場合に、前記応答部は前記クライアント端末へ前記接続依頼に対する接続許可応答を返信するサーバ装置が記載されている。
複数のサービス提供元(サーバとして機能する情報処理装置)と複数のクライアントとを含むサービス・ネットワーク・システムにおいて、クライアントにサービスを安定的に提供する観点から、特定の情報処理装置に負荷が集中しないように負荷分散することが要請される。このとき、複数の情報処理装置が互いの負荷状況に関する情報を交換して、負荷が低い情報処理装置にサービスの提供を依頼することが考えられる。しかし、この場合においては、複数の情報処理装置が互いの負荷状況を交換する通信を行うために、ネットワークの負荷が増大する。
本発明の目的は、クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散を実現する情報処理装置などを提供することにある。
本発明の目的は、クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散を実現する情報処理装置などを提供することにある。
請求項1に記載の発明は、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、前記依頼に対する応答を受信する受信手段と、前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段と、を備えることを特徴とする、情報処理装置である。
請求項2に記載の発明は、前記特定手段は、前記サービスと同一のサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項3に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼に対する先の応答において、予め設定された閾値時間よりも短い前記応答時間で応答したサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項4に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスおよび他のサービスを含むサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項5に記載の発明は、前記特定手段は、サービスの依頼状況に応じて、前記応答時間を用いて定められた規則とは異なる規則をさらに適用して前記送信先のサーバを特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項6に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼における送信先のサーバとなった回数に基づいて定められた規則を適用して送信先のサーバを特定することを特徴とする、請求項5に記載の情報処理装置である。
請求項7に記載の発明は、前記特定手段は、予め定められた条件に基づいて、依頼しようとする前記サービスの依頼の送信先サーバを、直前に当該サービスと同一のサービスの依頼の送信先としたサーバよりも増加させることを特徴とする、請求項1に記載の情報処理装置である。
請求項8に記載の発明は、前記特定手段は、予め定められた条件に合致する場合に、前記サービスの依頼を、当該サービスを提供可能な全てのサーバに送信させることを特徴とする、請求項7に記載の情報処理装置である。
請求項9に記載の発明は、同一の要求を複数の送信先へ送信する送信手段と、前記要求に対する応答を受信する受信手段と、前記要求を送信してから前記応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における当該要求と同種の要求を送信する際の送信先を制限する通信制御手段と、を備えることを特徴とする、情報処理装置である。
請求項10に記載の発明は、コンピュータを、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、前記依頼に対する応答を受信する受信手段と、前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段として、機能させることを特徴とする、プログラムである。
請求項2に記載の発明は、前記特定手段は、前記サービスと同一のサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項3に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼に対する先の応答において、予め設定された閾値時間よりも短い前記応答時間で応答したサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項4に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスおよび他のサービスを含むサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項5に記載の発明は、前記特定手段は、サービスの依頼状況に応じて、前記応答時間を用いて定められた規則とは異なる規則をさらに適用して前記送信先のサーバを特定することを特徴とする、請求項1に記載の情報処理装置である。
請求項6に記載の発明は、前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼における送信先のサーバとなった回数に基づいて定められた規則を適用して送信先のサーバを特定することを特徴とする、請求項5に記載の情報処理装置である。
請求項7に記載の発明は、前記特定手段は、予め定められた条件に基づいて、依頼しようとする前記サービスの依頼の送信先サーバを、直前に当該サービスと同一のサービスの依頼の送信先としたサーバよりも増加させることを特徴とする、請求項1に記載の情報処理装置である。
請求項8に記載の発明は、前記特定手段は、予め定められた条件に合致する場合に、前記サービスの依頼を、当該サービスを提供可能な全てのサーバに送信させることを特徴とする、請求項7に記載の情報処理装置である。
請求項9に記載の発明は、同一の要求を複数の送信先へ送信する送信手段と、前記要求に対する応答を受信する受信手段と、前記要求を送信してから前記応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における当該要求と同種の要求を送信する際の送信先を制限する通信制御手段と、を備えることを特徴とする、情報処理装置である。
請求項10に記載の発明は、コンピュータを、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、前記依頼に対する応答を受信する受信手段と、前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段として、機能させることを特徴とする、プログラムである。
請求項1、9、10に記載の発明によれば、クライアントにサービスを提供するための通信とは異なる無用な通信を行うことなく、負荷分散ができる。
請求項2に記載の発明によれば、応答時間の短い順に予め定められた数のサーバを特定する場合に比べて、送信先のサーバの数を抑制できる。
請求項3に記載の発明によれば、閾値時間より短い応答時間でサーバを特定しない場合に比べて、サーバの応答性能を特定できる。
請求項4に記載の発明によれば、他のサービスを含まない場合に比べて、応答性能が高いサーバを選択できる。
請求項5に記載の発明によれば、異なる規則をさらに適用しない場合に比べて、実際の依頼状況を反映させて送信先のサーバが選択できる。
請求項6に記載の発明によれば、回数に基づかない場合に比べて、安定的に応答の速いサーバを選択できる。
請求項7に記載の発明によれば、サーバの数を増加させない場合に比べ、確実にサービスを受けられることが優先できる。
請求項8に記載の発明によれば、全てのサーバに送信しない場合に比べ、サーバの改善などが反映させられる。
請求項2に記載の発明によれば、応答時間の短い順に予め定められた数のサーバを特定する場合に比べて、送信先のサーバの数を抑制できる。
請求項3に記載の発明によれば、閾値時間より短い応答時間でサーバを特定しない場合に比べて、サーバの応答性能を特定できる。
請求項4に記載の発明によれば、他のサービスを含まない場合に比べて、応答性能が高いサーバを選択できる。
請求項5に記載の発明によれば、異なる規則をさらに適用しない場合に比べて、実際の依頼状況を反映させて送信先のサーバが選択できる。
請求項6に記載の発明によれば、回数に基づかない場合に比べて、安定的に応答の速いサーバを選択できる。
請求項7に記載の発明によれば、サーバの数を増加させない場合に比べ、確実にサービスを受けられることが優先できる。
請求項8に記載の発明によれば、全てのサーバに送信しない場合に比べ、サーバの改善などが反映させられる。
ここでは、同じ情報処理(サービス)を提供する複数のサーバ、及びサーバの提供するサービスを依頼する複数のクライアントがネットワークを介して接続されている情報処理システムとして説明する。つまり、クライアントは、サーバにサービスの依頼(サービス要求)を送信し、サーバによって処理された応答を受信する。この情報処理システムは、パブリッシュ・サブスクライブ(Publish-Subscribe)方式(Pub/Sub方式)でメッセージ(応答)を送受信する、いわゆるPub/Subメッセージングモデルに対応するシステムである。ここで、サーバが、パブリッシャ(Publisher)であり、クライアントがサブスクライバ(Subscriber)に対応する。
ここでは、複数のサーバは同じサービスを提供できるため、クライアントからサービス要求を受けたサーバは、他のサーバにサービス要求を転送(送信)して、他のサーバがサービス要求に対する応答をしてもよい。つまり、サーバは、クライアントからのサービス要求に対して自身が応答してもよく、他のサーバにサービス要求を転送して、他のサーバからの応答をクライアントに送信してもよい。このようにすることで、最も早い応答をクライアントに送信することで、処理の効率化が図られる。
以下では、サーバが依頼されたサービス(サービス要求)を処理したり、他のサーバにサービス要求を転送したりするとして説明する。サーバ以外に、クライアントやサーバとネットワークとの間に設けられた中継サーバがこのような動作を行ってもよい。ここでは、このような動作を行うサーバ、中継サーバ、クライアントなどを情報処理装置と表記する。
なお、以下で説明する情報処理システムは、Pub/Subメッセージングモデルのシステムに限定されず、同じサービスを提供できる複数のサーバと、サーバにサービスを依頼(サービス要求)するクライアントとを備えるシステムに適用できる。
以下、添付図面を参照して、本発明の実施の形態(本実施の形態)について説明する。
以下、添付図面を参照して、本発明の実施の形態(本実施の形態)について説明する。
(情報処理システム1)
図1は、本実施の形態が適用される情報処理システム1の概要を示す図である。
情報処理システム1は、複数のイントラネット10、ネットワーク20、及び複数のイントラネット10とネットワーク20とをそれぞれ接続する複数のルータ30を備える。図1では、一例として、3つのイントラネット10を示している。3つのイントラネット10をそれぞれ区別する場合は、イントラネット11、12、13と表記し、3つのルータをそれぞれ区別する場合は、ルータ31、32、33と表記する。つまり、ルータ31は、イントラネット11とネットワーク20とを接続し、ルータ32は、イントラネット12とネットワーク20とを接続し、ルータ33は、イントラネット13とネットワーク20とを接続する。
図1は、本実施の形態が適用される情報処理システム1の概要を示す図である。
情報処理システム1は、複数のイントラネット10、ネットワーク20、及び複数のイントラネット10とネットワーク20とをそれぞれ接続する複数のルータ30を備える。図1では、一例として、3つのイントラネット10を示している。3つのイントラネット10をそれぞれ区別する場合は、イントラネット11、12、13と表記し、3つのルータをそれぞれ区別する場合は、ルータ31、32、33と表記する。つまり、ルータ31は、イントラネット11とネットワーク20とを接続し、ルータ32は、イントラネット12とネットワーク20とを接続し、ルータ33は、イントラネット13とネットワーク20とを接続する。
ここで、イントラネット10とは、予め設定された組織内、例えば企業などの内部におけるデータ(パケット)の送受信に限定して設けられたネットワークをいう。ネットワーク20は、公衆通信回線網などを介してデータ通信するネットワークであって、いわゆるメトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネットなどである。ルータ30は、イントラネット10とネットワーク20との間など、ネットワーク間に置かれて、IPアドレス等を頼りにデータ(パケット)の送受信を中継する機器である。ルータ30は、それぞれのイントラネット10を異なるドメインとして(ドメイン名で)区別して、ネットワーク20とイントラネット10との間におけるデータ(パケット)の送受信を中継する。
次に、イントラネット10について説明する。
図1に示すイントラネット10(イントラネット11、12、13)は、一例として、すべて同じ構成を有しているとする。よって、イントラネット10の構成を、イントラネット11で説明する。イントラネット11(イントラネット10)は、2つのサブドメイン40(それぞれを区別する場合は、サブドメイン41、42と表記する。)及びサブドメイン41、42間を接続するブリッジ50を備える。各サブドメイン40は、1つのサーバ60と、それに接続された情報端末であるクライアント70とを備える。なお、サブドメイン41におけるサーバ60をサーバ61、クライアント70をクライアント71と表記し、サブドメイン42におけるサーバ60をサーバ62、クライアント70をクライアント72と表記して区別する。なお、前述したようにサーバ60は、情報処理装置の一例である。
図1に示すイントラネット10(イントラネット11、12、13)は、一例として、すべて同じ構成を有しているとする。よって、イントラネット10の構成を、イントラネット11で説明する。イントラネット11(イントラネット10)は、2つのサブドメイン40(それぞれを区別する場合は、サブドメイン41、42と表記する。)及びサブドメイン41、42間を接続するブリッジ50を備える。各サブドメイン40は、1つのサーバ60と、それに接続された情報端末であるクライアント70とを備える。なお、サブドメイン41におけるサーバ60をサーバ61、クライアント70をクライアント71と表記し、サブドメイン42におけるサーバ60をサーバ62、クライアント70をクライアント72と表記して区別する。なお、前述したようにサーバ60は、情報処理装置の一例である。
図1では、各サブドメイン40(サブドメイン41、42)には、1つのクライアント70のみが表記されているが、複数のクライアント70を備えていてもよい。つまり、複数のクライアント70の代表として、1つのクライアント70を示している。そして、サーバ60とクライアント70とは、ローカルエリア・ネットワーク(LAN:Local Area Network)80で接続されている。なお、LAN80は、サブドメイン41側をLAN81と表記し、サブドメイン42側をLAN82と表記して区別する。サーバ61、62は、ルータ30(ルータ31)に接続されている。2つのサブドメイン41、42は、それぞれのLAN80(LAN81、82)間に設けられたブリッジ50で接続されている。そして、サブドメイン41にあるクライアント71は、LAN81で接続されたサーバ61とデータの送受信が行えるとともに、ブリッジ50を介してLAN82で接続されたサーバ62ともデータの送受信ができるようになっている。
サブドメイン40は、ドメイン名に加えられたサブドメイン名で区別されるネットワークである。ブリッジ50は、MACアドレス等を頼りにデータ(パケット)の送受信を行う機器である。ブリッジ50により、サブドメイン41、42間が接続され、1つのイントラネット10(イントラネット11)を構成する。ここでは、1つのイントラネット10に、サブドメイン40が2つ設けられているが、サブドメイン40は、1つであってもよく、3以上であってもよい。
以下では、説明を容易にするため、図1に示すように、イントラネット11のサブドメイン41におけるサーバ60(サーバ61)をサーバA1、クライアント70(クライアント71)をクライアントA1と表記し、サブドメイン42におけるサーバ60(サーバ62)をサーバA2、クライアント70(クライアント72)をクライアントA2と表記する。そして、イントラネット11と同様な構成であるイントラネット12における2つのサーバ60をサーバB1、B2、2つのクライアント70をクライアントB1、B2と表記する。さらに、イントラネット11と同様な構成であるイントラネット13における2つのサーバ60をサーバC1、C2、2つのクライアント70をクライアントC1、C2と表記する。
上記においては、3つのイントラネット10(イントラネット11、12、13)は、同じ構成であるとしたが、互いに異なっていてもよい。例えば、イントラネット12は、サブドメインが1つ、イントラネット13は、サブドメインが3つなどである。
(サーバ60が提供するサービス)
サーバ60(サーバA1、A2、B1、B2、C1、C2)は、クライアント70(クライアントA1、A2、B1、B2、C1、C2)に対してサービスを提供する。なお、サービスを提供するとは、クライアント70のサービスの依頼(サービス要求)を受信し、サーバ60が処理して、その結果(応答)をクライアント70に送信することをいう。つまり、サービス要求を処理すること、又は、サービス要求に対応することをいう。
ここでは、サーバA1、A2、B1、B2、C1、C2は、サービス1、サービス2、サービス3及びサービス4を提供するとする。
サーバ60(サーバA1、A2、B1、B2、C1、C2)は、クライアント70(クライアントA1、A2、B1、B2、C1、C2)に対してサービスを提供する。なお、サービスを提供するとは、クライアント70のサービスの依頼(サービス要求)を受信し、サーバ60が処理して、その結果(応答)をクライアント70に送信することをいう。つまり、サービス要求を処理すること、又は、サービス要求に対応することをいう。
ここでは、サーバA1、A2、B1、B2、C1、C2は、サービス1、サービス2、サービス3及びサービス4を提供するとする。
図2は、サーバA1、A2、B1、B2、C1、C2が提供するサービスを説明する図である。図2では、サーバA1、A2、B1、B2、C1、C2がそれぞれ提供するサービスを〇で示している。
サーバA1は、サービス1、3を、サーバA2は、サービス1、2、4を、サーバB1は、サービス2、3、4を、サーバB2は、サービス1、2を、サーバC1は、サービス3を、サーバC2は、サービス1、3、4を提供する。サーバA1、A2、B1、B2、C1、C2は、互いに共通するサービスを提供するように構成されている。つまり、サービス1は、サーバA1、A2、B2、C2のいずれであっても提供しうる。同様に、サービス2は、サーバA2、B1、B2のいずれであっても提供しうる。サービス3は、サーバA1、B1、C1、C2のいずれであっても提供しうる。サービス4は、サーバA2、B1、C2のいずれであっても提供しうる。このようにして、サーバA1、A2、B1、B2、C1、C2の内の複数のサーバが、共通のサービスを提供するようになっている。
(ハードウエア構成100)
次に、サーバ60(サーバA1、A2、B1、B2、C1、C2)及びクライアント70(クライアントA1、A2、B1、B2、C1、C2)のハードウエア構成を説明する。
図3は、サーバ60及びクライアント70のハードウエア構成100を説明する図である。
次に、サーバ60(サーバA1、A2、B1、B2、C1、C2)及びクライアント70(クライアントA1、A2、B1、B2、C1、C2)のハードウエア構成を説明する。
図3は、サーバ60及びクライアント70のハードウエア構成100を説明する図である。
ハードウエア構成100は、CPU101、ROM102、RAM103、HDD104、通信用入出力インターフェイス(通信IF)105、入出力インターフェイス(入出力IF)106、入出力IF106に接続されたディスプレイ107、入出力IF106に接続された入力デバイス108、及びバス110を備える。
ROM102は、電源の供給がない場合でも記憶した(書き込まれた)データを保持する不揮発メモリである。ROM102は、例えば、EPROM、EEPROM、フラッシュメモリなどである。ROM102は、サーバ60及びクライアント70をそれぞれ動作させるアプリケーションソフトウエア(プログラム)やプログラムが用いる定数や変数の初期値などのデータを記憶する。
RAM103は、電源の供給が絶たれると記憶したデータが失われる揮発メモリである。RAM103は、ROM102より、データの読み書きが高速である。RAM103は、例えばDRAMである。RAM103は、ROM102に記憶されたプログラムやデータが読み出され、実行可能な状態に展開されて書き込まれるとともに、サーバ60及びクライアント70を動作させるためのデータを記憶するワークエリアとして使用される。
HDD104は、電源の供給がない場合でも記憶した(書き込まれた)データを保持する書き換え可能な不揮発メモリであって、大容量のデータを記憶する。ROM102と同様に、サーバ60及びクライアント70をそれぞれ動作させるアプリケーションソフトウエア(プログラム)やプログラムが用いる定数や変数の初期値などのデータを記憶してもよい。
通信IF105は、サーバ60の場合には、図1に示したルータ30やLAN80とのインターフェイスであり、クライアント70の場合には、図1に示したLAN80とのインターフェイスである。
入出力IF106は、ディスプレイ107及び入力デバイス108に接続されている。ディスプレイ107は、画像を視認することが可能なLCDなどである。入力デバイス108は、操作者(使用者)がCPU101に指示を与えるためのデバイスであって、キーボード、タッチパネル、スイッチなどである。
バス110は、CPU101、ROM102、RAM103、HDD104、通信IF105、及び入出力IF106に接続され、CPU101の制御によって、プロラムやデータの入出力を可能にする。
入出力IF106は、ディスプレイ107及び入力デバイス108に接続されている。ディスプレイ107は、画像を視認することが可能なLCDなどである。入力デバイス108は、操作者(使用者)がCPU101に指示を与えるためのデバイスであって、キーボード、タッチパネル、スイッチなどである。
バス110は、CPU101、ROM102、RAM103、HDD104、通信IF105、及び入出力IF106に接続され、CPU101の制御によって、プロラムやデータの入出力を可能にする。
CPU101は、電源が投入されると、ROM102(又は、HDD104)に記憶されたプログラムやデータを読み出して、RAM103上に実行可能な状態に展開して書き込む。そして、プログラムを実行する。プログラムの実行にともない、HDD104、通信IF105、入出力IF106とデータのやり取りを行う。
上記では、ROM102、RAM103及びHDD104を設けたが、ROM102、RAM103及びHDD104のいくつかを、書き換え可能な不揮発メモリによって構成してもよい。書き換え可能な不揮発メモリとしては、フラッシュメモリなどを用いればよい。また、ROM102、RAM103をCPU101と一体に構成してもよい。この場合、ROM102、RAM103を書き換え可能な不揮発メモリによって構成してもよい。書き換え可能な不揮発メモリとしては、フラッシュメモリなどを用いればよい。
ハードウエア構成100が図1に示すサーバ60である場合、ディスプレイ107及び/又は入力デバイス108を備えなくてもよい。また、ハードウエア構成100が図1に示すクライアント70である場合、HDD104を備えなくてもよい。
(サーバ60の機能ブロック構成)
次に、サーバ60(サーバA1、A2、B1、B2、C1、C2)の機能ブロックの構成(機能ブロック構成)を説明する。以下では、サーバA1、A2、B1、B2、C1、C2の機能は、共通であるとしてサーバ60として説明する。なお、クライアントA1、A2、B1、B2、C1、C2は、クライアント70として説明する。
図4は、サーバ60の機能ブロック構成を説明する図である。
次に、サーバ60(サーバA1、A2、B1、B2、C1、C2)の機能ブロックの構成(機能ブロック構成)を説明する。以下では、サーバA1、A2、B1、B2、C1、C2の機能は、共通であるとしてサーバ60として説明する。なお、クライアントA1、A2、B1、B2、C1、C2は、クライアント70として説明する。
図4は、サーバ60の機能ブロック構成を説明する図である。
サーバ60は、サーバ60を制御する制御部201、依頼されたサービスを処理(実行)するサービス処理部202、及び、サーバ60のサービス状況を蓄積(記録)するサービス状況蓄積部203を備える。また、サーバ60は、クライアント70からサービスの依頼(サービス要求)を受信するサービス要求受信部204、及び、クライアント70へサービス(サービス要求に対するサービス応答)を送信するサービス送信部205を備える。なお、サービス状況蓄積部203が蓄積するサービス状況については、後述する。
そして、サーバ60は、クライアント70からのサービス要求をイントラネット10の外部にある他のサーバ60に転送(送信)し、サービス応答を受信するサービス要求転送/応答受信部206、及び、イントラネット10の外部にある他のサーバ60から転送されたサービス要求を受信し、サービス応答を送信する外部サービス要求受信/応答送信部207を備える。さらに、サーバ60は、サービス要求やサービス応答などに関するデータが送受信されるサービスバス210を備える。
以下では、「サービスの依頼」を「サービス要求」と表記し、「サービス」を「サービス要求に対する応答」、「サービス応答」又は「応答」と表記する。また、サービス要求を他のサーバ60に転送するサーバ60を、「転送元サーバ」又は「送信元サーバ」と表記し、サービス要求が転送(送信)される他のサーバを、「転送先サーバ」又は「送信先サーバ」と表記することがある。
以下では、「サービスの依頼」を「サービス要求」と表記し、「サービス」を「サービス要求に対する応答」、「サービス応答」又は「応答」と表記する。また、サービス要求を他のサーバ60に転送するサーバ60を、「転送元サーバ」又は「送信元サーバ」と表記し、サービス要求が転送(送信)される他のサーバを、「転送先サーバ」又は「送信先サーバ」と表記することがある。
制御部201、サービス処理部202、サービス状況蓄積部203、サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、サービスバス210に接続されている。そして、サービス処理部202、サービス状況蓄積部203、サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、制御部201によって制御される。
サービス要求受信部204、サービス送信部205は、LAN80に接続されている。また、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ルータ30(図1参照)を介して、ネットワーク20に接続されている。なお、図4では、ルータ30の記載を省略している。
サービス要求受信部204、サービス送信部205は、LAN80に接続されている。また、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ルータ30(図1参照)を介して、ネットワーク20に接続されている。なお、図4では、ルータ30の記載を省略している。
サーバ60の基本的な動作を説明する。
サービス要求受信部204は、サーバ60にLAN80を経由して接続されたクライアント70からサービス要求を受信する。すると、制御部201は、サーバ60がサービス要求に係るサービスを提供する場合(図2参照)、自身のサービス処理部202でサービス要求に係るサービスの処理を行なわせる。また、制御部201は、サービス要求転送/応答受信部206から、サーバ60が含まれるイントラネット10の外部にある他のサーバ60にサービス要求を転送する。なお、サービス要求転送/応答受信部206は、サービス要求が転送された他のサーバ60からサービス応答を受信する。
サービス要求受信部204は、サーバ60にLAN80を経由して接続されたクライアント70からサービス要求を受信する。すると、制御部201は、サーバ60がサービス要求に係るサービスを提供する場合(図2参照)、自身のサービス処理部202でサービス要求に係るサービスの処理を行なわせる。また、制御部201は、サービス要求転送/応答受信部206から、サーバ60が含まれるイントラネット10の外部にある他のサーバ60にサービス要求を転送する。なお、サービス要求転送/応答受信部206は、サービス要求が転送された他のサーバ60からサービス応答を受信する。
外部サービス要求受信/応答送信部207は、他のサーバ60からのサービス要求を受信する。制御部201は、サーバ60が他のサーバ60からのサービス要求に係るサービスを提供する場合、自身のサービス処理部202にて、サービス要求に係るサービスの処理を行わせる。そして、制御部201は、転送されたサービス要求に対するサービス応答を外部サービス要求受信/応答送信部207から、サービス要求を転送した他のサーバ60に送信する。
制御部201は、自身のサービス処理部202からのサービス応答、又は、サービス要求を転送した他のサーバ60からのサービス応答を、サービス送信部205から、サービス要求したクライアント70に送信する。なお、サービス要求を転送した他のサーバ60からのサービス応答は、サービス要求転送/応答受信部206が受信する。
そして、サービス要求、サービス応答などのサービス状況の記録が、サービス状況蓄積部203に保存される。
そして、サービス要求、サービス応答などのサービス状況の記録が、サービス状況蓄積部203に保存される。
つまり、サーバ60は、サービス要求転送/応答受信部206を備えることで、サービス要求を他のサーバ60に転送し、他のサーバ60からのサービス応答を受信する。また、外部サービス要求受信/応答送信部207を備えることで、他のサーバ60からのサービス要求を受信し、サービス応答を送信するように構成されている。
次に、図4に示すサーバ60の機能ブロックと図3に示したハードウエア構成100との関係を説明する。
制御部201及びサービス処理部202は、ハードウエア構成100におけるCPU101によって実現され、サービス状況蓄積部203は、ハードウエア構成100におけるHDD104によって実現される。サービス状況蓄積部203は、前述したように、HDD104の代わりに、書き換え可能な不揮発メモリによって構成されてもよい。サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ハードウエア構成100における通信IF105によって実現される。サービスバス210は、バス110によって実現される。
そして、サービス処理部202、サービス状況蓄積部203、サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ROM102(又は、HDD104)に記憶されたプログラムやデータに基づいて構成され、CPU101、つまり制御部201によって制御される。
制御部201及びサービス処理部202は、ハードウエア構成100におけるCPU101によって実現され、サービス状況蓄積部203は、ハードウエア構成100におけるHDD104によって実現される。サービス状況蓄積部203は、前述したように、HDD104の代わりに、書き換え可能な不揮発メモリによって構成されてもよい。サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ハードウエア構成100における通信IF105によって実現される。サービスバス210は、バス110によって実現される。
そして、サービス処理部202、サービス状況蓄積部203、サービス要求受信部204、サービス送信部205、サービス要求転送/応答受信部206及び外部サービス要求受信/応答送信部207は、ROM102(又は、HDD104)に記憶されたプログラムやデータに基づいて構成され、CPU101、つまり制御部201によって制御される。
(サービス状況蓄積部203)
次に、サービス状況蓄積部203を説明する。
図5は、サービス状況蓄積部203が蓄積するサービス状況の一例を示す図である。サービス状況蓄積部203には、サーバ60に接続されたクライアント70からのサービス要求に対するサービス提供の状況(サービス状況)に関する項目が記録(レコード)として蓄積されている。図5では、イントラネット11におけるサーバA1に接続されたクライアントA1が、サーバA1に対して行ったサービス要求に対するサービス状況に関する項目が蓄積(記録)されている。ここで、サービス状況とは、サービス要求に対する応答(サービス応答)がクライアント70に送信された(サービスが提供された)場合の他、サービス応答がクライアント70に送信されなかった場合やサービス要求に対して応答できない場合などの記録を含む。なお、サービス要求に対して応答できない場合とは、図2に示したように、サーバ60がサービス要求に係るサービスを提供しない場合である。
次に、サービス状況蓄積部203を説明する。
図5は、サービス状況蓄積部203が蓄積するサービス状況の一例を示す図である。サービス状況蓄積部203には、サーバ60に接続されたクライアント70からのサービス要求に対するサービス提供の状況(サービス状況)に関する項目が記録(レコード)として蓄積されている。図5では、イントラネット11におけるサーバA1に接続されたクライアントA1が、サーバA1に対して行ったサービス要求に対するサービス状況に関する項目が蓄積(記録)されている。ここで、サービス状況とは、サービス要求に対する応答(サービス応答)がクライアント70に送信された(サービスが提供された)場合の他、サービス応答がクライアント70に送信されなかった場合やサービス要求に対して応答できない場合などの記録を含む。なお、サービス要求に対して応答できない場合とは、図2に示したように、サーバ60がサービス要求に係るサービスを提供しない場合である。
図5に示すサービス状況は、サーバA1がサービス要求受信部204で受信したサービス要求に関する記録(レコード)である。ここでは、サービス状況蓄積部203には、一例として、レコードの番号(レコードNo.)、サービス要求を受信し処理したサーバ(サーバA1)又は転送したサーバ(サーバA2、B1、B2、C1、C2)、サービス要求に係るサービス(サービス1〜4)、サービス応答に要した応答時間TAT(Turn Around Time)、採用可否及び回答受信時間が蓄積(記憶)されている。つまり、サービス状況蓄積部203は、応答時間TATの情報を保持する。
なお、サーバA1に対しては、サーバA1が含まれるイントラネット11内のクライアント70(クライアントA1、B1)からサービス要求される。このとき、サーバA1がサービス要求に係るサービスを提供する場合には、レコードNo.1のように、自身によるサービス要求の処理が記録される。
また、サーバA1は、サーバA1とともにイントラネット11に含まれるサーバA2に対してもサービス要求を転送するようになっている。
また、サーバA1は、サーバA1とともにイントラネット11に含まれるサーバA2に対してもサービス要求を転送するようになっている。
ここで、応答時間TATとは、サービス要求受信部204が受信したサービス要求を、サービス要求転送/応答受信部206から他のサーバ60に転送(送信)してから、他のサーバ60からサービス要求転送/応答受信部206でサービス応答を受信するまでに要した時間をいう。ここでは、msで示している。なお、応答時間TATには、レコードNo.1のように、自身のサービス処理部202での処理を開始してから、サービス応答を送信可能になるまでの時間を含む。
そして、採用可否とは、サービス応答がクライアント70に送信された(サービスが提供された)か否かを示す指標(フラグ)である。送信された場合を採用されたとして“採用”、提供しなかった場合を不採用として“不採用”と表記する。なお、“採用”をTrue(1)、“不採用”をFalse(0)と符号で表してもよい。そして、回答受信時間とは、サービス応答を受信又はサービス要求に対して応答できない旨の通知を受信した時間をいう。ここでは、回答には、「サービス応答(応答)」と「サービス要求に対して応答できない旨の通知」とを含む。
なお、サービス要求転送/応答受信部206は、他のサーバ60からの「サービス要求に対して応答できない旨の通知」を「サービス応答(応答)」と同様に受信する。また、外部サービス要求受信/応答送信部207は、他のサーバ60からのサービス要求に対して、「サービス要求に対して応答できない旨の通知」を「サービス応答(応答)」と同様に送信する。
以下に、図5に示したサービス状況を説明する。ここでは、クライアントA1(クライアント70)がサーバA1(サーバ60)に対してサービス要求を行っている。そして、サーバ60(サーバA1、A2、B1、B2、C1、C2)は、図2に示したサービス1〜4を提供するとする。
レコードNo.1では、サーバA1が、クライアントA1からのサービス1のサービス要求に対して、サービス応答したことが記録されている。図2に示したように、サーバA1は、サービス1を提供しうる。つまり、クライアントA1が接続されているサーバA1は、自身のサービス処理部202(図4参照)においてサービス1を処理している。応答時間TATは、900msである。
次に、レコードNo.2では、サーバB2が、クライアントA1からのサービス1のサービス要求に対して、サービス応答したことが記録されている。図2に示したように、サーバB2は、サービス1を提供しうる。つまり、サーバB2は、サーバA1のサービス要求転送/応答受信部206(図4参照)からのサービス1のサービス要求を受信し、サービス応答をサーバA1のサービス要求転送/応答受信部206に送信している。応答時間TATは、1100msである。
ここでは、サーバA1からの応答時間TATがサーバB2からの応答時間TATより短く、且つ、先に到着している。よって、サーバA1からの応答が採用されてクライアントA1に送信されている。よって、レコードNo.1のサーバA1からの応答が“採用”と記録され、レコードNo.2のサーバB2からの応答が“不採用”と記録されている。
レコードNo.3では、クライアントA1からのサービス2のサービス要求があった際に、サーバC1からサービス要求に対して応答できない旨の通知を受信したことが記録されている。これは、図2に示されているように、サーバC1は、サービス2を提供しないためである。
同様に、レコードNo.4では、クライアントA1からのサービス3のサービス要求があった際に、サーバA2がサービス要求に対して応答できない旨の通知を受信したことが記録されている。これは、図2に示されているように、サーバA2は、サービス3を提供しないためである。これらの場合、サーバA1は、サービス要求転送/応答受信部206から、クライアントA1からのサービス2、3のサービス要求を他のサーバ60(サーバA2、C1)に対して行っている。なお、レコードNo.3、4では、サービス要求に対して応答できないために、応答時間TAT及び採用可否の欄が空欄になっている。
同様に、レコードNo.4では、クライアントA1からのサービス3のサービス要求があった際に、サーバA2がサービス要求に対して応答できない旨の通知を受信したことが記録されている。これは、図2に示されているように、サーバA2は、サービス3を提供しないためである。これらの場合、サーバA1は、サービス要求転送/応答受信部206から、クライアントA1からのサービス2、3のサービス要求を他のサーバ60(サーバA2、C1)に対して行っている。なお、レコードNo.3、4では、サービス要求に対して応答できないために、応答時間TAT及び採用可否の欄が空欄になっている。
そして、レコードNo.n(nは、5以上の整数)では、サーバC2が、クライアントA1からのサービス4のサービス要求に対して、サービス応答したことが記録されている。図2に示したように、サーバC2は、サービス4を提供しうる。つまり、サーバA1は、サービス要求転送/応答受信部206から、クライアントA1からのサービス4のサービス要求を他のサーバ60(サーバC2)に対して行っている。これに対して、サーバC2からのサービス4のサービス要求に対するサービス応答は、応答時間TATが200msで受信されている。そして、このサービス応答が、“採用”になっている。
(サーバ60の動作)
次に、サーバ60の動作をフローチャートで説明する。
図6は、サーバ60の動作を説明するフローチャートである。
まず、サーバ60(例えば、サーバA1)に接続されたクライアント70(例えば、クライアントA1)が、サーバ60に向けてサービスを要求(サービス要求)する。
すると、サービス要求受信部204(図4参照)は、クライアント70からのサービス要求を受信する(ステップ11。図6では、S11と表記する。他の場合も同様とする。)。
次に、サーバ60の動作をフローチャートで説明する。
図6は、サーバ60の動作を説明するフローチャートである。
まず、サーバ60(例えば、サーバA1)に接続されたクライアント70(例えば、クライアントA1)が、サーバ60に向けてサービスを要求(サービス要求)する。
すると、サービス要求受信部204(図4参照)は、クライアント70からのサービス要求を受信する(ステップ11。図6では、S11と表記する。他の場合も同様とする。)。
制御部201は、自身のサーバ60がサービス要求に係るサービスを提供するか否かを判断する(ステップ12)。
ステップ12で、肯定(YES)の判断がされた場合、つまり自身のサーバ60がサービス要求に係るサービスを提供する場合には、サービス処理部202によりサービス要求を処理させる(ステップ13)。一方、ステップ12で、否定(NO)の判断がされた場合、つまり自身がサービス要求に係るサービスを提供しない場合には、ステップ13をスキップする。
ステップ12で、肯定(YES)の判断がされた場合、つまり自身のサーバ60がサービス要求に係るサービスを提供する場合には、サービス処理部202によりサービス要求を処理させる(ステップ13)。一方、ステップ12で、否定(NO)の判断がされた場合、つまり自身がサービス要求に係るサービスを提供しない場合には、ステップ13をスキップする。
例えば、サーバA1は、図2に示したように、サービス1、3を提供するが、サービス2、4は提供しない。よって、サービス要求がサービス1又はサービス3であれば、サーバA1は、自身のサービス処理部202において、サービス要求を処理する。一方、サービス要求がサービス2又はサービス4であれば、サーバA1は、サービス2、4を提供しない、つまり自身のサービス処理部202においてサービス要求を処理できないため、そのままとする(処理しない)。
ステップ12と並行して、制御部201は、サービス状況蓄積部203にサービス要求にサービス応答したレコードを検索する(ステップ14)。そして、制御部201は、レコードが有る(レコード有)か否かを判断する(ステップ15)。つまり、サービス状況蓄積部203により、今回のサービス要求と同一のサービス要求が過去においてされ、サービス応答したレコードを抽出する。
ステップ15で、肯定(YES)の判断がされた場合、つまり過去において、今回のサービス要求と同一のサービス要求にサービス応答したレコードがある場合には、制御部201は、サービス応答したサーバ60に基づいて、サーバリストを作成する(サーバリスト作成)(ステップ16)。つまり、サーバリストには、サービス要求を転送する転送先となるサーバ60がリストアップされている。なお、サービス要求を転送しないサーバ60は除かれている。ステップ16のサーバリスト作成については、後述する。
そして、制御部201は、サーバリストにあるサーバ60に対して、サービス要求転送/応答受信部206から、サービス要求を送信(転送)する(ステップ17)。
そして、制御部201は、サーバリストにあるサーバ60に対して、サービス要求転送/応答受信部206から、サービス要求を送信(転送)する(ステップ17)。
一方、ステップ15で、否定(NO)の判断がされた場合、つまり過去において、今回のサービス要求と同一のサービス要求にサービス応答をしたレコードがない場合には、制御部201は、空のサーバリストを作成する(ステップ18)。そして、サービス要求転送/応答受信部206から、自身を除く他のサーバ60のすべてに対して、サービス要求を一斉に転送(送信)(ブロードキャスト転送)する(ステップ19)。なお、ステップ18を省略してもよい。
また、ステップ18で、空のサーバリストの代わりに、他の全てのサーバ60(他の全サーバ60)を含むサーバリストを作成してもよい。この場合は、フローがステップ18からステップ17に移るようにしてもよい。
また、ステップ18で、空のサーバリストの代わりに、他の全てのサーバ60(他の全サーバ60)を含むサーバリストを作成してもよい。この場合は、フローがステップ18からステップ17に移るようにしてもよい。
次に、制御部201は、サービス要求に対する回答(回答有)を待つ(ステップ20)。なお、前述したように、回答には、自身のサービス処理部202でサービス要求を処理した場合のサービス応答、及び、サービス要求転送/応答受信部206への他のサーバ60からのサービス応答又はサービス要求に応答できない旨の通知を含む。なお、自身のサーバ60がサービス要求に係るサービスを提供しない場合には、サービス処理部202での処理を行わないため、回答を待たない。
そして、ステップ20で、肯定(YES)の判断がされた場合、つまり回答が有った(回答有)場合には、回答が最初のサービス応答か否かを判断する(ステップ21)。なお、最初のサービス応答には、自身のサービス処理部202でサービス要求に対する処理をした場合のサービス応答、及び、サービス要求転送/応答受信部206への他のサーバ60から受信したサービス応答の内における最初のものをいう。
ステップ21で、肯定(YES)の判断がされた場合、つまり最初のサービス応答である場合には、制御部201は、サービス送信部205からサービス要求をしたクライアント70にサービス応答を送信(サービスを提供)する(ステップ22)。そして、このサービス応答が、“採用”になる。
そして、制御部201は、回答に関する項目(図5に示した項目)をサービス状況蓄積部203にレコードとして記録する(ステップ23)。
そして、制御部201は、回答に関する項目(図5に示した項目)をサービス状況蓄積部203にレコードとして記録する(ステップ23)。
一方、ステップ21で、否定(NO)の判断がされた場合、つまり最初のサービス応答でない場合には、制御部201は、回答に関する項目(図5に示した項目)をサービス状況蓄積部203にレコードとして記録する(ステップ23)。
なお、複数のサーバ60に対してサービス要求した場合には、複数のサーバ60のすべてから回答を受信して、回答に関する項目をレコードとして記録するまで、ステップ20〜23が行われる。なお、複数のサーバ60に対してサービス要求した場合であっても、全てのサーバ60からの回答に関してレコードとして記録しなくてもよい。例えば、初めてのサービス要求に対しては、全てのサーバ60からの回答に関してレコードとして記録し、2回目以降のサービス要求に対しては、早いものから5個などと基準を設けて回答をレコードとして記録してもよい。また、応答時間TATに差がある場合には、下位のサーバ60からの回答をレコードとして記録しないようにしてもよい。そして、時間を設定して(タイムアウトを設けて)、設定した時間が経過した後は、回答を待つことを中断してもよい。タイムアウトを設けることで、サーバ60の待ち時間が削減され、サーバ60の稼働率が向上する。
上記では、サービス要求と同一のサービス要求にサービス応答したレコードがある場合には、サービス状況蓄積部203のレコードに基づいて、サーバリストを作成し、サーバリストのサーバ60にサービス応答を転送するとした。しかし、サービス要求と同一のサービス要求の回数が2回目、3回目などと少ない場合には、自身を除く他の全てのサーバ60にサービス要求をブロードキャスト転送するとしてもよい。このようにすることで、サーバ60の応答時間TATのばらつきなどが分かる。
ここでは、同一のサービス要求とするが、全く同一であることを要せず、処理のルーチンが共通するなどの同種のサービス要求であってもよい。
次に、図1に示した情報処理システム1を例として、クライアントA1とサーバA1、A2、B1、B2、C1、C2との動作を説明する。なお、サーバA1、A2、B1、B2、C1、C2は、図2に示したサービス(サービス1〜4)を提供するとする。
まず、サーバ60のサービス状況蓄積部203に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合、つまり図6のフローチャートのステップ15で否定(NO)の判断がされた場合を説明する。
図7は、サーバ60のサービス状況蓄積部203に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合を説明するシーケンス図である。
図7は、サーバ60のサービス状況蓄積部203に、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがない場合を説明するシーケンス図である。
クライアントA1は、LAN81により、サーバA1に接続されている(図1参照)。よって、クライアントA1は、LAN81を介して、サーバA1にサービス1のサービス要求を行う(ステップ101。図7では、S101と表記する。)。以下では、サービス1のサービス要求を「サービス1要求」と、サービス1のサービス要求に対するサービス応答を、「サービス1応答」と、サービス1のサービス要求に対してサービス応答できない旨の通知を「サービス1応答不能通知」と表記する。
サーバA1のサービス要求受信部204は、クライアントA1からのサービス1要求を受信する。図6のフローチャートのステップ14で説明したように、サーバA1の制御部201は、サービス状況蓄積部203をサービス1で検索する。この場合、サーバA1のサービス状況蓄積部203には、サービス1要求に対してサービス応答がされたレコードがない。よって、図6のフローチャートのステップ19で説明したように、サーバA1の制御部201は、自身を除く他の全サーバA2、B1、B2、C1、C2に対して、サービス1要求をサービス要求転送/応答受信部206から一斉に転送(送信)する(ブロードキャスト転送)(ステップ102)。
サーバA1は、図2に示したようにサービス1を提供するので、サーバA1の制御部201は、図6のフローチャートのステップ12で説明したように、自身のサービス処理部202でサービス要求を処理する。それに合わせて、図6のフローチャートのステップ20で説明したように、他のサーバA2、B1、B2、C1、C2からの回答を待つ。前述したように、回答には、サービス1要求に対するサービス1応答の他、サービス1要求に応答できない旨の通知を含む。
次に、サーバA1のサービス要求転送/応答受信部206は、サーバA2からサービス1要求に対するサービス1応答を受信する(ステップ103)。図2に示すように、サーバA2は、サービス1を提供するので、サーバA2は、サービス1応答を送信する。すると、図6のフローチャートのステップ21で説明したように、サーバA1の制御部201は、サーバA2からのサービス1応答がサービス1要求に対する最初のサービス応答であるか否かを判断する。ここでは、最初のサービス応答であることから、図6のフローチャートのステップ22で説明したように、サーバA2からのサービス1応答をクライアントA1に送信する(ステップ104)。つまり、サーバA2からのサービス1応答が、“採用”となる。
次に、サーバA1の制御部201は、サーバA1のサービス処理部202からサービス1応答を受信する(ステップ105)。サーバA1のサービス処理部202からのサービス1応答は、サーバA2からのサービス1応答より後であって、最初のサービス1応答でない。よって、サーバA1のサービス1応答は、クライアントA1には送信されない。つまり、“不採用”となる。
次に、サーバA1のサービス要求転送/応答受信部206は、サーバB1から、サービス1応答不能通知を受信する(ステップ106)。図2から分かるように、サーバB1は、サービス1を提供しない。
そして、サーバA1のサービス要求転送/応答受信部206は、サーバB2からサービス1応答を受信する(ステップ107)。図2から分かるように、サーバB2は、サービス1を提供する。しかし、サーバB2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
そして、サーバA1のサービス要求転送/応答受信部206は、サーバB2からサービス1応答を受信する(ステップ107)。図2から分かるように、サーバB2は、サービス1を提供する。しかし、サーバB2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
同様にして、サーバA1のサービス要求転送/応答受信部206は、サーバC1から、サービス1応答不能通知を受信する(ステップ108)。図2から分かるように、サーバC1は、サービス1を提供しない。
そして、サーバA1のサービス要求転送/応答受信部206は、サーバC2からサービス1応答を受信する(ステップ109)。図2から分かるように、サーバC2は、サービス1を提供する。しかし、サーバC2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
なお、サーバA1、B2、C2のいずれかからのサービス1応答が、サーバA2からのサービス1応答より早ければ、そのサービス1応答が、クライアントA1に送信される。
そして、サーバA1のサービス要求転送/応答受信部206は、サーバC2からサービス1応答を受信する(ステップ109)。図2から分かるように、サーバC2は、サービス1を提供する。しかし、サーバC2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
なお、サーバA1、B2、C2のいずれかからのサービス1応答が、サーバA2からのサービス1応答より早ければ、そのサービス1応答が、クライアントA1に送信される。
ここでは、全てのサーバA1、A2、B1、B2、C1、C2からの回答を受信したのち、図6のフローチャートのステップ23で説明したように、制御部201は、サーバA1、A2、B1、B2、C1、C2からのサービス1要求に対するそれぞれの回答に関する項目(図5に示した項目)をサービス状況蓄積部203にレコードとして記録する(ステップ110)。なお、サービス状況蓄積部203には、サービス1要求に関するレコードがなかったので、サービス1要求に対するレコードは、新規に作成される。
なお、制御部201は、サーバA1、A2、B1、B2、C1、C2から回答を受信したそれぞれのタイミングにおいて、サービス状況蓄積部203にレコードとして記録してもよい。
なお、制御部201は、サーバA1、A2、B1、B2、C1、C2から回答を受信したそれぞれのタイミングにおいて、サービス状況蓄積部203にレコードとして記録してもよい。
次に、クライアント70が過去において、今回のサービス要求と同一のサービス要求に対してサービス応答がされたレコードがある場合を説明する。
図8は、サーバ60のサービス状況蓄積部203に、過去において、今回のサービス要求と同じサービス要求に対してサービス応答がされたレコードがある場合を説明するシーケンス図である。つまり、図6のステップ15において、肯定(YES)の判断がされた場合である。
図8は、サーバ60のサービス状況蓄積部203に、過去において、今回のサービス要求と同じサービス要求に対してサービス応答がされたレコードがある場合を説明するシーケンス図である。つまり、図6のステップ15において、肯定(YES)の判断がされた場合である。
クライアントA1は、LAN81により、サーバA1に接続されている(図1参照)。よって、クライアントA1は、LAN81を介して、サーバA1にサービス1要求を行う(ステップ201)。ステップ201は、図7のステップ101と同じである。
サーバA1のサービス要求受信部204は、クライアントA1からのサービス1要求を受信する。図6のフローチャートのステップ14で説明したように、サーバA1の制御部201は、サービス状況蓄積部203をサービス1で検索する。この場合、サーバA1のサービス状況蓄積部203には、サービス1要求に対してサービス応答がされたレコードがある。よって、図6のフローチャートのステップ16で説明したように、サービス1応答したサーバ60に基づいてサーバリストを作成する。ここでのサーバリストは、一例として、サービス1応答可能なサーバA2、B2、C2がリストアップされているとする(図2参照)。そして、図6のフローチャートのステップ17で説明したように、サーバリストにリストアップされたサーバ60に、サービス1要求を転送する(ステップ202)。
サーバA1は、図2に示したようにサービス1を提供するので、サーバA1の制御部201は、図6のフローチャートのステップ12で説明したように、自身のサービス処理部202でサービス要求を処理する。それに合わせて、図6のフローチャートのステップ20で説明したように、他のサーバA2、B2、C2からの回答を待つ。
次に、サーバA1のサービス要求転送/応答受信部206は、サーバA2からサービス1要求に対するサービス1応答を受信する(ステップ203)。すると、図6のフローチャートのステップ21で説明したように、サーバA1の制御部201は、サーバA2からのサービス1応答がサービス1要求に対する最初のサービス応答であるか否かを判断する。ここでは、最初のサービス応答であることから、図6のフローチャートのステップ22で説明したように、サーバA2からのサービス1応答をクライアントA1に送信する(ステップ204)。つまり、サーバA2からのサービス1応答が、“採用”となる。
次に、サーバA1の制御部201は、サーバA1のサービス処理部202からサービス1応答を受信する(ステップ205)。サーバA1のサービス処理部202からのサービス1応答は、サーバA2からのサービス1応答より後であって、最初のサービス1応答でない。よって、サーバA1のサービス1応答は、クライアントA1には送信されない。つまり、“不採用”となる。
そして、サーバA1のサービス要求転送/応答受信部206は、サーバB2からサービス1応答を受信する(ステップ206)。しかし、サーバB2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
同様にして、サーバA1のサービス要求転送/応答受信部206は、サーバC2からサービス1応答を受信する(ステップ207)。しかし、サーバC2からのサービス1応答は、最初のサービス1応答でないため、クライアントA1には送信されない。つまり、“不採用”となる。
なお、サーバA1、B2、C2のいずれかからのサービス1応答が、サーバA2からのサービス1応答より早ければ、そのサービス1応答が、クライアントA1に送信される。
なお、サーバA1、B2、C2のいずれかからのサービス1応答が、サーバA2からのサービス1応答より早ければ、そのサービス1応答が、クライアントA1に送信される。
ここでは、サーバA1、A2、B2、C2からの回答(サービス1応答)を受信したのち、図6のフローチャートのステップ23で説明したように、制御部201は、サーバA1、A2、B2、C2からのそれぞれの回答(サービス1応答)に関する項目(図5に示した項目)をサービス状況蓄積部203にレコードとして記録する(ステップ208)。この際、サービス状況蓄積部203にあったサービス1要求に関するレコードが更新されて(書き換えられて)もよく、追記されてもよい。
なお、制御部201は、サーバA1、A2、B2、C2から回答(サービス1応答)を受信したそれぞれのタイミングにおいて、サービス状況蓄積部203にレコードとして記録してもよい。
なお、制御部201は、サーバA1、A2、B2、C2から回答(サービス1応答)を受信したそれぞれのタイミングにおいて、サービス状況蓄積部203にレコードとして記録してもよい。
以上説明したように、一つのサービス要求に対して、複数のサーバ60がサービス提供可能な場合に、最初のサービス応答がクライアント70に提供されるようになっている。ここでは、クライアント70がサービス要求を行うサーバ60が、そのサービスを提供する場合であっても、自身のサーバ60を含めて、最初のサービス応答がクライアント70に提供される。よって、クライアント70は、サービスを提供可能なサーバ60を選択することなく、サービス応答、つまりサービス提供が最も早く応答したサーバ60から受けられる。
上記では、自身のサーバ60がサービス要求に係るサービスを提供する場合に、自身のサーバ60のサービス処理部202からのサービス応答が、他のサーバ60によるサービス応答より遅いとした。これは、自身のサーバ60が、先に依頼された他の処理で重くなっているときなどに生じる。このため、他のサーバ60からのサービス応答が先になることがありうる。しかし、自身のサーバ60によるサービス要求に対するサービス応答が、他のサーバ60からのサービス応答より早い場合には、自身のサーバ60がサービスを提供するサービス要求に対しては、他のサーバ60にサービス要求を転送しないように構成してもよい。
(サーバリスト作成)
次に、図6のフローチャートのステップ16のサーバリスト作成(サーバリストの作成方法)についての実施例を説明する。サーバリストは、サーバ60のサービス状況蓄積部203に、過去において、今回のサービス要求と同じサービス要求に対するサービス応答がされたレコードがある場合に作成される。そして、サーバリストには、サービス要求を転送するサーバ60がリストアップされる。
次に、図6のフローチャートのステップ16のサーバリスト作成(サーバリストの作成方法)についての実施例を説明する。サーバリストは、サーバ60のサービス状況蓄積部203に、過去において、今回のサービス要求と同じサービス要求に対するサービス応答がされたレコードがある場合に作成される。そして、サーバリストには、サービス要求を転送するサーバ60がリストアップされる。
図9は、サーバリスト作成の実施例1を説明するフローチャートである。
実施例1では、サービス状況蓄積部203にサービス要求にサービス応答したレコードを検索して抽出したサーバ60から、応答時間TATが短いサーバ60を特定し、そのサーバ60を選択してサーバリストを作成する。つまり、サーバ60の数を制限している。なお、特定とは、サーバ60の内、応答時間TATが短いサーバ60を見つけ出すことをいう。
実施例1では、サービス状況蓄積部203にサービス要求にサービス応答したレコードを検索して抽出したサーバ60から、応答時間TATが短いサーバ60を特定し、そのサーバ60を選択してサーバリストを作成する。つまり、サーバ60の数を制限している。なお、特定とは、サーバ60の内、応答時間TATが短いサーバ60を見つけ出すことをいう。
検索して抽出したレコードを、応答時間TATが短い順に並び変える(ソートする)(TATが短い順にソート)(ステップ31)。そして、応答時間TATが短い上位N個(Nは、1以上の整数)のサーバ60を特定(選択)してサーバリストを作成する(ステップ32)。上位N個にサーバ60の数を限定することにより、サービス要求を転送するサーバ60の数が抑制される。これにより、サーバ60からの応答を待つ時間が短くなる。
ここで、応答時間TATは、サーバ60それぞれの直近(最新)の応答時間TATであってもよい。直近において応答時間TATが短かったことから、今回においても応答時間TATが短いことが期待される。つまり、短い応答時間TATで、今回のサービス要求に対するサービス応答を得ることが期待される。この場合、1回の応答に対応する。
また、応答時間TATは、現時点から予め定められた時間遡った時点までの期間における最短の応答時間TATであってもよい。このようにすることで、サーバ60の応答に対する過去の実績が考慮される。この場合も、1回の応答に対応する。なお、現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム1の時間の経過に伴う状態の変化が反映されやすい。
また、応答時間TATは、現時点から予め定められた時間遡った時点までの期間における最短の応答時間TATであってもよい。このようにすることで、サーバ60の応答に対する過去の実績が考慮される。この場合も、1回の応答に対応する。なお、現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム1の時間の経過に伴う状態の変化が反映されやすい。
さらに、応答時間TATは、サーバ60毎に、現時点から予め定められた時間遡った時点までの期間における、予め定められた複数の回数の応答における応答時間TATの平均値としてもよい。このときは、応答時間TATを平均応答時間TATavに置き換えればよい。なお、現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム1の時間の経過に伴う状態の変化が反映されやすい。なお、回数が同じであれば、複数の回数の応答時間TATの和であってもよい。このときは、応答時間TATを和応答時間TATsumに置き換えればよい。
なお、上記では、平均応答時間TATavとしたが、いわゆる機械学習により応答時間TATの変化を学習させ、応答時間TATが短いサーバ60を予測して、サーバ60を選択してもよい。
なお、上記では、平均応答時間TATavとしたが、いわゆる機械学習により応答時間TATの変化を学習させ、応答時間TATが短いサーバ60を予測して、サーバ60を選択してもよい。
上記における現時点から予め定められた時間遡った時点とは、例えば、情報処理システム1が動作を継続的に行うことによって、一つのサービス要求に対する応答時間TATに変化が見られた時点をいう。例えば、応答時間TATが以前に比べて遅くなったことが感じられるようになった時点である。
図10は、サーバリスト作成の実施例2を説明するフローチャートである。
実施例2では、応答時間TATに閾値時間Tthを設け、閾値時間Tthより短い応答時間TATのサーバ60を特定(選択)して、サーバリストを作成する。
実施例2では、応答時間TATに閾値時間Tthを設け、閾値時間Tthより短い応答時間TATのサーバ60を特定(選択)して、サーバリストを作成する。
検索して抽出したレコードから、応答時間TATが閾値時間Tthよりも短い(TAT<Tth)レコードを抽出する(ステップ41)。そして、抽出されたレコードのサーバ60をリストアプしてサーバリストを作成する(ステップ41)。
ここで、応答時間TATが閾値時間Tth以下(TAT≦Tth)としてもよい。
ここで、応答時間TATが閾値時間Tth以下(TAT≦Tth)としてもよい。
なお、応答時間TATが閾値時間Tthよりも短いレコードが抽出されない場合には、検索されたレコードにおける最短の応答時間TATに基づいて、閾値時間Tthを設定し直すとよい。
応答時間TATは、サーバ60の通信性能及び処理能力などの応答性能を反映すると推定される。このようにしてサーバリストを作成することで、応答性能の高いサーバ60が特定され、そのサーバ60にサービス要求されることになり、クライアント70がサービス応答を受信するまでの時間が短くなる。
応答時間TATは、サーバ60の通信性能及び処理能力などの応答性能を反映すると推定される。このようにしてサーバリストを作成することで、応答性能の高いサーバ60が特定され、そのサーバ60にサービス要求されることになり、クライアント70がサービス応答を受信するまでの時間が短くなる。
また、実施例1と同様に、応答時間TATが閾値時間Tthよりも短いレコードを応答時間TATが短い順にソートし、上位N個(Nは、1以上の整数)のサーバ60を選択してサーバリストを作成してもよい。
そして、応答時間TATは、実施例1と同様に、サーバ60それぞれの直近(最新)の応答時間TATであってもよい。また、応答時間TATは、現時点から予め定められた時間遡った時点までの期間における最短の応答時間TATであってもよい。さらに、応答時間TATは、サーバ60それぞれにおいて、現時点から予め定められた時間遡った時点までの期間における、予め定められた複数の回数の応答における応答時間TATの平均値としてもよい。
図11は、サーバリスト作成の実施例3を説明するフローチャートである。
実施例3では、サービス要求と同一のサービス要求に対するサービス応答を含む、他のサービス要求に対するサービス応答の応答時間TATが短いサーバ60を特定(選択)してサーバリストを作成する。
実施例3では、サービス要求と同一のサービス要求に対するサービス応答を含む、他のサービス要求に対するサービス応答の応答時間TATが短いサーバ60を特定(選択)してサーバリストを作成する。
検索して抽出したレコードから、サーバ60毎に、サービス要求と同一のサービス要求に対するサービス応答、及び、他のサービス要求に対するサービス応答の応答時間TATについて、予め定められた回数の平均応答時間TATavを算出する(ステップ51)。そして、平均応答時間TATavを短い順にソートする(ステップ52)。そして、平均応答時間TATavが短い上位N個(Nは、1以上の整数)のサーバを特定(選択)してサーバリストを作成する(ステップ53)。
サービス要求と同一のサービス要求に対するサービス応答の応答時間TAT及び他のサービス要求に対するサービス応答の応答時間TATがともに短いと、サーバ60は、通信性能及び処理能力などの応答性能が高いと推定される。よって、サービス要求と同一のサービス要求に対するサービス応答の応答時間TATに加え、他のサービス要求に対するサービス応答の応答時間TATを加味することで、応答性能が高いサーバ60が選択される。
なお、サービス毎に応答時間TATが異なる場合には、サービス毎に標準的な応答時間TAT(標準応答時間TATst)を設定し、標準応答時間TATstで応答時間TATを正規化(ノーマライズ)してもよい。
また、平均応答時間TATavは、現時点から予め定められた時間遡った時点までの期間における、応答時間TATによって求めてもよい。現時点から予め定められた時間遡った時点までの期間とすることで、過去の全ての期間とした場合に比べ、情報処理システム1の時間の経過に伴う状態の変化が反映されやすい。
実施例1〜3では、応答時間TAT又は平均応答時間TATavに基づいて定められた規則を適用して、サーバ60が選択されてサーバリストが作成された。
次に、依頼状況に応じて、応答時間TAT又は平均応答時間TATavに基づいて定められた規則とは異なる規則をさらに適用した実施例4、5を説明する。つまり、実施例1〜3と同様なステップの後に、異なる規則によるステップが実行される。ここで、依頼状況とは、下記に示すように、サービス要求のサービス応答を安定して得たい場合や確実にサービス応答(サービス)を得ることを優先する場合など、応答時間TAT又は平均応答時間TATavによるサーバ60の特定に付加してサーバ60を特定したい状況をいう。
次に、依頼状況に応じて、応答時間TAT又は平均応答時間TATavに基づいて定められた規則とは異なる規則をさらに適用した実施例4、5を説明する。つまり、実施例1〜3と同様なステップの後に、異なる規則によるステップが実行される。ここで、依頼状況とは、下記に示すように、サービス要求のサービス応答を安定して得たい場合や確実にサービス応答(サービス)を得ることを優先する場合など、応答時間TAT又は平均応答時間TATavによるサーバ60の特定に付加してサーバ60を特定したい状況をいう。
図12は、サーバリスト作成の実施例4を説明するフローチャートである。
まず、実施例1と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間TATが短い順に並び変える(ソートする)(TATが短い順に第1ソート)(ステップ61)。そして、応答時間TATが短い上位N個(Nは、1以上の整数)のサーバ60を特定(選択)する(ステップ62)。ここで、ステップ61は、図9の実施例1のステップ31と同じであり、ステップ62は、図9の実施例1のステップ32と同様なステップである。
次に、これらのサーバ60を、サービス要求と同一のサービス要求が転送された回数(依頼回数)が多い順に第2ソートする(ステップ63)。そして、依頼回数の多い上位M個(Mは、1以上N以下の整数)のサーバ60を特定(選択)してサーバリストを作成する(ステップ64)。
まず、実施例1と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間TATが短い順に並び変える(ソートする)(TATが短い順に第1ソート)(ステップ61)。そして、応答時間TATが短い上位N個(Nは、1以上の整数)のサーバ60を特定(選択)する(ステップ62)。ここで、ステップ61は、図9の実施例1のステップ31と同じであり、ステップ62は、図9の実施例1のステップ32と同様なステップである。
次に、これらのサーバ60を、サービス要求と同一のサービス要求が転送された回数(依頼回数)が多い順に第2ソートする(ステップ63)。そして、依頼回数の多い上位M個(Mは、1以上N以下の整数)のサーバ60を特定(選択)してサーバリストを作成する(ステップ64)。
依頼回数の多いサーバ60は、サービス要求に対して安定してサービス応答すると推定される。よって、依頼回数の多いサーバ60を選択することで、サービス要求のサービス応答が安定して得られることが期待される。
上記では、実施例1と同様の、応答時間TATが短いレコードにソートし、上位N個のサーバ60を選択するという応答時間TATに基づいて定められた規則に、サービス要求と同一のサービス要求が転送された回数(依頼回数)が多い順という異なる規則をさらに適用した。
なお、ステップ61、62において、実施例1と同様の応答時間TATが短いレコードをソートし、上位N個のサーバ60を選択するステップを用いたが、実施例2と同様に、応答時間TATが閾値時間Tthより短いレコードを抽出するようにしてもよい。また、実施例3と同様に、サービス要求と同一のサービス要求に対するサービス応答の応答時間TATと、他のサ-ビス要求に対する応答時間TATとの平均応答時間TATavを短い順にソートしてもよい。
なお、ステップ61、62において、実施例1と同様の応答時間TATが短いレコードをソートし、上位N個のサーバ60を選択するステップを用いたが、実施例2と同様に、応答時間TATが閾値時間Tthより短いレコードを抽出するようにしてもよい。また、実施例3と同様に、サービス要求と同一のサービス要求に対するサービス応答の応答時間TATと、他のサ-ビス要求に対する応答時間TATとの平均応答時間TATavを短い順にソートしてもよい。
次に、サービス要求が転送されるサーバ60の数を直前と今回とで変化させてサーバリストを作成する実施例5について説明する。
図13は、サーバリスト作成の実施例5を説明するフローチャートである。
まず、実施例1と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間TATが短い順に並び変える(ソートする)(TATが短い順にソート)(ステップ71)。ここで、ステップ71は、図9の実施例1のステップ31と同じである。
次に、直前にサービス要求と同一のサービス要求を転送したサーバ60がI個であった場合、Jだけ多いK個を算出する(K=I+J)(I、J、Kは、1以上の整数)(ステップ72)。そして、応答時間TATが短い上位K個のサーバ60を特定(選択)してサーバリストを作成する(ステップ73)。
図13は、サーバリスト作成の実施例5を説明するフローチャートである。
まず、実施例1と同様なステップが実行される。つまり、検索して抽出したレコードを、応答時間TATが短い順に並び変える(ソートする)(TATが短い順にソート)(ステップ71)。ここで、ステップ71は、図9の実施例1のステップ31と同じである。
次に、直前にサービス要求と同一のサービス要求を転送したサーバ60がI個であった場合、Jだけ多いK個を算出する(K=I+J)(I、J、Kは、1以上の整数)(ステップ72)。そして、応答時間TATが短い上位K個のサーバ60を特定(選択)してサーバリストを作成する(ステップ73)。
上記では、実施例1と同様の、応答時間TATが短いレコードにソートし、上位N個のサーバ60を選択するという応答時間TATに基づいて定められた規則に、直前において今回のサービス要求と同一のサービス要求がされた転送されたサーバ60の数を、今回において増加させるという異なる規則をさらに適用した。サービス要求を転送するサーバ60の数を増やせば、サービス応答が得られやすくなる。よって、この実施例5は、サービス要求のサービス応答を確実に得たい場合に有効である。つまり、確実にサービス応答(サービス)を得ることを優先する場合に適用するとよい。
なお、ステップ71において、実施例1と同様に、応答時間TATが短いレコードにソートするステップを用いたが、実施例2と同様に、応答時間TATが閾値時間Tthより短いレコードを抽出するようにしてもよい。また、実施例3と同様に、サービス要求と同一のサービス要求に対するサービス応答の応答時間TATと、他のサ-ビス要求に対する応答時間TATとの平均応答時間TATavが短い順にソートしてもよい。
次に、これまで説明した実施例1〜5では、過去におけるサービス要求と同一のサービス要求に対するサービス応答のレコードを検索して、サービス要求を転送するサーバ60を選択した。しかし、情報処理システム1(図1参照)に、サーバ60の増減があったり、提供するサービスの増減があったりした場合、これらの事情はサービス状況蓄積部203に反映されない。
そこで、次に示す実施例6では、予め定められた条件を満たす(合致する)場合には、自身を除く他のサーバ60のすべてを選択したサーバリストを作成する。
そこで、次に示す実施例6では、予め定められた条件を満たす(合致する)場合には、自身を除く他のサーバ60のすべてを選択したサーバリストを作成する。
図14は、サーバリスト作成の実施例6を説明するフローチャートである。
一定の期間が経過したなど、サーバ60の制御部201によって、予め定められた条件を満たすか否かが判断される(ステップ81)。
ステップ81において、肯定(YES)の判断がされた場合、つまり予め定められた条件が満たされた場合には、情報処理システム1に含まれる自身を除く他の全てのサーバ60(全サーバ60)を選択して、サーバリストを作成する(ステップ82)。
ステップ81において、否定(NO)の判断がされた場合、つまり予め定められた条件が満たされない場合には、これまで説明した実施例1〜5を実行する。
一定の期間が経過したなど、サーバ60の制御部201によって、予め定められた条件を満たすか否かが判断される(ステップ81)。
ステップ81において、肯定(YES)の判断がされた場合、つまり予め定められた条件が満たされた場合には、情報処理システム1に含まれる自身を除く他の全てのサーバ60(全サーバ60)を選択して、サーバリストを作成する(ステップ82)。
ステップ81において、否定(NO)の判断がされた場合、つまり予め定められた条件が満たされない場合には、これまで説明した実施例1〜5を実行する。
ここで、サービス要求が転送されるサーバ60は、サービス要求に係るサービスを提供していなくてもよい。図4のサービス状況蓄積部203及び図7のシーケンス図で説明したように、サービス要求が転送された(転送先の)サーバ60がサービス要求に係るサービスを提供しない場合には、サービス要求を転送した(転送元の)サーバ60は、サービス要求にサービス応答できない旨の回答を受信する。また、転送先のサーバ60がサービス要求に係るサービスを提供する場合には、転送元のサーバ60は、サービス要求に対するサービス応答を受信する。これにより、サービス状況蓄積部203が更新される。これにより、一定の期間内などに行われたサーバ60の増減、提供するサービスの増減など情報処理システム1の変化が、サービス状況蓄積部203に反映される。
予め定められた条件とは、上記のように予め定められた期間、例えば1年、1か月などの期間であってもよく、サーバ60の増減又は/及び提供するサービスの増減などの情報処理システム1の変更時などであってもよい。
また、実施例1のステップ32(図9参照)において、選択しようとするサーバ60がN個に満たない場合を、ステップ81における予め定められた条件として、ステップ82を実行するようにしてもよい。実施例3のステップ53(図11参照)、実施例4のステップ62、ステップ64(図12参照)及び実施例5のステップ73(図13参照)に対して適用してもよい。また、実施例2のステップ42(図10参照)において、抽出されたレコードのサーバの数が予め定められた数に満たない場合を、ステップ81における予め定められた条件として、ステップ82を実行するようにしてもよい。
これらの場合、実施例1〜5のフローチャートに続けて、実施例6を実行することになる。
また、実施例1のステップ32(図9参照)において、選択しようとするサーバ60がN個に満たない場合を、ステップ81における予め定められた条件として、ステップ82を実行するようにしてもよい。実施例3のステップ53(図11参照)、実施例4のステップ62、ステップ64(図12参照)及び実施例5のステップ73(図13参照)に対して適用してもよい。また、実施例2のステップ42(図10参照)において、抽出されたレコードのサーバの数が予め定められた数に満たない場合を、ステップ81における予め定められた条件として、ステップ82を実行するようにしてもよい。
これらの場合、実施例1〜5のフローチャートに続けて、実施例6を実行することになる。
以上説明したように、本実施の形態では、応答時間TAT又は平均応答時間TATavに基づいた規則に基づいて、サービス要求を行うように構成している。
一方、本実施の形態と異なり、負荷の低いサーバを選択して、サービス要求を行うように構成することも可能である。しかし、この場合には、複数のサーバの負荷情報を予め取得しておくことが必要となる。このため、複数のサーバ間で負荷情報を交換するため、ネットワーク上のトラフィックが増加してしまう。
これに対し、本実施の形態では、実際のサービス要求に対するサービス応答から得られた応答時間TAT又は平均応答時間TATavに基づいた規則に基づいて、サービス要求を行うように構成している。つまり、過去のサービス要求に対するサービス応答の状況(サービス状況)を蓄積し、これに基づいて、サービス要求を転送するサーバ60を選択している。よって、負荷情報を交換することを要せず、ネットワーク上のトラフィックを増加させることがない。また、応答時間TAT又は平均応答時間TATavの短いサーバ60に、サービス要求が転送される。そして、最も早く得られたサービス応答がクライアント70に送信されるので、サービスの提供が迅速に行われる。
一方、本実施の形態と異なり、負荷の低いサーバを選択して、サービス要求を行うように構成することも可能である。しかし、この場合には、複数のサーバの負荷情報を予め取得しておくことが必要となる。このため、複数のサーバ間で負荷情報を交換するため、ネットワーク上のトラフィックが増加してしまう。
これに対し、本実施の形態では、実際のサービス要求に対するサービス応答から得られた応答時間TAT又は平均応答時間TATavに基づいた規則に基づいて、サービス要求を行うように構成している。つまり、過去のサービス要求に対するサービス応答の状況(サービス状況)を蓄積し、これに基づいて、サービス要求を転送するサーバ60を選択している。よって、負荷情報を交換することを要せず、ネットワーク上のトラフィックを増加させることがない。また、応答時間TAT又は平均応答時間TATavの短いサーバ60に、サービス要求が転送される。そして、最も早く得られたサービス応答がクライアント70に送信されるので、サービスの提供が迅速に行われる。
上記において説明した実施例1〜6は、初期設定(コンフィグ)によっていずれかが選択されるようにしてもよい。また、サービス要求毎又はサーバ毎に予め定められていてもよい。また、クライアント70が選択してもよい。実施例4、5における、実施例1〜3と同様なステップの選択についても同じようにすればよい。
なお、サービス要求転送/応答受信部206が、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段の一例であり、依頼に対する応答を受信する受信手段の一例である。また、サービス状況蓄積部203が、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段の一例である。そして、制御部201が、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段の一例である。
また、サービス要求転送/応答受信部206が、同一の要求を複数の送信先へ送信する送信手段の一例であり、要求に対する応答を受信する受信手段の一例である。そして、制御部201が、要求を送信してから応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における要求と同種の要求を送信する際の送信先を制限する通信制御手段の一例である。
また、サービス要求転送/応答受信部206が、同一の要求を複数の送信先へ送信する送信手段の一例であり、要求に対する応答を受信する受信手段の一例である。そして、制御部201が、要求を送信してから応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における要求と同種の要求を送信する際の送信先を制限する通信制御手段の一例である。
なお、同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段、依頼に対する応答を受信する受信手段、依頼を送信してから応答を受信するまでに要した時間である応答時間の情報を、応答を行ったサーバに対応付けて保持する保持手段、サービスと同一のサービスの依頼を要求する際に、保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段する手段を、プログラムによってコンピュータに機能させることができる。このとき、プログラムは、記憶媒体に格納して提供してもよく、また、通信手段によって提供してもよい。その場合、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体には、デジタル・バーサタイル・ディスク(DVD)フォーラムによって策定された規格に基づくDVD、コンパクトディスク(CD)、ブルーレイ・ディスク(Blue-ray(登録商標) Disk)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、HDD、ROM、フラッシュメモリなどが含まれる。
なお、記録媒体には、デジタル・バーサタイル・ディスク(DVD)フォーラムによって策定された規格に基づくDVD、コンパクトディスク(CD)、ブルーレイ・ディスク(Blue-ray(登録商標) Disk)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、HDD、ROM、フラッシュメモリなどが含まれる。
通信手段には、LAN、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、などに用いられる有線ネットワーク、無線ネットワーク、これらが複合されたネットワークなどが含まれる。
以上、本発明の実施形態について説明した。本発明の技術的思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
1…情報処理システム、10、11、12、13…イントラネット、20…ネットワーク、30、31、32、33…ルータ、40、41、42…サブドメイン、50…ブリッジ、60、61、62…サーバ、70、71、72…クライアント、80、81、82…ネットワーク(LAN)、100…ハードウエア構成、201…制御部、202…サービス処理部、203…サービス状況蓄積部、204…サービス要求受信部、205…サービス送信部、206…サービス要求転送/応答受信部、207…外部サービス要求受信/応答送信部、210…サービスバス
Claims (10)
- 同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、
前記依頼に対する応答を受信する受信手段と、
前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、
前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段と、
を備えることを特徴とする、情報処理装置。 - 前記特定手段は、前記サービスと同一のサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置。
- 前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼に対する先の応答において、予め設定された閾値時間よりも短い前記応答時間で応答したサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置。
- 前記特定手段は、依頼しようとする前記サービスと同一のサービスおよび他のサービスを含むサービスの依頼に対する、予め定められた回数の応答に係る前記応答時間が短い順に予め定められた数のサーバを前記送信先のサーバとして特定することを特徴とする、請求項1に記載の情報処理装置。
- 前記特定手段は、サービスの依頼状況に応じて、前記応答時間を用いて定められた規則とは異なる規則をさらに適用して前記送信先のサーバを特定することを特徴とする、請求項1に記載の情報処理装置。
- 前記特定手段は、依頼しようとする前記サービスと同一のサービスの依頼における送信先のサーバとなった回数に基づいて定められた規則を適用して送信先のサーバを特定することを特徴とする、請求項5に記載の情報処理装置。
- 前記特定手段は、予め定められた条件に基づいて、依頼しようとする前記サービスの依頼の送信先サーバを、直前に当該サービスと同一のサービスの依頼の送信先としたサーバよりも増加させることを特徴とする、請求項1に記載の情報処理装置。
- 前記特定手段は、予め定められた条件に合致する場合に、前記サービスの依頼を、当該サービスを提供可能な全てのサーバに送信させることを特徴とする、請求項7に記載の情報処理装置。
- 同一の要求を複数の送信先へ送信する送信手段と、
前記要求に対する応答を受信する受信手段と、
前記要求を送信してから前記応答を受信するまでに要した時間に関して予め定められた規則に基づき、以後における当該要求と同種の要求を送信する際の送信先を制限する通信制御手段と、
を備えることを特徴とする、情報処理装置。 - コンピュータを、
同一のサービスを提供可能な複数のサーバにサービスの依頼を送信する送信手段と、
前記依頼に対する応答を受信する受信手段と、
前記依頼を送信してから前記応答を受信するまでに要した時間である応答時間の情報を、当該応答を行ったサーバに対応付けて保持する保持手段と、
前記サービスと同一のサービスの依頼を要求する際に、前記保持手段に保持されている情報に基づき送信先のサーバを特定する特定手段として、
機能させることを特徴とする、プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018050068A JP2019160232A (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及びプログラム |
US16/147,906 US20190289067A1 (en) | 2018-03-16 | 2018-10-01 | Information processing apparatus and non-transitory computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018050068A JP2019160232A (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019160232A true JP2019160232A (ja) | 2019-09-19 |
Family
ID=67904278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018050068A Pending JP2019160232A (ja) | 2018-03-16 | 2018-03-16 | 情報処理装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190289067A1 (ja) |
JP (1) | JP2019160232A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022036919A (ja) * | 2020-08-24 | 2022-03-08 | ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト | サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11151150B2 (en) | 2019-09-13 | 2021-10-19 | Salesforce.Com, Inc. | Adjustable connection pool mechanism |
US11636067B2 (en) | 2019-10-04 | 2023-04-25 | Salesforce.Com, Inc. | Performance measurement mechanism |
US11165857B2 (en) | 2019-10-23 | 2021-11-02 | Salesforce.Com, Inc. | Connection pool anomaly detection mechanism |
-
2018
- 2018-03-16 JP JP2018050068A patent/JP2019160232A/ja active Pending
- 2018-10-01 US US16/147,906 patent/US20190289067A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022036919A (ja) * | 2020-08-24 | 2022-03-08 | ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト | サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール |
JP7293294B2 (ja) | 2020-08-24 | 2023-06-19 | ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト | サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール |
Also Published As
Publication number | Publication date |
---|---|
US20190289067A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2019160232A (ja) | 情報処理装置及びプログラム | |
EP2985971B1 (en) | Reputation-based instruction processing over an information centric network | |
JP4696089B2 (ja) | 分散ストレージシステム | |
EP3661135B1 (en) | Data stream transmission | |
JP6112165B2 (ja) | 通信システム、制御装置、通信方法およびプログラム | |
EP3176994B1 (en) | Explicit content deletion commands in a content centric network | |
KR20100103594A (ko) | 메시징 네트워크에서의 메시지 전달에 관한 방법 및 시스템 | |
JP2007304665A (ja) | ピア・ツー・ピア型のネットワークに接続される装置および分散システム | |
JP5880689B2 (ja) | 分散ストレージシステム、制御装置、クライアント端末、負荷分散方法及びプログラム | |
JP2016066882A (ja) | 通信システム、ノード装置、ノードプログラム、および、通信プログラム | |
CN103516612A (zh) | 分布式路由器中生成路由表项的方法及分布式路由器 | |
JP5136585B2 (ja) | 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム | |
CN113114570A (zh) | 流表项的控制方法、装置及系统 | |
JP4616035B2 (ja) | サーバ負荷分散プログラム,装置および方法 | |
JP2009152995A (ja) | 通信システム、通信システムに用いられる送信端末、通信システムに用いられる中継端末、通信システムにおける通信方法及び通信システムに用いられるコンピュータプログラム | |
JP7332869B2 (ja) | 通信プログラム、通信方法および通信装置 | |
JP4774814B2 (ja) | サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム | |
US20210266379A1 (en) | Selecting from a plurality of items which match an interest | |
US20180013644A1 (en) | System and method for dynamic online backup optimization | |
JP5365414B2 (ja) | メッセージ転送プログラム、メッセージ転送方法、およびノード | |
JP2009200796A (ja) | メッセージを中継する装置、方法およびプログラム | |
JP7139789B2 (ja) | 中継装置及び中継処理プログラム | |
US20140241371A1 (en) | Packet distribution system, control device and control method | |
JP5060775B2 (ja) | 分散ストレージシステム上でコンテンツを送受信する方法及び装置 | |
JP5842657B2 (ja) | 呼制御装置 |