(57)【要約】【課題】仮想サーバとローカルサーバとのセッションを切断して適切な負荷分散を実行できる負荷分散技術を提供する。【解決手段】サーバシステムは、複数のクライアント端末及び複数のローカルサーバにネットワーク接続される。前記サーバシステムは、複数の仮想サーバと、複数の前記仮想サーバに対して処理負荷を分散させる負荷分散装置と、複数の前記仮想サーバそれぞれの手前に設けられる複数のバッファと、を備える。前記バッファは、特定の前記クライアント端末から送られてくるデータを一定時間保持することができる。【選択図】図１
2019128671.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント端末及び複数のローカルサーバにネットワーク接続されるサーバシステムであって、
複数の仮想サーバと、
複数の前記仮想サーバに対して処理負荷を分散させる負荷分散装置と、
複数の前記仮想サーバそれぞれの手前に設けられる複数のバッファと、
を備え、
前記バッファは、特定の前記クライアント端末から送られてくるデータを一定時間保持することができる、サーバシステム。
【請求項２】
前記一定時間は、前記仮想サーバのセッション保持時間以上である、請求項１に記載のサーバシステム。
【請求項３】
前記負荷分散装置は、複数の前記ローカルサーバそれぞれが管理する前記クライアント端末の台数を考慮して、複数の前記仮想サーバに対して処理負荷を分散させる、請求項１又は請求項２に記載のサーバシステム。
【請求項４】
前記負荷分散装置は、複数の前記ローカルサーバそれぞれが管理する前記クライアント端末の台数に対して重み付けが行われた結果を考慮して、複数の前記仮想サーバに対して処理負荷を分散させる、請求項３に記載のサーバシステム。
【請求項５】
複数の前記ローカルサーバの少なくとも一つが管理する前記クライアント端末の台数が変更されたことを契機として、前記バッファが、特定の前記クライアント端末から送られてくるデータを一定時間保持する、請求項３又は請求項４に記載のサーバシステム。
【請求項６】
前記重み付けの量が変更されたことを契機として、前記バッファが、特定の前記クライアント端末から送られてくるデータを一定時間保持する、請求項４に記載のサーバシステム。
【請求項７】
複数の仮想サーバと、複数の前記仮想サーバに対して処理負荷を分散させる負荷分散装置と、複数の前記仮想サーバそれぞれの手前に設けられる複数のバッファと、を備え、複数のクライアント端末及び複数のローカルサーバにネットワーク接続されるサーバシステムにおける負荷分散方法であって、
前記バッファが特定の前記クライアント端末から送られてくるデータを一定時間保持する保持工程と、
前記サーバシステムと特定の前記ローカルサーバとの通信セッションが前記保持工程によって切断されている期間中に、前記負荷分散装置が分散の状態を変更する変更工程と、
を備える、負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステムにおける負荷分散技術に関する。
【背景技術】
【０００２】
特許文献１に開示されているタクシー配車システムでは、管理センタに設けられるロードバランサが、複数のサーバ、データベースに対する要求を配分し、負荷分散を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−９９６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サーバの通信においては、セッション保持時間（通常は最短で１０秒）を設定することができる。しかしながら、多数のクライアント端末（車両）と通信するサーバには常にデータが上がってくるので、セッションが切れるタイミングが無い。セッションが切れるタイミングが無ければ、ロードバランサによって分散の状態を変更することができず、ロードバランサは適切な負荷分散を行うことができない。特に、管理センタに設けられるサーバが二台構成である場合、一台を保守状態にすると、もう一台のサーバに負荷が集中することになり、その後保守状態であった一台を復帰させてもセッションが切れるタイミングが無くロードバランサが適切な負荷分散を行えない可能性が高い。
【０００５】
本発明は、上記の課題に鑑み、仮想サーバとローカルサーバとのセッションを切断して適切な負荷分散を実行できる負荷分散技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るサーバシステムは、複数のクライアント端末及び複数のローカルサーバにネットワーク接続されるサーバシステムであって、複数の仮想サーバと、複数の前記仮想サーバに対して処理負荷を分散させる負荷分散装置と、複数の前記仮想サーバそれぞれの手前に設けられる複数のバッファと、を備え、前記バッファは、特定の前記クライアント端末から送られてくるデータを一定時間保持することができる構成（第１の構成）である。
【０００７】
上記第１の構成のサーバシステムにおいて、前記一定時間は、前記仮想サーバのセッション保持時間以上である構成（第２の構成）であってもよい。
【０００８】
上記第１又は第２の構成のサーバシステムにおいて、前記負荷分散装置は、複数の前記ローカルサーバそれぞれが管理する前記クライアント端末の台数を考慮して、複数の前記仮想サーバに対して処理負荷を分散させる構成（第３の構成）であってもよい。
【０００９】
上記第３の構成のサーバシステムにおいて、前記負荷分散装置は、複数の前記ローカルサーバそれぞれが管理する前記クライアント端末の台数に対して重み付けが行われた結果を考慮して、複数の前記仮想サーバに対して処理負荷を分散させる構成（第４の構成）であってもよい。
【００１０】
上記第３又は第４の構成のサーバシステムにおいて、複数の前記ローカルサーバの少なくとも一つが管理する前記クライアント端末の台数が変更されたことを契機として、前記バッファが、特定の前記クライアント端末から送られてくるデータを一定時間保持する構成（第５の構成）であってもよい。
【００１１】
上記第４の構成のサーバシステムにおいて、前記重み付けの量が変更されたことを契機として、前記バッファが、特定の前記クライアント端末から送られてくるデータを一定時間保持する構成（第６の構成）であってもよい。
【００１２】
本発明に係る負荷分散方法は、複数の仮想サーバと、複数の前記仮想サーバに対して処理負荷を分散させる負荷分散装置と、複数の前記仮想サーバそれぞれの手前に設けられる複数のバッファと、を備え、複数のクライアント端末及び複数のローカルサーバにネットワーク接続されるサーバシステムにおける負荷分散方法であって、前記バッファが特定の前記クライアント端末から送られてくるデータを一定時間保持する保持工程と、前記サーバシステムと特定の前記ローカルサーバとの通信セッションが前記保持工程によって切断されている期間中に、前記負荷分散装置が分散の状態を変更する変更工程と、を備える構成（第７の構成）である。
【発明の効果】
【００１３】
本発明の負荷分散技術によれば、仮想サーバとローカルサーバとのセッションを切断して適切な負荷分散を実行できる。
【図面の簡単な説明】
【００１４】
【図１】クラウドシステムの一構成例を示す図
【図２】配車センタから配車指示が出力された場合の動作を説明する図
【図３】クライアント端末から任意発信が出力された場合の動作を説明する図
【図４】クライアント端末から任意発信が出力された場合の動作を説明する図
【図５】クライアント端末から任意発信が出力された場合の動作を説明する図
【図６】負荷分散の一例を示す図
【図７】負荷分散の他の例を示す図
【発明を実施するための形態】
【００１５】
以下、本発明の例示的な実施形態について、図面を参照しながら詳細に説明する。また、サーバシステムの一具体例としてデータセンタを例に説明する。
【００１６】
＜１．クラウドシステムの構成＞
図１は、クラウドシステムの一構成例を示す図である。図１に示すクラウドシステムは、クライアント端末１００、配車センタ２００、及びデータセンタ５００を備えている。図１に示すクラウドシステムはタクシーの配車システムとして利用される。
【００１７】
クライアント端末１００は、公衆網３００を介してデータセンタ５００と通信可能である。
【００１８】
配車センタ２００は、専用網４００を介してデータセンタ５００と通信可能である。なお、本実施形態と異なり、配車センタ２００が公衆網３００を介してデータセンタ５００と通信可能であっても構わない。
【００１９】
クライアント端末１００は、タクシーに定常的又は一時的に搭載される。図１では、クライアント端末１００を１台しか図示していないが、実際には図１に示すクラウドシステムを利用するタクシーの台数分のクライアント端末１００が存在する。クライアント端末１００は、ハンドマイク１０１と、情報処理装置１０２と、位置情報取得部１０３と、ＩＰ無線機１０４と、を備えている。
【００２０】
ハンドマイク１０１は、電気信号である配車指示を音声に変換して運転手に伝え、運転手が発した返答を電気信号である指示応答に変換して情報処理装置１０２に出力する。
【００２１】
情報処理装置１０２は、配車指示、指示応答、及び位置情報等を処理する。
【００２２】
位置情報取得部１０３は、クライアント端末１００の位置情報ひいてはクライアント端末１００を搭載しているタクシーの位置情報を取得する。位置情報取得部１０３としては、例えばナビゲーションシステム等で利用されるＧＰＳ（Global Positioning System）受信部を用いることができる。ＧＰＳ受信部は、複数のＧＰＳ衛星からの信号を受信して、現在時刻におけるクライアント端末１００の位置が地球上における経度緯度で表現された情報を取得する。
【００２３】
ＩＰ無線機１０４は、公衆網３００を介してデータセンタ５００のＭ２Ｍ通信機５０１と通信する。
【００２４】
配車センタ２００は、パーソナルコンピュータ（以下、「ＰＣ」と略す）２０１及び２０２と、スイッチ２０３と、ローカルサーバ２０４と、ルータ２０５と、を備えている。図１では、配車センタ２００を１つしか図示していないが、実際には図１に示すクラウドシステムを利用するタクシー会社の数だけ配車センタ２００が存在する。
【００２５】
スイッチ２０３は、ローカルサーバ２０４と接続するＰＣを切り替える。ローカルサーバ２０４は、ＰＣ２０１又は２０２からの命令に応じて、配車指示をルータ２０５及び専用網４００を介してデータセンタ５００に送信する。
【００２６】
データセンタ５００は、Ｍ２Ｍ通信機５０１と、ルータ５０２と、負荷分散装置５０３と、スイッチ５０４及び５０７と、物理サーバ５０５及び５０６と、データベースサーバ５０８及び５０９と、データベース５１０と、を備えている。
【００２７】
データセンタ５００は、Ｍ２Ｍ通信機５０１及びルータ５０２を用いて、クライアント端末１００及び配車センタ２００と通信する。
【００２８】
負荷分散装置５０３は、物理サーバ５０５及び５０６及び各物理サーバが備える仮想サーバに対して処理負荷を分散させる。クライアント端末１００との通信に関する処理は、クライアント端末１００単位で後述する各アプリケーションに分散させる。また、配車センタ２００との通信に関する処理は、配車センタ２００単位で後述する各アプリケーションに分散させる。
【００２９】
スイッチ５０４は、負荷分散装置５０３と接続する物理サーバを切り替える。
【００３０】
物理サーバ５０５は、仮想サーバ５０５ａ及び５０５ｂを備えている。仮想サーバ５０５ａは、アプリケーション５０５ａ１〜５０５ａ３と、音声制御部５０５ａ４と、記憶部５０５ａ５と、を備えている。仮想サーバ５０５ａは、例えば４つのＣＰＵを備え各ＣＰＵがアプリケーション５０５ａ１〜５０５ａ３及び音声制御部５０５ａ４のいずれか一つを処理する構成であってもよく、ＣＰＵをマルチコア対応としてＣＰＵの個数を３つ以下にしてもよい。音声制御部５０５ａ４は、アプリケーション５０５ａ１〜５０５ａ３それぞれと協働し、記憶部５０５ａ５はアプリケーション５０５ａ１〜５０５ａ３それぞれの処理内容をログデータとして記憶する。仮想サーバ５０５ｂは仮想サーバ５０５ａと同様の構成である。
【００３１】
物理サーバ５０５は、バッファ５０５ｃ及び５０５ｄも備えている。バッファ５０５ｃは仮想サーバ５０５ａの手前に配置され、バッファ５０５ｄは仮想サーバ５０５ｂの手前に配置される。バッファ５０５ｃ及び５０５ｄはそれぞれ、特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持する。例えば図１に示すクラウドシステムを利用するタクシー会社のうち、保有するタクシーの台数が比較的多いタクシー会社を特定のタクシー会社とすればよい。特定のタクシー会社は、単数、複数のどちらであってよい。
【００３２】
物理サーバ５０６は物理サーバ５０５と同様の構成である。仮想サーバの数及び物理サーバの数は本実施形態と同一でなくても構わない。
【００３３】
スイッチ５０７は、負荷分散装置５０３と接続するデータベースサーバを切り替える。
【００３４】
データベースサーバ５０８及び５０９は、データセンタ５００が受信するデータ等に基づいてデータベース５１０を更新する。例えば、データベース５１０に格納されている各クライアント端末１００の位置情報が更新される。また例えば、図１に示すクラウドシステムを利用するタクシー会社が保有するタクシーの台数を増やした場合には、クライアント端末１００を製造する工場（不図示）や保有するタクシーの台数を増やしたタクシー会社の配車センタ２００等から送信される情報に基づいて、データベース５１０に登録されるクライアント端末１００が追加される。
【００３５】
＜２．配車指示が出力された場合の動作＞
図２は、配車指示が配車センタ２００から出力された場合の動作を説明する図である。或る１つの配車センタ２００が配車指示を出力すると、配車指示を出力した配車センタ２００との通信に関する処理を行う１つのアプリケーションが配車指示を処理する。
【００３６】
配車指示を出力した配車センタ２００との通信に関する処理を行う１つのアプリケーションは、配車指示に含まれるタクシー会社及び配車先に関する情報に基づいて、データベース５１０に送信先を確認する。データベース５１０は、配車指示に含まれる情報に対応するタクシー会社が保有する配車先の周辺に位置する所定数のクライアント端末１００を送信先とし、送信先であるクライアント端末１００との通信に関する処理を行う単数又は複数のアプリケーションに送信指示を送る。
【００３７】
送信先であるクライアント端末１００との通信に関する処理を行う単数又は複数のアプリケーションは、データベース５１０からの送信先指示に従って、配車先の周辺に位置する所定数のクライアント端末１００に配車指示を送信する。
【００３８】
配車指示を受信したクライアント端末１００から最も早く返ってきた配車指示応答を、最も早く配車指示応答を返したクライアント端末１００との通信に関する処理を行うアプリケーションが受け付ける。そして、配車指示を出力した配車センタ２００との通信に関する処理を行う１つのアプリケーションは、配車指示を出力した配車センタ２００に配車指示応答を送信する。これにより、１つの配車が完了する。
【００３９】
＜３．任意発信が出力された場合の動作＞
図３は、位置情報を通知するための任意発信がクライアント端末１００から出力された場合の動作を説明する図である。或る１つのクライアント端末１００が任意発信を出力すると、任意発信を出力したクライアント端末１００との通信に関する処理を行う１つのアプリケーションが任意発信を処理する。
【００４０】
任意発信を出力したクライアント端末１００との通信に関する処理を行う１つのアプリケーションは、任意発信に含まれるタクシー会社及に関する情報に基づいて、データベース５１０に送信先を確認する。データベース５１０は、任意発信に含まれる情報に対応するタクシー会社が保有する配車センタ２００を送信先とし、送信先である配車センタ２００との通信に関する処理を行う１つのアプリケーションに送信指示を送る。
【００４１】
送信先である配車センタ２００との通信に関する処理を行う１つのアプリケーションは、データベース５１０からの送信先指示に従って、送信先である配車センタ２００に任意発信を送信する。
【００４２】
任意発信を受信した配車センタ２００から返ってきた任意発信応答を、任意発信応答を返した配車センタ２００との通信に関する処理を行うアプリケーションが受け付ける。そして、任意発信を出力したクライアント端末１００との通信に関する処理を行う１つのアプリケーションは、任意発信を出力したクライアント端末１００に任意発信応答を送信する。
【００４３】
任意発信を出力するクライアント端末１００が特定のタクシー会社のクライアント端末１００であれば、図４に示すようにバッファが任意発信を一定時間保持することができる。バッファが任意発信を一定時間保持した場合、一定時間が経過すると、図５に示すように任意発信に関する処理が再開される。すなわち、バッファが任意発信を一定時間保持した場合には一定時間だけ処理は遅延するが、図３と同様の処理結果を得ることができる。
【００４４】
バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄが特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持するタイミングは、１日に１回や１時間に１回等の定期的なタイミングであってもよく、データセンタ５００の管理者による操作に応じた任意のタイミングであってもよい。
【００４５】
バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄが特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持することで、特定のタクシー会社の配車センタ２００がクライアント端末１００から送られてくるデータに対する応答を返す必要のない期間が発生する。そして、当該期間中に、データセンタ５００内の仮想サーバと、特定のタクシー会社の配車センタ２００内のローカルサーバとのセッションが切断する。したがって、当該期間中に、必要に応じて負荷分散装置５０３が分散の状態を変更することが可能になり、適切な負荷分散を実行できる。
【００４６】
ただし、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄが特定のタクシー会社のクライアント端末１００から送られてくるデータを保持している一定時間の間に特定のタクシー会社の配車センタ２００から配車指示等が出力された場合には、特定のタクシー会社の配車センタ２００内のローカルサーバとのセッションが例外的に切断されない。
【００４７】
また、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄそれぞれを仮想サーバ５０５ａ、５０５ｂ、５０６ａ、及び５０６ｂの手前に設けているので、特定のタクシー会社が複数である場合に、データセンタ５００内の仮想サーバと、特定のタクシー会社それぞれの配車センタ２００内のローカルサーバとのセッションを一斉に切断することができる。これにより、負荷分散装置５０３が分散の状態を変更するときに、特定のタクシー会社それぞれの配車センタ２００との通信に関する処理を行う各アプリケーションを変更することが可能になる。
【００４８】
もし特定のタクシー会社それぞれの配車センタ２００内のローカルサーバの手前にバッファを設けると、ローカルサーバ間で時間情報のずれがあることが想定されるため、特定のタクシー会社それぞれの配車センタ２００内のローカルサーバとのセッションを一斉に切断することができなくなる。これにより、負荷分散装置５０３が分散の状態を変更するときに、特定のタクシー会社それぞれの配車センタ２００との通信に関する処理を行う各アプリケーションの一部しか変更することができなくなり、適切な負荷分散を実行できないおそれがある。
【００４９】
つまり、バッファを仮想サーバの手前に設けることで、適切な負荷分散の実行が保証される。
【００５０】
なお、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄが特定のタクシー会社のクライアント端末１００から送られてくるデータを保持している一定時間は、データセンタ５００内の仮想サーバのセッション保持時間以上であることが望ましい。これにより、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄが特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持することで、データセンタ５００内の仮想サーバと、特定のタクシー会社の配車センタ２００内のローカルサーバとのセッションが確実に切断する。
【００５１】
＜４．負荷分散の具体例＞
以下、データセンタ５００内のアプリケーションが１２個、Ａ会社が所有する配車センタ２００が管理するクライアント端末１００が１０台、Ｂ会社が所有する配車センタ２００が管理するクライアント端末１００が３０台、Ｃ会社が所有する配車センタ２００が管理するクライアント端末１００が６０台、Ｄ会社が所有する配車センタ２００が管理するクライアント端末１００が５０台である場合を例に挙げて、負荷分散の具体例について説明する。
【００５２】
図６は負荷分散の一例を示す図であり、図７は負荷分散の他の例を示す図である。図６に示す負荷分散の例では、負荷分散装置５０３が、各アプリケーションの合計最大セッション数を考慮して、各アプリケーションの合計最大セッション数がなるべく均一になるように負荷分散を行っている。
【００５３】
しかしながら、各配車センタ２００が複数のクライアント端末１００からの任意発信を受け取るため、配車センタ２００とのセッションは、クライアント端末１００とのセッションに比べて負荷が大きくなる。配車センタ２００とのセッションにおける最大負荷は、クライアント端末１００とのセッションにおける負荷に対して、配車センタ２００が管理しているクライアント端末１００の台数分倍となる。したがって、図６に示す負荷分散の例では、アプリケーション＃７にかかる負荷が非常に大きくなるおそれがある。
【００５４】
そこで、図７に示す負荷分散の例のように、負荷分散装置５０３が、各配車センタ２００が管理しているクライアント端末１００の台数すなわち各ローカルサーバ２０４が管理しているクライアント端末１００の台数を考慮して、各アプリケーションの最大負荷がなるべく均一になるように負荷分散を行うことが望ましい。これにより、図６に示す負荷分散の例に比べて、各アプリケーションにかかる負荷が大きくなることを抑制することできる。すなわち、図７に示す負荷分散の例を実行することで、より一層適切な負荷分散を行うことができる。なお、負荷分散装置５０３は、各配車センタ２００やデータベース５１０から各配車センタ２００が管理しているクライアント端末１００の台数に関する情報を取得すればよい。
【００５５】
また、曜日や時間帯などによって実際に稼働しているクライアント端末１００の台数が変動する。したがって、各ローカルサーバ２０４が管理しているクライアント端末１００の台数に対して、曜日や時間帯などに基づく重み付けを行ってもよい。例えば、金曜日の深夜には８０％の重み付けを行い、平日の日中には５０％の重み付けを行うなどの重み付けが考えられる。負荷分散装置５０３は重み付けの具体的な内容を、例えばデータテーブルの形式で記憶してもよく、機械学習によって把握してもよい。負荷分散装置５０３が、各ローカルサーバ２０４が管理しているクライアント端末１００の台数に対して重み付けが行われた結果を考慮して、各アプリケーションの重み付けが反映された最大負荷がなるべく均一になるように負荷分散を行っている。これにより、更に適切な負荷分散を行うことができる。
【００５６】
各アプリケーションの最大負荷の少なくとも一つ又は各アプリケーションの重み付けが反映された最大負荷の少なくとも一つが変更された場合には、負荷分散装置５０３が分散の状態を変更して適切な負荷分散を行うことが望ましい。したがって、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄは、各ローカルサーバ２０４の少なくとも一つが管理しているクライアント端末１００の台数が変更されたことを契機として、特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持することが望ましい。同様に、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄは、重み付けの量が変更されたことを契機として、特定のタクシー会社のクライアント端末１００から送られてくるデータを一定時間保持することが望ましい。
【００５７】
また、管理しているクライアント端末１００の台数が変更されたときや重み付けの量が変更されたときに配車センタ２００が再起動するようにし、配車センタ２００から再起動を行った旨の情報を受け取ると、負荷分散装置５０３が分散の状態を変更するようにしてもよい。この場合、バッファ５０５ｃ、５０５ｄ、５０６ｃ、及び５０６ｄを設けない構成にすることも可能である。
【００５８】
＜５．変形例＞
上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。上述した実施形態において説明した種々の変形例は互いに矛盾しない限り適宜組合せて実施することができる。
【符号の説明】
【００５９】
１００  クライアント端末
２００  配車センタ
３００  公衆網
４００  専用網
５００  データセンタ
５０３  負荷分散装置
５０５ａ、５０５ｂ、５０６ａ、５０６ｂ  仮想サーバ
５０５ｃ、５０５ｄ、５０６ｃ、５０６ｄ  バッファ
【図１】
2019128671.tif 000003
【図２】
2019128671.tif 000004
【図３】
2019128671.tif 000005
【図４】
2019128671.tif 000006
【図５】
2019128671.tif 000007
【図６】
2019128671.tif 000008
【図７】
2019128671.tif 000009