説明

サービス粒度最適化支援装置、およびサービス粒度最適化支援方法

【課題】システム上でのサービス粒度の最適化を支援する新しいサービス粒度最適化支援装置等を提供する。
【解決手段】ネットワークシステムにおいて提供される各サービスの粒度の最適化を支援する装置等であって、各サービスを実行した実行情報を記憶する記憶部と、第1のサービスの出力データと、該サービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索する探索部と、前記サービスの組み合わせが存在する場合、前記各サービスの各インタフェース情報を取得する取得部と、前記各インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する照合部と、前記一致する場合、前記各インタフェース情報を合成したインタフェース情報を作成するインタフェース情報生成部と、を含むサービス粒度最適化支援装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービス粒度最適化支援装置、およびサービス粒度最適化支援方法に関する。
【背景技術】
【0002】
近年、変化するビジネスニーズに対してITシステムを柔軟に対応させるため、SOA(Service Oriented Architecture)が注目されている。SOAとは、サービス単位にアプリケーションをコンポーネント化(部品化)し、これらコンポーネント化したアプリケーション(サービス)を必要に応じて組み合わせることで、新たなシステムを構築可能にしたアーキテクチャである。
【0003】
SOAにおいて、各サービスの設計者は、サービス単位の大きさ(サービス粒度)を如何に選択するかが重要となる。サービス粒度が小さすぎると、サービス間の連携が複雑になるため、通信にばかり時間がかかってロジックを実行する時間との釣り合いが取れなくなるとともに、サービス間のインタラクションが頻繁になるため、ネットワーク・トラフィックの増大も引き起こし得る。一方、サービス粒度が大きすぎると、サービスの再利用性は低くなり、また、サービスの一部に修正を加えたい場合は、サービス全体を再リリースしなければならず、システム全体に与える影響が大きくなってしまう。
【0004】
しかしながら、サービス粒度は、通常、設計者の経験則などに基づいて定義されることが多く、分散して開発され、設計者が異なる場合、各サービスの粒度はバラバラになってしまうのが現状である。よって、サービス粒度の選択に際しては、その選択の指針が設計者に対して提供されることが望まれる。
【0005】
特許文献1には、SOAシステム設計時で粒度を考慮した設計支援に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−009207号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術では、システム運用前の設計時における静的な情報に基づいてサービスの設計支援を行うものであるため、設計段階では適切と考えたサービスの粒度が、実際のシステム運用時においても適切なサービスの粒度とは限らないという問題点があった。そのため、シテムスの運用段階にあたっては、運用に適した粒度へ最適化する必要がある。
【0008】
そこで、本発明は、上記問題点を解決し、実際のシステム運用面に沿った適切なサービス粒度の情報を設計者に提供して、システム上でのサービス粒度の最適化を支援することができる新しいサービス粒度最適化支援装置、およびサービス粒度最適化支援方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明によるサービス粒度最適化支援装置は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、前記サービス探索部により探索した結果、前記サービスの組み合わせが存在する場合、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得するインタフェース情報取得部と、前記インタフェース情報取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、前記入出力データ形式照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、を含む。
【0010】
また、本発明によるサービス粒度最適化支援装置は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、を含む構成とすることもできる。
【0011】
本発明によるサービス粒度最適化支援方法は、複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、前記各サービスを実行した実行情報を記憶する段階と、前記記憶された実行情報から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索する段階と、前記探索した結果、前記サービスの組み合わせが存在する場合、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得する段階と、前記インタフェース取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する段階と、前記入出力データ照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成する段階と、を含む。
【発明の効果】
【0012】
以上のように構成された本発明によれば、システム運用時に得られる入出力情報や実行プロセスなどのサービスの実行情報を利用することで、システムの運用面に沿った適切なサービス粒度の情報を設計者に提供し、設計者はシステムにおいて最適な粒度のサービスを生成することができる。よって、システム上でのサービス粒度の最適化を支援することができ、システム上における各サービスの応答時間の短縮や、サービスの再利用の向上といった効果が図れる。
【図面の簡単な説明】
【0013】
【図1】第1実施形態のサービス粒度最適化システムの概略構成を例示する図である。
【図2】第1実施形態のサービス粒度最適化支援装置等のハードウェア構成を示す概略図である。
【図3】サービス実行情報記憶部に記憶されているデータの一例を示す図である。
【図4】サービス情報管理装置で管理されているデータの一例を示す図である。
【図5】サービスAのWSDL文書の一例を示す図である。
【図6】サービスBのWSDL文書の一例を示す図である。
【図7】サービスAとサービスBの各WSDL文書を統合したWSDL文書の一例を示す図である。
【図8】第1実施形態のサービス粒度最適化支援方法における処理内容を示すフローチャートである。
【図9】第2実施形態のサービス粒度最適化システムの概略構成を例示する図である。
【図10】サービス実行情報記憶部に記憶されているデータの一例を示す図である。
【図11】第2実施形態のサービス粒度最適化支援方法における処理内容を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための好適な実施形態を、図面を参照しながら説明する。なお、以下の各実施形態では、SOAシステムを用いる場合を例にとって説明する。
【0015】
<第1実施形態>
図1は、本発明の第1実施形態のサービス粒度最適化支援システム1の概略構成を例示する図である。
【0016】
サービス粒度最適化支援システム(以下、「システム」と称する)1は、図1に示すとおり、クライアント装置100と、サービス粒度最適化支援装置220を含むメッセージ交換システム200と、サービス装置301〜304を含むサービス群300とを含んで構成され、各装置等は通信ネットワークを介して相互に通信可能に接続されている。なお、クライアント装置100、サービス粒度最適化支援装置220、およびサービス装置301〜304等は、ハードウェアとして、図2に示すように、たとえば、CPU、CPUにバス結合されたROM、RAM、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウェアを備える。これら各装置は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のサービス粒度最適化支援方法における各処理を規定したソフトウェアを起動することにより、サービス粒度最適化支援装置220を実現することもできる。
【0017】
クライアント装置100は、メッセージ交換システム200を介して、サービス装置301〜304のサービスA〜Dを利用する装置である。クライアント装置100は、システム上におけるサービス粒度の最適化を支援するための情報を、メッセージ交換システム200に対して要求する機能を有し、また、メッセージ交換システム200内で実行された最適化支援処理の結果を受信して表示する機能を有する。なお、クライアント装置100は、これらの機能以外は、原則として、従来のSOAシステムを利用するクライアント装置と同様の機能を有することができるので、その詳細な説明は省略する。
【0018】
サービス群300は、分散アプリケーションの実行環境である外部システムであって、サービス装置301〜304を含む。サービス装置301〜304は、それぞれサービスA〜Dを実行する装置である。また、サービス装置301〜304において、上記サービスA〜Dは、たとえば、ROMまたはHDDなどの記憶媒体に記憶され、該記憶されたソフトウェアはCPUによって実行される。サービス装置301〜304自体は、原則として、従来のSOAシステムにおけるサービス装置と同様の機能を有することができるので、その詳細な説明は省略する。また、サービス群300に含まれるサービス装置は、上記4つの場合に限られず、少なくとも2つ以上、たとえば、2つ、5つと存在していてもよい。
【0019】
メッセージ交換システム200は、クライアント装置100からサービス粒度の最適化を支援するための情報要求(最適化支援要求)を受け取り、該情報要求に対して最適化支援処理を実行し、該実行結果をクライアント装置100に送る。メッセージ交換システム200は、メッセージ送受信装置210、サービス粒度最適化支援装置220、サービス情報管理装置230を含んで構成される。なお、メッセージ交換システム200は、従来のSOAシステムにおけるクライアント装置100とサービス群300との間のメッセージを交換する機能も有するが、該機能は、原則として、従来のメッセージ交換システムと同様の構成および機能とすることができるので、以下、その詳細な説明は必要に応じて省略する。
【0020】
メッセージ送受信装置210は、メッセージ送信部211、メッセージ受信部212、およびサービス実行情報取得部213を含んで構成される。
【0021】
メッセージ送信部211およびメッセージ受信部212は、クライアント装置100とサービス装置301〜304との間でメッセージを送受信する。
【0022】
サービス実行情報取得部213は、クライアント装置100とサービス装置301〜304との間で送受信されるメッセージから、SOAシステムにおいて実行された各サービスの実行情報を取得する。サービス実行情報取得部213は、取得した各サービスの実行情報をサービス粒度最適化支援装置220のサービス実行情報記憶部221に送る。なお、サービスの実行情報が、各サービス装置301〜304に記憶される場合、サービス実行情報取得部213は、各サービス装置301〜304にアクセスしてサービスの実行情報を取得することもできる。
【0023】
ここで、SOAシステムにおいて実行された各サービスの実行情報は、たとえば、図3に示すように、実行日時、呼び出し元、実行サービス名、呼び出し順序(実行順序)、InputData、およびOutputDataの各情報を含む。
【0024】
サービス情報管理装置230は、各サービスのWSDL文書等を管理するデータベースである。
【0025】
ここで、サービス情報管理装置230が管理する情報は、たとえば、図4に示すように、サービス名(QName)、WSDL(Web Services Description Language)文書の各情報を含む。WSDLは、サービスの提供されている場所、サービスに用いられているメッセージのフォーマット、プロトコルなどWebサービスの具体的内容が記述される。WSDLによるインタフェースの定義には、Web上におけるサービスを利用する際の入出力データの型やアクセス先URLなどを記述することができ、ユーザは、利用したいサービスのWSDL記述を見れば、そのWebサービスへのアクセス方法を知ることができる。
【0026】
サービス粒度最適化支援装置220は、各サービスの実行情報からシステムに適切なサービス粒度の情報をクライアント装置に対して提示する機能を有する。サービス粒度最適化支援装置220は、サービス実行情報記憶部221、サービス探索部222、インタフェース情報取得部223、入出力データ形式照合部224、WSDL情報生成部225、および提示部226を含んで構成される。また、サービス探索部222などの各部は、たとえば、主にCPUがROMやRAMに格納されるプログラムを実行し、各ハードウェアを制御することにより、実現することができ、また、サービス実行情報記憶部221は、RAMや記憶部を用いて実現することができる。
【0027】
サービス実行情報記憶部(実行情報記憶部)221は、サービス実行情報取得部213が取得した上記実行情報を記憶するためのデータベースである。
【0028】
サービス探索部222は、クライアント装置100から最適化支援要求を受け取ると、サービス実行情報記憶部221に対してクエリを発行して各サービスの実行情報を取得し、該取得したサービスの中から、第1のサービスの出力データ(OutputData)と、該第1のサービスの次に実行された第2のサービスの入力データ(InputData)とが同一であるサービスの組合せを探索する。すなわち、サービス探索部222は、実行順序がX番目のサービスを第1のサービス、X+1番目のサービスを第2のサービスであるとすれば、「第1のサービスの出力データ=第2のサービスの入力データ」の関係を満たすサービスの組み合わせを探索する。図3に示す実行情報を例にとると、たとえば、あるクライアントAが実行したサービスであれば、呼び出し順序が「1」の出力データ「2450」と、呼び出し順序が「2(1+1)」の入力データ「2450」とが同一であるサービスの組み合わせ(サービスAとサービスB)を探索することができる。
【0029】
インタフェース情報取得部(WSDL文書取得部)223は、サービス探索部222により探索した結果、上記関係を満たすサービスの組み合わせが存在する場合、サービス情報管理装置230に対してクエリを発行して、サービス情報管理装置230から第1のサービスの第1インタフェース情報および第2のサービスの第2インタフェース情報を取得する。すなわち、図3に示す実行情報を例にとると、たとえば、第1のサービス、第2のサービスに相当するサービスA、サービスBの各インタフェース情報としてのWSDL文書をサービス情報管理装置230から取得する。サービスAおよびサービスBの各WSDL文書の例を図5および図6に示す。
【0030】
入出力データ形式照合部224は、インタフェース情報取得部223により取得した第1インタフェース情報および第2インタフェース情報から、第1のサービスの出力データの形式が第2のサービスの入力データの形式と一致するか否かを照合する。すなわち、入出力データ形式照合部224は、「第1のサービスのoutput(出力データ)の型=第2のサービスのinput(入力データ)の型」の関係を満たすか否かを照合する。入出力データ形式照合部224は、照合した結果、両形式が一致する場合、各インタフェース情報(WSDL文書)をインタフェース情報生成部225に送る。
【0031】
インタフェース情報生成部(WSDL生成部)225は、入出力データ形式照合部224により照合した結果、第1のサービスの出力データの形式が第2のサービスの入力データの形式と一致する場合、第1インタフェース情報および第2インタフェース情報を合成したインタフェース情報を生成する。たとえば、サービスA、サービスBの各インタフェース情報としてのWSDL文書がそれぞれ図5,6に示すものである場合、図7に示すような、新たなインタフェース情報(WSDL文書)を生成する。
【0032】
提示部226は、インタフェース情報生成部225により生成されたインタフェース情報(WSDL文書)を提示する。提示部226は、ネットワークを介して、最適化支援要求を送ったクライアント装置100に上記インタフェース情報を送ることで、該インタフェース情報をクライアント装置100に対して提示することができる。
【0033】
以下、図8に示すフローチャートを参照して、サービス粒度最適化支援システム1を用いて実施される本実施形態のサービス粒度最適化方法を説明する。サービス情報管理装置230には、予め各サービスのインタフェース情報(WSDL文書)等が管理され、また、サービス実行情報記憶部221には、実際にシステムを運用して各サービスが実行された際の実行情報が予め記憶されているものとする。なお、各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【0034】
まず、サービス粒度最適化支援装置220は、クライアント装置100から最適化支援要求を受け取ると、サービス実行情報記憶部221に対してクエリを発行して各サービスの実行情報を取得する(ステップS100)。たとえば、図3に示す各サービスの実行情報を取得する。
【0035】
次いで、サービス粒度最適化支援装置220は、取得したサービスの中から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索する(ステップS101)。たとえば、図3に示す実行情報を例にとると、あるクライアントAが実行したサービスであれば、呼び出し順序が「1」の出力データ「2450」と、呼び出し順序が「2(1+1)」の入力データ「2450」とが同一であるサービスの組み合わせ(サービスAとサービスB)を探索することができる。
【0036】
探索した結果、上記サービスの組合せが存在する場合(ステップS102:Yes)、サービス粒度最適化支援装置220は、サービス情報管理装置230に対してクエリを発行して、サービス情報管理装置230から第1のサービスの第1インタフェース情報および第2のサービスの第2インタフェース情報を取得する(ステップS103)。たとえば、該当するサービスの組み合わせが、サービスAとサービスBであれば、図5および図6に示す各インタフェース情報としてのWSDL文書を取得する。なお、上記サービスの組合せが存在しない場合(ステップS103:No)、本処理フローは終了する。
【0037】
ステップS103の処理後、サービス粒度最適化支援装置220は、インタフェース情報取得部223により取得した第1インタフェース情報および第2インタフェース情報から、第1のサービスの出力データの形式が第2のサービスの入力データの形式と一致するか否かを照合する(ステップS104)。たとえば、照合する対象の第1インタフェース情報を図5に示すWSDL文書、および第2インタフェース情報を図6に示すWSDL文書とすれば、図5のWSDL文書内の「output name」と図6のWSDL文書内の「input name」とで照合した場合、データ形式は一致すると判断することができる。
【0038】
照合した結果、データ形式が一致する場合(ステップS105:Yes)、サービス粒度最適化支援装置220は、第1インタフェース情報および第2インタフェース情報を合成したインタフェース情報を生成する(ステップS106)。たとえば、照合する対象の第1インタフェース情報を図5に示すWSDL文書、および第2インタフェース情報を図6に示すWSDL文書とすれば、図7に示すような、新たなインタフェース情報(WSDL文書)を生成することができる。なお、データ形式が一致しない場合(ステップS105:No)、本処理フローは終了する。
【0039】
ステップS106の処理後、サービス粒度最適化支援装置220は、生成されたインタフェース情報(WSDL文書)を提示する(ステップS107)。すなわち、ネットワークを介して、最適化支援要求を送ったクライアント装置100に上記インタフェース情報を送ることで、該インタフェース情報をクライアント装置100に対して提示することができる。
【0040】
以上のように、本実施形態のサービス粒度最適化支援システム1およびサービス粒度最適化支援方法によれば、システムの運用面に沿った適切なサービスを生成できる。その結果、システムの応答時間の短縮やサービスの管理・保守の容易さを向上させるといった効果が図れる。その理由は、サービス粒度最適化支援装置220が、実際にシステム運用を開始しないと分からない各サービスの実行情報をもとに、よりシステムに適したサービスの粒度を判断し、サービスの仕様を示したWSDL文書などを生成することができるためである。システムに対して必要以上に細かい粒度で定義されたサービスを統合することで、クライアント装置とサービス装置との間の通信量を削減できることからシステムの応答時間を短縮させることができ、またサービスの連携がシンプルになることでサービスの管理・保守が容易となり運用コストを削減できるといった効果が期待できる。
【0041】
<第2実施形態>
図9は、本発明の第2実施形態のサービス粒度最適化支援システム2の概略構成を例示する図である。第2実施形態のサービス粒度最適化支援システム2は、図9に示すとおり、クライアント装置100と、サービス粒度最適化支援装置240を含むメッセージ交換システム200'と、サービス装置301〜304を含むサービス群300とを含んで構成され、各装置等は通信ネットワークを介して相互に通信可能に接続されている。なお、第1実施形態のサービス粒度最適化支援システム1と共通の構成については、ここでの詳細な説明は省略する。
【0042】
メッセージ交換システム200'は、メッセージ送受信装置210'、サービス情報管理装置230、サービス粒度最適化支援装置240を含んで構成される。
【0043】
メッセージ送受信装置210'は、メッセージ送信部211、メッセージ受信部212、およびサービス実行情報取得部213'を含んで構成され、メッセージ送信部211およびメッセージ受信部212は、クライアント装置100とサービス装置301〜304との間でメッセージを送受信する。
【0044】
サービス実行情報取得部213'は、クライアント装置100とサービス装置301〜304との間で送受信されるメッセージから、SOAシステムにおいて実行された各サービスの実行情報(処理時間情報含む)を取得する。サービス実行情報取得部213'は、取得した各サービスの処理時間情報をサービス粒度最適化支援装置240のサービス実行情報記憶部241に送る。
【0045】
ここで、本実施形態における各サービスの処理時間情報は、たとえば、図10に示すように、実行日時、呼び出し元、実行サービス名、処理時間[ms]の各情報を含む。
【0046】
サービス粒度最適化支援装置240は、サービス実行情報記憶部241、基準処理時間算出部242、乖離度合い算出部243、および提示部244を含んで構成される。
【0047】
サービス実行情報記憶部(実行情報記憶部)241は、サービス実行情報取得部213'が取得した処理時間情報を含む実行情報を記憶するためのデータベースである。
【0048】
基準処理時間算出部242は、クライアント装置100から最適化支援要求を受け取ると、サービス実行情報記憶部241に対してクエリを発行して各サービスの処理時間情報を取得し、該取得した各サービスの処理時間情報に基づいて、システムにおけるサービス粒度の基準処理時間を算出する。基準処理時間は、本実施形態において、サービス粒度の指標とするものであって、取得した各サービスの処理時間の中央値とする。すなわち、各サービスの処理時間x1、x2、・・・、xnを、処理時間の小さい順に並べ替えたものをx'1、x'2、・・・、x'nとして、式(1)を用いて中央値Q1/2(x)を算出する。なお、基準処理時間は、上記各サービスの処理時間の中央値とする場合に限られず、たとえば、各サービスの処理時間の平均値など適宜自由に設定することができる。
【0049】
【数1】

