以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報システム1のブロック図である。
情報システム1は、第一サーバ装置10、制御装置20、及び2以上の第二サーバ装置30を備える。なお、図1においては、説明の便宜上、第二サーバ装置30が3以上である場合を示しているが、第二サーバ装置30は2以上であればよい。情報システム1においては、第一サーバ装置10、制御装置20、及び2以上の第二サーバ装置30は、相互に通信が可能となるよう通信回線やネットワーク等を介して接続されている。このネットワークは、例えば、インターネット等のWANであってもよいし、企業内ネットワーク等のLANであってもよい。
また、第一サーバ装置10は、1以上の端末装置40と、ネットワークや通信回線を介して通信可能に接続されている。図1においては、端末装置40が一つである場合を例に挙げて示しているが、端末装置40は複数であってよい。なお、端末装置40と第一サーバ装置10とを接続するネットワークや通信回線は、情報システム1を構成する各装置を接続するネットワークや通信回線と同じネットワークや通信回線であってもよいし、異なるネットワークや通信回線であってもよい。このネットワークは、例えば、インターネット等のWANである。
第一サーバ装置10は、第一指示受信手段101、第一指示送信手段102、第一情報受信手段103、第一情報送信手段104、取得先要求送信手段105、及び取得先受信手段106を備える。
制御装置20は、取得先要求受信手段201、取得先格納手段202、負荷取得手段203、及び取得先送信手段204を備える。
第二サーバ装置30は、第二情報格納手段301、第二指示受信手段302、第二情報取得手段303、及び第二送信手段304を備える。
第一指示受信手段101は、第一指示を端末装置40から受信する。第一指示は、情報を取得する指示である。第一指示が取得を指示する情報は、例えば、後述する第二サーバ装置30の第二情報格納手段301に格納されている情報である。第一指示が取得を指示する情報は、例えば、広告の情報である。
第一指示は、例えば、情報の送信を要求する情報と考えてもよい。第一指示は、取得対象となる情報を識別する情報識別子を有していてもよいし、指示のみでもよい。また、情報識別子のみの受信を第一指示の受信と考えてもよい。また、第一指示は、取得対象となる情報の属性を指定する情報を有していていてもよい。第一指示が有する属性は、例えば、データ構造を指定する情報であってもよいし、情報が示すものの分野等を示す情報であってもよい。また、取得対象となる情報が広告の情報である場合、第一指示が有する属性は、広告主を示す情報や、広告対象の分類を示す情報であってもよい。
また、第一指示は、第一指示の送信元となる端末装置40の識別子を有していてもよい。端末装置40の識別子は、例えば、端末装置40のIPアドレスやMACアドレス等のアドレス情報である。
また、第一指示は、端末装置40や端末装置40のユーザの属性を示す情報や、属性を判断可能な情報を有していていてもよい。この属性を示す情報や、属性を判断可能な情報は、例えば、端末装置40やそのユーザによる操作の履歴を示す情報である。操作の履歴とは、例えば、端末装置40やそのユーザが閲覧したページ等の閲覧履歴である。閲覧履歴は、例えば、閲覧したページに含まれる、あるいは頻出する文字列の情報であってもよいし、閲覧したページに対応づけられたメタ情報、例えば、キーワードや、タイトル等の情報であってもよい。端末装置40や端末装置40のユーザの属性を示す情報や、属性を判断可能な情報は、例えば、端末装置40に格納されているクッキーの情報である。
第一指示受信手段101は、端末装置40から直接、第一指示を受信してもよいし、間接的に第一指示を受信してもよい。間接的に受信するということは、例えば、端末装置40から他の図示しないサーバ装置等を経由して送信された第一指示を間接的に受信することである。
第一指示受信手段101は、通常、無線または有線の通信手段で実現される。第一指示受信手段101は、通信デバイスを含むと考えても、含まないと考えても良い。
第一指示送信手段102は、第一指示受信手段101が第一指示を受信した場合、一の第二サーバ装置30に対して第一指示に対応する情報の取得の指示を送信する。一の第二サーバ装置30とは、具体的には、2以上の第二サーバ装置のうちの、予め指定された特定の一の第二サーバ装置30である。一の第二サーバ装置は、例えば、第一サーバ装置10に対して決められている特定の第二サーバ装置30である。例えば、第一指示送信手段102は、一の第二サーバ装置30を第一指示に対応する情報の取得の指示の送信先に指定可能な情報を有しており、この送信先に指定可能な情報を用いて、一の第二サーバ装置30に、第一指示に対応する情報の取得の指示を送信する。この送信先に指定可能な情報は、例えば、第二サーバ装置30のIPアドレスや、MACアドレス等のアドレス情報である。ただし、第二サーバ装置30の装置名や第二サーバ装置30に割り当てられたコード等でもよい。第一指示に対応する情報については、後述する。
第一指示に対応する情報の取得の指示(以下、第一取得指示と称す)は、第一指示自身であってもよいし、第一指示を有する情報であってもよい。また、第一取得指示は、第一指示が有する情報識別子や、取得対象となる情報の属性を指定する情報や、第一指示を送信した端末装置40やそのユーザの属性を示す情報や属性を取得可能な情報を有する情報であってもよく、さらに、これらの情報を取得する指示、例えば命令等を加えたものであってもよい。また、情報を取得する指示のみ(例えば、命令のみ)であってもよい。また、第一取得指示は、第一指示を送信した端末装置の識別子を有していてもよい。
第一指示送信手段102は、第一指示に対応する情報を上述した一の第二サーバ装置30から受信できない場合に、取得先受信手段106が受信した取得先情報が示す第二サーバ装置30に第一取得指示を送信する。予め指定された期間内に、第一指示に対応する情報を上述した一の第二サーバ装置30から受信できないような状態に情報システム1等や、第二サーバ装置30等があることも、第一指示に対応する情報を上述した一の第二サーバ装置30から受信できない場合と考えてよい。取得先受信手段106が受信した取得先情報については、後述する。
上述した一の第二サーバ装置30から第一指示に対応する情報を受信できない状況は、例えば、ネットワークや通信回線、第二サーバ装置30の異常や故障、ネットワークや通信回線、第二サーバ装置30にかかる高い負荷により発生する。
なお、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かは、第一指示送信手段102が判断してもよいし、第一情報受信手段103が判断してもよいし、取得先要求送信手段105が判断してもよい。また、図示しない手段が判断を行ってもよい。ここでは、一例として、第一指示送信手段102が、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かを判断する場合を例に挙げて説明する。
第一指示送信手段102は、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かをどのように判断してもよい。例えば、第一指示送信手段102が、一の第二サーバ装置30に、第一取得指示を送信した後、予め指定された時間が経過するまでに、一の第二サーバ装置30から送信される情報を受信した場合に、第一指示に対応する情報を受信できると判断し、受信できなかった場合に、第一指示に対応する情報を受信できないと判断する。すなわち、いわゆるタイムアウトとなった場合に、第一指示に対応する情報を一の第二サーバ装置30から受信できないと判断する。あるいは、第一取得指示を送信する前に、第一指示送信手段102が通信が可能であるか否かを確認するための情報を一の第二サーバ装置30に送信し、この送信に応答する情報を、予め指定された時間が経過するまでに、一の第二サーバ装置30から受信できなかった場合に、第一指示に対応する情報を一の第二サーバ装置30から受信できないと判断してもよい。また、第一指示送信手段102は、予め指定されたタイミングや時間間隔ごとに、第二サーバ装置30との間において通信が可能であるか否かの判断結果を順次取得するようにし、第一取得指示を送信する前等に、取得した最新の判断結果の情報に応じて、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かを判断してもよい。
また、第一サーバ装置10が、一の第二サーバ装置30から、ネットワークや通信回線や、この第二サーバ装置30の負荷を示す情報を、予め指定されたタイミング(例えば、一定の時間間隔ごと)に第二サーバ装置30から受信するようにし、この負荷を示す情報から、第一指示に対応する情報を受信できるか否かを判断するようにしてもよい。例えば、負荷を示す値が、閾値以上である場合、受信できないと判断してもよい。なお、第一指示送信手段102は、例えば、後述する負荷取得手段203が、第二サーバ装置30の負荷を示す情報を取得する処理と同様の処理により、一の第二サーバ装置30の負荷を示す情報を取得して、この負荷を示す情報に応じて、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かを判断してもよい。例えば、第一指示送信手段102は、予め指定されたタイミングや時間間隔ごとに、後述する負荷取得手段203と同様の処理により一の第二サーバ装置30の負荷を示す情報を取得するようにし、この負荷を示す情報に応じて、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かを判断してもよい。例えば、取得した負荷を示す情報(例えばMPUの稼働率等)が、予め指定された値以上の負荷の大きさを示す場合、第一指示送信手段102は、一の第二サーバ装置30から第一指示に対応する情報を受信することができないと判断してもよい。
第一指示送信手段102は、例えば、第一指示に対応する情報を一の第二サーバ装置30から受信可能な場合には、第一指示受信手段101が受信した第一指示に対応する情報の取得の指示である第一取得指示を、特定の一の第二サーバ装置30に対して送信し、第一指示に対応する情報を一の第二サーバ装置30から受信できない場合には、後述する取得先受信手段106が受信した取得先情報が示す第二サーバ装置30に、第一指示受信手段101が受信した第一指示に対応する情報の取得の指示である第一取得指示を送信する。
なお、予め、デフォルトの送信先である特定の一の第二サーバ装置30に対して一番目の優先度を対応付け、この一の第二サーバ装置30から情報が取得できない場合において制御装置20が決定する第二サーバ装置30に対して、二番目の優先度を対応づけて置くようにし、第一サーバ装置10の図示しない記憶媒体等に格納されているソフトウェアロードバランサ(図示せず)を実行させることで、優先度の高いものから順番に、第一指示に対応する情報の取得を試みるようにしてもよい。例えば、ソフトウェアロードバランサにより一番目の優先度と対応づけられた一の第二サーバ装置30から第一指示に対応する情報が取得できるか否かを判断し、取得できる場合は、この一の第二サーバ装置30から情報を取得するとともに、取得できない場合には、第二の優先度と対応づけられた第二サーバ装置、すなわち、制御装置20から取得した取得先情報が示す第二サーバ装置30から第一指示に対応する情報を取得するようにしてもよい。
第一指示送信手段102は、通常、無線または有線の通信手段で実現される。第一指示送信手段102は、通信デバイスを含むと考えても、含まないと考えても良い。また、第一指示送信手段102の、第一指示に対応する情報を一の第二サーバ装置30から受信できたか否かを判断するための構成は、MPUやメモリ等から実現され得る。この判断の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第一情報受信手段103は、第一指示送信手段102が送信した第一取得指示に応じて、第一指示に対応する情報を一の第二サーバ装置30から受信する。第一指示に対応する情報とは、具体的には、第一指示に応じて取得される情報である。例えば、第一指示に対応する情報とは、第一取得指示を受信した第二サーバ装置30により、第一指示に対応して取得される情報である。第一指示に対応する情報は、例えば、第一指示が有する情報識別子が示す情報である。また、第一指示が有する属性を指定する情報が示す属性を有する情報であってもよい。また、第一指示が有する端末装置40やそのユーザの属性を示す情報が示す属性、あるいは、端末装置40やそのユーザの属性を判断可能な情報から取得した属性と対応する属性を有する情報である。また、第一取得指示を受信した第二サーバ装置30が、第一指示に応じて、あるいは、第一取得指示の受信をトリガーとして、予め指定されたアルゴリズム等に従って取得する情報であってもよい。この場合のアルゴリズムは、ランダムに情報を取得するアルゴリズムであってもよい。また、これらの組み合わせにより取得された情報であってもよい。
また、第一指示に対応する情報を上述した一の第二サーバ装置30から受信できない場合、第一情報受信手段103は、第一指示送信手段102が送信した第一取得指示に応じて、第一指示に対応する情報を取得先情報が示す第二サーバ装置30から受信する。
第一情報受信手段103は、通常、無線または有線の通信手段で実現される。第一情報受信手段103は、通信デバイスを含むと考えても、含まないと考えても良い。また、第一情報受信手段103は、第二サーバ装置30との通信状態や、第二サーバ装置30の負荷状況を取得するための手段や、これらの状態から、第一指示に対応する情報を上述した一の第二サーバ装置30から受信できるか否かを判断する手段等をさらに備えていてもよい。
第一情報送信手段104は、第一情報受信手段103が受信した情報を、端末装置40に送信する。具体的には、第一情報送信手段104は、第一指示受信手段101が受信した第一指示の送信元となる端末装置40に、第一情報受信手段103が受信した情報を送信する。
第一情報送信手段104は、通常、無線または有線の通信手段で実現される。第一情報送信手段104は、通信デバイスを含むと考えても、含まないと考えても良い。
取得先要求送信手段105は、第一指示に対応する情報を一の第二サーバ装置30から受信できない場合に、制御装置20に取得先要求情報を送信する。取得先要求情報は、取得先情報を要求する情報である。取得先情報は、第一指示受信手段101が受信した第一指示に対応する情報の取得先となる第二サーバ装置30を示す情報である。取得先情報は、例えば、2以上の第二サーバ装置30のうちの一の第二サーバ装置30を示す識別子(以下、第二サーバ識別子と称す)である。第二サーバ識別子は、第二サーバ装置30を特定可能な情報、好ましくは、第二サーバ装置30を、第一取得指示の送信先に指定可能な情報である。第二サーバ識別子は、例えば、第二サーバ装置30のIPアドレスや、MACアドレス等のアドレス情報である。ただし、第二サーバ装置30の装置名や第二サーバ装置30に割り当てられたコード等でもよい。なお、上述した第一指示送信手段102が有している一の第二サーバ装置30を第一指示に対応する情報の取得の指示の送信先に指定可能な情報として、一の第二サーバ装置30の第二サーバ識別子を用いるようにしてもよい。
取得先要求情報は、例えば、取得先情報を要求する指示を有する情報である。取得先要求情報は、第一サーバ装置10の識別子や、第一指示に対応する情報が受信できないと判断された上述した一の第二サーバ装置30の第二サーバ識別子を有していてもよい。あるいは、この第一サーバ装置10の識別子や第二サーバ識別子を取得先要求情報として用いてもよい。第一サーバ装置10の識別子は、第二サーバ識別子と同様の識別子であるため、ここでは詳細な説明は省略する。
この実施の形態においては、第一指示に対応する情報を一の第二サーバ装置30から受信できるか否かの判断を、上述したように第一指示送信手段102が行う場合を例に挙げて説明したが、この判断処理は、第一情報受信手段103や、取得先要求送信手段105が行うようにしてもよい。また、この判断処理は、図示しない判断手段等が行うようにしてもよい。この場合、第一指示送信手段102が行う処理と同様の処理を行うようにすればよい。
取得先要求送信手段105は、通常、無線または有線の通信手段で実現される。取得先要求送信手段105は、通信デバイスを含むと考えても、含まないと考えても良い。
取得先受信手段106は、制御装置20から取得先要求情報に応じた取得先情報を受信する。具体的には、取得先受信手段106は、取得先要求送信手段105が送信した取得先要求情報に応じて制御装置20が取得した取得先情報を、制御装置20から受信する。
取得先受信手段106は、通常、無線または有線の通信手段で実現される。取得先受信手段106は、通信デバイスを含むと考えても、含まないと考えても良い。
取得先要求受信手段201は、第一サーバ装置10から取得先要求情報を受信する。取得先要求受信手段201は、通常、無線または有線の通信手段で実現される。取得先要求受信手段201は、通信デバイスを含むと考えても、含まないと考えても良い。
取得先格納手段202には、2以上の第二サーバ装置30をそれぞれ示す2以上の取得先情報が格納される。取得先情報は、例えば、第二サーバ識別子である。取得先格納手段202は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、以下の格納部においても同様である。
負荷取得手段203は、2以上の第二サーバ装置30のそれぞれの負荷を示す情報を取得する。第二サーバ装置30の負荷とは、例えば、第二サーバ装置30のもつ処理能力のうちの、利用されている度合いを示す情報である。負荷が高いほど、処理能力の多くが利用されていることを示す。第二サーバ装置30の負荷を示す情報とは、例えば、第二サーバ装置30と他の装置との接続数や、応答速度や応答時間である。例えば、接続数が多いほど負荷が高いこととなる。また、応答速度が早いほど、負荷が低いこととなる。負荷取得手段203がどのように、2以上の第二サーバ装置30から負荷を示す情報を取得するかは問わない。例えば、各第二サーバ装置30に対して、一定または不定のタイミングで負荷を示す情報の送信を要求する情報を送信して、第二サーバ装置30から負荷を示す情報を受信してもよい。また、各第二サーバ装置30に対して、一定または不定のタイミングでレスポンスを要求する情報を送信して、そのレスポンスが得られるまでの時間を、負荷を示す情報として取得してもよい。なお、複数のサーバ装置のそれぞれの負荷を示す情報を取得する処理は、いわゆるロードバランシングや、グローバルサーバロードバランシング等の負荷分散処理において、公知の技術であるので、ここでは詳細な説明は省略する。
負荷取得手段203は、各第二サーバ装置30について取得した負荷を示す情報を、対応する取得先情報(例えば、対応する第二サーバ識別子)と対応づけて、取得先格納手段202に蓄積するようにしてもよい。
負荷取得手段203は、通常、MPUやメモリ等から実現され得る。負荷取得手段203の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。また、負荷取得手段203は、負荷を示す情報を取得するために必要な情報を送受信するための無線や有線の通信手段をさらに有していてもよい。
取得先送信手段204は、取得先要求受信手段201が取得先要求情報を受信した場合に、2以上の第二サーバ装置30のうちのいずれか一つの第二サーバ装置30を示す取得先情報を第一サーバ装置10に送信する。取得先送信手段204は、例えば、取得先格納手段202に格納されている2以上の第二サーバ装置30をそれぞれ示す取得先情報のうちの、いずれか一つを取得し、取得した取得先情報を第一サーバ装置10に送信する。
取得先送信手段204は、どのように、2以上の第二サーバ装置30のうちの一つの第二サーバ装置30を示す取得先情報を選択するかは問わない。例えば、取得先要求情報の送信元となる第一サーバ装置10の第一指示送信手段102の送信先として予め指定されている一の第二サーバ装置30以外の第二サーバ装置30から、ランダムに、あるいは、順番に第二サーバ装置30を選択してもよい。
また、取得先送信手段204は、例えば、2以上の第二サーバ装置30のうちの、負荷が少ない第二サーバ装置30を示す取得先情報を、第一サーバ装置10に送信してもよい。負荷が少ない第二サーバ装置30とは、例えば、他の装置との接続数の少ない第二サーバ装置30や、応答の早い第二サーバ装置30である。例えば、上述した負荷取得手段203が2以上の第二サーバ装置30についてそれぞれ取得した負荷を示す情報を用いて、負荷の少ない第二サーバ装置30を選択する。負荷が少ない第二サーバ装置30は、最も負荷が少ない第二サーバ装置30であってもよいし、最も負荷が少ない第二サーバ装置30でなくてもよい。例えば、負荷が閾値以下である第二サーバ装置30のいずれか一つであってもよい。また、特定の負荷(例えば、MPUの負荷や、入出力の負荷等)が高い第二サーバ装置を選択してもよい。なお、2以上の第二サーバ装置30の負荷を示す情報を用いて、負荷が少ない最適な第二サーバ装置を選択するための処理やアルゴリズムは、例えば、ロードバランシングや、グローバルサーバロードバランシング等の負荷分散処理において、公知の技術であるので、ここでは詳細な説明は省略する。なお、制御装置20が、グローバルサーバロードバランサ(GSLB)であってもよい。
なお、情報システム1が第一サーバ装置10を複数有しており、複数の第一サーバ装置10が、一の制御装置20を利用する場合、図示しない記憶媒体には、各第一サーバ装置10の識別子と、2以上の第二サーバ装置30の第二サーバ識別子とをそれぞれ対応づけて有する情報、あるいは、各第一サーバ装置10の第一指示送信手段102に対して予め特定されている第一取得指示の送信先である一の第二サーバ識別子と、2以上の第二サーバ装置30の第二サーバ識別子とをそれぞれ対応づけて有する情報、が格納されているようにしてもよい。そして、取得先要求情報の送信元の第一サーバ装置10の識別子と対応づけられた2以上の第二サーバ識別子、あるいは、取得先要求情報が有するこの取得先要求情報の送信元の第一サーバ装置10の第一指示送信手段102に対して予め特定されている第一取得指示の送信先である一の第二サーバ装置30の第二サーバ識別子と対応づけられた2以上の第二サーバ識別子から、一の第二サーバ識別子を取得するようにしてもよい。取得する際には、上記のように、負荷が少ない第二サーバ装置30の第二サーバ識別子を取得するようにしてもよい。このようにすることで、取得先要求情報の送信元の第一サーバ装置10、あるいは、取得先要求情報の送信元の第一サーバ装置10の第一指示送信手段102に対して予め特定されている第一取得指示の送信先である一の第二サーバ装置30に対応した第二サーバ装置30の中から、第一取得指示の送信先となる第二サーバ装置30を決定することが可能となる。
取得先送信手段204は、通常、無線または有線の通信手段で実現される。取得先送信手段204は、通信デバイスを含むと考えても、含まないと考えても良い。また、取得先送信手段204が、負荷を示す情報等を用いて、取得先情報を選択する処理は、通常、MPUやメモリ等から実現され得る。この処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二情報格納手段301には、1以上の情報が格納される。第二情報格納手段301に格納される情報は、静止画、動画、音声、テキスト等、データ構造は問わない。第二情報格納手段301に格納される情報は、広告の情報が好適であるが、情報の内容は問わない。広告の情報は、広告を示す内容の情報であれば、例えば、静止画、動画、音声、テキスト等、データ構造は問わない。
第二情報格納手段301には、1以上の情報が、例えば、情報の識別子と対応づけられて格納される。また、第二情報格納手段301には、1以上の情報が、例えば、情報の属性と対応づけられて格納される。この属性は、情報に対応するキーワードであってもよい。
なお、異なる第二サーバ装置30の第二情報格納手段301に格納される情報は、通常同一の情報であるが、同一の情報でなくてもよい。
第二指示受信手段302は、第一取得指示を第一サーバ装置10の第一指示送信手段102から受信する。第二指示受信手段302は、通常、無線または有線の通信手段で実現される。第二指示受信手段302は、通信デバイスを含むと考えても、含まないと考えても良い。
第二情報取得手段303は、第一指示に対応する情報を第二情報格納手段301から取得する。具体的には、第二情報取得手段303は、第二指示受信手段302が受信した第一取得指示に応じて、第一指示に対応する情報を第二情報格納手段301から取得する。
第二情報取得手段303が、第二指示受信手段302が受信した第一取得指示に応じて、第一指示に対応する情報を第二情報格納手段301からどのように取得するかは問わない。
例えば、第二指示受信手段302が受信した第一取得指示が、第一指示が有する情報識別子を有している場合、第二情報取得手段303は、第一指示が有する情報識別子が示す情報を第一指示に対応する情報として第二情報格納手段301から取得する。また、例えば、第二指示受信手段302が受信した第一取得指示が、第一指示が有する属性を指定する情報を有している場合、第二情報取得手段303は、第一指示が有する属性を指定する情報が示す属性を有する情報を、第二情報格納手段301から取得する。また、第一指示が端末装置40やそのユーザの属性を示す情報や、端末装置40やそのユーザの属性を判断可能な情報を有する場合、第二情報取得手段303は、例えば、この情報から取得したユーザの属性に対応した属性を有する情報を、第二情報格納手段301から取得してもよい。
また、第二情報取得手段303は、例えば、第一取得指示の受信をトリガーとして、予め指定されたアルゴリズム等に従って第二情報格納手段301から情報を取得してもよい。この場合のアルゴリズムは、ランダムに情報を取得するアルゴリズムであってもよい。また、第二情報取得手段303は、これらの2以上の処理を適宜組み合わせて、情報を取得してもよい。
なお、第一情報取得手段303が取得する情報が、WEBページ等の電子媒体のページに配置される広告の情報である場合、第二情報取得手段303は、複数の第一指示に応じてそれぞれ取得する一のページに配置される複数の広告の情報として、異なる広告の情報を取得することが好ましい。この場合、例えば、端末装置40が送信する第一指示がページに配置される広告の情報の取得の指示である場合、広告が配置されるページの識別子を含む第一指示を第一サーバ装置10に送信し、第一サーバ装置10の第一指示送信手段102は、このページの識別情報を含む第一取得指示を、予め指定された一の第二サーバ装置30に送信し、一の第二サーバ装置は、同じページの識別子を含む第一取得指示に対しては、第一指示に対応した異なる広告の情報を取得するようにすればよい。あるいは、予め指定された時間、例えば、1から10秒程度の時間だけ、同じページの識別子を含む第一取得指示に対しては、第一指示に対応した異なる広告の情報を取得するようにすればよい。一の第二サーバ装置30であれば、一の第一指示に応じて取得済みの広告の情報を保持することが可能であるため、他の第一指示に対して、取得済みの広告の情報を、再度取得しないようにすることが可能である。このようにすることで、同じページに配置される複数の広告の情報を要求する複数の第一指示に対して、異なる広告の情報を取得して送信することができる。ページの識別情報は、例えば、いわゆるクッキー(cookie)等の情報が利用可能である。また、ページの識別情報の代わりに、端末装置40の識別情報、例えばIPアドレス等を用いてもよい。
第二情報取得手段303は、通常、MPUやメモリ等から実現され得る。第二情報取得手段303の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二送信手段304は、端末装置40に、第二情報取得手段303が取得した情報を送信する。この送信先の端末装置40は、第一指示の送信元である端末装置である。第二送信手段304は、第二情報取得手段303が取得した情報を、直接、端末装置40に送信してもよいし、他の装置等を介して間接的に送信してもよい。例えば、第二送信手段304は、第一取得指示を送信した第一サーバ装置10に、第二情報取得手段303が取得した情報を送信する。そして、情報を受信した第一サーバ装置10が、受信した情報を、第一指示の送信元である端末装置40に送信することにより、第二情報取得手段303が取得した情報を、結果的に、端末装置40に送信することができる。
なお、第二送信手段304が、第二情報取得手段303が取得した情報を、直接、端末装置40に送信する場合、例えば、端末装置40が、自装置の識別子、例えば、IPアドレス等のアドレス情報を有する第一指示、及び第一取得指示を送信するようにする。また、この場合、第一情報受信手段103や、第一情報送信手段104は省略してもよい。また、この場合、第二送信手段304は、端末装置40が接続されている通信回線やネットワークにアクセスできるようにする必要がある。
第二送信手段304は、通常、無線または有線の通信手段で実現される。第二送信手段304は、通信デバイスを含むと考えても、含まないと考えても良い。
なお、第二サーバ装置30は、例えば、制御装置20の負荷取得手段203等が送信する、第二サーバ装置30の負荷の情報を取得するための情報を受信する図示しない受信部や、この取得するための情報に応じた情報を制御装置20に送信する図示しない送信部等をさらに備えていてもよい。
端末装置40は、例えば、ユーザからの操作を受け付ける操作受付部(図示せず)と、操作受付部が受け付けた操作に応じて第一指示を第一サーバ装置10に送信する端末送信部(図示せず)と、第一サーバ装置10から第一指示に応じて送信される情報を受信する端末受信部(図示せず)と、端末受信部が受信した情報を出力する端末出力部(図示せず)を備えている。ここでの出力とは、出力とは、ディスプレイへの表示、プリンタによる紙等への印字、音出力、外部の装置への送信等を含む概念である。
端末装置40は、例えば、コンピュータや、携帯情報端末、携帯電話、いわゆるスマートフォン等の多機能携帯電話、タブレット型端末等で実現可能である。
次に、情報システム1の第一サーバ装置10の動作の一例について図2のフローチャートを用いて説明する。
(ステップS101)第一指示受信手段101は、第一指示を受信したか否かを判断する。受信した場合、ステップS102に進み、受信していない場合、ステップS101に戻る。
(ステップS102)第一指示送信手段102は、特定の一の第二サーバ装置30に、第一取得指示を送信する。
(ステップS103)第一情報受信手段103は、ステップS102で第一取得指示を送信した一の第二サーバ装置30から、第一指示に対応する情報を受信したか否かを判断する。受信した場合、ステップS104に進み、受信していない場合、ステップS105に進む。
(ステップS104)第一情報送信手段104は、ステップS103で受信した情報を、第一指示の送信元となる端末装置40に送信する。そして、ステップS101に戻る。
(ステップS105)第一指示送信手段102は、ステップS102で第一取得指示を送信してから、予め指定された時間が経過したか否かを判断する。予め指定された時間は、例えば、1−5秒程度である。経過した場合、ステップS106に進み、経過していない場合、ステップS103に戻る。予め指定された時間が経過したという判断結果は、第一指示に対応する情報を一の第二サーバ装置30から受信できないという判断結果と考えてよい。
(ステップS106)取得先要求送信手段105は、取得先要求情報を制御装置20に送信する。
(ステップS107)取得先受信手段106は、取得先情報を受信したか否かを判断する。受信した場合、ステップS108に進み、受信していない場合、ステップS107に戻る。
(ステップS108)第一指示送信手段102は、ステップS107で受信した取得先情報が示す第二サーバ装置30に、第一取得指示を送信する。
(ステップS109)第一情報受信手段103は、ステップS108で第一取得指示を送信した第二サーバ装置30から、第一指示に対応する情報を受信したか否かを判断する。受信した場合、ステップS104に戻り、受信していない場合、ステップS109に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、情報システム1の制御装置20の動作の一例について図3のフローチャートを用いて説明する。
(ステップS201)取得先要求受信手段201は、取得先要求情報を受信したか否かを判断する。受信した場合、ステップS202に進み、受信していない場合、ステップS204に進む。
(ステップS202)負荷取得手段203は、取得先格納手段202から、負荷の少ない第二サーバ装置30を示す取得先情報を取得する。
(ステップS203)取得先送信部204は、ステップS202で取得した取得先情報を、第一サーバ装置10に送信する。そして、ステップS201に戻る。
(ステップS204)負荷取得手段203は、第二サーバ装置30の負荷の情報を取得するタイミングであるか否かを判断する。例えば、現在時刻が、予め指定された時刻になった場合や、予め指定された時間が経過するごとに、取得するタイミングであると判断する。取得するタイミングである場合、ステップS205に進み、取得するタイミングでない場合、ステップS201に戻る。
(ステップS205)負荷取得手段203は、カウンターmの値として1を代入する。
(ステップS206)負荷取得手段203は、m番目の第二サーバ装置30の負荷の情報を取得する。例えば、m番目の第二サーバ装置30に、負荷の情報を要求するコマンドを送信し、そのコマンドに応じてm番目の第二サーバ装置30から送信される負荷の情報を受信する。
(ステップS207)負荷取得手段203は、ステップS206で受信した負荷の情報を、m番目の第二サーバ装置30に対応する取得先情報と対応づけて、取得先格納手段202に蓄積する。なお、図示しない記憶媒体等に、同様の情報を蓄積するようにしてもよい。
(ステップS208)負荷取得手段203は、カウンターmの値を1インクリメントする。
(ステップS209)負荷取得手段203は、m番目の第二サーバ装置30があるか否かを判断する。ある場合、ステップS206に戻り、ない場合、ステップS201に戻る。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、情報システム1の第二サーバ装置30の動作の一例について図4のフローチャートを用いて説明する。
(ステップS301)第二指示受信手段301は、第一サーバ装置10から、第一取得指示を受信したか否かを判断する。受信した場合、ステップS302に進み、受信していない場合、ステップS304に進む。
(ステップS302)第二情報取得手段303は、ステップS301で受信した第一取得指示に応じて、第一指示に対応した情報を、第二情報格納手段301から取得する。
(ステップS303)第二送信手段304は、ステップS302で取得した第一指示に対応した情報を、第一サーバ装置10に送信する。そして、ステップS301に戻る。
(ステップS304)第二サーバ装置30は、制御装置20から、負荷の情報を取得するための情報、例えば、コマンド等を受信したか否かを判断する。受信した場合、ステップS305に進み、受信していない場合、ステップS301に戻る。
(ステップS305)第二サーバ装置30は、ステップS304で受け付けた負荷の情報を取得するための情報に応じた負荷の情報を取得し、制御装置20に送信する。そして、ステップS301に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、端末装置40の動作を簡単に説明する。端末装置40の端末送信部(図示せず)は、図示しない受付部等がユーザから受け付けた操作等に応じて、第一指示を第一サーバ装置10に送信する。端末受信部(図示せず)は、第一サーバ装置10から第一指示に応じて送信される情報を受信し、端末出力部(図示せず)は、端末受信部が受信した情報を出力する。
以下、本実施の形態における情報システム1の具体的な動作の一例について説明する。情報システム1の概念図は図5である。ここでは、説明のため、情報システム1が、5台の第二サーバ装置30を有しているものとする。ここでは、各第二サーバ装置30を、第二サーバ装置30a−30eで表している。なお、第二サーバ装置30a−30eには異なるIPアドレスが割り当てられており、第二サーバ装置30aのIPアドレスは、「123.123.xxx.xx1」、第二サーバ装置30bのIPアドレスは、「123.123.xxx.xx2」、第二サーバ装置30cのIPアドレスは、「123.123.xxx.xx3」、第二サーバ装置30dのIPアドレスは、「123.123.xxx.xx4」、第二サーバ装置30eのIPアドレスは、「123.123.xxx.xx5」、(但し、xは任意の数字であるとする)であるとする。
端末装置40を操作するユーザが、図示しないWEBサーバ装置が提供する一のWEBページのURLを、端末装置40で実行しているWEBブラウザ(図示せず)に入力したとする。
端末装置40は、図示しないWEBサーバ装置から送信されるWEBページの情報を受信する。受信したWEBページの情報には、ここでは、WEBページに配置される複数の広告の情報(以下、広告情報)を取得するための情報がそれぞれ記述されているものとする。広告情報を取得するための情報は、例えば、広告を配置する位置に記述された広告情報を取得するプログラム等を有するタグである。例えば、このタグは、アドタグと呼ばれる。広告情報を取得するためのプログラムは、例えば、広告情報を取得するための処理を端末装置40のWEBブラウザ等に実行させるためのプログラム等であるとする。例えば、このプログラムは、いわゆるJavaScript(登録商標)等で記述された、プログラムであるとする。
端末装置40は、WEBブラウザを用いて、受信したWEBページの情報に含まれる複数のアドタグに含まれるプログラムをそれぞれ解釈実行して、各アドタグに対応する広告情報の取得を指示する第一指示を順次送信して、広告情報の取得を行う。例えば、このWEBページには、三つのアドタグが配置されており、端末装置40は、それぞれのアドタグに対応した第一指示を順次送信するものとする。順次送信する三つの第一指示をここでは、第一指示R1−R3とし、最初に、第一指示R1が送信されたとする。なお、ここでは、アドタグにより、各第一指示の送信先として第一サーバ装置10が指定されているものとし、このWEBページに含まれるアドタグに対応する第一指示は、第一サーバ装置10に送信されるものとする。
ここで、例えば、端末装置40には、クッキーと呼ばれる端末装置40によるWEBページの閲覧状況等を示す情報が格納されているものとする。この端末装置40が有するクッキーを、ここでは、クッキーCK1と呼ぶ。このクッキーCK1は、情報システム1に対応づけられたクッキー、例えば、情報システム1に関連したWEBサイトを端末装置40で閲覧した際等に蓄積されたクッキーであるとする。このクッキーCK1には、例えば、この端末装置40のWEBブラウザにより出力されているWEBページ内に頻出する文字列や、WEBページ内のメタタグ内のキーワード、端末装置40の識別情報、ユーザのログイン情報、端末装置40のWEBブラウザにより閲覧されたWEBページの閲覧履歴の情報、このWEBブラウザにより閲覧したWEBページにおいて行われた検索に用いられた検索キーワードの情報等を示す情報の1以上が格納されているものとする。あるいは、これらの情報と対応付けられた識別情報等が、2以上の第二サーバ装置30等がアクセス可能な記録媒体等(図示せず)に格納されているものとする。
そして、端末装置40は、このクッキーCK1を有する第一指示R1を、第一サーバ装置10に送信したとする。例えば、第一指示R1は、クッキーCK1と、このクッキーCK1に対応した情報を要求するコマンドとを有するものであるとする。
第一サーバ装置10の第一指示受信手段101は、端末装置40から送信される第一指示R1を受信する。第一指示受信手段101が第一指示R1を受信すると、第一指示送信手段102は、図示しない記憶媒体に予め格納されている一の第二サーバ装置30の第二サーバ識別子を読み出す。予め格納されていた一の第二サーバ識別子は、ここでは、第二サーバ装置30aのIPアドレスであるとし、読み出したIPアドレスは、「123.123.xxx.xx1」(但し、xは任意の数字であるとする)であったとする。
第一指示受信手段101は、端末装置40から受信した第一指示R1に対応する情報の取得の指示である第一取得指示を、上記で読み出したIPアドレスを用いて、一の第二サーバ装置30である第二サーバ装置30aに送信する。送信する第一取得指示は、例えば、ここでは、上記の第一指示R1と同じ情報であるとする。
第二サーバ装置30aの第二指示受信手段302が、第一サーバ装置10から送信される第一取得指示を受信すると、第二情報取得手段303は、第一取得指示が有するクッキーCK1を読み出して、このクッキーCK1に対応する情報を第二情報格納手段301から取得する。
図6は、第二情報格納手段301に格納されている広告情報を管理する広告情報管理表である。広告情報管理表は、「ID」、「広告情報」、「広告主」、「業種」、「キーワード」等の属性を有している。「ID」は広告情報管理表のレコードを管理する識別子である。「広告情報」は、広告情報であり、ここでは、広告情報の画像のファイル名を示している。ここでの広告情報は、例えば画像であるとする。「広告主」は、広告情報の広告主名であり、ここでは、例えば法人名である。「業種」は、広告情報の広告主の業種名を示す。「キーワード」は、広告に関連するキーワードである。また、他の属性として、広告情報を送信する優先度の情報等を有していてもよい。なお、広告情報管理表で管理される「ID」、「広告情報」以外の属性のうちの、第二情報取得手段303が広告識別情報を取得する際に利用しない属性は、省略しても良い。
第二情報取得手段303は、第二情報格納手段301に格納されている広告情報の中から、第一指示に対応した広告情報を取得する。例えば、第二情報取得手段303は、図6に示した広告情報管理表を用いて、第一取得指示に含まれるクッキーCK1が有する、端末装置40で閲覧されたWEBページに頻出するキーワードや、メタタグ内のキーワード、端末装置40のWEBページの閲覧履歴や、過去に利用した検索キーワードの情報、ユーザのログイン情報等の情報に応じた広告情報を取得する。
なお、クッキー等の情報を利用して、端末装置40やユーザに対応した広告情報を取得する処理は、公知の技術であるので、ここでは詳細な説明は省略する。また、第二情報取得手段303は、上記以外の、通常の広告配信に利用されている処理により、第一指示に対応した広告情報を取得しても良い。
なお、クッキー内に、上記のような頻出するキーワードや閲覧履歴等の情報が格納されておらず、これらの情報が、クッキーの識別子等に対応づけられて図示しない記憶媒体に格納される場合、例えば、以下のように広告情報を取得する。
例えば、予め、端末装置40に格納されるクッキーが有する識別子と、この端末装置40(あるいは端末装置40のユーザ)に対応した広告情報の取得に用いられる情報、例えば、この端末装置40やユーザによるWEBページの閲覧履歴や、過去に利用した検索キーワードの情報等とを対応付けた第一の管理情報(図示せず)を、第二情報取得手段303がアクセス可能な図示しない記憶媒体等に蓄積されるようにする。そして、この図示しない記憶媒体に格納された第一の管理情報から、第一指示に含まれるクッキーが有する識別子に対応付けられた、広告情報の取得に用いられる情報を、第二情報取得手段303等が取得して、この広告情報の取得に用いられる情報と、図6に示すような広告情報管理表とを用いて、第一指示に対応する広告情報を取得すればよい。
ここでは、例えば、上記のような処理により、第二情報取得手段303が、第一指示R1に対応した広告情報として「A1001001.png」という広告情報を取得したとする。
第二サーバ装置30aの第二送信手段304は、第二情報取得手段303が取得した広告情報「A1001001.png」を、第一サーバ装置10に送信する。
第一サーバ装置10の第一情報受信手段103は、第二サーバ装置30aの第二送信手段304から広告情報「A1001001.png」を受信する。第一情報送信手段104は、第一情報受信手段103が受信した広告情報「A1001001.png」を第一指示R1の送信元である端末装置40に送信する。
端末装置40の図示しない端末受信部は、第一サーバ装置10から第一指示R1に応じて送信された広告情報「A1001001.png」を受信し、端末装置40の図示しない出力部は、上述した図示しないWEBサーバ装置から送信されるWEBページの、第一指示R1に対応するアドタグにより指定された領域に、広告情報「A1001001.png」を配置する。
さらに、端末装置40の図示しない端末送信部は、上記と同じクッキーCK1を有する第一指示R2を第一サーバ装置10に送信し、第一サーバ装置10は、上記と同様に、予め指定された一の第二サーバ装置30である第二サーバ装置30aに第一取得指示を送信する。第二サーバ装置30aは上記と同様の処理により、第一指示R2に対応した広告情報を取得し、取得した広告情報を、第一サーバ装置10に送信する。取得した広告情報は、ここでは、「A1001002.png」であったとする。そして、第一サーバ装置10は、この広告情報を端末装置40に送信し、端末装置40の図示しない出力部は、上述した図示しないWEBサーバ装置から送信されるWEBページの、第一指示R2に対応するアドタグにより指定された領域に、広告情報を配置する。
また、第一指示R3についても同様の処理が行われる。ここで取得された広告情報は「A1001006.png」であったとする。
そして、端末装置40の図示しない出力部は、第一指示R1−R3に対応して取得された広告情報を配置したWEBページを、図示しないモニタ等に表示する。
図7は、端末装置40による広告情報を配置したWEBページの表示例を示す図である。
なお、第二サーバ装置30aが同じクッキーCK1を有する異なる第一指示に対応して取得する広告情報は、重複しない広告情報とすることが好ましい。例えば、一のクッキーについて取得した広告情報に対しては、一定時間は、このクッキーを示す情報、例えばクッキーの識別子等を対応づけて、第二情報格納手段301等に一時記憶するようにして、第二情報取得手段303は、第一取得指示である第一指示が有するクッキーと同じクッキーを示す情報が対応づけられている広告情報を、第一指示に対応する広告情報として取得しないようにすることで、重複した広告が取得されないようにする。
ここで、上記において、仮に、第一サーバ装置10の第一指示送信手段102が特定の一の第二サーバ装置30aに第一指示R2に対応する第一取得指示を送信した場合に、第二サーバ装置30aのCPUの負荷や入出力の負荷が高かったために、第一取得指示の送信時から予め指定された時間が経過するまでに、第二サーバ装置30aが、広告情報を第一サーバ装置10に送信できなかったとする。
第一指示送信手段102は、第一指示R2に対応する第一取得指示の送信時から予め指定された時間が経過するまでの間に、第一情報受信手段103が第一指示R2に対応する広告情報を受信できなかったため、第一指示に対応する広告情報を、第一サーバ装置10に対して特定されている一の第二サーバ装置30aから受信できないと判断する。
このため、取得先要求送信手段105は、制御装置20に対して取得先要求情報を送信する。
図8は、制御装置20の取得先格納手段202に格納されている取得先情報を管理する取得先情報管理表である。取得先情報管理表は、「取得先」と「負荷」という属性を有している。「取得先」は取得先情報であり、ここでは、各第二サーバ装置30a−30eの第二サーバ識別情報、具体的には、各第二サーバ装置30のIPアドレスである。「負荷」は、第二サーバ装置30の負荷を示す値であり、ここでは、一例として、CPUの使用率(%)であるとする。
制御装置20の負荷取得手段203は、予め指定された時間、例えば1分ごとに、取得先情報管理表の各レコード(各行)の「取得先」であるIPアドレスが示す第二サーバ装置30に対して、CPUの使用率を示す値の送信を指示するコマンドを送信する。そして、負荷取得手段203は、コマンドに応じて各第二サーバ装置30が送信するCPUの使用率を示す値を、各第二サーバ装置30の負荷の情報として受信する。そして、受信した負荷の情報で、各第二サーバ装置30に対応する「負荷」の値を更新、例えば上書きする。
制御装置20の取得先要求受信手段201が、第一サーバ装置10から取得先要求情報を受信すると、取得先送信手段204は、複数の第二サーバ装置30a−30bのうちの負荷が少ない第二サーバ装置30aの取得先情報を取得する。ここでは、取得先送信手段204は、図8に示した取得先情報管理表の「負荷」の値が最も小さいレコードの「取得先」の値を取得する。図8においては、「負荷」の値が、「13(%)」であるレコードの「取得先」の値である「123.123.xxx.xx2」を取得する。そして、取得した取得先情報を第一サーバ装置10に送信する。
なお、ここでは、第二サーバ装置30の負荷の情報として、CPUの使用率の情報を用いたが、CPUの使用率に加えて、あるいは、CPUの使用率の代わりに、メモリの使用率や、同時接続数等の他の負荷を示す1以上の情報を用いてもよい。また、ここでは、負荷の最も低い第二サーバ装置30の取得先情報を取得するようにしたが、必ずしも最も低い第二サーバ装置30の取得先情報を取得しなくてもよい。また、予め指定された公知の負荷分散のためのアルゴリズム等を用いて、複数種類の負荷の情報から、最適な第二サーバ装置30の取得先情報を取得してもよい。
第一サーバ装置10の取得先受信手段106は、制御装置20から取得先情報「123.123.xxx.xx2」を受信する。そして、第一指示送信手段102は、この取得先受信手段106が受信した取得先情報「123.123.xxx.xx2」が示す第二サーバ装置30bに、第一指示R2に対応する第一取得指示を送信する。第二サーバ装置30bは、第二サーバ装置30aと同様に、第一取得指示に従って第一指示R2に対応した広告情報を取得して第一サーバ装置10に送信する。第一サーバ装置10は、第二サーバ装置30bが取得した第一指示R2に対応する広告情報を端末装置40に送信する。
このようにして、一の第二サーバ装置30aから第一指示R2に対応した情報を取得できない場合には、制御装置20から送信される取得先情報が示す第二サーバ装置30bから広告情報を取得することができるため、第一指示に対応した広告情報が取得できない状況を回避することができる。
なお、上記の具体例においてはクッキーを用いる場合について説明したが、クッキーの代わりに、端末装置40や、そのユーザ、あるいは、端末装置40で出力しようとするWEBページ等の、広告情報の要求元を識別可能な情報を用いるようにしてもよい。このような広告情報の要求元を識別可能な情報を用いることで、例えば、要求元に応じた広告情報を取得することが可能となる。また、同じ要求元に対して、重複した広告情報を取得しないようにすることが可能となる。
以上、本実施の形態によれば、第一指示に対応した情報を、第一サーバ装置に対して特定される一の第二サーバ装置から取得できるとともに、この一の第二サーバ装置から第一指示に対応した情報が取得できない場合には、制御装置が送信する取得先情報が示す第二サーバ装置から第一指示に対応する情報を取得することができるため、通常は、一の第二サーバ装置から優先的に第一指示に対応する情報を取得できるとともに、一の第二サーバ装置から情報を取得できない場合には、他の第二サーバ装置から情報を確実に取得することができる。
これにより、第二サーバ装置から取得する情報が広告情報である場合、広告情報を通常取得する第二サーバ装置が、特定の一の第二サーバ装置となるため、例えば、第一指示に対して取得した広告情報の履歴等を容易に管理することが可能となり、同じ端末装置等から送信される第一指示に対して、容易に、重複した広告情報を取得しないようにすることができる。その一方で、特定の一の第二サーバ装置から広告情報が取得できない場合には、取得先情報が示す他の第二サーバ装置から広告情報を取得することができるため、広告情報が取得できない、すなわち広告情報を出力できない事態を回避することができる。
また、第二サーバ装置が取得した情報を、第一サーバ装置を介して第一指示を送信した端末装置に送信することができるため、端末装置は、第一指示の送信先となる第一サーバ装置から情報を取得することができ、セキュリティ等の情報の管理が容易になる。
また、制御装置が、負荷の低い第二サーバ装置の取得先情報を第一サーバ装置に送信するため、、特定の一の第二サーバ装置から広告情報が取得できない場合には、広告情報の取得しやすい第二サーバ装置から広告情報を取得することが可能となり、広告情報を確実に取得することができる。
また、例えば、特定の一の第二サーバ装置の第二情報格納手段301に格納される情報が、端末装置等により蓄積された広告情報やその他の情報、例えば、写真等の画像情報等のオリジナルの情報であり、他の第二サーバ装置がこの特定の一の第二サーバ装置に格納された情報を、所定のスケジュール等でバックアップした情報である場合、通常は、特定の一の第二サーバ装置に格納されているオリジナルの情報を、第一サーバ装置が取得して端末装置に対して送信することができるため、常に、最新のオリジナルの情報を端末装置に提供できるとともに、第二サーバ装置からオリジナルの情報を取得できない場合には、他の第二サーバ装置からバックアップした情報を提供することができる。バックアップした情報は、必ずしも最新の情報ではないが、バックアップした情報を提供することで、取得を指示された情報が提供できない事態を回避することができる。
なお、本発明においては、1以上の第二サーバ装置は、複数のサーバ装置で構成されていてもよい。例えば、1以上の第二サーバ装置は、並列化された複数のサーバ装置で構成されていてもよく、階層化された複数のサーバ装置や、直列に接続された複数のサーバ装置で構成されていてもよい。
図9は、本実施の形態の情報システムの変形例を説明するための模式図である。この情報システムの第二サーバ装置31は、第二サーバ装置30の代わりに利用されるサーバ装置であり、複数のサーバ装置で構成されるサーバ装置である。
第二サーバ装置31は、負荷分散サーバ装置311と、2以上の第二制御装置312と、2以上の第三サーバ装置313とを備えている。負荷分散サーバ装置311は、図示していないが、上述した第二指示受信手段302を備えている。また、各第三サーバ装置313は、図示していないが、第二情報格納手段301、第二情報取得手段303、及び第二送信手段304を備えている。ここでは、一例として、4以上の第二制御装置312a−312dと、4以上の第三サーバ装置313a−313dとを備えている場合について説明する。ただし、第二制御装置312及び第三サーバ装置313の数は、2以上であればよい。
負荷分散サーバ装置311と、2以上の第二制御装置とは通信可能に接続されているものとする。また、2以上の第二制御装置と、2以上の第三サーバ装置313とは通信可能に接続されているものとする。
負荷分散サーバ装置311は、負荷を分散させるためのサーバ装置であり、ここでは、例えば、広告情報を取得する処理を分散させるためサーバ装置である。負荷分散サーバ装置311は、例えば、いわゆるロードバランサである。ロードバランサの構成及び動作については公知技術であるので、ここでは詳細な説明は省略する。
第一サーバ装置10が送信する第一取得指示を、負荷分散サーバ装置311が受信すると、負荷分散サーバ装置311は、負荷を分散させるために、受信した第一取得指示を、2以上の第二制御装置312のいずれか一つに送信する。
第二制御装置312は、負荷分散サーバ装置311から受信した第一取得指示を、2以上の第三サーバ装置313のいずれか一つに割り当てるためのサーバ装置であり、受信した第一取得指示を、第三サーバ装置313の一つに送信する。
第二制御装置312は、同じ要求元について送信された第一指示に対応する第一取得指示を、同じ第三サーバ装置313に送信する。同じ要求元について送信された第一指示とは、同じ端末装置40や、同じユーザから送信された第一指示や、端末装置40で出力される一のWEBページに配置される広告情報を取得するための複数の第一指示である。
第二制御装置312は、例えば、同じ要求元を示す情報を含む第一指示を、同じ第三サーバ装置313に送信する。要求元を示す情報は、例えば、上述したようなクッキーや、端末装置40のIPアドレス等である。
具体的には、各第二制御装置312は、予め要求元を示す情報のハッシュ値の末尾の値と、複数の第三サーバ装置313のいずれか一つとをそれぞれ対応づけた同じ管理情報を有しており、第一取得指示に含まれる要求元を示す情報について、共通するアルゴリズムによりハッシュ値を取得し、取得した末尾の値と一致する値と対応づけられた第三サーバ装置313を管理情報を用いて検出する。そして、検出した第三サーバ装置313に第一取得指示を送信する。これにより、同じ要求元を示す情報を有する第一取得指示、すなわち、同じ要求元について送信された第一指示に対応する第一取得指示を、同じ第三サーバ装置313に送信することができる。なお、ハッシュ値の末尾の値の代わりに、ハッシュ値の特定の位置の値を用いてもよい。また、第三サーバ装置313が10台以上設けられている場合、ハッシュ値内の複数桁の値を用いてもよい。
第三サーバ装置313は、第一指示に対応する広告情報を取得して送信するサーバ装置である。各第三サーバ装置313は、第二制御装置312から第一取得指示を受信すると、第三サーバ装置313の第二情報取得手段303は、上記の実施の形態等と同様に、第二情報格納手段301から、第一指示に対応した広告情報を取得し、端末装置40に対して送信する。なお、第三サーバ装置313は、同じ要求元について送信された複数の第一指示に対しては、異なる広告情報を取得することが好ましい。例えば、第三サーバ装置313は、一の広告情報を取得した場合に、取得した広告情報に対して、第一指示に含まれるクッキー等の要求元を示す情報を対応づけて、予め指定された時間だけ第二情報格納手段301等に格納し、新たに受信した第一指示について広告情報を取得する際には、この第一指示に含まれる要求元を示す情報と対応づけられた広告情報は取得しないようにする。これにより、同じ要求元に重複した広告情報が送信されることを防ぐことができる。
以下、変形例の動作を具体例を簡単に説明すると、上述した具体例と同様に、一のWEBページに配置される広告情報を取得するための、同じクッキーCK1を有する三つの第一指示R1−R3が端末装置40から順次送信されるとする。そして、第一サーバ装置10は、これらの第一指示に対応する第一取得指示を、特定の一の第二サーバ装置31に送信するものとする。
例えば、負荷分散サーバ装置311は、第一サーバ装置10から受信した第一指示R1に対応する第一取得指示を、第二制御装置312aに送信したとする。第二制御装置312は、第一取得指示に含まれるクッキーCK1のハッシュ値を取得し、その末尾の値を取得する。末尾の値が、「2」であったとすると、この末尾の値「2」と対応づけられた第三サーバ装置313を、予め用意された管理情報から検出する。ここでは、例えば、第三サーバ装置313bが検出されたとする。このため、第二制御装置312aは、第一指示R1に対応する第一取得指示を、第三サーバ装置313bに送信する。
第三サーバ装置313bは、第一指示R1に対応する第一取得指示に従って、第一指示R1に対応する広告情報を取得し、端末装置40に対して送信する。広告情報は、端末装置40に対して直接送信してもよいし、第1サーバ装置10等を介して間接的に送信してもよい。また、取得した広告情報に対して、第一指示R1に含まれるクッキーCK1と取得時刻とを対応づけておく。
また、負荷分散サーバ装置311は、第一サーバ装置10から受信した第一指示R2に対応する第一取得指示を、第二制御装置312bに送信したとする。第二制御装置312は、第一取得指示に含まれるクッキーCK1のハッシュ値を取得し、その末尾の値を取得するが、第一指示R2に含まれるクッキーと、第一指示R1に含まれるクッキーとは同じクッキーであるため、ハッシュ値の末尾の値は、上記と同じ「2」となり、第二制御装置312bは、第一指示R2に対応する第一取得指示を、第三サーバ装置313bに送信する。
第三サーバ装置313bは、第一指示R2に対応する第一取得指示に従って、第一指示R2に対応する広告情報を取得し、端末装置40に対して送信する。このとき、現在までの経過時間が予め指定された時間以内である取得時刻と対応づけられた広告情報であって、クッキーCK1を対応づけられた広告情報は取得しないようにする。これにより、第一指示R1に対応して取得された広告情報と第一指示R2に対応して取得された広告情報とを異なる広告情報とすることができる。
また、負荷分散サーバ装置311は、第一サーバ装置10から受信した第一指示R3に対応する第一取得指示を、第二制御装置312dに送信したとする。第二制御装置312は、第一取得指示に含まれるクッキーCK1のハッシュ値を取得し、その末尾の値を取得するが、第一指示R3に含まれるクッキーと、第一指示R1に含まれるクッキーとは同じクッキーであるため、ハッシュ値の末尾の値は、上記と同じ「2」となり、第二制御装置312dは、第一指示R3に対応する第一取得指示を、第三サーバ装置313bに送信する。
第三サーバ装置313bは、第一指示R3に対応する第一取得指示に従って、第一指示R3に対応する広告情報を取得し、端末装置40に対して送信する。このとき、現在までの経過時間が予め指定された時間以内である取得時刻と対応づけられた広告情報であって、クッキーCK1を対応づけられた広告情報は取得しないようにする。これにより、第一指示R1及び第一指示R2に対応して取得された広告情報と、第一指示R3に対応して取得された広告情報とを異なる広告情報とすることができる。
このように、第二サーバ装置を複数のサーバ装置で構成することで、第二サーバ装置の処理を、分散処理することができ、処理の高速化を図ることができる。
また、クッキー等から算出したハッシュ値を利用して、同じ要求元について送信された第一指示を、同じ第三サーバ装置に送信することで、重複する広告情報を、同じ要求元に送信しないようにすることが可能となる。
また、上記実施の形態において、一の装置に存在する2以上の通信手段(第一指示受信手段、第一指示送信手段、第一情報受信手段など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記実施の形態における情報システムを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、情報を取得する指示である第一指示を端末装置から受信する第一指示受信手段と、第一指示受信手段が第一指示を受信した場合、2以上の第二サーバ装置のうちの一の第二サーバ装置に対して第一指示に対応する情報の取得の指示を送信する第一指示送信手段と、第一指示に対応する情報を一の第二サーバ装置から受信できない場合に、制御装置に2以上の第二サーバ装置のうちの第一指示に対応する情報の取得先となる第二サーバ装置を示す情報である取得先情報を要求する情報である取得先要求情報を送信する取得先要求送信手段と、制御装置から取得先要求情報に応じた取得先情報を受信する取得先受信手段と、して機能させ、第一指示送信手段は、第一指示に対応する情報を一の第二サーバ装置から受信できない場合に、取得先受信手段が受信した取得先情報が示す第二サーバ装置に第一指示に対応する情報の取得の指示を送信するプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図10は、上記プログラムを実行して、上記実施の形態による情報システムを構成する第一サーバ装置10、制御装置20、第二サーバ装置30、及び端末装置40をそれぞれ実現可能なコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図10において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図11は、コンピュータシステム900の内部構成を示す図である。図11において、コンピュータ901は、CD−ROMドライブ905に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による情報システム等の機能を実行させるプログラムは、CD−ROM921に記憶されて、CD−ROMドライブ905に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による情報システムの機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明における各手段の「手段」は、「部」や「回路」と読み替えても良い。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。