(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、既存のシステムは、長年の開発の積み重ねにより複雑化している場合がある。このようなシステムについて仕様書等のドキュメントから、システム移行に伴う影響評価を見積もることは大変困難であり、開発判断するための適切な判断材料を得ることが困難である。
【0007】
従って本発明の目的は、システム移行に伴う影響評価を容易に見積もることが可能な機能解析装置、機能解析方法および機能解析プログラムを提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の第1の特徴は、データを参照して通信端末間の呼を処理する呼処理システムにおける評価対象データへのアクセスから、呼処理システムにおける機能を解析する機能解析装置に関する。本発明の第1の特徴に係る機能解析装置は、呼処理システムに、呼を入力する呼入力部と、呼処理システムが呼を処理する際、呼処理システムを構成する各機能実現部から、評価対象データにアクセスした機能実現部の識別子と、評価対象データにアクセスした際のスレッドの識別子を対応づけたアクセスログデータを取得するアクセスログ取得部と、所定の機能実現部の識別子に対して、複数のスレッドの識別子が対応づけられる場合、所定の機能実現部をマルチ処理部と判定し、単一のスレッドの識別子が対応づけられる場合、所定の機能実現部をシングル処理部と判定する解析部を備える。
【0009】
呼入力部は、呼処理システムに、連続的に複数の呼を入力しても良い。
【0010】
呼入力部は、呼処理システムに、同時に複数の呼を入力しても良い。
【0011】
解析部はさらに、1呼あたりの評価対象データへのアクセス回数を算出しても良い。
【0012】
アクセスログデータはさらに、機能実現部がアクセスした評価対象データのサイズを対応づけて保持し、解析部はさらに、1呼あたりの評価対象データへアクセスしたデータサイズを算出しても良い。
【0013】
本発明の第2の特徴は、データを参照して通信端末間の呼を処理する呼処理システムにおける評価対象データへのアクセスから、呼処理システムにおける機能を解析する機能解析方法に関する。本発明の第2の特徴に係る機能解析方法は、コンピュータが、呼処理システムに、呼を入力するステップと、コンピュータが、呼処理システムが呼を処理する際、呼処理システムを構成する各機能実現部から、評価対象データにアクセスした機能実現部の識別子と、評価対象データにアクセスした際のスレッドの識別子を対応づけたアクセスログデータを取得するステップと、コンピュータが、所定の機能実現部の識別子に対して、複数のスレッドの識別子が対応づけられる場合、所定の機能実現部をマルチ処理部と判定し、単一のスレッドの識別子が対応づけられる場合、所定の機能実現部をシングル処理部と判定するステップを備える。
【0014】
本発明の第3の特徴は、コンピュータに、本発明の第1の特徴に記載の機能解析装置として機能させるための機能解析プログラムに関する。
【発明の効果】
【0015】
本発明によれば、システム移行に伴う影響評価を容易に見積もることが可能な機能解析装置、機能解析方法および機能解析プログラムを提供することができる。
【発明を実施するための形態】
【0017】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【0018】
(情報処理システム)
図1を参照して、本発明の実施の形態に係る機能解析装置1が用いられる情報処理システム9を説明する。機能解析装置1は、情報処理システム9が備える呼処理システム2に接続して、呼処理システム2における評価対象データへのアクセスから、呼処理システム2における機能を解析する。解析した結果は、システム移行に伴う影響評価を容易に見積もるために用いられる。
【0019】
呼処理システム2は、データを参照して通信端末8間の呼を処理する。呼処理システム2と通信端末8は、インターネット等の通信ネットワーク7により相互に通信可能に接続される。
図1に示す2つの通信端末8は、一方が発信端末であって、一方が着信端末である。
【0020】
呼処理システム2は、呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5を備える。呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5は、LANなどの通信ネットワーク6により相互に通信可能に接続される。本発明の実施の形態において機能解析装置1は、この通信ネットワーク6を介して呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5に接続するが、他の態様で接続しても良い。
【0021】
呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5は、それぞれ、記憶装置、処理装置および通信制御装置を備える一般的なコンピュータである。
図1に示す例において呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5は、それぞれ一つのコンピュータにより構成される場合を説明するが、これに限らない。呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5は、それぞれ複数のコンピュータにより構成されても良い。また呼処理サーバ3、データベースサーバ4およびゲートウェイサーバ5の各機能を、1台または2台のコンピュータに集約して実装しても良い。
【0022】
呼処理サーバ3は、通信端末8間の呼を処理する。呼処理サーバ3は、呼処理に必要な各機能を実現する。データベースサーバ4は、呼処理サーバ3が参照または更新するデータを保持し、特に評価対象データを保持する。評価対象データは、データベースサーバ4が保持するデータのうち、後述の性能影響を算出する際のアクセス対象となるデータである。ゲートウェイサーバ5は、通信端末8と呼処理システム2とのインタフェースとなる。
【0023】
呼処理システム2は、
図2に示すように、通信端末8からのリクエストをゲートウェイサーバ5が受けて、呼処理サーバ3が各種機能を実現してリクエストを処理して、通信端末8に処理結果を返す。
図2の呼処理システム2内に示される、
図2中のFuncA、FuncB等の複数の機能は、呼処理サーバ3によって実現され、プログラム、モジュール等のソフトウエアの構成要素である。
【0024】
呼処理システム2において、通信端末8から送信されるリクエストの種別等に応じて、リクエストを処理する機能は異なる。例えば、
図2に示すリクエストAは、FuncA、FuncB、FuncF、FuncJ、FuncK、FuncC、FuncB、FuncAの各機能実現部の順で、処理される。またリクエストBは、FuncA、FuncB、FuncE、FuncI、FuncJ、FuncG、FuncD、FuncC、FuncB、FuncAの各機能実現部の順で、処理される。このとき、呼処理サーバ3の各機能実現部は、データベースサーバ4のデータを参照して、所定の機能を実現する。
【0025】
データ分離による性能影響は、遅延により表され、サイズに基づく遅延、アクセス頻度に基づく遅延など、それぞれ独立した遅延に影響する。従って呼処理システム2に用いられる機能実行部のデータベースサーバ4の評価対象データへのアクセスに関する性能影響は、式(1)によって評価される。
性能影響 ∝ アクセス頻度[回/秒]×サイズ[Byte]
∝ アクセス頻度[回/呼]×呼量[呼/秒]×サイズ[Byte]
・・・式(1)
【0026】
ここで、データベースサーバ4にアクセスする機能実行部が、一つのスレッドを有し、一つのスレッドが、異なるリクエストの処理を順次実行するシングル処理の場合、性能影響は、式(2)によって評価される。
性能影響 ∝ アクセス頻度[回/呼]×呼量[呼/秒]×サイズ[Byte]×タイマ値[秒]
・・・式(2)
【0027】
一方、データベースサーバ4にアクセスする機能実行部が、複数のスレッドを有し、複数のスレッドが、それぞれ並列して異なるリクエストの処理を順次実行するマルチ処理の場合、性能影響は、式(3)によって評価される。
性能影響 ∝ アクセス頻度[回/呼]×サイズ[Byte]
・・・式(3)
【0028】
上記式に従って、ソフトウエアの評価対象データへのアクセスに関する性能影響を測るためには、アクセス頻度[回/秒]、呼量[呼/秒]、サイズ[Byte]、タイマ値[秒]およびソフトウエア構造を特定する必要がある。アクセス頻度[回/秒]は、1呼あたりの評価対象データへのアクセス回数である。呼量[呼/秒]は、呼処理システム2における呼の運用トラフィック量である。サイズ[Byte]は、1呼あたりのアクセスする評価対象データの大きさである。タイマ値[秒]は、評価対象データへのアクセスにおけるボトルネックとなる処理に要する時間である。ソフトウエア構造は、シングル処理かマルチ処理かを示す指標である。
【0029】
上記条件のうち、呼量[呼/秒]およびタイマ値[秒]は、予めソフトウエアの要求条件等から取得することは可能である。従って本願発明の実施の形態に係る機能解析装置1は、呼処理システム2にリクエストを処理させて、そのログデータから、アクセス頻度[回/秒]、サイズ[Byte]およびソフトウエア構造を、取得する。
【0030】
(呼処理サーバ)
図3を参照して、本発明の実施の形態に係る呼処理サーバ3を説明する。呼処理サーバ3は、記憶装置50、処理装置60および通信制御装置70を備える一般的なコンピュータである。一般的なコンピュータが呼処理プログラムを実行することにより、
図3に示す機能を実現する。
【0031】
記憶装置50は、ROM(Read Only Memory)、RAM(Random access memory)、ハードディスク等であって、処理装置60が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置60は、CPU(Central Processing Unit)であって、記憶装置50に記憶されたデータを読み書きしたり、通信制御装置70とデータを入出力したりして、呼処理サーバ3における処理を実行する。通信制御装置70は、呼処理サーバ3を、ゲートウェイサーバ5およびデータベースサーバ4に接続するためのインタフェースである。
【0032】
記憶装置50は、アクセスログデータLを記憶する。アクセスログデータLは、呼処理サーバ3が備える機能実現部61が、データベースサーバ4の評価対象データにアクセスしたログデータである。
【0033】
処理装置60は、第1の機能実現部61a、第2の機能実現部61bなどの複数の機能実現部61と、アクセスログ提供部63を備える。
【0034】
第1の機能実現部61a、第2の機能実現部61bなどの複数の機能実現部61はそれぞれ、
図2に示すFuncA、FuncB等であって、呼処理に必要な所与の機能を、それぞれ実現する。
図3に示す例では、2つの機能実現部61のみ記載するが、呼処理サーバ3は、呼処理システム2が実現する機能に応じて複数の機能実現部61を備えても良い。
【0035】
第1の機能実現部61aおよび第2の機能実現部61bは、それぞれ、アクセスログ出力部62aおよびアクセスログ出力部62bを備える。他の機能実現部も同様に、アクセスログ出力部62を備える。アクセスログ出力部62は、それぞれ、データベースサーバ4の評価対象データにアクセスする際に、アクセスログデータLにログを書き込む。アクセスログ出力部62は、アクセスした機能実現部61の識別子、アクセスした評価対象データの識別子、評価対象データのサイズ、時刻、評価対象データにアクセスしたスレッド番号等を対応づけたレコードを、アクセスログデータLに出力する。
【0036】
各機能実現部61は、シングル処理またはマルチ処理で、評価対象データにアクセスする。機能実現部61がシングル処理の場合、評価対象データにアクセスするスレッド番号は、同一になる。機能実現部61がマルチ処理の場合、評価対象データにアクセスするスレッドに付されるスレッド番号は、ラウンドロビンで常に変更する場合、空いているスレッド番号のうちの若い番号が割り当てられる場合などがある。
【0037】
アクセスログ提供部63は、アクセスログデータLを機能解析装置1に提供する。アクセスログ提供部63は、機能解析装置1からのリクエストに応答して、機能解析装置1にアクセスログデータLを提供しても良いし、所定のタイミングで機能解析装置1にアクセスログデータLを提供しても良い。
【0038】
(機能解析装置)
図4を参照して、本発明の実施の形態に係る機能解析装置1を説明する。機能解析装置1は、記憶装置10、処理装置20および通信制御装置30を備える一般的なコンピュータである。一般的なコンピュータが機能解析プログラムを実行することにより、
図4に示す機能を実現する。
【0039】
記憶装置10は、ROM(Read Only Memory)、RAM(Random access memory)、ハードディスク等であって、処理装置20が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置20は、CPU(Central Processing Unit)であって、記憶装置10に記憶されたデータを読み書きしたり、通信制御装置30とデータを入出力したりして、機能解析装置1における処理を実行する。通信制御装置30は、機能解析装置1を、呼処理サーバ3に接続するためのインタフェースである。
【0040】
アクセスログデータLは、呼処理サーバ3から取得するデータである。呼処理システム2が複数の呼処理サーバ3を備える場合、アクセスログデータLは、各呼処理サーバ3から取得したアクセスログデータをマージしたデータである。
【0041】
解析データ11は、機能解析装置1がアクセスログデータLから各機能実行部を解析した結果を含む。本発明の実施の形態において解析データ11は、上記式(1)ないし(3)で説明し性能影響を算出するためのアクセス頻度[回/秒]、サイズ[Byte]、およびシングル処理かマルチ処理かを示すソフトウエア構造の各値を含む。
【0042】
処理装置20は、呼入力部21、アクセスログ取得部22および解析部23を備える。
【0043】
呼入力部21は、呼処理システム2に、呼を入力する。ここで入力される呼は、実際の呼ではなく、テスト用の呼であっても良い。呼入力部21は、機能実現部61がマルチ処理であるかシングル処理であるかを判定するために、複数の呼を連続的に、または同時に入力する。
【0044】
呼入力部21は、呼処理システム2に、連続的に複数の呼を入力する。マルチ処理の機能実現部61に対応するスレッドに割り当てられるスレッド番号がラウンドロビンで常に変更する場合、連続的に複数の呼を入力し、直前に入力した呼の処理が完了する前に新たな呼を入力した場合に、スレッドに異なるスレッド番号が付される。これにより、アクセスログデータLにおいて、ある機能実現部61に対応する複数のスレッド番号に異なるスレッド番号が付されることから、この機能実現部61がマルチ処理であることがわかる。
【0045】
呼入力部21は、呼処理システム2に、同時に複数の呼を入力する。マルチ処理の機能実現部61に対応するスレッドに、空いているスレッド番号のうちの若い番号が割り当てられる場合、同時に複数の呼を入力することで、スレッドに異なるスレッド番号が付される。これにより、アクセスログデータLにおいて、ある機能実現部61に対応する複数のスレッド番号に異なるスレッド番号が付されることから、この機能実現部61がマルチ処理であることがわかる。
【0046】
アクセスログ取得部22は、呼処理サーバ3からアクセスログデータLを取得する。呼処理システム2が複数の呼処理サーバ3を備える場合、アクセスログ取得部22は、各呼処理サーバ3から取得したアクセスログデータをマージしたアクセスログデータLを記憶装置10に記憶する。
【0047】
解析部23は、アクセスログデータLから、上記式(1)ないし(3)で説明し性能影響を算出するためのアクセス頻度[回/秒]、サイズ[Byte]、およびシングル処理かマルチ処理かを示すソフトウエア構造を解析して、解析データ11を出力する。
【0048】
ソフトウエア構造を特定するに際しアクセスログ取得部22は、呼処理システム2が呼を処理する際、呼処理システム2を構成する各機能実現部61から、少なくとも、評価対象データにアクセスした機能実現部61の識別子と、評価対象データにアクセスした際のスレッドの識別子を対応づけたアクセスログデータLを取得する。解析部23は、所定の機能実現部の識別子に対して、複数のスレッドの識別子が対応づけられる場合、この機能実現部61をマルチ処理部と判定し、単一のスレッドの識別子が対応づけられる場合、この機能実現部61をシングル処理部と判定する。
【0049】
たとえば
図6に示すように、第1の機能実現部61aと第2の機能実現部61bのそれぞれから、データベースサーバ4の評価対象データに対するアクセスがあったとする。第1の機能実現部61aからのアクセスは、複数個を同時にまたは連続的に入力した場合でも、用いられるスレッドは、スレッド#1で、スレッド番号は同じである。従って、解析部23は、第1の機能実現部61aについて、シングル処理であると判断する。
【0050】
一方、第1の機能実現部61aからのアクセスは、複数個を同時にまたは連続的に入力した場合、用いられるスレッドは、スレッド#2、スレッド#3、スレッド#4と、スレッド番号は異なる。従って、解析部23は、第2の機能実現部61bについて、シングル処理であると判断する。
【0051】
アクセスログデータLを参照しながら、解析部23の処理を説明する。
図6(a)は、リクエストAを1回目に入力した際の、各機能実現部61から取得したアクセスログデータLaであって、
図6(b)は、リクエストAを2回目に入力した際の、各機能実現部61から取得したアクセスログデータLbである。
【0052】
アクセスログデータLaにおいて、FuncA、FuncBおよびFuncCがそれぞれ用いるスレッド番号と、アクセスログデータLbにおいて、FuncA、FuncBおよびFuncCがそれぞれ用いるスレッドは、スレッド番号「スレッドNo1」が付されており、同じスレッド番号が用いられている。従って、FuncA、FuncBおよびFuncCは、シングル処理であると判定する。
【0053】
一方、アクセスログデータLaにおいて、FuncF、FuncJおよびFuncKがそれぞれ用いるスレッドは、スレッド番号「スレッドNo2」が付されるのに対し、アクセスログデータLbにおいて、FuncF、FuncJおよびFuncKがそれぞれ用いるスレッドは、スレッド番号「スレッドNo3」が付されており、異なるスレッド番号が用いられている。従って、FuncF、FuncJおよびFuncKは、マルチ処理であると判定する。
【0054】
アクセス頻度を特定するに際し解析部23は、アクセスログデータLから、1呼あたりの評価対象データへのアクセス回数を算出する。解析部23は、例えば
図6(a)に示すログデータから、評価対象のデータXに対するアクセス回数は4回と算出する。
【0055】
呼量を特定するに際しアクセスログ取得部22は、評価対象データにアクセスした機能実現部61の識別子と、評価対象データにアクセスした際のスレッドの識別子にさらに、機能実現部61がアクセスした評価対象データのサイズを対応づけたアクセスログデータLを取得する。解析部23は、アクセスログデータLを参照して、1呼あたりの評価対象データへアクセスしたデータサイズを算出する。
【0056】
このように解析部23が算出したアクセス頻度[回/秒]、サイズ[Byte]、およびシングル処理かマルチ処理かを示すソフトウエア構造は、式(1)ないし(3)に示した評価影響を算出するために用いられる。またこのように算出された評価影響は、データ分離システムへのシステム移行に伴う影響評価の指標となる。
【0057】
また複数の呼を同時にまたは連続的に入力して、評価対象データにアクセスしたスレッドの番号の変換を観察することにより、仕様書などを確認することなく、そのスレッドに対応する機能実現部61がシングル処理であるかマルチ処理であるかを判定することができる。
【0058】
(その他の実施の形態)
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【0059】
例えば、本発明の実施の形態に記載した機能解析装置は、
図4に示すように一つのハードウエア上に構成されても良いし、その機能や処理数に応じて複数のハードウエア上に構成されても良い。また、既存の情報処理システム上に実現されても良い。
【0060】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。