【0050】
乖離度合い算出部243は、基準処理時間算出部242により算出した基準処理時間と、各サービスの処理時間との乖離度合いを算出する。サービスの処理時間と、算出した基準処理時間(中央値)との乖離度合いを算出し、該乖離度合いを指標にしてクライアント装置100に提示することで、サービスの設計者は、各サービスをどの程度の粒度に分割/統合することが適切かを判断することができる。
【0051】
提示部244は、乖離度合い算出部243により算出された各サービスの処理時間との乖離度合いを提示する。提示部244は、ネットワークを介して、最適化支援要求を送ったクライアント装置100に上記乖離度合い情報を送ることで、該乖離度合い情報をクライアント装置100に対して提示することができる。また、提示部244は、上記式(1)の式において、nが偶数の場合、「x'(n+1)/2」のサービスが、または、nが奇数の場合、「x'n/2」「x'n/2+1」のサービスが、粒度診断の基準となったことをクライアント装置100に対して提示することもできる。
【0052】
以下、図11に示すフローチャートを参照して、第2実施形態におけるサービス粒度最適化支援システム2を用いて実施されるサービス粒度最適化支援方法を説明する。サービス実行情報記憶部241には、実際にシステムを運用して各サービスが実行された際の実行情報(処理時間情報含む)が予め記憶されているものとする。なお、各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【0053】
まず、サービス粒度最適化支援装置240は、クライアント装置100から最適化支援要求を受け取ると、サービス実行情報記憶部241に対してクエリを発行して各サービスの処理時間情報を取得する(ステップS200)。たとえば、図10に示す各サービスの処理時間情報を取得する。
【0054】
次いで、サービス粒度最適化支援装置240は、該取得した各サービスの処理時間情報に基づいて、システムにおけるサービス粒度の基準処理時間を算出する(ステップS201)。基準処理時間は、本実施形態において、サービス粒度の指標とするものであって、取得した各サービスの処理時間の中央値とする。すなわち、各サービスの処理時間x1、x2、・・・、xnを、処理時間の小さい順に並べ替えたものをx'1、x'2、・・・、x'nとして、上記式(1)を用いて中央値Q1/2(x)を算出する。
【0055】
次いで、サービス粒度最適化支援装置240は、基準処理時間算出部242により算出した基準処理時間と、各サービスの処理時間との乖離度合いを算出する(ステップS202)。
【0056】
次いで、サービス粒度最適化支援装置240は、乖離度合い算出部243により算出された各サービスの処理時間との乖離度合いを提示する(ステップS203)。ネットワークを介して、最適化支援要求を送ったクライアント装置100に上記乖離度合い情報を送ることで、該乖離度合い情報をクライアント装置100に対して提示することができる。また、提示部244は、上記式(1)の式において、nが偶数の場合、「x'(n+1)/2」のサービスが、または、nが奇数の場合、「x'n/2」「x'n/2+1」のサービスが、粒度診断の基準となったことをクライアント装置100に対して提示することもできる。
【0057】
以上のように、本実施形態のサービス粒度最適化支援システム2およびサービス粒度最適化支援方法によれば、既にシステムで運用されているサービスの粒度を適切に揃えるための指針を得ることができる。その理由として、本実施形態では、サービスの処理時間に着目して定量的にサービスの粒度を判断することができるためである。サービス粒度の大小やシステム上におけるサービス粒度の適切さに対する判断は、経験則に基づくところが多いと言われているが、そのひとつの判断基準として処理時間があげられる。たとえば、C++やJava(登録商標)などの同一のアドレス空間内で動作する言語オブジェクトの場合はナノ秒単位、COBRAやEJBなどのマシンをまたがって動作する分散オブジェクトの場合はミリ秒単位、BtoBなどのシステムをまたがって動作するWebサービスの場合は数百ミリ秒〜秒単位が適切だと言われている。
【0058】
<変形例>
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
【0059】
たとえば、上記各実施形態では、サービス粒度最適化支援装置220,240がメッセージ交換システム200内に設けられる場合を例にとって説明したが、本発明はこれに限られず、メッセージ交換システム200とは別途に設けることもでき、たとえば、あるサービス装置に設けてもよい。
【0060】
また、上記実施形態では、SOAシステムを前提に説明したが、本発明はこれに限られず、たとえば、SOAシステム以外に、複数のサービスを連携して利用する場合について適用可能なことはもちろんである。
【0061】
さらに、上記各実施形態では、サービス粒度最適化支援装置220,240において、それぞれの処理機能を有する各部が備えられている構成を説明したが、本発明はこれに限られず、各部がサービス粒度最適化支援装置220,240と通信可能に接続されたネットワーク上に又は他の装置に備えて構成することもできる。
【0062】
さらに、サービス粒度最適化支援装置220,240には、用途に応じた各部がそれぞれ備えられているが、サービス粒度最適化支援装置220,240に備えられている各部は、そのいくつかを一纏めにして構成されていてもよいし、一つの部をさらに複数の部に分割して構成されていてもよい。
【0063】
さらに、第1実施形態のサービス粒度最適化支援装置220、および第2実施形態のs−ビス粒度最適化支援装置240を組み合わせたサービス粒度最適化支援装置を構成することもできる。
【0064】
上記の実施形態の一部または全部は、以下の吹きのようにも記載されうるが、以下には限られない。
【0065】
(付記1)複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得するインタフェース情報取得部と、前記インタフェース情報取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、前記入出力データ形式照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、を含むサービス粒度最適化支援装置。
【0066】
(付記2)前記インタフェース情報生成部により生成された前記合成したインタフェース情報を提示する提示部をさらに備える付記1に記載のサービス粒度最適化支援装置。
【0067】
(付記3)前記実行情報は、各サービスのサービス名情報、実行順序情報、入力データ情報、および出力データ情報を含む、付記1または付記2に記載のサービス粒度最適化支援装置。
【0068】
(付記4)前記第1インタフェース情報、前記第2インタフェース情報、および前記合成したインタフェース情報は、WSDL文書の情報であることを特徴とする付記1〜3のいずれか1つに記載のサービス粒度最適化支援装置。
【0069】
(付記5)複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、を含むサービス粒度最適化支援装置。
【0070】
(付記6)前記乖離度合い算出部により算出された前記各サービスの処理時間との乖離度合いを提示する提示部をさらに含む付記5に記載のサービス粒度最適化支援装置。
【0071】
(付記7)前記実行情報は、各サービスのサービス名情報、実行順序情報、処理時間情報を含む、付記5または付記6に記載のサービス粒度最適化支援装置。
【0072】
(付記8)複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、前記各サービスを実行した実行情報を記憶する段階と、前記記憶された実行情報から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索する段階と、前記探索した結果、前記サービスの組み合わせが存在する場合、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得する段階と、前記インタフェース取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する段階と、前記入出力データ照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成する段階と、を含むサービス粒度最適化支援方法。
【符号の説明】
【0073】
1 サービス粒度最適化支援システム、
100 クライアント装置、
200 メッセージ交換装置、
210 メッセージ送受信装置、
211 メッセージ送信部、
212 メッセージ受信部、
213 サービス実行情報取得部、
220 サービス粒度最適化支援装置、
221 サービス実行情報記憶部、
222 サービス探索部、
223 インタフェース情報取得部、
224 入出力データ形式照合部、
225 インタフェース生成部、
226 提示部、
230 サービス情報管理装置、
300 サービス群、
301〜304 サービス装置。

