(57)【要約】【課題】信号内容依存構成の適用可否判断と信号の振り分けキーの選定とを容易に行うことができる構成適用可否判断装置および分散構成評価方法を提供する。【解決手段】構成適用可否判断装置１００は、属性情報を含む入力信号ログ１０１と、アクセス種別およびＤＢアクセスキーを含むＤＢアクセスログ１０２とに基づいて、属性情報とアクセス種別とＤＢアクセスキーとを対応付けて、入力信号とＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブル２００を作成する入力信号／ＤＢアクセス対応付け部１３０を備える。構成適用可否判断部１６０は、アクセス種別がRead／Updateである場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、ＤＢアクセスを行う入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、属性情報を振り分けキーとする。【選択図】図２
2018025911.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの入力信号を処理する処理サーバおよび当該処理サーバとＤＢアクセスを行うＤＢサーバが複数台存在し、それらの前記処理サーバに対して、前記入力信号の内容を基に、振り分ける処理サーバを決める構成適用可否判断装置であって、
前記入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する信号属性抽出部と、
前記ＤＢアクセスのログに含まれるアクセス種別とＤＢアクセスキーを取得するＤＢアクセスログ取得部と、
抽出した前記属性情報と、取得した前記アクセス種別と前記ＤＢアクセスキーとを対応付けて、前記入力信号と前記ＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブルを作成する入力信号／ＤＢアクセス対応付け部と、
前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「生成」である場合、前記ＤＢアクセスキーと前記属性情報に基づく値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブルを作成するＤＢアクセスキー格納先サーバ対応付け部と、
前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「読み出し」または「変更」である場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、前記属性情報を振り分けキーとする信号内容依存構成は適用可と判定する構成適用可否判断部と、
を備えることを特徴とする構成適用可否判断装置。
【請求項２】
前記構成適用可否判断部は、
前記ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致しない場合、前記属性情報を振り分けキーとする信号内容依存構成は適用不可と判定する
ことを特徴とする請求項１に記載の構成適用可否判断装置。
【請求項３】
信号内容依存構成の適用が可能な前記振り分けキーが２つ以上存在する場合は、前記処理サーバの負荷を均等化する最適振り分けキーを決定する最適振り分けキー決定部を備える
ことを特徴とする請求項１に記載の構成適用可否判断装置。
【請求項４】
前記構成適用可否判断部は、
前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、
ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致する場合、該当振り分け先サーバＩＤのアクセス回数をカウントアップしてサーバ毎アクセス回数テーブルに格納し、
前記最適振り分けキー決定部は、
前記サーバ毎アクセス回数テーブルにおける前記アクセス回数の偏りをスコアとして保存する振り分けキースコアテーブルを有し、
前記ＤＢアクセスキー格納先サーバテーブルにあるすべての振り分けキー候補について、
前記振り分けキースコアテーブルの前記スコアが最も低い振り分けキーを振り分けキーに決定する
ことを特徴とする請求項３に記載の構成適用可否判断装置。
【請求項５】
前記最適振り分けキー決定部は、
前記振り分けキースコアテーブルにレコードが無い場合、信号内容依存構成は適用不可と判定する
ことを特徴とする請求項４に記載の構成適用可否判断装置。
【請求項６】
クライアントからの入力信号を処理する処理サーバおよび当該処理サーバとＤＢアクセスを行うＤＢサーバが複数台存在し、それらの前記処理サーバに対して、前記入力信号の内容を基に、振り分ける処理サーバを決める構成適用可否判断装置の分散構成評価方法であって、
前記構成適用可否判断装置は、
前記入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する信号属性抽出ステップと、
前記ＤＢアクセスのログに含まれるアクセス種別とＤＢアクセスキーを取得するＤＢアクセスログ取得ステップと、
抽出した前記属性情報と、取得した前記アクセス種別と前記ＤＢアクセスキーとを対応付けて、前記入力信号と前記ＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブルを作成する入力信号／ＤＢアクセス対応付けステップと、
前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「生成」である場合、前記ＤＢアクセスキーと前記属性情報に基づく値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブルを作成するＤＢアクセスキー格納先サーバ対応付けステップと、
前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「読み出し」または「変更」である場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、前記属性情報を振り分けキーとする信号内容依存構成は適用可と判定する構成適用可否判断ステップと、
を実行する分散構成評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構成適用可否判断装置および分散構成評価方法に関する。
【背景技術】
【０００２】
クライアント・サーバ型信号処理システムおよびトランザクション処理システム（以下、トランザクション処理システムという）では、クライアントから処理サーバへと信号処理要求およびトランザクション処理要求（以下、トランザクションの要求という）が送信されると、処理サーバがその処理を行い、その結果を応答信号としてクライアントへと返信する。そして、複数の処理サーバが協調して動作する分散処理システムとすることで、クライアントの台数増加に対応する。そして、分散処理システムのロードバランサは、クライアントからそれぞれ発行される要求信号（リクエスト）に対して、単一の出入り口として受け付けると、それらの要求信号を複数の処理サーバにそれぞれ分配する。
【０００３】
ロードバランサが要求された処理を振り分ける手法としては、コンシステント・ハッシングを挙げることができる。コンシステント・ハッシングは、データの保管要求と取得要求のみを受け付ける単純なインタフェースを持ち、受信した信号の要求するデータの識別子を見て、複数のサーバのうち何れのサーバが対象のデータを管理しているかを特定し、このサーバに対して保管要求及び取得要求を振り分けることを行う。
クライアント／サーバ型のアプリケーション（以下、ＡＰＬという）を分散型システムで構成する場合、使用するロードバランサの方式に応じて、大きくは下記２通りの方法がある。
【０００４】
図７は、ロードバランサの方式を説明する図であり、（ａ）は信号内容非依存なロードバランサの説明図、（ｂ）は信号内容依存なロードバランサの説明図である。
図７（ａ）に示す信号内容非依存なロードバランサ１０は、例えばレイヤー４（Ｌ４）以下の負荷分散が可能である。信号内容非依存なロードバランサ１０は、例えばラウンドロビン、最小応答サーバ選択方式のロードバランサである。信号内容非依存なロードバランサ１０は、ＩＰアドレスによる負荷分散、１０〜２０００Ｍｂｐｓの帯域から選択、標準で冗長化構成ができる特徴がある。また、安価で容易に導入が可能であり、サーバ保守、パッチ適用などのメンテナンス作業は不要、ＩＰｖ６での通信が可能という特徴がある。
図７（ａ）に示すように、信号内容非依存なロードバランサ１０は、クライアント１ａ〜１ｃの要求信号を各ＡＰＬサーバ２ａ〜２ｃに振り分ける。各ＡＰＬサーバ２ａ〜２ｃは、各ＤＢサーバ３ａ〜３ｃとＤＢアクセスを行い、必要なデータを得る。図７（ａ）の破線で囲み部分は、ＡＰＬサーバとＤＢサーバとが同一物理サーバに配置されていることを示している。図７（ａ）の場合、ＡＰＬサーバ２ａとＤＢサーバ３ａとが同一物理サーバに配置されている。ＡＰＬサーバ２ａ〜２ｃとＤＢサーバ３ａ〜３ｃは、仮想化により、同一物理サーバに配置できるが、必要なデータが同一物理サーバにあるとは限らない。必要なデータが同一物理サーバにない場合、応答性能が劣化する。
【０００５】
ところで、信号処理において何らかのステート情報をＤＢサーバに格納する必要のあるステートフル（stateful）なＡＰＬを用いた分散システムを構成する場合がある。このステートフルＡＰＬの分散システムは、例えばＳＩＰ（Session Initiation Protocol）サーバ、ｅコマース用Ｗｅｂシステムがあり、ＤＢサーバへのアクセスパターンが応答性能（スループット／レイテンシ）に影響を与える。ステートフルＡＰＬの分散システムでは、下記信号内容依存構成のロードバランサが用いられる。
【０００６】
図７（ｂ）に示す信号内容依存なロードバランサ２０は、レイヤー７（Ｌ７）の負荷分散が可能である。この信号内容依存なロードバランサ２０は、例えばＵＲＬやＨＴＴＰヘッダに基づくバランシングが可能である。この信号内容依存なロードバランサ２０は、１０Ｍｂｐｓ〜２Ｇｂｐｓの帯域から選択可能である。
図７（ｂ）に示すように、信号内容依存なロードバランサ２０は、ＡＰＬサーバからのＤＢアクセスが同一物理サーバ内（図７（ｂ）の破線囲み部分）に閉じるように信号を振り分けられれば、応答性能を向上させることが可能となる。すなわち、信号内容依存なロードバランサ２０は、ＡＰＬサーバ／ＤＢサーバ間のＤＢアクセスを同一物理サーバ内に限定できれば、応答性能の向上（スループット向上、レイテンシ／ジッター低減）が可能となる。
【０００７】
特許文献１には、処理サーバが、要求信号を受信してトランザクションの処理を実行し、その実行によってグループ化された複数の関連するトランザクションの構成変更を行うときに、第１対応データによって対応付けられている配置ＩＤとトランザクションとの対応関係を変更する分散処理装置が記載されている。特許文献１に記載の分散処理装置は、変更された対応関係の配置ＩＤから第２対応データによって対応付けられている処理サーバに接続されるデータ管理装置へと、変更前の処理サーバに接続されるデータ管理装置から、トランザクションのデータを移動することを特徴とする。
【先行技術文献】
【非特許文献】
【０００８】
【特許文献１】特開２０１２−１６００７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、信号内容依存なロードバランサは、振り分けた時に、振り分け先のＡＰＬサーバにつながっているＤＢサーバに、信号処理に必要なデータが揃っていることが必要となる。
また、信号内容依存なロードバランサは、ＡＰＬサーバ−ＤＢサーバ間のアクセスが同一物理サーバ内とするためには、ＡＰＬについては下記条件を満たす必要がある。
（１）信号とその処理に必要なデータをグルーピング（例えば１：１対応）できること。
（２）上記（１）において、信号中に含まれる情報をキー（振り分けキー）として、信号をグルーピングできること。信号内容依存なロードバランサは、上記振り分けキーに基づいて信号を振り分けるからである。
（３）上記（１）において、サーバ負荷均等化のため、データ群のデータサイズおよびアクセス頻度が概ね均等であること。
【００１０】
図８は、信号内容依存なロードバランサの適用可否判断を説明する図であり、（ａ）は信号内容依存なロードバランサが適用可の場合を示し、（ｂ）は信号内容依存なロードバランサが適用不適の場合を示す。
図８（ｂ）に示すように、信号群Ａ，Ｂ，Ｃ，…がデータ群Ｘ，Ｙ，Ｚ，Ｗをアクセスする場合、多くの信号群Ａ，Ｂ，Ｃ，…がデータ群Ｗをアクセスする。上記（３）を満たさないため、サーバ負荷均等化の観点から、信号内容依存なロードバランサ（信号内容依存構成）は、適用不適である。
一方、図８（ａ）に示すように、信号群Ａ，Ｂ，Ｃ，…がデータ群Ｘ，Ｙ，Ｚをアクセスする場合、信号群Ａ，Ｂ，Ｃ，…はデータ群Ｘ，Ｙ，Ｚに対し、データ群Ｘ，Ｙ，Ｚのデータサイズおよびアクセス頻度が概ね均等である。この場合、信号内容依存なロードバランサ（信号内容依存構成）は、適用可である。具体的には、信号とアクセスデータのグルーピングが可能であり、このグループ単位で信号をサーバに振り分ければよい。
【００１１】
しかしながら、信号内容依存構成の適用可否判断や信号の振り分けキーの選定が困難な場合がある。例えば、開発済みプロダクト等の分散システム化を行う場合など、仕様の無理解や動作条件解析の困難性等に起因して、信号内容依存構成の適用可否判断や信号の振り分けキーの選定が困難な場合がある。適用条件のない信号内容非依存バランサ構成を安易に採用すると、システムの性能が劣化する。
【００１２】
このような背景に鑑みて本発明がなされたのであり、本発明は、信号内容依存構成の適用可否判断と信号の振り分けキーの選定とを容易に行うことができる構成適用可否判断装置および分散構成評価方法を提供することを課題とする。
【課題を解決するための手段】
【００１３】
前記した課題を解決するため、請求項１に記載の発明は、クライアントからの入力信号を処理する処理サーバおよび当該処理サーバとＤＢアクセスを行うＤＢサーバが複数台存在し、それらの前記処理サーバに対して、前記入力信号の内容を基に、振り分ける処理サーバを決める構成適用可否判断装置であって、前記入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する信号属性抽出部と、前記ＤＢアクセスのログに含まれるアクセス種別とＤＢアクセスキーを取得するＤＢアクセスログ取得部と、抽出した前記属性情報と、取得した前記アクセス種別と前記ＤＢアクセスキーとを対応付けて、前記入力信号と前記ＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブルを作成する入力信号／ＤＢアクセス対応付け部と、前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「生成」である場合、前記ＤＢアクセスキーと前記属性情報に基づく値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブルを作成するＤＢアクセスキー格納先サーバ対応付け部と、前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「読み出し」または「変更」である場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、前記属性情報を振り分けキーとする信号内容依存構成は適用可と判定する構成適用可否判断部と、を備える構成適用可否判断装置とした。
【００１４】
また、請求項６に記載の発明は、クライアントからの入力信号を処理する処理サーバおよび当該処理サーバとＤＢアクセスを行うＤＢサーバが複数台存在し、それらの前記処理サーバに対して、前記入力信号の内容を基に、振り分ける処理サーバを決める構成適用可否判断装置の分散構成評価方法であって、前記構成適用可否判断装置は、前記入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する信号属性抽出ステップと、前記ＤＢアクセスのログに含まれるアクセス種別とＤＢアクセスキーを取得するＤＢアクセスログ取得ステップと、抽出した前記属性情報と、取得した前記アクセス種別と前記ＤＢアクセスキーとを対応付けて、前記入力信号と前記ＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブルを作成する入力信号／ＤＢアクセス対応付けステップと、前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「生成」である場合、前記ＤＢアクセスキーと前記属性情報に基づく値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブルを作成するＤＢアクセスキー格納先サーバ対応付けステップと、前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、前記アクセス種別を判定し、前記アクセス種別が「読み出し」または「変更」である場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、前記属性情報を振り分けキーとする信号内容依存構成は適用可と判定する構成適用可否判断ステップと、を実行する分散構成評価方法とした。
【００１５】
このようにすることで、ＡＰＬ実装仕様を理解することなく、信号内容依存構成の適用可否を判断することができる。また、信号の振り分けキーの候補となる属性全てについて実行することで、「信号とその処理に必要なデータをグルーピング（１：１対応）できる」振り分けキーが存在するか判定することができる。また、サーバの負荷を均等化する最適な振り分けキー、つまりアクセス頻度やデータ量の偏りが最も小さくなる振り分けキーを決定（リコメンド）することができる。
【００１６】
また、請求項２に記載の発明は、前記構成適用可否判断部が、前記ＤＢアクセスキーに対応する格納先サーバＩＤと、前記ＤＢアクセスを行う前記入力信号が振り分けられる振り分け先サーバＩＤとが一致しない場合、前記属性情報を振り分けキーとする信号内容依存構成は適用不可と判定することを特徴とする。
【００１７】
このようにすることで、ＡＰＬ実装仕様を理解することなく、信号内容依存構成の適用不可を判断することができる。また、信号の振り分けキーの候補となる属性全てについて実行することで、「信号とその処理に必要なデータをグルーピング（１：１対応）できる」振り分けキーが存在するか判定することができる。
【００１８】
また、請求項３に記載の発明は、信号内容依存構成の適用が可能な前記振り分けキーが２つ以上存在する場合は、前記処理サーバの負荷を均等化する最適振り分けキーを決定する最適振り分けキー決定部を備えることを特徴とする。
【００１９】
このように、振り分けキーを処理サーバの負荷を均等化するように振り分けることで、最適振り分けキーで信号をグルーピングすることができ、処理サーバの負荷を均等化させることができる。
【００２０】
また、請求項４に記載の発明は、前記構成適用可否判断部が、前記入力信号／ＤＢアクセス対応テーブルの全レコードについて、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致する場合、該当振り分け先サーバＩＤのアクセス回数をカウントアップしてサーバ毎アクセス回数テーブルに格納し、前記最適振り分けキー決定部は、前記サーバ毎アクセス回数テーブルにおける前記アクセス回数の偏りをスコアとして保存する振り分けキースコアテーブルを有し、前記ＤＢアクセスキー格納先サーバテーブルにあるすべての振り分けキー候補について、前記振り分けキースコアテーブルの前記スコアが最も低い振り分けキーを振り分けキーに決定することを特徴とする。
【００２１】
このように、ＤＢアクセスキー格納先サーバテーブルにあるすべての振り分けキー候補について、スコアの最も低い振り分けキーを振り分けキーに決定することで、決定された振り分けキーで信号をグルーピングすることができ、データサイズおよびアクセス頻度を均等にし、処理サーバの負荷を均等化させることができる。
【００２２】
また、請求項５に記載の発明は、前記最適振り分けキー決定部が、前記振り分けキースコアテーブルにレコードが無い場合、信号内容依存構成は適用不可と判定することを特徴とする。
【００２３】
このようにすることで、ＡＰＬ実装仕様を理解することなく、信号内容依存構成の適用不可を判断することができる。
【発明の効果】
【００２４】
本発明によれば、信号内容依存構成の適用可否判断と信号の振り分けキーの選定とを容易に行うことができる構成適用可否判断装置および分散構成評価方法を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態に係る構成適用可否判断装置が適用される分散システムを示す構成図である。
【図２】本発明の実施形態に係る構成適用可否判断装置の詳細構成を示すブロック図である。
【図３】本実施形態に係る構成適用可否判断装置の入力信号／ＤＢアクセス対応テーブル作成の概要を説明する図である。
【図４】本実施形態に係る構成適用可否判断装置の信号内容依存構成の適用可否判定の概要を説明する図である。
【図５】本実施形態に係る構成適用可否判断装置の信号内容依存構成適用可否判定および振り分けキー決定処理を示すフローチャートである。
【図６】本実施形態に係る構成適用可否判断装置の信号内容依存構成適用可否判定および振り分けキー決定処理を示すフローチャートである。
【図７】ロードバランサの方式を説明する図であり、（ａ）は信号内容非依存なロードバランサの説明図、（ｂ）は信号内容依存なロードバランサの説明図である。
【図８】信号内容依存なロードバランサの適用可否判断を説明する図であり、（ａ）は信号内容依存なロードバランサが適用可の場合の説明図、（ｂ）は信号内容依存なロードバランサが適用不適の場合の説明図である。
【発明を実施するための形態】
【００２６】
以下、図面を参照して本発明を実施するための形態（以下、「本実施形態」という）における構成適用可否判断装置等について説明する。
図１は、本実施形態に係る構成適用可否判断装置が適用される分散システムを示す構成図である。
図１に示すように、構成適用可否判断装置１００は、例えば信号内容依存なロードバランサに搭載される。処理システムは、クライアント１ａ〜１ｃと、ロードバランサ１００（構成適用可否判断装置）と、分散システム３０とがネットワークで接続されて構成される。分散システム３０内は、ＡＰＬサーバ２ａ〜２ｃ（処理サーバ）と、ＤＢサーバ３ａ〜３ｃと、から構成されている。クライアント１ａ〜１ｃを総称する場合は、クライアント１と呼ぶ。ＡＰＬサーバ２ａ〜２ｃを特に区別しない場合にはＡＰＬサーバ２と表記し、ＤＢサーバ３ａ〜３ｃを特に区別しない場合にはＤＢサーバ３と表記する。
【００２７】
構成適用可否判断装置１００は、クライアント１からの入力信号（要求信号）を処理するＡＰＬサーバ２（処理サーバ）および当該処理サーバとＤＢアクセスを行うＤＢサーバ３が複数台存在するシステムにおいて、それらのＡＰＬサーバ２に対して、入力信号の内容を基に、振り分けるＡＰＬサーバ２を決める。
【００２８】
構成適用可否判断装置１００は、分散システム３０内の複数台のＡＰＬサーバ２に処理を振り分けるロードバランサに適用した例を示したが、構成適用可否判断装置１００は、分散システム３０で動作するプログラムの一例としての分散処理ミドルウェアであってもよい。
なお、図１の分散システムを構成する各装置は、ＣＰＵ（Central Processing Unit）とメモリとハードディスク（記憶手段）とネットワークインタフェースとを有するコンピュータとして構成され、このコンピュータは、ＣＰＵが、メモリ上に読み込んだプログラムを実行することにより、各処理部を動作させる。
また、図１の分散システムを構成する各装置の台数は、図１に例示した台数に限定されず、任意の台数としてもよい。
【００２９】
クライアント１は、ユーザの端末や対向システムであり、分散システム３０のＡＰＬサーバ２に対して、処理を要求する。構成適用可否判断装置（ロードバランサ）１００は、クライアント１からの要求を受け、分散システム３０内の複数台のＡＰＬサーバ２のうちの１台を選択し、その選択したＡＰＬサーバ２に処理を依頼する。
ここで、クライアント１からは、構成適用可否判断装置（ロードバランサ）１００という出入り口を介して、分散システム３０があたかも単一の装置で動作するシステムとして見えるため、分散システム３０内の装置構成を柔軟に変更する（装置の追加や削除など）ことができる。
ＡＰＬサーバ２は、構成適用可否判断装置（ロードバランサ）１００からの要求を受け、複数台のＤＢサーバ３のうちの１台を選択し、その選択したＤＢサーバ３に処理を依頼する。ＤＢサーバ３は、ＡＰＬサーバ２からの要求を受け、ＡＰＬサーバ２の要求を処理する。
【００３０】
図２は、構成適用可否判断装置１００の詳細構成を示すブロック図である。
図２に示すように、構成適用可否判断装置１００は、入力信号属性抽出部１１０と、ＤＢアクセスログ取得部１２０と、入力信号／ＤＢアクセス対応付け部１３０と、振り分けキー処理実行部１４０と、ＤＢアクセスキー格納先サーバ対応付け部１５０と、構成適用可否判断部１６０と、最適振り分けキー決定部１７０と、を備える。
【００３１】
<入力信号属性抽出部１１０>
入力信号属性抽出部１１０は、入力信号ログ（パケットキャプチャ）１０１（図３（ａ）参照）から入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する。入力信号ログ１０１の詳細については、図３（ａ）で後記する。
【００３２】
<ＤＢアクセスログ取得部１２０>
ＤＢアクセスログ取得部１２０は、入力信号ログ１０１を基に、各入力信号を一つずつ順にＡＰＬに入力することで、入力信号単位のＤＢ（ＫＶＳ（Key-Value Store）型ＤＢを想定）のＤＢアクセスログ１０２（図３（ｂ）参照）を取得する。ＫＶＳ型ＤＢのアクセスは、CRUDの４パターン、すなわちCreate(生成)、Read(読み出し)、Update(変更)、Delete(削除)である。ＤＢアクセスログ取得部１２０は、ＤＢアクセスログ１０２に含まれるアクセス種別とＤＢアクセスキー（図３（ｂ）参照）を取得する。ＤＢアクセスログ１０２の詳細については、図３（ｂ）で後記する。
【００３３】
<入力信号／ＤＢアクセス対応付け部１３０>
入力信号／ＤＢアクセス対応付け部１３０は、入力信号属性抽出部１１０で抽出した各入力信号の属性情報と、ＤＢアクセスログ取得部１２０で取得したＤＢアクセスログ１０２とに基づいて、入力信号とＤＢアクセスとの対応関係を保持する入力信号／ＤＢアクセス対応テーブル２００（表１参照）を作成する。
詳細には、入力信号／ＤＢアクセス対応付け部１３０は、複数の属性情報を含む入力信号ログ１０１と、Create(生成)、Read(読み出し)、Update(変更)、Delete(削除)のいずれかのアクセス種別およびＤＢアクセスキーを含むＤＢアクセスログ１０２とに基づいて、属性情報とアクセス種別とＤＢアクセスキーとを対応付けて、入力信号とＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブル２００（表１参照）を作成する。入力信号／ＤＢアクセス対応テーブル２００の作成の詳細については、図３（ｃ）で後記する。
【００３４】
【表１】
2018025911.tif 000003
【００３５】
表１は、入力信号／ＤＢアクセス対応テーブル２００を示す表である。入力信号／ＤＢアクセス対応テーブル２００は、入力信号／ＤＢアクセス対応付け部１３０に格納される。
入力信号／ＤＢアクセス対応テーブル２００は、入力信号から抽出した情報である「入力信号」と、「入力信号」に対応するＤＢアクセスである「ＤＢアクセス」とを対応付ける表である。表１において「入力信号」は、入力信号Noと、入力信号No毎の信号内容（属性とその内容）からなる。入力信号Noは、例えば入力信号No.1〜No.3であり、それぞれ属性１〜３とその内容aaa,bbb,ccc,…を有する。例えば、入力信号No.1は、信号内容として属性１（例えば、セッションＩＤ）、属性２（例えば、ユーザ名）、属性３（例えば、宛先ＩＰアドレス）である。一方、表１において「ＤＢアクセス」は、アクセス種別と、対象キーと、からなる。対象キーは、例えばKey_X, Key_Yである。
【００３６】
表１において、入力信号No.1の属性１の信号内容aaaおよび属性２の信号内容bbbが、「ＤＢアクセス」のアクセス種別Createかつ対象キーKey_Xに対応付けられている。また、入力信号No.1の属性２の信号内容bbbおよび属性３の信号内容cccが、「ＤＢアクセス」のアクセス種別Createかつ対象キーKey_Yに対応付けられている。したがって、入力信号No.1の属性２の信号内容bbbは、「ＤＢアクセス」のアクセス種別Createかつ対象キーKey_XとKey_Yの両方に対応付けられている。
また、表１において、入力信号No.2の属性１の信号内容dddおよび属性２の信号内容eeeが、「ＤＢアクセス」のアクセス種別Readかつ対象キーKey_Xに対応付けられている。入力信号No.2の属性２の信号内容eeeおよび属性３の信号内容fffが、「ＤＢアクセス」のアクセス種別Update かつ対象キーKey_Xに対応付けられている。したがって、入力信号No.2の属性２の信号内容eeeが、「ＤＢアクセス」のアクセス種別Readかつ対象キーKey_Xに対応付けられる一方、「ＤＢアクセス」のアクセス種別Update かつ対象キーKey_Xにも対応付けられている。
同様に、表１において、入力信号No.3の属性１〜３の信号内容ggg,hhh,iiiについて、属性１の信号内容gggおよび属性２の信号内容hhhが、「ＤＢアクセス」のアクセス種別Createかつ対象キーKey_Zに対応付けられ、また、属性２の信号内容hhhおよび属性３の信号内容iiiが、「ＤＢアクセス」のアクセス種別Update かつ対象キーKey_Yに対応付けられている。
【００３７】
なお、表１は、入力信号／ＤＢアクセス対応テーブル２００をイメージ図で示したものであり、実際には、表形式で表現しきれない対応関係もテーブルデータとして関連付けられている。例えば入力信号No.1の属性１の信号内容aaaと属性３の信号内容cccとが「ＤＢアクセス」のアクセス種別Createかつ対象キーKey_XまたはKey_Yに対応付けられることも有り得る。
【００３８】
<振り分けキー処理実行部１４０>
振り分けキー処理実行部１４０は、作成された入力信号／ＤＢアクセス対応テーブル２００（表１参照）を基に、入力信号／ＤＢアクセス対応テーブル２００にあるすべての振り分けキー候補について、振り分けキー処理（後記図５および図６参照）を実行させる。
【００３９】
<ＤＢアクセスキー格納先サーバ対応付け部１５０>
ＤＢアクセスキー格納先サーバ対応付け部１５０は、ＤＢアクセスログ１０２のアクセス種別がCreate(生成)である場合、ＤＢアクセスキーと、入力信号の属性情報のハッシュ値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブル２１０（表２参照）を作成する。
【００４０】
【表２】
2018025911.tif 000004
【００４１】
表２は、ＤＢアクセスキー格納先サーバテーブル２１０の一例を示す表である。
ＤＢアクセスキー格納先サーバテーブル２１０は、「ＤＢアクセスキー」と「格納先サーバＩＤ」とを対応付ける表である。「ＤＢアクセスキー」は、前記表１の「ＤＢアクセス」の対象キーである。「格納先サーバＩＤ」は、振り分け先の物理サーバＩＤである。例えば、前記表１において、入力信号No.１のアクセス種別Createかつ対象キーKey_Xが、ＤＢアクセスキー格納先サーバテーブル２１０（表２参照）の「ＤＢアクセスキー」に格納されている。ＤＢアクセスキー格納先サーバテーブル２１０は、「ＤＢアクセスキー」と「格納先サーバＩＤ」とを対応付ける表であり、ここでは、表２の「ＤＢアクセスキー」のKey_Xは「格納先サーバＩＤ」(Hash（“aaa”）=a1b2c3）に対応付けられている。これにより、表２の「ＤＢアクセスキー」のKey_Xを基に、振り分け先の物理サーバＩＤのa1b2c3を読み出すことができる。
【００４２】
また、前記表１において、入力信号毎の信号内容とアクセス種別とその対象キーが、表２の「ＤＢアクセスキー」に格納されることから、表２において、表２の「ＤＢアクセスキー」と「格納先サーバＩＤ」とを対とする組み合わせ同士を照合することで、振り分けキーとする信号内容依存構成の適用の可否を判定することができる。例えば、前記表１において、入力信号毎の信号内容を属性１で振り分ける場合、入力信号No.２のアクセス種別Readかつ対象キーKey_Xに対応付けられた振り分け先サーバＩＤ：Hash（“ddd”）=b2c4d6（表２では不図示）が、表２の対象キーKey_Xに対応付けられた振り分け先サーバＩＤ：a1b2c3とは不一致である。両者不一致のため、属性１を振り分けキーとする信号内容依存構成は適用不可と判定することができる（詳細は後記する）。
【００４３】
<構成適用可否判断部１６０>
構成適用可否判断部１６０は、ＤＢアクセスログ１０２のアクセス種別を判定し、アクセス種別がRead(読み出し)／Update(変更)／Delete(削除)である場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、ＤＢアクセスを行う入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、属性情報を振り分けキーとする信号内容依存構成は適用可と判定する。具体的には、構成適用可否判断部１６０は、ＤＢアクセスログ１０２のアクセス種別がRead／Update／Delete である場合、ＤＢアクセスキー格納先サーバテーブル２１０（表２参照）に格納されたＤＢアクセスキーに対応する格納先サーバＩＤと、入力信号の属性情報のハッシュ値が一致したとき、その属性情報を振り分けキーに決定する。
また、構成適用可否判断部１６０は、ＤＢアクセスキーに対応する格納先サーバＩＤと、ＤＢアクセスを行う入力信号が振り分けられる振り分け先サーバＩＤとが一致しない場合、属性情報を振り分けキーとする信号内容依存構成は適用不可と判定する。
このように、構成適用可否判断部１６０は、振り分けキーの候補について、振り分けキーで振り分けを行った場合に、ＤＢアクセスキーが作成されるサーバと当該ＤＢアクセスキーをRead／Update／Deleteする信号が振り分けられるサーバが同一となるか否かを、入力信号／ＤＢアクセス対応付け部１３０で作成したテーブルの全レコードに対して検証することで、信号内容依存構成の適用が可能か否かを判定する。
【００４４】
また、構成適用可否判断部１６０は、入力信号／ＤＢアクセス対応テーブル２００（表１参照）の全レコードについて、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致する場合、該当振り分け先サーバＩＤのアクセス回数をカウントアップしてサーバ毎アクセス回数テーブル２２０（表３参照）に格納する。これにより、サーバ毎アクセス回数テーブル２２０（表３参照）の当該振り分け先サーバＩＤのレコードの値がカウントアップされる。
【００４５】
【表３】
2018025911.tif 000005
【００４６】
表３は、サーバ毎アクセス回数テーブル２２０の一例を示す表である。
サーバ毎アクセス回数テーブル２２０は、「格納先サーバＩＤ」と「アクセス回数」とを対応付ける表である。「格納先サーバＩＤ」は、ＤＢアクセスキーの格納先サーバＩＤと当該ＤＢアクセスを行う信号の振り分け先サーバＩＤが一致した場合の、振り分け先の物理サーバＩＤである。「アクセス回数」は、当該格納先サーバＩＤ（振り分け先サーバＩＤ）へのアクセス回数である。「アクセス回数」は、入力信号／ＤＢアクセス対応テーブル２００（表１参照）の全レコードについて、一致判定を実行した場合のアクセス回数が格納される。表３において、格納先サーバＩＤのアクセス回数を保存しておくことで、後記するようにアクセス回数の偏り（標準偏差）を算出することができる。
【００４７】
<最適振り分けキー決定部１７０>
最適振り分けキー決定部１７０は、信号内容依存構成の適用が可能な振り分けキーが２つ以上存在した場合に、サーバの負荷を均等化する最適振り分けキーを決定する。
具体的には、最適振り分けキー決定部１７０は、サーバ毎アクセス回数テーブル２２０におけるアクセス回数の偏り（標準偏差）をスコアとして保存する振り分けキースコアテーブル２３０（表４参照）を有し、ＤＢアクセスキー格納先サーバテーブル２１０（表２参照）にあるすべての振り分けキー候補について、振り分けキースコアテーブル２３０（表４参照）のスコアが最も低い振り分けキーを振り分けキーに決定する。
【００４８】
【表４】
2018025911.tif 000006
【００４９】
表４は、振り分けキースコアテーブル２３０の一例を示す表である。
振り分けキースコアテーブル２３０は、「振り分けキー」と「スコア（標準偏差）」とを対応付ける表である。「振り分けキー」は、入力信号の信号内容を振り分けるキーであり、例えば入力信号の信号内容の属性（表１参照）である。「スコア（標準偏差）」は、サーバ毎アクセス回数テーブル２２０（表３参照）の各レコードのアクセス回数の偏り（標準偏差）である。
最適振り分けキー決定部１７０は、信号内容依存構成の適用可となる振り分けキーが複数あった場合、表４のスコア（標準偏差）の最も小さい振り分けキーを、振り分けキーとして決定する。表４の例では、スコア（標準偏差）の最も小さい「属性２」の振り分けキーを、振り分けキーとして決定する。
【００５０】
以下、上述のように構成された構成適用可否判断装置１００の分散構成評価方法について説明する。
［概要説明］
<Step１：入力信号／ＤＢアクセス対応テーブル作成>
図３は、構成適用可否判断装置１００の入力信号／ＤＢアクセス対応テーブル作成の概要を説明する図である。
図３（ａ）に示すように、入力信号属性抽出部１１０（図２参照）は、入力信号ログ（パケットキャプチャ）１０１（図２参照）から入力信号に共通的に含まれる、信号の振り分けキーとなり得る属性情報を抽出する。図３（ａ）の例では、入力信号No.1, No.２,…（図３（ｃ）参照）のうち、入力信号No.1を例示する。入力信号No.1は、信号内容として属性１（例えば、セッションＩＤ）、属性２（例えば、ユーザ名）、属性３（例えば、宛先ＩＰアドレス）等を有する。
【００５１】
図３（ｂ）に示すように、ＤＢアクセスログ取得部１２０（図２参照）は、入力信号ログ（パケットキャプチャ）１０１を基に、各入力信号を一つずつ順にアプリケーションに入力することで、入力信号単位のＤＢ（ＫＶＳ（Key-Value Store）型ＤＢを想定）のアクセスログ（ＤＢアクセスログ１０２）を取得する。ＫＶＳ型ＤＢのアクセスログは、下記４パターン（いわゆるCRUD）のCreate、Read、Update、Deleteである。図３（ｂ）の例では、入力信号No.1については、アクセス種別Createで対象キーKey_Xとアクセス種別Createで対象キーKey_Yとがある。入力信号No.2については、アクセス種別Readで対象キーKey_Xとアクセス種別Updateで対象キーKey_Xとがある。入力信号No.3については、アクセス種別Updateで対象キーKey_Yがある。
【００５２】
図３（ｃ）に示すように、入力信号／ＤＢアクセス対応付け部１３０（図２参照）は、入力信号ログ（パケットキャプチャ）１０１とＤＢアクセスログ１０２を基に、入力信号／ＤＢアクセス対応テーブル２００（表１参照）を作成する。
【００５３】
<Step２：信号内容依存構成の適用可否判定>
図４は、構成適用可否判断装置１００の信号内容依存構成の適用可否判定の概要を説明する図であり、振り分けキー候補（例えば、属性１）毎の処理内容を例に採る。
振り分けキー処理実行部１４０は、信号の振り分けキーの候補となる属性全てについて、信号とその処理に必要なデータをグルーピング（１：１対応）できる振り分けキーが存在するか判定する。
図３（ａ）に示すように、振り分けキー処理実行部１４０（図２参照）は、入力信号／ＤＢアクセス対応付け部１３０が作成した入力信号／ＤＢアクセス対応テーブル２００の全レコードについて、レコードのＤＢアクセス種別がCreate／Read／Update／Deleteのいずれかであるか判定する。なお、本実施形態では、図４の白抜き矢印に示すように、レコードは若番から走査する。
振り分けキー処理実行部１４０は、レコードのＤＢアクセス種別がCreateの場合はＤＢアクセスキー格納先サーバ対応付け部１５０に、またレコードのＤＢアクセス種別がRead／Update／Deleteの場合は構成適用可否判断部１６０にそれぞれ下記を実行させる。
【００５４】
・ＤＢアクセス種別がCreateの場合
ＤＢアクセスキー格納先サーバ対応付け部１５０（図２参照）は、ＤＢアクセスログ１０２のアクセス種別が「生成」である場合、ＤＢアクセスキーと、入力信号の属性情報のハッシュ値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブル２１０（表２参照）を作成する。具体的には、ＤＢアクセスキー格納先サーバ対応付け部１５０は、振り分けキーのハッシュ値を、仮想的な振り分け先サーバを示すＩＤ（以下、サーバＩＤ）とみなし、ＤＢアクセスキーの格納先サーバＩＤ（＝当該ＤＢアクセスキーをCreateする信号の振り分け先サーバＩＤ）をＤＢアクセスキー格納先サーバテーブル２１０（表２参照）に格納する。ここでは、図４に示す入力信号／ＤＢアクセス対応テーブル２００について、入力信号No.1に対応するＤＢアクセスの種別がCreateの対象キーKey_XとKey_Y、および入力信号No.3に対応するＤＢアクセスの種別がCreateの対象キーKey_Zを、図４に示すＤＢアクセスキー格納先サーバテーブル２１０に格納する（図４の符号ａ，ｂ，ｃ参照）。例えば、図４の符号ｄに示すように、Key_XをCreateする信号（＝信号No.１）の振り分け先サーバＩＤ（Hash（“aaa”）=a1b2c3）をKey_Xの格納先サーバＩＤとする。
【００５５】
・ＤＢアクセス種別がRead／Update／Deleteの場合
構成適用可否判断部１６０（図２参照）は、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致するかを判定し、一致しない場合、属性を振り分けキーとする信号内容依存構成は適用不可と判定する。例えば、属性１で振り分ける場合、入力信号No.２の振り分け先サーバＩＤ：Hash（“ddd”）=b2c4d6であり、KeyXの格納先サーバＩＤ：Hash（“aaa”）=a1b2c3である。構成適用可否判断部１６０は、入力信号No.２の振り分け先サーバＩＤ：Hash（“ddd”）=b2c4dと、KeyXの格納先サーバＩＤ：Hash（“aaa”）=a1b2c3とは、不一致のため、属性１を振り分けキーとする信号内容依存構成は適用不可と判定する。
構成適用可否判断部１６０は、図４の符号ｅ，ｆ，gに示すように、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致した場合、サーバ毎アクセス回数テーブル２２０の当該サーバＩＤのアクセス回数をカウントアップする。
【００５６】
<Step３：全レコード終了時>
最適振り分けキー決定部１７０は、サーバ毎アクセス回数テーブル２２０の各レコードのアクセス回数の偏り（標準偏差）を算出し、この標準偏差を振り分けキーのスコアとして振り分けキースコアテーブル２３０に格納する。すなわち、最適振り分けキー決定部１７０は、信号内容依存構成適用可の場合、アクセス回数の偏りを振り分けキーのスコアとして振り分けキースコアテーブル２３０に格納する（図４の符号ｈ参照）。
最適振り分けキー決定部１７０は、信号内容依存構成の適用可となる振り分けキーが複数あった場合、スコアの最も小さい振り分けキーを、振り分けキーとして決定する。例えば、図４の符号ｉに示すように、振り分けキーが属性２，属性４，…の複数あった場合、スコア（標準偏差）が最も小さいスコア２．０の振り分けキーを、最適振り分けキー１０３（図２参照）として選択する。
【００５７】
このように、構成適用可否判断装置１００は、入力信号ログ（パケットキャプチャ）１０１とＤＢアクセスログ１０２から、信号内容依存構成の適用可否と、振り分けキーを決定する。
【００５８】
［制御シーケンス］
図５および図６は、構成適用可否判断装置１００の信号内容依存構成適用可否判定および振り分けキー決定処理を示すフローチャートである。
ステップＳ１１において、入力信号属性抽出部１１０（図２参照）は、入力信号ログ１０１（図２参照）から入力信号に共通的に含まれる信号の振り分けキーとなり得る属性情報を抽出する。
ステップＳ１２において、ＤＢアクセスログ取得部１２０（図２参照）は、入力信号ログ１０１を基に、各入力信号を一つずつ順にアプリケーションに入力することで、入力信号単位のＤＢアクセスログ１０２を取得する。
ステップＳ１３において、入力信号／ＤＢアクセス対応付け部１３０（図２参照）は、入力信号属性抽出部１１０で抽出した各信号の属性情報と、ＤＢアクセスログ取得部１２０で取得したＤＢアクセスログ１０２（図２参照）から、入力信号／ＤＢアクセスとの対応関係を保持する入力信号／ＤＢアクセス対応テーブル２００（表１参照）を作成する。
すなわち、上記ステップＳ１１〜Ｓ１３では、入力信号ログ１０１から入力信号に共通的に含まれ、信号の振り分けキーとなり得る属性情報のリスト（入力信号／ＤＢアクセス対応テーブル２００）を作成する。
【００５９】
ステップＳ１４のループ端（ループ始端）において、振り分けキー処理実行部１４０（図２参照）は、このループ終端の間ですべての振り分けキー候補についてステップＳ１５〜Ｓ２１の振り分けキー処理を実行させる。
ステップＳ１５のループ端（ループ始端）において、振り分けキー処理実行部１４０は、このループ終端の間で、候補の中から、振り分けキーとする属性を一つ選択し、入力信号／ＤＢアクセス対応テーブル２００の全レコードについてステップＳ１６〜Ｓ２０の振り分けキー処理を実行させる。
ステップＳ１６において、振り分けキー処理実行部１４０は、レコードのＤＢアクセス種別がCreateかRead／Update／Deleteのいずれかであるかを判別する。
【００６０】
レコードのＤＢアクセス種別がCreateである場合、ステップＳ１７においてＤＢアクセスキー格納先サーバ対応付け部１５０は、振り分けキーのハッシュ値を、仮想的な振り分け先サーバを示すＩＤ（サーバＩＤ）とみなし、ＤＢアクセスキーの格納先サーバＩＤ（ＤＢアクセスキーをCreateする信号の振り分け先サーバＩＤ）をＤＢアクセスキー格納先サーバテーブル２１０に格納する。
【００６１】
一方、レコードのＤＢアクセス種別がRead／Update／Deleteである場合、ステップＳ１８において、構成適用可否判断部１６０は、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致するかを判定し、一致しない場合、属性を振り分けキーとする信号内容依存構成は適用不可と判定する。
ステップＳ１９において、振り分けキー処理実行部１４０は、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致するか否かを判別する。
【００６２】
ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致しない場合（ステップＳ１９：Ｎｏ）、当該振り分けキーでの信号内容依存構成適用不可と判断して上記ステップＳ１４に戻る。
【００６３】
ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致する場合（ステップＳ１９：Ｙｅｓ）、ステップＳ２０で構成適用可否判断部１６０（図２参照）は、サーバ毎アクセス回数テーブル２２０（図４参照）の該当振り分け先サーバＩＤのレコードの値をカウントアップする。
全レコードについて、上記ステップＳ１６〜Ｓ２０の処理を実行し、全レコードについて処理を実行するとステップＳ２１に移行する。
【００６４】
ステップＳ２１において、最適振り分けキー決定部１７０は、振り分けキースコアテーブル２３０（図４参照）に当該振り分けキーのレコードを追加し、サーバ毎アクセス回数テーブル２２０におけるアクセス回数の標準偏差をスコアとして保存する。
すべての振り分けキー候補について、上記ステップＳ１５〜Ｓ２１の処理を実行し、すべての振り分けキー候補について処理を実行するとステップＳ２２に移行する。
【００６５】
ステップＳ２２において、最適振り分けキー決定部１７０は、振り分けキースコアテーブル２３０においてスコアが最も低い振り分けキーを振り分けキーに決定する。最適振り分けキー決定部１７０は、振り分けキースコアテーブル２３０にレコードが無い場合、信号内容依存構成適用不可と判定して本フローの処理を終了する。
【００６６】
以上説明したように、本実施形態の構成適用可否判断装置１００は、複数の属性情報を含む入力信号ログ１０１と、ＫＶＳ型ＤＢのアクセスのCRUDのいずれかのアクセス種別およびＤＢアクセスキーを含むＤＢアクセスログ１０２とに基づいて、属性情報とアクセス種別とＤＢアクセスキーとを対応付けて、入力信号とＤＢアクセスの対応を示す入力信号／ＤＢアクセス対応テーブル２００（表１参照）を作成する入力信号／ＤＢアクセス対応付け部１３０と、アクセス種別がCreateである場合、ＤＢアクセスキーと、入力信号の属性情報のハッシュ値を格納先サーバＩＤとみなして、その対応を示すＤＢアクセスキー格納先サーバテーブル２１０（表２参照）を作成するＤＢアクセスキー格納先サーバ対応付け部１５０と、アクセス種別がRead／Update／Deleteである場合、当該ＤＢアクセスキーに対応する格納先サーバＩＤと、ＤＢアクセスを行う入力信号が振り分けられる振り分け先サーバＩＤとが一致するか否かを判定し、一致した場合、属性情報を振り分けキーとする信号内容依存構成は適用可と判定する構成適用可否判断部１６０と、を備える。
【００６７】
これにより、ＡＰＬ実装仕様を理解することなく、信号内容依存構成の適用可否を判断することができる。また、信号の振り分けキーの候補となる属性全てについて実行することで、「信号とその処理に必要なデータをグルーピング（１：１対応）できる」振り分けキーが存在するか判定することができる。また、サーバの負荷を均等化する最適な振り分けキー、つまりアクセス頻度やデータ量の偏りが最も小さくなる振り分けキーを決定（リコメンド）することができる。
【００６８】
また、本実施形態では、信号内容依存構成の適用が可能な振り分けキーが２つ以上存在した場合に、サーバの負荷を均等化する最適振り分けキーを決定する最適振り分けキー決定部１７０を備えているので、スコアの最も低い振り分けキーを振り分けキーに決定することで、決定された振り分けキーで信号をグルーピングすることができ、処理サーバの負荷を均等化させることができる。
【００６９】
また、本実施形態では、構成適用可否判断部１６０は、入力信号／ＤＢアクセス対応テーブルの全レコードについて、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが一致する場合、該当振り分け先サーバＩＤのアクセス回数をカウントアップしてサーバ毎アクセス回数テーブルに格納し、最適振り分けキー決定部１７０は、サーバ毎アクセス回数テーブル２２０（表３参照）におけるアクセス回数の偏りをスコアとして保存する振り分けキースコアテーブル２３０（表４参照）を有し、ＤＢアクセスキー格納先サーバテーブル２１０（表２参照）にあるすべての振り分けキー候補について、振り分けキースコアテーブルのスコアが最も低い振り分けキーを振り分けキーに決定する。
【００７０】
このようにすることで、ＤＢアクセスキー格納先サーバテーブルにあるすべての振り分けキー候補について、スコアの最も低い振り分けキーを振り分けキーに決定することで、決定された振り分けキーで信号をグルーピングすることができ、データサイズおよびアクセス頻度を均等にすることができ、処理サーバの負荷を均等化させることができる。
【００７１】
また、最適振り分けキー決定部１７０が、振り分けキースコアテーブル２３０にレコードが無い場合、信号内容依存構成は適用不可と判定することで、ＡＰＬ実装仕様を理解することなく、信号内容依存構成の適用不可を判断することができる。
【００７２】
［変形例］
（１）信号内容依存構成の適用条件の「信号とその処理に必要なデータをグルーピング（１：１対応）できること」については、ＡＰＬの要件に応じて、ゆるめられる場合がある。例えば、ある入力信号に対して、その信号処理に必要な一部のデータ（ＤＢアクセスキー）について、当該入力信号が振り分けられたサーバ以外のサーバに格納されていることによる信号処理時間のオーバーヘッドを一定程度許容できる場合が挙げられる。
【００７３】
（２）信号の振り分けキーの候補については、信号に共通的に含まれる属性単体を振り分けキーの候補とするだけでなく、２つ以上の属性の組合せ（例えば、「ユーザ名」と「ドメイン名」など）を振り分けキーの候補としてもよい。
【００７４】
（３）前記<Step２：信号内容依存構成の適用可否判定>において、振り分けキーのハッシュ値を、仮想的な振り分け先サーバを示すＩＤとして使用しているのは、ＩＤのバイト長を統一することで、コンピュータ上での処理を単純化しているためである。振り分けキーのハッシュ値に代えて、属性の値そのものを使ってもよい。
【００７５】
（４）図５および図６の制御シーケンスにおいて、ＤＢアクセスキーの格納先サーバＩＤとＤＢアクセスを行う信号の振り分け先サーバＩＤが不一致の場合に、信号内容依存構成適用不可と判定（図５のステップＳ１８参照）する代わりに、不一致となる回数、つまり振り分け先サーバ以外へのデータにアクセスする回数をカウントし、その合計回数が最も小さくなる振り分けキーを選択することにしてもよい。
【００７６】
（５）図５および図６の制御シーケンスにおいて、仮想サーバＩＤ毎のアクセス頻度の偏りを基に、最適な振り分けキーを決定している（図６のステップＳ２２参照）。アクセス頻度だけでなく、仮想サーバＩＤ毎に格納されるデータ量の偏りも考慮して、判定を行ってもよい。
【００７７】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣ（Integrated Circuit）カード、ＳＤ（Secure Digital）カード、光ディスク等の記録媒体に保持することができる。また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）をも含むものである。
【符号の説明】
【００７９】
１，１ａ〜１ｃ  クライアント
２，２ａ〜２ｃ  ＡＰＬサーバ（処理サーバ）
３，３ａ〜３ｃ  ＤＢサーバ
３０  分散システム
１００  ロードバランサ（構成適用可否判断装置）
１０１  入力信号ログ
１０２  ＤＢアクセスログ
１０３  最適振り分けキー
１１０  入力信号属性抽出部
１２０  ＤＢアクセスログ取得部
１３０  入力信号／ＤＢアクセス対応付け部
１４０  振り分けキー処理実行部
１５０  ＤＢアクセスキー格納先サーバ対応付け部
１６０  構成適用可否判断部
１７０  最適振り分けキー決定部
２００  入力信号／ＤＢアクセス対応テーブル
２１０  ＤＢアクセスキー格納先サーバテーブル
２２０  サーバ毎アクセス回数テーブル
２３０  振り分けキースコアテーブル
【図１】
2018025911.tif 000007
【図２】
2018025911.tif 000008
【図３】
2018025911.tif 000009
【図４】
2018025911.tif 000010
【図５】
2018025911.tif 000011
【図６】
2018025911.tif 000012
【図７】
2018025911.tif 000013
【図８】
2018025911.tif 000014