【特許請求の範囲】
【請求項1】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、
前記各サービスを実行した実行情報を記憶する実行情報記憶部と、
前記実行情報記憶部から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索するサービス探索部と、
前記サービス探索部により探索した結果、前記サービスの組み合わせが存在する場合、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得するインタフェース情報取得部と、
前記インタフェース情報取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する入出力データ形式照合部と、
前記入出力データ形式照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成するインタフェース情報生成部と、
を含むサービス粒度最適化支援装置。
【請求項2】
前記インタフェース情報生成部により生成された前記合成したインタフェース情報を提示する提示部をさらに備える請求項1に記載のサービス粒度最適化支援装置。
【請求項3】
前記実行情報は、各サービスのサービス名情報、実行順序情報、入力データ情報、および出力データ情報を含む、請求項1または請求項2に記載のサービス粒度最適化支援装置。
【請求項4】
前記第1インタフェース情報、前記第2インタフェース情報、および前記合成したインタフェース情報は、WSDL文書の情報であることを特徴とする請求項1〜3のいずれか1つに記載のサービス粒度最適化支援装置。
【請求項5】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援装置であって、
前記各サービスを実行した実行情報であって、処理時間情報を含む実行情報を記憶する実行情報記憶部と、
前記実行情報記憶部から前記各サービスの処理時間情報を取得し、該取得した前記各サービスの処理時間情報に基づいて、前記ネットワークシステムにおけるサービス粒度の基準処理時間を算出する基準処理時間算出部と、
前記基準処理時間算出部により算出した前記基準処理時間と、前記各サービスの処理時間との乖離度合いを算出する乖離度合い算出部と、
を含むサービス粒度最適化支援装置。
【請求項6】
複数のサービスを連携して利用可能なネットワークシステムにおける、前記各サービスの粒度の最適化を支援するサービス粒度最適化支援方法であって、
前記各サービスを実行した実行情報を記憶する段階と、
前記記憶された実行情報から、第1のサービスの出力データと、該第1のサービスの次に実行された第2のサービスの入力データとが同一であるサービスの組合せを探索する段階と、
前記探索した結果、前記サービスの組み合わせが存在する場合、前記第1のサービスの第1インタフェース情報および前記第2のサービスの第2インタフェース情報を取得する段階と、
前記インタフェース取得部により取得した前記第1インタフェース情報および前記第2インタフェース情報から、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致するか否かを照合する段階と、
前記入出力データ照合部により照合した結果、前記第1のサービスの出力データの形式が前記第2のサービスの入力データの形式と一致する場合、前記第1インタフェース情報および前記第2インタフェース情報を合成したインタフェース情報を生成する段階と、
を含むサービス粒度最適化支援方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−180890(P2011−180890A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−45353(P2010−45353)
【出願日】平成22年3月2日(2010.3.2)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】